@telora/daemon 0.24.7 → 0.24.10

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 (172) hide show
  1. package/build-info.json +12 -3
  2. package/dist/backends/agent-backend.d.ts +10 -0
  3. package/dist/backends/agent-backend.d.ts.map +1 -1
  4. package/dist/backends/claude/claude-backend.d.ts +19 -0
  5. package/dist/backends/claude/claude-backend.d.ts.map +1 -1
  6. package/dist/backends/claude/claude-backend.js +41 -1
  7. package/dist/backends/claude/claude-backend.js.map +1 -1
  8. package/dist/backends/codex/codex-backend.d.ts.map +1 -1
  9. package/dist/backends/codex/codex-backend.js +50 -20
  10. package/dist/backends/codex/codex-backend.js.map +1 -1
  11. package/dist/backends/index.js +1 -1
  12. package/dist/ci/candidate-ref.js +1 -1
  13. package/dist/ci/candidate-ref.js.map +1 -1
  14. package/dist/ci/gate-ref.d.ts +150 -0
  15. package/dist/ci/gate-ref.d.ts.map +1 -0
  16. package/dist/ci/gate-ref.js +348 -0
  17. package/dist/ci/gate-ref.js.map +1 -0
  18. package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
  19. package/dist/completion/review-exit/review-exit-phase.js +11 -22
  20. package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
  21. package/dist/composition/execution-migrations-context.js +1 -1
  22. package/dist/composition/runtime-poll-context.d.ts +7 -1
  23. package/dist/composition/runtime-poll-context.d.ts.map +1 -1
  24. package/dist/composition/runtime-poll-context.js +14 -2
  25. package/dist/composition/runtime-poll-context.js.map +1 -1
  26. package/dist/composition/verification-context.d.ts.map +1 -1
  27. package/dist/composition/verification-context.js +56 -8
  28. package/dist/composition/verification-context.js.map +1 -1
  29. package/dist/delivery/delivery-reconciler.d.ts +10 -15
  30. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  31. package/dist/delivery/delivery-reconciler.js +17 -30
  32. package/dist/delivery/delivery-reconciler.js.map +1 -1
  33. package/dist/focus/focus-executor.d.ts.map +1 -1
  34. package/dist/focus/focus-executor.js +2 -6
  35. package/dist/focus/focus-executor.js.map +1 -1
  36. package/dist/focus/verify-routing-passes.d.ts +5 -1
  37. package/dist/focus/verify-routing-passes.d.ts.map +1 -1
  38. package/dist/focus/verify-routing-passes.js +1 -0
  39. package/dist/focus/verify-routing-passes.js.map +1 -1
  40. package/dist/host-control/load.d.ts.map +1 -1
  41. package/dist/host-control/load.js +2 -1
  42. package/dist/host-control/load.js.map +1 -1
  43. package/dist/nexus/file-escalation.d.ts.map +1 -1
  44. package/dist/nexus/file-escalation.js +1 -0
  45. package/dist/nexus/file-escalation.js.map +1 -1
  46. package/dist/nexus/intake.d.ts +14 -2
  47. package/dist/nexus/intake.d.ts.map +1 -1
  48. package/dist/nexus/intake.js +11 -2
  49. package/dist/nexus/intake.js.map +1 -1
  50. package/dist/nexus/pending-returns.d.ts +1 -1
  51. package/dist/nexus/pending-returns.d.ts.map +1 -1
  52. package/dist/prompt/team-prompt-base.d.ts +31 -2
  53. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  54. package/dist/prompt/team-prompt-base.js +52 -2
  55. package/dist/prompt/team-prompt-base.js.map +1 -1
  56. package/dist/prompt-sections/persona-sections.d.ts +7 -6
  57. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  58. package/dist/prompt-sections/persona-sections.js +17 -13
  59. package/dist/prompt-sections/persona-sections.js.map +1 -1
  60. package/dist/prompt-sections/role-sections.d.ts +12 -1
  61. package/dist/prompt-sections/role-sections.d.ts.map +1 -1
  62. package/dist/prompt-sections/role-sections.js +42 -1
  63. package/dist/prompt-sections/role-sections.js.map +1 -1
  64. package/dist/prompt-sections/shared.js +1 -1
  65. package/dist/queries/deliveries/falsified-effect-reopens.d.ts +33 -0
  66. package/dist/queries/deliveries/falsified-effect-reopens.d.ts.map +1 -0
  67. package/dist/queries/deliveries/falsified-effect-reopens.js +36 -0
  68. package/dist/queries/deliveries/falsified-effect-reopens.js.map +1 -0
  69. package/dist/queries/verification/verification.js +1 -1
  70. package/dist/resolvers/assembly-engine.js +1 -1
  71. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
  72. package/dist/resolvers/git-diff-against-base.js +2 -1
  73. package/dist/resolvers/git-diff-against-base.js.map +1 -1
  74. package/dist/session/session-lineage.d.ts +15 -6
  75. package/dist/session/session-lineage.d.ts.map +1 -1
  76. package/dist/session/session-lineage.js +17 -5
  77. package/dist/session/session-lineage.js.map +1 -1
  78. package/dist/spawn/model-routing.d.ts +1 -1
  79. package/dist/spawn/model-routing.d.ts.map +1 -1
  80. package/dist/spawn/model-routing.js +6 -4
  81. package/dist/spawn/model-routing.js.map +1 -1
  82. package/dist/spawn/prompt-assembly.d.ts +0 -9
  83. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  84. package/dist/spawn/prompt-assembly.js +61 -65
  85. package/dist/spawn/prompt-assembly.js.map +1 -1
  86. package/dist/spawn/spawn-decision.d.ts +8 -1
  87. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  88. package/dist/spawn/spawn-decision.js +10 -3
  89. package/dist/spawn/spawn-decision.js.map +1 -1
  90. package/dist/testing/fixtures/index.js +1 -1
  91. package/dist/testing/fixtures/verification-deps.d.ts +8 -67
  92. package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
  93. package/dist/testing/fixtures/verification-deps.js +94 -1
  94. package/dist/testing/fixtures/verification-deps.js.map +1 -1
  95. package/dist/testing/fixtures/vitest-failure-log.d.ts.map +1 -1
  96. package/dist/testing/fixtures/vitest-failure-log.js +1 -0
  97. package/dist/testing/fixtures/vitest-failure-log.js.map +1 -1
  98. package/dist/types/index.js +1 -1
  99. package/dist/verify/ci-gate/ci-gate-dispatch.d.ts +93 -0
  100. package/dist/verify/ci-gate/ci-gate-dispatch.d.ts.map +1 -0
  101. package/dist/verify/ci-gate/ci-gate-dispatch.js +304 -0
  102. package/dist/verify/ci-gate/ci-gate-dispatch.js.map +1 -0
  103. package/dist/verify/ci-gate/ci-gate-reruns.d.ts +51 -0
  104. package/dist/verify/ci-gate/ci-gate-reruns.d.ts.map +1 -0
  105. package/dist/verify/ci-gate/ci-gate-reruns.js +189 -0
  106. package/dist/verify/ci-gate/ci-gate-reruns.js.map +1 -0
  107. package/dist/verify/ci-gate/ci-gate-wait-record.d.ts +33 -0
  108. package/dist/verify/ci-gate/ci-gate-wait-record.d.ts.map +1 -0
  109. package/dist/verify/ci-gate/ci-gate-wait-record.js +89 -0
  110. package/dist/verify/ci-gate/ci-gate-wait-record.js.map +1 -0
  111. package/dist/verify/deterministic-gate/verification-deterministic.d.ts +6 -0
  112. package/dist/verify/deterministic-gate/verification-deterministic.d.ts.map +1 -1
  113. package/dist/verify/deterministic-gate/verification-deterministic.js +1 -20
  114. package/dist/verify/deterministic-gate/verification-deterministic.js.map +1 -1
  115. package/dist/verify/deterministic-gate/verification-gate-stages.d.ts.map +1 -1
  116. package/dist/verify/deterministic-gate/verification-gate-stages.js +1 -0
  117. package/dist/verify/deterministic-gate/verification-gate-stages.js.map +1 -1
  118. package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts +34 -5
  119. package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts.map +1 -1
  120. package/dist/verify/effect-reconciliation/verify-reconciliation.js +106 -27
  121. package/dist/verify/effect-reconciliation/verify-reconciliation.js.map +1 -1
  122. package/dist/verify/engine/verification-commit-sharing.d.ts +24 -0
  123. package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
  124. package/dist/verify/engine/verification-commit-sharing.js +93 -1
  125. package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
  126. package/dist/verify/engine/verification-deps.d.ts +9 -0
  127. package/dist/verify/engine/verification-deps.d.ts.map +1 -1
  128. package/dist/verify/engine/verification-deps.js +1 -1
  129. package/dist/verify/engine/verification-engine.d.ts.map +1 -1
  130. package/dist/verify/engine/verification-engine.js +19 -5
  131. package/dist/verify/engine/verification-engine.js.map +1 -1
  132. package/dist/verify/failing-test-rerun/failing-test-retry.d.ts.map +1 -1
  133. package/dist/verify/failing-test-rerun/failing-test-retry.js +2 -1
  134. package/dist/verify/failing-test-rerun/failing-test-retry.js.map +1 -1
  135. package/dist/verify/gate-config/judged-commit-gate.d.ts +11 -3
  136. package/dist/verify/gate-config/judged-commit-gate.d.ts.map +1 -1
  137. package/dist/verify/gate-config/judged-commit-gate.js +16 -5
  138. package/dist/verify/gate-config/judged-commit-gate.js.map +1 -1
  139. package/dist/verify/gate-config/verification-config.js +1 -1
  140. package/dist/verify/gate-config/verification-manifest.d.ts +18 -1
  141. package/dist/verify/gate-config/verification-manifest.d.ts.map +1 -1
  142. package/dist/verify/gate-config/verification-manifest.js +21 -21
  143. package/dist/verify/gate-config/verification-manifest.js.map +1 -1
  144. package/dist/verify/gate-verdicts/commit-verdict-record.d.ts +2 -0
  145. package/dist/verify/gate-verdicts/commit-verdict-record.d.ts.map +1 -1
  146. package/dist/verify/gate-verdicts/commit-verdict-record.js +11 -4
  147. package/dist/verify/gate-verdicts/commit-verdict-record.js.map +1 -1
  148. package/dist/verify/gate-verdicts/gate-run-registry.js +1 -1
  149. package/dist/verify/outcome-routing/failing-output-excerpt.d.ts +8 -0
  150. package/dist/verify/outcome-routing/failing-output-excerpt.d.ts.map +1 -0
  151. package/dist/verify/outcome-routing/failing-output-excerpt.js +41 -0
  152. package/dist/verify/outcome-routing/failing-output-excerpt.js.map +1 -0
  153. package/dist/verify/outcome-routing/falsified-effect-reopen.d.ts +17 -0
  154. package/dist/verify/outcome-routing/falsified-effect-reopen.d.ts.map +1 -0
  155. package/dist/verify/outcome-routing/falsified-effect-reopen.js +76 -0
  156. package/dist/verify/outcome-routing/falsified-effect-reopen.js.map +1 -0
  157. package/dist/verify/outcome-routing/verification-feedback.d.ts +2 -0
  158. package/dist/verify/outcome-routing/verification-feedback.d.ts.map +1 -1
  159. package/dist/verify/outcome-routing/verification-feedback.js +3 -0
  160. package/dist/verify/outcome-routing/verification-feedback.js.map +1 -1
  161. package/dist/verify/outcome-routing/verification-rework-issue.d.ts +7 -0
  162. package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
  163. package/dist/verify/outcome-routing/verification-rework-issue.js +30 -2
  164. package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
  165. package/dist/verify/run-selection/default-on-guards.js +1 -1
  166. package/dist/verify/run-selection/explicit-rearm.d.ts.map +1 -1
  167. package/dist/verify/run-selection/explicit-rearm.js +1 -0
  168. package/dist/verify/run-selection/explicit-rearm.js.map +1 -1
  169. package/dist/verify/run-selection/verification-default-on.d.ts.map +1 -1
  170. package/dist/verify/run-selection/verification-default-on.js +1 -0
  171. package/dist/verify/run-selection/verification-default-on.js.map +1 -1
  172. package/package.json +2 -2
package/build-info.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
- "commitSha": "4e8550d36",
3
- "builtAt": "2026-10-15T22:54:10.994Z",
2
+ "commitSha": "dcfa30ae8",
3
+ "builtAt": "2026-10-17T23:02:58.362Z",
4
4
  "expectedMigrations": [
5
5
  "20250829113330_create_org_nodes_table.sql",
6
6
  "20250829113402_fix_function_security_search_path.sql",
@@ -872,6 +872,15 @@
872
872
  "20261015004952_release_note_drafts.sql",
873
873
  "20261015005636_release_note_publish.sql",
874
874
  "20261015011747_radar_blocking_conditions.sql",
875
- "20261015011751_radar_ingest_blocking_conditions.sql"
875
+ "20261015011751_radar_ingest_blocking_conditions.sql",
876
+ "20261016022511_radar_withdrawn_items_stop_counting.sql",
877
+ "20261016023336_radar_records_can_be_retracted.sql",
878
+ "20261016024848_radar_source_date_corrections.sql",
879
+ "20261016030625_radar_wait_says_why_it_closed.sql",
880
+ "20261016145947_arm_readiness_names_unanchored_and_met.sql",
881
+ "20261016151419_bug_names_falsified_effects.sql",
882
+ "20261016163239_falsifying_bug_and_finding_taking_create_are_one_transaction.sql",
883
+ "20261017023109_request_answered_without_focus_is_delivered.sql",
884
+ "20261017030437_request_requester_authority.sql"
876
885
  ]
877
886
  }
@@ -47,6 +47,16 @@ export interface AgentSpawnContext {
47
47
  * execution-policy layer can tighten filesystem permissions for these spawns.
48
48
  */
49
49
  readOnly?: boolean;
50
+ /**
51
+ * True for a REVIEW pass. A reviewer judges the focus worktree; it never edits
52
+ * it, so each backend removes its file-editing tools at the CLI level -- not
53
+ * as prompt guidance. Claude: `--disallowed-tools` for Edit/Write/MultiEdit/
54
+ * NotebookEdit, and a Bash sandbox in which the worktree is read-only (so a
55
+ * shell write is refused too). Codex: a sandboxed run whose permission profile makes the
56
+ * workspace read-only (apply_patch and shell writes there are refused) while
57
+ * reads, test runs and Telora MCP calls still work.
58
+ */
59
+ reviewPass?: boolean;
50
60
  }
51
61
  /** Inputs for resuming a prior session. */
52
62
  export interface AgentResumeContext extends AgentSpawnContext {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-backend.d.ts","sourceRoot":"","sources":["../../src/backends/agent-backend.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,MAAM,EAAE,YAAY,CAAC;IACrB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,yEAAyE;IACzE,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC;IAE7C,qDAAqD;IACrD,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAAC;IAEjD,mDAAmD;IACnD,eAAe,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAAC;IAEnD,kFAAkF;IAClF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAErC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,2EAA2E;IAC3E,YAAY,IAAI,gBAAgB,CAAC;IAEjC,yEAAyE;IACzE,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvE"}
1
+ {"version":3,"file":"agent-backend.d.ts","sourceRoot":"","sources":["../../src/backends/agent-backend.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,wCAAwC;AACxC,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,MAAM,EAAE,YAAY,CAAC;IACrB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,+EAA+E;IAC/E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,yEAAyE;IACzE,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC;IAE7C,qDAAqD;IACrD,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAAC;IAEjD,mDAAmD;IACnD,eAAe,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAAC;IAEnD,kFAAkF;IAClF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAErC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,2EAA2E;IAC3E,YAAY,IAAI,gBAAgB,CAAC;IAEjC,yEAAyE;IACzE,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvE"}
@@ -1,3 +1,22 @@
1
1
  import type { AgentBackend } from '../agent-backend.js';
2
+ /** The Claude tools a review session is spawned without: every file-editing tool. */
3
+ export declare const REVIEW_DISALLOWED_CLAUDE_TOOLS: readonly string[];
4
+ /**
5
+ * The `--settings` a review session runs under: Claude Code's Bash sandbox, on,
6
+ * with the worktree denied for writing. Removing Edit and Write leaves Bash, and
7
+ * `--dangerously-skip-permissions` approves any shell command, so without this a
8
+ * reviewer could still `echo > file` or commit into the tree it judges.
9
+ *
10
+ * Measured on claude 2.1.300 (2026-10-15), under --dangerously-skip-permissions:
11
+ * a shell write or `mkdir` in the worktree fails "Read-only file system" and so
12
+ * does a commit (the worktree's git metadata lives outside it, where the sandbox
13
+ * writes nothing by default); reads, `git status`/`log`, node, /tmp writes and
14
+ * outbound HTTPS work. Localhost TCP to a host service does not (the sandbox has
15
+ * its own network namespace). `allowUnsandboxedCommands: false` takes away the
16
+ * per-command escape hatch, and `failIfUnavailable` refuses to start rather than
17
+ * run an unsandboxed reviewer on a host without bubblewrap. Flag settings
18
+ * outrank the project's, and a deny outranks any allow it adds.
19
+ */
20
+ export declare function reviewSandboxSettings(worktreePath: string): string;
2
21
  export declare const claudeBackend: AgentBackend;
3
22
  //# sourceMappingURL=claude-backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-backend.d.ts","sourceRoot":"","sources":["../../../src/backends/claude/claude-backend.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,qBAAqB,CAAC;AAgD7B,eAAO,MAAM,aAAa,EAAE,YAgD3B,CAAC"}
1
+ {"version":3,"file":"claude-backend.d.ts","sourceRoot":"","sources":["../../../src/backends/claude/claude-backend.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,qBAAqB,CAAC;AA6C7B,qFAAqF;AACrF,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAAmD,CAAC;AAEhH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAWlE;AAcD,eAAO,MAAM,aAAa,EAAE,YAgD3B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: none -- no test imports this module directly (baselined; see lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/backends/agent-backend.test.ts,
3
+ // packages/daemon/src/backends/claude/review-sandbox.live.test.ts
3
4
  // PINNED-BY-END
4
5
  /**
5
6
  * Claude Code backend -- the built-in `AgentBackend` implementation.
@@ -46,8 +47,47 @@ function buildBaseArgs(ctx) {
46
47
  if (ctx.allowedTools && ctx.allowedTools.length > 0) {
47
48
  args.push('--allowed-tools', ctx.allowedTools.join(','));
48
49
  }
50
+ // A review pass judges the worktree and never edits it: the file-editing tools
51
+ // are removed from its tool set (`--allowed-tools` only pre-approves, so it
52
+ // cannot take them away). Deny wins over any role allow-list above. Its shell
53
+ // runs in Claude Code's sandbox with the worktree read-only, so Bash cannot
54
+ // write there either (reviewSandboxSettings).
55
+ if (ctx.reviewPass === true) {
56
+ args.push('--disallowed-tools', REVIEW_DISALLOWED_CLAUDE_TOOLS.join(','));
57
+ args.push('--settings', reviewSandboxSettings(ctx.worktreePath));
58
+ }
49
59
  return args;
50
60
  }
61
+ /** The Claude tools a review session is spawned without: every file-editing tool. */
62
+ export const REVIEW_DISALLOWED_CLAUDE_TOOLS = ['Edit', 'Write', 'MultiEdit', 'NotebookEdit'];
63
+ /**
64
+ * The `--settings` a review session runs under: Claude Code's Bash sandbox, on,
65
+ * with the worktree denied for writing. Removing Edit and Write leaves Bash, and
66
+ * `--dangerously-skip-permissions` approves any shell command, so without this a
67
+ * reviewer could still `echo > file` or commit into the tree it judges.
68
+ *
69
+ * Measured on claude 2.1.300 (2026-10-15), under --dangerously-skip-permissions:
70
+ * a shell write or `mkdir` in the worktree fails "Read-only file system" and so
71
+ * does a commit (the worktree's git metadata lives outside it, where the sandbox
72
+ * writes nothing by default); reads, `git status`/`log`, node, /tmp writes and
73
+ * outbound HTTPS work. Localhost TCP to a host service does not (the sandbox has
74
+ * its own network namespace). `allowUnsandboxedCommands: false` takes away the
75
+ * per-command escape hatch, and `failIfUnavailable` refuses to start rather than
76
+ * run an unsandboxed reviewer on a host without bubblewrap. Flag settings
77
+ * outrank the project's, and a deny outranks any allow it adds.
78
+ */
79
+ export function reviewSandboxSettings(worktreePath) {
80
+ return JSON.stringify({
81
+ sandbox: {
82
+ enabled: true,
83
+ failIfUnavailable: true,
84
+ allowUnsandboxedCommands: false,
85
+ autoAllowBashIfSandboxed: true,
86
+ filesystem: { denyWrite: [worktreePath], allowWrite: ['/tmp'] },
87
+ network: { allowedDomains: ['*'], allowLocalBinding: true },
88
+ },
89
+ });
90
+ }
51
91
  /** Resolve whether an executable name/path exists on the host. */
52
92
  function commandExists(command) {
53
93
  if (isAbsolute(command) || command.includes('/')) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-backend.js","sourceRoot":"","sources":["../../../src/backends/claude/claude-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-backend.js","sourceRoot":"","sources":["../../../src/backends/claude/claude-backend.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-backend.d.ts","sourceRoot":"","sources":["../../../src/backends/codex/codex-backend.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,qBAAqB,CAAC;AAwM7B,eAAO,MAAM,YAAY,EAAE,YAiE1B,CAAC"}
1
+ {"version":3,"file":"codex-backend.d.ts","sourceRoot":"","sources":["../../../src/backends/codex/codex-backend.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,qBAAqB,CAAC;AA2P7B,eAAO,MAAM,YAAY,EAAE,YAiD1B,CAAC"}
@@ -171,6 +171,54 @@ function roleAllowedToolsConfigFlags(allowedTools) {
171
171
  }
172
172
  return flags;
173
173
  }
174
+ /**
175
+ * The reviewer posture: a review session reads the worktree and never edits it.
176
+ *
177
+ * Codex has no removable file-write tool (apply_patch is always offered), and
178
+ * under BYPASS_FLAG no permission profile is enforced -- measured on codex-cli
179
+ * 0.160.0 (2026-10-15): with the bypass, both `echo > file` and apply_patch wrote
180
+ * into a workspace the profile marked read-only. So a review pass runs WITHOUT
181
+ * the bypass, under this profile, which the sandbox does enforce: apply_patch is
182
+ * refused ("writing is blocked by read-only sandbox") and so is a shell write
183
+ * into the worktree, while shell reads and test runs work and /tmp stays
184
+ * writable for them. `:root` is read (not `:minimal`) because the sandboxed
185
+ * shell must reach the Codex binary under the npm prefix -- with `:minimal` every
186
+ * shell command failed to exec. `approval_policy="never"` (daemonExecutionConfigFlags)
187
+ * turns a refused write into an error rather than a prompt, and the Telora MCP
188
+ * tools are pre-approved, since without the bypass an unapproved MCP call
189
+ * waits forever for an approval nobody gives. Appended LAST so its
190
+ * `default_permissions` wins over the read-only audit and role profiles.
191
+ */
192
+ function reviewPassConfigFlags(mcpConfigured) {
193
+ return [
194
+ '-c', `default_permissions="telora_review"`,
195
+ '-c', `permissions.telora_review.filesystem={ ":root" = "read", "/tmp" = "write", ":workspace_roots" = { "." = "read" } }`,
196
+ '-c', `permissions.telora_review.network.enabled=true`,
197
+ ...(mcpConfigured ? ['-c', `mcp_servers.telora.default_tools_approval_mode="approve"`] : []),
198
+ ];
199
+ }
200
+ /** BYPASS_FLAG for every pass except a review pass, which runs sandboxed (reviewPassConfigFlags). */
201
+ function bypassFlags(ctx) {
202
+ return ctx.reviewPass === true ? [] : [BYPASS_FLAG];
203
+ }
204
+ /**
205
+ * The model/config flags every fresh and resumed spawn shares. A review pass
206
+ * takes the reviewer posture last (reviewPassConfigFlags); every other pass is
207
+ * unchanged.
208
+ */
209
+ function sharedConfigFlags(ctx) {
210
+ const mcp = mcpConfigFlags(ctx.config);
211
+ return [
212
+ ...(ctx.model ? ['--model', ctx.model] : []),
213
+ ...effortConfigFlags(ctx.effort),
214
+ ...daemonExecutionConfigFlags(ctx.readOnly),
215
+ // MCP config overrides are global `-c` flags (accepted by the resume
216
+ // subcommand too) so a resumed agent keeps Telora MCP access.
217
+ ...mcp,
218
+ ...roleAllowedToolsConfigFlags(ctx.allowedTools),
219
+ ...(ctx.reviewPass === true ? reviewPassConfigFlags(mcp.length > 0) : []),
220
+ ];
221
+ }
174
222
  /**
175
223
  * The pass's resolved effort as Codex's `model_reasoning_effort` config
176
224
  * override (a TOML string, like the other `-c` values). None resolved => no
@@ -219,30 +267,12 @@ export const codexBackend = {
219
267
  return codexCommand(config);
220
268
  },
221
269
  buildSpawnArgs(ctx) {
222
- const args = ['exec', '--json', BYPASS_FLAG, '--cd', ctx.worktreePath];
223
- if (ctx.model)
224
- args.push('--model', ctx.model);
225
- args.push(...effortConfigFlags(ctx.effort));
226
- args.push(...daemonExecutionConfigFlags(ctx.readOnly));
227
- args.push(...mcpConfigFlags(ctx.config));
228
- args.push(...roleAllowedToolsConfigFlags(ctx.allowedTools));
229
270
  // Trailing '-' tells codex exec to read the prompt from stdin.
230
- args.push('-');
231
- return args;
271
+ return ['exec', '--json', ...bypassFlags(ctx), '--cd', ctx.worktreePath, ...sharedConfigFlags(ctx), '-'];
232
272
  },
233
273
  buildResumeArgs(ctx) {
234
274
  // resume recovers the workspace from the session -- NO --cd, NEVER --ephemeral.
235
- const args = ['exec', 'resume', ctx.resumeSessionId, '--json', BYPASS_FLAG];
236
- if (ctx.model)
237
- args.push('--model', ctx.model);
238
- args.push(...effortConfigFlags(ctx.effort));
239
- args.push(...daemonExecutionConfigFlags(ctx.readOnly));
240
- // MCP config overrides are global `-c` flags (accepted by the resume
241
- // subcommand) so the resumed agent keeps Telora MCP access.
242
- args.push(...mcpConfigFlags(ctx.config));
243
- args.push(...roleAllowedToolsConfigFlags(ctx.allowedTools));
244
- args.push('-');
245
- return args;
275
+ return ['exec', 'resume', ctx.resumeSessionId, '--json', ...bypassFlags(ctx), ...sharedConfigFlags(ctx), '-'];
246
276
  },
247
277
  encodeInput(content) {
248
278
  // Codex reads the prompt as plain text on stdin (not stream-json).
@@ -1 +1 @@
1
- {"version":3,"file":"codex-backend.js","sourceRoot":"","sources":["../../../src/backends/codex/codex-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-backend.js","sourceRoot":"","sources":["../../../src/backends/codex/codex-backend.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: 23 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/backends/index.ts
2
+ // Pinned by: 24 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/backends/index.ts
3
3
  // PINNED-BY-END
4
4
  /**
5
5
  * Agent backend layer -- engine-agnostic spawn seam.
@@ -1,6 +1,6 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
2
  // Pinned by: packages/daemon/src/ci/candidate-ci-contract.test.ts,
3
- // packages/daemon/src/ci/candidate-ref.test.ts
3
+ // packages/daemon/src/ci/candidate-ref.test.ts, packages/daemon/src/ci/gate-ref.test.ts
4
4
  // PINNED-BY-END
5
5
  /**
6
6
  * The integration CANDIDATE namespace: where the daemon pushes a completed
@@ -1 +1 @@
1
- {"version":3,"file":"candidate-ref.js","sourceRoot":"","sources":["../../src/ci/candidate-ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candidate-ref.js","sourceRoot":"","sources":["../../src/ci/candidate-ref.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { type CiRunStatus } from './ci-status.js';
2
+ /** Branch prefix of the gate namespace (under refs/heads/). */
3
+ export declare const GATE_BRANCH_PREFIX = "telora-gate";
4
+ /** The ci.yml `on.push.branches` glob that admits every gate branch. */
5
+ export declare const GATE_BRANCH_TRIGGER_GLOB = "telora-gate/**";
6
+ /** Where the spec of a focus's latest gate push lives. */
7
+ export declare const GATE_SPEC_REF_PREFIX = "refs/telora-gate-spec";
8
+ /** Where CI publishes a gate run's verdict (in the ref name) and log (in the commit it points at). */
9
+ export declare const GATE_STATUS_REF_PREFIX = "refs/telora-gate-status";
10
+ /** The file in a published status commit holding the run's combined output. */
11
+ export declare const GATE_LOG_FILE = "gate.log";
12
+ /** The file in a published status commit holding the run's exit facts (JSON). */
13
+ export declare const GATE_RESULT_FILE = "gate-result.json";
14
+ /** The spec format this daemon writes; the CI script refuses any other. */
15
+ export declare const GATE_SPEC_VERSION = 1;
16
+ /**
17
+ * The git runner the IO below goes through (production: {@link gateGit}, bound at
18
+ * the composition root). `env` is added to git's environment (the harness build
19
+ * points GIT_INDEX_FILE at a scratch index).
20
+ */
21
+ export type GateGit = (args: string[], cwd: string, env?: Record<string, string>) => {
22
+ success: boolean;
23
+ output: string;
24
+ error?: string;
25
+ };
26
+ /** git, synchronously, with room for a whole gate log; never throws. */
27
+ export declare const gateGit: GateGit;
28
+ /** Why a run is asked for: the per-HEAD gate, a re-run of named failing tests, or a run of the base for attribution. */
29
+ export type GateRunPurpose = 'gate' | 'rerun' | 'base';
30
+ /**
31
+ * What the CI job runs: `command` at `sha`, under `timeoutMs`, with `env` added
32
+ * to its environment, publishing under `key`. The daemon writes it; the CI
33
+ * script (scripts/ci-gate-run.sh) reads it and refuses one whose sha is not the
34
+ * commit it was triggered for.
35
+ */
36
+ export interface GateRunSpec {
37
+ version: number;
38
+ purpose: GateRunPurpose;
39
+ focusId: string;
40
+ sha: string;
41
+ key: string;
42
+ command: string;
43
+ timeoutMs: number;
44
+ env: Record<string, string>;
45
+ }
46
+ /**
47
+ * A gate's identity: its command + timeout, hashed (12 hex). The ONE definition
48
+ * the per-commit verdict record keys its files by and CI publishes under.
49
+ */
50
+ export declare function gateRunKey(gate: {
51
+ command: string;
52
+ timeoutMs: number;
53
+ }): string;
54
+ /** The gate branch name for a focus (one per focus; force-pushed per run). */
55
+ export declare function gateBranchForFocus(focusId: string): string;
56
+ /** The spec ref for a focus. */
57
+ export declare function gateSpecRefForFocus(focusId: string): string;
58
+ /** Whether a branch name (or full refs/heads/ ref) is in the gate namespace. */
59
+ export declare function isGateBranch(ref: string): boolean;
60
+ /** Build the spec for one run; its key is the gate identity of `command` + `timeoutMs`. Pure. */
61
+ export declare function buildGateRunSpec(params: {
62
+ purpose: GateRunPurpose;
63
+ focusId: string;
64
+ sha: string;
65
+ command: string;
66
+ timeoutMs: number;
67
+ env?: Record<string, string>;
68
+ }): GateRunSpec;
69
+ /** Parse a spec (the spec commit's message); null when it is not a well-formed spec of this version. Pure. */
70
+ export declare function parseGateRunSpec(text: string): GateRunSpec | null;
71
+ /** The sha the focus's gate branch points at on origin; null when never pushed or git fails. */
72
+ export declare function readPushedGateSha(repoPath: string, focusId: string, git: GateGit): string | null;
73
+ /** Remove the focus's gate branch from origin. Best-effort: false when git refused (e.g. nothing to delete). */
74
+ export declare function deleteGateBranch(repoPath: string, focusId: string, git: GateGit): boolean;
75
+ /**
76
+ * What a CI run needs from the repo besides the code it judges: the workflows that
77
+ * define the gate job, and the script the job runs. A commit from before the
78
+ * product adopted the CI gate (a focus base, for attribution) carries neither, so
79
+ * pushing it alone would start no run at all.
80
+ */
81
+ export declare const GATE_HARNESS_PATHS: readonly [".github/workflows", ".gitea/workflows", "scripts/ci-gate-run.sh"];
82
+ /** The subject a harness commit opens with; scripts/ci-gate-run.sh accepts only a commit carrying it. */
83
+ export declare const GATE_HARNESS_SUBJECT = "telora-gate-harness";
84
+ /**
85
+ * A HARNESS commit for running `sourceSha` on CI with the gate harness of
86
+ * `harnessFrom`: its only parent is `sourceSha`, and its tree is `sourceSha`'s
87
+ * with {@link GATE_HARNESS_PATHS} replaced by `harnessFrom`'s -- so the push
88
+ * triggers the gate job, and the job (scripts/ci-gate-run.sh) checks out
89
+ * `sourceSha` itself before it runs the command: the run executes at the source
90
+ * commit exactly, and only the harness comes from the installed revision. Built
91
+ * in a scratch index, so no working tree or real index is touched. Null when git
92
+ * fails.
93
+ */
94
+ export declare function buildHarnessCommit(repoPath: string, sourceSha: string, harnessFrom: string, git: GateGit): string | null;
95
+ /**
96
+ * Hand `spec` to CI: push the spec commit to the focus's spec ref and `spec.sha`
97
+ * to its gate branch, in ONE push (both refs land before the push triggers the
98
+ * job). When the branch already points at `spec.sha` -- a re-push, or a re-run
99
+ * of the same commit -- it is deleted first, because re-pushing an unchanged sha
100
+ * to an existing branch triggers nothing. With `harnessFrom` naming another commit
101
+ * than `spec.sha` (the judged HEAD, for a run at the focus base), a harness commit
102
+ * over `spec.sha` carrying `harnessFrom`'s gate job and script is pushed instead
103
+ * ({@link buildHarnessCommit}); the job still runs at `spec.sha` and publishes
104
+ * under it. Returns false on any git failure; the caller holds and asks again.
105
+ */
106
+ export declare function pushGateRun(repoPath: string, spec: GateRunSpec, git: GateGit, harnessFrom?: string): boolean;
107
+ /** A published status ref: its name, the commit it points at (the log commit), its run and state. */
108
+ export interface PublishedGateStatus {
109
+ ref: string;
110
+ oid: string;
111
+ runNumber: number;
112
+ state: 'green' | 'red' | 'pending';
113
+ }
114
+ /** Every status CI published for `sha` under `key` (scoped, read-only ls-remote); [] on any failure. */
115
+ export declare function listGateStatus(repoPath: string, sha: string, key: string, git: GateGit): PublishedGateStatus[];
116
+ /** A gate run's verdict as CI published it, and the published run that decided it (null: no decision). */
117
+ export interface GateRunVerdict {
118
+ status: CiRunStatus;
119
+ decidedBy: PublishedGateStatus | null;
120
+ }
121
+ /**
122
+ * Classify the statuses published for one (sha, key) exactly as an integration
123
+ * tip is classified (ci/ci-status.ts classifyGitNativeCiStatus: red wins within a
124
+ * run, any completed green wins across runs, none = unknown), and name the run
125
+ * that decided it: a green run for green, the newest red run for red. Pure.
126
+ */
127
+ export declare function classifyGateStatus(published: readonly PublishedGateStatus[]): GateRunVerdict;
128
+ /** Read the verdict CI published for `sha` under `key`. Fail-closed: anything unreadable is 'unknown'. */
129
+ export declare function readGateRunVerdict(repoPath: string, sha: string, key: string, git: GateGit): GateRunVerdict;
130
+ /** The exit facts a CI run published beside its log. */
131
+ export interface GateRunResultFacts {
132
+ exitCode: number | null;
133
+ timedOut: boolean;
134
+ durationMs: number | null;
135
+ }
136
+ /** Parse gate-result.json; null when it is not well-formed. Pure. */
137
+ export declare function parseGateRunResult(text: string): GateRunResultFacts | null;
138
+ /** A published run's log and exit facts. */
139
+ export interface PublishedGateLog {
140
+ log: string;
141
+ result: GateRunResultFacts | null;
142
+ }
143
+ /**
144
+ * Fetch the log a published status points at: one scoped fetch of that ref
145
+ * (no FETCH_HEAD written, no local ref created), then the blob read out of the
146
+ * commit it named. Null when the fetch fails or the commit carries no log --
147
+ * the caller treats that as unavailable evidence, never as a pass.
148
+ */
149
+ export declare function readGateRunLog(repoPath: string, published: PublishedGateStatus, git: GateGit): PublishedGateLog | null;
150
+ //# sourceMappingURL=gate-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-ref.d.ts","sourceRoot":"","sources":["../../src/ci/gate-ref.ts"],"names":[],"mappings":"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"}