@urateam/core 0.1.49 → 0.1.51

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 (122) hide show
  1. package/dist/__tests__/agentic-deep-review-provider.test.js +6 -1
  2. package/dist/__tests__/agentic-deep-review-provider.test.js.map +1 -1
  3. package/dist/__tests__/audit-session-events.test.d.ts +2 -0
  4. package/dist/__tests__/audit-session-events.test.d.ts.map +1 -0
  5. package/dist/__tests__/audit-session-events.test.js +39 -0
  6. package/dist/__tests__/audit-session-events.test.js.map +1 -0
  7. package/dist/__tests__/db-migration-agent-session-id.test.d.ts +2 -0
  8. package/dist/__tests__/db-migration-agent-session-id.test.d.ts.map +1 -0
  9. package/dist/__tests__/db-migration-agent-session-id.test.js +35 -0
  10. package/dist/__tests__/db-migration-agent-session-id.test.js.map +1 -0
  11. package/dist/__tests__/deep-review-resume.test.d.ts +18 -0
  12. package/dist/__tests__/deep-review-resume.test.d.ts.map +1 -0
  13. package/dist/__tests__/deep-review-resume.test.js +90 -0
  14. package/dist/__tests__/deep-review-resume.test.js.map +1 -0
  15. package/dist/__tests__/execute-stage-session-opts.test.d.ts +17 -0
  16. package/dist/__tests__/execute-stage-session-opts.test.d.ts.map +1 -0
  17. package/dist/__tests__/execute-stage-session-opts.test.js +179 -0
  18. package/dist/__tests__/execute-stage-session-opts.test.js.map +1 -0
  19. package/dist/__tests__/ralph-handoff-suppression.test.d.ts +2 -0
  20. package/dist/__tests__/ralph-handoff-suppression.test.d.ts.map +1 -0
  21. package/dist/__tests__/ralph-handoff-suppression.test.js +37 -0
  22. package/dist/__tests__/ralph-handoff-suppression.test.js.map +1 -0
  23. package/dist/__tests__/session-policy.test.d.ts +2 -0
  24. package/dist/__tests__/session-policy.test.d.ts.map +1 -0
  25. package/dist/__tests__/session-policy.test.js +44 -0
  26. package/dist/__tests__/session-policy.test.js.map +1 -0
  27. package/dist/__tests__/session-resume-fallback.test.d.ts +18 -0
  28. package/dist/__tests__/session-resume-fallback.test.d.ts.map +1 -0
  29. package/dist/__tests__/session-resume-fallback.test.js +137 -0
  30. package/dist/__tests__/session-resume-fallback.test.js.map +1 -0
  31. package/dist/__tests__/session-resume-flag.test.d.ts +2 -0
  32. package/dist/__tests__/session-resume-flag.test.d.ts.map +1 -0
  33. package/dist/__tests__/session-resume-flag.test.js +87 -0
  34. package/dist/__tests__/session-resume-flag.test.js.map +1 -0
  35. package/dist/__tests__/session-store.test.d.ts +2 -0
  36. package/dist/__tests__/session-store.test.d.ts.map +1 -0
  37. package/dist/__tests__/session-store.test.js +44 -0
  38. package/dist/__tests__/session-store.test.js.map +1 -0
  39. package/dist/__tests__/session-volume-check.test.d.ts +2 -0
  40. package/dist/__tests__/session-volume-check.test.d.ts.map +1 -0
  41. package/dist/__tests__/session-volume-check.test.js +28 -0
  42. package/dist/__tests__/session-volume-check.test.js.map +1 -0
  43. package/dist/__tests__/validate-run-mode.test.d.ts +2 -0
  44. package/dist/__tests__/validate-run-mode.test.d.ts.map +1 -0
  45. package/dist/__tests__/validate-run-mode.test.js +102 -0
  46. package/dist/__tests__/validate-run-mode.test.js.map +1 -0
  47. package/dist/__tests__/zombie-age-default.test.d.ts +2 -0
  48. package/dist/__tests__/zombie-age-default.test.d.ts.map +1 -0
  49. package/dist/__tests__/zombie-age-default.test.js +24 -0
  50. package/dist/__tests__/zombie-age-default.test.js.map +1 -0
  51. package/dist/audit/events.d.ts +45 -0
  52. package/dist/audit/events.d.ts.map +1 -1
  53. package/dist/audit/events.js +79 -0
  54. package/dist/audit/events.js.map +1 -1
  55. package/dist/db/client.d.ts.map +1 -1
  56. package/dist/db/client.js +4 -1
  57. package/dist/db/client.js.map +1 -1
  58. package/dist/db/schema.d.ts +19 -0
  59. package/dist/db/schema.d.ts.map +1 -1
  60. package/dist/db/schema.js +2 -0
  61. package/dist/db/schema.js.map +1 -1
  62. package/dist/executor/deep-review.d.ts +28 -1
  63. package/dist/executor/deep-review.d.ts.map +1 -1
  64. package/dist/executor/deep-review.js +113 -9
  65. package/dist/executor/deep-review.js.map +1 -1
  66. package/dist/executor/executor.d.ts +33 -0
  67. package/dist/executor/executor.d.ts.map +1 -1
  68. package/dist/executor/executor.js +94 -4
  69. package/dist/executor/executor.js.map +1 -1
  70. package/dist/executor/index.d.ts +7 -0
  71. package/dist/executor/index.d.ts.map +1 -1
  72. package/dist/executor/index.js +7 -0
  73. package/dist/executor/index.js.map +1 -1
  74. package/dist/executor/prompt/assembler.d.ts +7 -1
  75. package/dist/executor/prompt/assembler.d.ts.map +1 -1
  76. package/dist/executor/prompt/assembler.js +9 -3
  77. package/dist/executor/prompt/assembler.js.map +1 -1
  78. package/dist/executor/prompt/templates.d.ts +25 -6
  79. package/dist/executor/prompt/templates.d.ts.map +1 -1
  80. package/dist/executor/prompt/templates.js +21 -12
  81. package/dist/executor/prompt/templates.js.map +1 -1
  82. package/dist/executor/review/agentic-deep-review.d.ts.map +1 -1
  83. package/dist/executor/review/agentic-deep-review.js +15 -1
  84. package/dist/executor/review/agentic-deep-review.js.map +1 -1
  85. package/dist/executor/review/review-provider.d.ts +21 -0
  86. package/dist/executor/review/review-provider.d.ts.map +1 -1
  87. package/dist/executor/review/review-provider.js.map +1 -1
  88. package/dist/executor/session-policy.d.ts +38 -0
  89. package/dist/executor/session-policy.d.ts.map +1 -0
  90. package/dist/executor/session-policy.js +66 -0
  91. package/dist/executor/session-policy.js.map +1 -0
  92. package/dist/executor/session-store.d.ts +32 -0
  93. package/dist/executor/session-store.d.ts.map +1 -0
  94. package/dist/executor/session-store.js +38 -0
  95. package/dist/executor/session-store.js.map +1 -0
  96. package/dist/executor/validate.d.ts +20 -1
  97. package/dist/executor/validate.d.ts.map +1 -1
  98. package/dist/executor/validate.js +16 -1
  99. package/dist/executor/validate.js.map +1 -1
  100. package/dist/index.d.ts +1 -0
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +1 -0
  103. package/dist/index.js.map +1 -1
  104. package/dist/pipeline/runner.d.ts.map +1 -1
  105. package/dist/pipeline/runner.js +139 -6
  106. package/dist/pipeline/runner.js.map +1 -1
  107. package/dist/pipeline/session-volume-check.d.ts +38 -0
  108. package/dist/pipeline/session-volume-check.d.ts.map +1 -0
  109. package/dist/pipeline/session-volume-check.js +45 -0
  110. package/dist/pipeline/session-volume-check.js.map +1 -0
  111. package/dist/pm/scheduler.d.ts +14 -0
  112. package/dist/pm/scheduler.d.ts.map +1 -1
  113. package/dist/pm/scheduler.js +9 -5
  114. package/dist/pm/scheduler.js.map +1 -1
  115. package/dist/server.d.ts.map +1 -1
  116. package/dist/server.js +16 -0
  117. package/dist/server.js.map +1 -1
  118. package/dist/types.d.ts +8 -0
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/types.js +19 -0
  121. package/dist/types.js.map +1 -1
  122. package/package.json +1 -1
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Tests for BEC-227 — Task 7:
3
+ * JSONL-exists pre-check on the resume path of `executeStage()`.
4
+ *
5
+ * Scenario covered:
6
+ * - When `agentSessionId` is set and `isFirstResumableStage=false` BUT the
7
+ * SDK transcript JSONL file does NOT exist on disk for the (cwd, sessionId)
8
+ * tuple, the executor must:
9
+ * 1. Drop the resume option (call shape is fresh: no `sessionId`, no `resume`)
10
+ * 2. Emit the `pipeline.agent_session_missing_fallback` audit event with
11
+ * `reason: "jsonl-not-found"`
12
+ * 3. Log a warning
13
+ *
14
+ * The SDK `query` and `logAuditEvent` are mocked, and `transcriptExists` is
15
+ * forced to return `false` so this test does not depend on the host filesystem.
16
+ */
17
+ import { describe, it, expect, vi, beforeEach } from "vitest";
18
+ // ── Module mocks (declared before imports) ────────────────────────────────────
19
+ vi.mock("@anthropic-ai/claude-agent-sdk", () => ({
20
+ query: vi.fn(),
21
+ }));
22
+ vi.mock("../executor/auth-check.js", () => ({
23
+ isClaudeAuthValid: vi.fn().mockResolvedValue(true),
24
+ resolveClaudeAuth: vi.fn().mockReturnValue({ method: "session" }),
25
+ }));
26
+ vi.mock("../executor/extract-handoff.js", () => ({
27
+ extractHandoff: vi.fn().mockResolvedValue({
28
+ artifact: {
29
+ runId: "run-bec227-t7",
30
+ issueId: "BEC-227",
31
+ stage: "implement",
32
+ timestamp: new Date().toISOString(),
33
+ summary: "Stub handoff",
34
+ filesChanged: [],
35
+ approach: "Stub",
36
+ context: { issueIntent: "x", constraints: [], assumptions: [] },
37
+ tokenBudget: { contextTokensUsed: 0, recommendedMaxTurns: 1 },
38
+ },
39
+ structured: true,
40
+ }),
41
+ }));
42
+ vi.mock("../executor/session-store.js", async () => {
43
+ const real = await vi.importActual("../executor/session-store.js");
44
+ return {
45
+ ...real,
46
+ // Force the transcript-not-found path so the fallback branch fires.
47
+ transcriptExists: vi.fn().mockReturnValue(false),
48
+ };
49
+ });
50
+ const { logAuditEventMock } = vi.hoisted(() => ({
51
+ logAuditEventMock: vi.fn().mockResolvedValue(undefined),
52
+ }));
53
+ vi.mock("../audit/writer.js", async () => {
54
+ const real = await vi.importActual("../audit/writer.js");
55
+ return {
56
+ ...real,
57
+ logAuditEvent: logAuditEventMock,
58
+ };
59
+ });
60
+ // ── Imports ───────────────────────────────────────────────────────────────────
61
+ import { executeStage } from "../executor/executor.js";
62
+ import { createDb } from "../db/client.js";
63
+ import { pipelineRuns } from "../db/schema.js";
64
+ // ── Fixtures ──────────────────────────────────────────────────────────────────
65
+ const testIssue = {
66
+ id: "BEC-227",
67
+ slug: "agent-session-continuity",
68
+ title: "Agent session continuity Phase 1",
69
+ description: "Resume fallback when JSONL is missing",
70
+ acceptanceCriteria: ["fallback to fresh session on missing JSONL"],
71
+ labels: ["auto-implement"],
72
+ priority: 4,
73
+ };
74
+ const testRepoConfig = {
75
+ url: "https://github.com/test-org/test-repo",
76
+ defaultBranch: "main",
77
+ testCommand: "echo ok",
78
+ buildCommand: "echo ok",
79
+ };
80
+ async function seedPipelineRun(db, runId) {
81
+ await db.insert(pipelineRuns).values({
82
+ id: runId,
83
+ issueId: testIssue.id,
84
+ issueTitle: testIssue.title,
85
+ pipelineKey: "auto-implement",
86
+ repoUrl: testRepoConfig.url,
87
+ branch: `agent/${runId}`,
88
+ status: "running",
89
+ });
90
+ }
91
+ function makeMinimalStream() {
92
+ return (async function* () {
93
+ yield {
94
+ type: "assistant",
95
+ content: [{ type: "text", text: "done" }],
96
+ };
97
+ })();
98
+ }
99
+ // ── Tests ─────────────────────────────────────────────────────────────────────
100
+ describe("executeStage — session resume fallback (BEC-227, Task 7)", () => {
101
+ let db;
102
+ beforeEach(async () => {
103
+ db = await createDb({ connectionString: ":memory:" });
104
+ vi.clearAllMocks();
105
+ logAuditEventMock.mockClear();
106
+ logAuditEventMock.mockResolvedValue(undefined);
107
+ });
108
+ it("transcript missing → falls back to fresh session and emits missing_fallback audit event", async () => {
109
+ const { query } = await import("@anthropic-ai/claude-agent-sdk");
110
+ query.mockReturnValue(makeMinimalStream());
111
+ await seedPipelineRun(db, "run-fallback-t7");
112
+ await executeStage({
113
+ runId: "run-fallback-t7",
114
+ issueId: testIssue.id,
115
+ stage: "implement",
116
+ sanitizedIssue: testIssue,
117
+ repoConfig: testRepoConfig,
118
+ workdir: "/nonexistent/path/bec227-t7",
119
+ db,
120
+ agentSessionId: "uuid-nonexistent",
121
+ isFirstResumableStage: false,
122
+ });
123
+ // SDK call shape: no resume, no sessionId (fresh)
124
+ expect(query).toHaveBeenCalledOnce();
125
+ const opts = query.mock.calls[0][0].options;
126
+ expect(opts.resume).toBeUndefined();
127
+ expect(opts.sessionId).toBeUndefined();
128
+ // Audit event emitted with jsonl-not-found reason
129
+ const fallbackCall = logAuditEventMock.mock.calls.find((call) => call[1]?.eventType === "pipeline.agent_session_missing_fallback");
130
+ expect(fallbackCall).toBeDefined();
131
+ expect(fallbackCall[1].payload.reason).toBe("jsonl-not-found");
132
+ expect(fallbackCall[1].payload.sessionId).toBe("uuid-nonexistent");
133
+ expect(fallbackCall[1].payload.runId).toBe("run-fallback-t7");
134
+ expect(fallbackCall[1].payload.issueId).toBe(testIssue.id);
135
+ });
136
+ });
137
+ //# sourceMappingURL=session-resume-fallback.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-resume-fallback.test.js","sourceRoot":"","sources":["../../src/__tests__/session-resume-fallback.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-resume-flag.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-resume-flag.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/session-resume-flag.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
+ import { eq } from "drizzle-orm";
3
+ import { createDb } from "../db/client.js";
4
+ import { pipelineRuns } from "../db/schema.js";
5
+ /**
6
+ * BEC-227 — Task 5 verification.
7
+ *
8
+ * `runner.start()` mints an `agent_session_id` UUID and persists it on the
9
+ * `pipeline_runs` row when `URATEAM_ENABLE_AGENT_SESSION_RESUME=true`. This
10
+ * test simulates the row state directly (rather than invoking `start()`
11
+ * which requires reconstructing 6 positional params + a queue + executor)
12
+ * and asserts the column behaviour — the runner-level integration is
13
+ * verified by typecheck + existing pipeline tests.
14
+ */
15
+ describe("agent_session_id minting (BEC-227)", () => {
16
+ let originalEnv;
17
+ beforeEach(() => {
18
+ originalEnv = process.env.URATEAM_ENABLE_AGENT_SESSION_RESUME;
19
+ });
20
+ afterEach(() => {
21
+ if (originalEnv === undefined) {
22
+ delete process.env.URATEAM_ENABLE_AGENT_SESSION_RESUME;
23
+ }
24
+ else {
25
+ process.env.URATEAM_ENABLE_AGENT_SESSION_RESUME = originalEnv;
26
+ }
27
+ });
28
+ it("flag on → mints UUID and persists on pipeline_runs row", async () => {
29
+ process.env.URATEAM_ENABLE_AGENT_SESSION_RESUME = "true";
30
+ const db = await createDb({ driver: "sqlite", connectionString: ":memory:" });
31
+ const runId = "test-run-with-session";
32
+ await db.insert(pipelineRuns).values({
33
+ id: runId,
34
+ issueId: "BEC-227",
35
+ issueTitle: "test",
36
+ repoUrl: "https://example.com/repo",
37
+ pipelineKey: "auto-implement",
38
+ status: "queued",
39
+ startedAt: new Date(),
40
+ agentSessionId: "expected-uuid", // simulate what start() writes
41
+ });
42
+ const [row] = await db
43
+ .select()
44
+ .from(pipelineRuns)
45
+ .where(eq(pipelineRuns.id, runId));
46
+ expect(row.agentSessionId).toBe("expected-uuid");
47
+ });
48
+ it("flag off → agentSessionId stays null", async () => {
49
+ delete process.env.URATEAM_ENABLE_AGENT_SESSION_RESUME;
50
+ const db = await createDb({ driver: "sqlite", connectionString: ":memory:" });
51
+ const runId = "test-run-legacy";
52
+ await db.insert(pipelineRuns).values({
53
+ id: runId,
54
+ issueId: "BEC-227",
55
+ issueTitle: "test",
56
+ repoUrl: "https://example.com/repo",
57
+ pipelineKey: "auto-implement",
58
+ status: "queued",
59
+ startedAt: new Date(),
60
+ });
61
+ const [row] = await db
62
+ .select()
63
+ .from(pipelineRuns)
64
+ .where(eq(pipelineRuns.id, runId));
65
+ expect(row.agentSessionId).toBeNull();
66
+ });
67
+ it("isAgentSessionResumeEnabled reads env at call time (strict equality 'true')", async () => {
68
+ const { isAgentSessionResumeEnabled } = await import("../executor/session-policy.js");
69
+ expect(isAgentSessionResumeEnabled({
70
+ URATEAM_ENABLE_AGENT_SESSION_RESUME: "true",
71
+ })).toBe(true);
72
+ expect(isAgentSessionResumeEnabled({
73
+ URATEAM_ENABLE_AGENT_SESSION_RESUME: "1",
74
+ })).toBe(false);
75
+ expect(isAgentSessionResumeEnabled({
76
+ URATEAM_ENABLE_AGENT_SESSION_RESUME: "yes",
77
+ })).toBe(false);
78
+ expect(isAgentSessionResumeEnabled({
79
+ URATEAM_ENABLE_AGENT_SESSION_RESUME: "TRUE",
80
+ })).toBe(false);
81
+ expect(isAgentSessionResumeEnabled({
82
+ URATEAM_ENABLE_AGENT_SESSION_RESUME: "",
83
+ })).toBe(false);
84
+ expect(isAgentSessionResumeEnabled({})).toBe(false);
85
+ });
86
+ });
87
+ //# sourceMappingURL=session-resume-flag.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-resume-flag.test.js","sourceRoot":"","sources":["../../src/__tests__/session-resume-flag.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/session-store.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
+ import { mkdtempSync, rmSync, writeFileSync, mkdirSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { tmpdir } from "node:os";
5
+ import { transcriptPath, transcriptExists } from "../executor/session-store.js";
6
+ let tmpRoot;
7
+ beforeEach(() => {
8
+ tmpRoot = mkdtempSync(join(tmpdir(), "urateam-session-store-test-"));
9
+ });
10
+ afterEach(() => {
11
+ rmSync(tmpRoot, { recursive: true, force: true });
12
+ });
13
+ describe("session-store (BEC-227)", () => {
14
+ it("transcriptPath builds the expected per-cwd / per-session path", () => {
15
+ const p = transcriptPath({
16
+ projectsRoot: tmpRoot,
17
+ cwd: "/home/ura/data/runs/abc/worktree",
18
+ sessionId: "uuid-1",
19
+ });
20
+ // Per SDK convention: projectsRoot / <encoded-cwd> / <sessionId>.jsonl
21
+ expect(p).toMatch(/uuid-1\.jsonl$/);
22
+ expect(p).toContain(tmpRoot);
23
+ });
24
+ it("transcriptExists returns true when the JSONL file is present", () => {
25
+ const dir = join(tmpRoot, "encoded-cwd");
26
+ mkdirSync(dir, { recursive: true });
27
+ writeFileSync(join(dir, "uuid-1.jsonl"), '{"message":"hi"}\n');
28
+ const exists = transcriptExists({
29
+ projectsRoot: tmpRoot,
30
+ cwd: "/encoded-cwd",
31
+ sessionId: "uuid-1",
32
+ });
33
+ expect(exists).toBe(true);
34
+ });
35
+ it("transcriptExists returns false when missing", () => {
36
+ const exists = transcriptExists({
37
+ projectsRoot: tmpRoot,
38
+ cwd: "/nonexistent",
39
+ sessionId: "uuid-missing",
40
+ });
41
+ expect(exists).toBe(false);
42
+ });
43
+ });
44
+ //# sourceMappingURL=session-store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-store.test.js","sourceRoot":"","sources":["../../src/__tests__/session-store.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAM,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAc,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhF,IAAI,OAAe,CAAC;AAEpB,UAAU,CAAC,GAAG,EAAE;IACd,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AACH,SAAS,CAAC,GAAG,EAAE;IACb,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,GAAG,cAAc,CAAC;YACvB,YAAY,EAAE,OAAO;YACrB,GAAG,EAAE,kCAAkC;YACvC,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QACH,uEAAuE;QACvE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACzC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,gBAAgB,CAAC;YAC9B,YAAY,EAAE,OAAO;YACrB,GAAG,EAAE,cAAc;YACnB,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC;YAC9B,YAAY,EAAE,OAAO;YACrB,GAAG,EAAE,cAAc;YACnB,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-volume-check.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-volume-check.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/session-volume-check.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
+ import { mkdtempSync, rmSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { tmpdir } from "node:os";
5
+ import { checkSessionVolume } from "../pipeline/session-volume-check.js";
6
+ let dir;
7
+ beforeEach(() => {
8
+ dir = mkdtempSync(join(tmpdir(), "vol-check-"));
9
+ });
10
+ afterEach(() => {
11
+ rmSync(dir, { recursive: true, force: true });
12
+ });
13
+ describe("checkSessionVolume (BEC-227)", () => {
14
+ it("writeable persistent dir → returns ok", () => {
15
+ const result = checkSessionVolume({ projectsDir: dir });
16
+ expect(result.ok).toBe(true);
17
+ });
18
+ it("nonexistent dir → returns not-found", () => {
19
+ const result = checkSessionVolume({
20
+ projectsDir: "/totally/not/a/real/path/asdf",
21
+ });
22
+ expect(result.ok).toBe(false);
23
+ if (!result.ok) {
24
+ expect(result.reason).toBe("not-found");
25
+ }
26
+ });
27
+ });
28
+ //# sourceMappingURL=session-volume-check.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-volume-check.test.js","sourceRoot":"","sources":["../../src/__tests__/session-volume-check.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,IAAI,GAAW,CAAC;AAChB,UAAU,CAAC,GAAG,EAAE;IACd,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AACH,SAAS,CAAC,GAAG,EAAE;IACb,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC;YAChC,WAAW,EAAE,+BAA+B;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validate-run-mode.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-run-mode.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/validate-run-mode.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,102 @@
1
+ import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ // Mock the Agent SDK before importing the module under test so that any
3
+ // "fallback" / "first-resumed" path that would otherwise invoke the Haiku
4
+ // validator stays hermetic.
5
+ vi.mock("@anthropic-ai/claude-agent-sdk", () => ({
6
+ query: vi.fn(),
7
+ }));
8
+ import { validateHandoff } from "../executor/validate.js";
9
+ const issue = {
10
+ id: "BEC-227",
11
+ slug: "test-issue",
12
+ title: "Test issue",
13
+ description: "A test issue for validation runMode",
14
+ acceptanceCriteria: ["Tests pass"],
15
+ labels: ["bug"],
16
+ priority: 2,
17
+ };
18
+ const repo = {
19
+ url: "https://github.com/org/repo",
20
+ defaultBranch: "main",
21
+ testCommand: "pnpm test",
22
+ buildCommand: "pnpm build",
23
+ };
24
+ function makeHandoff(overrides) {
25
+ return {
26
+ runId: "run-1",
27
+ issueId: "BEC-227",
28
+ stage: "implement",
29
+ timestamp: new Date().toISOString(),
30
+ summary: "Implemented the feature",
31
+ filesChanged: ["src/index.ts"],
32
+ approach: "Added a new function",
33
+ context: {
34
+ issueIntent: "Add feature",
35
+ constraints: [],
36
+ assumptions: [],
37
+ },
38
+ tokenBudget: {
39
+ contextTokensUsed: 1000,
40
+ recommendedMaxTurns: 10,
41
+ },
42
+ ...overrides,
43
+ };
44
+ }
45
+ function makeHandoffResult(structured, overrides) {
46
+ return {
47
+ artifact: makeHandoff(overrides),
48
+ structured,
49
+ };
50
+ }
51
+ describe("validate.ts runMode (BEC-227)", () => {
52
+ beforeEach(async () => {
53
+ const { query } = await import("@anthropic-ai/claude-agent-sdk");
54
+ query.mockClear();
55
+ });
56
+ it("runMode='resumed' → skip validation, return valid+skipped without invoking agent", async () => {
57
+ const { query } = await import("@anthropic-ai/claude-agent-sdk");
58
+ const querySpy = query;
59
+ // Use blank summary + empty filesChanged so the existing fast-path bypass
60
+ // would NOT trigger — only the runMode='resumed' branch can return early.
61
+ const result = await validateHandoff("implement", makeHandoffResult(true, { filesChanged: [], summary: "" }), issue, repo, "/tmp/test", "resumed");
62
+ expect(result.valid).toBe(true);
63
+ expect(result.skipped).toBe(true);
64
+ expect(result.reason).toContain("resumed");
65
+ // Agent must NOT have been called.
66
+ expect(querySpy).not.toHaveBeenCalled();
67
+ });
68
+ it("runMode='first-resumed' → validate as before (heuristic fast-path still applies)", async () => {
69
+ const { query } = await import("@anthropic-ai/claude-agent-sdk");
70
+ const querySpy = query;
71
+ // Default fixture has filesChanged AND summary so the existing heuristic
72
+ // fast-path returns valid without the runMode='resumed' skip path running.
73
+ const result = await validateHandoff("implement", makeHandoffResult(true), issue, repo, "/tmp/test", "first-resumed");
74
+ expect(result.valid).toBe(true);
75
+ // skipped flag is only set by the runMode='resumed' branch — heuristic
76
+ // bypass leaves it undefined / falsy.
77
+ expect(result.skipped).toBeFalsy();
78
+ expect(querySpy).not.toHaveBeenCalled();
79
+ });
80
+ it("runMode='fallback' → validate as before (invokes agent when heuristic fails)", async () => {
81
+ const { query } = await import("@anthropic-ai/claude-agent-sdk");
82
+ const querySpy = query;
83
+ querySpy.mockReturnValue((async function* () {
84
+ yield {
85
+ type: "assistant",
86
+ content: [
87
+ {
88
+ type: "text",
89
+ text: '```json\n{"valid": true, "issues": []}\n```',
90
+ },
91
+ ],
92
+ };
93
+ })());
94
+ // Empty filesChanged so heuristic fails and agent IS called — this proves
95
+ // 'fallback' is NOT short-circuited by the runMode skip path.
96
+ const result = await validateHandoff("implement", makeHandoffResult(true, { filesChanged: [] }), issue, repo, "/tmp/test", "fallback");
97
+ expect(result.valid).toBe(true);
98
+ expect(result.skipped).toBeFalsy();
99
+ expect(querySpy).toHaveBeenCalledTimes(1);
100
+ });
101
+ });
102
+ //# sourceMappingURL=validate-run-mode.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-run-mode.test.js","sourceRoot":"","sources":["../../src/__tests__/validate-run-mode.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=zombie-age-default.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zombie-age-default.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/zombie-age-default.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { parseStuckRunAgeMinutes } from "../pm/scheduler.js";
3
+ describe("PM_AGENT_STUCK_RUN_AGE_MIN default (BEC-227 / BEC-184 tuning)", () => {
4
+ it("default is 120 minutes when env unset", () => {
5
+ expect(parseStuckRunAgeMinutes(undefined)).toBe(120);
6
+ });
7
+ it("default is 120 minutes for invalid string", () => {
8
+ expect(parseStuckRunAgeMinutes("not-a-number")).toBe(120);
9
+ });
10
+ it("default is 120 minutes for empty string", () => {
11
+ expect(parseStuckRunAgeMinutes("")).toBe(120);
12
+ });
13
+ it("env override still respected (valid integer)", () => {
14
+ expect(parseStuckRunAgeMinutes("90")).toBe(90);
15
+ });
16
+ it("clamps zero/negative to 1 minute (mis-config guard)", () => {
17
+ expect(parseStuckRunAgeMinutes("0")).toBe(1);
18
+ expect(parseStuckRunAgeMinutes("-5")).toBe(1);
19
+ });
20
+ it("large values pass through", () => {
21
+ expect(parseStuckRunAgeMinutes("1440")).toBe(1440);
22
+ });
23
+ });
24
+ //# sourceMappingURL=zombie-age-default.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zombie-age-default.test.js","sourceRoot":"","sources":["../../src/__tests__/zombie-age-default.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,QAAQ,CAAC,+DAA+D,EAAE,GAAG,EAAE;IAC7E,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -362,6 +362,51 @@ export declare function pipelineSpecVsImplFailedEvent(args: {
362
362
  promisedSymbol: string;
363
363
  }>;
364
364
  }): AuditEvent;
365
+ /**
366
+ * BEC-227 — a fresh per-run Agent SDK session was created on the first
367
+ * resumable stage. The `sessionId` is the UUID the SDK generates on the
368
+ * first `query()` call; downstream stages reuse it via `resume:`.
369
+ */
370
+ export declare function agentSessionCreatedEvent(args: {
371
+ runId: string;
372
+ issueId: string;
373
+ sessionId: string;
374
+ }): AuditEvent;
375
+ /**
376
+ * BEC-227 — a downstream stage resumed the per-run SDK session. Payload
377
+ * carries the stage name and the prior message count read from the
378
+ * session JSONL transcript so operators can see how much context was
379
+ * inherited from earlier stages.
380
+ */
381
+ export declare function agentSessionResumedEvent(args: {
382
+ runId: string;
383
+ issueId: string;
384
+ sessionId: string;
385
+ stage: string;
386
+ priorMessageCount: number;
387
+ }): AuditEvent;
388
+ /**
389
+ * BEC-227 — a stage attempted to resume the per-run session but the
390
+ * underlying JSONL was missing, unreadable, or the SDK rejected the resume.
391
+ * The runner fell back to a fresh session for this stage. `reason` captures
392
+ * the failure mode so operators can spot tmpfs-loss / parse-error patterns.
393
+ */
394
+ export declare function agentSessionMissingFallbackEvent(args: {
395
+ runId: string;
396
+ issueId: string;
397
+ sessionId: string;
398
+ reason: "jsonl-not-found" | "jsonl-parse-error" | "sdk-resume-error";
399
+ }): AuditEvent;
400
+ /**
401
+ * BEC-227 — emitted at boot when the session-volume check finds
402
+ * `~/.claude/projects` on tmpfs, missing, or unwritable. Session JSONLs
403
+ * won't survive container restarts in any of these cases, so the operator
404
+ * must remount before resume becomes reliable.
405
+ */
406
+ export declare function systemSessionVolumeWarningEvent(args: {
407
+ projectsDir: string;
408
+ reason: "tmpfs" | "write-test-failed" | "not-found";
409
+ }): AuditEvent;
365
410
  /**
366
411
  * Tier 6e — emitted after each successful push. Records how closely triage
367
412
  * v2's `affectedFiles` prediction matched the actual changed files in the
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/audit/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/audit/events.ts"],"names":[],"mappings":"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"}