@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,72 @@
|
|
|
1
|
+
# Azure DevOps Authentication
|
|
2
|
+
|
|
3
|
+
Personal Access Tokens (PATs) with configurable scopes and expiration. Auth: empty username, PAT as password.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
1. Go to `https://dev.azure.com/{org}/_settings/tokens`
|
|
8
|
+
2. Click "New Token"
|
|
9
|
+
3. Set descriptive name (e.g., "fleet-{name}")
|
|
10
|
+
4. Select required scopes (see below)
|
|
11
|
+
5. Set expiration (recommend: 90 days)
|
|
12
|
+
6. Copy token — shown only once
|
|
13
|
+
7. Provide token and org URL when prompted
|
|
14
|
+
|
|
15
|
+
## Deploy
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
provision_vcs_auth(member_id, provider: 'azure-devops', org_url: 'https://dev.azure.com/myorg', pat: '...')
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Scopes
|
|
22
|
+
|
|
23
|
+
| Role | PAT Scopes |
|
|
24
|
+
|------|-----------|
|
|
25
|
+
| development | Code: R&W, Pull Request Threads: R&W |
|
|
26
|
+
| code-review | Code: Read, Pull Request Threads: R&W |
|
|
27
|
+
| testing | Code: Read, Build: Read |
|
|
28
|
+
| devops | Full access, or Code + Build + Release: R&W |
|
|
29
|
+
| debugging | Code: Read |
|
|
30
|
+
|
|
31
|
+
Union of all roles assigned to the member.
|
|
32
|
+
|
|
33
|
+
## Test
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
curl -sf -u :pat "https://dev.azure.com/{org}/_apis/projects?api-version=7.1&\$top=1"
|
|
37
|
+
git ls-remote https://dev.azure.com/{org}/{project}/_git/{repo} HEAD
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Troubleshooting
|
|
41
|
+
|
|
42
|
+
| Symptom | Fix |
|
|
43
|
+
|---------|-----|
|
|
44
|
+
| 401 Unauthorized | Create new PAT and re-deploy |
|
|
45
|
+
| 403 Forbidden | Create PAT with broader scopes |
|
|
46
|
+
| TF400813: Resource not available | Verify org URL matches `https://dev.azure.com/{org}` |
|
|
47
|
+
| Clone prompts for password | Re-run `provision_vcs_auth` |
|
|
48
|
+
|
|
49
|
+
## Storing tokens for reuse
|
|
50
|
+
|
|
51
|
+
After provisioning VCS auth, you can store the Azure DevOps PAT in the credential store for direct use in `execute_command` — for example, calling the Azure DevOps REST API or authenticating git operations manually.
|
|
52
|
+
|
|
53
|
+
**Store an Azure DevOps PAT for reuse:**
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
credential_store_set name=azdevops_pat
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Use it in a command on a member:**
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
execute_command command="curl -sf -u :{{secure.azdevops_pat}} 'https://dev.azure.com/{org}/_apis/projects?api-version=7.1'"
|
|
63
|
+
execute_command command="git remote set-url origin https://token:{{secure.azdevops_pat}}@dev.azure.com/{org}/{project}/_git/{repo}"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The token is resolved server-side and redacted in output (`[REDACTED:azdevops_pat]`) — it never appears in the LLM conversation or command logs.
|
|
67
|
+
|
|
68
|
+
## Notes
|
|
69
|
+
|
|
70
|
+
- PAT expiration: default 30 days, max 1 year
|
|
71
|
+
- Azure DevOps does not support app-based tokens — PATs are the standard
|
|
72
|
+
- Org URL must be base URL without trailing path
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Bitbucket Authentication
|
|
2
|
+
|
|
3
|
+
API tokens (app passwords) tied to a user account. Long-lived, no auto-expire.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
1. Go to `https://id.atlassian.com/manage-profile/security/api-tokens`
|
|
8
|
+
(or Bitbucket: Settings > Personal Bitbucket settings > App passwords)
|
|
9
|
+
2. Create app password with required scopes (see below)
|
|
10
|
+
3. Copy token — shown only once
|
|
11
|
+
4. Provide token, email, and workspace slug when prompted
|
|
12
|
+
|
|
13
|
+
## Deploy
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
provision_vcs_auth(member_id, provider: 'bitbucket', email: '...', api_token: 'ATBB_...', workspace: '...')
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Scopes
|
|
20
|
+
|
|
21
|
+
| Role | Scopes |
|
|
22
|
+
|------|--------|
|
|
23
|
+
| development | `repository:write`, `pullrequest:write` |
|
|
24
|
+
| code-review | `repository:read`, `pullrequest:read` |
|
|
25
|
+
| testing | `repository:read`, `pipeline:read` |
|
|
26
|
+
| devops | `repository:admin`, `pipeline:write`, `pullrequest:write` |
|
|
27
|
+
| debugging | `repository:read` |
|
|
28
|
+
|
|
29
|
+
Union of all roles assigned to the member.
|
|
30
|
+
|
|
31
|
+
## Test
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
curl -sf -u email:token https://api.bitbucket.org/2.0/user
|
|
35
|
+
curl -sf -u email:token https://api.bitbucket.org/2.0/repositories/{workspace}?pagelen=1
|
|
36
|
+
git ls-remote https://bitbucket.org/{workspace}/{repo}.git HEAD
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Storing tokens for reuse
|
|
40
|
+
|
|
41
|
+
After provisioning VCS auth, you can store the Bitbucket API token in the credential store for direct use in `execute_command` — for example, calling the Bitbucket REST API or authenticating git operations manually.
|
|
42
|
+
|
|
43
|
+
**Store a Bitbucket token for reuse:**
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
credential_store_set name=bitbucket_token
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Use it in a command on a member:**
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
execute_command command="curl -sf -u me@example.com:{{secure.bitbucket_token}} https://api.bitbucket.org/2.0/user"
|
|
53
|
+
execute_command command="git remote set-url origin https://me@example.com:{{secure.bitbucket_token}}@bitbucket.org/workspace/repo.git"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The token is resolved server-side and redacted in output (`[REDACTED:bitbucket_token]`) — it never appears in the LLM conversation or command logs.
|
|
57
|
+
|
|
58
|
+
## Troubleshooting
|
|
59
|
+
|
|
60
|
+
| Symptom | Fix |
|
|
61
|
+
|---------|-----|
|
|
62
|
+
| 401 Unauthorized | Verify email matches Atlassian account; regenerate token |
|
|
63
|
+
| 403 Forbidden | Create new app password with additional scopes |
|
|
64
|
+
| Repository not found | Check workspace slug in Bitbucket URL |
|
|
65
|
+
| Clone prompts for password | Re-run `provision_vcs_auth` |
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# GitHub Authentication
|
|
2
|
+
|
|
3
|
+
Two modes via `provision_vcs_auth`:
|
|
4
|
+
|
|
5
|
+
## GitHub App (Recommended)
|
|
6
|
+
|
|
7
|
+
Short-lived tokens, minted automatically. Requires one-time `setup_git_app`.
|
|
8
|
+
|
|
9
|
+
When to use: Org repos where you have admin access to install a GitHub App.
|
|
10
|
+
|
|
11
|
+
Setup:
|
|
12
|
+
1. Create GitHub App at `https://github.com/organizations/{org}/settings/apps`
|
|
13
|
+
2. Grant permissions (Contents, Pull Requests, Actions, etc.)
|
|
14
|
+
3. Install on your organization
|
|
15
|
+
4. Download private key (.pem file)
|
|
16
|
+
5. Run `setup_git_app` with App ID, private key path, installation ID
|
|
17
|
+
|
|
18
|
+
Deploy:
|
|
19
|
+
```
|
|
20
|
+
provision_vcs_auth(member_id, provider: 'github')
|
|
21
|
+
provision_vcs_auth(member_id, provider: 'github', git_access: 'push', repos: ['Org/Repo'])
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Tokens expire after 1 hour. Re-mint via `provision_vcs_auth` when needed.
|
|
25
|
+
|
|
26
|
+
## Personal Access Token (PAT)
|
|
27
|
+
|
|
28
|
+
Long-lived token from the user.
|
|
29
|
+
|
|
30
|
+
When to use: Personal repos, or when GitHub App install isn't possible.
|
|
31
|
+
|
|
32
|
+
Setup:
|
|
33
|
+
1. Go to `https://github.com/settings/tokens`
|
|
34
|
+
2. Create fine-grained or classic token with required scopes
|
|
35
|
+
3. Provide token when prompted
|
|
36
|
+
|
|
37
|
+
Deploy:
|
|
38
|
+
```
|
|
39
|
+
provision_vcs_auth(member_id, provider: 'github', github_mode: 'pat', token: 'ghp_...')
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Scopes
|
|
43
|
+
|
|
44
|
+
| Role | Scopes |
|
|
45
|
+
|------|--------|
|
|
46
|
+
| development | `repo` |
|
|
47
|
+
| code-review | `repo:read` |
|
|
48
|
+
| testing | `repo:read`, `actions:read` |
|
|
49
|
+
| devops | `repo`, `actions:write` |
|
|
50
|
+
| debugging | `repo:read` |
|
|
51
|
+
|
|
52
|
+
## Test
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
gh auth status
|
|
56
|
+
git ls-remote https://github.com/{owner}/{repo}.git HEAD
|
|
57
|
+
gh api /user
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Storing tokens for reuse
|
|
61
|
+
|
|
62
|
+
After provisioning VCS auth, you can also store the token in the credential store so members can use it directly in `execute_command` calls — for example, when calling the GitHub REST API or authenticating git operations that bypass the configured remote URL.
|
|
63
|
+
|
|
64
|
+
**Store a GitHub PAT for reuse:**
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
credential_store_set name=github_pat
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Use it in a command on a member:**
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
execute_command command="curl -H 'Authorization: Bearer {{secure.github_pat}}' https://api.github.com/user"
|
|
74
|
+
execute_command command="git remote set-url origin https://token:{{secure.github_pat}}@github.com/Org/Repo.git"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The token is resolved server-side and redacted in output (`[REDACTED:github_pat]`) — it never appears in the LLM conversation or command logs.
|
|
78
|
+
|
|
79
|
+
## Troubleshooting
|
|
80
|
+
|
|
81
|
+
| Symptom | Fix |
|
|
82
|
+
|---------|-----|
|
|
83
|
+
| 401 Bad credentials | Re-mint via `provision_vcs_auth` |
|
|
84
|
+
| 403 Resource not accessible | Check App permissions or PAT scopes |
|
|
85
|
+
| Repository not found | Add repo to GitHub App installation |
|
|
86
|
+
| gh: command not found | Install via `brew install gh` or `apt install gh` |
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Beads — Persistent Task DB for Fleet Users
|
|
2
|
+
|
|
3
|
+
Beads (`bd`) is a lightweight, dependency-aware task database installed automatically by `apra-fleet install`.
|
|
4
|
+
|
|
5
|
+
**`bd` runs on the orchestrator via `Bash` — never expose `bd` commands to the user and never run `bd` via `execute_command` on a member.**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Quick Reference
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bd init # init Beads in current dir (once per repo, idempotent)
|
|
13
|
+
bd ready # show all unblocked open tasks
|
|
14
|
+
bd create "title" -p <n> # create task (priority: 0=critical 1=high 2=med 3=low)
|
|
15
|
+
bd update <id> --assignee <member> # assign to a member
|
|
16
|
+
bd close <id> # mark complete (idempotent)
|
|
17
|
+
bd reopen <id> # reopen a closed task
|
|
18
|
+
bd note <id> "text" # append a note (e.g. PR URL, blocker reason)
|
|
19
|
+
bd dep add <child-id> <parent-id> # child is blocked until parent is done
|
|
20
|
+
bd show <id> # full task details
|
|
21
|
+
bd list --all --pretty # full tree: all tasks, all statuses
|
|
22
|
+
bd list --assignee <member> # tasks for a specific member
|
|
23
|
+
bd search "text" --status all --json # find existing issues by title (use for dedup)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## When to Use Beads
|
|
29
|
+
|
|
30
|
+
| Scenario | What to do |
|
|
31
|
+
|----------|-----------|
|
|
32
|
+
| Tracking work across multiple fleet sessions | `bd create` a task per work item; `bd update --assignee <member> --status in_progress` on dispatch |
|
|
33
|
+
| Expressing dependencies between tasks | `bd dep add <blocked> <blocker>` |
|
|
34
|
+
| Session restart — instant orientation | `bd ready` — shows all in-flight tasks without reading files |
|
|
35
|
+
| Linking a PR to a task | `bd update <id> --note "PR: <url>"` |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Task Priorities
|
|
40
|
+
|
|
41
|
+
| Priority | Meaning |
|
|
42
|
+
|----------|---------|
|
|
43
|
+
| `0` | Critical — must fix now |
|
|
44
|
+
| `1` | High — next up |
|
|
45
|
+
| `2` | Medium — current sprint |
|
|
46
|
+
| `3` | Low — backlog / deferred |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Typical Fleet-User Workflow
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Start: init Beads in the repo
|
|
54
|
+
bd init
|
|
55
|
+
|
|
56
|
+
# Create a top-level epic for your current effort
|
|
57
|
+
bd create "feat: add SFTP transport" -p 1 # → epic-id
|
|
58
|
+
|
|
59
|
+
# Break it into tasks
|
|
60
|
+
bd create "T1: implement connection" -p 1 --parent <epic-id> # → t1-id
|
|
61
|
+
bd create "T2: add retry logic" -p 2 --parent <epic-id> # → t2-id
|
|
62
|
+
bd dep add <t2-id> <t1-id> # T2 blocked until T1 is done
|
|
63
|
+
|
|
64
|
+
# Dispatch a member to T1
|
|
65
|
+
bd update <t1-id> --assignee <member> --status in_progress
|
|
66
|
+
|
|
67
|
+
# After T1 is complete
|
|
68
|
+
bd close <t1-id>
|
|
69
|
+
bd ready # confirms T2 is now unblocked
|
|
70
|
+
|
|
71
|
+
# At completion — link PR
|
|
72
|
+
bd close <epic-id>
|
|
73
|
+
bd note <epic-id> "PR: https://github.com/org/repo/pull/42"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Session Recovery
|
|
79
|
+
|
|
80
|
+
After any interruption, `bd ready` is the first command to run:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
bd ready # shows everything in-flight across ALL epics
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
It shows:
|
|
87
|
+
- What's in-progress
|
|
88
|
+
- What's unblocked and ready to start
|
|
89
|
+
- What's blocked and why
|
|
90
|
+
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Member Onboarding
|
|
2
|
+
|
|
3
|
+
After `register_member`, run these 8 steps before dispatching any work.
|
|
4
|
+
|
|
5
|
+
## Step 1: Setup SSH Key Auth (remote members only)
|
|
6
|
+
|
|
7
|
+
Check `member_detail` - if member type is `remote` and `authType` is `password`, run `setup_ssh_key` to migrate to key-based authentication. Skip entirely for local members or members already on key auth.
|
|
8
|
+
|
|
9
|
+
## Step 1.5: Verify CLI Installation
|
|
10
|
+
|
|
11
|
+
Use `member_detail` to determine `llmProvider` and `os`. Run `execute_command` with the provider's version command to confirm the agent CLI is installed:
|
|
12
|
+
|
|
13
|
+
- **Claude:** `claude --version`
|
|
14
|
+
- **Antigravity:** `agy --version 2>&1`
|
|
15
|
+
- **Codex:** `codex --version`
|
|
16
|
+
- **Copilot:** `copilot --version`
|
|
17
|
+
- **Gemini:** `gemini --version`
|
|
18
|
+
|
|
19
|
+
If the LLM CLI is not installed or the command fails, use `update_llm_cli` to install it before proceeding. Do not attempt any prompt dispatch until the CLI is confirmed.
|
|
20
|
+
|
|
21
|
+
## Step 1.7: Provision LLM Auth
|
|
22
|
+
|
|
23
|
+
Call `provision_llm_auth`. Skip for local members - they inherit auth from the PM machine.
|
|
24
|
+
|
|
25
|
+
## Step 2: Disable AI Attribution
|
|
26
|
+
|
|
27
|
+
**Claude only.** Write `{"attribution":{"commit":"","pr":""}}` to `.claude/settings.json` in the member's work folder via `execute_command`. Merge if file already exists.
|
|
28
|
+
|
|
29
|
+
Antigravity, Codex, Copilot, and Gemini do not support attribution config - skip this step for those providers.
|
|
30
|
+
|
|
31
|
+
## Step 3: Detect VCS Provider
|
|
32
|
+
|
|
33
|
+
Run on the member: `git remote -v`
|
|
34
|
+
|
|
35
|
+
- `github.com` -> GitHub
|
|
36
|
+
- `bitbucket.org` -> Bitbucket
|
|
37
|
+
- `dev.azure.com` -> Azure DevOps
|
|
38
|
+
|
|
39
|
+
No remotes? Ask the user for VCS provider and repo URL.
|
|
40
|
+
|
|
41
|
+
## Step 4: Determine Roles
|
|
42
|
+
|
|
43
|
+
Ask the user. Roles: development, code-review, testing, devops, debugging. A member can have multiple.
|
|
44
|
+
|
|
45
|
+
## Step 5: Setup VCS Auth
|
|
46
|
+
|
|
47
|
+
Verify auth, provision if needed. See auth-{provider}.md for provider-specific steps and required scopes per role. Skip for local members - they inherit the user's native git credentials.
|
|
48
|
+
|
|
49
|
+
## Step 6: Check/Install Required Skills
|
|
50
|
+
|
|
51
|
+
Look up the member's project + VCS + roles in skill-matrix.md. Install any missing skills.
|
|
52
|
+
|
|
53
|
+
## Step 7: Add Fleet Ephemeral Files to .gitignore
|
|
54
|
+
|
|
55
|
+
Run `execute_command -> echo '.fleet-task.md' >> .gitignore` on the member's work folder. These are ephemeral prompt delivery files managed by the fleet server and must never be committed to the repo.
|
|
56
|
+
|
|
57
|
+
## Step 8: Update Member Status File
|
|
58
|
+
|
|
59
|
+
Add to the member's status file:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
## Member Profile
|
|
63
|
+
- LLM Provider: Claude (or agy, gemini, etc.)
|
|
64
|
+
- VCS: Bitbucket (kumaakh/apra-lic-mgr)
|
|
65
|
+
- Roles: development, code-review
|
|
66
|
+
- Auth: Bitbucket API token (verified)
|
|
67
|
+
- Skills: bitbucket-devops (installed)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Pre-loading credentials before dispatch
|
|
71
|
+
|
|
72
|
+
If the task you are about to dispatch requires an API key, token, or password (e.g., calling an external API, pushing to a private registry, authenticating to a third-party service), store it in the credential store **before** dispatching the member.
|
|
73
|
+
|
|
74
|
+
**Why:** `execute_prompt` prompts are visible in the LLM conversation. Passing raw secrets there exposes them in logs and chat history. The credential store keeps the plaintext out of the LLM entirely.
|
|
75
|
+
|
|
76
|
+
**Steps:**
|
|
77
|
+
1. Call `credential_store_set` with a descriptive name (e.g., `github_pat`, `npm_token`, `openai_key`) - Fleet opens an OOB terminal prompt for the value
|
|
78
|
+
2. Pass the `sec://NAME` handle in the task prompt - reference by name only (e.g. `"authenticate using credential github_pat"`). The secret value is only injected server-side when `{{secure.NAME}}` appears in an `execute_command` call - never in AI prompt text.
|
|
79
|
+
3. The member uses `{{secure.NAME}}` in `execute_command` - Fleet resolves the value server-side and redacts it from output before the LLM sees it
|
|
80
|
+
|
|
81
|
+
**Example - dispatching a member that needs to push code to GitHub:**
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
# PM stores the token before dispatch
|
|
85
|
+
credential_store_set name=github_pat
|
|
86
|
+
|
|
87
|
+
# PM includes in the task prompt - reference by name only:
|
|
88
|
+
"When pushing code to GitHub, authenticate using credential github_pat."
|
|
89
|
+
|
|
90
|
+
# Member uses it in a command transparently
|
|
91
|
+
execute_command command="git remote set-url origin https://token:{{secure.github_pat}}@github.com/Org/Repo.git"
|
|
92
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Member Permissions
|
|
2
|
+
|
|
3
|
+
## Before dispatching work
|
|
4
|
+
|
|
5
|
+
Call `compose_permissions` with the member and role (`doer` or `reviewer` — additional roles can be added to the profiles). Optionally pass `project_folder` — the path to a folder containing a `permissions.json` ledger of previously approved permissions. The tool detects the project stack (Node.js, Python, Go, etc.) from the member's `work_folder`, selects the matching permission profile from the fleet profiles, merges any ledger grants, and delivers the right provider-native config to the member. Same call works across all agentic providers.
|
|
6
|
+
|
|
7
|
+
> "Compose permissions for java-dev1 as doer, project folder ./my-project"
|
|
8
|
+
|
|
9
|
+
## Permission denial during execution
|
|
10
|
+
|
|
11
|
+
When `execute_prompt` output contains a permission denial, call `compose_permissions` with `grant`:
|
|
12
|
+
|
|
13
|
+
> "Grant Bash(docker:*) to build-server, reason: integration tests, project folder ./my-project"
|
|
14
|
+
|
|
15
|
+
The tool validates (blocks dangerous tools like sudo/env), expands co-occurrences (docker→docker-compose), delivers the updated config, and appends to the project ledger for future use.
|
|
16
|
+
|
|
17
|
+
## Role switch
|
|
18
|
+
|
|
19
|
+
When a member's role changes, re-run `compose_permissions` with the new role.
|
|
20
|
+
|
|
21
|
+
## Never auto-granted
|
|
22
|
+
|
|
23
|
+
`sudo`, `su`, `env`, `printenv`, `nc`, `nmap` — the tool rejects these. Escalate to user.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Read", "Write", "Edit", "Glob", "Grep",
|
|
5
|
+
"Bash(git:*)",
|
|
6
|
+
"Bash(which:*)", "Bash(ls:*)", "Bash(cat:*)", "Bash(head:*)", "Bash(tail:*)",
|
|
7
|
+
"Bash(mkdir:*)", "Bash(cp:*)", "Bash(mv:*)", "Bash(rm:*)",
|
|
8
|
+
"Bash(find:*)", "Bash(wc:*)", "Bash(sort:*)", "Bash(diff:*)",
|
|
9
|
+
"Bash(echo:*)", "Bash(touch:*)", "Bash(chmod:*)",
|
|
10
|
+
"Bash(curl:*)", "Bash(tar:*)", "Bash(unzip:*)",
|
|
11
|
+
"Bash(grep:*)", "Bash(sed:*)", "Bash(awk:*)",
|
|
12
|
+
"Bash(tee:*)", "Bash(xargs:*)", "Bash(sleep:*)",
|
|
13
|
+
"Bash(kill:*)", "Bash(pkill:*)",
|
|
14
|
+
"Bash(bash:*)", "Bash(sh:*)",
|
|
15
|
+
"Bash(gh:*)", "Bash(jq:*)"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Read", "Glob", "Grep",
|
|
5
|
+
"Write(docs/**)", "Write(feedback.md)", "Write(feedback-*.md)", "Write(progress.json)",
|
|
6
|
+
"Edit(docs/**)", "Edit(feedback.md)", "Edit(feedback-*.md)", "Edit(progress.json)",
|
|
7
|
+
"Bash(git:*)",
|
|
8
|
+
"Bash(which:*)", "Bash(ls:*)", "Bash(cat:*)", "Bash(head:*)", "Bash(tail:*)",
|
|
9
|
+
"Bash(find:*)", "Bash(wc:*)", "Bash(sort:*)", "Bash(diff:*)",
|
|
10
|
+
"Bash(echo:*)", "Bash(grep:*)",
|
|
11
|
+
"Bash(gh:*)", "Bash(jq:*)"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Skill Matrix
|
|
2
|
+
|
|
3
|
+
Maps project + role to required skills. Used during onboarding (Step 6).
|
|
4
|
+
|
|
5
|
+
| Project | VCS | Role | Required Skills |
|
|
6
|
+
|---------|-----|------|----------------|
|
|
7
|
+
| Any | GitHub | Any | None (gh CLI sufficient) |
|
|
8
|
+
| Any | Bitbucket | devops | `bitbucket-devops` |
|
|
9
|
+
| Any | Bitbucket | code-review | `bitbucket-devops` |
|
|
10
|
+
| Any | Bitbucket | development | None |
|
|
11
|
+
| Any | Bitbucket | testing | None |
|
|
12
|
+
| Any | Bitbucket | debugging | None |
|
|
13
|
+
| Any | Azure DevOps | devops | `azdevops-devops` (future) |
|
|
14
|
+
| Any | Azure DevOps | code-review | `azdevops-devops` (future) |
|
|
15
|
+
| Any | Azure DevOps | development | None |
|
|
16
|
+
| ApraPipes | Any | devops | `aprapipes-devops` |
|
|
17
|
+
| StreamSurv AVMS | Any | debugging | `lvsm-log-analyzer-skill` |
|
|
18
|
+
|
|
19
|
+
## Skills
|
|
20
|
+
|
|
21
|
+
| Skill | Purpose |
|
|
22
|
+
|-------|---------|
|
|
23
|
+
| `bitbucket-devops` | Bitbucket API: create/merge PRs, manage pipelines, review code |
|
|
24
|
+
| `aprapipes-devops` | ApraPipes-specific build, test, deployment |
|
|
25
|
+
| `azdevops-devops` | Azure DevOps API operations (planned) |
|
|
26
|
+
| `lvsm-log-analyzer-skill` | SiteManager log analysis for AVMS/BBNVR devices |
|
|
27
|
+
|
|
28
|
+
## Rules
|
|
29
|
+
|
|
30
|
+
1. Skills are additive — multiple roles = union of all required skills
|
|
31
|
+
2. GitHub members rarely need extra skills — gh CLI covers most operations
|
|
32
|
+
3. Bitbucket/Azure DevOps members need provider-specific skills for devops/code-review (LLMs lack native API knowledge without skills)
|
|
33
|
+
4. Project-specific skills layer on top of VCS skills
|
|
34
|
+
5. Skills are independent of the member's LLM provider — a Gemini member needs the same project skills as a Claude member. Skill selection is driven by VCS provider and project, not LLM provider.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
| Symptom | Action |
|
|
4
|
+
|---------|--------|
|
|
5
|
+
| Empty response | Check auth token expiry -> re-provision via `provision_vcs_auth` |
|
|
6
|
+
| Timeout (inactivity) | `timeout_s`: fires when no stdout/stderr output arrives for N seconds (default 300s / 5 min). Applies to all members and all providers - transport-level, not provider-specific. Common cause: test runners and build tools that buffer output (npm test, vitest, cargo build) producing no output for long stretches even while active. Fix: increase `timeout_s` to 600-1200 for build/test dispatches. |
|
|
7
|
+
| Timeout (total) | `max_total_s`: fires after N seconds of total elapsed time regardless of output activity. Provider-agnostic. Use for hard ceilings on long-running jobs. Set alongside `timeout_s` when you need both a silence guard and a wall-clock cap. |
|
|
8
|
+
| Permission denied | Run `compose_permissions` for the member - it produces provider-native config. Claude: check `.claude/settings.local.json`. Agy: check `~/.gemini/config/hooks.json` and `mcp_config.json`. Codex: check `.codex/config.toml` approval mode. Copilot: check `.github/copilot/settings.local.json`. Gemini: check `.gemini/policies/`. |
|
|
9
|
+
| Stuck after reset | Escalate model (cheap->standard->premium). Still stuck? Flag to user |
|
|
10
|
+
| Auth error (401/403) | GitHub App: re-mint via `provision_vcs_auth`. Bitbucket/Azure DevOps: ask user for fresh token, provision, retry. See auth-*.md |
|
|
11
|
+
| Token/password appears in command output | Use `credential_store_set` to store the secret, then reference it as `{{secure.NAME}}` in `execute_command` - Fleet redacts it to `[REDACTED:NAME]` before the LLM sees the output |
|
|
12
|
+
| Need to rotate a credential without re-provisioning | Run `credential_store_delete name=<NAME>` then `credential_store_set name=<NAME>` - the new value is picked up immediately on the next `execute_command` that references `{{secure.NAME}}` |
|
|
13
|
+
| Tool execution issue (unexpected behavior, missing output, silent failure) | Check `APRA_FLEET_DATA_DIR/logs/fleet-<pid>.log` for detailed execution traces. Filter by member with `jq 'select(.member_id == "<uuid>")'` or by tool with `jq 'select(.tag == "<tool>")'`. See the **Fleet Logs** section in SKILL.md for full field reference and `jq` examples. |
|