@indigoai-us/hq-cli 5.314.0 → 5.315.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4311 -1
- package/README.md +113 -0
- package/assets/bot-workers/setup/context/USER-GUIDE.md +404 -0
- package/assets/bot-workers/setup/context/quick-reference.md +199 -0
- package/assets/bot-workers/setup/skills/agents-and-team.md +167 -0
- package/assets/bot-workers/setup/skills/explain-hq.md +35 -0
- package/assets/bot-workers/setup/skills/first-company.md +74 -0
- package/assets/bot-workers/setup/skills/joining-a-team.md +125 -0
- package/assets/bot-workers/setup/skills/pricing.md +92 -0
- package/assets/bot-workers/setup/skills/standing-help.md +81 -0
- package/assets/bot-workers/setup/skills/your-business.md +281 -0
- package/assets/bot-workers/setup/worker.yaml +791 -0
- package/assets/lanes-hooks/hq-lanes-drain.json +15 -0
- package/assets/lanes-hooks/hq-lanes-drain.mjs +275 -0
- package/assets/lanes-hooks/hq-lanes-drain.sh +21 -0
- package/assets/lanes-reconcile/hq-lanes-reconcile.service +11 -0
- package/assets/lanes-reconcile/hq-lanes-reconcile.timer +12 -0
- package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +485 -0
- package/assets/scaffold/core/scripts/audit-log.sh +384 -0
- package/assets/scaffold/core/scripts/checkpoint-stop-gate.sh +281 -43
- package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +171 -0
- package/assets/scaffold/core/scripts/eval-trigger.sh +193 -0
- package/assets/scaffold/core/scripts/git-pack-extension-check.sh +164 -0
- package/assets/scaffold/core/scripts/handoff-finalize.sh +688 -0
- package/assets/scaffold/core/scripts/handoff-open-steps.sh +81 -0
- package/assets/scaffold/core/scripts/handoff-post.sh +252 -0
- package/assets/scaffold/core/scripts/hook-lib.sh +345 -50
- package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +307 -0
- package/assets/scaffold/core/scripts/hq-delegate-grant.sh +252 -0
- package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +99 -0
- package/assets/scaffold/core/scripts/hq-delegate-publish.sh +91 -0
- package/assets/scaffold/core/scripts/hq-delegate-repo.sh +158 -0
- package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +145 -0
- package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +129 -0
- package/assets/scaffold/core/scripts/hq-delegate-send.sh +259 -0
- package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +175 -0
- package/assets/scaffold/core/scripts/hq-delegate-verify.sh +238 -0
- package/assets/scaffold/core/scripts/hq-dm-bind.sh +585 -0
- package/assets/scaffold/core/scripts/hq-job-notify.sh +389 -0
- package/assets/scaffold/core/scripts/hq-job-probe.sh +835 -0
- package/assets/scaffold/core/scripts/hq-job-remediate.sh +359 -0
- package/assets/scaffold/core/scripts/hq-job-run.sh +1025 -0
- package/assets/scaffold/core/scripts/hq-pin.sh +118 -0
- package/assets/scaffold/core/scripts/hq-session.sh +184 -23
- package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +310 -0
- package/assets/scaffold/core/scripts/jobs-validate.sh +451 -0
- package/assets/scaffold/core/scripts/knowledge-prefs.sh +55 -0
- package/assets/scaffold/core/scripts/lib/portable.sh +211 -0
- package/assets/scaffold/core/scripts/lib/secret-patterns.sh +58 -0
- package/assets/scaffold/core/scripts/lib/session-id.sh +3 -2
- package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +1 -1
- package/assets/scaffold/core/scripts/lib/work-mesh-enqueue.sh +2 -1
- package/assets/scaffold/core/scripts/lib/work-mesh-live-hook.sh +378 -0
- package/assets/scaffold/core/scripts/lib/work-mesh-live-rebind.sh +141 -0
- package/assets/scaffold/core/scripts/migrate-policy-triggers.sh +378 -0
- package/assets/scaffold/core/scripts/ontology-audience-grant.sh +81 -0
- package/assets/scaffold/core/scripts/ontology-brief.mjs +93 -0
- package/assets/scaffold/core/scripts/ontology-candidate.sh +100 -0
- package/assets/scaffold/core/scripts/ontology-garden.mjs +238 -0
- package/assets/scaffold/core/scripts/ontology-source-worklist.sh +79 -0
- package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +834 -0
- package/assets/scaffold/core/scripts/policy-age-report.sh +156 -0
- package/assets/scaffold/core/scripts/policy-retire.sh +199 -0
- package/assets/scaffold/core/scripts/qmd-reindex-after-sync.sh +10 -87
- package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +40 -0
- package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +32 -0
- package/assets/scaffold/core/scripts/rebuild-company-knowledge-index.sh +36 -3
- package/assets/scaffold/core/scripts/rebuild-projects-index.sh +99 -12
- package/assets/scaffold/core/scripts/refresh-vault-access.sh +188 -0
- package/assets/scaffold/core/scripts/register-project.sh +262 -0
- package/assets/scaffold/core/scripts/resolve-company.sh +199 -0
- package/assets/scaffold/core/scripts/resume-thread-lock.sh +285 -0
- package/assets/scaffold/core/scripts/source-yaml-validate.sh +36 -0
- package/assets/scaffold/core/scripts/token-usage-report.sh +81 -20
- package/assets/scaffold/core/scripts/verify-story-deliverables.sh +148 -0
- package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +152 -0
- package/assets/scaffold/core/scripts/work-mesh-live-rebind.sh +59 -0
- package/assets/scaffold/core/scripts/worktree-gc.sh +362 -0
- package/contracts/preflight/v1/fixtures.json +87 -0
- package/contracts/preflight/v1/schema.json +58 -0
- package/dist/bin/hq-auth-refresh.d.ts +2 -0
- package/dist/bin/hq-auth-refresh.js +12 -6
- package/dist/command-catalog.generated.d.ts +10753 -0
- package/dist/command-catalog.generated.js +13859 -0
- package/dist/command-registration-plan.d.ts +474 -0
- package/dist/command-registration-plan.js +136 -0
- package/dist/commands/__fixtures__/access-vault.d.ts +2 -0
- package/dist/commands/__fixtures__/access-vault.js +1 -1
- package/dist/commands/_patterns.d.ts +16 -0
- package/dist/commands/_patterns.js +20 -3
- package/dist/commands/access.d.ts +2 -1
- package/dist/commands/access.js +58 -49
- package/dist/commands/agent-enroll.d.ts +146 -0
- package/dist/commands/agent-enroll.js +401 -0
- package/dist/commands/agent-inbox.d.ts +9 -0
- package/dist/commands/agent-inbox.js +102 -0
- package/dist/commands/agent-kit.d.ts +87 -0
- package/dist/commands/agent-kit.js +480 -0
- package/dist/commands/agent-mcp.d.ts +24 -0
- package/dist/commands/agent-mcp.js +127 -0
- package/dist/commands/agent-probe.d.ts +77 -0
- package/dist/commands/agent-probe.js +335 -0
- package/dist/commands/agent.d.ts +13 -0
- package/dist/commands/agent.js +40 -0
- package/dist/commands/agents.d.ts +106 -4
- package/dist/commands/agents.js +924 -45
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +189 -19
- package/dist/commands/billing-sponsor.d.ts +83 -0
- package/dist/commands/billing-sponsor.js +344 -0
- package/dist/commands/billing.d.ts +3 -0
- package/dist/commands/billing.js +6 -1
- package/dist/commands/bot-companies.d.ts +40 -0
- package/dist/commands/bot-companies.js +64 -0
- package/dist/commands/bot-continuity.d.ts +28 -0
- package/dist/commands/bot-continuity.js +68 -0
- package/dist/commands/bot-jobs.d.ts +127 -0
- package/dist/commands/bot-jobs.js +454 -0
- package/dist/commands/bot.d.ts +278 -0
- package/dist/commands/bot.js +1982 -0
- package/dist/commands/channels.js +56 -1
- package/dist/commands/cloud-demote.js +3 -2
- package/dist/commands/cloud-provision.d.ts +14 -0
- package/dist/commands/cloud-provision.js +232 -58
- package/dist/commands/cloud-retire.d.ts +51 -0
- package/dist/commands/cloud-retire.js +154 -0
- package/dist/commands/cloud.d.ts +49 -15
- package/dist/commands/cloud.js +357 -122
- package/dist/commands/company-rename-flag.d.ts +4 -0
- package/dist/commands/company-rename-flag.js +7 -0
- package/dist/commands/company-rename.d.ts +4 -0
- package/dist/commands/company-rename.js +90 -0
- package/dist/commands/company-transfer.d.ts +4 -28
- package/dist/commands/company-transfer.js +5 -49
- package/dist/commands/company.js +68 -3
- package/dist/commands/core-audit-log-native.d.ts +9 -0
- package/dist/commands/core-audit-log-native.js +257 -0
- package/dist/commands/core-checkpoint-gate-setting.d.ts +59 -0
- package/dist/commands/core-checkpoint-gate-setting.js +163 -0
- package/dist/commands/core-checkpoint-stop-gate-native.d.ts +34 -0
- package/dist/commands/core-checkpoint-stop-gate-native.js +725 -0
- package/dist/commands/core-checkpoint.d.ts +19 -9
- package/dist/commands/core-checkpoint.js +301 -37
- package/dist/commands/core-command-catalog.d.ts +34 -0
- package/dist/commands/core-command-catalog.js +62 -0
- package/dist/commands/core-company-index-scope-flag.d.ts +3 -0
- package/dist/commands/core-company-index-scope-flag.js +6 -0
- package/dist/commands/core-delegate-w1b.d.ts +10 -0
- package/dist/commands/core-delegate-w1b.js +1219 -0
- package/dist/commands/core-delegate.d.ts +46 -0
- package/dist/commands/core-delegate.js +1040 -0
- package/dist/commands/core-dm-bind-native.d.ts +32 -0
- package/dist/commands/core-dm-bind-native.js +668 -0
- package/dist/commands/core-eval-trigger-native.d.ts +4 -0
- package/dist/commands/core-eval-trigger-native.js +12 -0
- package/dist/commands/core-git-pack-extension-check-native.d.ts +22 -0
- package/dist/commands/core-git-pack-extension-check-native.js +190 -0
- package/dist/commands/core-handoff-fast.d.ts +18 -0
- package/dist/commands/core-handoff-fast.js +104 -0
- package/dist/commands/core-handoff-open-steps.d.ts +21 -0
- package/dist/commands/core-handoff-open-steps.js +264 -0
- package/dist/commands/core-handoff.d.ts +24 -0
- package/dist/commands/core-handoff.js +1144 -0
- package/dist/commands/core-hq-session-native.d.ts +39 -0
- package/dist/commands/core-hq-session-native.js +579 -0
- package/dist/commands/core-job-native-utils.d.ts +6 -0
- package/dist/commands/core-job-native-utils.js +80 -0
- package/dist/commands/core-job-native.d.ts +5 -0
- package/dist/commands/core-job-native.js +16 -0
- package/dist/commands/core-job-notify-native.d.ts +36 -0
- package/dist/commands/core-job-notify-native.js +359 -0
- package/dist/commands/core-job-probe-native.d.ts +45 -0
- package/dist/commands/core-job-probe-native.js +564 -0
- package/dist/commands/core-job-remediate-native.d.ts +26 -0
- package/dist/commands/core-job-remediate-native.js +374 -0
- package/dist/commands/core-job-remote-launcher.d.ts +7 -0
- package/dist/commands/core-job-remote-launcher.js +51 -0
- package/dist/commands/core-job-run-native.d.ts +47 -0
- package/dist/commands/core-job-run-native.js +1215 -0
- package/dist/commands/core-jobs-native.d.ts +25 -0
- package/dist/commands/core-jobs-native.js +1339 -0
- package/dist/commands/core-knowledge-prefs.d.ts +11 -0
- package/dist/commands/core-knowledge-prefs.js +137 -0
- package/dist/commands/core-migrate-policy-triggers-native.d.ts +21 -0
- package/dist/commands/core-migrate-policy-triggers-native.js +374 -0
- package/dist/commands/core-native-handoff-flag.d.ts +4 -0
- package/dist/commands/core-native-handoff-flag.js +7 -0
- package/dist/commands/core-native-hook-helper-commands.d.ts +4 -0
- package/dist/commands/core-native-hook-helper-commands.js +56 -0
- package/dist/commands/core-native-hook-helpers-flag.d.ts +4 -0
- package/dist/commands/core-native-hook-helpers-flag.js +7 -0
- package/dist/commands/core-native-jobs-flag.d.ts +4 -0
- package/dist/commands/core-native-jobs-flag.js +7 -0
- package/dist/commands/core-native-policy-flag.d.ts +9 -0
- package/dist/commands/core-native-policy-flag.js +12 -0
- package/dist/commands/core-native-session-flag.d.ts +4 -0
- package/dist/commands/core-native-session-flag.js +7 -0
- package/dist/commands/core-native-utilities-flag.d.ts +4 -0
- package/dist/commands/core-native-utilities-flag.js +7 -0
- package/dist/commands/core-native-utilities.d.ts +29 -0
- package/dist/commands/core-native-utilities.js +54 -0
- package/dist/commands/core-native-worker-skills-flag.d.ts +4 -0
- package/dist/commands/core-native-worker-skills-flag.js +7 -0
- package/dist/commands/core-ontology-native.d.ts +17 -0
- package/dist/commands/core-ontology-native.js +916 -0
- package/dist/commands/core-ontology.d.ts +66 -0
- package/dist/commands/core-ontology.js +430 -0
- package/dist/commands/core-pin-native.d.ts +14 -0
- package/dist/commands/core-pin-native.js +236 -0
- package/dist/commands/core-policy-frontmatter.d.ts +8 -0
- package/dist/commands/core-policy-frontmatter.js +52 -0
- package/dist/commands/core-policy.d.ts +14 -0
- package/dist/commands/core-policy.js +1018 -0
- package/dist/commands/core-refresh-vault-access-native.d.ts +20 -0
- package/dist/commands/core-refresh-vault-access-native.js +229 -0
- package/dist/commands/core-register-project-native.d.ts +30 -0
- package/dist/commands/core-register-project-native.js +347 -0
- package/dist/commands/core-resolve-company-command.d.ts +4 -0
- package/dist/commands/core-resolve-company-command.js +42 -0
- package/dist/commands/core-resolve-company-native.d.ts +28 -0
- package/dist/commands/core-resolve-company-native.js +408 -0
- package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +32 -0
- package/dist/commands/core-work-mesh-bind-trusted-native.js +190 -0
- package/dist/commands/core-work-mesh-live-rebind-native.d.ts +18 -0
- package/dist/commands/core-work-mesh-live-rebind-native.js +262 -0
- package/dist/commands/core-worker-lint-native.d.ts +4 -0
- package/dist/commands/core-worker-lint-native.js +160 -0
- package/dist/commands/core-worker-share-native.d.ts +4 -0
- package/dist/commands/core-worker-share-native.js +260 -0
- package/dist/commands/core-worker-skills-command.d.ts +8 -0
- package/dist/commands/core-worker-skills-command.js +33 -0
- package/dist/commands/core-worker-skills-runtime.d.ts +33 -0
- package/dist/commands/core-worker-skills-runtime.js +86 -0
- package/dist/commands/core.d.ts +4 -0
- package/dist/commands/core.js +277 -80
- package/dist/commands/crm.js +52 -3
- package/dist/commands/daemon.d.ts +63 -0
- package/dist/commands/daemon.js +877 -0
- package/dist/commands/db-provision.js +4 -4
- package/dist/commands/db-sql.js +7 -21
- package/dist/commands/deploy-comments.d.ts +3 -0
- package/dist/commands/deploy-comments.js +162 -0
- package/dist/commands/dm.d.ts +119 -12
- package/dist/commands/dm.js +388 -38
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.js +158 -12
- package/dist/commands/feedback.d.ts +6 -0
- package/dist/commands/feedback.js +86 -37
- package/dist/commands/files-browse.d.ts +32 -12
- package/dist/commands/files-browse.js +176 -60
- package/dist/commands/files.d.ts +17 -0
- package/dist/commands/files.js +300 -47
- package/dist/commands/group-grants.js +3 -2
- package/dist/commands/groups.js +6 -5
- package/dist/commands/index-cmd.d.ts +19 -1
- package/dist/commands/index-cmd.js +74 -7
- package/dist/commands/integrations-api.d.ts +15 -10
- package/dist/commands/integrations-api.js +27 -22
- package/dist/commands/integrations-connect.d.ts +51 -13
- package/dist/commands/integrations-connect.js +86 -71
- package/dist/commands/integrations-core.d.ts +6 -6
- package/dist/commands/integrations-core.js +25 -11
- package/dist/commands/integrations-import.d.ts +1 -1
- package/dist/commands/integrations-import.js +43 -24
- package/dist/commands/integrations-manage.js +20 -13
- package/dist/commands/integrations.d.ts +8 -0
- package/dist/commands/integrations.js +94 -7
- package/dist/commands/lanes-accounts.d.ts +28 -0
- package/dist/commands/lanes-accounts.js +595 -0
- package/dist/commands/lanes-autopilot.d.ts +11 -0
- package/dist/commands/lanes-autopilot.js +336 -0
- package/dist/commands/lanes-checks.d.ts +51 -0
- package/dist/commands/lanes-checks.js +941 -0
- package/dist/commands/lanes-hold.d.ts +43 -0
- package/dist/commands/lanes-hold.js +655 -0
- package/dist/commands/lanes-keep-alive-audit.d.ts +10 -0
- package/dist/commands/lanes-keep-alive-audit.js +19 -0
- package/dist/commands/lanes-kpis.d.ts +11 -0
- package/dist/commands/lanes-kpis.js +34 -0
- package/dist/commands/lanes-message.d.ts +9 -0
- package/dist/commands/lanes-message.js +946 -0
- package/dist/commands/lanes-move.d.ts +12 -0
- package/dist/commands/lanes-move.js +397 -0
- package/dist/commands/lanes-questions.d.ts +36 -0
- package/dist/commands/lanes-questions.js +1005 -0
- package/dist/commands/lanes-report.d.ts +11 -0
- package/dist/commands/lanes-report.js +333 -0
- package/dist/commands/lanes-resume.d.ts +6 -0
- package/dist/commands/lanes-resume.js +564 -0
- package/dist/commands/lanes-review.d.ts +10 -0
- package/dist/commands/lanes-review.js +56 -0
- package/dist/commands/lanes-shared.d.ts +449 -0
- package/dist/commands/lanes-shared.js +170 -0
- package/dist/commands/lanes-stories.d.ts +15 -0
- package/dist/commands/lanes-stories.js +347 -0
- package/dist/commands/lanes-watch.d.ts +7 -0
- package/dist/commands/lanes-watch.js +216 -0
- package/dist/commands/lanes.d.ts +149 -0
- package/dist/commands/lanes.js +8983 -0
- package/dist/commands/login.js +49 -6
- package/dist/commands/mcp-registration.d.ts +32 -25
- package/dist/commands/mcp-registration.js +256 -23
- package/dist/commands/mcp-status.js +1 -0
- package/dist/commands/meetings.js +55 -34
- package/dist/commands/members.js +5 -1
- package/dist/commands/mesh.d.ts +11 -0
- package/dist/commands/mesh.js +1086 -76
- package/dist/commands/monitor.d.ts +58 -0
- package/dist/commands/monitor.js +980 -0
- package/dist/commands/onboard-bot-membership.d.ts +32 -0
- package/dist/commands/onboard-bot-membership.js +40 -0
- package/dist/commands/onboard-create-identity.d.ts +26 -0
- package/dist/commands/onboard-create-identity.js +23 -0
- package/dist/commands/onboard-identity-guard.d.ts +1 -1
- package/dist/commands/onboard.js +24 -5
- package/dist/commands/outpost-pruner.d.ts +3 -0
- package/dist/commands/outpost-pruner.js +125 -0
- package/dist/commands/pack-install.js +3 -1
- package/dist/commands/packs.js +11 -1
- package/dist/commands/people.d.ts +4 -0
- package/dist/commands/people.js +37 -3
- package/dist/commands/personal-connector-settings-flag.d.ts +4 -0
- package/dist/commands/personal-connector-settings-flag.js +7 -0
- package/dist/commands/personal-targeted-push-flag.d.ts +4 -0
- package/dist/commands/personal-targeted-push-flag.js +7 -0
- package/dist/commands/personal-targeted-push-paths.d.ts +3 -0
- package/dist/commands/personal-targeted-push-paths.js +67 -0
- package/dist/commands/publish.d.ts +8 -1
- package/dist/commands/publish.js +17 -4
- package/dist/commands/reindex.js +56 -6
- package/dist/commands/report.d.ts +19 -0
- package/dist/commands/report.js +537 -0
- package/dist/commands/rescue.d.ts +4 -0
- package/dist/commands/rescue.js +27 -17
- package/dist/commands/run-feature-telemetry.d.ts +3 -0
- package/dist/commands/run-feature-telemetry.js +6 -0
- package/dist/commands/run.js +18 -4
- package/dist/commands/safe-extract.d.ts +11 -2
- package/dist/commands/safe-extract.js +36 -8
- package/dist/commands/secrets.d.ts +20 -2
- package/dist/commands/secrets.js +175 -71
- package/dist/commands/skill.d.ts +35 -4
- package/dist/commands/skill.js +357 -18
- package/dist/commands/staff/reset-test-account.d.ts +110 -0
- package/dist/commands/staff/reset-test-account.js +268 -0
- package/dist/commands/staff/test-account.d.ts +51 -0
- package/dist/commands/staff/test-account.js +196 -0
- package/dist/commands/sync-mode.d.ts +11 -0
- package/dist/commands/sync-mode.js +30 -0
- package/dist/commands/sync-narrow.js +36 -5
- package/dist/commands/team-sync.js +71 -10
- package/dist/commands/update.js +6 -0
- package/dist/commands/vault-retention-flag.d.ts +3 -0
- package/dist/commands/vault-retention-flag.js +9 -0
- package/dist/commands/vault-retention.d.ts +11 -0
- package/dist/commands/vault-retention.js +69 -0
- package/dist/commands/version.d.ts +10 -0
- package/dist/commands/version.js +11 -0
- package/dist/commands/whoami.d.ts +22 -0
- package/dist/commands/whoami.js +137 -4
- package/dist/commands/workers.d.ts +2 -14
- package/dist/commands/workers.js +7 -10
- package/dist/fast-core.d.ts +6 -7
- package/dist/fast-core.js +87 -24
- package/dist/fast-scaffold.d.ts +86 -0
- package/dist/fast-scaffold.js +364 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.js +59 -9
- package/dist/lanes-drain-hook.d.ts +14 -0
- package/dist/lanes-drain-hook.js +203 -0
- package/dist/lazy-commands.d.ts +20 -44
- package/dist/lazy-commands.js +60 -58
- package/dist/lib/agent-kit/adopt-identity.d.ts +27 -0
- package/dist/lib/agent-kit/adopt-identity.js +60 -0
- package/dist/lib/agent-kit/attachment-download.d.ts +24 -0
- package/dist/lib/agent-kit/attachment-download.js +47 -0
- package/dist/lib/agent-kit/creds.d.ts +106 -0
- package/dist/lib/agent-kit/creds.js +163 -0
- package/dist/lib/agent-kit/fallback.d.ts +78 -0
- package/dist/lib/agent-kit/fallback.js +210 -0
- package/dist/lib/agent-kit/inbox-state.d.ts +83 -0
- package/dist/lib/agent-kit/inbox-state.js +159 -0
- package/dist/lib/agent-kit/kit-config.d.ts +56 -0
- package/dist/lib/agent-kit/kit-config.js +65 -0
- package/dist/lib/agent-kit/log.d.ts +16 -0
- package/dist/lib/agent-kit/log.js +46 -0
- package/dist/lib/agent-kit/mcp/attachments.d.ts +126 -0
- package/dist/lib/agent-kit/mcp/attachments.js +222 -0
- package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +75 -0
- package/dist/lib/agent-kit/mcp/jsonrpc.js +164 -0
- package/dist/lib/agent-kit/mcp/tools.d.ts +64 -0
- package/dist/lib/agent-kit/mcp/tools.js +397 -0
- package/dist/lib/agent-kit/paths.d.ts +65 -0
- package/dist/lib/agent-kit/paths.js +118 -0
- package/dist/lib/agent-kit/private-file.d.ts +29 -0
- package/dist/lib/agent-kit/private-file.js +91 -0
- package/dist/lib/agent-kit/run/heartbeat.d.ts +72 -0
- package/dist/lib/agent-kit/run/heartbeat.js +128 -0
- package/dist/lib/agent-kit/run/inbox.d.ts +76 -0
- package/dist/lib/agent-kit/run/inbox.js +205 -0
- package/dist/lib/agent-kit/run/supervisor.d.ts +35 -0
- package/dist/lib/agent-kit/run/supervisor.js +85 -0
- package/dist/lib/agent-kit/run/sync.d.ts +33 -0
- package/dist/lib/agent-kit/run/sync.js +58 -0
- package/dist/lib/agent-kit/services.d.ts +31 -0
- package/dist/lib/agent-kit/services.js +55 -0
- package/dist/lib/agent-kit/skills.d.ts +18 -0
- package/dist/lib/agent-kit/skills.js +151 -0
- package/dist/lib/agent-kit/wake.d.ts +83 -0
- package/dist/lib/agent-kit/wake.js +243 -0
- package/dist/lib/agents/model-catalog.d.ts +62 -0
- package/dist/lib/agents/model-catalog.js +275 -0
- package/dist/lib/auth-login-provider-state.d.ts +8 -0
- package/dist/lib/auth-login-provider-state.js +63 -0
- package/dist/lib/aws-sdk-node-warning-output.d.ts +12 -0
- package/dist/lib/aws-sdk-node-warning-output.js +22 -0
- package/dist/lib/billing/free-month.d.ts +18 -0
- package/dist/lib/billing/free-month.js +31 -0
- package/dist/lib/billing/plan-limit-refusals.d.ts +69 -0
- package/dist/lib/billing/plan-limit-refusals.js +187 -0
- package/dist/lib/billing/plan-limit-upgrade-url.d.ts +11 -0
- package/dist/lib/billing/plan-limit-upgrade-url.js +66 -0
- package/dist/lib/billing/plan-lock.d.ts +143 -0
- package/dist/lib/billing/plan-lock.js +439 -0
- package/dist/lib/bot/api.d.ts +349 -0
- package/dist/lib/bot/api.js +316 -0
- package/dist/lib/bot/attachments.d.ts +45 -0
- package/dist/lib/bot/attachments.js +89 -0
- package/dist/lib/bot/cli-update.d.ts +138 -0
- package/dist/lib/bot/cli-update.js +278 -0
- package/dist/lib/bot/company-bind.d.ts +27 -0
- package/dist/lib/bot/company-bind.js +62 -0
- package/dist/lib/bot/config.d.ts +153 -0
- package/dist/lib/bot/config.js +233 -0
- package/dist/lib/bot/continuity-download.d.ts +28 -0
- package/dist/lib/bot/continuity-download.js +75 -0
- package/dist/lib/bot/continuity-install.d.ts +14 -0
- package/dist/lib/bot/continuity-install.js +101 -0
- package/dist/lib/bot/continuity.d.ts +67 -0
- package/dist/lib/bot/continuity.js +301 -0
- package/dist/lib/bot/creds.d.ts +24 -0
- package/dist/lib/bot/creds.js +51 -0
- package/dist/lib/bot/daemon.d.ts +173 -0
- package/dist/lib/bot/daemon.js +552 -0
- package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +24 -0
- package/dist/lib/bot/inbox-poll-backoff-flag.js +135 -0
- package/dist/lib/bot/inbox-state.d.ts +18 -0
- package/dist/lib/bot/inbox-state.js +51 -0
- package/dist/lib/bot/index.d.ts +23 -0
- package/dist/lib/bot/index.js +23 -0
- package/dist/lib/bot/inflight.d.ts +119 -0
- package/dist/lib/bot/inflight.js +83 -0
- package/dist/lib/bot/job-completions.d.ts +89 -0
- package/dist/lib/bot/job-completions.js +132 -0
- package/dist/lib/bot/job-run.d.ts +109 -0
- package/dist/lib/bot/job-run.js +246 -0
- package/dist/lib/bot/local-config.d.ts +61 -0
- package/dist/lib/bot/local-config.js +145 -0
- package/dist/lib/bot/local-jobs.d.ts +89 -0
- package/dist/lib/bot/local-jobs.js +459 -0
- package/dist/lib/bot/local-name.d.ts +54 -0
- package/dist/lib/bot/local-name.js +114 -0
- package/dist/lib/bot/log.d.ts +13 -0
- package/dist/lib/bot/log.js +59 -0
- package/dist/lib/bot/owner-context.d.ts +79 -0
- package/dist/lib/bot/owner-context.js +175 -0
- package/dist/lib/bot/paths.d.ts +76 -0
- package/dist/lib/bot/paths.js +131 -0
- package/dist/lib/bot/progress.d.ts +132 -0
- package/dist/lib/bot/progress.js +289 -0
- package/dist/lib/bot/promote.d.ts +16 -0
- package/dist/lib/bot/promote.js +106 -0
- package/dist/lib/bot/promotion-hold.d.ts +24 -0
- package/dist/lib/bot/promotion-hold.js +103 -0
- package/dist/lib/bot/promotion-receipt.d.ts +9 -0
- package/dist/lib/bot/promotion-receipt.js +56 -0
- package/dist/lib/bot/promotion-upload.d.ts +16 -0
- package/dist/lib/bot/promotion-upload.js +80 -0
- package/dist/lib/bot/prompt.d.ts +136 -0
- package/dist/lib/bot/prompt.js +433 -0
- package/dist/lib/bot/room-policy.d.ts +63 -0
- package/dist/lib/bot/room-policy.js +91 -0
- package/dist/lib/bot/run.d.ts +217 -0
- package/dist/lib/bot/run.js +1869 -0
- package/dist/lib/bot/runnable.d.ts +51 -0
- package/dist/lib/bot/runnable.js +65 -0
- package/dist/lib/bot/runtime/claude.d.ts +50 -0
- package/dist/lib/bot/runtime/claude.js +170 -0
- package/dist/lib/bot/runtime/codex.d.ts +28 -0
- package/dist/lib/bot/runtime/codex.js +153 -0
- package/dist/lib/bot/runtime/grok-acp.d.ts +40 -0
- package/dist/lib/bot/runtime/grok-acp.js +265 -0
- package/dist/lib/bot/runtime/grok.d.ts +41 -0
- package/dist/lib/bot/runtime/grok.js +169 -0
- package/dist/lib/bot/runtime/index.d.ts +36 -0
- package/dist/lib/bot/runtime/index.js +417 -0
- package/dist/lib/bot/runtime/messages-stream.d.ts +56 -0
- package/dist/lib/bot/runtime/messages-stream.js +194 -0
- package/dist/lib/bot/runtime/sanitize.d.ts +18 -0
- package/dist/lib/bot/runtime/sanitize.js +28 -0
- package/dist/lib/bot/runtime/types.d.ts +159 -0
- package/dist/lib/bot/runtime/types.js +51 -0
- package/dist/lib/bot/runtime/windows.d.ts +10 -0
- package/dist/lib/bot/runtime/windows.js +53 -0
- package/dist/lib/bot/runtime-sign-in.d.ts +24 -0
- package/dist/lib/bot/runtime-sign-in.js +31 -0
- package/dist/lib/bot/scaffold.d.ts +38 -0
- package/dist/lib/bot/scaffold.js +94 -0
- package/dist/lib/bot/self-heal.d.ts +52 -0
- package/dist/lib/bot/self-heal.js +79 -0
- package/dist/lib/bot/self-process.d.ts +19 -0
- package/dist/lib/bot/self-process.js +35 -0
- package/dist/lib/bot/session.d.ts +19 -0
- package/dist/lib/bot/session.js +39 -0
- package/dist/lib/bot/setup-explain.d.ts +64 -0
- package/dist/lib/bot/setup-explain.js +141 -0
- package/dist/lib/bot/split.d.ts +32 -0
- package/dist/lib/bot/split.js +241 -0
- package/dist/lib/bot/status.d.ts +57 -0
- package/dist/lib/bot/status.js +66 -0
- package/dist/lib/bot/worker-source.d.ts +66 -0
- package/dist/lib/bot/worker-source.js +283 -0
- package/dist/lib/checkpoint-ontology/aliases.d.ts +17 -0
- package/dist/lib/checkpoint-ontology/aliases.js +44 -0
- package/dist/lib/checkpoint-ontology/apply.d.ts +110 -0
- package/dist/lib/checkpoint-ontology/apply.js +777 -0
- package/dist/lib/checkpoint-ontology/company-brief.d.ts +18 -0
- package/dist/lib/checkpoint-ontology/company-brief.js +337 -0
- package/dist/lib/checkpoint-ontology/company.d.ts +44 -0
- package/dist/lib/checkpoint-ontology/company.js +118 -0
- package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +41 -0
- package/dist/lib/checkpoint-ontology/drop-aliases.js +76 -0
- package/dist/lib/checkpoint-ontology/entity-file.d.ts +109 -0
- package/dist/lib/checkpoint-ontology/entity-file.js +371 -0
- package/dist/lib/checkpoint-ontology/identity.d.ts +38 -0
- package/dist/lib/checkpoint-ontology/identity.js +95 -0
- package/dist/lib/checkpoint-ontology/merge-copies.d.ts +199 -0
- package/dist/lib/checkpoint-ontology/merge-copies.js +1086 -0
- package/dist/lib/checkpoint-ontology/multi-writer.d.ts +101 -0
- package/dist/lib/checkpoint-ontology/multi-writer.js +394 -0
- package/dist/lib/checkpoint-ontology/plan.d.ts +193 -0
- package/dist/lib/checkpoint-ontology/plan.js +504 -0
- package/dist/lib/checkpoint-ontology/queued-touches.d.ts +29 -0
- package/dist/lib/checkpoint-ontology/queued-touches.js +193 -0
- package/dist/lib/checkpoint-ontology/sync-client.d.ts +38 -0
- package/dist/lib/checkpoint-ontology/sync-client.js +84 -0
- package/dist/lib/checkpoint-ontology/tree.d.ts +55 -0
- package/dist/lib/checkpoint-ontology/tree.js +198 -0
- package/dist/lib/company-errors-sdk-warning-flag.d.ts +5 -0
- package/dist/lib/company-errors-sdk-warning-flag.js +8 -0
- package/dist/lib/company-skill-wrapper.d.ts +1 -0
- package/dist/lib/company-skill-wrapper.js +121 -29
- package/dist/lib/core-utils/codex-skill-bridge.d.ts +2 -1
- package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +20 -0
- package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +81 -0
- package/dist/lib/core-utils/jq-json-serializer.d.ts +5 -0
- package/dist/lib/core-utils/jq-json-serializer.js +10 -0
- package/dist/lib/core-utils/qmd-reindex-after-sync.d.ts +14 -1
- package/dist/lib/core-utils/qmd-reindex-after-sync.js +101 -17
- package/dist/lib/core-utils/secret-patterns.d.ts +43 -0
- package/dist/lib/core-utils/secret-patterns.js +34 -0
- package/dist/lib/core-utils/sentry-report.d.ts +114 -0
- package/dist/lib/core-utils/sentry-report.js +1055 -0
- package/dist/lib/core-utils/soft-timeout.js +1 -1
- package/dist/lib/core-utils/timeout-guard-native.d.ts +7 -0
- package/dist/lib/core-utils/timeout-guard-native.js +40 -0
- package/dist/lib/core-utils/timeout-guard.d.ts +3 -3
- package/dist/lib/core-utils/timeout-guard.js +28 -13
- package/dist/lib/core-utils/token-usage-report.js +17 -3
- package/dist/lib/core-utils/worktree-resume.d.ts +20 -0
- package/dist/lib/core-utils/worktree-resume.js +1198 -0
- package/dist/lib/daemon/catalog.d.ts +134 -0
- package/dist/lib/daemon/catalog.js +358 -0
- package/dist/lib/daemon/config.d.ts +35 -0
- package/dist/lib/daemon/config.js +108 -0
- package/dist/lib/daemon/flag.d.ts +25 -0
- package/dist/lib/daemon/flag.js +59 -0
- package/dist/lib/daemon/handoff.d.ts +56 -0
- package/dist/lib/daemon/handoff.js +161 -0
- package/dist/lib/daemon/hq-cloud.d.ts +79 -0
- package/dist/lib/daemon/hq-cloud.js +183 -0
- package/dist/lib/daemon/install.d.ts +85 -0
- package/dist/lib/daemon/install.js +320 -0
- package/dist/lib/daemon/legacy-sync-env.d.ts +10 -0
- package/dist/lib/daemon/legacy-sync-env.js +58 -0
- package/dist/lib/daemon/legacy.d.ts +45 -0
- package/dist/lib/daemon/legacy.js +133 -0
- package/dist/lib/daemon/lock.d.ts +47 -0
- package/dist/lib/daemon/lock.js +138 -0
- package/dist/lib/daemon/machine-type.d.ts +50 -0
- package/dist/lib/daemon/machine-type.js +159 -0
- package/dist/lib/daemon/migrate.d.ts +77 -0
- package/dist/lib/daemon/migrate.js +265 -0
- package/dist/lib/daemon/paths.d.ts +24 -0
- package/dist/lib/daemon/paths.js +43 -0
- package/dist/lib/daemon/protocol-tail.d.ts +33 -0
- package/dist/lib/daemon/protocol-tail.js +131 -0
- package/dist/lib/daemon/remote-control.d.ts +74 -0
- package/dist/lib/daemon/remote-control.js +153 -0
- package/dist/lib/daemon/requests.d.ts +28 -0
- package/dist/lib/daemon/requests.js +65 -0
- package/dist/lib/daemon/run.d.ts +79 -0
- package/dist/lib/daemon/run.js +755 -0
- package/dist/lib/daemon/succession.d.ts +118 -0
- package/dist/lib/daemon/succession.js +263 -0
- package/dist/lib/daemon/supervisor.d.ts +132 -0
- package/dist/lib/daemon/supervisor.js +836 -0
- package/dist/lib/daemon/sync-runner.d.ts +58 -0
- package/dist/lib/daemon/sync-runner.js +277 -0
- package/dist/lib/daemon/tools.d.ts +52 -0
- package/dist/lib/daemon/tools.js +95 -0
- package/dist/lib/daemon/updater.d.ts +57 -0
- package/dist/lib/daemon/updater.js +163 -0
- package/dist/lib/db/control-plane.js +6 -0
- package/dist/lib/db/local.d.ts +0 -5
- package/dist/lib/db/local.js +1 -1
- package/dist/lib/db/migrate.d.ts +0 -12
- package/dist/lib/db/migrate.js +5 -5
- package/dist/lib/db/remote-sql.d.ts +2 -2
- package/dist/lib/db/remote-sql.js +3 -3
- package/dist/lib/db/sql.d.ts +0 -10
- package/dist/lib/db/sql.js +4 -8
- package/dist/lib/deploy-api.d.ts +5 -0
- package/dist/lib/deploy-api.js +21 -0
- package/dist/lib/deploy-apps.d.ts +13 -0
- package/dist/lib/deploy-apps.js +29 -0
- package/dist/lib/doctor/__testing__/fake-hq-tree.d.ts +1 -1
- package/dist/lib/doctor/__testing__/fake-hq-tree.js +1 -1
- package/dist/lib/doctor/__testing__/run-doctor.d.ts +8 -0
- package/dist/lib/doctor/__testing__/run-doctor.js +52 -0
- package/dist/lib/doctor/checks/bots.d.ts +13 -0
- package/dist/lib/doctor/checks/bots.js +189 -0
- package/dist/lib/doctor/checks/claude-wiring.js +70 -1
- package/dist/lib/doctor/checks/codex-wiring.d.ts +0 -4
- package/dist/lib/doctor/checks/codex-wiring.js +3 -35
- package/dist/lib/doctor/checks/grok-wiring.js +1 -34
- package/dist/lib/doctor/checks/integrations.js +11 -0
- package/dist/lib/doctor/checks/runtime-health.d.ts +4 -17
- package/dist/lib/doctor/checks/runtime-health.js +20 -7
- package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +6 -0
- package/dist/lib/doctor/checks/scaffold-cli-floor.js +73 -0
- package/dist/lib/doctor/checks/sync-health.d.ts +21 -0
- package/dist/lib/doctor/checks/sync-health.js +72 -2
- package/dist/lib/doctor/checks/sync-runtime.d.ts +11 -0
- package/dist/lib/doctor/checks/sync-runtime.js +216 -0
- package/dist/lib/doctor/checks/work-context.js +20 -6
- package/dist/lib/doctor/client-health-flag-token.d.ts +15 -0
- package/dist/lib/doctor/client-health-flag-token.js +66 -0
- package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +27 -0
- package/dist/lib/doctor/client-health-reason-codes-flag.js +106 -0
- package/dist/lib/doctor/compat.d.ts +0 -16
- package/dist/lib/doctor/compat.js +4 -3
- package/dist/lib/doctor/deep/effects.js +1 -3
- package/dist/lib/doctor/deep/executor.d.ts +4 -10
- package/dist/lib/doctor/deep/executor.js +1 -1
- package/dist/lib/doctor/deep/parity.d.ts +2 -29
- package/dist/lib/doctor/deep/parity.js +7 -7
- package/dist/lib/doctor/deep/sandbox.d.ts +7 -25
- package/dist/lib/doctor/deep/sandbox.js +5 -7
- package/dist/lib/doctor/fix/apply.d.ts +79 -8
- package/dist/lib/doctor/fix/apply.js +292 -80
- package/dist/lib/doctor/fix/json-output.d.ts +28 -0
- package/dist/lib/doctor/fix/json-output.js +33 -0
- package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +12 -0
- package/dist/lib/doctor/fix/refresh-sync-outcome.js +25 -0
- package/dist/lib/doctor/fix/remediation.d.ts +14 -6
- package/dist/lib/doctor/fix/remediation.js +49 -9
- package/dist/lib/doctor/fixtures/schema.js +1 -3
- package/dist/lib/doctor/json-output.d.ts +17 -1
- package/dist/lib/doctor/json-output.js +7 -2
- package/dist/lib/doctor/platform.d.ts +0 -26
- package/dist/lib/doctor/platform.js +5 -5
- package/dist/lib/doctor/registry.d.ts +14 -0
- package/dist/lib/doctor/registry.js +71 -0
- package/dist/lib/doctor/report.js +1 -1
- package/dist/lib/doctor/shared.d.ts +8 -0
- package/dist/lib/doctor/shared.js +38 -0
- package/dist/lib/doctor/stray-gate-entries.d.ts +35 -0
- package/dist/lib/doctor/stray-gate-entries.js +83 -0
- package/dist/lib/doctor/types.d.ts +5 -0
- package/dist/lib/doctor/types.js +20 -0
- package/dist/lib/first-sync-next-step.d.ts +34 -0
- package/dist/lib/first-sync-next-step.js +179 -0
- package/dist/lib/flag-registry-endpoint.d.ts +5 -0
- package/dist/lib/flag-registry-endpoint.js +9 -0
- package/dist/lib/flag-registry-worker-source.generated.d.ts +2 -0
- package/dist/lib/flag-registry-worker-source.generated.js +3 -0
- package/dist/lib/flag-registry-worker.js +12 -1
- package/dist/lib/flag-registry.d.ts +26 -6
- package/dist/lib/flag-registry.js +133 -16
- package/dist/lib/flag-snapshot-file.d.ts +20 -0
- package/dist/lib/flag-snapshot-file.js +91 -0
- package/dist/lib/heartbeat-identity.d.ts +30 -0
- package/dist/lib/heartbeat-identity.js +76 -0
- package/dist/lib/index-render/companies.d.ts +4 -1
- package/dist/lib/index-render/companies.js +66 -3
- package/dist/lib/index-render/company-knowledge.js +80 -17
- package/dist/lib/index-render/index.d.ts +1 -0
- package/dist/lib/index-render/index.js +2 -1
- package/dist/lib/index-render/projects.js +82 -5
- package/dist/lib/index-render/shared.d.ts +13 -1
- package/dist/lib/index-render/shared.js +41 -2
- package/dist/lib/lanes/account-home.d.ts +8 -0
- package/dist/lib/lanes/account-home.js +10 -0
- package/dist/lib/lanes/accounts.d.ts +117 -0
- package/dist/lib/lanes/accounts.js +366 -0
- package/dist/lib/lanes/admission-host.d.ts +22 -0
- package/dist/lib/lanes/admission-host.js +37 -0
- package/dist/lib/lanes/admission.d.ts +26 -0
- package/dist/lib/lanes/admission.js +210 -0
- package/dist/lib/lanes/approval-gate.d.ts +8 -0
- package/dist/lib/lanes/approval-gate.js +90 -0
- package/dist/lib/lanes/autopilot-metrics.d.ts +99 -0
- package/dist/lib/lanes/autopilot-metrics.js +301 -0
- package/dist/lib/lanes/autopilot-registry.d.ts +62 -0
- package/dist/lib/lanes/autopilot-registry.js +192 -0
- package/dist/lib/lanes/autopilot.d.ts +133 -0
- package/dist/lib/lanes/autopilot.js +1222 -0
- package/dist/lib/lanes/blocker-freshness.d.ts +31 -0
- package/dist/lib/lanes/blocker-freshness.js +168 -0
- package/dist/lib/lanes/checked-company-path.d.ts +3 -0
- package/dist/lib/lanes/checked-company-path.js +39 -0
- package/dist/lib/lanes/claude-balance.d.ts +97 -0
- package/dist/lib/lanes/claude-balance.js +319 -0
- package/dist/lib/lanes/compaction.d.ts +110 -0
- package/dist/lib/lanes/compaction.js +293 -0
- package/dist/lib/lanes/config.d.ts +94 -0
- package/dist/lib/lanes/config.js +606 -0
- package/dist/lib/lanes/constants.d.ts +3 -0
- package/dist/lib/lanes/constants.js +3 -0
- package/dist/lib/lanes/delivery-core.d.ts +15 -0
- package/dist/lib/lanes/delivery-core.js +21 -0
- package/dist/lib/lanes/delivery.d.ts +180 -0
- package/dist/lib/lanes/delivery.js +443 -0
- package/dist/lib/lanes/disk-guard.d.ts +66 -0
- package/dist/lib/lanes/disk-guard.js +172 -0
- package/dist/lib/lanes/dropbox.d.ts +129 -0
- package/dist/lib/lanes/dropbox.js +601 -0
- package/dist/lib/lanes/effort.d.ts +51 -0
- package/dist/lib/lanes/effort.js +113 -0
- package/dist/lib/lanes/envelope-repair-dispatch.d.ts +26 -0
- package/dist/lib/lanes/envelope-repair-dispatch.js +74 -0
- package/dist/lib/lanes/errors.d.ts +39 -0
- package/dist/lib/lanes/errors.js +72 -0
- package/dist/lib/lanes/flag-keys.d.ts +22 -0
- package/dist/lib/lanes/flag-keys.js +22 -0
- package/dist/lib/lanes/grants.d.ts +30 -0
- package/dist/lib/lanes/grants.js +171 -0
- package/dist/lib/lanes/hire-grant-dispatch.d.ts +29 -0
- package/dist/lib/lanes/hire-grant-dispatch.js +315 -0
- package/dist/lib/lanes/hooks-install.d.ts +82 -0
- package/dist/lib/lanes/hooks-install.js +479 -0
- package/dist/lib/lanes/host-capacity.d.ts +69 -0
- package/dist/lib/lanes/host-capacity.js +254 -0
- package/dist/lib/lanes/hq-root.d.ts +19 -0
- package/dist/lib/lanes/hq-root.js +28 -0
- package/dist/lib/lanes/index.d.ts +76 -0
- package/dist/lib/lanes/index.js +42 -0
- package/dist/lib/lanes/keep-alive-audit.d.ts +46 -0
- package/dist/lib/lanes/keep-alive-audit.js +370 -0
- package/dist/lib/lanes/keep-alive.d.ts +68 -0
- package/dist/lib/lanes/keep-alive.js +343 -0
- package/dist/lib/lanes/kr-freshness.d.ts +76 -0
- package/dist/lib/lanes/kr-freshness.js +413 -0
- package/dist/lib/lanes/lane-company.d.ts +10 -0
- package/dist/lib/lanes/lane-company.js +41 -0
- package/dist/lib/lanes/liveness.d.ts +108 -0
- package/dist/lib/lanes/liveness.js +396 -0
- package/dist/lib/lanes/machine-identity.d.ts +34 -0
- package/dist/lib/lanes/machine-identity.js +92 -0
- package/dist/lib/lanes/manager-status-gate.d.ts +17 -0
- package/dist/lib/lanes/manager-status-gate.js +133 -0
- package/dist/lib/lanes/merge-command.d.ts +15 -0
- package/dist/lib/lanes/merge-command.js +629 -0
- package/dist/lib/lanes/mesh-events.d.ts +127 -0
- package/dist/lib/lanes/mesh-events.js +564 -0
- package/dist/lib/lanes/message-replay.d.ts +21 -0
- package/dist/lib/lanes/message-replay.js +122 -0
- package/dist/lib/lanes/models.d.ts +86 -0
- package/dist/lib/lanes/models.js +234 -0
- package/dist/lib/lanes/monitor.d.ts +48 -0
- package/dist/lib/lanes/monitor.js +428 -0
- package/dist/lib/lanes/move-account.d.ts +56 -0
- package/dist/lib/lanes/move-account.js +193 -0
- package/dist/lib/lanes/orphans.d.ts +25 -0
- package/dist/lib/lanes/orphans.js +102 -0
- package/dist/lib/lanes/outpost-dispatch.d.ts +147 -0
- package/dist/lib/lanes/outpost-dispatch.js +271 -0
- package/dist/lib/lanes/outpost-hire-cache.d.ts +22 -0
- package/dist/lib/lanes/outpost-hire-cache.js +153 -0
- package/dist/lib/lanes/outpost-identity.d.ts +33 -0
- package/dist/lib/lanes/outpost-identity.js +59 -0
- package/dist/lib/lanes/outpost-profile-repin.d.ts +17 -0
- package/dist/lib/lanes/outpost-profile-repin.js +84 -0
- package/dist/lib/lanes/outpost-pruner-install.d.ts +37 -0
- package/dist/lib/lanes/outpost-pruner-install.js +238 -0
- package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +18 -0
- package/dist/lib/lanes/outpost-registry-worker-approval.js +109 -0
- package/dist/lib/lanes/outpost-snapshot-memo.d.ts +6 -0
- package/dist/lib/lanes/outpost-snapshot-memo.js +14 -0
- package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +19 -0
- package/dist/lib/lanes/outpost-worktree-pruner-flag.js +86 -0
- package/dist/lib/lanes/outpost-worktree-pruner.d.ts +62 -0
- package/dist/lib/lanes/outpost-worktree-pruner.js +1201 -0
- package/dist/lib/lanes/profile.d.ts +69 -0
- package/dist/lib/lanes/profile.js +552 -0
- package/dist/lib/lanes/provider-rejection.d.ts +86 -0
- package/dist/lib/lanes/provider-rejection.js +286 -0
- package/dist/lib/lanes/questions.d.ts +90 -0
- package/dist/lib/lanes/questions.js +384 -0
- package/dist/lib/lanes/quota.d.ts +134 -0
- package/dist/lib/lanes/quota.js +471 -0
- package/dist/lib/lanes/reconcile-install.d.ts +90 -0
- package/dist/lib/lanes/reconcile-install.js +257 -0
- package/dist/lib/lanes/reconcile.d.ts +161 -0
- package/dist/lib/lanes/reconcile.js +3343 -0
- package/dist/lib/lanes/registry-flag.d.ts +35 -0
- package/dist/lib/lanes/registry-flag.js +164 -0
- package/dist/lib/lanes/registry-persona.d.ts +20 -0
- package/dist/lib/lanes/registry-persona.js +329 -0
- package/dist/lib/lanes/registry.d.ts +122 -0
- package/dist/lib/lanes/registry.js +570 -0
- package/dist/lib/lanes/reviews.d.ts +38 -0
- package/dist/lib/lanes/reviews.js +395 -0
- package/dist/lib/lanes/runaway-tool-guard.d.ts +38 -0
- package/dist/lib/lanes/runaway-tool-guard.js +284 -0
- package/dist/lib/lanes/session-relink.d.ts +25 -0
- package/dist/lib/lanes/session-relink.js +216 -0
- package/dist/lib/lanes/spawn.d.ts +355 -0
- package/dist/lib/lanes/spawn.js +2668 -0
- package/dist/lib/lanes/ssm-command-context.d.ts +12 -0
- package/dist/lib/lanes/ssm-command-context.js +52 -0
- package/dist/lib/lanes/store.d.ts +91 -0
- package/dist/lib/lanes/store.js +1822 -0
- package/dist/lib/lanes/stories.d.ts +23 -0
- package/dist/lib/lanes/stories.js +92 -0
- package/dist/lib/lanes/story-ledger.d.ts +80 -0
- package/dist/lib/lanes/story-ledger.js +815 -0
- package/dist/lib/lanes/story-switch.d.ts +21 -0
- package/dist/lib/lanes/story-switch.js +75 -0
- package/dist/lib/lanes/text-scan.d.ts +11 -0
- package/dist/lib/lanes/text-scan.js +103 -0
- package/dist/lib/lanes/throttle.d.ts +116 -0
- package/dist/lib/lanes/throttle.js +437 -0
- package/dist/lib/lanes/timestamp.d.ts +3 -0
- package/dist/lib/lanes/timestamp.js +26 -0
- package/dist/lib/lanes/tracker-checks.d.ts +77 -0
- package/dist/lib/lanes/tracker-checks.js +134 -0
- package/dist/lib/lanes/tracker-report-state.d.ts +10 -0
- package/dist/lib/lanes/tracker-report-state.js +124 -0
- package/dist/lib/lanes/tracker-report.d.ts +203 -0
- package/dist/lib/lanes/tracker-report.js +522 -0
- package/dist/lib/lanes/tracker-store.d.ts +18 -0
- package/dist/lib/lanes/tracker-store.js +106 -0
- package/dist/lib/lanes/types.d.ts +1030 -0
- package/dist/lib/lanes/types.js +418 -0
- package/dist/lib/lanes/wait.d.ts +39 -0
- package/dist/lib/lanes/wait.js +159 -0
- package/dist/lib/lanes/watch.d.ts +39 -0
- package/dist/lib/lanes/watch.js +249 -0
- package/dist/lib/lanes/watcher-main.d.ts +11 -0
- package/dist/lib/lanes/watcher-main.js +108 -0
- package/dist/lib/lanes/watcher.d.ts +287 -0
- package/dist/lib/lanes/watcher.js +1972 -0
- package/dist/lib/mesh/api.d.ts +103 -10
- package/dist/lib/mesh/api.js +334 -64
- package/dist/lib/mesh/client.d.ts +3 -2
- package/dist/lib/mesh/client.js +26 -7
- package/dist/lib/mesh/denial-codes.d.ts +5 -0
- package/dist/lib/mesh/denial-codes.js +14 -0
- package/dist/lib/mesh/live/backfill-held.d.ts +67 -16
- package/dist/lib/mesh/live/backfill-held.js +415 -61
- package/dist/lib/mesh/live/backoff.d.ts +2 -2
- package/dist/lib/mesh/live/backoff.js +16 -3
- package/dist/lib/mesh/live/daemon/board-refresh.d.ts +7 -1
- package/dist/lib/mesh/live/daemon/board-refresh.js +78 -30
- package/dist/lib/mesh/live/daemon/config.d.ts +36 -0
- package/dist/lib/mesh/live/daemon/config.js +120 -0
- package/dist/lib/mesh/live/daemon/credentials.d.ts +64 -10
- package/dist/lib/mesh/live/daemon/credentials.js +270 -20
- package/dist/lib/mesh/live/daemon/doctor.d.ts +53 -0
- package/dist/lib/mesh/live/daemon/doctor.js +190 -6
- package/dist/lib/mesh/live/daemon/index.d.ts +13 -10
- package/dist/lib/mesh/live/daemon/index.js +7 -6
- package/dist/lib/mesh/live/daemon/install.d.ts +255 -1
- package/dist/lib/mesh/live/daemon/install.js +811 -13
- package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +43 -0
- package/dist/lib/mesh/live/daemon/legacy-listen.js +89 -0
- package/dist/lib/mesh/live/daemon/live-cache.d.ts +26 -0
- package/dist/lib/mesh/live/daemon/live-cache.js +116 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +7 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.js +2 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +2 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +10 -0
- package/dist/lib/mesh/live/daemon/paths.d.ts +2 -0
- package/dist/lib/mesh/live/daemon/paths.js +2 -0
- package/dist/lib/mesh/live/daemon/presence.d.ts +24 -5
- package/dist/lib/mesh/live/daemon/presence.js +79 -10
- package/dist/lib/mesh/live/daemon/run.d.ts +48 -2
- package/dist/lib/mesh/live/daemon/run.js +485 -33
- package/dist/lib/mesh/live/daemon/state.d.ts +19 -2
- package/dist/lib/mesh/live/daemon/state.js +34 -2
- package/dist/lib/mesh/live/daemon/transcript-watch.d.ts +45 -9
- package/dist/lib/mesh/live/daemon/transcript-watch.js +227 -31
- package/dist/lib/mesh/live/daemon/version-drift.d.ts +5 -0
- package/dist/lib/mesh/live/daemon/version-drift.js +47 -0
- package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +32 -0
- package/dist/lib/mesh/live/daemon/work-subscribe.js +262 -0
- package/dist/lib/mesh/live/emit-client.d.ts +8 -0
- package/dist/lib/mesh/live/emit-client.js +23 -8
- package/dist/lib/mesh/live/emit-evidence.d.ts +19 -0
- package/dist/lib/mesh/live/emit-evidence.js +20 -2
- package/dist/lib/mesh/live/emit.d.ts +9 -0
- package/dist/lib/mesh/live/emit.js +28 -2
- package/dist/lib/mesh/live/enqueue.d.ts +5 -0
- package/dist/lib/mesh/live/enqueue.js +19 -0
- package/dist/lib/mesh/live/flush.d.ts +17 -5
- package/dist/lib/mesh/live/flush.js +391 -38
- package/dist/lib/mesh/live/format-spool-line.d.ts +5 -2
- package/dist/lib/mesh/live/format-spool-line.js +10 -0
- package/dist/lib/mesh/live/paths.d.ts +2 -0
- package/dist/lib/mesh/live/paths.js +4 -0
- package/dist/lib/mesh/live/report-summary.d.ts +45 -0
- package/dist/lib/mesh/live/report-summary.js +234 -0
- package/dist/lib/mesh/live/session-event.schema.json +24 -1
- package/dist/lib/mesh/live/session-events-client.d.ts +2 -0
- package/dist/lib/mesh/live/session-events-client.js +26 -0
- package/dist/lib/mesh/live/session-seq.d.ts +4 -0
- package/dist/lib/mesh/live/session-seq.js +33 -0
- package/dist/lib/mesh/live/spool.d.ts +19 -0
- package/dist/lib/mesh/live/spool.js +269 -3
- package/dist/lib/mesh/live/validate-session-event.d.ts +1 -1
- package/dist/lib/mesh/live/validate-session-event.js +1 -1
- package/dist/lib/mesh/project-board.d.ts +65 -0
- package/dist/lib/mesh/project-board.js +181 -0
- package/dist/lib/mesh/story-status.d.ts +22 -0
- package/dist/lib/mesh/story-status.js +49 -0
- package/dist/lib/monitor.d.ts +149 -0
- package/dist/lib/monitor.js +519 -0
- package/dist/lib/node-binary.d.ts +50 -0
- package/dist/lib/node-binary.js +133 -0
- package/dist/lib/notify-recipient.d.ts +7 -0
- package/dist/lib/notify-recipient.js +11 -0
- package/dist/lib/onboarding/checkpoint.d.ts +13 -0
- package/dist/lib/onboarding/checkpoint.js +44 -0
- package/dist/lib/onboarding/cli/onboard.d.ts +53 -0
- package/dist/lib/onboarding/cli/onboard.js +135 -0
- package/dist/lib/onboarding/cli/prompts.d.ts +28 -0
- package/dist/lib/onboarding/cli/prompts.js +83 -0
- package/dist/lib/onboarding/errors.d.ts +34 -0
- package/dist/lib/onboarding/errors.js +59 -0
- package/dist/lib/onboarding/index.d.ts +13 -0
- package/dist/lib/onboarding/index.js +13 -0
- package/dist/lib/onboarding/orchestrator.d.ts +47 -0
- package/dist/lib/onboarding/orchestrator.js +569 -0
- package/dist/lib/onboarding/types.d.ts +79 -0
- package/dist/lib/onboarding/types.js +8 -0
- package/dist/lib/plan-limit-nag.d.ts +102 -6
- package/dist/lib/plan-limit-nag.js +348 -43
- package/dist/lib/policy-validator.d.ts +7 -0
- package/dist/lib/policy-validator.js +187 -0
- package/dist/lib/process-flag-company-context.d.ts +8 -0
- package/dist/lib/process-flag-company-context.js +67 -0
- package/dist/lib/report-publish.d.ts +175 -0
- package/dist/lib/report-publish.js +421 -0
- package/dist/lib/report-run.d.ts +62 -0
- package/dist/lib/report-run.js +123 -0
- package/dist/lib/report-snapshot.d.ts +12 -0
- package/dist/lib/report-snapshot.js +135 -0
- package/dist/lib/report-templates.d.ts +9 -0
- package/dist/lib/report-templates.js +21 -0
- package/dist/lib/scaffold-cli-floor.d.ts +8 -0
- package/dist/lib/scaffold-cli-floor.js +50 -0
- package/dist/lib/scan-packages/index.d.ts +2 -0
- package/dist/lib/scan-packages/index.js +168 -6
- package/dist/lib/search-index/background.d.ts +8 -1
- package/dist/lib/search-index/background.js +55 -200
- package/dist/lib/search-index/collection-path-repair-flag.d.ts +4 -0
- package/dist/lib/search-index/collection-path-repair-flag.js +7 -0
- package/dist/lib/search-index/embed-lock.d.ts +34 -0
- package/dist/lib/search-index/embed-lock.js +295 -0
- package/dist/lib/search-index/index.d.ts +12 -0
- package/dist/lib/search-index/index.js +153 -7
- package/dist/lib/search-index/load-gate.d.ts +57 -0
- package/dist/lib/search-index/load-gate.js +270 -0
- package/dist/lib/search-index/max-doc-bytes.d.ts +219 -0
- package/dist/lib/search-index/max-doc-bytes.js +463 -0
- package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +5 -0
- package/dist/lib/search-index/qmd-exit-diagnostics.js +40 -0
- package/dist/lib/search-index/reindex-single-flight-flag.d.ts +5 -0
- package/dist/lib/search-index/reindex-single-flight-flag.js +8 -0
- package/dist/lib/service-manager/index.d.ts +42 -0
- package/dist/lib/service-manager/index.js +105 -0
- package/dist/lib/service-manager/launchd.d.ts +81 -0
- package/dist/lib/service-manager/launchd.js +212 -0
- package/dist/lib/service-manager/systemd.d.ts +19 -0
- package/dist/lib/service-manager/systemd.js +72 -0
- package/dist/lib/service-manager/types.d.ts +34 -0
- package/dist/lib/service-manager/types.js +26 -0
- package/dist/lib/test-utils/isolated-flag-company-context.d.ts +3 -0
- package/dist/lib/test-utils/isolated-flag-company-context.js +18 -0
- package/dist/lib/work-context/bind-best.d.ts +66 -0
- package/dist/lib/work-context/bind-best.js +344 -0
- package/dist/lib/work-context/bind-calling-session.d.ts +26 -0
- package/dist/lib/work-context/bind-calling-session.js +63 -0
- package/dist/lib/work-context/company-rebind.d.ts +23 -0
- package/dist/lib/work-context/company-rebind.js +59 -0
- package/dist/lib/work-context/company.d.ts +22 -20
- package/dist/lib/work-context/company.js +124 -40
- package/dist/lib/work-context/config.d.ts +58 -11
- package/dist/lib/work-context/config.js +334 -83
- package/dist/lib/work-context/contract.d.ts +13 -0
- package/dist/lib/work-context/contract.schema.json +3 -1
- package/dist/lib/work-context/default-company.d.ts +43 -0
- package/dist/lib/work-context/default-company.js +83 -0
- package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +4 -0
- package/dist/lib/work-context/outbox-quarantine-status-flag.js +7 -0
- package/dist/lib/work-context/outbox.d.ts +27 -5
- package/dist/lib/work-context/outbox.js +135 -6
- package/dist/lib/work-context/prd-sync.d.ts +56 -0
- package/dist/lib/work-context/prd-sync.js +197 -0
- package/dist/lib/work-context/preflight-contract.d.ts +28 -0
- package/dist/lib/work-context/preflight-contract.js +85 -0
- package/dist/lib/work-context/prompt-rebind.d.ts +25 -0
- package/dist/lib/work-context/prompt-rebind.js +85 -0
- package/dist/lib/work-context/reconcile.d.ts +15 -0
- package/dist/lib/work-context/reconcile.js +405 -29
- package/dist/lib/work-context/state.d.ts +93 -10
- package/dist/lib/work-context/state.js +342 -29
- package/dist/lib/work-context/windows-acl.d.ts +123 -0
- package/dist/lib/work-context/windows-acl.js +425 -0
- package/dist/lib/workers-registry/index.js +62 -8
- package/dist/lib/workers-registry/read.d.ts +15 -0
- package/dist/lib/workers-registry/read.js +17 -0
- package/dist/main.d.ts +32 -0
- package/dist/main.js +273 -73
- package/dist/native-fast-route.d.ts +7 -0
- package/dist/native-fast-route.js +45 -0
- package/dist/node-network-compat-core.d.ts +12 -0
- package/dist/node-network-compat-core.js +41 -0
- package/dist/node-network-compat-fast.d.ts +7 -0
- package/dist/node-network-compat-fast.js +23 -0
- package/dist/node-network-compat.d.ts +2 -30
- package/dist/node-network-compat.js +4 -51
- package/dist/node-preflight.d.ts +7 -1
- package/dist/node-preflight.js +5 -5
- package/dist/register-all.d.ts +4 -29
- package/dist/register-all.js +4 -233
- package/dist/run/discover-schemas.d.ts +2 -1
- package/dist/run/env-graph-guard.d.ts +2 -2
- package/dist/run/env-graph-guard.js +5 -2
- package/dist/run/hq-plugin.d.ts +4 -0
- package/dist/run/hq-plugin.js +36 -8
- package/dist/secrets-env-fast-path.d.ts +5 -0
- package/dist/secrets-env-fast-path.js +16 -0
- package/dist/secrets-env-fast-route.d.ts +18 -0
- package/dist/secrets-env-fast-route.js +54 -0
- package/dist/sentry-before-send.js +80 -0
- package/dist/sentry.d.ts +16 -4
- package/dist/sentry.js +179 -18
- package/dist/startup-registration.d.ts +26 -2
- package/dist/startup-registration.js +116 -15
- package/dist/utils/checkpoint-stamp-write-error.d.ts +28 -0
- package/dist/utils/checkpoint-stamp-write-error.js +99 -0
- package/dist/utils/cli-network-lifecycle.d.ts +4 -0
- package/dist/utils/cli-network-lifecycle.js +11 -0
- package/dist/utils/cli-telemetry.d.ts +75 -1
- package/dist/utils/cli-telemetry.js +433 -7
- package/dist/utils/client-health.d.ts +0 -4
- package/dist/utils/client-health.js +2 -2
- package/dist/utils/cognito-refresh-sentry.d.ts +3 -0
- package/dist/utils/cognito-refresh-sentry.js +49 -0
- package/dist/utils/cognito-session.d.ts +71 -0
- package/dist/utils/cognito-session.js +481 -27
- package/dist/utils/console-origin.d.ts +9 -0
- package/dist/utils/console-origin.js +28 -0
- package/dist/utils/contribution-table.d.ts +1 -1
- package/dist/utils/core-eval-trigger.d.ts +4 -0
- package/dist/utils/core-eval-trigger.js +88 -0
- package/dist/utils/environmental-error.d.ts +18 -0
- package/dist/utils/environmental-error.js +240 -7
- package/dist/utils/exclusive-lock.d.ts +32 -0
- package/dist/utils/exclusive-lock.js +75 -0
- package/dist/utils/expected-cli-error.d.ts +2 -0
- package/dist/utils/expected-cli-error.js +4 -0
- package/dist/utils/fast-stream-errors.d.ts +12 -0
- package/dist/utils/fast-stream-errors.js +18 -0
- package/dist/utils/feedback-diagnostics.d.ts +2 -1
- package/dist/utils/feedback-log-bundle.d.ts +51 -26
- package/dist/utils/feedback-log-bundle.js +211 -31
- package/dist/utils/feedback-logs.d.ts +18 -47
- package/dist/utils/feedback-logs.js +50 -21
- package/dist/utils/feedback-screenshots.d.ts +0 -1
- package/dist/utils/feedback-screenshots.js +1 -1
- package/dist/utils/files-browse-acl.d.ts +5 -0
- package/dist/utils/files-browse-acl.js +11 -0
- package/dist/utils/hq-core-yaml.d.ts +10 -0
- package/dist/utils/hq-core-yaml.js +40 -0
- package/dist/utils/hq-root-resolver.d.ts +13 -0
- package/dist/utils/hq-root-resolver.js +103 -0
- package/dist/utils/hq-roots.d.ts +25 -2
- package/dist/utils/hq-roots.js +67 -7
- package/dist/utils/incomplete-install-error.d.ts +87 -19
- package/dist/utils/incomplete-install-error.js +319 -68
- package/dist/utils/install-tree-torn.d.ts +260 -24
- package/dist/utils/install-tree-torn.js +998 -51
- package/dist/utils/large-file-guard.d.ts +0 -10
- package/dist/utils/large-file-guard.js +1 -1
- package/dist/utils/local-files-overview.d.ts +4 -8
- package/dist/utils/local-files-overview.js +48 -7
- package/dist/utils/login-provider.d.ts +7 -0
- package/dist/utils/login-provider.js +34 -0
- package/dist/utils/pack-contributions.d.ts +2 -14
- package/dist/utils/pack-contributions.js +7 -44
- package/dist/utils/package-root-diagnostics.d.ts +1 -1
- package/dist/utils/people.d.ts +7 -11
- package/dist/utils/people.js +5 -20
- package/dist/utils/plan-gate-error.d.ts +52 -10
- package/dist/utils/plan-gate-error.js +364 -41
- package/dist/utils/qmd-model-download-error.d.ts +0 -8
- package/dist/utils/qmd-model-download-error.js +1 -1
- package/dist/utils/qmd-query-document-error.d.ts +0 -6
- package/dist/utils/qmd-query-document-error.js +1 -1
- package/dist/utils/redact-error-text.d.ts +0 -2
- package/dist/utils/redact-error-text.js +3 -2
- package/dist/utils/redact-url.d.ts +14 -0
- package/dist/utils/redact-url.js +218 -0
- package/dist/utils/run-bundled-script.d.ts +6 -0
- package/dist/utils/run-bundled-script.js +117 -4
- package/dist/utils/sandbox-runner-client.d.ts +2 -1
- package/dist/utils/scaffold-fast-import-guard.d.ts +2 -0
- package/dist/utils/scaffold-fast-import-guard.js +40 -0
- package/dist/utils/scaffold-packlist-guard.d.ts +7 -0
- package/dist/utils/scaffold-packlist-guard.js +23 -0
- package/dist/utils/scaffold-sibling-references.d.ts +22 -0
- package/dist/utils/scaffold-sibling-references.js +156 -0
- package/dist/utils/secret-load-availability.d.ts +8 -0
- package/dist/utils/secret-load-availability.js +54 -0
- package/dist/utils/secrets-cache.d.ts +7 -3
- package/dist/utils/secrets-cache.js +162 -14
- package/dist/utils/self-update.d.ts +34 -1
- package/dist/utils/self-update.js +660 -42
- package/dist/utils/sentry-fingerprint.d.ts +23 -1
- package/dist/utils/sentry-fingerprint.js +223 -31
- package/dist/utils/staged-install.d.ts +34 -0
- package/dist/utils/staged-install.js +346 -0
- package/dist/utils/staged-npm-install.d.ts +16 -0
- package/dist/utils/staged-npm-install.js +264 -0
- package/dist/utils/sync-log-sources.d.ts +15 -0
- package/dist/utils/sync-log-sources.js +36 -0
- package/dist/utils/table-width.d.ts +7 -0
- package/dist/utils/table-width.js +15 -0
- package/dist/utils/team-upgrade.d.ts +1 -1
- package/dist/utils/team-upgrade.js +4 -3
- package/dist/utils/update-command-supervisor.cjs +247 -0
- package/dist/utils/upload-author.d.ts +15 -0
- package/dist/utils/upload-author.js +39 -0
- package/dist/utils/vault-api.d.ts +21 -1
- package/dist/utils/vault-api.js +251 -84
- package/dist/utils/version-check.d.ts +11 -1
- package/dist/utils/version-check.js +32 -3
- package/dist/utils/version-gate.d.ts +101 -17
- package/dist/utils/version-gate.js +645 -70
- package/dist/utils/version-report.d.ts +27 -0
- package/dist/utils/version-report.js +105 -0
- package/dist/utils/windows-spawn.d.ts +6 -0
- package/dist/utils/windows-spawn.js +37 -0
- package/dist/version-request.d.ts +14 -0
- package/dist/version-request.js +36 -0
- package/package.json +20 -8
- package/scripts/mesh-daemon-if-stale.mjs +20 -0
- package/templates/reports/blank.md +3 -0
- package/templates/reports/daily-digest.md +11 -0
- package/templates/runbooks/update-report.md +21 -0
- package/dist/commands/scaffold-fast.d.ts +0 -41
- package/dist/commands/scaffold-fast.js +0 -57
- package/dist/lib/work-context/index.d.ts +0 -25
- package/dist/lib/work-context/index.js +0 -21
package/dist/commands/run.js
CHANGED
|
@@ -2,14 +2,16 @@ import { spawn } from 'node:child_process';
|
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as fs from 'node:fs';
|
|
4
4
|
import { internal } from 'varlock';
|
|
5
|
-
import { ensureCognitoToken } from '../utils/cognito-session.js';
|
|
5
|
+
import { cognitoCachePrincipalUid, ensureCognitoToken } from '../utils/cognito-session.js';
|
|
6
6
|
import { apiKeyCapabilityGateMessage, peekHqApiKey, } from '../utils/resolve-vault-credential.js';
|
|
7
7
|
import { computeSha256 } from '../utils/integrity.js';
|
|
8
|
+
import { isUnavailableSecretLoadHttpStatus, SecretLoadUnavailableError, } from '../utils/secret-load-availability.js';
|
|
8
9
|
import { vaultApiFetch, getCompanyUid } from '../utils/vault-api.js';
|
|
9
10
|
import { discoverSchemas } from '../run/discover-schemas.js';
|
|
10
11
|
import { installHqPlugin, prewarmHqSecrets } from '../run/hq-plugin.js';
|
|
11
12
|
import { assertEnvGraphLoaded, resolveEnvValuesOrThrow, EnvGraphLoadError, EnvResolutionError, } from '../run/env-graph-guard.js';
|
|
12
13
|
import { hadFatalRejection } from '../unhandled-rejection-boundary.js';
|
|
14
|
+
import { withRunSecretReadTelemetry } from './run-feature-telemetry.js';
|
|
13
15
|
const SECRET_LOAD_TIMEOUT_MS = 30_000;
|
|
14
16
|
export async function buildRunUsage(scriptPath, scriptId) {
|
|
15
17
|
if (scriptId && !scriptPath) {
|
|
@@ -82,9 +84,11 @@ export function registerRunCommand(program) {
|
|
|
82
84
|
throw new Error('company slug not set. Add # @hqCompany("slug") to your .env.schema or pass --company <slug>.');
|
|
83
85
|
}
|
|
84
86
|
const token = await ensureCognitoToken();
|
|
85
|
-
const uid = await getCompanyUid(token, slug
|
|
87
|
+
const uid = await getCompanyUid(token, slug, undefined, {
|
|
88
|
+
allowOfflineScopeFallback: true,
|
|
89
|
+
});
|
|
86
90
|
const usage = await buildRunUsage(opts.script, opts.scriptId);
|
|
87
|
-
const fetchBatch = async (companyUid, names, requestUsage) => {
|
|
91
|
+
const fetchBatch = async (companyUid, names, requestUsage) => withRunSecretReadTelemetry(companyUid, async () => {
|
|
88
92
|
const res = await vaultApiFetch({
|
|
89
93
|
token,
|
|
90
94
|
path: `/secrets/${encodeURIComponent(companyUid)}/load`,
|
|
@@ -99,6 +103,9 @@ export function registerRunCommand(program) {
|
|
|
99
103
|
: typeof body.error === 'string'
|
|
100
104
|
? body.error
|
|
101
105
|
: res.statusText;
|
|
106
|
+
if (isUnavailableSecretLoadHttpStatus(res.status)) {
|
|
107
|
+
throw new SecretLoadUnavailableError(`Failed to batch-load secrets: ${message}`);
|
|
108
|
+
}
|
|
102
109
|
if (res.status >= 400 &&
|
|
103
110
|
res.status < 500 &&
|
|
104
111
|
typeof body.code === 'string') {
|
|
@@ -107,9 +114,11 @@ export function registerRunCommand(program) {
|
|
|
107
114
|
throw new Error(`Failed to batch-load secrets: ${message}`);
|
|
108
115
|
}
|
|
109
116
|
return res.json();
|
|
110
|
-
};
|
|
117
|
+
});
|
|
111
118
|
const pluginOpts = {
|
|
112
119
|
companyOverride: opts.company,
|
|
120
|
+
principalUid: cognitoCachePrincipalUid(token) ?? undefined,
|
|
121
|
+
allowOfflineFallback: true,
|
|
113
122
|
resolveCompanyUid: async () => uid,
|
|
114
123
|
usage,
|
|
115
124
|
fetchBatch,
|
|
@@ -119,6 +128,11 @@ export function registerRunCommand(program) {
|
|
|
119
128
|
let state;
|
|
120
129
|
const graph = await internal.loadEnvGraph({
|
|
121
130
|
entryFilePaths: paths,
|
|
131
|
+
// hq run owns its short-lived in-memory resolution. Varlock's default
|
|
132
|
+
// cache auto-detection can write ~/.config/varlock and initialize
|
|
133
|
+
// the native local-encryption helper, neither of which belongs on
|
|
134
|
+
// this command path.
|
|
135
|
+
skipCache: true,
|
|
122
136
|
afterInit: async (g) => { state = installHqPlugin(g, pluginOpts); },
|
|
123
137
|
});
|
|
124
138
|
// Refuse to resolve a graph varlock never finished loading (a malformed
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
* actually written (we do NOT rely solely on the pre-flight scan or on the
|
|
33
33
|
* tar binary's own protections).
|
|
34
34
|
*/
|
|
35
|
+
import { execFileSync } from 'child_process';
|
|
35
36
|
export interface ExtractCaps {
|
|
36
37
|
/** Max total uncompressed bytes across all entries. Default 256 MiB. */
|
|
37
38
|
maxUncompressedBytes: number;
|
|
@@ -109,9 +110,13 @@ export declare function resolveContainedPath(targetDir: string, entryName: strin
|
|
|
109
110
|
export declare function assertLinkTargetContained(packDir: string, entryAbs: string, linkTarget: string): void;
|
|
110
111
|
/**
|
|
111
112
|
* List a gzip-compressed tarball's entries via `tar -tvf` (no extraction).
|
|
112
|
-
* argv form
|
|
113
|
+
* argv form, never a shell string, keeps hostile filenames out of shell syntax.
|
|
114
|
+
* Windows drive paths use a basename relative to the archive directory by
|
|
115
|
+
* default. GNU tar cannot parse `C:\\...` as remote `host:path`, and Windows'
|
|
116
|
+
* bundled bsdtar accepts the same relative argv without GNU-only `--force-local`.
|
|
117
|
+
* Callers can still explicitly opt out with `useRelativeWindowsDrivePath: false`.
|
|
113
118
|
*/
|
|
114
|
-
export declare function listTarball(tarballPath: string): TarEntry[];
|
|
119
|
+
export declare function listTarball(tarballPath: string, opts?: Pick<SafeExtractOptions, 'platform' | 'useRelativeWindowsDrivePath' | 'execFileSync'>): TarEntry[];
|
|
115
120
|
/**
|
|
116
121
|
* Pre-flight validation against the entry headers. Enforces (a) containment of
|
|
117
122
|
* every entry name under `targetDir`, (b) containment of every link target
|
|
@@ -129,6 +134,10 @@ export declare function validateEntries(entries: TarEntry[], targetDir: string,
|
|
|
129
134
|
export declare function assertExtractContained(stagingDir: string): void;
|
|
130
135
|
export interface SafeExtractOptions {
|
|
131
136
|
caps?: ExtractCaps;
|
|
137
|
+
/** Test seams for platform-specific argv construction; runtime gating uses hq-flags. */
|
|
138
|
+
platform?: NodeJS.Platform;
|
|
139
|
+
useRelativeWindowsDrivePath?: boolean;
|
|
140
|
+
execFileSync?: typeof execFileSync;
|
|
132
141
|
/**
|
|
133
142
|
* Test seam: invoked AFTER `tar` extracts into the staging dir but BEFORE
|
|
134
143
|
* the post-extract sweep / atomic rename. Throwing here simulates a failure
|
|
@@ -203,18 +203,34 @@ export function assertLinkTargetContained(packDir, entryAbs, linkTarget) {
|
|
|
203
203
|
`"${linkTarget}" -> "${resolvedTarget}", outside pack dir "${path.resolve(packDir)}".`);
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
206
|
+
function tarballArgvLocation(tarballPath, platform, useRelativeWindowsDrivePath) {
|
|
207
|
+
if (platform === 'win32' &&
|
|
208
|
+
useRelativeWindowsDrivePath &&
|
|
209
|
+
/^[A-Za-z]:[\\/]/.test(tarballPath)) {
|
|
210
|
+
return {
|
|
211
|
+
archiveArg: path.win32.basename(tarballPath),
|
|
212
|
+
cwd: path.win32.dirname(tarballPath),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
return { archiveArg: tarballPath };
|
|
216
|
+
}
|
|
209
217
|
/**
|
|
210
218
|
* List a gzip-compressed tarball's entries via `tar -tvf` (no extraction).
|
|
211
|
-
* argv form
|
|
219
|
+
* argv form, never a shell string, keeps hostile filenames out of shell syntax.
|
|
220
|
+
* Windows drive paths use a basename relative to the archive directory by
|
|
221
|
+
* default. GNU tar cannot parse `C:\\...` as remote `host:path`, and Windows'
|
|
222
|
+
* bundled bsdtar accepts the same relative argv without GNU-only `--force-local`.
|
|
223
|
+
* Callers can still explicitly opt out with `useRelativeWindowsDrivePath: false`.
|
|
212
224
|
*/
|
|
213
|
-
export function listTarball(tarballPath) {
|
|
214
|
-
const
|
|
225
|
+
export function listTarball(tarballPath, opts = {}) {
|
|
226
|
+
const platform = opts.platform ?? process.platform;
|
|
227
|
+
const useRelativeWindowsDrivePath = opts.useRelativeWindowsDrivePath ?? true;
|
|
228
|
+
const location = tarballArgvLocation(tarballPath, platform, useRelativeWindowsDrivePath);
|
|
229
|
+
const out = (opts.execFileSync ?? execFileSync)('tar', ['-tvf', location.archiveArg], {
|
|
215
230
|
encoding: 'utf-8',
|
|
216
231
|
maxBuffer: 64 * 1024 * 1024,
|
|
217
232
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
233
|
+
...(location.cwd ? { cwd: location.cwd } : {}),
|
|
218
234
|
});
|
|
219
235
|
return parseTarListing(out);
|
|
220
236
|
}
|
|
@@ -311,8 +327,17 @@ export function safeExtractTarball(tarballPath, finalDir, opts = {}) {
|
|
|
311
327
|
if (fs.existsSync(finalDir)) {
|
|
312
328
|
throw new Error(`safeExtractTarball: refusing to extract over existing dir "${finalDir}".`);
|
|
313
329
|
}
|
|
330
|
+
// Resolve once so listing and extraction use the same archive location.
|
|
331
|
+
const platform = opts.platform ?? process.platform;
|
|
332
|
+
const useRelativeWindowsDrivePath = opts.useRelativeWindowsDrivePath ?? true;
|
|
333
|
+
const exec = opts.execFileSync ?? execFileSync;
|
|
334
|
+
const location = tarballArgvLocation(tarballPath, platform, useRelativeWindowsDrivePath);
|
|
314
335
|
// 1. Pre-flight against headers (no bytes written yet).
|
|
315
|
-
const entries = listTarball(tarballPath
|
|
336
|
+
const entries = listTarball(tarballPath, {
|
|
337
|
+
platform,
|
|
338
|
+
useRelativeWindowsDrivePath,
|
|
339
|
+
execFileSync: exec,
|
|
340
|
+
});
|
|
316
341
|
validateEntries(entries, finalDir, caps);
|
|
317
342
|
// 2. Sibling staging dir on the same filesystem so the rename is atomic.
|
|
318
343
|
const parent = path.dirname(path.resolve(finalDir));
|
|
@@ -322,7 +347,10 @@ export function safeExtractTarball(tarballPath, finalDir, opts = {}) {
|
|
|
322
347
|
// `--no-same-owner` avoids chown surprises when run as root; argv form, no
|
|
323
348
|
// shell. We deliberately re-extract here (not the pre-flight listing) and
|
|
324
349
|
// re-validate after, rather than trusting tar to honor any single flag.
|
|
325
|
-
|
|
350
|
+
exec('tar', ['-xzf', location.archiveArg, '-C', stagingDir, '--no-same-owner'], {
|
|
351
|
+
stdio: 'inherit',
|
|
352
|
+
...(location.cwd ? { cwd: location.cwd } : {}),
|
|
353
|
+
});
|
|
326
354
|
// 3. Independent backstop sweep over what actually landed.
|
|
327
355
|
assertExtractContained(stagingDir);
|
|
328
356
|
// 4. Failure-injection seam (tests).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
1
|
+
import type { Command } from "commander";
|
|
2
2
|
import { writeSync } from "node:fs";
|
|
3
3
|
import { vaultApiFetch, getCompanyUid, getEntityUid } from "../utils/vault-api.js";
|
|
4
4
|
export type { VaultApiOptions } from "../utils/vault-api.js";
|
|
@@ -31,6 +31,7 @@ export interface SecretMetadata {
|
|
|
31
31
|
requiredAttestation?: string;
|
|
32
32
|
};
|
|
33
33
|
cacheTtlMs?: number;
|
|
34
|
+
revokedAt?: string | null;
|
|
34
35
|
}
|
|
35
36
|
export interface SecretLoadSuccessRow extends SecretMetadata {
|
|
36
37
|
name: string;
|
|
@@ -59,7 +60,9 @@ export declare function parseDestinationUrl(raw: string): {
|
|
|
59
60
|
};
|
|
60
61
|
export declare function collectSecretNames(value: string, previous?: string[]): string[];
|
|
61
62
|
export declare function scrubSandboxOutput(text: string, secretNames?: string[]): string;
|
|
62
|
-
export declare function loadRevealedSecrets(token: string, companyUid: string, keys: string[], usage?: SecretUsage
|
|
63
|
+
export declare function loadRevealedSecrets(token: string, companyUid: string, keys: string[], usage?: SecretUsage, options?: {
|
|
64
|
+
allowOfflineFallback?: boolean;
|
|
65
|
+
}): Promise<Map<string, string>>;
|
|
63
66
|
/**
|
|
64
67
|
* Emit `hq secrets env` output and terminate deterministically.
|
|
65
68
|
*
|
|
@@ -85,5 +88,20 @@ export declare function loadRevealedSecrets(token: string, companyUid: string, k
|
|
|
85
88
|
* `exit` and `write` are injectable for tests; production uses the real ones.
|
|
86
89
|
*/
|
|
87
90
|
export declare function emitEnvExportsAndExit(payload: string, exit?: (code: number) => never, write?: typeof writeSync): never;
|
|
91
|
+
/**
|
|
92
|
+
* Shared `secrets env` action for Commander and the default-off lightweight
|
|
93
|
+
* entrypoint. The fast entrypoint still runs the same credential, usage-audit,
|
|
94
|
+
* server authorization, cache-fallback, redaction, and output code.
|
|
95
|
+
*/
|
|
96
|
+
export declare function runSecretsEnvCommand(opts: {
|
|
97
|
+
only: string[];
|
|
98
|
+
script?: string;
|
|
99
|
+
scriptId?: string;
|
|
100
|
+
}, parentScope: {
|
|
101
|
+
company?: string;
|
|
102
|
+
personal?: boolean;
|
|
103
|
+
}, options?: {
|
|
104
|
+
fallbackOnAuthFailure?: boolean;
|
|
105
|
+
}): Promise<"handled" | "fallback">;
|
|
88
106
|
export declare function registerSecretsCommand(program: Command): void;
|
|
89
107
|
//# sourceMappingURL=secrets.d.ts.map
|
package/dist/commands/secrets.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import * as readline from "node:readline";
|
|
3
|
-
import { spawn } from "node:child_process";
|
|
4
2
|
import { writeSync } from "node:fs";
|
|
5
3
|
import * as nodePath from "node:path";
|
|
6
|
-
import { ensureCognitoToken } from "../utils/cognito-session.js";
|
|
4
|
+
import { cognitoCachePrincipalUid, ensureCognitoToken } from "../utils/cognito-session.js";
|
|
5
|
+
import { isAuthError } from "../utils/auth-error.js";
|
|
7
6
|
import { DEFAULT_SECRETS_CACHE_TTL_MS, hasCacheEntry, readCache, writeCache, removeCacheEntry, clearAllCache, } from "../utils/secrets-cache.js";
|
|
8
7
|
import { computeSha256 } from "../utils/integrity.js";
|
|
8
|
+
import { isPlanGateError } from "../utils/plan-gate-error.js";
|
|
9
9
|
import { SECRET_NAME_PATTERN, GROUP_ID_PATTERN, EMAIL_PATTERN } from "./_patterns.js";
|
|
10
10
|
import { describeSecretsScope, formatSecretSaved, formatSecretsListEmpty, formatSecretsListHeader, } from "./secrets-scope.js";
|
|
11
11
|
import { vaultApiFetch, getCompanyUid, getEntityUid, looksLikeCompanyUid, } from "../utils/vault-api.js";
|
|
12
12
|
import { HQ_API_KEY_PREFIX, formatApiKeyCapabilityDenial, requireApiKeyCapability, resolveVaultCredentialForCapability, } from "../utils/resolve-vault-credential.js";
|
|
13
|
-
import {
|
|
13
|
+
import { CACHED_SECRETS_SERVER_UNAVAILABLE_MESSAGE, isSecretLoadUnavailable, isUnavailableSecretLoadHttpStatus, SecretLoadUnavailableError, } from "../utils/secret-load-availability.js";
|
|
14
14
|
export { vaultApiFetch, getCompanyUid, getEntityUid };
|
|
15
15
|
/**
|
|
16
16
|
* Mirrors `RESOURCE_SURFACES` in hq-pro
|
|
@@ -43,7 +43,19 @@ export const CLI_SECRETS_SET_SURFACE = "cli_secrets_set";
|
|
|
43
43
|
*/
|
|
44
44
|
async function requireCognitoTokenForSecrets(commandLabel, capability = null) {
|
|
45
45
|
requireApiKeyCapability(capability, commandLabel, { routeAvailable: false });
|
|
46
|
-
return ensureCognitoToken();
|
|
46
|
+
return ensureCognitoToken(secretsCredentialOptions());
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A browser login is safe only when a person can answer it. This mirrors the
|
|
50
|
+
* repository's existing terminal convention in `canOfferTeamUpgrade`: both
|
|
51
|
+
* stdin and stderr must be TTYs, and CI is always non-interactive.
|
|
52
|
+
*/
|
|
53
|
+
function secretsCredentialOptions() {
|
|
54
|
+
return {
|
|
55
|
+
interactive: process.stdin.isTTY === true &&
|
|
56
|
+
process.stderr.isTTY === true &&
|
|
57
|
+
!process.env.CI,
|
|
58
|
+
};
|
|
47
59
|
}
|
|
48
60
|
function scopeOpts(opts) {
|
|
49
61
|
if (opts.personal && opts.company) {
|
|
@@ -96,7 +108,7 @@ function resolveApiKeyCompanyUid(scope, commandLabel) {
|
|
|
96
108
|
return ref;
|
|
97
109
|
}
|
|
98
110
|
async function resolveSecretsTarget(capability, commandLabel, scopeOptions) {
|
|
99
|
-
const cred = await resolveVaultCredentialForCapability(capability, commandLabel);
|
|
111
|
+
const cred = await resolveVaultCredentialForCapability(capability, commandLabel, secretsCredentialOptions());
|
|
100
112
|
const scope = scopeOpts(scopeOptions);
|
|
101
113
|
const isApiKey = cred.kind === "api-key";
|
|
102
114
|
const companyUid = isApiKey
|
|
@@ -145,14 +157,16 @@ function parseDuration(input) {
|
|
|
145
157
|
return null;
|
|
146
158
|
}
|
|
147
159
|
function confirmPrompt(message) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
rl.
|
|
155
|
-
|
|
160
|
+
return import("node:readline").then(({ createInterface }) => {
|
|
161
|
+
const rl = createInterface({
|
|
162
|
+
input: process.stdin,
|
|
163
|
+
output: process.stdout,
|
|
164
|
+
});
|
|
165
|
+
return new Promise((resolve) => {
|
|
166
|
+
rl.question(`${message} [y/N] `, (answer) => {
|
|
167
|
+
rl.close();
|
|
168
|
+
resolve(answer.trim().toLowerCase() === "y");
|
|
169
|
+
});
|
|
156
170
|
});
|
|
157
171
|
});
|
|
158
172
|
}
|
|
@@ -176,12 +190,23 @@ function promptSecretInteractively() {
|
|
|
176
190
|
let value = "";
|
|
177
191
|
process.stdin.setEncoding("utf8");
|
|
178
192
|
const cleanup = () => {
|
|
179
|
-
|
|
180
|
-
process.stdin.
|
|
193
|
+
try {
|
|
194
|
+
if (process.stdin.isTTY) {
|
|
195
|
+
try {
|
|
196
|
+
process.stdin.setRawMode(false);
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
if (error?.code !== "EBADF") {
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
process.stdin.removeListener("data", onData);
|
|
207
|
+
process.stdin.removeListener("end", onEnd);
|
|
208
|
+
process.stdin.pause();
|
|
181
209
|
}
|
|
182
|
-
process.stdin.removeListener("data", onData);
|
|
183
|
-
process.stdin.removeListener("end", onEnd);
|
|
184
|
-
process.stdin.pause();
|
|
185
210
|
};
|
|
186
211
|
const onEnd = () => {
|
|
187
212
|
cleanup();
|
|
@@ -510,11 +535,11 @@ function renderPolicyScripts(scripts) {
|
|
|
510
535
|
// `env` through it stops those callers from emitting the warning while keeping
|
|
511
536
|
// identical UX and error text.
|
|
512
537
|
//
|
|
513
|
-
// Every value use through exec/env/reveal is server-authorized
|
|
514
|
-
// an encrypted disk-cache entry exists.
|
|
515
|
-
//
|
|
516
|
-
//
|
|
517
|
-
// change takes effect on
|
|
538
|
+
// Every value use through exec/env/reveal is server-authorized when online,
|
|
539
|
+
// including when an encrypted disk-cache entry exists. Only explicitly opted-in
|
|
540
|
+
// exec/env callers may use principal-bound values during classified outages;
|
|
541
|
+
// install authorization and reveal remain online-only. This means a policy,
|
|
542
|
+
// ACL, tier, or script-approval change takes effect on the next online use.
|
|
518
543
|
// Requests are chunked at MAX_BATCH_NAMES and throw on the FIRST unresolved key
|
|
519
544
|
// with the same `Failed to fetch secret '<k>': <reason>` shape the per-key GET
|
|
520
545
|
// path used — never swallows a failure.
|
|
@@ -562,13 +587,16 @@ async function loadRevealedSecretsViaApiKey(token, keys) {
|
|
|
562
587
|
}
|
|
563
588
|
return resolved;
|
|
564
589
|
}
|
|
565
|
-
export async function loadRevealedSecrets(token, companyUid, keys, usage) {
|
|
590
|
+
export async function loadRevealedSecrets(token, companyUid, keys, usage, options = {}) {
|
|
566
591
|
if (token.startsWith(HQ_API_KEY_PREFIX)) {
|
|
567
592
|
return loadRevealedSecretsViaApiKey(token, keys);
|
|
568
593
|
}
|
|
569
594
|
const resolved = new Map();
|
|
570
595
|
const requested = [...new Set(keys)];
|
|
571
|
-
const
|
|
596
|
+
const principalUid = cognitoCachePrincipalUid(token);
|
|
597
|
+
const cachedCandidates = new Set(principalUid
|
|
598
|
+
? requested.filter((name) => hasCacheEntry(companyUid, name, principalUid))
|
|
599
|
+
: []);
|
|
572
600
|
try {
|
|
573
601
|
// The batch endpoint is the only non-capturing authorization path that also
|
|
574
602
|
// evaluates the supplied usage metadata. It covers warm and cold names in
|
|
@@ -595,6 +623,9 @@ export async function loadRevealedSecrets(token, companyUid, keys, usage) {
|
|
|
595
623
|
body.highSecurity === true) {
|
|
596
624
|
throw new Error(highSecuritySandboxOnlyMessage());
|
|
597
625
|
}
|
|
626
|
+
if (isUnavailableSecretLoadHttpStatus(res.status)) {
|
|
627
|
+
throw new SecretLoadUnavailableError(`Failed to batch-load secrets: ${message}`);
|
|
628
|
+
}
|
|
598
629
|
if (res.status >= 400 &&
|
|
599
630
|
res.status < 500 &&
|
|
600
631
|
typeof body.code === "string") {
|
|
@@ -623,6 +654,14 @@ export async function loadRevealedSecrets(token, companyUid, keys, usage) {
|
|
|
623
654
|
throw new Error("Invalid secret load response from vault");
|
|
624
655
|
}
|
|
625
656
|
seenNames.add(s.name);
|
|
657
|
+
if (s.revokedAt != null) {
|
|
658
|
+
errorsByName.set(s.name, {
|
|
659
|
+
code: "revoked",
|
|
660
|
+
message: `Secret '${s.name}' has been revoked`,
|
|
661
|
+
});
|
|
662
|
+
removeCacheEntry(companyUid, s.name);
|
|
663
|
+
continue;
|
|
664
|
+
}
|
|
626
665
|
if (s.value == null) {
|
|
627
666
|
errorsByName.set(s.name, {
|
|
628
667
|
code: "not_returned",
|
|
@@ -637,7 +676,7 @@ export async function loadRevealedSecrets(token, companyUid, keys, usage) {
|
|
|
637
676
|
typeof s.version === "number" &&
|
|
638
677
|
Number.isSafeInteger(s.version) &&
|
|
639
678
|
s.version > 0
|
|
640
|
-
? readCache(companyUid, s.name, s.version, cacheTtlMs)
|
|
679
|
+
? readCache(companyUid, s.name, principalUid, s.version, cacheTtlMs)
|
|
641
680
|
: null;
|
|
642
681
|
if (cached !== null) {
|
|
643
682
|
resolved.set(s.name, cached);
|
|
@@ -647,10 +686,12 @@ export async function loadRevealedSecrets(token, companyUid, keys, usage) {
|
|
|
647
686
|
if (typeof s.version === "number" &&
|
|
648
687
|
Number.isSafeInteger(s.version) &&
|
|
649
688
|
s.version > 0) {
|
|
650
|
-
|
|
689
|
+
if (principalUid) {
|
|
690
|
+
writeCache(companyUid, s.name, principalUid, s.value, cacheTtlMs, s.version);
|
|
691
|
+
}
|
|
651
692
|
}
|
|
652
|
-
else {
|
|
653
|
-
writeCache(companyUid, s.name, s.value, cacheTtlMs);
|
|
693
|
+
else if (principalUid) {
|
|
694
|
+
writeCache(companyUid, s.name, principalUid, s.value, cacheTtlMs);
|
|
654
695
|
}
|
|
655
696
|
}
|
|
656
697
|
else {
|
|
@@ -707,9 +748,29 @@ export async function loadRevealedSecrets(token, companyUid, keys, usage) {
|
|
|
707
748
|
return resolved;
|
|
708
749
|
}
|
|
709
750
|
catch (err) {
|
|
751
|
+
if (isSecretLoadUnavailable(err) && options.allowOfflineFallback === true) {
|
|
752
|
+
const offline = new Map();
|
|
753
|
+
for (const key of requested) {
|
|
754
|
+
const cached = cachedCandidates.has(key)
|
|
755
|
+
? readCache(companyUid, key, principalUid)
|
|
756
|
+
: null;
|
|
757
|
+
if (cached === null) {
|
|
758
|
+
// Keep the same failure behavior for a cache miss, while leaving any
|
|
759
|
+
// still-valid entries untouched for a later retry.
|
|
760
|
+
throw err;
|
|
761
|
+
}
|
|
762
|
+
offline.set(key, cached);
|
|
763
|
+
}
|
|
764
|
+
console.error(CACHED_SECRETS_SERVER_UNAVAILABLE_MESSAGE);
|
|
765
|
+
return offline;
|
|
766
|
+
}
|
|
767
|
+
if (isSecretLoadUnavailable(err)) {
|
|
768
|
+
throw err;
|
|
769
|
+
}
|
|
710
770
|
// A transport failure, stale session, malformed response, or a later chunk
|
|
711
|
-
// failure
|
|
712
|
-
//
|
|
771
|
+
// failure is an explicit denial or unusable response. Evict the whole
|
|
772
|
+
// request before failing closed. Transient no-answer/5xx/429 failures above
|
|
773
|
+
// preserve entries and only use values still valid under their stored TTL.
|
|
713
774
|
for (const key of requested) {
|
|
714
775
|
removeCacheEntry(companyUid, key);
|
|
715
776
|
}
|
|
@@ -760,6 +821,61 @@ export function emitEnvExportsAndExit(payload, exit = process.exit, write = writ
|
|
|
760
821
|
}
|
|
761
822
|
return exit(0);
|
|
762
823
|
}
|
|
824
|
+
/**
|
|
825
|
+
* Shared `secrets env` action for Commander and the default-off lightweight
|
|
826
|
+
* entrypoint. The fast entrypoint still runs the same credential, usage-audit,
|
|
827
|
+
* server authorization, cache-fallback, redaction, and output code.
|
|
828
|
+
*/
|
|
829
|
+
export async function runSecretsEnvCommand(opts, parentScope, options = {}) {
|
|
830
|
+
let secretLoadStarted = false;
|
|
831
|
+
try {
|
|
832
|
+
const redact = process.stdout.isTTY;
|
|
833
|
+
if (redact) {
|
|
834
|
+
console.error(chalk.yellow("stdout is a terminal — values redacted. Use: source <(hq secrets env --only KEY1,KEY2)"));
|
|
835
|
+
}
|
|
836
|
+
const keys = parseSecretNameList(opts.only);
|
|
837
|
+
const cred = await resolveVaultCredentialForCapability("secrets:read", "secrets env", secretsCredentialOptions());
|
|
838
|
+
const companyUid = cred.kind === "api-key"
|
|
839
|
+
? "__api_key__"
|
|
840
|
+
: await getEntityUid(cred.token, scopeOpts(parentScope), {
|
|
841
|
+
allowOfflineScopeFallback: true,
|
|
842
|
+
});
|
|
843
|
+
const usage = cred.kind === "cognito"
|
|
844
|
+
? await buildSecretUsage("env", opts.script, opts.scriptId)
|
|
845
|
+
: undefined;
|
|
846
|
+
secretLoadStarted = true;
|
|
847
|
+
const revealed = await loadRevealedSecrets(cred.token, companyUid, keys, usage, { allowOfflineFallback: true });
|
|
848
|
+
let payload = "";
|
|
849
|
+
for (const key of keys) {
|
|
850
|
+
const value = revealed.get(key);
|
|
851
|
+
// loadRevealedSecrets throws on any unresolved key, so a miss here is
|
|
852
|
+
// unreachable — guard rather than print an `undefined` export line.
|
|
853
|
+
if (value === undefined) {
|
|
854
|
+
throw new Error(`Failed to fetch secret '${key}': not returned by vault`);
|
|
855
|
+
}
|
|
856
|
+
const out = redact ? "[REDACTED]" : value;
|
|
857
|
+
payload += `export ${key}=${shellSingleQuote(out)}\n`;
|
|
858
|
+
}
|
|
859
|
+
// Write synchronously and exit unconditionally — never depend on the
|
|
860
|
+
// event loop draining or the stdout write callback firing. See
|
|
861
|
+
// emitEnvExportsAndExit for the full rationale (orphaned-process leak).
|
|
862
|
+
emitEnvExportsAndExit(payload);
|
|
863
|
+
return "handled";
|
|
864
|
+
}
|
|
865
|
+
catch (err) {
|
|
866
|
+
if (options.fallbackOnAuthFailure &&
|
|
867
|
+
!secretLoadStarted &&
|
|
868
|
+
(isAuthError(err) ||
|
|
869
|
+
(err instanceof Error &&
|
|
870
|
+
(/^No valid HQ session\b/.test(err.message) ||
|
|
871
|
+
/^HQ_API_KEY must start with /.test(err.message))))) {
|
|
872
|
+
return "fallback";
|
|
873
|
+
}
|
|
874
|
+
console.error(chalk.red("Error:"), err instanceof Error ? err.message : String(err));
|
|
875
|
+
process.exit(1);
|
|
876
|
+
return "handled";
|
|
877
|
+
}
|
|
878
|
+
}
|
|
763
879
|
export function registerSecretsCommand(program) {
|
|
764
880
|
const secrets = program
|
|
765
881
|
.command("secrets")
|
|
@@ -873,6 +989,11 @@ export function registerSecretsCommand(program) {
|
|
|
873
989
|
}
|
|
874
990
|
}
|
|
875
991
|
catch (err) {
|
|
992
|
+
// A plan-limit refusal goes to main.ts's shared renderer, which prints
|
|
993
|
+
// the reason, usage, fix options and upgrade link, offers the upgrade
|
|
994
|
+
// interactively, and exits non-zero.
|
|
995
|
+
if (isPlanGateError(err))
|
|
996
|
+
throw err;
|
|
876
997
|
console.error(chalk.red("Error:"), err instanceof Error ? err.message : String(err));
|
|
877
998
|
process.exit(1);
|
|
878
999
|
}
|
|
@@ -883,7 +1004,7 @@ export function registerSecretsCommand(program) {
|
|
|
883
1004
|
.option("--reveal", "Include the decrypted secret value")
|
|
884
1005
|
.action(async (name, opts) => {
|
|
885
1006
|
try {
|
|
886
|
-
const cred = await resolveVaultCredentialForCapability("secrets:read", "secrets get");
|
|
1007
|
+
const cred = await resolveVaultCredentialForCapability("secrets:read", "secrets get", secretsCredentialOptions());
|
|
887
1008
|
if (cred.kind === "api-key") {
|
|
888
1009
|
if (!opts.reveal) {
|
|
889
1010
|
console.error(chalk.red("HQ_API_KEY is set; `hq secrets get` without --reveal is not supported for API keys. " +
|
|
@@ -956,7 +1077,7 @@ export function registerSecretsCommand(program) {
|
|
|
956
1077
|
let revealError = null;
|
|
957
1078
|
if (opts.reveal) {
|
|
958
1079
|
try {
|
|
959
|
-
revealedValue = (await loadRevealedSecrets(token, companyUid, [name], await buildSecretUsage("reveal"))).get(name);
|
|
1080
|
+
revealedValue = (await loadRevealedSecrets(token, companyUid, [name], await buildSecretUsage("reveal"), { allowOfflineFallback: false })).get(name);
|
|
960
1081
|
}
|
|
961
1082
|
catch (err) {
|
|
962
1083
|
revealError = err instanceof Error ? err.message : String(err);
|
|
@@ -1384,6 +1505,7 @@ export function registerSecretsCommand(program) {
|
|
|
1384
1505
|
const token = await requireCognitoTokenForSecrets("secrets sandbox", "secrets:read");
|
|
1385
1506
|
const scope = scopeOpts(mergeScopeOpts(secrets.opts(), opts));
|
|
1386
1507
|
const companyUid = await getEntityUid(token, scope);
|
|
1508
|
+
const { SandboxRunnerClient } = await import("../utils/sandbox-runner-client.js");
|
|
1387
1509
|
const client = new SandboxRunnerClient();
|
|
1388
1510
|
const started = await client.startJob(token, {
|
|
1389
1511
|
companyUid,
|
|
@@ -1434,13 +1556,23 @@ export function registerSecretsCommand(program) {
|
|
|
1434
1556
|
process.exit(1);
|
|
1435
1557
|
}
|
|
1436
1558
|
const keys = parseSecretNameList(_opts.only);
|
|
1437
|
-
const cred = await resolveVaultCredentialForCapability("secrets:read", "secrets exec");
|
|
1559
|
+
const cred = await resolveVaultCredentialForCapability("secrets:read", "secrets exec", secretsCredentialOptions());
|
|
1438
1560
|
const companyUid = cred.kind === "api-key"
|
|
1439
1561
|
? "__api_key__"
|
|
1440
|
-
: await getEntityUid(cred.token, scopeOpts(secrets.opts()));
|
|
1441
|
-
const
|
|
1562
|
+
: await getEntityUid(cred.token, scopeOpts(secrets.opts()), { allowOfflineScopeFallback: true });
|
|
1563
|
+
const readSecrets = async () => loadRevealedSecrets(cred.token, companyUid, keys, cred.kind === "cognito"
|
|
1442
1564
|
? await buildSecretUsage("exec", _opts.script, _opts.scriptId)
|
|
1443
|
-
: undefined);
|
|
1565
|
+
: undefined, { allowOfflineFallback: true });
|
|
1566
|
+
// API-key auth has no signed-in person identity for the CLI telemetry
|
|
1567
|
+
// endpoint. Do not attribute that read to an unrelated cached session.
|
|
1568
|
+
let revealed;
|
|
1569
|
+
if (cred.kind === "cognito") {
|
|
1570
|
+
const { withCliFeatureUsed } = await import("../utils/cli-telemetry.js");
|
|
1571
|
+
revealed = await withCliFeatureUsed("secret_read", readSecrets, companyUid);
|
|
1572
|
+
}
|
|
1573
|
+
else {
|
|
1574
|
+
revealed = await readSecrets();
|
|
1575
|
+
}
|
|
1444
1576
|
const secretEnv = {};
|
|
1445
1577
|
for (const key of keys) {
|
|
1446
1578
|
const value = revealed.get(key);
|
|
@@ -1452,6 +1584,7 @@ export function registerSecretsCommand(program) {
|
|
|
1452
1584
|
secretEnv[key] = value;
|
|
1453
1585
|
}
|
|
1454
1586
|
const [childCmd, ...childCmdArgs] = childArgs;
|
|
1587
|
+
const { spawn } = await import("node:child_process");
|
|
1455
1588
|
const child = spawn(childCmd, childCmdArgs, {
|
|
1456
1589
|
stdio: "inherit",
|
|
1457
1590
|
env: { ...process.env, ...secretEnv },
|
|
@@ -1479,39 +1612,7 @@ export function registerSecretsCommand(program) {
|
|
|
1479
1612
|
.option("--script <path>", "Attach local script identity for script-locked secrets")
|
|
1480
1613
|
.option("--script-id <id>", "Stable script identifier approved by policy")
|
|
1481
1614
|
.action(async (opts) => {
|
|
1482
|
-
|
|
1483
|
-
const redact = process.stdout.isTTY;
|
|
1484
|
-
if (redact) {
|
|
1485
|
-
console.error(chalk.yellow("stdout is a terminal — values redacted. Use: source <(hq secrets env --only KEY1,KEY2)"));
|
|
1486
|
-
}
|
|
1487
|
-
const keys = parseSecretNameList(opts.only);
|
|
1488
|
-
const cred = await resolveVaultCredentialForCapability("secrets:read", "secrets env");
|
|
1489
|
-
const companyUid = cred.kind === "api-key"
|
|
1490
|
-
? "__api_key__"
|
|
1491
|
-
: await getEntityUid(cred.token, scopeOpts(secrets.opts()));
|
|
1492
|
-
const revealed = await loadRevealedSecrets(cred.token, companyUid, keys, cred.kind === "cognito"
|
|
1493
|
-
? await buildSecretUsage("env", opts.script, opts.scriptId)
|
|
1494
|
-
: undefined);
|
|
1495
|
-
let payload = "";
|
|
1496
|
-
for (const key of keys) {
|
|
1497
|
-
const value = revealed.get(key);
|
|
1498
|
-
// loadRevealedSecrets throws on any unresolved key, so a miss here is
|
|
1499
|
-
// unreachable — guard rather than print an `undefined` export line.
|
|
1500
|
-
if (value === undefined) {
|
|
1501
|
-
throw new Error(`Failed to fetch secret '${key}': not returned by vault`);
|
|
1502
|
-
}
|
|
1503
|
-
const out = redact ? "[REDACTED]" : value;
|
|
1504
|
-
payload += `export ${key}=${shellSingleQuote(out)}\n`;
|
|
1505
|
-
}
|
|
1506
|
-
// Write synchronously and exit unconditionally — never depend on the
|
|
1507
|
-
// event loop draining or the stdout write callback firing. See
|
|
1508
|
-
// emitEnvExportsAndExit for the full rationale (orphaned-process leak).
|
|
1509
|
-
emitEnvExportsAndExit(payload);
|
|
1510
|
-
}
|
|
1511
|
-
catch (err) {
|
|
1512
|
-
console.error(chalk.red("Error:"), err instanceof Error ? err.message : String(err));
|
|
1513
|
-
process.exit(1);
|
|
1514
|
-
}
|
|
1615
|
+
await runSecretsEnvCommand(opts, secrets.opts());
|
|
1515
1616
|
});
|
|
1516
1617
|
secrets
|
|
1517
1618
|
.command("generate-link <name>")
|
|
@@ -1555,6 +1656,9 @@ export function registerSecretsCommand(program) {
|
|
|
1555
1656
|
console.log(chalk.dim(" One-time use — link is invalidated after first submission."));
|
|
1556
1657
|
}
|
|
1557
1658
|
catch (err) {
|
|
1659
|
+
// Same shared plan-limit renderer as `secrets set` (see main.ts).
|
|
1660
|
+
if (isPlanGateError(err))
|
|
1661
|
+
throw err;
|
|
1558
1662
|
console.error(chalk.red("Error:"), err instanceof Error ? err.message : String(err));
|
|
1559
1663
|
process.exit(1);
|
|
1560
1664
|
}
|