@songsid/agend 2.1.6-beta.1 → 2.1.6-beta.11
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/dist/agent-endpoint.d.ts +18 -0
- package/dist/agent-endpoint.js +53 -2
- package/dist/agent-endpoint.js.map +1 -1
- package/dist/apply-job.d.ts +114 -0
- package/dist/apply-job.js +214 -0
- package/dist/apply-job.js.map +1 -0
- package/dist/backend/claude-code.d.ts +25 -0
- package/dist/backend/claude-code.js +127 -0
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/codex.d.ts +41 -0
- package/dist/backend/codex.js +133 -0
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/credential-profile.d.ts +159 -0
- package/dist/backend/credential-profile.js +340 -0
- package/dist/backend/credential-profile.js.map +1 -0
- package/dist/backend/factory.js +4 -1
- package/dist/backend/factory.js.map +1 -1
- package/dist/backend/kiro-auth-store.d.ts +25 -0
- package/dist/backend/kiro-auth-store.js +61 -0
- package/dist/backend/kiro-auth-store.js.map +1 -0
- package/dist/backend/kiro.d.ts +8 -0
- package/dist/backend/kiro.js +31 -2
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/muse.d.ts +90 -0
- package/dist/backend/muse.js +437 -0
- package/dist/backend/muse.js.map +1 -0
- package/dist/backend/types.d.ts +41 -0
- package/dist/backend/types.js.map +1 -1
- package/dist/channel/access-manager.d.ts +20 -0
- package/dist/channel/access-manager.js +25 -0
- package/dist/channel/access-manager.js.map +1 -1
- package/dist/channel/adapters/discord.d.ts +17 -0
- package/dist/channel/adapters/discord.js +72 -11
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/adapters/telegram.d.ts +6 -0
- package/dist/channel/adapters/telegram.js +36 -0
- package/dist/channel/adapters/telegram.js.map +1 -1
- package/dist/channel/markdown-chunk.d.ts +8 -3
- package/dist/channel/markdown-chunk.js +12 -3
- package/dist/channel/markdown-chunk.js.map +1 -1
- package/dist/channel/mcp-server.js +9 -12
- package/dist/channel/mcp-server.js.map +1 -1
- package/dist/channel/mcp-tools.d.ts +6 -2
- package/dist/channel/mcp-tools.js +6 -36
- package/dist/channel/mcp-tools.js.map +1 -1
- package/dist/channel/tool-router.js +32 -3
- package/dist/channel/tool-router.js.map +1 -1
- package/dist/channel/types.d.ts +18 -0
- package/dist/cli.js +113 -0
- package/dist/cli.js.map +1 -1
- package/dist/config-validator.js +45 -5
- package/dist/config-validator.js.map +1 -1
- package/dist/connection-secrets.d.ts +96 -0
- package/dist/connection-secrets.js +25 -0
- package/dist/connection-secrets.js.map +1 -0
- package/dist/daemon.d.ts +61 -0
- package/dist/daemon.js +359 -88
- package/dist/daemon.js.map +1 -1
- package/dist/event-log.d.ts +9 -0
- package/dist/event-log.js +21 -0
- package/dist/event-log.js.map +1 -1
- package/dist/fleet-level-config.d.ts +42 -0
- package/dist/fleet-level-config.js +78 -0
- package/dist/fleet-level-config.js.map +1 -0
- package/dist/fleet-lock.d.ts +21 -0
- package/dist/fleet-lock.js +42 -8
- package/dist/fleet-lock.js.map +1 -1
- package/dist/fleet-manager.d.ts +425 -2
- package/dist/fleet-manager.js +2014 -182
- package/dist/fleet-manager.js.map +1 -1
- package/dist/general-knowledge/skills/credential-profiles/SKILL.md +145 -0
- package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +11 -1
- package/dist/instance-config-impact.d.ts +55 -0
- package/dist/instance-config-impact.js +152 -0
- package/dist/instance-config-impact.js.map +1 -0
- package/dist/instance-lifecycle.js +8 -4
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/locale.js +24 -0
- package/dist/locale.js.map +1 -1
- package/dist/logger.js +42 -25
- package/dist/logger.js.map +1 -1
- package/dist/muse-usage-relay.d.ts +72 -0
- package/dist/muse-usage-relay.js +419 -0
- package/dist/muse-usage-relay.js.map +1 -0
- package/dist/outbound-handlers.d.ts +5 -1
- package/dist/outbound-handlers.js +199 -1
- package/dist/outbound-handlers.js.map +1 -1
- package/dist/outbound-schemas.d.ts +7 -5
- package/dist/outbound-schemas.js +3 -2
- package/dist/outbound-schemas.js.map +1 -1
- package/dist/provider-probe.d.ts +48 -0
- package/dist/provider-probe.js +121 -0
- package/dist/provider-probe.js.map +1 -0
- package/dist/provider-secret-registry.d.ts +98 -0
- package/dist/provider-secret-registry.js +334 -0
- package/dist/provider-secret-registry.js.map +1 -0
- package/dist/quickstart-api.d.ts +164 -0
- package/dist/quickstart-api.js +351 -0
- package/dist/quickstart-api.js.map +1 -0
- package/dist/quickstart.js +23 -50
- package/dist/quickstart.js.map +1 -1
- package/dist/scheduler/db.js +17 -5
- package/dist/scheduler/db.js.map +1 -1
- package/dist/scheduler/db.test.js +34 -1
- package/dist/scheduler/db.test.js.map +1 -1
- package/dist/scheduler/types.d.ts +4 -0
- package/dist/scheduler/types.js.map +1 -1
- package/dist/secret-store.d.ts +25 -0
- package/dist/secret-store.js +165 -0
- package/dist/secret-store.js.map +1 -0
- package/dist/self-restart-limit.d.ts +21 -0
- package/dist/self-restart-limit.js +129 -0
- package/dist/self-restart-limit.js.map +1 -0
- package/dist/settings-api.d.ts +116 -0
- package/dist/settings-api.js +530 -5
- package/dist/settings-api.js.map +1 -1
- package/dist/setup-auth.d.ts +113 -0
- package/dist/setup-auth.js +181 -0
- package/dist/setup-auth.js.map +1 -0
- package/dist/setup-form.d.ts +18 -0
- package/dist/setup-form.js +315 -0
- package/dist/setup-form.js.map +1 -0
- package/dist/setup-host.d.ts +162 -0
- package/dist/setup-host.js +496 -0
- package/dist/setup-host.js.map +1 -0
- package/dist/setup-marker.d.ts +8 -0
- package/dist/setup-marker.js +39 -0
- package/dist/setup-marker.js.map +1 -0
- package/dist/setup-tunnel-consent.d.ts +53 -0
- package/dist/setup-tunnel-consent.js +82 -0
- package/dist/setup-tunnel-consent.js.map +1 -0
- package/dist/setup-wizard.js +4 -0
- package/dist/setup-wizard.js.map +1 -1
- package/dist/steer-capability.js +4 -1
- package/dist/steer-capability.js.map +1 -1
- package/dist/tips.js +1 -1
- package/dist/tips.js.map +1 -1
- package/dist/tmux-manager.js +29 -4
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tool-permissions-notice.d.ts +38 -0
- package/dist/tool-permissions-notice.js +92 -0
- package/dist/tool-permissions-notice.js.map +1 -0
- package/dist/tool-permissions.d.ts +120 -0
- package/dist/tool-permissions.js +277 -0
- package/dist/tool-permissions.js.map +1 -0
- package/dist/topic-commands.js +1 -0
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-sources.d.ts +12 -1
- package/dist/transcript-sources.js +19 -3
- package/dist/transcript-sources.js.map +1 -1
- package/dist/tunnel/cloudflared.d.ts +71 -0
- package/dist/tunnel/cloudflared.js +447 -0
- package/dist/tunnel/cloudflared.js.map +1 -0
- package/dist/tunnel/lease.d.ts +75 -0
- package/dist/tunnel/lease.js +209 -0
- package/dist/tunnel/lease.js.map +1 -0
- package/dist/tunnel/manager.d.ts +56 -0
- package/dist/tunnel/manager.js +167 -0
- package/dist/tunnel/manager.js.map +1 -0
- package/dist/tunnel/types.d.ts +119 -0
- package/dist/tunnel/types.js +33 -0
- package/dist/tunnel/types.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/ui/dashboard.html +4 -3
- package/dist/ui/settings.html +808 -156
- package/dist/ui/view.html +2 -2
- 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 +23 -14
- package/dist/usage/providers.js +220 -58
- package/dist/usage/providers.js.map +1 -1
- package/dist/usage/usage-api.d.ts +13 -0
- package/dist/usage/usage-api.js +77 -1
- package/dist/usage/usage-api.js.map +1 -1
- package/dist/web-api.js +8 -5
- package/dist/web-api.js.map +1 -1
- package/dist/web-auth.d.ts +75 -0
- package/dist/web-auth.js +208 -2
- package/dist/web-auth.js.map +1 -1
- package/dist/web-terminal.d.ts +30 -1
- package/dist/web-terminal.js +86 -3
- package/dist/web-terminal.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"muse.js","sourceRoot":"","sources":["../../src/backend/muse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAuH,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAChN,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,wFAAwF;AACxF,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;AACvF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,WAAW;IAOF;IANX,UAAU,GAAG,MAAM,CAAC;IACrB,UAAU,CAAS;IAC3B,yEAAyE;IACzE,8DAA8D;IACtD,gBAAgB,CAAU;IAElC,YAAoB,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;QACrC,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,YAAY,CAAC,MAAwB;QACnC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEhD,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,kEAAkE;QAClE,IAAI,GAAG,GAAG,yCAAyC,IAAI,CAAC,UAAU,EAAE,CAAC;QAErE,4EAA4E;QAC5E,4EAA4E;QAC5E,qEAAqE;QACrE,IAAI,MAAM,CAAC,WAAW;YAAE,GAAG,IAAI,eAAe,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAE/E,yEAAyE;QACzE,4EAA4E;QAC5E,mDAAmD;QACnD,EAAE;QACF,sEAAsE;QACtE,0EAA0E;QAC1E,4EAA4E;QAC5E,qEAAqE;QACrE,4DAA4D;QAC5D,IAAI,MAAM,CAAC,eAAe,KAAK,KAAK;YAAE,GAAG,IAAI,uCAAuC,CAAC;QAErF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,GAAG,IAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,CAAC;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,MAAM,CAAC,MAAM;YAAE,GAAG,IAAI,uBAAuB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAE7E,wEAAwE;QACxE,4EAA4E;QAC5E,qEAAqE;QACrE,6EAA6E;QAC7E,qEAAqE;QACrE,8BAA8B;QAC9B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,IAAI,GAAG;gBAAE,GAAG,IAAI,WAAW,GAAG,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,mFAAmF;IAC3E,eAAe;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/E,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,OAAe,EAAE,YAAoB;QAClD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,YAAY;YAAE,OAAO,SAAS,OAAO,IAAI,YAAY,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,OAAO,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,OAAO,IAAI,IAAI,EAAE,CAAC;IAChF,CAAC;IAED,kFAAkF;IAC1E,YAAY;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,MAAwB;QAClC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEhD,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,sEAAsE;QACtE,2EAA2E;QAC3E,uEAAuE;QACvE,EAAE;QACF,2EAA2E;QAC3E,4EAA4E;QAC5E,6DAA6D;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,CAAC;YAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QACxF,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ;YAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;QACnE,6EAA6E;QAC7E,6DAA6D;QAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACxC,MAAM,GAAG,GAAI,GAA+B,EAAE,OAAO,CAAC;YACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;YAE1E,wEAAwE;YACxE,yEAAyE;YACzE,qEAAqE;YACrE,0EAA0E;YAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,KAAK,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;iBACpE,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,mEAAmE;YACnE,aAAa,CACX,WAAW,EACX,gBAAgB,UAAU,yIAAyI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAClP,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;YACF,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAE9B,wEAAwE;YACxE,0EAA0E;YAC1E,kBAAkB;YAClB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG;gBAChD,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;QAE/D,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YACzG,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,0BAA0B;QACxB,4EAA4E;QAC5E,sEAAsE;QACtE,0EAA0E;QAC1E,kBAAkB;QAClB,EAAE;QACF,cAAc;QACd,cAAc;QACd,cAAc;QACd,EAAE;QACF,4EAA4E;QAC5E,4EAA4E;QAC5E,qEAAqE;QACrE,0EAA0E;QAC1E,2EAA2E;QAC3E,EAAE;QACF,4EAA4E;QAC5E,0EAA0E;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;QACb,yEAAyE;QACzE,4EAA4E;QAC5E,uEAAuE;QACvE,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc;QACZ,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IAED,gBAAgB;QACd,0EAA0E;QAC1E,4EAA4E;QAC5E,qDAAqD;QACrD,OAAO;YACL,EAAE,OAAO,EAAE,wCAAwC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,yBAAyB,EAAE;YACjI,EAAE,OAAO,EAAE,gEAAgE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE;YACxJ,EAAE,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE;SACnH,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO;YACL,wEAAwE;YACxE,qEAAqE;YACrE,qEAAqE;YACrE,uEAAuE;YACvE,oCAAoC;YACpC;gBACE,OAAO,EAAE,+BAA+B;gBACxC,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;gBACpB,WAAW,EAAE,oDAAoD;aAClE;YACD,mEAAmE;YACnE,kEAAkE;YAClE,sEAAsE;YACtE,uBAAuB;YACvB;gBACE,OAAO,EAAE,mDAAmD;gBAC5D,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,kEAAkE;aAChF;SACF,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO;YACL,yEAAyE;YACzE,yEAAyE;YACzE,gEAAgE;YAChE;gBACE,OAAO,EAAE,4EAA4E;gBACrF,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;gBACpB,WAAW,EAAE,4BAA4B;aAC1C;SACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,sBAAsB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iEAAiE;IACjE,6EAA6E;IAC7E,6EAA6E;IAC7E,4DAA4D;IAE5D,YAAY;QACV,0EAA0E;QAC1E,0EAA0E;QAC1E,4EAA4E;QAC5E,sEAAsE;QACtE,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACpE,IAAI,QAAQ,GAAkB,IAAI,CAAC;YACnC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;YACrB,KAAK,MAAM,UAAU,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACxC,IAAI,IAAY,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC7F,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACrB,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB;oBAAE,SAAS;gBAC7D,yEAAyE;gBACzE,wEAAwE;gBACxE,mEAAmE;gBACnE,gDAAgD;gBAChD,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC;oBACH,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;wBACxC,IAAI,CAAC;4BAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;4BAAC,IAAI,CAAC,GAAG,QAAQ;gCAAE,QAAQ,GAAG,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC/G,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAC5B,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;oBAAC,WAAW,GAAG,QAAQ,CAAC;oBAAC,QAAQ,GAAG,IAAI,CAAC;gBAAC,CAAC;YAC1E,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC1B,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,6BAA6B;IAC7B,cAAc,KAAoB,OAAO,OAAO,CAAC,CAAC,CAAC;IACnD,UAAU,KAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IACtC,iBAAiB,KAAa,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzC,iBAAiB,KAAa,OAAO,UAAU,CAAC,CAAC,CAAC;IAClD,eAAe,KAAoB,OAAO,QAAQ,CAAC,CAAC,CAAC;IAErD;;;;;;OAMG;IACH,YAAY,KAAa,OAAO,QAAQ,CAAC,CAAC,CAAC;IAE3C,4EAA4E;IAC5E,iBAAiB,KAA4C,OAAO,SAAS,CAAC,CAAC,CAAC;IAChF,0EAA0E;IAC1E,uCAAuC;IACvC,eAAe,KAAe,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjF,wEAAwE;IACxE,sBAAsB,KAA4B,OAAO,SAAS,CAAC,CAAC,CAAC;IAErE,KAAK,CAAC,UAAU;QACd,qEAAqE;QACrE,kEAAkE;QAClE,0EAA0E;QAC1E,4EAA4E;QAC5E,6DAA6D;QAC7D,OAAO;YACL,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACjD,EAAE,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE,6CAA6C,EAAE;YAC1F,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACjD,EAAE,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE,6CAA6C,EAAE;SAC3F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QACvD,0EAA0E;QAC1E,IAAI,YAAgC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YACxE,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;gBAAE,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7B,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC;IACtG,CAAC;IAED,OAAO,CAAC,MAAwB;QAC9B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjE,CAAC;gBACD,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAE7B,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAY,EAAE;QACzC,IAAI,CAAC;YAAC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACvD,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACpC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/C,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC7D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/backend/types.d.ts
CHANGED
|
@@ -36,6 +36,8 @@ export interface CliBackendConfig {
|
|
|
36
36
|
agentPort?: number;
|
|
37
37
|
/** Per-backend options merged from fleet defaults + instance config (e.g. { provider: "glm" }). */
|
|
38
38
|
backendOptions?: Record<string, unknown>;
|
|
39
|
+
/** Daemon-owned localhost Muse usage relay, prepared before spawn. */
|
|
40
|
+
museBaseUrl?: string;
|
|
39
41
|
}
|
|
40
42
|
/** Action to take when an error pattern is detected in PTY output. */
|
|
41
43
|
export type ErrorActionType = "notify" | "failover" | "restart" | "pause";
|
|
@@ -52,6 +54,8 @@ export interface ErrorPattern {
|
|
|
52
54
|
* when the match can't be re-derived. Receives the LAST match in the pane,
|
|
53
55
|
* i.e. the most recent occurrence. */
|
|
54
56
|
formatMessage?: (match: RegExpMatchArray) => string;
|
|
57
|
+
/** Run the backend's live quota check before surfacing a quota notice. */
|
|
58
|
+
verifyQuota?: boolean;
|
|
55
59
|
/** Skip the 5-min per-type notification cooldown so every occurrence notifies
|
|
56
60
|
* (e.g. Kiro "Response timed out" — each timeout should reach the user). */
|
|
57
61
|
skipCooldown?: boolean;
|
|
@@ -150,6 +154,33 @@ export interface RuntimeDialog {
|
|
|
150
154
|
* ignored.
|
|
151
155
|
*/
|
|
152
156
|
holdOnly?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* This dialog owns stdin while it is visible. Unlike a generic runtime
|
|
159
|
+
* dialog, the daemon exposes the state separately so the pane monitor can
|
|
160
|
+
* suppress false stuck/auto-pause decisions while a CLI is waiting for a
|
|
161
|
+
* human choice.
|
|
162
|
+
*/
|
|
163
|
+
inputBlocked?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* The daemon may re-read the pane under the write lock after sending these
|
|
166
|
+
* keys. This is intentionally opt-in: most dialogs are fire-and-forget,
|
|
167
|
+
* while safety-critical dialogs must prove that the prompt disappeared
|
|
168
|
+
* before any follow-up system message is submitted.
|
|
169
|
+
*/
|
|
170
|
+
verifyAfterKeys?: boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Send the notice only after {@link verifyAfterKeys} observes this dialog
|
|
173
|
+
* gone. The text is code-owned and must never include command arguments.
|
|
174
|
+
*/
|
|
175
|
+
postDismissNotice?: {
|
|
176
|
+
text: string;
|
|
177
|
+
label: string;
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* A key used only for the daemon's generation fence. Implementations must
|
|
181
|
+
* return a stable, non-secret value; never include pane contents or tokens.
|
|
182
|
+
*/
|
|
183
|
+
autoResolutionKey?: string;
|
|
153
184
|
}
|
|
154
185
|
/**
|
|
155
186
|
* A self-clearing TUI phase during which an input row may be visible but Enter
|
|
@@ -445,6 +476,16 @@ export interface CliBackend {
|
|
|
445
476
|
currentModel?: string;
|
|
446
477
|
models: ModelOption[];
|
|
447
478
|
}>;
|
|
479
|
+
/**
|
|
480
|
+
* Ask the CLI to refresh its OWN model catalog before the next probe reads it.
|
|
481
|
+
*
|
|
482
|
+
* For a backend whose probe only reads a file the CLI maintains (codex's
|
|
483
|
+
* models_cache.json), re-reading that file is not a refresh: the list is as
|
|
484
|
+
* old as the last time the CLI itself fetched it. This makes the CLI fetch.
|
|
485
|
+
* Called only by an explicit refresh — never by the startup or /model probe —
|
|
486
|
+
* and it may throw; the caller reports a failed refresh and keeps the old list.
|
|
487
|
+
*/
|
|
488
|
+
refreshModelCatalog?(): Promise<void>;
|
|
448
489
|
}
|
|
449
490
|
export declare function resolveBinary(name: string, fallbackDirs?: readonly string[]): string;
|
|
450
491
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backend/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backend/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,12 @@ export declare class AccessManager {
|
|
|
4
4
|
private statePath;
|
|
5
5
|
private state;
|
|
6
6
|
private failedAttempts;
|
|
7
|
+
/**
|
|
8
|
+
* The mode that came out of the state file, or undefined when the file had
|
|
9
|
+
* none. Kept separately because the constructor fills `state.mode` in from
|
|
10
|
+
* the config when the file is silent, after which the two are indistinguishable.
|
|
11
|
+
*/
|
|
12
|
+
private persistedMode?;
|
|
7
13
|
constructor(config: AccessConfig, statePath: string);
|
|
8
14
|
private persist;
|
|
9
15
|
private pruneExpired;
|
|
@@ -13,6 +19,20 @@ export declare class AccessManager {
|
|
|
13
19
|
confirmCode(code: string, callerUserId?: string): boolean;
|
|
14
20
|
setMode(mode: "pairing" | "locked" | "open"): void;
|
|
15
21
|
getMode(): "pairing" | "locked" | "open";
|
|
22
|
+
/**
|
|
23
|
+
* The configured mode that the state file is overriding, or null when they
|
|
24
|
+
* agree or nothing was persisted.
|
|
25
|
+
*
|
|
26
|
+
* State wins on purpose — a pairing that happened at runtime must survive a
|
|
27
|
+
* fleet restart — but the first `persist()` freezes whatever the mode was at
|
|
28
|
+
* the time, and from then on editing `access.mode` in fleet.yaml changes
|
|
29
|
+
* nothing. Without this, that reads as "my config edit did nothing" with no
|
|
30
|
+
* way to find out why.
|
|
31
|
+
*
|
|
32
|
+
* Reported rather than logged from here: the CLI also builds an AccessManager
|
|
33
|
+
* with a synthetic config, where a mismatch means nothing.
|
|
34
|
+
*/
|
|
35
|
+
overriddenConfigMode(): "pairing" | "locked" | "open" | null;
|
|
16
36
|
getAllowedUsers(): (number | string)[];
|
|
17
37
|
removeUser(userId: number | string): boolean;
|
|
18
38
|
}
|
|
@@ -5,6 +5,12 @@ export class AccessManager {
|
|
|
5
5
|
statePath;
|
|
6
6
|
state;
|
|
7
7
|
failedAttempts = new Map();
|
|
8
|
+
/**
|
|
9
|
+
* The mode that came out of the state file, or undefined when the file had
|
|
10
|
+
* none. Kept separately because the constructor fills `state.mode` in from
|
|
11
|
+
* the config when the file is silent, after which the two are indistinguishable.
|
|
12
|
+
*/
|
|
13
|
+
persistedMode;
|
|
8
14
|
constructor(config, statePath) {
|
|
9
15
|
this.config = config;
|
|
10
16
|
this.statePath = statePath;
|
|
@@ -13,6 +19,7 @@ export class AccessManager {
|
|
|
13
19
|
try {
|
|
14
20
|
const raw = readFileSync(statePath, "utf8");
|
|
15
21
|
const saved = JSON.parse(raw);
|
|
22
|
+
this.persistedMode = saved.mode;
|
|
16
23
|
this.state = {
|
|
17
24
|
mode: saved.mode,
|
|
18
25
|
allowed_users: saved.allowed_users ?? [],
|
|
@@ -138,6 +145,24 @@ export class AccessManager {
|
|
|
138
145
|
getMode() {
|
|
139
146
|
return this.state.mode ?? this.config.mode;
|
|
140
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* The configured mode that the state file is overriding, or null when they
|
|
150
|
+
* agree or nothing was persisted.
|
|
151
|
+
*
|
|
152
|
+
* State wins on purpose — a pairing that happened at runtime must survive a
|
|
153
|
+
* fleet restart — but the first `persist()` freezes whatever the mode was at
|
|
154
|
+
* the time, and from then on editing `access.mode` in fleet.yaml changes
|
|
155
|
+
* nothing. Without this, that reads as "my config edit did nothing" with no
|
|
156
|
+
* way to find out why.
|
|
157
|
+
*
|
|
158
|
+
* Reported rather than logged from here: the CLI also builds an AccessManager
|
|
159
|
+
* with a synthetic config, where a mismatch means nothing.
|
|
160
|
+
*/
|
|
161
|
+
overriddenConfigMode() {
|
|
162
|
+
if (this.persistedMode === undefined)
|
|
163
|
+
return null;
|
|
164
|
+
return this.persistedMode === this.config.mode ? null : this.config.mode;
|
|
165
|
+
}
|
|
141
166
|
getAllowedUsers() {
|
|
142
167
|
return [...this.state.allowed_users];
|
|
143
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-manager.js","sourceRoot":"","sources":["../../src/channel/access-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgB1C,MAAM,OAAO,aAAa;IAChB,MAAM,CAAe;IACrB,SAAS,CAAS;IAClB,KAAK,CAAc;IACnB,cAAc,GAAwD,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"access-manager.js","sourceRoot":"","sources":["../../src/channel/access-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,9 @@ export declare const DISCORD_START_BACKEND_CHOICES: readonly [{
|
|
|
21
21
|
}, {
|
|
22
22
|
readonly name: "Grok Build";
|
|
23
23
|
readonly value: "grok";
|
|
24
|
+
}, {
|
|
25
|
+
readonly name: "Meta Muse Code";
|
|
26
|
+
readonly value: "muse";
|
|
24
27
|
}];
|
|
25
28
|
export interface DiscordAdapterOptions {
|
|
26
29
|
id: string;
|
|
@@ -107,6 +110,13 @@ export declare class DiscordAdapter extends EventEmitter implements ChannelAdapt
|
|
|
107
110
|
private startGatewayWatchdog;
|
|
108
111
|
private checkGatewayLiveness;
|
|
109
112
|
getHealthSnapshot(): AdapterHealthSnapshot;
|
|
113
|
+
/**
|
|
114
|
+
* Update the bot's profile activity without touching any channel messages.
|
|
115
|
+
* Presence is deliberately best-effort: a reconnecting or not-yet-ready
|
|
116
|
+
* generation has no user object to update, and the next usage refresh will
|
|
117
|
+
* try again after it is ready.
|
|
118
|
+
*/
|
|
119
|
+
setActivity(text: string): boolean;
|
|
110
120
|
private handleClientReady;
|
|
111
121
|
start(): Promise<void>;
|
|
112
122
|
stop(): Promise<void>;
|
|
@@ -134,6 +144,13 @@ export declare class DiscordAdapter extends EventEmitter implements ChannelAdapt
|
|
|
134
144
|
sendApproval(prompt: PermissionPrompt, callback: (decision: "approve" | "approve_always" | "deny") => void, signal?: AbortSignal, threadId?: string): Promise<ApprovalHandle>;
|
|
135
145
|
getChatId(): string | null;
|
|
136
146
|
setChatId(chatId: string): void;
|
|
147
|
+
/**
|
|
148
|
+
* Verify a prospective guild/general-channel binding using the already
|
|
149
|
+
* authenticated gateway client. This is deliberately read-only: the
|
|
150
|
+
* FleetManager only commits the YAML binding after this positive probe and a
|
|
151
|
+
* second, fenced adapter rebuild succeeds.
|
|
152
|
+
*/
|
|
153
|
+
verifyBinding(groupId: string, generalChannelId?: string): Promise<import("../types.js").BindingProbe>;
|
|
137
154
|
downloadAttachment(fileId: string): Promise<string>;
|
|
138
155
|
promptUser(chatId: string, text: string, choices: Choice[], opts?: SendOpts): Promise<string>;
|
|
139
156
|
notifyAlert(chatId: string, alert: AlertData, opts?: SendOpts): Promise<SentMessage>;
|
|
@@ -6,9 +6,9 @@ import { join } from "node:path";
|
|
|
6
6
|
import { pipeline } from "node:stream/promises";
|
|
7
7
|
import { Readable } from "node:stream";
|
|
8
8
|
import { createWriteStream } from "node:fs";
|
|
9
|
-
import { Client, GatewayIntentBits, Partials, ActionRowBuilder, ButtonBuilder, ButtonStyle, StringSelectMenuBuilder, ApplicationCommandOptionType, ChannelType, MessageFlags, Status, } from "discord.js";
|
|
9
|
+
import { Client, GatewayIntentBits, Partials, ActionRowBuilder, ButtonBuilder, ButtonStyle, StringSelectMenuBuilder, ApplicationCommandOptionType, ChannelType, PermissionFlagsBits, MessageFlags, Status, ActivityType, } from "discord.js";
|
|
10
10
|
import { MessageQueue } from "../message-queue.js";
|
|
11
|
-
import { splitTextFenceAware } from "../markdown-chunk.js";
|
|
11
|
+
import { splitTextFenceAware, truncatePreview, fenceBlock } from "../markdown-chunk.js";
|
|
12
12
|
const DISCORD_MAX_LENGTH = 2000;
|
|
13
13
|
const GATEWAY_WATCHDOG_INTERVAL_MS = 30_000;
|
|
14
14
|
const GATEWAY_STALE_MIN_MS = 180_000;
|
|
@@ -22,6 +22,7 @@ export const DISCORD_START_BACKEND_CHOICES = [
|
|
|
22
22
|
{ name: "OpenCode", value: "opencode" },
|
|
23
23
|
{ name: "Antigravity", value: "antigravity" },
|
|
24
24
|
{ name: "Grok Build", value: "grok" },
|
|
25
|
+
{ name: "Meta Muse Code", value: "muse" },
|
|
25
26
|
];
|
|
26
27
|
const CLASSIC_START_BACKEND_SELECT_ID = "classic-start-backend";
|
|
27
28
|
export class DiscordAdapter extends EventEmitter {
|
|
@@ -859,6 +860,27 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
859
860
|
reconnectCount: this.reconnectCount,
|
|
860
861
|
};
|
|
861
862
|
}
|
|
863
|
+
/**
|
|
864
|
+
* Update the bot's profile activity without touching any channel messages.
|
|
865
|
+
* Presence is deliberately best-effort: a reconnecting or not-yet-ready
|
|
866
|
+
* generation has no user object to update, and the next usage refresh will
|
|
867
|
+
* try again after it is ready.
|
|
868
|
+
*/
|
|
869
|
+
setActivity(text) {
|
|
870
|
+
const client = this.client;
|
|
871
|
+
const isReady = typeof client.isReady === "function" ? client.isReady() : Boolean(client.user);
|
|
872
|
+
if (!isReady || !client.user || typeof client.user.setActivity !== "function")
|
|
873
|
+
return false;
|
|
874
|
+
try {
|
|
875
|
+
// Watching renders consistently across Discord desktop/mobile and does
|
|
876
|
+
// not require the special `state` field that Custom activities demand.
|
|
877
|
+
client.user.setActivity(text, { type: ActivityType.Watching });
|
|
878
|
+
return true;
|
|
879
|
+
}
|
|
880
|
+
catch {
|
|
881
|
+
return false;
|
|
882
|
+
}
|
|
883
|
+
}
|
|
862
884
|
async handleClientReady(client, generation) {
|
|
863
885
|
if (!this.isCurrentClient(client, generation))
|
|
864
886
|
return;
|
|
@@ -950,6 +972,7 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
950
972
|
{ name: "codex", value: "codex" },
|
|
951
973
|
{ name: "kiro-cli", value: "kiro-cli" },
|
|
952
974
|
{ name: "grok", value: "grok" },
|
|
975
|
+
{ name: "muse", value: "muse" },
|
|
953
976
|
{ name: "antigravity", value: "antigravity" },
|
|
954
977
|
],
|
|
955
978
|
},
|
|
@@ -968,6 +991,7 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
968
991
|
{ name: "codex", value: "codex" },
|
|
969
992
|
{ name: "kiro-cli", value: "kiro-cli" },
|
|
970
993
|
{ name: "grok", value: "grok" },
|
|
994
|
+
{ name: "muse", value: "muse" },
|
|
971
995
|
{ name: "antigravity", value: "antigravity" },
|
|
972
996
|
{ name: "opencode", value: "opencode" },
|
|
973
997
|
],
|
|
@@ -1111,7 +1135,7 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
1111
1135
|
try {
|
|
1112
1136
|
const channel = await this._fetchTextChannel(threadId ?? chatId);
|
|
1113
1137
|
const msg = await channel.messages.fetch(messageId);
|
|
1114
|
-
await msg.edit(text
|
|
1138
|
+
await msg.edit(truncatePreview(text, DISCORD_MAX_LENGTH));
|
|
1115
1139
|
return;
|
|
1116
1140
|
}
|
|
1117
1141
|
catch { /* not in that channel — fall through to scan */ }
|
|
@@ -1122,7 +1146,7 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
1122
1146
|
try {
|
|
1123
1147
|
const textCh = ch;
|
|
1124
1148
|
const msg = await textCh.messages.fetch(messageId);
|
|
1125
|
-
await msg.edit(text
|
|
1149
|
+
await msg.edit(truncatePreview(text, DISCORD_MAX_LENGTH));
|
|
1126
1150
|
return;
|
|
1127
1151
|
}
|
|
1128
1152
|
catch {
|
|
@@ -1156,7 +1180,7 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
1156
1180
|
try {
|
|
1157
1181
|
const channel = await this._fetchTextChannel(threadId ?? chatId);
|
|
1158
1182
|
const msg = await channel.messages.fetch(messageId);
|
|
1159
|
-
await msg.edit({ content: text
|
|
1183
|
+
await msg.edit({ content: truncatePreview(text, DISCORD_MAX_LENGTH), components: [] });
|
|
1160
1184
|
return;
|
|
1161
1185
|
}
|
|
1162
1186
|
catch { /* not in that channel — fall through to scan */ }
|
|
@@ -1167,7 +1191,7 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
1167
1191
|
try {
|
|
1168
1192
|
const textCh = ch;
|
|
1169
1193
|
const msg = await textCh.messages.fetch(messageId);
|
|
1170
|
-
await msg.edit({ content: text
|
|
1194
|
+
await msg.edit({ content: truncatePreview(text, DISCORD_MAX_LENGTH), components: [] });
|
|
1171
1195
|
return;
|
|
1172
1196
|
}
|
|
1173
1197
|
catch {
|
|
@@ -1249,10 +1273,10 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
1249
1273
|
.setStyle(ButtonStyle.Danger));
|
|
1250
1274
|
let text = `⚠️ **Permission Request**\nTool: \`${prompt.tool_name}\``;
|
|
1251
1275
|
if (prompt.input_preview) {
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
text += `\n
|
|
1276
|
+
// The preview is inside a fence. Choose a marker longer than any run in
|
|
1277
|
+
// the tool input so embedded backticks cannot escape the permission block.
|
|
1278
|
+
const preview = truncatePreview(prompt.input_preview, 200);
|
|
1279
|
+
text += `\n${fenceBlock(preview)}`;
|
|
1256
1280
|
}
|
|
1257
1281
|
else if (prompt.description) {
|
|
1258
1282
|
text += `\n${prompt.description}`;
|
|
@@ -1300,6 +1324,43 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
1300
1324
|
// ── Chat ID management ──────────────────────────────────────────────────
|
|
1301
1325
|
getChatId() { return this.lastChatId; }
|
|
1302
1326
|
setChatId(chatId) { this.lastChatId = chatId; }
|
|
1327
|
+
/**
|
|
1328
|
+
* Verify a prospective guild/general-channel binding using the already
|
|
1329
|
+
* authenticated gateway client. This is deliberately read-only: the
|
|
1330
|
+
* FleetManager only commits the YAML binding after this positive probe and a
|
|
1331
|
+
* second, fenced adapter rebuild succeeds.
|
|
1332
|
+
*/
|
|
1333
|
+
async verifyBinding(groupId, generalChannelId) {
|
|
1334
|
+
const client = await this.readyClient();
|
|
1335
|
+
const guild = await client.guilds.fetch(String(groupId));
|
|
1336
|
+
if (!guild)
|
|
1337
|
+
throw new Error("guild not found");
|
|
1338
|
+
if (!generalChannelId) {
|
|
1339
|
+
return {
|
|
1340
|
+
group_id: String(guild.id),
|
|
1341
|
+
group_name: guild.name ?? null,
|
|
1342
|
+
can_view: true,
|
|
1343
|
+
can_send: true,
|
|
1344
|
+
};
|
|
1345
|
+
}
|
|
1346
|
+
const channel = await guild.channels.fetch(String(generalChannelId));
|
|
1347
|
+
if (!channel || !channel.isTextBased())
|
|
1348
|
+
throw new Error("target channel not found or not text-based");
|
|
1349
|
+
const member = guild.members.me ?? (client.user ? await guild.members.fetch(client.user.id) : null);
|
|
1350
|
+
const permissions = member ? channel.permissionsFor(member) : null;
|
|
1351
|
+
const canView = !!permissions?.has(PermissionFlagsBits.ViewChannel);
|
|
1352
|
+
const canSend = !!permissions?.has(PermissionFlagsBits.SendMessages);
|
|
1353
|
+
if (!canView || !canSend)
|
|
1354
|
+
throw new Error("bot lacks view/send permission in target channel");
|
|
1355
|
+
return {
|
|
1356
|
+
group_id: String(guild.id),
|
|
1357
|
+
group_name: guild.name ?? null,
|
|
1358
|
+
channel_id: String(channel.id),
|
|
1359
|
+
channel_name: "name" in channel && typeof channel.name === "string" ? channel.name : null,
|
|
1360
|
+
can_view: canView,
|
|
1361
|
+
can_send: canSend,
|
|
1362
|
+
};
|
|
1363
|
+
}
|
|
1303
1364
|
// ── File download ──────────────────────────────────────────────────────
|
|
1304
1365
|
async downloadAttachment(fileId) {
|
|
1305
1366
|
const url = this.attachmentUrls.get(fileId);
|
|
@@ -1373,7 +1434,7 @@ export class DiscordAdapter extends EventEmitter {
|
|
|
1373
1434
|
.setStyle(ButtonStyle.Secondary));
|
|
1374
1435
|
}
|
|
1375
1436
|
await msg.edit({
|
|
1376
|
-
content: alert.message
|
|
1437
|
+
content: truncatePreview(alert.message, DISCORD_MAX_LENGTH),
|
|
1377
1438
|
components: row.components.length > 0 ? [row] : [],
|
|
1378
1439
|
});
|
|
1379
1440
|
}
|