@phnx-labs/agents-cli 0.1.0
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 +316 -0
- package/LICENSE +21 -0
- package/README.md +537 -0
- package/dist/commands/__tests__/sessions.test.d.ts +2 -0
- package/dist/commands/__tests__/sessions.test.d.ts.map +1 -0
- package/dist/commands/__tests__/sessions.test.js +636 -0
- package/dist/commands/__tests__/sessions.test.js.map +1 -0
- package/dist/commands/cloud.d.ts +3 -0
- package/dist/commands/cloud.d.ts.map +1 -0
- package/dist/commands/cloud.js +322 -0
- package/dist/commands/cloud.js.map +1 -0
- package/dist/commands/commands.d.ts +3 -0
- package/dist/commands/commands.d.ts.map +1 -0
- package/dist/commands/commands.js +628 -0
- package/dist/commands/commands.js.map +1 -0
- package/dist/commands/daemon.d.ts +3 -0
- package/dist/commands/daemon.d.ts.map +1 -0
- package/dist/commands/daemon.js +110 -0
- package/dist/commands/daemon.js.map +1 -0
- package/dist/commands/drive.d.ts +3 -0
- package/dist/commands/drive.d.ts.map +1 -0
- package/dist/commands/drive.js +166 -0
- package/dist/commands/drive.js.map +1 -0
- package/dist/commands/exec.d.ts +3 -0
- package/dist/commands/exec.d.ts.map +1 -0
- package/dist/commands/exec.js +241 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/fork.d.ts +3 -0
- package/dist/commands/fork.d.ts.map +1 -0
- package/dist/commands/fork.js +139 -0
- package/dist/commands/fork.js.map +1 -0
- package/dist/commands/hooks.d.ts +3 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +689 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +127 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +581 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/models.d.ts +3 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +158 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/packages.d.ts +3 -0
- package/dist/commands/packages.d.ts.map +1 -0
- package/dist/commands/packages.js +541 -0
- package/dist/commands/packages.js.map +1 -0
- package/dist/commands/permissions.d.ts +3 -0
- package/dist/commands/permissions.d.ts.map +1 -0
- package/dist/commands/permissions.js +723 -0
- package/dist/commands/permissions.js.map +1 -0
- package/dist/commands/plugins.d.ts +3 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +382 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/profiles.d.ts +3 -0
- package/dist/commands/profiles.d.ts.map +1 -0
- package/dist/commands/profiles.js +242 -0
- package/dist/commands/profiles.js.map +1 -0
- package/dist/commands/pty.d.ts +20 -0
- package/dist/commands/pty.d.ts.map +1 -0
- package/dist/commands/pty.js +389 -0
- package/dist/commands/pty.js.map +1 -0
- package/dist/commands/pull.d.ts +3 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/commands/pull.js +448 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +3 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +180 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/refresh-memory.d.ts +9 -0
- package/dist/commands/refresh-memory.d.ts.map +1 -0
- package/dist/commands/refresh-memory.js +45 -0
- package/dist/commands/refresh-memory.js.map +1 -0
- package/dist/commands/resource-view.d.ts +31 -0
- package/dist/commands/resource-view.d.ts.map +1 -0
- package/dist/commands/resource-view.js +183 -0
- package/dist/commands/resource-view.js.map +1 -0
- package/dist/commands/routines.d.ts +3 -0
- package/dist/commands/routines.d.ts.map +1 -0
- package/dist/commands/routines.js +579 -0
- package/dist/commands/routines.js.map +1 -0
- package/dist/commands/rules.d.ts +3 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +488 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/secrets.d.ts +3 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +339 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/sessions-picker.d.ts +16 -0
- package/dist/commands/sessions-picker.d.ts.map +1 -0
- package/dist/commands/sessions-picker.js +256 -0
- package/dist/commands/sessions-picker.js.map +1 -0
- package/dist/commands/sessions.d.ts +16 -0
- package/dist/commands/sessions.d.ts.map +1 -0
- package/dist/commands/sessions.js +1077 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +716 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +19 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/subagents.d.ts +3 -0
- package/dist/commands/subagents.d.ts.map +1 -0
- package/dist/commands/subagents.js +350 -0
- package/dist/commands/subagents.js.map +1 -0
- package/dist/commands/sync.d.ts +3 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +62 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/teams-picker.d.ts +14 -0
- package/dist/commands/teams-picker.d.ts.map +1 -0
- package/dist/commands/teams-picker.js +278 -0
- package/dist/commands/teams-picker.js.map +1 -0
- package/dist/commands/teams.d.ts +3 -0
- package/dist/commands/teams.d.ts.map +1 -0
- package/dist/commands/teams.js +917 -0
- package/dist/commands/teams.js.map +1 -0
- package/dist/commands/utils.d.ts +39 -0
- package/dist/commands/utils.d.ts.map +1 -0
- package/dist/commands/utils.js +100 -0
- package/dist/commands/utils.js.map +1 -0
- package/dist/commands/versions.d.ts +3 -0
- package/dist/commands/versions.d.ts.map +1 -0
- package/dist/commands/versions.js +700 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/commands/view.d.ts +8 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +626 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +484 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/__tests__/bugfixes.test.d.ts +2 -0
- package/dist/lib/__tests__/bugfixes.test.d.ts.map +1 -0
- package/dist/lib/__tests__/bugfixes.test.js +192 -0
- package/dist/lib/__tests__/bugfixes.test.js.map +1 -0
- package/dist/lib/__tests__/exec.test.d.ts +2 -0
- package/dist/lib/__tests__/exec.test.d.ts.map +1 -0
- package/dist/lib/__tests__/exec.test.js +446 -0
- package/dist/lib/__tests__/exec.test.js.map +1 -0
- package/dist/lib/__tests__/git-sync.test.d.ts +2 -0
- package/dist/lib/__tests__/git-sync.test.d.ts.map +1 -0
- package/dist/lib/__tests__/git-sync.test.js +138 -0
- package/dist/lib/__tests__/git-sync.test.js.map +1 -0
- package/dist/lib/__tests__/hooks.test.d.ts +2 -0
- package/dist/lib/__tests__/hooks.test.d.ts.map +1 -0
- package/dist/lib/__tests__/hooks.test.js +203 -0
- package/dist/lib/__tests__/hooks.test.js.map +1 -0
- package/dist/lib/__tests__/memory-compile.test.d.ts +2 -0
- package/dist/lib/__tests__/memory-compile.test.d.ts.map +1 -0
- package/dist/lib/__tests__/memory-compile.test.js +95 -0
- package/dist/lib/__tests__/memory-compile.test.js.map +1 -0
- package/dist/lib/__tests__/models.test.d.ts +2 -0
- package/dist/lib/__tests__/models.test.d.ts.map +1 -0
- package/dist/lib/__tests__/models.test.js +239 -0
- package/dist/lib/__tests__/models.test.js.map +1 -0
- package/dist/lib/__tests__/rotate.test.d.ts +2 -0
- package/dist/lib/__tests__/rotate.test.d.ts.map +1 -0
- package/dist/lib/__tests__/rotate.test.js +80 -0
- package/dist/lib/__tests__/rotate.test.js.map +1 -0
- package/dist/lib/__tests__/secrets-bundles.test.d.ts +2 -0
- package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +1 -0
- package/dist/lib/__tests__/secrets-bundles.test.js +104 -0
- package/dist/lib/__tests__/secrets-bundles.test.js.map +1 -0
- package/dist/lib/__tests__/secrets.test.d.ts +2 -0
- package/dist/lib/__tests__/secrets.test.d.ts.map +1 -0
- package/dist/lib/__tests__/secrets.test.js +90 -0
- package/dist/lib/__tests__/secrets.test.js.map +1 -0
- package/dist/lib/__tests__/shims.test.d.ts +2 -0
- package/dist/lib/__tests__/shims.test.d.ts.map +1 -0
- package/dist/lib/__tests__/shims.test.js +39 -0
- package/dist/lib/__tests__/shims.test.js.map +1 -0
- package/dist/lib/__tests__/usage.test.d.ts +2 -0
- package/dist/lib/__tests__/usage.test.d.ts.map +1 -0
- package/dist/lib/__tests__/usage.test.js +220 -0
- package/dist/lib/__tests__/usage.test.js.map +1 -0
- package/dist/lib/__tests__/versions.test.d.ts +2 -0
- package/dist/lib/__tests__/versions.test.d.ts.map +1 -0
- package/dist/lib/__tests__/versions.test.js +63 -0
- package/dist/lib/__tests__/versions.test.js.map +1 -0
- package/dist/lib/agents.d.ts +107 -0
- package/dist/lib/agents.d.ts.map +1 -0
- package/dist/lib/agents.js +1096 -0
- package/dist/lib/agents.js.map +1 -0
- package/dist/lib/artifact-actions.d.ts +22 -0
- package/dist/lib/artifact-actions.d.ts.map +1 -0
- package/dist/lib/artifact-actions.js +55 -0
- package/dist/lib/artifact-actions.js.map +1 -0
- package/dist/lib/cloud/codex.d.ts +19 -0
- package/dist/lib/cloud/codex.d.ts.map +1 -0
- package/dist/lib/cloud/codex.js +210 -0
- package/dist/lib/cloud/codex.js.map +1 -0
- package/dist/lib/cloud/factory.d.ts +26 -0
- package/dist/lib/cloud/factory.d.ts.map +1 -0
- package/dist/lib/cloud/factory.js +37 -0
- package/dist/lib/cloud/factory.js.map +1 -0
- package/dist/lib/cloud/registry.d.ts +6 -0
- package/dist/lib/cloud/registry.d.ts.map +1 -0
- package/dist/lib/cloud/registry.js +56 -0
- package/dist/lib/cloud/registry.js.map +1 -0
- package/dist/lib/cloud/rush.d.ts +15 -0
- package/dist/lib/cloud/rush.d.ts.map +1 -0
- package/dist/lib/cloud/rush.js +185 -0
- package/dist/lib/cloud/rush.js.map +1 -0
- package/dist/lib/cloud/store.d.ts +10 -0
- package/dist/lib/cloud/store.d.ts.map +1 -0
- package/dist/lib/cloud/store.js +96 -0
- package/dist/lib/cloud/store.js.map +1 -0
- package/dist/lib/cloud/stream.d.ts +18 -0
- package/dist/lib/cloud/stream.d.ts.map +1 -0
- package/dist/lib/cloud/stream.js +138 -0
- package/dist/lib/cloud/stream.js.map +1 -0
- package/dist/lib/cloud/types.d.ts +60 -0
- package/dist/lib/cloud/types.d.ts.map +1 -0
- package/dist/lib/cloud/types.js +2 -0
- package/dist/lib/cloud/types.js.map +1 -0
- package/dist/lib/commands.d.ts +121 -0
- package/dist/lib/commands.d.ts.map +1 -0
- package/dist/lib/commands.js +499 -0
- package/dist/lib/commands.js.map +1 -0
- package/dist/lib/convert.d.ts +11 -0
- package/dist/lib/convert.d.ts.map +1 -0
- package/dist/lib/convert.js +45 -0
- package/dist/lib/convert.js.map +1 -0
- package/dist/lib/daemon.d.ts +22 -0
- package/dist/lib/daemon.d.ts.map +1 -0
- package/dist/lib/daemon.js +311 -0
- package/dist/lib/daemon.js.map +1 -0
- package/dist/lib/drive-sync.d.ts +28 -0
- package/dist/lib/drive-sync.d.ts.map +1 -0
- package/dist/lib/drive-sync.js +193 -0
- package/dist/lib/drive-sync.js.map +1 -0
- package/dist/lib/exec.d.ts +85 -0
- package/dist/lib/exec.d.ts.map +1 -0
- package/dist/lib/exec.js +423 -0
- package/dist/lib/exec.js.map +1 -0
- package/dist/lib/factory.d.ts +57 -0
- package/dist/lib/factory.d.ts.map +1 -0
- package/dist/lib/factory.js +110 -0
- package/dist/lib/factory.js.map +1 -0
- package/dist/lib/git.d.ts +146 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +635 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/help.d.ts +3 -0
- package/dist/lib/help.d.ts.map +1 -0
- package/dist/lib/help.js +63 -0
- package/dist/lib/help.js.map +1 -0
- package/dist/lib/hooks.d.ts +116 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/hooks.js +837 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/manifest.d.ts +8 -0
- package/dist/lib/manifest.d.ts.map +1 -0
- package/dist/lib/manifest.js +36 -0
- package/dist/lib/manifest.js.map +1 -0
- package/dist/lib/markdown.d.ts +5 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +11 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/mcp.d.ts +64 -0
- package/dist/lib/mcp.d.ts.map +1 -0
- package/dist/lib/mcp.js +327 -0
- package/dist/lib/mcp.js.map +1 -0
- package/dist/lib/memory-compile.d.ts +56 -0
- package/dist/lib/memory-compile.d.ts.map +1 -0
- package/dist/lib/memory-compile.js +167 -0
- package/dist/lib/memory-compile.js.map +1 -0
- package/dist/lib/memory.d.ts +56 -0
- package/dist/lib/memory.d.ts.map +1 -0
- package/dist/lib/memory.js +267 -0
- package/dist/lib/memory.js.map +1 -0
- package/dist/lib/models.d.ts +91 -0
- package/dist/lib/models.d.ts.map +1 -0
- package/dist/lib/models.js +706 -0
- package/dist/lib/models.js.map +1 -0
- package/dist/lib/permissions.d.ts +204 -0
- package/dist/lib/permissions.d.ts.map +1 -0
- package/dist/lib/permissions.js +1022 -0
- package/dist/lib/permissions.js.map +1 -0
- package/dist/lib/picker.d.ts +17 -0
- package/dist/lib/picker.d.ts.map +1 -0
- package/dist/lib/picker.js +95 -0
- package/dist/lib/picker.js.map +1 -0
- package/dist/lib/plugins.d.ts +73 -0
- package/dist/lib/plugins.d.ts.map +1 -0
- package/dist/lib/plugins.js +549 -0
- package/dist/lib/plugins.js.map +1 -0
- package/dist/lib/profiles-keychain.d.ts +3 -0
- package/dist/lib/profiles-keychain.d.ts.map +1 -0
- package/dist/lib/profiles-keychain.js +10 -0
- package/dist/lib/profiles-keychain.js.map +1 -0
- package/dist/lib/profiles-presets.d.ts +15 -0
- package/dist/lib/profiles-presets.d.ts.map +1 -0
- package/dist/lib/profiles-presets.js +95 -0
- package/dist/lib/profiles-presets.js.map +1 -0
- package/dist/lib/profiles.d.ts +35 -0
- package/dist/lib/profiles.d.ts.map +1 -0
- package/dist/lib/profiles.js +123 -0
- package/dist/lib/profiles.js.map +1 -0
- package/dist/lib/pty-client.d.ts +22 -0
- package/dist/lib/pty-client.d.ts.map +1 -0
- package/dist/lib/pty-client.js +181 -0
- package/dist/lib/pty-client.js.map +1 -0
- package/dist/lib/pty-server.d.ts +16 -0
- package/dist/lib/pty-server.d.ts.map +1 -0
- package/dist/lib/pty-server.js +422 -0
- package/dist/lib/pty-server.js.map +1 -0
- package/dist/lib/registry.d.ts +28 -0
- package/dist/lib/registry.d.ts.map +1 -0
- package/dist/lib/registry.js +203 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/lib/resources.d.ts +50 -0
- package/dist/lib/resources.d.ts.map +1 -0
- package/dist/lib/resources.js +103 -0
- package/dist/lib/resources.js.map +1 -0
- package/dist/lib/rotate.d.ts +52 -0
- package/dist/lib/rotate.d.ts.map +1 -0
- package/dist/lib/rotate.js +87 -0
- package/dist/lib/rotate.js.map +1 -0
- package/dist/lib/routines.d.ts +70 -0
- package/dist/lib/routines.d.ts.map +1 -0
- package/dist/lib/routines.js +325 -0
- package/dist/lib/routines.js.map +1 -0
- package/dist/lib/runner.d.ts +12 -0
- package/dist/lib/runner.d.ts.map +1 -0
- package/dist/lib/runner.js +311 -0
- package/dist/lib/runner.js.map +1 -0
- package/dist/lib/sandbox.d.ts +10 -0
- package/dist/lib/sandbox.d.ts.map +1 -0
- package/dist/lib/sandbox.js +201 -0
- package/dist/lib/sandbox.js.map +1 -0
- package/dist/lib/scheduler.d.ts +18 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +69 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/secrets-bundles.d.ts +29 -0
- package/dist/lib/secrets-bundles.d.ts.map +1 -0
- package/dist/lib/secrets-bundles.js +168 -0
- package/dist/lib/secrets-bundles.js.map +1 -0
- package/dist/lib/secrets.d.ts +27 -0
- package/dist/lib/secrets.d.ts.map +1 -0
- package/dist/lib/secrets.js +127 -0
- package/dist/lib/secrets.js.map +1 -0
- package/dist/lib/session/__tests__/db.test.d.ts +2 -0
- package/dist/lib/session/__tests__/db.test.d.ts.map +1 -0
- package/dist/lib/session/__tests__/db.test.js +54 -0
- package/dist/lib/session/__tests__/db.test.js.map +1 -0
- package/dist/lib/session/__tests__/discover.test.d.ts +2 -0
- package/dist/lib/session/__tests__/discover.test.d.ts.map +1 -0
- package/dist/lib/session/__tests__/discover.test.js +63 -0
- package/dist/lib/session/__tests__/discover.test.js.map +1 -0
- package/dist/lib/session/__tests__/prompt.test.d.ts +2 -0
- package/dist/lib/session/__tests__/prompt.test.d.ts.map +1 -0
- package/dist/lib/session/__tests__/prompt.test.js +44 -0
- package/dist/lib/session/__tests__/prompt.test.js.map +1 -0
- package/dist/lib/session/__tests__/render.test.d.ts +2 -0
- package/dist/lib/session/__tests__/render.test.d.ts.map +1 -0
- package/dist/lib/session/__tests__/render.test.js +602 -0
- package/dist/lib/session/__tests__/render.test.js.map +1 -0
- package/dist/lib/session/artifacts.d.ts +5 -0
- package/dist/lib/session/artifacts.d.ts.map +1 -0
- package/dist/lib/session/artifacts.js +75 -0
- package/dist/lib/session/artifacts.js.map +1 -0
- package/dist/lib/session/db.d.ts +118 -0
- package/dist/lib/session/db.d.ts.map +1 -0
- package/dist/lib/session/db.js +576 -0
- package/dist/lib/session/db.js.map +1 -0
- package/dist/lib/session/discover.d.ts +60 -0
- package/dist/lib/session/discover.d.ts.map +1 -0
- package/dist/lib/session/discover.js +1272 -0
- package/dist/lib/session/discover.js.map +1 -0
- package/dist/lib/session/parse.d.ts +23 -0
- package/dist/lib/session/parse.d.ts.map +1 -0
- package/dist/lib/session/parse.js +650 -0
- package/dist/lib/session/parse.js.map +1 -0
- package/dist/lib/session/prompt.d.ts +4 -0
- package/dist/lib/session/prompt.d.ts.map +1 -0
- package/dist/lib/session/prompt.js +64 -0
- package/dist/lib/session/prompt.js.map +1 -0
- package/dist/lib/session/prompt.test.d.ts +2 -0
- package/dist/lib/session/prompt.test.d.ts.map +1 -0
- package/dist/lib/session/prompt.test.js +57 -0
- package/dist/lib/session/prompt.test.js.map +1 -0
- package/dist/lib/session/render.d.ts +90 -0
- package/dist/lib/session/render.d.ts.map +1 -0
- package/dist/lib/session/render.js +778 -0
- package/dist/lib/session/render.js.map +1 -0
- package/dist/lib/session/team-filter.d.ts +26 -0
- package/dist/lib/session/team-filter.d.ts.map +1 -0
- package/dist/lib/session/team-filter.js +66 -0
- package/dist/lib/session/team-filter.js.map +1 -0
- package/dist/lib/session/team-filter.test.d.ts +2 -0
- package/dist/lib/session/team-filter.test.d.ts.map +1 -0
- package/dist/lib/session/team-filter.test.js +157 -0
- package/dist/lib/session/team-filter.test.js.map +1 -0
- package/dist/lib/session/types.d.ts +69 -0
- package/dist/lib/session/types.d.ts.map +1 -0
- package/dist/lib/session/types.js +2 -0
- package/dist/lib/session/types.js.map +1 -0
- package/dist/lib/shims.d.ts +228 -0
- package/dist/lib/shims.d.ts.map +1 -0
- package/dist/lib/shims.js +1170 -0
- package/dist/lib/shims.js.map +1 -0
- package/dist/lib/skills.d.ts +134 -0
- package/dist/lib/skills.d.ts.map +1 -0
- package/dist/lib/skills.js +783 -0
- package/dist/lib/skills.js.map +1 -0
- package/dist/lib/state.d.ts +53 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/state.js +299 -0
- package/dist/lib/state.js.map +1 -0
- package/dist/lib/subagents.d.ts +75 -0
- package/dist/lib/subagents.d.ts.map +1 -0
- package/dist/lib/subagents.js +402 -0
- package/dist/lib/subagents.js.map +1 -0
- package/dist/lib/teams/agents.d.ts +146 -0
- package/dist/lib/teams/agents.d.ts.map +1 -0
- package/dist/lib/teams/agents.js +1072 -0
- package/dist/lib/teams/agents.js.map +1 -0
- package/dist/lib/teams/api.d.ts +77 -0
- package/dist/lib/teams/api.d.ts.map +1 -0
- package/dist/lib/teams/api.js +229 -0
- package/dist/lib/teams/api.js.map +1 -0
- package/dist/lib/teams/cloud.d.ts +11 -0
- package/dist/lib/teams/cloud.d.ts.map +1 -0
- package/dist/lib/teams/cloud.js +169 -0
- package/dist/lib/teams/cloud.js.map +1 -0
- package/dist/lib/teams/debug.d.ts +2 -0
- package/dist/lib/teams/debug.d.ts.map +1 -0
- package/dist/lib/teams/debug.js +6 -0
- package/dist/lib/teams/debug.js.map +1 -0
- package/dist/lib/teams/file_ops.d.ts +6 -0
- package/dist/lib/teams/file_ops.d.ts.map +1 -0
- package/dist/lib/teams/file_ops.js +59 -0
- package/dist/lib/teams/file_ops.js.map +1 -0
- package/dist/lib/teams/parsers.d.ts +5 -0
- package/dist/lib/teams/parsers.d.ts.map +1 -0
- package/dist/lib/teams/parsers.js +826 -0
- package/dist/lib/teams/parsers.js.map +1 -0
- package/dist/lib/teams/persistence.d.ts +28 -0
- package/dist/lib/teams/persistence.d.ts.map +1 -0
- package/dist/lib/teams/persistence.js +289 -0
- package/dist/lib/teams/persistence.js.map +1 -0
- package/dist/lib/teams/ralph.d.ts +8 -0
- package/dist/lib/teams/ralph.d.ts.map +1 -0
- package/dist/lib/teams/ralph.js +59 -0
- package/dist/lib/teams/ralph.js.map +1 -0
- package/dist/lib/teams/registry.d.ts +11 -0
- package/dist/lib/teams/registry.d.ts.map +1 -0
- package/dist/lib/teams/registry.js +56 -0
- package/dist/lib/teams/registry.js.map +1 -0
- package/dist/lib/teams/summarizer.d.ts +58 -0
- package/dist/lib/teams/summarizer.d.ts.map +1 -0
- package/dist/lib/teams/summarizer.js +766 -0
- package/dist/lib/teams/summarizer.js.map +1 -0
- package/dist/lib/template.d.ts +24 -0
- package/dist/lib/template.d.ts.map +1 -0
- package/dist/lib/template.js +57 -0
- package/dist/lib/template.js.map +1 -0
- package/dist/lib/types.d.ts +282 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +18 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/usage.d.ts +73 -0
- package/dist/lib/usage.d.ts.map +1 -0
- package/dist/lib/usage.js +623 -0
- package/dist/lib/usage.js.map +1 -0
- package/dist/lib/versions.d.ts +248 -0
- package/dist/lib/versions.d.ts.map +1 -0
- package/dist/lib/versions.js +1737 -0
- package/dist/lib/versions.js.map +1 -0
- package/package.json +82 -0
- package/scripts/postinstall.js +72 -0
- package/scripts/rebuild-sqlite.sh +46 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { AgentId } from './types.js';
|
|
2
|
+
export type ExecMode = 'plan' | 'edit' | 'full';
|
|
3
|
+
export type ExecEffort = 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'auto';
|
|
4
|
+
export interface ExecOptions {
|
|
5
|
+
agent: AgentId;
|
|
6
|
+
version?: string;
|
|
7
|
+
/** Omit to launch the CLI interactively — no prompt, no --print, stdio fully inherited. */
|
|
8
|
+
prompt?: string;
|
|
9
|
+
mode: ExecMode;
|
|
10
|
+
effort: ExecEffort;
|
|
11
|
+
cwd?: string;
|
|
12
|
+
headless?: boolean;
|
|
13
|
+
json?: boolean;
|
|
14
|
+
model?: string;
|
|
15
|
+
addDirs?: string[];
|
|
16
|
+
timeout?: string;
|
|
17
|
+
sessionId?: string;
|
|
18
|
+
verbose?: boolean;
|
|
19
|
+
env?: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
export declare function parseExecEnv(entries: string[]): Record<string, string> | undefined;
|
|
22
|
+
export declare function buildExecEnv(options: ExecOptions): NodeJS.ProcessEnv;
|
|
23
|
+
export interface AgentCommandTemplate {
|
|
24
|
+
base: string[];
|
|
25
|
+
promptFlag: 'positional' | string;
|
|
26
|
+
modeFlags: {
|
|
27
|
+
plan: string[];
|
|
28
|
+
edit: string[];
|
|
29
|
+
full: string[];
|
|
30
|
+
};
|
|
31
|
+
jsonFlags?: string[];
|
|
32
|
+
modelFlag?: string;
|
|
33
|
+
printFlags?: string[];
|
|
34
|
+
verboseFlag?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare const AGENT_COMMANDS: Record<AgentId, AgentCommandTemplate>;
|
|
37
|
+
export declare function buildExecCommand(options: ExecOptions): string[];
|
|
38
|
+
export declare function execAgent(options: ExecOptions): Promise<number>;
|
|
39
|
+
/**
|
|
40
|
+
* Patterns that indicate a rate/usage limit. Matching is intentionally broad
|
|
41
|
+
* because providers phrase these differently — Anthropic uses "5-hour limit"
|
|
42
|
+
* and "rate limit", OpenAI surfaces 429s, Google says "quota exceeded".
|
|
43
|
+
* False positives here just trigger a fallback attempt; false negatives leave
|
|
44
|
+
* the original error unhandled, which is worse.
|
|
45
|
+
*/
|
|
46
|
+
export declare const RATE_LIMIT_PATTERNS: RegExp[];
|
|
47
|
+
export declare function detectRateLimit(text: string): boolean;
|
|
48
|
+
export interface FallbackEntry {
|
|
49
|
+
agent: AgentId;
|
|
50
|
+
/** Optional pinned version (e.g. '0.116.0'). When set, takes precedence over the active default. */
|
|
51
|
+
version?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface FallbackOptions extends ExecOptions {
|
|
54
|
+
/** Ordered list of agents to try if the primary (options.agent) hits a rate limit. */
|
|
55
|
+
fallback: FallbackEntry[];
|
|
56
|
+
/** Fallback requires a prompt — chain handoff doesn't apply to interactive sessions. */
|
|
57
|
+
prompt: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Build the prompt handed to the fallback agent when the primary was stopped
|
|
61
|
+
* mid-task by a rate limit.
|
|
62
|
+
*
|
|
63
|
+
* When the prior agent was Claude we pin its session ID via `--session-id` so
|
|
64
|
+
* `prevSessionId` is always defined; for other primaries we pass undefined and
|
|
65
|
+
* get a simpler retry-with-context prompt. Claude understands `/continue <id>`
|
|
66
|
+
* via its shipped skill — other agents fall through to an explicit instruction
|
|
67
|
+
* that points at the version-agnostic `agents sessions <id>` reader.
|
|
68
|
+
*/
|
|
69
|
+
export declare function buildFallbackPrompt(prevAgent: AgentId, prevSessionId: string | undefined, nextAgent: AgentId, originalPrompt: string): string;
|
|
70
|
+
/**
|
|
71
|
+
* Run an agent and, on rate-limit failure, cascade through the fallback chain.
|
|
72
|
+
*
|
|
73
|
+
* The primary agent gets the original prompt. Subsequent agents get a
|
|
74
|
+
* `/continue <id>`-style handoff (see buildFallbackPrompt) when we can pin a
|
|
75
|
+
* session ID — which today means Claude as primary (supports `--session-id`).
|
|
76
|
+
* For other primaries, fallbacks run with the original prompt plus a
|
|
77
|
+
* retry-with-context note, since we can't deterministically resolve their
|
|
78
|
+
* auto-generated session IDs.
|
|
79
|
+
*
|
|
80
|
+
* Only rate-limit failures cascade. Other errors (missing flag, auth failure,
|
|
81
|
+
* compile error) bubble up from the primary so the caller sees the real cause
|
|
82
|
+
* instead of an opaque "all agents failed" message.
|
|
83
|
+
*/
|
|
84
|
+
export declare function runWithFallback(options: FallbackOptions): Promise<number>;
|
|
85
|
+
//# sourceMappingURL=exec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/lib/exec.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAK1C,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAoBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAMlF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAAC,UAAU,CAsBpE;AAID,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,YAAY,GAAG,MAAM,CAAC;IAClC,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,oBAAoB,CAsHhE,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE,CAqF/D;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrE;AA8ED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,EASvC,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,oGAAoG;IACpG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,sFAAsF;IACtF,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CAqBR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0D/E"}
|
package/dist/lib/exec.js
ADDED
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
import { randomUUID } from 'crypto';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { parseTimeout } from './routines.js';
|
|
5
|
+
import { getVersionHomePath, isVersionInstalled, resolveVersion } from './versions.js';
|
|
6
|
+
import { resolveModel, buildReasoningFlags } from './models.js';
|
|
7
|
+
const EXEC_ENV_KEY_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
8
|
+
function parseExecEnvEntry(entry) {
|
|
9
|
+
const separatorIndex = entry.indexOf('=');
|
|
10
|
+
if (separatorIndex <= 0) {
|
|
11
|
+
throw new Error(`Invalid --env value "${entry}". Use KEY=VALUE.`);
|
|
12
|
+
}
|
|
13
|
+
const key = entry.slice(0, separatorIndex).trim();
|
|
14
|
+
const value = entry.slice(separatorIndex + 1);
|
|
15
|
+
if (!EXEC_ENV_KEY_PATTERN.test(key)) {
|
|
16
|
+
throw new Error(`Invalid environment variable name "${key}".`);
|
|
17
|
+
}
|
|
18
|
+
return [key, value];
|
|
19
|
+
}
|
|
20
|
+
export function parseExecEnv(entries) {
|
|
21
|
+
if (entries.length === 0) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
return Object.fromEntries(entries.map(parseExecEnvEntry));
|
|
25
|
+
}
|
|
26
|
+
export function buildExecEnv(options) {
|
|
27
|
+
const result = { ...process.env };
|
|
28
|
+
// CLAUDE_CONFIG_DIR is Claude-specific. When the caller is running inside
|
|
29
|
+
// a Claude-managed shell, process.env already carries it; spreading into a
|
|
30
|
+
// non-Claude agent's env would leak a config pointer that the target CLI
|
|
31
|
+
// doesn't understand. Strip it unless we're actually invoking Claude, and
|
|
32
|
+
// when we are, pin it to the resolved version's home.
|
|
33
|
+
if (options.agent === 'claude') {
|
|
34
|
+
const cwd = options.cwd || process.cwd();
|
|
35
|
+
const version = options.version || resolveVersion('claude', cwd);
|
|
36
|
+
if (version && isVersionInstalled('claude', version)) {
|
|
37
|
+
result.CLAUDE_CONFIG_DIR = path.join(getVersionHomePath('claude', version), '.claude');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
delete result.CLAUDE_CONFIG_DIR;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
...result,
|
|
45
|
+
...options.env,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export const AGENT_COMMANDS = {
|
|
49
|
+
claude: {
|
|
50
|
+
base: ['claude'],
|
|
51
|
+
promptFlag: '-p',
|
|
52
|
+
modeFlags: {
|
|
53
|
+
plan: ['--permission-mode', 'plan'],
|
|
54
|
+
edit: ['--permission-mode', 'acceptEdits'],
|
|
55
|
+
full: ['--dangerously-skip-permissions'],
|
|
56
|
+
},
|
|
57
|
+
jsonFlags: ['--output-format', 'stream-json', '--verbose'],
|
|
58
|
+
modelFlag: '--model',
|
|
59
|
+
printFlags: ['--print'],
|
|
60
|
+
verboseFlag: '--verbose',
|
|
61
|
+
},
|
|
62
|
+
codex: {
|
|
63
|
+
base: ['codex', 'exec'],
|
|
64
|
+
promptFlag: 'positional',
|
|
65
|
+
modeFlags: {
|
|
66
|
+
plan: ['--sandbox', 'workspace-write'],
|
|
67
|
+
edit: ['--sandbox', 'workspace-write', '--full-auto'],
|
|
68
|
+
full: ['--full-auto'],
|
|
69
|
+
},
|
|
70
|
+
jsonFlags: ['--json'],
|
|
71
|
+
modelFlag: '--model',
|
|
72
|
+
},
|
|
73
|
+
gemini: {
|
|
74
|
+
base: ['gemini'],
|
|
75
|
+
promptFlag: 'positional',
|
|
76
|
+
modeFlags: {
|
|
77
|
+
plan: [],
|
|
78
|
+
edit: ['--yolo'],
|
|
79
|
+
full: ['--yolo'],
|
|
80
|
+
},
|
|
81
|
+
jsonFlags: ['--output-format', 'stream-json'],
|
|
82
|
+
modelFlag: '--model',
|
|
83
|
+
},
|
|
84
|
+
cursor: {
|
|
85
|
+
base: ['cursor-agent'],
|
|
86
|
+
promptFlag: '-p',
|
|
87
|
+
modeFlags: {
|
|
88
|
+
plan: [],
|
|
89
|
+
edit: ['-f'],
|
|
90
|
+
full: ['-f'],
|
|
91
|
+
},
|
|
92
|
+
jsonFlags: ['--output-format', 'stream-json'],
|
|
93
|
+
modelFlag: '--model',
|
|
94
|
+
},
|
|
95
|
+
opencode: {
|
|
96
|
+
base: ['opencode', 'run'],
|
|
97
|
+
promptFlag: 'positional',
|
|
98
|
+
modeFlags: {
|
|
99
|
+
plan: ['--agent', 'plan'],
|
|
100
|
+
edit: ['--agent', 'build'],
|
|
101
|
+
full: ['--agent', 'build'],
|
|
102
|
+
},
|
|
103
|
+
jsonFlags: ['--format', 'json'],
|
|
104
|
+
modelFlag: '--model',
|
|
105
|
+
},
|
|
106
|
+
openclaw: {
|
|
107
|
+
base: ['openclaw'],
|
|
108
|
+
promptFlag: 'positional',
|
|
109
|
+
modeFlags: {
|
|
110
|
+
plan: ['--mode', 'plan'],
|
|
111
|
+
edit: ['--mode', 'edit'],
|
|
112
|
+
full: ['--mode', 'full'],
|
|
113
|
+
},
|
|
114
|
+
jsonFlags: ['--output-format', 'stream-json'],
|
|
115
|
+
modelFlag: '--model',
|
|
116
|
+
},
|
|
117
|
+
copilot: {
|
|
118
|
+
base: ['copilot'],
|
|
119
|
+
promptFlag: 'positional',
|
|
120
|
+
modeFlags: {
|
|
121
|
+
plan: [],
|
|
122
|
+
edit: [],
|
|
123
|
+
full: [],
|
|
124
|
+
},
|
|
125
|
+
modelFlag: '--model',
|
|
126
|
+
},
|
|
127
|
+
amp: {
|
|
128
|
+
base: ['amp'],
|
|
129
|
+
promptFlag: 'positional',
|
|
130
|
+
modeFlags: {
|
|
131
|
+
plan: ['--mode', 'plan'],
|
|
132
|
+
edit: ['--mode', 'edit'],
|
|
133
|
+
full: ['--mode', 'edit'],
|
|
134
|
+
},
|
|
135
|
+
modelFlag: '--model',
|
|
136
|
+
},
|
|
137
|
+
kiro: {
|
|
138
|
+
base: ['kiro-cli'],
|
|
139
|
+
promptFlag: 'positional',
|
|
140
|
+
modeFlags: {
|
|
141
|
+
plan: [],
|
|
142
|
+
edit: [],
|
|
143
|
+
full: [],
|
|
144
|
+
},
|
|
145
|
+
modelFlag: '--model',
|
|
146
|
+
},
|
|
147
|
+
goose: {
|
|
148
|
+
base: ['goose', 'run'],
|
|
149
|
+
promptFlag: 'positional',
|
|
150
|
+
modeFlags: {
|
|
151
|
+
plan: [],
|
|
152
|
+
edit: [],
|
|
153
|
+
full: [],
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
roo: {
|
|
157
|
+
base: ['roo'],
|
|
158
|
+
promptFlag: 'positional',
|
|
159
|
+
modeFlags: {
|
|
160
|
+
plan: ['--mode', 'architect'],
|
|
161
|
+
edit: ['--mode', 'code'],
|
|
162
|
+
full: ['--mode', 'code'],
|
|
163
|
+
},
|
|
164
|
+
modelFlag: '--model',
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
export function buildExecCommand(options) {
|
|
168
|
+
const template = AGENT_COMMANDS[options.agent];
|
|
169
|
+
const cmd = [...template.base];
|
|
170
|
+
const interactive = options.prompt === undefined;
|
|
171
|
+
// Use versioned alias if a specific version was requested (e.g., claude@2.1.98)
|
|
172
|
+
if (options.version && cmd.length > 0) {
|
|
173
|
+
cmd[0] = `${cmd[0]}@${options.version}`;
|
|
174
|
+
}
|
|
175
|
+
// Add reasoning effort flags (before mode flags for codex -c positioning)
|
|
176
|
+
// For codex, -c must come before 'exec' subcommand, so we insert at position 1
|
|
177
|
+
if (options.effort !== 'auto') {
|
|
178
|
+
const reasoningFlags = buildReasoningFlags(options.agent, options.effort);
|
|
179
|
+
if (reasoningFlags.length > 0) {
|
|
180
|
+
if (options.agent === 'codex') {
|
|
181
|
+
// Insert after 'codex' (or 'codex@version') but before 'exec'
|
|
182
|
+
cmd.splice(1, 0, ...reasoningFlags);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
// For other agents, append after base
|
|
186
|
+
cmd.push(...reasoningFlags);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// Add mode flags
|
|
191
|
+
const modeFlags = template.modeFlags[options.mode];
|
|
192
|
+
cmd.push(...modeFlags);
|
|
193
|
+
// Add print/headless flags only when a prompt is provided. Without a prompt
|
|
194
|
+
// the caller wants an interactive REPL — passing --print would immediately
|
|
195
|
+
// wait on stdin and never render the TUI.
|
|
196
|
+
if (!interactive && options.headless && template.printFlags) {
|
|
197
|
+
cmd.push(...template.printFlags);
|
|
198
|
+
}
|
|
199
|
+
// Add session ID (Claude only)
|
|
200
|
+
if (options.sessionId && options.agent === 'claude') {
|
|
201
|
+
cmd.push('--session-id', options.sessionId);
|
|
202
|
+
}
|
|
203
|
+
// Add model (only if explicitly provided by user)
|
|
204
|
+
if (options.model && template.modelFlag) {
|
|
205
|
+
const effectiveVersion = options.version || resolveVersion(options.agent, options.cwd || process.cwd());
|
|
206
|
+
if (effectiveVersion) {
|
|
207
|
+
const resolved = resolveModel(options.agent, effectiveVersion, options.model);
|
|
208
|
+
if (resolved.warning) {
|
|
209
|
+
process.stderr.write(`[agents] ${resolved.warning}\n`);
|
|
210
|
+
}
|
|
211
|
+
cmd.push(template.modelFlag, resolved.forwarded);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
cmd.push(template.modelFlag, options.model);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Add JSON output flags if requested
|
|
218
|
+
if (options.json && template.jsonFlags) {
|
|
219
|
+
cmd.push(...template.jsonFlags);
|
|
220
|
+
}
|
|
221
|
+
// Add verbose flag independently of JSON
|
|
222
|
+
if (options.verbose && template.verboseFlag) {
|
|
223
|
+
// Avoid duplicate if jsonFlags already included --verbose
|
|
224
|
+
if (!(options.json && template.jsonFlags?.includes(template.verboseFlag))) {
|
|
225
|
+
cmd.push(template.verboseFlag);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Add prompt (skipped in interactive mode so the CLI launches its TUI)
|
|
229
|
+
if (!interactive) {
|
|
230
|
+
if (template.promptFlag === 'positional') {
|
|
231
|
+
cmd.push(options.prompt);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
cmd.push(template.promptFlag, options.prompt);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Claude-specific: add dirs
|
|
238
|
+
if (options.agent === 'claude' && options.addDirs) {
|
|
239
|
+
for (const dir of options.addDirs) {
|
|
240
|
+
cmd.push('--add-dir', dir);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return cmd;
|
|
244
|
+
}
|
|
245
|
+
export async function execAgent(options) {
|
|
246
|
+
const { exitCode } = await spawnAgent(options);
|
|
247
|
+
return exitCode;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Spawn an agent process and return its exit code plus a tee'd copy of stderr.
|
|
251
|
+
*
|
|
252
|
+
* Stderr is always piped so the caller can inspect it (e.g., for rate-limit
|
|
253
|
+
* detection) while also forwarding every chunk to process.stderr in real time —
|
|
254
|
+
* the user sees the same output they would with stdio: 'inherit'. Stdout keeps
|
|
255
|
+
* the original behavior: 'pipe' when downstream output is piped (so `agents
|
|
256
|
+
* run ... | ...` composes cleanly), otherwise 'inherit' so TTY output is
|
|
257
|
+
* unbuffered.
|
|
258
|
+
*/
|
|
259
|
+
async function spawnAgent(options) {
|
|
260
|
+
const cmd = buildExecCommand(options);
|
|
261
|
+
const [executable, ...args] = cmd;
|
|
262
|
+
const timeoutMs = options.timeout ? parseTimeout(options.timeout) : undefined;
|
|
263
|
+
const piped = !process.stdout.isTTY;
|
|
264
|
+
const interactive = options.prompt === undefined;
|
|
265
|
+
return new Promise((resolve, reject) => {
|
|
266
|
+
// Interactive mode inherits all stdio so the CLI owns the TTY (TUI
|
|
267
|
+
// rendering, raw-mode keystrokes, colored output). Headless mode pipes
|
|
268
|
+
// stderr so we can scan for rate limits and feed fallback. stdout stays
|
|
269
|
+
// inherited for TTY, piped when the caller pipes us downstream.
|
|
270
|
+
const stdio = interactive
|
|
271
|
+
? ['inherit', 'inherit', 'inherit']
|
|
272
|
+
: ['inherit', piped ? 'pipe' : 'inherit', 'pipe'];
|
|
273
|
+
const child = spawn(executable, args, {
|
|
274
|
+
cwd: options.cwd || process.cwd(),
|
|
275
|
+
stdio,
|
|
276
|
+
env: buildExecEnv(options),
|
|
277
|
+
shell: false,
|
|
278
|
+
});
|
|
279
|
+
if (!interactive && piped && child.stdout) {
|
|
280
|
+
child.stdout.pipe(process.stdout);
|
|
281
|
+
}
|
|
282
|
+
let stderrBuffer = '';
|
|
283
|
+
const STDERR_BUFFER_CAP = 64 * 1024;
|
|
284
|
+
if (!interactive && child.stderr) {
|
|
285
|
+
child.stderr.on('data', (chunk) => {
|
|
286
|
+
process.stderr.write(chunk);
|
|
287
|
+
if (stderrBuffer.length < STDERR_BUFFER_CAP) {
|
|
288
|
+
stderrBuffer += chunk.toString('utf-8');
|
|
289
|
+
if (stderrBuffer.length > STDERR_BUFFER_CAP) {
|
|
290
|
+
stderrBuffer = stderrBuffer.slice(-STDERR_BUFFER_CAP);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
let timer;
|
|
296
|
+
if (timeoutMs) {
|
|
297
|
+
timer = setTimeout(() => {
|
|
298
|
+
child.kill('SIGTERM');
|
|
299
|
+
setTimeout(() => child.kill('SIGKILL'), 5000);
|
|
300
|
+
}, timeoutMs);
|
|
301
|
+
}
|
|
302
|
+
child.on('error', (err) => {
|
|
303
|
+
if (timer)
|
|
304
|
+
clearTimeout(timer);
|
|
305
|
+
reject(err);
|
|
306
|
+
});
|
|
307
|
+
child.on('close', (code) => {
|
|
308
|
+
if (timer)
|
|
309
|
+
clearTimeout(timer);
|
|
310
|
+
resolve({ exitCode: code ?? 0, stderr: stderrBuffer });
|
|
311
|
+
});
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Patterns that indicate a rate/usage limit. Matching is intentionally broad
|
|
316
|
+
* because providers phrase these differently — Anthropic uses "5-hour limit"
|
|
317
|
+
* and "rate limit", OpenAI surfaces 429s, Google says "quota exceeded".
|
|
318
|
+
* False positives here just trigger a fallback attempt; false negatives leave
|
|
319
|
+
* the original error unhandled, which is worse.
|
|
320
|
+
*/
|
|
321
|
+
export const RATE_LIMIT_PATTERNS = [
|
|
322
|
+
/rate[\s-]?limit/i,
|
|
323
|
+
/usage[\s-]?limit/i,
|
|
324
|
+
/quota\s*(exceeded|reached|limit)/i,
|
|
325
|
+
/\b429\b/,
|
|
326
|
+
/5[\s-]?hour[\s-]?limit/i,
|
|
327
|
+
/too many requests/i,
|
|
328
|
+
/api[\s_-]?overloaded/i,
|
|
329
|
+
/\boverloaded\b/i,
|
|
330
|
+
];
|
|
331
|
+
export function detectRateLimit(text) {
|
|
332
|
+
return RATE_LIMIT_PATTERNS.some(pattern => pattern.test(text));
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Build the prompt handed to the fallback agent when the primary was stopped
|
|
336
|
+
* mid-task by a rate limit.
|
|
337
|
+
*
|
|
338
|
+
* When the prior agent was Claude we pin its session ID via `--session-id` so
|
|
339
|
+
* `prevSessionId` is always defined; for other primaries we pass undefined and
|
|
340
|
+
* get a simpler retry-with-context prompt. Claude understands `/continue <id>`
|
|
341
|
+
* via its shipped skill — other agents fall through to an explicit instruction
|
|
342
|
+
* that points at the version-agnostic `agents sessions <id>` reader.
|
|
343
|
+
*/
|
|
344
|
+
export function buildFallbackPrompt(prevAgent, prevSessionId, nextAgent, originalPrompt) {
|
|
345
|
+
if (nextAgent === 'claude' && prevSessionId) {
|
|
346
|
+
return `/continue ${prevSessionId}`;
|
|
347
|
+
}
|
|
348
|
+
const lines = [
|
|
349
|
+
`The previous ${prevAgent} session was interrupted by a rate limit.`,
|
|
350
|
+
];
|
|
351
|
+
if (prevSessionId) {
|
|
352
|
+
lines.push(``, `Prior session ID: ${prevSessionId}`, `Read the transcript by running: agents sessions ${prevSessionId}`);
|
|
353
|
+
}
|
|
354
|
+
lines.push(``, `Original request: ${originalPrompt}`, ``, `Continue from where the prior agent left off.`);
|
|
355
|
+
return lines.join('\n');
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Run an agent and, on rate-limit failure, cascade through the fallback chain.
|
|
359
|
+
*
|
|
360
|
+
* The primary agent gets the original prompt. Subsequent agents get a
|
|
361
|
+
* `/continue <id>`-style handoff (see buildFallbackPrompt) when we can pin a
|
|
362
|
+
* session ID — which today means Claude as primary (supports `--session-id`).
|
|
363
|
+
* For other primaries, fallbacks run with the original prompt plus a
|
|
364
|
+
* retry-with-context note, since we can't deterministically resolve their
|
|
365
|
+
* auto-generated session IDs.
|
|
366
|
+
*
|
|
367
|
+
* Only rate-limit failures cascade. Other errors (missing flag, auth failure,
|
|
368
|
+
* compile error) bubble up from the primary so the caller sees the real cause
|
|
369
|
+
* instead of an opaque "all agents failed" message.
|
|
370
|
+
*/
|
|
371
|
+
export async function runWithFallback(options) {
|
|
372
|
+
const chain = [
|
|
373
|
+
{ agent: options.agent, version: options.version },
|
|
374
|
+
...options.fallback,
|
|
375
|
+
];
|
|
376
|
+
let prevAgent;
|
|
377
|
+
let prevSessionId;
|
|
378
|
+
for (let i = 0; i < chain.length; i++) {
|
|
379
|
+
const { agent, version } = chain[i];
|
|
380
|
+
const pinnedSessionId = agent === 'claude' ? randomUUID() : undefined;
|
|
381
|
+
const prompt = prevAgent
|
|
382
|
+
? buildFallbackPrompt(prevAgent, prevSessionId, agent, options.prompt)
|
|
383
|
+
: options.prompt;
|
|
384
|
+
const execOpts = {
|
|
385
|
+
...options,
|
|
386
|
+
agent,
|
|
387
|
+
version,
|
|
388
|
+
prompt,
|
|
389
|
+
sessionId: pinnedSessionId ?? (i === 0 ? options.sessionId : undefined),
|
|
390
|
+
};
|
|
391
|
+
const label = version ? `${agent}@${version}` : agent;
|
|
392
|
+
const banner = i === 0
|
|
393
|
+
? `[agents] running ${label}`
|
|
394
|
+
: `[agents] fallback → ${label}`;
|
|
395
|
+
process.stderr.write(`${banner}${pinnedSessionId ? ` (session ${pinnedSessionId.slice(0, 8)})` : ''}\n`);
|
|
396
|
+
let result;
|
|
397
|
+
try {
|
|
398
|
+
result = await spawnAgent(execOpts);
|
|
399
|
+
}
|
|
400
|
+
catch (err) {
|
|
401
|
+
if (err.code === 'ENOENT' && i > 0) {
|
|
402
|
+
process.stderr.write(`[agents] ${label} not installed, skipping\n`);
|
|
403
|
+
continue;
|
|
404
|
+
}
|
|
405
|
+
throw err;
|
|
406
|
+
}
|
|
407
|
+
if (result.exitCode === 0)
|
|
408
|
+
return 0;
|
|
409
|
+
const isLast = i === chain.length - 1;
|
|
410
|
+
if (isLast)
|
|
411
|
+
return result.exitCode;
|
|
412
|
+
if (!detectRateLimit(result.stderr)) {
|
|
413
|
+
return result.exitCode;
|
|
414
|
+
}
|
|
415
|
+
const next = chain[i + 1];
|
|
416
|
+
const nextLabel = next.version ? `${next.agent}@${next.version}` : next.agent;
|
|
417
|
+
process.stderr.write(`[agents] ${label} hit rate limit. Handing off to ${nextLabel}...\n`);
|
|
418
|
+
prevAgent = agent;
|
|
419
|
+
prevSessionId = pinnedSessionId;
|
|
420
|
+
}
|
|
421
|
+
return 1;
|
|
422
|
+
}
|
|
423
|
+
//# sourceMappingURL=exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/lib/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export interface DaemonConfig {
|
|
2
|
+
nodeId?: string;
|
|
3
|
+
nodeToken?: string;
|
|
4
|
+
endpoint?: string;
|
|
5
|
+
lastSync?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function loadDaemonConfig(): DaemonConfig;
|
|
8
|
+
export declare function saveDaemonConfig(config: DaemonConfig): void;
|
|
9
|
+
export interface SessionData {
|
|
10
|
+
id: string;
|
|
11
|
+
agent: string;
|
|
12
|
+
version?: string;
|
|
13
|
+
project?: string;
|
|
14
|
+
branch?: string;
|
|
15
|
+
prompt?: string;
|
|
16
|
+
workingDir?: string;
|
|
17
|
+
pid?: number;
|
|
18
|
+
startedAt?: number;
|
|
19
|
+
summary?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface SyncRequest {
|
|
22
|
+
activeSessions: SessionData[];
|
|
23
|
+
completedSessions?: SessionData[];
|
|
24
|
+
machineStats?: {
|
|
25
|
+
cpuUsage?: number;
|
|
26
|
+
memoryUsage?: number;
|
|
27
|
+
agentVersions?: Record<string, string>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface SyncResponse {
|
|
31
|
+
acknowledged: number;
|
|
32
|
+
commands?: Array<{
|
|
33
|
+
type: 'stop_session' | 'start_task';
|
|
34
|
+
sessionId?: string;
|
|
35
|
+
prompt?: string;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
export interface RegisterResponse {
|
|
39
|
+
nodeId: string;
|
|
40
|
+
token: string;
|
|
41
|
+
message: string;
|
|
42
|
+
}
|
|
43
|
+
export declare class FactoryClient {
|
|
44
|
+
private endpoint;
|
|
45
|
+
private nodeToken;
|
|
46
|
+
private nodeId?;
|
|
47
|
+
constructor(endpoint: string, nodeToken: string, nodeId?: string);
|
|
48
|
+
register(): Promise<RegisterResponse>;
|
|
49
|
+
sync(nodeId: string, data: SyncRequest): Promise<SyncResponse>;
|
|
50
|
+
healthCheck(): Promise<boolean>;
|
|
51
|
+
}
|
|
52
|
+
export declare function getMachineStats(): {
|
|
53
|
+
cpuUsage?: number;
|
|
54
|
+
memoryUsage?: number;
|
|
55
|
+
};
|
|
56
|
+
export declare function getAgentVersions(): Promise<Record<string, string>>;
|
|
57
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lib/factory.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,wBAAgB,gBAAgB,IAAI,YAAY,CAU/C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAG3D;AAID,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,cAAc,GAAG,YAAY,CAAC;QACpC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAM1D,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAuBrC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAkB9D,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAQtC;AAGD,wBAAgB,eAAe,IAAI;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAS7E;AAGD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAuBxE"}
|