openmerit 0.1.4 → 0.1.6-preview.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 (147) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +121 -386
  3. package/dist/core/src/index.d.ts +101 -0
  4. package/dist/core/src/index.js +1649 -0
  5. package/dist/core/src/store.d.ts +35 -0
  6. package/dist/core/src/store.js +102 -0
  7. package/dist/pi/src/index.d.ts +32 -0
  8. package/dist/pi/src/index.js +794 -0
  9. package/dist/pi/src/scheduler.d.ts +11 -0
  10. package/dist/pi/src/scheduler.js +137 -0
  11. package/dist/pi/src/wakeup.d.ts +2 -0
  12. package/dist/pi/src/wakeup.js +108 -0
  13. package/dist/protocol/src/index.d.ts +484 -0
  14. package/dist/protocol/src/index.js +47 -0
  15. package/dist/protocol/src/schemas.d.ts +576 -0
  16. package/dist/protocol/src/schemas.js +280 -0
  17. package/dist/terminal/public/app.js +297 -0
  18. package/dist/terminal/public/brands/anthropic.png +0 -0
  19. package/dist/terminal/public/brands/baai.png +0 -0
  20. package/dist/terminal/public/brands/baseten.png +0 -0
  21. package/dist/terminal/public/brands/cerebras.png +0 -0
  22. package/dist/terminal/public/brands/cohere.png +0 -0
  23. package/dist/terminal/public/brands/deepseek.ico +0 -0
  24. package/dist/terminal/public/brands/google.png +0 -0
  25. package/dist/terminal/public/brands/groq.ico +0 -0
  26. package/dist/terminal/public/brands/lm-studio.png +0 -0
  27. package/dist/terminal/public/brands/meta.ico +0 -0
  28. package/dist/terminal/public/brands/mistral.png +0 -0
  29. package/dist/terminal/public/brands/nomic.png +0 -0
  30. package/dist/terminal/public/brands/ollama.png +0 -0
  31. package/dist/terminal/public/brands/openai.png +0 -0
  32. package/dist/terminal/public/brands/openrouter.png +0 -0
  33. package/dist/terminal/public/brands/qwen.png +0 -0
  34. package/dist/terminal/public/brands/vllm.ico +0 -0
  35. package/dist/terminal/public/brands/vllm.png +0 -0
  36. package/dist/terminal/public/favicon.svg +1 -0
  37. package/dist/terminal/public/flow.css +1 -0
  38. package/dist/terminal/public/flow.js +770 -0
  39. package/dist/terminal/public/index.html +21 -0
  40. package/dist/terminal/public/styles.css +779 -0
  41. package/dist/terminal/src/activity-merge.mjs +64 -0
  42. package/dist/terminal/src/browser.mjs +29 -0
  43. package/dist/terminal/src/cli.mjs +60 -0
  44. package/dist/terminal/src/collect.mjs +311 -0
  45. package/dist/terminal/src/discovery.mjs +93 -0
  46. package/dist/terminal/src/hardware.mjs +57 -0
  47. package/dist/terminal/src/project-activity.mjs +156 -0
  48. package/dist/terminal/src/sample.mjs +171 -0
  49. package/dist/terminal/src/server.mjs +56 -0
  50. package/dist/terminal/src/services.mjs +62 -0
  51. package/dist/terminal/src/topology.mjs +30 -0
  52. package/docs/adapter-guide.md +189 -0
  53. package/docs/architecture.md +59 -0
  54. package/docs/automation.md +74 -0
  55. package/docs/budgets.md +37 -0
  56. package/docs/commands.md +85 -0
  57. package/docs/demo-backfill.md +29 -0
  58. package/docs/demo-fieldkit.md +47 -0
  59. package/docs/demo-placement.md +30 -0
  60. package/docs/demo-spam.md +15 -0
  61. package/docs/demo-support.md +42 -0
  62. package/docs/demo.md +57 -0
  63. package/docs/first-trial.md +60 -0
  64. package/docs/getting-started.md +65 -0
  65. package/docs/index.md +40 -0
  66. package/docs/inference-terminal.md +439 -0
  67. package/docs/lifecycle.md +30 -0
  68. package/docs/memo.md +126 -0
  69. package/docs/metrics-and-evidence.md +48 -0
  70. package/docs/operations.md +40 -0
  71. package/docs/pareto-spec.md +76 -0
  72. package/docs/pi-extension.md +54 -0
  73. package/docs/roadmap.md +28 -0
  74. package/docs/security.md +37 -0
  75. package/docs/site-artwork-linocut.md +23 -0
  76. package/docs/site-artwork-miniature-diverse.md +28 -0
  77. package/docs/site-artwork-miniature.md +26 -0
  78. package/docs/site-demo.md +177 -0
  79. package/docs/site-design.md +94 -0
  80. package/docs/site-documentation.md +83 -0
  81. package/docs/site-dynamic-og.md +35 -0
  82. package/docs/site-faq-maintenance.md +115 -0
  83. package/docs/site-hero-resolution.md +60 -0
  84. package/docs/site-illustration-sequences.md +227 -0
  85. package/docs/site-inference-terminal.md +203 -0
  86. package/docs/site-memo.md +39 -0
  87. package/docs/site-og-image.md +38 -0
  88. package/docs/site-og-workshop.md +21 -0
  89. package/docs/site-section-artwork.md +56 -0
  90. package/docs/site-skill-review.md +57 -0
  91. package/docs/site-terminal-preview.md +85 -0
  92. package/docs/testing.md +118 -0
  93. package/docs/troubleshooting.md +55 -0
  94. package/docs/ux-reference.md +32 -0
  95. package/package.json +74 -42
  96. package/benchmark/invoice_ocr/data/invoice_01_ground_truth.json +0 -38
  97. package/benchmark/invoice_ocr/data/invoice_01_row_2.jpg +0 -0
  98. package/benchmark/invoice_ocr/data/invoice_02_ground_truth.json +0 -32
  99. package/benchmark/invoice_ocr/data/invoice_02_row_5.jpg +0 -0
  100. package/benchmark/invoice_ocr/data/invoice_03_ground_truth.json +0 -26
  101. package/benchmark/invoice_ocr/data/invoice_03_row_6.jpg +0 -0
  102. package/benchmark/invoice_ocr/data/invoice_04_ground_truth.json +0 -26
  103. package/benchmark/invoice_ocr/data/invoice_04_row_7.jpg +0 -0
  104. package/benchmark/invoice_ocr/data/invoice_05_ground_truth.json +0 -38
  105. package/benchmark/invoice_ocr/data/invoice_05_row_947.jpg +0 -0
  106. package/benchmark/invoice_ocr/data/invoice_06_ground_truth.json +0 -38
  107. package/benchmark/invoice_ocr/data/invoice_06_row_948.jpg +0 -0
  108. package/benchmark/invoice_ocr/data/invoice_07_ground_truth.json +0 -20
  109. package/benchmark/invoice_ocr/data/invoice_07_row_949.jpg +0 -0
  110. package/benchmark/invoice_ocr/data/invoice_08_ground_truth.json +0 -38
  111. package/benchmark/invoice_ocr/data/invoice_08_row_1888.jpg +0 -0
  112. package/benchmark/invoice_ocr/data/invoice_09_ground_truth.json +0 -26
  113. package/benchmark/invoice_ocr/data/invoice_09_row_1890.jpg +0 -0
  114. package/benchmark/invoice_ocr/data/invoice_10_ground_truth.json +0 -20
  115. package/benchmark/invoice_ocr/data/invoice_10_row_1892.jpg +0 -0
  116. package/benchmark/invoice_ocr/data/manifest.json +0 -97
  117. package/dist/benchmarks.js +0 -98
  118. package/dist/catalog.js +0 -61
  119. package/dist/cli.js +0 -188
  120. package/dist/daemon.js +0 -407
  121. package/dist/diagnostics.js +0 -227
  122. package/dist/frontier.js +0 -56
  123. package/dist/harness.js +0 -1
  124. package/dist/integrations.js +0 -19
  125. package/dist/invoice-eval.js +0 -33
  126. package/dist/invoice-score.js +0 -124
  127. package/dist/judge.js +0 -43
  128. package/dist/llm.js +0 -207
  129. package/dist/pi-config.js +0 -46
  130. package/dist/pi-trials.js +0 -373
  131. package/dist/policy.js +0 -185
  132. package/dist/providers.js +0 -1
  133. package/dist/recommend.js +0 -76
  134. package/dist/routes.js +0 -74
  135. package/dist/standalone.js +0 -224
  136. package/dist/store.js +0 -89
  137. package/dist/strategist.js +0 -68
  138. package/dist/task-input.js +0 -54
  139. package/dist/traces.js +0 -127
  140. package/dist/trials.js +0 -140
  141. package/dist/types.js +0 -2
  142. package/examples/invoice-prompt.txt +0 -19
  143. package/examples/task.example.json +0 -7
  144. package/extension/openmerit.ts +0 -947
  145. package/instructions/OPENMERIT.md +0 -63
  146. package/instructions/openmerit.policy.json +0 -37
  147. package/rules.md +0 -43
@@ -0,0 +1,576 @@
1
+ import { Type, type TSchema } from "typebox";
2
+ import type { IntentKind } from "./index.ts";
3
+ export declare const OPENMERIT_SCHEMA_DIALECT: "https://json-schema.org/draft/2020-12/schema";
4
+ export declare const OPENMERIT_RESULT_SCHEMA_VERSION: "0.2";
5
+ export declare const EvidenceReferenceSchema: Type.TObject<{
6
+ id: Type.TString;
7
+ source: Type.TUnion<Type.TLiteral<string>[]>;
8
+ uri: Type.TString;
9
+ mediaType: Type.TOptional<Type.TString>;
10
+ digest: Type.TOptional<Type.TString>;
11
+ }>;
12
+ export declare const MetricObjectiveSchema: Type.TObject<{
13
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
14
+ required: Type.TBoolean;
15
+ minimumSamples: Type.TInteger;
16
+ tolerance: Type.TNumber;
17
+ samplingPlan: Type.TObject<{
18
+ strategy: Type.TUnion<Type.TLiteral<string>[]>;
19
+ representativeCaseCount: Type.TInteger;
20
+ repetitionsPerCase: Type.TInteger;
21
+ aggregation: Type.TUnion<Type.TLiteral<string>[]>;
22
+ rationale: Type.TString;
23
+ }>;
24
+ constraint: Type.TOptional<Type.TObject<{
25
+ operator: Type.TUnion<Type.TLiteral<string>[]>;
26
+ value: Type.TNumber;
27
+ }>>;
28
+ }>;
29
+ export declare const ApplicationLlmTargetSchema: Type.TObject<{
30
+ id: Type.TString;
31
+ kind: Type.TLiteral<"application_llm_call">;
32
+ name: Type.TString;
33
+ applicationId: Type.TString;
34
+ callSites: Type.TArray<Type.TString>;
35
+ routeKey: Type.TString;
36
+ confirmedAt: Type.TString;
37
+ }>;
38
+ export declare const TaskProfileSchema: Type.TObject<{
39
+ id: Type.TString;
40
+ revision: Type.TInteger;
41
+ name: Type.TString;
42
+ goal: Type.TString;
43
+ applicationTarget: Type.TObject<{
44
+ id: Type.TString;
45
+ kind: Type.TLiteral<"application_llm_call">;
46
+ name: Type.TString;
47
+ applicationId: Type.TString;
48
+ callSites: Type.TArray<Type.TString>;
49
+ routeKey: Type.TString;
50
+ confirmedAt: Type.TString;
51
+ }>;
52
+ objectives: Type.TArray<Type.TObject<{
53
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
54
+ required: Type.TBoolean;
55
+ minimumSamples: Type.TInteger;
56
+ tolerance: Type.TNumber;
57
+ samplingPlan: Type.TObject<{
58
+ strategy: Type.TUnion<Type.TLiteral<string>[]>;
59
+ representativeCaseCount: Type.TInteger;
60
+ repetitionsPerCase: Type.TInteger;
61
+ aggregation: Type.TUnion<Type.TLiteral<string>[]>;
62
+ rationale: Type.TString;
63
+ }>;
64
+ constraint: Type.TOptional<Type.TObject<{
65
+ operator: Type.TUnion<Type.TLiteral<string>[]>;
66
+ value: Type.TNumber;
67
+ }>>;
68
+ }>>;
69
+ createdAt: Type.TString;
70
+ confirmedAt: Type.TOptional<Type.TString>;
71
+ }>;
72
+ export declare const ObservabilityCoverageSchema: Type.TObject<{
73
+ targetId: Type.TString;
74
+ status: Type.TUnion<Type.TLiteral<string>[]>;
75
+ requiredMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
76
+ coveredMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
77
+ missingMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
78
+ checkedAt: Type.TString;
79
+ }>;
80
+ export declare const SupervisedGraduationPolicySchema: Type.TObject<{
81
+ mode: Type.TLiteral<"supervised_graduation">;
82
+ evaluationBudget: Type.TObject<{
83
+ currency: Type.TString;
84
+ maximumSpend: Type.TNumber;
85
+ maximumCandidateCount: Type.TOptional<Type.TInteger>;
86
+ maximumRunsPerCandidate: Type.TOptional<Type.TInteger>;
87
+ expiresAt: Type.TOptional<Type.TString>;
88
+ }>;
89
+ automaticSwapsEnabled: Type.TBoolean;
90
+ confirmationRequiredUntilVerifiedSwaps: Type.TInteger;
91
+ requirePostSwapVerification: Type.TLiteral<true>;
92
+ rollbackOnRegression: Type.TBoolean;
93
+ checkPolicy: Type.TObject<{
94
+ baselineAssessment: Type.TObject<{
95
+ afterCompletedTasks: Type.TOptional<Type.TInteger>;
96
+ afterElapsedSeconds: Type.TOptional<Type.TInteger>;
97
+ }>;
98
+ frontierReassessment: Type.TObject<{
99
+ afterCompletedTasks: Type.TOptional<Type.TInteger>;
100
+ afterElapsedSeconds: Type.TOptional<Type.TInteger>;
101
+ onModelCatalogChange: Type.TBoolean;
102
+ }>;
103
+ regressionCheck: Type.TObject<{
104
+ afterCompletedTasks: Type.TOptional<Type.TInteger>;
105
+ afterElapsedSeconds: Type.TOptional<Type.TInteger>;
106
+ thresholds: Type.TArray<Type.TObject<{
107
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
108
+ relativeChangeAtLeast: Type.TNumber;
109
+ }>>;
110
+ }>;
111
+ postSwapVerification: Type.TObject<{
112
+ afterCompletedTasks: Type.TOptional<Type.TInteger>;
113
+ afterElapsedSeconds: Type.TOptional<Type.TInteger>;
114
+ }>;
115
+ cooldownSeconds: Type.TInteger;
116
+ execution: Type.TObject<{
117
+ mode: Type.TUnion<Type.TLiteral<string>[]>;
118
+ infrastructureChangesAllowed: Type.TBoolean;
119
+ }>;
120
+ }>;
121
+ }>;
122
+ export declare const MetricRecordSchema: Type.TObject<{
123
+ targetId: Type.TString;
124
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
125
+ state: Type.TUnion<Type.TLiteral<string>[]>;
126
+ scope: Type.TUnion<Type.TLiteral<string>[]>;
127
+ direction: Type.TUnion<Type.TLiteral<string>[]>;
128
+ method: Type.TUnion<Type.TLiteral<string>[]>;
129
+ aggregation: Type.TUnion<Type.TLiteral<string>[]>;
130
+ value: Type.TOptional<Type.TNumber>;
131
+ unit: Type.TString;
132
+ sampleCount: Type.TInteger;
133
+ interval: Type.TOptional<Type.TObject<{
134
+ lower: Type.TNumber;
135
+ upper: Type.TNumber;
136
+ confidenceLevel: Type.TOptional<Type.TNumber>;
137
+ }>>;
138
+ window: Type.TOptional<Type.TObject<{
139
+ startedAt: Type.TString;
140
+ endedAt: Type.TString;
141
+ }>>;
142
+ evidence: Type.TArray<Type.TObject<{
143
+ id: Type.TString;
144
+ source: Type.TUnion<Type.TLiteral<string>[]>;
145
+ uri: Type.TString;
146
+ mediaType: Type.TOptional<Type.TString>;
147
+ digest: Type.TOptional<Type.TString>;
148
+ }>>;
149
+ note: Type.TOptional<Type.TString>;
150
+ }>;
151
+ export declare const CandidateDescriptorSchema: Type.TObject<{
152
+ targetId: Type.TString;
153
+ candidateId: Type.TString;
154
+ modelId: Type.TString;
155
+ modelVersion: Type.TOptional<Type.TString>;
156
+ reasons: Type.TArray<Type.TString>;
157
+ }>;
158
+ export declare const PreliminaryModelLeadSchema: Type.TObject<{
159
+ targetId: Type.TString;
160
+ modelId: Type.TString;
161
+ modelVersion: Type.TOptional<Type.TString>;
162
+ estimatedPrice: Type.TObject<{
163
+ currency: Type.TString;
164
+ inputPerMillionTokens: Type.TNumber;
165
+ outputPerMillionTokens: Type.TNumber;
166
+ sourceUri: Type.TString;
167
+ checkedAt: Type.TString;
168
+ }>;
169
+ reputation: Type.TObject<{
170
+ summary: Type.TString;
171
+ sourceUri: Type.TString;
172
+ checkedAt: Type.TString;
173
+ }>;
174
+ }>;
175
+ export declare const CandidateAssessmentSchema: Type.TObject<{
176
+ id: Type.TString;
177
+ targetId: Type.TString;
178
+ taskProfileId: Type.TString;
179
+ taskProfileRevision: Type.TInteger;
180
+ candidateId: Type.TString;
181
+ modelId: Type.TString;
182
+ modelVersion: Type.TOptional<Type.TString>;
183
+ productRevision: Type.TString;
184
+ harnessId: Type.TString;
185
+ startedAt: Type.TString;
186
+ completedAt: Type.TString;
187
+ metrics: Type.TArray<Type.TObject<{
188
+ targetId: Type.TString;
189
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
190
+ state: Type.TUnion<Type.TLiteral<string>[]>;
191
+ scope: Type.TUnion<Type.TLiteral<string>[]>;
192
+ direction: Type.TUnion<Type.TLiteral<string>[]>;
193
+ method: Type.TUnion<Type.TLiteral<string>[]>;
194
+ aggregation: Type.TUnion<Type.TLiteral<string>[]>;
195
+ value: Type.TOptional<Type.TNumber>;
196
+ unit: Type.TString;
197
+ sampleCount: Type.TInteger;
198
+ interval: Type.TOptional<Type.TObject<{
199
+ lower: Type.TNumber;
200
+ upper: Type.TNumber;
201
+ confidenceLevel: Type.TOptional<Type.TNumber>;
202
+ }>>;
203
+ window: Type.TOptional<Type.TObject<{
204
+ startedAt: Type.TString;
205
+ endedAt: Type.TString;
206
+ }>>;
207
+ evidence: Type.TArray<Type.TObject<{
208
+ id: Type.TString;
209
+ source: Type.TUnion<Type.TLiteral<string>[]>;
210
+ uri: Type.TString;
211
+ mediaType: Type.TOptional<Type.TString>;
212
+ digest: Type.TOptional<Type.TString>;
213
+ }>>;
214
+ note: Type.TOptional<Type.TString>;
215
+ }>>;
216
+ }>;
217
+ export declare const FrontierSnapshotSchema: Type.TObject<{
218
+ id: Type.TString;
219
+ targetId: Type.TString;
220
+ taskProfileId: Type.TString;
221
+ taskProfileRevision: Type.TInteger;
222
+ productRevision: Type.TString;
223
+ createdAt: Type.TString;
224
+ frontierCandidateIds: Type.TArray<Type.TString>;
225
+ dominatedCandidateIds: Type.TArray<Type.TString>;
226
+ ineligibleCandidateIds: Type.TArray<Type.TString>;
227
+ unresolvedCandidateIds: Type.TArray<Type.TString>;
228
+ comparisons: Type.TArray<Type.TObject<{
229
+ candidateId: Type.TString;
230
+ otherCandidateId: Type.TString;
231
+ state: Type.TUnion<Type.TLiteral<string>[]>;
232
+ reasons: Type.TArray<Type.TString>;
233
+ }>>;
234
+ assessmentIds: Type.TArray<Type.TString>;
235
+ calculationEvidence: Type.TArray<Type.TObject<{
236
+ id: Type.TString;
237
+ source: Type.TUnion<Type.TLiteral<string>[]>;
238
+ uri: Type.TString;
239
+ mediaType: Type.TOptional<Type.TString>;
240
+ digest: Type.TOptional<Type.TString>;
241
+ }>>;
242
+ }>;
243
+ export declare const FrontierRecommendationSchema: Type.TObject<{
244
+ targetId: Type.TString;
245
+ frontierSnapshotId: Type.TString;
246
+ selectedCandidateId: Type.TString;
247
+ currentCandidateId: Type.TString;
248
+ reasons: Type.TArray<Type.TString>;
249
+ preferenceEvidence: Type.TArray<Type.TObject<{
250
+ id: Type.TString;
251
+ source: Type.TUnion<Type.TLiteral<string>[]>;
252
+ uri: Type.TString;
253
+ mediaType: Type.TOptional<Type.TString>;
254
+ digest: Type.TOptional<Type.TString>;
255
+ }>>;
256
+ }>;
257
+ export declare const INTENT_OUTPUT_SCHEMAS: {
258
+ readonly establish_evals: Type.TObject<{
259
+ taskProfile: Type.TObject<{
260
+ confirmedAt: Type.TString;
261
+ id: Type.TString;
262
+ revision: Type.TInteger;
263
+ name: Type.TString;
264
+ goal: Type.TString;
265
+ applicationTarget: Type.TObject<{
266
+ id: Type.TString;
267
+ kind: Type.TLiteral<"application_llm_call">;
268
+ name: Type.TString;
269
+ applicationId: Type.TString;
270
+ callSites: Type.TArray<Type.TString>;
271
+ routeKey: Type.TString;
272
+ confirmedAt: Type.TString;
273
+ }>;
274
+ objectives: Type.TArray<Type.TObject<{
275
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
276
+ required: Type.TBoolean;
277
+ minimumSamples: Type.TInteger;
278
+ tolerance: Type.TNumber;
279
+ samplingPlan: Type.TObject<{
280
+ strategy: Type.TUnion<Type.TLiteral<string>[]>;
281
+ representativeCaseCount: Type.TInteger;
282
+ repetitionsPerCase: Type.TInteger;
283
+ aggregation: Type.TUnion<Type.TLiteral<string>[]>;
284
+ rationale: Type.TString;
285
+ }>;
286
+ constraint: Type.TOptional<Type.TObject<{
287
+ operator: Type.TUnion<Type.TLiteral<string>[]>;
288
+ value: Type.TNumber;
289
+ }>>;
290
+ }>>;
291
+ createdAt: Type.TString;
292
+ }>;
293
+ incumbent: Type.TObject<{
294
+ targetId: Type.TString;
295
+ candidateId: Type.TString;
296
+ modelId: Type.TString;
297
+ modelVersion: Type.TOptional<Type.TString>;
298
+ reasons: Type.TArray<Type.TString>;
299
+ }>;
300
+ policy: Type.TObject<{
301
+ mode: Type.TLiteral<"supervised_graduation">;
302
+ evaluationBudget: Type.TObject<{
303
+ currency: Type.TString;
304
+ maximumSpend: Type.TNumber;
305
+ maximumCandidateCount: Type.TOptional<Type.TInteger>;
306
+ maximumRunsPerCandidate: Type.TOptional<Type.TInteger>;
307
+ expiresAt: Type.TOptional<Type.TString>;
308
+ }>;
309
+ automaticSwapsEnabled: Type.TBoolean;
310
+ confirmationRequiredUntilVerifiedSwaps: Type.TInteger;
311
+ requirePostSwapVerification: Type.TLiteral<true>;
312
+ rollbackOnRegression: Type.TBoolean;
313
+ checkPolicy: Type.TObject<{
314
+ baselineAssessment: Type.TObject<{
315
+ afterCompletedTasks: Type.TOptional<Type.TInteger>;
316
+ afterElapsedSeconds: Type.TOptional<Type.TInteger>;
317
+ }>;
318
+ frontierReassessment: Type.TObject<{
319
+ afterCompletedTasks: Type.TOptional<Type.TInteger>;
320
+ afterElapsedSeconds: Type.TOptional<Type.TInteger>;
321
+ onModelCatalogChange: Type.TBoolean;
322
+ }>;
323
+ regressionCheck: Type.TObject<{
324
+ afterCompletedTasks: Type.TOptional<Type.TInteger>;
325
+ afterElapsedSeconds: Type.TOptional<Type.TInteger>;
326
+ thresholds: Type.TArray<Type.TObject<{
327
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
328
+ relativeChangeAtLeast: Type.TNumber;
329
+ }>>;
330
+ }>;
331
+ postSwapVerification: Type.TObject<{
332
+ afterCompletedTasks: Type.TOptional<Type.TInteger>;
333
+ afterElapsedSeconds: Type.TOptional<Type.TInteger>;
334
+ }>;
335
+ cooldownSeconds: Type.TInteger;
336
+ execution: Type.TObject<{
337
+ mode: Type.TUnion<Type.TLiteral<string>[]>;
338
+ infrastructureChangesAllowed: Type.TBoolean;
339
+ }>;
340
+ }>;
341
+ }>;
342
+ observability: Type.TObject<{
343
+ targetId: Type.TString;
344
+ status: Type.TUnion<Type.TLiteral<string>[]>;
345
+ requiredMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
346
+ coveredMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
347
+ missingMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
348
+ checkedAt: Type.TString;
349
+ }>;
350
+ preliminaryModelLeads: Type.TOptional<Type.TArray<Type.TObject<{
351
+ targetId: Type.TString;
352
+ modelId: Type.TString;
353
+ modelVersion: Type.TOptional<Type.TString>;
354
+ estimatedPrice: Type.TObject<{
355
+ currency: Type.TString;
356
+ inputPerMillionTokens: Type.TNumber;
357
+ outputPerMillionTokens: Type.TNumber;
358
+ sourceUri: Type.TString;
359
+ checkedAt: Type.TString;
360
+ }>;
361
+ reputation: Type.TObject<{
362
+ summary: Type.TString;
363
+ sourceUri: Type.TString;
364
+ checkedAt: Type.TString;
365
+ }>;
366
+ }>>>;
367
+ }>;
368
+ readonly instrument_observability: Type.TObject<{
369
+ targetId: Type.TString;
370
+ coveredMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
371
+ missingMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
372
+ }>;
373
+ readonly run_assessment: Type.TObject<{
374
+ targetId: Type.TString;
375
+ baselineEvidenceSufficient: Type.TBoolean;
376
+ metrics: Type.TArray<Type.TObject<{
377
+ targetId: Type.TString;
378
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
379
+ state: Type.TUnion<Type.TLiteral<string>[]>;
380
+ scope: Type.TUnion<Type.TLiteral<string>[]>;
381
+ direction: Type.TUnion<Type.TLiteral<string>[]>;
382
+ method: Type.TUnion<Type.TLiteral<string>[]>;
383
+ aggregation: Type.TUnion<Type.TLiteral<string>[]>;
384
+ value: Type.TOptional<Type.TNumber>;
385
+ unit: Type.TString;
386
+ sampleCount: Type.TInteger;
387
+ interval: Type.TOptional<Type.TObject<{
388
+ lower: Type.TNumber;
389
+ upper: Type.TNumber;
390
+ confidenceLevel: Type.TOptional<Type.TNumber>;
391
+ }>>;
392
+ window: Type.TOptional<Type.TObject<{
393
+ startedAt: Type.TString;
394
+ endedAt: Type.TString;
395
+ }>>;
396
+ evidence: Type.TArray<Type.TObject<{
397
+ id: Type.TString;
398
+ source: Type.TUnion<Type.TLiteral<string>[]>;
399
+ uri: Type.TString;
400
+ mediaType: Type.TOptional<Type.TString>;
401
+ digest: Type.TOptional<Type.TString>;
402
+ }>>;
403
+ note: Type.TOptional<Type.TString>;
404
+ }>>;
405
+ }>;
406
+ readonly discover_candidates: Type.TObject<{
407
+ targetId: Type.TString;
408
+ candidates: Type.TArray<Type.TObject<{
409
+ targetId: Type.TString;
410
+ candidateId: Type.TString;
411
+ modelId: Type.TString;
412
+ modelVersion: Type.TOptional<Type.TString>;
413
+ reasons: Type.TArray<Type.TString>;
414
+ }>>;
415
+ }>;
416
+ readonly run_challenger_trials: Type.TObject<{
417
+ targetId: Type.TString;
418
+ assessments: Type.TArray<Type.TObject<{
419
+ id: Type.TString;
420
+ targetId: Type.TString;
421
+ taskProfileId: Type.TString;
422
+ taskProfileRevision: Type.TInteger;
423
+ candidateId: Type.TString;
424
+ modelId: Type.TString;
425
+ modelVersion: Type.TOptional<Type.TString>;
426
+ productRevision: Type.TString;
427
+ harnessId: Type.TString;
428
+ startedAt: Type.TString;
429
+ completedAt: Type.TString;
430
+ metrics: Type.TArray<Type.TObject<{
431
+ targetId: Type.TString;
432
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
433
+ state: Type.TUnion<Type.TLiteral<string>[]>;
434
+ scope: Type.TUnion<Type.TLiteral<string>[]>;
435
+ direction: Type.TUnion<Type.TLiteral<string>[]>;
436
+ method: Type.TUnion<Type.TLiteral<string>[]>;
437
+ aggregation: Type.TUnion<Type.TLiteral<string>[]>;
438
+ value: Type.TOptional<Type.TNumber>;
439
+ unit: Type.TString;
440
+ sampleCount: Type.TInteger;
441
+ interval: Type.TOptional<Type.TObject<{
442
+ lower: Type.TNumber;
443
+ upper: Type.TNumber;
444
+ confidenceLevel: Type.TOptional<Type.TNumber>;
445
+ }>>;
446
+ window: Type.TOptional<Type.TObject<{
447
+ startedAt: Type.TString;
448
+ endedAt: Type.TString;
449
+ }>>;
450
+ evidence: Type.TArray<Type.TObject<{
451
+ id: Type.TString;
452
+ source: Type.TUnion<Type.TLiteral<string>[]>;
453
+ uri: Type.TString;
454
+ mediaType: Type.TOptional<Type.TString>;
455
+ digest: Type.TOptional<Type.TString>;
456
+ }>>;
457
+ note: Type.TOptional<Type.TString>;
458
+ }>>;
459
+ }>>;
460
+ experimentManifest: Type.TObject<{
461
+ id: Type.TString;
462
+ source: Type.TUnion<Type.TLiteral<string>[]>;
463
+ uri: Type.TString;
464
+ mediaType: Type.TOptional<Type.TString>;
465
+ digest: Type.TOptional<Type.TString>;
466
+ }>;
467
+ }>;
468
+ readonly calculate_frontier: Type.TObject<{
469
+ targetId: Type.TString;
470
+ assessments: Type.TArray<Type.TObject<{
471
+ id: Type.TString;
472
+ targetId: Type.TString;
473
+ taskProfileId: Type.TString;
474
+ taskProfileRevision: Type.TInteger;
475
+ candidateId: Type.TString;
476
+ modelId: Type.TString;
477
+ modelVersion: Type.TOptional<Type.TString>;
478
+ productRevision: Type.TString;
479
+ harnessId: Type.TString;
480
+ startedAt: Type.TString;
481
+ completedAt: Type.TString;
482
+ metrics: Type.TArray<Type.TObject<{
483
+ targetId: Type.TString;
484
+ metricId: Type.TUnion<Type.TLiteral<string>[]>;
485
+ state: Type.TUnion<Type.TLiteral<string>[]>;
486
+ scope: Type.TUnion<Type.TLiteral<string>[]>;
487
+ direction: Type.TUnion<Type.TLiteral<string>[]>;
488
+ method: Type.TUnion<Type.TLiteral<string>[]>;
489
+ aggregation: Type.TUnion<Type.TLiteral<string>[]>;
490
+ value: Type.TOptional<Type.TNumber>;
491
+ unit: Type.TString;
492
+ sampleCount: Type.TInteger;
493
+ interval: Type.TOptional<Type.TObject<{
494
+ lower: Type.TNumber;
495
+ upper: Type.TNumber;
496
+ confidenceLevel: Type.TOptional<Type.TNumber>;
497
+ }>>;
498
+ window: Type.TOptional<Type.TObject<{
499
+ startedAt: Type.TString;
500
+ endedAt: Type.TString;
501
+ }>>;
502
+ evidence: Type.TArray<Type.TObject<{
503
+ id: Type.TString;
504
+ source: Type.TUnion<Type.TLiteral<string>[]>;
505
+ uri: Type.TString;
506
+ mediaType: Type.TOptional<Type.TString>;
507
+ digest: Type.TOptional<Type.TString>;
508
+ }>>;
509
+ note: Type.TOptional<Type.TString>;
510
+ }>>;
511
+ }>>;
512
+ frontierSnapshot: Type.TObject<{
513
+ id: Type.TString;
514
+ targetId: Type.TString;
515
+ taskProfileId: Type.TString;
516
+ taskProfileRevision: Type.TInteger;
517
+ productRevision: Type.TString;
518
+ createdAt: Type.TString;
519
+ frontierCandidateIds: Type.TArray<Type.TString>;
520
+ dominatedCandidateIds: Type.TArray<Type.TString>;
521
+ ineligibleCandidateIds: Type.TArray<Type.TString>;
522
+ unresolvedCandidateIds: Type.TArray<Type.TString>;
523
+ comparisons: Type.TArray<Type.TObject<{
524
+ candidateId: Type.TString;
525
+ otherCandidateId: Type.TString;
526
+ state: Type.TUnion<Type.TLiteral<string>[]>;
527
+ reasons: Type.TArray<Type.TString>;
528
+ }>>;
529
+ assessmentIds: Type.TArray<Type.TString>;
530
+ calculationEvidence: Type.TArray<Type.TObject<{
531
+ id: Type.TString;
532
+ source: Type.TUnion<Type.TLiteral<string>[]>;
533
+ uri: Type.TString;
534
+ mediaType: Type.TOptional<Type.TString>;
535
+ digest: Type.TOptional<Type.TString>;
536
+ }>>;
537
+ }>;
538
+ recommendation: Type.TOptional<Type.TObject<{
539
+ targetId: Type.TString;
540
+ frontierSnapshotId: Type.TString;
541
+ selectedCandidateId: Type.TString;
542
+ currentCandidateId: Type.TString;
543
+ reasons: Type.TArray<Type.TString>;
544
+ preferenceEvidence: Type.TArray<Type.TObject<{
545
+ id: Type.TString;
546
+ source: Type.TUnion<Type.TLiteral<string>[]>;
547
+ uri: Type.TString;
548
+ mediaType: Type.TOptional<Type.TString>;
549
+ digest: Type.TOptional<Type.TString>;
550
+ }>>;
551
+ }>>;
552
+ }>;
553
+ readonly investigate_regression: Type.TObject<{
554
+ targetId: Type.TString;
555
+ regressionDetected: Type.TBoolean;
556
+ affectedMetricIds: Type.TArray<Type.TUnion<Type.TLiteral<string>[]>>;
557
+ likelyCause: Type.TOptional<Type.TString>;
558
+ }>;
559
+ readonly apply_model_swap: Type.TObject<{
560
+ targetId: Type.TString;
561
+ appliedCandidateId: Type.TString;
562
+ previousCandidateId: Type.TOptional<Type.TString>;
563
+ }>;
564
+ readonly verify_model_swap: Type.TObject<{
565
+ targetId: Type.TString;
566
+ verified: Type.TBoolean;
567
+ regressionDetected: Type.TBoolean;
568
+ }>;
569
+ readonly rollback_model_swap: Type.TObject<{
570
+ targetId: Type.TString;
571
+ restoredCandidateId: Type.TString;
572
+ }>;
573
+ };
574
+ export declare function intentOutputSchemaFor(kind: IntentKind): TSchema;
575
+ export declare function validateIntentOutputSchema(kind: IntentKind, output: unknown): readonly string[];
576
+ export declare function completionToolSchemaFor(kind: IntentKind): TSchema;