@songsid/agend 2.2.0-beta.2 → 2.2.0-beta.20
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/README.md +40 -24
- package/README.zh-TW.md +40 -24
- package/dist/agent-cli-instructions.md +6 -2
- package/dist/agent-cli.js +15 -7
- package/dist/agent-cli.js.map +1 -1
- package/dist/agent-endpoint.js +3 -0
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/agent-whats-new.js +16 -4
- package/dist/agent-whats-new.js.map +1 -1
- package/dist/auth-api.d.ts +3 -1
- package/dist/auth-api.js +17 -1
- package/dist/auth-api.js.map +1 -1
- package/dist/backend/antigravity.d.ts +33 -0
- package/dist/backend/antigravity.js +126 -18
- package/dist/backend/antigravity.js.map +1 -1
- package/dist/backend/claude-carry.d.ts +22 -0
- package/dist/backend/claude-carry.js +170 -0
- package/dist/backend/claude-carry.js.map +1 -0
- package/dist/backend/claude-code.d.ts +65 -2
- package/dist/backend/claude-code.js +226 -33
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex-metadata.d.ts +33 -0
- package/dist/backend/codex-metadata.js +122 -18
- package/dist/backend/codex-metadata.js.map +1 -1
- package/dist/backend/codex.d.ts +3 -0
- package/dist/backend/codex.js +17 -1
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/credential-profile.d.ts +40 -3
- package/dist/backend/credential-profile.js +113 -5
- package/dist/backend/credential-profile.js.map +1 -1
- package/dist/backend/effort-metadata.d.ts +37 -1
- package/dist/backend/effort-metadata.js +86 -15
- package/dist/backend/effort-metadata.js.map +1 -1
- package/dist/backend/grok.d.ts +4 -0
- package/dist/backend/grok.js +14 -0
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/kiro.d.ts +27 -1
- package/dist/backend/kiro.js +63 -10
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/launch-effort.d.ts +61 -0
- package/dist/backend/launch-effort.js +170 -0
- package/dist/backend/launch-effort.js.map +1 -0
- package/dist/backend/muse.d.ts +84 -0
- package/dist/backend/muse.js +449 -53
- package/dist/backend/muse.js.map +1 -1
- package/dist/backend/types.d.ts +48 -2
- package/dist/backend/types.js +12 -1
- package/dist/backend/types.js.map +1 -1
- package/dist/backend-command.d.ts +91 -0
- package/dist/backend-command.js +122 -0
- package/dist/backend-command.js.map +1 -0
- package/dist/background-work-ended.d.ts +18 -0
- package/dist/background-work-ended.js +30 -0
- package/dist/background-work-ended.js.map +1 -0
- package/dist/cache-service.d.ts +2 -0
- package/dist/cache-service.js +2 -1
- package/dist/cache-service.js.map +1 -1
- package/dist/channel/adapters/discord.d.ts +26 -1
- package/dist/channel/adapters/discord.js +103 -3
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/adapters/telegram.d.ts +35 -3
- package/dist/channel/adapters/telegram.js +122 -23
- package/dist/channel/adapters/telegram.js.map +1 -1
- package/dist/channel/mcp-tools.js +5 -3
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/message-edit-errors.d.ts +5 -0
- package/dist/channel/message-edit-errors.js +24 -0
- package/dist/channel/message-edit-errors.js.map +1 -0
- package/dist/channel/telegram-markdown.d.ts +6 -0
- package/dist/channel/telegram-markdown.js +104 -0
- package/dist/channel/telegram-markdown.js.map +1 -0
- package/dist/channel/tool-router.d.ts +2 -0
- package/dist/channel/tool-router.js +6 -5
- package/dist/channel/tool-router.js.map +1 -1
- package/dist/channel/types.d.ts +46 -4
- package/dist/cli.js +184 -34
- package/dist/cli.js.map +1 -1
- package/dist/command-table.d.ts +2 -2
- package/dist/command-table.js +5 -2
- package/dist/command-table.js.map +1 -1
- package/dist/compact-watch.d.ts +86 -0
- package/dist/compact-watch.js +288 -0
- package/dist/compact-watch.js.map +1 -0
- package/dist/config-validator.js +55 -5
- package/dist/config-validator.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/cross-instance-envelope.js +2 -0
- package/dist/cross-instance-envelope.js.map +1 -1
- package/dist/daemon.d.ts +129 -1
- package/dist/daemon.js +754 -94
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-outbox.d.ts +64 -8
- package/dist/delivery-outbox.js +315 -24
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/delivery-reconciliation.d.ts +18 -1
- package/dist/delivery-reconciliation.js +67 -2
- package/dist/delivery-reconciliation.js.map +1 -1
- package/dist/doctor.js +7 -0
- package/dist/doctor.js.map +1 -1
- package/dist/fleet-context.d.ts +12 -1
- package/dist/fleet-manager.d.ts +392 -19
- package/dist/fleet-manager.js +2030 -275
- package/dist/fleet-manager.js.map +1 -1
- package/dist/forged-envelope-scan.d.ts +4 -3
- package/dist/forged-envelope-scan.js +4 -3
- package/dist/forged-envelope-scan.js.map +1 -1
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +84 -16
- package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +16 -1
- package/dist/general-knowledge/skills/model-discovery/SKILL.md +4 -1
- package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +4 -0
- package/dist/host-memory.d.ts +10 -0
- package/dist/host-memory.js +33 -1
- package/dist/host-memory.js.map +1 -1
- package/dist/human-delivery-receipts.d.ts +83 -0
- package/dist/human-delivery-receipts.js +194 -0
- package/dist/human-delivery-receipts.js.map +1 -0
- package/dist/install-lock.d.ts +18 -1
- package/dist/install-lock.js +30 -3
- package/dist/install-lock.js.map +1 -1
- package/dist/instance-avatar.d.ts +5 -4
- package/dist/instance-avatar.js +12 -8
- package/dist/instance-avatar.js.map +1 -1
- package/dist/instance-config-impact.js +1 -0
- package/dist/instance-config-impact.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +25 -6
- package/dist/instance-lifecycle.js +76 -27
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.js +3 -3
- package/dist/instructions.js.map +1 -1
- package/dist/kiro-compact-pane.d.ts +38 -0
- package/dist/kiro-compact-pane.js +57 -0
- package/dist/kiro-compact-pane.js.map +1 -0
- package/dist/kiro-log-gate.d.ts +42 -0
- package/dist/kiro-log-gate.js +39 -0
- package/dist/kiro-log-gate.js.map +1 -0
- package/dist/launchd-handoff.d.ts +43 -0
- package/dist/launchd-handoff.js +56 -0
- package/dist/launchd-handoff.js.map +1 -0
- package/dist/locale.js +268 -42
- package/dist/locale.js.map +1 -1
- package/dist/log-service.d.ts +99 -0
- package/dist/log-service.js +243 -0
- package/dist/log-service.js.map +1 -0
- package/dist/log-steps.d.ts +169 -0
- package/dist/log-steps.js +858 -0
- package/dist/log-steps.js.map +1 -0
- package/dist/login-controller.d.ts +20 -3
- package/dist/login-controller.js +71 -19
- package/dist/login-controller.js.map +1 -1
- package/dist/login-flows.d.ts +5 -2
- package/dist/login-flows.js +5 -4
- package/dist/login-flows.js.map +1 -1
- package/dist/login-shell.d.ts +21 -0
- package/dist/login-shell.js +98 -0
- package/dist/login-shell.js.map +1 -0
- package/dist/memory-pressure.d.ts +13 -1
- package/dist/memory-pressure.js +50 -10
- package/dist/memory-pressure.js.map +1 -1
- package/dist/needs-you-hub.js +2 -0
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you-live.d.ts +6 -0
- package/dist/needs-you-live.js +23 -3
- package/dist/needs-you-live.js.map +1 -1
- package/dist/outbound-handlers.d.ts +100 -0
- package/dist/outbound-handlers.js +277 -93
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +30 -15
- package/dist/outbound-schemas.js +23 -5
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/provider-probe.d.ts +29 -0
- package/dist/provider-probe.js +198 -2
- package/dist/provider-probe.js.map +1 -1
- package/dist/public-link-progress.d.ts +1 -1
- package/dist/public-link-progress.js +8 -2
- package/dist/public-link-progress.js.map +1 -1
- package/dist/public-preview.d.ts +101 -0
- package/dist/public-preview.js +236 -0
- package/dist/public-preview.js.map +1 -0
- package/dist/public-web-gateway.d.ts +2 -0
- package/dist/public-web-gateway.js +20 -6
- package/dist/public-web-gateway.js.map +1 -1
- package/dist/public-web-link.d.ts +24 -1
- package/dist/public-web-link.js +63 -9
- package/dist/public-web-link.js.map +1 -1
- package/dist/quickstart-api.d.ts +1 -1
- package/dist/quickstart-api.js +8 -6
- package/dist/quickstart-api.js.map +1 -1
- package/dist/quickstart.d.ts +12 -0
- package/dist/quickstart.js +36 -6
- package/dist/quickstart.js.map +1 -1
- package/dist/reply-buttons-controller.d.ts +89 -5
- package/dist/reply-buttons-controller.js +273 -8
- package/dist/reply-buttons-controller.js.map +1 -1
- package/dist/reply-buttons.d.ts +48 -3
- package/dist/reply-buttons.js +105 -10
- package/dist/reply-buttons.js.map +1 -1
- package/dist/reply-polls.d.ts +85 -0
- package/dist/reply-polls.js +154 -0
- package/dist/reply-polls.js.map +1 -0
- package/dist/restart-guard.d.ts +6 -3
- package/dist/restart-guard.js +6 -3
- package/dist/restart-guard.js.map +1 -1
- package/dist/restart-progress.d.ts +33 -2
- package/dist/restart-progress.js +30 -2
- package/dist/restart-progress.js.map +1 -1
- package/dist/sd-notify.d.ts +22 -1
- package/dist/sd-notify.js +63 -10
- package/dist/sd-notify.js.map +1 -1
- package/dist/service-activation.d.ts +15 -7
- package/dist/service-activation.js +42 -26
- package/dist/service-activation.js.map +1 -1
- package/dist/service-installer.d.ts +55 -0
- package/dist/service-installer.js +90 -3
- package/dist/service-installer.js.map +1 -1
- package/dist/service-plan.d.ts +11 -0
- package/dist/service-plan.js +23 -0
- package/dist/service-plan.js.map +1 -1
- package/dist/settings-api.js +14 -4
- package/dist/settings-api.js.map +1 -1
- package/dist/settings-change.js +4 -2
- package/dist/settings-change.js.map +1 -1
- package/dist/settings-effect.js +2 -0
- package/dist/settings-effect.js.map +1 -1
- package/dist/spawn-gate.js +5 -1
- package/dist/spawn-gate.js.map +1 -1
- package/dist/spawn-hold-reply.d.ts +12 -0
- package/dist/spawn-hold-reply.js +39 -0
- package/dist/spawn-hold-reply.js.map +1 -0
- package/dist/systemd-peer-bus.d.ts +95 -0
- package/dist/systemd-peer-bus.js +430 -0
- package/dist/systemd-peer-bus.js.map +1 -0
- package/dist/systemd-runtime.d.ts +27 -1
- package/dist/systemd-runtime.js +69 -7
- package/dist/systemd-runtime.js.map +1 -1
- package/dist/tips.js +1 -1
- package/dist/tips.js.map +1 -1
- package/dist/tool-permissions.js +3 -3
- package/dist/tool-permissions.js.map +1 -1
- package/dist/tool-progress.js +3 -2
- package/dist/tool-progress.js.map +1 -1
- package/dist/topic-commands.d.ts +71 -4
- package/dist/topic-commands.js +167 -34
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-delta-reader.d.ts +3 -3
- package/dist/transcript-delta-reader.js +8 -8
- package/dist/transcript-delta-reader.js.map +1 -1
- package/dist/transcript-jsonl.d.ts +85 -3
- package/dist/transcript-jsonl.js +156 -13
- package/dist/transcript-jsonl.js.map +1 -1
- package/dist/transcript-monitor.d.ts +11 -0
- package/dist/transcript-monitor.js +61 -13
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/transcript-sources.d.ts +24 -0
- package/dist/transcript-sources.js +211 -56
- package/dist/transcript-sources.js.map +1 -1
- package/dist/tunnel/cloudflared.d.ts +7 -15
- package/dist/tunnel/cloudflared.js +36 -1
- package/dist/tunnel/cloudflared.js.map +1 -1
- package/dist/tunnel/purpose-lane.d.ts +5 -1
- package/dist/tunnel/purpose-lane.js +14 -7
- package/dist/tunnel/purpose-lane.js.map +1 -1
- package/dist/tunnel/types.d.ts +5 -1
- package/dist/tunnel/types.js.map +1 -1
- package/dist/turn-resume.d.ts +2 -0
- package/dist/turn-resume.js +1 -1
- package/dist/turn-resume.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/ui/chat-commands.js +1 -0
- package/dist/ui/chat-mentions.js +63 -0
- package/dist/ui/chat-render.js +80 -10
- package/dist/ui/chat-store.js +70 -6
- package/dist/ui/chat-strings.js +62 -32
- package/dist/ui/chat-thread.js +199 -24
- package/dist/ui/chat-time.js +80 -0
- package/dist/ui/chat-tour.js +17 -14
- package/dist/ui/panel-chat.js +45 -21
- package/dist/ui/panel-details.js +2 -0
- package/dist/ui/panel-fleet.js +213 -58
- package/dist/ui/panel-log.js +428 -0
- package/dist/ui/panel-needs.js +14 -10
- package/dist/ui/panel-settings.js +82 -17
- package/dist/ui/preview-panel.js +55 -15
- package/dist/ui/preview-status.js +28 -0
- package/dist/ui/preview.js +44 -3
- package/dist/ui/settings-dialogs.js +11 -6
- package/dist/ui/settings-model.js +3 -1
- package/dist/ui/settings-strings.js +32 -12
- package/dist/ui/settings-token.js +8 -1
- package/dist/ui/settings-wizard.js +5 -3
- package/dist/ui/shared/app-i18n.js +41 -15
- package/dist/ui/shared/app-prefs.js +250 -0
- package/dist/ui/shared/app-route.js +6 -1
- package/dist/ui/shared/app-shell.js +165 -8
- package/dist/ui/shared/app-store.js +5 -1
- package/dist/ui/shared/app-stream.js +26 -5
- package/dist/ui/shared/app.css +170 -30
- package/dist/ui/shared/app.js +11 -1
- package/dist/ui/shared/fonts/README.md +1 -1
- package/dist/ui/shared/header-tools.js +83 -13
- package/dist/ui/shared/instance-nav.js +178 -51
- package/dist/ui/shared/instance-switch.js +8 -5
- package/dist/ui/shared/panel-view.js +21 -4
- package/dist/ui/shared/signin.js +15 -9
- package/dist/ui/shared/theme.js +39 -7
- package/dist/ui/shared/tokens.css +1 -1
- package/dist/ui/shared/ui-icons.js +2 -0
- package/dist/ui/shared/usage-dialog.js +23 -5
- package/dist/ui/shared/view-strings.js +40 -4
- package/dist/ui/signin.html +8 -3
- package/dist/unrecognised-prompt.d.ts +23 -0
- package/dist/unrecognised-prompt.js +74 -0
- package/dist/unrecognised-prompt.js.map +1 -0
- package/dist/update-check.d.ts +31 -0
- package/dist/update-check.js +47 -0
- package/dist/update-check.js.map +1 -1
- package/dist/update-install.d.ts +13 -1
- package/dist/update-install.js +16 -4
- package/dist/update-install.js.map +1 -1
- package/dist/update-launch.d.ts +48 -1
- package/dist/update-launch.js +159 -5
- package/dist/update-launch.js.map +1 -1
- package/dist/update-marker.d.ts +51 -0
- package/dist/update-marker.js +61 -0
- package/dist/update-marker.js.map +1 -1
- package/dist/usage/i18n-keys.d.ts +1 -1
- package/dist/usage/i18n-keys.js +1 -1
- package/dist/usage/i18n-keys.js.map +1 -1
- package/dist/usage/providers.d.ts +62 -13
- package/dist/usage/providers.js +256 -68
- package/dist/usage/providers.js.map +1 -1
- package/dist/usage/statusline-usage.d.ts +6 -2
- package/dist/usage/statusline-usage.js +10 -4
- package/dist/usage/statusline-usage.js.map +1 -1
- package/dist/view-api.js +31 -9
- package/dist/view-api.js.map +1 -1
- package/dist/web-api.d.ts +82 -4
- package/dist/web-api.js +632 -88
- package/dist/web-api.js.map +1 -1
- package/dist/web-auth.js +5 -2
- package/dist/web-auth.js.map +1 -1
- package/dist/web-chat-history.d.ts +26 -1
- package/dist/web-chat-history.js +47 -8
- package/dist/web-chat-history.js.map +1 -1
- package/dist/web-commands.d.ts +41 -5
- package/dist/web-commands.js +25 -7
- package/dist/web-commands.js.map +1 -1
- package/dist/web-login.d.ts +14 -0
- package/dist/web-login.js +4 -2
- package/dist/web-login.js.map +1 -1
- package/dist/web-mentions.d.ts +44 -0
- package/dist/web-mentions.js +75 -0
- package/dist/web-mentions.js.map +1 -0
- package/dist/web-prefs.d.ts +81 -0
- package/dist/web-prefs.js +297 -0
- package/dist/web-prefs.js.map +1 -0
- package/dist/web-preview.d.ts +14 -1
- package/dist/web-preview.js +35 -13
- package/dist/web-preview.js.map +1 -1
- package/dist/web-profile.d.ts +32 -0
- package/dist/web-profile.js +132 -0
- package/dist/web-profile.js.map +1 -0
- package/dist/web-reply-files.d.ts +45 -0
- package/dist/web-reply-files.js +223 -0
- package/dist/web-reply-files.js.map +1 -0
- package/dist/web-schedules.d.ts +12 -0
- package/dist/web-schedules.js +34 -0
- package/dist/web-schedules.js.map +1 -0
- package/dist/web-server-drain.d.ts +10 -0
- package/dist/web-server-drain.js +50 -0
- package/dist/web-server-drain.js.map +1 -0
- package/dist/web-session.d.ts +14 -0
- package/dist/web-session.js +11 -1
- package/dist/web-session.js.map +1 -1
- package/dist/web-settings-patch.d.ts +3 -1
- package/dist/web-settings-patch.js +4 -1
- package/dist/web-settings-patch.js.map +1 -1
- package/dist/web-shell-routes.d.ts +4 -0
- package/dist/web-shell-routes.js +9 -0
- package/dist/web-shell-routes.js.map +1 -1
- package/dist/web-upload.d.ts +135 -7
- package/dist/web-upload.js +315 -51
- package/dist/web-upload.js.map +1 -1
- package/launcher/install-admission.cjs +61 -6
- package/package.json +3 -3
- package/templates/launchd.plist.ejs +3 -1
- package/templates/systemd.service.ejs +2 -1
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #1811: a configured `effort`, as a launch flag. Before this only kiro-cli and muse launched with it; codex,
|
|
3
|
+
* claude-code, grok and antigravity saved it and launched without (codex's `/effort` restarted into nothing).
|
|
4
|
+
*
|
|
5
|
+
* A stored effort must never break a launch. The flag is passed only when
|
|
6
|
+
* - this binary advertises it: its own `--help` lists the flag (an older CLI without it would refuse the unknown
|
|
7
|
+
* option and not start — verified: grok 1.0.46 and agy 1.3.4 exit on an unknown flag, claude 2.1.299 too), and
|
|
8
|
+
* - the level is one it takes: the values its help lists (claude, agy), grok's known three (its help lists none,
|
|
9
|
+
* and it takes any string at parse time — verified with 1.0.46), or for codex the levels the model's own catalog
|
|
10
|
+
* entry lists (codex 0.162.1 launches with any `model_reasoning_effort`, "bogus" included, and the API would
|
|
11
|
+
* refuse it at the first turn).
|
|
12
|
+
* Anything else launches without the flag and says why in a quiet note (daemon.log and the Log tab), never a channel
|
|
13
|
+
* notice. A resumed session gets the flag too (verified: claude `--continue`/`--resume` with `--effort`, codex
|
|
14
|
+
* `resume <id>` with `-c`). The runtime `/effort` paste is unchanged.
|
|
15
|
+
*/
|
|
16
|
+
import { spawnSync } from "node:child_process";
|
|
17
|
+
import { statSync } from "node:fs";
|
|
18
|
+
import { measureSyncWork } from "../sync-work-attribution.js";
|
|
19
|
+
import { EFFORT_CAPABILITIES, CANONICAL_EFFORT, agyModelFamily } from "./effort-metadata.js";
|
|
20
|
+
import { t } from "../locale.js";
|
|
21
|
+
import { shellQuote } from "./types.js";
|
|
22
|
+
/**
|
|
23
|
+
* A CLI's help text: its stdout, or its stderr when stdout is empty — agy (a Go CLI) prints its usage to stderr
|
|
24
|
+
* (#1825: 1.3.4 and 1.3.5 write nothing to stdout, so reading stdout alone saw no `--effort` at all). Throws when the
|
|
25
|
+
* CLI cannot run or exits non-zero.
|
|
26
|
+
*/
|
|
27
|
+
export function readHelpText(binary, args = ["--help"]) {
|
|
28
|
+
const run = spawnSync(binary, args, { encoding: "utf-8", timeout: 5000, stdio: ["ignore", "pipe", "pipe"] });
|
|
29
|
+
if (run.error)
|
|
30
|
+
throw run.error;
|
|
31
|
+
if (run.status !== 0)
|
|
32
|
+
throw new Error(`${binary} ${args.join(" ")} exited ${run.status ?? run.signal}`);
|
|
33
|
+
return run.stdout || run.stderr;
|
|
34
|
+
}
|
|
35
|
+
const defaultRun = (binary, args) => readHelpText(binary, args);
|
|
36
|
+
/** `--help` per binary FILE: the path and what is there (size, mtime) — an update gives a new answer. */
|
|
37
|
+
const helpCache = new Map();
|
|
38
|
+
/** The binary's `--help`, read once per binary file; null when it cannot be read (then no flag is passed). */
|
|
39
|
+
export function cliHelp(binaryPath, run = defaultRun) {
|
|
40
|
+
let key;
|
|
41
|
+
try {
|
|
42
|
+
const st = statSync(binaryPath);
|
|
43
|
+
key = `${binaryPath}\u0000${st.size}\u0000${st.mtimeMs}`;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return null;
|
|
47
|
+
} // not a file we can identify: never guess
|
|
48
|
+
if (helpCache.has(key))
|
|
49
|
+
return helpCache.get(key);
|
|
50
|
+
let help = null;
|
|
51
|
+
try {
|
|
52
|
+
help = measureSyncWork("backend.effortHelp", () => run(binaryPath, ["--help"]));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
help = null;
|
|
56
|
+
}
|
|
57
|
+
helpCache.set(key, help);
|
|
58
|
+
return help;
|
|
59
|
+
}
|
|
60
|
+
/** For tests: forget what was read. */
|
|
61
|
+
export function resetCliHelpCache() { helpCache.clear(); }
|
|
62
|
+
/**
|
|
63
|
+
* Whether the help lists `flag` as an option, and the values it gives for it: the first `(a, b, c)` or `(a|b|c)`
|
|
64
|
+
* list in the option's own entry (its row and the description lines under it), in canonical order. `levels: null`
|
|
65
|
+
* when the entry names none.
|
|
66
|
+
*/
|
|
67
|
+
export function helpOption(help, flag) {
|
|
68
|
+
const lines = help.split("\n");
|
|
69
|
+
const at = lines.findIndex(line => new RegExp(`^\\s*(?:-\\w,\\s*)?${flag.replace(/[-]/g, "\\-")}(?=[\\s,=<]|$)`).test(line));
|
|
70
|
+
if (at < 0)
|
|
71
|
+
return { listed: false, levels: null };
|
|
72
|
+
const entry = [lines[at]];
|
|
73
|
+
for (let i = at + 1; i < lines.length; i++) {
|
|
74
|
+
const line = lines[i];
|
|
75
|
+
if (/^\s*-{1,2}\w/.test(line))
|
|
76
|
+
break; // the next option
|
|
77
|
+
entry.push(line);
|
|
78
|
+
}
|
|
79
|
+
const list = /\(([a-z]+(?:\s*[,|]\s*[a-z]+)+)\)/.exec(entry.join(" "));
|
|
80
|
+
if (!list)
|
|
81
|
+
return { listed: true, levels: null };
|
|
82
|
+
const offered = new Set(list[1].split(/\s*[,|]\s*/));
|
|
83
|
+
return { listed: true, levels: CANONICAL_EFFORT.filter(level => offered.has(level)) };
|
|
84
|
+
}
|
|
85
|
+
/** The effort, if it is one of AgEnD's levels at all (normalized), else null. */
|
|
86
|
+
function canonical(effort) {
|
|
87
|
+
const level = effort.trim().toLowerCase();
|
|
88
|
+
return CANONICAL_EFFORT.includes(level) ? level : null;
|
|
89
|
+
}
|
|
90
|
+
const skip = (backend, effort, why) => ({ arg: null, note: t("effort.launch_skipped", effort, backend, why) });
|
|
91
|
+
/**
|
|
92
|
+
* claude-code (`--effort`), grok (`--reasoning-effort`) and antigravity (`--effort`): the flag when this binary's help
|
|
93
|
+
* lists it and the level is one it takes.
|
|
94
|
+
*/
|
|
95
|
+
export function flagEffort(backend, effort, binaryPath, run) {
|
|
96
|
+
if (!effort)
|
|
97
|
+
return { arg: null, note: null };
|
|
98
|
+
const level = canonical(effort);
|
|
99
|
+
if (!level)
|
|
100
|
+
return skip(backend, effort, t("effort.launch_not_a_level", CANONICAL_EFFORT.join(", ")));
|
|
101
|
+
const flag = backend === "grok" ? "--reasoning-effort" : "--effort";
|
|
102
|
+
const help = cliHelp(binaryPath, run);
|
|
103
|
+
if (help === null)
|
|
104
|
+
return skip(backend, level, t("effort.launch_no_help"));
|
|
105
|
+
const option = helpOption(help, flag);
|
|
106
|
+
if (!option.listed)
|
|
107
|
+
return skip(backend, level, t("effort.launch_no_flag", flag));
|
|
108
|
+
// grok's help lists no values (and it takes any string): only the levels AgEnD knows it has.
|
|
109
|
+
const levels = option.levels ?? (backend === "grok" ? [...EFFORT_CAPABILITIES.grok.levels] : null);
|
|
110
|
+
if (!levels)
|
|
111
|
+
return skip(backend, level, t("effort.launch_no_levels", flag));
|
|
112
|
+
if (!levels.includes(level))
|
|
113
|
+
return skip(backend, level, t("effort.launch_level_not_offered", levels.join(", ")));
|
|
114
|
+
return { arg: ` ${flag} ${level}`, note: null, level };
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* #1825: agy's catalog has one model per effort level (`gemini-3.8-flash-medium`, `…-high`, …), and agy 1.3.4/1.3.5
|
|
118
|
+
* resolve `--model` and `--effort` together: a variant with another level ("conflicts with --effort=high"), a label
|
|
119
|
+
* with any `--effort`, a level the model does not have, or a model it does not list each make agy run ANOTHER model,
|
|
120
|
+
* with only a warning row in the pane (verified offline against the real binaries). So the effort picks the exact
|
|
121
|
+
* variant — `gemini-3.8-flash-medium` + high launches `--model gemini-3.8-flash-high`, no `--effort` — and anything
|
|
122
|
+
* else launches the configured model without `--effort`. `--model` alone (a variant's slug or its label) and a bare
|
|
123
|
+
* `--effort` on agy's own model are what agy resolves exactly. fleet.yaml is never rewritten; the note says what ran.
|
|
124
|
+
*
|
|
125
|
+
* `catalog`/`current`: the CLI env probe's cached `agy models` and settings model (null: none cached).
|
|
126
|
+
*/
|
|
127
|
+
export function resolveAgyLaunch(model, level, catalog, current = null) {
|
|
128
|
+
if (!level)
|
|
129
|
+
return { model, effort: null, note: null };
|
|
130
|
+
const skipped = (why) => ({ model, effort: null, note: t("effort.launch_skipped", level, "antigravity", why) });
|
|
131
|
+
const listed = (name) => !!catalog?.some(m => m.id === name || m.label === name);
|
|
132
|
+
if (!model) {
|
|
133
|
+
// A bare --effort applies to agy's own model; one it knows to lack the level would make agy run another.
|
|
134
|
+
const family = current && catalog ? agyModelFamily(current, catalog) : null;
|
|
135
|
+
if (family && !family.variants.has(level)) {
|
|
136
|
+
return skipped(t("effort.launch_level_not_offered", [...family.variants.keys()].join(", ")));
|
|
137
|
+
}
|
|
138
|
+
if (!family && current && listed(current))
|
|
139
|
+
return skipped(t("effort.launch_agy_model_no_levels", current));
|
|
140
|
+
return { model, effort: level, note: null };
|
|
141
|
+
}
|
|
142
|
+
if (!catalog?.length)
|
|
143
|
+
return skipped(t("effort.launch_agy_no_catalog", model));
|
|
144
|
+
const family = agyModelFamily(model, catalog);
|
|
145
|
+
if (!family)
|
|
146
|
+
return skipped(t(listed(model) ? "effort.launch_agy_model_no_levels" : "effort.launch_agy_model_not_listed", model));
|
|
147
|
+
const variant = family.variants.get(level);
|
|
148
|
+
if (!variant)
|
|
149
|
+
return skipped(t("effort.launch_level_not_offered", [...family.variants.keys()].join(", ")));
|
|
150
|
+
return { model: variant, effort: null, note: variant === model ? null : t("effort.launch_agy_variant", level, variant, model) };
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* codex: `-c model_reasoning_effort="<level>"` when the model's own catalog entry lists the level. `-c` is in every
|
|
154
|
+
* codex AgEnD runs; what it does not check is the value, so the catalog is the gate.
|
|
155
|
+
*/
|
|
156
|
+
export function codexEffort(effort, catalog) {
|
|
157
|
+
if (!effort)
|
|
158
|
+
return { arg: null, note: null };
|
|
159
|
+
const level = canonical(effort);
|
|
160
|
+
if (!level)
|
|
161
|
+
return skip("codex", effort, t("effort.launch_not_a_level", CANONICAL_EFFORT.join(", ")));
|
|
162
|
+
if (catalog.unproven)
|
|
163
|
+
return skip("codex", level, t("effort.launch_codex_model_unproven"));
|
|
164
|
+
if (!catalog.levels)
|
|
165
|
+
return skip("codex", level, t("effort.launch_codex_unknown_model", catalog.model ?? "—"));
|
|
166
|
+
if (!catalog.levels.includes(level))
|
|
167
|
+
return skip("codex", level, t("effort.launch_level_not_offered", catalog.levels.join(", ")));
|
|
168
|
+
return { arg: ` -c ${shellQuote(`model_reasoning_effort="${level}"`)}`, note: null };
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=launch-effort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-effort.js","sourceRoot":"","sources":["../../src/backend/launch-effort.ts"],"names":[],"mappings":"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"}
|
package/dist/backend/muse.d.ts
CHANGED
|
@@ -15,6 +15,15 @@ export declare function museSessionCwd(head: string): string | null;
|
|
|
15
15
|
* readers — never on the fleet event loop.
|
|
16
16
|
*/
|
|
17
17
|
export declare function readFileHeadSync(filePath: string, maxChars: number): string | null;
|
|
18
|
+
/**
|
|
19
|
+
* #1717: true when the pane shows muse's terminals panel with at least one
|
|
20
|
+
* running task — the "local work still active" state. Anchored to the last
|
|
21
|
+
* separator, where the live panel sits under the input box: a transcript
|
|
22
|
+
* quoting an old panel above a separator never counts. The idle proof checks
|
|
23
|
+
* the same shape positionally via museStatusFooter; this boolean feeds the
|
|
24
|
+
* pause gate below.
|
|
25
|
+
*/
|
|
26
|
+
export declare function museBackgroundWorkActive(pane: string): boolean;
|
|
18
27
|
/**
|
|
19
28
|
* The rows of muse's live input box, or null when the bottom of the pane is not
|
|
20
29
|
* muse's layout (#829). The box is the LAST thing above the status bar:
|
|
@@ -50,6 +59,72 @@ export declare function museDraftShows(rows: readonly string[], width: number, t
|
|
|
50
59
|
* glyph allowed in front of a choice.
|
|
51
60
|
*/
|
|
52
61
|
export declare function museLoginScreenActive(pane: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* #1716: `/quit` while a background task runs is answered with a confirmation
|
|
64
|
+
* instead of an exit (live 1.4.6,
|
|
65
|
+
* tests/fixtures/muse-1.4.6/prod-quit-with-local-work.pane.txt):
|
|
66
|
+
* ❯
|
|
67
|
+
* Local work is still active
|
|
68
|
+
* The following will stop when you exit:
|
|
69
|
+
* background task · tool.bash
|
|
70
|
+
* ❯ 1. Exit anyway
|
|
71
|
+
* 2. Stay
|
|
72
|
+
* Enter to confirm · Esc to cancel
|
|
73
|
+
* ──────────
|
|
74
|
+
* main · ↓ to select
|
|
75
|
+
* └ ◇ Wait in the background running 15s
|
|
76
|
+
* mock-model · high · ~/work · Launch overrides
|
|
77
|
+
* Unlike Claude's prompt this menu is NOT bottom-anchored — the terminals
|
|
78
|
+
* panel sits under it — so the match is anchored to the hint row instead:
|
|
79
|
+
* the header must be within 12 rows above it with both options in between.
|
|
80
|
+
* Enter would take the selected option ("Exit anyway"), so like #1217 this is
|
|
81
|
+
* recognised whole and never answered here: the stop flow cancels it.
|
|
82
|
+
*/
|
|
83
|
+
/**
|
|
84
|
+
* #1715: with `skip_permissions: false` muse asks before running a command
|
|
85
|
+
* needing approval (live 1.4.6,
|
|
86
|
+
* tests/fixtures/muse-1.4.6/approval-escalated.pane.txt and
|
|
87
|
+
* approval-untrusted-staged.pane.txt):
|
|
88
|
+
* Would you like to run the following command?
|
|
89
|
+
* $ echo perm-check
|
|
90
|
+
* › 1. Yes, proceed (y)
|
|
91
|
+
* 2. No, and tell Muse Code what to do differently (esc)
|
|
92
|
+
* Change approval defaults in /permissions
|
|
93
|
+
* `--approval-mode untrusted` (new in 1.4.6) stages the command first
|
|
94
|
+
* (`Stage 1/1`, `Current argv: [...]`) and offers three options (allow once /
|
|
95
|
+
* always allow in this workspace / abort). 1.4.4 shows the same prompt with a
|
|
96
|
+
* `›` marker and no footer line. Enter would take the preselected allow
|
|
97
|
+
* option, so like #1716 this is recognised whole and never answered here.
|
|
98
|
+
* 1.4.7 draws the selection cursor as `⟩` on this prompt and on the #1716
|
|
99
|
+
* quit menu (tests/fixtures/muse-1.4.7); the other rows of those blocks are
|
|
100
|
+
* unchanged.
|
|
101
|
+
*/
|
|
102
|
+
export declare const MUSE_APPROVAL_PROMPT: RegExp;
|
|
103
|
+
/**
|
|
104
|
+
* #1715: which request the approval prompt is showing — its `$ command` row.
|
|
105
|
+
* Stable across the `Calling tools (Ns)` timer redraws, so the episode can
|
|
106
|
+
* confirm; a whole-pane hash never would. Derived from the SAME selected
|
|
107
|
+
* block as the predicate (#1715 r2): a scrollback quote's command must never
|
|
108
|
+
* become the current request's identity.
|
|
109
|
+
*/
|
|
110
|
+
export declare function museApprovalRequestIdentity(pane: string): string | null;
|
|
111
|
+
export declare function museApprovalPromptActive(pane: string): boolean;
|
|
112
|
+
export declare const MUSE_LOCAL_WORK_QUIT: RegExp;
|
|
113
|
+
export declare function museLocalWorkQuitActive(pane: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* #1796: read the provider catalog muse caches on disk
|
|
116
|
+
* (`<state>/model-catalog/<provider>__<profile>.json`). Bounded (at most 16
|
|
117
|
+
* files, 256 KiB each) and best-effort — anything unexpected yields the
|
|
118
|
+
* fallback. Listed rows only: `visibility: "visible"` is what the 1.4.7
|
|
119
|
+
* picker shows (the `-contributor` siblings and the image model are hidden),
|
|
120
|
+
* and a null `context_limit` additionally marks a non-chat model. File order
|
|
121
|
+
* is kept and ids deduped.
|
|
122
|
+
*
|
|
123
|
+
* `stateDir` is injectable for tests; production passes nothing and reads the
|
|
124
|
+
* host state dir (the fleet never isolates XDG_DATA_HOME, mirroring the
|
|
125
|
+
* session lookup).
|
|
126
|
+
*/
|
|
127
|
+
export declare function readMuseModelCatalog(stateDir?: string): ModelOption[];
|
|
53
128
|
/**
|
|
54
129
|
* Meta Muse Code — the `muse` CLI (v1.3.0 verified).
|
|
55
130
|
*
|
|
@@ -169,6 +244,15 @@ export declare class MuseBackend implements CliBackend {
|
|
|
169
244
|
getQuitCommand(): string | null;
|
|
170
245
|
getQuitKey(): string;
|
|
171
246
|
getQuitKeyPresses(): number;
|
|
247
|
+
/** #1716: `/quit` with a background task running stops at the "Local work is still active" menu. */
|
|
248
|
+
quitBlockedByDialog(pane: string): boolean;
|
|
249
|
+
/**
|
|
250
|
+
* #1717: the terminals panel with a `running` task — the pause flow defers
|
|
251
|
+
* an idle pause while this holds, so an AgEnD-initiated silent pause never
|
|
252
|
+
* kills the user's running background work. Explicit stop/restart still
|
|
253
|
+
* proceed via quitBlockedByDialog above.
|
|
254
|
+
*/
|
|
255
|
+
backgroundWorkRunning(pane: string): boolean;
|
|
172
256
|
getCompactCommand(): string;
|
|
173
257
|
getClearCommand(): string | null;
|
|
174
258
|
/**
|