@claudexor/schema 3.2.0 → 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 (73) hide show
  1. package/dist/apply-eligibility.d.ts +20 -10
  2. package/dist/apply-eligibility.d.ts.map +1 -1
  3. package/dist/apply-eligibility.js +2 -1
  4. package/dist/apply-eligibility.js.map +1 -1
  5. package/dist/control-operation-responses.d.ts +25 -7
  6. package/dist/control-operation-responses.d.ts.map +1 -1
  7. package/dist/control-operation-responses.js +3 -0
  8. package/dist/control-operation-responses.js.map +1 -1
  9. package/dist/control-run-detail.d.ts +144 -19
  10. package/dist/control-run-detail.d.ts.map +1 -1
  11. package/dist/control-run-detail.js +39 -1
  12. package/dist/control-run-detail.js.map +1 -1
  13. package/dist/control-run-failure.d.ts +57 -0
  14. package/dist/control-run-failure.d.ts.map +1 -0
  15. package/dist/control-run-failure.js +89 -0
  16. package/dist/control-run-failure.js.map +1 -0
  17. package/dist/control-run-scope.d.ts +17 -0
  18. package/dist/control-run-scope.d.ts.map +1 -1
  19. package/dist/control-run-scope.js +21 -0
  20. package/dist/control-run-scope.js.map +1 -1
  21. package/dist/control.d.ts +50 -45
  22. package/dist/control.d.ts.map +1 -1
  23. package/dist/control.js +9 -62
  24. package/dist/control.js.map +1 -1
  25. package/dist/credential-profile-snapshot.d.ts +35 -14
  26. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  27. package/dist/credential-profile.d.ts +48 -0
  28. package/dist/credential-profile.d.ts.map +1 -1
  29. package/dist/credential-profile.js +12 -1
  30. package/dist/credential-profile.js.map +1 -1
  31. package/dist/harness-confinement.d.ts +64 -0
  32. package/dist/harness-confinement.d.ts.map +1 -0
  33. package/dist/harness-confinement.js +64 -0
  34. package/dist/harness-confinement.js.map +1 -0
  35. package/dist/harness.d.ts +30 -10
  36. package/dist/harness.d.ts.map +1 -1
  37. package/dist/harness.js +6 -18
  38. package/dist/harness.js.map +1 -1
  39. package/dist/index.d.ts +2 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +2 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/plan.d.ts.map +1 -1
  44. package/dist/plan.js +1 -1
  45. package/dist/plan.js.map +1 -1
  46. package/dist/quota.d.ts +9 -9
  47. package/dist/quota.d.ts.map +1 -1
  48. package/dist/quota.js +5 -0
  49. package/dist/quota.js.map +1 -1
  50. package/dist/thread.d.ts +5 -0
  51. package/dist/thread.d.ts.map +1 -1
  52. package/dist/thread.js +5 -0
  53. package/dist/thread.js.map +1 -1
  54. package/generated/ControlCredentialProfileCreateResponse.schema.json +10 -1
  55. package/generated/ControlCredentialProfileUpdateResponse.schema.json +10 -1
  56. package/generated/ControlCredentialProfilesQueryResponse.schema.json +12 -2
  57. package/generated/ControlCredentialProfilesResponse.schema.json +10 -1
  58. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +12 -2
  59. package/generated/ControlQuotaResponse.schema.json +2 -1
  60. package/generated/ControlRunAgainDraft.schema.json +11 -1
  61. package/generated/ControlRunDetail.schema.json +67 -3
  62. package/generated/ControlRunListResponse.schema.json +19 -2
  63. package/generated/ControlRunStartRequest.schema.json +11 -1
  64. package/generated/ControlRunSummary.schema.json +19 -2
  65. package/generated/ControlThreadCreateRequest.schema.json +5 -0
  66. package/generated/ControlThreadDetail.schema.json +12 -0
  67. package/generated/ControlThreadTurnRequest.schema.json +4 -0
  68. package/generated/CredentialProfileStatus.schema.json +10 -1
  69. package/generated/McpRunHandleResult.schema.json +19 -2
  70. package/generated/McpRunToolResult.schema.json +19 -2
  71. package/generated/RunFailure.schema.json +19 -2
  72. package/generated/ThreadTurn.schema.json +12 -0
  73. package/package.json +2 -2
@@ -0,0 +1,57 @@
1
+ import { z } from "zod/v3";
2
+ /**
3
+ * The typed run-failure contract, split out of `control.ts` for the reason the
4
+ * complexity ratchet exists (INV-124): `control.ts` is the file every new
5
+ * control-surface field lands in, and this family — the failure sub-code plus
6
+ * the `RunFailure` record that carries it — is a self-contained unit with its
7
+ * own consumers (budget classifier, quota refusal, CLI/MCP projections).
8
+ * Re-exported through `index.ts` like the other `control-*` splits, so every
9
+ * caller keeps importing it from `@claudexor/schema`.
10
+ */
11
+ export declare const RunFailureCode: z.ZodEnum<["finite_zero", "hard_cap", "estimate_headroom", "unknown_paid_in_flight", "budget_overshoot", "cost_unverifiable", "delegation_child_drain_timeout", "subscription_window_exhausted", "delegated_home_unavailable", "delegated_confinement_unavailable", "delegated_evidence_incomplete"]>;
12
+ export type RunFailureCode = z.infer<typeof RunFailureCode>;
13
+ export declare const RunFailure: z.ZodObject<{
14
+ phase: z.ZodDefault<z.ZodString>;
15
+ category: z.ZodDefault<z.ZodEnum<["validation", "project", "auth", "harness_unavailable", "harness_error", "config_error", "budget", "policy", "cancelled", "internal", "unknown"]>>;
16
+ code: z.ZodDefault<z.ZodNullable<z.ZodEnum<["finite_zero", "hard_cap", "estimate_headroom", "unknown_paid_in_flight", "budget_overshoot", "cost_unverifiable", "delegation_child_drain_timeout", "subscription_window_exhausted", "delegated_home_unavailable", "delegated_confinement_unavailable", "delegated_evidence_incomplete"]>>>;
17
+ harnessId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
18
+ attemptId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
19
+ safeMessage: z.ZodString;
20
+ rawDetailRef: z.ZodDefault<z.ZodNullable<z.ZodString>>;
21
+ logRefs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
22
+ eventRefs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
23
+ runDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
24
+ /** STRUCTURAL reset time. A refusal that only says "resets 2026-08-02T…"
25
+ * inside safeMessage forces every caller to parse prose to decide when to
26
+ * come back — the thing typed contracts exist to prevent. */
27
+ resetsAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
28
+ nextActions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ phase: string;
31
+ category: "auth" | "budget" | "cancelled" | "config_error" | "harness_error" | "harness_unavailable" | "internal" | "policy" | "project" | "unknown" | "validation";
32
+ code: "budget_overshoot" | "cost_unverifiable" | "delegated_confinement_unavailable" | "delegated_evidence_incomplete" | "delegated_home_unavailable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "subscription_window_exhausted" | "unknown_paid_in_flight" | null;
33
+ harnessId: string | null;
34
+ attemptId: string | null;
35
+ safeMessage: string;
36
+ rawDetailRef: string | null;
37
+ logRefs: string[];
38
+ eventRefs: string[];
39
+ runDir: string | null;
40
+ resetsAt: string | null;
41
+ nextActions: string[];
42
+ }, {
43
+ phase?: string | undefined;
44
+ category?: "auth" | "budget" | "cancelled" | "config_error" | "harness_error" | "harness_unavailable" | "internal" | "policy" | "project" | "unknown" | "validation" | undefined;
45
+ code?: "budget_overshoot" | "cost_unverifiable" | "delegated_confinement_unavailable" | "delegated_evidence_incomplete" | "delegated_home_unavailable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "subscription_window_exhausted" | "unknown_paid_in_flight" | null | undefined;
46
+ harnessId?: string | null | undefined;
47
+ attemptId?: string | null | undefined;
48
+ safeMessage: string;
49
+ rawDetailRef?: string | null | undefined;
50
+ logRefs?: string[] | undefined;
51
+ eventRefs?: string[] | undefined;
52
+ runDir?: string | null | undefined;
53
+ resetsAt?: string | null | undefined;
54
+ nextActions?: string[] | undefined;
55
+ }>;
56
+ export type RunFailure = z.infer<typeof RunFailure>;
57
+ //# sourceMappingURL=control-run-failure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-run-failure.d.ts","sourceRoot":"","sources":["../src/control-run-failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,uSAoBxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,UAAU;;;;;;;;;;;IAmDnB;;iEAE6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa9D,CAAC;AACJ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -0,0 +1,89 @@
1
+ import { z } from "zod/v3";
2
+ /**
3
+ * The typed run-failure contract, split out of `control.ts` for the reason the
4
+ * complexity ratchet exists (INV-124): `control.ts` is the file every new
5
+ * control-surface field lands in, and this family — the failure sub-code plus
6
+ * the `RunFailure` record that carries it — is a self-contained unit with its
7
+ * own consumers (budget classifier, quota refusal, CLI/MCP projections).
8
+ * Re-exported through `index.ts` like the other `control-*` splits, so every
9
+ * caller keeps importing it from `@claudexor/schema`.
10
+ */
11
+ export const RunFailureCode = z
12
+ .enum([
13
+ "finite_zero",
14
+ "hard_cap",
15
+ "estimate_headroom",
16
+ "unknown_paid_in_flight",
17
+ "budget_overshoot",
18
+ "cost_unverifiable",
19
+ "delegation_child_drain_timeout",
20
+ "subscription_window_exhausted",
21
+ /* A delegated run's confinement preconditions. Each is thrown as a typed
22
+ * error deep in the attempt loop, so it must be listed here or
23
+ * `declaredFailure` drops it to `code: null` and the terminal states less
24
+ * than the thrower knew. See docs/DELEGATED_CONFINEMENT.md. */
25
+ "delegated_home_unavailable",
26
+ "delegated_confinement_unavailable",
27
+ "delegated_evidence_incomplete",
28
+ ])
29
+ .describe("Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence).");
30
+ export const RunFailure = z
31
+ .object({
32
+ phase: z.string().default("unknown").describe("Pipeline phase where the failure happened."),
33
+ category: z
34
+ .enum([
35
+ "validation",
36
+ "project",
37
+ "auth",
38
+ "harness_unavailable",
39
+ "harness_error",
40
+ "config_error",
41
+ "budget",
42
+ "policy",
43
+ "cancelled",
44
+ "internal",
45
+ "unknown",
46
+ ])
47
+ .default("unknown")
48
+ .describe("Typed failure category (validation, project, auth, harness, config, budget, policy, cancelled, internal, unknown). config_error is a settings/routing misconfiguration (e.g. quality routing with no comparable tier), corrected by changing configuration, not by re-auth or waiting for a harness."),
49
+ code: RunFailureCode.nullable()
50
+ .default(null)
51
+ .describe("Machine-readable failure sub-code within the category; null when the category alone is sufficient. Surfaces choose remediation from this, never by parsing safeMessage."),
52
+ harnessId: z
53
+ .string()
54
+ .nullable()
55
+ .default(null)
56
+ .describe("Harness involved in the failure, when known."),
57
+ attemptId: z
58
+ .string()
59
+ .nullable()
60
+ .default(null)
61
+ .describe("Attempt involved in the failure, when known."),
62
+ safeMessage: z.string().describe("Redacted human-readable failure message."),
63
+ rawDetailRef: z
64
+ .string()
65
+ .nullable()
66
+ .default(null)
67
+ .describe("Artifact path holding the raw (redacted) failure detail."),
68
+ logRefs: z
69
+ .array(z.string())
70
+ .default([])
71
+ .describe("Log artifact paths relevant to the failure."),
72
+ eventRefs: z
73
+ .array(z.string())
74
+ .default([])
75
+ .describe("Event references relevant to the failure."),
76
+ runDir: z.string().nullable().default(null).describe("Run artifact directory."),
77
+ /** STRUCTURAL reset time. A refusal that only says "resets 2026-08-02T…"
78
+ * inside safeMessage forces every caller to parse prose to decide when to
79
+ * come back — the thing typed contracts exist to prevent. */
80
+ resetsAt: z
81
+ .string()
82
+ .datetime({ offset: true })
83
+ .nullable()
84
+ .default(null)
85
+ .describe("When the refused window reopens (a spent subscription quota window), or null when the failure has no such time. Callers schedule a retry off this field, never off safeMessage."),
86
+ nextActions: z.array(z.string()).default([]).describe("Suggested operator next actions."),
87
+ })
88
+ .describe("Typed failure record for a run: phase, category, evidence references, and suggested next actions.");
89
+ //# sourceMappingURL=control-run-failure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-run-failure.js","sourceRoot":"","sources":["../src/control-run-failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,IAAI,CAAC;IACJ,aAAa;IACb,UAAU;IACV,mBAAmB;IACnB,wBAAwB;IACxB,kBAAkB;IAClB,mBAAmB;IACnB,gCAAgC;IAChC,+BAA+B;IAC/B;;;mEAG+D;IAC/D,4BAA4B;IAC5B,mCAAmC;IACnC,+BAA+B;CAChC,CAAC;KACD,QAAQ,CACP,uUAAuU,CACxU,CAAC;AAGJ,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IAC3F,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC;QACJ,YAAY;QACZ,SAAS;QACT,MAAM;QACN,qBAAqB;QACrB,eAAe;QACf,cAAc;QACd,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,UAAU;QACV,SAAS;KACV,CAAC;SACD,OAAO,CAAC,SAAS,CAAC;SAClB,QAAQ,CACP,sSAAsS,CACvS;IACH,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE;SAC5B,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,yKAAyK,CAC1K;IACH,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC5E,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,0DAA0D,CAAC;IACvE,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,6CAA6C,CAAC;IAC1D,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,2CAA2C,CAAC;IACxD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC/E;;iEAE6D;IAC7D,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAC1B,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,iLAAiL,CAClL;IACH,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;CAC1F,CAAC;KACD,QAAQ,CACP,mGAAmG,CACpG,CAAC"}
@@ -6,14 +6,24 @@ export declare const RunScope: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
6
6
  kind: z.ZodLiteral<"project">;
7
7
  root: z.ZodString;
8
8
  context: z.ZodDefault<z.ZodEnum<["auto"]>>;
9
+ /** ONE-SHOT root (INV-035). A caller that hands Claudexor a disposable
10
+ * tree per run (a delegating host's per-subagent worktrees) would
11
+ * otherwise fill the durable registry with entries that are dead on
12
+ * arrival — and then have them quarantined as ghosts. Declaring the root
13
+ * ephemeral keeps it out of the registry entirely, so "no-project state
14
+ * remains global" applies: its commands and run events live in the
15
+ * global partition, and nothing registered ever names it. */
16
+ ephemeral: z.ZodDefault<z.ZodBoolean>;
9
17
  }, "strict", z.ZodTypeAny, {
10
18
  kind: "project";
11
19
  root: string;
12
20
  context: "auto";
21
+ ephemeral: boolean;
13
22
  }, {
14
23
  kind: "project";
15
24
  root: string;
16
25
  context?: "auto" | undefined;
26
+ ephemeral?: boolean | undefined;
17
27
  }>, z.ZodObject<{
18
28
  kind: z.ZodLiteral<"none">;
19
29
  }, "strict", z.ZodTypeAny, {
@@ -22,4 +32,11 @@ export declare const RunScope: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
22
32
  kind: "none";
23
33
  }>]>;
24
34
  export type RunScope = z.infer<typeof RunScope>;
35
+ /**
36
+ * Whether a run request declares a ONE-SHOT project root. Reads the raw request
37
+ * shape (not a parsed RunScope) so the daemon's partition router — which routes
38
+ * `unknown` params before any typed parse — and typed callers share ONE
39
+ * definition of "ephemeral" instead of each re-deriving it.
40
+ */
41
+ export declare function isEphemeralRunScope(scope: unknown): boolean;
25
42
  //# sourceMappingURL=control-run-scope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-run-scope.d.ts","sourceRoot":"","sources":["../src/control-run-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,gFAAgF;AAChF,eAAO,MAAM,eAAe,qBAEgC,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;IAeqD,CAAC;AAC3E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"control-run-scope.d.ts","sourceRoot":"","sources":["../src/control-run-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,gFAAgF;AAChF,eAAO,MAAM,eAAe,qBAEgC,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,QAAQ;;;;IAOb;;;;;;iEAM6D;;;;;;;;;;;;;;;;;;IAeK,CAAC;AAC3E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG3D"}
@@ -10,6 +10,17 @@ export const RunScope = z
10
10
  kind: z.literal("project"),
11
11
  root: z.string().describe("Absolute path of the project root."),
12
12
  context: RunScopeContext.default("auto"),
13
+ /** ONE-SHOT root (INV-035). A caller that hands Claudexor a disposable
14
+ * tree per run (a delegating host's per-subagent worktrees) would
15
+ * otherwise fill the durable registry with entries that are dead on
16
+ * arrival — and then have them quarantined as ghosts. Declaring the root
17
+ * ephemeral keeps it out of the registry entirely, so "no-project state
18
+ * remains global" applies: its commands and run events live in the
19
+ * global partition, and nothing registered ever names it. */
20
+ ephemeral: z
21
+ .boolean()
22
+ .default(false)
23
+ .describe("Declare the root one-shot: it anchors this run only, is never entered into the durable project registry, and its commands/run events live in the global no-project partition."),
13
24
  })
14
25
  .strict()
15
26
  .describe("Run anchored to a project."),
@@ -19,4 +30,14 @@ export const RunScope = z
19
30
  .describe("Run with no project (pure ask)."),
20
31
  ])
21
32
  .describe("What the run operates on: a project (with root) or nothing.");
33
+ /**
34
+ * Whether a run request declares a ONE-SHOT project root. Reads the raw request
35
+ * shape (not a parsed RunScope) so the daemon's partition router — which routes
36
+ * `unknown` params before any typed parse — and typed callers share ONE
37
+ * definition of "ephemeral" instead of each re-deriving it.
38
+ */
39
+ export function isEphemeralRunScope(scope) {
40
+ const value = scope && typeof scope === "object" ? scope : null;
41
+ return value?.["kind"] === "project" && value["ephemeral"] === true;
42
+ }
22
43
  //# sourceMappingURL=control-run-scope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-run-scope.js","sourceRoot":"","sources":["../src/control-run-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;KACd,QAAQ,CAAC,+CAA+C,CAAC,CAAC;AAG7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,kBAAkB,CAAC,MAAM,EAAE;IAC1B,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC/D,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;KACzC,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,CAAC,4BAA4B,CAAC;IACzC,CAAC;SACE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;SACnC,MAAM,EAAE;SACR,QAAQ,CAAC,iCAAiC,CAAC;CAC/C,CAAC;KACD,QAAQ,CAAC,6DAA6D,CAAC,CAAC"}
1
+ {"version":3,"file":"control-run-scope.js","sourceRoot":"","sources":["../src/control-run-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;KACd,QAAQ,CAAC,+CAA+C,CAAC,CAAC;AAG7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,kBAAkB,CAAC,MAAM,EAAE;IAC1B,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAC/D,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;QACxC;;;;;;qEAM6D;QAC7D,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CACP,+KAA+K,CAChL;KACJ,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,CAAC,4BAA4B,CAAC;IACzC,CAAC;SACE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;SACnC,MAAM,EAAE;SACR,QAAQ,CAAC,iCAAiC,CAAC;CAC/C,CAAC;KACD,QAAQ,CAAC,6DAA6D,CAAC,CAAC;AAG3E;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,MAAM,KAAK,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7F,OAAO,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;AACtE,CAAC"}
package/dist/control.d.ts CHANGED
@@ -2,10 +2,13 @@ import { z } from "zod/v3";
2
2
  export { ControlQuotaResponse } from "./quota.js";
3
3
  export declare const RunExecution: z.ZodObject<{
4
4
  isolation: z.ZodDefault<z.ZodEnum<["envelope", "live"]>>;
5
+ delegated: z.ZodDefault<z.ZodBoolean>;
5
6
  }, "strict", z.ZodTypeAny, {
6
7
  isolation: "envelope" | "live";
8
+ delegated: boolean;
7
9
  }, {
8
10
  isolation?: "envelope" | "live" | undefined;
11
+ delegated?: boolean | undefined;
9
12
  }>;
10
13
  export type RunExecution = z.infer<typeof RunExecution>;
11
14
  export declare const ControlReviewerPanelEntry: z.ZodObject<{
@@ -46,14 +49,17 @@ export declare const ControlRunStartRequest: z.ZodObject<{
46
49
  kind: z.ZodLiteral<"project">;
47
50
  root: z.ZodString;
48
51
  context: z.ZodDefault<z.ZodEnum<["auto"]>>;
52
+ ephemeral: z.ZodDefault<z.ZodBoolean>;
49
53
  }, "strict", z.ZodTypeAny, {
50
54
  kind: "project";
51
55
  root: string;
52
56
  context: "auto";
57
+ ephemeral: boolean;
53
58
  }, {
54
59
  kind: "project";
55
60
  root: string;
56
61
  context?: "auto" | undefined;
62
+ ephemeral?: boolean | undefined;
57
63
  }>, z.ZodObject<{
58
64
  kind: z.ZodLiteral<"none">;
59
65
  }, "strict", z.ZodTypeAny, {
@@ -63,10 +69,13 @@ export declare const ControlRunStartRequest: z.ZodObject<{
63
69
  }>]>>;
64
70
  execution: z.ZodDefault<z.ZodObject<{
65
71
  isolation: z.ZodDefault<z.ZodEnum<["envelope", "live"]>>;
72
+ delegated: z.ZodDefault<z.ZodBoolean>;
66
73
  }, "strict", z.ZodTypeAny, {
67
74
  isolation: "envelope" | "live";
75
+ delegated: boolean;
68
76
  }, {
69
77
  isolation?: "envelope" | "live" | undefined;
78
+ delegated?: boolean | undefined;
70
79
  }>>;
71
80
  harnesses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
72
81
  primaryHarness: z.ZodOptional<z.ZodString>;
@@ -257,11 +266,13 @@ export declare const ControlRunStartRequest: z.ZodObject<{
257
266
  kind: "project";
258
267
  root: string;
259
268
  context: "auto";
269
+ ephemeral: boolean;
260
270
  } | {
261
271
  kind: "none";
262
272
  };
263
273
  execution: {
264
274
  isolation: "envelope" | "live";
275
+ delegated: boolean;
265
276
  };
266
277
  harnesses?: string[] | undefined;
267
278
  primaryHarness?: string | undefined;
@@ -333,11 +344,13 @@ export declare const ControlRunStartRequest: z.ZodObject<{
333
344
  kind: "project";
334
345
  root: string;
335
346
  context?: "auto" | undefined;
347
+ ephemeral?: boolean | undefined;
336
348
  } | {
337
349
  kind: "none";
338
350
  } | undefined;
339
351
  execution?: {
340
352
  isolation?: "envelope" | "live" | undefined;
353
+ delegated?: boolean | undefined;
341
354
  } | undefined;
342
355
  harnesses?: string[] | undefined;
343
356
  primaryHarness?: string | undefined;
@@ -458,14 +471,17 @@ export declare const ControlRunAgainDraft: z.ZodObject<{
458
471
  kind: z.ZodLiteral<"project">;
459
472
  root: z.ZodString;
460
473
  context: z.ZodDefault<z.ZodEnum<["auto"]>>;
474
+ ephemeral: z.ZodDefault<z.ZodBoolean>;
461
475
  }, "strict", z.ZodTypeAny, {
462
476
  kind: "project";
463
477
  root: string;
464
478
  context: "auto";
479
+ ephemeral: boolean;
465
480
  }, {
466
481
  kind: "project";
467
482
  root: string;
468
483
  context?: "auto" | undefined;
484
+ ephemeral?: boolean | undefined;
469
485
  }>, z.ZodObject<{
470
486
  kind: z.ZodLiteral<"none">;
471
487
  }, "strict", z.ZodTypeAny, {
@@ -475,10 +491,13 @@ export declare const ControlRunAgainDraft: z.ZodObject<{
475
491
  }>]>>;
476
492
  execution: z.ZodDefault<z.ZodObject<{
477
493
  isolation: z.ZodDefault<z.ZodEnum<["envelope", "live"]>>;
494
+ delegated: z.ZodDefault<z.ZodBoolean>;
478
495
  }, "strict", z.ZodTypeAny, {
479
496
  isolation: "envelope" | "live";
497
+ delegated: boolean;
480
498
  }, {
481
499
  isolation?: "envelope" | "live" | undefined;
500
+ delegated?: boolean | undefined;
482
501
  }>>;
483
502
  harnesses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
484
503
  primaryHarness: z.ZodOptional<z.ZodString>;
@@ -669,11 +688,13 @@ export declare const ControlRunAgainDraft: z.ZodObject<{
669
688
  kind: "project";
670
689
  root: string;
671
690
  context: "auto";
691
+ ephemeral: boolean;
672
692
  } | {
673
693
  kind: "none";
674
694
  };
675
695
  execution: {
676
696
  isolation: "envelope" | "live";
697
+ delegated: boolean;
677
698
  };
678
699
  harnesses?: string[] | undefined;
679
700
  primaryHarness?: string | undefined;
@@ -745,11 +766,13 @@ export declare const ControlRunAgainDraft: z.ZodObject<{
745
766
  kind: "project";
746
767
  root: string;
747
768
  context?: "auto" | undefined;
769
+ ephemeral?: boolean | undefined;
748
770
  } | {
749
771
  kind: "none";
750
772
  } | undefined;
751
773
  execution?: {
752
774
  isolation?: "envelope" | "live" | undefined;
775
+ delegated?: boolean | undefined;
753
776
  } | undefined;
754
777
  harnesses?: string[] | undefined;
755
778
  primaryHarness?: string | undefined;
@@ -837,11 +860,13 @@ export declare const ControlRunAgainDraft: z.ZodObject<{
837
860
  kind: "project";
838
861
  root: string;
839
862
  context: "auto";
863
+ ephemeral: boolean;
840
864
  } | {
841
865
  kind: "none";
842
866
  };
843
867
  execution: {
844
868
  isolation: "envelope" | "live";
869
+ delegated: boolean;
845
870
  };
846
871
  harnesses?: string[] | undefined;
847
872
  primaryHarness?: string | undefined;
@@ -921,11 +946,13 @@ export declare const ControlRunAgainDraft: z.ZodObject<{
921
946
  kind: "project";
922
947
  root: string;
923
948
  context?: "auto" | undefined;
949
+ ephemeral?: boolean | undefined;
924
950
  } | {
925
951
  kind: "none";
926
952
  } | undefined;
927
953
  execution?: {
928
954
  isolation?: "envelope" | "live" | undefined;
955
+ delegated?: boolean | undefined;
929
956
  } | undefined;
930
957
  harnesses?: string[] | undefined;
931
958
  primaryHarness?: string | undefined;
@@ -1009,46 +1036,6 @@ export declare const ControlQueuedRunInfo: z.ZodObject<{
1009
1036
  error?: string | undefined;
1010
1037
  }>;
1011
1038
  export type ControlQueuedRunInfo = z.infer<typeof ControlQueuedRunInfo>;
1012
- export declare const RunFailureCode: z.ZodEnum<["finite_zero", "hard_cap", "estimate_headroom", "unknown_paid_in_flight", "budget_overshoot", "cost_unverifiable", "delegation_child_drain_timeout"]>;
1013
- export type RunFailureCode = z.infer<typeof RunFailureCode>;
1014
- export declare const RunFailure: z.ZodObject<{
1015
- phase: z.ZodDefault<z.ZodString>;
1016
- category: z.ZodDefault<z.ZodEnum<["validation", "project", "auth", "harness_unavailable", "harness_error", "config_error", "budget", "policy", "cancelled", "internal", "unknown"]>>;
1017
- code: z.ZodDefault<z.ZodNullable<z.ZodEnum<["finite_zero", "hard_cap", "estimate_headroom", "unknown_paid_in_flight", "budget_overshoot", "cost_unverifiable", "delegation_child_drain_timeout"]>>>;
1018
- harnessId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1019
- attemptId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1020
- safeMessage: z.ZodString;
1021
- rawDetailRef: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1022
- logRefs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1023
- eventRefs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1024
- runDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1025
- nextActions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1026
- }, "strip", z.ZodTypeAny, {
1027
- phase: string;
1028
- category: "auth" | "budget" | "cancelled" | "config_error" | "harness_error" | "harness_unavailable" | "internal" | "policy" | "project" | "unknown" | "validation";
1029
- code: "budget_overshoot" | "cost_unverifiable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "unknown_paid_in_flight" | null;
1030
- harnessId: string | null;
1031
- attemptId: string | null;
1032
- safeMessage: string;
1033
- rawDetailRef: string | null;
1034
- logRefs: string[];
1035
- eventRefs: string[];
1036
- runDir: string | null;
1037
- nextActions: string[];
1038
- }, {
1039
- phase?: string | undefined;
1040
- category?: "auth" | "budget" | "cancelled" | "config_error" | "harness_error" | "harness_unavailable" | "internal" | "policy" | "project" | "unknown" | "validation" | undefined;
1041
- code?: "budget_overshoot" | "cost_unverifiable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "unknown_paid_in_flight" | null | undefined;
1042
- harnessId?: string | null | undefined;
1043
- attemptId?: string | null | undefined;
1044
- safeMessage: string;
1045
- rawDetailRef?: string | null | undefined;
1046
- logRefs?: string[] | undefined;
1047
- eventRefs?: string[] | undefined;
1048
- runDir?: string | null | undefined;
1049
- nextActions?: string[] | undefined;
1050
- }>;
1051
- export type RunFailure = z.infer<typeof RunFailure>;
1052
1039
  export declare const ControlProjectMetadata: z.ZodObject<{
1053
1040
  kind: z.ZodDefault<z.ZodEnum<["project", "none"]>>;
1054
1041
  root: z.ZodDefault<z.ZodNullable<z.ZodString>>;
@@ -1264,7 +1251,7 @@ export declare const ControlRunSummary: z.ZodObject<{
1264
1251
  failure: z.ZodDefault<z.ZodNullable<z.ZodObject<{
1265
1252
  phase: z.ZodDefault<z.ZodString>;
1266
1253
  category: z.ZodDefault<z.ZodEnum<["validation", "project", "auth", "harness_unavailable", "harness_error", "config_error", "budget", "policy", "cancelled", "internal", "unknown"]>>;
1267
- code: z.ZodDefault<z.ZodNullable<z.ZodEnum<["finite_zero", "hard_cap", "estimate_headroom", "unknown_paid_in_flight", "budget_overshoot", "cost_unverifiable", "delegation_child_drain_timeout"]>>>;
1254
+ code: z.ZodDefault<z.ZodNullable<z.ZodEnum<["finite_zero", "hard_cap", "estimate_headroom", "unknown_paid_in_flight", "budget_overshoot", "cost_unverifiable", "delegation_child_drain_timeout", "subscription_window_exhausted", "delegated_home_unavailable", "delegated_confinement_unavailable", "delegated_evidence_incomplete"]>>>;
1268
1255
  harnessId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1269
1256
  attemptId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1270
1257
  safeMessage: z.ZodString;
@@ -1272,11 +1259,12 @@ export declare const ControlRunSummary: z.ZodObject<{
1272
1259
  logRefs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1273
1260
  eventRefs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1274
1261
  runDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1262
+ resetsAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1275
1263
  nextActions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1276
1264
  }, "strip", z.ZodTypeAny, {
1277
1265
  phase: string;
1278
1266
  category: "auth" | "budget" | "cancelled" | "config_error" | "harness_error" | "harness_unavailable" | "internal" | "policy" | "project" | "unknown" | "validation";
1279
- code: "budget_overshoot" | "cost_unverifiable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "unknown_paid_in_flight" | null;
1267
+ code: "budget_overshoot" | "cost_unverifiable" | "delegated_confinement_unavailable" | "delegated_evidence_incomplete" | "delegated_home_unavailable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "subscription_window_exhausted" | "unknown_paid_in_flight" | null;
1280
1268
  harnessId: string | null;
1281
1269
  attemptId: string | null;
1282
1270
  safeMessage: string;
@@ -1284,11 +1272,12 @@ export declare const ControlRunSummary: z.ZodObject<{
1284
1272
  logRefs: string[];
1285
1273
  eventRefs: string[];
1286
1274
  runDir: string | null;
1275
+ resetsAt: string | null;
1287
1276
  nextActions: string[];
1288
1277
  }, {
1289
1278
  phase?: string | undefined;
1290
1279
  category?: "auth" | "budget" | "cancelled" | "config_error" | "harness_error" | "harness_unavailable" | "internal" | "policy" | "project" | "unknown" | "validation" | undefined;
1291
- code?: "budget_overshoot" | "cost_unverifiable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "unknown_paid_in_flight" | null | undefined;
1280
+ code?: "budget_overshoot" | "cost_unverifiable" | "delegated_confinement_unavailable" | "delegated_evidence_incomplete" | "delegated_home_unavailable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "subscription_window_exhausted" | "unknown_paid_in_flight" | null | undefined;
1292
1281
  harnessId?: string | null | undefined;
1293
1282
  attemptId?: string | null | undefined;
1294
1283
  safeMessage: string;
@@ -1296,6 +1285,7 @@ export declare const ControlRunSummary: z.ZodObject<{
1296
1285
  logRefs?: string[] | undefined;
1297
1286
  eventRefs?: string[] | undefined;
1298
1287
  runDir?: string | null | undefined;
1288
+ resetsAt?: string | null | undefined;
1299
1289
  nextActions?: string[] | undefined;
1300
1290
  }>>>;
1301
1291
  project: z.ZodDefault<z.ZodObject<{
@@ -1740,7 +1730,7 @@ export declare const ControlRunSummary: z.ZodObject<{
1740
1730
  failure: {
1741
1731
  phase: string;
1742
1732
  category: "auth" | "budget" | "cancelled" | "config_error" | "harness_error" | "harness_unavailable" | "internal" | "policy" | "project" | "unknown" | "validation";
1743
- code: "budget_overshoot" | "cost_unverifiable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "unknown_paid_in_flight" | null;
1733
+ code: "budget_overshoot" | "cost_unverifiable" | "delegated_confinement_unavailable" | "delegated_evidence_incomplete" | "delegated_home_unavailable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "subscription_window_exhausted" | "unknown_paid_in_flight" | null;
1744
1734
  harnessId: string | null;
1745
1735
  attemptId: string | null;
1746
1736
  safeMessage: string;
@@ -1748,6 +1738,7 @@ export declare const ControlRunSummary: z.ZodObject<{
1748
1738
  logRefs: string[];
1749
1739
  eventRefs: string[];
1750
1740
  runDir: string | null;
1741
+ resetsAt: string | null;
1751
1742
  nextActions: string[];
1752
1743
  } | null;
1753
1744
  project: {
@@ -1908,7 +1899,7 @@ export declare const ControlRunSummary: z.ZodObject<{
1908
1899
  failure?: {
1909
1900
  phase?: string | undefined;
1910
1901
  category?: "auth" | "budget" | "cancelled" | "config_error" | "harness_error" | "harness_unavailable" | "internal" | "policy" | "project" | "unknown" | "validation" | undefined;
1911
- code?: "budget_overshoot" | "cost_unverifiable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "unknown_paid_in_flight" | null | undefined;
1902
+ code?: "budget_overshoot" | "cost_unverifiable" | "delegated_confinement_unavailable" | "delegated_evidence_incomplete" | "delegated_home_unavailable" | "delegation_child_drain_timeout" | "estimate_headroom" | "finite_zero" | "hard_cap" | "subscription_window_exhausted" | "unknown_paid_in_flight" | null | undefined;
1912
1903
  harnessId?: string | null | undefined;
1913
1904
  attemptId?: string | null | undefined;
1914
1905
  safeMessage: string;
@@ -1916,6 +1907,7 @@ export declare const ControlRunSummary: z.ZodObject<{
1916
1907
  logRefs?: string[] | undefined;
1917
1908
  eventRefs?: string[] | undefined;
1918
1909
  runDir?: string | null | undefined;
1910
+ resetsAt?: string | null | undefined;
1919
1911
  nextActions?: string[] | undefined;
1920
1912
  } | null | undefined;
1921
1913
  project?: {
@@ -2953,6 +2945,7 @@ export declare const ControlThreadTurn: z.ZodObject<{
2953
2945
  threadId: z.ZodString;
2954
2946
  runId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2955
2947
  parentRunId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2948
+ answersPlanRunId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2956
2949
  /** Set when this turn implements an approved plan from an earlier run. */
2957
2950
  planRunId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2958
2951
  /** The SHA-256 of the exact plan bytes this Implement turn froze (INV-081),
@@ -3302,6 +3295,7 @@ export declare const ControlThreadTurn: z.ZodObject<{
3302
3295
  threadId: string;
3303
3296
  runId: string | null;
3304
3297
  parentRunId: string | null;
3298
+ answersPlanRunId: string | null;
3305
3299
  planRunId: string | null;
3306
3300
  planHash: string | null;
3307
3301
  planReadinessOverridden: boolean;
@@ -3379,6 +3373,7 @@ export declare const ControlThreadTurn: z.ZodObject<{
3379
3373
  threadId: string;
3380
3374
  runId?: string | null | undefined;
3381
3375
  parentRunId?: string | null | undefined;
3376
+ answersPlanRunId?: string | null | undefined;
3382
3377
  planRunId?: string | null | undefined;
3383
3378
  planHash?: string | null | undefined;
3384
3379
  planReadinessOverridden?: boolean | undefined;
@@ -3459,14 +3454,17 @@ export declare const ControlThreadCreateRequest: z.ZodObject<{
3459
3454
  kind: z.ZodLiteral<"project">;
3460
3455
  root: z.ZodString;
3461
3456
  context: z.ZodDefault<z.ZodEnum<["auto"]>>;
3457
+ ephemeral: z.ZodDefault<z.ZodBoolean>;
3462
3458
  }, "strict", z.ZodTypeAny, {
3463
3459
  kind: "project";
3464
3460
  root: string;
3465
3461
  context: "auto";
3462
+ ephemeral: boolean;
3466
3463
  }, {
3467
3464
  kind: "project";
3468
3465
  root: string;
3469
3466
  context?: "auto" | undefined;
3467
+ ephemeral?: boolean | undefined;
3470
3468
  }>, z.ZodObject<{
3471
3469
  kind: z.ZodLiteral<"none">;
3472
3470
  }, "strict", z.ZodTypeAny, {
@@ -3488,6 +3486,7 @@ export declare const ControlThreadCreateRequest: z.ZodObject<{
3488
3486
  kind: "project";
3489
3487
  root: string;
3490
3488
  context: "auto";
3489
+ ephemeral: boolean;
3491
3490
  } | {
3492
3491
  kind: "none";
3493
3492
  };
@@ -3504,6 +3503,7 @@ export declare const ControlThreadCreateRequest: z.ZodObject<{
3504
3503
  kind: "project";
3505
3504
  root: string;
3506
3505
  context?: "auto" | undefined;
3506
+ ephemeral?: boolean | undefined;
3507
3507
  } | {
3508
3508
  kind: "none";
3509
3509
  } | undefined;
@@ -3796,6 +3796,7 @@ export declare const ControlThreadDetail: z.ZodObject<{
3796
3796
  threadId: z.ZodString;
3797
3797
  runId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3798
3798
  parentRunId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3799
+ answersPlanRunId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3799
3800
  /** Set when this turn implements an approved plan from an earlier run. */
3800
3801
  planRunId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
3801
3802
  /** The SHA-256 of the exact plan bytes this Implement turn froze (INV-081),
@@ -4145,6 +4146,7 @@ export declare const ControlThreadDetail: z.ZodObject<{
4145
4146
  threadId: string;
4146
4147
  runId: string | null;
4147
4148
  parentRunId: string | null;
4149
+ answersPlanRunId: string | null;
4148
4150
  planRunId: string | null;
4149
4151
  planHash: string | null;
4150
4152
  planReadinessOverridden: boolean;
@@ -4222,6 +4224,7 @@ export declare const ControlThreadDetail: z.ZodObject<{
4222
4224
  threadId: string;
4223
4225
  runId?: string | null | undefined;
4224
4226
  parentRunId?: string | null | undefined;
4227
+ answersPlanRunId?: string | null | undefined;
4225
4228
  planRunId?: string | null | undefined;
4226
4229
  planHash?: string | null | undefined;
4227
4230
  planReadinessOverridden?: boolean | undefined;
@@ -4330,6 +4333,7 @@ export declare const ControlThreadDetail: z.ZodObject<{
4330
4333
  threadId: string;
4331
4334
  runId: string | null;
4332
4335
  parentRunId: string | null;
4336
+ answersPlanRunId: string | null;
4333
4337
  planRunId: string | null;
4334
4338
  planHash: string | null;
4335
4339
  planReadinessOverridden: boolean;
@@ -4438,6 +4442,7 @@ export declare const ControlThreadDetail: z.ZodObject<{
4438
4442
  threadId: string;
4439
4443
  runId?: string | null | undefined;
4440
4444
  parentRunId?: string | null | undefined;
4445
+ answersPlanRunId?: string | null | undefined;
4441
4446
  planRunId?: string | null | undefined;
4442
4447
  planHash?: string | null | undefined;
4443
4448
  planReadinessOverridden?: boolean | undefined;