toolroll 0.9.84 → 0.9.86

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 (132) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +94 -1193
  3. package/dist/agent-fence.d.ts +9 -5
  4. package/dist/agent-fence.js +6 -5
  5. package/dist/agent-onboard.d.ts +2 -0
  6. package/dist/agent-onboard.js +3 -0
  7. package/dist/assignment.js +4 -3
  8. package/dist/browser/workspace.css +1 -1
  9. package/dist/browser/workspace.js +33 -31
  10. package/dist/browser-workspace.d.ts +45 -0
  11. package/dist/chat-actions.d.ts +11 -1
  12. package/dist/chat-actions.js +53 -1
  13. package/dist/chat-channel.d.ts +10 -1
  14. package/dist/chat-channel.js +36 -5
  15. package/dist/chat-decide.d.ts +16 -4
  16. package/dist/chat-decide.js +239 -31
  17. package/dist/chat-messages.d.ts +5 -0
  18. package/dist/chat-messages.js +1 -1
  19. package/dist/chat-quiet.js +6 -4
  20. package/dist/chat-review.d.ts +4 -0
  21. package/dist/chat-review.js +13 -4
  22. package/dist/chat-terms.d.ts +9 -0
  23. package/dist/chat-terms.js +46 -0
  24. package/dist/claim.d.ts +3 -0
  25. package/dist/claim.js +4 -1
  26. package/dist/contracts/chat-actions.d.ts +9 -0
  27. package/dist/contracts/chat-actions.js +3 -0
  28. package/dist/contracts/console-api.d.ts +6 -2
  29. package/dist/contracts/console-api.js +6 -2
  30. package/dist/contracts/flow-propose.d.ts +4 -1
  31. package/dist/contracts/flow-propose.js +1 -1
  32. package/dist/contracts/flow.d.ts +41 -0
  33. package/dist/contracts/flow.js +4 -2
  34. package/dist/contracts/lead-tools.d.ts +51 -0
  35. package/dist/contracts/lead-tools.js +5 -0
  36. package/dist/contracts/store-json.d.ts +2 -0
  37. package/dist/contracts/trigger-payloads.d.ts +20 -0
  38. package/dist/contracts/trigger-payloads.js +4 -0
  39. package/dist/contracts/youiyoux-request.d.ts +248 -0
  40. package/dist/contracts/youiyoux-request.js +152 -0
  41. package/dist/coordinator.js +1 -0
  42. package/dist/deploy-gate.js +4 -0
  43. package/dist/dispatch.d.ts +3 -0
  44. package/dist/dispatch.js +4 -1
  45. package/dist/flow-browser.d.ts +103 -0
  46. package/dist/flow-browser.js +204 -0
  47. package/dist/flow-cadence.d.ts +8 -2
  48. package/dist/flow-cadence.js +16 -3
  49. package/dist/flow-card-task.d.ts +9 -0
  50. package/dist/flow-card-task.js +15 -6
  51. package/dist/flow-code.d.ts +5 -1
  52. package/dist/flow-code.js +4 -1
  53. package/dist/flow-engine.js +16 -0
  54. package/dist/flow-live.js +9 -1
  55. package/dist/flow-pull-request.js +15 -7
  56. package/dist/flow-share.js +3 -1
  57. package/dist/flow-steps.d.ts +9 -1
  58. package/dist/flow-steps.js +55 -5
  59. package/dist/flow-triggers.js +55 -0
  60. package/dist/flows-cli.d.ts +19 -0
  61. package/dist/flows-cli.js +47 -2
  62. package/dist/flows-ui.js +11 -2
  63. package/dist/flows.js +5 -2
  64. package/dist/integrations-ui.js +9 -4
  65. package/dist/integrations.d.ts +9 -1
  66. package/dist/integrations.js +43 -2
  67. package/dist/landed-cleanup.d.ts +4 -0
  68. package/dist/landed-cleanup.js +3 -2
  69. package/dist/lead-capabilities.js +2 -1
  70. package/dist/lead-cli.js +3 -1
  71. package/dist/lead-tools.d.ts +2 -0
  72. package/dist/lead-tools.js +65 -10
  73. package/dist/lead-voice.js +16 -5
  74. package/dist/lead.d.ts +2 -0
  75. package/dist/lead.js +3 -3
  76. package/dist/operate.d.ts +2 -3
  77. package/dist/operate.js +226 -21
  78. package/dist/project-activity.d.ts +20 -0
  79. package/dist/project-activity.js +23 -0
  80. package/dist/project-cli.d.ts +1 -0
  81. package/dist/project-cli.js +36 -19
  82. package/dist/project-delete.js +7 -3
  83. package/dist/project-knowledge.d.ts +3 -3
  84. package/dist/project-outcomes.d.ts +119 -0
  85. package/dist/project-outcomes.js +79 -0
  86. package/dist/pull-request-flow.js +35 -4
  87. package/dist/result-actions.d.ts +4 -0
  88. package/dist/result-actions.js +41 -9
  89. package/dist/result-follow-ups.js +4 -0
  90. package/dist/result-review.d.ts +9 -0
  91. package/dist/result-review.js +45 -5
  92. package/dist/scope.d.ts +5 -0
  93. package/dist/scope.js +7 -0
  94. package/dist/server/chat.js +4 -2
  95. package/dist/server/console.css +41 -0
  96. package/dist/server/flows.js +15 -0
  97. package/dist/server/pages.js +11 -1
  98. package/dist/server/render-chat.js +3 -2
  99. package/dist/server/render-pages.d.ts +15 -2
  100. package/dist/server/render-pages.js +52 -4
  101. package/dist/server/render-results.d.ts +2 -0
  102. package/dist/server/render-results.js +20 -7
  103. package/dist/server/render-tasks.d.ts +9 -0
  104. package/dist/server/render-tasks.js +32 -11
  105. package/dist/server/route-table.js +12 -0
  106. package/dist/server/settings.js +18 -1
  107. package/dist/server/task-views.js +11 -0
  108. package/dist/server/tasks.d.ts +10 -0
  109. package/dist/server/tasks.js +95 -7
  110. package/dist/settings-proofs.js +1 -0
  111. package/dist/store.d.ts +116 -5
  112. package/dist/store.js +385 -24
  113. package/dist/surface.js +18 -2
  114. package/dist/task-archive.d.ts +10 -0
  115. package/dist/task-archive.js +16 -0
  116. package/dist/task-control.d.ts +1 -1
  117. package/dist/task-source.d.ts +13 -1
  118. package/dist/task-source.js +17 -1
  119. package/dist/telegram-lead.js +7 -5
  120. package/dist/telegram.js +1 -1
  121. package/dist/tidy.d.ts +130 -0
  122. package/dist/tidy.js +503 -0
  123. package/dist/toolroll-update.js +2 -2
  124. package/dist/webhooks.d.ts +6 -0
  125. package/dist/webhooks.js +25 -0
  126. package/dist/work-index.d.ts +28 -0
  127. package/dist/work-index.js +82 -28
  128. package/dist/workspace-ui.d.ts +1 -1
  129. package/dist/workspace-ui.js +3 -2
  130. package/dist/youiyoux-intake.d.ts +234 -0
  131. package/dist/youiyoux-intake.js +908 -0
  132. package/package.json +11 -8
@@ -79,7 +79,7 @@ export declare const CONSOLE_FORMS: {
79
79
  readonly kit: FormContract<"password" | "repo">;
80
80
  readonly subagents: FormContract<"choice" | "dailyTurns" | "id" | "manager" | "model" | "name" | "note" | "op" | "password" | "repo" | "schedule" | "soul" | "state" | "template" | "text" | "tool" | `field.${string}` | `over.${string}` | `undo.${string}` | `use.${string}`>;
81
81
  readonly galleryUse: FormContract<string>;
82
- readonly flows: FormContract<"about" | "address" | "answers" | "approve" | "body" | "budget" | "choice" | "confirm" | "days" | "decision" | "definition" | "description" | "document" | "draft" | "entry" | "file" | "include" | "key" | "label" | "language" | "name" | "note" | "owner" | "password" | "previewed" | "project" | "remove" | "repo" | "revision" | "runs" | "schedules" | "secret" | "sender" | "stage" | "team" | "template" | "timeoutMinutes" | "title" | "trigger" | "url" | "value" | "watching" | `param.${string}`>;
82
+ readonly flows: FormContract<"about" | "address" | "answers" | "approve" | "body" | "budget" | "choice" | "confirm" | "days" | "decision" | "definition" | "description" | "digest" | "document" | "draft" | "entry" | "file" | "include" | "key" | "label" | "language" | "name" | "note" | "owner" | "password" | "previewed" | "project" | "remove" | "repo" | "revision" | "runs" | "schedules" | "secret" | "sender" | "stage" | "team" | "template" | "timeoutMinutes" | "title" | "trigger" | "url" | "value" | "watching" | `param.${string}`>;
83
83
  readonly spendBudget: FormContract<"action" | "password" | "stop" | "target" | "usd">;
84
84
  readonly projectConcurrency: FormContract<"concurrency" | "repo">;
85
85
  readonly projectLiveView: FormContract<"act" | "nonce" | "password" | "repo">;
@@ -102,6 +102,7 @@ export declare const CONSOLE_FORMS: {
102
102
  readonly data: FormContract<"password">;
103
103
  readonly flowsOn: FormContract<"repo" | "starter">;
104
104
  readonly integrationsTest: FormContract<"key">;
105
+ readonly integrationsYouiyoux: FormContract<"on" | "repo">;
105
106
  readonly monitoring: FormContract<"folder" | "header-name" | "header-value" | "password" | "rotate" | "traces" | "webhook">;
106
107
  readonly toolsConnect: FormContract<"access" | "also" | "kit" | "password" | "repo" | "service" | "shown" | "template">;
107
108
  readonly toolsChange: FormContract<"action" | "catalog" | "import" | "name" | "password" | "repo" | "secret" | "secrets" | "shown" | "target" | "transport" | "value">;
@@ -168,11 +169,14 @@ export declare const CONSOLE_FORMS: {
168
169
  readonly chatAck: FormContract<"nonce" | "token">;
169
170
  readonly recipes: FormContract<"document" | "next" | "preview" | "projectRevision" | "purpose" | "recipe" | "recipeRevision" | "repo" | "source" | "sourceRevision">;
170
171
  readonly runNote: FormContract<"note">;
171
- readonly diffComment: FormContract<"batch" | "intent" | "line" | "note" | "path" | "request" | "return" | "source" | "tab">;
172
+ readonly diffComment: FormContract<"batch" | "comment" | "image" | "intent" | "line" | "note" | "path" | "request" | "return" | "source" | "tab">;
172
173
  readonly editorLinks: FormContract<"on" | "return">;
173
174
  readonly revise: FormContract<"batch" | "return" | "source">;
174
175
  readonly followUp: FormContract<"level" | "return">;
175
176
  readonly resolveIncident: FormContract<"return">;
177
+ readonly taskArchive: FormContract<"reason" | "return">;
178
+ readonly taskRestore: FormContract<"return">;
179
+ readonly tasksPutAway: FormContract<"days" | "digest" | "password" | "task">;
176
180
  readonly taskSteer: FormContract<"after" | "key" | "note" | "request" | "return" | "run">;
177
181
  readonly taskReply: FormContract<"answer" | "question">;
178
182
  readonly taskHold: FormContract<"reason">;
@@ -88,7 +88,7 @@ export const CONSOLE_FORMS = {
88
88
  kit: formContract("POST /kits/<kit>/<act>", ["repo", "password"]),
89
89
  subagents: formContract("POST /settings/lead/subagents/new, /settings/lead/subagents/<id>/<part>, /settings/lead/subagents/questions/<id>/answer", ["choice", "text", "repo", "template", "name", "soul", "op", "id", "schedule", "tool", "state", "note", "model", "dailyTurns", "manager", "password"], { prefixes: ["use.", "undo.", "field.", "over."] }),
90
90
  galleryUse: formContract("POST /flows/new/<template>", ["repo", "send-result", "name", "intent", "previewed", "password"], { dynamic: true }),
91
- flows: formContract("POST /flows/new, /flows/example, /flows/import, /flows/<id>/<act>, /flows/<id>/cards/<card>/<act>, /flows/<id>/triggers/<trigger>/<act>", ["repo", "document", "url", "confirm", "previewed", "template", "name", "answers", "password", "secret", "sender", "project", "team", "trigger", "approve", "remove", "about", "body", "timeoutMinutes", "language", "file", "address", "key", "definition", "owner", "revision", "value", "title", "description", "stage", "decision", "note", "draft", "choice", "entry", "label", "watching", "days", "budget", "runs", "include", "schedules"], { prefixes: ["param."] }),
91
+ flows: formContract("POST /flows/new, /flows/example, /flows/import, /flows/<id>/<act>, /flows/<id>/cards/<card>/<act>, /flows/<id>/triggers/<trigger>/<act>", ["repo", "document", "url", "confirm", "previewed", "template", "name", "answers", "password", "secret", "sender", "project", "team", "trigger", "approve", "remove", "about", "body", "timeoutMinutes", "language", "file", "address", "key", "definition", "owner", "revision", "value", "title", "description", "stage", "decision", "note", "draft", "choice", "entry", "label", "watching", "days", "budget", "runs", "include", "schedules", "digest"], { prefixes: ["param."] }),
92
92
  spendBudget: formContract("POST /spend/budget", ["password", "target", "action", "usd", "stop"]),
93
93
  projectConcurrency: formContract("POST /settings/project/concurrency", ["repo", "concurrency"]),
94
94
  projectLiveView: formContract("POST /settings/project/live-view", ["repo", "act", "password", "nonce"]),
@@ -111,6 +111,7 @@ export const CONSOLE_FORMS = {
111
111
  data: formContract("POST /settings/data", ["password"]),
112
112
  flowsOn: formContract("POST /settings/flows/on", ["repo", "starter"]),
113
113
  integrationsTest: formContract("POST /settings/integrations/test", ["key"]),
114
+ integrationsYouiyoux: formContract("POST /settings/integrations/youiyoux", ["repo", "on"]),
114
115
  monitoring: formContract("POST /settings/monitoring", ["password", "webhook", "folder", "traces", "header-name", "header-value", "rotate"]),
115
116
  toolsConnect: formContract("POST /settings/tools/connect", ["repo", "also", "service", "template", "kit", "shown", "password", "access"]),
116
117
  toolsChange: formContract("POST /settings/tools/change", ["repo", "shown", "action", "name", "password", "catalog", "transport", "target", "secrets", "import", "secret", "value"]),
@@ -182,11 +183,14 @@ export const CONSOLE_FORMS = {
182
183
  // A recipe's own answers and editor fields are read by recipes.ts from the whole form (`sent`; item 17).
183
184
  recipes: formContract("POST /recipes/prepare, /recipes/preview, /recipes/import, /recipes/launch, /recipes/save", ["repo", "projectRevision", "recipe", "recipeRevision", "document", "purpose", "source", "sourceRevision", "preview", "next"]),
184
185
  runNote: formContract("POST /r/<run>/note", ["note"]),
185
- diffComment: formContract("POST /r/<run>/comment", ["return", "tab", "intent", "batch", "source", "note", "path", "line", "request"]),
186
+ diffComment: formContract("POST /r/<run>/comment", ["return", "tab", "intent", "batch", "source", "note", "path", "line", "request", "image", "comment"]),
186
187
  editorLinks: formContract("POST /session/editor-links", ["on", "return"]),
187
188
  revise: formContract("POST /r/<run>/revise", ["return", "batch", "source"]),
188
189
  followUp: formContract("POST /r/<run>/checks|add-tests", ["return", "level"]),
189
190
  resolveIncident: formContract("POST /i/<id>/resolve", ["return"]),
191
+ taskArchive: formContract("POST /t/<task>/archive", ["reason", "return"]),
192
+ taskRestore: formContract("POST /t/<task>/restore", ["return"]),
193
+ tasksPutAway: formContract("POST /work/put-away", ["digest", "days", "task", "password"]),
190
194
  // A task's verbs (/t/<task>/<verb>), one body each.
191
195
  taskSteer: formContract("POST /t/<task>/steer", ["note", "return", "run", "key", "after", "request"]),
192
196
  taskReply: formContract("POST /t/<task>/reply", ["question", "answer"]),
@@ -4,11 +4,12 @@
4
4
  * (mate-tools.ts). The lead-tools contract (item 5) imports it from here rather than restating it.
5
5
  */
6
6
  import { z } from "zod";
7
- export declare const PROPOSE_FLOW_OPERATIONS: readonly ["create", "edit", "add_card", "move_card", "approve", "send_back", "choose", "cancel_card", "comment", "assign", "follow", "unfollow", "save_script", "add_trigger", "pause_trigger", "resume_trigger", "remove_trigger", "kit", "starter"];
7
+ export declare const PROPOSE_FLOW_OPERATIONS: readonly ["create", "edit", "add_card", "move_card", "approve", "send_back", "choose", "cancel_card", "comment", "assign", "follow", "unfollow", "save_script", "add_trigger", "pause_trigger", "resume_trigger", "remove_trigger", "kit", "starter", "allow_browser", "turn_off_browser"];
8
8
  export declare const proposeFlowInputSchema: z.ZodObject<{
9
9
  operation: z.ZodEnum<{
10
10
  add_card: "add_card";
11
11
  add_trigger: "add_trigger";
12
+ allow_browser: "allow_browser";
12
13
  approve: "approve";
13
14
  assign: "assign";
14
15
  cancel_card: "cancel_card";
@@ -25,6 +26,7 @@ export declare const proposeFlowInputSchema: z.ZodObject<{
25
26
  save_script: "save_script";
26
27
  send_back: "send_back";
27
28
  starter: "starter";
29
+ turn_off_browser: "turn_off_browser";
28
30
  unfollow: "unfollow";
29
31
  }>;
30
32
  repo: z.ZodOptional<z.ZodString>;
@@ -87,6 +89,7 @@ export declare const proposeFlowInputSchema: z.ZodObject<{
87
89
  id: z.ZodOptional<z.ZodString>;
88
90
  title: z.ZodString;
89
91
  kind: z.ZodLiteral<"check">;
92
+ browser: z.ZodOptional<z.ZodBoolean>;
90
93
  ifFails: z.ZodOptional<z.ZodString>;
91
94
  next: z.ZodOptional<z.ZodString>;
92
95
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -11,7 +11,7 @@ import { KITS } from "../kits.js";
11
11
  import { TEXT_LIMITS } from "../text-limits.js";
12
12
  import { toModelSchema } from "./contract.js";
13
13
  import { flowStepsSchema, leadTriggerSchema, SCRIPT_LANGUAGES, SCRIPT_NAME } from "./flow.js";
14
- export const PROPOSE_FLOW_OPERATIONS = ["create", "edit", "add_card", "move_card", "approve", "send_back", "choose", "cancel_card", "comment", "assign", "follow", "unfollow", "save_script", "add_trigger", "pause_trigger", "resume_trigger", "remove_trigger", "kit", "starter"];
14
+ export const PROPOSE_FLOW_OPERATIONS = ["create", "edit", "add_card", "move_card", "approve", "send_back", "choose", "cancel_card", "comment", "assign", "follow", "unfollow", "save_script", "add_trigger", "pause_trigger", "resume_trigger", "remove_trigger", "kit", "starter", "allow_browser", "turn_off_browser"];
15
15
  const id = z.int().min(1);
16
16
  const enumOf = (values) => z.enum(values);
17
17
  export const proposeFlowInputSchema = z.strictObject({
@@ -332,6 +332,7 @@ export declare const flowDefinitionSchema: z.ZodObject<{
332
332
  to: z.ZodString;
333
333
  }, z.core.$strict>>>;
334
334
  secrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
335
+ browser: z.ZodOptional<z.ZodLiteral<true>>;
335
336
  sort: z.ZodNull;
336
337
  limit: z.ZodOptional<z.ZodObject<{
337
338
  minutes: z.ZodInt;
@@ -971,6 +972,7 @@ export declare const savedFlowDefinitionSchema: z.ZodObject<{
971
972
  to: z.ZodString;
972
973
  }, z.core.$strict>>>;
973
974
  secrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
975
+ browser: z.ZodOptional<z.ZodLiteral<true>>;
974
976
  sort: z.ZodNull;
975
977
  limit: z.ZodOptional<z.ZodObject<{
976
978
  minutes: z.ZodInt;
@@ -1606,6 +1608,7 @@ export declare const flowStageSchema: z.ZodDiscriminatedUnion<readonly [z.ZodObj
1606
1608
  to: z.ZodString;
1607
1609
  }, z.core.$strict>>>;
1608
1610
  secrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
1611
+ browser: z.ZodOptional<z.ZodLiteral<true>>;
1609
1612
  sort: z.ZodNull;
1610
1613
  limit: z.ZodOptional<z.ZodObject<{
1611
1614
  minutes: z.ZodInt;
@@ -2180,6 +2183,7 @@ export declare const flowStepSchema: z.ZodDiscriminatedUnion<readonly [z.ZodObje
2180
2183
  id: z.ZodOptional<z.ZodString>;
2181
2184
  title: z.ZodString;
2182
2185
  kind: z.ZodLiteral<"check">;
2186
+ browser: z.ZodOptional<z.ZodBoolean>;
2183
2187
  ifFails: z.ZodOptional<z.ZodString>;
2184
2188
  next: z.ZodOptional<z.ZodString>;
2185
2189
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -2391,6 +2395,7 @@ export declare const flowStepsSchema: z.ZodObject<{
2391
2395
  id: z.ZodOptional<z.ZodString>;
2392
2396
  title: z.ZodString;
2393
2397
  kind: z.ZodLiteral<"check">;
2398
+ browser: z.ZodOptional<z.ZodBoolean>;
2394
2399
  ifFails: z.ZodOptional<z.ZodString>;
2395
2400
  next: z.ZodOptional<z.ZodString>;
2396
2401
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -2669,6 +2674,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2669
2674
  violet: "violet";
2670
2675
  }>>;
2671
2676
  }, z.core.$strict>>;
2677
+ browser: z.ZodOptional<z.ZodBoolean>;
2672
2678
  ifFails: z.ZodOptional<z.ZodString>;
2673
2679
  next: z.ZodOptional<z.ZodString>;
2674
2680
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -3126,6 +3132,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3126
3132
  violet: "violet";
3127
3133
  }>>;
3128
3134
  }, z.core.$strict>>;
3135
+ browser: z.ZodOptional<z.ZodBoolean>;
3129
3136
  ifFails: z.ZodOptional<z.ZodString>;
3130
3137
  next: z.ZodOptional<z.ZodString>;
3131
3138
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -3583,6 +3590,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3583
3590
  violet: "violet";
3584
3591
  }>>;
3585
3592
  }, z.core.$strict>>;
3593
+ browser: z.ZodOptional<z.ZodBoolean>;
3586
3594
  ifFails: z.ZodOptional<z.ZodString>;
3587
3595
  next: z.ZodOptional<z.ZodString>;
3588
3596
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -4040,6 +4048,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4040
4048
  violet: "violet";
4041
4049
  }>>;
4042
4050
  }, z.core.$strict>>;
4051
+ browser: z.ZodOptional<z.ZodBoolean>;
4043
4052
  ifFails: z.ZodOptional<z.ZodString>;
4044
4053
  next: z.ZodOptional<z.ZodString>;
4045
4054
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -4497,6 +4506,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4497
4506
  violet: "violet";
4498
4507
  }>>;
4499
4508
  }, z.core.$strict>>;
4509
+ browser: z.ZodOptional<z.ZodBoolean>;
4500
4510
  ifFails: z.ZodOptional<z.ZodString>;
4501
4511
  next: z.ZodOptional<z.ZodString>;
4502
4512
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -4954,6 +4964,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4954
4964
  violet: "violet";
4955
4965
  }>>;
4956
4966
  }, z.core.$strict>>;
4967
+ browser: z.ZodOptional<z.ZodBoolean>;
4957
4968
  ifFails: z.ZodOptional<z.ZodString>;
4958
4969
  next: z.ZodOptional<z.ZodString>;
4959
4970
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -5411,6 +5422,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5411
5422
  violet: "violet";
5412
5423
  }>>;
5413
5424
  }, z.core.$strict>>;
5425
+ browser: z.ZodOptional<z.ZodBoolean>;
5414
5426
  ifFails: z.ZodOptional<z.ZodString>;
5415
5427
  next: z.ZodOptional<z.ZodString>;
5416
5428
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -5868,6 +5880,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
5868
5880
  violet: "violet";
5869
5881
  }>>;
5870
5882
  }, z.core.$strict>>;
5883
+ browser: z.ZodOptional<z.ZodBoolean>;
5871
5884
  ifFails: z.ZodOptional<z.ZodString>;
5872
5885
  next: z.ZodOptional<z.ZodString>;
5873
5886
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -6325,6 +6338,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6325
6338
  violet: "violet";
6326
6339
  }>>;
6327
6340
  }, z.core.$strict>>;
6341
+ browser: z.ZodOptional<z.ZodBoolean>;
6328
6342
  ifFails: z.ZodOptional<z.ZodString>;
6329
6343
  next: z.ZodOptional<z.ZodString>;
6330
6344
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -6782,6 +6796,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6782
6796
  violet: "violet";
6783
6797
  }>>;
6784
6798
  }, z.core.$strict>>;
6799
+ browser: z.ZodOptional<z.ZodBoolean>;
6785
6800
  ifFails: z.ZodOptional<z.ZodString>;
6786
6801
  next: z.ZodOptional<z.ZodString>;
6787
6802
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -7239,6 +7254,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7239
7254
  violet: "violet";
7240
7255
  }>>;
7241
7256
  }, z.core.$strict>>;
7257
+ browser: z.ZodOptional<z.ZodBoolean>;
7242
7258
  ifFails: z.ZodOptional<z.ZodString>;
7243
7259
  next: z.ZodOptional<z.ZodString>;
7244
7260
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -7696,6 +7712,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7696
7712
  violet: "violet";
7697
7713
  }>>;
7698
7714
  }, z.core.$strict>>;
7715
+ browser: z.ZodOptional<z.ZodBoolean>;
7699
7716
  ifFails: z.ZodOptional<z.ZodString>;
7700
7717
  next: z.ZodOptional<z.ZodString>;
7701
7718
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -8153,6 +8170,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8153
8170
  violet: "violet";
8154
8171
  }>>;
8155
8172
  }, z.core.$strict>>;
8173
+ browser: z.ZodOptional<z.ZodBoolean>;
8156
8174
  ifFails: z.ZodOptional<z.ZodString>;
8157
8175
  next: z.ZodOptional<z.ZodString>;
8158
8176
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -8610,6 +8628,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8610
8628
  violet: "violet";
8611
8629
  }>>;
8612
8630
  }, z.core.$strict>>;
8631
+ browser: z.ZodOptional<z.ZodBoolean>;
8613
8632
  ifFails: z.ZodOptional<z.ZodString>;
8614
8633
  next: z.ZodOptional<z.ZodString>;
8615
8634
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -9067,6 +9086,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9067
9086
  violet: "violet";
9068
9087
  }>>;
9069
9088
  }, z.core.$strict>>;
9089
+ browser: z.ZodOptional<z.ZodBoolean>;
9070
9090
  ifFails: z.ZodOptional<z.ZodString>;
9071
9091
  next: z.ZodOptional<z.ZodString>;
9072
9092
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -9524,6 +9544,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9524
9544
  violet: "violet";
9525
9545
  }>>;
9526
9546
  }, z.core.$strict>>;
9547
+ browser: z.ZodOptional<z.ZodBoolean>;
9527
9548
  ifFails: z.ZodOptional<z.ZodString>;
9528
9549
  next: z.ZodOptional<z.ZodString>;
9529
9550
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -9981,6 +10002,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
9981
10002
  violet: "violet";
9982
10003
  }>>;
9983
10004
  }, z.core.$strict>>;
10005
+ browser: z.ZodOptional<z.ZodBoolean>;
9984
10006
  ifFails: z.ZodOptional<z.ZodString>;
9985
10007
  next: z.ZodOptional<z.ZodString>;
9986
10008
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -10438,6 +10460,7 @@ export declare const flowFileZoneSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
10438
10460
  violet: "violet";
10439
10461
  }>>;
10440
10462
  }, z.core.$strict>>;
10463
+ browser: z.ZodOptional<z.ZodBoolean>;
10441
10464
  ifFails: z.ZodOptional<z.ZodString>;
10442
10465
  next: z.ZodOptional<z.ZodString>;
10443
10466
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -11302,6 +11325,7 @@ export declare const flowFileSchema: z.ZodObject<{
11302
11325
  violet: "violet";
11303
11326
  }>>;
11304
11327
  }, z.core.$strict>>;
11328
+ browser: z.ZodOptional<z.ZodBoolean>;
11305
11329
  ifFails: z.ZodOptional<z.ZodString>;
11306
11330
  next: z.ZodOptional<z.ZodString>;
11307
11331
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -11759,6 +11783,7 @@ export declare const flowFileSchema: z.ZodObject<{
11759
11783
  violet: "violet";
11760
11784
  }>>;
11761
11785
  }, z.core.$strict>>;
11786
+ browser: z.ZodOptional<z.ZodBoolean>;
11762
11787
  ifFails: z.ZodOptional<z.ZodString>;
11763
11788
  next: z.ZodOptional<z.ZodString>;
11764
11789
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -12216,6 +12241,7 @@ export declare const flowFileSchema: z.ZodObject<{
12216
12241
  violet: "violet";
12217
12242
  }>>;
12218
12243
  }, z.core.$strict>>;
12244
+ browser: z.ZodOptional<z.ZodBoolean>;
12219
12245
  ifFails: z.ZodOptional<z.ZodString>;
12220
12246
  next: z.ZodOptional<z.ZodString>;
12221
12247
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -12673,6 +12699,7 @@ export declare const flowFileSchema: z.ZodObject<{
12673
12699
  violet: "violet";
12674
12700
  }>>;
12675
12701
  }, z.core.$strict>>;
12702
+ browser: z.ZodOptional<z.ZodBoolean>;
12676
12703
  ifFails: z.ZodOptional<z.ZodString>;
12677
12704
  next: z.ZodOptional<z.ZodString>;
12678
12705
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -13130,6 +13157,7 @@ export declare const flowFileSchema: z.ZodObject<{
13130
13157
  violet: "violet";
13131
13158
  }>>;
13132
13159
  }, z.core.$strict>>;
13160
+ browser: z.ZodOptional<z.ZodBoolean>;
13133
13161
  ifFails: z.ZodOptional<z.ZodString>;
13134
13162
  next: z.ZodOptional<z.ZodString>;
13135
13163
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -13587,6 +13615,7 @@ export declare const flowFileSchema: z.ZodObject<{
13587
13615
  violet: "violet";
13588
13616
  }>>;
13589
13617
  }, z.core.$strict>>;
13618
+ browser: z.ZodOptional<z.ZodBoolean>;
13590
13619
  ifFails: z.ZodOptional<z.ZodString>;
13591
13620
  next: z.ZodOptional<z.ZodString>;
13592
13621
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -14044,6 +14073,7 @@ export declare const flowFileSchema: z.ZodObject<{
14044
14073
  violet: "violet";
14045
14074
  }>>;
14046
14075
  }, z.core.$strict>>;
14076
+ browser: z.ZodOptional<z.ZodBoolean>;
14047
14077
  ifFails: z.ZodOptional<z.ZodString>;
14048
14078
  next: z.ZodOptional<z.ZodString>;
14049
14079
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -14501,6 +14531,7 @@ export declare const flowFileSchema: z.ZodObject<{
14501
14531
  violet: "violet";
14502
14532
  }>>;
14503
14533
  }, z.core.$strict>>;
14534
+ browser: z.ZodOptional<z.ZodBoolean>;
14504
14535
  ifFails: z.ZodOptional<z.ZodString>;
14505
14536
  next: z.ZodOptional<z.ZodString>;
14506
14537
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -14958,6 +14989,7 @@ export declare const flowFileSchema: z.ZodObject<{
14958
14989
  violet: "violet";
14959
14990
  }>>;
14960
14991
  }, z.core.$strict>>;
14992
+ browser: z.ZodOptional<z.ZodBoolean>;
14961
14993
  ifFails: z.ZodOptional<z.ZodString>;
14962
14994
  next: z.ZodOptional<z.ZodString>;
14963
14995
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -15415,6 +15447,7 @@ export declare const flowFileSchema: z.ZodObject<{
15415
15447
  violet: "violet";
15416
15448
  }>>;
15417
15449
  }, z.core.$strict>>;
15450
+ browser: z.ZodOptional<z.ZodBoolean>;
15418
15451
  ifFails: z.ZodOptional<z.ZodString>;
15419
15452
  next: z.ZodOptional<z.ZodString>;
15420
15453
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -15872,6 +15905,7 @@ export declare const flowFileSchema: z.ZodObject<{
15872
15905
  violet: "violet";
15873
15906
  }>>;
15874
15907
  }, z.core.$strict>>;
15908
+ browser: z.ZodOptional<z.ZodBoolean>;
15875
15909
  ifFails: z.ZodOptional<z.ZodString>;
15876
15910
  next: z.ZodOptional<z.ZodString>;
15877
15911
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -16329,6 +16363,7 @@ export declare const flowFileSchema: z.ZodObject<{
16329
16363
  violet: "violet";
16330
16364
  }>>;
16331
16365
  }, z.core.$strict>>;
16366
+ browser: z.ZodOptional<z.ZodBoolean>;
16332
16367
  ifFails: z.ZodOptional<z.ZodString>;
16333
16368
  next: z.ZodOptional<z.ZodString>;
16334
16369
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -16786,6 +16821,7 @@ export declare const flowFileSchema: z.ZodObject<{
16786
16821
  violet: "violet";
16787
16822
  }>>;
16788
16823
  }, z.core.$strict>>;
16824
+ browser: z.ZodOptional<z.ZodBoolean>;
16789
16825
  ifFails: z.ZodOptional<z.ZodString>;
16790
16826
  next: z.ZodOptional<z.ZodString>;
16791
16827
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -17243,6 +17279,7 @@ export declare const flowFileSchema: z.ZodObject<{
17243
17279
  violet: "violet";
17244
17280
  }>>;
17245
17281
  }, z.core.$strict>>;
17282
+ browser: z.ZodOptional<z.ZodBoolean>;
17246
17283
  ifFails: z.ZodOptional<z.ZodString>;
17247
17284
  next: z.ZodOptional<z.ZodString>;
17248
17285
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -17700,6 +17737,7 @@ export declare const flowFileSchema: z.ZodObject<{
17700
17737
  violet: "violet";
17701
17738
  }>>;
17702
17739
  }, z.core.$strict>>;
17740
+ browser: z.ZodOptional<z.ZodBoolean>;
17703
17741
  ifFails: z.ZodOptional<z.ZodString>;
17704
17742
  next: z.ZodOptional<z.ZodString>;
17705
17743
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -18157,6 +18195,7 @@ export declare const flowFileSchema: z.ZodObject<{
18157
18195
  violet: "violet";
18158
18196
  }>>;
18159
18197
  }, z.core.$strict>>;
18198
+ browser: z.ZodOptional<z.ZodBoolean>;
18160
18199
  ifFails: z.ZodOptional<z.ZodString>;
18161
18200
  next: z.ZodOptional<z.ZodString>;
18162
18201
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -18614,6 +18653,7 @@ export declare const flowFileSchema: z.ZodObject<{
18614
18653
  violet: "violet";
18615
18654
  }>>;
18616
18655
  }, z.core.$strict>>;
18656
+ browser: z.ZodOptional<z.ZodBoolean>;
18617
18657
  ifFails: z.ZodOptional<z.ZodString>;
18618
18658
  next: z.ZodOptional<z.ZodString>;
18619
18659
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -19071,6 +19111,7 @@ export declare const flowFileSchema: z.ZodObject<{
19071
19111
  violet: "violet";
19072
19112
  }>>;
19073
19113
  }, z.core.$strict>>;
19114
+ browser: z.ZodOptional<z.ZodBoolean>;
19074
19115
  ifFails: z.ZodOptional<z.ZodString>;
19075
19116
  next: z.ZodOptional<z.ZodString>;
19076
19117
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -128,7 +128,7 @@ function zoneSchemas(instructions) {
128
128
  z.strictObject({ id, title, kind: z.literal("task"), zone, instructions: text, planning: z.enum(FLOW_PLANNING), approver: nil, message: message.nullable(), close: nil, script: nil, sort: nil, repo: words("repo", "flowRepo").min(1).optional(), limit: remind, next, onFail }),
129
129
  z.strictObject({ id, title, kind: z.literal("report"), zone, instructions: text, planning: nil, approver: nil, message: message.nullable(), close: nil, script: nil, sort: nil, limit: remind, next, onFail }),
130
130
  z.strictObject({ id, title, kind: z.literal("approval"), zone, instructions: said, planning: nil, approver: words("approver", "flowDecider").min(1).nullable(), toOwner: z.literal(true).optional(), message: message.nullable(), close: nil, script: nil, sort: nil, subagent: zoneId.optional(), limit: move, next, onFail }),
131
- z.strictObject({ id, title, kind: z.literal("check"), zone, instructions: said, planning: nil, approver: nil, message: message.nullable(), close: nil, script: scriptName, runIn: z.enum(FLOW_RUN_IN).optional(), routes, secrets: z.array(secretName).min(1).max(SECRETS_MAX).optional(), sort: nil, limit: remind, next, onFail }),
131
+ z.strictObject({ id, title, kind: z.literal("check"), zone, instructions: said, planning: nil, approver: nil, message: message.nullable(), close: nil, script: scriptName, runIn: z.enum(FLOW_RUN_IN).optional(), routes, secrets: z.array(secretName).min(1).max(SECRETS_MAX).optional(), browser: z.literal(true).optional(), sort: nil, limit: remind, next, onFail }),
132
132
  z.strictObject({ id, title, kind: z.literal("pull-request"), zone, instructions: said, planning: nil, approver: nil, message: message.nullable(), close: nil, script: nil, sort: nil, merge: z.enum(FLOW_MERGE_METHODS).optional(), limit: remind, next, onFail }),
133
133
  z.strictObject({ id, title, kind: z.literal("update"), zone, instructions: said, planning: nil, approver: nil, message: message.nullable(), close: z.boolean(), script: nil, sort: nil, limit: remind, next, onFail }),
134
134
  z.strictObject({ id, title, kind: z.literal("notify"), zone, instructions: said, planning: nil, approver: nil, message, close: nil, script: nil, sort: nil, limit: remind, next, onFail }),
@@ -184,6 +184,8 @@ const STEP_FIELDS = {
184
184
  runIn: z.enum(FLOW_RUN_IN),
185
185
  routes: z.array(flowStepRouteSchema).max(ROUTES_MAX),
186
186
  secrets: z.array(secretName).max(SECRETS_MAX),
187
+ /** check: the script starts a browser (Playwright's Chromium); it runs only once a person approves browser use for the flow (flow-browser.ts). */
188
+ browser: z.boolean(),
187
189
  question: short("flowSortQuestion"),
188
190
  answers: z.array(flowStepAnswerSchema).min(SORT_ANSWERS_MIN).max(SORT_ANSWERS_MAX),
189
191
  /** A percentage (80) or a fraction (0.8). */
@@ -230,7 +232,7 @@ const STEP_KINDS = {
230
232
  task: ["instructions", "planning", "repo", "next", "ifFails", "remindAfter"],
231
233
  report: ["instructions", "next", "ifFails", "remindAfter"],
232
234
  approval: ["decider", "subagent", "next", "ifFails", "remindAfter", "thenMoveTo"],
233
- check: ["script", "runIn", "routes", "secrets", "next", "ifFails", "remindAfter"],
235
+ check: ["script", "runIn", "routes", "secrets", "browser", "next", "ifFails", "remindAfter"],
234
236
  "pull-request": ["merge", "next", "ifFails", "remindAfter"],
235
237
  update: ["message", "close", "next", "ifFails", "remindAfter"],
236
238
  notify: ["message", "next", "ifFails", "remindAfter"],
@@ -36,6 +36,10 @@ export declare const LEAD_TOOL_INPUTS: {
36
36
  readonly get_brief: z.ZodObject<{
37
37
  repo: z.ZodOptional<z.ZodString>;
38
38
  }, z.core.$strict>;
39
+ readonly get_project_activity: z.ZodObject<{
40
+ repo: z.ZodString;
41
+ offset: z.ZodOptional<z.ZodInt>;
42
+ }, z.core.$strict>;
39
43
  readonly get_project_context: z.ZodObject<{
40
44
  repo: z.ZodString;
41
45
  query: z.ZodString;
@@ -130,6 +134,7 @@ export declare const LEAD_TOOL_INPUTS: {
130
134
  path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
131
135
  line: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
132
136
  saved_notes: z.ZodOptional<z.ZodArray<z.ZodInt>>;
137
+ image: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
133
138
  }, z.core.$strict>;
134
139
  readonly recap: z.ZodObject<{
135
140
  since: z.ZodOptional<z.ZodString>;
@@ -150,6 +155,7 @@ export declare const LEAD_TOOL_INPUTS: {
150
155
  operation: z.ZodEnum<{
151
156
  add_card: "add_card";
152
157
  add_trigger: "add_trigger";
158
+ allow_browser: "allow_browser";
153
159
  approve: "approve";
154
160
  assign: "assign";
155
161
  cancel_card: "cancel_card";
@@ -166,6 +172,7 @@ export declare const LEAD_TOOL_INPUTS: {
166
172
  save_script: "save_script";
167
173
  send_back: "send_back";
168
174
  starter: "starter";
175
+ turn_off_browser: "turn_off_browser";
169
176
  unfollow: "unfollow";
170
177
  }>;
171
178
  repo: z.ZodOptional<z.ZodString>;
@@ -228,6 +235,7 @@ export declare const LEAD_TOOL_INPUTS: {
228
235
  id: z.ZodOptional<z.ZodString>;
229
236
  title: z.ZodString;
230
237
  kind: z.ZodLiteral<"check">;
238
+ browser: z.ZodOptional<z.ZodBoolean>;
231
239
  ifFails: z.ZodOptional<z.ZodString>;
232
240
  next: z.ZodOptional<z.ZodString>;
233
241
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -605,6 +613,9 @@ export declare const LEAD_TOOL_INPUTS: {
605
613
  limit: z.ZodOptional<z.ZodInt>;
606
614
  search: z.ZodOptional<z.ZodString>;
607
615
  }, z.core.$strict>;
616
+ readonly tidy_preview: z.ZodObject<{
617
+ days: z.ZodOptional<z.ZodInt>;
618
+ }, z.core.$strict>;
608
619
  readonly get_task: z.ZodObject<{
609
620
  task: z.ZodString;
610
621
  }, z.core.$strict>;
@@ -762,6 +773,10 @@ export declare const LEAD_TOOL_READ_INPUTS: {
762
773
  readonly get_brief: z.ZodObject<{
763
774
  repo: z.ZodOptional<z.ZodString>;
764
775
  }, z.core.$strict>;
776
+ readonly get_project_activity: z.ZodObject<{
777
+ repo: z.ZodString;
778
+ offset: z.ZodOptional<z.ZodInt>;
779
+ }, z.core.$strict>;
765
780
  readonly get_project_context: z.ZodObject<{
766
781
  repo: z.ZodString;
767
782
  query: z.ZodString;
@@ -856,6 +871,7 @@ export declare const LEAD_TOOL_READ_INPUTS: {
856
871
  path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
857
872
  line: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
858
873
  saved_notes: z.ZodOptional<z.ZodArray<z.ZodInt>>;
874
+ image: z.ZodOptional<z.ZodNullable<z.ZodInt>>;
859
875
  }, z.core.$strict>;
860
876
  readonly recap: z.ZodObject<{
861
877
  since: z.ZodOptional<z.ZodString>;
@@ -876,6 +892,7 @@ export declare const LEAD_TOOL_READ_INPUTS: {
876
892
  operation: z.ZodEnum<{
877
893
  add_card: "add_card";
878
894
  add_trigger: "add_trigger";
895
+ allow_browser: "allow_browser";
879
896
  approve: "approve";
880
897
  assign: "assign";
881
898
  cancel_card: "cancel_card";
@@ -892,6 +909,7 @@ export declare const LEAD_TOOL_READ_INPUTS: {
892
909
  save_script: "save_script";
893
910
  send_back: "send_back";
894
911
  starter: "starter";
912
+ turn_off_browser: "turn_off_browser";
895
913
  unfollow: "unfollow";
896
914
  }>;
897
915
  repo: z.ZodOptional<z.ZodString>;
@@ -954,6 +972,7 @@ export declare const LEAD_TOOL_READ_INPUTS: {
954
972
  id: z.ZodOptional<z.ZodString>;
955
973
  title: z.ZodString;
956
974
  kind: z.ZodLiteral<"check">;
975
+ browser: z.ZodOptional<z.ZodBoolean>;
957
976
  ifFails: z.ZodOptional<z.ZodString>;
958
977
  next: z.ZodOptional<z.ZodString>;
959
978
  remindAfter: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodInt]>>;
@@ -1304,6 +1323,9 @@ export declare const LEAD_TOOL_READ_INPUTS: {
1304
1323
  repo: z.ZodOptional<z.ZodString>;
1305
1324
  }, z.core.$strict>;
1306
1325
  readonly get_models: z.ZodObject<{}, z.core.$strict>;
1326
+ readonly tidy_preview: z.ZodObject<{
1327
+ days: z.ZodOptional<z.ZodInt>;
1328
+ }, z.core.$strict>;
1307
1329
  readonly get_task: z.ZodObject<{
1308
1330
  task: z.ZodString;
1309
1331
  }, z.core.$strict>;
@@ -1556,6 +1578,26 @@ export declare const LEAD_TOOL_OUTPUTS: {
1556
1578
  projects: z.ZodArray<z.ZodUnknown>;
1557
1579
  omissions: z.ZodObject<{}, z.core.$loose>;
1558
1580
  }, z.core.$loose>;
1581
+ readonly get_project_activity: z.ZodObject<{
1582
+ asOf: z.ZodString;
1583
+ since: z.ZodString;
1584
+ days: z.ZodNumber;
1585
+ limit: z.ZodNumber;
1586
+ truncated: z.ZodBoolean;
1587
+ ready: z.ZodObject<{
1588
+ count: z.ZodNumber;
1589
+ oldestFinishedAgeMs: z.ZodNullable<z.ZodNumber>;
1590
+ dated: z.ZodNumber;
1591
+ }, z.core.$strip>;
1592
+ completed: z.ZodObject<{
1593
+ count: z.ZodNumber;
1594
+ }, z.core.$loose>;
1595
+ families: z.ZodArray<z.ZodUnknown>;
1596
+ familiesTotal: z.ZodNumber;
1597
+ familiesOffset: z.ZodNumber;
1598
+ nextOffset: z.ZodNullable<z.ZodNumber>;
1599
+ incompleteHistory: z.ZodNumber;
1600
+ }, z.core.$loose>;
1559
1601
  readonly get_project_context: z.ZodObject<{
1560
1602
  version: z.ZodLiteral<1>;
1561
1603
  readOnly: z.ZodBoolean;
@@ -1862,6 +1904,15 @@ export declare const LEAD_TOOL_OUTPUTS: {
1862
1904
  }, z.core.$loose>>;
1863
1905
  truncated: z.ZodBoolean;
1864
1906
  }, z.core.$loose>;
1907
+ readonly tidy_preview: z.ZodObject<{
1908
+ count: z.ZodNumber;
1909
+ days: z.ZodNumber;
1910
+ groups: z.ZodArray<z.ZodObject<{
1911
+ label: z.ZodString;
1912
+ }, z.core.$loose>>;
1913
+ digest: z.ZodString;
1914
+ apply: z.ZodString;
1915
+ }, z.core.$loose>;
1865
1916
  readonly get_task: z.ZodObject<{
1866
1917
  repo: z.ZodString;
1867
1918
  task: z.ZodString;
@@ -52,6 +52,7 @@ export const LISTED_TASK_STATES = ["queued", "running", "done", "failed", "cance
52
52
  const ACTION_OPERATIONS = Object.keys(CHAT_ACTIONS).filter(one => !one.startsWith("flow_") && !one.startsWith("subagent_"));
53
53
  export const LEAD_TOOL_INPUTS = {
54
54
  get_brief: z.strictObject({ repo: repoId.optional() }),
55
+ get_project_activity: z.strictObject({ repo: repoId, offset: offset.optional() }),
55
56
  get_project_context: z.strictObject({ repo: repoId, query: text("contextQuery").min(1), mode: z.enum(["search", "impact"]).optional() }),
56
57
  get_action_status: z.strictObject({ proposal: id }),
57
58
  get_actions: z.strictObject({}),
@@ -77,6 +78,7 @@ export const LEAD_TOOL_INPUTS = {
77
78
  note: z.string().max(LIMITS.note).nullable().optional(), path: text("diffPath").nullable().optional(),
78
79
  line: z.int().min(1).max(1_000_000).nullable().optional(),
79
80
  saved_notes: z.array(id).max(100).optional(),
81
+ image: id.nullable().optional().describe("Screenshot artifact id from get_result_images; attaches the exact verified image to this feedback. null leaves off the screenshot a reply targets."),
80
82
  }),
81
83
  recap: z.strictObject({ since: text("recapSince").optional() }),
82
84
  list_repos: z.strictObject({}),
@@ -116,6 +118,7 @@ export const LEAD_TOOL_INPUTS = {
116
118
  search_project_memory: z.strictObject({ query: text("memorySearch").min(2), repo: repoId.optional() }),
117
119
  get_models: z.strictObject({}),
118
120
  list_tasks: z.strictObject({ repo: repoId.optional(), state: z.enum(LISTED_TASK_STATES).optional(), limit: z.int().min(1).max(50).optional(), search: text("taskSearch").optional() }),
121
+ tidy_preview: z.strictObject({ days: z.int().min(1).max(365).optional() }),
119
122
  get_task: z.strictObject({ task: taskRef }),
120
123
  get_agents: z.strictObject({ task: taskRef }),
121
124
  list_decisions: z.strictObject({}),
@@ -196,6 +199,7 @@ export const decisionOutput = z.looseObject({ repo: str, decision: int, task: st
196
199
  export const queueColumnsOutput = { columns: rows({ column: str, tasks: list }) };
197
200
  export const LEAD_TOOL_OUTPUTS = {
198
201
  get_brief: catchUpOutput,
202
+ get_project_activity: z.looseObject({ asOf: str, since: str, days: int, limit: int, truncated: z.boolean(), ready: z.object({ count: int, oldestFinishedAgeMs: nullable(int), dated: int }), completed: z.looseObject({ count: int }), families: list, familiesTotal: int, familiesOffset: int, nextOffset: nullable(int), incompleteHistory: int }),
199
203
  get_project_context: repositoryContextOutput,
200
204
  get_action_status: z.looseObject({ proposal: int, operation: str, state: str, outcome: z.unknown(), finishedAt: nullable(str) }),
201
205
  get_actions: z.looseObject({ actions: rows({ operation: str, label: str, secureReview: z.boolean(), inputs: z.array(str) }), notice: str }),
@@ -248,6 +252,7 @@ export const LEAD_TOOL_OUTPUTS = {
248
252
  search_project_memory: z.looseObject({ hits: list, notice: str }),
249
253
  get_models: z.looseObject({ roles: rows({ role: str }), tools: list, newModels: list, change: str }),
250
254
  list_tasks: z.looseObject({ tasks: rows({ repo: str, task: str, execution: str, title: str, state: str, ageHours: z.number(), strikes: int }), truncated: z.boolean() }),
255
+ tidy_preview: z.looseObject({ count: int, days: int, groups: rows({ label: str }), digest: str, apply: str }),
251
256
  get_task: z.looseObject({
252
257
  repo: str, task: str, root: str, currentExecution: str, title: str, state: str, deliverable: str, scope: str,
253
258
  queue: nullable(z.looseObject({ position: int, of: int, column: str })), holds: list, attempts: int, decisionsOpen: int, dependencies: list,