()
| 135 | } |
| 136 | |
| 137 | function parseArgs(): Args { |
| 138 | const argv = process.argv.slice(2) |
| 139 | if (argv.includes('--help') || argv.includes('-h')) { |
| 140 | printHelp() |
| 141 | process.exit(0) |
| 142 | } |
| 143 | |
| 144 | return { |
| 145 | dataset: argv.includes('--prod') ? 'codebuff_data' : 'codebuff_data_dev', |
| 146 | sessionsPerAgent: readNumberFlag(argv, '--sessions-per-agent', 1), |
| 147 | totalSessions: argv.includes('--total-sessions') |
| 148 | ? readNumberFlag(argv, '--total-sessions', 1) |
| 149 | : null, |
| 150 | sampleMode: readSampleMode(argv), |
| 151 | lookbackDays: readNumberFlag(argv, '--lookback-days', 60), |
| 152 | beforeDays: readNumberFlag(argv, '--before-days', 3), |
| 153 | startDate: readStringFlag(argv, '--start-date', null), |
| 154 | endDate: readStringFlag(argv, '--end-date', null), |
| 155 | outPath: |
| 156 | readStringFlag(argv, '--out', null) ?? |
| 157 | '.context/deepseek-session-traces.json', |
| 158 | traceDir: readStringFlag(argv, '--trace-dir', null), |
| 159 | skipAggregate: argv.includes('--skip-aggregate'), |
| 160 | minMessages: readNumberFlag(argv, '--min-messages', 10), |
| 161 | clientId: readStringFlag(argv, '--client-id', null), |
| 162 | } |
| 163 | } |
| 164 | |
| 165 | function toIso(value: unknown): string { |
| 166 | if (value instanceof Date) return value.toISOString() |
no test coverage detected