@otto-code/protocol 0.8.18 → 0.9.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 (40) hide show
  1. package/dist/agent-labels.d.ts +13 -0
  2. package/dist/agent-labels.js +26 -1
  3. package/dist/agent-profiles.d.ts +1 -1
  4. package/dist/agent-profiles.js +3 -3
  5. package/dist/architectural-views/rpc-schemas.d.ts +342 -0
  6. package/dist/architectural-views/rpc-schemas.js +171 -0
  7. package/dist/artifacts/rpc-schemas.d.ts +360 -2
  8. package/dist/artifacts/rpc-schemas.js +75 -1
  9. package/dist/artifacts/types.d.ts +71 -0
  10. package/dist/artifacts/types.js +27 -0
  11. package/dist/binary-frames/terminal.d.ts +1 -1
  12. package/dist/daemon-config.d.ts +66 -0
  13. package/dist/daemon-config.js +76 -3
  14. package/dist/generated/validation/ws-outbound.aot.js +70170 -56553
  15. package/dist/git-hosting.d.ts +56 -0
  16. package/dist/git-hosting.js +50 -0
  17. package/dist/kanban.d.ts +4 -0
  18. package/dist/kanban.js +4 -0
  19. package/dist/messages.d.ts +12186 -1217
  20. package/dist/messages.js +642 -33
  21. package/dist/model-tiers.js +2 -0
  22. package/dist/project-knowledge.d.ts +172 -0
  23. package/dist/project-knowledge.js +77 -0
  24. package/dist/provider-config.js +1 -1
  25. package/dist/provider-icon-names.js +1 -0
  26. package/dist/schedule/rpc-schemas.d.ts +212 -0
  27. package/dist/schedule/rpc-schemas.js +2 -0
  28. package/dist/schedule/types.d.ts +110 -0
  29. package/dist/schedule/types.js +27 -0
  30. package/dist/search/text-match.d.ts +16 -0
  31. package/dist/search/text-match.js +31 -2
  32. package/dist/validation/ws-outbound-schema-metadata.d.ts +2481 -104
  33. package/dist/workflow.d.ts +3060 -0
  34. package/dist/{orchestration.js → workflow.js} +461 -29
  35. package/dist/workspace-labels.d.ts +9 -0
  36. package/dist/workspace-labels.js +19 -0
  37. package/package.json +1 -1
  38. package/dist/orchestration.d.ts +0 -1148
  39. package/dist/project-links.d.ts +0 -102
  40. package/dist/project-links.js +0 -62
@@ -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",
@@ -132,6 +132,7 @@ export declare const ProjectKnowledgeRootPageSchema: z.ZodObject<{
132
132
  path: z.ZodString;
133
133
  absolutePath: z.ZodOptional<z.ZodString>;
134
134
  body: z.ZodString;
135
+ bodyDigest: z.ZodOptional<z.ZodString>;
135
136
  }, z.core.$strip>;
136
137
  export declare const ProjectKnowledgeListRequestMessageSchema: z.ZodObject<{
137
138
  type: z.ZodLiteral<"project.knowledge.list.request">;
@@ -204,6 +205,7 @@ export declare const ProjectKnowledgeListResponseMessageSchema: z.ZodObject<{
204
205
  path: z.ZodString;
205
206
  absolutePath: z.ZodOptional<z.ZodString>;
206
207
  body: z.ZodString;
208
+ bodyDigest: z.ZodOptional<z.ZodString>;
207
209
  }, z.core.$strip>>>;
208
210
  findings: z.ZodArray<z.ZodObject<{
209
211
  kind: z.ZodEnum<{
@@ -412,6 +414,7 @@ export declare const ProjectKnowledgeApplyRequestMessageSchema: z.ZodObject<{
412
414
  title: z.ZodOptional<z.ZodString>;
413
415
  statement: z.ZodOptional<z.ZodString>;
414
416
  evidence: z.ZodOptional<z.ZodString>;
417
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
415
418
  provenanceText: z.ZodOptional<z.ZodString>;
416
419
  provenanceSource: z.ZodOptional<z.ZodString>;
417
420
  provenanceAffects: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -736,7 +739,174 @@ export declare const ProjectKnowledgeRootApplyResponseMessageSchema: z.ZodObject
736
739
  path: z.ZodString;
737
740
  absolutePath: z.ZodOptional<z.ZodString>;
738
741
  body: z.ZodString;
742
+ bodyDigest: z.ZodOptional<z.ZodString>;
743
+ }, z.core.$strip>>;
744
+ }, z.core.$strip>;
745
+ }, z.core.$strip>;
746
+ /**
747
+ * A reviewed refinement commits an accepted proposal, not an ordinary edit.
748
+ * Confirmed atomic Knowledge is demoted atomically with its new truth; root
749
+ * pages use a body digest because they have no review state.
750
+ */
751
+ export declare const ProjectKnowledgeRefineApplyRequestMessageSchema: z.ZodObject<{
752
+ type: z.ZodLiteral<"project.knowledge.refine.apply.request">;
753
+ requestId: z.ZodString;
754
+ workspaceId: z.ZodString;
755
+ target: z.ZodEnum<{
756
+ record: "record";
757
+ root: "root";
758
+ }>;
759
+ id: z.ZodOptional<z.ZodString>;
760
+ slug: z.ZodOptional<z.ZodString>;
761
+ statement: z.ZodOptional<z.ZodString>;
762
+ evidence: z.ZodOptional<z.ZodString>;
763
+ body: z.ZodOptional<z.ZodString>;
764
+ expectedUpdatedAt: z.ZodOptional<z.ZodString>;
765
+ expectedBodyDigest: z.ZodOptional<z.ZodString>;
766
+ }, z.core.$strip>;
767
+ export declare const ProjectKnowledgeRefineApplyResponseMessageSchema: z.ZodObject<{
768
+ type: z.ZodLiteral<"project.knowledge.refine.apply.response">;
769
+ payload: z.ZodObject<{
770
+ requestId: z.ZodString;
771
+ record: z.ZodNullable<z.ZodObject<{
772
+ id: z.ZodString;
773
+ kind: z.ZodEnum<{
774
+ project: "project";
775
+ reference: "reference";
776
+ decision: "decision";
777
+ constraint: "constraint";
778
+ requirement: "requirement";
779
+ architecture: "architecture";
780
+ finding: "finding";
781
+ }>;
782
+ title: z.ZodString;
783
+ statement: z.ZodString;
784
+ statementDigest: z.ZodOptional<z.ZodString>;
785
+ evidence: z.ZodOptional<z.ZodString>;
786
+ tags: z.ZodArray<z.ZodString>;
787
+ status: z.ZodEnum<{
788
+ superseded: "superseded";
789
+ proposed: "proposed";
790
+ confirmed: "confirmed";
791
+ }>;
792
+ deliveryStatus: z.ZodOptional<z.ZodEnum<{
793
+ reference: "reference";
794
+ charter: "charter";
795
+ in_build: "in_build";
796
+ partial: "partial";
797
+ blocked: "blocked";
798
+ complete: "complete";
799
+ deferred: "deferred";
800
+ cancelled: "cancelled";
801
+ }>>;
802
+ progress: z.ZodOptional<z.ZodObject<{
803
+ completed: z.ZodNumber;
804
+ total: z.ZodNumber;
805
+ unit: z.ZodString;
806
+ }, z.core.$strip>>;
807
+ referenceDisposition: z.ZodOptional<z.ZodEnum<{
808
+ read: "read";
809
+ unevaluated: "unevaluated";
810
+ adopted: "adopted";
811
+ rejected: "rejected";
812
+ dependency: "dependency";
813
+ }>>;
814
+ sourceUrl: z.ZodOptional<z.ZodString>;
815
+ createdAt: z.ZodString;
816
+ updatedAt: z.ZodString;
817
+ provenance: z.ZodOptional<z.ZodArray<z.ZodObject<{
818
+ text: z.ZodString;
819
+ recordedAt: z.ZodString;
820
+ source: z.ZodOptional<z.ZodString>;
821
+ kind: z.ZodOptional<z.ZodString>;
822
+ affects: z.ZodOptional<z.ZodArray<z.ZodString>>;
823
+ }, z.core.$strip>>>;
824
+ path: z.ZodOptional<z.ZodString>;
825
+ absolutePath: z.ZodOptional<z.ZodString>;
826
+ }, z.core.$strip>>;
827
+ page: z.ZodNullable<z.ZodObject<{
828
+ slug: z.ZodString;
829
+ title: z.ZodString;
830
+ path: z.ZodString;
831
+ absolutePath: z.ZodOptional<z.ZodString>;
832
+ body: z.ZodString;
833
+ bodyDigest: z.ZodOptional<z.ZodString>;
739
834
  }, z.core.$strip>>;
835
+ demoted: z.ZodBoolean;
836
+ error: z.ZodOptional<z.ZodString>;
837
+ }, z.core.$strip>;
838
+ }, z.core.$strip>;
839
+ /** An exact source span inside an editable Project Knowledge title or body. */
840
+ export declare const ProjectKnowledgeRefinementAnchorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
841
+ kind: z.ZodLiteral<"text">;
842
+ start: z.ZodNumber;
843
+ end: z.ZodNumber;
844
+ }, z.core.$strip>, z.ZodObject<{
845
+ kind: z.ZodLiteral<"fence">;
846
+ start: z.ZodNumber;
847
+ end: z.ZodNumber;
848
+ language: z.ZodNullable<z.ZodString>;
849
+ }, z.core.$strip>], "kind">;
850
+ /** A temporary source-bound instruction sent to the dedicated Knowledge writer. */
851
+ export declare const ProjectKnowledgeRefinementDirectiveSchema: z.ZodObject<{
852
+ id: z.ZodOptional<z.ZodString>;
853
+ kind: z.ZodEnum<{
854
+ replace: "replace";
855
+ refine: "refine";
856
+ }>;
857
+ selectedText: z.ZodOptional<z.ZodString>;
858
+ beforeContext: z.ZodOptional<z.ZodString>;
859
+ afterContext: z.ZodOptional<z.ZodString>;
860
+ anchor: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
861
+ kind: z.ZodLiteral<"text">;
862
+ start: z.ZodNumber;
863
+ end: z.ZodNumber;
864
+ }, z.core.$strip>, z.ZodObject<{
865
+ kind: z.ZodLiteral<"fence">;
866
+ start: z.ZodNumber;
867
+ end: z.ZodNumber;
868
+ language: z.ZodNullable<z.ZodString>;
869
+ }, z.core.$strip>], "kind">>;
870
+ value: z.ZodString;
871
+ }, z.core.$strip>;
872
+ /**
873
+ * Produces one inert Knowledge proposal. Direct replacements have already been
874
+ * applied by the caller; this request carries only the remaining refinement
875
+ * instructions and never writes the store.
876
+ */
877
+ export declare const ProjectKnowledgeRefinementProposeRequestMessageSchema: z.ZodObject<{
878
+ type: z.ZodLiteral<"project.knowledge.refinement.propose.request">;
879
+ requestId: z.ZodString;
880
+ workspaceId: z.ZodString;
881
+ content: z.ZodString;
882
+ directives: z.ZodArray<z.ZodObject<{
883
+ id: z.ZodOptional<z.ZodString>;
884
+ kind: z.ZodEnum<{
885
+ replace: "replace";
886
+ refine: "refine";
887
+ }>;
888
+ selectedText: z.ZodOptional<z.ZodString>;
889
+ beforeContext: z.ZodOptional<z.ZodString>;
890
+ afterContext: z.ZodOptional<z.ZodString>;
891
+ anchor: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
892
+ kind: z.ZodLiteral<"text">;
893
+ start: z.ZodNumber;
894
+ end: z.ZodNumber;
895
+ }, z.core.$strip>, z.ZodObject<{
896
+ kind: z.ZodLiteral<"fence">;
897
+ start: z.ZodNumber;
898
+ end: z.ZodNumber;
899
+ language: z.ZodNullable<z.ZodString>;
900
+ }, z.core.$strip>], "kind">>;
901
+ value: z.ZodString;
902
+ }, z.core.$strip>>;
903
+ }, z.core.$strip>;
904
+ export declare const ProjectKnowledgeRefinementProposeResponseMessageSchema: z.ZodObject<{
905
+ type: z.ZodLiteral<"project.knowledge.refinement.propose.response">;
906
+ payload: z.ZodObject<{
907
+ requestId: z.ZodString;
908
+ content: z.ZodNullable<z.ZodString>;
909
+ error: z.ZodOptional<z.ZodString>;
740
910
  }, z.core.$strip>;
741
911
  }, z.core.$strip>;
742
912
  export declare const ProjectKnowledgeDeleteRequestMessageSchema: z.ZodObject<{
@@ -759,10 +929,12 @@ export type ProjectKnowledgeListResponseMessage = z.infer<typeof ProjectKnowledg
759
929
  export type ProjectKnowledgeGetResponseMessage = z.infer<typeof ProjectKnowledgeGetResponseMessageSchema>;
760
930
  export type ProjectKnowledgeCreateResponseMessage = z.infer<typeof ProjectKnowledgeCreateResponseMessageSchema>;
761
931
  export type ProjectKnowledgeApplyResponseMessage = z.infer<typeof ProjectKnowledgeApplyResponseMessageSchema>;
932
+ export type ProjectKnowledgeRefinementProposeResponseMessage = z.infer<typeof ProjectKnowledgeRefinementProposeResponseMessageSchema>;
762
933
  export type ProjectKnowledgeStatusResponseMessage = z.infer<typeof ProjectKnowledgeStatusResponseMessageSchema>;
763
934
  export type ProjectKnowledgeProjectApplyResponseMessage = z.infer<typeof ProjectKnowledgeProjectApplyResponseMessageSchema>;
764
935
  export type ProjectKnowledgeReferenceApplyResponseMessage = z.infer<typeof ProjectKnowledgeReferenceApplyResponseMessageSchema>;
765
936
  export type ProjectKnowledgeRootApplyResponseMessage = z.infer<typeof ProjectKnowledgeRootApplyResponseMessageSchema>;
937
+ export type ProjectKnowledgeRefineApplyResponseMessage = z.infer<typeof ProjectKnowledgeRefineApplyResponseMessageSchema>;
766
938
  export type ProjectKnowledgeDeleteResponseMessage = z.infer<typeof ProjectKnowledgeDeleteResponseMessageSchema>;
767
939
  /** What the daemon resolved for a workspace, and why the client may act on it. */
768
940
  export declare const ProjectKnowledgeStoreDescriptorSchema: z.ZodObject<{
@@ -99,6 +99,8 @@ export const ProjectKnowledgeRootPageSchema = z.object({
99
99
  // on ProjectKnowledgeRecordSchema.
100
100
  absolutePath: z.string().optional(),
101
101
  body: z.string(),
102
+ /** Conditional-write precondition for a reviewed root-page refinement. */
103
+ bodyDigest: z.string().optional(),
102
104
  });
103
105
  export const ProjectKnowledgeListRequestMessageSchema = z.object({
104
106
  type: z.literal("project.knowledge.list.request"),
@@ -157,6 +159,9 @@ export const ProjectKnowledgeApplyRequestMessageSchema = z.object({
157
159
  title: z.string().max(160).optional(),
158
160
  statement: z.string().optional(),
159
161
  evidence: z.string().optional(),
162
+ // COMPAT(projectKnowledgeTagEditing): added in v0.8.21, accepted through
163
+ // 2027-02-27 for clients before tag editing.
164
+ tags: z.array(z.string().max(48)).max(32).optional(),
160
165
  provenanceText: z.string().optional(),
161
166
  provenanceSource: z.string().max(160).optional(),
162
167
  provenanceAffects: z.array(z.string()).optional(),
@@ -232,6 +237,78 @@ export const ProjectKnowledgeRootApplyResponseMessageSchema = z.object({
232
237
  page: ProjectKnowledgeRootPageSchema.nullable(),
233
238
  }),
234
239
  });
240
+ /**
241
+ * A reviewed refinement commits an accepted proposal, not an ordinary edit.
242
+ * Confirmed atomic Knowledge is demoted atomically with its new truth; root
243
+ * pages use a body digest because they have no review state.
244
+ */
245
+ export const ProjectKnowledgeRefineApplyRequestMessageSchema = z.object({
246
+ type: z.literal("project.knowledge.refine.apply.request"),
247
+ requestId: z.string(),
248
+ workspaceId: z.string(),
249
+ target: z.enum(["record", "root"]),
250
+ id: z.string().optional(),
251
+ slug: z.string().optional(),
252
+ statement: z.string().optional(),
253
+ // COMPAT(projectKnowledgeEvidenceRefinement): added in v0.8.18, accepted
254
+ // through 2027-02-27 for clients before multi-field record review.
255
+ evidence: z.string().optional(),
256
+ body: z.string().optional(),
257
+ expectedUpdatedAt: z.string().optional(),
258
+ expectedBodyDigest: z.string().optional(),
259
+ });
260
+ export const ProjectKnowledgeRefineApplyResponseMessageSchema = z.object({
261
+ type: z.literal("project.knowledge.refine.apply.response"),
262
+ payload: z.object({
263
+ requestId: z.string(),
264
+ record: ProjectKnowledgeRecordSchema.nullable(),
265
+ page: ProjectKnowledgeRootPageSchema.nullable(),
266
+ demoted: z.boolean(),
267
+ error: z.string().optional(),
268
+ }),
269
+ });
270
+ /** An exact source span inside an editable Project Knowledge title or body. */
271
+ export const ProjectKnowledgeRefinementAnchorSchema = z.discriminatedUnion("kind", [
272
+ z.object({ kind: z.literal("text"), start: z.number().int(), end: z.number().int() }),
273
+ z.object({
274
+ kind: z.literal("fence"),
275
+ start: z.number().int(),
276
+ end: z.number().int(),
277
+ language: z.string().nullable(),
278
+ }),
279
+ ]);
280
+ /** A temporary source-bound instruction sent to the dedicated Knowledge writer. */
281
+ export const ProjectKnowledgeRefinementDirectiveSchema = z.object({
282
+ id: z.string().optional(),
283
+ kind: z.enum(["replace", "refine"]),
284
+ // COMPAT(projectKnowledgePhraseRefinement): accepted through 2027-02-27 for
285
+ // clients before source-owned review anchors.
286
+ selectedText: z.string().optional(),
287
+ beforeContext: z.string().optional(),
288
+ afterContext: z.string().optional(),
289
+ anchor: ProjectKnowledgeRefinementAnchorSchema.optional(),
290
+ value: z.string(),
291
+ });
292
+ /**
293
+ * Produces one inert Knowledge proposal. Direct replacements have already been
294
+ * applied by the caller; this request carries only the remaining refinement
295
+ * instructions and never writes the store.
296
+ */
297
+ export const ProjectKnowledgeRefinementProposeRequestMessageSchema = z.object({
298
+ type: z.literal("project.knowledge.refinement.propose.request"),
299
+ requestId: z.string(),
300
+ workspaceId: z.string(),
301
+ content: z.string(),
302
+ directives: z.array(ProjectKnowledgeRefinementDirectiveSchema),
303
+ });
304
+ export const ProjectKnowledgeRefinementProposeResponseMessageSchema = z.object({
305
+ type: z.literal("project.knowledge.refinement.propose.response"),
306
+ payload: z.object({
307
+ requestId: z.string(),
308
+ content: z.string().nullable(),
309
+ error: z.string().optional(),
310
+ }),
311
+ });
235
312
  export const ProjectKnowledgeDeleteRequestMessageSchema = z.object({
236
313
  type: z.literal("project.knowledge.delete.request"),
237
314
  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>;
@@ -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">;
@@ -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";
@@ -341,6 +357,51 @@ export declare const ScheduleInspectResponseSchema: z.ZodObject<{
341
357
  failed: "failed";
342
358
  succeeded: "succeeded";
343
359
  }>;
360
+ target: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
361
+ type: z.ZodLiteral<"agent">;
362
+ agentId: z.ZodGUID;
363
+ }, z.core.$strip>, z.ZodObject<{
364
+ type: z.ZodLiteral<"new-agent">;
365
+ config: z.ZodObject<{
366
+ provider: z.ZodString;
367
+ cwd: z.ZodString;
368
+ personality: z.ZodOptional<z.ZodString>;
369
+ agentProfile: z.ZodOptional<z.ZodString>;
370
+ modeId: z.ZodOptional<z.ZodString>;
371
+ model: z.ZodOptional<z.ZodString>;
372
+ thinkingOptionId: z.ZodOptional<z.ZodString>;
373
+ archiveOnFinish: z.ZodOptional<z.ZodBoolean>;
374
+ isolation: z.ZodOptional<z.ZodEnum<{
375
+ worktree: "worktree";
376
+ local: "local";
377
+ }>>;
378
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
379
+ providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
380
+ approvalPolicy: z.ZodOptional<z.ZodString>;
381
+ sandboxMode: z.ZodOptional<z.ZodString>;
382
+ networkAccess: z.ZodOptional<z.ZodBoolean>;
383
+ webSearch: z.ZodOptional<z.ZodBoolean>;
384
+ extra: z.ZodOptional<z.ZodObject<{
385
+ codex: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
386
+ claude: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
387
+ }, z.core.$strip>>;
388
+ featureValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
389
+ systemPrompt: z.ZodOptional<z.ZodString>;
390
+ mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
391
+ }, z.core.$strip>;
392
+ }, z.core.$strip>, z.ZodObject<{
393
+ type: z.ZodLiteral<"workflow">;
394
+ definitionId: z.ZodString;
395
+ projectRoot: z.ZodString;
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>>;
344
405
  agentId: z.ZodNullable<z.ZodGUID>;
345
406
  workspaceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
346
407
  personalityName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -367,6 +428,51 @@ export declare const ScheduleLogsResponseSchema: z.ZodObject<{
367
428
  failed: "failed";
368
429
  succeeded: "succeeded";
369
430
  }>;
431
+ target: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
432
+ type: z.ZodLiteral<"agent">;
433
+ agentId: z.ZodGUID;
434
+ }, z.core.$strip>, z.ZodObject<{
435
+ type: z.ZodLiteral<"new-agent">;
436
+ config: z.ZodObject<{
437
+ provider: z.ZodString;
438
+ cwd: z.ZodString;
439
+ personality: z.ZodOptional<z.ZodString>;
440
+ agentProfile: z.ZodOptional<z.ZodString>;
441
+ modeId: z.ZodOptional<z.ZodString>;
442
+ model: z.ZodOptional<z.ZodString>;
443
+ thinkingOptionId: z.ZodOptional<z.ZodString>;
444
+ archiveOnFinish: z.ZodOptional<z.ZodBoolean>;
445
+ isolation: z.ZodOptional<z.ZodEnum<{
446
+ worktree: "worktree";
447
+ local: "local";
448
+ }>>;
449
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
450
+ providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
451
+ approvalPolicy: z.ZodOptional<z.ZodString>;
452
+ sandboxMode: z.ZodOptional<z.ZodString>;
453
+ networkAccess: z.ZodOptional<z.ZodBoolean>;
454
+ webSearch: z.ZodOptional<z.ZodBoolean>;
455
+ extra: z.ZodOptional<z.ZodObject<{
456
+ codex: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
457
+ claude: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
458
+ }, z.core.$strip>>;
459
+ featureValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
460
+ systemPrompt: z.ZodOptional<z.ZodString>;
461
+ mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
462
+ }, z.core.$strip>;
463
+ }, z.core.$strip>, z.ZodObject<{
464
+ type: z.ZodLiteral<"workflow">;
465
+ definitionId: z.ZodString;
466
+ projectRoot: z.ZodString;
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>>;
370
476
  agentId: z.ZodNullable<z.ZodGUID>;
371
477
  workspaceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
372
478
  personalityName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -426,6 +532,10 @@ export declare const SchedulePauseResponseSchema: z.ZodObject<{
426
532
  systemPrompt: z.ZodOptional<z.ZodString>;
427
533
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
428
534
  }, z.core.$strip>;
535
+ }, z.core.$strip>, z.ZodObject<{
536
+ type: z.ZodLiteral<"workflow">;
537
+ definitionId: z.ZodString;
538
+ projectRoot: z.ZodString;
429
539
  }, z.core.$strip>], "type">;
430
540
  cadence: z.ZodDiscriminatedUnion<[z.ZodObject<{
431
541
  type: z.ZodLiteral<"every">;
@@ -499,6 +609,10 @@ export declare const ScheduleResumeResponseSchema: z.ZodObject<{
499
609
  systemPrompt: z.ZodOptional<z.ZodString>;
500
610
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
501
611
  }, z.core.$strip>;
612
+ }, z.core.$strip>, z.ZodObject<{
613
+ type: z.ZodLiteral<"workflow">;
614
+ definitionId: z.ZodString;
615
+ projectRoot: z.ZodString;
502
616
  }, z.core.$strip>], "type">;
503
617
  cadence: z.ZodDiscriminatedUnion<[z.ZodObject<{
504
618
  type: z.ZodLiteral<"every">;
@@ -580,6 +694,10 @@ export declare const ScheduleRunOnceResponseSchema: z.ZodObject<{
580
694
  systemPrompt: z.ZodOptional<z.ZodString>;
581
695
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
582
696
  }, z.core.$strip>;
697
+ }, z.core.$strip>, z.ZodObject<{
698
+ type: z.ZodLiteral<"workflow">;
699
+ definitionId: z.ZodString;
700
+ projectRoot: z.ZodString;
583
701
  }, z.core.$strip>], "type">;
584
702
  status: z.ZodEnum<{
585
703
  completed: "completed";
@@ -611,6 +729,51 @@ export declare const ScheduleRunOnceResponseSchema: z.ZodObject<{
611
729
  failed: "failed";
612
730
  succeeded: "succeeded";
613
731
  }>;
732
+ target: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
733
+ type: z.ZodLiteral<"agent">;
734
+ agentId: z.ZodGUID;
735
+ }, z.core.$strip>, z.ZodObject<{
736
+ type: z.ZodLiteral<"new-agent">;
737
+ config: z.ZodObject<{
738
+ provider: z.ZodString;
739
+ cwd: z.ZodString;
740
+ personality: z.ZodOptional<z.ZodString>;
741
+ agentProfile: z.ZodOptional<z.ZodString>;
742
+ modeId: z.ZodOptional<z.ZodString>;
743
+ model: z.ZodOptional<z.ZodString>;
744
+ thinkingOptionId: z.ZodOptional<z.ZodString>;
745
+ archiveOnFinish: z.ZodOptional<z.ZodBoolean>;
746
+ isolation: z.ZodOptional<z.ZodEnum<{
747
+ worktree: "worktree";
748
+ local: "local";
749
+ }>>;
750
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
751
+ providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
752
+ approvalPolicy: z.ZodOptional<z.ZodString>;
753
+ sandboxMode: z.ZodOptional<z.ZodString>;
754
+ networkAccess: z.ZodOptional<z.ZodBoolean>;
755
+ webSearch: z.ZodOptional<z.ZodBoolean>;
756
+ extra: z.ZodOptional<z.ZodObject<{
757
+ codex: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
758
+ claude: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
759
+ }, z.core.$strip>>;
760
+ featureValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
761
+ systemPrompt: z.ZodOptional<z.ZodString>;
762
+ mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
763
+ }, z.core.$strip>;
764
+ }, z.core.$strip>, z.ZodObject<{
765
+ type: z.ZodLiteral<"workflow">;
766
+ definitionId: z.ZodString;
767
+ projectRoot: z.ZodString;
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>>;
614
777
  agentId: z.ZodNullable<z.ZodGUID>;
615
778
  workspaceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
616
779
  personalityName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -671,6 +834,10 @@ export declare const ScheduleUpdateResponseSchema: z.ZodObject<{
671
834
  systemPrompt: z.ZodOptional<z.ZodString>;
672
835
  mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
673
836
  }, z.core.$strip>;
837
+ }, z.core.$strip>, z.ZodObject<{
838
+ type: z.ZodLiteral<"workflow">;
839
+ definitionId: z.ZodString;
840
+ projectRoot: z.ZodString;
674
841
  }, z.core.$strip>], "type">;
675
842
  status: z.ZodEnum<{
676
843
  completed: "completed";
@@ -702,6 +869,51 @@ export declare const ScheduleUpdateResponseSchema: z.ZodObject<{
702
869
  failed: "failed";
703
870
  succeeded: "succeeded";
704
871
  }>;
872
+ target: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
873
+ type: z.ZodLiteral<"agent">;
874
+ agentId: z.ZodGUID;
875
+ }, z.core.$strip>, z.ZodObject<{
876
+ type: z.ZodLiteral<"new-agent">;
877
+ config: z.ZodObject<{
878
+ provider: z.ZodString;
879
+ cwd: z.ZodString;
880
+ personality: z.ZodOptional<z.ZodString>;
881
+ agentProfile: z.ZodOptional<z.ZodString>;
882
+ modeId: z.ZodOptional<z.ZodString>;
883
+ model: z.ZodOptional<z.ZodString>;
884
+ thinkingOptionId: z.ZodOptional<z.ZodString>;
885
+ archiveOnFinish: z.ZodOptional<z.ZodBoolean>;
886
+ isolation: z.ZodOptional<z.ZodEnum<{
887
+ worktree: "worktree";
888
+ local: "local";
889
+ }>>;
890
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
891
+ providerOptions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
892
+ approvalPolicy: z.ZodOptional<z.ZodString>;
893
+ sandboxMode: z.ZodOptional<z.ZodString>;
894
+ networkAccess: z.ZodOptional<z.ZodBoolean>;
895
+ webSearch: z.ZodOptional<z.ZodBoolean>;
896
+ extra: z.ZodOptional<z.ZodObject<{
897
+ codex: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
898
+ claude: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
899
+ }, z.core.$strip>>;
900
+ featureValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
901
+ systemPrompt: z.ZodOptional<z.ZodString>;
902
+ mcpServers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
903
+ }, z.core.$strip>;
904
+ }, z.core.$strip>, z.ZodObject<{
905
+ type: z.ZodLiteral<"workflow">;
906
+ definitionId: z.ZodString;
907
+ projectRoot: z.ZodString;
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>>;
705
917
  agentId: z.ZodNullable<z.ZodGUID>;
706
918
  workspaceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
707
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"),