@apralabs/apra-fleet 0.2.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/LICENSE +182 -0
- package/README.md +324 -0
- package/dist/cli/auth.d.ts +2 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +210 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/config.d.ts +30 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +157 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/install.d.ts +37 -0
- package/dist/cli/install.d.ts.map +1 -0
- package/dist/cli/install.js +630 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/secret.d.ts +2 -0
- package/dist/cli/secret.d.ts.map +1 -0
- package/dist/cli/secret.js +366 -0
- package/dist/cli/secret.js.map +1 -0
- package/dist/cli/uninstall.d.ts +2 -0
- package/dist/cli/uninstall.d.ts.map +1 -0
- package/dist/cli/uninstall.js +312 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/cli/update.d.ts +2 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/update.js +105 -0
- package/dist/cli/update.js.map +1 -0
- package/dist/delivery-mode.d.ts +19 -0
- package/dist/delivery-mode.d.ts.map +1 -0
- package/dist/delivery-mode.js +26 -0
- package/dist/delivery-mode.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +272 -0
- package/dist/index.js.map +1 -0
- package/dist/onboarding/text.d.ts +83 -0
- package/dist/onboarding/text.d.ts.map +1 -0
- package/dist/onboarding/text.js +126 -0
- package/dist/onboarding/text.js.map +1 -0
- package/dist/os/index.d.ts +9 -0
- package/dist/os/index.d.ts.map +1 -0
- package/dist/os/index.js +16 -0
- package/dist/os/index.js.map +1 -0
- package/dist/os/linux.d.ts +50 -0
- package/dist/os/linux.d.ts.map +1 -0
- package/dist/os/linux.js +244 -0
- package/dist/os/linux.js.map +1 -0
- package/dist/os/macos.d.ts +12 -0
- package/dist/os/macos.d.ts.map +1 -0
- package/dist/os/macos.js +41 -0
- package/dist/os/macos.js.map +1 -0
- package/dist/os/os-commands.d.ts +47 -0
- package/dist/os/os-commands.d.ts.map +1 -0
- package/dist/os/os-commands.js +3 -0
- package/dist/os/os-commands.js.map +1 -0
- package/dist/os/windows-wrapper.d.ts +6 -0
- package/dist/os/windows-wrapper.d.ts.map +1 -0
- package/dist/os/windows-wrapper.js +9 -0
- package/dist/os/windows-wrapper.js.map +1 -0
- package/dist/os/windows.d.ts +44 -0
- package/dist/os/windows.d.ts.map +1 -0
- package/dist/os/windows.js +269 -0
- package/dist/os/windows.js.map +1 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +4 -0
- package/dist/paths.js.map +1 -0
- package/dist/providers/agy.d.ts +41 -0
- package/dist/providers/agy.d.ts.map +1 -0
- package/dist/providers/agy.js +208 -0
- package/dist/providers/agy.js.map +1 -0
- package/dist/providers/claude.d.ts +40 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +178 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex.d.ts +44 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +173 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/copilot.d.ts +40 -0
- package/dist/providers/copilot.d.ts.map +1 -0
- package/dist/providers/copilot.js +172 -0
- package/dist/providers/copilot.js.map +1 -0
- package/dist/providers/gemini.d.ts +41 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +192 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +10 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +27 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/provider.d.ts +85 -0
- package/dist/providers/provider.d.ts.map +1 -0
- package/dist/providers/provider.js +21 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/services/auth-socket.d.ts +87 -0
- package/dist/services/auth-socket.d.ts.map +1 -0
- package/dist/services/auth-socket.js +684 -0
- package/dist/services/auth-socket.js.map +1 -0
- package/dist/services/auth-web.d.ts +31 -0
- package/dist/services/auth-web.d.ts.map +1 -0
- package/dist/services/auth-web.js +202 -0
- package/dist/services/auth-web.js.map +1 -0
- package/dist/services/cloud/activity.d.ts +16 -0
- package/dist/services/cloud/activity.d.ts.map +1 -0
- package/dist/services/cloud/activity.js +61 -0
- package/dist/services/cloud/activity.js.map +1 -0
- package/dist/services/cloud/aws.d.ts +24 -0
- package/dist/services/cloud/aws.d.ts.map +1 -0
- package/dist/services/cloud/aws.js +114 -0
- package/dist/services/cloud/aws.js.map +1 -0
- package/dist/services/cloud/cost.d.ts +46 -0
- package/dist/services/cloud/cost.d.ts.map +1 -0
- package/dist/services/cloud/cost.js +161 -0
- package/dist/services/cloud/cost.js.map +1 -0
- package/dist/services/cloud/idle-manager.d.ts +20 -0
- package/dist/services/cloud/idle-manager.d.ts.map +1 -0
- package/dist/services/cloud/idle-manager.js +103 -0
- package/dist/services/cloud/idle-manager.js.map +1 -0
- package/dist/services/cloud/lifecycle.d.ts +14 -0
- package/dist/services/cloud/lifecycle.d.ts.map +1 -0
- package/dist/services/cloud/lifecycle.js +128 -0
- package/dist/services/cloud/lifecycle.js.map +1 -0
- package/dist/services/cloud/task-wrapper.d.ts +30 -0
- package/dist/services/cloud/task-wrapper.d.ts.map +1 -0
- package/dist/services/cloud/task-wrapper.js +116 -0
- package/dist/services/cloud/task-wrapper.js.map +1 -0
- package/dist/services/cloud/types.d.ts +26 -0
- package/dist/services/cloud/types.d.ts.map +1 -0
- package/dist/services/cloud/types.js +2 -0
- package/dist/services/cloud/types.js.map +1 -0
- package/dist/services/credential-cleanup.d.ts +4 -0
- package/dist/services/credential-cleanup.d.ts.map +1 -0
- package/dist/services/credential-cleanup.js +61 -0
- package/dist/services/credential-cleanup.js.map +1 -0
- package/dist/services/credential-store.d.ts +56 -0
- package/dist/services/credential-store.d.ts.map +1 -0
- package/dist/services/credential-store.js +280 -0
- package/dist/services/credential-store.js.map +1 -0
- package/dist/services/file-transfer.d.ts +22 -0
- package/dist/services/file-transfer.d.ts.map +1 -0
- package/dist/services/file-transfer.js +14 -0
- package/dist/services/file-transfer.js.map +1 -0
- package/dist/services/git-config.d.ts +6 -0
- package/dist/services/git-config.d.ts.map +1 -0
- package/dist/services/git-config.js +31 -0
- package/dist/services/git-config.js.map +1 -0
- package/dist/services/github-app.d.ts +30 -0
- package/dist/services/github-app.d.ts.map +1 -0
- package/dist/services/github-app.js +96 -0
- package/dist/services/github-app.js.map +1 -0
- package/dist/services/icons.d.ts +16 -0
- package/dist/services/icons.d.ts.map +1 -0
- package/dist/services/icons.js +67 -0
- package/dist/services/icons.js.map +1 -0
- package/dist/services/known-hosts.d.ts +23 -0
- package/dist/services/known-hosts.d.ts.map +1 -0
- package/dist/services/known-hosts.js +86 -0
- package/dist/services/known-hosts.js.map +1 -0
- package/dist/services/onboarding.d.ts +68 -0
- package/dist/services/onboarding.d.ts.map +1 -0
- package/dist/services/onboarding.js +205 -0
- package/dist/services/onboarding.js.map +1 -0
- package/dist/services/registry.d.ts +16 -0
- package/dist/services/registry.d.ts.map +1 -0
- package/dist/services/registry.js +156 -0
- package/dist/services/registry.js.map +1 -0
- package/dist/services/sftp.d.ts +16 -0
- package/dist/services/sftp.d.ts.map +1 -0
- package/dist/services/sftp.js +104 -0
- package/dist/services/sftp.js.map +1 -0
- package/dist/services/ssh.d.ts +29 -0
- package/dist/services/ssh.d.ts.map +1 -0
- package/dist/services/ssh.js +297 -0
- package/dist/services/ssh.js.map +1 -0
- package/dist/services/stall/find-log-file.d.ts +2 -0
- package/dist/services/stall/find-log-file.d.ts.map +1 -0
- package/dist/services/stall/find-log-file.js +153 -0
- package/dist/services/stall/find-log-file.js.map +1 -0
- package/dist/services/stall/index.d.ts +4 -0
- package/dist/services/stall/index.d.ts.map +1 -0
- package/dist/services/stall/index.js +4 -0
- package/dist/services/stall/index.js.map +1 -0
- package/dist/services/stall/log-path-resolver.d.ts +4 -0
- package/dist/services/stall/log-path-resolver.d.ts.map +1 -0
- package/dist/services/stall/log-path-resolver.js +32 -0
- package/dist/services/stall/log-path-resolver.js.map +1 -0
- package/dist/services/stall/log-path-resolver.test.d.ts +2 -0
- package/dist/services/stall/log-path-resolver.test.d.ts.map +1 -0
- package/dist/services/stall/log-path-resolver.test.js +76 -0
- package/dist/services/stall/log-path-resolver.test.js.map +1 -0
- package/dist/services/stall/read-log-tail.d.ts +6 -0
- package/dist/services/stall/read-log-tail.d.ts.map +1 -0
- package/dist/services/stall/read-log-tail.js +44 -0
- package/dist/services/stall/read-log-tail.js.map +1 -0
- package/dist/services/stall/stall-detector.d.ts +25 -0
- package/dist/services/stall/stall-detector.d.ts.map +1 -0
- package/dist/services/stall/stall-detector.js +153 -0
- package/dist/services/stall/stall-detector.js.map +1 -0
- package/dist/services/stall/stall-poller.d.ts +6 -0
- package/dist/services/stall/stall-poller.d.ts.map +1 -0
- package/dist/services/stall/stall-poller.js +75 -0
- package/dist/services/stall/stall-poller.js.map +1 -0
- package/dist/services/stall/time-utils.d.ts +4 -0
- package/dist/services/stall/time-utils.d.ts.map +1 -0
- package/dist/services/stall/time-utils.js +22 -0
- package/dist/services/stall/time-utils.js.map +1 -0
- package/dist/services/statusline.d.ts +10 -0
- package/dist/services/statusline.d.ts.map +1 -0
- package/dist/services/statusline.js +84 -0
- package/dist/services/statusline.js.map +1 -0
- package/dist/services/strategy.d.ts +16 -0
- package/dist/services/strategy.d.ts.map +1 -0
- package/dist/services/strategy.js +241 -0
- package/dist/services/strategy.js.map +1 -0
- package/dist/services/task-cleanup.d.ts +3 -0
- package/dist/services/task-cleanup.d.ts.map +1 -0
- package/dist/services/task-cleanup.js +81 -0
- package/dist/services/task-cleanup.js.map +1 -0
- package/dist/services/update-check.d.ts +15 -0
- package/dist/services/update-check.d.ts.map +1 -0
- package/dist/services/update-check.js +67 -0
- package/dist/services/update-check.js.map +1 -0
- package/dist/services/user-config.d.ts +12 -0
- package/dist/services/user-config.d.ts.map +1 -0
- package/dist/services/user-config.js +73 -0
- package/dist/services/user-config.js.map +1 -0
- package/dist/services/vcs/azure-devops.d.ts +7 -0
- package/dist/services/vcs/azure-devops.d.ts.map +1 -0
- package/dist/services/vcs/azure-devops.js +38 -0
- package/dist/services/vcs/azure-devops.js.map +1 -0
- package/dist/services/vcs/bitbucket.d.ts +6 -0
- package/dist/services/vcs/bitbucket.d.ts.map +1 -0
- package/dist/services/vcs/bitbucket.js +31 -0
- package/dist/services/vcs/bitbucket.js.map +1 -0
- package/dist/services/vcs/constants.d.ts +2 -0
- package/dist/services/vcs/constants.d.ts.map +1 -0
- package/dist/services/vcs/constants.js +6 -0
- package/dist/services/vcs/constants.js.map +1 -0
- package/dist/services/vcs/github.d.ts +6 -0
- package/dist/services/vcs/github.d.ts.map +1 -0
- package/dist/services/vcs/github.js +81 -0
- package/dist/services/vcs/github.js.map +1 -0
- package/dist/services/vcs/types.d.ts +52 -0
- package/dist/services/vcs/types.d.ts.map +1 -0
- package/dist/services/vcs/types.js +8 -0
- package/dist/services/vcs/types.js.map +1 -0
- package/dist/smoke-test.d.ts +10 -0
- package/dist/smoke-test.d.ts.map +1 -0
- package/dist/smoke-test.js +102 -0
- package/dist/smoke-test.js.map +1 -0
- package/dist/tools/check-status.d.ts +11 -0
- package/dist/tools/check-status.d.ts.map +1 -0
- package/dist/tools/check-status.js +247 -0
- package/dist/tools/check-status.js.map +1 -0
- package/dist/tools/cloud-control.d.ts +17 -0
- package/dist/tools/cloud-control.d.ts.map +1 -0
- package/dist/tools/cloud-control.js +102 -0
- package/dist/tools/cloud-control.js.map +1 -0
- package/dist/tools/compose-permissions.d.ts +26 -0
- package/dist/tools/compose-permissions.d.ts.map +1 -0
- package/dist/tools/compose-permissions.js +217 -0
- package/dist/tools/compose-permissions.js.map +1 -0
- package/dist/tools/credential-store-delete.d.ts +11 -0
- package/dist/tools/credential-store-delete.d.ts.map +1 -0
- package/dist/tools/credential-store-delete.js +15 -0
- package/dist/tools/credential-store-delete.js.map +1 -0
- package/dist/tools/credential-store-list.d.ts +4 -0
- package/dist/tools/credential-store-list.d.ts.map +1 -0
- package/dist/tools/credential-store-list.js +30 -0
- package/dist/tools/credential-store-list.js.map +1 -0
- package/dist/tools/credential-store-set.d.ts +26 -0
- package/dist/tools/credential-store-set.d.ts.map +1 -0
- package/dist/tools/credential-store-set.js +28 -0
- package/dist/tools/credential-store-set.js.map +1 -0
- package/dist/tools/credential-store-update.d.ts +20 -0
- package/dist/tools/credential-store-update.d.ts.map +1 -0
- package/dist/tools/credential-store-update.js +38 -0
- package/dist/tools/credential-store-update.js.map +1 -0
- package/dist/tools/execute-command.d.ts +33 -0
- package/dist/tools/execute-command.d.ts.map +1 -0
- package/dist/tools/execute-command.js +231 -0
- package/dist/tools/execute-command.js.map +1 -0
- package/dist/tools/execute-prompt.d.ts +36 -0
- package/dist/tools/execute-prompt.d.ts.map +1 -0
- package/dist/tools/execute-prompt.js +310 -0
- package/dist/tools/execute-prompt.js.map +1 -0
- package/dist/tools/list-members.d.ts +11 -0
- package/dist/tools/list-members.d.ts.map +1 -0
- package/dist/tools/list-members.js +108 -0
- package/dist/tools/list-members.js.map +1 -0
- package/dist/tools/member-detail.d.ts +17 -0
- package/dist/tools/member-detail.d.ts.map +1 -0
- package/dist/tools/member-detail.js +263 -0
- package/dist/tools/member-detail.js.map +1 -0
- package/dist/tools/monitor-task.d.ts +20 -0
- package/dist/tools/monitor-task.d.ts.map +1 -0
- package/dist/tools/monitor-task.js +89 -0
- package/dist/tools/monitor-task.js.map +1 -0
- package/dist/tools/provision-auth.d.ts +17 -0
- package/dist/tools/provision-auth.d.ts.map +1 -0
- package/dist/tools/provision-auth.js +256 -0
- package/dist/tools/provision-auth.js.map +1 -0
- package/dist/tools/provision-vcs-auth.d.ts +50 -0
- package/dist/tools/provision-vcs-auth.d.ts.map +1 -0
- package/dist/tools/provision-vcs-auth.js +187 -0
- package/dist/tools/provision-vcs-auth.js.map +1 -0
- package/dist/tools/receive-files.d.ts +20 -0
- package/dist/tools/receive-files.d.ts.map +1 -0
- package/dist/tools/receive-files.js +82 -0
- package/dist/tools/receive-files.js.map +1 -0
- package/dist/tools/register-member.d.ts +74 -0
- package/dist/tools/register-member.d.ts.map +1 -0
- package/dist/tools/register-member.js +310 -0
- package/dist/tools/register-member.js.map +1 -0
- package/dist/tools/remove-member.d.ts +17 -0
- package/dist/tools/remove-member.d.ts.map +1 -0
- package/dist/tools/remove-member.js +126 -0
- package/dist/tools/remove-member.js.map +1 -0
- package/dist/tools/revoke-vcs-auth.d.ts +23 -0
- package/dist/tools/revoke-vcs-auth.d.ts.map +1 -0
- package/dist/tools/revoke-vcs-auth.js +55 -0
- package/dist/tools/revoke-vcs-auth.js.map +1 -0
- package/dist/tools/send-files.d.ts +20 -0
- package/dist/tools/send-files.d.ts.map +1 -0
- package/dist/tools/send-files.js +103 -0
- package/dist/tools/send-files.js.map +1 -0
- package/dist/tools/setup-git-app.d.ts +17 -0
- package/dist/tools/setup-git-app.d.ts.map +1 -0
- package/dist/tools/setup-git-app.js +89 -0
- package/dist/tools/setup-git-app.js.map +1 -0
- package/dist/tools/setup-ssh-key.d.ts +14 -0
- package/dist/tools/setup-ssh-key.d.ts.map +1 -0
- package/dist/tools/setup-ssh-key.js +119 -0
- package/dist/tools/setup-ssh-key.js.map +1 -0
- package/dist/tools/shutdown-server.d.ts +4 -0
- package/dist/tools/shutdown-server.d.ts.map +1 -0
- package/dist/tools/shutdown-server.js +9 -0
- package/dist/tools/shutdown-server.js.map +1 -0
- package/dist/tools/stop-prompt.d.ts +14 -0
- package/dist/tools/stop-prompt.d.ts.map +1 -0
- package/dist/tools/stop-prompt.js +44 -0
- package/dist/tools/stop-prompt.js.map +1 -0
- package/dist/tools/update-agent-cli.d.ts +17 -0
- package/dist/tools/update-agent-cli.d.ts.map +1 -0
- package/dist/tools/update-agent-cli.js +110 -0
- package/dist/tools/update-agent-cli.js.map +1 -0
- package/dist/tools/update-member.d.ts +77 -0
- package/dist/tools/update-member.d.ts.map +1 -0
- package/dist/tools/update-member.js +202 -0
- package/dist/tools/update-member.js.map +1 -0
- package/dist/tools/version.d.ts +4 -0
- package/dist/tools/version.d.ts.map +1 -0
- package/dist/tools/version.js +7 -0
- package/dist/tools/version.js.map +1 -0
- package/dist/types.d.ts +70 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/agent-helpers.d.ts +41 -0
- package/dist/utils/agent-helpers.d.ts.map +1 -0
- package/dist/utils/agent-helpers.js +84 -0
- package/dist/utils/agent-helpers.js.map +1 -0
- package/dist/utils/ansi.d.ts +6 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +20 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/auth-env.d.ts +8 -0
- package/dist/utils/auth-env.d.ts.map +1 -0
- package/dist/utils/auth-env.js +30 -0
- package/dist/utils/auth-env.js.map +1 -0
- package/dist/utils/collect-secret.d.ts +2 -0
- package/dist/utils/collect-secret.d.ts.map +1 -0
- package/dist/utils/collect-secret.js +80 -0
- package/dist/utils/collect-secret.js.map +1 -0
- package/dist/utils/credential-validation.d.ts +13 -0
- package/dist/utils/credential-validation.d.ts.map +1 -0
- package/dist/utils/credential-validation.js +35 -0
- package/dist/utils/credential-validation.js.map +1 -0
- package/dist/utils/crypto.d.ts +3 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +61 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/deep-merge.d.ts +3 -0
- package/dist/utils/deep-merge.d.ts.map +1 -0
- package/dist/utils/deep-merge.js +23 -0
- package/dist/utils/deep-merge.js.map +1 -0
- package/dist/utils/file-permissions.d.ts +8 -0
- package/dist/utils/file-permissions.d.ts.map +1 -0
- package/dist/utils/file-permissions.js +13 -0
- package/dist/utils/file-permissions.js.map +1 -0
- package/dist/utils/gpu-parser.d.ts +6 -0
- package/dist/utils/gpu-parser.d.ts.map +1 -0
- package/dist/utils/gpu-parser.js +15 -0
- package/dist/utils/gpu-parser.js.map +1 -0
- package/dist/utils/log-helpers.d.ts +29 -0
- package/dist/utils/log-helpers.d.ts.map +1 -0
- package/dist/utils/log-helpers.js +128 -0
- package/dist/utils/log-helpers.js.map +1 -0
- package/dist/utils/oob-timeout.d.ts +2 -0
- package/dist/utils/oob-timeout.d.ts.map +1 -0
- package/dist/utils/oob-timeout.js +2 -0
- package/dist/utils/oob-timeout.js.map +1 -0
- package/dist/utils/pid-helpers.d.ts +11 -0
- package/dist/utils/pid-helpers.d.ts.map +1 -0
- package/dist/utils/pid-helpers.js +21 -0
- package/dist/utils/pid-helpers.js.map +1 -0
- package/dist/utils/platform.d.ts +13 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +60 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/prompt-errors.d.ts +5 -0
- package/dist/utils/prompt-errors.d.ts.map +1 -0
- package/dist/utils/prompt-errors.js +15 -0
- package/dist/utils/prompt-errors.js.map +1 -0
- package/dist/utils/resolve-member.d.ts +18 -0
- package/dist/utils/resolve-member.d.ts.map +1 -0
- package/dist/utils/resolve-member.js +23 -0
- package/dist/utils/resolve-member.js.map +1 -0
- package/dist/utils/secure-input.d.ts +6 -0
- package/dist/utils/secure-input.d.ts.map +1 -0
- package/dist/utils/secure-input.js +60 -0
- package/dist/utils/secure-input.js.map +1 -0
- package/dist/utils/shell-escape.d.ts +43 -0
- package/dist/utils/shell-escape.d.ts.map +1 -0
- package/dist/utils/shell-escape.js +67 -0
- package/dist/utils/shell-escape.js.map +1 -0
- package/dist/utils/ssh-error-messages.d.ts +5 -0
- package/dist/utils/ssh-error-messages.d.ts.map +1 -0
- package/dist/utils/ssh-error-messages.js +20 -0
- package/dist/utils/ssh-error-messages.js.map +1 -0
- package/dist/version.d.ts +18 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +101 -0
- package/dist/version.js.map +1 -0
- package/hooks/hooks-config.json +15 -0
- package/hooks/post-register-member.sh +10 -0
- package/package.json +82 -0
- package/scripts/agy-settings-merge.js +27 -0
- package/scripts/agy-transcript-reader.js +62 -0
- package/scripts/fleet-statusline.sh +43 -0
- package/skills/fleet/SKILL.md +262 -0
- package/skills/fleet/auth-azdevops.md +72 -0
- package/skills/fleet/auth-bitbucket.md +65 -0
- package/skills/fleet/auth-github.md +86 -0
- package/skills/fleet/beads.md +90 -0
- package/skills/fleet/onboarding.md +92 -0
- package/skills/fleet/permissions.md +23 -0
- package/skills/fleet/profiles/base-dev.json +18 -0
- package/skills/fleet/profiles/base-reviewer.json +14 -0
- package/skills/fleet/profiles/cpp.json +4 -0
- package/skills/fleet/profiles/dotnet.json +4 -0
- package/skills/fleet/profiles/go.json +4 -0
- package/skills/fleet/profiles/jvm.json +4 -0
- package/skills/fleet/profiles/node.json +4 -0
- package/skills/fleet/profiles/python.json +4 -0
- package/skills/fleet/profiles/rust.json +4 -0
- package/skills/fleet/profiles/tpl-permissions.json +5 -0
- package/skills/fleet/skill-matrix.md +34 -0
- package/skills/fleet/troubleshooting.md +13 -0
- package/skills/pm/SKILL.md +110 -0
- package/skills/pm/backlog-item.md +65 -0
- package/skills/pm/beads.md +192 -0
- package/skills/pm/cleanup.md +15 -0
- package/skills/pm/context-file.md +40 -0
- package/skills/pm/doer-reviewer.md +123 -0
- package/skills/pm/init.md +25 -0
- package/skills/pm/multi-pair-sprint.md +64 -0
- package/skills/pm/plan-prompt.md +94 -0
- package/skills/pm/simple-sprint.md +42 -0
- package/skills/pm/single-pair-sprint.md +178 -0
- package/skills/pm/tpl-deploy.md +24 -0
- package/skills/pm/tpl-design.md +29 -0
- package/skills/pm/tpl-doer.md +43 -0
- package/skills/pm/tpl-plan.md +72 -0
- package/skills/pm/tpl-pm.md +2 -0
- package/skills/pm/tpl-progress.json +28 -0
- package/skills/pm/tpl-projects.md +4 -0
- package/skills/pm/tpl-requirements.md +21 -0
- package/skills/pm/tpl-reviewer-plan.md +53 -0
- package/skills/pm/tpl-reviewer.md +72 -0
- package/skills/pm/tpl-status.md +29 -0
- package/version.json +3 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ProviderAdapter, PromptOptions, ParsedResponse } from './provider.js';
|
|
2
|
+
import type { LlmProvider, SSHExecResult } from '../types.js';
|
|
3
|
+
import type { PromptErrorCategory } from '../utils/prompt-errors.js';
|
|
4
|
+
export declare function getAllowedMcpServers(): string;
|
|
5
|
+
export declare class GeminiProvider implements ProviderAdapter {
|
|
6
|
+
readonly name: LlmProvider;
|
|
7
|
+
readonly processName = "gemini";
|
|
8
|
+
readonly authEnvVar = "GEMINI_API_KEY";
|
|
9
|
+
readonly credentialPath = "~/.gemini/";
|
|
10
|
+
readonly instructionFileName = "GEMINI.md";
|
|
11
|
+
cliCommand(args: string): string;
|
|
12
|
+
versionCommand(): string;
|
|
13
|
+
installCommand(os: 'linux' | 'macos' | 'windows'): string;
|
|
14
|
+
updateCommand(): string;
|
|
15
|
+
buildPromptCommand(opts: PromptOptions): string;
|
|
16
|
+
skipPermissionsFlag(): string;
|
|
17
|
+
permissionModeAutoFlag(): string | null;
|
|
18
|
+
parseResponse(result: SSHExecResult): ParsedResponse;
|
|
19
|
+
supportsResume(): boolean;
|
|
20
|
+
supportsMaxTurns(): boolean;
|
|
21
|
+
resumeFlag(sessionId?: string, resuming?: boolean): string;
|
|
22
|
+
modelTiers(): Record<'cheap' | 'standard' | 'premium', string>;
|
|
23
|
+
modelForTier(tier: 'cheap' | 'mid' | 'premium'): string;
|
|
24
|
+
modelFlag(model: string): string;
|
|
25
|
+
classifyError(output: string): PromptErrorCategory;
|
|
26
|
+
permissionConfigPaths(): string[];
|
|
27
|
+
composePermissionConfig(role: 'doer' | 'reviewer', allow?: string[]): Array<Record<string, unknown> | string>;
|
|
28
|
+
supportsOAuthCopy(): boolean;
|
|
29
|
+
supportsApiKey(): boolean;
|
|
30
|
+
oauthCredentialFiles(): Array<{
|
|
31
|
+
localPath: string;
|
|
32
|
+
remotePath: string;
|
|
33
|
+
}> | null;
|
|
34
|
+
oauthSettingsMerge(): Record<string, unknown> | null;
|
|
35
|
+
oauthEnvVarsToUnset(): string[];
|
|
36
|
+
authEnvVarForToken(_token: string): string;
|
|
37
|
+
wrapWindowsPrompt(setupCmd: string, filePath: string, argList: string, _sessionId?: string, _model?: string): string;
|
|
38
|
+
jsonOutputFlag(): string;
|
|
39
|
+
headlessInvocation(promptLiteral: string): string;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpF,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,wBAAgB,oBAAoB,IAAI,MAAM,CAc7C;AAYD,qBAAa,cAAe,YAAW,eAAe;IACpD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAY;IACtC,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,UAAU,oBAAoB;IACvC,QAAQ,CAAC,cAAc,gBAAgB;IACvC,QAAQ,CAAC,mBAAmB,eAAe;IAE3C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC,cAAc,IAAI,MAAM;IAIxB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM;IAIzD,aAAa,IAAI,MAAM;IAIvB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM;IAsB/C,mBAAmB,IAAI,MAAM;IAI7B,sBAAsB,IAAI,MAAM,GAAG,IAAI;IAIvC,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc;IAuBpD,cAAc,IAAI,OAAO;IAIzB,gBAAgB,IAAI,OAAO;IAI3B,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM;IAK1D,UAAU,IAAI,MAAM,CAAC,OAAO,GAAG,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC;IAQ9D,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM;IAMvD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAclD,qBAAqB,IAAI,MAAM,EAAE;IAIjC,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IAiBjH,iBAAiB,IAAI,OAAO;IAI5B,cAAc,IAAI,OAAO;IAIzB,oBAAoB,IAAI,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAO/E,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpD,mBAAmB,IAAI,MAAM,EAAE;IAI/B,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAM1C,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAMpH,cAAc,IAAI,MAAM;IAIxB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAGlD"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as os from 'os';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { buildResumeFlag, buildSessionIdFlag } from './provider.js';
|
|
5
|
+
import { escapeDoubleQuoted } from '../os/os-commands.js';
|
|
6
|
+
export function getAllowedMcpServers() {
|
|
7
|
+
const settingsPath = path.join(os.homedir(), '.gemini', 'settings.json');
|
|
8
|
+
try {
|
|
9
|
+
const raw = fs.readFileSync(settingsPath, 'utf-8');
|
|
10
|
+
const settings = JSON.parse(raw);
|
|
11
|
+
const mcpServers = settings['mcpServers'];
|
|
12
|
+
if (!mcpServers || typeof mcpServers !== 'object' || Array.isArray(mcpServers)) {
|
|
13
|
+
return 'none';
|
|
14
|
+
}
|
|
15
|
+
const allowed = Object.keys(mcpServers).filter(k => k !== 'apra-fleet');
|
|
16
|
+
return allowed.length > 0 ? allowed.join(',') : 'none';
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return 'none';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function extractUsage(u) {
|
|
23
|
+
if (!u)
|
|
24
|
+
return undefined;
|
|
25
|
+
const input = u.input_tokens ?? u.input;
|
|
26
|
+
const output = u.output_tokens ?? u.output;
|
|
27
|
+
if (typeof input === 'number' && typeof output === 'number') {
|
|
28
|
+
return { input_tokens: input, output_tokens: output };
|
|
29
|
+
}
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
export class GeminiProvider {
|
|
33
|
+
name = 'gemini';
|
|
34
|
+
processName = 'gemini';
|
|
35
|
+
authEnvVar = 'GEMINI_API_KEY';
|
|
36
|
+
credentialPath = '~/.gemini/';
|
|
37
|
+
instructionFileName = 'GEMINI.md';
|
|
38
|
+
cliCommand(args) {
|
|
39
|
+
return `gemini ${args}`;
|
|
40
|
+
}
|
|
41
|
+
versionCommand() {
|
|
42
|
+
return 'gemini --version 2>&1';
|
|
43
|
+
}
|
|
44
|
+
installCommand(os) {
|
|
45
|
+
return 'npm install -g @google/gemini-cli';
|
|
46
|
+
}
|
|
47
|
+
updateCommand() {
|
|
48
|
+
return 'npm update -g @google/gemini-cli';
|
|
49
|
+
}
|
|
50
|
+
buildPromptCommand(opts) {
|
|
51
|
+
const { folder, promptFile, sessionId, resuming, unattended, model, inv } = opts;
|
|
52
|
+
const escapedFolder = escapeDoubleQuoted(folder);
|
|
53
|
+
let instruction = `Your task is described in ${promptFile} in the current directory. Read that file first, then execute the task.`;
|
|
54
|
+
if (inv) {
|
|
55
|
+
instruction = `[${inv}] ${instruction}`;
|
|
56
|
+
}
|
|
57
|
+
let cmd = `cd "${escapedFolder}" && gemini -p "${instruction}" --output-format json --allowed-mcp-server-names "${getAllowedMcpServers()}"`;
|
|
58
|
+
if (resuming && sessionId) {
|
|
59
|
+
cmd += ` ${buildResumeFlag(sessionId)}`;
|
|
60
|
+
}
|
|
61
|
+
else if (sessionId) {
|
|
62
|
+
cmd += ` ${buildSessionIdFlag(sessionId)}`;
|
|
63
|
+
}
|
|
64
|
+
if (unattended === 'dangerous') {
|
|
65
|
+
cmd += ` ${this.skipPermissionsFlag()}`;
|
|
66
|
+
}
|
|
67
|
+
if (model) {
|
|
68
|
+
cmd += ` --model "${escapeDoubleQuoted(model)}"`;
|
|
69
|
+
}
|
|
70
|
+
return cmd;
|
|
71
|
+
}
|
|
72
|
+
skipPermissionsFlag() {
|
|
73
|
+
return '--yolo';
|
|
74
|
+
}
|
|
75
|
+
permissionModeAutoFlag() {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
parseResponse(result) {
|
|
79
|
+
const raw = result.stdout.trim();
|
|
80
|
+
try {
|
|
81
|
+
const parsed = JSON.parse(raw);
|
|
82
|
+
const usage = extractUsage(parsed.usage ?? parsed.stats ?? parsed.tokens);
|
|
83
|
+
return {
|
|
84
|
+
result: parsed.response ?? parsed.result ?? raw,
|
|
85
|
+
sessionId: result.code === 0 ? (parsed.session_id ?? undefined) : undefined,
|
|
86
|
+
isError: parsed.is_error === true || result.code !== 0,
|
|
87
|
+
raw,
|
|
88
|
+
usage,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return {
|
|
93
|
+
result: raw,
|
|
94
|
+
sessionId: undefined,
|
|
95
|
+
isError: result.code !== 0,
|
|
96
|
+
raw,
|
|
97
|
+
usage: undefined,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
supportsResume() {
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
supportsMaxTurns() {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
resumeFlag(sessionId, resuming) {
|
|
108
|
+
if (!sessionId)
|
|
109
|
+
return '';
|
|
110
|
+
return resuming ? buildResumeFlag(sessionId) : buildSessionIdFlag(sessionId);
|
|
111
|
+
}
|
|
112
|
+
modelTiers() {
|
|
113
|
+
return {
|
|
114
|
+
cheap: 'gemini-3.5-flash-lite',
|
|
115
|
+
standard: 'gemini-3.5-flash',
|
|
116
|
+
premium: 'gemini-3.1-pro-preview',
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
modelForTier(tier) {
|
|
120
|
+
if (tier === 'cheap')
|
|
121
|
+
return 'gemini-3.5-flash-lite';
|
|
122
|
+
if (tier === 'premium')
|
|
123
|
+
return 'gemini-3.1-pro-preview';
|
|
124
|
+
return 'gemini-3.5-flash';
|
|
125
|
+
}
|
|
126
|
+
modelFlag(model) {
|
|
127
|
+
return `--model "${escapeDoubleQuoted(model)}"`;
|
|
128
|
+
}
|
|
129
|
+
classifyError(output) {
|
|
130
|
+
const lower = output.toLowerCase();
|
|
131
|
+
if (/not logged in|unauthorized|\b401\b|authentication_error|expired.*token|permission_error|invalid.*api.*key/i.test(lower)) {
|
|
132
|
+
return 'auth';
|
|
133
|
+
}
|
|
134
|
+
if (/\b500\b|\b502\b|\b503\b|internal server error|api_error/i.test(lower)) {
|
|
135
|
+
return 'server';
|
|
136
|
+
}
|
|
137
|
+
if (/\b429\b|\b529\b|overloaded|rate limit|quota/i.test(lower)) {
|
|
138
|
+
return 'overloaded';
|
|
139
|
+
}
|
|
140
|
+
return 'unknown';
|
|
141
|
+
}
|
|
142
|
+
permissionConfigPaths() {
|
|
143
|
+
return ['.gemini/settings.json', '.gemini/policies/fleet.toml'];
|
|
144
|
+
}
|
|
145
|
+
composePermissionConfig(role, allow = []) {
|
|
146
|
+
// settings.json: merge mode into existing content — do not overwrite.
|
|
147
|
+
// mcpServers: {} disables all MCP servers (overrides global registration of apra-fleet).
|
|
148
|
+
// Note: caller is responsible for reading/merging with existing content to preserve oauth-personal and other user settings.
|
|
149
|
+
const mode = role === 'doer' ? 'auto_edit' : 'default';
|
|
150
|
+
const settings = { mode, mcpServers: {} };
|
|
151
|
+
// fleet.toml: policy rules
|
|
152
|
+
let toml = `[policy]\nmode = "${mode}"\ndescription = "Fleet ${role} permissions"\n`;
|
|
153
|
+
if (allow.length > 0) {
|
|
154
|
+
const toolList = allow.map(p => ` "${p}"`).join(',\n');
|
|
155
|
+
toml += `\n[policy.tools]\nallow = [\n${toolList}\n]\n`;
|
|
156
|
+
}
|
|
157
|
+
return [settings, toml];
|
|
158
|
+
}
|
|
159
|
+
supportsOAuthCopy() {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
supportsApiKey() {
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
oauthCredentialFiles() {
|
|
166
|
+
return [
|
|
167
|
+
{ localPath: '~/.gemini/oauth_creds.json', remotePath: '~/.gemini/oauth_creds.json' },
|
|
168
|
+
{ localPath: '~/.gemini/google_accounts.json', remotePath: '~/.gemini/google_accounts.json' },
|
|
169
|
+
];
|
|
170
|
+
}
|
|
171
|
+
oauthSettingsMerge() {
|
|
172
|
+
return { security: { auth: { selectedType: 'oauth-personal' } } };
|
|
173
|
+
}
|
|
174
|
+
oauthEnvVarsToUnset() {
|
|
175
|
+
return ['GEMINI_API_KEY'];
|
|
176
|
+
}
|
|
177
|
+
authEnvVarForToken(_token) {
|
|
178
|
+
return this.authEnvVar;
|
|
179
|
+
}
|
|
180
|
+
wrapWindowsPrompt(setupCmd, filePath, argList, _sessionId, _model) {
|
|
181
|
+
// Gemini on Windows needs direct shell execution to resolve .cmd script wrappers reliably.
|
|
182
|
+
// We emit the current shell PID immediately to satisfy fleet's lifecycle tracking.
|
|
183
|
+
return `${setupCmd}Write-Output "FLEET_PID:$pid"; ${filePath} ${argList}`;
|
|
184
|
+
}
|
|
185
|
+
jsonOutputFlag() {
|
|
186
|
+
return '--output-format json';
|
|
187
|
+
}
|
|
188
|
+
headlessInvocation(promptLiteral) {
|
|
189
|
+
return `--skip-trust -p "${promptLiteral}"`;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=gemini.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LlmProvider } from '../types.js';
|
|
2
|
+
import type { ProviderAdapter } from './provider.js';
|
|
3
|
+
export declare function getProvider(llmProvider?: LlmProvider | null): ProviderAdapter;
|
|
4
|
+
export type { ProviderAdapter, PromptOptions, ParsedResponse } from './provider.js';
|
|
5
|
+
export { ClaudeProvider } from './claude.js';
|
|
6
|
+
export { GeminiProvider } from './gemini.js';
|
|
7
|
+
export { CodexProvider } from './codex.js';
|
|
8
|
+
export { CopilotProvider } from './copilot.js';
|
|
9
|
+
export { AgyProvider } from './agy.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAerD,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,eAAe,CAS7E;AAED,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ClaudeProvider } from './claude.js';
|
|
2
|
+
import { GeminiProvider } from './gemini.js';
|
|
3
|
+
import { CodexProvider } from './codex.js';
|
|
4
|
+
import { CopilotProvider } from './copilot.js';
|
|
5
|
+
import { AgyProvider } from './agy.js';
|
|
6
|
+
const providers = {
|
|
7
|
+
claude: new ClaudeProvider(),
|
|
8
|
+
gemini: new GeminiProvider(),
|
|
9
|
+
codex: new CodexProvider(),
|
|
10
|
+
copilot: new CopilotProvider(),
|
|
11
|
+
agy: new AgyProvider(),
|
|
12
|
+
};
|
|
13
|
+
export function getProvider(llmProvider) {
|
|
14
|
+
if (!llmProvider)
|
|
15
|
+
return providers['claude'];
|
|
16
|
+
const adapter = providers[llmProvider];
|
|
17
|
+
if (!adapter) {
|
|
18
|
+
throw new TypeError(`Unknown LLM provider "${llmProvider}". Supported: ${Object.keys(providers).join(', ')}`);
|
|
19
|
+
}
|
|
20
|
+
return adapter;
|
|
21
|
+
}
|
|
22
|
+
export { ClaudeProvider } from './claude.js';
|
|
23
|
+
export { GeminiProvider } from './gemini.js';
|
|
24
|
+
export { CodexProvider } from './codex.js';
|
|
25
|
+
export { CopilotProvider } from './copilot.js';
|
|
26
|
+
export { AgyProvider } from './agy.js';
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,SAAS,GAAyC;IACtD,MAAM,EAAE,IAAI,cAAc,EAAE;IAC5B,MAAM,EAAE,IAAI,cAAc,EAAE;IAC5B,KAAK,EAAE,IAAI,aAAa,EAAE;IAC1B,OAAO,EAAE,IAAI,eAAe,EAAE;IAC9B,GAAG,EAAE,IAAI,WAAW,EAAE;CACvB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,WAAgC;IAC1D,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,SAAS,CACjB,yBAAyB,WAAW,iBAAiB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { LlmProvider } from '../types.js';
|
|
2
|
+
import type { SSHExecResult } from '../types.js';
|
|
3
|
+
import type { PromptErrorCategory } from '../utils/prompt-errors.js';
|
|
4
|
+
export type { LlmProvider };
|
|
5
|
+
/**
|
|
6
|
+
* Build a `--resume <id>` flag with session ID sanitization and quoting.
|
|
7
|
+
* Shared by providers that pass session IDs on the command line (Claude, Gemini).
|
|
8
|
+
* @param sessionId - The raw session ID (will be sanitized)
|
|
9
|
+
* @param fallback - Value to return when sessionId is absent (default: '')
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildResumeFlag(sessionId: string | undefined, fallback?: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Build a `--session-id <id>` flag for starting a new session with a caller-minted ID.
|
|
14
|
+
* @param sessionId - The raw session ID (will be sanitized)
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildSessionIdFlag(sessionId: string): string;
|
|
17
|
+
export interface PromptOptions {
|
|
18
|
+
folder: string;
|
|
19
|
+
promptFile: string;
|
|
20
|
+
sessionId?: string;
|
|
21
|
+
resuming?: boolean;
|
|
22
|
+
unattended?: false | 'auto' | 'dangerous';
|
|
23
|
+
model?: string;
|
|
24
|
+
tier?: 'cheap' | 'standard' | 'premium';
|
|
25
|
+
maxTurns?: number;
|
|
26
|
+
inv?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ParsedResponse {
|
|
29
|
+
result: string;
|
|
30
|
+
sessionId?: string;
|
|
31
|
+
isError: boolean;
|
|
32
|
+
raw: string;
|
|
33
|
+
usage?: {
|
|
34
|
+
input_tokens: number;
|
|
35
|
+
output_tokens: number;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export interface ProviderAdapter {
|
|
39
|
+
readonly name: LlmProvider;
|
|
40
|
+
readonly processName: string;
|
|
41
|
+
readonly authEnvVar: string;
|
|
42
|
+
readonly credentialPath: string;
|
|
43
|
+
readonly instructionFileName: string;
|
|
44
|
+
cliCommand(args: string): string;
|
|
45
|
+
versionCommand(): string;
|
|
46
|
+
installCommand(os: 'linux' | 'macos' | 'windows'): string;
|
|
47
|
+
updateCommand(): string;
|
|
48
|
+
buildPromptCommand(opts: PromptOptions): string;
|
|
49
|
+
skipPermissionsFlag(): string;
|
|
50
|
+
/** Returns the CLI flag for unattended='auto', or null if the provider does not support it. */
|
|
51
|
+
permissionModeAutoFlag(): string | null;
|
|
52
|
+
parseResponse(result: SSHExecResult): ParsedResponse;
|
|
53
|
+
supportsResume(): boolean;
|
|
54
|
+
supportsMaxTurns(): boolean;
|
|
55
|
+
resumeFlag(sessionId?: string, resuming?: boolean): string;
|
|
56
|
+
modelTiers(): Record<'cheap' | 'standard' | 'premium', string>;
|
|
57
|
+
modelForTier(tier: 'cheap' | 'mid' | 'premium'): string;
|
|
58
|
+
modelFlag(model: string): string;
|
|
59
|
+
classifyError(output: string): PromptErrorCategory;
|
|
60
|
+
/** Returns the config file path(s) for this provider's permission config (relative to repo root).
|
|
61
|
+
* Parallel to the array returned by composePermissionConfig(). */
|
|
62
|
+
permissionConfigPaths(): string[];
|
|
63
|
+
/** Returns provider-native permission config for the given role.
|
|
64
|
+
* Each element corresponds to the path at the same index in permissionConfigPaths().
|
|
65
|
+
* JSON providers return Record<string, unknown>; TOML providers return a string. */
|
|
66
|
+
composePermissionConfig(role: 'doer' | 'reviewer', allow?: string[]): Array<Record<string, unknown> | string>;
|
|
67
|
+
supportsOAuthCopy(): boolean;
|
|
68
|
+
supportsApiKey(): boolean;
|
|
69
|
+
oauthCredentialFiles(): Array<{
|
|
70
|
+
localPath: string;
|
|
71
|
+
remotePath: string;
|
|
72
|
+
}> | null;
|
|
73
|
+
oauthSettingsMerge(): Record<string, unknown> | null;
|
|
74
|
+
oauthEnvVarsToUnset(): string[];
|
|
75
|
+
/** Returns the correct environment variable name for the given API key/token. */
|
|
76
|
+
authEnvVarForToken(token: string): string;
|
|
77
|
+
/** On Windows, wrap the command for execution (e.g. via .NET ProcessStartInfo or direct shell). */
|
|
78
|
+
wrapWindowsPrompt(setupCmd: string, filePath: string, argList: string, sessionId?: string, model?: string, tier?: 'cheap' | 'standard' | 'premium'): string;
|
|
79
|
+
/** JSON output flag for the CLI (e.g. --output-format json, --json, --format json) */
|
|
80
|
+
jsonOutputFlag(): string;
|
|
81
|
+
/** Args for headless invocation with a safe literal prompt string.
|
|
82
|
+
* Returns e.g. `-p "LITERAL"` for Claude/Gemini/Copilot or `exec "LITERAL"` for Codex. */
|
|
83
|
+
headlessInvocation(promptLiteral: string): string;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/providers/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { sanitizeSessionId } from '../os/os-commands.js';
|
|
2
|
+
/**
|
|
3
|
+
* Build a `--resume <id>` flag with session ID sanitization and quoting.
|
|
4
|
+
* Shared by providers that pass session IDs on the command line (Claude, Gemini).
|
|
5
|
+
* @param sessionId - The raw session ID (will be sanitized)
|
|
6
|
+
* @param fallback - Value to return when sessionId is absent (default: '')
|
|
7
|
+
*/
|
|
8
|
+
export function buildResumeFlag(sessionId, fallback = '') {
|
|
9
|
+
if (sessionId) {
|
|
10
|
+
return `--resume "${sanitizeSessionId(sessionId)}"`;
|
|
11
|
+
}
|
|
12
|
+
return fallback;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Build a `--session-id <id>` flag for starting a new session with a caller-minted ID.
|
|
16
|
+
* @param sessionId - The raw session ID (will be sanitized)
|
|
17
|
+
*/
|
|
18
|
+
export function buildSessionIdFlag(sessionId) {
|
|
19
|
+
return `--session-id "${sanitizeSessionId(sessionId)}"`;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/providers/provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAA6B,EAAE,QAAQ,GAAG,EAAE;IAC1E,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,aAAa,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC;IACtD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,iBAAiB,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
export declare function getSocketPath(): string;
|
|
2
|
+
export declare function ensureAuthSocket(): Promise<void>;
|
|
3
|
+
export declare function createPendingAuth(memberName: string): void;
|
|
4
|
+
export declare function getPendingPassword(memberName: string): string | null;
|
|
5
|
+
/**
|
|
6
|
+
* Deliver a plaintext credential to a pending auth request: encrypt it
|
|
7
|
+
* immediately, store it on the pending entry, and resolve any waiting tool
|
|
8
|
+
* handler. Shared by the socket handler (CLI entry) and the browser fallback
|
|
9
|
+
* (local web UI entry) so both delivery paths behave identically.
|
|
10
|
+
*/
|
|
11
|
+
export declare function submitPassword(memberName: string, plaintext: string, persist?: boolean): {
|
|
12
|
+
ok: boolean;
|
|
13
|
+
error?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Wait for a pending auth password to arrive over the socket.
|
|
17
|
+
* Returns the encrypted password, or rejects on timeout.
|
|
18
|
+
*/
|
|
19
|
+
export declare function waitForPassword(memberName: string, timeoutMs?: number): Promise<string>;
|
|
20
|
+
export declare function cancelPendingAuth(memberName: string): void;
|
|
21
|
+
export declare function hasPendingAuth(memberName: string): boolean;
|
|
22
|
+
export declare function cleanupAuthSocket(): Promise<void>;
|
|
23
|
+
type OobLaunchFn = (name: string, extraArgs: string[] | undefined, onExit: (code: number | null) => void) => string;
|
|
24
|
+
/**
|
|
25
|
+
* Collect a password out-of-band.
|
|
26
|
+
* @see collectOobInput
|
|
27
|
+
*/
|
|
28
|
+
export declare function collectOobPassword(memberName: string, toolName: string, _opts?: {
|
|
29
|
+
waitTimeoutMs?: number;
|
|
30
|
+
launchFn?: OobLaunchFn;
|
|
31
|
+
prompt?: string;
|
|
32
|
+
}): Promise<{
|
|
33
|
+
password?: string;
|
|
34
|
+
fallback?: string;
|
|
35
|
+
persist?: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Collect an API key out-of-band.
|
|
39
|
+
* @see collectOobInput
|
|
40
|
+
*/
|
|
41
|
+
export declare function collectOobApiKey(memberName: string, toolName: string, _opts?: {
|
|
42
|
+
waitTimeoutMs?: number;
|
|
43
|
+
launchFn?: OobLaunchFn;
|
|
44
|
+
prompt?: string;
|
|
45
|
+
askPersist?: boolean;
|
|
46
|
+
}): Promise<{
|
|
47
|
+
password?: string;
|
|
48
|
+
fallback?: string;
|
|
49
|
+
persist?: boolean;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* Prompt the user out-of-band to confirm a network-egress operation.
|
|
53
|
+
* Returns true if the user confirmed, false if they cancelled or timed out.
|
|
54
|
+
*/
|
|
55
|
+
export declare function collectOobConfirm(credentialName: string, _opts?: {
|
|
56
|
+
waitTimeoutMs?: number;
|
|
57
|
+
launchFn?: OobLaunchFn;
|
|
58
|
+
command?: string;
|
|
59
|
+
memberName?: string;
|
|
60
|
+
}): Promise<{
|
|
61
|
+
confirmed: boolean;
|
|
62
|
+
terminalUnavailable: boolean;
|
|
63
|
+
}>;
|
|
64
|
+
/**
|
|
65
|
+
* Returns true when a graphical display is available on Linux/BSD.
|
|
66
|
+
* Checks $DISPLAY (X11) and $WAYLAND_DISPLAY (Wayland).
|
|
67
|
+
*/
|
|
68
|
+
export declare function hasGraphicalDisplay(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Returns true when the process is running inside an SSH session.
|
|
71
|
+
* SSH_TTY is set by the SSH daemon on both Linux and macOS when stdin is a tty.
|
|
72
|
+
*/
|
|
73
|
+
export declare function isSSHSession(): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Returns true when running on an interactive Windows desktop session.
|
|
76
|
+
* SSH and headless service sessions have SESSIONNAME !== 'Console'.
|
|
77
|
+
*/
|
|
78
|
+
export declare function hasInteractiveDesktop(): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Launch a new terminal window running `apra-fleet secret --set <memberName>` or `apra-fleet auth <memberName>`.
|
|
81
|
+
* Records the spawned PID in the pending request so it can be killed when credential is received.
|
|
82
|
+
* Returns a user-facing message describing what happened and executes a
|
|
83
|
+
* callback when the spawned terminal process exits.
|
|
84
|
+
*/
|
|
85
|
+
export declare function launchAuthTerminal(memberName: string, extraArgs: string[] | undefined, onExit: (code: number | null) => void): string;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=auth-socket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-socket.d.ts","sourceRoot":"","sources":["../../src/services/auth-socket.ts"],"names":[],"mappings":"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"}
|