@cleocode/contracts 2026.6.12 → 2026.6.14

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 (216) hide show
  1. package/dist/__tests__/operation-def.test.js +5 -1
  2. package/dist/__tests__/operation-def.test.js.map +1 -1
  3. package/dist/__tests__/provider-def.test.d.ts +12 -0
  4. package/dist/__tests__/provider-def.test.d.ts.map +1 -0
  5. package/dist/__tests__/provider-def.test.js +84 -0
  6. package/dist/__tests__/provider-def.test.js.map +1 -0
  7. package/dist/__tests__/sealed-credential.test.d.ts +19 -0
  8. package/dist/__tests__/sealed-credential.test.d.ts.map +1 -0
  9. package/dist/__tests__/sealed-credential.test.js +74 -0
  10. package/dist/__tests__/sealed-credential.test.js.map +1 -0
  11. package/dist/__tests__/service-provider.test.d.ts +17 -0
  12. package/dist/__tests__/service-provider.test.d.ts.map +1 -0
  13. package/dist/__tests__/service-provider.test.js +108 -0
  14. package/dist/__tests__/service-provider.test.js.map +1 -0
  15. package/dist/__tests__/skill-executor-contract.test.js +3 -0
  16. package/dist/__tests__/skill-executor-contract.test.js.map +1 -1
  17. package/dist/acceptance-gate.d.ts +2 -3
  18. package/dist/acceptance-gate.d.ts.map +1 -1
  19. package/dist/boundary.d.ts +52 -0
  20. package/dist/boundary.d.ts.map +1 -1
  21. package/dist/boundary.js +24 -19
  22. package/dist/boundary.js.map +1 -1
  23. package/dist/conduit.d.ts +171 -0
  24. package/dist/conduit.d.ts.map +1 -1
  25. package/dist/config/index.d.ts +23 -0
  26. package/dist/config/index.d.ts.map +1 -0
  27. package/dist/config/index.js +22 -0
  28. package/dist/config/index.js.map +1 -0
  29. package/dist/config.d.ts +104 -1
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/data-accessor.d.ts +21 -1
  32. package/dist/data-accessor.d.ts.map +1 -1
  33. package/dist/data-accessor.js.map +1 -1
  34. package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.d.ts +21 -0
  35. package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.d.ts.map +1 -0
  36. package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.js +84 -0
  37. package/dist/dispatch/__tests__/tasks-gateway-crud-ops.test.js.map +1 -0
  38. package/dist/dispatch/identity.d.ts +1 -1
  39. package/dist/dispatch/identity.d.ts.map +1 -1
  40. package/dist/dispatch/identity.js +25 -0
  41. package/dist/dispatch/identity.js.map +1 -1
  42. package/dist/dispatch/operation-def.d.ts +20 -0
  43. package/dist/dispatch/operation-def.d.ts.map +1 -1
  44. package/dist/dispatch/operations-registry.d.ts.map +1 -1
  45. package/dist/dispatch/operations-registry.js +1044 -182
  46. package/dist/dispatch/operations-registry.js.map +1 -1
  47. package/dist/docs/read.d.ts +2 -2
  48. package/dist/index.d.ts +25 -11
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +17 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/lease-ipc/__tests__/freeze.test.d.ts +15 -0
  53. package/dist/lease-ipc/__tests__/freeze.test.d.ts.map +1 -0
  54. package/dist/lease-ipc/__tests__/freeze.test.js +313 -0
  55. package/dist/lease-ipc/__tests__/freeze.test.js.map +1 -0
  56. package/dist/lease-ipc/index.d.ts +17 -0
  57. package/dist/lease-ipc/index.d.ts.map +1 -0
  58. package/dist/lease-ipc/index.js +16 -0
  59. package/dist/lease-ipc/index.js.map +1 -0
  60. package/dist/lease-ipc/messages.d.ts +918 -0
  61. package/dist/lease-ipc/messages.d.ts.map +1 -0
  62. package/dist/lease-ipc/messages.js +476 -0
  63. package/dist/lease-ipc/messages.js.map +1 -0
  64. package/dist/lease-ipc/version.d.ts +41 -0
  65. package/dist/lease-ipc/version.d.ts.map +1 -0
  66. package/dist/lease-ipc/version.js +43 -0
  67. package/dist/lease-ipc/version.js.map +1 -0
  68. package/dist/llm/catalog-schema.d.ts +242 -0
  69. package/dist/llm/catalog-schema.d.ts.map +1 -0
  70. package/dist/llm/catalog-schema.js +153 -0
  71. package/dist/llm/catalog-schema.js.map +1 -0
  72. package/dist/llm/catalog-schema.json +139 -0
  73. package/dist/llm/index.d.ts +15 -0
  74. package/dist/llm/index.d.ts.map +1 -0
  75. package/dist/llm/index.js +14 -0
  76. package/dist/llm/index.js.map +1 -0
  77. package/dist/llm/interfaces.d.ts +23 -0
  78. package/dist/llm/interfaces.d.ts.map +1 -1
  79. package/dist/llm/oauth.d.ts +16 -2
  80. package/dist/llm/oauth.d.ts.map +1 -1
  81. package/dist/llm/onboarding.d.ts +126 -0
  82. package/dist/llm/onboarding.d.ts.map +1 -0
  83. package/dist/llm/onboarding.js +34 -0
  84. package/dist/llm/onboarding.js.map +1 -0
  85. package/dist/llm/provider-def.d.ts +254 -0
  86. package/dist/llm/provider-def.d.ts.map +1 -0
  87. package/dist/llm/provider-def.js +93 -0
  88. package/dist/llm/provider-def.js.map +1 -0
  89. package/dist/llm/sealed-credential.d.ts +164 -0
  90. package/dist/llm/sealed-credential.d.ts.map +1 -0
  91. package/dist/llm/sealed-credential.js +43 -0
  92. package/dist/llm/sealed-credential.js.map +1 -0
  93. package/dist/llm/system-of-use.d.ts +383 -0
  94. package/dist/llm/system-of-use.d.ts.map +1 -0
  95. package/dist/llm/system-of-use.js +238 -0
  96. package/dist/llm/system-of-use.js.map +1 -0
  97. package/dist/llm/system-resolver.d.ts +87 -11
  98. package/dist/llm/system-resolver.d.ts.map +1 -1
  99. package/dist/llm/system-resolver.js +14 -7
  100. package/dist/llm/system-resolver.js.map +1 -1
  101. package/dist/operations/__tests__/ensures-schema-registry.test.d.ts +17 -0
  102. package/dist/operations/__tests__/ensures-schema-registry.test.d.ts.map +1 -0
  103. package/dist/operations/__tests__/ensures-schema-registry.test.js +113 -0
  104. package/dist/operations/__tests__/ensures-schema-registry.test.js.map +1 -0
  105. package/dist/operations/admin.d.ts +124 -1
  106. package/dist/operations/admin.d.ts.map +1 -1
  107. package/dist/operations/ensures-schema-registry.d.ts +172 -0
  108. package/dist/operations/ensures-schema-registry.d.ts.map +1 -0
  109. package/dist/operations/ensures-schema-registry.js +226 -0
  110. package/dist/operations/ensures-schema-registry.js.map +1 -0
  111. package/dist/operations/entities.d.ts +110 -0
  112. package/dist/operations/entities.d.ts.map +1 -0
  113. package/dist/operations/entities.js +695 -0
  114. package/dist/operations/entities.js.map +1 -0
  115. package/dist/operations/llm.d.ts +116 -9
  116. package/dist/operations/llm.d.ts.map +1 -1
  117. package/dist/operations/output-contracts-data.d.ts.map +1 -1
  118. package/dist/operations/output-contracts-data.js +230 -0
  119. package/dist/operations/output-contracts-data.js.map +1 -1
  120. package/dist/operations/service.d.ts +68 -0
  121. package/dist/operations/service.d.ts.map +1 -0
  122. package/dist/operations/service.js +336 -0
  123. package/dist/operations/service.js.map +1 -0
  124. package/dist/operations/tasks.d.ts +109 -0
  125. package/dist/operations/tasks.d.ts.map +1 -1
  126. package/dist/operations/tasks.js.map +1 -1
  127. package/dist/operations/validate.d.ts +1 -12
  128. package/dist/operations/validate.d.ts.map +1 -1
  129. package/dist/operations/validate.js +1 -1
  130. package/dist/playbook.d.ts +116 -0
  131. package/dist/playbook.d.ts.map +1 -1
  132. package/dist/release/plan.d.ts +5 -5
  133. package/dist/session.d.ts +11 -0
  134. package/dist/session.d.ts.map +1 -1
  135. package/dist/session.js.map +1 -1
  136. package/dist/templates/manifest.d.ts +1 -1
  137. package/dist/tools/agent-tools.d.ts +231 -0
  138. package/dist/tools/agent-tools.d.ts.map +1 -0
  139. package/dist/tools/agent-tools.js +25 -0
  140. package/dist/tools/agent-tools.js.map +1 -0
  141. package/dist/tools/atomic.d.ts +19 -0
  142. package/dist/tools/atomic.d.ts.map +1 -1
  143. package/dist/tools/atomic.js +17 -0
  144. package/dist/tools/atomic.js.map +1 -1
  145. package/dist/tools/index.d.ts +2 -0
  146. package/dist/tools/index.d.ts.map +1 -1
  147. package/dist/tools/skill-executor.d.ts +7 -0
  148. package/dist/tools/skill-executor.d.ts.map +1 -1
  149. package/dist/tools/web-tools.d.ts +217 -0
  150. package/dist/tools/web-tools.d.ts.map +1 -0
  151. package/dist/tools/web-tools.js +31 -0
  152. package/dist/tools/web-tools.js.map +1 -0
  153. package/dist/vault/service-provider.d.ts +343 -0
  154. package/dist/vault/service-provider.d.ts.map +1 -0
  155. package/dist/vault/service-provider.js +857 -0
  156. package/dist/vault/service-provider.js.map +1 -0
  157. package/dist/workgraph.d.ts +12 -12
  158. package/package.json +14 -2
  159. package/src/__tests__/__snapshots__/operations-registry.test.ts.snap +1 -1
  160. package/src/__tests__/operation-def.test.ts +7 -1
  161. package/src/__tests__/provider-def.test.ts +93 -0
  162. package/src/__tests__/sealed-credential.test.ts +100 -0
  163. package/src/__tests__/service-provider.test.ts +129 -0
  164. package/src/__tests__/skill-executor-contract.test.ts +3 -0
  165. package/src/acceptance-gate.ts +2 -3
  166. package/src/boundary.ts +70 -20
  167. package/src/conduit.ts +200 -0
  168. package/src/config/index.ts +35 -0
  169. package/src/config.ts +106 -1
  170. package/src/data-accessor.ts +22 -1
  171. package/src/dispatch/__tests__/tasks-gateway-crud-ops.test.ts +99 -0
  172. package/src/dispatch/identity.ts +25 -0
  173. package/src/dispatch/operation-def.ts +21 -0
  174. package/src/dispatch/operations-registry.ts +1083 -176
  175. package/src/index.ts +240 -25
  176. package/src/lease-ipc/__tests__/freeze.test.ts +342 -0
  177. package/src/lease-ipc/index.ts +75 -0
  178. package/src/lease-ipc/messages.ts +588 -0
  179. package/src/lease-ipc/version.ts +46 -0
  180. package/src/llm/catalog-schema.json +139 -0
  181. package/src/llm/catalog-schema.ts +184 -0
  182. package/src/llm/index.ts +29 -0
  183. package/src/llm/interfaces.ts +23 -0
  184. package/src/llm/oauth.ts +16 -2
  185. package/src/llm/onboarding.ts +131 -0
  186. package/src/llm/provider-def.ts +291 -0
  187. package/src/llm/sealed-credential.ts +166 -0
  188. package/src/llm/system-of-use.ts +503 -0
  189. package/src/llm/system-resolver.ts +91 -11
  190. package/src/operations/__tests__/ensures-schema-registry.test.ts +169 -0
  191. package/src/operations/admin.ts +144 -0
  192. package/src/operations/ensures-schema-registry.ts +260 -0
  193. package/src/operations/entities.ts +758 -0
  194. package/src/operations/llm.ts +120 -8
  195. package/src/operations/output-contracts-data.ts +264 -0
  196. package/src/operations/service.ts +360 -0
  197. package/src/operations/tasks.ts +119 -0
  198. package/src/operations/validate.ts +1 -14
  199. package/src/playbook.ts +117 -0
  200. package/src/session.ts +11 -0
  201. package/src/tools/agent-tools.ts +270 -0
  202. package/src/tools/atomic.ts +21 -0
  203. package/src/tools/index.ts +46 -0
  204. package/src/tools/skill-executor.ts +7 -0
  205. package/src/tools/web-tools.ts +247 -0
  206. package/src/vault/service-provider.ts +1137 -0
  207. package/dist/tessera.d.ts +0 -32
  208. package/dist/tessera.d.ts.map +0 -1
  209. package/dist/tessera.js +0 -11
  210. package/dist/tessera.js.map +0 -1
  211. package/dist/warp-chain.d.ts +0 -129
  212. package/dist/warp-chain.d.ts.map +0 -1
  213. package/dist/warp-chain.js +0 -13
  214. package/dist/warp-chain.js.map +0 -1
  215. package/src/tessera.ts +0 -35
  216. package/src/warp-chain.ts +0 -185
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Zod mirror + TypeScript types for the curated models catalog (E8 · T11731).
3
+ *
4
+ * This is the type+validation SSoT for the **shipped, offline-first** provider+model
5
+ * catalog seed that populates the global `models_catalog` table (T11733) and backs
6
+ * offline/degraded catalog reads (T11737). It mirrors the JSON Schema in the sibling
7
+ * `catalog-schema.json` (draft 2020-12) one-to-one.
8
+ *
9
+ * ## Offline-first — NO network is implied by these types
10
+ *
11
+ * The {@link CuratedCatalog} shape describes a committed, build-time snapshot of the
12
+ * models.dev wire shape. Nothing here fetches; the network refresh op
13
+ * (`cleo llm refresh-catalog`) is a SEPARATE leaf. The seeder reads the bundled
14
+ * `curated-catalog.json` (validated against {@link curatedCatalogSchema}) and upserts
15
+ * every row offline.
16
+ *
17
+ * ## models_catalog row parity (AC4)
18
+ *
19
+ * {@link modelsCatalogRowSelectSchema} / {@link modelsCatalogRowInsertSchema} describe the
20
+ * FLATTENED per-row shape persisted in the `models_catalog` DB table — the json/cost/
21
+ * modalities sub-objects serialize to TEXT columns, booleans to `integer({mode:'boolean'})`.
22
+ * {@link flattenCatalogToRows} (in core) maps a {@link CuratedCatalog} → these rows.
23
+ *
24
+ * Contracts-purity (Gate 10): this module exports ONLY zod schemas (values) and
25
+ * `z.infer` types — no bodied runtime helpers. The flatten/seed logic lives in core.
26
+ *
27
+ * @module llm/catalog-schema
28
+ * @task T11731
29
+ * @epic T11694 (E8-CATALOG-CURATION)
30
+ */
31
+ import { z } from 'zod';
32
+ /** Legal `models_catalog.status` availability-lifecycle values. */
33
+ export declare const CATALOG_MODEL_STATUSES: readonly ["stable", "beta", "preview", "deprecated", "retired"];
34
+ /** TypeScript union of {@link CATALOG_MODEL_STATUSES}. */
35
+ export type CatalogModelStatus = (typeof CATALOG_MODEL_STATUSES)[number];
36
+ /** Legal provider auth mechanisms carried in a catalog provider entry. */
37
+ export declare const CATALOG_AUTH_TYPES: readonly ["api_key", "oauth", "bedrock", "vertex"];
38
+ /** TypeScript union of {@link CATALOG_AUTH_TYPES}. */
39
+ export type CatalogAuthType = (typeof CATALOG_AUTH_TYPES)[number];
40
+ /** Input/output modality lists for a model. */
41
+ export declare const catalogModalitiesSchema: z.ZodObject<{
42
+ input: z.ZodArray<z.ZodString>;
43
+ output: z.ZodArray<z.ZodString>;
44
+ }, z.core.$strict>;
45
+ /** Per-1M-token cost facets for a model (all optional — providers vary). */
46
+ export declare const catalogCostSchema: z.ZodObject<{
47
+ input: z.ZodOptional<z.ZodNumber>;
48
+ output: z.ZodOptional<z.ZodNumber>;
49
+ cache_read: z.ZodOptional<z.ZodNumber>;
50
+ cache_write: z.ZodOptional<z.ZodNumber>;
51
+ context_over_200k: z.ZodOptional<z.ZodNumber>;
52
+ }, z.core.$strict>;
53
+ /** Context/output token-window limits for a model. */
54
+ export declare const catalogLimitSchema: z.ZodObject<{
55
+ context: z.ZodNumber;
56
+ output: z.ZodNumber;
57
+ }, z.core.$strict>;
58
+ /** The provider-of-record (npm package + api protocol) for a model. */
59
+ export declare const catalogModelProviderSchema: z.ZodObject<{
60
+ npm: z.ZodString;
61
+ api: z.ZodString;
62
+ }, z.core.$strict>;
63
+ /** Full models.dev wire capability set for a single model entry. */
64
+ export declare const catalogModelEntrySchema: z.ZodObject<{
65
+ id: z.ZodString;
66
+ name: z.ZodString;
67
+ family: z.ZodString;
68
+ attachment: z.ZodBoolean;
69
+ reasoning: z.ZodBoolean;
70
+ temperature: z.ZodBoolean;
71
+ interleaved: z.ZodBoolean;
72
+ tool_call: z.ZodBoolean;
73
+ modalities: z.ZodObject<{
74
+ input: z.ZodArray<z.ZodString>;
75
+ output: z.ZodArray<z.ZodString>;
76
+ }, z.core.$strict>;
77
+ cost: z.ZodObject<{
78
+ input: z.ZodOptional<z.ZodNumber>;
79
+ output: z.ZodOptional<z.ZodNumber>;
80
+ cache_read: z.ZodOptional<z.ZodNumber>;
81
+ cache_write: z.ZodOptional<z.ZodNumber>;
82
+ context_over_200k: z.ZodOptional<z.ZodNumber>;
83
+ }, z.core.$strict>;
84
+ limit: z.ZodObject<{
85
+ context: z.ZodNumber;
86
+ output: z.ZodNumber;
87
+ }, z.core.$strict>;
88
+ status: z.ZodEnum<{
89
+ deprecated: "deprecated";
90
+ stable: "stable";
91
+ beta: "beta";
92
+ preview: "preview";
93
+ retired: "retired";
94
+ }>;
95
+ release_date: z.ZodString;
96
+ provider: z.ZodObject<{
97
+ npm: z.ZodString;
98
+ api: z.ZodString;
99
+ }, z.core.$strict>;
100
+ }, z.core.$strict>;
101
+ /** A provider record in the catalog envelope. */
102
+ export declare const catalogProviderSchema: z.ZodObject<{
103
+ id: z.ZodString;
104
+ endpoint: z.ZodString;
105
+ authTypes: z.ZodArray<z.ZodEnum<{
106
+ bedrock: "bedrock";
107
+ api_key: "api_key";
108
+ oauth: "oauth";
109
+ vertex: "vertex";
110
+ }>>;
111
+ npm: z.ZodOptional<z.ZodString>;
112
+ }, z.core.$strict>;
113
+ /**
114
+ * Top-level shape of the curated catalog seed (`curated-catalog.json`).
115
+ *
116
+ * `providers` is keyed by provider id; `models` is keyed by provider id → model id →
117
+ * {@link catalogModelEntrySchema}.
118
+ */
119
+ export declare const curatedCatalogSchema: z.ZodObject<{
120
+ $schema: z.ZodOptional<z.ZodString>;
121
+ version: z.ZodString;
122
+ lastUpdated: z.ZodString;
123
+ providers: z.ZodRecord<z.ZodString, z.ZodObject<{
124
+ id: z.ZodString;
125
+ endpoint: z.ZodString;
126
+ authTypes: z.ZodArray<z.ZodEnum<{
127
+ bedrock: "bedrock";
128
+ api_key: "api_key";
129
+ oauth: "oauth";
130
+ vertex: "vertex";
131
+ }>>;
132
+ npm: z.ZodOptional<z.ZodString>;
133
+ }, z.core.$strict>>;
134
+ models: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodObject<{
135
+ id: z.ZodString;
136
+ name: z.ZodString;
137
+ family: z.ZodString;
138
+ attachment: z.ZodBoolean;
139
+ reasoning: z.ZodBoolean;
140
+ temperature: z.ZodBoolean;
141
+ interleaved: z.ZodBoolean;
142
+ tool_call: z.ZodBoolean;
143
+ modalities: z.ZodObject<{
144
+ input: z.ZodArray<z.ZodString>;
145
+ output: z.ZodArray<z.ZodString>;
146
+ }, z.core.$strict>;
147
+ cost: z.ZodObject<{
148
+ input: z.ZodOptional<z.ZodNumber>;
149
+ output: z.ZodOptional<z.ZodNumber>;
150
+ cache_read: z.ZodOptional<z.ZodNumber>;
151
+ cache_write: z.ZodOptional<z.ZodNumber>;
152
+ context_over_200k: z.ZodOptional<z.ZodNumber>;
153
+ }, z.core.$strict>;
154
+ limit: z.ZodObject<{
155
+ context: z.ZodNumber;
156
+ output: z.ZodNumber;
157
+ }, z.core.$strict>;
158
+ status: z.ZodEnum<{
159
+ deprecated: "deprecated";
160
+ stable: "stable";
161
+ beta: "beta";
162
+ preview: "preview";
163
+ retired: "retired";
164
+ }>;
165
+ release_date: z.ZodString;
166
+ provider: z.ZodObject<{
167
+ npm: z.ZodString;
168
+ api: z.ZodString;
169
+ }, z.core.$strict>;
170
+ }, z.core.$strict>>>;
171
+ }, z.core.$strict>;
172
+ /** The validated curated catalog seed shape. */
173
+ export type CuratedCatalog = z.infer<typeof curatedCatalogSchema>;
174
+ /** A single model entry from the curated catalog. */
175
+ export type CatalogModelEntry = z.infer<typeof catalogModelEntrySchema>;
176
+ /** A single provider entry from the curated catalog. */
177
+ export type CatalogProvider = z.infer<typeof catalogProviderSchema>;
178
+ /**
179
+ * INSERT/UPSERT shape for one `models_catalog` row (the flattened persistence form).
180
+ *
181
+ * The catalog's nested `modalities` / `cost` sub-objects are JSON-serialized into the
182
+ * `modalities` / `cost` TEXT columns; booleans persist as `integer({mode:'boolean'})`.
183
+ * `provider_id` is the catalog key; `models_dev_id` mirrors the entry `id`.
184
+ */
185
+ export declare const modelsCatalogRowInsertSchema: z.ZodObject<{
186
+ id: z.ZodString;
187
+ providerId: z.ZodString;
188
+ name: z.ZodString;
189
+ family: z.ZodString;
190
+ attachment: z.ZodBoolean;
191
+ reasoning: z.ZodBoolean;
192
+ temperature: z.ZodBoolean;
193
+ interleaved: z.ZodBoolean;
194
+ toolCall: z.ZodBoolean;
195
+ modalities: z.ZodString;
196
+ cost: z.ZodString;
197
+ contextLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
198
+ outputLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
199
+ status: z.ZodEnum<{
200
+ deprecated: "deprecated";
201
+ stable: "stable";
202
+ beta: "beta";
203
+ preview: "preview";
204
+ retired: "retired";
205
+ }>;
206
+ releaseDate: z.ZodString;
207
+ modelsDevId: z.ZodString;
208
+ source: z.ZodString;
209
+ seededAt: z.ZodOptional<z.ZodString>;
210
+ }, z.core.$strict>;
211
+ /** SELECT shape for one `models_catalog` row (adds the always-present `seededAt`). */
212
+ export declare const modelsCatalogRowSelectSchema: z.ZodObject<{
213
+ id: z.ZodString;
214
+ providerId: z.ZodString;
215
+ name: z.ZodString;
216
+ family: z.ZodString;
217
+ attachment: z.ZodBoolean;
218
+ reasoning: z.ZodBoolean;
219
+ temperature: z.ZodBoolean;
220
+ interleaved: z.ZodBoolean;
221
+ toolCall: z.ZodBoolean;
222
+ modalities: z.ZodString;
223
+ cost: z.ZodString;
224
+ contextLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
225
+ outputLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
226
+ status: z.ZodEnum<{
227
+ deprecated: "deprecated";
228
+ stable: "stable";
229
+ beta: "beta";
230
+ preview: "preview";
231
+ retired: "retired";
232
+ }>;
233
+ releaseDate: z.ZodString;
234
+ modelsDevId: z.ZodString;
235
+ source: z.ZodString;
236
+ seededAt: z.ZodString;
237
+ }, z.core.$strict>;
238
+ /** INSERT/UPSERT row type for `models_catalog`. */
239
+ export type ModelsCatalogRowInsert = z.infer<typeof modelsCatalogRowInsertSchema>;
240
+ /** SELECT row type for `models_catalog`. */
241
+ export type ModelsCatalogRowSelect = z.infer<typeof modelsCatalogRowSelectSchema>;
242
+ //# sourceMappingURL=catalog-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-schema.d.ts","sourceRoot":"","sources":["../../src/llm/catalog-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,iEAMzB,CAAC;AAEX,0DAA0D;AAC1D,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,oDAAqD,CAAC;AAErF,sDAAsD;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAQlE,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB;;;kBAKzB,CAAC;AAEZ,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB;;;;;;kBAQnB,CAAC;AAEZ,sDAAsD;AACtD,eAAO,MAAM,kBAAkB;;;kBAKpB,CAAC;AAEZ,uEAAuE;AACvE,eAAO,MAAM,0BAA0B;;;kBAK5B,CAAC;AAEZ,oEAAoE;AACpE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiBzB,CAAC;AAEZ,iDAAiD;AACjD,eAAO,MAAM,qBAAqB;;;;;;;;;;kBAOvB,CAAC;AAEZ;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQtB,CAAC;AAEZ,gDAAgD;AAChD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;kBAqB9B,CAAC;AAEZ,sFAAsF;AACtF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;kBAEvC,CAAC;AAEH,mDAAmD;AACnD,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,4CAA4C;AAC5C,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Zod mirror + TypeScript types for the curated models catalog (E8 · T11731).
3
+ *
4
+ * This is the type+validation SSoT for the **shipped, offline-first** provider+model
5
+ * catalog seed that populates the global `models_catalog` table (T11733) and backs
6
+ * offline/degraded catalog reads (T11737). It mirrors the JSON Schema in the sibling
7
+ * `catalog-schema.json` (draft 2020-12) one-to-one.
8
+ *
9
+ * ## Offline-first — NO network is implied by these types
10
+ *
11
+ * The {@link CuratedCatalog} shape describes a committed, build-time snapshot of the
12
+ * models.dev wire shape. Nothing here fetches; the network refresh op
13
+ * (`cleo llm refresh-catalog`) is a SEPARATE leaf. The seeder reads the bundled
14
+ * `curated-catalog.json` (validated against {@link curatedCatalogSchema}) and upserts
15
+ * every row offline.
16
+ *
17
+ * ## models_catalog row parity (AC4)
18
+ *
19
+ * {@link modelsCatalogRowSelectSchema} / {@link modelsCatalogRowInsertSchema} describe the
20
+ * FLATTENED per-row shape persisted in the `models_catalog` DB table — the json/cost/
21
+ * modalities sub-objects serialize to TEXT columns, booleans to `integer({mode:'boolean'})`.
22
+ * {@link flattenCatalogToRows} (in core) maps a {@link CuratedCatalog} → these rows.
23
+ *
24
+ * Contracts-purity (Gate 10): this module exports ONLY zod schemas (values) and
25
+ * `z.infer` types — no bodied runtime helpers. The flatten/seed logic lives in core.
26
+ *
27
+ * @module llm/catalog-schema
28
+ * @task T11731
29
+ * @epic T11694 (E8-CATALOG-CURATION)
30
+ */
31
+ import { z } from 'zod';
32
+ /** Legal `models_catalog.status` availability-lifecycle values. */
33
+ export const CATALOG_MODEL_STATUSES = [
34
+ 'stable',
35
+ 'beta',
36
+ 'preview',
37
+ 'deprecated',
38
+ 'retired',
39
+ ];
40
+ /** Legal provider auth mechanisms carried in a catalog provider entry. */
41
+ export const CATALOG_AUTH_TYPES = ['api_key', 'oauth', 'bedrock', 'vertex'];
42
+ /** ISO date `YYYY-MM-DD` matcher (the catalog sort/version key shape). */
43
+ const isoDate = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, 'must be an ISO date (YYYY-MM-DD)');
44
+ /** Semver `MAJOR.MINOR.PATCH` matcher for the catalog snapshot version. */
45
+ const semver = z.string().regex(/^\d+\.\d+\.\d+$/, 'must be semver (MAJOR.MINOR.PATCH)');
46
+ /** Input/output modality lists for a model. */
47
+ export const catalogModalitiesSchema = z
48
+ .object({
49
+ input: z.array(z.string()),
50
+ output: z.array(z.string()),
51
+ })
52
+ .strict();
53
+ /** Per-1M-token cost facets for a model (all optional — providers vary). */
54
+ export const catalogCostSchema = z
55
+ .object({
56
+ input: z.number().optional(),
57
+ output: z.number().optional(),
58
+ cache_read: z.number().optional(),
59
+ cache_write: z.number().optional(),
60
+ context_over_200k: z.number().optional(),
61
+ })
62
+ .strict();
63
+ /** Context/output token-window limits for a model. */
64
+ export const catalogLimitSchema = z
65
+ .object({
66
+ context: z.number(),
67
+ output: z.number(),
68
+ })
69
+ .strict();
70
+ /** The provider-of-record (npm package + api protocol) for a model. */
71
+ export const catalogModelProviderSchema = z
72
+ .object({
73
+ npm: z.string(),
74
+ api: z.string(),
75
+ })
76
+ .strict();
77
+ /** Full models.dev wire capability set for a single model entry. */
78
+ export const catalogModelEntrySchema = z
79
+ .object({
80
+ id: z.string(),
81
+ name: z.string(),
82
+ family: z.string(),
83
+ attachment: z.boolean(),
84
+ reasoning: z.boolean(),
85
+ temperature: z.boolean(),
86
+ interleaved: z.boolean(),
87
+ tool_call: z.boolean(),
88
+ modalities: catalogModalitiesSchema,
89
+ cost: catalogCostSchema,
90
+ limit: catalogLimitSchema,
91
+ status: z.enum(CATALOG_MODEL_STATUSES),
92
+ release_date: isoDate,
93
+ provider: catalogModelProviderSchema,
94
+ })
95
+ .strict();
96
+ /** A provider record in the catalog envelope. */
97
+ export const catalogProviderSchema = z
98
+ .object({
99
+ id: z.string(),
100
+ endpoint: z.string(),
101
+ authTypes: z.array(z.enum(CATALOG_AUTH_TYPES)).min(1),
102
+ npm: z.string().optional(),
103
+ })
104
+ .strict();
105
+ /**
106
+ * Top-level shape of the curated catalog seed (`curated-catalog.json`).
107
+ *
108
+ * `providers` is keyed by provider id; `models` is keyed by provider id → model id →
109
+ * {@link catalogModelEntrySchema}.
110
+ */
111
+ export const curatedCatalogSchema = z
112
+ .object({
113
+ $schema: z.string().optional(),
114
+ version: semver,
115
+ lastUpdated: isoDate,
116
+ providers: z.record(z.string(), catalogProviderSchema),
117
+ models: z.record(z.string(), z.record(z.string(), catalogModelEntrySchema)),
118
+ })
119
+ .strict();
120
+ /**
121
+ * INSERT/UPSERT shape for one `models_catalog` row (the flattened persistence form).
122
+ *
123
+ * The catalog's nested `modalities` / `cost` sub-objects are JSON-serialized into the
124
+ * `modalities` / `cost` TEXT columns; booleans persist as `integer({mode:'boolean'})`.
125
+ * `provider_id` is the catalog key; `models_dev_id` mirrors the entry `id`.
126
+ */
127
+ export const modelsCatalogRowInsertSchema = z
128
+ .object({
129
+ id: z.string(),
130
+ providerId: z.string(),
131
+ name: z.string(),
132
+ family: z.string(),
133
+ attachment: z.boolean(),
134
+ reasoning: z.boolean(),
135
+ temperature: z.boolean(),
136
+ interleaved: z.boolean(),
137
+ toolCall: z.boolean(),
138
+ modalities: z.string(),
139
+ cost: z.string(),
140
+ contextLimit: z.number().nullable().optional(),
141
+ outputLimit: z.number().nullable().optional(),
142
+ status: z.enum(CATALOG_MODEL_STATUSES),
143
+ releaseDate: isoDate,
144
+ modelsDevId: z.string(),
145
+ source: z.string(),
146
+ seededAt: z.string().optional(),
147
+ })
148
+ .strict();
149
+ /** SELECT shape for one `models_catalog` row (adds the always-present `seededAt`). */
150
+ export const modelsCatalogRowSelectSchema = modelsCatalogRowInsertSchema.extend({
151
+ seededAt: z.string(),
152
+ });
153
+ //# sourceMappingURL=catalog-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-schema.js","sourceRoot":"","sources":["../../src/llm/catalog-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://cleocode.dev/schemas/llm/curated-catalog.json",
4
+ "title": "Curated Models Catalog",
5
+ "description": "The shipped, offline-first provider+model catalog seed (E8 · T11731). One self-contained snapshot of the models.dev wire shape that seeds the global `models_catalog` table and backs offline/degraded reads. NO network access is implied by this file — it is the build-time committed mirror.",
6
+ "type": "object",
7
+ "required": ["version", "lastUpdated", "providers", "models"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "$schema": { "type": "string" },
11
+ "version": {
12
+ "type": "string",
13
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
14
+ "description": "Semver version of this catalog snapshot. Bumped on every regeneration; drives the seeder skip/re-seed decision."
15
+ },
16
+ "lastUpdated": {
17
+ "type": "string",
18
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
19
+ "description": "ISO date (YYYY-MM-DD) the snapshot was generated."
20
+ },
21
+ "providers": {
22
+ "type": "object",
23
+ "description": "Provider records keyed by models.dev provider id (e.g. `anthropic`, `openai`, `google`).",
24
+ "additionalProperties": {
25
+ "type": "object",
26
+ "required": ["id", "endpoint", "authTypes"],
27
+ "additionalProperties": false,
28
+ "properties": {
29
+ "id": { "type": "string", "description": "Provider id (matches the map key)." },
30
+ "endpoint": {
31
+ "type": "string",
32
+ "description": "Provider API base URL (e.g. `https://api.anthropic.com`)."
33
+ },
34
+ "authTypes": {
35
+ "type": "array",
36
+ "description": "Supported auth mechanisms keyed by provider id.",
37
+ "items": { "type": "string", "enum": ["api_key", "oauth", "bedrock", "vertex"] },
38
+ "minItems": 1
39
+ },
40
+ "npm": {
41
+ "type": "string",
42
+ "description": "Provider SDK npm package, when applicable (e.g. `@anthropic-ai/sdk`)."
43
+ }
44
+ }
45
+ }
46
+ },
47
+ "models": {
48
+ "type": "object",
49
+ "description": "Model entries keyed by provider id; each value is a map of model-id → model entry.",
50
+ "additionalProperties": {
51
+ "type": "object",
52
+ "additionalProperties": {
53
+ "$ref": "#/$defs/modelEntry"
54
+ }
55
+ }
56
+ }
57
+ },
58
+ "$defs": {
59
+ "modelEntry": {
60
+ "type": "object",
61
+ "description": "Full models.dev wire capability set for a single model.",
62
+ "required": [
63
+ "id",
64
+ "name",
65
+ "family",
66
+ "attachment",
67
+ "reasoning",
68
+ "temperature",
69
+ "interleaved",
70
+ "tool_call",
71
+ "modalities",
72
+ "cost",
73
+ "limit",
74
+ "status",
75
+ "release_date",
76
+ "provider"
77
+ ],
78
+ "additionalProperties": false,
79
+ "properties": {
80
+ "id": { "type": "string", "description": "Model identifier (e.g. `claude-haiku-4-5`)." },
81
+ "name": { "type": "string", "description": "Human-readable display name." },
82
+ "family": { "type": "string", "description": "Model family (e.g. `claude`, `gpt`, `gemini`)." },
83
+ "attachment": { "type": "boolean", "description": "Supports file/image attachments." },
84
+ "reasoning": { "type": "boolean", "description": "Supports extended reasoning / thinking." },
85
+ "temperature": { "type": "boolean", "description": "Honours a temperature parameter." },
86
+ "interleaved": { "type": "boolean", "description": "Supports interleaved thinking blocks." },
87
+ "tool_call": { "type": "boolean", "description": "Supports tool/function calling." },
88
+ "modalities": {
89
+ "type": "object",
90
+ "required": ["input", "output"],
91
+ "additionalProperties": false,
92
+ "properties": {
93
+ "input": { "type": "array", "items": { "type": "string" } },
94
+ "output": { "type": "array", "items": { "type": "string" } }
95
+ }
96
+ },
97
+ "cost": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "properties": {
101
+ "input": { "type": "number" },
102
+ "output": { "type": "number" },
103
+ "cache_read": { "type": "number" },
104
+ "cache_write": { "type": "number" },
105
+ "context_over_200k": { "type": "number" }
106
+ }
107
+ },
108
+ "limit": {
109
+ "type": "object",
110
+ "required": ["context", "output"],
111
+ "additionalProperties": false,
112
+ "properties": {
113
+ "context": { "type": "number", "description": "Max context window (tokens)." },
114
+ "output": { "type": "number", "description": "Max output tokens." }
115
+ }
116
+ },
117
+ "status": {
118
+ "type": "string",
119
+ "enum": ["stable", "beta", "preview", "deprecated", "retired"],
120
+ "description": "Availability lifecycle of the model."
121
+ },
122
+ "release_date": {
123
+ "type": "string",
124
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
125
+ "description": "ISO release date (YYYY-MM-DD). The SSoT sort key — latest wins."
126
+ },
127
+ "provider": {
128
+ "type": "object",
129
+ "required": ["npm", "api"],
130
+ "additionalProperties": false,
131
+ "properties": {
132
+ "npm": { "type": "string" },
133
+ "api": { "type": "string" }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `@cleocode/contracts/llm` — LLM contract subpath barrel.
3
+ *
4
+ * Re-exports the declarative provider contracts so consumers can import from the
5
+ * `./llm` subpath (`@cleocode/contracts/llm`) in addition to the package root.
6
+ * Currently fronts the M3 Provider SSoT {@link ProviderDef} contract (T11702);
7
+ * other `llm/*` modules continue to export from the package root barrel.
8
+ *
9
+ * @module llm
10
+ * @task T11702
11
+ * @epic T11667
12
+ */
13
+ export type { AiSdkEndpoint, AnthropicMessagesEndpoint, OAuthFlowDef, OpenAICompletionsEndpoint, OpenAIResponsesEndpoint, ProviderDef, ProviderEndpoint, ProviderTransport, RequestQuirk, RequestQuirkKind, } from './provider-def.js';
14
+ export { PROVIDER_TRANSPORTS, REQUEST_QUIRK_KINDS, } from './provider-def.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,aAAa,EACb,yBAAyB,EACzB,YAAY,EACZ,yBAAyB,EACzB,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `@cleocode/contracts/llm` — LLM contract subpath barrel.
3
+ *
4
+ * Re-exports the declarative provider contracts so consumers can import from the
5
+ * `./llm` subpath (`@cleocode/contracts/llm`) in addition to the package root.
6
+ * Currently fronts the M3 Provider SSoT {@link ProviderDef} contract (T11702);
7
+ * other `llm/*` modules continue to export from the package root barrel.
8
+ *
9
+ * @module llm
10
+ * @task T11702
11
+ * @epic T11667
12
+ */
13
+ export { PROVIDER_TRANSPORTS, REQUEST_QUIRK_KINDS, } from './provider-def.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
@@ -137,6 +137,29 @@ export interface SendOptions {
137
137
  * Transports MUST ignore flags they do not recognise.
138
138
  */
139
139
  readonly providerFlags?: Readonly<Record<string, unknown>>;
140
+ /**
141
+ * Tools the model may call on this call (OpenAI-format {@link TransportTool}[]).
142
+ *
143
+ * When supplied, the session forwards them onto the {@link TransportRequest.tools}
144
+ * surface so the wire-level transport advertises them to the model. This is the
145
+ * per-call hook the in-process Pi embed threads its `Context.tools` through — the
146
+ * registry's `toOpenAITools()` output reaches the model via `streamFn` →
147
+ * `SendOptions.tools` → `TransportRequest.tools`. Omit (or pass empty) for a
148
+ * tool-free call. Transports that do not support tools MUST ignore it.
149
+ */
150
+ readonly tools?: readonly TransportTool[];
151
+ /**
152
+ * Cancellation signal for this call.
153
+ *
154
+ * When supplied, a streaming consumer MUST stop iterating and tear the
155
+ * underlying iterator down once the signal aborts — even when the wire-level
156
+ * transport does not itself observe the signal. This is the per-call hook the
157
+ * in-process Pi embed threads its loop-abort through so a detached stream
158
+ * producer cannot outlive the call that started it (T11898). Transports that
159
+ * do not consume it MUST ignore it (matching the {@link providerFlags}
160
+ * "ignore-unknown" contract).
161
+ */
162
+ readonly signal?: AbortSignal;
140
163
  }
141
164
  /**
142
165
  * Stateful per-conversation LLM session.
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/llm/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/llm/interfaces.ts"],"names":[],"mappings":"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"}