@kaitranntt/ccs 7.77.1-dev.10 → 7.77.1-dev.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
  2. package/dist/cliproxy/auth/oauth-process.js +94 -3
  3. package/dist/cliproxy/auth/oauth-process.js.map +1 -1
  4. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.d.ts +24 -0
  5. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.d.ts.map +1 -0
  6. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.js +159 -0
  7. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.js.map +1 -0
  8. package/dist/cliproxy/auth/oauth-trace/index.d.ts +4 -0
  9. package/dist/cliproxy/auth/oauth-trace/index.d.ts.map +1 -0
  10. package/dist/cliproxy/auth/oauth-trace/index.js +14 -0
  11. package/dist/cliproxy/auth/oauth-trace/index.js.map +1 -0
  12. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts +22 -0
  13. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts.map +1 -0
  14. package/dist/cliproxy/auth/oauth-trace/redactor.js +112 -0
  15. package/dist/cliproxy/auth/oauth-trace/redactor.js.map +1 -0
  16. package/dist/cliproxy/auth/oauth-trace/sink-file.d.ts +18 -0
  17. package/dist/cliproxy/auth/oauth-trace/sink-file.d.ts.map +1 -0
  18. package/dist/cliproxy/auth/oauth-trace/sink-file.js +90 -0
  19. package/dist/cliproxy/auth/oauth-trace/sink-file.js.map +1 -0
  20. package/dist/cliproxy/auth/oauth-trace/sink-memory.d.ts +13 -0
  21. package/dist/cliproxy/auth/oauth-trace/sink-memory.d.ts.map +1 -0
  22. package/dist/cliproxy/auth/oauth-trace/sink-memory.js +31 -0
  23. package/dist/cliproxy/auth/oauth-trace/sink-memory.js.map +1 -0
  24. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.d.ts +11 -0
  25. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.d.ts.map +1 -0
  26. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.js +47 -0
  27. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.js.map +1 -0
  28. package/dist/cliproxy/auth/oauth-trace/trace-events.d.ts +51 -0
  29. package/dist/cliproxy/auth/oauth-trace/trace-events.d.ts.map +1 -0
  30. package/dist/cliproxy/auth/oauth-trace/trace-events.js +44 -0
  31. package/dist/cliproxy/auth/oauth-trace/trace-events.js.map +1 -0
  32. package/dist/cliproxy/auth/oauth-trace/trace-recorder.d.ts +34 -0
  33. package/dist/cliproxy/auth/oauth-trace/trace-recorder.d.ts.map +1 -0
  34. package/dist/cliproxy/auth/oauth-trace/trace-recorder.js +83 -0
  35. package/dist/cliproxy/auth/oauth-trace/trace-recorder.js.map +1 -0
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-process.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-process.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAY1D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,iBAAiB,CAAC;AAczB,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,mBAAmB,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC;IACpD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA8DD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQxD;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GAAG,IAAI,CAqBP;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoC7F;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa5E;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBhF;AAqPD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAqDf;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,eAAe,EAAE,qBAAqB,EAAE,CAAC;IACzC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG;IAAE,aAAa,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAYhF;AA0FD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAyQ7F"}
1
+ {"version":3,"file":"oauth-process.d.ts","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-process.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAY1D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,iBAAiB,CAAC;AAoBzB,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,mBAAmB,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,aAAa,GAAG,oBAAoB,CAAC;IACpD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA8DD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQxD;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GAAG,IAAI,CAqBP;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoC7F;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa5E;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBhF;AAqPD,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAqDf;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,eAAe,EAAE,qBAAqB,EAAE,CAAC;IACzC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG;IAAE,aAAa,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAYhF;AA2GD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA8U7F"}
@@ -40,6 +40,12 @@ const token_manager_1 = require("./token-manager");
40
40
  const device_code_handler_1 = require("../auth/device-code-handler");
41
41
  const management_1 = require("../../management");
42
42
  const auth_session_manager_1 = require("../auth/auth-session-manager");
43
+ const oauth_trace_1 = require("./oauth-trace");
44
+ const redactor_1 = require("./oauth-trace/redactor");
45
+ const sink_file_1 = require("./oauth-trace/sink-file");
46
+ const diagnose_failure_1 = require("./oauth-trace/diagnose-failure");
47
+ const path = __importStar(require("path"));
48
+ const config_manager_1 = require("../../utils/config-manager");
43
49
  /**
44
50
  * Handle project selection prompt
45
51
  */
@@ -420,7 +426,7 @@ function analyzeSuccessfulAuthExit(options) {
420
426
  }
421
427
  exports.analyzeSuccessfulAuthExit = analyzeSuccessfulAuthExit;
422
428
  /** Handle token not found after successful process exit */
423
- async function handleTokenNotFound(provider, callbackPort, tokenDir, nickname, expectedAccountId, verbose, failureReason) {
429
+ async function handleTokenNotFound(provider, callbackPort, tokenDir, nickname, expectedAccountId, verbose, failureReason, trace) {
424
430
  console.log('');
425
431
  if (failureReason) {
426
432
  // Sanitize internal URLs/paths from failure reason to avoid leaking infrastructure details
@@ -449,6 +455,22 @@ async function handleTokenNotFound(provider, callbackPort, tokenDir, nickname, e
449
455
  console.log(' 2. Run: ccs kiro --import');
450
456
  return null;
451
457
  }
458
+ // Branch-specific diagnosis when trace recorder is wired (Phase 7).
459
+ if (trace) {
460
+ const diagnosis = (0, diagnose_failure_1.diagnoseFailure)(trace.snapshot());
461
+ if (diagnosis.branchId !== 'UNKNOWN') {
462
+ console.log((0, ui_1.fail)('Authentication failed'));
463
+ const lines = (0, diagnose_failure_1.formatErrorMessage)(diagnosis, {
464
+ verbose,
465
+ platform: process.platform,
466
+ callbackPort,
467
+ provider,
468
+ });
469
+ for (const line of lines)
470
+ console.log(line);
471
+ return null;
472
+ }
473
+ }
452
474
  console.log((0, ui_1.fail)('Token not found after authentication'));
453
475
  console.log('');
454
476
  console.log('The browser showed success but callback was not received.');
@@ -513,11 +535,23 @@ function executeOAuthProcess(options) {
513
535
  });
514
536
  // H7: Mutable ref for stdin keepalive interval (set later, needed in cleanup)
515
537
  let stdinKeepalive = null;
538
+ // Mutable ref so cleanup/handleCancel can flush trace even though `trace`
539
+ // is assigned after them. DEFERRED: per-event syscall throttling.
540
+ let traceRef = null;
516
541
  // H5: Signal handling - properly kill child process on SIGINT/SIGTERM
517
542
  // H8: Also clear stdinKeepalive interval to prevent memory leak
518
543
  const cleanup = () => {
519
544
  if (stdinKeepalive)
520
545
  clearInterval(stdinKeepalive);
546
+ if (traceRef) {
547
+ try {
548
+ traceRef.record(oauth_trace_1.OAuthTracePhase.Cancelled, { reason: 'signal' });
549
+ void traceRef.flush();
550
+ }
551
+ catch {
552
+ // never block shutdown on trace errors
553
+ }
554
+ }
521
555
  if (authProcess && authProcess.exitCode === null) {
522
556
  (0, process_utils_1.killWithEscalation)(authProcess);
523
557
  }
@@ -538,6 +572,23 @@ function executeOAuthProcess(options) {
538
572
  manualCallbackPrompted: false,
539
573
  cancelManualCallbackPrompt: null,
540
574
  };
575
+ // OAuth trace recorder — opt-in file sink via CCS_OAUTH_LOG_FILE=1
576
+ const fileSink = process.env['CCS_OAUTH_LOG_FILE'] === '1'
577
+ ? (0, sink_file_1.createFileSink)({ dir: path.join((0, config_manager_1.getCcsDir)(), 'logs') })
578
+ : undefined;
579
+ const trace = (0, oauth_trace_1.createOAuthTraceRecorder)({
580
+ sessionId: state.sessionId,
581
+ provider,
582
+ verbose,
583
+ fileSink,
584
+ });
585
+ traceRef = trace; // wire late-binding ref for cleanup/handleCancel
586
+ trace.record(oauth_trace_1.OAuthTracePhase.BinarySpawn, {
587
+ callbackPort,
588
+ headless,
589
+ manualCallback: !!options.manualCallback,
590
+ flowType,
591
+ });
541
592
  // Register session for cancellation support
542
593
  (0, auth_session_manager_1.registerAuthSession)(state.sessionId, provider);
543
594
  (0, auth_session_manager_1.attachProcessToSession)(state.sessionId, authProcess);
@@ -545,6 +596,15 @@ function executeOAuthProcess(options) {
545
596
  const handleCancel = (cancelledSessionId) => {
546
597
  if (cancelledSessionId === state.sessionId && authProcess && authProcess.exitCode === null) {
547
598
  log('Session cancelled externally');
599
+ if (traceRef) {
600
+ try {
601
+ traceRef.record(oauth_trace_1.OAuthTracePhase.Cancelled, { reason: 'external' });
602
+ void traceRef.flush();
603
+ }
604
+ catch {
605
+ // never block shutdown on trace errors
606
+ }
607
+ }
548
608
  (0, process_utils_1.killWithEscalation)(authProcess);
549
609
  }
550
610
  };
@@ -564,12 +624,31 @@ function executeOAuthProcess(options) {
564
624
  }, 16000);
565
625
  }
566
626
  authProcess.stdout?.on('data', async (data) => {
567
- await handleStdout(data.toString(), state, options, authProcess, log);
627
+ const out = data.toString();
628
+ const wasUrlDisplayed = state.urlDisplayed;
629
+ const wasBrowserOpened = state.browserOpened;
630
+ await handleStdout(out, state, options, authProcess, log);
631
+ if (!wasUrlDisplayed && state.urlDisplayed) {
632
+ trace.record(oauth_trace_1.OAuthTracePhase.AuthUrlDisplayed, {});
633
+ }
634
+ if (!wasBrowserOpened && state.browserOpened) {
635
+ trace.record(oauth_trace_1.OAuthTracePhase.BrowserOpened, { port: callbackPort });
636
+ // CLIProxyAPI emits "Callback server listening" when bind succeeds; treat as
637
+ // best-available signal that the loopback path is reachable. This is a heuristic.
638
+ trace.record(oauth_trace_1.OAuthTracePhase.CallbackObservedHeuristic, { port: callbackPort });
639
+ }
640
+ // Capture redacted snippet (cap at 200 chars; high-frequency lines accepted as data).
641
+ const snippet = (0, redactor_1.redactString)(out.trim().slice(0, 200));
642
+ if (snippet)
643
+ trace.record(oauth_trace_1.OAuthTracePhase.BinaryStdout, { snippet });
568
644
  });
569
645
  authProcess.stderr?.on('data', async (data) => {
570
646
  const output = data.toString();
571
647
  state.stderrData += output;
572
648
  log(`stderr: ${output.trim()}`);
649
+ const snippet = (0, redactor_1.redactString)(output.trim().slice(0, 200));
650
+ if (snippet)
651
+ trace.record(oauth_trace_1.OAuthTracePhase.BinaryStderr, { snippet });
573
652
  if (headless && !state.urlDisplayed) {
574
653
  displayUrlFromStderr(output, state, oauthConfig);
575
654
  }
@@ -626,6 +705,8 @@ function executeOAuthProcess(options) {
626
705
  auth_session_manager_1.authSessionEvents.removeListener('session:cancelled', handleCancel);
627
706
  (0, auth_session_manager_1.unregisterAuthSession)(state.sessionId);
628
707
  (0, project_selection_handler_1.cancelProjectSelection)(state.sessionId);
708
+ trace.record(oauth_trace_1.OAuthTracePhase.Timeout, { timeoutMs });
709
+ void trace.flush();
629
710
  (0, process_utils_1.killWithEscalation)(authProcess);
630
711
  console.log('');
631
712
  console.log((0, ui_1.fail)(`OAuth timed out after ${timeoutMs / 60000} minutes`));
@@ -647,6 +728,10 @@ function executeOAuthProcess(options) {
647
728
  (0, auth_session_manager_1.unregisterAuthSession)(state.sessionId);
648
729
  (0, project_selection_handler_1.cancelProjectSelection)(state.sessionId);
649
730
  const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
731
+ trace.record(oauth_trace_1.OAuthTracePhase.BinaryExit, {
732
+ code,
733
+ stderrTail: (0, redactor_1.redactString)(state.stderrData.trim().split('\n').pop() ?? ''),
734
+ });
650
735
  if (code === 0) {
651
736
  const exitAnalysis = analyzeSuccessfulAuthExit({
652
737
  provider,
@@ -657,6 +742,8 @@ function executeOAuthProcess(options) {
657
742
  stderrData: state.stderrData,
658
743
  });
659
744
  if (exitAnalysis.tokenSnapshot) {
745
+ trace.record(oauth_trace_1.OAuthTracePhase.TokenFileAppeared, {});
746
+ await trace.flush();
660
747
  console.log('');
661
748
  console.log((0, ui_1.ok)(`Authentication successful (${elapsed}s)`));
662
749
  // Emit device code completion event for UI
@@ -673,8 +760,10 @@ function executeOAuthProcess(options) {
673
760
  error: exitAnalysis.failureReason || 'Token not found after authentication',
674
761
  });
675
762
  }
763
+ trace.record(oauth_trace_1.OAuthTracePhase.TokenFileMissing, {});
764
+ await trace.flush();
676
765
  // Try auto-import for Kiro, show error for others
677
- const account = await handleTokenNotFound(provider, callbackPort, tokenDir, nickname, expectedAccountId, verbose, exitAnalysis.failureReason || undefined);
766
+ const account = await handleTokenNotFound(provider, callbackPort, tokenDir, nickname, expectedAccountId, verbose, exitAnalysis.failureReason || undefined, trace);
678
767
  resolve(account);
679
768
  }
680
769
  }
@@ -702,6 +791,8 @@ function executeOAuthProcess(options) {
702
791
  auth_session_manager_1.authSessionEvents.removeListener('session:cancelled', handleCancel);
703
792
  (0, auth_session_manager_1.unregisterAuthSession)(state.sessionId);
704
793
  (0, project_selection_handler_1.cancelProjectSelection)(state.sessionId);
794
+ trace.record(oauth_trace_1.OAuthTracePhase.Error, {}, error);
795
+ void trace.flush();
705
796
  console.log('');
706
797
  console.log((0, ui_1.fail)(`Failed to start auth process: ${error.message}`));
707
798
  resolve(null);
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-process.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-process.js","sourceRoot":"","sources":["../../../src/cliproxy/auth/oauth-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /// <reference types="node" />
2
+ import { OAuthTraceEvent } from './trace-events';
3
+ export type FailureBranchId = 'URL_NOT_DISPLAYED' | 'BROWSER_NOT_OPENED' | 'CALLBACK_NEVER_OBSERVED' | 'BINARY_ERROR_EXIT' | 'TOKEN_FILE_MISSING_POST_EXIT' | 'TIMEOUT' | 'SESSION_CANCELLED' | 'TOKEN_EXCHANGE_REJECTED' | 'PASTE_INVALID' | 'GEMINI_PLUS_MISSING_CRED' | 'AGY_RESPONSIBILITY_DECLINED' | 'UNKNOWN';
4
+ export interface DiagnosisResult {
5
+ branchId: FailureBranchId;
6
+ data: Record<string, unknown>;
7
+ }
8
+ /**
9
+ * Pure function: read a recorder snapshot and decide which failure branch fits best.
10
+ * No side effects, no console writes.
11
+ */
12
+ export declare function diagnoseFailure(snapshot: OAuthTraceEvent[]): DiagnosisResult;
13
+ export interface FormatErrorOptions {
14
+ verbose: boolean;
15
+ platform: NodeJS.Platform;
16
+ callbackPort: number | null;
17
+ provider: string;
18
+ }
19
+ /**
20
+ * Map a diagnosed branch to user-facing message lines (ASCII only, no emojis).
21
+ * Always ends with a concrete next-step command.
22
+ */
23
+ export declare function formatErrorMessage(result: DiagnosisResult, opts: FormatErrorOptions): string[];
24
+ //# sourceMappingURL=diagnose-failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose-failure.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/diagnose-failure.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAmB,MAAM,gBAAgB,CAAC;AAElE,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,GACzB,mBAAmB,GACnB,8BAA8B,GAC9B,SAAS,GACT,mBAAmB,GACnB,yBAAyB,GACzB,eAAe,GACf,0BAA0B,GAC1B,6BAA6B,GAC7B,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,CA8E5E;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,MAAM,EAAE,CA+F9F"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatErrorMessage = exports.diagnoseFailure = void 0;
4
+ const trace_events_1 = require("./trace-events");
5
+ const BROWSER_OPEN_HEURISTIC_MS = 5000;
6
+ /**
7
+ * Pure function: read a recorder snapshot and decide which failure branch fits best.
8
+ * No side effects, no console writes.
9
+ */
10
+ function diagnoseFailure(snapshot) {
11
+ if (snapshot.length === 0) {
12
+ return { branchId: 'UNKNOWN', data: {} };
13
+ }
14
+ const has = (phase) => snapshot.some((e) => e.phase === phase);
15
+ const last = (phase) => [...snapshot].reverse().find((e) => e.phase === phase);
16
+ const lastError = [...snapshot].reverse().find((e) => e.phase === trace_events_1.OAuthTracePhase.Error);
17
+ // Provider gate aborts (highest priority — explicit error code)
18
+ if (lastError?.error?.code === 'GEMINI_PLUS_MISSING_CRED') {
19
+ return { branchId: 'GEMINI_PLUS_MISSING_CRED', data: lastError.data ?? {} };
20
+ }
21
+ if (lastError?.error?.code === 'AGY_RESPONSIBILITY_DECLINED') {
22
+ return { branchId: 'AGY_RESPONSIBILITY_DECLINED', data: lastError.data ?? {} };
23
+ }
24
+ if (lastError?.error?.code === 'CALLBACK_REJECTED') {
25
+ return {
26
+ branchId: 'TOKEN_EXCHANGE_REJECTED',
27
+ data: { upstreamError: lastError.error.message, ...(lastError.data ?? {}) },
28
+ };
29
+ }
30
+ if (has(trace_events_1.OAuthTracePhase.PasteCallbackInvalid)) {
31
+ const ev = last(trace_events_1.OAuthTracePhase.PasteCallbackInvalid);
32
+ return { branchId: 'PASTE_INVALID', data: ev?.data ?? {} };
33
+ }
34
+ if (has(trace_events_1.OAuthTracePhase.Cancelled)) {
35
+ return { branchId: 'SESSION_CANCELLED', data: {} };
36
+ }
37
+ if (has(trace_events_1.OAuthTracePhase.Timeout)) {
38
+ const ev = last(trace_events_1.OAuthTracePhase.Timeout);
39
+ return { branchId: 'TIMEOUT', data: ev?.data ?? {} };
40
+ }
41
+ const exitEv = last(trace_events_1.OAuthTracePhase.BinaryExit);
42
+ if (exitEv) {
43
+ const code = exitEv.data?.code ?? null;
44
+ if (code !== null && code !== 0) {
45
+ return {
46
+ branchId: 'BINARY_ERROR_EXIT',
47
+ data: {
48
+ code,
49
+ stderrTail: exitEv.data?.stderrTail ?? '',
50
+ },
51
+ };
52
+ }
53
+ }
54
+ // exit=0 (or no exit) plus token-file states
55
+ if (has(trace_events_1.OAuthTracePhase.TokenFileMissing)) {
56
+ return { branchId: 'TOKEN_FILE_MISSING_POST_EXIT', data: {} };
57
+ }
58
+ if (!has(trace_events_1.OAuthTracePhase.AuthUrlDisplayed)) {
59
+ return { branchId: 'URL_NOT_DISPLAYED', data: {} };
60
+ }
61
+ // URL was displayed: did browser open within heuristic window?
62
+ if (!has(trace_events_1.OAuthTracePhase.BrowserOpened)) {
63
+ const urlEv = last(trace_events_1.OAuthTracePhase.AuthUrlDisplayed);
64
+ const lastTs = snapshot[snapshot.length - 1].ts;
65
+ if (urlEv && lastTs - urlEv.ts >= BROWSER_OPEN_HEURISTIC_MS) {
66
+ return { branchId: 'BROWSER_NOT_OPENED', data: {} };
67
+ }
68
+ }
69
+ if (has(trace_events_1.OAuthTracePhase.BrowserOpened) &&
70
+ !has(trace_events_1.OAuthTracePhase.CallbackObservedHeuristic) &&
71
+ has(trace_events_1.OAuthTracePhase.BinaryExit)) {
72
+ return { branchId: 'CALLBACK_NEVER_OBSERVED', data: {} };
73
+ }
74
+ return { branchId: 'UNKNOWN', data: {} };
75
+ }
76
+ exports.diagnoseFailure = diagnoseFailure;
77
+ /**
78
+ * Map a diagnosed branch to user-facing message lines (ASCII only, no emojis).
79
+ * Always ends with a concrete next-step command.
80
+ */
81
+ function formatErrorMessage(result, opts) {
82
+ const { branchId, data } = result;
83
+ const { provider, callbackPort, platform, verbose } = opts;
84
+ const lines = [];
85
+ switch (branchId) {
86
+ case 'URL_NOT_DISPLAYED':
87
+ lines.push('OAuth URL was never produced.');
88
+ lines.push('The CLIProxy binary may have failed to start or exited too early.');
89
+ lines.push(`Try: ccs ${provider} --auth --verbose`);
90
+ break;
91
+ case 'BROWSER_NOT_OPENED':
92
+ lines.push('OAuth URL was displayed but the browser did not open.');
93
+ lines.push('Copy the URL above and open it manually in any browser.');
94
+ break;
95
+ case 'CALLBACK_NEVER_OBSERVED':
96
+ lines.push(`Browser completed login but no callback reached localhost:${callbackPort ?? '?'}.`);
97
+ lines.push('Common cause: firewall, antivirus, or browser on a different machine.');
98
+ lines.push(`Try paste-callback mode: ccs ${provider} --auth --no-browser`);
99
+ if (platform === 'win32' && callbackPort) {
100
+ lines.push('On Windows, try as Administrator:');
101
+ lines.push(` netsh advfirewall firewall add rule name="CCS OAuth" dir=in action=allow protocol=TCP localport=${callbackPort}`);
102
+ }
103
+ break;
104
+ case 'BINARY_ERROR_EXIT': {
105
+ const code = data['code'] ?? '?';
106
+ lines.push(`CLIProxy binary exited with code ${code}.`);
107
+ const tail = String(data['stderrTail'] ?? '').trim();
108
+ if (tail)
109
+ lines.push(` ${tail}`);
110
+ lines.push(`Try: ccs ${provider} --auth --verbose`);
111
+ break;
112
+ }
113
+ case 'TOKEN_FILE_MISSING_POST_EXIT':
114
+ lines.push('Authentication appeared to succeed but no token file was created.');
115
+ lines.push('Update CLIProxy and retry: ccs update');
116
+ break;
117
+ case 'TIMEOUT': {
118
+ const min = data['timeoutMs'] ? Math.round(data['timeoutMs'] / 60000) : '?';
119
+ lines.push(`OAuth flow timed out after ${min} minutes.`);
120
+ lines.push(`Re-run and complete login faster: ccs ${provider} --auth`);
121
+ break;
122
+ }
123
+ case 'SESSION_CANCELLED':
124
+ lines.push('OAuth flow was cancelled.');
125
+ break;
126
+ case 'TOKEN_EXCHANGE_REJECTED':
127
+ lines.push(`Token exchange rejected by provider: ${String(data['upstreamError'] ?? 'unknown')}.`);
128
+ lines.push(`Try: ccs ${provider} --auth --verbose`);
129
+ break;
130
+ case 'PASTE_INVALID':
131
+ lines.push(`Pasted callback URL invalid: ${String(data['reason'] ?? 'unknown')}.`);
132
+ lines.push('Re-run and paste the full URL after browser login.');
133
+ break;
134
+ case 'GEMINI_PLUS_MISSING_CRED':
135
+ lines.push('Gemini-plus OAuth credentials missing.');
136
+ lines.push('See: docs/providers/gemini.md');
137
+ break;
138
+ case 'AGY_RESPONSIBILITY_DECLINED':
139
+ lines.push('Antigravity responsibility prompt was declined.');
140
+ lines.push(`Re-run and accept to proceed: ccs ${provider} --auth`);
141
+ break;
142
+ case 'UNKNOWN':
143
+ default:
144
+ lines.push('Token not found after authentication');
145
+ lines.push('Common causes:');
146
+ lines.push(' 1. OAuth session timed out');
147
+ lines.push(' 2. Callback server could not receive the redirect');
148
+ lines.push(' 3. Browser did not redirect to localhost properly');
149
+ lines.push(`Try: ccs ${provider} --auth --verbose`);
150
+ break;
151
+ }
152
+ if (verbose) {
153
+ lines.push('');
154
+ lines.push('Run with --verbose for the trace summary.');
155
+ }
156
+ return lines;
157
+ }
158
+ exports.formatErrorMessage = formatErrorMessage;
159
+ //# sourceMappingURL=diagnose-failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose-failure.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/diagnose-failure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { OAuthTracePhase, type OAuthTraceEvent, type OAuthTraceSink } from './trace-events';
2
+ export { createOAuthTraceRecorder, type OAuthTraceRecorder, type OAuthTraceRecorderOptions, } from './trace-recorder';
3
+ export { redactString, redactUrl, redactJsonShallow, redactBearer, REDACTED_PLACEHOLDER, } from './redactor';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REDACTED_PLACEHOLDER = exports.redactBearer = exports.redactJsonShallow = exports.redactUrl = exports.redactString = exports.createOAuthTraceRecorder = exports.OAuthTracePhase = void 0;
4
+ var trace_events_1 = require("./trace-events");
5
+ Object.defineProperty(exports, "OAuthTracePhase", { enumerable: true, get: function () { return trace_events_1.OAuthTracePhase; } });
6
+ var trace_recorder_1 = require("./trace-recorder");
7
+ Object.defineProperty(exports, "createOAuthTraceRecorder", { enumerable: true, get: function () { return trace_recorder_1.createOAuthTraceRecorder; } });
8
+ var redactor_1 = require("./redactor");
9
+ Object.defineProperty(exports, "redactString", { enumerable: true, get: function () { return redactor_1.redactString; } });
10
+ Object.defineProperty(exports, "redactUrl", { enumerable: true, get: function () { return redactor_1.redactUrl; } });
11
+ Object.defineProperty(exports, "redactJsonShallow", { enumerable: true, get: function () { return redactor_1.redactJsonShallow; } });
12
+ Object.defineProperty(exports, "redactBearer", { enumerable: true, get: function () { return redactor_1.redactBearer; } });
13
+ Object.defineProperty(exports, "REDACTED_PLACEHOLDER", { enumerable: true, get: function () { return redactor_1.REDACTED_PLACEHOLDER; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/index.ts"],"names":[],"mappings":";;;AAAA,+CAA4F;AAAnF,+GAAA,eAAe,OAAA;AACxB,mDAI0B;AAHxB,0HAAA,wBAAwB,OAAA;AAI1B,uCAMoB;AALlB,wGAAA,YAAY,OAAA;AACZ,qGAAA,SAAS,OAAA;AACT,6GAAA,iBAAiB,OAAA;AACjB,wGAAA,YAAY,OAAA;AACZ,gHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * OAuth secret redactor — single choke point.
3
+ *
4
+ * Every value reaching any sink passes through these helpers first.
5
+ * Adding a new sensitive key here is the only place it has to change.
6
+ *
7
+ * DEFERRED: per-event syscall throttling; fsync / file-size cap on file sink.
8
+ */
9
+ /** Redact sensitive query-param values inside any string. Idempotent. */
10
+ export declare function redactString(s: string): string;
11
+ /** Redact a parsed URL by name; returns redacted href or original on parse error. */
12
+ export declare function redactUrl(u: string): string;
13
+ /**
14
+ * Shallow-redact a plain object. Returns a new object; original is not mutated.
15
+ * Arrays are recursed so token arrays (e.g. `{tokens:[{access_token:'AT'}]}`)
16
+ * do not bypass redaction.
17
+ */
18
+ export declare function redactJsonShallow(input: Record<string, unknown>): Record<string, unknown>;
19
+ /** Redact an Authorization header value. */
20
+ export declare function redactBearer(header: string): string;
21
+ export declare const REDACTED_PLACEHOLDER = "***REDACTED***";
22
+ //# sourceMappingURL=redactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redactor.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/redactor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmCH,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAiC3C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzF;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,eAAO,MAAM,oBAAoB,mBAAW,CAAC"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ /**
3
+ * OAuth secret redactor — single choke point.
4
+ *
5
+ * Every value reaching any sink passes through these helpers first.
6
+ * Adding a new sensitive key here is the only place it has to change.
7
+ *
8
+ * DEFERRED: per-event syscall throttling; fsync / file-size cap on file sink.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.REDACTED_PLACEHOLDER = exports.redactBearer = exports.redactJsonShallow = exports.redactUrl = exports.redactString = void 0;
12
+ const SENSITIVE_QUERY_KEYS = [
13
+ 'code',
14
+ 'state',
15
+ 'access_token',
16
+ 'refresh_token',
17
+ 'id_token',
18
+ 'client_secret',
19
+ 'authorization',
20
+ // PKCE / device-flow / assertion keys
21
+ 'code_verifier',
22
+ 'device_code',
23
+ 'assertion',
24
+ 'subject_token',
25
+ ];
26
+ const SENSITIVE_OBJECT_KEYS = new Set(SENSITIVE_QUERY_KEYS.map((k) => k.toLowerCase()).concat(['authorization', 'bearer', 'token']));
27
+ const REDACTED = '***REDACTED***';
28
+ /**
29
+ * Matches sensitive keys in query strings, fragments, and standard params.
30
+ * Lookbehind covers: `?`, `&`, `#`, and `&#` (fragment-then-amp) delimiters.
31
+ * Keys are decoded before matching to catch URL-encoded bypass attempts.
32
+ */
33
+ const QUERY_PARAM_REGEX = new RegExp(`(?<=[?&#])(${SENSITIVE_QUERY_KEYS.join('|')})=[^&#\\s]+`, 'gi');
34
+ const BEARER_REGEX = /Bearer\s+[A-Za-z0-9._\-~+/=]+/gi;
35
+ /** Redact sensitive query-param values inside any string. Idempotent. */
36
+ function redactString(s) {
37
+ if (!s)
38
+ return s;
39
+ return s
40
+ .replace(QUERY_PARAM_REGEX, (_full, key) => `${key}=${REDACTED}`)
41
+ .replace(BEARER_REGEX, `Bearer ${REDACTED}`);
42
+ }
43
+ exports.redactString = redactString;
44
+ /** Redact a parsed URL by name; returns redacted href or original on parse error. */
45
+ function redactUrl(u) {
46
+ try {
47
+ const url = new URL(u);
48
+ // Redact query params — URL parser already decoded keys, compare decoded.
49
+ for (const key of SENSITIVE_QUERY_KEYS) {
50
+ if (url.searchParams.has(key))
51
+ url.searchParams.set(key, REDACTED);
52
+ }
53
+ // Also catch URL-encoded key names that URL.searchParams may not normalise
54
+ // (e.g. `?%63%6F%64%65=SECRET`). Decode all keys and re-check.
55
+ for (const [rawKey, rawVal] of [...url.searchParams.entries()]) {
56
+ const decoded = decodeURIComponent(rawKey).toLowerCase();
57
+ if ((SENSITIVE_OBJECT_KEYS.has(decoded) || SENSITIVE_QUERY_KEYS.includes(decoded)) &&
58
+ rawVal !== REDACTED) {
59
+ url.searchParams.set(rawKey, REDACTED);
60
+ }
61
+ }
62
+ // Redact fragment — strip leading `#`, prepend `?` so QUERY_PARAM_REGEX
63
+ // matches the first param (lookbehind requires `?`, `&`, or `#`).
64
+ if (url.hash) {
65
+ const bare = url.hash.slice(1); // remove leading '#'
66
+ const fakeQuery = `?${bare}`;
67
+ const redacted = redactString(fakeQuery);
68
+ url.hash = redacted.slice(1); // put back without the fake '?'
69
+ }
70
+ return url.toString();
71
+ }
72
+ catch {
73
+ return redactString(u);
74
+ }
75
+ }
76
+ exports.redactUrl = redactUrl;
77
+ /**
78
+ * Shallow-redact a plain object. Returns a new object; original is not mutated.
79
+ * Arrays are recursed so token arrays (e.g. `{tokens:[{access_token:'AT'}]}`)
80
+ * do not bypass redaction.
81
+ */
82
+ function redactJsonShallow(input) {
83
+ const out = {};
84
+ for (const [key, value] of Object.entries(input)) {
85
+ if (SENSITIVE_OBJECT_KEYS.has(key.toLowerCase())) {
86
+ out[key] = REDACTED;
87
+ }
88
+ else if (typeof value === 'string') {
89
+ out[key] = redactString(value);
90
+ }
91
+ else if (Array.isArray(value)) {
92
+ out[key] = value.map((item) => item && typeof item === 'object' && !Array.isArray(item)
93
+ ? redactJsonShallow(item)
94
+ : item);
95
+ }
96
+ else if (value && typeof value === 'object') {
97
+ out[key] = redactJsonShallow(value);
98
+ }
99
+ else {
100
+ out[key] = value;
101
+ }
102
+ }
103
+ return out;
104
+ }
105
+ exports.redactJsonShallow = redactJsonShallow;
106
+ /** Redact an Authorization header value. */
107
+ function redactBearer(header) {
108
+ return header.replace(BEARER_REGEX, `Bearer ${REDACTED}`);
109
+ }
110
+ exports.redactBearer = redactBearer;
111
+ exports.REDACTED_PLACEHOLDER = REDACTED;
112
+ //# sourceMappingURL=redactor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redactor.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/redactor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { OAuthTraceSink } from './trace-events';
2
+ /**
3
+ * Append-mode JSONL file sink. Off by default; enabled when callers pass an instance.
4
+ *
5
+ * - File path: `${dir}/oauth-YYYYMMDD.log` (date from `now()` per write call).
6
+ * - Permissions: dir 0o700, file 0o600 (user-only). World-readable would leak machine info.
7
+ * - Failure-tolerant: if write fails (disk full, perm denied), logs once to stderr and
8
+ * keeps dropping events silently — sink must never throw out of `write()`.
9
+ */
10
+ export interface FileSinkOptions {
11
+ dir: string;
12
+ /** Test seam — defaults to `() => new Date()`. */
13
+ now?: () => Date;
14
+ /** Test seam — error notifier (defaults to one-shot stderr write). */
15
+ onError?: (msg: string) => void;
16
+ }
17
+ export declare function createFileSink(options: FileSinkOptions): OAuthTraceSink;
18
+ //# sourceMappingURL=sink-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink-file.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/sink-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjE;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA+DvE"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.createFileSink = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const path = __importStar(require("path"));
29
+ function createFileSink(options) {
30
+ const now = options.now ?? (() => new Date());
31
+ let warned = false;
32
+ const onError = options.onError ??
33
+ ((msg) => {
34
+ if (!warned) {
35
+ warned = true;
36
+ process.stderr.write(`[oauth-trace] file sink disabled: ${msg}\n`);
37
+ }
38
+ });
39
+ let cachedDate = null;
40
+ function ensureDir() {
41
+ fs.mkdirSync(options.dir, { recursive: true, mode: 0o700 });
42
+ }
43
+ function dateStr(d) {
44
+ const yyyy = d.getFullYear().toString().padStart(4, '0');
45
+ const mm = (d.getMonth() + 1).toString().padStart(2, '0');
46
+ const dd = d.getDate().toString().padStart(2, '0');
47
+ return `${yyyy}${mm}${dd}`;
48
+ }
49
+ function pathForToday() {
50
+ const ds = dateStr(now());
51
+ cachedDate = ds;
52
+ return path.join(options.dir, `oauth-${ds}.log`);
53
+ }
54
+ function appendOne(event) {
55
+ const file = pathForToday();
56
+ const line = JSON.stringify(event) + '\n';
57
+ let fd = null;
58
+ try {
59
+ ensureDir();
60
+ fd = fs.openSync(file, 'a', 0o600);
61
+ fs.writeSync(fd, line);
62
+ }
63
+ finally {
64
+ if (fd !== null) {
65
+ try {
66
+ fs.closeSync(fd);
67
+ }
68
+ catch {
69
+ // ignore
70
+ }
71
+ }
72
+ }
73
+ }
74
+ return {
75
+ write(event) {
76
+ try {
77
+ appendOne(event);
78
+ }
79
+ catch (err) {
80
+ onError(err.message);
81
+ }
82
+ },
83
+ async flush() {
84
+ // appendSync paths are flushed per-write; no buffer to drain.
85
+ void cachedDate;
86
+ },
87
+ };
88
+ }
89
+ exports.createFileSink = createFileSink;
90
+ //# sourceMappingURL=sink-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink-file.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/sink-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAmB7B,SAAgB,cAAc,CAAC,OAAwB;IACrD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;QACf,CAAC,CAAC,GAAW,EAAE,EAAE;YACf,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,IAAI,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,GAAG,IAAI,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;IAEL,IAAI,UAAU,GAAkB,IAAI,CAAC;IAErC,SAAS,SAAS;QAChB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,OAAO,CAAC,CAAO;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;IAC7B,CAAC;IAED,SAAS,YAAY;QACnB,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,UAAU,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,SAAS,SAAS,CAAC,KAAsB;QACvC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC1C,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,SAAS,EAAE,CAAC;YACZ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACnC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,KAAK;YACT,IAAI,CAAC;gBACH,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK;YACT,8DAA8D;YAC9D,KAAK,UAAU,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AA/DD,wCA+DC"}
@@ -0,0 +1,13 @@
1
+ import { OAuthTraceEvent, OAuthTraceSink } from './trace-events';
2
+ /** Default ring-buffer capacity. Keeps latest N events; oldest are dropped. */
3
+ export declare const MEMORY_SINK_MAX_EVENTS = 1000;
4
+ /**
5
+ * In-memory ring buffer sink. Used for diagnose-failure analysis after a flow ends.
6
+ * Caps at MAX_EVENTS to bound memory; oldest are dropped when full.
7
+ * `droppedCount` tracks how many events were discarded so callers know data loss occurred.
8
+ */
9
+ export declare function createMemorySink(maxEvents?: number): OAuthTraceSink & {
10
+ snapshot(): OAuthTraceEvent[];
11
+ droppedCount(): number;
12
+ };
13
+ //# sourceMappingURL=sink-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink-memory.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/sink-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjE,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,SAAyB,GACjC,cAAc,GAAG;IAAE,QAAQ,IAAI,eAAe,EAAE,CAAC;IAAC,YAAY,IAAI,MAAM,CAAA;CAAE,CAkB5E"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMemorySink = exports.MEMORY_SINK_MAX_EVENTS = void 0;
4
+ /** Default ring-buffer capacity. Keeps latest N events; oldest are dropped. */
5
+ exports.MEMORY_SINK_MAX_EVENTS = 1000;
6
+ /**
7
+ * In-memory ring buffer sink. Used for diagnose-failure analysis after a flow ends.
8
+ * Caps at MAX_EVENTS to bound memory; oldest are dropped when full.
9
+ * `droppedCount` tracks how many events were discarded so callers know data loss occurred.
10
+ */
11
+ function createMemorySink(maxEvents = exports.MEMORY_SINK_MAX_EVENTS) {
12
+ const events = [];
13
+ let dropped = 0;
14
+ return {
15
+ write(event) {
16
+ if (events.length >= maxEvents) {
17
+ events.shift();
18
+ dropped++;
19
+ }
20
+ events.push(event);
21
+ },
22
+ snapshot() {
23
+ return events.slice();
24
+ },
25
+ droppedCount() {
26
+ return dropped;
27
+ },
28
+ };
29
+ }
30
+ exports.createMemorySink = createMemorySink;
31
+ //# sourceMappingURL=sink-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink-memory.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/sink-memory.ts"],"names":[],"mappings":";;;AAEA,+EAA+E;AAClE,QAAA,sBAAsB,GAAG,IAAI,CAAC;AAE3C;;;;GAIG;AACH,SAAgB,gBAAgB,CAC9B,SAAS,GAAG,8BAAsB;IAElC,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO;QACL,KAAK,CAAC,KAAK;YACT,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,QAAQ;YACN,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,YAAY;YACV,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AApBD,4CAoBC"}
@@ -0,0 +1,11 @@
1
+ import { OAuthTraceSink } from './trace-events';
2
+ /**
3
+ * Verbose stdout sink. Writes one ASCII line per event when verbose=true.
4
+ * Format: `[oauth-trace] +{elapsedMs}ms {phase} {key=val ...}`
5
+ * No emojis (CCS terminal rule). Goes to stderr to avoid mingling with normal stdout.
6
+ */
7
+ export declare function createVerboseStdoutSink(opts: {
8
+ enabled: boolean;
9
+ out?: (line: string) => void;
10
+ }): OAuthTraceSink;
11
+ //# sourceMappingURL=sink-verbose-stdout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink-verbose-stdout.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/sink-verbose-stdout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GAAG,cAAc,CAoBjB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createVerboseStdoutSink = void 0;
4
+ /**
5
+ * Verbose stdout sink. Writes one ASCII line per event when verbose=true.
6
+ * Format: `[oauth-trace] +{elapsedMs}ms {phase} {key=val ...}`
7
+ * No emojis (CCS terminal rule). Goes to stderr to avoid mingling with normal stdout.
8
+ */
9
+ function createVerboseStdoutSink(opts) {
10
+ const out = opts.out ?? ((line) => process.stderr.write(line + '\n'));
11
+ return {
12
+ write(event) {
13
+ if (!opts.enabled)
14
+ return;
15
+ const parts = [];
16
+ parts.push(`[oauth-trace] +${event.elapsedMs}ms ${event.phase}`);
17
+ if (event.data) {
18
+ for (const [k, v] of Object.entries(event.data)) {
19
+ if (v === undefined)
20
+ continue;
21
+ parts.push(`${k}=${formatValue(v)}`);
22
+ }
23
+ }
24
+ if (event.error) {
25
+ parts.push(`error_code=${event.error.code ?? 'unknown'}`);
26
+ parts.push(`error_msg="${event.error.message.replace(/"/g, "'")}"`);
27
+ }
28
+ out(parts.join(' '));
29
+ },
30
+ };
31
+ }
32
+ exports.createVerboseStdoutSink = createVerboseStdoutSink;
33
+ function formatValue(v) {
34
+ if (v === null)
35
+ return 'null';
36
+ if (typeof v === 'string')
37
+ return v.includes(' ') ? `"${v.replace(/"/g, "'")}"` : v;
38
+ if (typeof v === 'number' || typeof v === 'boolean')
39
+ return String(v);
40
+ try {
41
+ return JSON.stringify(v);
42
+ }
43
+ catch {
44
+ return '[unserializable]';
45
+ }
46
+ }
47
+ //# sourceMappingURL=sink-verbose-stdout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink-verbose-stdout.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/sink-verbose-stdout.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,IAGvC;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9E,OAAO;QACL,KAAK,CAAC,KAAK;YACT,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,KAAK,SAAS;wBAAE,SAAS;oBAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;gBAC1D,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACtE,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAvBD,0DAuBC;AAED,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * OAuth trace event taxonomy.
3
+ *
4
+ * Single source of truth for phase IDs that flow through the OAuth pipeline.
5
+ * Additive only — never remove or renumber.
6
+ */
7
+ export declare enum OAuthTracePhase {
8
+ PreflightStart = "preflight.start",
9
+ PreflightOk = "preflight.ok",
10
+ PreflightPortBlocked = "preflight.port_blocked",
11
+ BinarySpawn = "binary.spawn",
12
+ BinaryStdout = "binary.stdout",
13
+ BinaryStderr = "binary.stderr",
14
+ BinaryExit = "binary.exit",
15
+ AuthUrlDisplayed = "auth.url_displayed",
16
+ BrowserOpened = "browser.opened",
17
+ CallbackObservedHeuristic = "callback.observed_heuristic",
18
+ PasteCallbackPrompted = "paste.prompted",
19
+ PasteCallbackReceived = "paste.received",
20
+ PasteCallbackInvalid = "paste.invalid",
21
+ PasteCallbackSubmitted = "paste.submitted",
22
+ TokenExchangePending = "token.exchange_pending",
23
+ TokenFileAppeared = "token.file_appeared",
24
+ TokenFileMissing = "token.file_missing",
25
+ ProjectSelectionPrompted = "project.selection_prompted",
26
+ ProjectSelectionResolved = "project.selection_resolved",
27
+ AgyResponsibilityPrompted = "agy.responsibility_prompted",
28
+ AgyResponsibilityResolved = "agy.responsibility_resolved",
29
+ Timeout = "timeout",
30
+ Cancelled = "cancelled",
31
+ Error = "error"
32
+ }
33
+ /** A single OAuth trace event. `data` MUST be redacted before construction. */
34
+ export interface OAuthTraceEvent {
35
+ sessionId: string;
36
+ provider: string;
37
+ phase: OAuthTracePhase;
38
+ ts: number;
39
+ elapsedMs: number;
40
+ data?: Record<string, unknown>;
41
+ error?: {
42
+ code?: string;
43
+ message: string;
44
+ };
45
+ }
46
+ /** Sink interface — accept events that have already been redacted. */
47
+ export interface OAuthTraceSink {
48
+ write(event: OAuthTraceEvent): void;
49
+ flush?(): Promise<void>;
50
+ }
51
+ //# sourceMappingURL=trace-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-events.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/trace-events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,eAAe;IAEzB,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,oBAAoB,2BAA2B;IAG/C,WAAW,iBAAiB;IAC5B,YAAY,kBAAkB;IAC9B,YAAY,kBAAkB;IAC9B,UAAU,gBAAgB;IAG1B,gBAAgB,uBAAuB;IACvC,aAAa,mBAAmB;IAChC,yBAAyB,gCAAgC;IAGzD,qBAAqB,mBAAmB;IACxC,qBAAqB,mBAAmB;IACxC,oBAAoB,kBAAkB;IACtC,sBAAsB,oBAAoB;IAG1C,oBAAoB,2BAA2B;IAC/C,iBAAiB,wBAAwB;IACzC,gBAAgB,uBAAuB;IAGvC,wBAAwB,+BAA+B;IACvD,wBAAwB,+BAA+B;IACvD,yBAAyB,gCAAgC;IACzD,yBAAyB,gCAAgC;IAGzD,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,eAAe,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * OAuth trace event taxonomy.
4
+ *
5
+ * Single source of truth for phase IDs that flow through the OAuth pipeline.
6
+ * Additive only — never remove or renumber.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OAuthTracePhase = void 0;
10
+ var OAuthTracePhase;
11
+ (function (OAuthTracePhase) {
12
+ // Pre-flight
13
+ OAuthTracePhase["PreflightStart"] = "preflight.start";
14
+ OAuthTracePhase["PreflightOk"] = "preflight.ok";
15
+ OAuthTracePhase["PreflightPortBlocked"] = "preflight.port_blocked";
16
+ // Binary process lifecycle (CLIProxyAPI Go binary)
17
+ OAuthTracePhase["BinarySpawn"] = "binary.spawn";
18
+ OAuthTracePhase["BinaryStdout"] = "binary.stdout";
19
+ OAuthTracePhase["BinaryStderr"] = "binary.stderr";
20
+ OAuthTracePhase["BinaryExit"] = "binary.exit";
21
+ // Browser / URL flow (Authorization Code)
22
+ OAuthTracePhase["AuthUrlDisplayed"] = "auth.url_displayed";
23
+ OAuthTracePhase["BrowserOpened"] = "browser.opened";
24
+ OAuthTracePhase["CallbackObservedHeuristic"] = "callback.observed_heuristic";
25
+ // Paste-callback (CCS-owned end-to-end)
26
+ OAuthTracePhase["PasteCallbackPrompted"] = "paste.prompted";
27
+ OAuthTracePhase["PasteCallbackReceived"] = "paste.received";
28
+ OAuthTracePhase["PasteCallbackInvalid"] = "paste.invalid";
29
+ OAuthTracePhase["PasteCallbackSubmitted"] = "paste.submitted";
30
+ // Token exchange + persistence
31
+ OAuthTracePhase["TokenExchangePending"] = "token.exchange_pending";
32
+ OAuthTracePhase["TokenFileAppeared"] = "token.file_appeared";
33
+ OAuthTracePhase["TokenFileMissing"] = "token.file_missing";
34
+ // Provider-specific gates (Phase 4/5 extend)
35
+ OAuthTracePhase["ProjectSelectionPrompted"] = "project.selection_prompted";
36
+ OAuthTracePhase["ProjectSelectionResolved"] = "project.selection_resolved";
37
+ OAuthTracePhase["AgyResponsibilityPrompted"] = "agy.responsibility_prompted";
38
+ OAuthTracePhase["AgyResponsibilityResolved"] = "agy.responsibility_resolved";
39
+ // Terminal states
40
+ OAuthTracePhase["Timeout"] = "timeout";
41
+ OAuthTracePhase["Cancelled"] = "cancelled";
42
+ OAuthTracePhase["Error"] = "error";
43
+ })(OAuthTracePhase || (exports.OAuthTracePhase = OAuthTracePhase = {}));
44
+ //# sourceMappingURL=trace-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-events.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/trace-events.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,IAAY,eAsCX;AAtCD,WAAY,eAAe;IACzB,aAAa;IACb,qDAAkC,CAAA;IAClC,+CAA4B,CAAA;IAC5B,kEAA+C,CAAA;IAE/C,mDAAmD;IACnD,+CAA4B,CAAA;IAC5B,iDAA8B,CAAA;IAC9B,iDAA8B,CAAA;IAC9B,6CAA0B,CAAA;IAE1B,0CAA0C;IAC1C,0DAAuC,CAAA;IACvC,mDAAgC,CAAA;IAChC,4EAAyD,CAAA;IAEzD,wCAAwC;IACxC,2DAAwC,CAAA;IACxC,2DAAwC,CAAA;IACxC,yDAAsC,CAAA;IACtC,6DAA0C,CAAA;IAE1C,+BAA+B;IAC/B,kEAA+C,CAAA;IAC/C,4DAAyC,CAAA;IACzC,0DAAuC,CAAA;IAEvC,6CAA6C;IAC7C,0EAAuD,CAAA;IACvD,0EAAuD,CAAA;IACvD,4EAAyD,CAAA;IACzD,4EAAyD,CAAA;IAEzD,kBAAkB;IAClB,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,kCAAe,CAAA;AACjB,CAAC,EAtCW,eAAe,+BAAf,eAAe,QAsC1B"}
@@ -0,0 +1,34 @@
1
+ import { OAuthTraceEvent, OAuthTracePhase, OAuthTraceSink } from './trace-events';
2
+ export interface OAuthTraceRecorder {
3
+ record(phase: OAuthTracePhase, data?: Record<string, unknown>, error?: {
4
+ code?: string;
5
+ message: string;
6
+ } | Error): void;
7
+ snapshot(): OAuthTraceEvent[];
8
+ summary(): {
9
+ totalMs: number;
10
+ phaseCounts: Record<string, number>;
11
+ lastPhase?: OAuthTracePhase;
12
+ };
13
+ flush(): Promise<void>;
14
+ }
15
+ export interface OAuthTraceRecorderOptions {
16
+ sessionId: string;
17
+ provider: string;
18
+ verbose: boolean;
19
+ fileSink?: OAuthTraceSink;
20
+ /** Test seam — defaults to `Date.now`. */
21
+ now?: () => number;
22
+ /** Test seam — override verbose sink output channel. */
23
+ verboseOut?: (line: string) => void;
24
+ }
25
+ /**
26
+ * Create a per-attempt recorder. Always wires:
27
+ * - memory sink (read via `snapshot()`)
28
+ * - verbose stdout sink (no-op when verbose=false)
29
+ * - optional file sink (Phase 8)
30
+ *
31
+ * All event data passes through the redactor before reaching any sink.
32
+ */
33
+ export declare function createOAuthTraceRecorder(options: OAuthTraceRecorderOptions): OAuthTraceRecorder;
34
+ //# sourceMappingURL=trace-recorder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-recorder.d.ts","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/trace-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKlF,MAAM,WAAW,kBAAkB;IACjC,MAAM,CACJ,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,GACjD,IAAI,CAAC;IACR,QAAQ,IAAI,eAAe,EAAE,CAAC;IAC9B,OAAO,IAAI;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B,CAAC;IACF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAmE/F"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createOAuthTraceRecorder = void 0;
4
+ const sink_memory_1 = require("./sink-memory");
5
+ const sink_verbose_stdout_1 = require("./sink-verbose-stdout");
6
+ const redactor_1 = require("./redactor");
7
+ /**
8
+ * Create a per-attempt recorder. Always wires:
9
+ * - memory sink (read via `snapshot()`)
10
+ * - verbose stdout sink (no-op when verbose=false)
11
+ * - optional file sink (Phase 8)
12
+ *
13
+ * All event data passes through the redactor before reaching any sink.
14
+ */
15
+ function createOAuthTraceRecorder(options) {
16
+ const now = options.now ?? Date.now;
17
+ const start = now();
18
+ const memory = (0, sink_memory_1.createMemorySink)();
19
+ const verbose = (0, sink_verbose_stdout_1.createVerboseStdoutSink)({ enabled: options.verbose, out: options.verboseOut });
20
+ const sinks = [memory, verbose];
21
+ if (options.fileSink)
22
+ sinks.push(options.fileSink);
23
+ const phaseCounts = {};
24
+ let lastPhase;
25
+ function toErrorObj(err) {
26
+ if (!err)
27
+ return undefined;
28
+ if (err instanceof Error) {
29
+ return { message: err.message };
30
+ }
31
+ return { code: err.code, message: err.message };
32
+ }
33
+ return {
34
+ record(phase, data, error) {
35
+ const ts = now();
36
+ const elapsedMs = ts - start;
37
+ const redacted = data ? (0, redactor_1.redactJsonShallow)(data) : undefined;
38
+ const event = {
39
+ sessionId: options.sessionId,
40
+ provider: options.provider,
41
+ phase,
42
+ ts,
43
+ elapsedMs,
44
+ data: redacted,
45
+ error: toErrorObj(error),
46
+ };
47
+ phaseCounts[phase] = (phaseCounts[phase] ?? 0) + 1;
48
+ lastPhase = phase;
49
+ for (const sink of sinks) {
50
+ try {
51
+ sink.write(event);
52
+ }
53
+ catch {
54
+ // Sinks must never throw out — drop on failure.
55
+ }
56
+ }
57
+ },
58
+ snapshot() {
59
+ return memory.snapshot();
60
+ },
61
+ summary() {
62
+ return {
63
+ totalMs: now() - start,
64
+ phaseCounts: { ...phaseCounts },
65
+ lastPhase,
66
+ };
67
+ },
68
+ async flush() {
69
+ for (const sink of sinks) {
70
+ if (sink.flush) {
71
+ try {
72
+ await sink.flush();
73
+ }
74
+ catch {
75
+ // ignore
76
+ }
77
+ }
78
+ }
79
+ },
80
+ };
81
+ }
82
+ exports.createOAuthTraceRecorder = createOAuthTraceRecorder;
83
+ //# sourceMappingURL=trace-recorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-recorder.js","sourceRoot":"","sources":["../../../../src/cliproxy/auth/oauth-trace/trace-recorder.ts"],"names":[],"mappings":";;;AACA,+CAAiD;AACjD,+DAAgE;AAChE,yCAA+C;AA4B/C;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CAAC,OAAkC;IACzE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,IAAA,8BAAgB,GAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAA,6CAAuB,EAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,WAAW,GAA2B,EAAE,CAAC;IAC/C,IAAI,SAAsC,CAAC;IAE3C,SAAS,UAAU,CACjB,GAA2D;QAE3D,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;IAED,OAAO;QACL,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK;YACvB,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,MAAM,KAAK,GAAoB;gBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK;gBACL,EAAE;gBACF,SAAS;gBACT,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;aACzB,CAAC;YACF,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnD,SAAS,GAAG,KAAK,CAAC;YAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;gBAAC,MAAM,CAAC;oBACP,gDAAgD;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QACD,QAAQ;YACN,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO;YACL,OAAO;gBACL,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK;gBACtB,WAAW,EAAE,EAAE,GAAG,WAAW,EAAE;gBAC/B,SAAS;aACV,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,KAAK;YACT,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC;oBAAC,MAAM,CAAC;wBACP,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAnED,4DAmEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaitranntt/ccs",
3
- "version": "7.77.1-dev.10",
3
+ "version": "7.77.1-dev.11",
4
4
  "description": "Claude Code Switch - Instant profile switching between Claude, GLM, Kimi, and more",
5
5
  "keywords": [
6
6
  "cli",