kantban-cli 0.1.7 → 0.1.8

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 (117) hide show
  1. package/dist/client.d.ts +3 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +54 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/commands/cron.js +2 -2
  6. package/dist/commands/cron.js.map +1 -1
  7. package/dist/commands/pipeline-init.d.ts +2 -0
  8. package/dist/commands/pipeline-init.d.ts.map +1 -0
  9. package/dist/commands/pipeline-init.js +100 -0
  10. package/dist/commands/pipeline-init.js.map +1 -0
  11. package/dist/commands/pipeline.d.ts.map +1 -1
  12. package/dist/commands/pipeline.js +621 -44
  13. package/dist/commands/pipeline.js.map +1 -1
  14. package/dist/lib/advisor.d.ts +108 -0
  15. package/dist/lib/advisor.d.ts.map +1 -0
  16. package/dist/lib/advisor.js +139 -0
  17. package/dist/lib/advisor.js.map +1 -0
  18. package/dist/lib/checkpoint.d.ts +15 -0
  19. package/dist/lib/checkpoint.d.ts.map +1 -0
  20. package/dist/lib/checkpoint.js +49 -0
  21. package/dist/lib/checkpoint.js.map +1 -0
  22. package/dist/lib/constraint-evaluator.d.ts.map +1 -1
  23. package/dist/lib/constraint-evaluator.js +13 -4
  24. package/dist/lib/constraint-evaluator.js.map +1 -1
  25. package/dist/lib/cost-tracker.d.ts +46 -0
  26. package/dist/lib/cost-tracker.d.ts.map +1 -0
  27. package/dist/lib/cost-tracker.js +120 -0
  28. package/dist/lib/cost-tracker.js.map +1 -0
  29. package/dist/lib/evaluator.d.ts +17 -0
  30. package/dist/lib/evaluator.d.ts.map +1 -0
  31. package/dist/lib/evaluator.js +71 -0
  32. package/dist/lib/evaluator.js.map +1 -0
  33. package/dist/lib/event-emitter.d.ts +28 -0
  34. package/dist/lib/event-emitter.d.ts.map +1 -0
  35. package/dist/lib/event-emitter.js +100 -0
  36. package/dist/lib/event-emitter.js.map +1 -0
  37. package/dist/lib/gate-config.d.ts +7 -0
  38. package/dist/lib/gate-config.d.ts.map +1 -0
  39. package/dist/lib/gate-config.js +68 -0
  40. package/dist/lib/gate-config.js.map +1 -0
  41. package/dist/lib/gate-proxy-server.d.ts +16 -0
  42. package/dist/lib/gate-proxy-server.d.ts.map +1 -0
  43. package/dist/lib/gate-proxy-server.js +385 -0
  44. package/dist/lib/gate-proxy-server.js.map +1 -0
  45. package/dist/lib/gate-proxy.d.ts +46 -0
  46. package/dist/lib/gate-proxy.d.ts.map +1 -0
  47. package/dist/lib/gate-proxy.js +104 -0
  48. package/dist/lib/gate-proxy.js.map +1 -0
  49. package/dist/lib/gate-runner.d.ts +13 -0
  50. package/dist/lib/gate-runner.d.ts.map +1 -0
  51. package/dist/lib/gate-runner.js +104 -0
  52. package/dist/lib/gate-runner.js.map +1 -0
  53. package/dist/lib/gate-snapshot.d.ts +12 -0
  54. package/dist/lib/gate-snapshot.d.ts.map +1 -0
  55. package/dist/lib/gate-snapshot.js +49 -0
  56. package/dist/lib/gate-snapshot.js.map +1 -0
  57. package/dist/lib/light-call.d.ts +37 -0
  58. package/dist/lib/light-call.d.ts.map +1 -0
  59. package/dist/lib/light-call.js +62 -0
  60. package/dist/lib/light-call.js.map +1 -0
  61. package/dist/lib/logger.d.ts +2 -0
  62. package/dist/lib/logger.d.ts.map +1 -1
  63. package/dist/lib/logger.js +55 -9
  64. package/dist/lib/logger.js.map +1 -1
  65. package/dist/lib/mcp-config.d.ts +15 -0
  66. package/dist/lib/mcp-config.d.ts.map +1 -1
  67. package/dist/lib/mcp-config.js +70 -6
  68. package/dist/lib/mcp-config.js.map +1 -1
  69. package/dist/lib/orchestrator.d.ts +166 -12
  70. package/dist/lib/orchestrator.d.ts.map +1 -1
  71. package/dist/lib/orchestrator.js +1089 -69
  72. package/dist/lib/orchestrator.js.map +1 -1
  73. package/dist/lib/parse-utils.d.ts +6 -0
  74. package/dist/lib/parse-utils.d.ts.map +1 -0
  75. package/dist/lib/parse-utils.js +64 -0
  76. package/dist/lib/parse-utils.js.map +1 -0
  77. package/dist/lib/prompt-composer.d.ts +30 -1
  78. package/dist/lib/prompt-composer.d.ts.map +1 -1
  79. package/dist/lib/prompt-composer.js +162 -27
  80. package/dist/lib/prompt-composer.js.map +1 -1
  81. package/dist/lib/ralph-loop.d.ts +78 -4
  82. package/dist/lib/ralph-loop.d.ts.map +1 -1
  83. package/dist/lib/ralph-loop.js +249 -40
  84. package/dist/lib/ralph-loop.js.map +1 -1
  85. package/dist/lib/reaper.d.ts +14 -0
  86. package/dist/lib/reaper.d.ts.map +1 -0
  87. package/dist/lib/reaper.js +114 -0
  88. package/dist/lib/reaper.js.map +1 -0
  89. package/dist/lib/replanner.d.ts +49 -0
  90. package/dist/lib/replanner.d.ts.map +1 -0
  91. package/dist/lib/replanner.js +61 -0
  92. package/dist/lib/replanner.js.map +1 -0
  93. package/dist/lib/run-memory.d.ts +37 -0
  94. package/dist/lib/run-memory.d.ts.map +1 -0
  95. package/dist/lib/run-memory.js +115 -0
  96. package/dist/lib/run-memory.js.map +1 -0
  97. package/dist/lib/stream-parser.d.ts +20 -0
  98. package/dist/lib/stream-parser.d.ts.map +1 -0
  99. package/dist/lib/stream-parser.js +65 -0
  100. package/dist/lib/stream-parser.js.map +1 -0
  101. package/dist/lib/stuck-detector.d.ts +47 -0
  102. package/dist/lib/stuck-detector.d.ts.map +1 -0
  103. package/dist/lib/stuck-detector.js +105 -0
  104. package/dist/lib/stuck-detector.js.map +1 -0
  105. package/dist/lib/tool-profiles.d.ts +19 -0
  106. package/dist/lib/tool-profiles.d.ts.map +1 -0
  107. package/dist/lib/tool-profiles.js +22 -0
  108. package/dist/lib/tool-profiles.js.map +1 -0
  109. package/dist/lib/worktree.d.ts +12 -0
  110. package/dist/lib/worktree.d.ts.map +1 -0
  111. package/dist/lib/worktree.js +29 -0
  112. package/dist/lib/worktree.js.map +1 -0
  113. package/dist/lib/ws-client.d.ts +1 -1
  114. package/dist/lib/ws-client.d.ts.map +1 -1
  115. package/dist/lib/ws-client.js +5 -2
  116. package/dist/lib/ws-client.js.map +1 -1
  117. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-composer.js","sourceRoot":"","sources":["../../src/lib/prompt-composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-composer.js","sourceRoot":"","sources":["../../src/lib/prompt-composer.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,51 @@
1
1
  import { type ColumnContext, type TicketContext } from './prompt-composer.js';
2
- import type { TicketFingerprint } from '@kantban/types';
2
+ import type { TicketFingerprint, GateSnapshot } from '@kantban/types';
3
+ import type { LoopCheckpoint } from './checkpoint.js';
4
+ import { type StuckDetectionConfig, type StuckDetectionInput, type StuckDetectionResult } from './stuck-detector.js';
5
+ import type { StreamJsonEvent } from './stream-parser.js';
3
6
  export interface LoopConfig {
4
7
  maxIterations: number;
5
8
  gutterThreshold: number;
6
- modelPreference?: string;
9
+ model?: string;
7
10
  maxBudgetUsd?: number | null;
8
- worktreeEnabled?: boolean;
9
- worktreePattern?: string;
11
+ worktreeName?: string;
10
12
  postMoveRetryDelayMs?: number;
13
+ lookaheadColumnId?: string;
14
+ runId?: string;
15
+ startIteration?: number;
16
+ startGutterCount?: number;
17
+ onCheckpoint?: (ticketId: string, checkpoint: LoopCheckpoint) => Promise<void>;
18
+ startFingerprint?: TicketFingerprint;
19
+ stuckDetection?: StuckDetectionConfig;
20
+ invokeStuckDetection?: (input: StuckDetectionInput) => Promise<StuckDetectionResult>;
21
+ /** Run gates after each iteration and record snapshot. Returns GateSnapshot. */
22
+ onPostIterationGates?: (ticketId: string, iteration: number) => Promise<GateSnapshot>;
23
+ /** Resolved tool restrictions from profile */
24
+ toolRestrictions?: {
25
+ tools?: string;
26
+ allowedTools?: string[];
27
+ disallowedTools?: string[];
28
+ includeMcpConfig?: boolean;
29
+ };
11
30
  }
12
31
  export interface LoopResult {
13
32
  reason: 'moved' | 'max_iterations' | 'stalled' | 'stopped' | 'error' | 'deleted';
14
33
  iterations: number;
15
34
  gutterCount: number;
16
35
  lastError?: string;
36
+ model?: string;
37
+ /** Final gate snapshot (if gates enabled) */
38
+ finalGateSnapshot?: GateSnapshot;
39
+ /** Final output from the loop (used by evaluator columns for verdict parsing) */
40
+ output?: string;
41
+ /** Cumulative tokens consumed (input) across all iterations */
42
+ tokensIn?: number;
43
+ /** Cumulative tokens consumed (output) across all iterations */
44
+ tokensOut?: number;
45
+ /** Cumulative tool calls across all iterations */
46
+ toolCallCount?: number;
47
+ /** Total wall-clock duration in ms across all iterations */
48
+ durationMs?: number;
17
49
  }
18
50
  export interface RalphLoopDeps {
19
51
  fetchTicketContext: (ticketId: string) => Promise<TicketContext>;
@@ -22,16 +54,58 @@ export interface RalphLoopDeps {
22
54
  invokeClaudeP: (prompt: string, options: ClaudeInvokeOptions) => Promise<{
23
55
  exitCode: number;
24
56
  output: string;
57
+ toolCallCount: number;
58
+ tokensIn: number;
59
+ tokensOut: number;
25
60
  }>;
26
61
  mcpConfigPath: string;
27
62
  projectId: string;
28
63
  log?: (message: string) => void;
64
+ /** Fetch run memory content. Returns '' if not available. */
65
+ fetchRunMemoryContent?: (() => Promise<string>) | undefined;
66
+ /** Fetch the lookahead document for QA-forward prompting. */
67
+ fetchLookaheadDocument?: (() => Promise<{
68
+ title: string;
69
+ content: string;
70
+ } | undefined>) | undefined;
71
+ /** Forward each stream-json event (for live pipeline streaming to browser) */
72
+ onStreamEvent?: ((event: StreamJsonEvent, context: {
73
+ runId: string;
74
+ ticketId: string;
75
+ columnId: string;
76
+ }) => void) | undefined;
77
+ /** Emitted before each Claude invocation */
78
+ onSessionStart?: ((meta: {
79
+ runId: string;
80
+ model: string;
81
+ iteration: number;
82
+ }) => void) | undefined;
83
+ /** Emitted after each Claude invocation completes */
84
+ onSessionEnd?: ((meta: {
85
+ runId: string;
86
+ exitCode: number;
87
+ tokensIn: number;
88
+ tokensOut: number;
89
+ toolCallCount: number;
90
+ durationMs: number;
91
+ }) => void) | undefined;
29
92
  }
30
93
  export interface ClaudeInvokeOptions {
31
94
  mcpConfigPath: string;
32
95
  model?: string | undefined;
33
96
  maxBudgetUsd?: number | null | undefined;
34
97
  worktree?: string | undefined;
98
+ maxTurns?: number | undefined;
99
+ /** Value for --tools flag. undefined = use defaults, '' = strip all */
100
+ tools?: string | undefined;
101
+ /** Values for --allowedTools flag */
102
+ allowedTools?: string[] | undefined;
103
+ /** Values for --disallowedTools flag */
104
+ disallowedTools?: string[] | undefined;
105
+ /** If false, omit --mcp-config from args */
106
+ includeMcpConfig?: boolean | undefined;
107
+ /** Callback for each stream-json event (for pipeline streaming) */
108
+ onStreamEvent?: ((event: StreamJsonEvent) => void) | undefined;
35
109
  }
36
110
  export declare class RalphLoop {
37
111
  private ticketId;
@@ -1 +1 @@
1
- {"version":3,"file":"ralph-loop.d.ts","sourceRoot":"","sources":["../../src/lib/ralph-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACjE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACjE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnE,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/G,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAaD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa;IAOvF,IAAI,IAAI,IAAI;IAIZ,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,OAAO,CAAC,YAAY;IAQd,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;CA2IjC"}
1
+ {"version":3,"file":"ralph-loop.d.ts","sourceRoot":"","sources":["../../src/lib/ralph-loop.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  import { composePrompt } from './prompt-composer.js';
2
+ import { shouldCheckStuckDetection, classifyTrajectory } from './stuck-detector.js';
2
3
  const API_TIMEOUT_MS = 30_000; // 30s timeout for API calls (fingerprint, context)
3
4
  function withTimeout(promise, ms, label) {
5
+ let timer;
4
6
  return Promise.race([
5
- promise,
6
- new Promise((_, reject) => setTimeout(() => reject(new Error(`${label} timed out after ${ms}ms`)), ms)),
7
+ promise.finally(() => clearTimeout(timer)),
8
+ new Promise((_, reject) => {
9
+ timer = setTimeout(() => reject(new Error(`${label} timed out after ${ms}ms`)), ms);
10
+ }),
7
11
  ]);
8
12
  }
9
13
  export class RalphLoop {
@@ -34,15 +38,30 @@ export class RalphLoop {
34
38
  return message.includes('API error 404');
35
39
  }
36
40
  async run() {
37
- let gutterCount = 0;
38
- let lastFingerprint = null;
41
+ let gutterCount = this.config.startGutterCount ?? 0;
42
+ let lastFingerprint = this.config.startFingerprint ?? null;
39
43
  const log = this.deps.log ?? (() => { });
40
- for (let i = 1; i <= this.config.maxIterations; i++) {
44
+ const resolvedModel = this.config.model ?? 'default';
45
+ const gateSnapshots = [];
46
+ let cumulativeTokensIn = 0;
47
+ let cumulativeTokensOut = 0;
48
+ let cumulativeToolCalls = 0;
49
+ let cumulativeDurationMs = 0;
50
+ const withCosts = (r) => ({
51
+ ...r,
52
+ tokensIn: cumulativeTokensIn,
53
+ tokensOut: cumulativeTokensOut,
54
+ toolCallCount: cumulativeToolCalls,
55
+ durationMs: cumulativeDurationMs,
56
+ });
57
+ let lastOutput = '';
58
+ const startIter = this.config.startIteration ?? 1;
59
+ for (let i = startIter; i <= this.config.maxIterations; i++) {
41
60
  if (this.stopped)
42
- return { reason: 'stopped', iterations: i - 1, gutterCount };
61
+ return withCosts({ reason: 'stopped', iterations: i - 1, gutterCount, model: resolvedModel });
43
62
  this.currentIteration = i;
44
63
  log(`Iteration ${i}/${this.config.maxIterations} starting`);
45
- // Phase 1: Capture baseline fingerprint
64
+ // Capture baseline fingerprint on first iteration
46
65
  if (!lastFingerprint) {
47
66
  try {
48
67
  lastFingerprint = await withTimeout(this.deps.fetchFingerprint(this.ticketId), API_TIMEOUT_MS, 'fetchFingerprint (baseline)');
@@ -51,12 +70,12 @@ export class RalphLoop {
51
70
  const message = err instanceof Error ? err.message : String(err);
52
71
  log(`Baseline fingerprint fetch failed: ${message}`);
53
72
  if (this.looksLike404(err)) {
54
- return { reason: 'deleted', iterations: i, gutterCount };
73
+ return withCosts({ reason: 'deleted', iterations: i, gutterCount, model: resolvedModel });
55
74
  }
56
- return { reason: 'error', iterations: i, gutterCount, lastError: `Baseline fingerprint failed: ${message}` };
75
+ return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `Baseline fingerprint failed: ${message}`, model: resolvedModel });
57
76
  }
58
77
  }
59
- // Phase 2: Fetch context
78
+ // Fetch ticket and column context for this iteration
60
79
  let ticketCtx;
61
80
  let columnCtx;
62
81
  try {
@@ -69,16 +88,23 @@ export class RalphLoop {
69
88
  const message = err instanceof Error ? err.message : String(err);
70
89
  log(`Context fetch failed: ${message}`);
71
90
  if (this.looksLike404(err)) {
72
- return { reason: 'deleted', iterations: i, gutterCount };
91
+ return withCosts({ reason: 'deleted', iterations: i, gutterCount, model: resolvedModel });
73
92
  }
74
- return { reason: 'error', iterations: i, gutterCount, lastError: `Context fetch failed: ${message}` };
93
+ return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `Context fetch failed: ${message}`, model: resolvedModel });
75
94
  }
76
- // Phase 2b: Pre-flight column check — bail if ticket already moved
95
+ // Pre-flight column check — bail if ticket already moved
77
96
  if (ticketCtx.ticket.column && ticketCtx.ticket.column.id !== this.columnId) {
78
97
  log(`Ticket already in column ${ticketCtx.ticket.column.name}, not ${this.columnId} — exiting as moved`);
79
- return { reason: 'moved', iterations: i - 1, gutterCount };
98
+ return withCosts({ reason: 'moved', iterations: i - 1, gutterCount, model: resolvedModel });
80
99
  }
81
- // Phase 3: Compose prompt
100
+ // Fetch run memory and lookahead enrichments — non-blocking, failures are silenced
101
+ const runMemoryContent = this.deps.fetchRunMemoryContent
102
+ ? await this.deps.fetchRunMemoryContent().catch(() => '')
103
+ : undefined;
104
+ const lookaheadDocument = this.deps.fetchLookaheadDocument
105
+ ? await this.deps.fetchLookaheadDocument().catch(() => undefined)
106
+ : undefined;
107
+ // Compose prompt from column context, ticket context, and enrichments
82
108
  let prompt;
83
109
  try {
84
110
  prompt = composePrompt(columnCtx, ticketCtx, {
@@ -87,32 +113,62 @@ export class RalphLoop {
87
113
  projectId: this.deps.projectId,
88
114
  gutterCount,
89
115
  gutterThreshold: this.config.gutterThreshold,
116
+ runMemoryContent: runMemoryContent || undefined,
117
+ lookaheadDocument,
90
118
  });
91
119
  }
92
120
  catch (err) {
93
121
  const message = err instanceof Error ? err.message : String(err);
94
122
  log(`Prompt composition failed: ${message}`);
95
- return { reason: 'error', iterations: i, gutterCount, lastError: `Prompt composition failed: ${message}` };
123
+ return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `Prompt composition failed: ${message}`, model: resolvedModel });
96
124
  }
97
- // Phase 4: Invoke Claude
125
+ // Invoke Claude with the composed prompt
98
126
  if (this.stopped)
99
- return { reason: 'stopped', iterations: i - 1, gutterCount };
100
- log(`Invoking Claude (model=${this.config.modelPreference ?? 'default'})`);
101
- const { exitCode, output } = await this.deps.invokeClaudeP(prompt, {
127
+ return withCosts({ reason: 'stopped', iterations: i - 1, gutterCount, model: resolvedModel });
128
+ log(`Invoking Claude (model=${this.config.model ?? 'default'})`);
129
+ const iterationRunId = `${this.config.runId ?? this.ticketId}-iter-${String(i)}`;
130
+ const iterationStart = Date.now();
131
+ this.deps.onSessionStart?.({
132
+ runId: iterationRunId,
133
+ model: this.config.model ?? 'default',
134
+ iteration: i,
135
+ });
136
+ const streamContext = { runId: iterationRunId, ticketId: this.ticketId, columnId: this.columnId };
137
+ const { exitCode, output, toolCallCount, tokensIn, tokensOut } = await this.deps.invokeClaudeP(prompt, {
102
138
  mcpConfigPath: this.deps.mcpConfigPath,
103
- model: this.config.modelPreference,
139
+ model: this.config.model,
104
140
  maxBudgetUsd: this.config.maxBudgetUsd,
105
- worktree: this.config.worktreeEnabled
106
- ? this.config.worktreePattern?.replace('{ticket_number}', String(ticketCtx.ticket.ticket_number))
107
- : undefined,
141
+ worktree: this.config.worktreeName,
142
+ onStreamEvent: (event) => this.deps.onStreamEvent?.(event, streamContext),
143
+ // Tool scoping
144
+ ...(this.config.toolRestrictions && {
145
+ tools: this.config.toolRestrictions.tools,
146
+ allowedTools: this.config.toolRestrictions.allowedTools,
147
+ disallowedTools: this.config.toolRestrictions.disallowedTools,
148
+ includeMcpConfig: this.config.toolRestrictions.includeMcpConfig,
149
+ }),
150
+ });
151
+ const iterationDurationMs = Date.now() - iterationStart;
152
+ cumulativeTokensIn += tokensIn;
153
+ cumulativeTokensOut += tokensOut;
154
+ cumulativeToolCalls += toolCallCount;
155
+ cumulativeDurationMs += iterationDurationMs;
156
+ this.deps.onSessionEnd?.({
157
+ runId: iterationRunId,
158
+ exitCode,
159
+ tokensIn,
160
+ tokensOut,
161
+ toolCallCount,
162
+ durationMs: iterationDurationMs,
108
163
  });
109
164
  if (exitCode !== 0) {
110
165
  const snippet = output.slice(-200);
111
166
  log(`Claude exited with code ${exitCode}: ${snippet}`);
112
- return { reason: 'error', iterations: i, gutterCount, lastError: `non-zero exit code: ${exitCode}. Last output: ${snippet}` };
167
+ return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `non-zero exit code: ${exitCode}. Last output: ${snippet}`, model: resolvedModel });
113
168
  }
114
169
  log(`Claude exited successfully`);
115
- // Phase 5: Post-iteration fingerprint check
170
+ lastOutput = output;
171
+ // Post-iteration fingerprint check — detect if ticket moved out of column
116
172
  let afterFp;
117
173
  try {
118
174
  const retryDelayMs = this.config.postMoveRetryDelayMs ?? 1500;
@@ -120,10 +176,13 @@ export class RalphLoop {
120
176
  if (afterFp.column_id === this.columnId) {
121
177
  for (let retry = 0; retry < 2; retry++) {
122
178
  await new Promise((r) => setTimeout(r, retryDelayMs));
179
+ if (this.stopped)
180
+ break; // Honor stop during retry delay
123
181
  try {
124
182
  afterFp = await withTimeout(this.deps.fetchFingerprint(this.ticketId), API_TIMEOUT_MS, 'fetchFingerprint (retry)');
125
183
  }
126
- catch {
184
+ catch (err) {
185
+ log(`Fingerprint retry ${retry + 1} failed: ${err instanceof Error ? err.message : String(err)} — using last good value`);
127
186
  break; // retry fingerprint failed — use last good value
128
187
  }
129
188
  if (afterFp.column_id !== this.columnId)
@@ -135,31 +194,181 @@ export class RalphLoop {
135
194
  const message = err instanceof Error ? err.message : String(err);
136
195
  log(`Post-iteration fingerprint failed: ${message}`);
137
196
  if (this.looksLike404(err)) {
138
- return { reason: 'deleted', iterations: i, gutterCount };
197
+ return withCosts({ reason: 'deleted', iterations: i, gutterCount, model: resolvedModel });
139
198
  }
140
- return { reason: 'error', iterations: i, gutterCount, lastError: `Post-iteration fingerprint failed: ${message}` };
199
+ return withCosts({ reason: 'error', iterations: i, gutterCount, lastError: `Post-iteration fingerprint failed: ${message}`, model: resolvedModel });
141
200
  }
142
201
  // Did ticket move?
143
202
  if (afterFp.column_id !== this.columnId) {
144
203
  log(`Ticket moved to column ${afterFp.column_id ?? 'null'}`);
145
- return { reason: 'moved', iterations: i, gutterCount };
204
+ return withCosts({ reason: 'moved', iterations: i, gutterCount, model: resolvedModel, output: lastOutput });
146
205
  }
147
- // Gutter detection
148
- if (lastFingerprint && fingerprintsMatch(lastFingerprint, afterFp)) {
149
- gutterCount++;
150
- log(`No progress detected (gutter ${gutterCount}/${this.config.gutterThreshold})`);
151
- if (gutterCount >= this.config.gutterThreshold) {
152
- return { reason: 'stalled', iterations: i, gutterCount };
206
+ // Gate-based gutter detection (preferred) or fingerprint fallback
207
+ if (this.config.onPostIterationGates) {
208
+ try {
209
+ const snapshot = await this.config.onPostIterationGates(this.ticketId, i);
210
+ gateSnapshots.push(snapshot);
211
+ // Also check if any field values changed (complementary signal)
212
+ const fieldDelta = lastFingerprint ? afterFp.field_value_count !== lastFingerprint.field_value_count : false;
213
+ switch (snapshot.delta_from_previous) {
214
+ case 'improved':
215
+ if (gutterCount > 0)
216
+ log(`Gate improvement detected — gutter counter reset`);
217
+ gutterCount = 0;
218
+ break;
219
+ case 'same':
220
+ if (!fieldDelta) {
221
+ gutterCount++;
222
+ log(`No gate progress (gutter ${gutterCount}/${this.config.gutterThreshold})`);
223
+ }
224
+ else {
225
+ log(`Gates unchanged but fields changed — not incrementing gutter`);
226
+ }
227
+ break;
228
+ case 'regressed':
229
+ gutterCount += 2;
230
+ log(`Gate regression detected (gutter ${gutterCount}/${this.config.gutterThreshold})`);
231
+ break;
232
+ case 'first_check':
233
+ // First check — no delta info yet, don't adjust gutter
234
+ break;
235
+ }
236
+ }
237
+ catch (err) {
238
+ const message = err instanceof Error ? err.message : String(err);
239
+ log(`Post-iteration gate check failed (non-blocking): ${message}`);
240
+ // Fall back to fingerprint gutter on gate failure
241
+ if (lastFingerprint && fingerprintsMatch(lastFingerprint, afterFp)) {
242
+ gutterCount++;
243
+ log(`No progress detected via fingerprint fallback (gutter ${gutterCount}/${this.config.gutterThreshold})`);
244
+ }
245
+ else {
246
+ if (gutterCount > 0)
247
+ log(`Progress detected — gutter counter reset`);
248
+ gutterCount = 0;
249
+ }
153
250
  }
154
251
  }
155
252
  else {
156
- if (gutterCount > 0)
157
- log(`Progress detected gutter counter reset`);
158
- gutterCount = 0;
253
+ // Original fingerprint-based gutter detection
254
+ if (lastFingerprint && fingerprintsMatch(lastFingerprint, afterFp)) {
255
+ gutterCount++;
256
+ log(`No progress detected (gutter ${gutterCount}/${this.config.gutterThreshold})`);
257
+ }
258
+ else {
259
+ if (gutterCount > 0)
260
+ log(`Progress detected — gutter counter reset`);
261
+ gutterCount = 0;
262
+ }
159
263
  }
160
264
  lastFingerprint = afterFp;
265
+ // Pattern-based stuck detection — classifies trajectory as progressing/spinning/blocked
266
+ if (this.config.stuckDetection && shouldCheckStuckDetection(this.config.stuckDetection, i)) {
267
+ try {
268
+ let sdStatus;
269
+ let sdEvidence;
270
+ let sdConfidence;
271
+ if (gateSnapshots.length > 0) {
272
+ // Deterministic classification from gate data
273
+ const trajectory = classifyTrajectory(gateSnapshots);
274
+ sdStatus = trajectory.status === 'regressing' ? 'spinning' : trajectory.status;
275
+ sdEvidence = trajectory.evidence;
276
+ sdConfidence = trajectory.confidence;
277
+ log(`Gate-based stuck detection: ${sdStatus} (confidence=${String(sdConfidence)}) — ${sdEvidence}`);
278
+ }
279
+ else if (this.config.invokeStuckDetection) {
280
+ // Legacy LLM-based classification
281
+ const sdInput = {
282
+ ticketNumber: ticketCtx.ticket.ticket_number,
283
+ ticketTitle: ticketCtx.ticket.title,
284
+ columnName: columnCtx.column.name,
285
+ iteration: i,
286
+ maxIterations: this.config.maxIterations,
287
+ recentComments: ticketCtx.comments.slice(-3).map((c) => ({
288
+ author: c.author,
289
+ body: c.body,
290
+ })),
291
+ };
292
+ const sdResult = await this.config.invokeStuckDetection(sdInput);
293
+ sdStatus = sdResult.status;
294
+ sdEvidence = sdResult.evidence;
295
+ sdConfidence = sdResult.confidence;
296
+ log(`Stuck detection: ${sdStatus} (confidence=${String(sdConfidence)}) — ${sdEvidence}`);
297
+ }
298
+ else {
299
+ // No detection method available — skip
300
+ sdStatus = 'progressing';
301
+ sdEvidence = 'no detection method';
302
+ sdConfidence = 0;
303
+ }
304
+ switch (sdStatus) {
305
+ case 'progressing':
306
+ if (gutterCount > 0) {
307
+ log(`Stuck detection override: resetting gutter counter (was ${String(gutterCount)})`);
308
+ gutterCount = 0;
309
+ }
310
+ break;
311
+ case 'spinning':
312
+ gutterCount += 2;
313
+ log(`Stuck detection: spinning — gutter accelerated to ${String(gutterCount)}/${String(this.config.gutterThreshold)}`);
314
+ break;
315
+ case 'blocked':
316
+ log(`Stuck detection: blocked — exiting immediately`);
317
+ return withCosts({
318
+ reason: 'stalled',
319
+ iterations: i,
320
+ gutterCount: this.config.gutterThreshold,
321
+ model: resolvedModel,
322
+ output: lastOutput,
323
+ ...(gateSnapshots.length > 0 && { finalGateSnapshot: gateSnapshots[gateSnapshots.length - 1] }),
324
+ });
325
+ }
326
+ }
327
+ catch (err) {
328
+ const message = err instanceof Error ? err.message : String(err);
329
+ log(`Stuck detection failed (non-blocking): ${message}`);
330
+ }
331
+ }
332
+ // Gutter threshold exit (after stuck detection may have adjusted gutterCount)
333
+ if (gutterCount >= this.config.gutterThreshold) {
334
+ return withCosts({
335
+ reason: 'stalled',
336
+ iterations: i,
337
+ gutterCount,
338
+ model: resolvedModel,
339
+ output: lastOutput,
340
+ ...(gateSnapshots.length > 0 && { finalGateSnapshot: gateSnapshots[gateSnapshots.length - 1] }),
341
+ });
342
+ }
343
+ // Write checkpoint after iteration to allow resume on restart
344
+ if (this.config.onCheckpoint) {
345
+ try {
346
+ await this.config.onCheckpoint(this.ticketId, {
347
+ run_id: this.config.runId ?? '00000000-0000-0000-0000-000000000000',
348
+ column_id: this.columnId,
349
+ iteration: i,
350
+ gutter_count: gutterCount,
351
+ advisor_invocations: 0, // tracked by orchestrator, not loop
352
+ model_tier: resolvedModel,
353
+ last_fingerprint: afterFp,
354
+ updated_at: new Date().toISOString(),
355
+ worktree_name: this.config.worktreeName,
356
+ });
357
+ }
358
+ catch (err) {
359
+ // Checkpoint write must never block the loop
360
+ log(`Checkpoint write failed (non-blocking): ${err instanceof Error ? err.message : String(err)}`);
361
+ }
362
+ }
161
363
  }
162
- return { reason: 'max_iterations', iterations: this.config.maxIterations, gutterCount };
364
+ return withCosts({
365
+ reason: 'max_iterations',
366
+ iterations: this.config.maxIterations,
367
+ gutterCount,
368
+ model: resolvedModel,
369
+ output: lastOutput,
370
+ ...(gateSnapshots.length > 0 && { finalGateSnapshot: gateSnapshots[gateSnapshots.length - 1] }),
371
+ });
163
372
  }
164
373
  }
165
374
  function fingerprintsMatch(a, b) {
@@ -1 +1 @@
1
- {"version":3,"file":"ralph-loop.js","sourceRoot":"","sources":["../../src/lib/ralph-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ralph-loop.js","sourceRoot":"","sources":["../../src/lib/ralph-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ChildProcess } from 'node:child_process';
2
+ export declare const REAPER_POLL_MS = 3000;
3
+ export interface ReaperConfig {
4
+ orchestratorPid: number;
5
+ manifestPath: string;
6
+ pidFilePath: string;
7
+ reaperPidPath: string;
8
+ mcpConfigPath: string;
9
+ pipelineDir: string;
10
+ }
11
+ export declare function buildReaperScript(config: ReaperConfig): string;
12
+ export declare function spawnReaper(config: ReaperConfig): ChildProcess;
13
+ export declare function killReaper(reaperPidPath: string): void;
14
+ //# sourceMappingURL=reaper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reaper.d.ts","sourceRoot":"","sources":["../../src/lib/reaper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAgF9D;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAe9D;AAED,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAiBtD"}