@claudexor/schema 2.1.2 → 3.0.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 (174) hide show
  1. package/dist/agent-capabilities.d.ts +32 -24
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +20 -11
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts +166 -0
  6. package/dist/apply-eligibility.d.ts.map +1 -1
  7. package/dist/apply-eligibility.js +63 -2
  8. package/dist/apply-eligibility.js.map +1 -1
  9. package/dist/attachment.d.ts +5 -5
  10. package/dist/budget.d.ts +4 -4
  11. package/dist/config.d.ts +59 -41
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +16 -6
  14. package/dist/config.js.map +1 -1
  15. package/dist/context.d.ts +6 -6
  16. package/dist/control-operation-responses.d.ts +190 -97
  17. package/dist/control-operation-responses.d.ts.map +1 -1
  18. package/dist/control-operation-responses.js +14 -1
  19. package/dist/control-operation-responses.js.map +1 -1
  20. package/dist/control-run-detail.d.ts +380 -215
  21. package/dist/control-run-detail.d.ts.map +1 -1
  22. package/dist/control-run-detail.js +54 -8
  23. package/dist/control-run-detail.js.map +1 -1
  24. package/dist/control-thread-apply.d.ts +5 -5
  25. package/dist/control-trust.d.ts +6 -6
  26. package/dist/control.d.ts +769 -323
  27. package/dist/control.d.ts.map +1 -1
  28. package/dist/control.js +164 -71
  29. package/dist/control.js.map +1 -1
  30. package/dist/credential-profile.d.ts +400 -1
  31. package/dist/credential-profile.d.ts.map +1 -1
  32. package/dist/credential-profile.js +109 -4
  33. package/dist/credential-profile.js.map +1 -1
  34. package/dist/decision.d.ts +78 -14
  35. package/dist/decision.d.ts.map +1 -1
  36. package/dist/decision.js +53 -20
  37. package/dist/decision.js.map +1 -1
  38. package/dist/delivery.d.ts +3 -3
  39. package/dist/delivery.js +1 -1
  40. package/dist/delivery.js.map +1 -1
  41. package/dist/events.d.ts +32 -6
  42. package/dist/events.d.ts.map +1 -1
  43. package/dist/events.js +46 -11
  44. package/dist/events.js.map +1 -1
  45. package/dist/gate.d.ts +4 -4
  46. package/dist/gate.d.ts.map +1 -1
  47. package/dist/gate.js +2 -2
  48. package/dist/gate.js.map +1 -1
  49. package/dist/harness.d.ts +137 -47
  50. package/dist/harness.d.ts.map +1 -1
  51. package/dist/harness.js +65 -16
  52. package/dist/harness.js.map +1 -1
  53. package/dist/index.d.ts +4 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +4 -3
  56. package/dist/index.js.map +1 -1
  57. package/dist/operation.d.ts +66 -7
  58. package/dist/operation.d.ts.map +1 -1
  59. package/dist/operation.js +29 -2
  60. package/dist/operation.js.map +1 -1
  61. package/dist/output-schema.d.ts +40 -0
  62. package/dist/output-schema.d.ts.map +1 -0
  63. package/dist/output-schema.js +109 -0
  64. package/dist/output-schema.js.map +1 -0
  65. package/dist/plan.d.ts +206 -0
  66. package/dist/plan.d.ts.map +1 -0
  67. package/dist/plan.js +107 -0
  68. package/dist/plan.js.map +1 -0
  69. package/dist/primitives.d.ts +14 -10
  70. package/dist/primitives.d.ts.map +1 -1
  71. package/dist/primitives.js +14 -11
  72. package/dist/primitives.js.map +1 -1
  73. package/dist/project.d.ts +75 -0
  74. package/dist/project.d.ts.map +1 -1
  75. package/dist/project.js +17 -0
  76. package/dist/project.js.map +1 -1
  77. package/dist/quota.d.ts +119 -0
  78. package/dist/quota.d.ts.map +1 -1
  79. package/dist/quota.js +22 -0
  80. package/dist/quota.js.map +1 -1
  81. package/dist/raw.d.ts +4 -4
  82. package/dist/readiness.d.ts +14 -7
  83. package/dist/readiness.d.ts.map +1 -1
  84. package/dist/run-strategy.d.ts +17 -0
  85. package/dist/run-strategy.d.ts.map +1 -0
  86. package/dist/run-strategy.js +47 -0
  87. package/dist/run-strategy.js.map +1 -0
  88. package/dist/setup.d.ts +160 -160
  89. package/dist/status-projection.d.ts +78 -0
  90. package/dist/status-projection.d.ts.map +1 -0
  91. package/dist/status-projection.js +171 -0
  92. package/dist/status-projection.js.map +1 -0
  93. package/dist/task.d.ts +48 -316
  94. package/dist/task.d.ts.map +1 -1
  95. package/dist/task.js +3 -60
  96. package/dist/task.js.map +1 -1
  97. package/dist/telemetry.d.ts +89 -89
  98. package/dist/thread.d.ts +167 -32
  99. package/dist/thread.d.ts.map +1 -1
  100. package/dist/thread.js +92 -28
  101. package/dist/thread.js.map +1 -1
  102. package/dist/tool-ref.d.ts +1 -1
  103. package/generated/AgentCapabilityCatalog.schema.json +4 -6
  104. package/generated/ApplyEligibility.schema.json +1 -1
  105. package/generated/BudgetLease.schema.json +1 -2
  106. package/generated/ConformanceReport.schema.json +1 -2
  107. package/generated/ContinuityDisclosure.schema.json +74 -0
  108. package/generated/ControlApplyRequest.schema.json +1 -2
  109. package/generated/ControlCredentialProfileUpdateRequest.schema.json +20 -0
  110. package/generated/ControlCredentialProfileUpdateResponse.schema.json +142 -0
  111. package/generated/ControlCredentialProfilesResponse.schema.json +126 -2
  112. package/generated/ControlDeliveryResponse.schema.json +0 -1
  113. package/generated/ControlHandshakeResponse.schema.json +31 -3
  114. package/generated/ControlHarnessListResponse.schema.json +11 -6
  115. package/generated/ControlHarnessSettingsPatch.schema.json +4 -0
  116. package/generated/ControlOperationCatalog.schema.json +16 -1
  117. package/generated/ControlOperationDescriptor.schema.json +15 -0
  118. package/generated/ControlProject.schema.json +35 -0
  119. package/generated/ControlProjectListResponse.schema.json +35 -0
  120. package/generated/ControlProjectOutputsResponse.schema.json +57 -0
  121. package/generated/ControlQueuedRunInfo.schema.json +2 -11
  122. package/generated/ControlQuotaResponse.schema.json +42 -0
  123. package/generated/ControlRunAgainDraft.schema.json +37 -35
  124. package/generated/ControlRunDecisionRequest.schema.json +0 -1
  125. package/generated/ControlRunDetail.schema.json +305 -213
  126. package/generated/ControlRunListResponse.schema.json +88 -27
  127. package/generated/ControlRunStartRequest.schema.json +37 -35
  128. package/generated/ControlRunStartResponse.schema.json +2 -11
  129. package/generated/ControlRunSummary.schema.json +88 -27
  130. package/generated/ControlSettingsSnapshot.schema.json +6 -11
  131. package/generated/ControlSettingsUpdateRequest.schema.json +5 -10
  132. package/generated/ControlThread.schema.json +21 -3
  133. package/generated/ControlThreadApplyResponse.schema.json +0 -1
  134. package/generated/ControlThreadCreateRequest.schema.json +12 -3
  135. package/generated/ControlThreadDetail.schema.json +174 -16
  136. package/generated/ControlThreadListResponse.schema.json +60 -3
  137. package/generated/ControlThreadTurnRequest.schema.json +40 -34
  138. package/generated/ControlThreadUpdateRequest.schema.json +19 -0
  139. package/generated/DecisionRecord.schema.json +73 -33
  140. package/generated/GateResult.schema.json +1 -2
  141. package/generated/GlobalConfig.schema.json +7 -12
  142. package/generated/HarnessManifest.schema.json +11 -6
  143. package/generated/HarnessStatusDto.schema.json +11 -6
  144. package/generated/LaneCheckpoint.schema.json +59 -0
  145. package/generated/McpRunHandleResult.schema.json +234 -0
  146. package/generated/McpRunToolResult.schema.json +124 -2
  147. package/generated/RoutePrimaryDivergedPayload.schema.json +56 -0
  148. package/generated/RunEvent.schema.json +10 -5
  149. package/generated/RunTelemetry.schema.json +2 -4
  150. package/generated/TaskContract.schema.json +3 -135
  151. package/generated/Thread.schema.json +21 -3
  152. package/generated/ThreadTurn.schema.json +88 -0
  153. package/package.json +2 -2
  154. package/dist/control-spec.d.ts +0 -592
  155. package/dist/control-spec.d.ts.map +0 -1
  156. package/dist/control-spec.js +0 -85
  157. package/dist/control-spec.js.map +0 -1
  158. package/dist/orchestrate.d.ts +0 -556
  159. package/dist/orchestrate.d.ts.map +0 -1
  160. package/dist/orchestrate.js +0 -356
  161. package/dist/orchestrate.js.map +0 -1
  162. package/dist/spec.d.ts +0 -678
  163. package/dist/spec.d.ts.map +0 -1
  164. package/dist/spec.js +0 -186
  165. package/dist/spec.js.map +0 -1
  166. package/generated/ControlSpecAnswersRequest.schema.json +0 -74
  167. package/generated/ControlSpecQuestionsRequest.schema.json +0 -206
  168. package/generated/ControlSpecSession.schema.json +0 -249
  169. package/generated/ControlSpecSessionListResponse.schema.json +0 -261
  170. package/generated/OrchestrateContract.schema.json +0 -119
  171. package/generated/OrchestratePlan.schema.json +0 -264
  172. package/generated/OrchestratePlanProgress.schema.json +0 -164
  173. package/generated/SessionReboundLineage.schema.json +0 -73
  174. package/generated/SpecPack.schema.json +0 -483
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Caller-supplied per-run output-schema normalization/transport helpers. A
3
+ * run's final ANSWER may be constrained to a JSON Schema (agent race/ask):
4
+ * the ORIGINAL validated schema stays the conformance authority, while the
5
+ * vendor transport gets a strict (all-required + additionalProperties:false)
6
+ * form. Shared owner for both transforms, harness-agnostic.
7
+ */
8
+ /** A caller-supplied output schema the structured-output routes cannot carry. */
9
+ export class UnsupportedOutputSchemaError extends Error {
10
+ }
11
+ /**
12
+ * Validate a CALLER-supplied per-run output schema and return it UNCHANGED —
13
+ * it stays the CONFORMANCE AUTHORITY (the engine validates the final answer
14
+ * against exactly what the caller asked for). The vendor transport separately
15
+ * strictifies via `strictifyOutputSchema`; NEVER validate the answer against
16
+ * the strictified form — strictify turns an optional string into a required
17
+ * `string|null`, so `{"field":null}` would falsely pass a schema that forbids it.
18
+ *
19
+ * Refuses — typed, at the boundary — the shapes the native routes are
20
+ * LIVE-VERIFIED to reject rather than let a vendor 400 surface mid-run: the
21
+ * root must be an inline `type: "object"` (claude materializes --json-schema as
22
+ * a StructuredOutput tool whose input_schema needs a top-level type; a
23
+ * $ref-wrapped root 400s), `$ref` is refused anywhere, and `format` is refused
24
+ * while the pinned claude (<2.1.205) silently drops a format-bearing schema.
25
+ */
26
+ export function normalizeUserOutputSchema(schema) {
27
+ if (schema["type"] !== "object" || typeof schema["properties"] !== "object") {
28
+ throw new UnsupportedOutputSchemaError('outputSchema root must be an inline object schema ({"type":"object","properties":{...}}); $ref-wrapped or non-object roots are rejected by the native structured-output routes');
29
+ }
30
+ const hasRef = (value) => {
31
+ if (Array.isArray(value))
32
+ return value.some(hasRef);
33
+ if (!value || typeof value !== "object")
34
+ return false;
35
+ const obj = value;
36
+ if ("$ref" in obj)
37
+ return true;
38
+ return Object.values(obj).some(hasRef);
39
+ };
40
+ if (hasRef(schema)) {
41
+ throw new UnsupportedOutputSchemaError("outputSchema must not contain $ref (native structured-output routes do not resolve references); inline the referenced shapes");
42
+ }
43
+ const hasFormat = (value) => {
44
+ if (Array.isArray(value))
45
+ return value.some(hasFormat);
46
+ if (!value || typeof value !== "object")
47
+ return false;
48
+ const obj = value;
49
+ if (typeof obj["format"] === "string")
50
+ return true;
51
+ return Object.values(obj).some(hasFormat);
52
+ };
53
+ if (hasFormat(schema)) {
54
+ throw new UnsupportedOutputSchemaError("outputSchema must not use `format`: the pinned claude CLI (<2.1.205) silently drops the whole schema when format is present; express the constraint with pattern/enum instead");
55
+ }
56
+ return schema;
57
+ }
58
+ /** Vendor-strict transport form of a validated output schema (all keys
59
+ * required, additionalProperties:false, optionals nullable). Used ONLY to
60
+ * constrain the harness — NEVER to judge conformance (see normalizeUserOutputSchema). */
61
+ export function strictifyOutputSchema(schema) {
62
+ return strictifyForStructuredOutput(schema);
63
+ }
64
+ /**
65
+ * Vendor STRICT structured-output mode (LIVE-VERIFIED against codex 0.137 /
66
+ * the OpenAI Responses API): every object must list ALL property keys in
67
+ * `required` and set `additionalProperties: false` — optional-with-default
68
+ * fields become always-emitted (their Zod defaults make explicit values
69
+ * equivalent). One owner for the transform; a schema that violates this is
70
+ * rejected by the vendor with invalid_json_schema.
71
+ */
72
+ export function strictifyForStructuredOutput(node) {
73
+ const walk = (value) => {
74
+ if (Array.isArray(value))
75
+ return value.map(walk);
76
+ if (!value || typeof value !== "object")
77
+ return value;
78
+ const obj = { ...value };
79
+ for (const key of Object.keys(obj))
80
+ obj[key] = walk(obj[key]);
81
+ if (obj["type"] === "object" && obj["properties"] && typeof obj["properties"] === "object") {
82
+ const props = obj["properties"];
83
+ const originallyRequired = new Set(Array.isArray(obj["required"]) ? obj["required"] : []);
84
+ // Vendor strict mode demands required = ALL keys; fields that were
85
+ // OPTIONAL in the source schema stay expressible by becoming NULLABLE
86
+ // (the OpenAI strict-mode recipe) — otherwise the model would be FORCED
87
+ // to invent values on every call.
88
+ for (const key of Object.keys(props)) {
89
+ if (originallyRequired.has(key))
90
+ continue;
91
+ const prop = props[key];
92
+ if (prop && typeof prop === "object" && !Array.isArray(prop)) {
93
+ const p = prop;
94
+ if (typeof p["type"] === "string" && p["type"] !== "null") {
95
+ p["type"] = [p["type"], "null"];
96
+ }
97
+ else if (Array.isArray(p["type"]) && !p["type"].includes("null")) {
98
+ p["type"].push("null");
99
+ }
100
+ }
101
+ }
102
+ obj["required"] = Object.keys(props);
103
+ obj["additionalProperties"] = false;
104
+ }
105
+ return obj;
106
+ };
107
+ return walk(node);
108
+ }
109
+ //# sourceMappingURL=output-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-schema.js","sourceRoot":"","sources":["../src/output-schema.ts"],"names":[],"mappings":"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"}
package/dist/plan.d.ts ADDED
@@ -0,0 +1,206 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Typed plan-question artifacts (v3 plan lifecycle, D17/D31): the planner's
4
+ * tagged `## Open Questions` block is parsed by the ENGINE into
5
+ * `final/questions.json`, and readiness is DERIVED from that artifact by one
6
+ * server-side projection — surfaces consume the projection, never re-parse.
7
+ */
8
+ export declare const PlanQuestionKind: z.ZodEnum<["single", "multi", "text"]>;
9
+ export type PlanQuestionKind = z.infer<typeof PlanQuestionKind>;
10
+ export declare const PlanQuestionOption: z.ZodObject<{
11
+ id: z.ZodString;
12
+ label: z.ZodString;
13
+ }, "strict", z.ZodTypeAny, {
14
+ id: string;
15
+ label: string;
16
+ }, {
17
+ id: string;
18
+ label: string;
19
+ }>;
20
+ export type PlanQuestionOption = z.infer<typeof PlanQuestionOption>;
21
+ export declare const PlanQuestion: z.ZodObject<{
22
+ id: z.ZodString;
23
+ kind: z.ZodEnum<["single", "multi", "text"]>;
24
+ prompt: z.ZodString;
25
+ options: z.ZodDefault<z.ZodArray<z.ZodObject<{
26
+ id: z.ZodString;
27
+ label: z.ZodString;
28
+ }, "strict", z.ZodTypeAny, {
29
+ id: string;
30
+ label: string;
31
+ }, {
32
+ id: string;
33
+ label: string;
34
+ }>, "many">>;
35
+ allow_text: z.ZodDefault<z.ZodBoolean>;
36
+ }, "strict", z.ZodTypeAny, {
37
+ options: {
38
+ id: string;
39
+ label: string;
40
+ }[];
41
+ kind: "text" | "single" | "multi";
42
+ id: string;
43
+ prompt: string;
44
+ allow_text: boolean;
45
+ }, {
46
+ kind: "text" | "single" | "multi";
47
+ id: string;
48
+ prompt: string;
49
+ options?: {
50
+ id: string;
51
+ label: string;
52
+ }[] | undefined;
53
+ allow_text?: boolean | undefined;
54
+ }>;
55
+ export type PlanQuestion = z.infer<typeof PlanQuestion>;
56
+ export declare const PlanQuestionsArtifact: z.ZodObject<{
57
+ /** Whether a tagged Open Questions block was found at all. `none_found`
58
+ * is DISCLOSED, never silently equated with "ready" (zen: honest states). */
59
+ parse: z.ZodEnum<["found", "none_found"]>;
60
+ questions: z.ZodDefault<z.ZodArray<z.ZodObject<{
61
+ id: z.ZodString;
62
+ kind: z.ZodEnum<["single", "multi", "text"]>;
63
+ prompt: z.ZodString;
64
+ options: z.ZodDefault<z.ZodArray<z.ZodObject<{
65
+ id: z.ZodString;
66
+ label: z.ZodString;
67
+ }, "strict", z.ZodTypeAny, {
68
+ id: string;
69
+ label: string;
70
+ }, {
71
+ id: string;
72
+ label: string;
73
+ }>, "many">>;
74
+ allow_text: z.ZodDefault<z.ZodBoolean>;
75
+ }, "strict", z.ZodTypeAny, {
76
+ options: {
77
+ id: string;
78
+ label: string;
79
+ }[];
80
+ kind: "text" | "single" | "multi";
81
+ id: string;
82
+ prompt: string;
83
+ allow_text: boolean;
84
+ }, {
85
+ kind: "text" | "single" | "multi";
86
+ id: string;
87
+ prompt: string;
88
+ options?: {
89
+ id: string;
90
+ label: string;
91
+ }[] | undefined;
92
+ allow_text?: boolean | undefined;
93
+ }>, "many">>;
94
+ }, "strict", z.ZodTypeAny, {
95
+ questions: {
96
+ options: {
97
+ id: string;
98
+ label: string;
99
+ }[];
100
+ kind: "text" | "single" | "multi";
101
+ id: string;
102
+ prompt: string;
103
+ allow_text: boolean;
104
+ }[];
105
+ parse: "found" | "none_found";
106
+ }, {
107
+ parse: "found" | "none_found";
108
+ questions?: {
109
+ kind: "text" | "single" | "multi";
110
+ id: string;
111
+ prompt: string;
112
+ options?: {
113
+ id: string;
114
+ label: string;
115
+ }[] | undefined;
116
+ allow_text?: boolean | undefined;
117
+ }[] | undefined;
118
+ }>;
119
+ export type PlanQuestionsArtifact = z.infer<typeof PlanQuestionsArtifact>;
120
+ export declare const PlanReadinessState: z.ZodEnum<["ready", "needs_answers", "unverified"]>;
121
+ export type PlanReadinessState = z.infer<typeof PlanReadinessState>;
122
+ export declare const PlanReadiness: z.ZodObject<{
123
+ state: z.ZodEnum<["ready", "needs_answers", "unverified"]>;
124
+ questionCount: z.ZodDefault<z.ZodNumber>;
125
+ }, "strict", z.ZodTypeAny, {
126
+ state: "ready" | "needs_answers" | "unverified";
127
+ questionCount: number;
128
+ }, {
129
+ state: "ready" | "needs_answers" | "unverified";
130
+ questionCount?: number | undefined;
131
+ }>;
132
+ export type PlanReadiness = z.infer<typeof PlanReadiness>;
133
+ /** One council member's role and outcome (INV-031). `primary` is the merger;
134
+ * `member` is a draft-only participant. A council with one surviving member
135
+ * still merges (the primary normalizes the format + extracts questions). */
136
+ export declare const CouncilMember: z.ZodObject<{
137
+ harnessId: z.ZodString;
138
+ role: z.ZodEnum<["primary", "member"]>;
139
+ status: z.ZodEnum<["drafted", "failed", "merged"]>;
140
+ error: z.ZodDefault<z.ZodNullable<z.ZodString>>;
141
+ }, "strict", z.ZodTypeAny, {
142
+ status: "failed" | "drafted" | "merged";
143
+ harnessId: string;
144
+ error: string | null;
145
+ role: "primary" | "member";
146
+ }, {
147
+ status: "failed" | "drafted" | "merged";
148
+ harnessId: string;
149
+ role: "primary" | "member";
150
+ error?: string | null | undefined;
151
+ }>;
152
+ export type CouncilMember = z.infer<typeof CouncilMember>;
153
+ /** Council membership + merge projection (INV-031), projected from
154
+ * `council/membership.yaml`. Present only for `--council` plan runs; the
155
+ * downstream plan artifacts (final/plan.md, questions.json, readiness) are
156
+ * shape-identical to a solo plan, so this field is purely additive disclosure. */
157
+ export declare const CouncilProjection: z.ZodObject<{
158
+ requested: z.ZodNumber;
159
+ drafted: z.ZodNumber;
160
+ degraded: z.ZodDefault<z.ZodBoolean>;
161
+ mergedBy: z.ZodDefault<z.ZodNullable<z.ZodString>>;
162
+ members: z.ZodDefault<z.ZodArray<z.ZodObject<{
163
+ harnessId: z.ZodString;
164
+ role: z.ZodEnum<["primary", "member"]>;
165
+ status: z.ZodEnum<["drafted", "failed", "merged"]>;
166
+ error: z.ZodDefault<z.ZodNullable<z.ZodString>>;
167
+ }, "strict", z.ZodTypeAny, {
168
+ status: "failed" | "drafted" | "merged";
169
+ harnessId: string;
170
+ error: string | null;
171
+ role: "primary" | "member";
172
+ }, {
173
+ status: "failed" | "drafted" | "merged";
174
+ harnessId: string;
175
+ role: "primary" | "member";
176
+ error?: string | null | undefined;
177
+ }>, "many">>;
178
+ }, "strict", z.ZodTypeAny, {
179
+ requested: number;
180
+ degraded: boolean;
181
+ drafted: number;
182
+ mergedBy: string | null;
183
+ members: {
184
+ status: "failed" | "drafted" | "merged";
185
+ harnessId: string;
186
+ error: string | null;
187
+ role: "primary" | "member";
188
+ }[];
189
+ }, {
190
+ requested: number;
191
+ drafted: number;
192
+ degraded?: boolean | undefined;
193
+ mergedBy?: string | null | undefined;
194
+ members?: {
195
+ status: "failed" | "drafted" | "merged";
196
+ harnessId: string;
197
+ role: "primary" | "member";
198
+ error?: string | null | undefined;
199
+ }[] | undefined;
200
+ }>;
201
+ export type CouncilProjection = z.infer<typeof CouncilProjection>;
202
+ /** THE single derivation authority for plan readiness (declared per the v3
203
+ * plan-lifecycle decision): every surface consumes this projection of
204
+ * final/questions.json; nothing re-parses plan text. */
205
+ export declare function derivePlanReadiness(artifact: PlanQuestionsArtifact): PlanReadiness;
206
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,wCAEkD,CAAC;AAChF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,kBAAkB;;;;;;;;;EAMyB,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeoC,CAAC;AAC9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,qBAAqB;IAE9B;iFAC6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOE,CAAC;AACpF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,eAAO,MAAM,kBAAkB,qDAI5B,CAAC;AACJ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,aAAa;;;;;;;;;EAMwD,CAAC;AACnF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;4EAE4E;AAC5E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAgBuC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;;kFAGkF;AAClF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBgD,CAAC;AAC/E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;wDAEwD;AACxD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,aAAa,CAOlF"}
package/dist/plan.js ADDED
@@ -0,0 +1,107 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Typed plan-question artifacts (v3 plan lifecycle, D17/D31): the planner's
4
+ * tagged `## Open Questions` block is parsed by the ENGINE into
5
+ * `final/questions.json`, and readiness is DERIVED from that artifact by one
6
+ * server-side projection — surfaces consume the projection, never re-parse.
7
+ */
8
+ export const PlanQuestionKind = z
9
+ .enum(["single", "multi", "text"])
10
+ .describe("Question kind: pick exactly one, pick one or more, or free text.");
11
+ export const PlanQuestionOption = z
12
+ .object({
13
+ id: z.string().min(1).describe("Stable option id within the question."),
14
+ label: z.string().min(1).describe("Option label shown to the user."),
15
+ })
16
+ .strict()
17
+ .describe("One selectable option of a plan question.");
18
+ export const PlanQuestion = z
19
+ .object({
20
+ id: z.string().min(1).describe("Stable question id within the plan revision."),
21
+ kind: PlanQuestionKind,
22
+ prompt: z.string().min(1).describe("The question text."),
23
+ options: z
24
+ .array(PlanQuestionOption)
25
+ .default([])
26
+ .describe("Options for single/multi questions; empty for free text."),
27
+ allow_text: z
28
+ .boolean()
29
+ .default(false)
30
+ .describe("True when a free-text answer is accepted (text questions)."),
31
+ })
32
+ .strict()
33
+ .describe("One open question surfaced by a plan revision.");
34
+ export const PlanQuestionsArtifact = z
35
+ .object({
36
+ /** Whether a tagged Open Questions block was found at all. `none_found`
37
+ * is DISCLOSED, never silently equated with "ready" (zen: honest states). */
38
+ parse: z
39
+ .enum(["found", "none_found"])
40
+ .describe("Whether the planner emitted a parseable Open Questions block."),
41
+ questions: z.array(PlanQuestion).default([]).describe("Open questions of this plan revision."),
42
+ })
43
+ .strict()
44
+ .describe("Engine-parsed open questions of one plan run (final/questions.json).");
45
+ export const PlanReadinessState = z
46
+ .enum(["ready", "needs_answers", "unverified"])
47
+ .describe("Derived plan readiness: ready (block parsed, zero open questions), needs_answers (open questions remain), unverified (no parseable block — the planner ignored the format).");
48
+ export const PlanReadiness = z
49
+ .object({
50
+ state: PlanReadinessState,
51
+ questionCount: z.number().int().nonnegative().default(0),
52
+ })
53
+ .strict()
54
+ .describe("Server-derived readiness of a plan run (one derivation owner; D17).");
55
+ /** One council member's role and outcome (INV-031). `primary` is the merger;
56
+ * `member` is a draft-only participant. A council with one surviving member
57
+ * still merges (the primary normalizes the format + extracts questions). */
58
+ export const CouncilMember = z
59
+ .object({
60
+ harnessId: z.string().min(1).describe("Harness that drafted (or merged) this member's plan."),
61
+ role: z
62
+ .enum(["primary", "member"])
63
+ .describe("primary = the merger that synthesizes the unified plan; member = draft only."),
64
+ status: z
65
+ .enum(["drafted", "failed", "merged"])
66
+ .describe("drafted = draft landed; merged = this member produced the unified plan; failed."),
67
+ error: z
68
+ .string()
69
+ .nullable()
70
+ .default(null)
71
+ .describe("First redacted draft error; null unless the member failed."),
72
+ })
73
+ .strict()
74
+ .describe("One council member's role and draft/merge outcome.");
75
+ /** Council membership + merge projection (INV-031), projected from
76
+ * `council/membership.yaml`. Present only for `--council` plan runs; the
77
+ * downstream plan artifacts (final/plan.md, questions.json, readiness) are
78
+ * shape-identical to a solo plan, so this field is purely additive disclosure. */
79
+ export const CouncilProjection = z
80
+ .object({
81
+ requested: z.number().int().positive().describe("Requested member count (n; 2..4)."),
82
+ drafted: z.number().int().nonnegative().describe("Members whose draft survived to the merge."),
83
+ degraded: z
84
+ .boolean()
85
+ .default(false)
86
+ .describe("True when fewer members drafted than requested (failures disclosed per member)."),
87
+ mergedBy: z
88
+ .string()
89
+ .nullable()
90
+ .default(null)
91
+ .describe("Harness that produced the unified plan (the primary); null if the merge failed."),
92
+ members: z.array(CouncilMember).default([]).describe("Per-member role and outcome."),
93
+ })
94
+ .strict()
95
+ .describe("Council membership + merge disclosure for a --council plan run.");
96
+ /** THE single derivation authority for plan readiness (declared per the v3
97
+ * plan-lifecycle decision): every surface consumes this projection of
98
+ * final/questions.json; nothing re-parses plan text. */
99
+ export function derivePlanReadiness(artifact) {
100
+ if (artifact.parse === "none_found") {
101
+ return { state: "unverified", questionCount: 0 };
102
+ }
103
+ return artifact.questions.length === 0
104
+ ? { state: "ready", questionCount: 0 }
105
+ : { state: "needs_answers", questionCount: artifact.questions.length };
106
+ }
107
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}
@@ -28,21 +28,25 @@ export type OutputReadyState = z.infer<typeof OutputReadyState>;
28
28
  export declare const ProviderFamily: z.ZodEnum<["openai", "anthropic", "google", "cursor", "opencode", "xai", "local", "unknown"]>;
29
29
  export type ProviderFamily = z.infer<typeof ProviderFamily>;
30
30
  /**
31
- * Canonical modes (v0.9 collapse, BREAKING): the 9 v0.8 ids shrank to 5
32
- * intents-on-a-thread. The old engine strategies became FLAGS, not modes:
33
- * `best_of_n` -> agent + n, `max_attempts` -> agent + attempts,
34
- * `until_clean` -> agent + until_clean, `create` -> agent + create,
35
- * `explore` -> audit + swarm, `readonly_audit` -> audit. Old ids hard-error
36
- * at every wire boundary (Bible: modes are canonical and breaking, never
37
- * silent aliases). `orchestrate` is the autonomous coordinator intent.
31
+ * Canonical modes (v3.0.0 collapse, BREAKING): three conversation intents —
32
+ * ask (read-only answer; `deep_scan` widens it into the bounded multi-scout
33
+ * research sweep that used to be `audit --swarm`/`explore`), plan
34
+ * (read-only planning), agent (writes). Engine strategies remain FLAGS on a
35
+ * mode, never modes: `n` (best-of race width / deep-scan width), `attempts`
36
+ * / `until_clean` (agent convergence), `create` (agent from-scratch),
37
+ * `deep_scan` (ask sweep). Retired ids (`audit`, `explore`,
38
+ * `readonly_audit`, `best_of_n`, …) hard-error at every wire boundary
39
+ * (Bible: modes are canonical and breaking, never silent aliases). The former
40
+ * `orchestrate` mode was deleted once its delegation replacement landed
41
+ * (`agent --delegate`, INV-030); the retired verb hard-errors naming it.
38
42
  */
39
- export declare const ModeKind: z.ZodEnum<["ask", "plan", "audit", "agent", "orchestrate"]>;
43
+ export declare const ModeKind: z.ZodEnum<["ask", "plan", "agent"]>;
40
44
  export type ModeKind = z.infer<typeof ModeKind>;
41
45
  /** Canonical intents a harness can be assigned. Roles are intents, never fixed
42
46
  * classes. (`compare`/`arbitrate` were retired in the v0.15 triage: no run
43
47
  * site ever requested them — comparison/arbitration are engine phases, not
44
48
  * harness assignments. `verify` stays for the FinalVerifier.) */
45
- export declare const Intent: z.ZodEnum<["plan", "spec", "implement", "create_from_scratch", "repair", "review", "verify", "synthesize", "explain", "audit", "orchestrate"]>;
49
+ export declare const Intent: z.ZodEnum<["plan", "spec", "implement", "create_from_scratch", "repair", "review", "verify", "synthesize", "explain", "audit"]>;
46
50
  export type Intent = z.infer<typeof Intent>;
47
51
  /**
48
52
  * How a dirty working tree is handled when creating an envelope: `snapshot`
@@ -54,7 +58,7 @@ export type Intent = z.infer<typeof Intent>;
54
58
  export declare const DirtyPolicy: z.ZodEnum<["refuse", "snapshot"]>;
55
59
  export type DirtyPolicy = z.infer<typeof DirtyPolicy>;
56
60
  /**
57
- * A user's preferred auth route for a harness, thread, or the orchestrate planner.
61
+ * A user's preferred auth route for a harness or thread.
58
62
  * `subscription` = native/OAuth session; `api_key` = a stored API key; `auto`
59
63
  * lets the engine pick subscription-first and fall back per policy. This is a
60
64
  * preference, not a secret — the actual key refs live in global/trust config.
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oFAAoF;AACpF,eAAO,MAAM,cAAc,EAAG,CAAU,CAAC;AAEzC,eAAO,MAAM,aAAa,iBAEoD,CAAC;AAE/E,qCAAqC;AACrC,eAAO,MAAM,EAAE,aAA6D,CAAC;AAC7E,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAEpC,iFAAiF;AACjF,eAAO,MAAM,cAAc,aAIgE,CAAC;AAC5F,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,iCAAiC;AACjC,eAAO,MAAM,YAAY,aAA2D,CAAC;AACrF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,wDAAwD;AACxD,eAAO,MAAM,WAAW,aAG4C,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,SAAS,kDAE0D,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,aAAa,+FAIvB,CAAC;AACJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,8CAI/B,CAAC;AACJ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,6DAI1B,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,sFAAsF;AACtF,eAAO,MAAM,cAAc,+FAIxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,6DAIlB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD;;;iEAGiE;AACjE,eAAO,MAAM,MAAM,gJAgBhB,CAAC;AACJ,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,mCAIrB,CAAC;AACJ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,gDAIxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,cAAc,0OAuBxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oFAAoF;AACpF,eAAO,MAAM,cAAc,EAAG,CAAU,CAAC;AAEzC,eAAO,MAAM,aAAa,iBAEoD,CAAC;AAE/E,qCAAqC;AACrC,eAAO,MAAM,EAAE,aAA6D,CAAC;AAC7E,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAEpC,iFAAiF;AACjF,eAAO,MAAM,cAAc,aAIgE,CAAC;AAC5F,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,iCAAiC;AACjC,eAAO,MAAM,YAAY,aAA2D,CAAC;AACrF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,wDAAwD;AACxD,eAAO,MAAM,WAAW,aAG4C,CAAC;AACrE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,SAAS,kDAE0D,CAAC;AACjF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,aAAa,+FAIvB,CAAC;AACJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,8CAI/B,CAAC;AACJ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,6DAI1B,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,sFAAsF;AACtF,eAAO,MAAM,cAAc,+FAIxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,qCAIlB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD;;;iEAGiE;AACjE,eAAO,MAAM,MAAM,iIAehB,CAAC;AACJ,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,mCAIrB,CAAC;AACJ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,gDAIxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,cAAc,0OAuBxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -38,17 +38,21 @@ export const ProviderFamily = z
38
38
  .enum(["openai", "anthropic", "google", "cursor", "opencode", "xai", "local", "unknown"])
39
39
  .describe('Vendor/provider family a harness routes to, used for route-diversity reasoning; open-ended via "unknown".');
40
40
  /**
41
- * Canonical modes (v0.9 collapse, BREAKING): the 9 v0.8 ids shrank to 5
42
- * intents-on-a-thread. The old engine strategies became FLAGS, not modes:
43
- * `best_of_n` -> agent + n, `max_attempts` -> agent + attempts,
44
- * `until_clean` -> agent + until_clean, `create` -> agent + create,
45
- * `explore` -> audit + swarm, `readonly_audit` -> audit. Old ids hard-error
46
- * at every wire boundary (Bible: modes are canonical and breaking, never
47
- * silent aliases). `orchestrate` is the autonomous coordinator intent.
41
+ * Canonical modes (v3.0.0 collapse, BREAKING): three conversation intents —
42
+ * ask (read-only answer; `deep_scan` widens it into the bounded multi-scout
43
+ * research sweep that used to be `audit --swarm`/`explore`), plan
44
+ * (read-only planning), agent (writes). Engine strategies remain FLAGS on a
45
+ * mode, never modes: `n` (best-of race width / deep-scan width), `attempts`
46
+ * / `until_clean` (agent convergence), `create` (agent from-scratch),
47
+ * `deep_scan` (ask sweep). Retired ids (`audit`, `explore`,
48
+ * `readonly_audit`, `best_of_n`, …) hard-error at every wire boundary
49
+ * (Bible: modes are canonical and breaking, never silent aliases). The former
50
+ * `orchestrate` mode was deleted once its delegation replacement landed
51
+ * (`agent --delegate`, INV-030); the retired verb hard-errors naming it.
48
52
  */
49
53
  export const ModeKind = z
50
- .enum(["ask", "plan", "audit", "agent", "orchestrate"])
51
- .describe("Canonical run mode: ask, plan, and audit are read-only; agent writes; orchestrate is the autonomous coordinator intent. Engine strategies (race, attempts, swarm, create) are flags on a mode, not modes.");
54
+ .enum(["ask", "plan", "agent"])
55
+ .describe("Canonical run mode: ask and plan are read-only, agent writes. Engine strategies (race width, attempts, deep_scan, create, delegate) are flags on a mode, not modes.");
52
56
  /** Canonical intents a harness can be assigned. Roles are intents, never fixed
53
57
  * classes. (`compare`/`arbitrate` were retired in the v0.15 triage: no run
54
58
  * site ever requested them — comparison/arbitration are engine phases, not
@@ -65,7 +69,6 @@ export const Intent = z
65
69
  "synthesize",
66
70
  "explain",
67
71
  "audit",
68
- "orchestrate",
69
72
  ])
70
73
  .describe("Canonical intent a harness can be assigned for a session (roles are intents, never fixed classes).");
71
74
  /**
@@ -79,7 +82,7 @@ export const DirtyPolicy = z
79
82
  .enum(["refuse", "snapshot"])
80
83
  .describe("How a dirty working tree is handled when creating an envelope: snapshot captures the dirty state as the base SHA without touching the live tree; refuse fails loudly.");
81
84
  /**
82
- * A user's preferred auth route for a harness, thread, or the orchestrate planner.
85
+ * A user's preferred auth route for a harness or thread.
83
86
  * `subscription` = native/OAuth session; `api_key` = a stored API key; `auto`
84
87
  * lets the engine pick subscription-first and fall back per policy. This is a
85
88
  * preference, not a secret — the actual key refs live in global/trust config.
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}