@claudexor/orchestrator 3.1.2 → 3.3.7-rc.0

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 (137) hide show
  1. package/dist/attemptFinalize.d.ts +14 -11
  2. package/dist/attemptFinalize.d.ts.map +1 -1
  3. package/dist/attemptFinalize.js +41 -14
  4. package/dist/attemptFinalize.js.map +1 -1
  5. package/dist/attemptTelemetry.d.ts +7 -0
  6. package/dist/attemptTelemetry.d.ts.map +1 -1
  7. package/dist/attemptTelemetry.js +2 -1
  8. package/dist/attemptTelemetry.js.map +1 -1
  9. package/dist/attemptUsageCost.d.ts +24 -2
  10. package/dist/attemptUsageCost.d.ts.map +1 -1
  11. package/dist/attemptUsageCost.js +18 -2
  12. package/dist/attemptUsageCost.js.map +1 -1
  13. package/dist/budgetFailure.d.ts +1 -1
  14. package/dist/budgetFailure.d.ts.map +1 -1
  15. package/dist/budgetFailure.js.map +1 -1
  16. package/dist/candidateEvidence.d.ts +24 -0
  17. package/dist/candidateEvidence.d.ts.map +1 -1
  18. package/dist/candidateEvidence.js +26 -0
  19. package/dist/candidateEvidence.js.map +1 -1
  20. package/dist/credential-profile-rotation.d.ts +145 -0
  21. package/dist/credential-profile-rotation.d.ts.map +1 -0
  22. package/dist/credential-profile-rotation.js +335 -0
  23. package/dist/credential-profile-rotation.js.map +1 -0
  24. package/dist/credential-profiles.d.ts +90 -130
  25. package/dist/credential-profiles.d.ts.map +1 -1
  26. package/dist/credential-profiles.js +156 -290
  27. package/dist/credential-profiles.js.map +1 -1
  28. package/dist/decisionBudget.d.ts +2 -2
  29. package/dist/decisionBudget.d.ts.map +1 -1
  30. package/dist/deepScanReducer.d.ts +14 -44
  31. package/dist/deepScanReducer.d.ts.map +1 -1
  32. package/dist/deepScanReducer.js +240 -128
  33. package/dist/deepScanReducer.js.map +1 -1
  34. package/dist/delegatedHome.d.ts +156 -0
  35. package/dist/delegatedHome.d.ts.map +1 -0
  36. package/dist/delegatedHome.js +179 -0
  37. package/dist/delegatedHome.js.map +1 -0
  38. package/dist/delegationBudgetAuthority.d.ts.map +1 -1
  39. package/dist/delegationBudgetAuthority.js.map +1 -1
  40. package/dist/delegationFailure.d.ts.map +1 -1
  41. package/dist/git-precondition.d.ts +11 -0
  42. package/dist/git-precondition.d.ts.map +1 -0
  43. package/dist/git-precondition.js +69 -0
  44. package/dist/git-precondition.js.map +1 -0
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +1 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/interaction.d.ts +14 -6
  50. package/dist/interaction.d.ts.map +1 -1
  51. package/dist/interaction.js +106 -19
  52. package/dist/interaction.js.map +1 -1
  53. package/dist/orchestrator.d.ts +64 -83
  54. package/dist/orchestrator.d.ts.map +1 -1
  55. package/dist/orchestrator.js +578 -691
  56. package/dist/orchestrator.js.map +1 -1
  57. package/dist/planBrief.d.ts +27 -0
  58. package/dist/planBrief.d.ts.map +1 -0
  59. package/dist/planBrief.js +42 -0
  60. package/dist/planBrief.js.map +1 -0
  61. package/dist/planQuestions.js +4 -1
  62. package/dist/planQuestions.js.map +1 -1
  63. package/dist/planRun.d.ts +4 -3
  64. package/dist/planRun.d.ts.map +1 -1
  65. package/dist/planRun.js +33 -33
  66. package/dist/planRun.js.map +1 -1
  67. package/dist/plannerAttempt.d.ts +64 -0
  68. package/dist/plannerAttempt.d.ts.map +1 -0
  69. package/dist/plannerAttempt.js +235 -0
  70. package/dist/plannerAttempt.js.map +1 -0
  71. package/dist/policyFindings.js.map +1 -1
  72. package/dist/requestRequirements.d.ts +43 -3
  73. package/dist/requestRequirements.d.ts.map +1 -1
  74. package/dist/requestRequirements.js +106 -13
  75. package/dist/requestRequirements.js.map +1 -1
  76. package/dist/reviewerPanel.js.map +1 -1
  77. package/dist/root-ledger.d.ts.map +1 -1
  78. package/dist/root-ledger.js +2 -0
  79. package/dist/root-ledger.js.map +1 -1
  80. package/dist/run-bounded.d.ts.map +1 -1
  81. package/dist/run-bounded.js +7 -1
  82. package/dist/run-bounded.js.map +1 -1
  83. package/dist/run-input-resolution.d.ts.map +1 -1
  84. package/dist/run-input-resolution.js +26 -8
  85. package/dist/run-input-resolution.js.map +1 -1
  86. package/dist/runEventLog.d.ts +48 -0
  87. package/dist/runEventLog.d.ts.map +1 -0
  88. package/dist/runEventLog.js +63 -0
  89. package/dist/runEventLog.js.map +1 -0
  90. package/dist/runFacts.d.ts +23 -0
  91. package/dist/runFacts.d.ts.map +1 -0
  92. package/dist/runFacts.js +179 -0
  93. package/dist/runFacts.js.map +1 -0
  94. package/dist/runFactsBuilder.d.ts +5 -0
  95. package/dist/runFactsBuilder.d.ts.map +1 -0
  96. package/dist/runFactsBuilder.js +412 -0
  97. package/dist/runFactsBuilder.js.map +1 -0
  98. package/dist/runFactsDeliverable.d.ts +13 -0
  99. package/dist/runFactsDeliverable.d.ts.map +1 -0
  100. package/dist/runFactsDeliverable.js +94 -0
  101. package/dist/runFactsDeliverable.js.map +1 -0
  102. package/dist/runFactsPresentation.d.ts +7 -0
  103. package/dist/runFactsPresentation.d.ts.map +1 -0
  104. package/dist/runFactsPresentation.js +113 -0
  105. package/dist/runFactsPresentation.js.map +1 -0
  106. package/dist/runFactsReview.d.ts +7 -0
  107. package/dist/runFactsReview.d.ts.map +1 -0
  108. package/dist/runFactsReview.js +63 -0
  109. package/dist/runFactsReview.js.map +1 -0
  110. package/dist/runSupport.d.ts +17 -15
  111. package/dist/runSupport.d.ts.map +1 -1
  112. package/dist/runSupport.js +16 -0
  113. package/dist/runSupport.js.map +1 -1
  114. package/dist/runTerminalContext.d.ts +31 -0
  115. package/dist/runTerminalContext.d.ts.map +1 -0
  116. package/dist/runTerminalContext.js +12 -0
  117. package/dist/runTerminalContext.js.map +1 -0
  118. package/dist/runTerminalResults.d.ts +80 -0
  119. package/dist/runTerminalResults.d.ts.map +1 -0
  120. package/dist/runTerminalResults.js +164 -0
  121. package/dist/runTerminalResults.js.map +1 -0
  122. package/dist/runTerminals.d.ts +4 -80
  123. package/dist/runTerminals.d.ts.map +1 -1
  124. package/dist/runTerminals.js +357 -260
  125. package/dist/runTerminals.js.map +1 -1
  126. package/dist/secretDiff.d.ts +3 -0
  127. package/dist/secretDiff.d.ts.map +1 -1
  128. package/dist/secretDiff.js +7 -0
  129. package/dist/secretDiff.js.map +1 -1
  130. package/dist/structuredOutput.d.ts.map +1 -1
  131. package/dist/structuredOutput.js.map +1 -1
  132. package/dist/task-contract-builder.d.ts +35 -0
  133. package/dist/task-contract-builder.d.ts.map +1 -0
  134. package/dist/task-contract-builder.js +114 -0
  135. package/dist/task-contract-builder.js.map +1 -0
  136. package/dist/transientClassify.js.map +1 -1
  137. package/package.json +17 -17
@@ -0,0 +1,156 @@
1
+ import type { ConfinementHost } from "@claudexor/core";
2
+ import type { AccessProfile, HarnessConfinement, WorkspaceEnvelope } from "@claudexor/schema";
3
+ import type { WorkspaceManager } from "@claudexor/workspace";
4
+ /** What one attempt's harness HOME actually resolved to, and whether it is scoped. */
5
+ export interface ScopedHarnessHome {
6
+ /** Env patch to spread onto the harness spec; absent when the attempt inherits the operator's env. */
7
+ env?: Record<string, string>;
8
+ /** Applied fact, recorded on the attempt so the caller can verify rather than trust. */
9
+ isolated: boolean;
10
+ /** The scoped home directory, or null when the attempt inherits the operator's. */
11
+ homeDir: string | null;
12
+ /** The APPLIED OS boundary, or null when this attempt runs without one. */
13
+ confinement: HarnessConfinement | null;
14
+ /**
15
+ * Why this attempt got NO boundary, when it asked for one and the host had
16
+ * none. Null both when a boundary WAS applied and when none was ever asked
17
+ * for — an ordinary run is not "unconfined", it is out of scope, and the
18
+ * terminal gate below depends on being able to tell those apart.
19
+ */
20
+ confinementUnavailableReason: string | null;
21
+ }
22
+ /** Access profiles under which the harness can modify the filesystem. */
23
+ export declare function isMutatingAccess(access: AccessProfile): boolean;
24
+ /**
25
+ * Whether this run's lanes should be told to stand their own sandbox down.
26
+ *
27
+ * Only a delegated run asks for an engine-provided boundary, and only a host
28
+ * that can actually provide one earns the trade. Telling a harness to drop its
29
+ * native sandbox where Claudexor will NOT replace it is a pure loss — strictly
30
+ * worse than never having asked — so the two conditions are one expression
31
+ * rather than a flag the caller passes and a check nobody makes.
32
+ */
33
+ export declare function externallyConfinedLane(delegated: boolean, host?: ConfinementHost): boolean;
34
+ /** Roots the confinement is drawn against; overridable so tests never touch the real home. */
35
+ export interface ConfinementRoots {
36
+ operatorHome: string;
37
+ runtimeRoot: string;
38
+ nativeStateRoot: string;
39
+ }
40
+ export declare function defaultConfinementRoots(): ConfinementRoots;
41
+ /**
42
+ * Decide the harness HOME and the OS boundary one attempt runs under.
43
+ *
44
+ * Unchanged for ordinary runs: an ISOLATED envelope gets the envelope's scoped
45
+ * home, while an IN-PLACE attempt deliberately inherits the operator's native
46
+ * environment so a harness whose native session store hangs off `$HOME` can
47
+ * resume its vendor conversation.
48
+ *
49
+ * A DELEGATED run (`execution.delegated`) is scoped either way, and that is a
50
+ * BEHAVIORAL CHANGE against that deliberate design — live + agent is exactly
51
+ * the configuration a delegated mutating subagent uses. It is taken knowingly:
52
+ * the caller is a machine orchestrator that owns the workspace, and the
53
+ * operator's real `$HOME` holds material no delegated harness may read, above
54
+ * all `~/.claudexor/v3/daemon/token`, which grants the entire control API.
55
+ *
56
+ * THE SCOPED HOME IS NOT THE BOUNDARY. It redirects `~`-relative lookups and
57
+ * nothing more; the token above is one absolute path away, and a live probe
58
+ * read it out of an ordinary `workspace_write` agent run. So a delegated
59
+ * MUTATING attempt additionally gets an OS-ENFORCED boundary
60
+ * (`applyConfinement`), verified against a path it denies before the harness is
61
+ * spawned. A delegated READ-ONLY attempt keeps the harness's own read-only
62
+ * enforcement instead: confinement stands that enforcement down (macOS refuses
63
+ * nested sandboxes), which would be a net loss where there is no shell to
64
+ * confine.
65
+ *
66
+ * WHERE THE HOST HAS NO BOUNDARY the attempt still runs, and says so: the
67
+ * reason travels onto the attempt record, into the child's prompt and into the
68
+ * caller's result. A delegated run that refused on every platform Claudexor has
69
+ * not implemented a mechanism for would be a macOS-only feature wearing a
70
+ * general name.
71
+ *
72
+ * THE COST of the scoped home, stated plainly: an in-place delegated attempt
73
+ * CANNOT resume a native vendor session whose store lives under the real `$HOME`
74
+ * — cursor (`~/.cursor`) and opencode (XDG data under `$HOME`) lose resume.
75
+ * codex and claude keep it: their native session stores are Claudexor-owned
76
+ * directories that the adapter re-points on top of this env and that the
77
+ * confinement carves back out, and the macOS login Keychain is reached through
78
+ * the declared scoped-home bridge (INV-067), so subscription auth is unaffected.
79
+ *
80
+ * Never degrades silently: a delegated attempt whose scoped home is not on disk,
81
+ * or whose boundary cannot be applied and proven, refuses.
82
+ */
83
+ export declare function scopedHarnessHome(wsm: WorkspaceManager, envelope: WorkspaceEnvelope, inPlaceEnvelope: boolean, delegated: boolean, access?: AccessProfile, roots?: ConfinementRoots, host?: ConfinementHost): ScopedHarnessHome;
84
+ /**
85
+ * What the CHILD is told, when it is running without an OS boundary.
86
+ *
87
+ * Second of the three places the absence is disclosed (the attempt record and
88
+ * the caller's result are the other two). A model that believes it is sandboxed
89
+ * when it is not is the one reader whose behaviour actually changes on this
90
+ * fact, so it is stated to the model in plain words rather than left in an
91
+ * artifact it never reads.
92
+ */
93
+ export declare function confinementNotice(home: ScopedHarnessHome | null | undefined): string | null;
94
+ /**
95
+ * What an attempt's harness process ACTUALLY ran under.
96
+ *
97
+ * One shape, written by the success path and the failure path alike. An attempt
98
+ * that spawned a harness and then died still ran a process, and the caller of a
99
+ * delegated run still needs to know what that process could reach — "it failed"
100
+ * is not an answer to "was it confined".
101
+ */
102
+ export interface AppliedAttemptFacts {
103
+ harness_home_isolated: boolean;
104
+ harness_home_dir: string | null;
105
+ access_applied: AccessProfile;
106
+ credential_profile_applied: string | null;
107
+ /**
108
+ * OPAQUE mechanism label, never a platform and never a promise: it is written
109
+ * only together with the path below, which is the proof it was enforced.
110
+ */
111
+ confinement_mechanism: string | null;
112
+ confinement_profile_digest: string | null;
113
+ confinement_verified_denied_path: string | null;
114
+ /**
115
+ * Why this attempt ran with NO boundary. This is the field that makes an
116
+ * honestly unconfined attempt DIFFERENT from an attempt whose evidence is
117
+ * simply missing — the first is auditable, the second is not.
118
+ */
119
+ confinement_unavailable_reason: string | null;
120
+ }
121
+ /**
122
+ * `home` is nullable on purpose: an attempt that died BEFORE its home was
123
+ * decided still writes the block, with every field null. A record that omits
124
+ * the fields entirely is indistinguishable from one written by an engine that
125
+ * never had them, which is the ambiguity the terminal check exists to close.
126
+ */
127
+ export declare function appliedAttemptFacts(home: ScopedHarnessHome | null | undefined, access: AccessProfile, credentialProfileId: string | null): AppliedAttemptFacts;
128
+ /**
129
+ * Whether an attempt's record is auditable for a delegated MUTATING run.
130
+ *
131
+ * The distinction this predicate exists to draw: evidence that is MISSING is
132
+ * still a reason to refuse — an attempt that cannot say what it ran under is
133
+ * indistinguishable from one that ran unconfined behind a green terminal.
134
+ * Evidence that honestly says "no boundary here, and here is why" is COMPLETE;
135
+ * the absence of a boundary is a fact about the host, not a gap in the record,
136
+ * and refusing on it would make a delegated mutating run impossible wherever
137
+ * Claudexor has not implemented a mechanism.
138
+ *
139
+ * A named mechanism is a claim, and only `verified_denied_path` discharges it —
140
+ * so a record carrying the name without the proof is NOT complete, and neither
141
+ * is one that claims a boundary and a reason for its absence at the same time.
142
+ */
143
+ export declare function appliedEvidenceComplete(facts: AppliedAttemptFacts | null | undefined): boolean;
144
+ /**
145
+ * The terminal gate, shared by every lane that assembles attempts.
146
+ *
147
+ * A delegated MUTATING run may only reach a terminal when EVERY attempt it ran
148
+ * can state what it ran under. One lane checking and its twin not is how a
149
+ * mutating child ends up unconfined behind a green run, so the rule lives here
150
+ * and both callers spend it.
151
+ */
152
+ export declare function assertDelegatedEvidence(delegated: boolean, access: AccessProfile, attempts: readonly {
153
+ attemptId: string;
154
+ applied?: AppliedAttemptFacts;
155
+ }[]): void;
156
+ //# sourceMappingURL=delegatedHome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegatedHome.d.ts","sourceRoot":"","sources":["../src/delegatedHome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAOvD,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,sFAAsF;AACtF,MAAM,WAAW,iBAAiB;IAChC,sGAAsG;IACtG,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,wFAAwF;IACxF,QAAQ,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2EAA2E;IAC3E,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC;;;;;OAKG;IACH,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAE/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAE1F;AAED,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,uBAAuB,IAAI,gBAAgB,CAM1D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,EAAE,OAAO,EACxB,SAAS,EAAE,OAAO,EAClB,MAAM,GAAE,aAAiC,EACzC,KAAK,GAAE,gBAA4C,EACnD,IAAI,CAAC,EAAE,eAAe,GACrB,iBAAiB,CAoCnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAU3F;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,aAAa,CAAC;IAC9B,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,gCAAgC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD;;;;OAIG;IACH,8BAA8B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAC1C,MAAM,EAAE,aAAa,EACrB,mBAAmB,EAAE,MAAM,GAAG,IAAI,GACjC,mBAAmB,CAWrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAM9F;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,SAAS;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE,EAAE,GACxE,IAAI,CAON"}
@@ -0,0 +1,179 @@
1
+ import { existsSync } from "node:fs";
2
+ import { applyConfinement, confinementBoundaryAvailable, DelegatedEvidenceIncompleteError, DelegatedHomeUnavailableError, } from "@claudexor/core";
3
+ import { confinementBoundaryProven } from "@claudexor/schema";
4
+ import { claudexorOwnedRoot, nativeHarnessStateRoot, userHomeDir } from "@claudexor/util";
5
+ /** Access profiles under which the harness can modify the filesystem. */
6
+ export function isMutatingAccess(access) {
7
+ return access !== "readonly";
8
+ }
9
+ /**
10
+ * Whether this run's lanes should be told to stand their own sandbox down.
11
+ *
12
+ * Only a delegated run asks for an engine-provided boundary, and only a host
13
+ * that can actually provide one earns the trade. Telling a harness to drop its
14
+ * native sandbox where Claudexor will NOT replace it is a pure loss — strictly
15
+ * worse than never having asked — so the two conditions are one expression
16
+ * rather than a flag the caller passes and a check nobody makes.
17
+ */
18
+ export function externallyConfinedLane(delegated, host) {
19
+ return delegated && confinementBoundaryAvailable(host).available;
20
+ }
21
+ export function defaultConfinementRoots() {
22
+ return {
23
+ operatorHome: userHomeDir(),
24
+ runtimeRoot: claudexorOwnedRoot(),
25
+ nativeStateRoot: nativeHarnessStateRoot(),
26
+ };
27
+ }
28
+ /**
29
+ * Decide the harness HOME and the OS boundary one attempt runs under.
30
+ *
31
+ * Unchanged for ordinary runs: an ISOLATED envelope gets the envelope's scoped
32
+ * home, while an IN-PLACE attempt deliberately inherits the operator's native
33
+ * environment so a harness whose native session store hangs off `$HOME` can
34
+ * resume its vendor conversation.
35
+ *
36
+ * A DELEGATED run (`execution.delegated`) is scoped either way, and that is a
37
+ * BEHAVIORAL CHANGE against that deliberate design — live + agent is exactly
38
+ * the configuration a delegated mutating subagent uses. It is taken knowingly:
39
+ * the caller is a machine orchestrator that owns the workspace, and the
40
+ * operator's real `$HOME` holds material no delegated harness may read, above
41
+ * all `~/.claudexor/v3/daemon/token`, which grants the entire control API.
42
+ *
43
+ * THE SCOPED HOME IS NOT THE BOUNDARY. It redirects `~`-relative lookups and
44
+ * nothing more; the token above is one absolute path away, and a live probe
45
+ * read it out of an ordinary `workspace_write` agent run. So a delegated
46
+ * MUTATING attempt additionally gets an OS-ENFORCED boundary
47
+ * (`applyConfinement`), verified against a path it denies before the harness is
48
+ * spawned. A delegated READ-ONLY attempt keeps the harness's own read-only
49
+ * enforcement instead: confinement stands that enforcement down (macOS refuses
50
+ * nested sandboxes), which would be a net loss where there is no shell to
51
+ * confine.
52
+ *
53
+ * WHERE THE HOST HAS NO BOUNDARY the attempt still runs, and says so: the
54
+ * reason travels onto the attempt record, into the child's prompt and into the
55
+ * caller's result. A delegated run that refused on every platform Claudexor has
56
+ * not implemented a mechanism for would be a macOS-only feature wearing a
57
+ * general name.
58
+ *
59
+ * THE COST of the scoped home, stated plainly: an in-place delegated attempt
60
+ * CANNOT resume a native vendor session whose store lives under the real `$HOME`
61
+ * — cursor (`~/.cursor`) and opencode (XDG data under `$HOME`) lose resume.
62
+ * codex and claude keep it: their native session stores are Claudexor-owned
63
+ * directories that the adapter re-points on top of this env and that the
64
+ * confinement carves back out, and the macOS login Keychain is reached through
65
+ * the declared scoped-home bridge (INV-067), so subscription auth is unaffected.
66
+ *
67
+ * Never degrades silently: a delegated attempt whose scoped home is not on disk,
68
+ * or whose boundary cannot be applied and proven, refuses.
69
+ */
70
+ export function scopedHarnessHome(wsm, envelope, inPlaceEnvelope, delegated, access = "workspace_write", roots = defaultConfinementRoots(), host) {
71
+ if (inPlaceEnvelope && !delegated) {
72
+ return {
73
+ isolated: false,
74
+ homeDir: null,
75
+ confinement: null,
76
+ confinementUnavailableReason: null,
77
+ };
78
+ }
79
+ const env = wsm.envFor(envelope);
80
+ const homeDir = env["HOME"];
81
+ if (delegated && (!homeDir || !existsSync(homeDir))) {
82
+ throw new DelegatedHomeUnavailableError(`delegated run cannot be confined: the scoped harness home for attempt ${envelope.attempt_id} is missing (${homeDir || "unset"})`);
83
+ }
84
+ const outcome = delegated && isMutatingAccess(access)
85
+ ? applyConfinement({
86
+ operatorHome: roots.operatorHome,
87
+ runtimeRoot: roots.runtimeRoot,
88
+ nativeStateRoot: roots.nativeStateRoot,
89
+ scopedHome: homeDir,
90
+ worktree: envelope.worktree_path,
91
+ }, host)
92
+ : { confinement: null, unavailableReason: null };
93
+ return {
94
+ env,
95
+ isolated: true,
96
+ homeDir: homeDir ?? null,
97
+ confinement: outcome.confinement,
98
+ confinementUnavailableReason: outcome.unavailableReason,
99
+ };
100
+ }
101
+ /**
102
+ * What the CHILD is told, when it is running without an OS boundary.
103
+ *
104
+ * Second of the three places the absence is disclosed (the attempt record and
105
+ * the caller's result are the other two). A model that believes it is sandboxed
106
+ * when it is not is the one reader whose behaviour actually changes on this
107
+ * fact, so it is stated to the model in plain words rather than left in an
108
+ * artifact it never reads.
109
+ */
110
+ export function confinementNotice(home) {
111
+ const reason = home?.confinementUnavailableReason;
112
+ if (!reason)
113
+ return null;
114
+ return [
115
+ "Engine disclosure — NO OS-ENFORCED BOUNDARY: this delegated run was asked to put your",
116
+ `process inside a kernel-enforced filesystem boundary and could not: ${reason}.`,
117
+ "Nothing outside this notice stops you from reading or writing any path this user account",
118
+ "can reach. Confine yourself to the worktree you were given and the HOME you were given,",
119
+ "and do not read the operator's credential stores or Claudexor's own runtime directory.",
120
+ ].join("\n");
121
+ }
122
+ /**
123
+ * `home` is nullable on purpose: an attempt that died BEFORE its home was
124
+ * decided still writes the block, with every field null. A record that omits
125
+ * the fields entirely is indistinguishable from one written by an engine that
126
+ * never had them, which is the ambiguity the terminal check exists to close.
127
+ */
128
+ export function appliedAttemptFacts(home, access, credentialProfileId) {
129
+ return {
130
+ harness_home_isolated: home?.isolated ?? false,
131
+ harness_home_dir: home?.homeDir ?? null,
132
+ access_applied: access,
133
+ credential_profile_applied: credentialProfileId,
134
+ confinement_mechanism: home?.confinement?.mechanism ?? null,
135
+ confinement_profile_digest: home?.confinement?.profile_digest ?? null,
136
+ confinement_verified_denied_path: home?.confinement?.verified_denied_path ?? null,
137
+ confinement_unavailable_reason: home?.confinementUnavailableReason ?? null,
138
+ };
139
+ }
140
+ /**
141
+ * Whether an attempt's record is auditable for a delegated MUTATING run.
142
+ *
143
+ * The distinction this predicate exists to draw: evidence that is MISSING is
144
+ * still a reason to refuse — an attempt that cannot say what it ran under is
145
+ * indistinguishable from one that ran unconfined behind a green terminal.
146
+ * Evidence that honestly says "no boundary here, and here is why" is COMPLETE;
147
+ * the absence of a boundary is a fact about the host, not a gap in the record,
148
+ * and refusing on it would make a delegated mutating run impossible wherever
149
+ * Claudexor has not implemented a mechanism.
150
+ *
151
+ * A named mechanism is a claim, and only `verified_denied_path` discharges it —
152
+ * so a record carrying the name without the proof is NOT complete, and neither
153
+ * is one that claims a boundary and a reason for its absence at the same time.
154
+ */
155
+ export function appliedEvidenceComplete(facts) {
156
+ if (!facts || !facts.harness_home_isolated || !facts.harness_home_dir)
157
+ return false;
158
+ if (facts.confinement_mechanism) {
159
+ return confinementBoundaryProven(facts) && !facts.confinement_unavailable_reason;
160
+ }
161
+ return Boolean(facts.confinement_unavailable_reason);
162
+ }
163
+ /**
164
+ * The terminal gate, shared by every lane that assembles attempts.
165
+ *
166
+ * A delegated MUTATING run may only reach a terminal when EVERY attempt it ran
167
+ * can state what it ran under. One lane checking and its twin not is how a
168
+ * mutating child ends up unconfined behind a green run, so the rule lives here
169
+ * and both callers spend it.
170
+ */
171
+ export function assertDelegatedEvidence(delegated, access, attempts) {
172
+ if (!delegated || !isMutatingAccess(access))
173
+ return;
174
+ const unauditable = attempts.filter((attempt) => !appliedEvidenceComplete(attempt.applied));
175
+ if (unauditable.length === 0)
176
+ return;
177
+ throw new DelegatedEvidenceIncompleteError(`delegated mutating run cannot terminalize: ${unauditable.length} attempt(s) state neither a proven confinement nor a reason there was none (${unauditable.map((attempt) => attempt.attemptId).join(", ")})`);
178
+ }
179
+ //# sourceMappingURL=delegatedHome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegatedHome.js","sourceRoot":"","sources":["../src/delegatedHome.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delegationBudgetAuthority.d.ts","sourceRoot":"","sources":["../src/delegationBudgetAuthority.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAajD,MAAM,WAAW,gCAAgC;IAC/C;6EACyE;IACzE,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;;;;GAIG;AACH,qBAAa,yBAAyB;IAIxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;gBAE7B,OAAO,GAAE,gCAAqC;IAE3E,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAkBzD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIjC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAkB9C,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAOjE,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAMnE,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,CACd,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,KAClD,IAAI,GACR,YAAY;IAqBf,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKrC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAkD7E,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAqB/B,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI/C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;CAIxB"}
1
+ {"version":3,"file":"delegationBudgetAuthority.d.ts","sourceRoot":"","sources":["../src/delegationBudgetAuthority.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAajD,MAAM,WAAW,gCAAgC;IAC/C;6EACyE;IACzE,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;;;;GAIG;AACH,qBAAa,yBAAyB;IAIxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAE1D,YAA6B,OAAO,GAAE,gCAAqC,EAAI;IAE/E,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAgBxD;IAED,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhC;IAED,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAgB7C;IAED,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAKhE;IAED,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAIlE;IAED,WAAW,CACT,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,CACd,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,KAClD,IAAI,GACR,YAAY,CAmBd;IAED,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAG1C;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD5E;IAED,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAmB9B;IAED,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9C;IAED,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;CAIxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"delegationBudgetAuthority.js","sourceRoot":"","sources":["../src/delegationBudgetAuthority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegationBudgetAuthority.js","sourceRoot":"","sources":["../src/delegationBudgetAuthority.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delegationFailure.d.ts","sourceRoot":"","sources":["../src/delegationFailure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D;;uCAEuC;AACvC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,qBAAqB,GAAG,IAAI,CAIvF;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAOzE;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,GAChB,qBAAqB,GAAG,mBAAmB,GAAG,IAAI,CAIpD;AAED;;iFAEiF;AACjF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,YAAY,GAAG,SAAS,CAK3F;AAED;gDACgD;AAChD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa;;;;;;;;;;EA2BxF;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa;;;;;;;;;;EAgCvF;AAED;;oEAEoE;AACpE,wBAAsB,+BAA+B,CAAC,KAAK,EAAE;IAC3D,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFhB"}
1
+ {"version":3,"file":"delegationFailure.d.ts","sourceRoot":"","sources":["../src/delegationFailure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D;;uCAEuC;AACvC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,GAAG,qBAAqB,GAAG,IAAI,CAIvF;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAOzE;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,GAChB,qBAAqB,GAAG,mBAAmB,GAAG,IAAI,CAIpD;AAED;;iFAEiF;AACjF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,YAAY,GAAG,SAAS,CAK3F;AAED;gDACgD;AAChD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa;;;;QAenF,QAAQ,EAAE,eAAe;QACzB,SAAS;QACT,SAAS;QACT,YAAY;QACZ,WAAW;;EAQhB;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa;;;;QAdlF,QAAQ,EAAE,eAAe;QACzB,SAAS;QACT,SAAS;QACT,YAAY;QACZ,WAAW;;EA0ChB;AAED;;oEAEoE;AACpE,wBAAsB,+BAA+B,CAAC,KAAK,EAAE;IAC3D,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,YAAY,CAAC;IAClB,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmFhB"}
@@ -0,0 +1,11 @@
1
+ import type { ArtifactStore } from "@claudexor/artifact-store";
2
+ import type { EventLog } from "@claudexor/event-log";
3
+ import { type ModeKind, type RunReason } from "@claudexor/schema";
4
+ import { type EnsureGitRepositoryResult } from "@claudexor/workspace";
5
+ export interface GitPreconditionFailure {
6
+ message: string;
7
+ reason: RunReason;
8
+ }
9
+ /** Establish the write-mode Git boundary and own its typed terminal failure. */
10
+ export declare function ensureWriteModeGitBoundary(repoRoot: string, log: EventLog, store: ArtifactStore, paths: ReturnType<ArtifactStore["runPaths"]>, runId: string, mode: ModeKind, ensureRepository?: (repoRoot: string) => Promise<EnsureGitRepositoryResult>): Promise<GitPreconditionFailure | null>;
11
+ //# sourceMappingURL=git-precondition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-precondition.d.ts","sourceRoot":"","sources":["../src/git-precondition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAoB,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAI9B,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAID,gFAAgF;AAChF,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,QAAQ,EACd,gBAAgB,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,yBAAyB,CAAuB,GAC/F,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CA4DxC"}
@@ -0,0 +1,69 @@
1
+ import { join } from "node:path";
2
+ import { makeOutcomeFacts } from "@claudexor/schema";
3
+ import { noProjectRepoRoot } from "@claudexor/util";
4
+ import { ensureGitRepository, GitCapabilityError, GitInitializationError, } from "@claudexor/workspace";
5
+ import { writeFailure } from "./runTerminalResults.js";
6
+ import { safeErrorMessage } from "./runSupport.js";
7
+ const NO_PROJECT_ROOT = noProjectRepoRoot();
8
+ /** Establish the write-mode Git boundary and own its typed terminal failure. */
9
+ export async function ensureWriteModeGitBoundary(repoRoot, log, store, paths, runId, mode, ensureRepository = ensureGitRepository) {
10
+ if (repoRoot === NO_PROJECT_ROOT)
11
+ return null;
12
+ try {
13
+ const result = await ensureRepository(repoRoot);
14
+ if (result.initialized || result.baselineCommitted) {
15
+ log.emit("project.git.initialized", {
16
+ repo_root: repoRoot,
17
+ initialized: result.initialized,
18
+ baseline_committed: result.baselineCommitted,
19
+ gitignore_seeded: result.gitignoreSeeded,
20
+ head_sha: result.headSha,
21
+ });
22
+ }
23
+ return null;
24
+ }
25
+ catch (error) {
26
+ const message = safeErrorMessage(error);
27
+ const prerequisite = error instanceof GitCapabilityError;
28
+ if (error instanceof GitInitializationError) {
29
+ log.emit("project.git.initialized", {
30
+ repo_root: repoRoot,
31
+ initialized: error.progress.initialized,
32
+ baseline_committed: error.progress.baselineCommitted,
33
+ gitignore_seeded: error.progress.gitignoreSeeded,
34
+ head_sha: error.progress.headSha,
35
+ partial: true,
36
+ failed_stage: error.progress.failedStage,
37
+ });
38
+ }
39
+ // This boundary runs before a harness is admitted. Capability, filesystem,
40
+ // and repository-initialization failures are all workspace failures; none
41
+ // is evidence that a provider process failed.
42
+ const reason = "workspace_unavailable";
43
+ writeFailure(store, paths, {
44
+ phase: "workspace",
45
+ category: "project",
46
+ safeMessage: message,
47
+ runDir: paths.root,
48
+ nextActions: prerequisite
49
+ ? [error.capability.remediation ?? "Install Git and retry", "Retry the run"]
50
+ : [
51
+ "Check the project folder permissions",
52
+ "Initialize git manually (git init)",
53
+ "Retry the run",
54
+ ],
55
+ });
56
+ store.writeText(join(paths.finalDir, "summary.md"), `# Run ${runId} (${mode})\n\n- Lifecycle: failed\n- Phase: workspace\n\n${message}\n`);
57
+ log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
58
+ log.emit("run.failed", {
59
+ lifecycle: "failed",
60
+ facts: makeOutcomeFacts("failed", { reason }),
61
+ reason,
62
+ phase: "workspace",
63
+ error: message,
64
+ failure_ref: "final/failure.yaml",
65
+ });
66
+ return { message, reason };
67
+ }
68
+ }
69
+ //# sourceMappingURL=git-precondition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-precondition.js","sourceRoot":"","sources":["../src/git-precondition.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,5 +2,5 @@ export * from "./orchestrator.js";
2
2
  export * from "./requestRequirements.js";
3
3
  export * from "./delegationBudgetAuthority.js";
4
4
  export * from "./routing-failure.js";
5
- export { nextUpIdentity } from "./credential-profiles.js";
5
+ export { defaultCredentialRoute, effectiveAuthPreference, nextUpIdentity, probeCredentialProfileStatus, profileStatusAdmits, vendorVerifiedProfileStatus, } from "./credential-profiles.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,4BAA4B,EAC5B,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -2,5 +2,5 @@ export * from "./orchestrator.js";
2
2
  export * from "./requestRequirements.js";
3
3
  export * from "./delegationBudgetAuthority.js";
4
4
  export * from "./routing-failure.js";
5
- export { nextUpIdentity } from "./credential-profiles.js";
5
+ export { defaultCredentialRoute, effectiveAuthPreference, nextUpIdentity, probeCredentialProfileStatus, profileStatusAdmits, vendorVerifiedProfileStatus, } from "./credential-profiles.js";
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,4BAA4B,EAC5B,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC"}
@@ -1,22 +1,30 @@
1
1
  /**
2
2
  * Per-attempt interaction channel. Emits the typed lifecycle events
3
3
  * (`interaction.requested` / `interaction.answered` / `interaction.timeout`)
4
- * around the caller-provided answer surface, enforcing the wait budget so a
5
- * run can never hang forever on an unanswered question. Undefined when the
6
- * caller provides no surface the adapter then runs non-interactive.
4
+ * around the caller-provided answer surface. The wait policy is finite or has
5
+ * automatic expiry disabled; answers, cancellation, terminal cleanup, and
6
+ * registry release still end either form. Undefined when the caller provides
7
+ * no surface — the adapter then runs non-interactive.
7
8
  *
8
9
  * Capability gate: the channel is OFFERED only to routes whose manifest
9
10
  * declares `interactive` — a non-interactive harness never gets a surface it
10
11
  * cannot raise questions through.
11
12
  */
12
13
  import type { InteractionChannel } from "@claudexor/core";
13
- import type { InteractionAnswerSet } from "@claudexor/schema";
14
+ import type { InteractionHandlerResult } from "@claudexor/schema";
14
15
  import type { EventLog } from "@claudexor/event-log";
15
16
  import type { PendingInteractionContext } from "./orchestrator.js";
16
17
  export interface InteractionChannelWiring {
17
- onInteraction?: (ctx: PendingInteractionContext) => Promise<InteractionAnswerSet | null>;
18
- interactionTimeoutMs?: number;
18
+ onInteraction?: (ctx: PendingInteractionContext) => Promise<InteractionHandlerResult>;
19
+ interactionTimeoutMs?: number | null;
19
20
  signal?: AbortSignal;
20
21
  }
22
+ export type InteractionTimeoutPolicy = {
23
+ kind: "finite";
24
+ timeoutMs: number;
25
+ } | {
26
+ kind: "disabled";
27
+ };
28
+ export declare function resolveInteractionTimeoutPolicy(configured: number | null | undefined, defaultTimeoutMs: number): InteractionTimeoutPolicy;
21
29
  export declare function interactionChannelFor(input: InteractionChannelWiring, log: EventLog, runId: string, taskId: string, attemptId: string, harnessId: string, supportsInteractive: boolean, defaultTimeoutMs: number): InteractionChannel | undefined;
22
30
  //# sourceMappingURL=interaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAsB,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,KAAK,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACzF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,wBAAwB,EAC/B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,OAAO,EAC5B,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,GAAG,SAAS,CA4GhC"}
1
+ {"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAGV,wBAAwB,EAEzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,yBAAyB,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACtF,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,wBAAwB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEpG,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACrC,gBAAgB,EAAE,MAAM,GACvB,wBAAwB,CAU1B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,wBAAwB,EAC/B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,OAAO,EAC5B,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,GAAG,SAAS,CAgKhC"}