@claudexor/schema 1.0.1 → 2.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 (248) hide show
  1. package/dist/agent-capabilities.d.ts +88 -16
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +49 -18
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/apply-eligibility.d.ts.map +1 -1
  6. package/dist/apply-eligibility.js +22 -6
  7. package/dist/apply-eligibility.js.map +1 -1
  8. package/dist/attachment.d.ts +113 -48
  9. package/dist/attachment.d.ts.map +1 -1
  10. package/dist/attachment.js +60 -45
  11. package/dist/attachment.js.map +1 -1
  12. package/dist/auth.d.ts +1423 -0
  13. package/dist/auth.d.ts.map +1 -0
  14. package/dist/auth.js +317 -0
  15. package/dist/auth.js.map +1 -0
  16. package/dist/budget.d.ts +133 -16
  17. package/dist/budget.d.ts.map +1 -1
  18. package/dist/budget.js +65 -22
  19. package/dist/budget.js.map +1 -1
  20. package/dist/config.d.ts +449 -115
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +114 -41
  23. package/dist/config.js.map +1 -1
  24. package/dist/context.d.ts +6 -6
  25. package/dist/context.d.ts.map +1 -1
  26. package/dist/context.js +31 -7
  27. package/dist/context.js.map +1 -1
  28. package/dist/control-operation-responses.d.ts +1172 -0
  29. package/dist/control-operation-responses.d.ts.map +1 -0
  30. package/dist/control-operation-responses.js +35 -0
  31. package/dist/control-operation-responses.js.map +1 -0
  32. package/dist/control-run-detail.d.ts +443 -242
  33. package/dist/control-run-detail.d.ts.map +1 -1
  34. package/dist/control-run-detail.js +72 -17
  35. package/dist/control-run-detail.js.map +1 -1
  36. package/dist/control-run-retry.d.ts +88 -0
  37. package/dist/control-run-retry.d.ts.map +1 -0
  38. package/dist/control-run-retry.js +40 -0
  39. package/dist/control-run-retry.js.map +1 -0
  40. package/dist/control-run-scope.d.ts +25 -0
  41. package/dist/control-run-scope.d.ts.map +1 -0
  42. package/dist/control-run-scope.js +22 -0
  43. package/dist/control-run-scope.js.map +1 -0
  44. package/dist/control-secret.d.ts +90 -0
  45. package/dist/control-secret.d.ts.map +1 -0
  46. package/dist/control-secret.js +35 -0
  47. package/dist/control-secret.js.map +1 -0
  48. package/dist/control-spec.d.ts +592 -0
  49. package/dist/control-spec.d.ts.map +1 -0
  50. package/dist/control-spec.js +85 -0
  51. package/dist/control-spec.js.map +1 -0
  52. package/dist/control-thread-apply.d.ts +175 -0
  53. package/dist/control-thread-apply.d.ts.map +1 -0
  54. package/dist/control-thread-apply.js +31 -0
  55. package/dist/control-thread-apply.js.map +1 -0
  56. package/dist/control-trust.d.ts +74 -10
  57. package/dist/control-trust.d.ts.map +1 -1
  58. package/dist/control-trust.js +31 -11
  59. package/dist/control-trust.js.map +1 -1
  60. package/dist/control.d.ts +1391 -878
  61. package/dist/control.d.ts.map +1 -1
  62. package/dist/control.js +468 -310
  63. package/dist/control.js.map +1 -1
  64. package/dist/decision.d.ts +10 -10
  65. package/dist/decision.d.ts.map +1 -1
  66. package/dist/decision.js +62 -15
  67. package/dist/decision.js.map +1 -1
  68. package/dist/delivery.d.ts +99 -0
  69. package/dist/delivery.d.ts.map +1 -0
  70. package/dist/delivery.js +19 -0
  71. package/dist/delivery.js.map +1 -0
  72. package/dist/events.d.ts +25 -2
  73. package/dist/events.d.ts.map +1 -1
  74. package/dist/events.js +25 -4
  75. package/dist/events.js.map +1 -1
  76. package/dist/gate.d.ts +2 -2
  77. package/dist/gate.d.ts.map +1 -1
  78. package/dist/gate.js +25 -5
  79. package/dist/gate.js.map +1 -1
  80. package/dist/harness.d.ts +558 -175
  81. package/dist/harness.d.ts.map +1 -1
  82. package/dist/harness.js +207 -82
  83. package/dist/harness.js.map +1 -1
  84. package/dist/index.d.ts +15 -0
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +15 -0
  87. package/dist/index.js.map +1 -1
  88. package/dist/operation.d.ts +185 -0
  89. package/dist/operation.d.ts.map +1 -0
  90. package/dist/operation.js +50 -0
  91. package/dist/operation.js.map +1 -0
  92. package/dist/orchestrate.d.ts +127 -22
  93. package/dist/orchestrate.d.ts.map +1 -1
  94. package/dist/orchestrate.js +61 -7
  95. package/dist/orchestrate.js.map +1 -1
  96. package/dist/primitives.d.ts.map +1 -1
  97. package/dist/primitives.js +4 -1
  98. package/dist/primitives.js.map +1 -1
  99. package/dist/problem.d.ts +29 -0
  100. package/dist/problem.d.ts.map +1 -0
  101. package/dist/problem.js +17 -0
  102. package/dist/problem.js.map +1 -0
  103. package/dist/project.d.ts +97 -0
  104. package/dist/project.d.ts.map +1 -0
  105. package/dist/project.js +27 -0
  106. package/dist/project.js.map +1 -0
  107. package/dist/quota.d.ts +251 -0
  108. package/dist/quota.d.ts.map +1 -0
  109. package/dist/quota.js +46 -0
  110. package/dist/quota.js.map +1 -0
  111. package/dist/raw.d.ts +195 -0
  112. package/dist/raw.d.ts.map +1 -0
  113. package/dist/raw.js +58 -0
  114. package/dist/raw.js.map +1 -0
  115. package/dist/recovery.d.ts +515 -0
  116. package/dist/recovery.d.ts.map +1 -0
  117. package/dist/recovery.js +93 -0
  118. package/dist/recovery.js.map +1 -0
  119. package/dist/request-requirements.d.ts +36 -0
  120. package/dist/request-requirements.d.ts.map +1 -0
  121. package/dist/request-requirements.js +26 -0
  122. package/dist/request-requirements.js.map +1 -0
  123. package/dist/review.d.ts +26 -26
  124. package/dist/review.d.ts.map +1 -1
  125. package/dist/review.js +50 -10
  126. package/dist/review.js.map +1 -1
  127. package/dist/route.d.ts +10 -10
  128. package/dist/route.d.ts.map +1 -1
  129. package/dist/route.js +19 -4
  130. package/dist/route.js.map +1 -1
  131. package/dist/setup.d.ts +9766 -0
  132. package/dist/setup.d.ts.map +1 -0
  133. package/dist/setup.js +450 -0
  134. package/dist/setup.js.map +1 -0
  135. package/dist/spec.d.ts +174 -57
  136. package/dist/spec.d.ts.map +1 -1
  137. package/dist/spec.js +69 -16
  138. package/dist/spec.js.map +1 -1
  139. package/dist/surface-run-controls.d.ts.map +1 -1
  140. package/dist/surface-run-controls.js +25 -21
  141. package/dist/surface-run-controls.js.map +1 -1
  142. package/dist/task.d.ts +1560 -58
  143. package/dist/task.d.ts.map +1 -1
  144. package/dist/task.js +97 -18
  145. package/dist/task.js.map +1 -1
  146. package/dist/telemetry.d.ts +233 -60
  147. package/dist/telemetry.d.ts.map +1 -1
  148. package/dist/telemetry.js +97 -15
  149. package/dist/telemetry.js.map +1 -1
  150. package/dist/thread.d.ts +68 -41
  151. package/dist/thread.d.ts.map +1 -1
  152. package/dist/thread.js +45 -11
  153. package/dist/thread.js.map +1 -1
  154. package/dist/workproduct.d.ts +3 -3
  155. package/dist/workproduct.d.ts.map +1 -1
  156. package/dist/workproduct.js.map +1 -1
  157. package/dist/workspace.d.ts +1 -1
  158. package/dist/workspace.d.ts.map +1 -1
  159. package/dist/workspace.js +12 -3
  160. package/dist/workspace.js.map +1 -1
  161. package/generated/AgentCapabilityCatalog.schema.json +53 -11
  162. package/generated/BudgetLease.schema.json +55 -6
  163. package/generated/BudgetObservation.schema.json +28 -7
  164. package/generated/ConformanceReport.schema.json +49 -0
  165. package/generated/ControlApplyCheckResponse.schema.json +34 -0
  166. package/generated/ControlArtifactListResponse.schema.json +57 -0
  167. package/generated/ControlAuthReadinessRefreshRequest.schema.json +38 -0
  168. package/generated/ControlAuthReadinessRefreshResponse.schema.json +85 -0
  169. package/generated/ControlDeliveryResponse.schema.json +136 -0
  170. package/generated/ControlHandshakeRequest.schema.json +26 -0
  171. package/generated/ControlHandshakeResponse.schema.json +30 -0
  172. package/generated/ControlHarnessListResponse.schema.json +103 -12
  173. package/generated/ControlHarnessSettingsPatch.schema.json +0 -12
  174. package/generated/ControlJournalEvent.schema.json +42 -0
  175. package/generated/ControlJournalExportReceipt.schema.json +49 -0
  176. package/generated/ControlJournalInspection.schema.json +149 -0
  177. package/generated/ControlJournalQuarantineReceipt.schema.json +55 -0
  178. package/generated/ControlJournalQuarantineRequest.schema.json +24 -0
  179. package/generated/ControlJournalValidation.schema.json +181 -0
  180. package/generated/ControlOperationCatalog.schema.json +128 -0
  181. package/generated/ControlOperationDescriptor.schema.json +110 -0
  182. package/generated/ControlProblem.schema.json +59 -0
  183. package/generated/ControlProject.schema.json +42 -0
  184. package/generated/ControlProjectListResponse.schema.json +54 -0
  185. package/generated/ControlProjectRegisterRequest.schema.json +19 -0
  186. package/generated/ControlProjectRelinkRequest.schema.json +19 -0
  187. package/generated/ControlQueuedRunInfo.schema.json +4 -2
  188. package/generated/ControlQuotaResponse.schema.json +176 -0
  189. package/generated/ControlResource.schema.json +59 -0
  190. package/generated/ControlRunAgainDraft.schema.json +499 -0
  191. package/generated/ControlRunDetail.schema.json +197 -30
  192. package/generated/ControlRunListResponse.schema.json +797 -0
  193. package/generated/ControlRunRetryResponse.schema.json +54 -0
  194. package/generated/ControlRunStartRequest.schema.json +83 -55
  195. package/generated/ControlRunStartResponse.schema.json +78 -0
  196. package/generated/ControlRunSummary.schema.json +140 -20
  197. package/generated/ControlSecretListResponse.schema.json +8 -14
  198. package/generated/ControlSecretMutationResponse.schema.json +32 -0
  199. package/generated/ControlSecretSetRequest.schema.json +27 -0
  200. package/generated/ControlSettingsSnapshot.schema.json +118 -44
  201. package/generated/ControlSettingsUpdateRequest.schema.json +110 -40
  202. package/generated/ControlSetupJob.schema.json +763 -65
  203. package/generated/ControlSetupJobCreateRequest.schema.json +11 -13
  204. package/generated/ControlSetupJobEvent.schema.json +861 -5
  205. package/generated/ControlSetupJobListFilter.schema.json +35 -0
  206. package/generated/ControlSetupJobListResponse.schema.json +763 -65
  207. package/generated/ControlSetupJobSnapshot.schema.json +870 -0
  208. package/generated/ControlSpecAnswersRequest.schema.json +74 -0
  209. package/generated/ControlSpecQuestionsRequest.schema.json +128 -2
  210. package/generated/ControlSpecSession.schema.json +249 -0
  211. package/generated/ControlSpecSessionListResponse.schema.json +261 -0
  212. package/generated/ControlThread.schema.json +20 -2
  213. package/generated/ControlThreadApplyResponse.schema.json +139 -0
  214. package/generated/ControlThreadDetail.schema.json +32 -4
  215. package/generated/ControlThreadListResponse.schema.json +20 -2
  216. package/generated/ControlThreadTurnRequest.schema.json +373 -0
  217. package/generated/ControlThreadTurnResponse.schema.json +73 -0
  218. package/generated/ControlThreadUpdateRequest.schema.json +1 -1
  219. package/generated/ControlTrustListResponse.schema.json +6 -0
  220. package/generated/ControlTrustState.schema.json +6 -0
  221. package/generated/ControlTrustUpdateRequest.schema.json +65 -3
  222. package/generated/ControlUploadCreateRequest.schema.json +37 -0
  223. package/generated/ControlUploadFinalizeRequest.schema.json +17 -0
  224. package/generated/ControlUploadStatus.schema.json +40 -0
  225. package/generated/DecisionRecord.schema.json +6 -3
  226. package/generated/GlobalConfig.schema.json +105 -58
  227. package/generated/HarnessEvent.schema.json +201 -10
  228. package/generated/HarnessManifest.schema.json +63 -12
  229. package/generated/HarnessStatusDto.schema.json +103 -12
  230. package/generated/OrchestrateContract.schema.json +32 -6
  231. package/generated/OrchestratePlan.schema.json +20 -0
  232. package/generated/OrchestratePlanProgress.schema.json +61 -0
  233. package/generated/PaidBudget.schema.json +42 -0
  234. package/generated/Project.schema.json +45 -0
  235. package/generated/ProjectConfig.schema.json +45 -18
  236. package/generated/RawContextPacket.schema.json +184 -0
  237. package/generated/RawGitPatchEnvelope.schema.json +70 -0
  238. package/generated/RunTelemetry.schema.json +80 -0
  239. package/generated/SecretMetadata.schema.json +4 -7
  240. package/generated/SpecPack.schema.json +118 -7
  241. package/generated/TaskContract.schema.json +159 -26
  242. package/generated/TestCommandInvocation.schema.json +45 -0
  243. package/generated/Thread.schema.json +62 -6
  244. package/generated/ThreadTurn.schema.json +24 -11
  245. package/generated/TrustConfig.schema.json +77 -0
  246. package/package.json +1 -1
  247. package/generated/ControlSetupJobConfirmRequest.schema.json +0 -18
  248. package/generated/ControlSpecFreezeRequest.schema.json +0 -83
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDjC,CAAC;AACJ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
package/dist/auth.js ADDED
@@ -0,0 +1,317 @@
1
+ import { z } from "zod";
2
+ import { Id } from "./primitives.js";
3
+ const AuthTimestamp = z.string().datetime({ offset: true });
4
+ const Sha256Hex = z.string().regex(/^[a-f0-9]{64}$/);
5
+ /** What credential behavior the caller asked Claudexor to enforce. */
6
+ export const AuthRequest = z
7
+ .enum(["subscription", "api_key", "auto"])
8
+ .describe("Requested credential behavior: exact subscription, exact managed API key, or policy-governed auto selection.");
9
+ /** The concrete credential transport selected for one real harness execution. */
10
+ export const CredentialRoute = z
11
+ .enum(["vendor_native", "managed_api_key", "local"])
12
+ .describe("Effective credential route: vendor-owned native session, Claudexor-managed API key, or credential-free local execution.");
13
+ export const AuthAvailability = z.enum(["available", "unavailable", "unknown"]);
14
+ export const AuthVerification = z.enum(["passed", "failed", "not_run"]);
15
+ export const AuthSourceKind = z
16
+ .enum([
17
+ "native_session",
18
+ "oauth_token_env",
19
+ "api_key_env",
20
+ "api_key_flag",
21
+ "provider_auth_file",
22
+ "none",
23
+ ])
24
+ .describe("Concrete credential source used or probed by a harness.");
25
+ export const AuthSourceReadiness = z
26
+ .object({
27
+ source: AuthSourceKind,
28
+ availability: AuthAvailability,
29
+ verification: AuthVerification,
30
+ detail: z.string().optional().describe("Redacted human-readable source evidence."),
31
+ })
32
+ .strict()
33
+ .describe("Doctor-backed readiness for one exact credential source.");
34
+ /**
35
+ * Exact point-in-time readiness request for one harness credential source.
36
+ * The harness id is carried by the route/service input, so the body cannot
37
+ * disagree with the selected adapter. A refresh always bypasses readiness
38
+ * caches; there is intentionally no staged `fresh` knob.
39
+ */
40
+ export const ControlAuthReadinessRefreshRequest = z
41
+ .object({
42
+ authRequest: AuthRequest,
43
+ source: AuthSourceKind,
44
+ })
45
+ .strict()
46
+ .describe("Request to refresh one exact harness authentication source without probing unrelated routes.");
47
+ /**
48
+ * Source-scoped readiness must remain separate from the aggregate harness
49
+ * catalog: it proves only the requested source and must not overwrite other
50
+ * sources, intents, model truth, or aggregate health.
51
+ */
52
+ export const ControlAuthReadinessRefreshResponse = z
53
+ .object({
54
+ harnessId: Id,
55
+ authRequest: AuthRequest,
56
+ requestedSource: AuthSourceKind,
57
+ observedAt: AuthTimestamp,
58
+ readiness: AuthSourceReadiness,
59
+ })
60
+ .strict()
61
+ .superRefine((value, context) => {
62
+ if (value.readiness.source !== value.requestedSource) {
63
+ context.addIssue({
64
+ code: z.ZodIssueCode.custom,
65
+ path: ["readiness", "source"],
66
+ message: "auth readiness response source must match the exact requested source",
67
+ });
68
+ }
69
+ })
70
+ .describe("Point-in-time readiness evidence for one exact harness credential source.");
71
+ /** Billing truth is deliberately independent from credential transport. */
72
+ export const BillingKnowledge = z
73
+ .enum(["proven_zero", "subscription_entitlement", "metered", "unknown"])
74
+ .describe("What is actually known about incremental billing; a native credential route alone never proves entitlement or zero cost.");
75
+ export const CostKnowledge = z
76
+ .enum(["exact", "estimated", "unknown"])
77
+ .describe("Quality of incremental-cash cost evidence for an operation.");
78
+ export const AuthCapabilitySelectionReason = z.enum([
79
+ "exact_requested_route",
80
+ "adapter_unavailable",
81
+ "request_mismatch",
82
+ "route_missing",
83
+ "route_mismatch",
84
+ "source_missing",
85
+ "source_mismatch",
86
+ "harness_error",
87
+ "adapter_error",
88
+ "missing_completion",
89
+ "response_mismatch",
90
+ "scratch_mutated",
91
+ "protocol_violation",
92
+ "adapter_identity_mismatch",
93
+ "cancelled",
94
+ ]);
95
+ /** Persisted and shown before a setup flow is allowed to spend a real model turn. */
96
+ export const AuthSmokeDisclosure = z
97
+ .object({
98
+ schemaVersion: z.literal(1),
99
+ protocolVersion: z.literal(1),
100
+ harness: Id,
101
+ requested: AuthRequest,
102
+ requiredRoute: CredentialRoute,
103
+ requiredSource: AuthSourceKind,
104
+ networkScope: z.literal("selected_harness_only"),
105
+ billingKnowledge: BillingKnowledge,
106
+ incrementalCostKnowledge: CostKnowledge,
107
+ mayConsumeQuota: z.boolean(),
108
+ generatedAt: AuthTimestamp,
109
+ })
110
+ .strict()
111
+ .superRefine((value, context) => {
112
+ if (value.requiredRoute === "vendor_native") {
113
+ if (value.billingKnowledge !== "unknown" ||
114
+ value.incrementalCostKnowledge !== "unknown" ||
115
+ !value.mayConsumeQuota) {
116
+ context.addIssue({
117
+ code: z.ZodIssueCode.custom,
118
+ message: "a vendor-native smoke must disclose unknown billing/cost and possible quota consumption",
119
+ });
120
+ }
121
+ }
122
+ })
123
+ .describe("Pre-execution disclosure for the exact same-harness capability smoke required by auth setup.");
124
+ /**
125
+ * Immutable, redacted proof that the selected adapter completed a real
126
+ * same-harness round trip on the exact requested credential route. Model text
127
+ * is never stored: responseDigest binds the receipt to the nonce response.
128
+ */
129
+ export const AuthCapabilityStreamEvidence = z
130
+ .object({
131
+ startedEvents: z.number().int().nonnegative(),
132
+ completedEvents: z.number().int().nonnegative(),
133
+ errorEvents: z.number().int().nonnegative(),
134
+ unexpectedToolEvents: z.number().int().nonnegative(),
135
+ interactionEvents: z.number().int().nonnegative(),
136
+ sessionMismatchEvents: z.number().int().nonnegative(),
137
+ eventsAfterCompleted: z.number().int().nonnegative(),
138
+ aborted: z.boolean(),
139
+ })
140
+ .strict();
141
+ export const AuthCapabilityReceipt = z
142
+ .object({
143
+ receiptId: Id,
144
+ attemptId: Id,
145
+ harness: Id,
146
+ requested: AuthRequest,
147
+ requiredRoute: CredentialRoute,
148
+ requiredSource: AuthSourceKind,
149
+ effective: CredentialRoute.nullable(),
150
+ effectiveSource: AuthSourceKind.nullable(),
151
+ selectionReason: AuthCapabilitySelectionReason,
152
+ availability: AuthAvailability,
153
+ verification: AuthVerification,
154
+ billingKnowledge: BillingKnowledge,
155
+ costKnowledge: CostKnowledge,
156
+ costUsd: z.number().nonnegative().optional(),
157
+ startedAt: AuthTimestamp,
158
+ completedAt: AuthTimestamp,
159
+ challengeDigest: Sha256Hex,
160
+ requestDigest: Sha256Hex,
161
+ responseDigest: Sha256Hex,
162
+ streamDigest: Sha256Hex,
163
+ scratchBeforeDigest: Sha256Hex,
164
+ scratchAfterDigest: Sha256Hex,
165
+ stream: AuthCapabilityStreamEvidence,
166
+ evidenceRefs: z.array(z.string().min(1)),
167
+ })
168
+ .strict()
169
+ .superRefine((value, context) => {
170
+ if (value.verification === "passed") {
171
+ if (value.availability !== "available") {
172
+ context.addIssue({
173
+ code: z.ZodIssueCode.custom,
174
+ path: ["availability"],
175
+ message: "passed verification requires available credentials",
176
+ });
177
+ }
178
+ if (value.effective !== value.requiredRoute) {
179
+ context.addIssue({
180
+ code: z.ZodIssueCode.custom,
181
+ path: ["effective"],
182
+ message: "passed verification requires the exact requested credential route",
183
+ });
184
+ }
185
+ if (value.effectiveSource !== value.requiredSource) {
186
+ context.addIssue({
187
+ code: z.ZodIssueCode.custom,
188
+ path: ["effectiveSource"],
189
+ message: "passed verification requires the exact requested credential source",
190
+ });
191
+ }
192
+ if (value.selectionReason !== "exact_requested_route") {
193
+ context.addIssue({
194
+ code: z.ZodIssueCode.custom,
195
+ path: ["selectionReason"],
196
+ message: "passed verification requires exact_requested_route evidence",
197
+ });
198
+ }
199
+ if (value.responseDigest !== value.challengeDigest) {
200
+ context.addIssue({
201
+ code: z.ZodIssueCode.custom,
202
+ path: ["responseDigest"],
203
+ message: "passed verification response must match the persisted challenge digest",
204
+ });
205
+ }
206
+ if (value.stream.startedEvents !== 1 ||
207
+ value.stream.completedEvents !== 1 ||
208
+ value.stream.errorEvents !== 0 ||
209
+ value.stream.unexpectedToolEvents !== 0 ||
210
+ value.stream.sessionMismatchEvents !== 0 ||
211
+ value.stream.interactionEvents !== 0 ||
212
+ value.stream.eventsAfterCompleted !== 0 ||
213
+ value.stream.aborted) {
214
+ context.addIssue({
215
+ code: z.ZodIssueCode.custom,
216
+ path: ["stream"],
217
+ message: "passed verification requires one clean started/completed stream",
218
+ });
219
+ }
220
+ if (value.scratchBeforeDigest !== value.scratchAfterDigest) {
221
+ context.addIssue({
222
+ code: z.ZodIssueCode.custom,
223
+ path: ["scratchAfterDigest"],
224
+ message: "passed verification requires an unchanged external scratch tree",
225
+ });
226
+ }
227
+ }
228
+ if (Date.parse(value.completedAt) < Date.parse(value.startedAt)) {
229
+ context.addIssue({
230
+ code: z.ZodIssueCode.custom,
231
+ path: ["completedAt"],
232
+ message: "receipt completion cannot precede its start",
233
+ });
234
+ }
235
+ if (value.requiredRoute === "vendor_native" &&
236
+ (value.billingKnowledge !== "unknown" || value.costKnowledge !== "unknown")) {
237
+ context.addIssue({
238
+ code: z.ZodIssueCode.custom,
239
+ message: "vendor-native route evidence alone cannot prove billing or incremental cash cost",
240
+ });
241
+ }
242
+ if (value.costKnowledge === "unknown" && value.costUsd !== undefined) {
243
+ context.addIssue({
244
+ code: z.ZodIssueCode.custom,
245
+ path: ["costUsd"],
246
+ message: "unknown cost must not fabricate a USD value",
247
+ });
248
+ }
249
+ if (value.costKnowledge !== "unknown" && value.costUsd === undefined) {
250
+ context.addIssue({
251
+ code: z.ZodIssueCode.custom,
252
+ path: ["costUsd"],
253
+ message: "known or estimated cost requires a USD value",
254
+ });
255
+ }
256
+ })
257
+ .describe("Immutable result of one exact-route same-harness capability smoke.");
258
+ const AuthCapabilityBindingShape = {
259
+ attemptId: Id,
260
+ challengeDigest: Sha256Hex,
261
+ requestDigest: Sha256Hex,
262
+ disclosure: AuthSmokeDisclosure,
263
+ };
264
+ export const AuthCapabilityBinding = z.object(AuthCapabilityBindingShape).strict();
265
+ export const AuthCapabilityLifecycle = z
266
+ .discriminatedUnion("state", [
267
+ z.object({ ...AuthCapabilityBindingShape, state: z.literal("disclosed") }).strict(),
268
+ z
269
+ .object({
270
+ ...AuthCapabilityBindingShape,
271
+ state: z.literal("running"),
272
+ startedAt: AuthTimestamp,
273
+ })
274
+ .strict(),
275
+ z
276
+ .object({
277
+ ...AuthCapabilityBindingShape,
278
+ state: z.literal("completed"),
279
+ startedAt: AuthTimestamp,
280
+ completedAt: AuthTimestamp,
281
+ receipt: AuthCapabilityReceipt,
282
+ })
283
+ .strict(),
284
+ z
285
+ .object({
286
+ ...AuthCapabilityBindingShape,
287
+ state: z.literal("interrupted_unknown"),
288
+ startedAt: AuthTimestamp,
289
+ interruptedAt: AuthTimestamp,
290
+ })
291
+ .strict(),
292
+ ])
293
+ .superRefine((value, context) => {
294
+ if ("startedAt" in value &&
295
+ Date.parse(value.startedAt) < Date.parse(value.disclosure.generatedAt)) {
296
+ context.addIssue({
297
+ code: z.ZodIssueCode.custom,
298
+ path: ["startedAt"],
299
+ message: "capability smoke cannot start before its disclosure",
300
+ });
301
+ }
302
+ if (value.state === "completed") {
303
+ if (value.receipt.attemptId !== value.attemptId ||
304
+ value.receipt.challengeDigest !== value.challengeDigest ||
305
+ value.receipt.requestDigest !== value.requestDigest ||
306
+ value.receipt.startedAt !== value.startedAt ||
307
+ value.receipt.completedAt !== value.completedAt) {
308
+ context.addIssue({
309
+ code: z.ZodIssueCode.custom,
310
+ path: ["receipt"],
311
+ message: "completed lifecycle receipt must match its durable binding and timestamps",
312
+ });
313
+ }
314
+ }
315
+ })
316
+ .describe("Single durable auth-smoke lifecycle: disclosed, running, completed, or interrupted_unknown.");
317
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/budget.d.ts CHANGED
@@ -1,8 +1,89 @@
1
1
  import { z } from "zod";
2
+ export declare const PaidBudget: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
3
+ kind: z.ZodLiteral<"unlimited">;
4
+ }, "strict", z.ZodTypeAny, {
5
+ kind: "unlimited";
6
+ }, {
7
+ kind: "unlimited";
8
+ }>, z.ZodObject<{
9
+ kind: z.ZodLiteral<"finite">;
10
+ maxUsd: z.ZodNumber;
11
+ }, "strict", z.ZodTypeAny, {
12
+ kind: "finite";
13
+ maxUsd: number;
14
+ }, {
15
+ kind: "finite";
16
+ maxUsd: number;
17
+ }>]>;
18
+ export type PaidBudget = z.infer<typeof PaidBudget>;
19
+ export declare const CostEvidence: z.ZodObject<{
20
+ knowledge: z.ZodEnum<["exact", "estimated", "unknown"]>;
21
+ billing: z.ZodEnum<["proven_zero", "subscription_entitlement", "metered", "unknown"]>;
22
+ source: z.ZodString;
23
+ provenance: z.ZodArray<z.ZodString, "many">;
24
+ estimatedUsd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
25
+ }, "strict", z.ZodTypeAny, {
26
+ source: string;
27
+ knowledge: "exact" | "unknown" | "estimated";
28
+ billing: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
29
+ provenance: string[];
30
+ estimatedUsd: number | null;
31
+ }, {
32
+ source: string;
33
+ knowledge: "exact" | "unknown" | "estimated";
34
+ billing: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
35
+ provenance: string[];
36
+ estimatedUsd?: number | null | undefined;
37
+ }>;
38
+ export type CostEvidence = z.infer<typeof CostEvidence>;
2
39
  export declare const AuthMode: z.ZodEnum<["local_session", "api_key", "unknown"]>;
3
40
  export type AuthMode = z.infer<typeof AuthMode>;
4
- export declare const Portfolio: z.ZodEnum<["daily-rich", "balanced", "cheapest", "strongest", "burn", "subscription-first", "api-overflow", "conserve-claude", "conserve-codex"]>;
5
- export type Portfolio = z.infer<typeof Portfolio>;
41
+ export declare const RoutingGoal: z.ZodEnum<["auto", "quality", "economy"]>;
42
+ export type RoutingGoal = z.infer<typeof RoutingGoal>;
43
+ export declare const PaidFallback: z.ZodEnum<["never", "when_unavailable", "allowed_within_cap"]>;
44
+ export type PaidFallback = z.infer<typeof PaidFallback>;
45
+ export declare const QualityTierRoute: z.ZodObject<{
46
+ harness: z.ZodString;
47
+ model: z.ZodString;
48
+ effort: z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>;
49
+ }, "strict", z.ZodTypeAny, {
50
+ harness: string;
51
+ model: string;
52
+ effort: "low" | "medium" | "high" | "xhigh" | "max";
53
+ }, {
54
+ harness: string;
55
+ model: string;
56
+ effort: "low" | "medium" | "high" | "xhigh" | "max";
57
+ }>;
58
+ export type QualityTierRoute = z.infer<typeof QualityTierRoute>;
59
+ export declare const QualityTier: z.ZodArray<z.ZodObject<{
60
+ harness: z.ZodString;
61
+ model: z.ZodString;
62
+ effort: z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>;
63
+ }, "strict", z.ZodTypeAny, {
64
+ harness: string;
65
+ model: string;
66
+ effort: "low" | "medium" | "high" | "xhigh" | "max";
67
+ }, {
68
+ harness: string;
69
+ model: string;
70
+ effort: "low" | "medium" | "high" | "xhigh" | "max";
71
+ }>, "many">;
72
+ export type QualityTier = z.infer<typeof QualityTier>;
73
+ export declare const QualityTierSet: z.ZodDefault<z.ZodRecord<z.ZodEnum<["plan", "spec", "implement", "create_from_scratch", "repair", "review", "verify", "synthesize", "explain", "audit", "orchestrate"]>, z.ZodArray<z.ZodArray<z.ZodObject<{
74
+ harness: z.ZodString;
75
+ model: z.ZodString;
76
+ effort: z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>;
77
+ }, "strict", z.ZodTypeAny, {
78
+ harness: string;
79
+ model: string;
80
+ effort: "low" | "medium" | "high" | "xhigh" | "max";
81
+ }, {
82
+ harness: string;
83
+ model: string;
84
+ effort: "low" | "medium" | "high" | "xhigh" | "max";
85
+ }>, "many">, "many">>>;
86
+ export type QualityTierSet = z.infer<typeof QualityTierSet>;
6
87
  /** A pre-call reservation. Created before work; settled after. Never post-hoc only. */
7
88
  export declare const BudgetLease: z.ZodObject<{
8
89
  lease_id: z.ZodString;
@@ -11,20 +92,44 @@ export declare const BudgetLease: z.ZodObject<{
11
92
  intent: z.ZodEnum<["plan", "spec", "implement", "create_from_scratch", "repair", "review", "verify", "synthesize", "explain", "audit", "orchestrate"]>;
12
93
  harness_id: z.ZodString;
13
94
  model_hint: z.ZodDefault<z.ZodNullable<z.ZodString>>;
14
- max_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
95
+ cost: z.ZodObject<{
96
+ knowledge: z.ZodEnum<["exact", "estimated", "unknown"]>;
97
+ billing: z.ZodEnum<["proven_zero", "subscription_entitlement", "metered", "unknown"]>;
98
+ source: z.ZodString;
99
+ provenance: z.ZodArray<z.ZodString, "many">;
100
+ estimatedUsd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
101
+ }, "strict", z.ZodTypeAny, {
102
+ source: string;
103
+ knowledge: "exact" | "unknown" | "estimated";
104
+ billing: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
105
+ provenance: string[];
106
+ estimatedUsd: number | null;
107
+ }, {
108
+ source: string;
109
+ knowledge: "exact" | "unknown" | "estimated";
110
+ billing: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
111
+ provenance: string[];
112
+ estimatedUsd?: number | null | undefined;
113
+ }>;
15
114
  reason: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
16
115
  created_at: z.ZodString;
17
116
  state: z.ZodDefault<z.ZodEnum<["reserved", "settled", "cancelled"]>>;
18
117
  }, "strip", z.ZodTypeAny, {
118
+ state: "cancelled" | "reserved" | "settled";
119
+ reason: string[];
19
120
  harness_id: string;
20
121
  intent: "plan" | "audit" | "orchestrate" | "spec" | "implement" | "create_from_scratch" | "repair" | "review" | "verify" | "synthesize" | "explain";
21
122
  model_hint: string | null;
22
- max_usd: number | null;
23
123
  created_at: string;
24
- state: "cancelled" | "reserved" | "settled";
25
- reason: string[];
26
124
  lease_id: string;
27
125
  task_id: string;
126
+ cost: {
127
+ source: string;
128
+ knowledge: "exact" | "unknown" | "estimated";
129
+ billing: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
130
+ provenance: string[];
131
+ estimatedUsd: number | null;
132
+ };
28
133
  attempt_id?: string | undefined;
29
134
  }, {
30
135
  harness_id: string;
@@ -32,10 +137,16 @@ export declare const BudgetLease: z.ZodObject<{
32
137
  created_at: string;
33
138
  lease_id: string;
34
139
  task_id: string;
35
- model_hint?: string | null | undefined;
36
- max_usd?: number | null | undefined;
140
+ cost: {
141
+ source: string;
142
+ knowledge: "exact" | "unknown" | "estimated";
143
+ billing: "unknown" | "proven_zero" | "subscription_entitlement" | "metered";
144
+ provenance: string[];
145
+ estimatedUsd?: number | null | undefined;
146
+ };
37
147
  state?: "cancelled" | "reserved" | "settled" | undefined;
38
148
  reason?: string[] | undefined;
149
+ model_hint?: string | null | undefined;
39
150
  attempt_id?: string | undefined;
40
151
  }>;
41
152
  export type BudgetLease = z.infer<typeof BudgetLease>;
@@ -44,32 +155,38 @@ export declare const BudgetObservation: z.ZodObject<{
44
155
  harness_id: z.ZodString;
45
156
  ts: z.ZodString;
46
157
  quality: z.ZodEnum<["exact", "native", "observed", "manual", "unknown"]>;
47
- kind: z.ZodEnum<["spend", "rate_limited", "used_percent", "cooldown", "manual"]>;
158
+ kind: z.ZodEnum<["spend", "rate_limited", "quota_constraint", "cooldown"]>;
48
159
  usd: z.ZodOptional<z.ZodNumber>;
49
- used_percent: z.ZodOptional<z.ZodNumber>;
160
+ constraint_id: z.ZodOptional<z.ZodString>;
161
+ used_ratio: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
162
+ window_seconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
50
163
  resets_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
164
  cooldown_until: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
165
  detail: z.ZodOptional<z.ZodString>;
53
166
  }, "strip", z.ZodTypeAny, {
54
- kind: "rate_limited" | "manual" | "used_percent" | "spend" | "cooldown";
167
+ kind: "rate_limited" | "spend" | "quota_constraint" | "cooldown";
55
168
  harness_id: string;
56
169
  ts: string;
57
170
  quality: "exact" | "unknown" | "manual" | "native" | "observed";
58
171
  detail?: string | undefined;
59
- used_percent?: number | undefined;
172
+ used_ratio?: number | null | undefined;
173
+ window_seconds?: number | null | undefined;
60
174
  resets_at?: string | null | undefined;
61
- usd?: number | undefined;
62
175
  cooldown_until?: string | null | undefined;
176
+ usd?: number | undefined;
177
+ constraint_id?: string | undefined;
63
178
  }, {
64
- kind: "rate_limited" | "manual" | "used_percent" | "spend" | "cooldown";
179
+ kind: "rate_limited" | "spend" | "quota_constraint" | "cooldown";
65
180
  harness_id: string;
66
181
  ts: string;
67
182
  quality: "exact" | "unknown" | "manual" | "native" | "observed";
68
183
  detail?: string | undefined;
69
- used_percent?: number | undefined;
184
+ used_ratio?: number | null | undefined;
185
+ window_seconds?: number | null | undefined;
70
186
  resets_at?: string | null | undefined;
71
- usd?: number | undefined;
72
187
  cooldown_until?: string | null | undefined;
188
+ usd?: number | undefined;
189
+ constraint_id?: string | undefined;
73
190
  }>;
74
191
  export type BudgetObservation = z.infer<typeof BudgetObservation>;
75
192
  //# sourceMappingURL=budget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ,oDAEuE,CAAC;AAC7F,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,SAAS,mJAcnB,CAAC;AACJ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,uFAAuF;AACvF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBiF,CAAC;AAC1G,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,mFAAmF;AACnF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc2F,CAAC;AAC1H,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"budget.d.ts","sourceRoot":"","sources":["../src/budget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;IAKuE,CAAC;AAC/F,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;EAS8D,CAAC;AACxF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,QAAQ,oDAEuE,CAAC;AAC7F,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,WAAW,2CAIrB,CAAC;AACJ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,YAAY,gEAE2C,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAOiD,CAAC;AAC/E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,WAAW;;;;;;;;;;;;WAG6D,CAAC;AACtF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;;;;;;;;;sBAKxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,uFAAuF;AACvF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBrB,CAAC;AACJ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,mFAAmF;AACnF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4B3B,CAAC;AACJ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}