toolroll 0.9.62 → 0.9.65
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.
- package/CHANGELOG.md +80 -0
- package/README.md +66 -8
- package/dist/acp-agents.d.ts +43 -0
- package/dist/acp-agents.js +62 -0
- package/dist/acp-attest.d.ts +44 -0
- package/dist/acp-attest.js +269 -0
- package/dist/acp-check.d.ts +28 -0
- package/dist/acp-check.js +410 -0
- package/dist/acp-client.d.ts +163 -0
- package/dist/acp-client.js +738 -0
- package/dist/acp-inspect.d.ts +23 -0
- package/dist/acp-inspect.js +109 -0
- package/dist/agent-board.d.ts +19 -6
- package/dist/agent-board.js +30 -9
- package/dist/agent-fence.d.ts +203 -10
- package/dist/agent-fence.js +623 -41
- package/dist/agent-pulse.js +9 -2
- package/dist/agent-state-words.d.ts +19 -0
- package/dist/agent-state-words.js +20 -0
- package/dist/agent-state.d.ts +65 -0
- package/dist/agent-state.js +229 -0
- package/dist/agentconfig.js +36 -13
- package/dist/agents-board.d.ts +34 -2
- package/dist/agents-board.js +110 -1
- package/dist/approval-rules-ui.js +2 -2
- package/dist/assignment-delivery.d.ts +14 -0
- package/dist/assignment-delivery.js +13 -0
- package/dist/assignment.js +13 -0
- package/dist/attest.js +7 -0
- package/dist/backup-ui.js +2 -2
- package/dist/browser/THIRD_PARTY_NOTICES.txt +48 -0
- package/dist/browser/terminal.css +37 -0
- package/dist/browser/terminal.js +117 -0
- package/dist/browser/workspace.css +2 -2
- package/dist/browser/workspace.js +42 -38
- package/dist/browser-shell.js +6 -3
- package/dist/browser-workspace.d.ts +263 -1
- package/dist/browser-workspace.js +60 -0
- package/dist/builder.d.ts +6 -1
- package/dist/builder.js +34 -13
- package/dist/chat-actions.d.ts +13 -1
- package/dist/chat-actions.js +199 -17
- package/dist/chat-ask.d.ts +4 -0
- package/dist/chat-ask.js +14 -0
- package/dist/chat-channel.js +20 -0
- package/dist/chat-continuity.js +5 -4
- package/dist/chat-decide.d.ts +0 -14
- package/dist/chat-decide.js +4 -1
- package/dist/chat-delivery.d.ts +9 -0
- package/dist/chat-delivery.js +45 -6
- package/dist/chat-messages.d.ts +8 -0
- package/dist/chat-messages.js +36 -4
- package/dist/check-levels-ui.js +2 -2
- package/dist/check-levels.js +3 -0
- package/dist/checkout-proof.d.ts +28 -0
- package/dist/checkout-proof.js +62 -0
- package/dist/claim.d.ts +12 -0
- package/dist/claim.js +20 -1
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +5 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +24 -2
- package/dist/coding-ui.js +6 -4
- package/dist/console-instance.d.ts +124 -0
- package/dist/console-instance.js +337 -0
- package/dist/contracts/chat-actions.d.ts +16 -0
- package/dist/contracts/chat-actions.js +4 -0
- package/dist/contracts/chat-content.d.ts +19 -0
- package/dist/contracts/chat-content.js +6 -0
- package/dist/contracts/cli.d.ts +8 -0
- package/dist/contracts/cli.js +3 -1
- package/dist/contracts/console-api.d.ts +30 -4
- package/dist/contracts/console-api.js +13 -4
- package/dist/contracts/flow-card.d.ts +4 -0
- package/dist/contracts/flow-card.js +3 -0
- package/dist/contracts/flow.d.ts +46 -0
- package/dist/contracts/flow.js +11 -2
- package/dist/contracts/integration-metadata.d.ts +2 -1
- package/dist/contracts/integration-metadata.js +2 -1
- package/dist/contracts/lead-tools.d.ts +92 -0
- package/dist/contracts/lead-tools.js +13 -0
- package/dist/contracts/provider.d.ts +11 -1
- package/dist/contracts/provider.js +1 -1
- package/dist/contracts/route.d.ts +76 -1
- package/dist/contracts/route.js +1 -1
- package/dist/contracts/store-json.d.ts +2 -0
- package/dist/control-setup.d.ts +1 -1
- package/dist/control-ui.js +2 -2
- package/dist/converse.d.ts +16 -0
- package/dist/converse.js +32 -4
- package/dist/demo-chat.js +4 -4
- package/dist/demo.js +2 -2
- package/dist/desktop-update-gate.js +6 -0
- package/dist/discord-chat.js +4 -1
- package/dist/dispatch.js +7 -4
- package/dist/doctor.d.ts +53 -0
- package/dist/doctor.js +427 -0
- package/dist/egress-bridge.d.ts +17 -0
- package/dist/egress-bridge.js +111 -0
- package/dist/egress.d.ts +119 -0
- package/dist/egress.js +423 -0
- package/dist/evidence-pack.d.ts +1 -1
- package/dist/evidence-pack.js +2 -2
- package/dist/exec.d.ts +81 -0
- package/dist/exec.js +368 -9
- package/dist/export-ui.js +2 -2
- package/dist/flow-code.d.ts +2 -2
- package/dist/flow-code.js +4 -15
- package/dist/flow-engine.js +35 -11
- package/dist/flow-gallery-ui.js +2 -2
- package/dist/flow-gallery.js +27 -8
- package/dist/flow-share.js +16 -5
- package/dist/flow-triggers.d.ts +84 -11
- package/dist/flow-triggers.js +554 -87
- package/dist/flow-unattended-words.d.ts +28 -0
- package/dist/flow-unattended-words.js +50 -0
- package/dist/flow-unattended.d.ts +227 -0
- package/dist/flow-unattended.js +776 -0
- package/dist/flows-cli.d.ts +28 -1
- package/dist/flows-cli.js +63 -12
- package/dist/flows-ui.d.ts +2 -3
- package/dist/flows-ui.js +56 -5
- package/dist/flows.d.ts +4 -0
- package/dist/flows.js +9 -1
- package/dist/google-mail.d.ts +1 -0
- package/dist/google-mail.js +61 -18
- package/dist/html.d.ts +9 -0
- package/dist/html.js +11 -0
- package/dist/integrations-ui.d.ts +2 -1
- package/dist/integrations-ui.js +6 -3
- package/dist/integrations.d.ts +17 -3
- package/dist/integrations.js +38 -18
- package/dist/invoke.d.ts +17 -0
- package/dist/invoke.js +510 -182
- package/dist/keys.d.ts +18 -14
- package/dist/keys.js +5 -0
- package/dist/landed-cleanup.d.ts +3 -2
- package/dist/landed-cleanup.js +12 -5
- package/dist/lead-capabilities.js +3 -2
- package/dist/lead-contract.js +2 -0
- package/dist/lead-doors.d.ts +2 -0
- package/dist/lead-doors.js +7 -0
- package/dist/lead-follow.d.ts +2 -0
- package/dist/lead-follow.js +58 -2
- package/dist/lead-progress.js +1 -0
- package/dist/lead-queue-runtime.d.ts +46 -0
- package/dist/lead-queue-runtime.js +191 -0
- package/dist/lead-queue.d.ts +104 -0
- package/dist/lead-queue.js +187 -0
- package/dist/lead-sweep.d.ts +67 -0
- package/dist/lead-sweep.js +99 -0
- package/dist/lead-tools.d.ts +22 -0
- package/dist/lead-tools.js +163 -4
- package/dist/lead.d.ts +13 -5
- package/dist/lead.js +89 -29
- package/dist/limits-ui.d.ts +8 -1
- package/dist/limits-ui.js +26 -0
- package/dist/live-bus.d.ts +8 -0
- package/dist/live-bus.js +40 -4
- package/dist/live-detail.d.ts +27 -0
- package/dist/live-detail.js +57 -0
- package/dist/live-notes.d.ts +20 -0
- package/dist/live-notes.js +47 -0
- package/dist/live-records.d.ts +140 -0
- package/dist/live-records.js +935 -0
- package/dist/live-terminal.d.ts +258 -0
- package/dist/live-terminal.js +649 -0
- package/dist/live.d.ts +38 -27
- package/dist/live.js +142 -124
- package/dist/mcp-connect.d.ts +8 -7
- package/dist/mcp-connect.js +49 -51
- package/dist/mcp-oauth.d.ts +6 -3
- package/dist/mcp-oauth.js +8 -4
- package/dist/memory-pass.js +2 -2
- package/dist/mobile-viewport.d.ts +5 -1
- package/dist/mobile-viewport.js +18 -2
- package/dist/model-catalog.js +4 -0
- package/dist/monitoring-ui.js +2 -2
- package/dist/needs-you.d.ts +1 -1
- package/dist/needs-you.js +11 -4
- package/dist/oauth-run-token.d.ts +51 -0
- package/dist/oauth-run-token.js +127 -0
- package/dist/operate.d.ts +2 -0
- package/dist/operate.js +282 -18
- package/dist/passwordless.d.ts +23 -0
- package/dist/passwordless.js +26 -0
- package/dist/peek-cli.d.ts +12 -4
- package/dist/peek-cli.js +19 -11
- package/dist/phase-routing.js +10 -3
- package/dist/plan-auto.d.ts +11 -0
- package/dist/plan-auto.js +62 -11
- package/dist/planner-source.d.ts +3 -0
- package/dist/planner-source.js +14 -0
- package/dist/planner.d.ts +2 -1
- package/dist/planner.js +7 -1
- package/dist/policy-ui.js +2 -2
- package/dist/policy.d.ts +1 -20
- package/dist/policy.js +29 -2
- package/dist/process-recovery-eligibility.d.ts +1 -1
- package/dist/project-access.d.ts +3 -0
- package/dist/project-access.js +3 -0
- package/dist/project-delete-ui.d.ts +12 -0
- package/dist/project-delete-ui.js +41 -9
- package/dist/project-delete.d.ts +3 -1
- package/dist/project-delete.js +12 -6
- package/dist/project-file.d.ts +3 -0
- package/dist/project-file.js +16 -0
- package/dist/project-memory.d.ts +3 -1
- package/dist/project-memory.js +57 -25
- package/dist/project-tools.d.ts +103 -27
- package/dist/project-tools.js +399 -100
- package/dist/provider-auth.d.ts +4 -3
- package/dist/provider-auth.js +5 -4
- package/dist/provider-connection.d.ts +2 -1
- package/dist/provider-connection.js +5 -0
- package/dist/provider-home.d.ts +22 -0
- package/dist/provider-home.js +99 -0
- package/dist/provider.d.ts +42 -5
- package/dist/provider.js +97 -19
- package/dist/pull-request-ui.js +2 -2
- package/dist/push.js +1 -1
- package/dist/quick-start.d.ts +24 -0
- package/dist/quick-start.js +127 -0
- package/dist/release.d.ts +3 -0
- package/dist/release.js +14 -8
- package/dist/remote-main.d.ts +4 -0
- package/dist/remote-main.js +3 -3
- package/dist/request-budget-ui.js +2 -2
- package/dist/result-review.d.ts +1 -1
- package/dist/result-review.js +9 -3
- package/dist/retention-ui.js +2 -2
- package/dist/retention.js +10 -1
- package/dist/run-efficiency.d.ts +73 -0
- package/dist/run-efficiency.js +228 -0
- package/dist/runner.d.ts +5 -1
- package/dist/runner.js +22 -1
- package/dist/scope.d.ts +171 -6
- package/dist/scope.js +251 -31
- package/dist/scout-net.d.ts +4 -1
- package/dist/scout-net.js +37 -12
- package/dist/scout.d.ts +20 -6
- package/dist/scout.js +27 -3
- package/dist/serve.js +258 -43
- package/dist/server/chat.d.ts +1 -1
- package/dist/server/chat.js +122 -31
- package/dist/server/chrome.d.ts +6 -1
- package/dist/server/chrome.js +18 -7
- package/dist/server/console.css +52 -38
- package/dist/server/flows.js +65 -13
- package/dist/server/guards.d.ts +1 -0
- package/dist/server/guards.js +23 -9
- package/dist/server/http.d.ts +7 -0
- package/dist/server/http.js +3 -2
- package/dist/server/live.d.ts +34 -1
- package/dist/server/live.js +39 -17
- package/dist/server/pages-assets.js +5 -0
- package/dist/server/pages.js +90 -13
- package/dist/server/people-tokens.d.ts +3 -0
- package/dist/server/people-tokens.js +55 -17
- package/dist/server/remote-hooks.js +12 -6
- package/dist/server/remote.d.ts +2 -1
- package/dist/server/remote.js +14 -5
- package/dist/server/render-chat.d.ts +12 -3
- package/dist/server/render-chat.js +47 -16
- package/dist/server/render-pages.d.ts +4 -1
- package/dist/server/render-pages.js +5 -4
- package/dist/server/render-people.d.ts +3 -2
- package/dist/server/render-people.js +3 -2
- package/dist/server/render-results.d.ts +18 -2
- package/dist/server/render-results.js +37 -28
- package/dist/server/render-settings.js +6 -5
- package/dist/server/render-tasks.d.ts +35 -10
- package/dist/server/render-tasks.js +110 -27
- package/dist/server/request-context.d.ts +2 -0
- package/dist/server/request-context.js +2 -1
- package/dist/server/route-table.d.ts +3 -0
- package/dist/server/route-table.js +49 -5
- package/dist/server/runtime.d.ts +34 -3
- package/dist/server/session.d.ts +25 -1
- package/dist/server/session.js +18 -4
- package/dist/server/settings.js +132 -13
- package/dist/server/sweeps.d.ts +4 -0
- package/dist/server/sweeps.js +58 -0
- package/dist/server/task-views.d.ts +2 -1
- package/dist/server/task-views.js +96 -6
- package/dist/server/tasks.js +320 -74
- package/dist/server/terminals.d.ts +31 -0
- package/dist/server/terminals.js +365 -0
- package/dist/setup-guide.js +3 -2
- package/dist/slack-chat.js +4 -1
- package/dist/spend-ui.js +3 -3
- package/dist/spend.js +2 -1
- package/dist/steer-capabilities.d.ts +32 -0
- package/dist/steer-capabilities.js +60 -0
- package/dist/steer-controls.d.ts +14 -0
- package/dist/steer-controls.js +36 -0
- package/dist/steer-status.js +2 -2
- package/dist/storage-sweep-child.js +3 -1
- package/dist/storage-sweep-process.d.ts +12 -5
- package/dist/storage-sweep-process.js +23 -6
- package/dist/storage-ui.js +4 -4
- package/dist/store-baseline.d.ts +1 -1
- package/dist/store-baseline.js +1 -1
- package/dist/store.d.ts +466 -19
- package/dist/store.js +1185 -63
- package/dist/subagent-desk.js +1 -1
- package/dist/subagent-tools.d.ts +1 -1
- package/dist/summary.js +3 -0
- package/dist/surface.js +6 -4
- package/dist/task-source.d.ts +58 -0
- package/dist/task-source.js +93 -0
- package/dist/team-leads.js +1 -1
- package/dist/teams-chat.js +4 -1
- package/dist/teardown-git.d.ts +14 -0
- package/dist/teardown-git.js +119 -0
- package/dist/telegram-lead.d.ts +3 -0
- package/dist/telegram-lead.js +44 -7
- package/dist/telegram.d.ts +11 -2
- package/dist/telegram.js +51 -17
- package/dist/terminal-catalog.d.ts +11 -0
- package/dist/terminal-catalog.js +129 -0
- package/dist/text-limits.d.ts +2 -0
- package/dist/text-limits.js +2 -0
- package/dist/tool-broker.d.ts +39 -0
- package/dist/tool-broker.js +370 -0
- package/dist/tool-launcher.js +5 -4
- package/dist/tool-secret-store.d.ts +170 -0
- package/dist/tool-secret-store.js +834 -0
- package/dist/toolroll-update-ui.js +2 -2
- package/dist/toolroll-update.js +14 -3
- package/dist/tools-ui.d.ts +7 -1
- package/dist/tools-ui.js +19 -10
- package/dist/webhook-limits.d.ts +23 -0
- package/dist/webhook-limits.js +30 -0
- package/dist/webhook-readers.d.ts +56 -0
- package/dist/webhook-readers.js +138 -0
- package/dist/webhook-signing.d.ts +27 -0
- package/dist/webhook-signing.js +119 -0
- package/dist/work-index.d.ts +29 -0
- package/dist/work-index.js +21 -5
- package/dist/workspace-revision.js +3 -1
- package/dist/worktree.d.ts +10 -4
- package/dist/worktree.js +70 -29
- package/package.json +13 -2
- package/scripts/provider-canary.mjs +210 -31
|
@@ -66,16 +66,23 @@ export declare const CONSOLE_FORMS: {
|
|
|
66
66
|
readonly projectCeiling: FormContract<"repo">;
|
|
67
67
|
readonly demo: FormContract<"message" | "note">;
|
|
68
68
|
readonly updatesDismiss: FormContract<"quiet" | "return" | "version">;
|
|
69
|
+
readonly forgetPassword: FormContract<"return">;
|
|
70
|
+
readonly runReveal: FormContract<"return">;
|
|
69
71
|
readonly updatesChecks: FormContract<"check">;
|
|
70
72
|
readonly code: FormContract<"acceptance" | "answers" | "base" | "candidate" | "decision" | "goal" | "model" | "password" | "prompt" | "repo" | "requestId" | "title" | "visual" | `question:${string}`>;
|
|
73
|
+
readonly sweep: FormContract<"confirm" | "snapshot">;
|
|
74
|
+
readonly passwordless: FormContract<"action" | "password">;
|
|
75
|
+
readonly term: FormContract<"password" | "program" | "repo">;
|
|
71
76
|
readonly skillsRevise: FormContract<"feedback" | "nonce" | "repo" | "run">;
|
|
72
77
|
readonly skillsChange: FormContract<"action" | "content" | "files" | "identity" | "method" | "nonce" | "repo" | "restore" | "revision" | "sample" | "sha" | "url">;
|
|
73
78
|
readonly kit: FormContract<"repo">;
|
|
74
79
|
readonly subagents: FormContract<"choice" | "dailyTurns" | "id" | "manager" | "model" | "name" | "note" | "op" | "repo" | "schedule" | "soul" | "state" | "template" | "text" | "tool" | `field.${string}` | `over.${string}` | `undo.${string}` | `use.${string}`>;
|
|
75
80
|
readonly galleryUse: FormContract<string>;
|
|
76
|
-
readonly flows: FormContract<"about" | "address" | "answers" | "approve" | "body" | "choice" | "confirm" | "decision" | "definition" | "description" | "document" | "draft" | "entry" | "file" | "key" | "label" | "language" | "name" | "note" | "owner" | "password" | "previewed" | "remove" | "repo" | "revision" | "secret" | "stage" | "template" | "timeoutMinutes" | "title" | "trigger" | "url" | "value" | "watching" | `param.${string}`>;
|
|
81
|
+
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}`>;
|
|
77
82
|
readonly spendBudget: FormContract<"action" | "password" | "stop" | "target" | "usd">;
|
|
78
83
|
readonly projectConcurrency: FormContract<"concurrency" | "repo">;
|
|
84
|
+
readonly projectLiveView: FormContract<"act" | "nonce" | "password" | "repo">;
|
|
85
|
+
readonly projectNetwork: FormContract<"hosts" | "local" | "mode" | "password" | "repo">;
|
|
79
86
|
readonly projectDelete: FormContract<"name" | "password" | "repo" | "step">;
|
|
80
87
|
readonly policy: FormContract<"ceiling" | "models" | "password" | "provider" | "tools">;
|
|
81
88
|
readonly approval: FormContract<"not_requester" | "password" | "paths" | "protect" | "repo">;
|
|
@@ -144,6 +151,7 @@ export declare const CONSOLE_FORMS: {
|
|
|
144
151
|
readonly leadFollow: FormContract<"enabled" | "return">;
|
|
145
152
|
readonly leadEnd: FormContract<"return">;
|
|
146
153
|
readonly leadStop: FormContract<"return" | "turn">;
|
|
154
|
+
readonly leadQueuedRemove: FormContract<"return">;
|
|
147
155
|
readonly leadProposal: FormContract<"confirm" | "nonce" | "return" | "token">;
|
|
148
156
|
readonly coordinatorProposal: FormContract<"confirm" | "return">;
|
|
149
157
|
readonly chat: FormContract<"message" | "mode" | "project" | "request" | "request-session" | "result" | "task" | "token">;
|
|
@@ -156,7 +164,7 @@ export declare const CONSOLE_FORMS: {
|
|
|
156
164
|
readonly revise: FormContract<"batch" | "return" | "source">;
|
|
157
165
|
readonly followUp: FormContract<"level" | "return">;
|
|
158
166
|
readonly resolveIncident: FormContract<"return">;
|
|
159
|
-
readonly taskSteer: FormContract<"note" | "return" | "run">;
|
|
167
|
+
readonly taskSteer: FormContract<"after" | "key" | "note" | "request" | "return" | "run">;
|
|
160
168
|
readonly taskReply: FormContract<"answer" | "question">;
|
|
161
169
|
readonly taskHold: FormContract<"reason">;
|
|
162
170
|
readonly taskBlock: FormContract<"on">;
|
|
@@ -170,11 +178,11 @@ export declare const CONSOLE_FORMS: {
|
|
|
170
178
|
readonly taskCancel: FormContract<"reason">;
|
|
171
179
|
readonly taskRoute: FormContract<"agent" | "clear-phase" | "model" | "phase" | "provider" | "return" | "risky" | "sawDigest" | "size">;
|
|
172
180
|
readonly taskScope: FormContract<"acceptance" | "budget-microusd" | "budget-usd" | "goal" | "goal-brief" | "not" | "permission-mode" | "quality-mode" | "requirement" | "requirement-new" | "sawDigest" | "touches">;
|
|
173
|
-
readonly taskApprove: FormContract<"digest" | "nonce" | "return" | "token">;
|
|
181
|
+
readonly taskApprove: FormContract<"digest" | "nonce" | "rebuild" | "return" | "token">;
|
|
174
182
|
readonly taskAcceptProof: FormContract<"note" | "return" | "run">;
|
|
175
183
|
readonly taskComplete: FormContract<"accept" | "note" | "publish" | "receipt" | "return" | "run">;
|
|
176
184
|
readonly taskStop: FormContract<"return" | "run">;
|
|
177
|
-
readonly taskPause: FormContract<"mode" | "note" | "request" | "return" | "run">;
|
|
185
|
+
readonly taskPause: FormContract<"key" | "mode" | "note" | "request" | "return" | "run">;
|
|
178
186
|
readonly taskResume: FormContract<"nonce" | "return" | "run" | "token">;
|
|
179
187
|
};
|
|
180
188
|
export type ConsoleFormName = keyof typeof CONSOLE_FORMS;
|
|
@@ -318,6 +326,15 @@ export declare const flowViewSchema: z.ZodObject<{
|
|
|
318
326
|
selectedCard: z.ZodNullable<z.ZodNumber>;
|
|
319
327
|
live: z.ZodNullable<z.ZodString>;
|
|
320
328
|
canEdit: z.ZodBoolean;
|
|
329
|
+
unattended: z.ZodObject<{
|
|
330
|
+
active: z.ZodNullable<z.ZodObject<{
|
|
331
|
+
until: z.ZodString;
|
|
332
|
+
signedBy: z.ZodString;
|
|
333
|
+
}, z.core.$loose>>;
|
|
334
|
+
canSign: z.ZodBoolean;
|
|
335
|
+
problem: z.ZodNullable<z.ZodString>;
|
|
336
|
+
scheduled: z.ZodBoolean;
|
|
337
|
+
}, z.core.$loose>;
|
|
321
338
|
approvers: z.ZodArray<z.ZodString>;
|
|
322
339
|
kinds: z.ZodArray<z.ZodObject<{
|
|
323
340
|
kind: z.ZodString;
|
|
@@ -467,6 +484,15 @@ export declare const CONSOLE_RESPONSES: {
|
|
|
467
484
|
selectedCard: z.ZodNullable<z.ZodNumber>;
|
|
468
485
|
live: z.ZodNullable<z.ZodString>;
|
|
469
486
|
canEdit: z.ZodBoolean;
|
|
487
|
+
unattended: z.ZodObject<{
|
|
488
|
+
active: z.ZodNullable<z.ZodObject<{
|
|
489
|
+
until: z.ZodString;
|
|
490
|
+
signedBy: z.ZodString;
|
|
491
|
+
}, z.core.$loose>>;
|
|
492
|
+
canSign: z.ZodBoolean;
|
|
493
|
+
problem: z.ZodNullable<z.ZodString>;
|
|
494
|
+
scheduled: z.ZodBoolean;
|
|
495
|
+
}, z.core.$loose>;
|
|
470
496
|
approvers: z.ZodArray<z.ZodString>;
|
|
471
497
|
kinds: z.ZodArray<z.ZodObject<{
|
|
472
498
|
kind: z.ZodString;
|
|
@@ -75,16 +75,23 @@ export const CONSOLE_FORMS = {
|
|
|
75
75
|
projectCeiling: formContract("POST (project ceiling)", ["repo"]),
|
|
76
76
|
demo: formContract("POST /chat/demo/ask, /chat/demo/<id>/approve|change|revise|complete", ["message", "note"]),
|
|
77
77
|
updatesDismiss: formContract("POST /settings/updates/dismiss", ["version", "quiet", "return"]),
|
|
78
|
+
forgetPassword: formContract("POST /session/forget-password", ["return"]),
|
|
79
|
+
runReveal: formContract("POST /r/<run>/reveal", ["return"]),
|
|
78
80
|
updatesChecks: formContract("POST /settings/updates/checks", ["check"]),
|
|
79
81
|
code: formContract("POST /code, /code/start, /code/<session>/<act>, /code/<anything else>", ["repo", "password", "title", "model", "prompt", "requestId", "base", "candidate", "goal", "acceptance", "visual", "decision", "answers"], { prefixes: ["question:"] }),
|
|
82
|
+
sweep: formContract("POST /sweeps/<sweep>/cancel-rest", ["confirm", "snapshot"]),
|
|
83
|
+
passwordless: formContract("POST /settings/passwordless", ["action", "password"]),
|
|
84
|
+
term: formContract("POST /term/start, /term/<terminal>/close, /term/<terminal>/remove", ["repo", "program", "password"]),
|
|
80
85
|
skillsRevise: formContract("POST /settings/skills/revise", ["run", "repo", "feedback", "nonce"]),
|
|
81
86
|
skillsChange: formContract("POST /settings/skills/import, /settings/skills/change", ["repo", "identity", "revision", "method", "content", "files", "url", "action", "sha", "sample", "nonce", "restore"]),
|
|
82
87
|
kit: formContract("POST /kits/<kit>/<act>", ["repo"]),
|
|
83
88
|
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"], { prefixes: ["use.", "undo.", "field.", "over."] }),
|
|
84
89
|
galleryUse: formContract("POST /flows/new/<template>", ["repo", "send-result", "name", "intent", "previewed"], { dynamic: true }),
|
|
85
|
-
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", "trigger", "approve", "remove", "about", "body", "timeoutMinutes", "language", "file", "address", "key", "definition", "owner", "revision", "value", "title", "description", "stage", "decision", "note", "draft", "choice", "entry", "label", "watching"], { prefixes: ["param."] }),
|
|
90
|
+
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."] }),
|
|
86
91
|
spendBudget: formContract("POST /spend/budget", ["password", "target", "action", "usd", "stop"]),
|
|
87
92
|
projectConcurrency: formContract("POST /settings/project/concurrency", ["repo", "concurrency"]),
|
|
93
|
+
projectLiveView: formContract("POST /settings/project/live-view", ["repo", "act", "password", "nonce"]),
|
|
94
|
+
projectNetwork: formContract("POST /settings/project/network", ["repo", "mode", "local", "hosts", "password"]),
|
|
88
95
|
projectDelete: formContract("POST /settings/project/delete", ["repo", "name", "step", "password"]),
|
|
89
96
|
policy: formContract("POST /settings/policy", ["password", "provider", "models", "tools", "ceiling"]),
|
|
90
97
|
approval: formContract("POST /settings/approval", ["repo", "password", "protect", "paths", "not_requester"]),
|
|
@@ -153,6 +160,7 @@ export const CONSOLE_FORMS = {
|
|
|
153
160
|
leadFollow: formContract("POST /chat/mate/follow", ["enabled", "return"]),
|
|
154
161
|
leadEnd: formContract("POST /chat/mate/end", ["return"]),
|
|
155
162
|
leadStop: formContract("POST /chat/mate/stop", ["return", "turn"]),
|
|
163
|
+
leadQueuedRemove: formContract("POST /chat/queued/<message>/remove", ["return"]),
|
|
156
164
|
leadProposal: formContract("POST /chat/proposal/<id>/confirm|dismiss", ["return", "nonce", "confirm", "token"]),
|
|
157
165
|
coordinatorProposal: formContract("POST /proposals/<id>/confirm|dismiss", ["return", "confirm"]),
|
|
158
166
|
chat: formContract("POST /chat", ["task", "project", "result", "mode", "request", "request-session", "message", "token"]),
|
|
@@ -167,7 +175,7 @@ export const CONSOLE_FORMS = {
|
|
|
167
175
|
followUp: formContract("POST /r/<run>/checks|add-tests", ["return", "level"]),
|
|
168
176
|
resolveIncident: formContract("POST /i/<id>/resolve", ["return"]),
|
|
169
177
|
// A task's verbs (/t/<task>/<verb>), one body each.
|
|
170
|
-
taskSteer: formContract("POST /t/<task>/steer", ["note", "return", "run"]),
|
|
178
|
+
taskSteer: formContract("POST /t/<task>/steer", ["note", "return", "run", "key", "after", "request"]),
|
|
171
179
|
taskReply: formContract("POST /t/<task>/reply", ["question", "answer"]),
|
|
172
180
|
taskHold: formContract("POST /t/<task>/hold", ["reason"]),
|
|
173
181
|
taskBlock: formContract("POST /t/<task>/block|unblock", ["on"]),
|
|
@@ -181,13 +189,13 @@ export const CONSOLE_FORMS = {
|
|
|
181
189
|
taskCancel: formContract("POST /t/<task>/cancel", ["reason"]),
|
|
182
190
|
taskRoute: formContract("POST /t/<task>/route", ["size", "risky", "phase", "clear-phase", "agent", "provider", "model", "sawDigest", "return"]),
|
|
183
191
|
taskScope: formContract("POST /t/<task>/scope", ["sawDigest", "permission-mode", "quality-mode", "budget-usd", "budget-microusd", "requirement", "requirement-new", "goal-brief", "goal", "not", "touches", "acceptance"]),
|
|
184
|
-
taskApprove: formContract("POST /t/<task>/approve", ["return", "digest", "token", "nonce"]),
|
|
192
|
+
taskApprove: formContract("POST /t/<task>/approve", ["return", "digest", "token", "nonce", "rebuild"]),
|
|
185
193
|
taskAcceptProof: formContract("POST /t/<task>/accept-proof", ["run", "note", "return"]),
|
|
186
194
|
taskComplete: formContract("POST /t/<task>/complete", ["receipt", "run", "accept", "note", "publish", "return"]),
|
|
187
195
|
taskStop: formContract("POST /t/<task>/stop", ["run", "return"]),
|
|
188
196
|
// Pause, or Pause and steer when a note rides along, or Resume (mode=resume): the exact run shown, and the page's own
|
|
189
197
|
// request id.
|
|
190
|
-
taskPause: formContract("POST /t/<task>/pause", ["run", "request", "note", "mode", "return"]),
|
|
198
|
+
taskPause: formContract("POST /t/<task>/pause", ["run", "request", "note", "mode", "return", "key"]),
|
|
191
199
|
taskResume: formContract("POST /t/<task>/resume|resume-arm", ["run", "token", "nonce", "return"]),
|
|
192
200
|
};
|
|
193
201
|
/** The console POSTs whose handlers read no field (sign-out not even the shared guard): their contract is the empty form. */
|
|
@@ -255,6 +263,7 @@ export const flowViewSchema = z.looseObject({
|
|
|
255
263
|
selectedCard: z.number().nullable(),
|
|
256
264
|
live: z.string().nullable(),
|
|
257
265
|
canEdit: z.boolean(),
|
|
266
|
+
unattended: z.looseObject({ active: z.looseObject({ until: z.string(), signedBy: z.string() }).nullable(), canSign: z.boolean(), problem: z.string().nullable(), scheduled: z.boolean() }),
|
|
258
267
|
approvers: z.array(z.string()),
|
|
259
268
|
kinds: z.array(z.looseObject({ kind: z.string(), label: z.string() })),
|
|
260
269
|
colors: z.array(z.string()),
|
|
@@ -29,6 +29,10 @@ export declare const flowCardSchema: z.ZodObject<{
|
|
|
29
29
|
outputs: z.ZodObject<{}, z.core.$catchall<z.ZodString>>;
|
|
30
30
|
attached: z.ZodObject<{}, z.core.$catchall<z.ZodString>>;
|
|
31
31
|
createdBy: z.ZodString;
|
|
32
|
+
createdKind: z.ZodEnum<{
|
|
33
|
+
automation: "automation";
|
|
34
|
+
person: "person";
|
|
35
|
+
}>;
|
|
32
36
|
createdAt: z.ZodString;
|
|
33
37
|
updatedAt: z.ZodString;
|
|
34
38
|
owner: z.ZodNullable<z.ZodString>;
|
|
@@ -30,6 +30,9 @@ export const flowCardSchema = z.strictObject({
|
|
|
30
30
|
outputs: cardOutputsSchema.shape.outputs,
|
|
31
31
|
attached: cardOutputsSchema.shape.attached,
|
|
32
32
|
createdBy: z.string(),
|
|
33
|
+
/** v126: whether a person or an automation (a delivery, a poll, a schedule, a public form) made it. Decided where it
|
|
34
|
+
* was made, never read from its label: filing passes it on as the requester's kind. */
|
|
35
|
+
createdKind: z.enum(["person", "automation"]),
|
|
33
36
|
createdAt: z.string(),
|
|
34
37
|
updatedAt: z.string(),
|
|
35
38
|
owner: z.string().nullable(),
|
package/dist/contracts/flow.d.ts
CHANGED
|
@@ -10792,6 +10792,8 @@ export declare function legacySubagentStep(step: unknown): unknown;
|
|
|
10792
10792
|
export declare const legacyFlowNeed: (need: unknown) => unknown;
|
|
10793
10793
|
/** The keys people and models write for the ones a step means: refusals suggest them (contract.ts). */
|
|
10794
10794
|
export declare const FLOW_ALIASES: ContractOptions;
|
|
10795
|
+
/** v126: who signs a webhook's deliveries (webhook-signing.ts); `none` is the secret address alone. */
|
|
10796
|
+
export declare const WEBHOOK_SENDERS: readonly ["none", "standard", "github-style", "sentry", "vercel"];
|
|
10795
10797
|
export declare const triggerInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
10796
10798
|
zone: z.ZodOptional<z.ZodString>;
|
|
10797
10799
|
kind: z.ZodLiteral<"button">;
|
|
@@ -10845,6 +10847,17 @@ export declare const triggerInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
10845
10847
|
title: z.ZodOptional<z.ZodString>;
|
|
10846
10848
|
titleField: z.ZodOptional<z.ZodString>;
|
|
10847
10849
|
bodyField: z.ZodOptional<z.ZodString>;
|
|
10850
|
+
sender: z.ZodOptional<z.ZodEnum<{
|
|
10851
|
+
"github-style": "github-style";
|
|
10852
|
+
none: "none";
|
|
10853
|
+
sentry: "sentry";
|
|
10854
|
+
standard: "standard";
|
|
10855
|
+
vercel: "vercel";
|
|
10856
|
+
}>>;
|
|
10857
|
+
project: z.ZodOptional<z.ZodString>;
|
|
10858
|
+
team: z.ZodOptional<z.ZodString>;
|
|
10859
|
+
idField: z.ZodOptional<z.ZodString>;
|
|
10860
|
+
urlField: z.ZodOptional<z.ZodString>;
|
|
10848
10861
|
}, z.core.$strict>, z.ZodObject<{
|
|
10849
10862
|
zone: z.ZodOptional<z.ZodString>;
|
|
10850
10863
|
kind: z.ZodLiteral<"email">;
|
|
@@ -10907,6 +10920,17 @@ export declare const flowFileTriggerSchema: z.ZodDiscriminatedUnion<[z.ZodObject
|
|
|
10907
10920
|
title: z.ZodOptional<z.ZodString>;
|
|
10908
10921
|
titleField: z.ZodOptional<z.ZodString>;
|
|
10909
10922
|
bodyField: z.ZodOptional<z.ZodString>;
|
|
10923
|
+
sender: z.ZodOptional<z.ZodEnum<{
|
|
10924
|
+
"github-style": "github-style";
|
|
10925
|
+
none: "none";
|
|
10926
|
+
sentry: "sentry";
|
|
10927
|
+
standard: "standard";
|
|
10928
|
+
vercel: "vercel";
|
|
10929
|
+
}>>;
|
|
10930
|
+
project: z.ZodOptional<z.ZodString>;
|
|
10931
|
+
team: z.ZodOptional<z.ZodString>;
|
|
10932
|
+
idField: z.ZodOptional<z.ZodString>;
|
|
10933
|
+
urlField: z.ZodOptional<z.ZodString>;
|
|
10910
10934
|
}, z.core.$strict>, z.ZodObject<{
|
|
10911
10935
|
zone: z.ZodOptional<z.ZodString>;
|
|
10912
10936
|
kind: z.ZodLiteral<"email">;
|
|
@@ -11075,6 +11099,17 @@ export declare const triggerConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
11075
11099
|
title: z.ZodString;
|
|
11076
11100
|
titleField: z.ZodNullable<z.ZodString>;
|
|
11077
11101
|
bodyField: z.ZodNullable<z.ZodString>;
|
|
11102
|
+
sender: z.ZodOptional<z.ZodEnum<{
|
|
11103
|
+
"github-style": "github-style";
|
|
11104
|
+
none: "none";
|
|
11105
|
+
sentry: "sentry";
|
|
11106
|
+
standard: "standard";
|
|
11107
|
+
vercel: "vercel";
|
|
11108
|
+
}>>;
|
|
11109
|
+
project: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11110
|
+
team: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11111
|
+
idField: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11112
|
+
urlField: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11078
11113
|
}, z.core.$strict>, z.ZodObject<{
|
|
11079
11114
|
zone: z.ZodNullable<z.ZodString>;
|
|
11080
11115
|
kind: z.ZodLiteral<"email">;
|
|
@@ -19412,6 +19447,17 @@ export declare const flowFileSchema: z.ZodObject<{
|
|
|
19412
19447
|
title: z.ZodOptional<z.ZodString>;
|
|
19413
19448
|
titleField: z.ZodOptional<z.ZodString>;
|
|
19414
19449
|
bodyField: z.ZodOptional<z.ZodString>;
|
|
19450
|
+
sender: z.ZodOptional<z.ZodEnum<{
|
|
19451
|
+
"github-style": "github-style";
|
|
19452
|
+
none: "none";
|
|
19453
|
+
sentry: "sentry";
|
|
19454
|
+
standard: "standard";
|
|
19455
|
+
vercel: "vercel";
|
|
19456
|
+
}>>;
|
|
19457
|
+
project: z.ZodOptional<z.ZodString>;
|
|
19458
|
+
team: z.ZodOptional<z.ZodString>;
|
|
19459
|
+
idField: z.ZodOptional<z.ZodString>;
|
|
19460
|
+
urlField: z.ZodOptional<z.ZodString>;
|
|
19415
19461
|
}, z.core.$strict>, z.ZodObject<{
|
|
19416
19462
|
zone: z.ZodOptional<z.ZodString>;
|
|
19417
19463
|
kind: z.ZodLiteral<"email">;
|
package/dist/contracts/flow.js
CHANGED
|
@@ -297,6 +297,9 @@ export const FLOW_ALIASES = {
|
|
|
297
297
|
};
|
|
298
298
|
// ------------------------------------------------------------------ triggers
|
|
299
299
|
const zoneRef = { zone: z.string().max(TEXT_LIMITS.flowRef).optional() };
|
|
300
|
+
/** v126: who signs a webhook's deliveries (webhook-signing.ts); `none` is the secret address alone. */
|
|
301
|
+
export const WEBHOOK_SENDERS = ["none", "standard", "github-style", "sentry", "vercel"];
|
|
302
|
+
const webhookSender = z.enum(WEBHOOK_SENDERS);
|
|
300
303
|
const delivery = z.enum(["poll", "webhook"]);
|
|
301
304
|
/** A trigger's settings as they are given: the console, `toolroll flows trigger add`, a flow file, a template, the lead. */
|
|
302
305
|
const TRIGGER_INPUTS = {
|
|
@@ -311,7 +314,10 @@ const TRIGGER_INPUTS = {
|
|
|
311
314
|
}),
|
|
312
315
|
linear: z.strictObject({ kind: z.literal("linear"), team: short("triggerTeam").optional(), state: short("triggerState").optional(), label: short("triggerLabel").optional(), delivery: delivery.optional(), ...zoneRef }),
|
|
313
316
|
flow: z.strictObject({ kind: z.literal("flow"), flow: z.int().min(1), when: z.string().max(TEXT_LIMITS.flowRef).optional(), ...zoneRef }),
|
|
314
|
-
|
|
317
|
+
/** v126: `sender` signs it; Sentry and Vercel read their own payloads (scoped by `project`, Vercel's also by `team`),
|
|
318
|
+
* the others pick `titleField`, `bodyField`, `idField` and `urlField` from the JSON. */
|
|
319
|
+
webhook: z.strictObject({ kind: z.literal("webhook"), title: short("triggerWebhookTitle").optional(), titleField: short("triggerWebhookField").optional(), bodyField: short("triggerWebhookField").optional(),
|
|
320
|
+
sender: webhookSender.optional(), project: short("triggerWebhookScope").optional(), team: short("triggerWebhookScope").optional(), idField: short("triggerWebhookField").optional(), urlField: short("triggerWebhookField").optional(), ...zoneRef }),
|
|
315
321
|
email: z.strictObject({ kind: z.literal("email"), folder: short("triggerFolder").optional(), sender: short("triggerSender").optional(), subject: short("triggerSubject").optional(), ...zoneRef }),
|
|
316
322
|
"plane-review": z.strictObject({ kind: z.literal("plane-review"), at: z.string().regex(/^\d{1,2}:\d{2}$/, { error: "must be a time like 07:30" }).optional(), timeZone: z.string().max(TEXT_LIMITS.flowTimeZone).optional(), ...zoneRef }),
|
|
317
323
|
};
|
|
@@ -357,7 +363,10 @@ export const triggerConfigSchema = z.discriminatedUnion("kind", [
|
|
|
357
363
|
z.strictObject({ kind: z.literal("github"), repo: z.string().min(1).max(TEXT_LIMITS.triggerGithubRepo), watch: z.enum(["issues", "pulls", "checks"]), label: z.string().max(TEXT_LIMITS.triggerLabel).nullable(), branch: z.string().max(TEXT_LIMITS.triggerBranch).nullable(), from: z.enum(["team", "anyone"]), delivery, ...ZONE_OR_NULL }),
|
|
358
364
|
z.strictObject({ kind: z.literal("linear"), team: z.string().max(TEXT_LIMITS.triggerTeam).nullable(), state: z.string().max(TEXT_LIMITS.triggerState).nullable(), label: z.string().max(TEXT_LIMITS.triggerLabel).nullable(), delivery, ...ZONE_OR_NULL }),
|
|
359
365
|
z.strictObject({ kind: z.literal("flow"), flow: z.int().min(1), when: zoneId, ...ZONE_OR_NULL }),
|
|
360
|
-
|
|
366
|
+
/** v126: a webhook saved before its sender was chosen reads unsigned, with no scope and no identity or link field. */
|
|
367
|
+
z.strictObject({ kind: z.literal("webhook"), title: z.string().min(1).max(TEXT_LIMITS.triggerWebhookTitle), titleField: z.string().max(TEXT_LIMITS.triggerWebhookField).nullable(), bodyField: z.string().max(TEXT_LIMITS.triggerWebhookField).nullable(),
|
|
368
|
+
sender: webhookSender.optional(), project: z.string().max(TEXT_LIMITS.triggerWebhookScope).nullable().optional(), team: z.string().max(TEXT_LIMITS.triggerWebhookScope).nullable().optional(),
|
|
369
|
+
idField: z.string().max(TEXT_LIMITS.triggerWebhookField).nullable().optional(), urlField: z.string().max(TEXT_LIMITS.triggerWebhookField).nullable().optional(), ...ZONE_OR_NULL }),
|
|
361
370
|
/** `sender`: addresses or domains, comma-separated; `subject`: words the subject must contain. */
|
|
362
371
|
z.strictObject({ kind: z.literal("email"), folder: z.string().min(1).max(TEXT_LIMITS.triggerFolder), sender: z.string().max(TEXT_LIMITS.triggerSender).nullable(), subject: z.string().max(TEXT_LIMITS.triggerSubject).nullable(), ...ZONE_OR_NULL }),
|
|
363
372
|
/** A channel in a chat app; `binding` is the pairing of the person who connected it (whose chat answers there). */
|
|
@@ -22,11 +22,12 @@ export declare const protectedResourceSchema: z.ZodObject<{
|
|
|
22
22
|
authorization_servers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
23
|
scopes_supported: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
24
24
|
}, z.core.$strip>;
|
|
25
|
-
/** RFC 8414 (or OpenID) authorization-server metadata: where to sign in, trade a code, and
|
|
25
|
+
/** RFC 8414 (or OpenID) authorization-server metadata: where to sign in, trade a code, register, and revoke. */
|
|
26
26
|
export declare const authorizationServerSchema: z.ZodObject<{
|
|
27
27
|
authorization_endpoint: z.ZodOptional<z.ZodString>;
|
|
28
28
|
token_endpoint: z.ZodOptional<z.ZodString>;
|
|
29
29
|
registration_endpoint: z.ZodOptional<z.ZodString>;
|
|
30
|
+
revocation_endpoint: z.ZodOptional<z.ZodString>;
|
|
30
31
|
code_challenge_methods_supported: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
31
32
|
}, z.core.$strip>;
|
|
32
33
|
/** RFC 7591 registration answer: the client Toolroll is, and its secret when the server gives one. */
|
|
@@ -44,11 +44,12 @@ export const protectedResourceSchema = z.object({
|
|
|
44
44
|
authorization_servers: z.array(z.string()).optional(),
|
|
45
45
|
scopes_supported: z.array(z.string().regex(SCOPE_TOKEN)).optional(),
|
|
46
46
|
});
|
|
47
|
-
/** RFC 8414 (or OpenID) authorization-server metadata: where to sign in, trade a code, and
|
|
47
|
+
/** RFC 8414 (or OpenID) authorization-server metadata: where to sign in, trade a code, register, and revoke. */
|
|
48
48
|
export const authorizationServerSchema = z.object({
|
|
49
49
|
authorization_endpoint: z.string().optional(),
|
|
50
50
|
token_endpoint: z.string().optional(),
|
|
51
51
|
registration_endpoint: z.string().optional(),
|
|
52
|
+
revocation_endpoint: z.string().optional(),
|
|
52
53
|
code_challenge_methods_supported: z.array(z.string()).optional(),
|
|
53
54
|
});
|
|
54
55
|
/** RFC 7591 registration answer: the client Toolroll is, and its secret when the server gives one. */
|
|
@@ -135,6 +135,9 @@ export declare const LEAD_TOOL_INPUTS: {
|
|
|
135
135
|
since: z.ZodOptional<z.ZodString>;
|
|
136
136
|
}, z.core.$strict>;
|
|
137
137
|
readonly list_repos: z.ZodObject<{}, z.core.$strict>;
|
|
138
|
+
readonly find_tools: z.ZodObject<{
|
|
139
|
+
query: z.ZodString;
|
|
140
|
+
}, z.core.$strict>;
|
|
138
141
|
readonly get_project_tools: z.ZodObject<{
|
|
139
142
|
repo: z.ZodString;
|
|
140
143
|
}, z.core.$strict>;
|
|
@@ -640,6 +643,33 @@ export declare const LEAD_TOOL_INPUTS: {
|
|
|
640
643
|
report: z.ZodOptional<z.ZodBoolean>;
|
|
641
644
|
checks: z.ZodOptional<z.ZodString>;
|
|
642
645
|
}, z.core.$strict>;
|
|
646
|
+
readonly propose_sweep: z.ZodObject<{
|
|
647
|
+
repo: z.ZodString;
|
|
648
|
+
title: z.ZodString;
|
|
649
|
+
brief: z.ZodString;
|
|
650
|
+
items: z.ZodArray<z.ZodObject<{
|
|
651
|
+
title: z.ZodString;
|
|
652
|
+
item: z.ZodString;
|
|
653
|
+
}, z.core.$strict>>;
|
|
654
|
+
acceptance: z.ZodArray<z.ZodObject<{
|
|
655
|
+
id: z.ZodString;
|
|
656
|
+
statement: z.ZodString;
|
|
657
|
+
how: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
658
|
+
evidence: z.ZodArray<z.ZodEnum<{
|
|
659
|
+
"changed-path": "changed-path";
|
|
660
|
+
check: "check";
|
|
661
|
+
"manual-review": "manual-review";
|
|
662
|
+
screenshot: "screenshot";
|
|
663
|
+
}>>;
|
|
664
|
+
}, z.core.$strict>>;
|
|
665
|
+
max_parallel: z.ZodOptional<z.ZodNumber>;
|
|
666
|
+
}, z.core.$strict>;
|
|
667
|
+
readonly get_sweep: z.ZodObject<{
|
|
668
|
+
sweep: z.ZodInt;
|
|
669
|
+
}, z.core.$strict>;
|
|
670
|
+
readonly propose_sweep_cancel: z.ZodObject<{
|
|
671
|
+
sweep: z.ZodInt;
|
|
672
|
+
}, z.core.$strict>;
|
|
643
673
|
readonly propose_next: z.ZodObject<{
|
|
644
674
|
task: z.ZodString;
|
|
645
675
|
}, z.core.$strict>;
|
|
@@ -831,6 +861,9 @@ export declare const LEAD_TOOL_READ_INPUTS: {
|
|
|
831
861
|
since: z.ZodOptional<z.ZodString>;
|
|
832
862
|
}, z.core.$strict>;
|
|
833
863
|
readonly list_repos: z.ZodObject<{}, z.core.$strict>;
|
|
864
|
+
readonly find_tools: z.ZodObject<{
|
|
865
|
+
query: z.ZodString;
|
|
866
|
+
}, z.core.$strict>;
|
|
834
867
|
readonly get_project_tools: z.ZodObject<{
|
|
835
868
|
repo: z.ZodString;
|
|
836
869
|
}, z.core.$strict>;
|
|
@@ -1309,6 +1342,33 @@ export declare const LEAD_TOOL_READ_INPUTS: {
|
|
|
1309
1342
|
report: z.ZodOptional<z.ZodBoolean>;
|
|
1310
1343
|
checks: z.ZodOptional<z.ZodString>;
|
|
1311
1344
|
}, z.core.$strict>;
|
|
1345
|
+
readonly propose_sweep: z.ZodObject<{
|
|
1346
|
+
repo: z.ZodString;
|
|
1347
|
+
title: z.ZodString;
|
|
1348
|
+
brief: z.ZodString;
|
|
1349
|
+
items: z.ZodArray<z.ZodObject<{
|
|
1350
|
+
title: z.ZodString;
|
|
1351
|
+
item: z.ZodString;
|
|
1352
|
+
}, z.core.$strict>>;
|
|
1353
|
+
acceptance: z.ZodArray<z.ZodObject<{
|
|
1354
|
+
id: z.ZodString;
|
|
1355
|
+
statement: z.ZodString;
|
|
1356
|
+
how: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1357
|
+
evidence: z.ZodArray<z.ZodEnum<{
|
|
1358
|
+
"changed-path": "changed-path";
|
|
1359
|
+
check: "check";
|
|
1360
|
+
"manual-review": "manual-review";
|
|
1361
|
+
screenshot: "screenshot";
|
|
1362
|
+
}>>;
|
|
1363
|
+
}, z.core.$strict>>;
|
|
1364
|
+
max_parallel: z.ZodOptional<z.ZodNumber>;
|
|
1365
|
+
}, z.core.$strict>;
|
|
1366
|
+
readonly get_sweep: z.ZodObject<{
|
|
1367
|
+
sweep: z.ZodInt;
|
|
1368
|
+
}, z.core.$strict>;
|
|
1369
|
+
readonly propose_sweep_cancel: z.ZodObject<{
|
|
1370
|
+
sweep: z.ZodInt;
|
|
1371
|
+
}, z.core.$strict>;
|
|
1312
1372
|
readonly propose_next: z.ZodObject<{
|
|
1313
1373
|
task: z.ZodString;
|
|
1314
1374
|
}, z.core.$strict>;
|
|
@@ -1629,6 +1689,13 @@ export declare const LEAD_TOOL_OUTPUTS: {
|
|
|
1629
1689
|
repo: z.ZodString;
|
|
1630
1690
|
}, z.core.$loose>>;
|
|
1631
1691
|
}, z.core.$loose>;
|
|
1692
|
+
readonly find_tools: z.ZodObject<{
|
|
1693
|
+
tools: z.ZodArray<z.ZodObject<{
|
|
1694
|
+
name: z.ZodString;
|
|
1695
|
+
summary: z.ZodString;
|
|
1696
|
+
}, z.core.$loose>>;
|
|
1697
|
+
next: z.ZodString;
|
|
1698
|
+
}, z.core.$loose>;
|
|
1632
1699
|
readonly get_project_tools: z.ZodObject<{
|
|
1633
1700
|
rule: z.ZodString;
|
|
1634
1701
|
tools: z.ZodArray<z.ZodObject<{
|
|
@@ -1860,6 +1927,31 @@ export declare const LEAD_TOOL_OUTPUTS: {
|
|
|
1860
1927
|
kind: z.ZodLiteral<"task">;
|
|
1861
1928
|
awaiting: z.ZodString;
|
|
1862
1929
|
}, z.core.$loose>;
|
|
1930
|
+
readonly propose_sweep: z.ZodObject<{
|
|
1931
|
+
proposal: z.ZodNumber;
|
|
1932
|
+
label: z.ZodString;
|
|
1933
|
+
awaiting: z.ZodString;
|
|
1934
|
+
executed: z.ZodLiteral<false>;
|
|
1935
|
+
}, z.core.$loose>;
|
|
1936
|
+
readonly get_sweep: z.ZodObject<{
|
|
1937
|
+
sweep: z.ZodNumber;
|
|
1938
|
+
title: z.ZodString;
|
|
1939
|
+
line: z.ZodString;
|
|
1940
|
+
table: z.ZodString;
|
|
1941
|
+
maxParallel: z.ZodNumber;
|
|
1942
|
+
items: z.ZodArray<z.ZodObject<{
|
|
1943
|
+
item: z.ZodNumber;
|
|
1944
|
+
label: z.ZodString;
|
|
1945
|
+
task: z.ZodString;
|
|
1946
|
+
state: z.ZodString;
|
|
1947
|
+
}, z.core.$loose>>;
|
|
1948
|
+
}, z.core.$loose>;
|
|
1949
|
+
readonly propose_sweep_cancel: z.ZodObject<{
|
|
1950
|
+
proposal: z.ZodNumber;
|
|
1951
|
+
label: z.ZodString;
|
|
1952
|
+
awaiting: z.ZodString;
|
|
1953
|
+
executed: z.ZodLiteral<false>;
|
|
1954
|
+
}, z.core.$loose>;
|
|
1863
1955
|
readonly propose_next: z.ZodObject<{
|
|
1864
1956
|
proposal: z.ZodNumber;
|
|
1865
1957
|
kind: z.ZodLiteral<"next">;
|
|
@@ -80,6 +80,7 @@ export const LEAD_TOOL_INPUTS = {
|
|
|
80
80
|
}),
|
|
81
81
|
recap: z.strictObject({ since: text("recapSince").optional() }),
|
|
82
82
|
list_repos: z.strictObject({}),
|
|
83
|
+
find_tools: z.strictObject({ query: z.string().min(1).max(200).describe("What you want to do, in a few words (\"make a flow\", \"add a subagent\", \"hold a task\").") }),
|
|
83
84
|
get_project_tools: z.strictObject({ repo: repoId }),
|
|
84
85
|
get_flows: z.strictObject({ repo: repoId.optional(), flow: id.optional(), card: id.optional() }),
|
|
85
86
|
// The flow contract's own schema (src/contracts/flow-propose.ts), never a second one here.
|
|
@@ -126,6 +127,14 @@ export const LEAD_TOOL_INPUTS = {
|
|
|
126
127
|
not: scopeText.nullable().optional(), touches: touches.optional(), acceptance,
|
|
127
128
|
planning: z.enum(["auto", "required", "skip"]).optional(), report: z.boolean().optional(), checks: text("checksWords").optional(),
|
|
128
129
|
}),
|
|
130
|
+
// Lead fan-out (docs/plans/lead-fan-out.md): 2 to 20 independent items under one shared brief and one success test.
|
|
131
|
+
propose_sweep: z.strictObject({
|
|
132
|
+
repo: repoId, title: text("taskTitle"), brief: scopeText,
|
|
133
|
+
items: z.array(z.strictObject({ title: text("taskTitle"), item: scopeText })).min(2).max(20),
|
|
134
|
+
acceptance, max_parallel: z.number().int().min(1).max(8).optional(),
|
|
135
|
+
}),
|
|
136
|
+
get_sweep: z.strictObject({ sweep: id }),
|
|
137
|
+
propose_sweep_cancel: z.strictObject({ sweep: id }),
|
|
129
138
|
propose_next: z.strictObject({ task: taskRef }),
|
|
130
139
|
propose_reserve: z.strictObject({ task: taskRef, worker: text("workerName").nullable() }),
|
|
131
140
|
propose_hold: z.strictObject({ task: taskRef, reason: text("proposalReason") }),
|
|
@@ -209,6 +218,7 @@ export const LEAD_TOOL_OUTPUTS = {
|
|
|
209
218
|
propose_review: proposed("review", { operation: z.enum(["note", "revise"]) }),
|
|
210
219
|
recap: recapOutput,
|
|
211
220
|
list_repos: z.looseObject({ repos: rows({ repo: str }) }),
|
|
221
|
+
find_tools: z.looseObject({ tools: rows({ name: str, summary: str }), next: str }),
|
|
212
222
|
get_project_tools: z.looseObject({ rule: str, tools: rows({ name: str }), connectBySigningIn: list, commonTools: list, foundOnThisComputer: list, notice: str }),
|
|
213
223
|
get_flows: z.union([
|
|
214
224
|
z.looseObject({ flow: int, name: str, steps: rows({ id: str, title: str, kind: str }), cards: rows({ card: int, title: str }), scripts: list, triggers: list, rule: str }),
|
|
@@ -247,6 +257,9 @@ export const LEAD_TOOL_OUTPUTS = {
|
|
|
247
257
|
get_decision: decisionOutput,
|
|
248
258
|
queue: z.looseObject({ repo: str, queueRevision: int, ...queueColumnsOutput }),
|
|
249
259
|
propose_task: proposed("task", { repo: str, deliverable: z.enum(["branch", "report"]), planning: str }),
|
|
260
|
+
propose_sweep: cardDrafted,
|
|
261
|
+
get_sweep: z.looseObject({ sweep: int, title: str, line: str, table: str, maxParallel: int, items: z.array(z.looseObject({ item: int, label: str, task: str, state: str })) }),
|
|
262
|
+
propose_sweep_cancel: cardDrafted,
|
|
250
263
|
propose_next: proposed("next", { task: str }),
|
|
251
264
|
propose_reserve: proposed("reserve", { task: str, worker: nullable(str) }),
|
|
252
265
|
propose_hold: proposed("hold", { task: str }),
|
|
@@ -8,21 +8,31 @@
|
|
|
8
8
|
* credential would land, and a refusal is shown, logged and sent on.
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
export declare const PROVIDER_ID_VALUES: readonly ["claude", "codex", "openrouter", "gemini"];
|
|
11
|
+
export declare const PROVIDER_ID_VALUES: readonly ["claude", "codex", "openrouter", "gemini", "opencode", "cursor", "cline", "qwen", "goose"];
|
|
12
12
|
export declare const providerIdSchema: z.ZodEnum<{
|
|
13
13
|
claude: "claude";
|
|
14
|
+
cline: "cline";
|
|
14
15
|
codex: "codex";
|
|
16
|
+
cursor: "cursor";
|
|
15
17
|
gemini: "gemini";
|
|
18
|
+
goose: "goose";
|
|
19
|
+
opencode: "opencode";
|
|
16
20
|
openrouter: "openrouter";
|
|
21
|
+
qwen: "qwen";
|
|
17
22
|
}>;
|
|
18
23
|
export declare const MODEL_ID: RegExp;
|
|
19
24
|
export declare const modelIdSchema: z.ZodString;
|
|
20
25
|
export declare const agentSpecSchema: z.ZodObject<{
|
|
21
26
|
provider: z.ZodEnum<{
|
|
22
27
|
claude: "claude";
|
|
28
|
+
cline: "cline";
|
|
23
29
|
codex: "codex";
|
|
30
|
+
cursor: "cursor";
|
|
24
31
|
gemini: "gemini";
|
|
32
|
+
goose: "goose";
|
|
33
|
+
opencode: "opencode";
|
|
25
34
|
openrouter: "openrouter";
|
|
35
|
+
qwen: "qwen";
|
|
26
36
|
}>;
|
|
27
37
|
model: z.ZodNullable<z.ZodString>;
|
|
28
38
|
}, z.core.$strip>;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* credential would land, and a refusal is shown, logged and sent on.
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
export const PROVIDER_ID_VALUES = ["claude", "codex", "openrouter", "gemini"];
|
|
11
|
+
export const PROVIDER_ID_VALUES = ["claude", "codex", "openrouter", "gemini", "opencode", "cursor", "cline", "qwen", "goose"];
|
|
12
12
|
export const providerIdSchema = z.enum(PROVIDER_ID_VALUES);
|
|
13
13
|
export const MODEL_ID = /^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/;
|
|
14
14
|
export const modelIdSchema = z.string().regex(MODEL_ID);
|