@otto-code/protocol 0.8.19 → 0.9.2

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 (50) hide show
  1. package/dist/agent-labels.d.ts +22 -0
  2. package/dist/agent-labels.js +42 -1
  3. package/dist/agent-profiles.d.ts +1 -1
  4. package/dist/agent-profiles.js +3 -3
  5. package/dist/agent-rate-limit.d.ts +13 -0
  6. package/dist/agent-rate-limit.js +18 -0
  7. package/dist/agent-types.d.ts +6 -0
  8. package/dist/architectural-views/rpc-schemas.d.ts +465 -0
  9. package/dist/architectural-views/rpc-schemas.js +205 -0
  10. package/dist/artifacts/rpc-schemas.d.ts +360 -2
  11. package/dist/artifacts/rpc-schemas.js +75 -1
  12. package/dist/artifacts/types.d.ts +71 -0
  13. package/dist/artifacts/types.js +27 -0
  14. package/dist/binary-frames/terminal.d.ts +1 -1
  15. package/dist/brain.d.ts +3 -3
  16. package/dist/browser-automation/capabilities.d.ts +1 -1
  17. package/dist/browser-automation/rpc-schemas.d.ts +16 -16
  18. package/dist/code-intelligence.d.ts +5 -5
  19. package/dist/daemon-config.d.ts +66 -0
  20. package/dist/daemon-config.js +76 -3
  21. package/dist/file-operations.d.ts +1 -1
  22. package/dist/generated/validation/ws-outbound.aot.js +81113 -69135
  23. package/dist/loop/rpc-schemas.d.ts +6 -6
  24. package/dist/messages.d.ts +11477 -1097
  25. package/dist/messages.js +633 -117
  26. package/dist/model-preferences.d.ts +26 -0
  27. package/dist/model-preferences.js +47 -0
  28. package/dist/model-tiers.js +2 -0
  29. package/dist/personality-schemas.d.ts +4 -4
  30. package/dist/project-knowledge.d.ts +38 -16
  31. package/dist/project-knowledge.js +17 -1
  32. package/dist/provider-config.js +1 -1
  33. package/dist/provider-icon-names.js +1 -0
  34. package/dist/schedule/rpc-schemas.d.ts +92 -12
  35. package/dist/schedule/rpc-schemas.js +2 -0
  36. package/dist/schedule/types.d.ts +47 -3
  37. package/dist/schedule/types.js +22 -0
  38. package/dist/search/text-match.d.ts +16 -0
  39. package/dist/search/text-match.js +31 -2
  40. package/dist/suggested-tasks.d.ts +7 -3
  41. package/dist/suggested-tasks.js +2 -0
  42. package/dist/validation/ws-outbound-schema-metadata.d.ts +2348 -111
  43. package/dist/websocket-control.d.ts +39 -0
  44. package/dist/websocket-control.js +36 -0
  45. package/dist/workflow.d.ts +3060 -0
  46. package/dist/{orchestration.js → workflow.js} +461 -29
  47. package/dist/workspace-labels.d.ts +9 -0
  48. package/dist/workspace-labels.js +19 -0
  49. package/package.json +1 -1
  50. package/dist/orchestration.d.ts +0 -1148
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ import type { ModelTier } from "./agent-types.js";
3
+ export declare const ModelTierSchema: z.ZodType<ModelTier>;
4
+ export declare const ModelTierOverrideSchema: z.ZodObject<{
5
+ provider: z.ZodString;
6
+ modelId: z.ZodString;
7
+ tier: z.ZodType<ModelTier, unknown, z.core.$ZodTypeInternals<ModelTier, unknown>>;
8
+ }, z.core.$loose>;
9
+ export type ModelTierOverride = z.infer<typeof ModelTierOverrideSchema>;
10
+ export declare const ModelVisibilityOverrideSchema: z.ZodObject<{
11
+ provider: z.ZodString;
12
+ modelId: z.ZodString;
13
+ visible: z.ZodBoolean;
14
+ }, z.core.$loose>;
15
+ export type ModelVisibilityOverride = z.infer<typeof ModelVisibilityOverrideSchema>;
16
+ export declare const SavedProviderEndpointSchema: z.ZodObject<{
17
+ id: z.ZodString;
18
+ baseUrlKey: z.ZodString;
19
+ apiKeyKey: z.ZodString;
20
+ baseUrl: z.ZodString;
21
+ apiKey: z.ZodDefault<z.ZodString>;
22
+ label: z.ZodOptional<z.ZodString>;
23
+ savedAt: z.ZodOptional<z.ZodNumber>;
24
+ }, z.core.$loose>;
25
+ export type SavedProviderEndpoint = z.infer<typeof SavedProviderEndpointSchema>;
26
+ //# sourceMappingURL=model-preferences.d.ts.map
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ export const ModelTierSchema = z.enum(["deep", "standard", "fast"]);
3
+ // A user's explicit tier tag for one model of one provider. The daemon stamps
4
+ // `model.tier` at ingest, preferring a matching override here over inference
5
+ // (see model-tiers.ts). Stored as an array (not a nested record) so a patch
6
+ // replaces it wholesale - that's how a tag gets cleared, since deep-merge can't
7
+ // delete a record key.
8
+ export const ModelTierOverrideSchema = z
9
+ .object({
10
+ provider: z.string().min(1),
11
+ modelId: z.string().min(1),
12
+ tier: ModelTierSchema,
13
+ })
14
+ .passthrough();
15
+ // A host-owned model-picker visibility choice. Stored as an array so a patch
16
+ // replaces it wholesale and removing the final hidden-model entry sticks.
17
+ export const ModelVisibilityOverrideSchema = z
18
+ .object({
19
+ provider: z.string().min(1),
20
+ modelId: z.string().min(1),
21
+ visible: z.boolean(),
22
+ })
23
+ .passthrough();
24
+ // A remembered provider endpoint: a base URL together with the credential it
25
+ // was saved with, so pointing a provider back at a previous endpoint is one
26
+ // pick instead of re-typing the key. Entries are scoped by the connection
27
+ // env-var pair they belong to (OPENAI_BASE_URL/OPENAI_API_KEY vs
28
+ // ANTHROPIC_BASE_URL/ANTHROPIC_AUTH_TOKEN), which is exactly what the provider
29
+ // settings sheet keys its dropdown off - so every openai-compatible provider
30
+ // entry on the host shares one pool, and Claude-compatible entries share
31
+ // another. Deliberately `z.string()` rather than an enum: a future env-var
32
+ // family must not make old entries unparseable.
33
+ export const SavedProviderEndpointSchema = z
34
+ .object({
35
+ /** Stable identity, `${baseUrlKey}::${baseUrl}` - dedupes on re-save. */
36
+ id: z.string().min(1),
37
+ baseUrlKey: z.string().min(1),
38
+ apiKeyKey: z.string().min(1),
39
+ baseUrl: z.string().min(1),
40
+ apiKey: z.string().default(""),
41
+ /** User-facing name; the UI falls back to the URL when absent. */
42
+ label: z.string().optional(),
43
+ /** Epoch ms of the last save, used to order the dropdown newest-first. */
44
+ savedAt: z.number().optional(),
45
+ })
46
+ .passthrough();
47
+ //# sourceMappingURL=model-preferences.js.map
@@ -23,6 +23,7 @@ export const KNOWN_MODEL_TIERS = {
23
23
  // Anthropic (Claude) - the full Claude Code manifest. Tiering rule: 1M-context
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
+ "claude-fable-5-1": "deep",
26
27
  "claude-fable-5": "deep",
27
28
  // Opus 4.7/4.8/5 are natively 1M, so the plain ids are "deep" and the manifest
28
29
  // ships no `[1m]` row for them. The decorated ids stay mapped here because the
@@ -45,6 +46,7 @@ export const KNOWN_MODEL_TIERS = {
45
46
  "claude-haiku-4-5": "fast",
46
47
  "claude-haiku-4-5-20251001": "fast",
47
48
  // OpenAI (GPT / o-series)
49
+ "gpt-6-astra": "deep",
48
50
  "gpt-5": "deep",
49
51
  "gpt-5-mini": "fast",
50
52
  "gpt-5-nano": "fast",
@@ -222,8 +222,8 @@ export declare const VisualizerVoiceCuesGenerateResponseSchema: z.ZodObject<{
222
222
  export type VisualizerVoiceCuesResult = z.infer<typeof VisualizerVoiceCuesGenerateResponseSchema>["payload"];
223
223
  export declare const ProfileMemoryListRequestMessageSchema: z.ZodObject<{
224
224
  workspaceId: z.ZodOptional<z.ZodString>;
225
- projectRoot: z.ZodOptional<z.ZodString>;
226
225
  requestId: z.ZodString;
226
+ projectRoot: z.ZodOptional<z.ZodString>;
227
227
  personalityId: z.ZodString;
228
228
  type: z.ZodLiteral<"profile.memory.list.request">;
229
229
  }, z.core.$strip>;
@@ -254,9 +254,9 @@ export declare const ProfileMemoryListResponseMessageSchema: z.ZodObject<{
254
254
  export declare const ProfileMemoryUpdateRequestMessageSchema: z.ZodObject<{
255
255
  workspaceId: z.ZodOptional<z.ZodString>;
256
256
  text: z.ZodOptional<z.ZodString>;
257
+ requestId: z.ZodString;
257
258
  scope: z.ZodOptional<z.ZodString>;
258
259
  projectRoot: z.ZodOptional<z.ZodString>;
259
- requestId: z.ZodString;
260
260
  personalityId: z.ZodString;
261
261
  entryId: z.ZodOptional<z.ZodString>;
262
262
  drop: z.ZodOptional<z.ZodBoolean>;
@@ -311,11 +311,11 @@ export declare const AgentProfileStatsResponseSchema: z.ZodObject<{
311
311
  }, z.core.$strip>;
312
312
  export declare const AgentProfileGeneratePromptRequestSchema: z.ZodObject<{
313
313
  name: z.ZodString;
314
+ cwd: z.ZodOptional<z.ZodString>;
314
315
  requestId: z.ZodString;
315
316
  roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
316
317
  glowA: z.ZodOptional<z.ZodString>;
317
318
  glowB: z.ZodOptional<z.ZodString>;
318
- cwd: z.ZodOptional<z.ZodString>;
319
319
  type: z.ZodLiteral<"agent.profile.generate_prompt.request">;
320
320
  }, z.core.$strip>;
321
321
  export declare const AgentProfileGeneratePromptResponseSchema: z.ZodObject<{
@@ -329,9 +329,9 @@ export declare const AgentProfileGeneratePromptResponseSchema: z.ZodObject<{
329
329
  export declare const AgentProfileGenerateVoiceCuesRequestSchema: z.ZodObject<{
330
330
  prompt: z.ZodOptional<z.ZodString>;
331
331
  name: z.ZodString;
332
+ cwd: z.ZodOptional<z.ZodString>;
332
333
  requestId: z.ZodString;
333
334
  roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
334
- cwd: z.ZodOptional<z.ZodString>;
335
335
  moment: z.ZodOptional<z.ZodEnum<{
336
336
  join: "join";
337
337
  thinking: "thinking";
@@ -44,9 +44,9 @@ export declare const ProjectDeliveryStatusSchema: z.ZodEnum<{
44
44
  }>;
45
45
  export declare const ProjectReferenceDispositionSchema: z.ZodEnum<{
46
46
  read: "read";
47
+ rejected: "rejected";
47
48
  unevaluated: "unevaluated";
48
49
  adopted: "adopted";
49
- rejected: "rejected";
50
50
  dependency: "dependency";
51
51
  }>;
52
52
  export declare const ProjectProgressSchema: z.ZodObject<{
@@ -92,9 +92,9 @@ export declare const ProjectKnowledgeRecordSchema: z.ZodObject<{
92
92
  }, z.core.$strip>>;
93
93
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
94
94
  read: "read";
95
+ rejected: "rejected";
95
96
  unevaluated: "unevaluated";
96
97
  adopted: "adopted";
97
- rejected: "rejected";
98
98
  dependency: "dependency";
99
99
  }>>;
100
100
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -131,13 +131,14 @@ export declare const ProjectKnowledgeRootPageSchema: z.ZodObject<{
131
131
  title: z.ZodString;
132
132
  path: z.ZodString;
133
133
  absolutePath: z.ZodOptional<z.ZodString>;
134
- body: z.ZodString;
134
+ body: z.ZodOptional<z.ZodString>;
135
135
  bodyDigest: z.ZodOptional<z.ZodString>;
136
136
  }, z.core.$strip>;
137
137
  export declare const ProjectKnowledgeListRequestMessageSchema: z.ZodObject<{
138
138
  type: z.ZodLiteral<"project.knowledge.list.request">;
139
139
  requestId: z.ZodString;
140
140
  workspaceId: z.ZodString;
141
+ includeRootBodies: z.ZodOptional<z.ZodBoolean>;
141
142
  }, z.core.$strip>;
142
143
  export declare const ProjectKnowledgeListResponseMessageSchema: z.ZodObject<{
143
144
  type: z.ZodLiteral<"project.knowledge.list.response">;
@@ -181,9 +182,9 @@ export declare const ProjectKnowledgeListResponseMessageSchema: z.ZodObject<{
181
182
  }, z.core.$strip>>;
182
183
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
183
184
  read: "read";
185
+ rejected: "rejected";
184
186
  unevaluated: "unevaluated";
185
187
  adopted: "adopted";
186
- rejected: "rejected";
187
188
  dependency: "dependency";
188
189
  }>>;
189
190
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -204,7 +205,7 @@ export declare const ProjectKnowledgeListResponseMessageSchema: z.ZodObject<{
204
205
  title: z.ZodString;
205
206
  path: z.ZodString;
206
207
  absolutePath: z.ZodOptional<z.ZodString>;
207
- body: z.ZodString;
208
+ body: z.ZodOptional<z.ZodString>;
208
209
  bodyDigest: z.ZodOptional<z.ZodString>;
209
210
  }, z.core.$strip>>>;
210
211
  findings: z.ZodArray<z.ZodObject<{
@@ -276,9 +277,9 @@ export declare const ProjectKnowledgeGetResponseMessageSchema: z.ZodObject<{
276
277
  }, z.core.$strip>>;
277
278
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
278
279
  read: "read";
280
+ rejected: "rejected";
279
281
  unevaluated: "unevaluated";
280
282
  adopted: "adopted";
281
- rejected: "rejected";
282
283
  dependency: "dependency";
283
284
  }>>;
284
285
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -296,6 +297,26 @@ export declare const ProjectKnowledgeGetResponseMessageSchema: z.ZodObject<{
296
297
  }, z.core.$strip>>;
297
298
  }, z.core.$strip>;
298
299
  }, z.core.$strip>;
300
+ export declare const ProjectKnowledgeRootGetRequestMessageSchema: z.ZodObject<{
301
+ type: z.ZodLiteral<"project.knowledge.root.get.request">;
302
+ requestId: z.ZodString;
303
+ workspaceId: z.ZodString;
304
+ slug: z.ZodString;
305
+ }, z.core.$strip>;
306
+ export declare const ProjectKnowledgeRootGetResponseMessageSchema: z.ZodObject<{
307
+ type: z.ZodLiteral<"project.knowledge.root.get.response">;
308
+ payload: z.ZodObject<{
309
+ requestId: z.ZodString;
310
+ page: z.ZodNullable<z.ZodObject<{
311
+ slug: z.ZodString;
312
+ title: z.ZodString;
313
+ path: z.ZodString;
314
+ absolutePath: z.ZodOptional<z.ZodString>;
315
+ body: z.ZodOptional<z.ZodString>;
316
+ bodyDigest: z.ZodOptional<z.ZodString>;
317
+ }, z.core.$strip>>;
318
+ }, z.core.$strip>;
319
+ }, z.core.$strip>;
299
320
  export declare const ProjectKnowledgeCreateRequestMessageSchema: z.ZodObject<{
300
321
  type: z.ZodLiteral<"project.knowledge.create.request">;
301
322
  requestId: z.ZodString;
@@ -337,9 +358,9 @@ export declare const ProjectKnowledgeCreateRequestMessageSchema: z.ZodObject<{
337
358
  }, z.core.$strip>>;
338
359
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
339
360
  read: "read";
361
+ rejected: "rejected";
340
362
  unevaluated: "unevaluated";
341
363
  adopted: "adopted";
342
- rejected: "rejected";
343
364
  dependency: "dependency";
344
365
  }>>;
345
366
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -386,9 +407,9 @@ export declare const ProjectKnowledgeCreateResponseMessageSchema: z.ZodObject<{
386
407
  }, z.core.$strip>>;
387
408
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
388
409
  read: "read";
410
+ rejected: "rejected";
389
411
  unevaluated: "unevaluated";
390
412
  adopted: "adopted";
391
- rejected: "rejected";
392
413
  dependency: "dependency";
393
414
  }>>;
394
415
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -462,9 +483,9 @@ export declare const ProjectKnowledgeApplyResponseMessageSchema: z.ZodObject<{
462
483
  }, z.core.$strip>>;
463
484
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
464
485
  read: "read";
486
+ rejected: "rejected";
465
487
  unevaluated: "unevaluated";
466
488
  adopted: "adopted";
467
- rejected: "rejected";
468
489
  dependency: "dependency";
469
490
  }>>;
470
491
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -537,9 +558,9 @@ export declare const ProjectKnowledgeStatusResponseMessageSchema: z.ZodObject<{
537
558
  }, z.core.$strip>>;
538
559
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
539
560
  read: "read";
561
+ rejected: "rejected";
540
562
  unevaluated: "unevaluated";
541
563
  adopted: "adopted";
542
- rejected: "rejected";
543
564
  dependency: "dependency";
544
565
  }>>;
545
566
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -622,9 +643,9 @@ export declare const ProjectKnowledgeProjectApplyResponseMessageSchema: z.ZodObj
622
643
  }, z.core.$strip>>;
623
644
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
624
645
  read: "read";
646
+ rejected: "rejected";
625
647
  unevaluated: "unevaluated";
626
648
  adopted: "adopted";
627
- rejected: "rejected";
628
649
  dependency: "dependency";
629
650
  }>>;
630
651
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -650,9 +671,9 @@ export declare const ProjectKnowledgeReferenceApplyRequestMessageSchema: z.ZodOb
650
671
  id: z.ZodString;
651
672
  disposition: z.ZodOptional<z.ZodEnum<{
652
673
  read: "read";
674
+ rejected: "rejected";
653
675
  unevaluated: "unevaluated";
654
676
  adopted: "adopted";
655
- rejected: "rejected";
656
677
  dependency: "dependency";
657
678
  }>>;
658
679
  sourceUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -701,9 +722,9 @@ export declare const ProjectKnowledgeReferenceApplyResponseMessageSchema: z.ZodO
701
722
  }, z.core.$strip>>;
702
723
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
703
724
  read: "read";
725
+ rejected: "rejected";
704
726
  unevaluated: "unevaluated";
705
727
  adopted: "adopted";
706
- rejected: "rejected";
707
728
  dependency: "dependency";
708
729
  }>>;
709
730
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -738,7 +759,7 @@ export declare const ProjectKnowledgeRootApplyResponseMessageSchema: z.ZodObject
738
759
  title: z.ZodString;
739
760
  path: z.ZodString;
740
761
  absolutePath: z.ZodOptional<z.ZodString>;
741
- body: z.ZodString;
762
+ body: z.ZodOptional<z.ZodString>;
742
763
  bodyDigest: z.ZodOptional<z.ZodString>;
743
764
  }, z.core.$strip>>;
744
765
  }, z.core.$strip>;
@@ -806,9 +827,9 @@ export declare const ProjectKnowledgeRefineApplyResponseMessageSchema: z.ZodObje
806
827
  }, z.core.$strip>>;
807
828
  referenceDisposition: z.ZodOptional<z.ZodEnum<{
808
829
  read: "read";
830
+ rejected: "rejected";
809
831
  unevaluated: "unevaluated";
810
832
  adopted: "adopted";
811
- rejected: "rejected";
812
833
  dependency: "dependency";
813
834
  }>>;
814
835
  sourceUrl: z.ZodOptional<z.ZodString>;
@@ -829,7 +850,7 @@ export declare const ProjectKnowledgeRefineApplyResponseMessageSchema: z.ZodObje
829
850
  title: z.ZodString;
830
851
  path: z.ZodString;
831
852
  absolutePath: z.ZodOptional<z.ZodString>;
832
- body: z.ZodString;
853
+ body: z.ZodOptional<z.ZodString>;
833
854
  bodyDigest: z.ZodOptional<z.ZodString>;
834
855
  }, z.core.$strip>>;
835
856
  demoted: z.ZodBoolean;
@@ -927,6 +948,7 @@ export declare const ProjectKnowledgeDeleteResponseMessageSchema: z.ZodObject<{
927
948
  }, z.core.$strip>;
928
949
  export type ProjectKnowledgeListResponseMessage = z.infer<typeof ProjectKnowledgeListResponseMessageSchema>;
929
950
  export type ProjectKnowledgeGetResponseMessage = z.infer<typeof ProjectKnowledgeGetResponseMessageSchema>;
951
+ export type ProjectKnowledgeRootGetResponseMessage = z.infer<typeof ProjectKnowledgeRootGetResponseMessageSchema>;
930
952
  export type ProjectKnowledgeCreateResponseMessage = z.infer<typeof ProjectKnowledgeCreateResponseMessageSchema>;
931
953
  export type ProjectKnowledgeApplyResponseMessage = z.infer<typeof ProjectKnowledgeApplyResponseMessageSchema>;
932
954
  export type ProjectKnowledgeRefinementProposeResponseMessage = z.infer<typeof ProjectKnowledgeRefinementProposeResponseMessageSchema>;
@@ -98,7 +98,10 @@ export const ProjectKnowledgeRootPageSchema = z.object({
98
98
  // COMPAT(projectKnowledgeStoreLocation): added in v0.8.18. See the same field
99
99
  // on ProjectKnowledgeRecordSchema.
100
100
  absolutePath: z.string().optional(),
101
- body: z.string(),
101
+ // COMPAT(projectKnowledgeDeferredRootBodies): added in v0.9.1; legacy list
102
+ // responses keep sending this. New clients request root summaries and fetch
103
+ // the one selected document through project.knowledge.root.get.request.
104
+ body: z.string().optional(),
102
105
  /** Conditional-write precondition for a reviewed root-page refinement. */
103
106
  bodyDigest: z.string().optional(),
104
107
  });
@@ -106,6 +109,9 @@ export const ProjectKnowledgeListRequestMessageSchema = z.object({
106
109
  type: z.literal("project.knowledge.list.request"),
107
110
  requestId: z.string(),
108
111
  workspaceId: z.string(),
112
+ // A catalog normally needs root titles and paths, not six full Markdown
113
+ // documents. Optional so older clients keep receiving the original shape.
114
+ includeRootBodies: z.boolean().optional(),
109
115
  });
110
116
  export const ProjectKnowledgeListResponseMessageSchema = z.object({
111
117
  type: z.literal("project.knowledge.list.response"),
@@ -130,6 +136,16 @@ export const ProjectKnowledgeGetResponseMessageSchema = z.object({
130
136
  type: z.literal("project.knowledge.get.response"),
131
137
  payload: z.object({ requestId: z.string(), record: ProjectKnowledgeRecordSchema.nullable() }),
132
138
  });
139
+ export const ProjectKnowledgeRootGetRequestMessageSchema = z.object({
140
+ type: z.literal("project.knowledge.root.get.request"),
141
+ requestId: z.string(),
142
+ workspaceId: z.string(),
143
+ slug: z.string(),
144
+ });
145
+ export const ProjectKnowledgeRootGetResponseMessageSchema = z.object({
146
+ type: z.literal("project.knowledge.root.get.response"),
147
+ payload: z.object({ requestId: z.string(), page: ProjectKnowledgeRootPageSchema.nullable() }),
148
+ });
133
149
  export const ProjectKnowledgeCreateRequestMessageSchema = z.object({
134
150
  type: z.literal("project.knowledge.create.request"),
135
151
  requestId: z.string(),
@@ -185,7 +185,7 @@ const OTTO_TOOL_GROUP_RULES = [
185
185
  { group: "artifacts", contains: ["artifact"] },
186
186
  { group: "widgets", names: ["show_widget", "widget_contract"] },
187
187
  { group: "workspace", contains: ["worktree", "workspace"] },
188
- { group: "orchestration", contains: ["orchestration"] },
188
+ { group: "orchestration", contains: ["orchestration", "workflow"] },
189
189
  { group: "knowledge", contains: ["project_"] },
190
190
  { group: "memory", contains: ["lesson"] },
191
191
  { group: "permissions", contains: ["permission"] },
@@ -32,6 +32,7 @@ export const ACP_PROVIDER_ICON_NAMES = [
32
32
  "junie",
33
33
  "kilo",
34
34
  "kimi",
35
+ "minimax-code",
35
36
  "minion-code",
36
37
  "mistral-vibe",
37
38
  "nova",
@@ -47,6 +47,10 @@ export declare const ScheduleCreateRequestSchema: z.ZodObject<{
47
47
  systemPrompt: z.ZodOptional<z.ZodString>;
48
48
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
49
49
  }, z.core.$strip>;
50
+ }, z.core.$strip>, z.ZodObject<{
51
+ type: z.ZodLiteral<"workflow">;
52
+ definitionId: z.ZodString;
53
+ projectRoot: z.ZodString;
50
54
  }, z.core.$strip>], "type">;
51
55
  maxRuns: z.ZodOptional<z.ZodNumber>;
52
56
  expiresAt: z.ZodOptional<z.ZodString>;
@@ -123,14 +127,14 @@ export declare const ScheduleCreateResponseSchema: z.ZodObject<{
123
127
  schedule: z.ZodNullable<z.ZodObject<{
124
128
  prompt: z.ZodString;
125
129
  name: z.ZodNullable<z.ZodString>;
126
- id: z.ZodString;
127
- createdAt: z.ZodString;
128
- updatedAt: z.ZodString;
129
130
  status: z.ZodEnum<{
130
131
  completed: "completed";
131
132
  active: "active";
132
133
  paused: "paused";
133
134
  }>;
135
+ id: z.ZodString;
136
+ createdAt: z.ZodString;
137
+ updatedAt: z.ZodString;
134
138
  expiresAt: z.ZodNullable<z.ZodString>;
135
139
  target: z.ZodDiscriminatedUnion<[z.ZodObject<{
136
140
  type: z.ZodLiteral<"agent">;
@@ -164,6 +168,10 @@ export declare const ScheduleCreateResponseSchema: z.ZodObject<{
164
168
  systemPrompt: z.ZodOptional<z.ZodString>;
165
169
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
166
170
  }, z.core.$strip>;
171
+ }, z.core.$strip>, z.ZodObject<{
172
+ type: z.ZodLiteral<"workflow">;
173
+ definitionId: z.ZodString;
174
+ projectRoot: z.ZodString;
167
175
  }, z.core.$strip>], "type">;
168
176
  cadence: z.ZodDiscriminatedUnion<[z.ZodObject<{
169
177
  type: z.ZodLiteral<"every">;
@@ -196,14 +204,14 @@ export declare const ScheduleListResponseSchema: z.ZodObject<{
196
204
  schedules: z.ZodArray<z.ZodObject<{
197
205
  prompt: z.ZodString;
198
206
  name: z.ZodNullable<z.ZodString>;
199
- id: z.ZodString;
200
- createdAt: z.ZodString;
201
- updatedAt: z.ZodString;
202
207
  status: z.ZodEnum<{
203
208
  completed: "completed";
204
209
  active: "active";
205
210
  paused: "paused";
206
211
  }>;
212
+ id: z.ZodString;
213
+ createdAt: z.ZodString;
214
+ updatedAt: z.ZodString;
207
215
  expiresAt: z.ZodNullable<z.ZodString>;
208
216
  target: z.ZodDiscriminatedUnion<[z.ZodObject<{
209
217
  type: z.ZodLiteral<"agent">;
@@ -237,6 +245,10 @@ export declare const ScheduleListResponseSchema: z.ZodObject<{
237
245
  systemPrompt: z.ZodOptional<z.ZodString>;
238
246
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
239
247
  }, z.core.$strip>;
248
+ }, z.core.$strip>, z.ZodObject<{
249
+ type: z.ZodLiteral<"workflow">;
250
+ definitionId: z.ZodString;
251
+ projectRoot: z.ZodString;
240
252
  }, z.core.$strip>], "type">;
241
253
  cadence: z.ZodDiscriminatedUnion<[z.ZodObject<{
242
254
  type: z.ZodLiteral<"every">;
@@ -310,6 +322,10 @@ export declare const ScheduleInspectResponseSchema: z.ZodObject<{
310
322
  systemPrompt: z.ZodOptional<z.ZodString>;
311
323
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
312
324
  }, z.core.$strip>;
325
+ }, z.core.$strip>, z.ZodObject<{
326
+ type: z.ZodLiteral<"workflow">;
327
+ definitionId: z.ZodString;
328
+ projectRoot: z.ZodString;
313
329
  }, z.core.$strip>], "type">;
314
330
  status: z.ZodEnum<{
315
331
  completed: "completed";
@@ -373,7 +389,19 @@ export declare const ScheduleInspectResponseSchema: z.ZodObject<{
373
389
  systemPrompt: z.ZodOptional<z.ZodString>;
374
390
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
375
391
  }, z.core.$strip>;
392
+ }, z.core.$strip>, z.ZodObject<{
393
+ type: z.ZodLiteral<"workflow">;
394
+ definitionId: z.ZodString;
395
+ projectRoot: z.ZodString;
376
396
  }, z.core.$strip>], "type">>;
397
+ workflow: z.ZodOptional<z.ZodObject<{
398
+ definitionId: z.ZodString;
399
+ title: z.ZodString;
400
+ kind: z.ZodString;
401
+ projectRoot: z.ZodString;
402
+ fingerprint: z.ZodString;
403
+ runId: z.ZodString;
404
+ }, z.core.$strip>>;
377
405
  agentId: z.ZodNullable<z.ZodGUID>;
378
406
  workspaceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
379
407
  personalityName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -432,7 +460,19 @@ export declare const ScheduleLogsResponseSchema: z.ZodObject<{
432
460
  systemPrompt: z.ZodOptional<z.ZodString>;
433
461
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
434
462
  }, z.core.$strip>;
463
+ }, z.core.$strip>, z.ZodObject<{
464
+ type: z.ZodLiteral<"workflow">;
465
+ definitionId: z.ZodString;
466
+ projectRoot: z.ZodString;
435
467
  }, z.core.$strip>], "type">>;
468
+ workflow: z.ZodOptional<z.ZodObject<{
469
+ definitionId: z.ZodString;
470
+ title: z.ZodString;
471
+ kind: z.ZodString;
472
+ projectRoot: z.ZodString;
473
+ fingerprint: z.ZodString;
474
+ runId: z.ZodString;
475
+ }, z.core.$strip>>;
436
476
  agentId: z.ZodNullable<z.ZodGUID>;
437
477
  workspaceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
438
478
  personalityName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -451,14 +491,14 @@ export declare const SchedulePauseResponseSchema: z.ZodObject<{
451
491
  schedule: z.ZodNullable<z.ZodObject<{
452
492
  prompt: z.ZodString;
453
493
  name: z.ZodNullable<z.ZodString>;
454
- id: z.ZodString;
455
- createdAt: z.ZodString;
456
- updatedAt: z.ZodString;
457
494
  status: z.ZodEnum<{
458
495
  completed: "completed";
459
496
  active: "active";
460
497
  paused: "paused";
461
498
  }>;
499
+ id: z.ZodString;
500
+ createdAt: z.ZodString;
501
+ updatedAt: z.ZodString;
462
502
  expiresAt: z.ZodNullable<z.ZodString>;
463
503
  target: z.ZodDiscriminatedUnion<[z.ZodObject<{
464
504
  type: z.ZodLiteral<"agent">;
@@ -492,6 +532,10 @@ export declare const SchedulePauseResponseSchema: z.ZodObject<{
492
532
  systemPrompt: z.ZodOptional<z.ZodString>;
493
533
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
494
534
  }, z.core.$strip>;
535
+ }, z.core.$strip>, z.ZodObject<{
536
+ type: z.ZodLiteral<"workflow">;
537
+ definitionId: z.ZodString;
538
+ projectRoot: z.ZodString;
495
539
  }, z.core.$strip>], "type">;
496
540
  cadence: z.ZodDiscriminatedUnion<[z.ZodObject<{
497
541
  type: z.ZodLiteral<"every">;
@@ -524,14 +568,14 @@ export declare const ScheduleResumeResponseSchema: z.ZodObject<{
524
568
  schedule: z.ZodNullable<z.ZodObject<{
525
569
  prompt: z.ZodString;
526
570
  name: z.ZodNullable<z.ZodString>;
527
- id: z.ZodString;
528
- createdAt: z.ZodString;
529
- updatedAt: z.ZodString;
530
571
  status: z.ZodEnum<{
531
572
  completed: "completed";
532
573
  active: "active";
533
574
  paused: "paused";
534
575
  }>;
576
+ id: z.ZodString;
577
+ createdAt: z.ZodString;
578
+ updatedAt: z.ZodString;
535
579
  expiresAt: z.ZodNullable<z.ZodString>;
536
580
  target: z.ZodDiscriminatedUnion<[z.ZodObject<{
537
581
  type: z.ZodLiteral<"agent">;
@@ -565,6 +609,10 @@ export declare const ScheduleResumeResponseSchema: z.ZodObject<{
565
609
  systemPrompt: z.ZodOptional<z.ZodString>;
566
610
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
567
611
  }, z.core.$strip>;
612
+ }, z.core.$strip>, z.ZodObject<{
613
+ type: z.ZodLiteral<"workflow">;
614
+ definitionId: z.ZodString;
615
+ projectRoot: z.ZodString;
568
616
  }, z.core.$strip>], "type">;
569
617
  cadence: z.ZodDiscriminatedUnion<[z.ZodObject<{
570
618
  type: z.ZodLiteral<"every">;
@@ -646,6 +694,10 @@ export declare const ScheduleRunOnceResponseSchema: z.ZodObject<{
646
694
  systemPrompt: z.ZodOptional<z.ZodString>;
647
695
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
648
696
  }, z.core.$strip>;
697
+ }, z.core.$strip>, z.ZodObject<{
698
+ type: z.ZodLiteral<"workflow">;
699
+ definitionId: z.ZodString;
700
+ projectRoot: z.ZodString;
649
701
  }, z.core.$strip>], "type">;
650
702
  status: z.ZodEnum<{
651
703
  completed: "completed";
@@ -709,7 +761,19 @@ export declare const ScheduleRunOnceResponseSchema: z.ZodObject<{
709
761
  systemPrompt: z.ZodOptional<z.ZodString>;
710
762
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
711
763
  }, z.core.$strip>;
764
+ }, z.core.$strip>, z.ZodObject<{
765
+ type: z.ZodLiteral<"workflow">;
766
+ definitionId: z.ZodString;
767
+ projectRoot: z.ZodString;
712
768
  }, z.core.$strip>], "type">>;
769
+ workflow: z.ZodOptional<z.ZodObject<{
770
+ definitionId: z.ZodString;
771
+ title: z.ZodString;
772
+ kind: z.ZodString;
773
+ projectRoot: z.ZodString;
774
+ fingerprint: z.ZodString;
775
+ runId: z.ZodString;
776
+ }, z.core.$strip>>;
713
777
  agentId: z.ZodNullable<z.ZodGUID>;
714
778
  workspaceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
715
779
  personalityName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -770,6 +834,10 @@ export declare const ScheduleUpdateResponseSchema: z.ZodObject<{
770
834
  systemPrompt: z.ZodOptional<z.ZodString>;
771
835
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
772
836
  }, z.core.$strip>;
837
+ }, z.core.$strip>, z.ZodObject<{
838
+ type: z.ZodLiteral<"workflow">;
839
+ definitionId: z.ZodString;
840
+ projectRoot: z.ZodString;
773
841
  }, z.core.$strip>], "type">;
774
842
  status: z.ZodEnum<{
775
843
  completed: "completed";
@@ -833,7 +901,19 @@ export declare const ScheduleUpdateResponseSchema: z.ZodObject<{
833
901
  systemPrompt: z.ZodOptional<z.ZodString>;
834
902
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
835
903
  }, z.core.$strip>;
904
+ }, z.core.$strip>, z.ZodObject<{
905
+ type: z.ZodLiteral<"workflow">;
906
+ definitionId: z.ZodString;
907
+ projectRoot: z.ZodString;
836
908
  }, z.core.$strip>], "type">>;
909
+ workflow: z.ZodOptional<z.ZodObject<{
910
+ definitionId: z.ZodString;
911
+ title: z.ZodString;
912
+ kind: z.ZodString;
913
+ projectRoot: z.ZodString;
914
+ fingerprint: z.ZodString;
915
+ runId: z.ZodString;
916
+ }, z.core.$strip>>;
837
917
  agentId: z.ZodNullable<z.ZodGUID>;
838
918
  workspaceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
839
919
  personalityName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { ScheduleCadenceSchema, ScheduleRunSchema, ScheduleSummarySchema, StoredScheduleSchema, ScheduleTargetSchema, } from "./types.js";
3
3
  const ScheduleCreateNewAgentConfigSchema = ScheduleTargetSchema.options[1].shape.config;
4
+ const ScheduleWorkflowTargetSchema = ScheduleTargetSchema.options[2];
4
5
  const ScheduleCreateTargetSchema = z.discriminatedUnion("type", [
5
6
  z.object({
6
7
  type: z.literal("self"),
@@ -14,6 +15,7 @@ const ScheduleCreateTargetSchema = z.discriminatedUnion("type", [
14
15
  type: z.literal("new-agent"),
15
16
  config: ScheduleCreateNewAgentConfigSchema,
16
17
  }),
18
+ ScheduleWorkflowTargetSchema,
17
19
  ]);
18
20
  export const ScheduleCreateRequestSchema = z.object({
19
21
  type: z.literal("schedule/create"),