@swarmify/agents-cli 1.13.4 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -319
- package/bin/agents.js +2 -0
- package/package.json +13 -79
- package/scripts/postinstall.js +4 -71
- package/CHANGELOG.md +0 -316
- package/LICENSE +0 -21
- package/dist/commands/__tests__/sessions-tail.test.d.ts +0 -2
- package/dist/commands/__tests__/sessions-tail.test.d.ts.map +0 -1
- package/dist/commands/__tests__/sessions-tail.test.js +0 -108
- package/dist/commands/__tests__/sessions-tail.test.js.map +0 -1
- 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 +0 -11
- package/dist/commands/cloud.d.ts.map +0 -1
- package/dist/commands/cloud.js +0 -363
- package/dist/commands/cloud.js.map +0 -1
- package/dist/commands/commands.d.ts +0 -12
- package/dist/commands/commands.d.ts.map +0 -1
- package/dist/commands/commands.js +0 -629
- package/dist/commands/commands.js.map +0 -1
- package/dist/commands/daemon.d.ts +0 -11
- package/dist/commands/daemon.d.ts.map +0 -1
- package/dist/commands/daemon.js +0 -119
- package/dist/commands/daemon.js.map +0 -1
- package/dist/commands/drive.d.ts +0 -11
- package/dist/commands/drive.d.ts.map +0 -1
- package/dist/commands/drive.js +0 -175
- package/dist/commands/drive.js.map +0 -1
- package/dist/commands/exec.d.ts +0 -11
- package/dist/commands/exec.d.ts.map +0 -1
- package/dist/commands/exec.js +0 -251
- package/dist/commands/exec.js.map +0 -1
- package/dist/commands/factory.d.ts +0 -11
- package/dist/commands/factory.d.ts.map +0 -1
- package/dist/commands/factory.js +0 -445
- package/dist/commands/factory.js.map +0 -1
- package/dist/commands/fork.d.ts +0 -11
- package/dist/commands/fork.d.ts.map +0 -1
- package/dist/commands/fork.js +0 -147
- package/dist/commands/fork.js.map +0 -1
- package/dist/commands/hooks.d.ts +0 -12
- package/dist/commands/hooks.d.ts.map +0 -1
- package/dist/commands/hooks.js +0 -690
- package/dist/commands/hooks.js.map +0 -1
- package/dist/commands/init.d.ts +0 -15
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -137
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/mcp.d.ts +0 -12
- package/dist/commands/mcp.d.ts.map +0 -1
- package/dist/commands/mcp.js +0 -583
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/models.d.ts +0 -11
- package/dist/commands/models.d.ts.map +0 -1
- package/dist/commands/models.js +0 -170
- package/dist/commands/models.js.map +0 -1
- package/dist/commands/packages.d.ts +0 -11
- package/dist/commands/packages.d.ts.map +0 -1
- package/dist/commands/packages.js +0 -551
- package/dist/commands/packages.js.map +0 -1
- package/dist/commands/permissions.d.ts +0 -12
- package/dist/commands/permissions.d.ts.map +0 -1
- package/dist/commands/permissions.js +0 -724
- package/dist/commands/permissions.js.map +0 -1
- package/dist/commands/plugins.d.ts +0 -11
- package/dist/commands/plugins.d.ts.map +0 -1
- package/dist/commands/plugins.js +0 -393
- package/dist/commands/plugins.js.map +0 -1
- package/dist/commands/profiles.d.ts +0 -12
- package/dist/commands/profiles.d.ts.map +0 -1
- package/dist/commands/profiles.js +0 -255
- package/dist/commands/profiles.js.map +0 -1
- package/dist/commands/pty.d.ts +0 -21
- package/dist/commands/pty.d.ts.map +0 -1
- package/dist/commands/pty.js +0 -391
- package/dist/commands/pty.js.map +0 -1
- package/dist/commands/pull.d.ts +0 -11
- package/dist/commands/pull.d.ts.map +0 -1
- package/dist/commands/pull.js +0 -456
- package/dist/commands/pull.js.map +0 -1
- package/dist/commands/push.d.ts +0 -11
- package/dist/commands/push.d.ts.map +0 -1
- package/dist/commands/push.js +0 -188
- package/dist/commands/push.js.map +0 -1
- package/dist/commands/refresh-memory.d.ts +0 -16
- package/dist/commands/refresh-memory.d.ts.map +0 -1
- package/dist/commands/refresh-memory.js +0 -52
- package/dist/commands/refresh-memory.js.map +0 -1
- package/dist/commands/resource-view.d.ts +0 -39
- package/dist/commands/resource-view.d.ts.map +0 -1
- package/dist/commands/resource-view.js +0 -197
- package/dist/commands/resource-view.js.map +0 -1
- package/dist/commands/routines.d.ts +0 -11
- package/dist/commands/routines.d.ts.map +0 -1
- package/dist/commands/routines.js +0 -590
- package/dist/commands/routines.js.map +0 -1
- package/dist/commands/rules.d.ts +0 -12
- package/dist/commands/rules.d.ts.map +0 -1
- package/dist/commands/rules.js +0 -489
- package/dist/commands/rules.js.map +0 -1
- package/dist/commands/secrets.d.ts +0 -11
- package/dist/commands/secrets.d.ts.map +0 -1
- package/dist/commands/secrets.js +0 -352
- package/dist/commands/secrets.js.map +0 -1
- package/dist/commands/sessions-picker.d.ts +0 -18
- package/dist/commands/sessions-picker.d.ts.map +0 -1
- package/dist/commands/sessions-picker.js +0 -265
- package/dist/commands/sessions-picker.js.map +0 -1
- package/dist/commands/sessions-tail.d.ts +0 -20
- package/dist/commands/sessions-tail.d.ts.map +0 -1
- package/dist/commands/sessions-tail.js +0 -236
- package/dist/commands/sessions-tail.js.map +0 -1
- package/dist/commands/sessions.d.ts +0 -18
- package/dist/commands/sessions.d.ts.map +0 -1
- package/dist/commands/sessions.js +0 -1173
- package/dist/commands/sessions.js.map +0 -1
- package/dist/commands/skills.d.ts +0 -12
- package/dist/commands/skills.d.ts.map +0 -1
- package/dist/commands/skills.js +0 -717
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/status.d.ts +0 -10
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -26
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/subagents.d.ts +0 -11
- package/dist/commands/subagents.d.ts.map +0 -1
- package/dist/commands/subagents.js +0 -361
- package/dist/commands/subagents.js.map +0 -1
- package/dist/commands/sync.d.ts +0 -11
- package/dist/commands/sync.d.ts.map +0 -1
- package/dist/commands/sync.js +0 -70
- package/dist/commands/sync.js.map +0 -1
- package/dist/commands/teams-picker.d.ts +0 -18
- package/dist/commands/teams-picker.d.ts.map +0 -1
- package/dist/commands/teams-picker.js +0 -290
- package/dist/commands/teams-picker.js.map +0 -1
- package/dist/commands/teams.d.ts +0 -18
- package/dist/commands/teams.d.ts.map +0 -1
- package/dist/commands/teams.js +0 -1144
- package/dist/commands/teams.js.map +0 -1
- package/dist/commands/utils.d.ts +0 -45
- package/dist/commands/utils.d.ts.map +0 -1
- package/dist/commands/utils.js +0 -106
- package/dist/commands/utils.js.map +0 -1
- package/dist/commands/versions.d.ts +0 -11
- package/dist/commands/versions.d.ts.map +0 -1
- package/dist/commands/versions.js +0 -701
- package/dist/commands/versions.js.map +0 -1
- package/dist/commands/view.d.ts +0 -43
- package/dist/commands/view.d.ts.map +0 -1
- package/dist/commands/view.js +0 -894
- package/dist/commands/view.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -496
- 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 -57
- 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 +0 -158
- package/dist/lib/agents.d.ts.map +0 -1
- package/dist/lib/agents.js +0 -1159
- package/dist/lib/agents.js.map +0 -1
- package/dist/lib/artifact-actions.d.ts +0 -27
- package/dist/lib/artifact-actions.d.ts.map +0 -1
- package/dist/lib/artifact-actions.js +0 -58
- package/dist/lib/artifact-actions.js.map +0 -1
- package/dist/lib/cloud/codex.d.ts +0 -26
- package/dist/lib/cloud/codex.d.ts.map +0 -1
- package/dist/lib/cloud/codex.js +0 -237
- package/dist/lib/cloud/codex.js.map +0 -1
- package/dist/lib/cloud/factory.d.ts +0 -32
- package/dist/lib/cloud/factory.d.ts.map +0 -1
- package/dist/lib/cloud/factory.js +0 -43
- package/dist/lib/cloud/factory.js.map +0 -1
- package/dist/lib/cloud/registry.d.ts +0 -16
- package/dist/lib/cloud/registry.d.ts.map +0 -1
- package/dist/lib/cloud/registry.js +0 -68
- package/dist/lib/cloud/registry.js.map +0 -1
- package/dist/lib/cloud/rush.d.ts +0 -37
- package/dist/lib/cloud/rush.d.ts.map +0 -1
- package/dist/lib/cloud/rush.js +0 -230
- package/dist/lib/cloud/rush.js.map +0 -1
- package/dist/lib/cloud/rush.test.d.ts +0 -2
- package/dist/lib/cloud/rush.test.d.ts.map +0 -1
- package/dist/lib/cloud/rush.test.js +0 -63
- package/dist/lib/cloud/rush.test.js.map +0 -1
- package/dist/lib/cloud/store.d.ts +0 -23
- package/dist/lib/cloud/store.d.ts.map +0 -1
- package/dist/lib/cloud/store.js +0 -116
- package/dist/lib/cloud/store.js.map +0 -1
- package/dist/lib/cloud/stream.d.ts +0 -24
- package/dist/lib/cloud/stream.d.ts.map +0 -1
- package/dist/lib/cloud/stream.js +0 -145
- package/dist/lib/cloud/stream.js.map +0 -1
- package/dist/lib/cloud/types.d.ts +0 -109
- package/dist/lib/cloud/types.d.ts.map +0 -1
- package/dist/lib/cloud/types.js +0 -33
- package/dist/lib/cloud/types.js.map +0 -1
- package/dist/lib/cloud/types.test.d.ts +0 -2
- package/dist/lib/cloud/types.test.d.ts.map +0 -1
- package/dist/lib/cloud/types.test.js +0 -41
- package/dist/lib/cloud/types.test.js.map +0 -1
- package/dist/lib/commands.d.ts +0 -141
- package/dist/lib/commands.d.ts.map +0 -1
- package/dist/lib/commands.js +0 -514
- package/dist/lib/commands.js.map +0 -1
- package/dist/lib/convert.d.ts +0 -21
- package/dist/lib/convert.d.ts.map +0 -1
- package/dist/lib/convert.js +0 -54
- package/dist/lib/convert.js.map +0 -1
- package/dist/lib/daemon.d.ts +0 -43
- package/dist/lib/daemon.d.ts.map +0 -1
- package/dist/lib/daemon.js +0 -332
- package/dist/lib/daemon.js.map +0 -1
- package/dist/lib/drive-sync.d.ts +0 -46
- package/dist/lib/drive-sync.d.ts.map +0 -1
- package/dist/lib/drive-sync.js +0 -209
- package/dist/lib/drive-sync.js.map +0 -1
- package/dist/lib/exec.d.ts +0 -101
- package/dist/lib/exec.d.ts.map +0 -1
- package/dist/lib/exec.js +0 -450
- package/dist/lib/exec.js.map +0 -1
- package/dist/lib/factory/__tests__/config.test.d.ts +0 -2
- package/dist/lib/factory/__tests__/config.test.d.ts.map +0 -1
- package/dist/lib/factory/__tests__/config.test.js +0 -128
- package/dist/lib/factory/__tests__/config.test.js.map +0 -1
- package/dist/lib/factory/config.d.ts +0 -49
- package/dist/lib/factory/config.d.ts.map +0 -1
- package/dist/lib/factory/config.js +0 -127
- package/dist/lib/factory/config.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 -107
- package/dist/lib/factory.js.map +0 -1
- package/dist/lib/git.d.ts +0 -157
- package/dist/lib/git.d.ts.map +0 -1
- package/dist/lib/git.js +0 -647
- package/dist/lib/git.js.map +0 -1
- package/dist/lib/help.d.ts +0 -10
- package/dist/lib/help.d.ts.map +0 -1
- package/dist/lib/help.js +0 -66
- package/dist/lib/help.js.map +0 -1
- package/dist/lib/hooks.d.ts +0 -125
- package/dist/lib/hooks.d.ts.map +0 -1
- package/dist/lib/hooks.js +0 -846
- package/dist/lib/hooks.js.map +0 -1
- package/dist/lib/ledger/__tests__/local.test.d.ts +0 -2
- package/dist/lib/ledger/__tests__/local.test.d.ts.map +0 -1
- package/dist/lib/ledger/__tests__/local.test.js +0 -177
- package/dist/lib/ledger/__tests__/local.test.js.map +0 -1
- package/dist/lib/ledger/__tests__/sync.test.d.ts +0 -2
- package/dist/lib/ledger/__tests__/sync.test.d.ts.map +0 -1
- package/dist/lib/ledger/__tests__/sync.test.js +0 -117
- package/dist/lib/ledger/__tests__/sync.test.js.map +0 -1
- package/dist/lib/ledger/index.d.ts +0 -18
- package/dist/lib/ledger/index.d.ts.map +0 -1
- package/dist/lib/ledger/index.js +0 -32
- package/dist/lib/ledger/index.js.map +0 -1
- package/dist/lib/ledger/local.d.ts +0 -22
- package/dist/lib/ledger/local.d.ts.map +0 -1
- package/dist/lib/ledger/local.js +0 -333
- package/dist/lib/ledger/local.js.map +0 -1
- package/dist/lib/ledger/r2.d.ts +0 -41
- package/dist/lib/ledger/r2.d.ts.map +0 -1
- package/dist/lib/ledger/r2.js +0 -335
- package/dist/lib/ledger/r2.js.map +0 -1
- package/dist/lib/ledger/sync.d.ts +0 -33
- package/dist/lib/ledger/sync.d.ts.map +0 -1
- package/dist/lib/ledger/sync.js +0 -106
- package/dist/lib/ledger/sync.js.map +0 -1
- package/dist/lib/ledger/types.d.ts +0 -100
- package/dist/lib/ledger/types.d.ts.map +0 -1
- package/dist/lib/ledger/types.js +0 -21
- package/dist/lib/ledger/types.js.map +0 -1
- package/dist/lib/manifest.d.ts +0 -14
- package/dist/lib/manifest.d.ts.map +0 -1
- package/dist/lib/manifest.js +0 -48
- package/dist/lib/manifest.js.map +0 -1
- package/dist/lib/markdown.d.ts +0 -5
- package/dist/lib/markdown.d.ts.map +0 -1
- package/dist/lib/markdown.js +0 -17
- package/dist/lib/markdown.js.map +0 -1
- package/dist/lib/mcp.d.ts +0 -64
- package/dist/lib/mcp.d.ts.map +0 -1
- package/dist/lib/mcp.js +0 -327
- package/dist/lib/mcp.js.map +0 -1
- package/dist/lib/memory-compile.d.ts +0 -65
- package/dist/lib/memory-compile.d.ts.map +0 -1
- package/dist/lib/memory-compile.js +0 -174
- package/dist/lib/memory-compile.js.map +0 -1
- package/dist/lib/memory.d.ts +0 -64
- package/dist/lib/memory.d.ts.map +0 -1
- package/dist/lib/memory.js +0 -275
- package/dist/lib/memory.js.map +0 -1
- package/dist/lib/models.d.ts +0 -98
- package/dist/lib/models.d.ts.map +0 -1
- package/dist/lib/models.js +0 -728
- package/dist/lib/models.js.map +0 -1
- package/dist/lib/permissions.d.ts +0 -227
- package/dist/lib/permissions.d.ts.map +0 -1
- package/dist/lib/permissions.js +0 -1085
- package/dist/lib/permissions.js.map +0 -1
- package/dist/lib/picker.d.ts +0 -27
- package/dist/lib/picker.d.ts.map +0 -1
- package/dist/lib/picker.js +0 -110
- package/dist/lib/picker.js.map +0 -1
- package/dist/lib/plugins.d.ts +0 -80
- package/dist/lib/plugins.d.ts.map +0 -1
- package/dist/lib/plugins.js +0 -556
- package/dist/lib/plugins.js.map +0 -1
- package/dist/lib/profiles-keychain.d.ts +0 -11
- package/dist/lib/profiles-keychain.d.ts.map +0 -1
- package/dist/lib/profiles-keychain.js +0 -14
- package/dist/lib/profiles-keychain.js.map +0 -1
- package/dist/lib/profiles-presets.d.ts +0 -25
- package/dist/lib/profiles-presets.d.ts.map +0 -1
- package/dist/lib/profiles-presets.js +0 -104
- package/dist/lib/profiles-presets.js.map +0 -1
- package/dist/lib/profiles.d.ts +0 -70
- package/dist/lib/profiles.d.ts.map +0 -1
- package/dist/lib/profiles.js +0 -145
- package/dist/lib/profiles.js.map +0 -1
- package/dist/lib/pty-client.d.ts +0 -23
- package/dist/lib/pty-client.d.ts.map +0 -1
- package/dist/lib/pty-client.js +0 -181
- package/dist/lib/pty-client.js.map +0 -1
- package/dist/lib/pty-server.d.ts +0 -21
- package/dist/lib/pty-server.d.ts.map +0 -1
- package/dist/lib/pty-server.js +0 -427
- package/dist/lib/pty-server.js.map +0 -1
- package/dist/lib/registry.d.ts +0 -45
- package/dist/lib/registry.d.ts.map +0 -1
- package/dist/lib/registry.js +0 -220
- package/dist/lib/registry.js.map +0 -1
- package/dist/lib/resources.d.ts +0 -55
- package/dist/lib/resources.d.ts.map +0 -1
- package/dist/lib/resources.js +0 -103
- package/dist/lib/resources.js.map +0 -1
- package/dist/lib/rotate.d.ts +0 -58
- package/dist/lib/rotate.d.ts.map +0 -1
- package/dist/lib/rotate.js +0 -93
- package/dist/lib/rotate.js.map +0 -1
- package/dist/lib/routines.d.ts +0 -99
- package/dist/lib/routines.d.ts.map +0 -1
- package/dist/lib/routines.js +0 -352
- package/dist/lib/routines.js.map +0 -1
- package/dist/lib/runner.d.ts +0 -26
- package/dist/lib/runner.d.ts.map +0 -1
- package/dist/lib/runner.js +0 -325
- package/dist/lib/runner.js.map +0 -1
- package/dist/lib/sandbox.d.ts +0 -26
- package/dist/lib/sandbox.d.ts.map +0 -1
- package/dist/lib/sandbox.js +0 -218
- package/dist/lib/sandbox.js.map +0 -1
- package/dist/lib/scheduler.d.ts +0 -26
- package/dist/lib/scheduler.d.ts.map +0 -1
- package/dist/lib/scheduler.js +0 -77
- package/dist/lib/scheduler.js.map +0 -1
- package/dist/lib/secrets-bundles.d.ts +0 -38
- package/dist/lib/secrets-bundles.d.ts.map +0 -1
- package/dist/lib/secrets-bundles.js +0 -176
- package/dist/lib/secrets-bundles.js.map +0 -1
- package/dist/lib/secrets.d.ts +0 -53
- package/dist/lib/secrets.d.ts.map +0 -1
- package/dist/lib/secrets.js +0 -140
- 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/active.d.ts +0 -44
- package/dist/lib/session/active.d.ts.map +0 -1
- package/dist/lib/session/active.js +0 -379
- package/dist/lib/session/active.js.map +0 -1
- package/dist/lib/session/artifacts.d.ts +0 -15
- package/dist/lib/session/artifacts.d.ts.map +0 -1
- package/dist/lib/session/artifacts.js +0 -86
- package/dist/lib/session/artifacts.js.map +0 -1
- package/dist/lib/session/db.d.ts +0 -140
- package/dist/lib/session/db.d.ts.map +0 -1
- package/dist/lib/session/db.js +0 -599
- package/dist/lib/session/db.js.map +0 -1
- package/dist/lib/session/discover.d.ts +0 -72
- package/dist/lib/session/discover.d.ts.map +0 -1
- package/dist/lib/session/discover.js +0 -1315
- package/dist/lib/session/discover.js.map +0 -1
- package/dist/lib/session/parse.d.ts +0 -34
- package/dist/lib/session/parse.d.ts.map +0 -1
- package/dist/lib/session/parse.js +0 -663
- package/dist/lib/session/parse.js.map +0 -1
- package/dist/lib/session/prompt.d.ts +0 -13
- package/dist/lib/session/prompt.d.ts.map +0 -1
- package/dist/lib/session/prompt.js +0 -79
- 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 +0 -103
- package/dist/lib/session/render.d.ts.map +0 -1
- package/dist/lib/session/render.js +0 -798
- package/dist/lib/session/render.js.map +0 -1
- package/dist/lib/session/team-filter.d.ts +0 -35
- package/dist/lib/session/team-filter.d.ts.map +0 -1
- package/dist/lib/session/team-filter.js +0 -75
- 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 +0 -84
- package/dist/lib/session/types.d.ts.map +0 -1
- package/dist/lib/session/types.js +0 -11
- package/dist/lib/session/types.js.map +0 -1
- package/dist/lib/shims.d.ts +0 -272
- package/dist/lib/shims.d.ts.map +0 -1
- package/dist/lib/shims.js +0 -1322
- package/dist/lib/shims.js.map +0 -1
- package/dist/lib/skills.d.ts +0 -142
- package/dist/lib/skills.d.ts.map +0 -1
- package/dist/lib/skills.js +0 -791
- package/dist/lib/skills.js.map +0 -1
- package/dist/lib/state.d.ts +0 -87
- package/dist/lib/state.d.ts.map +0 -1
- package/dist/lib/state.js +0 -333
- package/dist/lib/state.js.map +0 -1
- package/dist/lib/subagents.d.ts +0 -84
- package/dist/lib/subagents.d.ts.map +0 -1
- package/dist/lib/subagents.js +0 -410
- package/dist/lib/subagents.js.map +0 -1
- package/dist/lib/teams/__tests__/oracle.test.d.ts +0 -2
- package/dist/lib/teams/__tests__/oracle.test.d.ts.map +0 -1
- package/dist/lib/teams/__tests__/oracle.test.js +0 -89
- package/dist/lib/teams/__tests__/oracle.test.js.map +0 -1
- package/dist/lib/teams/__tests__/supervisor.test.d.ts +0 -2
- package/dist/lib/teams/__tests__/supervisor.test.d.ts.map +0 -1
- package/dist/lib/teams/__tests__/supervisor.test.js +0 -179
- package/dist/lib/teams/__tests__/supervisor.test.js.map +0 -1
- package/dist/lib/teams/agents.d.ts +0 -247
- package/dist/lib/teams/agents.d.ts.map +0 -1
- package/dist/lib/teams/agents.js +0 -1244
- package/dist/lib/teams/agents.js.map +0 -1
- package/dist/lib/teams/api.d.ts +0 -91
- package/dist/lib/teams/api.d.ts.map +0 -1
- package/dist/lib/teams/api.js +0 -239
- 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 +0 -8
- package/dist/lib/teams/debug.d.ts.map +0 -1
- package/dist/lib/teams/debug.js +0 -12
- package/dist/lib/teams/debug.js.map +0 -1
- package/dist/lib/teams/file_ops.d.ts +0 -13
- package/dist/lib/teams/file_ops.d.ts.map +0 -1
- package/dist/lib/teams/file_ops.js +0 -66
- package/dist/lib/teams/file_ops.js.map +0 -1
- package/dist/lib/teams/index.d.ts +0 -16
- package/dist/lib/teams/index.d.ts.map +0 -1
- package/dist/lib/teams/index.js +0 -15
- package/dist/lib/teams/index.js.map +0 -1
- package/dist/lib/teams/oracle.d.ts +0 -20
- package/dist/lib/teams/oracle.d.ts.map +0 -1
- package/dist/lib/teams/oracle.js +0 -59
- package/dist/lib/teams/oracle.js.map +0 -1
- package/dist/lib/teams/parsers.d.ts +0 -9
- package/dist/lib/teams/parsers.d.ts.map +0 -1
- package/dist/lib/teams/parsers.js +0 -837
- package/dist/lib/teams/parsers.js.map +0 -1
- package/dist/lib/teams/persistence.d.ts +0 -43
- package/dist/lib/teams/persistence.d.ts.map +0 -1
- package/dist/lib/teams/persistence.js +0 -299
- 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 +0 -18
- package/dist/lib/teams/registry.d.ts.map +0 -1
- package/dist/lib/teams/registry.js +0 -68
- package/dist/lib/teams/registry.js.map +0 -1
- package/dist/lib/teams/summarizer.d.ts +0 -73
- package/dist/lib/teams/summarizer.d.ts.map +0 -1
- package/dist/lib/teams/summarizer.js +0 -780
- package/dist/lib/teams/summarizer.js.map +0 -1
- package/dist/lib/teams/supervisor.d.ts +0 -49
- package/dist/lib/teams/supervisor.d.ts.map +0 -1
- package/dist/lib/teams/supervisor.js +0 -74
- package/dist/lib/teams/supervisor.js.map +0 -1
- package/dist/lib/template.d.ts +0 -27
- package/dist/lib/template.d.ts.map +0 -1
- package/dist/lib/template.js +0 -60
- package/dist/lib/template.js.map +0 -1
- package/dist/lib/types.d.ts +0 -331
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -29
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/usage.d.ts +0 -105
- package/dist/lib/usage.d.ts.map +0 -1
- package/dist/lib/usage.js +0 -686
- package/dist/lib/usage.js.map +0 -1
- package/dist/lib/versions.d.ts +0 -253
- package/dist/lib/versions.d.ts.map +0 -1
- package/dist/lib/versions.js +0 -1796
- package/dist/lib/versions.js.map +0 -1
- package/scripts/rebuild-sqlite.sh +0 -46
|
@@ -1,255 +0,0 @@
|
|
|
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
|
-
*/
|
|
9
|
-
import chalk from 'chalk';
|
|
10
|
-
import * as fs from 'fs';
|
|
11
|
-
import { listProfiles, readProfile, writeProfile, deleteProfile, profileExists, profileFromPreset, getPresetForProfile, } from '../lib/profiles.js';
|
|
12
|
-
import { getPreset, listPresets } from '../lib/profiles-presets.js';
|
|
13
|
-
import { hasKeychainToken, keychainItemName, setKeychainToken, deleteKeychainToken, } from '../lib/profiles-keychain.js';
|
|
14
|
-
import { isInteractiveTerminal } from './utils.js';
|
|
15
|
-
/** Prompt the user for a secret value with masked input. Requires an interactive TTY. */
|
|
16
|
-
async function promptForSecret(message) {
|
|
17
|
-
if (!isInteractiveTerminal()) {
|
|
18
|
-
throw new Error('A secret is required but the shell is not interactive. Pipe the key via stdin (--key-stdin).');
|
|
19
|
-
}
|
|
20
|
-
const { password } = await import('@inquirer/prompts');
|
|
21
|
-
return await password({ message, mask: true });
|
|
22
|
-
}
|
|
23
|
-
/** Read all available data from stdin synchronously, trimmed. */
|
|
24
|
-
function readStdinSync() {
|
|
25
|
-
const chunks = [];
|
|
26
|
-
const buf = Buffer.alloc(65536);
|
|
27
|
-
while (true) {
|
|
28
|
-
let bytesRead;
|
|
29
|
-
try {
|
|
30
|
-
bytesRead = fs.readSync(0, buf, 0, buf.length, null);
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
if (bytesRead === 0)
|
|
36
|
-
break;
|
|
37
|
-
chunks.push(Buffer.from(buf.subarray(0, bytesRead)));
|
|
38
|
-
}
|
|
39
|
-
return Buffer.concat(chunks).toString('utf-8').trim();
|
|
40
|
-
}
|
|
41
|
-
/** Ensure a provider API key exists in keychain, prompting or reading stdin if missing. */
|
|
42
|
-
async function ensureProviderToken(provider, signupUrl, fromStdin) {
|
|
43
|
-
const item = keychainItemName(provider);
|
|
44
|
-
if (hasKeychainToken(item)) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
let token;
|
|
48
|
-
if (fromStdin) {
|
|
49
|
-
token = readStdinSync();
|
|
50
|
-
if (!token) {
|
|
51
|
-
throw new Error('No key received on stdin.');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
const hint = signupUrl ? ` (get one at ${signupUrl})` : '';
|
|
56
|
-
token = await promptForSecret(`Enter API key for ${provider}${hint}`);
|
|
57
|
-
}
|
|
58
|
-
setKeychainToken(item, token);
|
|
59
|
-
console.log(chalk.green(`Stored in keychain: ${item}`));
|
|
60
|
-
}
|
|
61
|
-
/** Format a single profile as a table row for the `profiles list` output. */
|
|
62
|
-
function renderProfileRow(p) {
|
|
63
|
-
const host = p.host.version ? `${p.host.agent}@${p.host.version}` : p.host.agent;
|
|
64
|
-
const model = p.env.ANTHROPIC_MODEL || p.env.OPENAI_MODEL || p.env.GEMINI_MODEL || '-';
|
|
65
|
-
const provider = p.provider || (p.auth?.keychainItem?.split('.')[1]) || '-';
|
|
66
|
-
return `${chalk.cyan(p.name.padEnd(16))} ${host.padEnd(14)} ${provider.padEnd(12)} ${chalk.gray(model)}`;
|
|
67
|
-
}
|
|
68
|
-
/** Register the `agents profiles` command tree. */
|
|
69
|
-
export function registerProfilesCommands(program) {
|
|
70
|
-
const cmd = program
|
|
71
|
-
.command('profiles')
|
|
72
|
-
.description('Named bundles of (host CLI, endpoint, model, auth) — run Kimi/DeepSeek/Qwen/etc through Claude Code without a proxy.')
|
|
73
|
-
.addHelpText('after', `
|
|
74
|
-
A profile pins a host CLI (claude, codex, gemini, ...) to a non-default endpoint
|
|
75
|
-
and model, with a keychain-backed API key. Running 'agents run <profile>' spawns
|
|
76
|
-
the host CLI with the right env vars — no plaintext tokens, no local proxy.
|
|
77
|
-
|
|
78
|
-
Built-in presets (via OpenRouter, one shared key):
|
|
79
|
-
kimi Kimi K2.5 (top HumanEval, reasoning — interactive only)
|
|
80
|
-
kimi-chat Kimi K2 0905 (non-reasoning, print-safe)
|
|
81
|
-
minimax MiniMax M2.5 (top SWE-bench, reasoning)
|
|
82
|
-
glm GLM 5 (top Chatbot Arena among open-weight, reasoning)
|
|
83
|
-
qwen Qwen3 Coder Next (latest coding Qwen, print-safe)
|
|
84
|
-
deepseek DeepSeek Chat V3 (latest non-reasoning chat, print-safe)
|
|
85
|
-
|
|
86
|
-
Run 'agents profiles presets' for the full list with pricing and context sizes.
|
|
87
|
-
|
|
88
|
-
Typical flow:
|
|
89
|
-
agents profiles add kimi # prompts for OpenRouter key, stored in Keychain
|
|
90
|
-
agents run kimi "refactor this" # Claude Code UI, Kimi model responses
|
|
91
|
-
agents profiles add deepseek # reuses OpenRouter key, no re-prompt
|
|
92
|
-
|
|
93
|
-
Managing keys:
|
|
94
|
-
agents profiles login openrouter # rotate the key (shared across openrouter profiles)
|
|
95
|
-
agents profiles logout openrouter # remove from Keychain
|
|
96
|
-
|
|
97
|
-
Custom endpoints — drop a YAML file at ~/.agents/profiles/<name>.yml:
|
|
98
|
-
name: local-llama
|
|
99
|
-
host: { agent: claude }
|
|
100
|
-
env:
|
|
101
|
-
ANTHROPIC_BASE_URL: http://localhost:11434
|
|
102
|
-
ANTHROPIC_MODEL: llama-3.3-70b
|
|
103
|
-
auth:
|
|
104
|
-
envVar: ANTHROPIC_AUTH_TOKEN
|
|
105
|
-
keychainItem: agents-cli.ollama.token
|
|
106
|
-
|
|
107
|
-
Profiles store no secrets — safe to 'agents push' to a shared repo.
|
|
108
|
-
`);
|
|
109
|
-
cmd
|
|
110
|
-
.command('list')
|
|
111
|
-
.alias('ls')
|
|
112
|
-
.description('List configured profiles')
|
|
113
|
-
.action(() => {
|
|
114
|
-
const profiles = listProfiles();
|
|
115
|
-
if (profiles.length === 0) {
|
|
116
|
-
console.log(chalk.gray('No profiles configured.'));
|
|
117
|
-
console.log(chalk.gray('Try: agents profiles add kimi'));
|
|
118
|
-
console.log(chalk.gray(' agents profiles presets'));
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
console.log(chalk.bold(`${'NAME'.padEnd(16)} ${'HOST'.padEnd(14)} ${'PROVIDER'.padEnd(12)} MODEL`));
|
|
122
|
-
for (const p of profiles) {
|
|
123
|
-
console.log(renderProfileRow(p));
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
cmd
|
|
127
|
-
.command('presets')
|
|
128
|
-
.description('List built-in presets (OpenRouter + direct providers)')
|
|
129
|
-
.action(() => {
|
|
130
|
-
const presets = listPresets();
|
|
131
|
-
console.log(chalk.bold(`${'NAME'.padEnd(14)} ${'PROVIDER'.padEnd(12)} DESCRIPTION`));
|
|
132
|
-
for (const p of presets) {
|
|
133
|
-
console.log(`${chalk.cyan(p.name.padEnd(14))} ${p.provider.padEnd(12)} ${chalk.gray(p.description)}`);
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
cmd
|
|
137
|
-
.command('view <name>')
|
|
138
|
-
.alias('show')
|
|
139
|
-
.description('Show a profile (env, host, auth source, preset link)')
|
|
140
|
-
.action((name) => {
|
|
141
|
-
try {
|
|
142
|
-
const p = readProfile(name);
|
|
143
|
-
console.log(chalk.bold(p.name));
|
|
144
|
-
if (p.description)
|
|
145
|
-
console.log(chalk.gray(p.description));
|
|
146
|
-
console.log();
|
|
147
|
-
console.log(chalk.bold('Host:'), p.host.agent + (p.host.version ? `@${p.host.version}` : ''));
|
|
148
|
-
if (p.provider)
|
|
149
|
-
console.log(chalk.bold('Provider:'), p.provider);
|
|
150
|
-
if (p.preset)
|
|
151
|
-
console.log(chalk.bold('Preset:'), p.preset);
|
|
152
|
-
console.log();
|
|
153
|
-
console.log(chalk.bold('Env:'));
|
|
154
|
-
for (const [k, v] of Object.entries(p.env)) {
|
|
155
|
-
console.log(` ${k}=${v}`);
|
|
156
|
-
}
|
|
157
|
-
if (p.auth) {
|
|
158
|
-
console.log();
|
|
159
|
-
console.log(chalk.bold('Auth:'));
|
|
160
|
-
const tokenStatus = hasKeychainToken(p.auth.keychainItem) ? chalk.green('stored') : chalk.red('missing');
|
|
161
|
-
console.log(` ${p.auth.envVar} <- keychain:${p.auth.keychainItem} (${tokenStatus})`);
|
|
162
|
-
}
|
|
163
|
-
const preset = getPresetForProfile(p);
|
|
164
|
-
if (preset?.signupUrl) {
|
|
165
|
-
console.log();
|
|
166
|
-
console.log(chalk.gray(`Sign up: ${preset.signupUrl}`));
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
catch (err) {
|
|
170
|
-
console.error(chalk.red(err.message));
|
|
171
|
-
process.exit(1);
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
cmd
|
|
175
|
-
.command('add <name>')
|
|
176
|
-
.description('Add a profile. If <name> matches a built-in preset, the preset is applied. Prompts for API key (once per provider).')
|
|
177
|
-
.option('--preset <preset>', 'Use a named preset (defaults to <name> if a preset by that name exists)')
|
|
178
|
-
.option('--version <version>', 'Pin the host CLI version (e.g., 2.1.113)')
|
|
179
|
-
.option('--key-stdin', 'Read API key from stdin instead of prompting (for scripts/CI)')
|
|
180
|
-
.option('--force', 'Overwrite an existing profile with the same name')
|
|
181
|
-
.action(async (name, opts) => {
|
|
182
|
-
try {
|
|
183
|
-
if (profileExists(name) && !opts.force) {
|
|
184
|
-
console.error(chalk.red(`Profile '${name}' already exists. Use --force to overwrite.`));
|
|
185
|
-
process.exit(1);
|
|
186
|
-
}
|
|
187
|
-
const presetName = opts.preset || name;
|
|
188
|
-
const preset = getPreset(presetName);
|
|
189
|
-
if (!preset) {
|
|
190
|
-
console.error(chalk.red(`No preset '${presetName}'.`));
|
|
191
|
-
console.error(chalk.gray('Available presets: ' + listPresets().map((p) => p.name).join(', ')));
|
|
192
|
-
console.error(chalk.gray('Or pass --preset <name> to pick explicitly.'));
|
|
193
|
-
process.exit(1);
|
|
194
|
-
}
|
|
195
|
-
await ensureProviderToken(preset.provider, preset.signupUrl, opts.keyStdin);
|
|
196
|
-
const profile = profileFromPreset(name, preset, opts.version);
|
|
197
|
-
writeProfile(profile);
|
|
198
|
-
console.log(chalk.green(`Profile '${name}' added.`));
|
|
199
|
-
console.log(chalk.gray(`Try: agents run ${name} "hello"`));
|
|
200
|
-
}
|
|
201
|
-
catch (err) {
|
|
202
|
-
console.error(chalk.red(err.message));
|
|
203
|
-
process.exit(1);
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
cmd
|
|
207
|
-
.command('remove <name>')
|
|
208
|
-
.alias('rm')
|
|
209
|
-
.description('Delete a profile (keychain token is kept — use `profiles logout <provider>` to remove)')
|
|
210
|
-
.action((name) => {
|
|
211
|
-
const existed = deleteProfile(name);
|
|
212
|
-
if (!existed) {
|
|
213
|
-
console.error(chalk.red(`Profile '${name}' not found.`));
|
|
214
|
-
process.exit(1);
|
|
215
|
-
}
|
|
216
|
-
console.log(chalk.green(`Profile '${name}' removed.`));
|
|
217
|
-
});
|
|
218
|
-
cmd
|
|
219
|
-
.command('login <provider>')
|
|
220
|
-
.description('Store or rotate the API key for a provider (e.g., openrouter). Shared across profiles using that provider.')
|
|
221
|
-
.option('--key-stdin', 'Read API key from stdin')
|
|
222
|
-
.action(async (provider, opts) => {
|
|
223
|
-
try {
|
|
224
|
-
const item = keychainItemName(provider);
|
|
225
|
-
let token;
|
|
226
|
-
if (opts.keyStdin) {
|
|
227
|
-
token = readStdinSync();
|
|
228
|
-
if (!token)
|
|
229
|
-
throw new Error('No key received on stdin.');
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
token = await promptForSecret(`Enter API key for ${provider}`);
|
|
233
|
-
}
|
|
234
|
-
setKeychainToken(item, token);
|
|
235
|
-
console.log(chalk.green(`Stored in keychain: ${item}`));
|
|
236
|
-
}
|
|
237
|
-
catch (err) {
|
|
238
|
-
console.error(chalk.red(err.message));
|
|
239
|
-
process.exit(1);
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
cmd
|
|
243
|
-
.command('logout <provider>')
|
|
244
|
-
.description('Remove a stored provider key from keychain')
|
|
245
|
-
.action((provider) => {
|
|
246
|
-
const item = keychainItemName(provider);
|
|
247
|
-
const existed = deleteKeychainToken(item);
|
|
248
|
-
if (!existed) {
|
|
249
|
-
console.error(chalk.yellow(`No keychain item '${item}' to remove.`));
|
|
250
|
-
process.exit(1);
|
|
251
|
-
}
|
|
252
|
-
console.log(chalk.green(`Removed keychain item: ${item}`));
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
//# sourceMappingURL=profiles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/commands/profiles.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pty.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PTY Commands
|
|
3
|
-
*
|
|
4
|
-
* CLI commands for managing interactive PTY sessions.
|
|
5
|
-
* Auto-starts the sidecar server on first use.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* agents pty start [--rows 24 --cols 120 --shell zsh --cwd /path]
|
|
9
|
-
* agents pty exec <id> <command>
|
|
10
|
-
* agents pty read <id> [--ms 200]
|
|
11
|
-
* agents pty write <id> <input>
|
|
12
|
-
* agents pty screen <id>
|
|
13
|
-
* agents pty signal <id> [INT|TERM|KILL]
|
|
14
|
-
* agents pty list
|
|
15
|
-
* agents pty stop <id>
|
|
16
|
-
* agents pty server [start|stop|status]
|
|
17
|
-
*/
|
|
18
|
-
import type { Command } from 'commander';
|
|
19
|
-
/** Register the `agents pty` command tree. */
|
|
20
|
-
export declare function registerPtyCommands(program: Command): void;
|
|
21
|
-
//# sourceMappingURL=pty.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pty.d.ts","sourceRoot":"","sources":["../../src/commands/pty.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,8CAA8C;AAC9C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuX1D"}
|
package/dist/commands/pty.js
DELETED
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PTY Commands
|
|
3
|
-
*
|
|
4
|
-
* CLI commands for managing interactive PTY sessions.
|
|
5
|
-
* Auto-starts the sidecar server on first use.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* agents pty start [--rows 24 --cols 120 --shell zsh --cwd /path]
|
|
9
|
-
* agents pty exec <id> <command>
|
|
10
|
-
* agents pty read <id> [--ms 200]
|
|
11
|
-
* agents pty write <id> <input>
|
|
12
|
-
* agents pty screen <id>
|
|
13
|
-
* agents pty signal <id> [INT|TERM|KILL]
|
|
14
|
-
* agents pty list
|
|
15
|
-
* agents pty stop <id>
|
|
16
|
-
* agents pty server [start|stop|status]
|
|
17
|
-
*/
|
|
18
|
-
import chalk from 'chalk';
|
|
19
|
-
import { ptyRequest, unescapeInput } from '../lib/pty-client.js';
|
|
20
|
-
import { isPtyServerRunning, runPtyServer, getPtyPidPath, getPtyLogPath } from '../lib/pty-server.js';
|
|
21
|
-
import * as fs from 'fs';
|
|
22
|
-
/** Register the `agents pty` command tree. */
|
|
23
|
-
export function registerPtyCommands(program) {
|
|
24
|
-
const pty = program
|
|
25
|
-
.command('pty')
|
|
26
|
-
.description('Drive interactive terminal programs from AI agents. Use this for REPLs, TUIs, or anything needing a real terminal.')
|
|
27
|
-
.addHelpText('after', `
|
|
28
|
-
Typical session workflow:
|
|
29
|
-
# Start a new terminal session (returns a session ID)
|
|
30
|
-
SID=$(agents pty start)
|
|
31
|
-
|
|
32
|
-
# Run a command (non-blocking, returns immediately)
|
|
33
|
-
agents pty exec $SID "python3"
|
|
34
|
-
|
|
35
|
-
# Wait a moment, then see what's on screen (clean text, no ANSI)
|
|
36
|
-
sleep 1 && agents pty screen $SID
|
|
37
|
-
|
|
38
|
-
# Send input (supports escape sequences: \\n \\t \\e \\xHH)
|
|
39
|
-
agents pty write $SID "print('hello')\\n"
|
|
40
|
-
|
|
41
|
-
# Read the output again
|
|
42
|
-
agents pty screen $SID
|
|
43
|
-
|
|
44
|
-
# Clean up when done
|
|
45
|
-
agents pty stop $SID
|
|
46
|
-
|
|
47
|
-
Use cases:
|
|
48
|
-
- Drive REPLs (python, node, irb) from agent code
|
|
49
|
-
- Automate TUI programs (npm init, interactive wizards)
|
|
50
|
-
- Test CLI tools that require a real PTY
|
|
51
|
-
- Run the 'agents' CLI itself from another agent
|
|
52
|
-
|
|
53
|
-
The PTY server auto-starts on first use and runs in the background.
|
|
54
|
-
Use 'agents pty server status' to check health.
|
|
55
|
-
`);
|
|
56
|
-
// --- Session lifecycle ---
|
|
57
|
-
pty
|
|
58
|
-
.command('start')
|
|
59
|
-
.description('Start a new PTY session and return its ID. The session persists until you stop it.')
|
|
60
|
-
.option('-r, --rows <n>', 'Terminal height in rows', '24')
|
|
61
|
-
.option('-c, --cols <n>', 'Terminal width in columns', '120')
|
|
62
|
-
.option('-s, --shell <shell>', 'Shell to launch (defaults to $SHELL, e.g., zsh, bash)')
|
|
63
|
-
.option('-d, --cwd <dir>', 'Working directory for the shell')
|
|
64
|
-
.option('--json', 'Output full session metadata as JSON')
|
|
65
|
-
.addHelpText('after', `
|
|
66
|
-
Examples:
|
|
67
|
-
# Start a session and capture its ID
|
|
68
|
-
SID=$(agents pty start)
|
|
69
|
-
|
|
70
|
-
# Start a Python REPL in a specific directory
|
|
71
|
-
agents pty start --shell python3 --cwd /tmp
|
|
72
|
-
|
|
73
|
-
# Start a wider terminal for TUI programs
|
|
74
|
-
agents pty start --cols 160 --rows 40
|
|
75
|
-
`)
|
|
76
|
-
.action(async (opts) => {
|
|
77
|
-
const params = {
|
|
78
|
-
rows: parseInt(opts.rows, 10),
|
|
79
|
-
cols: parseInt(opts.cols, 10),
|
|
80
|
-
};
|
|
81
|
-
if (opts.shell)
|
|
82
|
-
params.shell = opts.shell;
|
|
83
|
-
if (opts.cwd)
|
|
84
|
-
params.cwd = opts.cwd;
|
|
85
|
-
const res = await ptyRequest('start', undefined, params);
|
|
86
|
-
if (!res.ok) {
|
|
87
|
-
console.error(chalk.red(res.error));
|
|
88
|
-
process.exit(1);
|
|
89
|
-
}
|
|
90
|
-
if (opts.json) {
|
|
91
|
-
console.log(JSON.stringify(res));
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
console.log(res.id);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
pty
|
|
98
|
-
.command('exec <id> <command>')
|
|
99
|
-
.description('Send a command to a PTY session. Returns immediately (non-blocking). Use screen or read to see output.')
|
|
100
|
-
.option('--wait <ms>', 'Wait this many milliseconds then return the screen (convenience for quick commands)', '0')
|
|
101
|
-
.option('--json', 'Output as JSON')
|
|
102
|
-
.addHelpText('after', `
|
|
103
|
-
Examples:
|
|
104
|
-
# Run a command and return immediately
|
|
105
|
-
agents pty exec $SID "ls -la"
|
|
106
|
-
|
|
107
|
-
# Run a command and wait 500ms to see output
|
|
108
|
-
agents pty exec $SID "git status" --wait 500
|
|
109
|
-
|
|
110
|
-
# Start a long-running process (returns right away)
|
|
111
|
-
agents pty exec $SID "npm run dev"
|
|
112
|
-
`)
|
|
113
|
-
.action(async (id, command, opts) => {
|
|
114
|
-
const res = await ptyRequest('exec', id, { command });
|
|
115
|
-
if (!res.ok) {
|
|
116
|
-
console.error(chalk.red(res.error));
|
|
117
|
-
process.exit(1);
|
|
118
|
-
}
|
|
119
|
-
const waitMs = parseInt(opts.wait, 10);
|
|
120
|
-
if (waitMs > 0) {
|
|
121
|
-
// Wait then return screen
|
|
122
|
-
await new Promise(r => setTimeout(r, waitMs));
|
|
123
|
-
const screen = await ptyRequest('screen', id);
|
|
124
|
-
if (opts.json) {
|
|
125
|
-
console.log(JSON.stringify(screen));
|
|
126
|
-
}
|
|
127
|
-
else if (screen.ok) {
|
|
128
|
-
console.log(screen.screen);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
else if (opts.json) {
|
|
132
|
-
console.log(JSON.stringify(res));
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
pty
|
|
136
|
-
.command('read <id>')
|
|
137
|
-
.description('Read raw output from the PTY (includes ANSI codes). Use screen for clean text instead.')
|
|
138
|
-
.option('-m, --ms <ms>', 'Wait up to this many milliseconds for new output (50-5000)', '200')
|
|
139
|
-
.option('--json', 'Output as JSON')
|
|
140
|
-
.addHelpText('after', `
|
|
141
|
-
Examples:
|
|
142
|
-
# Read pending output (wait up to 200ms)
|
|
143
|
-
agents pty read $SID
|
|
144
|
-
|
|
145
|
-
# Read with longer wait for slow commands
|
|
146
|
-
agents pty read $SID --ms 1000
|
|
147
|
-
`)
|
|
148
|
-
.action(async (id, opts) => {
|
|
149
|
-
const ms = parseInt(opts.ms, 10);
|
|
150
|
-
const res = await ptyRequest('read', id, { ms });
|
|
151
|
-
if (!res.ok) {
|
|
152
|
-
console.error(chalk.red(res.error));
|
|
153
|
-
process.exit(1);
|
|
154
|
-
}
|
|
155
|
-
if (opts.json) {
|
|
156
|
-
console.log(JSON.stringify(res));
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
if (res.output)
|
|
160
|
-
process.stdout.write(res.output);
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
pty
|
|
164
|
-
.command('write <id> <input>')
|
|
165
|
-
.description('Send keystrokes to the PTY (like typing into the terminal). Processes escape sequences by default.')
|
|
166
|
-
.option('--raw', 'Send input literally without processing \\n \\t \\e \\xHH escape codes')
|
|
167
|
-
.option('--json', 'Output as JSON')
|
|
168
|
-
.addHelpText('after', `
|
|
169
|
-
Examples:
|
|
170
|
-
# Send Enter key
|
|
171
|
-
agents pty write $SID "\\n"
|
|
172
|
-
|
|
173
|
-
# Type a command and press Enter
|
|
174
|
-
agents pty write $SID "ls -la\\n"
|
|
175
|
-
|
|
176
|
-
# Send Ctrl-C (interrupt signal)
|
|
177
|
-
agents pty write $SID "\\x03"
|
|
178
|
-
|
|
179
|
-
# Send Escape key
|
|
180
|
-
agents pty write $SID "\\e"
|
|
181
|
-
|
|
182
|
-
# Send literal backslash-n (not newline)
|
|
183
|
-
agents pty write $SID "\\\\n" --raw
|
|
184
|
-
`)
|
|
185
|
-
.action(async (id, input, opts) => {
|
|
186
|
-
const processed = opts.raw ? input : unescapeInput(input);
|
|
187
|
-
const res = await ptyRequest('write', id, { input: processed });
|
|
188
|
-
if (!res.ok) {
|
|
189
|
-
console.error(chalk.red(res.error));
|
|
190
|
-
process.exit(1);
|
|
191
|
-
}
|
|
192
|
-
if (opts.json) {
|
|
193
|
-
console.log(JSON.stringify(res));
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
pty
|
|
197
|
-
.command('screen <id>')
|
|
198
|
-
.description('Render the terminal screen as clean text (no ANSI codes). This is what a human sees looking at the terminal.')
|
|
199
|
-
.option('--json', 'Output as JSON (includes cursor position and dimensions)')
|
|
200
|
-
.addHelpText('after', `
|
|
201
|
-
Examples:
|
|
202
|
-
# See what's currently on screen
|
|
203
|
-
agents pty screen $SID
|
|
204
|
-
|
|
205
|
-
# Get screen with cursor position as JSON
|
|
206
|
-
agents pty screen $SID --json
|
|
207
|
-
|
|
208
|
-
Use this (not read) when you want clean text for an LLM to parse.
|
|
209
|
-
`)
|
|
210
|
-
.action(async (id, opts) => {
|
|
211
|
-
const res = await ptyRequest('screen', id);
|
|
212
|
-
if (!res.ok) {
|
|
213
|
-
console.error(chalk.red(res.error));
|
|
214
|
-
process.exit(1);
|
|
215
|
-
}
|
|
216
|
-
if (opts.json) {
|
|
217
|
-
console.log(JSON.stringify(res));
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
console.log(res.screen);
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
pty
|
|
224
|
-
.command('signal <id> [signal]')
|
|
225
|
-
.description('Send a POSIX signal to the running process. Defaults to INT (Ctrl-C).')
|
|
226
|
-
.addHelpText('after', `
|
|
227
|
-
Examples:
|
|
228
|
-
# Send Ctrl-C (interrupt)
|
|
229
|
-
agents pty signal $SID INT
|
|
230
|
-
|
|
231
|
-
# Terminate gracefully
|
|
232
|
-
agents pty signal $SID TERM
|
|
233
|
-
|
|
234
|
-
# Force kill
|
|
235
|
-
agents pty signal $SID KILL
|
|
236
|
-
`)
|
|
237
|
-
.action(async (id, signal) => {
|
|
238
|
-
const res = await ptyRequest('signal', id, { signal: signal || 'INT' });
|
|
239
|
-
if (!res.ok) {
|
|
240
|
-
console.error(chalk.red(res.error));
|
|
241
|
-
process.exit(1);
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
pty
|
|
245
|
-
.command('resize <id>')
|
|
246
|
-
.description('Resize a PTY session')
|
|
247
|
-
.option('-r, --rows <n>', 'Terminal rows')
|
|
248
|
-
.option('-c, --cols <n>', 'Terminal columns')
|
|
249
|
-
.action(async (id, opts) => {
|
|
250
|
-
const params = {};
|
|
251
|
-
if (opts.rows)
|
|
252
|
-
params.rows = parseInt(opts.rows, 10);
|
|
253
|
-
if (opts.cols)
|
|
254
|
-
params.cols = parseInt(opts.cols, 10);
|
|
255
|
-
const res = await ptyRequest('resize', id, params);
|
|
256
|
-
if (!res.ok) {
|
|
257
|
-
console.error(chalk.red(res.error));
|
|
258
|
-
process.exit(1);
|
|
259
|
-
}
|
|
260
|
-
console.log(`${res.cols}x${res.rows}`);
|
|
261
|
-
});
|
|
262
|
-
pty
|
|
263
|
-
.command('stop <id>')
|
|
264
|
-
.description('Stop a PTY session and clean up. The session ID becomes invalid.')
|
|
265
|
-
.addHelpText('after', `
|
|
266
|
-
Example:
|
|
267
|
-
agents pty stop $SID
|
|
268
|
-
`)
|
|
269
|
-
.action(async (id) => {
|
|
270
|
-
const res = await ptyRequest('stop', id);
|
|
271
|
-
if (!res.ok) {
|
|
272
|
-
console.error(chalk.red(res.error));
|
|
273
|
-
process.exit(1);
|
|
274
|
-
}
|
|
275
|
-
});
|
|
276
|
-
// --- Session listing ---
|
|
277
|
-
pty
|
|
278
|
-
.command('list')
|
|
279
|
-
.description('List all active PTY sessions (running or idle).')
|
|
280
|
-
.option('--json', 'Output as JSON')
|
|
281
|
-
.addHelpText('after', `
|
|
282
|
-
Example:
|
|
283
|
-
agents pty list
|
|
284
|
-
`)
|
|
285
|
-
.action(async (opts) => {
|
|
286
|
-
const res = await ptyRequest('list');
|
|
287
|
-
if (!res.ok) {
|
|
288
|
-
console.error(chalk.red(res.error));
|
|
289
|
-
process.exit(1);
|
|
290
|
-
}
|
|
291
|
-
if (opts.json) {
|
|
292
|
-
console.log(JSON.stringify(res.sessions));
|
|
293
|
-
return;
|
|
294
|
-
}
|
|
295
|
-
if (res.sessions.length === 0) {
|
|
296
|
-
console.log(chalk.gray('No active PTY sessions'));
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
for (const s of res.sessions) {
|
|
300
|
-
const age = formatAge(Date.now() - s.started_at);
|
|
301
|
-
const status = s.exited
|
|
302
|
-
? chalk.red(`exited (${s.exit_code})`)
|
|
303
|
-
: s.app_active
|
|
304
|
-
? chalk.yellow(`running: ${s.active_command}`)
|
|
305
|
-
: chalk.green('idle');
|
|
306
|
-
console.log(` ${chalk.bold(s.id)} pid=${s.pid} ${s.shell} ${s.cols}x${s.rows} ${age} ${status}`);
|
|
307
|
-
console.log(` ${chalk.gray(s.cwd)}`);
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
|
-
// --- Server management ---
|
|
311
|
-
const serverCmd = pty
|
|
312
|
-
.command('server')
|
|
313
|
-
.description('Manage the PTY sidecar server (auto-starts on first use, usually you do not need this).');
|
|
314
|
-
serverCmd
|
|
315
|
-
.command('start')
|
|
316
|
-
.description('Start the PTY server manually (auto-starts on first pty command anyway).')
|
|
317
|
-
.action(async () => {
|
|
318
|
-
if (isPtyServerRunning()) {
|
|
319
|
-
const pidPath = getPtyPidPath();
|
|
320
|
-
const pid = fs.existsSync(pidPath) ? fs.readFileSync(pidPath, 'utf-8').trim() : '?';
|
|
321
|
-
console.log(chalk.yellow(`PTY server already running (PID: ${pid})`));
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
// Use ptyRequest which auto-starts the server
|
|
325
|
-
const res = await ptyRequest('ping');
|
|
326
|
-
if (res.ok) {
|
|
327
|
-
console.log(chalk.green(`PTY server started (PID: ${res.pid})`));
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
console.error(chalk.red('Failed to start PTY server'));
|
|
331
|
-
process.exit(1);
|
|
332
|
-
}
|
|
333
|
-
});
|
|
334
|
-
serverCmd
|
|
335
|
-
.command('stop')
|
|
336
|
-
.description('Stop the PTY server and kill all active sessions.')
|
|
337
|
-
.action(async () => {
|
|
338
|
-
if (!isPtyServerRunning()) {
|
|
339
|
-
console.log(chalk.yellow('PTY server is not running'));
|
|
340
|
-
return;
|
|
341
|
-
}
|
|
342
|
-
const pidPath = getPtyPidPath();
|
|
343
|
-
try {
|
|
344
|
-
const pid = parseInt(fs.readFileSync(pidPath, 'utf-8').trim(), 10);
|
|
345
|
-
process.kill(pid, 'SIGTERM');
|
|
346
|
-
console.log(chalk.green('PTY server stopped'));
|
|
347
|
-
}
|
|
348
|
-
catch {
|
|
349
|
-
console.error(chalk.red('Failed to stop PTY server'));
|
|
350
|
-
process.exit(1);
|
|
351
|
-
}
|
|
352
|
-
});
|
|
353
|
-
serverCmd
|
|
354
|
-
.command('status')
|
|
355
|
-
.description('Check if the PTY server is running and how many sessions are active.')
|
|
356
|
-
.action(async () => {
|
|
357
|
-
const running = isPtyServerRunning();
|
|
358
|
-
console.log(` Status: ${running ? chalk.green('running') : chalk.gray('stopped')}`);
|
|
359
|
-
if (running) {
|
|
360
|
-
try {
|
|
361
|
-
const res = await ptyRequest('ping');
|
|
362
|
-
if (res.ok) {
|
|
363
|
-
console.log(` PID: ${res.pid}`);
|
|
364
|
-
console.log(` Sessions: ${res.sessions}`);
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
catch { }
|
|
368
|
-
}
|
|
369
|
-
const logPath = getPtyLogPath();
|
|
370
|
-
console.log(` Log: ${logPath}`);
|
|
371
|
-
});
|
|
372
|
-
// Internal: run server in foreground (spawned by auto-start)
|
|
373
|
-
pty
|
|
374
|
-
.command('_server', { hidden: true })
|
|
375
|
-
.description('Run PTY server (internal)')
|
|
376
|
-
.action(async () => {
|
|
377
|
-
await runPtyServer();
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
/** Format a millisecond duration as a compact human-readable string (e.g. "5m", "2h 30m"). */
|
|
381
|
-
function formatAge(ms) {
|
|
382
|
-
const secs = Math.floor(ms / 1000);
|
|
383
|
-
if (secs < 60)
|
|
384
|
-
return `${secs}s`;
|
|
385
|
-
const mins = Math.floor(secs / 60);
|
|
386
|
-
if (mins < 60)
|
|
387
|
-
return `${mins}m`;
|
|
388
|
-
const hours = Math.floor(mins / 60);
|
|
389
|
-
return `${hours}h ${mins % 60}m`;
|
|
390
|
-
}
|
|
391
|
-
//# sourceMappingURL=pty.js.map
|