@phnx-labs/agents-cli 0.1.0 → 1.14.1
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 +7 -1
- package/README.md +283 -372
- package/dist/commands/alias.d.ts +11 -0
- package/dist/commands/alias.js +117 -0
- package/dist/commands/beta.d.ts +2 -0
- package/dist/commands/beta.js +53 -0
- package/dist/commands/cloud.d.ts +8 -1
- package/dist/commands/cloud.js +108 -22
- package/dist/commands/commands.d.ts +9 -1
- package/dist/commands/commands.js +24 -172
- package/dist/commands/daemon.d.ts +8 -1
- package/dist/commands/daemon.js +13 -5
- package/dist/commands/doctor.d.ts +15 -0
- package/dist/commands/doctor.js +132 -0
- package/dist/commands/drive.d.ts +8 -1
- package/dist/commands/drive.js +20 -3
- package/dist/commands/exec.d.ts +8 -1
- package/dist/commands/exec.js +96 -27
- package/dist/commands/factory.d.ts +19 -0
- package/dist/commands/factory.js +71 -0
- package/dist/commands/fork.d.ts +8 -1
- package/dist/commands/fork.js +11 -4
- package/dist/commands/hooks.d.ts +9 -1
- package/dist/commands/hooks.js +30 -182
- package/dist/commands/init.d.ts +15 -1
- package/dist/commands/init.js +168 -74
- package/dist/commands/mcp.d.ts +9 -1
- package/dist/commands/mcp.js +11 -7
- package/dist/commands/models.d.ts +8 -1
- package/dist/commands/models.js +16 -4
- package/dist/commands/packages.d.ts +8 -1
- package/dist/commands/packages.js +13 -7
- package/dist/commands/permissions.d.ts +9 -1
- package/dist/commands/permissions.js +3 -3
- package/dist/commands/plugins.d.ts +8 -1
- package/dist/commands/plugins.js +13 -2
- package/dist/commands/profiles.d.ts +9 -1
- package/dist/commands/profiles.js +56 -7
- package/dist/commands/prune.d.ts +22 -0
- package/dist/commands/prune.js +191 -0
- package/dist/commands/pty.d.ts +1 -1
- package/dist/commands/pty.js +2 -1
- package/dist/commands/pull.d.ts +8 -1
- package/dist/commands/pull.js +58 -128
- package/dist/commands/refresh-memory.d.ts +7 -1
- package/dist/commands/refresh-memory.js +7 -1
- package/dist/commands/repo.d.ts +15 -0
- package/dist/commands/repo.js +570 -0
- package/dist/commands/resource-view.d.ts +10 -3
- package/dist/commands/resource-view.js +18 -5
- package/dist/commands/routines.d.ts +8 -1
- package/dist/commands/routines.js +17 -4
- package/dist/commands/rules.d.ts +9 -1
- package/dist/commands/rules.js +16 -11
- package/dist/commands/secrets.d.ts +8 -1
- package/dist/commands/secrets.js +235 -63
- package/dist/commands/sessions-picker.d.ts +2 -1
- package/dist/commands/sessions-picker.js +88 -11
- package/dist/commands/sessions-tail.d.ts +19 -0
- package/dist/commands/sessions-tail.js +235 -0
- package/dist/commands/sessions.d.ts +2 -1
- package/dist/commands/sessions.js +188 -7
- package/dist/commands/skills.d.ts +9 -1
- package/dist/commands/skills.js +28 -178
- package/dist/commands/status.d.ts +7 -1
- package/dist/commands/status.js +7 -1
- package/dist/commands/subagents.d.ts +8 -1
- package/dist/commands/subagents.js +11 -1
- package/dist/commands/sync.d.ts +8 -1
- package/dist/commands/sync.js +8 -1
- package/dist/commands/teams-picker.d.ts +4 -1
- package/dist/commands/teams-picker.js +55 -3
- package/dist/commands/teams.d.ts +15 -1
- package/dist/commands/teams.js +323 -69
- package/dist/commands/usage.d.ts +11 -0
- package/dist/commands/usage.js +60 -0
- package/dist/commands/utils.d.ts +6 -1
- package/dist/commands/utils.js +6 -1
- package/dist/commands/versions.d.ts +8 -1
- package/dist/commands/versions.js +4 -3
- package/dist/commands/view.d.ts +47 -2
- package/dist/commands/view.js +317 -24
- package/dist/index.d.ts +7 -2
- package/dist/index.js +172 -34
- package/dist/lib/acp/client.d.ts +31 -0
- package/dist/lib/acp/client.js +117 -0
- package/dist/lib/acp/harnesses.d.ts +26 -0
- package/dist/lib/acp/harnesses.js +65 -0
- package/dist/lib/acp/run.d.ts +18 -0
- package/dist/lib/acp/run.js +39 -0
- package/dist/lib/agents.d.ts +74 -2
- package/dist/lib/agents.js +197 -21
- package/dist/lib/artifact-actions.d.ts +8 -4
- package/dist/lib/artifact-actions.js +8 -6
- package/dist/lib/auto-pull-worker.d.ts +11 -0
- package/dist/lib/auto-pull-worker.js +121 -0
- package/dist/lib/auto-pull.d.ts +31 -0
- package/dist/lib/auto-pull.js +97 -0
- package/dist/lib/beta.d.ts +23 -0
- package/dist/lib/beta.js +90 -0
- package/dist/lib/capabilities.d.ts +29 -0
- package/dist/lib/capabilities.js +74 -0
- package/dist/lib/cloud/codex.d.ts +9 -3
- package/dist/lib/cloud/codex.js +53 -13
- package/dist/lib/cloud/factory.d.ts +8 -3
- package/dist/lib/cloud/factory.js +19 -3
- package/dist/lib/cloud/registry.d.ts +10 -1
- package/dist/lib/cloud/registry.js +14 -3
- package/dist/lib/cloud/rush.d.ts +63 -3
- package/dist/lib/cloud/rush.js +273 -20
- package/dist/lib/cloud/store.d.ts +13 -1
- package/dist/lib/cloud/store.js +23 -4
- package/dist/lib/cloud/stream.d.ts +6 -1
- package/dist/lib/cloud/stream.js +95 -39
- package/dist/lib/cloud/types.d.ts +153 -8
- package/dist/lib/cloud/types.js +34 -2
- package/dist/lib/command-skills.d.ts +20 -0
- package/dist/lib/command-skills.js +142 -0
- package/dist/lib/commands.d.ts +22 -2
- package/dist/lib/commands.js +51 -11
- package/dist/lib/convert.d.ts +10 -1
- package/dist/lib/convert.js +9 -1
- package/dist/lib/daemon.d.ts +21 -1
- package/dist/lib/daemon.js +97 -4
- package/dist/lib/drive-sync.d.ts +18 -1
- package/dist/lib/drive-sync.js +57 -15
- package/dist/lib/exec.d.ts +23 -6
- package/dist/lib/exec.js +53 -17
- package/dist/lib/fs-walk.d.ts +2 -0
- package/dist/lib/fs-walk.js +40 -0
- package/dist/lib/fuzzy.d.ts +53 -0
- package/dist/lib/fuzzy.js +72 -0
- package/dist/lib/gemini-settings.d.ts +4 -0
- package/dist/lib/gemini-settings.js +33 -0
- package/dist/lib/git.d.ts +12 -2
- package/dist/lib/git.js +17 -6
- package/dist/lib/help.d.ts +20 -1
- package/dist/lib/help.js +45 -6
- package/dist/lib/hooks/match.d.ts +32 -0
- package/dist/lib/hooks/match.js +120 -0
- package/dist/lib/hooks.d.ts +17 -4
- package/dist/lib/hooks.js +119 -101
- package/dist/lib/manifest.d.ts +6 -1
- package/dist/lib/manifest.js +15 -4
- package/dist/lib/markdown.d.ts +0 -1
- package/dist/lib/markdown.js +6 -1
- package/dist/lib/mcp.d.ts +0 -1
- package/dist/lib/mcp.js +29 -33
- package/dist/lib/memory-compile.d.ts +13 -3
- package/dist/lib/memory-compile.js +31 -9
- package/dist/lib/memory.d.ts +14 -7
- package/dist/lib/memory.js +67 -38
- package/dist/lib/migrate.d.ts +8 -0
- package/dist/lib/migrate.js +85 -0
- package/dist/lib/models.d.ts +10 -4
- package/dist/lib/models.js +36 -15
- package/dist/lib/onepassword.d.ts +63 -0
- package/dist/lib/onepassword.js +186 -0
- package/dist/lib/paths.d.ts +8 -0
- package/dist/lib/paths.js +20 -0
- package/dist/lib/permissions.d.ts +24 -2
- package/dist/lib/permissions.js +117 -48
- package/dist/lib/picker.d.ts +10 -1
- package/dist/lib/picker.js +15 -1
- package/dist/lib/plugins.d.ts +7 -1
- package/dist/lib/plugins.js +10 -1
- package/dist/lib/profiles-presets.d.ts +10 -1
- package/dist/lib/profiles-presets.js +9 -1
- package/dist/lib/profiles.d.ts +35 -1
- package/dist/lib/profiles.js +36 -15
- package/dist/lib/pty-client.d.ts +1 -1
- package/dist/lib/pty-client.js +0 -1
- package/dist/lib/pty-server.d.ts +16 -2
- package/dist/lib/pty-server.js +92 -3
- package/dist/lib/registry.d.ts +23 -3
- package/dist/lib/registry.js +153 -8
- package/dist/lib/resources.d.ts +28 -1
- package/dist/lib/resources.js +79 -1
- package/dist/lib/rotate.d.ts +40 -13
- package/dist/lib/rotate.js +238 -40
- package/dist/lib/routines.d.ts +29 -1
- package/dist/lib/routines.js +32 -5
- package/dist/lib/runner.d.ts +14 -1
- package/dist/lib/runner.js +22 -3
- package/dist/lib/sandbox.d.ts +16 -1
- package/dist/lib/sandbox.js +39 -16
- package/dist/lib/scheduler.d.ts +8 -1
- package/dist/lib/scheduler.js +8 -1
- package/dist/lib/secrets/AgentsKeychain.app/Contents/CodeResources +0 -0
- package/dist/lib/secrets/AgentsKeychain.app/Contents/Info.plist +22 -0
- package/dist/lib/secrets/AgentsKeychain.app/Contents/MacOS/AgentsKeychain +0 -0
- package/dist/lib/secrets/AgentsKeychain.app/Contents/_CodeSignature/CodeResources +123 -0
- package/dist/lib/secrets/AgentsKeychain.app/Contents/embedded.provisionprofile +0 -0
- package/dist/lib/{secrets-bundles.d.ts → secrets/bundles.d.ts} +12 -2
- package/dist/lib/{secrets-bundles.js → secrets/bundles.js} +38 -17
- package/dist/lib/secrets/index.d.ts +55 -0
- package/dist/lib/secrets/index.js +211 -0
- package/dist/lib/secrets/profiles.d.ts +10 -0
- package/dist/lib/secrets/profiles.js +13 -0
- package/dist/lib/session/active.d.ts +43 -0
- package/dist/lib/session/active.js +392 -0
- package/dist/lib/session/artifacts.d.ts +12 -1
- package/dist/lib/session/artifacts.js +25 -5
- package/dist/lib/session/cloud.d.ts +30 -0
- package/dist/lib/session/cloud.js +121 -0
- package/dist/lib/session/db.d.ts +23 -2
- package/dist/lib/session/db.js +76 -12
- package/dist/lib/session/discover.d.ts +19 -4
- package/dist/lib/session/discover.js +344 -48
- package/dist/lib/session/parse.d.ts +28 -1
- package/dist/lib/session/parse.js +267 -9
- package/dist/lib/session/prompt.d.ts +9 -1
- package/dist/lib/session/prompt.js +17 -3
- package/dist/lib/session/render.d.ts +13 -1
- package/dist/lib/session/render.js +20 -1
- package/dist/lib/session/team-filter.d.ts +9 -1
- package/dist/lib/session/team-filter.js +11 -2
- package/dist/lib/session/types.d.ts +16 -2
- package/dist/lib/session/types.js +10 -2
- package/dist/lib/shims.d.ts +64 -5
- package/dist/lib/shims.js +309 -47
- package/dist/lib/skills.d.ts +27 -2
- package/dist/lib/skills.js +127 -65
- package/dist/lib/sqlite.d.ts +43 -0
- package/dist/lib/sqlite.js +94 -0
- package/dist/lib/state.d.ts +112 -27
- package/dist/lib/state.js +320 -148
- package/dist/lib/subagents.d.ts +9 -1
- package/dist/lib/subagents.js +70 -63
- package/dist/lib/sync-manifest.d.ts +81 -0
- package/dist/lib/sync-manifest.js +450 -0
- package/dist/lib/teams/agents.d.ts +103 -5
- package/dist/lib/teams/agents.js +414 -91
- package/dist/lib/teams/api.d.ts +26 -3
- package/dist/lib/teams/api.js +63 -3
- package/dist/lib/teams/debug.d.ts +6 -1
- package/dist/lib/teams/debug.js +6 -1
- package/dist/lib/teams/file_ops.d.ts +7 -1
- package/dist/lib/teams/file_ops.js +7 -1
- package/dist/lib/teams/index.d.ts +15 -0
- package/dist/lib/teams/index.js +14 -0
- package/dist/lib/teams/parsers.d.ts +4 -1
- package/dist/lib/teams/parsers.js +11 -1
- package/dist/lib/teams/persistence.d.ts +15 -1
- package/dist/lib/teams/persistence.js +102 -20
- package/dist/lib/teams/registry.d.ts +12 -1
- package/dist/lib/teams/registry.js +116 -33
- package/dist/lib/teams/summarizer.d.ts +15 -1
- package/dist/lib/teams/summarizer.js +14 -1
- package/dist/lib/teams/supervisor.d.ts +48 -0
- package/dist/lib/teams/supervisor.js +73 -0
- package/dist/lib/template.d.ts +8 -6
- package/dist/lib/template.js +8 -6
- package/dist/lib/types.d.ts +147 -8
- package/dist/lib/types.js +26 -3
- package/dist/lib/usage.d.ts +32 -1
- package/dist/lib/usage.js +70 -6
- package/dist/lib/version-duplicates.d.ts +21 -0
- package/dist/lib/version-duplicates.js +90 -0
- package/dist/lib/versions.d.ts +33 -4
- package/dist/lib/versions.js +376 -108
- package/package.json +32 -17
- package/scripts/postinstall.js +126 -30
- package/dist/commands/__tests__/sessions.test.d.ts +0 -2
- package/dist/commands/__tests__/sessions.test.d.ts.map +0 -1
- package/dist/commands/__tests__/sessions.test.js +0 -636
- package/dist/commands/__tests__/sessions.test.js.map +0 -1
- package/dist/commands/cloud.d.ts.map +0 -1
- package/dist/commands/cloud.js.map +0 -1
- package/dist/commands/commands.d.ts.map +0 -1
- package/dist/commands/commands.js.map +0 -1
- package/dist/commands/daemon.d.ts.map +0 -1
- package/dist/commands/daemon.js.map +0 -1
- package/dist/commands/drive.d.ts.map +0 -1
- package/dist/commands/drive.js.map +0 -1
- package/dist/commands/exec.d.ts.map +0 -1
- package/dist/commands/exec.js.map +0 -1
- package/dist/commands/fork.d.ts.map +0 -1
- package/dist/commands/fork.js.map +0 -1
- package/dist/commands/hooks.d.ts.map +0 -1
- package/dist/commands/hooks.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/mcp.d.ts.map +0 -1
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/models.d.ts.map +0 -1
- package/dist/commands/models.js.map +0 -1
- package/dist/commands/packages.d.ts.map +0 -1
- package/dist/commands/packages.js.map +0 -1
- package/dist/commands/permissions.d.ts.map +0 -1
- package/dist/commands/permissions.js.map +0 -1
- package/dist/commands/plugins.d.ts.map +0 -1
- package/dist/commands/plugins.js.map +0 -1
- package/dist/commands/profiles.d.ts.map +0 -1
- package/dist/commands/profiles.js.map +0 -1
- package/dist/commands/pty.d.ts.map +0 -1
- package/dist/commands/pty.js.map +0 -1
- package/dist/commands/pull.d.ts.map +0 -1
- package/dist/commands/pull.js.map +0 -1
- package/dist/commands/push.d.ts +0 -3
- package/dist/commands/push.d.ts.map +0 -1
- package/dist/commands/push.js +0 -180
- package/dist/commands/push.js.map +0 -1
- package/dist/commands/refresh-memory.d.ts.map +0 -1
- package/dist/commands/refresh-memory.js.map +0 -1
- package/dist/commands/resource-view.d.ts.map +0 -1
- package/dist/commands/resource-view.js.map +0 -1
- package/dist/commands/routines.d.ts.map +0 -1
- package/dist/commands/routines.js.map +0 -1
- package/dist/commands/rules.d.ts.map +0 -1
- package/dist/commands/rules.js.map +0 -1
- package/dist/commands/secrets.d.ts.map +0 -1
- package/dist/commands/secrets.js.map +0 -1
- package/dist/commands/sessions-picker.d.ts.map +0 -1
- package/dist/commands/sessions-picker.js.map +0 -1
- package/dist/commands/sessions.d.ts.map +0 -1
- package/dist/commands/sessions.js.map +0 -1
- package/dist/commands/skills.d.ts.map +0 -1
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/subagents.d.ts.map +0 -1
- package/dist/commands/subagents.js.map +0 -1
- package/dist/commands/sync.d.ts.map +0 -1
- package/dist/commands/sync.js.map +0 -1
- package/dist/commands/teams-picker.d.ts.map +0 -1
- package/dist/commands/teams-picker.js.map +0 -1
- package/dist/commands/teams.d.ts.map +0 -1
- package/dist/commands/teams.js.map +0 -1
- package/dist/commands/utils.d.ts.map +0 -1
- package/dist/commands/utils.js.map +0 -1
- package/dist/commands/versions.d.ts.map +0 -1
- package/dist/commands/versions.js.map +0 -1
- package/dist/commands/view.d.ts.map +0 -1
- package/dist/commands/view.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/__tests__/bugfixes.test.d.ts +0 -2
- package/dist/lib/__tests__/bugfixes.test.d.ts.map +0 -1
- package/dist/lib/__tests__/bugfixes.test.js +0 -192
- package/dist/lib/__tests__/bugfixes.test.js.map +0 -1
- package/dist/lib/__tests__/exec.test.d.ts +0 -2
- package/dist/lib/__tests__/exec.test.d.ts.map +0 -1
- package/dist/lib/__tests__/exec.test.js +0 -446
- package/dist/lib/__tests__/exec.test.js.map +0 -1
- package/dist/lib/__tests__/git-sync.test.d.ts +0 -2
- package/dist/lib/__tests__/git-sync.test.d.ts.map +0 -1
- package/dist/lib/__tests__/git-sync.test.js +0 -138
- package/dist/lib/__tests__/git-sync.test.js.map +0 -1
- package/dist/lib/__tests__/hooks.test.d.ts +0 -2
- package/dist/lib/__tests__/hooks.test.d.ts.map +0 -1
- package/dist/lib/__tests__/hooks.test.js +0 -203
- package/dist/lib/__tests__/hooks.test.js.map +0 -1
- package/dist/lib/__tests__/memory-compile.test.d.ts +0 -2
- package/dist/lib/__tests__/memory-compile.test.d.ts.map +0 -1
- package/dist/lib/__tests__/memory-compile.test.js +0 -95
- package/dist/lib/__tests__/memory-compile.test.js.map +0 -1
- package/dist/lib/__tests__/models.test.d.ts +0 -2
- package/dist/lib/__tests__/models.test.d.ts.map +0 -1
- package/dist/lib/__tests__/models.test.js +0 -239
- package/dist/lib/__tests__/models.test.js.map +0 -1
- package/dist/lib/__tests__/rotate.test.d.ts +0 -2
- package/dist/lib/__tests__/rotate.test.d.ts.map +0 -1
- package/dist/lib/__tests__/rotate.test.js +0 -80
- package/dist/lib/__tests__/rotate.test.js.map +0 -1
- package/dist/lib/__tests__/secrets-bundles.test.d.ts +0 -2
- package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +0 -1
- package/dist/lib/__tests__/secrets-bundles.test.js +0 -104
- package/dist/lib/__tests__/secrets-bundles.test.js.map +0 -1
- package/dist/lib/__tests__/secrets.test.d.ts +0 -2
- package/dist/lib/__tests__/secrets.test.d.ts.map +0 -1
- package/dist/lib/__tests__/secrets.test.js +0 -90
- package/dist/lib/__tests__/secrets.test.js.map +0 -1
- package/dist/lib/__tests__/shims.test.d.ts +0 -2
- package/dist/lib/__tests__/shims.test.d.ts.map +0 -1
- package/dist/lib/__tests__/shims.test.js +0 -39
- package/dist/lib/__tests__/shims.test.js.map +0 -1
- package/dist/lib/__tests__/usage.test.d.ts +0 -2
- package/dist/lib/__tests__/usage.test.d.ts.map +0 -1
- package/dist/lib/__tests__/usage.test.js +0 -220
- package/dist/lib/__tests__/usage.test.js.map +0 -1
- package/dist/lib/__tests__/versions.test.d.ts +0 -2
- package/dist/lib/__tests__/versions.test.d.ts.map +0 -1
- package/dist/lib/__tests__/versions.test.js +0 -63
- package/dist/lib/__tests__/versions.test.js.map +0 -1
- package/dist/lib/agents.d.ts.map +0 -1
- package/dist/lib/agents.js.map +0 -1
- package/dist/lib/artifact-actions.d.ts.map +0 -1
- package/dist/lib/artifact-actions.js.map +0 -1
- package/dist/lib/cloud/codex.d.ts.map +0 -1
- package/dist/lib/cloud/codex.js.map +0 -1
- package/dist/lib/cloud/factory.d.ts.map +0 -1
- package/dist/lib/cloud/factory.js.map +0 -1
- package/dist/lib/cloud/registry.d.ts.map +0 -1
- package/dist/lib/cloud/registry.js.map +0 -1
- package/dist/lib/cloud/rush.d.ts.map +0 -1
- package/dist/lib/cloud/rush.js.map +0 -1
- package/dist/lib/cloud/store.d.ts.map +0 -1
- package/dist/lib/cloud/store.js.map +0 -1
- package/dist/lib/cloud/stream.d.ts.map +0 -1
- package/dist/lib/cloud/stream.js.map +0 -1
- package/dist/lib/cloud/types.d.ts.map +0 -1
- package/dist/lib/cloud/types.js.map +0 -1
- package/dist/lib/commands.d.ts.map +0 -1
- package/dist/lib/commands.js.map +0 -1
- package/dist/lib/convert.d.ts.map +0 -1
- package/dist/lib/convert.js.map +0 -1
- package/dist/lib/daemon.d.ts.map +0 -1
- package/dist/lib/daemon.js.map +0 -1
- package/dist/lib/drive-sync.d.ts.map +0 -1
- package/dist/lib/drive-sync.js.map +0 -1
- package/dist/lib/exec.d.ts.map +0 -1
- package/dist/lib/exec.js.map +0 -1
- package/dist/lib/factory.d.ts +0 -57
- package/dist/lib/factory.d.ts.map +0 -1
- package/dist/lib/factory.js +0 -110
- package/dist/lib/factory.js.map +0 -1
- package/dist/lib/git.d.ts.map +0 -1
- package/dist/lib/git.js.map +0 -1
- package/dist/lib/help.d.ts.map +0 -1
- package/dist/lib/help.js.map +0 -1
- package/dist/lib/hooks.d.ts.map +0 -1
- package/dist/lib/hooks.js.map +0 -1
- package/dist/lib/manifest.d.ts.map +0 -1
- package/dist/lib/manifest.js.map +0 -1
- package/dist/lib/markdown.d.ts.map +0 -1
- package/dist/lib/markdown.js.map +0 -1
- package/dist/lib/mcp.d.ts.map +0 -1
- package/dist/lib/mcp.js.map +0 -1
- package/dist/lib/memory-compile.d.ts.map +0 -1
- package/dist/lib/memory-compile.js.map +0 -1
- package/dist/lib/memory.d.ts.map +0 -1
- package/dist/lib/memory.js.map +0 -1
- package/dist/lib/models.d.ts.map +0 -1
- package/dist/lib/models.js.map +0 -1
- package/dist/lib/permissions.d.ts.map +0 -1
- package/dist/lib/permissions.js.map +0 -1
- package/dist/lib/picker.d.ts.map +0 -1
- package/dist/lib/picker.js.map +0 -1
- package/dist/lib/plugins.d.ts.map +0 -1
- package/dist/lib/plugins.js.map +0 -1
- package/dist/lib/profiles-keychain.d.ts +0 -3
- package/dist/lib/profiles-keychain.d.ts.map +0 -1
- package/dist/lib/profiles-keychain.js +0 -10
- package/dist/lib/profiles-keychain.js.map +0 -1
- package/dist/lib/profiles-presets.d.ts.map +0 -1
- package/dist/lib/profiles-presets.js.map +0 -1
- package/dist/lib/profiles.d.ts.map +0 -1
- package/dist/lib/profiles.js.map +0 -1
- package/dist/lib/pty-client.d.ts.map +0 -1
- package/dist/lib/pty-client.js.map +0 -1
- package/dist/lib/pty-server.d.ts.map +0 -1
- package/dist/lib/pty-server.js.map +0 -1
- package/dist/lib/registry.d.ts.map +0 -1
- package/dist/lib/registry.js.map +0 -1
- package/dist/lib/resources.d.ts.map +0 -1
- package/dist/lib/resources.js.map +0 -1
- package/dist/lib/rotate.d.ts.map +0 -1
- package/dist/lib/rotate.js.map +0 -1
- package/dist/lib/routines.d.ts.map +0 -1
- package/dist/lib/routines.js.map +0 -1
- package/dist/lib/runner.d.ts.map +0 -1
- package/dist/lib/runner.js.map +0 -1
- package/dist/lib/sandbox.d.ts.map +0 -1
- package/dist/lib/sandbox.js.map +0 -1
- package/dist/lib/scheduler.d.ts.map +0 -1
- package/dist/lib/scheduler.js.map +0 -1
- package/dist/lib/secrets-bundles.d.ts.map +0 -1
- package/dist/lib/secrets-bundles.js.map +0 -1
- package/dist/lib/secrets.d.ts +0 -27
- package/dist/lib/secrets.d.ts.map +0 -1
- package/dist/lib/secrets.js +0 -127
- package/dist/lib/secrets.js.map +0 -1
- package/dist/lib/session/__tests__/db.test.d.ts +0 -2
- package/dist/lib/session/__tests__/db.test.d.ts.map +0 -1
- package/dist/lib/session/__tests__/db.test.js +0 -54
- package/dist/lib/session/__tests__/db.test.js.map +0 -1
- package/dist/lib/session/__tests__/discover.test.d.ts +0 -2
- package/dist/lib/session/__tests__/discover.test.d.ts.map +0 -1
- package/dist/lib/session/__tests__/discover.test.js +0 -63
- package/dist/lib/session/__tests__/discover.test.js.map +0 -1
- package/dist/lib/session/__tests__/prompt.test.d.ts +0 -2
- package/dist/lib/session/__tests__/prompt.test.d.ts.map +0 -1
- package/dist/lib/session/__tests__/prompt.test.js +0 -44
- package/dist/lib/session/__tests__/prompt.test.js.map +0 -1
- package/dist/lib/session/__tests__/render.test.d.ts +0 -2
- package/dist/lib/session/__tests__/render.test.d.ts.map +0 -1
- package/dist/lib/session/__tests__/render.test.js +0 -602
- package/dist/lib/session/__tests__/render.test.js.map +0 -1
- package/dist/lib/session/artifacts.d.ts.map +0 -1
- package/dist/lib/session/artifacts.js.map +0 -1
- package/dist/lib/session/db.d.ts.map +0 -1
- package/dist/lib/session/db.js.map +0 -1
- package/dist/lib/session/discover.d.ts.map +0 -1
- package/dist/lib/session/discover.js.map +0 -1
- package/dist/lib/session/parse.d.ts.map +0 -1
- package/dist/lib/session/parse.js.map +0 -1
- package/dist/lib/session/prompt.d.ts.map +0 -1
- package/dist/lib/session/prompt.js.map +0 -1
- package/dist/lib/session/prompt.test.d.ts +0 -2
- package/dist/lib/session/prompt.test.d.ts.map +0 -1
- package/dist/lib/session/prompt.test.js +0 -57
- package/dist/lib/session/prompt.test.js.map +0 -1
- package/dist/lib/session/render.d.ts.map +0 -1
- package/dist/lib/session/render.js.map +0 -1
- package/dist/lib/session/team-filter.d.ts.map +0 -1
- package/dist/lib/session/team-filter.js.map +0 -1
- package/dist/lib/session/team-filter.test.d.ts +0 -2
- package/dist/lib/session/team-filter.test.d.ts.map +0 -1
- package/dist/lib/session/team-filter.test.js +0 -157
- package/dist/lib/session/team-filter.test.js.map +0 -1
- package/dist/lib/session/types.d.ts.map +0 -1
- package/dist/lib/session/types.js.map +0 -1
- package/dist/lib/shims.d.ts.map +0 -1
- package/dist/lib/shims.js.map +0 -1
- package/dist/lib/skills.d.ts.map +0 -1
- package/dist/lib/skills.js.map +0 -1
- package/dist/lib/state.d.ts.map +0 -1
- package/dist/lib/state.js.map +0 -1
- package/dist/lib/subagents.d.ts.map +0 -1
- package/dist/lib/subagents.js.map +0 -1
- package/dist/lib/teams/agents.d.ts.map +0 -1
- package/dist/lib/teams/agents.js.map +0 -1
- package/dist/lib/teams/api.d.ts.map +0 -1
- package/dist/lib/teams/api.js.map +0 -1
- package/dist/lib/teams/cloud.d.ts +0 -11
- package/dist/lib/teams/cloud.d.ts.map +0 -1
- package/dist/lib/teams/cloud.js +0 -169
- package/dist/lib/teams/cloud.js.map +0 -1
- package/dist/lib/teams/debug.d.ts.map +0 -1
- package/dist/lib/teams/debug.js.map +0 -1
- package/dist/lib/teams/file_ops.d.ts.map +0 -1
- package/dist/lib/teams/file_ops.js.map +0 -1
- package/dist/lib/teams/parsers.d.ts.map +0 -1
- package/dist/lib/teams/parsers.js.map +0 -1
- package/dist/lib/teams/persistence.d.ts.map +0 -1
- package/dist/lib/teams/persistence.js.map +0 -1
- package/dist/lib/teams/ralph.d.ts +0 -8
- package/dist/lib/teams/ralph.d.ts.map +0 -1
- package/dist/lib/teams/ralph.js +0 -59
- package/dist/lib/teams/ralph.js.map +0 -1
- package/dist/lib/teams/registry.d.ts.map +0 -1
- package/dist/lib/teams/registry.js.map +0 -1
- package/dist/lib/teams/summarizer.d.ts.map +0 -1
- package/dist/lib/teams/summarizer.js.map +0 -1
- package/dist/lib/template.d.ts.map +0 -1
- package/dist/lib/template.js.map +0 -1
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/usage.d.ts.map +0 -1
- package/dist/lib/usage.js.map +0 -1
- package/dist/lib/versions.d.ts.map +0 -1
- package/dist/lib/versions.js.map +0 -1
- package/scripts/rebuild-sqlite.sh +0 -46
package/dist/commands/models.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model catalog inspection command.
|
|
3
|
+
*
|
|
4
|
+
* Registers the hidden `agents models` command for listing models
|
|
5
|
+
* supported by installed agent versions. Extracts model catalogs from
|
|
6
|
+
* each agent's CLI bundle and displays IDs, aliases, and metadata.
|
|
7
|
+
*/
|
|
1
8
|
import chalk from 'chalk';
|
|
2
9
|
import * as fs from 'fs';
|
|
3
10
|
import { resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
|
|
4
|
-
import { listInstalledVersions, getGlobalDefault, resolveVersion } from '../lib/versions.js';
|
|
11
|
+
import { listInstalledVersions, getGlobalDefault, resolveVersion, resolveVersionAlias } from '../lib/versions.js';
|
|
5
12
|
import { getModelCatalog, locateModelSource } from '../lib/models.js';
|
|
6
13
|
const MODEL_CAPABLE_AGENTS = ['claude', 'codex', 'gemini', 'opencode', 'cursor', 'openclaw'];
|
|
7
14
|
/**
|
|
@@ -10,6 +17,7 @@ const MODEL_CAPABLE_AGENTS = ['claude', 'codex', 'gemini', 'opencode', 'cursor',
|
|
|
10
17
|
* a version label from the install path so cache keys stay stable.
|
|
11
18
|
*/
|
|
12
19
|
const PATH_ONLY_AGENTS = new Set(['cursor']);
|
|
20
|
+
/** Derive a version label from the PATH-installed binary location for agents without managed versions. */
|
|
13
21
|
function fallbackPathVersion(agent) {
|
|
14
22
|
const src = locateModelSource(agent, 'unresolved');
|
|
15
23
|
if (!src)
|
|
@@ -24,6 +32,7 @@ function fallbackPathVersion(agent) {
|
|
|
24
32
|
const m = real.match(/\/versions\/([^/]+)\//);
|
|
25
33
|
return m ? m[1] : 'installed';
|
|
26
34
|
}
|
|
35
|
+
/** Register the hidden `agents models` command. */
|
|
27
36
|
export function registerModelsCommand(program) {
|
|
28
37
|
program
|
|
29
38
|
.command('models [agentSpec]', { hidden: true })
|
|
@@ -53,6 +62,7 @@ export function registerModelsCommand(program) {
|
|
|
53
62
|
}
|
|
54
63
|
});
|
|
55
64
|
}
|
|
65
|
+
/** Resolve the agent spec into one or more (agent, version) pairs to inspect. */
|
|
56
66
|
async function resolveTargets(agentSpec) {
|
|
57
67
|
if (!agentSpec) {
|
|
58
68
|
const targets = [];
|
|
@@ -87,7 +97,8 @@ async function resolveTargets(agentSpec) {
|
|
|
87
97
|
isDefault: v === getGlobalDefault(agent),
|
|
88
98
|
}));
|
|
89
99
|
}
|
|
90
|
-
|
|
100
|
+
const aliasedVersion = resolveVersionAlias(agent, versionSpec);
|
|
101
|
+
let version = aliasedVersion || resolveVersion(agent, process.cwd()) || getGlobalDefault(agent);
|
|
91
102
|
if (!version && PATH_ONLY_AGENTS.has(agent)) {
|
|
92
103
|
version = fallbackPathVersion(agent);
|
|
93
104
|
}
|
|
@@ -97,6 +108,7 @@ async function resolveTargets(agentSpec) {
|
|
|
97
108
|
}
|
|
98
109
|
return [{ agent, version, isDefault: version === getGlobalDefault(agent) }];
|
|
99
110
|
}
|
|
111
|
+
/** Print the model catalog for a single agent version with optional cloud/reasoning details. */
|
|
100
112
|
function printCatalog(agent, version, isDefault, options) {
|
|
101
113
|
const tag = isDefault ? chalk.gray(' (default)') : '';
|
|
102
114
|
const header = `${agentLabel(agent)} ${chalk.bold(version)}${tag}`;
|
|
@@ -104,7 +116,7 @@ function printCatalog(agent, version, isDefault, options) {
|
|
|
104
116
|
const src = locateModelSource(agent, version);
|
|
105
117
|
if (!src) {
|
|
106
118
|
console.log(chalk.yellow(` Could not locate model source for ${agent}@${version}.`));
|
|
107
|
-
console.log(chalk.gray(` Expected the agent's CLI bundle or native binary under ~/.agents/versions/${agent}/${version}/.`));
|
|
119
|
+
console.log(chalk.gray(` Expected the agent's CLI bundle or native binary under ~/.agents-system/versions/${agent}/${version}/.`));
|
|
108
120
|
return;
|
|
109
121
|
}
|
|
110
122
|
const catalog = getModelCatalog(agent, version);
|
|
@@ -152,7 +164,7 @@ function printCatalog(agent, version, isDefault, options) {
|
|
|
152
164
|
}
|
|
153
165
|
}
|
|
154
166
|
}
|
|
167
|
+
/** Abbreviate a path by replacing the home directory with ~. */
|
|
155
168
|
function shortPath(p) {
|
|
156
169
|
return p.replace(process.env.HOME || '~', '~');
|
|
157
170
|
}
|
|
158
|
-
//# sourceMappingURL=models.js.map
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package registry and installation commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers `agents registry`, `agents search`, and `agents install`
|
|
5
|
+
* for discovering and installing MCP servers, skills, commands, and
|
|
6
|
+
* hooks from configured registries or GitHub sources.
|
|
7
|
+
*/
|
|
1
8
|
import type { Command } from 'commander';
|
|
9
|
+
/** Register the `agents registry`, `agents search`, and `agents install` commands. */
|
|
2
10
|
export declare function registerPackagesCommands(program: Command): void;
|
|
3
|
-
//# sourceMappingURL=packages.d.ts.map
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package registry and installation commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers `agents registry`, `agents search`, and `agents install`
|
|
5
|
+
* for discovering and installing MCP servers, skills, commands, and
|
|
6
|
+
* hooks from configured registries or GitHub sources.
|
|
7
|
+
*/
|
|
1
8
|
import chalk from 'chalk';
|
|
2
9
|
import ora from 'ora';
|
|
3
10
|
import { AGENTS, ALL_AGENT_IDS, MCP_CAPABLE_AGENTS, getAllCliStates, registerMcpToTargets, agentLabel, } from '../lib/agents.js';
|
|
@@ -10,9 +17,11 @@ import { discoverHooksFromRepo, installHooks, installHooksCentrally, } from '../
|
|
|
10
17
|
import { listInstalledVersions, resolveInstalledAgentTargets, resolveConfiguredAgentTargets, syncResourcesToVersion, } from '../lib/versions.js';
|
|
11
18
|
import { isInteractiveTerminal, isPromptCancelled, requireDestructiveArg, requireInteractiveSelection, } from './utils.js';
|
|
12
19
|
import { itemPicker } from '../lib/picker.js';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Picker fallback for `registry enable/config [name]`.
|
|
22
|
+
* Returns the picked name, or null if the user cancels. In non-TTY shells,
|
|
23
|
+
* hard-fails with a clear reminder of the positional form.
|
|
24
|
+
*/
|
|
16
25
|
async function pickRegistryName(type, verb, pred) {
|
|
17
26
|
const registries = getRegistries(type);
|
|
18
27
|
const entries = Object.entries(registries).filter(([, cfg]) => (pred ? pred(cfg) : true));
|
|
@@ -55,6 +64,7 @@ async function pickRegistryName(type, verb, pred) {
|
|
|
55
64
|
throw err;
|
|
56
65
|
}
|
|
57
66
|
}
|
|
67
|
+
/** Register the `agents registry`, `agents search`, and `agents install` commands. */
|
|
58
68
|
export function registerPackagesCommands(program) {
|
|
59
69
|
// ==========================================================================
|
|
60
70
|
// REGISTRY COMMANDS
|
|
@@ -265,9 +275,6 @@ When to use:
|
|
|
265
275
|
spinner.stop();
|
|
266
276
|
if (results.length === 0) {
|
|
267
277
|
console.log(chalk.yellow('\nNo packages found.'));
|
|
268
|
-
if (!options.type) {
|
|
269
|
-
console.log(chalk.gray('\nTip: skill registries not yet available. Use gh:user/repo for skills.'));
|
|
270
|
-
}
|
|
271
278
|
return;
|
|
272
279
|
}
|
|
273
280
|
console.log(chalk.bold(`Found ${results.length} packages`));
|
|
@@ -538,4 +545,3 @@ When to use:
|
|
|
538
545
|
}
|
|
539
546
|
});
|
|
540
547
|
}
|
|
541
|
-
//# sourceMappingURL=packages.js.map
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission management commands for controlling agent access boundaries.
|
|
3
|
+
*
|
|
4
|
+
* Implements `agents permissions` -- list, add, remove, and view permission
|
|
5
|
+
* sets (allow/deny rules for bash, tools, and filesystem). Supports importing
|
|
6
|
+
* from agent config files, GitHub repos, and YAML, with merge/replace
|
|
7
|
+
* semantics and multi-version targeting.
|
|
8
|
+
*/
|
|
1
9
|
import type { Command } from 'commander';
|
|
10
|
+
/** Register the `agents permissions` command tree (list, add, remove, view). */
|
|
2
11
|
export declare function registerPermissionsCommands(program: Command): void;
|
|
3
|
-
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -7,9 +7,10 @@ import { confirm, checkbox } from '@inquirer/prompts';
|
|
|
7
7
|
import { AGENTS, resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
|
|
8
8
|
import { cloneRepo } from '../lib/git.js';
|
|
9
9
|
import { PERMISSIONS_CAPABLE_AGENTS, listInstalledPermissions, discoverPermissionsFromRepo, installPermissionSet, removePermissionSet, applyPermissionsToVersion, readAgentPermissions, exportPermissionsFromPath, getDefaultPermissionSet, computePermissionsDiff, mergePermissionSets, saveDefaultPermissionSet, } from '../lib/permissions.js';
|
|
10
|
-
import { listInstalledVersions, getGlobalDefault, getVersionHomePath, promptAgentVersionSelection, resolveAgentVersionTargets, } from '../lib/versions.js';
|
|
10
|
+
import { listInstalledVersions, getGlobalDefault, getVersionHomePath, promptAgentVersionSelection, resolveAgentVersionTargets, resolveVersionAlias, } from '../lib/versions.js';
|
|
11
11
|
import { recordVersionResources } from '../lib/state.js';
|
|
12
12
|
import { isPromptCancelled, isInteractiveTerminal, parseCommaSeparatedList, printWithPager, requireInteractiveSelection, } from './utils.js';
|
|
13
|
+
/** Register the `agents permissions` command tree (list, add, remove, view). */
|
|
13
14
|
export function registerPermissionsCommands(program) {
|
|
14
15
|
const permissionsCmd = program
|
|
15
16
|
.command('permissions')
|
|
@@ -106,12 +107,12 @@ When to use:
|
|
|
106
107
|
// Parse agent@version syntax
|
|
107
108
|
const parts = agentArg.split('@');
|
|
108
109
|
const agentName = parts[0];
|
|
109
|
-
const requestedVersion = parts[1] || null;
|
|
110
110
|
const agentId = resolveAgentName(agentName);
|
|
111
111
|
if (!agentId) {
|
|
112
112
|
console.log(chalk.red(formatAgentError(agentName, PERMISSIONS_CAPABLE_AGENTS)));
|
|
113
113
|
process.exit(1);
|
|
114
114
|
}
|
|
115
|
+
const requestedVersion = resolveVersionAlias(agentId, parts[1]) ?? null;
|
|
115
116
|
if (!PERMISSIONS_CAPABLE_AGENTS.includes(agentId)) {
|
|
116
117
|
console.log(chalk.yellow(`${AGENTS[agentId].name} does not support fine-grained permissions`));
|
|
117
118
|
return;
|
|
@@ -720,4 +721,3 @@ Examples:
|
|
|
720
721
|
// Note: This needs to be registered at the program level, not as a subcommand
|
|
721
722
|
// The actual deprecation message is shown in index.ts
|
|
722
723
|
}
|
|
723
|
-
//# sourceMappingURL=permissions.js.map
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin management commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers the `agents plugins` command tree for listing, viewing,
|
|
5
|
+
* syncing, and removing plugin bundles (skills + hooks + permissions)
|
|
6
|
+
* stored in ~/.agents/plugins/.
|
|
7
|
+
*/
|
|
1
8
|
import type { Command } from 'commander';
|
|
9
|
+
/** Register the `agents plugins` command tree. */
|
|
2
10
|
export declare function registerPluginsCommands(program: Command): void;
|
|
3
|
-
//# sourceMappingURL=plugins.d.ts.map
|
package/dist/commands/plugins.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin management commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers the `agents plugins` command tree for listing, viewing,
|
|
5
|
+
* syncing, and removing plugin bundles (skills + hooks + permissions)
|
|
6
|
+
* stored in ~/.agents/plugins/.
|
|
7
|
+
*/
|
|
1
8
|
import * as fs from 'fs';
|
|
2
9
|
import * as path from 'path';
|
|
3
10
|
import chalk from 'chalk';
|
|
@@ -9,6 +16,8 @@ import { isPromptCancelled, isInteractiveTerminal, requireDestructiveArg, requir
|
|
|
9
16
|
import { itemPicker } from '../lib/picker.js';
|
|
10
17
|
import { showResourceList, buildTargetsSection, } from './resource-view.js';
|
|
11
18
|
import { getPluginsDir } from '../lib/state.js';
|
|
19
|
+
import { safeJoin } from '../lib/paths.js';
|
|
20
|
+
/** Replace the home directory prefix with ~ for display. */
|
|
12
21
|
function formatPath(p) {
|
|
13
22
|
const home = process.env.HOME || '';
|
|
14
23
|
if (home && p.startsWith(home)) {
|
|
@@ -16,6 +25,7 @@ function formatPath(p) {
|
|
|
16
25
|
}
|
|
17
26
|
return p;
|
|
18
27
|
}
|
|
28
|
+
/** Register the `agents plugins` command tree. */
|
|
19
29
|
export function registerPluginsCommands(program) {
|
|
20
30
|
const pluginsCmd = program
|
|
21
31
|
.command('plugins')
|
|
@@ -257,7 +267,7 @@ Examples:
|
|
|
257
267
|
}
|
|
258
268
|
const name = nameArg;
|
|
259
269
|
const pluginsDir = path.join(process.env.HOME || '', '.agents', 'plugins');
|
|
260
|
-
const pluginRoot =
|
|
270
|
+
const pluginRoot = safeJoin(pluginsDir, name);
|
|
261
271
|
// Use discovered plugin when present; fall back to name+root if source is already gone
|
|
262
272
|
const plugin = getPlugin(name);
|
|
263
273
|
const resolvedRoot = plugin?.root || pluginRoot;
|
|
@@ -295,6 +305,7 @@ Examples:
|
|
|
295
305
|
}
|
|
296
306
|
});
|
|
297
307
|
}
|
|
308
|
+
/** Convert discovered plugins into rows suitable for the resource list view. */
|
|
298
309
|
function buildPluginRows(plugins) {
|
|
299
310
|
const rows = [];
|
|
300
311
|
// Cache version lists per agent once.
|
|
@@ -337,6 +348,7 @@ function buildPluginRows(plugins) {
|
|
|
337
348
|
});
|
|
338
349
|
return rows;
|
|
339
350
|
}
|
|
351
|
+
/** Build the multi-line detail pane shown when a plugin is selected in the picker. */
|
|
340
352
|
function formatPluginDetail(plugin, targets) {
|
|
341
353
|
const lines = [];
|
|
342
354
|
const title = plugin.manifest.version
|
|
@@ -379,4 +391,3 @@ function formatPluginDetail(plugin, targets) {
|
|
|
379
391
|
}
|
|
380
392
|
return lines.join('\n');
|
|
381
393
|
}
|
|
382
|
-
//# sourceMappingURL=plugins.js.map
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile management commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers the `agents profiles` command tree for creating, viewing,
|
|
5
|
+
* and removing named bundles of (host CLI, endpoint, model, keychain auth).
|
|
6
|
+
* Profiles let users run non-default providers (Kimi, DeepSeek, Qwen, etc.)
|
|
7
|
+
* through a standard agent CLI with no local proxy.
|
|
8
|
+
*/
|
|
1
9
|
import type { Command } from 'commander';
|
|
10
|
+
/** Register the `agents profiles` command tree. */
|
|
2
11
|
export declare function registerProfilesCommands(program: Command): void;
|
|
3
|
-
//# sourceMappingURL=profiles.d.ts.map
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile management commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers the `agents profiles` command tree for creating, viewing,
|
|
5
|
+
* and removing named bundles of (host CLI, endpoint, model, keychain auth).
|
|
6
|
+
* Profiles let users run non-default providers (Kimi, DeepSeek, Qwen, etc.)
|
|
7
|
+
* through a standard agent CLI with no local proxy.
|
|
8
|
+
*/
|
|
1
9
|
import chalk from 'chalk';
|
|
2
10
|
import * as fs from 'fs';
|
|
3
11
|
import { listProfiles, readProfile, writeProfile, deleteProfile, profileExists, profileFromPreset, getPresetForProfile, } from '../lib/profiles.js';
|
|
4
12
|
import { getPreset, listPresets } from '../lib/profiles-presets.js';
|
|
5
|
-
import { hasKeychainToken, keychainItemName, setKeychainToken, deleteKeychainToken, } from '../lib/profiles
|
|
13
|
+
import { hasKeychainToken, keychainItemName, setKeychainToken, deleteKeychainToken, } from '../lib/secrets/profiles.js';
|
|
6
14
|
import { isInteractiveTerminal } from './utils.js';
|
|
15
|
+
/** Prompt the user for a secret value with masked input. Requires an interactive TTY. */
|
|
7
16
|
async function promptForSecret(message) {
|
|
8
17
|
if (!isInteractiveTerminal()) {
|
|
9
18
|
throw new Error('A secret is required but the shell is not interactive. Pipe the key via stdin (--key-stdin).');
|
|
@@ -11,6 +20,7 @@ async function promptForSecret(message) {
|
|
|
11
20
|
const { password } = await import('@inquirer/prompts');
|
|
12
21
|
return await password({ message, mask: true });
|
|
13
22
|
}
|
|
23
|
+
/** Read all available data from stdin synchronously, trimmed. */
|
|
14
24
|
function readStdinSync() {
|
|
15
25
|
const chunks = [];
|
|
16
26
|
const buf = Buffer.alloc(65536);
|
|
@@ -28,6 +38,7 @@ function readStdinSync() {
|
|
|
28
38
|
}
|
|
29
39
|
return Buffer.concat(chunks).toString('utf-8').trim();
|
|
30
40
|
}
|
|
41
|
+
/** Ensure a provider API key exists in keychain, prompting or reading stdin if missing. */
|
|
31
42
|
async function ensureProviderToken(provider, signupUrl, fromStdin) {
|
|
32
43
|
const item = keychainItemName(provider);
|
|
33
44
|
if (hasKeychainToken(item)) {
|
|
@@ -47,12 +58,14 @@ async function ensureProviderToken(provider, signupUrl, fromStdin) {
|
|
|
47
58
|
setKeychainToken(item, token);
|
|
48
59
|
console.log(chalk.green(`Stored in keychain: ${item}`));
|
|
49
60
|
}
|
|
61
|
+
/** Format a single profile as a table row for the `profiles list` output. */
|
|
50
62
|
function renderProfileRow(p) {
|
|
51
63
|
const host = p.host.version ? `${p.host.agent}@${p.host.version}` : p.host.agent;
|
|
52
64
|
const model = p.env.ANTHROPIC_MODEL || p.env.OPENAI_MODEL || p.env.GEMINI_MODEL || '-';
|
|
53
65
|
const provider = p.provider || (p.auth?.keychainItem?.split('.')[1]) || '-';
|
|
54
66
|
return `${chalk.cyan(p.name.padEnd(16))} ${host.padEnd(14)} ${provider.padEnd(12)} ${chalk.gray(model)}`;
|
|
55
67
|
}
|
|
68
|
+
/** Register the `agents profiles` command tree. */
|
|
56
69
|
export function registerProfilesCommands(program) {
|
|
57
70
|
const cmd = program
|
|
58
71
|
.command('profiles')
|
|
@@ -92,6 +105,37 @@ Custom endpoints — drop a YAML file at ~/.agents/profiles/<name>.yml:
|
|
|
92
105
|
keychainItem: agents-cli.ollama.token
|
|
93
106
|
|
|
94
107
|
Profiles store no secrets — safe to 'agents push' to a shared repo.
|
|
108
|
+
|
|
109
|
+
Examples:
|
|
110
|
+
# One-time: store the OpenRouter key (every preset reuses it)
|
|
111
|
+
agents profiles login openrouter
|
|
112
|
+
|
|
113
|
+
# Add Kimi (top HumanEval) and run it through the Claude Code UI
|
|
114
|
+
agents profiles add kimi
|
|
115
|
+
agents run kimi "refactor api/handlers/checkout.py to use async sqlalchemy"
|
|
116
|
+
|
|
117
|
+
# Add MiniMax for SWE-bench style fixes; reuses the same OpenRouter key
|
|
118
|
+
agents profiles add minimax
|
|
119
|
+
agents run minimax "investigate RUSH-2317 and patch the off-by-one in pagination"
|
|
120
|
+
|
|
121
|
+
# Add DeepSeek for cheap, fast non-reasoning work
|
|
122
|
+
agents profiles add deepseek
|
|
123
|
+
agents run deepseek "rename UserSession -> AuthSession across the codebase"
|
|
124
|
+
|
|
125
|
+
# See every profile and which provider it talks to
|
|
126
|
+
agents profiles list
|
|
127
|
+
|
|
128
|
+
# Browse the catalog (pricing, context sizes, reasoning vs print-safe)
|
|
129
|
+
agents profiles presets
|
|
130
|
+
|
|
131
|
+
# Rotate the OpenRouter key (every openrouter profile picks it up)
|
|
132
|
+
agents profiles login openrouter
|
|
133
|
+
|
|
134
|
+
# Drop a profile, keep the key in Keychain for the next one
|
|
135
|
+
agents profiles remove kimi
|
|
136
|
+
|
|
137
|
+
# Fully remove the OpenRouter key from Keychain
|
|
138
|
+
agents profiles logout openrouter
|
|
95
139
|
`);
|
|
96
140
|
cmd
|
|
97
141
|
.command('list')
|
|
@@ -230,13 +274,18 @@ Profiles store no secrets — safe to 'agents push' to a shared repo.
|
|
|
230
274
|
.command('logout <provider>')
|
|
231
275
|
.description('Remove a stored provider key from keychain')
|
|
232
276
|
.action((provider) => {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
277
|
+
try {
|
|
278
|
+
const item = keychainItemName(provider);
|
|
279
|
+
const existed = deleteKeychainToken(item);
|
|
280
|
+
if (!existed) {
|
|
281
|
+
console.error(chalk.yellow(`No keychain item '${item}' to remove.`));
|
|
282
|
+
process.exit(1);
|
|
283
|
+
}
|
|
284
|
+
console.log(chalk.green(`Removed keychain item: ${item}`));
|
|
285
|
+
}
|
|
286
|
+
catch (err) {
|
|
287
|
+
console.error(chalk.red(err.message));
|
|
237
288
|
process.exit(1);
|
|
238
289
|
}
|
|
239
|
-
console.log(chalk.green(`Removed keychain item: ${item}`));
|
|
240
290
|
});
|
|
241
291
|
}
|
|
242
|
-
//# sourceMappingURL=profiles.js.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Top-level `agents prune` — destructive cleanup across the install.
|
|
3
|
+
*
|
|
4
|
+
* Two kinds of cleanup, one verb:
|
|
5
|
+
* - Resource orphans: command/skill/hook files inside a version home that no
|
|
6
|
+
* longer come from any source (deleted from ~/.agents/ but never reconciled
|
|
7
|
+
* into the version install).
|
|
8
|
+
* - Version duplicates: older installed versions of an agent that share an
|
|
9
|
+
* account with a newer installed version of the same agent (the older copy
|
|
10
|
+
* is redundant; the newer one is what's signed in and active).
|
|
11
|
+
*
|
|
12
|
+
* Sync (additive: copy missing/changed files into version homes) is no longer
|
|
13
|
+
* a user-facing verb — `syncResourcesToVersion` runs at agent launch and
|
|
14
|
+
* applies adds/updates automatically. Pruning, however, is destructive, so it
|
|
15
|
+
* stays explicit.
|
|
16
|
+
*
|
|
17
|
+
* Default scope: each agent's currently-pinned default version for orphan
|
|
18
|
+
* cleanup, plus the standard cross-agent version-dedup pass. Pass `--all`
|
|
19
|
+
* to widen orphan cleanup to every installed version.
|
|
20
|
+
*/
|
|
21
|
+
import type { Command } from 'commander';
|
|
22
|
+
export declare function registerPruneCommand(program: Command): void;
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { confirm } from '@inquirer/prompts';
|
|
3
|
+
import { diffVersionCommands, iterCommandsCapableVersions, removeCommandFromVersion, } from '../lib/commands.js';
|
|
4
|
+
import { diffVersionSkills, iterSkillsCapableVersions, removeSkillFromVersion, } from '../lib/skills.js';
|
|
5
|
+
import { diffVersionHooks, iterHooksCapableVersions, removeHookFromVersion, } from '../lib/hooks.js';
|
|
6
|
+
import { getGlobalDefault } from '../lib/versions.js';
|
|
7
|
+
import { resolveAgentName, formatAgentError } from '../lib/agents.js';
|
|
8
|
+
import { pruneDuplicates } from './view.js';
|
|
9
|
+
import { isInteractiveTerminal, isPromptCancelled } from './utils.js';
|
|
10
|
+
const RESOURCE_TYPES = ['commands', 'skills', 'hooks'];
|
|
11
|
+
const ALL_TYPES = [...RESOURCE_TYPES, 'versions'];
|
|
12
|
+
function scopePairs(pairs, all) {
|
|
13
|
+
if (all)
|
|
14
|
+
return pairs;
|
|
15
|
+
return pairs.filter((p) => p.version === getGlobalDefault(p.agent));
|
|
16
|
+
}
|
|
17
|
+
function collectOrphans(types, all) {
|
|
18
|
+
const groups = [];
|
|
19
|
+
if (types.includes('commands')) {
|
|
20
|
+
for (const { agent, version } of scopePairs(iterCommandsCapableVersions(), all)) {
|
|
21
|
+
const diff = diffVersionCommands(agent, version);
|
|
22
|
+
if (diff.orphans.length > 0) {
|
|
23
|
+
groups.push({ type: 'commands', agent, version, orphans: diff.orphans });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (types.includes('skills')) {
|
|
28
|
+
for (const { agent, version } of scopePairs(iterSkillsCapableVersions(), all)) {
|
|
29
|
+
const diff = diffVersionSkills(agent, version);
|
|
30
|
+
if (diff.orphans.length > 0) {
|
|
31
|
+
groups.push({ type: 'skills', agent, version, orphans: diff.orphans });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (types.includes('hooks')) {
|
|
36
|
+
for (const { agent, version } of scopePairs(iterHooksCapableVersions(), all)) {
|
|
37
|
+
const diff = diffVersionHooks(agent, version);
|
|
38
|
+
if (diff.orphans.length > 0) {
|
|
39
|
+
groups.push({ type: 'hooks', agent, version, orphans: diff.orphans });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return groups;
|
|
44
|
+
}
|
|
45
|
+
function removeOne(group, name) {
|
|
46
|
+
switch (group.type) {
|
|
47
|
+
case 'commands':
|
|
48
|
+
return removeCommandFromVersion(group.agent, group.version, name);
|
|
49
|
+
case 'skills':
|
|
50
|
+
return removeSkillFromVersion(group.agent, group.version, name);
|
|
51
|
+
case 'hooks':
|
|
52
|
+
return removeHookFromVersion(group.agent, group.version, name);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function parseTarget(arg) {
|
|
56
|
+
if (!arg) {
|
|
57
|
+
return { resourceTypes: RESOURCE_TYPES, includeVersions: true };
|
|
58
|
+
}
|
|
59
|
+
if (RESOURCE_TYPES.includes(arg)) {
|
|
60
|
+
return { resourceTypes: [arg], includeVersions: false };
|
|
61
|
+
}
|
|
62
|
+
if (arg === 'versions') {
|
|
63
|
+
return { resourceTypes: [], includeVersions: true };
|
|
64
|
+
}
|
|
65
|
+
// Try treating as an agent name — shortcut for `prune versions <agent>`.
|
|
66
|
+
const agentId = resolveAgentName(arg);
|
|
67
|
+
if (agentId) {
|
|
68
|
+
return { resourceTypes: [], includeVersions: true, versionAgent: agentId };
|
|
69
|
+
}
|
|
70
|
+
console.log(chalk.red(`Unknown prune target: ${arg}`));
|
|
71
|
+
console.log(chalk.gray(`Available types: ${ALL_TYPES.join(', ')}`));
|
|
72
|
+
console.log(chalk.gray(formatAgentError(arg)));
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
async function runOrphanPrune(resourceTypes, options) {
|
|
76
|
+
const groups = collectOrphans(resourceTypes, options.all === true);
|
|
77
|
+
if (groups.length === 0) {
|
|
78
|
+
console.log(chalk.green('No orphans.'));
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const total = groups.reduce((n, g) => n + g.orphans.length, 0);
|
|
82
|
+
console.log(chalk.bold('Orphans (in version home, not in any source)\n'));
|
|
83
|
+
for (const g of groups) {
|
|
84
|
+
const label = `${g.type} · ${g.agent}@${g.version}`;
|
|
85
|
+
console.log(` ${chalk.cyan(label)} ${g.orphans.join(', ')}`);
|
|
86
|
+
}
|
|
87
|
+
console.log();
|
|
88
|
+
if (options.dryRun) {
|
|
89
|
+
console.log(chalk.gray(`${total} orphan(s). Run without --dry-run to delete.`));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (!options.yes) {
|
|
93
|
+
if (!isInteractiveTerminal()) {
|
|
94
|
+
console.log(chalk.yellow('Non-interactive shell: pass -y to confirm, or --dry-run to preview.'));
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
let ok = false;
|
|
98
|
+
try {
|
|
99
|
+
ok = await confirm({
|
|
100
|
+
message: `Delete ${total} orphan${total === 1 ? '' : 's'}?`,
|
|
101
|
+
default: false,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
if (isPromptCancelled(err)) {
|
|
106
|
+
console.log(chalk.gray('Cancelled'));
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
throw err;
|
|
110
|
+
}
|
|
111
|
+
if (!ok) {
|
|
112
|
+
console.log(chalk.gray('Cancelled'));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
let removed = 0;
|
|
117
|
+
let failures = 0;
|
|
118
|
+
for (const g of groups) {
|
|
119
|
+
for (const name of g.orphans) {
|
|
120
|
+
const r = removeOne(g, name);
|
|
121
|
+
if (r.success) {
|
|
122
|
+
removed++;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
failures++;
|
|
126
|
+
console.log(chalk.red(` ! ${g.type} ${g.agent}@${g.version} ${name}: ${r.error}`));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const summary = `Pruned ${removed} orphan${removed === 1 ? '' : 's'}`;
|
|
131
|
+
console.log(chalk.green(summary) + (failures > 0 ? chalk.red(`, ${failures} failed`) : '') + '.');
|
|
132
|
+
}
|
|
133
|
+
export function registerPruneCommand(program) {
|
|
134
|
+
program
|
|
135
|
+
.command('prune [target]')
|
|
136
|
+
.description('Remove orphan resources (commands/skills/hooks) and/or older duplicate version installs')
|
|
137
|
+
.option('--all', 'For orphan cleanup: sweep every installed version (default: current default version per agent)')
|
|
138
|
+
.option('--dry-run', 'Show what would be removed without deleting')
|
|
139
|
+
.option('-y, --yes', 'Skip confirmation prompt')
|
|
140
|
+
.addHelpText('after', `
|
|
141
|
+
Targets:
|
|
142
|
+
(none) Orphans across commands, skills, hooks + duplicate versions
|
|
143
|
+
commands Orphan command files only
|
|
144
|
+
skills Orphan skill directories only
|
|
145
|
+
hooks Orphan hook scripts only
|
|
146
|
+
versions Older duplicate version installs only
|
|
147
|
+
<agent> Older duplicate versions for one agent (e.g. 'claude')
|
|
148
|
+
|
|
149
|
+
Examples:
|
|
150
|
+
# Full sweep: orphan resources + duplicate versions for current defaults
|
|
151
|
+
agents prune
|
|
152
|
+
|
|
153
|
+
# Just orphan skills
|
|
154
|
+
agents prune skills
|
|
155
|
+
|
|
156
|
+
# Just version dedup
|
|
157
|
+
agents prune versions
|
|
158
|
+
|
|
159
|
+
# Just version dedup for one agent
|
|
160
|
+
agents prune claude
|
|
161
|
+
|
|
162
|
+
# Sweep every installed version's orphans, not only the defaults
|
|
163
|
+
agents prune --all
|
|
164
|
+
|
|
165
|
+
# Preview without deleting
|
|
166
|
+
agents prune --dry-run
|
|
167
|
+
|
|
168
|
+
What's an orphan?
|
|
169
|
+
A command, skill, or hook present inside a version home but missing from every
|
|
170
|
+
configured source (project .agents/, central ~/.agents/, and any enabled extra
|
|
171
|
+
repos). Usually leftovers from a resource that was deleted or moved but never
|
|
172
|
+
reconciled into the version install.
|
|
173
|
+
|
|
174
|
+
What this does NOT do:
|
|
175
|
+
This is destructive cleanup only. Adds and updates flow through the auto-sync
|
|
176
|
+
that runs when you launch the agent — there is no manual sync verb.
|
|
177
|
+
`)
|
|
178
|
+
.action(async (target, options) => {
|
|
179
|
+
const parsed = parseTarget(target);
|
|
180
|
+
if (parsed.resourceTypes.length > 0) {
|
|
181
|
+
await runOrphanPrune(parsed.resourceTypes, options);
|
|
182
|
+
if (parsed.includeVersions)
|
|
183
|
+
console.log();
|
|
184
|
+
}
|
|
185
|
+
if (parsed.includeVersions) {
|
|
186
|
+
const versionLabel = parsed.versionAgent ? ` for ${parsed.versionAgent}` : '';
|
|
187
|
+
console.log(chalk.bold(`Duplicate versions${versionLabel}`));
|
|
188
|
+
await pruneDuplicates(parsed.versionAgent, options.yes === true, options.dryRun === true);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
package/dist/commands/pty.d.ts
CHANGED
package/dist/commands/pty.js
CHANGED
|
@@ -19,6 +19,7 @@ import chalk from 'chalk';
|
|
|
19
19
|
import { ptyRequest, unescapeInput } from '../lib/pty-client.js';
|
|
20
20
|
import { isPtyServerRunning, runPtyServer, getPtyPidPath, getPtyLogPath } from '../lib/pty-server.js';
|
|
21
21
|
import * as fs from 'fs';
|
|
22
|
+
/** Register the `agents pty` command tree. */
|
|
22
23
|
export function registerPtyCommands(program) {
|
|
23
24
|
const pty = program
|
|
24
25
|
.command('pty')
|
|
@@ -376,6 +377,7 @@ Example:
|
|
|
376
377
|
await runPtyServer();
|
|
377
378
|
});
|
|
378
379
|
}
|
|
380
|
+
/** Format a millisecond duration as a compact human-readable string (e.g. "5m", "2h 30m"). */
|
|
379
381
|
function formatAge(ms) {
|
|
380
382
|
const secs = Math.floor(ms / 1000);
|
|
381
383
|
if (secs < 60)
|
|
@@ -386,4 +388,3 @@ function formatAge(ms) {
|
|
|
386
388
|
const hours = Math.floor(mins / 60);
|
|
387
389
|
return `${hours}h ${mins % 60}m`;
|
|
388
390
|
}
|
|
389
|
-
//# sourceMappingURL=pty.js.map
|
package/dist/commands/pull.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config pull command.
|
|
3
|
+
*
|
|
4
|
+
* Registers the `agents pull` command which clones or updates the
|
|
5
|
+
* system ~/.agents-system/ git repo and syncs CLI versions, MCP servers,
|
|
6
|
+
* resources, and hooks to installed agent versions.
|
|
7
|
+
*/
|
|
1
8
|
import type { Command } from 'commander';
|
|
9
|
+
/** Register the `agents pull` command. */
|
|
2
10
|
export declare function registerPullCommand(program: Command): void;
|
|
3
|
-
//# sourceMappingURL=pull.d.ts.map
|