@phnx-labs/agents-cli 1.12.0 → 1.14.2
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 +308 -297
- 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 +10 -0
- package/dist/commands/cloud.js +408 -0
- 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 +207 -20
- 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 +45 -6
- 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 +11 -0
- package/dist/commands/profiles.js +291 -0
- 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 +93 -129
- 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 +10 -0
- package/dist/commands/secrets.js +518 -0
- 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 +288 -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 +353 -20
- package/dist/index.d.ts +7 -2
- package/dist/index.js +205 -38
- 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 +207 -23
- 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 +25 -0
- package/dist/lib/cloud/codex.js +250 -0
- package/dist/lib/cloud/factory.d.ts +31 -0
- package/dist/lib/cloud/factory.js +53 -0
- package/dist/lib/cloud/registry.d.ts +15 -0
- package/dist/lib/cloud/registry.js +67 -0
- package/dist/lib/cloud/rush.d.ts +75 -0
- package/dist/lib/cloud/rush.js +438 -0
- package/dist/lib/cloud/store.d.ts +22 -0
- package/dist/lib/cloud/store.js +115 -0
- package/dist/lib/cloud/stream.d.ts +23 -0
- package/dist/lib/cloud/stream.js +194 -0
- package/dist/lib/cloud/types.d.ts +205 -0
- package/dist/lib/cloud/types.js +34 -0
- 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 +25 -5
- package/dist/lib/exec.js +72 -27
- 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 +191 -21
- 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 +25 -11
- package/dist/lib/models.js +405 -16
- 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 +24 -0
- package/dist/lib/profiles-presets.js +103 -0
- package/dist/lib/profiles.d.ts +69 -0
- package/dist/lib/profiles.js +144 -0
- 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 +89 -0
- package/dist/lib/rotate.js +327 -0
- 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 +39 -0
- package/dist/lib/secrets/bundles.js +189 -0
- 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 +16 -0
- package/dist/lib/session/artifacts.js +95 -0
- 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 +24 -2
- package/dist/lib/session/types.js +10 -2
- package/dist/lib/shims.d.ts +93 -5
- package/dist/lib/shims.js +380 -67
- 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 +114 -22
- package/dist/lib/state.js +323 -138
- 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 +48 -1
- package/dist/lib/usage.js +97 -16
- package/dist/lib/version-duplicates.d.ts +21 -0
- package/dist/lib/version-duplicates.js +90 -0
- package/dist/lib/versions.d.ts +39 -4
- package/dist/lib/versions.js +401 -111
- package/package.json +33 -18
- 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/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/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/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 -184
- package/dist/lib/__tests__/models.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 -218
- package/dist/lib/__tests__/usage.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/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/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/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/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/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
|
@@ -3,15 +3,16 @@ import ora from 'ora';
|
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import * as os from 'os';
|
|
5
5
|
import * as path from 'path';
|
|
6
|
-
import { checkbox
|
|
7
|
-
import { ALL_AGENT_IDS,
|
|
6
|
+
import { checkbox } from '@inquirer/prompts';
|
|
7
|
+
import { ALL_AGENT_IDS, resolveAgentName, formatAgentError, agentLabel, } from '../lib/agents.js';
|
|
8
8
|
import { cloneRepo } from '../lib/git.js';
|
|
9
|
-
import { discoverCommands, resolveCommandSource, installCommandCentrally, uninstallCommand, listCentralCommands, getCommandInfo, diffVersionCommands,
|
|
9
|
+
import { discoverCommands, resolveCommandSource, installCommandCentrally, uninstallCommand, listCentralCommands, getCommandInfo, diffVersionCommands, iterCommandsCapableVersions, } from '../lib/commands.js';
|
|
10
10
|
import { getCommandsDir } from '../lib/state.js';
|
|
11
11
|
import { showResourceList, buildTargetsSection, } from './resource-view.js';
|
|
12
|
-
import { getGlobalDefault, syncResourcesToVersion, promptAgentVersionSelection, resolveAgentVersionTargets, } from '../lib/versions.js';
|
|
12
|
+
import { getGlobalDefault, resolveVersionAlias, syncResourcesToVersion, promptAgentVersionSelection, resolveAgentVersionTargets, } from '../lib/versions.js';
|
|
13
13
|
import { recordVersionResources } from '../lib/state.js';
|
|
14
14
|
import { isPromptCancelled, isInteractiveTerminal, parseCommaSeparatedList, printWithPager, requireInteractiveSelection, } from './utils.js';
|
|
15
|
+
/** Register the `agents commands` command tree (list, add, remove, sync, prune, view). */
|
|
15
16
|
export function registerCommandsCommands(program) {
|
|
16
17
|
const commandsCmd = program
|
|
17
18
|
.command('commands')
|
|
@@ -58,7 +59,7 @@ When to use:
|
|
|
58
59
|
process.exit(1);
|
|
59
60
|
}
|
|
60
61
|
filterAgent = resolved;
|
|
61
|
-
filterVersion = parts[1]
|
|
62
|
+
filterVersion = resolveVersionAlias(resolved, parts[1]);
|
|
62
63
|
}
|
|
63
64
|
const rows = buildCommandRows({ filterAgent, filterVersion });
|
|
64
65
|
spinner.stop();
|
|
@@ -127,7 +128,7 @@ Examples:
|
|
|
127
128
|
}
|
|
128
129
|
// Build choices with descriptions
|
|
129
130
|
const choices = centralCommands.map((name) => {
|
|
130
|
-
const cmdPath = path.join(
|
|
131
|
+
const cmdPath = path.join(getCommandsDir(), `${name}.md`);
|
|
131
132
|
let description = '';
|
|
132
133
|
if (fs.existsSync(cmdPath)) {
|
|
133
134
|
const content = fs.readFileSync(cmdPath, 'utf-8');
|
|
@@ -324,174 +325,26 @@ Examples:
|
|
|
324
325
|
}
|
|
325
326
|
}
|
|
326
327
|
});
|
|
328
|
+
// `commands sync` is gone — sync runs automatically when the agent launches.
|
|
327
329
|
commandsCmd
|
|
328
|
-
.command('sync')
|
|
329
|
-
.
|
|
330
|
-
.
|
|
331
|
-
.
|
|
332
|
-
.
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
# Scope to one agent or version
|
|
338
|
-
agents commands sync --agent claude
|
|
339
|
-
agents commands sync --agent claude@2.1.113
|
|
340
|
-
|
|
341
|
-
# Symlink into version homes (propagates central edits automatically, markdown agents only)
|
|
342
|
-
agents commands sync --method symlink
|
|
343
|
-
|
|
344
|
-
Note: Gemini uses TOML — symlink is ignored and a fresh conversion is written
|
|
345
|
-
on every sync. Sync is additive: to remove orphans, use 'agents commands prune'.
|
|
346
|
-
`)
|
|
347
|
-
.action(async (options) => {
|
|
348
|
-
const method = (options.method === 'symlink' ? 'symlink' : 'copy');
|
|
349
|
-
let filter;
|
|
350
|
-
if (options.agent) {
|
|
351
|
-
const [name, version] = String(options.agent).split('@');
|
|
352
|
-
const agentId = resolveAgentName(name);
|
|
353
|
-
if (!agentId) {
|
|
354
|
-
console.log(chalk.red(formatAgentError(name, COMMANDS_CAPABLE_AGENTS)));
|
|
355
|
-
process.exit(1);
|
|
356
|
-
}
|
|
357
|
-
filter = { agent: agentId, version: version || undefined };
|
|
358
|
-
}
|
|
359
|
-
const pairs = iterCommandsCapableVersions(filter);
|
|
360
|
-
if (pairs.length === 0) {
|
|
361
|
-
console.log(chalk.gray('No matching installed versions.'));
|
|
362
|
-
return;
|
|
363
|
-
}
|
|
364
|
-
const diffs = pairs.map(({ agent, version }) => diffVersionCommands(agent, version));
|
|
365
|
-
const plan = diffs.filter((d) => d.toAdd.length > 0 || d.toUpdate.length > 0);
|
|
366
|
-
if (plan.length === 0) {
|
|
367
|
-
console.log(chalk.green('All version homes are up to date with central.'));
|
|
368
|
-
if (diffs.some((d) => d.orphans.length > 0)) {
|
|
369
|
-
console.log(chalk.gray('Orphan commands present. Run \'agents commands prune --dry-run\' to review.'));
|
|
370
|
-
}
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
console.log(chalk.bold(`Syncing commands (method: ${method})\n`));
|
|
374
|
-
let adds = 0, updates = 0, failures = 0;
|
|
375
|
-
for (const diff of plan) {
|
|
376
|
-
const label = `${diff.agent}@${diff.version}`;
|
|
377
|
-
if (diff.toAdd.length > 0) {
|
|
378
|
-
console.log(` ${chalk.cyan(label)} ${chalk.gray('add:')} ${diff.toAdd.join(', ')}`);
|
|
379
|
-
for (const name of diff.toAdd) {
|
|
380
|
-
const r = installCommandToVersion(diff.agent, diff.version, name, method);
|
|
381
|
-
if (r.success)
|
|
382
|
-
adds++;
|
|
383
|
-
else {
|
|
384
|
-
failures++;
|
|
385
|
-
console.log(chalk.red(` ! ${name}: ${r.error}`));
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
if (diff.toUpdate.length > 0) {
|
|
390
|
-
console.log(` ${chalk.cyan(label)} ${chalk.gray('update:')} ${diff.toUpdate.join(', ')}`);
|
|
391
|
-
for (const name of diff.toUpdate) {
|
|
392
|
-
const r = installCommandToVersion(diff.agent, diff.version, name, method);
|
|
393
|
-
if (r.success)
|
|
394
|
-
updates++;
|
|
395
|
-
else {
|
|
396
|
-
failures++;
|
|
397
|
-
console.log(chalk.red(` ! ${name}: ${r.error}`));
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
console.log();
|
|
403
|
-
console.log(chalk.green(`Synced: ${adds} added, ${updates} updated${failures > 0 ? chalk.red(`, ${failures} failed`) : ''}.`));
|
|
404
|
-
const totalOrphans = diffs.reduce((n, d) => n + d.orphans.length, 0);
|
|
405
|
-
if (totalOrphans > 0) {
|
|
406
|
-
console.log(chalk.gray(`${totalOrphans} orphan(s) remain. Run 'agents commands prune --dry-run' to review.`));
|
|
407
|
-
}
|
|
330
|
+
.command('sync', { hidden: true })
|
|
331
|
+
.allowUnknownOption()
|
|
332
|
+
.allowExcessArguments()
|
|
333
|
+
.action(() => {
|
|
334
|
+
console.error(chalk.red('"agents commands sync" is gone.'));
|
|
335
|
+
console.error(chalk.gray('Sync runs automatically when you launch the agent.'));
|
|
336
|
+
console.error(chalk.gray('To remove orphans, use: agents prune commands'));
|
|
337
|
+
process.exit(1);
|
|
408
338
|
});
|
|
339
|
+
// `commands prune` moved to the top-level `agents prune` command.
|
|
409
340
|
commandsCmd
|
|
410
|
-
.command('prune')
|
|
411
|
-
.
|
|
412
|
-
.
|
|
413
|
-
.
|
|
414
|
-
.
|
|
415
|
-
.
|
|
416
|
-
|
|
417
|
-
# See what would be pruned
|
|
418
|
-
agents commands prune --dry-run
|
|
419
|
-
|
|
420
|
-
# Prune across every installed version (prompts for confirmation)
|
|
421
|
-
agents commands prune
|
|
422
|
-
|
|
423
|
-
# Scope to one agent or version
|
|
424
|
-
agents commands prune --agent claude@2.0.65
|
|
425
|
-
|
|
426
|
-
# Skip confirmation (for scripts)
|
|
427
|
-
agents commands prune -y
|
|
428
|
-
`)
|
|
429
|
-
.action(async (options) => {
|
|
430
|
-
let filter;
|
|
431
|
-
if (options.agent) {
|
|
432
|
-
const [name, version] = String(options.agent).split('@');
|
|
433
|
-
const agentId = resolveAgentName(name);
|
|
434
|
-
if (!agentId) {
|
|
435
|
-
console.log(chalk.red(formatAgentError(name, COMMANDS_CAPABLE_AGENTS)));
|
|
436
|
-
process.exit(1);
|
|
437
|
-
}
|
|
438
|
-
filter = { agent: agentId, version: version || undefined };
|
|
439
|
-
}
|
|
440
|
-
const pairs = iterCommandsCapableVersions(filter);
|
|
441
|
-
const diffs = pairs
|
|
442
|
-
.map(({ agent, version }) => diffVersionCommands(agent, version))
|
|
443
|
-
.filter((d) => d.orphans.length > 0);
|
|
444
|
-
if (diffs.length === 0) {
|
|
445
|
-
console.log(chalk.green('No orphan commands.'));
|
|
446
|
-
return;
|
|
447
|
-
}
|
|
448
|
-
const total = diffs.reduce((n, d) => n + d.orphans.length, 0);
|
|
449
|
-
console.log(chalk.bold(`Orphans (in version home, not in central)\n`));
|
|
450
|
-
for (const d of diffs) {
|
|
451
|
-
console.log(` ${chalk.cyan(`${d.agent}@${d.version}`)} ${d.orphans.join(', ')}`);
|
|
452
|
-
}
|
|
453
|
-
console.log();
|
|
454
|
-
if (options.dryRun) {
|
|
455
|
-
console.log(chalk.gray(`${total} orphan(s). Run without --dry-run to delete.`));
|
|
456
|
-
return;
|
|
457
|
-
}
|
|
458
|
-
if (!options.yes) {
|
|
459
|
-
if (!isInteractiveTerminal()) {
|
|
460
|
-
console.log(chalk.yellow('Non-interactive shell: pass -y to confirm, or --dry-run to preview.'));
|
|
461
|
-
process.exit(1);
|
|
462
|
-
}
|
|
463
|
-
let ok = false;
|
|
464
|
-
try {
|
|
465
|
-
ok = await confirm({
|
|
466
|
-
message: `Delete ${total} orphan command${total === 1 ? '' : 's'}?`,
|
|
467
|
-
default: false,
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
catch (err) {
|
|
471
|
-
if (isPromptCancelled(err)) {
|
|
472
|
-
console.log(chalk.gray('Cancelled'));
|
|
473
|
-
return;
|
|
474
|
-
}
|
|
475
|
-
throw err;
|
|
476
|
-
}
|
|
477
|
-
if (!ok) {
|
|
478
|
-
console.log(chalk.gray('Cancelled'));
|
|
479
|
-
return;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
let removed = 0, failures = 0;
|
|
483
|
-
for (const d of diffs) {
|
|
484
|
-
for (const name of d.orphans) {
|
|
485
|
-
const r = removeCommandFromVersion(d.agent, d.version, name);
|
|
486
|
-
if (r.success)
|
|
487
|
-
removed++;
|
|
488
|
-
else {
|
|
489
|
-
failures++;
|
|
490
|
-
console.log(chalk.red(` ! ${d.agent}@${d.version} ${name}: ${r.error}`));
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
console.log(chalk.green(`Pruned ${removed} orphan(s)${failures > 0 ? chalk.red(`, ${failures} failed`) : ''}.`));
|
|
341
|
+
.command('prune', { hidden: true })
|
|
342
|
+
.allowUnknownOption()
|
|
343
|
+
.allowExcessArguments()
|
|
344
|
+
.action(() => {
|
|
345
|
+
console.error(chalk.red('"agents commands prune" moved.'));
|
|
346
|
+
console.error(chalk.gray('Use: agents prune commands (or `agents prune` for everything)'));
|
|
347
|
+
process.exit(1);
|
|
495
348
|
});
|
|
496
349
|
commandsCmd
|
|
497
350
|
.command('view [name]')
|
|
@@ -625,4 +478,3 @@ function formatCommandDetail(name, info, targets) {
|
|
|
625
478
|
lines.push(buildTargetsSection(targets));
|
|
626
479
|
return lines.join('\n');
|
|
627
480
|
}
|
|
628
|
-
//# sourceMappingURL=commands.js.map
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deprecated daemon commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers the hidden `agents daemon` command tree as backward-compatible
|
|
5
|
+
* aliases for `agents routines` scheduler lifecycle commands. Scheduled
|
|
6
|
+
* for removal in v2.0.
|
|
7
|
+
*/
|
|
1
8
|
import type { Command } from 'commander';
|
|
9
|
+
/** Register the deprecated `agents daemon` command tree. */
|
|
2
10
|
export declare function registerDaemonCommands(program: Command): void;
|
|
3
|
-
//# sourceMappingURL=daemon.d.ts.map
|
package/dist/commands/daemon.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deprecated daemon commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers the hidden `agents daemon` command tree as backward-compatible
|
|
5
|
+
* aliases for `agents routines` scheduler lifecycle commands. Scheduled
|
|
6
|
+
* for removal in v2.0.
|
|
7
|
+
*/
|
|
8
|
+
import { spawn } from 'child_process';
|
|
1
9
|
import chalk from 'chalk';
|
|
2
10
|
import * as path from 'path';
|
|
3
11
|
import { startDaemon, stopDaemon, isDaemonRunning, readDaemonPid, readDaemonLog, runDaemon, } from '../lib/daemon.js';
|
|
4
12
|
import { listJobs as listAllJobs } from '../lib/routines.js';
|
|
5
13
|
import { JobScheduler } from '../lib/scheduler.js';
|
|
14
|
+
/** Print a deprecation warning pointing to the replacement command. */
|
|
6
15
|
function warnDeprecated(subcommand, replacement) {
|
|
7
16
|
console.log(chalk.yellow(`\u26a0 'agents daemon ${subcommand}' is deprecated and will be removed in v2.0. Use '${replacement}' instead.\n`));
|
|
8
17
|
}
|
|
18
|
+
/** Register the deprecated `agents daemon` command tree. */
|
|
9
19
|
export function registerDaemonCommands(program) {
|
|
10
20
|
const daemonCmd = program
|
|
11
21
|
.command('daemon', { hidden: true })
|
|
@@ -81,12 +91,11 @@ you never need to start it manually.
|
|
|
81
91
|
.action(async (options) => {
|
|
82
92
|
warnDeprecated('logs', 'agents routines scheduler-logs');
|
|
83
93
|
if (options.follow) {
|
|
84
|
-
const { exec: execCb } = await import('child_process');
|
|
85
94
|
const { getAgentsDir } = await import('../lib/state.js');
|
|
86
95
|
const logPath = path.join(getAgentsDir(), 'daemon.log');
|
|
87
|
-
const child =
|
|
88
|
-
child.stdout
|
|
89
|
-
child.stderr
|
|
96
|
+
const child = spawn('tail', ['-f', logPath], { stdio: ['ignore', 'pipe', 'pipe'] });
|
|
97
|
+
child.stdout.pipe(process.stdout);
|
|
98
|
+
child.stderr.pipe(process.stderr);
|
|
90
99
|
child.on('exit', () => process.exit(0));
|
|
91
100
|
process.on('SIGINT', () => { child.kill(); process.exit(0); });
|
|
92
101
|
return;
|
|
@@ -107,4 +116,3 @@ you never need to start it manually.
|
|
|
107
116
|
await runDaemon();
|
|
108
117
|
});
|
|
109
118
|
}
|
|
110
|
-
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agents doctor` — diagnostic readout across the install.
|
|
3
|
+
*
|
|
4
|
+
* Three sections:
|
|
5
|
+
* 1. CLI availability — which agent binaries can be invoked.
|
|
6
|
+
* 2. Sync status — per (agent, default-version), is the version-home sync
|
|
7
|
+
* manifest fresh? (sync runs at launch; this surfaces what would happen.)
|
|
8
|
+
* 3. Orphans — per resource type per default version, count of files that
|
|
9
|
+
* would be removed by `agents prune`.
|
|
10
|
+
*
|
|
11
|
+
* Read-only: doctor never mutates state. Run `agents prune` to act on the
|
|
12
|
+
* orphan readout, or just launch the agent to apply pending sync.
|
|
13
|
+
*/
|
|
14
|
+
import type { Command } from 'commander';
|
|
15
|
+
export declare function registerDoctorCommand(program: Command): void;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { checkAllClis } from '../lib/teams/agents.js';
|
|
3
|
+
import { AGENTS, ALL_AGENT_IDS } from '../lib/agents.js';
|
|
4
|
+
import { getAvailableResources, getGlobalDefault, } from '../lib/versions.js';
|
|
5
|
+
import { loadSyncManifest, isSyncStale } from '../lib/sync-manifest.js';
|
|
6
|
+
import { diffVersionCommands, iterCommandsCapableVersions } from '../lib/commands.js';
|
|
7
|
+
import { diffVersionSkills, iterSkillsCapableVersions } from '../lib/skills.js';
|
|
8
|
+
import { diffVersionHooks, iterHooksCapableVersions } from '../lib/hooks.js';
|
|
9
|
+
const AGENT_NAMES = Object.fromEntries(ALL_AGENT_IDS.map((id) => [id, AGENTS[id].name]));
|
|
10
|
+
function checkSyncStatus(cwd) {
|
|
11
|
+
const rows = [];
|
|
12
|
+
for (const agent of ALL_AGENT_IDS) {
|
|
13
|
+
const version = getGlobalDefault(agent);
|
|
14
|
+
if (!version)
|
|
15
|
+
continue;
|
|
16
|
+
const manifest = loadSyncManifest(agent, version);
|
|
17
|
+
if (!manifest) {
|
|
18
|
+
rows.push({ agent, version, status: 'never-synced' });
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const available = getAvailableResources(cwd);
|
|
22
|
+
const stale = isSyncStale(manifest, available, agent, version, cwd);
|
|
23
|
+
rows.push({ agent, version, status: stale ? 'stale' : 'fresh' });
|
|
24
|
+
}
|
|
25
|
+
return rows;
|
|
26
|
+
}
|
|
27
|
+
function countOrphans() {
|
|
28
|
+
const byKey = new Map();
|
|
29
|
+
const ensure = (agent, version) => {
|
|
30
|
+
const key = `${agent}@${version}`;
|
|
31
|
+
let row = byKey.get(key);
|
|
32
|
+
if (!row) {
|
|
33
|
+
row = { agent, version, commands: 0, skills: 0, hooks: 0 };
|
|
34
|
+
byKey.set(key, row);
|
|
35
|
+
}
|
|
36
|
+
return row;
|
|
37
|
+
};
|
|
38
|
+
for (const { agent, version } of iterCommandsCapableVersions()) {
|
|
39
|
+
if (version !== getGlobalDefault(agent))
|
|
40
|
+
continue;
|
|
41
|
+
const diff = diffVersionCommands(agent, version);
|
|
42
|
+
if (diff.orphans.length > 0)
|
|
43
|
+
ensure(agent, version).commands = diff.orphans.length;
|
|
44
|
+
}
|
|
45
|
+
for (const { agent, version } of iterSkillsCapableVersions()) {
|
|
46
|
+
if (version !== getGlobalDefault(agent))
|
|
47
|
+
continue;
|
|
48
|
+
const diff = diffVersionSkills(agent, version);
|
|
49
|
+
if (diff.orphans.length > 0)
|
|
50
|
+
ensure(agent, version).skills = diff.orphans.length;
|
|
51
|
+
}
|
|
52
|
+
for (const { agent, version } of iterHooksCapableVersions()) {
|
|
53
|
+
if (version !== getGlobalDefault(agent))
|
|
54
|
+
continue;
|
|
55
|
+
const diff = diffVersionHooks(agent, version);
|
|
56
|
+
if (diff.orphans.length > 0)
|
|
57
|
+
ensure(agent, version).hooks = diff.orphans.length;
|
|
58
|
+
}
|
|
59
|
+
return Array.from(byKey.values()).filter((r) => r.commands + r.skills + r.hooks > 0);
|
|
60
|
+
}
|
|
61
|
+
function renderText(clis, syncRows, orphanRows) {
|
|
62
|
+
console.log(chalk.bold('Agent CLIs'));
|
|
63
|
+
if (Object.keys(clis).length === 0) {
|
|
64
|
+
console.log(chalk.gray(' (no agents reported)'));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
for (const [name, entry] of Object.entries(clis)) {
|
|
68
|
+
const pretty = AGENT_NAMES[name] || name;
|
|
69
|
+
if (entry.installed) {
|
|
70
|
+
console.log(` ${chalk.green('ready')} ${pretty.padEnd(10)} ${chalk.gray(entry.path || '')}`);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
console.log(` ${chalk.red('no ')} ${pretty.padEnd(10)} ${chalk.gray(entry.error || 'not installed')}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
console.log();
|
|
78
|
+
console.log(chalk.bold('Sync status (default versions)'));
|
|
79
|
+
if (syncRows.length === 0) {
|
|
80
|
+
console.log(chalk.gray(' (no default versions set; pin one with `agents use <agent>@<version>`)'));
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
for (const row of syncRows) {
|
|
84
|
+
const label = `${AGENT_NAMES[row.agent] || row.agent}@${row.version}`;
|
|
85
|
+
if (row.status === 'fresh') {
|
|
86
|
+
console.log(` ${chalk.green('fresh')} ${label}`);
|
|
87
|
+
}
|
|
88
|
+
else if (row.status === 'stale') {
|
|
89
|
+
console.log(` ${chalk.yellow('stale')} ${label} ${chalk.gray('— will sync on next launch')}`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
console.log(` ${chalk.gray('cold ')} ${label} ${chalk.gray('— never synced; first launch will populate')}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
console.log();
|
|
97
|
+
console.log(chalk.bold('Orphans (default versions)'));
|
|
98
|
+
if (orphanRows.length === 0) {
|
|
99
|
+
console.log(chalk.gray(' (none — version homes match central sources)'));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
for (const row of orphanRows) {
|
|
103
|
+
const parts = [];
|
|
104
|
+
if (row.commands > 0)
|
|
105
|
+
parts.push(`${row.commands} command${row.commands === 1 ? '' : 's'}`);
|
|
106
|
+
if (row.skills > 0)
|
|
107
|
+
parts.push(`${row.skills} skill${row.skills === 1 ? '' : 's'}`);
|
|
108
|
+
if (row.hooks > 0)
|
|
109
|
+
parts.push(`${row.hooks} hook${row.hooks === 1 ? '' : 's'}`);
|
|
110
|
+
const label = `${AGENT_NAMES[row.agent] || row.agent}@${row.version}`;
|
|
111
|
+
console.log(` ${chalk.yellow('warn ')} ${label} ${chalk.gray(parts.join(', '))}`);
|
|
112
|
+
}
|
|
113
|
+
console.log(chalk.gray(' Run `agents prune` to remove.'));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export function registerDoctorCommand(program) {
|
|
117
|
+
program
|
|
118
|
+
.command('doctor')
|
|
119
|
+
.description('Diagnose CLI availability, sync status, and orphan resources')
|
|
120
|
+
.option('--json', 'Output machine-readable JSON')
|
|
121
|
+
.action((opts) => {
|
|
122
|
+
const cwd = process.cwd();
|
|
123
|
+
const clis = checkAllClis();
|
|
124
|
+
const syncRows = checkSyncStatus(cwd);
|
|
125
|
+
const orphanRows = countOrphans();
|
|
126
|
+
if (opts.json) {
|
|
127
|
+
console.log(JSON.stringify({ clis, sync: syncRows, orphans: orphanRows }, null, 2));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
renderText(clis, syncRows, orphanRows);
|
|
131
|
+
});
|
|
132
|
+
}
|
package/dist/commands/drive.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drive sync commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers the `agents drive` command tree for syncing agent session
|
|
5
|
+
* history across machines via rsync. Supports pull, push, attach
|
|
6
|
+
* (redirect agent homes to drive), and detach operations.
|
|
7
|
+
*/
|
|
1
8
|
import type { Command } from 'commander';
|
|
9
|
+
/** Register the `agents drive` command tree. */
|
|
2
10
|
export declare function registerDriveCommands(program: Command): void;
|
|
3
|
-
//# sourceMappingURL=drive.d.ts.map
|
package/dist/commands/drive.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drive sync commands.
|
|
3
|
+
*
|
|
4
|
+
* Registers the `agents drive` command tree for syncing agent session
|
|
5
|
+
* history across machines via rsync. Supports pull, push, attach
|
|
6
|
+
* (redirect agent homes to drive), and detach operations.
|
|
7
|
+
*/
|
|
1
8
|
import chalk from 'chalk';
|
|
2
9
|
import ora from 'ora';
|
|
10
|
+
import { betaEnableHint, isBetaEnabled } from '../lib/beta.js';
|
|
3
11
|
import { setRemote, pull, push, attach, detach, getDriveStatus, } from '../lib/drive-sync.js';
|
|
12
|
+
/** Register the `agents drive` command tree. */
|
|
4
13
|
export function registerDriveCommands(program) {
|
|
14
|
+
const enabled = isBetaEnabled('drive');
|
|
5
15
|
const driveCmd = program
|
|
6
|
-
.command('drive')
|
|
16
|
+
.command('drive', { hidden: !enabled })
|
|
7
17
|
.description('Sync agent session history across machines via rsync. Set up once, then pull/push to keep sessions in sync.')
|
|
8
18
|
.addHelpText('after', `
|
|
9
19
|
Typical workflow:
|
|
@@ -24,13 +34,20 @@ Typical workflow:
|
|
|
24
34
|
Use case: Keep session history consistent across your laptop and desktop,
|
|
25
35
|
or back up sessions to a server you control.
|
|
26
36
|
`);
|
|
37
|
+
driveCmd.hook('preAction', () => {
|
|
38
|
+
if (enabled)
|
|
39
|
+
return;
|
|
40
|
+
console.error(chalk.red('agents drive is in beta.'));
|
|
41
|
+
console.error(chalk.gray(betaEnableHint('drive')));
|
|
42
|
+
process.exit(1);
|
|
43
|
+
});
|
|
27
44
|
driveCmd
|
|
28
45
|
.command('remote <target>')
|
|
29
46
|
.description('Set the rsync remote target (e.g., user@hostname). Sessions sync to <target>:~/.agents/drive/')
|
|
30
47
|
.addHelpText('after', `
|
|
31
48
|
Examples:
|
|
32
49
|
# Set remote to a server
|
|
33
|
-
agents drive remote
|
|
50
|
+
agents drive remote user@server
|
|
34
51
|
|
|
35
52
|
# Set remote to a local machine on your network
|
|
36
53
|
agents drive remote macbook.local
|
|
@@ -146,6 +163,7 @@ Example:
|
|
|
146
163
|
}
|
|
147
164
|
});
|
|
148
165
|
}
|
|
166
|
+
/** Format an ISO timestamp as a human-readable relative time (e.g. "5 min ago"). */
|
|
149
167
|
function formatTime(iso) {
|
|
150
168
|
const d = new Date(iso);
|
|
151
169
|
const now = Date.now();
|
|
@@ -163,4 +181,3 @@ function formatTime(iso) {
|
|
|
163
181
|
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
164
182
|
return `${months[d.getMonth()]} ${d.getDate()}`;
|
|
165
183
|
}
|
|
166
|
-
//# sourceMappingURL=drive.js.map
|
package/dist/commands/exec.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent execution command.
|
|
3
|
+
*
|
|
4
|
+
* Registers the `agents run` command which spawns agent CLIs interactively
|
|
5
|
+
* or headlessly. Supports profile resolution, version rotation, secrets
|
|
6
|
+
* injection, and multi-agent fallback chains for rate-limit resilience.
|
|
7
|
+
*/
|
|
1
8
|
import type { Command } from 'commander';
|
|
9
|
+
/** Register the `agents run <agent> [prompt]` command. */
|
|
2
10
|
export declare function registerRunCommand(program: Command): void;
|
|
3
|
-
//# sourceMappingURL=exec.d.ts.map
|