@otto-code/protocol 0.6.6 → 0.7.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.
@@ -24,6 +24,8 @@ export const KNOWN_MODEL_TIERS = {
24
24
  // Opus variants are "deep", non-1M Opus and Sonnet are "standard", Haiku is
25
25
  // "fast". Fable (1M, most powerful) is "deep".
26
26
  "claude-fable-5": "deep",
27
+ "claude-opus-5[1m]": "deep",
28
+ "claude-opus-5": "standard",
27
29
  "claude-opus-4-8[1m]": "deep",
28
30
  "claude-opus-4-8": "standard",
29
31
  "claude-opus-4-7[1m]": "deep",
@@ -6,7 +6,7 @@ export declare function isRunPhaseType(value: string): value is RunPhaseType;
6
6
  export declare function defaultRoleForPhaseType(type: RunPhaseType): string | null;
7
7
  export declare const RUN_PHASE_STATUSES: readonly ["pending", "running", "blocked", "done", "failed", "skipped"];
8
8
  export type RunPhaseStatus = (typeof RUN_PHASE_STATUSES)[number];
9
- export declare const RUN_STATUSES: readonly ["pending", "running", "paused", "done", "failed", "canceled"];
9
+ export declare const RUN_STATUSES: readonly ["draft", "pending", "running", "paused", "done", "failed", "canceled"];
10
10
  export type RunStatus = (typeof RUN_STATUSES)[number];
11
11
  export declare function isRunPhaseStatus(value: string): value is RunPhaseStatus;
12
12
  export declare function isRunStatus(value: string): value is RunStatus;
@@ -67,6 +67,7 @@ export declare const RunPhaseCandidateSchema: z.ZodObject<{
67
67
  summary: z.ZodOptional<z.ZodString>;
68
68
  }, z.core.$loose>>;
69
69
  summary: z.ZodOptional<z.ZodString>;
70
+ outputFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
70
71
  }, z.core.$loose>;
71
72
  export type RunPhaseCandidate = z.infer<typeof RunPhaseCandidateSchema>;
72
73
  export declare const RunPhaseSchema: z.ZodObject<{
@@ -93,16 +94,26 @@ export declare const RunPhaseSchema: z.ZodObject<{
93
94
  summary: z.ZodOptional<z.ZodString>;
94
95
  }, z.core.$loose>>;
95
96
  summary: z.ZodOptional<z.ZodString>;
97
+ outputFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
96
98
  }, z.core.$loose>>>;
97
99
  notes: z.ZodOptional<z.ZodString>;
100
+ skipReason: z.ZodOptional<z.ZodString>;
101
+ retryAttempts: z.ZodOptional<z.ZodNumber>;
102
+ timedOut: z.ZodOptional<z.ZodBoolean>;
98
103
  startedAt: z.ZodOptional<z.ZodString>;
99
104
  completedAt: z.ZodOptional<z.ZodString>;
100
105
  }, z.core.$loose>;
101
106
  export type RunPhase = z.infer<typeof RunPhaseSchema>;
107
+ export declare const GRAPH_SKIP_REASONS: readonly ["condition", "upstream-skipped", "upstream-failed", "canceled"];
108
+ export type GraphSkipReason = (typeof GRAPH_SKIP_REASONS)[number];
102
109
  export declare const RunSchema: z.ZodObject<{
103
110
  id: z.ZodString;
104
111
  title: z.ZodString;
112
+ description: z.ZodOptional<z.ZodString>;
105
113
  status: z.ZodString;
114
+ kind: z.ZodOptional<z.ZodString>;
115
+ graphId: z.ZodOptional<z.ZodString>;
116
+ graphInputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
106
117
  requirements: z.ZodOptional<z.ZodArray<z.ZodString>>;
107
118
  autopilot: z.ZodOptional<z.ZodBoolean>;
108
119
  phases: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -129,8 +140,12 @@ export declare const RunSchema: z.ZodObject<{
129
140
  summary: z.ZodOptional<z.ZodString>;
130
141
  }, z.core.$loose>>;
131
142
  summary: z.ZodOptional<z.ZodString>;
143
+ outputFields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
132
144
  }, z.core.$loose>>>;
133
145
  notes: z.ZodOptional<z.ZodString>;
146
+ skipReason: z.ZodOptional<z.ZodString>;
147
+ retryAttempts: z.ZodOptional<z.ZodNumber>;
148
+ timedOut: z.ZodOptional<z.ZodBoolean>;
134
149
  startedAt: z.ZodOptional<z.ZodString>;
135
150
  completedAt: z.ZodOptional<z.ZodString>;
136
151
  }, z.core.$loose>>>;
@@ -149,4 +164,259 @@ export declare const RunSchema: z.ZodObject<{
149
164
  export type Run = z.infer<typeof RunSchema>;
150
165
  export declare const RUN_SUMMARY_STATUSES: readonly ["pending", "ready", "failed"];
151
166
  export type RunSummaryStatus = (typeof RUN_SUMMARY_STATUSES)[number];
167
+ export declare const GraphInputSchema: z.ZodObject<{
168
+ key: z.ZodString;
169
+ label: z.ZodString;
170
+ description: z.ZodOptional<z.ZodString>;
171
+ multiline: z.ZodOptional<z.ZodBoolean>;
172
+ required: z.ZodOptional<z.ZodBoolean>;
173
+ defaultValue: z.ZodOptional<z.ZodString>;
174
+ }, z.core.$loose>;
175
+ export type GraphInput = z.infer<typeof GraphInputSchema>;
176
+ export declare const PromptTemplateSchema: z.ZodObject<{
177
+ id: z.ZodString;
178
+ name: z.ZodString;
179
+ description: z.ZodOptional<z.ZodString>;
180
+ content: z.ZodString;
181
+ variables: z.ZodOptional<z.ZodArray<z.ZodObject<{
182
+ key: z.ZodString;
183
+ label: z.ZodString;
184
+ description: z.ZodOptional<z.ZodString>;
185
+ multiline: z.ZodOptional<z.ZodBoolean>;
186
+ required: z.ZodOptional<z.ZodBoolean>;
187
+ defaultValue: z.ZodOptional<z.ZodString>;
188
+ }, z.core.$loose>>>;
189
+ snippet: z.ZodOptional<z.ZodBoolean>;
190
+ builtIn: z.ZodOptional<z.ZodBoolean>;
191
+ createdAt: z.ZodOptional<z.ZodString>;
192
+ updatedAt: z.ZodOptional<z.ZodString>;
193
+ }, z.core.$loose>;
194
+ export type PromptTemplate = z.infer<typeof PromptTemplateSchema>;
195
+ export declare const NodePromptTemplateRefSchema: z.ZodObject<{
196
+ templateId: z.ZodString;
197
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
198
+ }, z.core.$loose>;
199
+ export type NodePromptTemplateRef = z.infer<typeof NodePromptTemplateRefSchema>;
200
+ export declare const GRAPH_NODE_KINDS: readonly ["orchestrator", "agent"];
201
+ export type GraphNodeKind = (typeof GRAPH_NODE_KINDS)[number];
202
+ export declare const GraphNodeLoopSchema: z.ZodObject<{
203
+ times: z.ZodOptional<z.ZodNumber>;
204
+ until: z.ZodOptional<z.ZodObject<{
205
+ criteria: z.ZodArray<z.ZodString>;
206
+ judgeRole: z.ZodOptional<z.ZodString>;
207
+ max: z.ZodNumber;
208
+ }, z.core.$loose>>;
209
+ }, z.core.$loose>;
210
+ export type GraphNodeLoop = z.infer<typeof GraphNodeLoopSchema>;
211
+ export declare const GRAPH_OUTPUT_FIELD_TYPES: readonly ["string", "number", "boolean", "array"];
212
+ export type GraphOutputFieldType = (typeof GRAPH_OUTPUT_FIELD_TYPES)[number];
213
+ export declare const GraphOutputFieldSchema: z.ZodObject<{
214
+ key: z.ZodString;
215
+ type: z.ZodString;
216
+ description: z.ZodOptional<z.ZodString>;
217
+ required: z.ZodOptional<z.ZodBoolean>;
218
+ }, z.core.$loose>;
219
+ export type GraphOutputField = z.infer<typeof GraphOutputFieldSchema>;
220
+ export declare const GraphNodeOutputSchema: z.ZodObject<{
221
+ fields: z.ZodArray<z.ZodObject<{
222
+ key: z.ZodString;
223
+ type: z.ZodString;
224
+ description: z.ZodOptional<z.ZodString>;
225
+ required: z.ZodOptional<z.ZodBoolean>;
226
+ }, z.core.$loose>>;
227
+ }, z.core.$loose>;
228
+ export type GraphNodeOutput = z.infer<typeof GraphNodeOutputSchema>;
229
+ export declare const GRAPH_QUERY_TOOL_KINDS: readonly ["command", "http-get", "file-read"];
230
+ export type GraphQueryToolKind = (typeof GRAPH_QUERY_TOOL_KINDS)[number];
231
+ export declare const GraphQueryToolSchema: z.ZodObject<{
232
+ name: z.ZodString;
233
+ description: z.ZodString;
234
+ kind: z.ZodString;
235
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
236
+ key: z.ZodString;
237
+ type: z.ZodString;
238
+ description: z.ZodOptional<z.ZodString>;
239
+ required: z.ZodOptional<z.ZodBoolean>;
240
+ }, z.core.$loose>>>;
241
+ command: z.ZodOptional<z.ZodArray<z.ZodString>>;
242
+ url: z.ZodOptional<z.ZodString>;
243
+ path: z.ZodOptional<z.ZodString>;
244
+ }, z.core.$loose>;
245
+ export type GraphQueryTool = z.infer<typeof GraphQueryToolSchema>;
246
+ export declare const GraphNodeRetrySchema: z.ZodObject<{
247
+ maxAttempts: z.ZodNumber;
248
+ backoffMs: z.ZodNumber;
249
+ multiplier: z.ZodOptional<z.ZodNumber>;
250
+ }, z.core.$loose>;
251
+ export type GraphNodeRetry = z.infer<typeof GraphNodeRetrySchema>;
252
+ export declare const GraphNodeSchema: z.ZodObject<{
253
+ id: z.ZodString;
254
+ kind: z.ZodString;
255
+ title: z.ZodString;
256
+ role: z.ZodOptional<z.ZodString>;
257
+ prompt: z.ZodOptional<z.ZodString>;
258
+ promptFromInput: z.ZodOptional<z.ZodString>;
259
+ promptTemplate: z.ZodOptional<z.ZodObject<{
260
+ templateId: z.ZodString;
261
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
262
+ }, z.core.$loose>>;
263
+ autonomous: z.ZodOptional<z.ZodBoolean>;
264
+ loop: z.ZodOptional<z.ZodObject<{
265
+ times: z.ZodOptional<z.ZodNumber>;
266
+ until: z.ZodOptional<z.ZodObject<{
267
+ criteria: z.ZodArray<z.ZodString>;
268
+ judgeRole: z.ZodOptional<z.ZodString>;
269
+ max: z.ZodNumber;
270
+ }, z.core.$loose>>;
271
+ }, z.core.$loose>>;
272
+ output: z.ZodOptional<z.ZodObject<{
273
+ fields: z.ZodArray<z.ZodObject<{
274
+ key: z.ZodString;
275
+ type: z.ZodString;
276
+ description: z.ZodOptional<z.ZodString>;
277
+ required: z.ZodOptional<z.ZodBoolean>;
278
+ }, z.core.$loose>>;
279
+ }, z.core.$loose>>;
280
+ access: z.ZodOptional<z.ZodString>;
281
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
282
+ queryTools: z.ZodOptional<z.ZodArray<z.ZodObject<{
283
+ name: z.ZodString;
284
+ description: z.ZodString;
285
+ kind: z.ZodString;
286
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
287
+ key: z.ZodString;
288
+ type: z.ZodString;
289
+ description: z.ZodOptional<z.ZodString>;
290
+ required: z.ZodOptional<z.ZodBoolean>;
291
+ }, z.core.$loose>>>;
292
+ command: z.ZodOptional<z.ZodArray<z.ZodString>>;
293
+ url: z.ZodOptional<z.ZodString>;
294
+ path: z.ZodOptional<z.ZodString>;
295
+ }, z.core.$loose>>>;
296
+ retry: z.ZodOptional<z.ZodObject<{
297
+ maxAttempts: z.ZodNumber;
298
+ backoffMs: z.ZodNumber;
299
+ multiplier: z.ZodOptional<z.ZodNumber>;
300
+ }, z.core.$loose>>;
301
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
302
+ model: z.ZodOptional<z.ZodString>;
303
+ position: z.ZodOptional<z.ZodObject<{
304
+ x: z.ZodNumber;
305
+ y: z.ZodNumber;
306
+ }, z.core.$loose>>;
307
+ }, z.core.$loose>;
308
+ export type GraphNode = z.infer<typeof GraphNodeSchema>;
309
+ export declare const GraphEdgeConditionSchema: z.ZodObject<{
310
+ expression: z.ZodString;
311
+ }, z.core.$loose>;
312
+ export type GraphEdgeCondition = z.infer<typeof GraphEdgeConditionSchema>;
313
+ export declare const GraphEdgeSchema: z.ZodObject<{
314
+ id: z.ZodOptional<z.ZodString>;
315
+ from: z.ZodString;
316
+ to: z.ZodString;
317
+ fromPort: z.ZodOptional<z.ZodString>;
318
+ toPort: z.ZodOptional<z.ZodString>;
319
+ when: z.ZodOptional<z.ZodObject<{
320
+ expression: z.ZodString;
321
+ }, z.core.$loose>>;
322
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
323
+ label: z.ZodOptional<z.ZodString>;
324
+ }, z.core.$loose>;
325
+ export type GraphEdge = z.infer<typeof GraphEdgeSchema>;
326
+ export declare const OrchestrationGraphSchema: z.ZodObject<{
327
+ id: z.ZodString;
328
+ name: z.ZodString;
329
+ description: z.ZodOptional<z.ZodString>;
330
+ inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
331
+ key: z.ZodString;
332
+ label: z.ZodString;
333
+ description: z.ZodOptional<z.ZodString>;
334
+ multiline: z.ZodOptional<z.ZodBoolean>;
335
+ required: z.ZodOptional<z.ZodBoolean>;
336
+ defaultValue: z.ZodOptional<z.ZodString>;
337
+ }, z.core.$loose>>>;
338
+ nodes: z.ZodArray<z.ZodObject<{
339
+ id: z.ZodString;
340
+ kind: z.ZodString;
341
+ title: z.ZodString;
342
+ role: z.ZodOptional<z.ZodString>;
343
+ prompt: z.ZodOptional<z.ZodString>;
344
+ promptFromInput: z.ZodOptional<z.ZodString>;
345
+ promptTemplate: z.ZodOptional<z.ZodObject<{
346
+ templateId: z.ZodString;
347
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
348
+ }, z.core.$loose>>;
349
+ autonomous: z.ZodOptional<z.ZodBoolean>;
350
+ loop: z.ZodOptional<z.ZodObject<{
351
+ times: z.ZodOptional<z.ZodNumber>;
352
+ until: z.ZodOptional<z.ZodObject<{
353
+ criteria: z.ZodArray<z.ZodString>;
354
+ judgeRole: z.ZodOptional<z.ZodString>;
355
+ max: z.ZodNumber;
356
+ }, z.core.$loose>>;
357
+ }, z.core.$loose>>;
358
+ output: z.ZodOptional<z.ZodObject<{
359
+ fields: z.ZodArray<z.ZodObject<{
360
+ key: z.ZodString;
361
+ type: z.ZodString;
362
+ description: z.ZodOptional<z.ZodString>;
363
+ required: z.ZodOptional<z.ZodBoolean>;
364
+ }, z.core.$loose>>;
365
+ }, z.core.$loose>>;
366
+ access: z.ZodOptional<z.ZodString>;
367
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
368
+ queryTools: z.ZodOptional<z.ZodArray<z.ZodObject<{
369
+ name: z.ZodString;
370
+ description: z.ZodString;
371
+ kind: z.ZodString;
372
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
373
+ key: z.ZodString;
374
+ type: z.ZodString;
375
+ description: z.ZodOptional<z.ZodString>;
376
+ required: z.ZodOptional<z.ZodBoolean>;
377
+ }, z.core.$loose>>>;
378
+ command: z.ZodOptional<z.ZodArray<z.ZodString>>;
379
+ url: z.ZodOptional<z.ZodString>;
380
+ path: z.ZodOptional<z.ZodString>;
381
+ }, z.core.$loose>>>;
382
+ retry: z.ZodOptional<z.ZodObject<{
383
+ maxAttempts: z.ZodNumber;
384
+ backoffMs: z.ZodNumber;
385
+ multiplier: z.ZodOptional<z.ZodNumber>;
386
+ }, z.core.$loose>>;
387
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
388
+ model: z.ZodOptional<z.ZodString>;
389
+ position: z.ZodOptional<z.ZodObject<{
390
+ x: z.ZodNumber;
391
+ y: z.ZodNumber;
392
+ }, z.core.$loose>>;
393
+ }, z.core.$loose>>;
394
+ edges: z.ZodOptional<z.ZodArray<z.ZodObject<{
395
+ id: z.ZodOptional<z.ZodString>;
396
+ from: z.ZodString;
397
+ to: z.ZodString;
398
+ fromPort: z.ZodOptional<z.ZodString>;
399
+ toPort: z.ZodOptional<z.ZodString>;
400
+ when: z.ZodOptional<z.ZodObject<{
401
+ expression: z.ZodString;
402
+ }, z.core.$loose>>;
403
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
404
+ label: z.ZodOptional<z.ZodString>;
405
+ }, z.core.$loose>>>;
406
+ builtIn: z.ZodOptional<z.ZodBoolean>;
407
+ createdAt: z.ZodOptional<z.ZodString>;
408
+ updatedAt: z.ZodOptional<z.ZodString>;
409
+ }, z.core.$loose>;
410
+ export type OrchestrationGraph = z.infer<typeof OrchestrationGraphSchema>;
411
+ export declare function validateOrchestrationGraph(graph: OrchestrationGraph): string[];
412
+ /**
413
+ * Advisory findings: things that are almost certainly authoring mistakes but
414
+ * leave the graph executable. Separate from `validateOrchestrationGraph`
415
+ * because that one is the daemon's hard gate — anything it returns stops a run,
416
+ * and none of these should.
417
+ *
418
+ * Expression *syntax* is not checked here: the JSONata parser is daemon-side,
419
+ * so this stays dependency-free for the client bundle.
420
+ */
421
+ export declare function reviewOrchestrationGraph(graph: OrchestrationGraph): string[];
152
422
  //# sourceMappingURL=orchestration.d.ts.map