@claudexor/schema 1.0.1 → 2.1.1

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 (278) hide show
  1. package/dist/agent-capabilities.d.ts +102 -30
  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 +117 -52
  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 +1444 -0
  13. package/dist/auth.d.ts.map +1 -0
  14. package/dist/auth.js +371 -0
  15. package/dist/auth.js.map +1 -0
  16. package/dist/budget.d.ts +147 -18
  17. package/dist/budget.d.ts.map +1 -1
  18. package/dist/budget.js +80 -22
  19. package/dist/budget.js.map +1 -1
  20. package/dist/config.d.ts +829 -135
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +195 -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-gc.d.ts +185 -0
  29. package/dist/control-gc.d.ts.map +1 -0
  30. package/dist/control-gc.js +81 -0
  31. package/dist/control-gc.js.map +1 -0
  32. package/dist/control-operation-responses.d.ts +1298 -0
  33. package/dist/control-operation-responses.d.ts.map +1 -0
  34. package/dist/control-operation-responses.js +35 -0
  35. package/dist/control-operation-responses.js.map +1 -0
  36. package/dist/control-run-detail.d.ts +556 -247
  37. package/dist/control-run-detail.d.ts.map +1 -1
  38. package/dist/control-run-detail.js +72 -17
  39. package/dist/control-run-detail.js.map +1 -1
  40. package/dist/control-run-retry.d.ts +88 -0
  41. package/dist/control-run-retry.d.ts.map +1 -0
  42. package/dist/control-run-retry.js +40 -0
  43. package/dist/control-run-retry.js.map +1 -0
  44. package/dist/control-run-scope.d.ts +25 -0
  45. package/dist/control-run-scope.d.ts.map +1 -0
  46. package/dist/control-run-scope.js +22 -0
  47. package/dist/control-run-scope.js.map +1 -0
  48. package/dist/control-secret.d.ts +90 -0
  49. package/dist/control-secret.d.ts.map +1 -0
  50. package/dist/control-secret.js +35 -0
  51. package/dist/control-secret.js.map +1 -0
  52. package/dist/control-spec.d.ts +592 -0
  53. package/dist/control-spec.d.ts.map +1 -0
  54. package/dist/control-spec.js +85 -0
  55. package/dist/control-spec.js.map +1 -0
  56. package/dist/control-thread-apply.d.ts +175 -0
  57. package/dist/control-thread-apply.d.ts.map +1 -0
  58. package/dist/control-thread-apply.js +31 -0
  59. package/dist/control-thread-apply.js.map +1 -0
  60. package/dist/control-trust.d.ts +74 -10
  61. package/dist/control-trust.d.ts.map +1 -1
  62. package/dist/control-trust.js +31 -11
  63. package/dist/control-trust.js.map +1 -1
  64. package/dist/control.d.ts +1688 -1334
  65. package/dist/control.d.ts.map +1 -1
  66. package/dist/control.js +592 -333
  67. package/dist/control.js.map +1 -1
  68. package/dist/credential-profile.d.ts +454 -0
  69. package/dist/credential-profile.d.ts.map +1 -0
  70. package/dist/credential-profile.js +140 -0
  71. package/dist/credential-profile.js.map +1 -0
  72. package/dist/decision.d.ts +10 -10
  73. package/dist/decision.d.ts.map +1 -1
  74. package/dist/decision.js +62 -15
  75. package/dist/decision.js.map +1 -1
  76. package/dist/delivery.d.ts +99 -0
  77. package/dist/delivery.d.ts.map +1 -0
  78. package/dist/delivery.js +19 -0
  79. package/dist/delivery.js.map +1 -0
  80. package/dist/events.d.ts +41 -4
  81. package/dist/events.d.ts.map +1 -1
  82. package/dist/events.js +47 -4
  83. package/dist/events.js.map +1 -1
  84. package/dist/gate.d.ts +5 -5
  85. package/dist/gate.d.ts.map +1 -1
  86. package/dist/gate.js +25 -5
  87. package/dist/gate.js.map +1 -1
  88. package/dist/harness.d.ts +775 -237
  89. package/dist/harness.d.ts.map +1 -1
  90. package/dist/harness.js +314 -111
  91. package/dist/harness.js.map +1 -1
  92. package/dist/index.d.ts +19 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +19 -0
  95. package/dist/index.js.map +1 -1
  96. package/dist/operation.d.ts +185 -0
  97. package/dist/operation.d.ts.map +1 -0
  98. package/dist/operation.js +50 -0
  99. package/dist/operation.js.map +1 -0
  100. package/dist/orchestrate.d.ts +150 -22
  101. package/dist/orchestrate.d.ts.map +1 -1
  102. package/dist/orchestrate.js +117 -7
  103. package/dist/orchestrate.js.map +1 -1
  104. package/dist/primitives.d.ts.map +1 -1
  105. package/dist/primitives.js +4 -1
  106. package/dist/primitives.js.map +1 -1
  107. package/dist/problem.d.ts +29 -0
  108. package/dist/problem.d.ts.map +1 -0
  109. package/dist/problem.js +17 -0
  110. package/dist/problem.js.map +1 -0
  111. package/dist/project.d.ts +97 -0
  112. package/dist/project.d.ts.map +1 -0
  113. package/dist/project.js +27 -0
  114. package/dist/project.js.map +1 -0
  115. package/dist/quota.d.ts +269 -0
  116. package/dist/quota.d.ts.map +1 -0
  117. package/dist/quota.js +58 -0
  118. package/dist/quota.js.map +1 -0
  119. package/dist/raw.d.ts +195 -0
  120. package/dist/raw.d.ts.map +1 -0
  121. package/dist/raw.js +58 -0
  122. package/dist/raw.js.map +1 -0
  123. package/dist/readiness.d.ts +596 -0
  124. package/dist/readiness.d.ts.map +1 -0
  125. package/dist/readiness.js +87 -0
  126. package/dist/readiness.js.map +1 -0
  127. package/dist/recovery.d.ts +515 -0
  128. package/dist/recovery.d.ts.map +1 -0
  129. package/dist/recovery.js +93 -0
  130. package/dist/recovery.js.map +1 -0
  131. package/dist/request-requirements.d.ts +36 -0
  132. package/dist/request-requirements.d.ts.map +1 -0
  133. package/dist/request-requirements.js +29 -0
  134. package/dist/request-requirements.js.map +1 -0
  135. package/dist/review.d.ts +26 -26
  136. package/dist/review.d.ts.map +1 -1
  137. package/dist/review.js +50 -10
  138. package/dist/review.js.map +1 -1
  139. package/dist/route.d.ts +13 -13
  140. package/dist/route.d.ts.map +1 -1
  141. package/dist/route.js +19 -4
  142. package/dist/route.js.map +1 -1
  143. package/dist/setup.d.ts +9811 -0
  144. package/dist/setup.d.ts.map +1 -0
  145. package/dist/setup.js +475 -0
  146. package/dist/setup.js.map +1 -0
  147. package/dist/spec.d.ts +178 -61
  148. package/dist/spec.d.ts.map +1 -1
  149. package/dist/spec.js +69 -16
  150. package/dist/spec.js.map +1 -1
  151. package/dist/surface-run-controls.d.ts.map +1 -1
  152. package/dist/surface-run-controls.js +25 -21
  153. package/dist/surface-run-controls.js.map +1 -1
  154. package/dist/task.d.ts +1657 -60
  155. package/dist/task.d.ts.map +1 -1
  156. package/dist/task.js +144 -18
  157. package/dist/task.js.map +1 -1
  158. package/dist/telemetry.d.ts +487 -72
  159. package/dist/telemetry.d.ts.map +1 -1
  160. package/dist/telemetry.js +194 -16
  161. package/dist/telemetry.js.map +1 -1
  162. package/dist/thread.d.ts +89 -51
  163. package/dist/thread.d.ts.map +1 -1
  164. package/dist/thread.js +56 -11
  165. package/dist/thread.js.map +1 -1
  166. package/dist/tool-ref.d.ts +45 -0
  167. package/dist/tool-ref.d.ts.map +1 -0
  168. package/dist/tool-ref.js +45 -0
  169. package/dist/tool-ref.js.map +1 -0
  170. package/dist/workproduct.d.ts +3 -3
  171. package/dist/workproduct.d.ts.map +1 -1
  172. package/dist/workproduct.js.map +1 -1
  173. package/dist/workspace.d.ts +3 -3
  174. package/dist/workspace.d.ts.map +1 -1
  175. package/dist/workspace.js +12 -3
  176. package/dist/workspace.js.map +1 -1
  177. package/generated/AgentCapabilityCatalog.schema.json +53 -11
  178. package/generated/BudgetLease.schema.json +55 -6
  179. package/generated/BudgetObservation.schema.json +44 -7
  180. package/generated/ConformanceReport.schema.json +49 -0
  181. package/generated/ControlApplyCheckResponse.schema.json +34 -0
  182. package/generated/ControlArtifactListResponse.schema.json +57 -0
  183. package/generated/ControlAuthReadinessRefreshRequest.schema.json +38 -0
  184. package/generated/ControlAuthReadinessRefreshResponse.schema.json +85 -0
  185. package/generated/ControlCredentialProfileCreateRequest.schema.json +32 -0
  186. package/generated/ControlCredentialProfileCreateResponse.schema.json +142 -0
  187. package/generated/ControlCredentialProfileDeleteResponse.schema.json +107 -0
  188. package/generated/ControlCredentialProfilesResponse.schema.json +155 -0
  189. package/generated/ControlDeliveryResponse.schema.json +136 -0
  190. package/generated/ControlGcReceipt.schema.json +170 -0
  191. package/generated/ControlGcRequest.schema.json +18 -0
  192. package/generated/ControlHandshakeRequest.schema.json +26 -0
  193. package/generated/ControlHandshakeResponse.schema.json +30 -0
  194. package/generated/ControlHarnessListResponse.schema.json +198 -14
  195. package/generated/ControlHarnessModelsResponse.schema.json +19 -0
  196. package/generated/ControlHarnessSettingsPatch.schema.json +9 -12
  197. package/generated/ControlJournalEvent.schema.json +42 -0
  198. package/generated/ControlJournalExportReceipt.schema.json +49 -0
  199. package/generated/ControlJournalInspection.schema.json +149 -0
  200. package/generated/ControlJournalQuarantineReceipt.schema.json +55 -0
  201. package/generated/ControlJournalQuarantineRequest.schema.json +24 -0
  202. package/generated/ControlJournalValidation.schema.json +181 -0
  203. package/generated/ControlOperationCatalog.schema.json +128 -0
  204. package/generated/ControlOperationDescriptor.schema.json +110 -0
  205. package/generated/ControlProblem.schema.json +59 -0
  206. package/generated/ControlProject.schema.json +42 -0
  207. package/generated/ControlProjectListResponse.schema.json +54 -0
  208. package/generated/ControlProjectRegisterRequest.schema.json +19 -0
  209. package/generated/ControlProjectRelinkRequest.schema.json +19 -0
  210. package/generated/ControlQueuedRunInfo.schema.json +4 -2
  211. package/generated/ControlQuotaResponse.schema.json +177 -0
  212. package/generated/ControlResource.schema.json +59 -0
  213. package/generated/ControlRunAgainDraft.schema.json +539 -0
  214. package/generated/ControlRunDetail.schema.json +373 -34
  215. package/generated/ControlRunListResponse.schema.json +968 -0
  216. package/generated/ControlRunRetryResponse.schema.json +54 -0
  217. package/generated/ControlRunStartRequest.schema.json +123 -55
  218. package/generated/ControlRunStartResponse.schema.json +78 -0
  219. package/generated/ControlRunSummary.schema.json +312 -21
  220. package/generated/ControlSecretListResponse.schema.json +8 -14
  221. package/generated/ControlSecretMutationResponse.schema.json +32 -0
  222. package/generated/ControlSecretSetRequest.schema.json +27 -0
  223. package/generated/ControlSettingsSnapshot.schema.json +128 -44
  224. package/generated/ControlSettingsUpdateRequest.schema.json +119 -40
  225. package/generated/ControlSetupJob.schema.json +770 -64
  226. package/generated/ControlSetupJobCreateRequest.schema.json +16 -13
  227. package/generated/ControlSetupJobEvent.schema.json +869 -5
  228. package/generated/ControlSetupJobListFilter.schema.json +35 -0
  229. package/generated/ControlSetupJobListResponse.schema.json +770 -64
  230. package/generated/ControlSetupJobSnapshot.schema.json +878 -0
  231. package/generated/ControlSpecAnswersRequest.schema.json +74 -0
  232. package/generated/ControlSpecQuestionsRequest.schema.json +128 -2
  233. package/generated/ControlSpecSession.schema.json +249 -0
  234. package/generated/ControlSpecSessionListResponse.schema.json +261 -0
  235. package/generated/ControlThread.schema.json +36 -6
  236. package/generated/ControlThreadApplyResponse.schema.json +139 -0
  237. package/generated/ControlThreadCreateRequest.schema.json +6 -2
  238. package/generated/ControlThreadDetail.schema.json +64 -12
  239. package/generated/ControlThreadListResponse.schema.json +36 -6
  240. package/generated/ControlThreadTurnRequest.schema.json +413 -0
  241. package/generated/ControlThreadTurnResponse.schema.json +73 -0
  242. package/generated/ControlThreadUpdateRequest.schema.json +12 -1
  243. package/generated/ControlTrustListResponse.schema.json +6 -0
  244. package/generated/ControlTrustState.schema.json +6 -0
  245. package/generated/ControlTrustUpdateRequest.schema.json +65 -3
  246. package/generated/ControlUploadCreateRequest.schema.json +37 -0
  247. package/generated/ControlUploadFinalizeRequest.schema.json +17 -0
  248. package/generated/ControlUploadStatus.schema.json +40 -0
  249. package/generated/CredentialProfile.schema.json +78 -0
  250. package/generated/CredentialProfileStatus.schema.json +61 -0
  251. package/generated/DecisionRecord.schema.json +6 -3
  252. package/generated/GlobalConfig.schema.json +238 -55
  253. package/generated/HarnessEvent.schema.json +259 -11
  254. package/generated/HarnessManifest.schema.json +96 -14
  255. package/generated/HarnessModel.schema.json +19 -0
  256. package/generated/HarnessStatusDto.schema.json +198 -14
  257. package/generated/OrchestrateContract.schema.json +32 -6
  258. package/generated/OrchestratePlan.schema.json +20 -0
  259. package/generated/OrchestratePlanProgress.schema.json +61 -0
  260. package/generated/PaidBudget.schema.json +42 -0
  261. package/generated/Project.schema.json +45 -0
  262. package/generated/ProjectConfig.schema.json +45 -18
  263. package/generated/RawContextPacket.schema.json +184 -0
  264. package/generated/RawGitPatchEnvelope.schema.json +70 -0
  265. package/generated/RunEvent.schema.json +3 -0
  266. package/generated/RunTelemetry.schema.json +280 -0
  267. package/generated/SecretMetadata.schema.json +4 -7
  268. package/generated/Session.schema.json +14 -0
  269. package/generated/SpecPack.schema.json +118 -7
  270. package/generated/TaskContract.schema.json +224 -30
  271. package/generated/TestCommandInvocation.schema.json +45 -0
  272. package/generated/Thread.schema.json +74 -6
  273. package/generated/ThreadHeadPing.schema.json +40 -0
  274. package/generated/ThreadTurn.schema.json +24 -11
  275. package/generated/TrustConfig.schema.json +77 -0
  276. package/package.json +3 -2
  277. package/generated/ControlSetupJobConfirmRequest.schema.json +0 -18
  278. package/generated/ControlSpecFreezeRequest.schema.json +0 -83
@@ -1,69 +1,134 @@
1
1
  import { z } from "zod";
2
- /**
3
- * A user- or agent-provided file/image attached to a turn. `path` is the
4
- * resolved on-disk location in the scoped attachment store (kept OUTSIDE any
5
- * worktree so `git add -A` cannot capture it); an adapter reads bytes from
6
- * there to forward to its harness in that harness's native shape.
7
- */
8
2
  export declare const AttachmentKind: z.ZodEnum<["image", "file"]>;
9
3
  export type AttachmentKind = z.infer<typeof AttachmentKind>;
4
+ /** The only attachment authority accepted by run/turn requests. */
5
+ export declare const ResourceAttachmentRef: z.ZodObject<{
6
+ resourceId: z.ZodString;
7
+ }, "strict", z.ZodTypeAny, {
8
+ resourceId: string;
9
+ }, {
10
+ resourceId: string;
11
+ }>;
12
+ export type ResourceAttachmentRef = z.infer<typeof ResourceAttachmentRef>;
13
+ /** Internal resolved shape passed to adapters; never accepted from a client. */
10
14
  export declare const Attachment: z.ZodObject<{
11
- id: z.ZodString;
12
- kind: z.ZodDefault<z.ZodEnum<["image", "file"]>>;
13
- mime: z.ZodDefault<z.ZodString>;
14
- name: z.ZodDefault<z.ZodString>;
15
- /** Resolved local path in the scoped attachment store. */
15
+ resource_id: z.ZodString;
16
+ kind: z.ZodEnum<["image", "file"]>;
17
+ mime: z.ZodString;
18
+ name: z.ZodString;
19
+ sha256: z.ZodString;
20
+ size_bytes: z.ZodNumber;
16
21
  path: z.ZodString;
17
- }, "strip", z.ZodTypeAny, {
22
+ }, "strict", z.ZodTypeAny, {
18
23
  path: string;
19
- id: string;
20
- kind: "image" | "file";
21
- mime: string;
22
24
  name: string;
25
+ kind: "file" | "image";
26
+ resource_id: string;
27
+ mime: string;
28
+ sha256: string;
29
+ size_bytes: number;
23
30
  }, {
24
31
  path: string;
25
- id: string;
26
- kind?: "image" | "file" | undefined;
27
- mime?: string | undefined;
28
- name?: string | undefined;
32
+ name: string;
33
+ kind: "file" | "image";
34
+ resource_id: string;
35
+ mime: string;
36
+ sha256: string;
37
+ size_bytes: number;
29
38
  }>;
30
39
  export type Attachment = z.infer<typeof Attachment>;
31
- /**
32
- * Inbound attachment on a control request. Thread/composer uploads may arrive
33
- * base64-inline (`data`) for a fresh upload; direct non-thread run enqueue
34
- * accepts only non-empty absolute existing file paths so bytes cannot persist in
35
- * the daemon job registry. The daemon/turn store resolves inbound bytes to a
36
- * durable {@link Attachment}. Exactly one of `data` / `path` is expected; both
37
- * null is rejected by the resolver (fail loud, never a silent empty attachment).
38
- */
39
- export declare const AttachmentInput: z.ZodObject<{
40
- kind: z.ZodDefault<z.ZodEnum<["image", "file"]>>;
41
- mime: z.ZodDefault<z.ZodString>;
40
+ export declare const AttachmentTransport: z.ZodEnum<["file_path", "base64_stream", "base64_inline", "text_inline"]>;
41
+ export type AttachmentTransport = z.infer<typeof AttachmentTransport>;
42
+ /** Finite declaration: absent/unknown MIME is unsupported, never assumed. */
43
+ export declare const AttachmentInputClass: z.ZodObject<{
44
+ kind: z.ZodEnum<["image", "file"]>;
45
+ mime_types: z.ZodArray<z.ZodString, "many">;
46
+ max_bytes: z.ZodNumber;
47
+ max_count: z.ZodNumber;
48
+ transport: z.ZodEnum<["file_path", "base64_stream", "base64_inline", "text_inline"]>;
49
+ }, "strict", z.ZodTypeAny, {
50
+ kind: "file" | "image";
51
+ mime_types: string[];
52
+ max_bytes: number;
53
+ max_count: number;
54
+ transport: "file_path" | "base64_stream" | "base64_inline" | "text_inline";
55
+ }, {
56
+ kind: "file" | "image";
57
+ mime_types: string[];
58
+ max_bytes: number;
59
+ max_count: number;
60
+ transport: "file_path" | "base64_stream" | "base64_inline" | "text_inline";
61
+ }>;
62
+ export type AttachmentInputClass = z.infer<typeof AttachmentInputClass>;
63
+ export declare const ControlUploadCreateRequest: z.ZodObject<{
64
+ kind: z.ZodEnum<["image", "file"]>;
65
+ mime: z.ZodString;
42
66
  name: z.ZodDefault<z.ZodString>;
43
- data: z.ZodDefault<z.ZodNullable<z.ZodString>>;
44
- path: z.ZodDefault<z.ZodNullable<z.ZodString>>;
45
- }, "strip", z.ZodTypeAny, {
46
- path: string | null;
47
- kind: "image" | "file";
48
- mime: string;
67
+ sizeBytes: z.ZodNumber;
68
+ }, "strict", z.ZodTypeAny, {
49
69
  name: string;
50
- data: string | null;
70
+ kind: "file" | "image";
71
+ mime: string;
72
+ sizeBytes: number;
51
73
  }, {
52
- path?: string | null | undefined;
53
- kind?: "image" | "file" | undefined;
54
- mime?: string | undefined;
74
+ kind: "file" | "image";
75
+ mime: string;
76
+ sizeBytes: number;
55
77
  name?: string | undefined;
56
- data?: string | null | undefined;
57
78
  }>;
58
- export type AttachmentInput = z.infer<typeof AttachmentInput>;
59
- /**
60
- * How a harness accepts image input, declared by its adapter manifest and used
61
- * for honest UI gating + per-adapter serialization (never a normalized wire
62
- * format): `file_path` (codex `-i`), `base64_stream` (claude stream-json image
63
- * block), `base64_inline` (raw-api `image_url` data URL), or `none` (cursor /
64
- * opencode — image attachments are disabled/routed to a vision-capable harness
65
- * rather than silently dropped; generic file attachments still use Attachment).
66
- */
67
- export declare const ImageInputMode: z.ZodEnum<["file_path", "base64_stream", "base64_inline", "none"]>;
68
- export type ImageInputMode = z.infer<typeof ImageInputMode>;
79
+ export type ControlUploadCreateRequest = z.infer<typeof ControlUploadCreateRequest>;
80
+ export declare const ControlUploadStatus: z.ZodObject<{
81
+ uploadId: z.ZodString;
82
+ state: z.ZodEnum<["open", "uploading", "uploaded", "cancelled"]>;
83
+ receivedBytes: z.ZodNumber;
84
+ expectedBytes: z.ZodNumber;
85
+ }, "strict", z.ZodTypeAny, {
86
+ state: "cancelled" | "open" | "uploading" | "uploaded";
87
+ uploadId: string;
88
+ receivedBytes: number;
89
+ expectedBytes: number;
90
+ }, {
91
+ state: "cancelled" | "open" | "uploading" | "uploaded";
92
+ uploadId: string;
93
+ receivedBytes: number;
94
+ expectedBytes: number;
95
+ }>;
96
+ export type ControlUploadStatus = z.infer<typeof ControlUploadStatus>;
97
+ export declare const ControlResource: z.ZodObject<{
98
+ resourceId: z.ZodString;
99
+ kind: z.ZodEnum<["image", "file"]>;
100
+ mime: z.ZodString;
101
+ name: z.ZodString;
102
+ sha256: z.ZodString;
103
+ sizeBytes: z.ZodNumber;
104
+ createdAt: z.ZodString;
105
+ deduplicated: z.ZodBoolean;
106
+ }, "strict", z.ZodTypeAny, {
107
+ name: string;
108
+ kind: "file" | "image";
109
+ resourceId: string;
110
+ mime: string;
111
+ sha256: string;
112
+ sizeBytes: number;
113
+ createdAt: string;
114
+ deduplicated: boolean;
115
+ }, {
116
+ name: string;
117
+ kind: "file" | "image";
118
+ resourceId: string;
119
+ mime: string;
120
+ sha256: string;
121
+ sizeBytes: number;
122
+ createdAt: string;
123
+ deduplicated: boolean;
124
+ }>;
125
+ export type ControlResource = z.infer<typeof ControlResource>;
126
+ export declare const ControlUploadFinalizeRequest: z.ZodObject<{
127
+ expectedSha256: z.ZodOptional<z.ZodString>;
128
+ }, "strict", z.ZodTypeAny, {
129
+ expectedSha256?: string | undefined;
130
+ }, {
131
+ expectedSha256?: string | undefined;
132
+ }>;
133
+ export type ControlUploadFinalizeRequest = z.infer<typeof ControlUploadFinalizeRequest>;
69
134
  //# sourceMappingURL=attachment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../src/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;GAKG;AACH,eAAO,MAAM,cAAc,8BAEqD,CAAC;AACjF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,UAAU;;;;;IAMnB,0DAA0D;;;;;;;;;;;;;;EAK3D,CAAC;AACJ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAczB,CAAC;AACJ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,oEAIxB,CAAC;AACJ,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../src/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,cAAc,8BAEiD,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,mEAAmE;AACnE,eAAO,MAAM,qBAAqB;;;;;;EAGsC,CAAC;AACzE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,gFAAgF;AAChF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;EAWyD,CAAC;AACjF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,mBAAmB,2EAEgD,CAAC;AACjF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;EASoD,CAAC;AACtF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAO5B,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEpF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAOrB,CAAC;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWjB,CAAC;AACZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,4BAA4B;;;;;;EAE9B,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -1,54 +1,69 @@
1
1
  import { z } from "zod";
2
- import { Id } from "./primitives.js";
3
- /**
4
- * A user- or agent-provided file/image attached to a turn. `path` is the
5
- * resolved on-disk location in the scoped attachment store (kept OUTSIDE any
6
- * worktree so `git add -A` cannot capture it); an adapter reads bytes from
7
- * there to forward to its harness in that harness's native shape.
8
- */
2
+ import { ContentHash, Id, IsoTimestamp } from "./primitives.js";
9
3
  export const AttachmentKind = z
10
4
  .enum(["image", "file"])
11
- .describe("Kind of attachment: image (vision input) or file (generic bytes).");
5
+ .describe("Kind of attached resource: image input or generic file bytes.");
6
+ /** The only attachment authority accepted by run/turn requests. */
7
+ export const ResourceAttachmentRef = z
8
+ .object({ resourceId: Id.describe("Immutable daemon resource id returned by upload finalize.") })
9
+ .strict()
10
+ .describe("Reference to an immutable daemon-owned uploaded resource.");
11
+ /** Internal resolved shape passed to adapters; never accepted from a client. */
12
12
  export const Attachment = z
13
13
  .object({
14
- id: Id.describe("Attachment id."),
15
- kind: AttachmentKind.default("file"),
16
- mime: z.string().default("application/octet-stream").describe("MIME type of the attachment content."),
17
- name: z.string().default("").describe("Original file name as provided by the user or agent."),
18
- /** Resolved local path in the scoped attachment store. */
19
- path: z.string().describe("Resolved local path in the scoped attachment store (kept outside any worktree)."),
14
+ resource_id: Id.describe("Immutable daemon resource id."),
15
+ kind: AttachmentKind,
16
+ mime: z.string().min(1).describe("Declared MIME type validated against adapter limits."),
17
+ name: z.string().describe("Original display name."),
18
+ sha256: ContentHash.describe("Exact sha256 digest of the immutable bytes."),
19
+ size_bytes: z.number().int().nonnegative().describe("Exact byte length."),
20
+ path: z.string().describe("Daemon-owned immutable blob path; internal adapter input only."),
20
21
  })
21
- .describe("A user- or agent-provided file/image attached to a turn, stored in the scoped attachment store and forwarded to harnesses in their native shape.");
22
- /**
23
- * Inbound attachment on a control request. Thread/composer uploads may arrive
24
- * base64-inline (`data`) for a fresh upload; direct non-thread run enqueue
25
- * accepts only non-empty absolute existing file paths so bytes cannot persist in
26
- * the daemon job registry. The daemon/turn store resolves inbound bytes to a
27
- * durable {@link Attachment}. Exactly one of `data` / `path` is expected; both
28
- * null is rejected by the resolver (fail loud, never a silent empty attachment).
29
- */
30
- export const AttachmentInput = z
22
+ .strict()
23
+ .describe("Daemon-resolved immutable resource supplied to a harness adapter.");
24
+ export const AttachmentTransport = z
25
+ .enum(["file_path", "base64_stream", "base64_inline", "text_inline"])
26
+ .describe("Native adapter transport used for one supported attachment class.");
27
+ /** Finite declaration: absent/unknown MIME is unsupported, never assumed. */
28
+ export const AttachmentInputClass = z
31
29
  .object({
32
- kind: AttachmentKind.default("file"),
33
- mime: z.string().default("application/octet-stream").describe("MIME type of the attachment content."),
34
- name: z.string().default("").describe("Original file name for the attachment."),
35
- data: z.string().nullable().default(null).describe("Base64-inline attachment bytes for a fresh upload; null when path is used instead."),
36
- path: z
37
- .string()
38
- .nullable()
39
- .default(null)
40
- .describe("Absolute existing file path to read bytes from; null when data is used instead."),
30
+ kind: AttachmentKind,
31
+ mime_types: z.array(z.string().min(1)).min(1),
32
+ max_bytes: z.number().int().positive().finite(),
33
+ max_count: z.number().int().positive().finite(),
34
+ transport: AttachmentTransport,
41
35
  })
42
- .describe("Inbound attachment on a control request; exactly one of data (base64-inline) or path (absolute existing file) is expected, resolved by the daemon into a durable Attachment.");
43
- /**
44
- * How a harness accepts image input, declared by its adapter manifest and used
45
- * for honest UI gating + per-adapter serialization (never a normalized wire
46
- * format): `file_path` (codex `-i`), `base64_stream` (claude stream-json image
47
- * block), `base64_inline` (raw-api `image_url` data URL), or `none` (cursor /
48
- * opencode — image attachments are disabled/routed to a vision-capable harness
49
- * rather than silently dropped; generic file attachments still use Attachment).
50
- */
51
- export const ImageInputMode = z
52
- .enum(["file_path", "base64_stream", "base64_inline", "none"])
53
- .describe("How a harness accepts image input: file_path (CLI file argument), base64_stream (base64 image block on the stream), base64_inline (data-URL in the request), or none (no vision input on this route).");
36
+ .strict()
37
+ .describe("Finite MIME, size, count and transport limits declared by one adapter.");
38
+ export const ControlUploadCreateRequest = z
39
+ .object({
40
+ kind: AttachmentKind,
41
+ mime: z.string().min(1),
42
+ name: z.string().default(""),
43
+ sizeBytes: z.number().int().nonnegative(),
44
+ })
45
+ .strict();
46
+ export const ControlUploadStatus = z
47
+ .object({
48
+ uploadId: Id,
49
+ state: z.enum(["open", "uploading", "uploaded", "cancelled"]),
50
+ receivedBytes: z.number().int().nonnegative(),
51
+ expectedBytes: z.number().int().nonnegative(),
52
+ })
53
+ .strict();
54
+ export const ControlResource = z
55
+ .object({
56
+ resourceId: Id,
57
+ kind: AttachmentKind,
58
+ mime: z.string().min(1),
59
+ name: z.string(),
60
+ sha256: ContentHash,
61
+ sizeBytes: z.number().int().nonnegative(),
62
+ createdAt: IsoTimestamp,
63
+ deduplicated: z.boolean(),
64
+ })
65
+ .strict();
66
+ export const ControlUploadFinalizeRequest = z
67
+ .object({ expectedSha256: ContentHash.optional() })
68
+ .strict();
54
69
  //# sourceMappingURL=attachment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../src/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACvB,QAAQ,CAAC,mEAAmE,CAAC,CAAC;AAGjF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACjC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACrG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAC7F,0DAA0D;IAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;CAC7G,CAAC;KACD,QAAQ,CACP,kJAAkJ,CACnJ,CAAC;AAGJ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACrG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAC/E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oFAAoF,CAAC;IACxI,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,iFAAiF,CAAC;CAC/F,CAAC;KACD,QAAQ,CACP,8KAA8K,CAC/K,CAAC;AAGJ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,IAAI,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;KAC7D,QAAQ,CACP,uMAAuM,CACxM,CAAC"}
1
+ {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../src/attachment.ts"],"names":[],"mappings":"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"}