toolroll 0.9.63 → 0.9.67
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 +108 -0
- package/README.md +33 -5
- 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 +117 -2
- package/dist/agent-fence.js +439 -12
- 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 +39 -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/batch-checks.js +3 -2
- package/dist/browser/THIRD_PARTY_NOTICES.txt +94 -0
- package/dist/browser/terminal.css +37 -0
- package/dist/browser/terminal.js +228 -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 +235 -1
- package/dist/browser-workspace.js +60 -0
- package/dist/builder.d.ts +10 -1
- package/dist/builder.js +87 -24
- package/dist/chat-actions.d.ts +13 -1
- package/dist/chat-actions.js +197 -15
- 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/checkout-proof.d.ts +28 -0
- package/dist/checkout-proof.js +62 -0
- package/dist/claim.d.ts +12 -0
- package/dist/claim.js +19 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +4 -1
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +21 -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/console-api.d.ts +13 -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/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/desktop-update.d.ts +1 -1
- package/dist/discord-chat.js +4 -1
- package/dist/doctor.js +1 -1
- 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/exec.d.ts +78 -0
- package/dist/exec.js +367 -9
- package/dist/export-ui.js +2 -2
- package/dist/flow-engine.js +24 -5
- 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 +77 -8
- package/dist/flow-triggers.js +517 -70
- package/dist/flows-cli.js +8 -2
- package/dist/flows-ui.d.ts +0 -2
- package/dist/flows-ui.js +52 -4
- package/dist/flows.d.ts +4 -0
- package/dist/flows.js +9 -1
- package/dist/html.d.ts +9 -0
- package/dist/html.js +11 -0
- package/dist/invoke.d.ts +35 -0
- package/dist/invoke.js +347 -28
- package/dist/keys.d.ts +18 -14
- package/dist/keys.js +5 -0
- 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 +152 -1
- 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 +269 -0
- package/dist/live-terminal.js +686 -0
- package/dist/live.d.ts +38 -27
- package/dist/live.js +142 -124
- 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/operate.d.ts +4 -0
- package/dist/operate.js +335 -19
- 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/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/project-delete-ui.d.ts +18 -0
- package/dist/project-delete-ui.js +60 -9
- package/dist/project-delete.js +2 -2
- package/dist/project-memory.d.ts +3 -1
- package/dist/project-memory.js +57 -25
- package/dist/project-tools.d.ts +5 -3
- package/dist/project-tools.js +12 -9
- 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.d.ts +25 -2
- package/dist/provider.js +63 -9
- 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-adapters.d.ts +6 -0
- package/dist/release-adapters.js +70 -3
- package/dist/release.d.ts +10 -1
- package/dist/release.js +34 -15
- package/dist/request-budget-ui.js +2 -2
- package/dist/result-follow-ups.js +3 -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 +183 -5
- package/dist/scope.js +256 -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 +248 -40
- package/dist/server/chat.d.ts +1 -1
- package/dist/server/chat.js +122 -31
- package/dist/server/chrome.d.ts +16 -2
- package/dist/server/chrome.js +63 -11
- package/dist/server/console.css +107 -42
- package/dist/server/flows.js +38 -8
- 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 +32 -4
- package/dist/server/render-pages.js +83 -13
- 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 +111 -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 +47 -5
- package/dist/server/runtime.d.ts +33 -2
- package/dist/server/session.d.ts +25 -1
- package/dist/server/session.js +18 -4
- package/dist/server/settings.js +142 -10
- 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 +327 -78
- 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-ui.js +4 -4
- package/dist/store-baseline.d.ts +1 -1
- package/dist/store-baseline.js +1 -1
- package/dist/store.d.ts +440 -15
- package/dist/store.js +1072 -52
- package/dist/subagent-desk.js +1 -1
- package/dist/summary.js +3 -0
- 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 +22 -0
- package/dist/teardown-git.js +136 -2
- 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 +14 -0
- package/dist/tool-broker.js +67 -2
- package/dist/toolroll-update-ui.js +2 -2
- package/dist/toolroll-update.js +13 -3
- package/dist/tools-ui.js +2 -2
- package/dist/unfenced-test-support.d.ts +2 -0
- package/dist/unfenced-test-support.js +11 -0
- 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 +16 -2
- package/dist/workspace-revision.js +3 -1
- package/dist/writes-mode.d.ts +9 -0
- package/dist/writes-mode.js +8 -0
- package/package.json +15 -2
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). */
|
|
@@ -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);
|
|
@@ -16,7 +16,7 @@ import { type ContractResult } from "./contract.js";
|
|
|
16
16
|
export declare const ROUTE_PHASES: readonly ["plan", "build", "repair", "review"];
|
|
17
17
|
/** provider.ts's provider ids, restated (provider.ts sits above phase-routing.ts in the module graph) and pinned to
|
|
18
18
|
* them by the test suite. */
|
|
19
|
-
export declare const ROUTE_PROVIDERS: readonly ["claude", "codex", "openrouter", "gemini"];
|
|
19
|
+
export declare const ROUTE_PROVIDERS: readonly ["claude", "codex", "openrouter", "gemini", "opencode", "cursor", "cline", "qwen", "goose"];
|
|
20
20
|
/** provider.ts's MODEL_ID, restated for the same reason: an exact model id is argv-safe — no leading dash, no
|
|
21
21
|
* whitespace or control bytes. */
|
|
22
22
|
export declare const MODEL_ID_SHAPE: RegExp;
|
|
@@ -49,9 +49,14 @@ export declare const routeOverrideSchema: z.ZodObject<{
|
|
|
49
49
|
}>;
|
|
50
50
|
provider: z.ZodEnum<{
|
|
51
51
|
claude: "claude";
|
|
52
|
+
cline: "cline";
|
|
52
53
|
codex: "codex";
|
|
54
|
+
cursor: "cursor";
|
|
53
55
|
gemini: "gemini";
|
|
56
|
+
goose: "goose";
|
|
57
|
+
opencode: "opencode";
|
|
54
58
|
openrouter: "openrouter";
|
|
59
|
+
qwen: "qwen";
|
|
55
60
|
}>;
|
|
56
61
|
model: z.ZodString;
|
|
57
62
|
by: z.ZodString;
|
|
@@ -67,9 +72,14 @@ export declare const routeLegSchema: z.ZodObject<{
|
|
|
67
72
|
}>;
|
|
68
73
|
provider: z.ZodEnum<{
|
|
69
74
|
claude: "claude";
|
|
75
|
+
cline: "cline";
|
|
70
76
|
codex: "codex";
|
|
77
|
+
cursor: "cursor";
|
|
71
78
|
gemini: "gemini";
|
|
79
|
+
goose: "goose";
|
|
80
|
+
opencode: "opencode";
|
|
72
81
|
openrouter: "openrouter";
|
|
82
|
+
qwen: "qwen";
|
|
73
83
|
}>;
|
|
74
84
|
model: z.ZodString;
|
|
75
85
|
tier: z.ZodEnum<{
|
|
@@ -85,9 +95,14 @@ export declare const routeLegSchema: z.ZodObject<{
|
|
|
85
95
|
recommended: z.ZodObject<{
|
|
86
96
|
provider: z.ZodEnum<{
|
|
87
97
|
claude: "claude";
|
|
98
|
+
cline: "cline";
|
|
88
99
|
codex: "codex";
|
|
100
|
+
cursor: "cursor";
|
|
89
101
|
gemini: "gemini";
|
|
102
|
+
goose: "goose";
|
|
103
|
+
opencode: "opencode";
|
|
90
104
|
openrouter: "openrouter";
|
|
105
|
+
qwen: "qwen";
|
|
91
106
|
}>;
|
|
92
107
|
model: z.ZodString;
|
|
93
108
|
tier: z.ZodEnum<{
|
|
@@ -135,9 +150,14 @@ export declare const sealedRouteV1Schema: z.ZodObject<{
|
|
|
135
150
|
}>;
|
|
136
151
|
provider: z.ZodEnum<{
|
|
137
152
|
claude: "claude";
|
|
153
|
+
cline: "cline";
|
|
138
154
|
codex: "codex";
|
|
155
|
+
cursor: "cursor";
|
|
139
156
|
gemini: "gemini";
|
|
157
|
+
goose: "goose";
|
|
158
|
+
opencode: "opencode";
|
|
140
159
|
openrouter: "openrouter";
|
|
160
|
+
qwen: "qwen";
|
|
141
161
|
}>;
|
|
142
162
|
model: z.ZodString;
|
|
143
163
|
tier: z.ZodEnum<{
|
|
@@ -152,9 +172,14 @@ export declare const sealedRouteV1Schema: z.ZodObject<{
|
|
|
152
172
|
recommended: z.ZodObject<{
|
|
153
173
|
provider: z.ZodEnum<{
|
|
154
174
|
claude: "claude";
|
|
175
|
+
cline: "cline";
|
|
155
176
|
codex: "codex";
|
|
177
|
+
cursor: "cursor";
|
|
156
178
|
gemini: "gemini";
|
|
179
|
+
goose: "goose";
|
|
180
|
+
opencode: "opencode";
|
|
157
181
|
openrouter: "openrouter";
|
|
182
|
+
qwen: "qwen";
|
|
158
183
|
}>;
|
|
159
184
|
model: z.ZodString;
|
|
160
185
|
tier: z.ZodEnum<{
|
|
@@ -174,9 +199,14 @@ export declare const sealedRouteV1Schema: z.ZodObject<{
|
|
|
174
199
|
}>;
|
|
175
200
|
provider: z.ZodEnum<{
|
|
176
201
|
claude: "claude";
|
|
202
|
+
cline: "cline";
|
|
177
203
|
codex: "codex";
|
|
204
|
+
cursor: "cursor";
|
|
178
205
|
gemini: "gemini";
|
|
206
|
+
goose: "goose";
|
|
207
|
+
opencode: "opencode";
|
|
179
208
|
openrouter: "openrouter";
|
|
209
|
+
qwen: "qwen";
|
|
180
210
|
}>;
|
|
181
211
|
model: z.ZodString;
|
|
182
212
|
by: z.ZodString;
|
|
@@ -219,9 +249,14 @@ export declare const sealedRouteV2Schema: z.ZodObject<{
|
|
|
219
249
|
}>;
|
|
220
250
|
provider: z.ZodEnum<{
|
|
221
251
|
claude: "claude";
|
|
252
|
+
cline: "cline";
|
|
222
253
|
codex: "codex";
|
|
254
|
+
cursor: "cursor";
|
|
223
255
|
gemini: "gemini";
|
|
256
|
+
goose: "goose";
|
|
257
|
+
opencode: "opencode";
|
|
224
258
|
openrouter: "openrouter";
|
|
259
|
+
qwen: "qwen";
|
|
225
260
|
}>;
|
|
226
261
|
model: z.ZodString;
|
|
227
262
|
tier: z.ZodEnum<{
|
|
@@ -237,9 +272,14 @@ export declare const sealedRouteV2Schema: z.ZodObject<{
|
|
|
237
272
|
recommended: z.ZodObject<{
|
|
238
273
|
provider: z.ZodEnum<{
|
|
239
274
|
claude: "claude";
|
|
275
|
+
cline: "cline";
|
|
240
276
|
codex: "codex";
|
|
277
|
+
cursor: "cursor";
|
|
241
278
|
gemini: "gemini";
|
|
279
|
+
goose: "goose";
|
|
280
|
+
opencode: "opencode";
|
|
242
281
|
openrouter: "openrouter";
|
|
282
|
+
qwen: "qwen";
|
|
243
283
|
}>;
|
|
244
284
|
model: z.ZodString;
|
|
245
285
|
tier: z.ZodEnum<{
|
|
@@ -260,9 +300,14 @@ export declare const sealedRouteV2Schema: z.ZodObject<{
|
|
|
260
300
|
}>;
|
|
261
301
|
provider: z.ZodEnum<{
|
|
262
302
|
claude: "claude";
|
|
303
|
+
cline: "cline";
|
|
263
304
|
codex: "codex";
|
|
305
|
+
cursor: "cursor";
|
|
264
306
|
gemini: "gemini";
|
|
307
|
+
goose: "goose";
|
|
308
|
+
opencode: "opencode";
|
|
265
309
|
openrouter: "openrouter";
|
|
310
|
+
qwen: "qwen";
|
|
266
311
|
}>;
|
|
267
312
|
model: z.ZodString;
|
|
268
313
|
by: z.ZodString;
|
|
@@ -320,9 +365,14 @@ export declare const sealedRouteSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
320
365
|
}>;
|
|
321
366
|
provider: z.ZodEnum<{
|
|
322
367
|
claude: "claude";
|
|
368
|
+
cline: "cline";
|
|
323
369
|
codex: "codex";
|
|
370
|
+
cursor: "cursor";
|
|
324
371
|
gemini: "gemini";
|
|
372
|
+
goose: "goose";
|
|
373
|
+
opencode: "opencode";
|
|
325
374
|
openrouter: "openrouter";
|
|
375
|
+
qwen: "qwen";
|
|
326
376
|
}>;
|
|
327
377
|
model: z.ZodString;
|
|
328
378
|
tier: z.ZodEnum<{
|
|
@@ -337,9 +387,14 @@ export declare const sealedRouteSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
337
387
|
recommended: z.ZodObject<{
|
|
338
388
|
provider: z.ZodEnum<{
|
|
339
389
|
claude: "claude";
|
|
390
|
+
cline: "cline";
|
|
340
391
|
codex: "codex";
|
|
392
|
+
cursor: "cursor";
|
|
341
393
|
gemini: "gemini";
|
|
394
|
+
goose: "goose";
|
|
395
|
+
opencode: "opencode";
|
|
342
396
|
openrouter: "openrouter";
|
|
397
|
+
qwen: "qwen";
|
|
343
398
|
}>;
|
|
344
399
|
model: z.ZodString;
|
|
345
400
|
tier: z.ZodEnum<{
|
|
@@ -359,9 +414,14 @@ export declare const sealedRouteSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
359
414
|
}>;
|
|
360
415
|
provider: z.ZodEnum<{
|
|
361
416
|
claude: "claude";
|
|
417
|
+
cline: "cline";
|
|
362
418
|
codex: "codex";
|
|
419
|
+
cursor: "cursor";
|
|
363
420
|
gemini: "gemini";
|
|
421
|
+
goose: "goose";
|
|
422
|
+
opencode: "opencode";
|
|
364
423
|
openrouter: "openrouter";
|
|
424
|
+
qwen: "qwen";
|
|
365
425
|
}>;
|
|
366
426
|
model: z.ZodString;
|
|
367
427
|
by: z.ZodString;
|
|
@@ -403,9 +463,14 @@ export declare const sealedRouteSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
403
463
|
}>;
|
|
404
464
|
provider: z.ZodEnum<{
|
|
405
465
|
claude: "claude";
|
|
466
|
+
cline: "cline";
|
|
406
467
|
codex: "codex";
|
|
468
|
+
cursor: "cursor";
|
|
407
469
|
gemini: "gemini";
|
|
470
|
+
goose: "goose";
|
|
471
|
+
opencode: "opencode";
|
|
408
472
|
openrouter: "openrouter";
|
|
473
|
+
qwen: "qwen";
|
|
409
474
|
}>;
|
|
410
475
|
model: z.ZodString;
|
|
411
476
|
tier: z.ZodEnum<{
|
|
@@ -421,9 +486,14 @@ export declare const sealedRouteSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
421
486
|
recommended: z.ZodObject<{
|
|
422
487
|
provider: z.ZodEnum<{
|
|
423
488
|
claude: "claude";
|
|
489
|
+
cline: "cline";
|
|
424
490
|
codex: "codex";
|
|
491
|
+
cursor: "cursor";
|
|
425
492
|
gemini: "gemini";
|
|
493
|
+
goose: "goose";
|
|
494
|
+
opencode: "opencode";
|
|
426
495
|
openrouter: "openrouter";
|
|
496
|
+
qwen: "qwen";
|
|
427
497
|
}>;
|
|
428
498
|
model: z.ZodString;
|
|
429
499
|
tier: z.ZodEnum<{
|
|
@@ -444,9 +514,14 @@ export declare const sealedRouteSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
444
514
|
}>;
|
|
445
515
|
provider: z.ZodEnum<{
|
|
446
516
|
claude: "claude";
|
|
517
|
+
cline: "cline";
|
|
447
518
|
codex: "codex";
|
|
519
|
+
cursor: "cursor";
|
|
448
520
|
gemini: "gemini";
|
|
521
|
+
goose: "goose";
|
|
522
|
+
opencode: "opencode";
|
|
449
523
|
openrouter: "openrouter";
|
|
524
|
+
qwen: "qwen";
|
|
450
525
|
}>;
|
|
451
526
|
model: z.ZodString;
|
|
452
527
|
by: z.ZodString;
|
package/dist/contracts/route.js
CHANGED
|
@@ -17,7 +17,7 @@ import { limited, parseContract, versioned } from "./contract.js";
|
|
|
17
17
|
export const ROUTE_PHASES = ["plan", "build", "repair", "review"];
|
|
18
18
|
/** provider.ts's provider ids, restated (provider.ts sits above phase-routing.ts in the module graph) and pinned to
|
|
19
19
|
* them by the test suite. */
|
|
20
|
-
export const ROUTE_PROVIDERS = ["claude", "codex", "openrouter", "gemini"];
|
|
20
|
+
export const ROUTE_PROVIDERS = ["claude", "codex", "openrouter", "gemini", "opencode", "cursor", "cline", "qwen", "goose"];
|
|
21
21
|
/** provider.ts's MODEL_ID, restated for the same reason: an exact model id is argv-safe — no leading dash, no
|
|
22
22
|
* whitespace or control bytes. */
|
|
23
23
|
export const MODEL_ID_SHAPE = /^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/;
|
|
@@ -208,6 +208,8 @@ declare const STORE_COLUMN_VALUES: {
|
|
|
208
208
|
subagent_state: "subagent_state";
|
|
209
209
|
subagent_tools: "subagent_tools";
|
|
210
210
|
subagent_undo: "subagent_undo";
|
|
211
|
+
sweep_cancel_rest: "sweep_cancel_rest";
|
|
212
|
+
sweep_file: "sweep_file";
|
|
211
213
|
task_cancel: "task_cancel";
|
|
212
214
|
task_resume: "task_resume";
|
|
213
215
|
tool_add: "tool_add";
|
package/dist/control-setup.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export declare function previewSetup(store: Store, repo: string, inputs: SetupIn
|
|
|
19
19
|
fingerprint: string;
|
|
20
20
|
command: string;
|
|
21
21
|
seconds: number;
|
|
22
|
-
provider: "claude" | "codex" | "gemini" | "openrouter";
|
|
22
|
+
provider: "claude" | "cline" | "codex" | "cursor" | "gemini" | "goose" | "opencode" | "openrouter" | "qwen";
|
|
23
23
|
model: string;
|
|
24
24
|
};
|
|
25
25
|
export declare function approveSetup(store: Store, repo: string, inputs: SetupInputs, fingerprint: string, by: string, token: string, now: Date): {
|
package/dist/control-ui.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Shared setup views over the existing project configuration and approval doors. */
|
|
2
|
-
import { html, joinHtml, postForm } from "./html.js";
|
|
2
|
+
import { html, joinHtml, postForm, reauth } from "./html.js";
|
|
3
3
|
import { ASSISTANTS } from "./setup-guide.js";
|
|
4
4
|
import { openRouterPicker } from "./openrouter-models.js";
|
|
5
5
|
export function connectionWords(connection) {
|
|
@@ -24,5 +24,5 @@ export function controlSetupHtml(data) {
|
|
|
24
24
|
/** `fields` may still carry the session's csrf (a caller's habit): postForm writes the one CSRF field. */
|
|
25
25
|
export function setupPreviewHtml(inputs, fields) {
|
|
26
26
|
const { csrf: _csrf, ...rest } = fields;
|
|
27
|
-
return html `<h1>Approve project setup</h1><div class="card"><p>${fields.repo ?? ""}</p><p><strong>Builder:</strong> ${inputs.provider} · ${inputs.model}</p><p><strong>Preparation:</strong></p><pre class="recap">${inputs.command || "No preparation command"}</pre><p>Preparation timeout: ${inputs.seconds} seconds.</p><p>The builder default applies to new tasks. Preparation applies to subsequent runs, including already approved tasks. Existing signed task settings and verification rules remain in force.</p>${postForm("/control/setup-approve", html `<label>Your password<input type="password" name="token" autocomplete="current-password" required></label
|
|
27
|
+
return html `<h1>Approve project setup</h1><div class="card"><p>${fields.repo ?? ""}</p><p><strong>Builder:</strong> ${inputs.provider} · ${inputs.model}</p><p><strong>Preparation:</strong></p><pre class="recap">${inputs.command || "No preparation command"}</pre><p>Preparation timeout: ${inputs.seconds} seconds.</p><p>The builder default applies to new tasks. Preparation applies to subsequent runs, including already approved tasks. Existing signed task settings and verification rules remain in force.</p>${postForm("/control/setup-approve", html `${reauth(html `<label>Your password<input type="password" name="token" autocomplete="current-password" required></label>`)}<button>Approve project setup</button>`, { hidden: { ...rest, ...inputs } })}</div>`;
|
|
28
28
|
}
|
package/dist/converse.d.ts
CHANGED
|
@@ -180,13 +180,24 @@ export type LeadToolCall = {
|
|
|
180
180
|
args: Record<string, unknown>;
|
|
181
181
|
};
|
|
182
182
|
/** A provider answer with tool calls allowed: text, calls, usage. */
|
|
183
|
+
/** `tokensIn` is ALL input tokens of the request; of them, `cacheWriteTokens` were written to the provider's prompt cache
|
|
184
|
+
* and `cacheReadTokens` read from it (absent: the provider reported none — never assumed zero for a cached request). */
|
|
183
185
|
export type LeadProviderAnswer = {
|
|
184
186
|
text: string;
|
|
185
187
|
calls: LeadToolCall[];
|
|
186
188
|
tokensIn: number;
|
|
187
189
|
tokensOut: number;
|
|
188
190
|
reportedCostMicrousd: number | null;
|
|
191
|
+
cacheWriteTokens?: number;
|
|
192
|
+
cacheReadTokens?: number;
|
|
189
193
|
};
|
|
194
|
+
/** Anthropic prices a cache write at 1.25x and a cache read at 0.1x the input price (5-minute cache). */
|
|
195
|
+
export declare const CACHE_WRITE_RATIO = 1.25;
|
|
196
|
+
export declare const CACHE_READ_RATIO = 0.1;
|
|
197
|
+
/** The price a worst case reserves at while prompt caching is on: every input token as a cache write (the dearest). */
|
|
198
|
+
export declare function cacheWorstPrice(price: ModelPrice): ModelPrice;
|
|
199
|
+
/** A step's settlement with its cache categories: plain input, cache writes and cache reads each at their own rate. */
|
|
200
|
+
export declare function settleWithCache(price: ModelPrice, answer: Pick<LeadProviderAnswer, "tokensIn" | "tokensOut" | "cacheWriteTokens" | "cacheReadTokens">): number;
|
|
190
201
|
/** One message of the lead's own history, provider-neutral. */
|
|
191
202
|
export type LeadHistoryMessage = {
|
|
192
203
|
role: "operator";
|
|
@@ -224,6 +235,11 @@ export declare function composeLeadRequest(args: {
|
|
|
224
235
|
dataDocument: string;
|
|
225
236
|
history: readonly LeadHistoryMessage[];
|
|
226
237
|
tools: readonly LeadToolSchema[];
|
|
238
|
+
/** Anthropic prompt caching: breakpoints after the first `coreTools` tools (stable across replies), on the system
|
|
239
|
+
* block, and on the DATA message (stable across the steps of one reply). Absent: no cache annotations. */
|
|
240
|
+
cache?: {
|
|
241
|
+
coreTools: number;
|
|
242
|
+
};
|
|
227
243
|
}): {
|
|
228
244
|
url: string;
|
|
229
245
|
headers: Record<string, string>;
|