@astrosheep/keiyaku 4.5.7 → 4.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +10 -0
  2. package/build/integrations/marketplace/plugins/keiyaku/.claude-plugin/plugin.json +1 -1
  3. package/build/integrations/marketplace/plugins/keiyaku/.codex-plugin/plugin.json +1 -1
  4. package/build/integrations/marketplace/plugins/keiyaku/opencode.js +3 -2
  5. package/build/integrations/marketplace/plugins/keiyaku/package.json +1 -1
  6. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +10 -9
  7. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +22 -1
  8. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-babysit/SKILL.md +35 -96
  9. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/SKILL.md +28 -49
  10. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-task/SKILL.md +21 -15
  11. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +148 -89
  12. package/build/src/akuma/abort.d.ts +2 -1
  13. package/build/src/akuma/abort.js +6 -23
  14. package/build/src/akuma/akuma-handle.js +4 -2
  15. package/build/src/akuma/akuma-observe.d.ts +2 -0
  16. package/build/src/akuma/akuma-observe.js +1 -0
  17. package/build/src/akuma/akuma-product.js +9 -7
  18. package/build/src/akuma/akuma.d.ts +372 -9
  19. package/build/src/akuma/akuma.js +31 -1
  20. package/build/src/akuma/allowed.d.ts +1 -1
  21. package/build/src/akuma/allowed.js +1 -0
  22. package/build/src/akuma/body.d.ts +6 -4
  23. package/build/src/akuma/body.js +5 -3
  24. package/build/src/akuma/call-request.d.ts +80 -0
  25. package/build/src/akuma/call-request.js +211 -0
  26. package/build/src/akuma/heart/facts.d.ts +6 -78
  27. package/build/src/akuma/heart/index.d.ts +1 -1
  28. package/build/src/akuma/heart/request-authority.d.ts +5 -4
  29. package/build/src/akuma/heart/request-authority.js +20 -34
  30. package/build/src/akuma/heart/request-rows.js +12 -23
  31. package/build/src/akuma/heart/schema.d.ts +1 -1
  32. package/build/src/akuma/heart/schema.js +5 -13
  33. package/build/src/akuma/index.d.ts +1 -1
  34. package/build/src/akuma/index.js +1 -1
  35. package/build/src/akuma/projection-read.d.ts +1 -0
  36. package/build/src/akuma/projection-read.js +8 -1
  37. package/build/src/akuma/projection.d.ts +856 -137
  38. package/build/src/akuma/projection.js +190 -0
  39. package/build/src/akuma/provider.d.ts +30 -3
  40. package/build/src/akuma/provider.js +104 -0
  41. package/build/src/akuma/providers/acp/core.d.ts +2 -2
  42. package/build/src/akuma/providers/acp/core.js +13 -6
  43. package/build/src/akuma/providers/acp/index.js +5 -4
  44. package/build/src/akuma/providers/claude/index.d.ts +3 -3
  45. package/build/src/akuma/providers/claude/index.js +16 -5
  46. package/build/src/akuma/providers/codex-app-server/events.js +1 -1
  47. package/build/src/akuma/providers/codex-app-server/index.js +18 -6
  48. package/build/src/akuma/providers/grok-build/index.js +5 -4
  49. package/build/src/akuma/providers/opencode-sdk/index.js +66 -25
  50. package/build/src/akuma/providers/opencode-sdk/session.d.ts +3 -2
  51. package/build/src/akuma/providers/opencode-sdk/session.js +28 -11
  52. package/build/src/akuma/providers/pi/index.js +42 -14
  53. package/build/src/akuma/request-lifecycle.d.ts +3 -9
  54. package/build/src/akuma/request-lifecycle.js +4 -4
  55. package/build/src/akuma/request-rendezvous.d.ts +26 -0
  56. package/build/src/akuma/request-rendezvous.js +100 -0
  57. package/build/src/akuma/request-serve.d.ts +5 -65
  58. package/build/src/akuma/request-serve.js +81 -208
  59. package/build/src/akuma/request-wire.d.ts +109 -115
  60. package/build/src/akuma/request-wire.js +63 -318
  61. package/build/src/akuma/requests.d.ts +19 -47
  62. package/build/src/akuma/requests.js +51 -107
  63. package/build/src/akuma/turn-drive.d.ts +5 -3
  64. package/build/src/akuma/turn-drive.js +32 -10
  65. package/build/src/akuma-body.d.ts +7 -2
  66. package/build/src/akuma-body.js +68 -46
  67. package/build/src/cli/accepted.d.ts +1 -1
  68. package/build/src/cli/accepted.js +2 -2
  69. package/build/src/cli/commands/akuma-invoke.d.ts +2 -0
  70. package/build/src/cli/commands/akuma-invoke.js +17 -9
  71. package/build/src/cli/commands/akuma.js +7 -7
  72. package/build/src/cli/commands/contract-invoke.d.ts +3 -2
  73. package/build/src/cli/commands/contract-invoke.js +26 -19
  74. package/build/src/cli/commands/contract.d.ts +13 -13
  75. package/build/src/cli/commands/contract.js +32 -17
  76. package/build/src/cli/commands/install.d.ts +1 -1
  77. package/build/src/cli/commands/install.js +1 -1
  78. package/build/src/cli/commands/task-invoke.d.ts +3 -0
  79. package/build/src/cli/commands/task-invoke.js +23 -140
  80. package/build/src/cli/commands/task.js +54 -20
  81. package/build/src/cli/invoke.js +39 -25
  82. package/build/src/cli/main.js +2 -1
  83. package/build/src/cli/parse.d.ts +2 -2
  84. package/build/src/cli/parse.js +37 -22
  85. package/build/src/cli/render/akuma-activity.d.ts +4 -1
  86. package/build/src/cli/render/akuma-activity.js +45 -30
  87. package/build/src/cli/render/akuma-tool.d.ts +5 -1
  88. package/build/src/cli/render/akuma.js +5 -9
  89. package/build/src/cli/render/audit.js +1 -1
  90. package/build/src/cli/render/catalog.js +80 -21
  91. package/build/src/cli/render/contract-observation.d.ts +2 -0
  92. package/build/src/cli/render/contract-observation.js +11 -0
  93. package/build/src/cli/render/contract.js +25 -65
  94. package/build/src/cli/render/kanshi-akuma.d.ts +8 -0
  95. package/build/src/cli/render/kanshi-akuma.js +111 -0
  96. package/build/src/cli/render/kanshi.js +108 -213
  97. package/build/src/cli/render/receipt.d.ts +1 -2
  98. package/build/src/cli/render/receipt.js +76 -26
  99. package/build/src/cli/render/refusal.js +2 -10
  100. package/build/src/cli/render/region.js +5 -2
  101. package/build/src/cli/render/settings.d.ts +1 -1
  102. package/build/src/cli/render/settings.js +27 -8
  103. package/build/src/cli/render/task.js +22 -5
  104. package/build/src/cli/render/terminal.d.ts +28 -0
  105. package/build/src/cli/render/terminal.js +65 -0
  106. package/build/src/cli/result.d.ts +3 -3
  107. package/build/src/cli/runtime.js +3 -1
  108. package/build/src/cli/selectors.d.ts +2 -1
  109. package/build/src/cli/selectors.js +4 -3
  110. package/build/src/cli/square-edge.js +120 -36
  111. package/build/src/cli/usage.js +2 -1
  112. package/build/src/contract-guidance.d.ts +5 -0
  113. package/build/src/contract-guidance.js +121 -0
  114. package/build/src/contract-worktree.d.ts +0 -1
  115. package/build/src/contract-worktree.js +32 -83
  116. package/build/src/coordination/sqlite-transaction-lock.d.ts +1 -0
  117. package/build/src/coordination/sqlite-transaction-lock.js +5 -0
  118. package/build/src/core/facts/codec.d.ts +2 -0
  119. package/build/src/core/facts/codec.js +4 -0
  120. package/build/src/core/verbs/placement.d.ts +6 -1
  121. package/build/src/core/verbs/placement.js +5 -3
  122. package/build/src/dispatch/index.d.ts +0 -2
  123. package/build/src/dispatch/index.js +54 -55
  124. package/build/src/git/admission.js +2 -2
  125. package/build/src/git/hooks.d.ts +9 -15
  126. package/build/src/git/hooks.js +23 -317
  127. package/build/src/git/nuke.d.ts +2 -1
  128. package/build/src/git/nuke.js +36 -18
  129. package/build/src/git/private-state-seat.d.ts +12 -0
  130. package/build/src/git/private-state-seat.js +39 -0
  131. package/build/src/git/process.d.ts +6 -0
  132. package/build/src/git/process.js +19 -7
  133. package/build/src/git/read-observation.js +29 -20
  134. package/build/src/git/reconcile.d.ts +11 -0
  135. package/build/src/git/reconcile.js +64 -11
  136. package/build/src/git/repository.d.ts +6 -2
  137. package/build/src/git/repository.js +8 -0
  138. package/build/src/git/target-placement.d.ts +1 -0
  139. package/build/src/git/target-placement.js +5 -0
  140. package/build/src/git/tender.d.ts +1 -0
  141. package/build/src/git/terminal-reconcile.d.ts +1 -1
  142. package/build/src/git/terminal-reconcile.js +22 -20
  143. package/build/src/git/workspace.d.ts +14 -0
  144. package/build/src/git/workspace.js +44 -0
  145. package/build/src/kanshi/index.d.ts +1 -1
  146. package/build/src/kanshi/read.js +16 -16
  147. package/build/src/kanshi/report.d.ts +2 -2
  148. package/build/src/library/address.d.ts +9 -3
  149. package/build/src/library/address.js +3 -2
  150. package/build/src/library/akuma-creation.d.ts +4 -3
  151. package/build/src/library/akuma-creation.js +19 -13
  152. package/build/src/library/audit.d.ts +1 -1
  153. package/build/src/library/audit.js +5 -3
  154. package/build/src/library/catalog.d.ts +3 -1
  155. package/build/src/library/catalog.js +20 -6
  156. package/build/src/library/composition.d.ts +371 -0
  157. package/build/src/library/composition.js +28 -0
  158. package/build/src/library/configuration.js +8 -2
  159. package/build/src/library/continuation.js +66 -30
  160. package/build/src/library/contract-bind.js +10 -2
  161. package/build/src/library/contract-forwarding-reconciliation-result.d.ts +96 -0
  162. package/build/src/library/contract-forwarding-reconciliation-result.js +83 -0
  163. package/build/src/library/contract-forwarding-result.d.ts +6723 -0
  164. package/build/src/library/contract-forwarding-result.js +521 -0
  165. package/build/src/library/contract-forwarding.d.ts +72 -0
  166. package/build/src/library/contract-forwarding.js +125 -0
  167. package/build/src/library/contract-handle.d.ts +36 -0
  168. package/build/src/library/contract-handle.js +313 -0
  169. package/build/src/library/contract-operations.d.ts +1044 -67
  170. package/build/src/library/contract-operations.js +190 -118
  171. package/build/src/library/contract.d.ts +11 -32
  172. package/build/src/library/contract.js +16 -289
  173. package/build/src/library/fleet-result.d.ts +1454 -0
  174. package/build/src/library/fleet-result.js +96 -0
  175. package/build/src/library/fleet.d.ts +112 -54
  176. package/build/src/library/fleet.js +211 -71
  177. package/build/src/library/input.d.ts +2 -0
  178. package/build/src/library/input.js +4 -0
  179. package/build/src/library/keiyaku.d.ts +371 -20
  180. package/build/src/library/keiyaku.js +8 -21
  181. package/build/src/library/mutation.d.ts +3 -3
  182. package/build/src/library/mutation.js +5 -9
  183. package/build/src/library/nuke.d.ts +1 -1
  184. package/build/src/library/nuke.js +4 -3
  185. package/build/src/library/reconcile.d.ts +4 -0
  186. package/build/src/library/reconcile.js +2 -0
  187. package/build/src/library/refusal.d.ts +0 -9
  188. package/build/src/library/refusal.js +0 -7
  189. package/build/src/protocol/amend.js +56 -50
  190. package/build/src/protocol/attempt.d.ts +2 -0
  191. package/build/src/protocol/attempt.js +8 -1
  192. package/build/src/protocol/completion.js +7 -0
  193. package/build/src/protocol/deliver.js +6 -2
  194. package/build/src/protocol/operations.d.ts +4 -1
  195. package/build/src/protocol/operations.js +5 -2
  196. package/build/src/protocol/placement.d.ts +1 -0
  197. package/build/src/protocol/placement.js +52 -38
  198. package/build/src/protocol/read/observation.d.ts +1 -4
  199. package/build/src/protocol/read/observation.js +2 -15
  200. package/build/src/protocol/reintegrate.js +62 -58
  201. package/build/src/protocol/review.js +5 -0
  202. package/build/src/protocol/run.js +17 -13
  203. package/build/src/runtime/proc/run.d.ts +8 -0
  204. package/build/src/runtime/proc/run.js +27 -0
  205. package/build/src/runtime/proc/termination.js +26 -22
  206. package/build/src/runtime/proc/windows-launch.exe +0 -0
  207. package/build/src/settlement/holder.d.ts +2 -1
  208. package/build/src/settlement/holder.js +15 -4
  209. package/build/src/settlement/settle.js +99 -33
  210. package/build/src/task/board.d.ts +68 -27
  211. package/build/src/task/board.js +31 -1
  212. package/build/src/task/catalog.d.ts +4 -0
  213. package/build/src/task/catalog.js +23 -0
  214. package/build/src/task/compose-language.js +33 -7
  215. package/build/src/task/compose-parser.d.ts +1 -1
  216. package/build/src/task/compose-parser.js +1 -1
  217. package/build/src/task/compose.js +2 -0
  218. package/build/src/task/index.d.ts +12 -4
  219. package/build/src/task/index.js +97 -16
  220. package/build/src/task/mutation-result.d.ts +923 -0
  221. package/build/src/task/mutation-result.js +140 -0
  222. package/build/src/task/mutation.d.ts +552 -28
  223. package/build/src/task/mutation.js +304 -97
  224. package/build/src/task/operations.d.ts +1 -4
  225. package/build/src/task/operations.js +0 -6
  226. package/build/src/task/public.d.ts +2 -0
  227. package/build/src/task/public.js +1 -0
  228. package/build/src/workspace-place.d.ts +7 -2
  229. package/build/src/workspace-place.js +34 -24
  230. package/build/src/world.d.ts +1 -0
  231. package/build/src/world.js +11 -0
  232. package/package.json +8 -6
  233. package/build/src/akuma/request-execution.d.ts +0 -8
  234. package/build/src/akuma/request-execution.js +0 -98
@@ -1,77 +1,1054 @@
1
- import { type RepositoryScope } from "../protocol/operations.js";
2
- import { type IntegrationConflictMaterialized } from "../protocol/deliver.js";
3
- import { type ReviewValue } from "../protocol/review.js";
4
- import { type ContinuationReport } from "./continuation.js";
5
- import { type MutationResult } from "./mutation.js";
6
- import { type KeiyakuRefusal, type KeiyakuRetryReason } from "./refusal.js";
7
- import { actorOption } from "./input.js";
8
- import { type WorktreeHooks } from "./configuration.js";
9
- import { Repo } from "./repo.js";
10
- import { type ContractId } from "../core/facts/types.js";
11
- import type { UpstreamRequestOutcome } from "../akuma/requests.js";
1
+ import { type ErasedRequestCommand, type RequestCommand } from "../akuma/request-wire.js";
2
+ import type { AuditReport } from "../protocol/audit.js";
3
+ import type { IntegrationConflictMaterialized } from "../protocol/deliver.js";
12
4
  import type { DeliveryValue } from "./delivery.js";
13
- export type DeliveryExecutionInput = Readonly<{
14
- scope: RepositoryScope;
15
- contractId: ContractId;
16
- actor?: ReturnType<typeof actorOption>["actor"];
17
- message?: string;
5
+ import type { MutationResult } from "./mutation.js";
6
+ import type { Review } from "./contract-forwarding.js";
7
+ import { z } from "zod";
8
+ type DeliveryResult = MutationResult<DeliveryValue> | IntegrationConflictMaterialized;
9
+ type ReviewResult = MutationResult<Review>;
10
+ type AuditResult = MutationResult<AuditReport>;
11
+ type ContractResult = DeliveryResult | ReviewResult | AuditResult;
12
+ declare const auditRequestSchema: z.ZodPipe<z.ZodObject<{
13
+ repoRoot: z.ZodString;
14
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
15
+ includeDirty: z.ZodBoolean;
16
+ showDiff: z.ZodBoolean;
17
+ requireBranchesToBeUpToDate: z.ZodBoolean;
18
+ }, z.core.$strict>, z.ZodTransform<{
19
+ repoRoot: string;
20
+ contractId: import("../core/facts/types.js").ContractId;
21
+ includeDirty: boolean;
22
+ showDiff: boolean;
18
23
  requireBranchesToBeUpToDate: boolean;
24
+ action: "contract.audit";
25
+ }, {
26
+ repoRoot: string;
27
+ contractId: import("../core/facts/types.js").ContractId;
28
+ includeDirty: boolean;
29
+ showDiff: boolean;
30
+ requireBranchesToBeUpToDate: boolean;
31
+ }>>;
32
+ declare const deliverRequestSchema: z.ZodPipe<z.ZodObject<{
33
+ repoRoot: z.ZodString;
34
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
35
+ includeDirty: z.ZodBoolean;
36
+ materializeConflict: z.ZodBoolean;
37
+ message: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strict>, z.ZodTransform<{
39
+ repoRoot: string;
40
+ contractId: import("../core/facts/types.js").ContractId;
19
41
  includeDirty: boolean;
20
42
  materializeConflict: boolean;
21
- signal?: AbortSignal;
22
- hooks: WorktreeHooks;
43
+ message?: string | undefined;
44
+ action: "contract.deliver";
45
+ }, {
46
+ repoRoot: string;
47
+ contractId: import("../core/facts/types.js").ContractId;
48
+ includeDirty: boolean;
49
+ materializeConflict: boolean;
50
+ message?: string | undefined;
51
+ }>>;
52
+ declare const reviewRequestSchema: z.ZodPipe<z.ZodObject<{
53
+ repoRoot: z.ZodString;
54
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
55
+ verdict: z.ZodEnum<{
56
+ satisfied: "satisfied";
57
+ unsatisfied: "unsatisfied";
58
+ }>;
59
+ summary: z.ZodOptional<z.ZodString>;
60
+ }, z.core.$strict>, z.ZodTransform<{
61
+ repoRoot: string;
62
+ contractId: import("../core/facts/types.js").ContractId;
63
+ verdict: "satisfied" | "unsatisfied";
64
+ summary?: string | undefined;
65
+ action: "contract.review";
66
+ }, {
67
+ repoRoot: string;
68
+ contractId: import("../core/facts/types.js").ContractId;
69
+ verdict: "satisfied" | "unsatisfied";
70
+ summary?: string | undefined;
71
+ }>>;
72
+ export type ContractRequest = z.infer<typeof auditRequestSchema> | z.infer<typeof deliverRequestSchema> | z.infer<typeof reviewRequestSchema>;
73
+ type DeliverRequest = Extract<ContractRequest, {
74
+ action: "contract.deliver";
23
75
  }>;
24
- export type ReviewExecutionInput = Readonly<{
25
- scope: RepositoryScope;
26
- contractId: ContractId;
27
- actor?: ReturnType<typeof actorOption>["actor"];
28
- verdict: AttestationVerdict;
29
- summary?: string;
30
- hooks: WorktreeHooks;
76
+ type ReviewRequest = Extract<ContractRequest, {
77
+ action: "contract.review";
31
78
  }>;
32
- export type AttestationVerdict = "satisfied" | "unsatisfied";
33
- export type Review = ReviewValue & Readonly<{
34
- continuation?: ContinuationReport;
79
+ type AuditRequest = Extract<ContractRequest, {
80
+ action: "contract.audit";
35
81
  }>;
36
- export type ForwardedMutationReceipt<Value> = Readonly<{
37
- kind: "accepted";
38
- result: MutationResult<Value>;
39
- }> | Readonly<{
40
- kind: "refused";
41
- refusal: KeiyakuRefusal;
42
- }> | Readonly<{
43
- kind: "retry";
44
- reason: KeiyakuRetryReason;
82
+ type ContractResultFor<Action extends ContractRequest["action"]> = Action extends "contract.deliver" ? DeliveryResult : Action extends "contract.review" ? ReviewResult : AuditResult;
83
+ type ContractRequestFor<Action extends ContractRequest["action"]> = Extract<ContractRequest, {
84
+ action: Action;
45
85
  }>;
46
- export type ForwardedDeliveryReceipt = ForwardedMutationReceipt<DeliveryValue> | IntegrationConflictMaterialized;
47
- export type ForwardedReviewReceipt = ForwardedMutationReceipt<Review>;
48
- export declare function executeLocalDelivery(input: DeliveryExecutionInput): Promise<MutationResult<DeliveryValue> | IntegrationConflictMaterialized>;
49
- export declare function executeLocalReview(input: ReviewExecutionInput): Promise<MutationResult<Review>>;
50
- export declare function forwardedReceipt<Receipt>(outcome: UpstreamRequestOutcome, action: string): Receipt;
51
- export declare function requireForwarded(receipt: ForwardedDeliveryReceipt): MutationResult<DeliveryValue> | IntegrationConflictMaterialized;
52
- export declare function requireForwarded(receipt: ForwardedReviewReceipt): MutationResult<Review>;
53
- export declare function executeForwardedDeliver(input: Readonly<{
54
- repo: Repo;
55
- contractId: string;
86
+ declare const contractServiceSchema: z.ZodUnion<readonly [z.ZodObject<{
87
+ kind: z.ZodLiteral<"audit-report">;
88
+ repoRoot: z.ZodString;
89
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
90
+ report: z.ZodPipe<z.ZodObject<{
91
+ candidate: z.ZodUnion<readonly [z.ZodObject<{
92
+ kind: z.ZodLiteral<"blocked">;
93
+ refusal: z.ZodUnion<readonly [z.ZodObject<{
94
+ kind: z.ZodEnum<{
95
+ "worktree-missing": "worktree-missing";
96
+ "target-missing": "target-missing";
97
+ }>;
98
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
99
+ }, z.core.$strict>, z.ZodObject<{
100
+ kind: z.ZodLiteral<"dirty-workspace">;
101
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
102
+ staged: z.ZodArray<z.ZodString>;
103
+ unstaged: z.ZodArray<z.ZodString>;
104
+ untracked: z.ZodArray<z.ZodString>;
105
+ submodules: z.ZodArray<z.ZodString>;
106
+ shortStat: z.ZodObject<{
107
+ filesChanged: z.ZodNumber;
108
+ insertions: z.ZodNumber;
109
+ deletions: z.ZodNumber;
110
+ }, z.core.$strict>;
111
+ }, z.core.$strict>, z.ZodObject<{
112
+ kind: z.ZodLiteral<"unmerged-paths">;
113
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
114
+ paths: z.ZodArray<z.ZodString>;
115
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodPipe<z.ZodObject<{
116
+ kind: z.ZodLiteral<"integration-failed">;
117
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
118
+ reason: z.ZodEnum<{
119
+ conflict: "conflict";
120
+ "not-based-on-target": "not-based-on-target";
121
+ "unrelated-histories": "unrelated-histories";
122
+ }>;
123
+ targetHead: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
124
+ conflictPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
125
+ }, z.core.$strict>, z.ZodTransform<{
126
+ kind: "integration-failed";
127
+ contractId: import("../core/facts/types.js").ContractId;
128
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
129
+ targetHead: import("../core/facts/types.js").SnapshotId;
130
+ } | {
131
+ conflictPaths: string[];
132
+ kind: "integration-failed";
133
+ contractId: import("../core/facts/types.js").ContractId;
134
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
135
+ targetHead: import("../core/facts/types.js").SnapshotId;
136
+ }, {
137
+ kind: "integration-failed";
138
+ contractId: import("../core/facts/types.js").ContractId;
139
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
140
+ targetHead: import("../core/facts/types.js").SnapshotId;
141
+ conflictPaths?: string[] | undefined;
142
+ }>>, z.ZodObject<{
143
+ kind: z.ZodLiteral<"integration-unsupported">;
144
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
145
+ requiredGit: z.ZodLiteral<"2.38">;
146
+ }, z.core.$strict>]>, z.ZodObject<{
147
+ kind: z.ZodLiteral<"merge-state-present">;
148
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
149
+ workspace: z.ZodObject<{
150
+ kind: z.ZodLiteral<"worktree">;
151
+ path: z.ZodString;
152
+ }, z.core.$strict>;
153
+ }, z.core.$strict>, z.ZodObject<{
154
+ kind: z.ZodLiteral<"checkout-not-followable">;
155
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
156
+ target: z.ZodString;
157
+ path: z.ZodString;
158
+ reason: z.ZodEnum<{
159
+ conflict: "conflict";
160
+ staged: "staged";
161
+ untracked: "untracked";
162
+ }>;
163
+ paths: z.ZodArray<z.ZodString>;
164
+ }, z.core.$strict>]>;
165
+ }, z.core.$strict>, z.ZodPipe<z.ZodObject<{
166
+ kind: z.ZodLiteral<"ready">;
167
+ workspace: z.ZodObject<{
168
+ kind: z.ZodLiteral<"worktree">;
169
+ path: z.ZodString;
170
+ }, z.core.$strict>;
171
+ identity: z.ZodObject<{
172
+ tenderSnapshot: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
173
+ integration: z.ZodObject<{
174
+ predecessor: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
175
+ snapshot: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
176
+ changeId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ChangeId, string>>;
177
+ }, z.core.$strict>;
178
+ method: z.ZodLiteral<"squash">;
179
+ policy: z.ZodObject<{
180
+ requireBranchesToBeUpToDate: z.ZodBoolean;
181
+ }, z.core.$strict>;
182
+ }, z.core.$strict>;
183
+ scope: z.ZodPipe<z.ZodObject<{
184
+ filesChanged: z.ZodNumber;
185
+ insertions: z.ZodNumber;
186
+ deletions: z.ZodNumber;
187
+ paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
188
+ }, z.core.$strict>, z.ZodTransform<{
189
+ filesChanged: number;
190
+ insertions: number;
191
+ deletions: number;
192
+ } | {
193
+ paths: string[];
194
+ filesChanged: number;
195
+ insertions: number;
196
+ deletions: number;
197
+ }, {
198
+ filesChanged: number;
199
+ insertions: number;
200
+ deletions: number;
201
+ paths?: string[] | undefined;
202
+ }>>;
203
+ diff: z.ZodOptional<z.ZodString>;
204
+ }, z.core.$strict>, z.ZodTransform<{
205
+ kind: "ready";
206
+ workspace: {
207
+ kind: "worktree";
208
+ path: string;
209
+ };
210
+ identity: {
211
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
212
+ integration: {
213
+ predecessor: import("../core/facts/types.js").SnapshotId;
214
+ snapshot: import("../core/facts/types.js").SnapshotId;
215
+ changeId: import("../core/facts/types.js").ChangeId;
216
+ };
217
+ method: "squash";
218
+ policy: {
219
+ requireBranchesToBeUpToDate: boolean;
220
+ };
221
+ };
222
+ scope: {
223
+ filesChanged: number;
224
+ insertions: number;
225
+ deletions: number;
226
+ } | {
227
+ paths: string[];
228
+ filesChanged: number;
229
+ insertions: number;
230
+ deletions: number;
231
+ };
232
+ } | {
233
+ diff: string;
234
+ kind: "ready";
235
+ workspace: {
236
+ kind: "worktree";
237
+ path: string;
238
+ };
239
+ identity: {
240
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
241
+ integration: {
242
+ predecessor: import("../core/facts/types.js").SnapshotId;
243
+ snapshot: import("../core/facts/types.js").SnapshotId;
244
+ changeId: import("../core/facts/types.js").ChangeId;
245
+ };
246
+ method: "squash";
247
+ policy: {
248
+ requireBranchesToBeUpToDate: boolean;
249
+ };
250
+ };
251
+ scope: {
252
+ filesChanged: number;
253
+ insertions: number;
254
+ deletions: number;
255
+ } | {
256
+ paths: string[];
257
+ filesChanged: number;
258
+ insertions: number;
259
+ deletions: number;
260
+ };
261
+ }, {
262
+ kind: "ready";
263
+ workspace: {
264
+ kind: "worktree";
265
+ path: string;
266
+ };
267
+ identity: {
268
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
269
+ integration: {
270
+ predecessor: import("../core/facts/types.js").SnapshotId;
271
+ snapshot: import("../core/facts/types.js").SnapshotId;
272
+ changeId: import("../core/facts/types.js").ChangeId;
273
+ };
274
+ method: "squash";
275
+ policy: {
276
+ requireBranchesToBeUpToDate: boolean;
277
+ };
278
+ };
279
+ scope: {
280
+ filesChanged: number;
281
+ insertions: number;
282
+ deletions: number;
283
+ } | {
284
+ paths: string[];
285
+ filesChanged: number;
286
+ insertions: number;
287
+ deletions: number;
288
+ };
289
+ diff?: string | undefined;
290
+ }>>]>;
291
+ verification: z.ZodUnion<readonly [z.ZodObject<{
292
+ kind: z.ZodLiteral<"not-run">;
293
+ }, z.core.$strict>, z.ZodObject<{
294
+ kind: z.ZodLiteral<"stopped">;
295
+ stop: z.ZodUnion<readonly [z.ZodObject<{
296
+ refusal: z.ZodUnion<readonly [z.ZodObject<{
297
+ kind: z.ZodEnum<{
298
+ terminal: "terminal";
299
+ "contract-missing": "contract-missing";
300
+ }>;
301
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
302
+ }, z.core.$strict>, z.ZodPipe<z.ZodObject<{
303
+ kind: z.ZodLiteral<"verification-declaration-invalid">;
304
+ contractId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>>;
305
+ }, z.core.$strict>, z.ZodTransform<{
306
+ kind: "verification-declaration-invalid";
307
+ } | {
308
+ contractId: import("../core/facts/types.js").ContractId;
309
+ kind: "verification-declaration-invalid";
310
+ }, {
311
+ kind: "verification-declaration-invalid";
312
+ contractId?: import("../core/facts/types.js").ContractId | undefined;
313
+ }>>]>;
314
+ }, z.core.$strict>, z.ZodObject<{
315
+ retry: z.ZodUnion<readonly [z.ZodObject<{
316
+ kind: z.ZodLiteral<"exhausted">;
317
+ }, z.core.$strict>, z.ZodObject<{
318
+ kind: z.ZodLiteral<"collision">;
319
+ }, z.core.$strict>, z.ZodObject<{
320
+ kind: z.ZodLiteral<"publication-failed">;
321
+ diagnostic: z.ZodString;
322
+ }, z.core.$strict>]>;
323
+ }, z.core.$strict>, z.ZodObject<{
324
+ failure: z.ZodEnum<{
325
+ cancelled: "cancelled";
326
+ "unknown-exit": "unknown-exit";
327
+ }>;
328
+ }, z.core.$strict>, z.ZodObject<{
329
+ failure: z.ZodEnum<{
330
+ "spawn-error": "spawn-error";
331
+ "candidate-unavailable": "candidate-unavailable";
332
+ }>;
333
+ diagnostic: z.ZodString;
334
+ }, z.core.$strict>, z.ZodObject<{
335
+ failure: z.ZodLiteral<"environment-failure">;
336
+ diagnostic: z.ZodString;
337
+ }, z.core.$strict>, z.ZodObject<{
338
+ failure: z.ZodLiteral<"environment-failure">;
339
+ command: z.ZodNumber;
340
+ detail: z.ZodUnion<readonly [z.ZodObject<{
341
+ kind: z.ZodLiteral<"exit">;
342
+ code: z.ZodNumber;
343
+ stdout: z.ZodString;
344
+ stderr: z.ZodString;
345
+ truncated: z.ZodBoolean;
346
+ }, z.core.$strict>, z.ZodObject<{
347
+ kind: z.ZodLiteral<"timeout">;
348
+ }, z.core.$strict>, z.ZodObject<{
349
+ kind: z.ZodLiteral<"spawn-error">;
350
+ diagnostic: z.ZodString;
351
+ }, z.core.$strict>, z.ZodObject<{
352
+ kind: z.ZodLiteral<"unknown-exit">;
353
+ }, z.core.$strict>]>;
354
+ }, z.core.$strict>]>;
355
+ }, z.core.$strict>, z.ZodPipe<z.ZodObject<{
356
+ kind: z.ZodEnum<{
357
+ satisfied: "satisfied";
358
+ unsatisfied: "unsatisfied";
359
+ }>;
360
+ passed: z.ZodNumber;
361
+ total: z.ZodNumber;
362
+ summary: z.ZodOptional<z.ZodString>;
363
+ }, z.core.$strict>, z.ZodTransform<{
364
+ kind: "satisfied" | "unsatisfied";
365
+ passed: number;
366
+ total: number;
367
+ } | {
368
+ summary: string;
369
+ kind: "satisfied" | "unsatisfied";
370
+ passed: number;
371
+ total: number;
372
+ }, {
373
+ kind: "satisfied" | "unsatisfied";
374
+ passed: number;
375
+ total: number;
376
+ summary?: string | undefined;
377
+ }>>]>;
378
+ target: z.ZodUnion<readonly [z.ZodObject<{
379
+ kind: z.ZodLiteral<"not-observed">;
380
+ }, z.core.$strict>, z.ZodObject<{
381
+ kind: z.ZodLiteral<"placeable">;
382
+ ref: z.ZodString;
383
+ head: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
384
+ }, z.core.$strict>, z.ZodObject<{
385
+ kind: z.ZodLiteral<"moved">;
386
+ ref: z.ZodString;
387
+ expected: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
388
+ observed: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>>;
389
+ }, z.core.$strict>, z.ZodObject<{
390
+ kind: z.ZodLiteral<"refused">;
391
+ refusal: z.ZodObject<{
392
+ kind: z.ZodLiteral<"checkout-not-followable">;
393
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
394
+ target: z.ZodString;
395
+ path: z.ZodString;
396
+ reason: z.ZodEnum<{
397
+ conflict: "conflict";
398
+ staged: "staged";
399
+ untracked: "untracked";
400
+ }>;
401
+ paths: z.ZodArray<z.ZodString>;
402
+ }, z.core.$strict>;
403
+ }, z.core.$strict>, z.ZodObject<{
404
+ kind: z.ZodLiteral<"failed">;
405
+ diagnostic: z.ZodString;
406
+ }, z.core.$strict>]>;
407
+ delivery: z.ZodOptional<z.ZodObject<{
408
+ changeId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ChangeId, string>>;
409
+ relation: z.ZodEnum<{
410
+ identical: "identical";
411
+ differs: "differs";
412
+ }>;
413
+ }, z.core.$strict>>;
414
+ }, z.core.$strict>, z.ZodTransform<{
415
+ candidate: {
416
+ kind: "ready";
417
+ workspace: {
418
+ kind: "worktree";
419
+ path: string;
420
+ };
421
+ identity: {
422
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
423
+ integration: {
424
+ predecessor: import("../core/facts/types.js").SnapshotId;
425
+ snapshot: import("../core/facts/types.js").SnapshotId;
426
+ changeId: import("../core/facts/types.js").ChangeId;
427
+ };
428
+ method: "squash";
429
+ policy: {
430
+ requireBranchesToBeUpToDate: boolean;
431
+ };
432
+ };
433
+ scope: {
434
+ filesChanged: number;
435
+ insertions: number;
436
+ deletions: number;
437
+ } | {
438
+ paths: string[];
439
+ filesChanged: number;
440
+ insertions: number;
441
+ deletions: number;
442
+ };
443
+ } | {
444
+ diff: string;
445
+ kind: "ready";
446
+ workspace: {
447
+ kind: "worktree";
448
+ path: string;
449
+ };
450
+ identity: {
451
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
452
+ integration: {
453
+ predecessor: import("../core/facts/types.js").SnapshotId;
454
+ snapshot: import("../core/facts/types.js").SnapshotId;
455
+ changeId: import("../core/facts/types.js").ChangeId;
456
+ };
457
+ method: "squash";
458
+ policy: {
459
+ requireBranchesToBeUpToDate: boolean;
460
+ };
461
+ };
462
+ scope: {
463
+ filesChanged: number;
464
+ insertions: number;
465
+ deletions: number;
466
+ } | {
467
+ paths: string[];
468
+ filesChanged: number;
469
+ insertions: number;
470
+ deletions: number;
471
+ };
472
+ } | {
473
+ kind: "blocked";
474
+ refusal: {
475
+ kind: "integration-failed";
476
+ contractId: import("../core/facts/types.js").ContractId;
477
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
478
+ targetHead: import("../core/facts/types.js").SnapshotId;
479
+ } | {
480
+ conflictPaths: string[];
481
+ kind: "integration-failed";
482
+ contractId: import("../core/facts/types.js").ContractId;
483
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
484
+ targetHead: import("../core/facts/types.js").SnapshotId;
485
+ } | {
486
+ kind: "merge-state-present";
487
+ contractId: import("../core/facts/types.js").ContractId;
488
+ workspace: {
489
+ kind: "worktree";
490
+ path: string;
491
+ };
492
+ } | {
493
+ kind: "unmerged-paths";
494
+ contractId: import("../core/facts/types.js").ContractId;
495
+ paths: string[];
496
+ } | {
497
+ kind: "dirty-workspace";
498
+ contractId: import("../core/facts/types.js").ContractId;
499
+ staged: string[];
500
+ unstaged: string[];
501
+ untracked: string[];
502
+ submodules: string[];
503
+ shortStat: {
504
+ filesChanged: number;
505
+ insertions: number;
506
+ deletions: number;
507
+ };
508
+ } | {
509
+ kind: "integration-unsupported";
510
+ contractId: import("../core/facts/types.js").ContractId;
511
+ requiredGit: "2.38";
512
+ } | {
513
+ kind: "checkout-not-followable";
514
+ contractId: import("../core/facts/types.js").ContractId;
515
+ target: string;
516
+ path: string;
517
+ reason: "conflict" | "staged" | "untracked";
518
+ paths: string[];
519
+ } | {
520
+ kind: "worktree-missing" | "target-missing";
521
+ contractId: import("../core/facts/types.js").ContractId;
522
+ };
523
+ };
524
+ verification: {
525
+ kind: "satisfied" | "unsatisfied";
526
+ passed: number;
527
+ total: number;
528
+ } | {
529
+ summary: string;
530
+ kind: "satisfied" | "unsatisfied";
531
+ passed: number;
532
+ total: number;
533
+ } | {
534
+ kind: "not-run";
535
+ } | {
536
+ kind: "stopped";
537
+ stop: {
538
+ refusal: {
539
+ kind: "verification-declaration-invalid";
540
+ } | {
541
+ contractId: import("../core/facts/types.js").ContractId;
542
+ kind: "verification-declaration-invalid";
543
+ } | {
544
+ kind: "terminal" | "contract-missing";
545
+ contractId: import("../core/facts/types.js").ContractId;
546
+ };
547
+ } | {
548
+ retry: {
549
+ kind: "exhausted";
550
+ } | {
551
+ kind: "collision";
552
+ } | {
553
+ kind: "publication-failed";
554
+ diagnostic: string;
555
+ };
556
+ } | {
557
+ failure: "cancelled" | "unknown-exit";
558
+ } | {
559
+ failure: "spawn-error" | "candidate-unavailable";
560
+ diagnostic: string;
561
+ } | {
562
+ failure: "environment-failure";
563
+ diagnostic: string;
564
+ } | {
565
+ failure: "environment-failure";
566
+ command: number;
567
+ detail: {
568
+ kind: "exit";
569
+ code: number;
570
+ stdout: string;
571
+ stderr: string;
572
+ truncated: boolean;
573
+ } | {
574
+ kind: "timeout";
575
+ } | {
576
+ kind: "spawn-error";
577
+ diagnostic: string;
578
+ } | {
579
+ kind: "unknown-exit";
580
+ };
581
+ };
582
+ };
583
+ target: {
584
+ kind: "not-observed";
585
+ } | {
586
+ kind: "placeable";
587
+ ref: string;
588
+ head: import("../core/facts/types.js").SnapshotId;
589
+ } | {
590
+ kind: "moved";
591
+ ref: string;
592
+ expected: import("../core/facts/types.js").SnapshotId;
593
+ observed: import("../core/facts/types.js").SnapshotId | null;
594
+ } | {
595
+ kind: "refused";
596
+ refusal: {
597
+ kind: "checkout-not-followable";
598
+ contractId: import("../core/facts/types.js").ContractId;
599
+ target: string;
600
+ path: string;
601
+ reason: "conflict" | "staged" | "untracked";
602
+ paths: string[];
603
+ };
604
+ } | {
605
+ kind: "failed";
606
+ diagnostic: string;
607
+ };
608
+ } | {
609
+ delivery: {
610
+ changeId: import("../core/facts/types.js").ChangeId;
611
+ relation: "identical" | "differs";
612
+ };
613
+ candidate: {
614
+ kind: "ready";
615
+ workspace: {
616
+ kind: "worktree";
617
+ path: string;
618
+ };
619
+ identity: {
620
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
621
+ integration: {
622
+ predecessor: import("../core/facts/types.js").SnapshotId;
623
+ snapshot: import("../core/facts/types.js").SnapshotId;
624
+ changeId: import("../core/facts/types.js").ChangeId;
625
+ };
626
+ method: "squash";
627
+ policy: {
628
+ requireBranchesToBeUpToDate: boolean;
629
+ };
630
+ };
631
+ scope: {
632
+ filesChanged: number;
633
+ insertions: number;
634
+ deletions: number;
635
+ } | {
636
+ paths: string[];
637
+ filesChanged: number;
638
+ insertions: number;
639
+ deletions: number;
640
+ };
641
+ } | {
642
+ diff: string;
643
+ kind: "ready";
644
+ workspace: {
645
+ kind: "worktree";
646
+ path: string;
647
+ };
648
+ identity: {
649
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
650
+ integration: {
651
+ predecessor: import("../core/facts/types.js").SnapshotId;
652
+ snapshot: import("../core/facts/types.js").SnapshotId;
653
+ changeId: import("../core/facts/types.js").ChangeId;
654
+ };
655
+ method: "squash";
656
+ policy: {
657
+ requireBranchesToBeUpToDate: boolean;
658
+ };
659
+ };
660
+ scope: {
661
+ filesChanged: number;
662
+ insertions: number;
663
+ deletions: number;
664
+ } | {
665
+ paths: string[];
666
+ filesChanged: number;
667
+ insertions: number;
668
+ deletions: number;
669
+ };
670
+ } | {
671
+ kind: "blocked";
672
+ refusal: {
673
+ kind: "integration-failed";
674
+ contractId: import("../core/facts/types.js").ContractId;
675
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
676
+ targetHead: import("../core/facts/types.js").SnapshotId;
677
+ } | {
678
+ conflictPaths: string[];
679
+ kind: "integration-failed";
680
+ contractId: import("../core/facts/types.js").ContractId;
681
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
682
+ targetHead: import("../core/facts/types.js").SnapshotId;
683
+ } | {
684
+ kind: "merge-state-present";
685
+ contractId: import("../core/facts/types.js").ContractId;
686
+ workspace: {
687
+ kind: "worktree";
688
+ path: string;
689
+ };
690
+ } | {
691
+ kind: "unmerged-paths";
692
+ contractId: import("../core/facts/types.js").ContractId;
693
+ paths: string[];
694
+ } | {
695
+ kind: "dirty-workspace";
696
+ contractId: import("../core/facts/types.js").ContractId;
697
+ staged: string[];
698
+ unstaged: string[];
699
+ untracked: string[];
700
+ submodules: string[];
701
+ shortStat: {
702
+ filesChanged: number;
703
+ insertions: number;
704
+ deletions: number;
705
+ };
706
+ } | {
707
+ kind: "integration-unsupported";
708
+ contractId: import("../core/facts/types.js").ContractId;
709
+ requiredGit: "2.38";
710
+ } | {
711
+ kind: "checkout-not-followable";
712
+ contractId: import("../core/facts/types.js").ContractId;
713
+ target: string;
714
+ path: string;
715
+ reason: "conflict" | "staged" | "untracked";
716
+ paths: string[];
717
+ } | {
718
+ kind: "worktree-missing" | "target-missing";
719
+ contractId: import("../core/facts/types.js").ContractId;
720
+ };
721
+ };
722
+ verification: {
723
+ kind: "satisfied" | "unsatisfied";
724
+ passed: number;
725
+ total: number;
726
+ } | {
727
+ summary: string;
728
+ kind: "satisfied" | "unsatisfied";
729
+ passed: number;
730
+ total: number;
731
+ } | {
732
+ kind: "not-run";
733
+ } | {
734
+ kind: "stopped";
735
+ stop: {
736
+ refusal: {
737
+ kind: "verification-declaration-invalid";
738
+ } | {
739
+ contractId: import("../core/facts/types.js").ContractId;
740
+ kind: "verification-declaration-invalid";
741
+ } | {
742
+ kind: "terminal" | "contract-missing";
743
+ contractId: import("../core/facts/types.js").ContractId;
744
+ };
745
+ } | {
746
+ retry: {
747
+ kind: "exhausted";
748
+ } | {
749
+ kind: "collision";
750
+ } | {
751
+ kind: "publication-failed";
752
+ diagnostic: string;
753
+ };
754
+ } | {
755
+ failure: "cancelled" | "unknown-exit";
756
+ } | {
757
+ failure: "spawn-error" | "candidate-unavailable";
758
+ diagnostic: string;
759
+ } | {
760
+ failure: "environment-failure";
761
+ diagnostic: string;
762
+ } | {
763
+ failure: "environment-failure";
764
+ command: number;
765
+ detail: {
766
+ kind: "exit";
767
+ code: number;
768
+ stdout: string;
769
+ stderr: string;
770
+ truncated: boolean;
771
+ } | {
772
+ kind: "timeout";
773
+ } | {
774
+ kind: "spawn-error";
775
+ diagnostic: string;
776
+ } | {
777
+ kind: "unknown-exit";
778
+ };
779
+ };
780
+ };
781
+ target: {
782
+ kind: "not-observed";
783
+ } | {
784
+ kind: "placeable";
785
+ ref: string;
786
+ head: import("../core/facts/types.js").SnapshotId;
787
+ } | {
788
+ kind: "moved";
789
+ ref: string;
790
+ expected: import("../core/facts/types.js").SnapshotId;
791
+ observed: import("../core/facts/types.js").SnapshotId | null;
792
+ } | {
793
+ kind: "refused";
794
+ refusal: {
795
+ kind: "checkout-not-followable";
796
+ contractId: import("../core/facts/types.js").ContractId;
797
+ target: string;
798
+ path: string;
799
+ reason: "conflict" | "staged" | "untracked";
800
+ paths: string[];
801
+ };
802
+ } | {
803
+ kind: "failed";
804
+ diagnostic: string;
805
+ };
806
+ }, {
807
+ candidate: {
808
+ kind: "ready";
809
+ workspace: {
810
+ kind: "worktree";
811
+ path: string;
812
+ };
813
+ identity: {
814
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
815
+ integration: {
816
+ predecessor: import("../core/facts/types.js").SnapshotId;
817
+ snapshot: import("../core/facts/types.js").SnapshotId;
818
+ changeId: import("../core/facts/types.js").ChangeId;
819
+ };
820
+ method: "squash";
821
+ policy: {
822
+ requireBranchesToBeUpToDate: boolean;
823
+ };
824
+ };
825
+ scope: {
826
+ filesChanged: number;
827
+ insertions: number;
828
+ deletions: number;
829
+ } | {
830
+ paths: string[];
831
+ filesChanged: number;
832
+ insertions: number;
833
+ deletions: number;
834
+ };
835
+ } | {
836
+ diff: string;
837
+ kind: "ready";
838
+ workspace: {
839
+ kind: "worktree";
840
+ path: string;
841
+ };
842
+ identity: {
843
+ tenderSnapshot: import("../core/facts/types.js").SnapshotId;
844
+ integration: {
845
+ predecessor: import("../core/facts/types.js").SnapshotId;
846
+ snapshot: import("../core/facts/types.js").SnapshotId;
847
+ changeId: import("../core/facts/types.js").ChangeId;
848
+ };
849
+ method: "squash";
850
+ policy: {
851
+ requireBranchesToBeUpToDate: boolean;
852
+ };
853
+ };
854
+ scope: {
855
+ filesChanged: number;
856
+ insertions: number;
857
+ deletions: number;
858
+ } | {
859
+ paths: string[];
860
+ filesChanged: number;
861
+ insertions: number;
862
+ deletions: number;
863
+ };
864
+ } | {
865
+ kind: "blocked";
866
+ refusal: {
867
+ kind: "integration-failed";
868
+ contractId: import("../core/facts/types.js").ContractId;
869
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
870
+ targetHead: import("../core/facts/types.js").SnapshotId;
871
+ } | {
872
+ conflictPaths: string[];
873
+ kind: "integration-failed";
874
+ contractId: import("../core/facts/types.js").ContractId;
875
+ reason: "conflict" | "not-based-on-target" | "unrelated-histories";
876
+ targetHead: import("../core/facts/types.js").SnapshotId;
877
+ } | {
878
+ kind: "merge-state-present";
879
+ contractId: import("../core/facts/types.js").ContractId;
880
+ workspace: {
881
+ kind: "worktree";
882
+ path: string;
883
+ };
884
+ } | {
885
+ kind: "unmerged-paths";
886
+ contractId: import("../core/facts/types.js").ContractId;
887
+ paths: string[];
888
+ } | {
889
+ kind: "dirty-workspace";
890
+ contractId: import("../core/facts/types.js").ContractId;
891
+ staged: string[];
892
+ unstaged: string[];
893
+ untracked: string[];
894
+ submodules: string[];
895
+ shortStat: {
896
+ filesChanged: number;
897
+ insertions: number;
898
+ deletions: number;
899
+ };
900
+ } | {
901
+ kind: "integration-unsupported";
902
+ contractId: import("../core/facts/types.js").ContractId;
903
+ requiredGit: "2.38";
904
+ } | {
905
+ kind: "checkout-not-followable";
906
+ contractId: import("../core/facts/types.js").ContractId;
907
+ target: string;
908
+ path: string;
909
+ reason: "conflict" | "staged" | "untracked";
910
+ paths: string[];
911
+ } | {
912
+ kind: "worktree-missing" | "target-missing";
913
+ contractId: import("../core/facts/types.js").ContractId;
914
+ };
915
+ };
916
+ verification: {
917
+ kind: "satisfied" | "unsatisfied";
918
+ passed: number;
919
+ total: number;
920
+ } | {
921
+ summary: string;
922
+ kind: "satisfied" | "unsatisfied";
923
+ passed: number;
924
+ total: number;
925
+ } | {
926
+ kind: "not-run";
927
+ } | {
928
+ kind: "stopped";
929
+ stop: {
930
+ refusal: {
931
+ kind: "verification-declaration-invalid";
932
+ } | {
933
+ contractId: import("../core/facts/types.js").ContractId;
934
+ kind: "verification-declaration-invalid";
935
+ } | {
936
+ kind: "terminal" | "contract-missing";
937
+ contractId: import("../core/facts/types.js").ContractId;
938
+ };
939
+ } | {
940
+ retry: {
941
+ kind: "exhausted";
942
+ } | {
943
+ kind: "collision";
944
+ } | {
945
+ kind: "publication-failed";
946
+ diagnostic: string;
947
+ };
948
+ } | {
949
+ failure: "cancelled" | "unknown-exit";
950
+ } | {
951
+ failure: "spawn-error" | "candidate-unavailable";
952
+ diagnostic: string;
953
+ } | {
954
+ failure: "environment-failure";
955
+ diagnostic: string;
956
+ } | {
957
+ failure: "environment-failure";
958
+ command: number;
959
+ detail: {
960
+ kind: "exit";
961
+ code: number;
962
+ stdout: string;
963
+ stderr: string;
964
+ truncated: boolean;
965
+ } | {
966
+ kind: "timeout";
967
+ } | {
968
+ kind: "spawn-error";
969
+ diagnostic: string;
970
+ } | {
971
+ kind: "unknown-exit";
972
+ };
973
+ };
974
+ };
975
+ target: {
976
+ kind: "not-observed";
977
+ } | {
978
+ kind: "placeable";
979
+ ref: string;
980
+ head: import("../core/facts/types.js").SnapshotId;
981
+ } | {
982
+ kind: "moved";
983
+ ref: string;
984
+ expected: import("../core/facts/types.js").SnapshotId;
985
+ observed: import("../core/facts/types.js").SnapshotId | null;
986
+ } | {
987
+ kind: "refused";
988
+ refusal: {
989
+ kind: "checkout-not-followable";
990
+ contractId: import("../core/facts/types.js").ContractId;
991
+ target: string;
992
+ path: string;
993
+ reason: "conflict" | "staged" | "untracked";
994
+ paths: string[];
995
+ };
996
+ } | {
997
+ kind: "failed";
998
+ diagnostic: string;
999
+ };
1000
+ delivery?: {
1001
+ changeId: import("../core/facts/types.js").ChangeId;
1002
+ relation: "identical" | "differs";
1003
+ } | undefined;
1004
+ }>>;
1005
+ }, z.core.$strict>, z.ZodObject<{
1006
+ kind: z.ZodLiteral<"accepted-reference">;
1007
+ repoRoot: z.ZodString;
1008
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
1009
+ deliveryFactId: z.ZodString;
1010
+ }, z.core.$strict>, z.ZodObject<{
1011
+ kind: z.ZodLiteral<"accepted-reference">;
1012
+ repoRoot: z.ZodString;
1013
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ContractId, string>>;
1014
+ reviewFactId: z.ZodString;
1015
+ }, z.core.$strict>]>;
1016
+ export type ContractService = z.infer<typeof contractServiceSchema>;
1017
+ export type ContractRequestPort = Readonly<{
1018
+ audit(input: AuditRequest & Readonly<{
1019
+ requester: string;
1020
+ signal: AbortSignal;
1021
+ }>): Promise<Readonly<{
1022
+ result: AuditResult;
1023
+ auditReport?: AuditReport;
1024
+ }>>;
1025
+ deliver(input: DeliverRequest & Readonly<{
1026
+ requester: string;
1027
+ signal: AbortSignal;
1028
+ }>): Promise<Readonly<{
1029
+ result: DeliveryResult;
1030
+ deliveryFactId?: string;
1031
+ }>>;
1032
+ review(input: ReviewRequest & Readonly<{
1033
+ requester: string;
1034
+ signal: AbortSignal;
1035
+ }>): Promise<Readonly<{
1036
+ result: ReviewResult;
1037
+ reviewFactId?: string;
1038
+ }>>;
1039
+ }>;
1040
+ type ContractExecutionContext = Readonly<{
56
1041
  requester: string;
57
- message?: string;
58
- includeDirty: boolean;
59
- materializeConflict: boolean;
60
- requireBranchesToBeUpToDate: boolean;
61
- hooks: WorktreeHooks;
1042
+ signal: AbortSignal;
1043
+ upstream: ContractRequestPort;
1044
+ }>;
1045
+ export declare function contractRequestCommand(action: ContractRequest["action"]): RequestCommand<ContractRequest, ContractResult, ContractService, ContractService, ContractExecutionContext>;
1046
+ export declare function contractRequestCommands(): Readonly<Record<"contract.audit" | "contract.deliver" | "contract.review", ErasedRequestCommand>>;
1047
+ export declare function requestForwardedContractLive<Action extends ContractRequest["action"]>(input: Readonly<{
1048
+ directory: string;
1049
+ action: Action;
1050
+ request: ContractRequestFor<Action>;
62
1051
  signal?: AbortSignal;
63
- }>): Promise<Readonly<{
64
- result: ForwardedDeliveryReceipt;
65
- deliveryFactId?: string;
66
- }>>;
67
- export declare function executeForwardedReview(input: Readonly<{
68
- repo: Repo;
69
- contractId: string;
70
- requester: string;
71
- verdict: AttestationVerdict;
72
- summary?: string;
73
- hooks: WorktreeHooks;
74
- }>): Promise<Readonly<{
75
- result: ForwardedReviewReceipt;
76
- reviewFactId?: string;
77
- }>>;
1052
+ }>): Promise<ContractResultFor<Action>>;
1053
+ export { executeLocalDelivery, executeLocalReview, executeForwardedAudit, executeForwardedDeliver, executeForwardedReview, } from "./contract-forwarding.js";
1054
+ export type { AttestationVerdict, DeliveryExecutionInput, Review, ReviewExecutionInput, } from "./contract-forwarding.js";