@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.
- package/build-info.json +12 -3
- package/dist/backends/agent-backend.d.ts +10 -0
- package/dist/backends/agent-backend.d.ts.map +1 -1
- package/dist/backends/claude/claude-backend.d.ts +19 -0
- package/dist/backends/claude/claude-backend.d.ts.map +1 -1
- package/dist/backends/claude/claude-backend.js +41 -1
- package/dist/backends/claude/claude-backend.js.map +1 -1
- package/dist/backends/codex/codex-backend.d.ts.map +1 -1
- package/dist/backends/codex/codex-backend.js +50 -20
- package/dist/backends/codex/codex-backend.js.map +1 -1
- package/dist/backends/index.js +1 -1
- package/dist/ci/candidate-ref.js +1 -1
- package/dist/ci/candidate-ref.js.map +1 -1
- package/dist/ci/gate-ref.d.ts +150 -0
- package/dist/ci/gate-ref.d.ts.map +1 -0
- package/dist/ci/gate-ref.js +348 -0
- package/dist/ci/gate-ref.js.map +1 -0
- package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-phase.js +11 -22
- package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
- package/dist/composition/execution-migrations-context.js +1 -1
- package/dist/composition/runtime-poll-context.d.ts +7 -1
- package/dist/composition/runtime-poll-context.d.ts.map +1 -1
- package/dist/composition/runtime-poll-context.js +14 -2
- package/dist/composition/runtime-poll-context.js.map +1 -1
- package/dist/composition/verification-context.d.ts.map +1 -1
- package/dist/composition/verification-context.js +56 -8
- package/dist/composition/verification-context.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +10 -15
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +17 -30
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +2 -6
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/verify-routing-passes.d.ts +5 -1
- package/dist/focus/verify-routing-passes.d.ts.map +1 -1
- package/dist/focus/verify-routing-passes.js +1 -0
- package/dist/focus/verify-routing-passes.js.map +1 -1
- package/dist/host-control/load.d.ts.map +1 -1
- package/dist/host-control/load.js +2 -1
- package/dist/host-control/load.js.map +1 -1
- package/dist/nexus/file-escalation.d.ts.map +1 -1
- package/dist/nexus/file-escalation.js +1 -0
- package/dist/nexus/file-escalation.js.map +1 -1
- package/dist/nexus/intake.d.ts +14 -2
- package/dist/nexus/intake.d.ts.map +1 -1
- package/dist/nexus/intake.js +11 -2
- package/dist/nexus/intake.js.map +1 -1
- package/dist/nexus/pending-returns.d.ts +1 -1
- package/dist/nexus/pending-returns.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts +31 -2
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +52 -2
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +7 -6
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +17 -13
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/role-sections.d.ts +12 -1
- package/dist/prompt-sections/role-sections.d.ts.map +1 -1
- package/dist/prompt-sections/role-sections.js +42 -1
- package/dist/prompt-sections/role-sections.js.map +1 -1
- package/dist/prompt-sections/shared.js +1 -1
- package/dist/queries/deliveries/falsified-effect-reopens.d.ts +33 -0
- package/dist/queries/deliveries/falsified-effect-reopens.d.ts.map +1 -0
- package/dist/queries/deliveries/falsified-effect-reopens.js +36 -0
- package/dist/queries/deliveries/falsified-effect-reopens.js.map +1 -0
- package/dist/queries/verification/verification.js +1 -1
- package/dist/resolvers/assembly-engine.js +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +2 -1
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/session/session-lineage.d.ts +15 -6
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +17 -5
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/spawn/model-routing.d.ts +1 -1
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +6 -4
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +0 -9
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +61 -65
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +8 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +10 -3
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/verification-deps.d.ts +8 -67
- package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/verification-deps.js +94 -1
- package/dist/testing/fixtures/verification-deps.js.map +1 -1
- package/dist/testing/fixtures/vitest-failure-log.d.ts.map +1 -1
- package/dist/testing/fixtures/vitest-failure-log.js +1 -0
- package/dist/testing/fixtures/vitest-failure-log.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/ci-gate/ci-gate-dispatch.d.ts +93 -0
- package/dist/verify/ci-gate/ci-gate-dispatch.d.ts.map +1 -0
- package/dist/verify/ci-gate/ci-gate-dispatch.js +304 -0
- package/dist/verify/ci-gate/ci-gate-dispatch.js.map +1 -0
- package/dist/verify/ci-gate/ci-gate-reruns.d.ts +51 -0
- package/dist/verify/ci-gate/ci-gate-reruns.d.ts.map +1 -0
- package/dist/verify/ci-gate/ci-gate-reruns.js +189 -0
- package/dist/verify/ci-gate/ci-gate-reruns.js.map +1 -0
- package/dist/verify/ci-gate/ci-gate-wait-record.d.ts +33 -0
- package/dist/verify/ci-gate/ci-gate-wait-record.d.ts.map +1 -0
- package/dist/verify/ci-gate/ci-gate-wait-record.js +89 -0
- package/dist/verify/ci-gate/ci-gate-wait-record.js.map +1 -0
- package/dist/verify/deterministic-gate/verification-deterministic.d.ts +6 -0
- package/dist/verify/deterministic-gate/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/deterministic-gate/verification-deterministic.js +1 -20
- package/dist/verify/deterministic-gate/verification-deterministic.js.map +1 -1
- package/dist/verify/deterministic-gate/verification-gate-stages.d.ts.map +1 -1
- package/dist/verify/deterministic-gate/verification-gate-stages.js +1 -0
- package/dist/verify/deterministic-gate/verification-gate-stages.js.map +1 -1
- package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts +34 -5
- package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts.map +1 -1
- package/dist/verify/effect-reconciliation/verify-reconciliation.js +106 -27
- package/dist/verify/effect-reconciliation/verify-reconciliation.js.map +1 -1
- package/dist/verify/engine/verification-commit-sharing.d.ts +24 -0
- package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
- package/dist/verify/engine/verification-commit-sharing.js +93 -1
- package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
- package/dist/verify/engine/verification-deps.d.ts +9 -0
- package/dist/verify/engine/verification-deps.d.ts.map +1 -1
- package/dist/verify/engine/verification-deps.js +1 -1
- package/dist/verify/engine/verification-engine.d.ts.map +1 -1
- package/dist/verify/engine/verification-engine.js +19 -5
- package/dist/verify/engine/verification-engine.js.map +1 -1
- package/dist/verify/failing-test-rerun/failing-test-retry.d.ts.map +1 -1
- package/dist/verify/failing-test-rerun/failing-test-retry.js +2 -1
- package/dist/verify/failing-test-rerun/failing-test-retry.js.map +1 -1
- package/dist/verify/gate-config/judged-commit-gate.d.ts +11 -3
- package/dist/verify/gate-config/judged-commit-gate.d.ts.map +1 -1
- package/dist/verify/gate-config/judged-commit-gate.js +16 -5
- package/dist/verify/gate-config/judged-commit-gate.js.map +1 -1
- package/dist/verify/gate-config/verification-config.js +1 -1
- package/dist/verify/gate-config/verification-manifest.d.ts +18 -1
- package/dist/verify/gate-config/verification-manifest.d.ts.map +1 -1
- package/dist/verify/gate-config/verification-manifest.js +21 -21
- package/dist/verify/gate-config/verification-manifest.js.map +1 -1
- package/dist/verify/gate-verdicts/commit-verdict-record.d.ts +2 -0
- package/dist/verify/gate-verdicts/commit-verdict-record.d.ts.map +1 -1
- package/dist/verify/gate-verdicts/commit-verdict-record.js +11 -4
- package/dist/verify/gate-verdicts/commit-verdict-record.js.map +1 -1
- package/dist/verify/gate-verdicts/gate-run-registry.js +1 -1
- package/dist/verify/outcome-routing/failing-output-excerpt.d.ts +8 -0
- package/dist/verify/outcome-routing/failing-output-excerpt.d.ts.map +1 -0
- package/dist/verify/outcome-routing/failing-output-excerpt.js +41 -0
- package/dist/verify/outcome-routing/failing-output-excerpt.js.map +1 -0
- package/dist/verify/outcome-routing/falsified-effect-reopen.d.ts +17 -0
- package/dist/verify/outcome-routing/falsified-effect-reopen.d.ts.map +1 -0
- package/dist/verify/outcome-routing/falsified-effect-reopen.js +76 -0
- package/dist/verify/outcome-routing/falsified-effect-reopen.js.map +1 -0
- package/dist/verify/outcome-routing/verification-feedback.d.ts +2 -0
- package/dist/verify/outcome-routing/verification-feedback.d.ts.map +1 -1
- package/dist/verify/outcome-routing/verification-feedback.js +3 -0
- package/dist/verify/outcome-routing/verification-feedback.js.map +1 -1
- package/dist/verify/outcome-routing/verification-rework-issue.d.ts +7 -0
- package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
- package/dist/verify/outcome-routing/verification-rework-issue.js +30 -2
- package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
- package/dist/verify/run-selection/default-on-guards.js +1 -1
- package/dist/verify/run-selection/explicit-rearm.d.ts.map +1 -1
- package/dist/verify/run-selection/explicit-rearm.js +1 -0
- package/dist/verify/run-selection/explicit-rearm.js.map +1 -1
- package/dist/verify/run-selection/verification-default-on.d.ts.map +1 -1
- package/dist/verify/run-selection/verification-default-on.js +1 -0
- package/dist/verify/run-selection/verification-default-on.js.map +1 -1
- package/package.json +2 -2
package/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commitSha": "
|
|
3
|
-
"builtAt": "2026-10-
|
|
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;
|
|
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":"
|
|
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:
|
|
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":"AAAA,8FAA8F;AAC9F,
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/backends/index.js
CHANGED
|
@@ -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:
|
|
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.
|
package/dist/ci/candidate-ref.js
CHANGED
|
@@ -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":"AAAA,8FAA8F;AAC9F,mEAAmE;AACnE,
|
|
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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"}
|