@urateam/core 0.1.31 → 0.1.33

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 (177) hide show
  1. package/dist/__tests__/agent-stream.test.js +35 -1
  2. package/dist/__tests__/agent-stream.test.js.map +1 -1
  3. package/dist/__tests__/audit-immutability.test.js +7 -1
  4. package/dist/__tests__/audit-immutability.test.js.map +1 -1
  5. package/dist/__tests__/auth-monitor.test.d.ts +2 -0
  6. package/dist/__tests__/auth-monitor.test.d.ts.map +1 -0
  7. package/dist/__tests__/auth-monitor.test.js +253 -0
  8. package/dist/__tests__/auth-monitor.test.js.map +1 -0
  9. package/dist/__tests__/bec-186-repro.test.d.ts +16 -0
  10. package/dist/__tests__/bec-186-repro.test.d.ts.map +1 -0
  11. package/dist/__tests__/bec-186-repro.test.js +223 -0
  12. package/dist/__tests__/bec-186-repro.test.js.map +1 -0
  13. package/dist/__tests__/control-signals.test.d.ts +2 -0
  14. package/dist/__tests__/control-signals.test.d.ts.map +1 -0
  15. package/dist/__tests__/control-signals.test.js +77 -0
  16. package/dist/__tests__/control-signals.test.js.map +1 -0
  17. package/dist/__tests__/db-migrations.test.d.ts +2 -0
  18. package/dist/__tests__/db-migrations.test.d.ts.map +1 -0
  19. package/dist/__tests__/db-migrations.test.js +237 -0
  20. package/dist/__tests__/db-migrations.test.js.map +1 -0
  21. package/dist/__tests__/executor-issue-id.test.js +2 -0
  22. package/dist/__tests__/executor-issue-id.test.js.map +1 -1
  23. package/dist/__tests__/pm-slack-interface.test.js +45 -0
  24. package/dist/__tests__/pm-slack-interface.test.js.map +1 -1
  25. package/dist/__tests__/pm-triage.test.js +101 -0
  26. package/dist/__tests__/pm-triage.test.js.map +1 -1
  27. package/dist/__tests__/post-fanout-comments.test.js +36 -0
  28. package/dist/__tests__/post-fanout-comments.test.js.map +1 -1
  29. package/dist/__tests__/preflight-claude-auth.test.d.ts +2 -0
  30. package/dist/__tests__/preflight-claude-auth.test.d.ts.map +1 -0
  31. package/dist/__tests__/preflight-claude-auth.test.js +36 -0
  32. package/dist/__tests__/preflight-claude-auth.test.js.map +1 -0
  33. package/dist/__tests__/resolve-claude-auth.test.d.ts +2 -0
  34. package/dist/__tests__/resolve-claude-auth.test.d.ts.map +1 -0
  35. package/dist/__tests__/resolve-claude-auth.test.js +129 -0
  36. package/dist/__tests__/resolve-claude-auth.test.js.map +1 -0
  37. package/dist/__tests__/stage-models.test.js +4 -0
  38. package/dist/__tests__/stage-models.test.js.map +1 -1
  39. package/dist/__tests__/util-linear.test.d.ts +10 -0
  40. package/dist/__tests__/util-linear.test.d.ts.map +1 -0
  41. package/dist/__tests__/util-linear.test.js +244 -0
  42. package/dist/__tests__/util-linear.test.js.map +1 -0
  43. package/dist/audit/events.d.ts +37 -0
  44. package/dist/audit/events.d.ts.map +1 -1
  45. package/dist/audit/events.js +53 -0
  46. package/dist/audit/events.js.map +1 -1
  47. package/dist/db/client.d.ts.map +1 -1
  48. package/dist/db/client.js +8 -0
  49. package/dist/db/client.js.map +1 -1
  50. package/dist/db/migrations/postgres/014_missing_indexes.sql +28 -0
  51. package/dist/db/migrations/sqlite/013_missing_indexes.sql +28 -0
  52. package/dist/executor/agent-stream.d.ts +16 -0
  53. package/dist/executor/agent-stream.d.ts.map +1 -1
  54. package/dist/executor/agent-stream.js +43 -1
  55. package/dist/executor/agent-stream.js.map +1 -1
  56. package/dist/executor/auth-check.d.ts +39 -0
  57. package/dist/executor/auth-check.d.ts.map +1 -1
  58. package/dist/executor/auth-check.js +31 -0
  59. package/dist/executor/auth-check.js.map +1 -1
  60. package/dist/executor/auth-monitor.d.ts +40 -0
  61. package/dist/executor/auth-monitor.d.ts.map +1 -0
  62. package/dist/executor/auth-monitor.js +114 -0
  63. package/dist/executor/auth-monitor.js.map +1 -0
  64. package/dist/executor/executor.d.ts.map +1 -1
  65. package/dist/executor/executor.js +7 -2
  66. package/dist/executor/executor.js.map +1 -1
  67. package/dist/executor/index.d.ts +2 -0
  68. package/dist/executor/index.d.ts.map +1 -1
  69. package/dist/executor/index.js +2 -0
  70. package/dist/executor/index.js.map +1 -1
  71. package/dist/executor/review/post-fanout-comments.d.ts +8 -0
  72. package/dist/executor/review/post-fanout-comments.d.ts.map +1 -1
  73. package/dist/executor/review/post-fanout-comments.js +23 -3
  74. package/dist/executor/review/post-fanout-comments.js.map +1 -1
  75. package/dist/index.d.ts +3 -1
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +3 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/notifier/composite.d.ts +1 -0
  80. package/dist/notifier/composite.d.ts.map +1 -1
  81. package/dist/notifier/composite.js +3 -0
  82. package/dist/notifier/composite.js.map +1 -1
  83. package/dist/notifier/linear.d.ts +1 -0
  84. package/dist/notifier/linear.d.ts.map +1 -1
  85. package/dist/notifier/linear.js +7 -0
  86. package/dist/notifier/linear.js.map +1 -1
  87. package/dist/pipeline/control-signals.d.ts +49 -0
  88. package/dist/pipeline/control-signals.d.ts.map +1 -0
  89. package/dist/pipeline/control-signals.js +93 -0
  90. package/dist/pipeline/control-signals.js.map +1 -0
  91. package/dist/pipeline/feedback-pipeline.d.ts +140 -0
  92. package/dist/pipeline/feedback-pipeline.d.ts.map +1 -0
  93. package/dist/pipeline/feedback-pipeline.js +427 -0
  94. package/dist/pipeline/feedback-pipeline.js.map +1 -0
  95. package/dist/pipeline/index.d.ts +1 -0
  96. package/dist/pipeline/index.d.ts.map +1 -1
  97. package/dist/pipeline/index.js +1 -0
  98. package/dist/pipeline/index.js.map +1 -1
  99. package/dist/pipeline/runner.d.ts +49 -33
  100. package/dist/pipeline/runner.d.ts.map +1 -1
  101. package/dist/pipeline/runner.js +143 -350
  102. package/dist/pipeline/runner.js.map +1 -1
  103. package/dist/pm/actions/promote.d.ts.map +1 -1
  104. package/dist/pm/actions/promote.js +15 -11
  105. package/dist/pm/actions/promote.js.map +1 -1
  106. package/dist/pm/actions/recover-stuck.d.ts.map +1 -1
  107. package/dist/pm/actions/recover-stuck.js +9 -5
  108. package/dist/pm/actions/recover-stuck.js.map +1 -1
  109. package/dist/pm/actions/triage.d.ts.map +1 -1
  110. package/dist/pm/actions/triage.js +67 -1
  111. package/dist/pm/actions/triage.js.map +1 -1
  112. package/dist/pm/linear-helpers.d.ts +10 -0
  113. package/dist/pm/linear-helpers.d.ts.map +1 -1
  114. package/dist/pm/linear-helpers.js +13 -21
  115. package/dist/pm/linear-helpers.js.map +1 -1
  116. package/dist/pm/pause-state.d.ts +29 -0
  117. package/dist/pm/pause-state.d.ts.map +1 -0
  118. package/dist/pm/pause-state.js +34 -0
  119. package/dist/pm/pause-state.js.map +1 -0
  120. package/dist/pm/scheduler.d.ts.map +1 -1
  121. package/dist/pm/scheduler.js +19 -0
  122. package/dist/pm/scheduler.js.map +1 -1
  123. package/dist/pm/slack-bulk.d.ts +34 -0
  124. package/dist/pm/slack-bulk.d.ts.map +1 -0
  125. package/dist/pm/slack-bulk.js +110 -0
  126. package/dist/pm/slack-bulk.js.map +1 -0
  127. package/dist/pm/slack-commands.d.ts +101 -0
  128. package/dist/pm/slack-commands.d.ts.map +1 -0
  129. package/dist/pm/slack-commands.js +309 -0
  130. package/dist/pm/slack-commands.js.map +1 -0
  131. package/dist/pm/slack-helpers.d.ts +10 -0
  132. package/dist/pm/slack-helpers.d.ts.map +1 -1
  133. package/dist/pm/slack-helpers.js +32 -0
  134. package/dist/pm/slack-helpers.js.map +1 -1
  135. package/dist/pm/slack-interface.d.ts +32 -58
  136. package/dist/pm/slack-interface.d.ts.map +1 -1
  137. package/dist/pm/slack-interface.js +150 -320
  138. package/dist/pm/slack-interface.js.map +1 -1
  139. package/dist/rbac/matrix.d.ts +2 -0
  140. package/dist/rbac/matrix.d.ts.map +1 -1
  141. package/dist/rbac/matrix.js +2 -0
  142. package/dist/rbac/matrix.js.map +1 -1
  143. package/dist/release-manager/index.d.ts +2 -0
  144. package/dist/release-manager/index.d.ts.map +1 -1
  145. package/dist/release-manager/index.js +2 -0
  146. package/dist/release-manager/index.js.map +1 -1
  147. package/dist/release-manager/release-helpers.d.ts +112 -0
  148. package/dist/release-manager/release-helpers.d.ts.map +1 -0
  149. package/dist/release-manager/release-helpers.js +164 -0
  150. package/dist/release-manager/release-helpers.js.map +1 -0
  151. package/dist/release-manager/release-tick.d.ts +101 -0
  152. package/dist/release-manager/release-tick.d.ts.map +1 -0
  153. package/dist/release-manager/release-tick.js +374 -0
  154. package/dist/release-manager/release-tick.js.map +1 -0
  155. package/dist/release-manager/scheduler.d.ts +28 -3
  156. package/dist/release-manager/scheduler.d.ts.map +1 -1
  157. package/dist/release-manager/scheduler.js +41 -417
  158. package/dist/release-manager/scheduler.js.map +1 -1
  159. package/dist/server.d.ts.map +1 -1
  160. package/dist/server.js +10 -0
  161. package/dist/server.js.map +1 -1
  162. package/dist/sync/gh-linear-sync.d.ts.map +1 -1
  163. package/dist/sync/gh-linear-sync.js +2 -2
  164. package/dist/sync/gh-linear-sync.js.map +1 -1
  165. package/dist/types.d.ts +22 -4
  166. package/dist/types.d.ts.map +1 -1
  167. package/dist/types.js +10 -0
  168. package/dist/types.js.map +1 -1
  169. package/dist/util/linear.d.ts +70 -0
  170. package/dist/util/linear.d.ts.map +1 -0
  171. package/dist/util/linear.js +108 -0
  172. package/dist/util/linear.js.map +1 -0
  173. package/dist/webhook/github-handler.d.ts +7 -1
  174. package/dist/webhook/github-handler.d.ts.map +1 -1
  175. package/dist/webhook/github-handler.js +82 -38
  176. package/dist/webhook/github-handler.js.map +1 -1
  177. package/package.json +1 -1
@@ -38,6 +38,18 @@ export class StagePreStreamStalledError extends Error {
38
38
  this.name = "StagePreStreamStalledError";
39
39
  }
40
40
  }
41
+ /**
42
+ * Thrown when a stage's agent stream is interrupted via the abort signal
43
+ * (operator-initiated cancel). Distinct from the timeout errors because the
44
+ * runner uses the error class to decide how to mark the run (`aborted`, not
45
+ * `failed`).
46
+ */
47
+ export class StageCancelledError extends Error {
48
+ constructor() {
49
+ super("stage cancelled by operator");
50
+ this.name = "StageCancelledError";
51
+ }
52
+ }
41
53
  /**
42
54
  * Consume an Agent SDK message stream, accumulating token usage and
43
55
  * extracting the last assistant text content.
@@ -47,6 +59,11 @@ export class StagePreStreamStalledError extends Error {
47
59
  * the iteration boilerplate.
48
60
  */
49
61
  export async function consumeAgentStream(messages, options) {
62
+ // Honour a pre-aborted signal immediately so callers can short-circuit
63
+ // without paying for an iterator setup.
64
+ if (options?.abortSignal?.aborted) {
65
+ throw new StageCancelledError();
66
+ }
50
67
  let inputTokens = 0;
51
68
  let outputTokens = 0;
52
69
  let cacheCreationInputTokens = 0;
@@ -66,6 +83,7 @@ export async function consumeAgentStream(messages, options) {
66
83
  let firstMessageReceived = false;
67
84
  const iterator = messages[Symbol.asyncIterator]();
68
85
  const STALLED = { __stalled: true };
86
+ const ABORTED = { __aborted: true };
69
87
  while (true) {
70
88
  const stallRemaining = stallTimeoutMs - (Date.now() - lastTokenAdvanceAt);
71
89
  // First-message timeout: only active until the first real message arrives.
@@ -86,9 +104,33 @@ export async function consumeAgentStream(messages, options) {
86
104
  const stallPromise = new Promise((resolve) => {
87
105
  stallTimer = setTimeout(() => resolve(STALLED), remainingUntilTimeout);
88
106
  });
89
- const raced = await Promise.race([next, stallPromise]);
107
+ // Race the abort signal in alongside next + stallPromise. We re-create the
108
+ // listener each iteration so it cleans up automatically (removeEventListener
109
+ // below) and an external abort fires within one iteration tick.
110
+ let abortListener;
111
+ const abortPromise = new Promise((resolve) => {
112
+ if (!options?.abortSignal)
113
+ return; // Promise never resolves — Promise.race ignores it
114
+ if (options.abortSignal.aborted) {
115
+ resolve(ABORTED);
116
+ return;
117
+ }
118
+ abortListener = () => resolve(ABORTED);
119
+ options.abortSignal.addEventListener("abort", abortListener, { once: true });
120
+ });
121
+ const raced = await Promise.race([next, stallPromise, abortPromise]);
90
122
  if (stallTimer)
91
123
  clearTimeout(stallTimer);
124
+ if (abortListener && options?.abortSignal) {
125
+ options.abortSignal.removeEventListener("abort", abortListener);
126
+ }
127
+ if (raced === ABORTED) {
128
+ // Operator-initiated cancel. Same .return() best-effort cleanup as the
129
+ // stall path; the agent generator may be parked on a never-resolving
130
+ // await, in which case GC handles eventual release.
131
+ iterator.return?.()?.catch((err) => log.debug({ err }, "iterator cleanup failed on abort"));
132
+ throw new StageCancelledError();
133
+ }
92
134
  if (raced === STALLED) {
93
135
  // Defensive race-loss check: if the iterator settled in the same tick
94
136
  // as the timer fired, prefer the message we already have. The
@@ -1 +1 @@
1
- {"version":3,"file":"agent-stream.js","sourceRoot":"","sources":["../../src/executor/agent-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-stream.js","sourceRoot":"","sources":["../../src/executor/agent-stream.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,47 @@
1
+ /**
2
+ * The resolved Claude authentication method.
3
+ * Precedence: CLAUDE_CODE_OAUTH_TOKEN → ANTHROPIC_API_KEY → mounted session.
4
+ *
5
+ * Deliberately does NOT surface the raw token value: the Agent SDK reads
6
+ * CLAUDE_CODE_OAUTH_TOKEN / ANTHROPIC_API_KEY from `process.env` directly,
7
+ * so callers never need it. Returning the credential value here would make
8
+ * it easy for a future caller to accidentally serialise the whole struct
9
+ * into a log line and leak the token (pino, console, audit payloads, etc.).
10
+ */
11
+ export interface ClaudeAuthCredentials {
12
+ /**
13
+ * Which auth path was selected:
14
+ * - "oauth-token" — CLAUDE_CODE_OAUTH_TOKEN env var is present (long-lived
15
+ * programmatic token produced by `claude setup-token`, bills against
16
+ * Pro/Max subscription, no weekly expiry)
17
+ * - "api-key" — ANTHROPIC_API_KEY env var is present (pay-per-token,
18
+ * no expiry)
19
+ * - "session" — neither env var is set; falls back to the locally
20
+ * mounted `claude login` session (~/.config/claude/), which expires ~weekly
21
+ */
22
+ method: "oauth-token" | "api-key" | "session";
23
+ }
24
+ /**
25
+ * Resolve which Claude auth method is active based on environment variables.
26
+ * Implements the precedence order documented in deploy/CLAUDE_AUTH.md:
27
+ * 1. CLAUDE_CODE_OAUTH_TOKEN (long-lived, subscription-billed)
28
+ * 2. ANTHROPIC_API_KEY (long-lived, pay-per-token)
29
+ * 3. Local CLI session (mounted credentials, ~weekly expiry)
30
+ *
31
+ * Call this once per executeStage invocation so the auth method is logged
32
+ * alongside the stage, run-id, and issue-id fields for observability.
33
+ */
34
+ export declare function resolveClaudeAuth(): ClaudeAuthCredentials;
1
35
  /**
2
36
  * Validates Claude auth credentials by running `claude auth status`.
3
37
  * Results are cached for 5 minutes to avoid hammering the CLI on every call.
4
38
  * Uses a single-flight pattern so concurrent callers share one subprocess.
5
39
  * Returns true if auth is valid, false otherwise.
40
+ *
41
+ * **Short-circuits to true when CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY
42
+ * is present** — those paths have no session-lifetime semantics and the
43
+ * subprocess check is unnecessary (and would be incorrect if no local
44
+ * `claude` CLI is installed).
6
45
  */
7
46
  export declare function isClaudeAuthValid(): Promise<boolean>;
8
47
  /** Reset the cached auth check (e.g., after a refresh attempt). */
@@ -1 +1 @@
1
- {"version":3,"file":"auth-check.d.ts","sourceRoot":"","sources":["../../src/executor/auth-check.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CA8B1D;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
1
+ {"version":3,"file":"auth-check.d.ts","sourceRoot":"","sources":["../../src/executor/auth-check.ts"],"names":[],"mappings":"AAcA;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;OASG;IACH,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,qBAAqB,CAQzD;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAmC1D;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
@@ -5,13 +5,44 @@ let lastCheckTime = 0;
5
5
  let lastCheckResult = false;
6
6
  let inflightCheck = null;
7
7
  const CHECK_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
8
+ /**
9
+ * Resolve which Claude auth method is active based on environment variables.
10
+ * Implements the precedence order documented in deploy/CLAUDE_AUTH.md:
11
+ * 1. CLAUDE_CODE_OAUTH_TOKEN (long-lived, subscription-billed)
12
+ * 2. ANTHROPIC_API_KEY (long-lived, pay-per-token)
13
+ * 3. Local CLI session (mounted credentials, ~weekly expiry)
14
+ *
15
+ * Call this once per executeStage invocation so the auth method is logged
16
+ * alongside the stage, run-id, and issue-id fields for observability.
17
+ */
18
+ export function resolveClaudeAuth() {
19
+ if (process.env.CLAUDE_CODE_OAUTH_TOKEN) {
20
+ return { method: "oauth-token" };
21
+ }
22
+ if (process.env.ANTHROPIC_API_KEY) {
23
+ return { method: "api-key" };
24
+ }
25
+ return { method: "session" };
26
+ }
27
+ // ---------------------------------------------------------------------------
28
+ // isClaudeAuthValid — session-lifetime gate for the mounted-session path
29
+ // ---------------------------------------------------------------------------
8
30
  /**
9
31
  * Validates Claude auth credentials by running `claude auth status`.
10
32
  * Results are cached for 5 minutes to avoid hammering the CLI on every call.
11
33
  * Uses a single-flight pattern so concurrent callers share one subprocess.
12
34
  * Returns true if auth is valid, false otherwise.
35
+ *
36
+ * **Short-circuits to true when CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY
37
+ * is present** — those paths have no session-lifetime semantics and the
38
+ * subprocess check is unnecessary (and would be incorrect if no local
39
+ * `claude` CLI is installed).
13
40
  */
14
41
  export async function isClaudeAuthValid() {
42
+ // Long-lived token paths — no session-lifetime semantics, always valid.
43
+ if (process.env.CLAUDE_CODE_OAUTH_TOKEN || process.env.ANTHROPIC_API_KEY) {
44
+ return true;
45
+ }
15
46
  const now = Date.now();
16
47
  if (now - lastCheckTime < CHECK_INTERVAL_MS) {
17
48
  return lastCheckResult;
@@ -1 +1 @@
1
- {"version":3,"file":"auth-check.js","sourceRoot":"","sources":["../../src/executor/auth-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;AAErD,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAI,aAAa,GAA4B,IAAI,CAAC;AAClD,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAErD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,aAAa,GAAG,iBAAiB,EAAE,CAAC;QAC5C,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,sEAAsE;IACtE,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;oBAClE,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,EAAE,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,eAAe,GAAG,IAAI,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,eAAe,GAAG,KAAK,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QACxF,CAAC;gBAAS,CAAC;YACT,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB;IACjC,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"auth-check.js","sourceRoot":"","sources":["../../src/executor/auth-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;AAErD,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAI,aAAa,GAA4B,IAAI,CAAC;AAClD,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AA8BrD;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QACxC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC;AAED,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,wEAAwE;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,aAAa,GAAG,iBAAiB,EAAE,CAAC;QAC5C,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,sEAAsE;IACtE,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;oBAClE,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,EAAE,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,eAAe,GAAG,IAAI,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,eAAe,GAAG,KAAK,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QACxF,CAAC;gBAAS,CAAC;YACT,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB;IACjC,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { AnyDb } from "../db/client.js";
2
+ /** Default check interval: 6 hours */
3
+ export declare const AUTH_MONITOR_INTERVAL_MS: number;
4
+ export interface AuthMonitorOptions {
5
+ /** Slack bot token for posting alerts. Optional — skips Slack if absent. */
6
+ slackBotToken?: string;
7
+ /**
8
+ * Slack channel ID for auth expiry alerts.
9
+ * Typically PM_AGENT_SLACK_CHANNEL_ID when SLACK_ERROR_ALERTS=true.
10
+ */
11
+ slackErrorChannel?: string;
12
+ /** Database for writing claude.auth_expired audit events. Optional. */
13
+ db?: AnyDb;
14
+ }
15
+ /**
16
+ * Run the periodic Claude auth health-check.
17
+ *
18
+ * Call this from the PM scheduler tick with a 6-hour throttle. The function
19
+ * is idempotent and safe to call more frequently — it will no-op until the
20
+ * interval has elapsed.
21
+ *
22
+ * @param lastCheckTime - Unix-ms timestamp of the last successful check run.
23
+ * Pass 0 on first call. The caller stores and passes back the returned value.
24
+ * @returns Updated lastCheckTime (pass back on next call).
25
+ */
26
+ export declare function runAuthMonitorCheck(lastCheckTime: number, opts: AuthMonitorOptions, intervalMs?: number): Promise<number>;
27
+ /**
28
+ * Stateful AuthMonitor factory.
29
+ * Creates a closure that tracks `lastCheckTime` across repeated calls,
30
+ * so callers don't need to manage the timestamp themselves.
31
+ */
32
+ export declare function createAuthMonitor(opts: AuthMonitorOptions, intervalMs?: number): {
33
+ /**
34
+ * Run the auth check if the interval has elapsed.
35
+ * Fire-and-forget safe — errors are logged but never thrown.
36
+ */
37
+ tick(): Promise<void>;
38
+ };
39
+ export type AuthMonitor = ReturnType<typeof createAuthMonitor>;
40
+ //# sourceMappingURL=auth-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-monitor.d.ts","sourceRoot":"","sources":["../../src/executor/auth-monitor.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAI7C,sCAAsC;AACtC,eAAO,MAAM,wBAAwB,QAAqB,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,EAAE,CAAC,EAAE,KAAK,CAAC;CACZ;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,kBAAkB,EACxB,UAAU,SAA2B,GACpC,OAAO,CAAC,MAAM,CAAC,CAkEjB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,SAA2B;IAI7F;;;OAGG;YACW,OAAO,CAAC,IAAI,CAAC;EAQ9B;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * AuthMonitor — periodic Claude session health-check (BEC-207).
3
+ *
4
+ * Defence-in-depth for operators still using the mounted-session auth path
5
+ * (`claude login` / ~/.config/claude/). The monitor runs every 6 hours:
6
+ *
7
+ * - When CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY is set → returns
8
+ * immediately (long-lived token paths have no session-lifetime semantics).
9
+ * - Otherwise → runs `claude auth status`. On failure: fires a Slack alert
10
+ * to the configured error channel and writes a `claude.auth_expired` audit
11
+ * event so operators can correlate expiry with pipeline failures.
12
+ *
13
+ * The monitor is registered as a step inside the PM scheduler tick so it runs
14
+ * on the same cadence as the PM agent's own health checks.
15
+ */
16
+ import { execFile } from "node:child_process";
17
+ import { createLogger } from "../logger.js";
18
+ import { postSlackMessage } from "../pm/slack-helpers.js";
19
+ import { claudeAuthExpiredEvent } from "../audit/events.js";
20
+ import { logAuditEventUnchecked } from "../audit/writer.js";
21
+ import { resetAuthCheckCache } from "./auth-check.js";
22
+ const log = createLogger({ component: "AuthMonitor" });
23
+ /** Default check interval: 6 hours */
24
+ export const AUTH_MONITOR_INTERVAL_MS = 6 * 60 * 60 * 1000;
25
+ /**
26
+ * Run the periodic Claude auth health-check.
27
+ *
28
+ * Call this from the PM scheduler tick with a 6-hour throttle. The function
29
+ * is idempotent and safe to call more frequently — it will no-op until the
30
+ * interval has elapsed.
31
+ *
32
+ * @param lastCheckTime - Unix-ms timestamp of the last successful check run.
33
+ * Pass 0 on first call. The caller stores and passes back the returned value.
34
+ * @returns Updated lastCheckTime (pass back on next call).
35
+ */
36
+ export async function runAuthMonitorCheck(lastCheckTime, opts, intervalMs = AUTH_MONITOR_INTERVAL_MS) {
37
+ const now = Date.now();
38
+ if (now - lastCheckTime < intervalMs) {
39
+ return lastCheckTime; // Not time to check yet
40
+ }
41
+ // BEC-207: env-var paths have no session-lifetime semantics — skip.
42
+ if (process.env.CLAUDE_CODE_OAUTH_TOKEN || process.env.ANTHROPIC_API_KEY) {
43
+ log.debug("AuthMonitor: env-var auth path detected, skipping session check");
44
+ return now;
45
+ }
46
+ log.info("AuthMonitor: checking mounted Claude session validity");
47
+ // Force a fresh subprocess call (bypass the 5-min cache in isClaudeAuthValid)
48
+ resetAuthCheckCache();
49
+ const valid = await new Promise((resolve) => {
50
+ execFile("claude", ["auth", "status"], { timeout: 15_000 }, (err) => {
51
+ resolve(!err);
52
+ });
53
+ });
54
+ if (valid) {
55
+ log.debug("AuthMonitor: mounted session is valid");
56
+ return now;
57
+ }
58
+ // Session invalid — alert and record.
59
+ log.error("AuthMonitor: mounted Claude session expired. " +
60
+ "Run `claude login` in the container, or switch to CLAUDE_CODE_OAUTH_TOKEN (see deploy/CLAUDE_AUTH.md).");
61
+ // Slack alert
62
+ if (opts.slackBotToken && opts.slackErrorChannel) {
63
+ try {
64
+ await postSlackMessage(opts.slackBotToken, {
65
+ channel: opts.slackErrorChannel,
66
+ text: "⚠ *Claude session auth expired* — new pipeline runs will fail immediately.\n" +
67
+ "Fix: `docker compose exec <service> claude login`\n" +
68
+ "Or switch to `CLAUDE_CODE_OAUTH_TOKEN` (run `claude setup-token` once). " +
69
+ "See `deploy/CLAUDE_AUTH.md` for details.",
70
+ });
71
+ }
72
+ catch (err) {
73
+ log.warn({ err }, "AuthMonitor: failed to post Slack alert");
74
+ }
75
+ }
76
+ // Audit event.
77
+ //
78
+ // We use `logAuditEventUnchecked` (which bypasses the `audit-log` Enterprise
79
+ // feature gate) deliberately: a Claude-session expiry is an operational
80
+ // signal that any operator needs to see regardless of license tier. The
81
+ // alternative — `logAuditEvent` — would silently drop the event in OSS and
82
+ // Pro deployments where `audit-log` isn't licensed, leaving the operator
83
+ // wondering why their pipeline runs started failing en masse with no
84
+ // visible event in the audit dashboard. CLAUDE.md's list of bypass call
85
+ // sites should include this one alongside `license.ts` and the Pro-tier
86
+ // PM/RM modules.
87
+ if (opts.db) {
88
+ void logAuditEventUnchecked(opts.db, claudeAuthExpiredEvent({ detectedAt: new Date() }));
89
+ }
90
+ return now;
91
+ }
92
+ /**
93
+ * Stateful AuthMonitor factory.
94
+ * Creates a closure that tracks `lastCheckTime` across repeated calls,
95
+ * so callers don't need to manage the timestamp themselves.
96
+ */
97
+ export function createAuthMonitor(opts, intervalMs = AUTH_MONITOR_INTERVAL_MS) {
98
+ let lastCheckTime = 0;
99
+ return {
100
+ /**
101
+ * Run the auth check if the interval has elapsed.
102
+ * Fire-and-forget safe — errors are logged but never thrown.
103
+ */
104
+ async tick() {
105
+ try {
106
+ lastCheckTime = await runAuthMonitorCheck(lastCheckTime, opts, intervalMs);
107
+ }
108
+ catch (err) {
109
+ log.warn({ err }, "AuthMonitor tick failed");
110
+ }
111
+ },
112
+ };
113
+ }
114
+ //# sourceMappingURL=auth-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-monitor.js","sourceRoot":"","sources":["../../src/executor/auth-monitor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,EAAE,EAAS,MAAM,iBAAiB,CAAC;AAOjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAqBnE;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,EAChB,iBAAiB,EAAE,OAAO,GACzB,YAAY,CAKd;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,EAAE,CAAC;IACP,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;kEAC8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;mFAE+E;IAC/E,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC;;;kEAG8D;IAC9D,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,CA4QtB"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,EAAE,EAAS,MAAM,iBAAiB,CAAC;AAOjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAqBnE;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,SAAS,EAChB,iBAAiB,EAAE,OAAO,GACzB,YAAY,CAKd;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,EAAE,CAAC;IACP,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;kEAC8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;mFAE+E;IAC/E,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC;;;kEAG8D;IAC9D,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAkRtB"}
@@ -8,7 +8,7 @@ import { buildStagePermissionOptions } from "./permissions.js";
8
8
  import { resolveTooling } from "./mcp-resolver.js";
9
9
  import { createLogger } from "../logger.js";
10
10
  import { consumeAgentStream, StagePreStreamStalledError } from "./agent-stream.js";
11
- import { isClaudeAuthValid } from "./auth-check.js";
11
+ import { isClaudeAuthValid, resolveClaudeAuth } from "./auth-check.js";
12
12
  /**
13
13
  * BEC-183: wall-clock stage timeouts. Independent of the in-stream watchdog
14
14
  * (StageStalledError / StagePreStreamStalledError inside consumeAgentStream),
@@ -78,8 +78,13 @@ Do NOT run build, test, or lint commands directly on the host — always use \`d
78
78
  let cacheCreationInputTokens = 0;
79
79
  let cacheReadInputTokens = 0;
80
80
  try {
81
+ // Resolve auth method before any SDK call (BEC-207). Logs which path is
82
+ // active (oauth-token / api-key / session) alongside the run context.
83
+ const claudeAuth = resolveClaudeAuth();
84
+ log.info({ authMethod: claudeAuth.method }, "Claude auth method resolved");
81
85
  // Pre-flight auth check — fail fast with a clear message rather than
82
- // burning tokens on a doomed run.
86
+ // burning tokens on a doomed run. Short-circuits to true for env-var
87
+ // auth paths (CLAUDE_CODE_OAUTH_TOKEN / ANTHROPIC_API_KEY).
83
88
  if (!(await isClaudeAuthValid())) {
84
89
  throw new Error("Claude auth credentials are invalid or expired. Run: docker compose exec <service> claude login");
85
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export { agentProfiles, getAgentProfiles, DEFAULT_AGENT_PROFILES } from "./profiles.js";
2
+ export { resolveClaudeAuth, type ClaudeAuthCredentials } from "./auth-check.js";
3
+ export { createAuthMonitor, runAuthMonitorCheck, AUTH_MONITOR_INTERVAL_MS, type AuthMonitor } from "./auth-monitor.js";
2
4
  export { checkTestQuality, analyzeTestFile, isTestFile, extractTestBlocks, TRIVIAL_MATCHERS, BEHAVIORAL_MATCHERS, TRIVIAL_THRESHOLD, type TestFileAnalysis, type TestQualityResult, } from "./test-quality.js";
3
5
  export { parseHandoffArtifact } from "./handoff.js";
4
6
  export { executeStage, type ExecuteStageContext } from "./executor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACtH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACtH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export { agentProfiles, getAgentProfiles, DEFAULT_AGENT_PROFILES } from "./profiles.js";
2
+ export { resolveClaudeAuth } from "./auth-check.js";
3
+ export { createAuthMonitor, runAuthMonitorCheck, AUTH_MONITOR_INTERVAL_MS } from "./auth-monitor.js";
2
4
  export { checkTestQuality, analyzeTestFile, isTestFile, extractTestBlocks, TRIVIAL_MATCHERS, BEHAVIORAL_MATCHERS, TRIVIAL_THRESHOLD, } from "./test-quality.js";
3
5
  export { parseHandoffArtifact } from "./handoff.js";
4
6
  export { executeStage } from "./executor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4B,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACtH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,GAGvB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAA8B,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,wBAAwB,EAAoB,MAAM,mBAAmB,CAAC;AACvH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4B,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACtH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,GAGvB,MAAM,kBAAkB,CAAC"}
@@ -10,6 +10,14 @@ export interface PostFanoutResult {
10
10
  * Audit events (`review.fanout_model_completed`) still fire for suppressed runs.
11
11
  */
12
12
  suppressedEmptyCount: number;
13
+ /**
14
+ * Number of failed runs suppressed from PR comments because the failure is
15
+ * an upstream-provider fault (200 OK but no completion / `Provider returned
16
+ * error` from OpenRouter free-tier models). The run still records as failed
17
+ * in the DB and emits its audit event — we just don't post a noisy "Status:
18
+ * failed" comment on the PR for something the operator can't act on.
19
+ */
20
+ suppressedProviderFailureCount: number;
13
21
  }
14
22
  export declare function postFanoutCommentsToPR(octokit: Octokit, owner: string, repo: string, prNumber: number, runs: ReviewModelRun[]): Promise<PostFanoutResult>;
15
23
  export declare function renderRunMarkdown(run: ReviewModelRun): string;
@@ -1 +1 @@
1
- {"version":3,"file":"post-fanout-comments.d.ts","sourceRoot":"","sources":["../../../src/executor/review/post-fanout-comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EAAE,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAoC3B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CA2C7D"}
1
+ {"version":3,"file":"post-fanout-comments.d.ts","sourceRoot":"","sources":["../../../src/executor/review/post-fanout-comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,8BAA8B,EAAE,MAAM,CAAC;CACxC;AAgBD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EAAE,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA4C3B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CA2C7D"}
@@ -1,17 +1,37 @@
1
1
  import { addPRComment } from "../../repo/github.js";
2
2
  import { createLogger } from "../../logger.js";
3
3
  const log = createLogger({ component: "PostFanoutComments" });
4
+ /**
5
+ * Match the error class introduced by the openrouter-client when the upstream
6
+ * provider returns 200 OK with `{ error: ... }` and no `choices`. Repeats
7
+ * regularly for free-tier / community models (notably the nvidia free tier).
8
+ * Surfacing each such failure as a per-model PR comment was creating noise
9
+ * with no operator action — the right fix is to remove the model from
10
+ * REVIEW_MODELS, which the model-health probe already flags advisorily.
11
+ */
12
+ function isUpstreamProviderError(run) {
13
+ if (run.status !== "failed")
14
+ return false;
15
+ const msg = run.errorMessage ?? "";
16
+ return msg.includes("openrouter response missing choices");
17
+ }
4
18
  export async function postFanoutCommentsToPR(octokit, owner, repo, prNumber, runs) {
5
19
  const toPost = [];
6
20
  let suppressedEmptyCount = 0;
21
+ let suppressedProviderFailureCount = 0;
7
22
  for (const run of runs) {
8
- const shouldSuppress = run.status !== "failed" &&
23
+ const isEmptySuccess = run.status !== "failed" &&
9
24
  run.findings.length === 0 &&
10
25
  run.rawOutput === undefined;
11
- if (shouldSuppress) {
26
+ const isUpstreamFault = isUpstreamProviderError(run);
27
+ if (isEmptySuccess) {
12
28
  suppressedEmptyCount++;
13
29
  log.debug({ modelId: run.modelId }, "fanout: suppressing empty-findings comment (no findings, no rawOutput)");
14
30
  }
31
+ else if (isUpstreamFault) {
32
+ suppressedProviderFailureCount++;
33
+ log.info({ modelId: run.modelId, err: run.errorMessage }, "fanout: suppressing upstream-provider failure from PR comment (DB row + audit event still recorded)");
34
+ }
15
35
  else {
16
36
  toPost.push(run);
17
37
  }
@@ -24,7 +44,7 @@ export async function postFanoutCommentsToPR(octokit, owner, repo, prNumber, run
24
44
  }
25
45
  });
26
46
  const fallbackCount = runs.filter((r) => r.rawOutput !== undefined).length;
27
- return { fallbackCount, suppressedEmptyCount };
47
+ return { fallbackCount, suppressedEmptyCount, suppressedProviderFailureCount };
28
48
  }
29
49
  export function renderRunMarkdown(run) {
30
50
  const tokens = `${run.inputTokens.toLocaleString()} in / ${run.outputTokens.toLocaleString()} out tokens`;
@@ -1 +1 @@
1
- {"version":3,"file":"post-fanout-comments.js","sourceRoot":"","sources":["../../../src/executor/review/post-fanout-comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post-fanout-comments.js","sourceRoot":"","sources":["../../../src/executor/review/post-fanout-comments.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export { createDb, isPostgres, sqlDateGroup, sqlDaysAgoFilter, type Db } from ".
11
11
  export { pipelineRuns, stageRuns, agentLogs, activeWork, pmApprovals } from "./db/index.js";
12
12
  export { createApp, type ServerConfig } from "./server.js";
13
13
  export { PipelineRunner, type PipelineRunnerConfig, type LinearIssue } from "./pipeline/index.js";
14
+ export { type StopMode, requestRunStop, getStopSignal, clearStopSignal } from "./pipeline/index.js";
14
15
  export { formatPRCostSummary, type StageCostBreakdown, type CostSummaryConfig, } from "./pipeline/cost-summary.js";
15
16
  export { defaultConfigs, validatePipelineConfigs, validateRepoConfigs, applyDeepReviewPassesOverride, applyAutoMergeOverride, resolvePipeline } from "./pipeline/index.js";
16
17
  export { createWebhookHandler } from "./webhook/index.js";
@@ -27,7 +28,8 @@ export { checkRequirements, buildRalphContext, type RalphCheckResult } from "./e
27
28
  export { cleanupWorktrees } from "./repo/git.js";
28
29
  export { sweepStaleAgentBranches, type SweepInput, type SweepResult, type SweptBranch, } from "./repo/agent-branch-sweep.js";
29
30
  export { runAgentBranchSweep, type RunAgentBranchSweepDeps, } from "./repo/agent-branch-sweep-runner.js";
30
- export { isClaudeAuthValid, resetAuthCheckCache } from "./executor/auth-check.js";
31
+ export { isClaudeAuthValid, resetAuthCheckCache, resolveClaudeAuth, type ClaudeAuthCredentials } from "./executor/auth-check.js";
32
+ export { createAuthMonitor, runAuthMonitorCheck, AUTH_MONITOR_INTERVAL_MS, type AuthMonitor } from "./executor/auth-monitor.js";
31
33
  export type { GitHubConfig } from "./repo/github.js";
32
34
  export { createGitHubClient } from "./repo/github.js";
33
35
  export { buildGitHubConfigFromEnv } from "./repo/github-from-env.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}