@indigoai-us/hq-cli 5.314.0 → 5.316.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 +4320 -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/detect-stale-review-base.sh +199 -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/repo-run-registry.sh +408 -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/share-suggestion-state.sh +541 -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 +10798 -0
- package/dist/command-catalog.generated.js +13915 -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 +131 -0
- package/dist/commands/bot-jobs.js +474 -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-detect-stale-review-base-native.d.ts +23 -0
- package/dist/commands/core-detect-stale-review-base-native.js +178 -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-hook-state-helpers-native.d.ts +11 -0
- package/dist/commands/core-hook-state-helpers-native.js +74 -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-repo-run-registry-native.d.ts +19 -0
- package/dist/commands/core-repo-run-registry-native.js +357 -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-share-suggestion-state-native.d.ts +18 -0
- package/dist/commands/core-share-suggestion-state-native.js +445 -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 +282 -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 +9013 -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 +7 -7
- package/dist/fast-core.js +91 -24
- package/dist/fast-scaffold.d.ts +86 -0
- package/dist/fast-scaffold.js +381 -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-quiet-flag.d.ts +4 -0
- package/dist/lib/bot/job-quiet-flag.js +14 -0
- package/dist/lib/bot/job-run.d.ts +114 -0
- package/dist/lib/bot/job-run.js +266 -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 +219 -0
- package/dist/lib/bot/run.js +1881 -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/common.d.ts +0 -1
- package/dist/lib/core-utils/common.js +0 -9
- 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 +137 -0
- package/dist/lib/lanes/autopilot.js +1291 -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 +65 -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 +25 -0
- package/dist/lib/lanes/flag-keys.js +25 -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 +555 -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 +47 -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 +156 -0
- package/dist/lib/lanes/outpost-dispatch.js +293 -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
|
@@ -55,6 +55,8 @@ export interface RunDoctorOptions {
|
|
|
55
55
|
stderr?: (chunk: string) => void;
|
|
56
56
|
/** Emit the machine-readable JSON document instead of text. Default: false. */
|
|
57
57
|
json?: boolean;
|
|
58
|
+
/** Resolve hq-flags independently for each company represented in sync results. */
|
|
59
|
+
resolveClientHealthReasonCodesForCompany?: (companySlug: string | null) => Promise<boolean>;
|
|
58
60
|
/** In text mode, also print every PASS result. Default: false. */
|
|
59
61
|
verbose?: boolean;
|
|
60
62
|
/** In text mode, emit ANSI colour. Default: false (no escape sequences). */
|
|
@@ -89,6 +91,16 @@ export interface RunDoctorOptions {
|
|
|
89
91
|
company?: string;
|
|
90
92
|
/** Internal test seam; production CLI always runs integrations checks. */
|
|
91
93
|
integrations?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Run only these check families (`--only`). Omitted or empty runs them all.
|
|
96
|
+
*
|
|
97
|
+
* This exists for callers that need one family's verdict and nothing else —
|
|
98
|
+
* `core/scripts/check-hq-hooks.sh` reads six hook check ids, and `hq reindex`
|
|
99
|
+
* runs that checker on every pass. Without scoping they pay for every other
|
|
100
|
+
* family too, which on a large tree is dominated by the per-company sync
|
|
101
|
+
* journal scan. An unknown id is an error, never a silent empty run.
|
|
102
|
+
*/
|
|
103
|
+
only?: readonly string[];
|
|
92
104
|
}
|
|
93
105
|
/** The outcome of a doctor run, returned rather than thrown so it is testable. */
|
|
94
106
|
export interface RunDoctorResult {
|
package/dist/commands/doctor.js
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import * as fs from "node:fs";
|
|
25
25
|
import * as path from "node:path";
|
|
26
|
+
import { Option } from "commander";
|
|
26
27
|
import { createDefaultRegistry, } from "../lib/doctor/registry.js";
|
|
27
28
|
import { computeExitCode, renderText, UNKNOWN_PLATFORM, } from "../lib/doctor/report.js";
|
|
28
29
|
import { buildDoctorJson, renderJson } from "../lib/doctor/json-output.js";
|
|
@@ -30,6 +31,10 @@ import { detectPlatform } from "../lib/doctor/platform.js";
|
|
|
30
31
|
import { DEEP_FAMILY_ID, DEEP_FAMILY_TITLE, runDeepGuardTests, } from "../lib/doctor/deep/executor.js";
|
|
31
32
|
import { PARITY_FAMILY_ID, PARITY_FAMILY_TITLE, runParityReplay, } from "../lib/doctor/deep/parity.js";
|
|
32
33
|
import { applyFixes } from "../lib/doctor/fix/apply.js";
|
|
34
|
+
import { renderDoctorFixJson } from "../lib/doctor/fix/json-output.js";
|
|
35
|
+
import { clientHealthReasonCodesEnabled as isActiveCompanyClientHealthReasonCodesEnabled, clientHealthReasonCodesEnabledForCompany, } from "../lib/doctor/client-health-reason-codes-flag.js";
|
|
36
|
+
import { isCompanyJournalSlug } from "../lib/doctor/checks/sync-health.js";
|
|
37
|
+
import { readCompaniesManifestMap } from "../lib/work-context/repo-remote.js";
|
|
33
38
|
import * as readline from "node:readline";
|
|
34
39
|
import { runSideEffectTests } from "../lib/doctor/deep/sandbox.js";
|
|
35
40
|
/**
|
|
@@ -93,7 +98,25 @@ export async function runDoctor(options = {}) {
|
|
|
93
98
|
` Run hq doctor from inside your HQ root.\n`);
|
|
94
99
|
return { exitCode: 1, hqRoot: null, families: [] };
|
|
95
100
|
}
|
|
96
|
-
const
|
|
101
|
+
const fullRegistry = options.registry ?? createDefaultRegistry();
|
|
102
|
+
const requested = options.only && options.only.length > 0 ? [...options.only] : undefined;
|
|
103
|
+
let registry = fullRegistry;
|
|
104
|
+
let scope;
|
|
105
|
+
if (requested) {
|
|
106
|
+
const selection = fullRegistry.select(requested);
|
|
107
|
+
// The deep families are appended by `--deep-test` rather than registered,
|
|
108
|
+
// so they are addressable only when that flag is present — naming one
|
|
109
|
+
// without it is the same mistake as naming a family that does not exist.
|
|
110
|
+
const appendable = options.deepTest ? [DEEP_FAMILY_ID, PARITY_FAMILY_ID] : [];
|
|
111
|
+
const unknown = selection.unknown.filter((id) => !appendable.includes(id));
|
|
112
|
+
if (unknown.length > 0) {
|
|
113
|
+
writeErr(`hq doctor --only: unknown check ${unknown.length === 1 ? "family" : "families"}: ${unknown.join(", ")}\n` +
|
|
114
|
+
` Available: ${[...fullRegistry.ids(), ...appendable].join(", ")}\n`);
|
|
115
|
+
return { exitCode: 1, hqRoot, families: [] };
|
|
116
|
+
}
|
|
117
|
+
registry = selection.registry;
|
|
118
|
+
scope = [...registry.ids(), ...appendable.filter((id) => requested.includes(id))];
|
|
119
|
+
}
|
|
97
120
|
const platform = options.platform ?? UNKNOWN_PLATFORM;
|
|
98
121
|
// The detected platform and the session id are exposed to every check so the
|
|
99
122
|
// host-specific runtime probe (US-006) can decide UNKNOWN vs FAIL vs UNTESTED.
|
|
@@ -111,7 +134,11 @@ export async function runDoctor(options = {}) {
|
|
|
111
134
|
// own family. Run only when asked — appending here, not in the default
|
|
112
135
|
// registry, is what keeps `hq doctor` from ever spawning a hook without the
|
|
113
136
|
// flag. Any FAIL/UNKNOWN it produces flows through computeExitCode below.
|
|
114
|
-
|
|
137
|
+
// The deep families are appended here rather than registered, so the `--only`
|
|
138
|
+
// filter has to be applied to them explicitly — otherwise
|
|
139
|
+
// `--only hooks --deep-test` would still sandbox-fire every hook.
|
|
140
|
+
const inScope = (id) => !requested || requested.includes(id);
|
|
141
|
+
if (options.deepTest && inScope(DEEP_FAMILY_ID)) {
|
|
115
142
|
const deepResults = await runDeepGuardTests(context);
|
|
116
143
|
// US-009: side-effecting hooks (autocommit, checkpoint, journal, reindex, …)
|
|
117
144
|
// cannot be verified by verdict, so they run in throwaway sandboxes and their
|
|
@@ -122,10 +149,12 @@ export async function runDoctor(options = {}) {
|
|
|
122
149
|
family: { id: DEEP_FAMILY_ID, title: DEEP_FAMILY_TITLE },
|
|
123
150
|
results: [...deepResults, ...effectResults],
|
|
124
151
|
});
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
152
|
+
}
|
|
153
|
+
// Cross-platform parity replay (US-010): replay every pure-guard fixture
|
|
154
|
+
// case through the Claude, Codex, and Grok adapters and compare verdicts, so
|
|
155
|
+
// platform drift surfaces as a test result. Also gated behind --deep-test,
|
|
156
|
+
// and it too runs only in its own sandbox — never the live tree.
|
|
157
|
+
if (options.deepTest && inScope(PARITY_FAMILY_ID)) {
|
|
129
158
|
const parityResults = await runParityReplay(context);
|
|
130
159
|
families.push({
|
|
131
160
|
family: { id: PARITY_FAMILY_ID, title: PARITY_FAMILY_TITLE },
|
|
@@ -133,7 +162,16 @@ export async function runDoctor(options = {}) {
|
|
|
133
162
|
});
|
|
134
163
|
}
|
|
135
164
|
if (options.json) {
|
|
136
|
-
|
|
165
|
+
const clientHealthReasonCodesEnabledCheckIds = options.resolveClientHealthReasonCodesForCompany
|
|
166
|
+
? await resolveClientHealthReasonCodesCheckIds(families, options.resolveClientHealthReasonCodesForCompany)
|
|
167
|
+
: undefined;
|
|
168
|
+
write(renderJson(buildDoctorJson({
|
|
169
|
+
hqRoot,
|
|
170
|
+
families,
|
|
171
|
+
platform,
|
|
172
|
+
scope,
|
|
173
|
+
clientHealthReasonCodesEnabledCheckIds,
|
|
174
|
+
})));
|
|
137
175
|
}
|
|
138
176
|
else {
|
|
139
177
|
write(renderText({
|
|
@@ -148,6 +186,61 @@ export async function runDoctor(options = {}) {
|
|
|
148
186
|
// UNTESTED, NA, and KNOWN-DEFECT are reported but never fail the command.
|
|
149
187
|
return { exitCode: computeExitCode(families), hqRoot, families };
|
|
150
188
|
}
|
|
189
|
+
async function resolveClientHealthReasonCodesCheckIds(families, resolveForCompany) {
|
|
190
|
+
const checksByCompany = new Map();
|
|
191
|
+
for (const run of families) {
|
|
192
|
+
if (run.family.id !== "sync")
|
|
193
|
+
continue;
|
|
194
|
+
for (const result of run.results) {
|
|
195
|
+
if (result.reasonCode === undefined ||
|
|
196
|
+
(result.status !== "FAIL" && result.status !== "WARN")) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const scoped = /^sync\.(?:journal|manifest)\.(.+)$/.exec(result.checkId);
|
|
200
|
+
const companySlug = scoped && isCompanyJournalSlug(scoped[1]) ? scoped[1] : null;
|
|
201
|
+
const checkIds = checksByCompany.get(companySlug) ?? [];
|
|
202
|
+
checkIds.push(result.checkId);
|
|
203
|
+
checksByCompany.set(companySlug, checkIds);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const enabledChecks = new Set();
|
|
207
|
+
const decisions = await Promise.all([...checksByCompany.entries()].map(async ([companySlug, checkIds]) => ({
|
|
208
|
+
checkIds,
|
|
209
|
+
enabled: await resolveForCompany(companySlug),
|
|
210
|
+
})));
|
|
211
|
+
for (const decision of decisions) {
|
|
212
|
+
if (decision.enabled) {
|
|
213
|
+
for (const checkId of decision.checkIds)
|
|
214
|
+
enabledChecks.add(checkId);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return enabledChecks;
|
|
218
|
+
}
|
|
219
|
+
function createClientHealthReasonCodeCompanyResolver(hqRoot) {
|
|
220
|
+
const companies = readCompaniesManifestMap(hqRoot);
|
|
221
|
+
return async (companySlug) => {
|
|
222
|
+
if (companySlug === null) {
|
|
223
|
+
return isActiveCompanyClientHealthReasonCodesEnabled();
|
|
224
|
+
}
|
|
225
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(companySlug)) {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
const manifestUid = companies?.[companySlug]?.cloud_uid;
|
|
229
|
+
const activeSlug = process.env.HQ_COMPANY_SLUG?.trim() || "";
|
|
230
|
+
const activeUid = process.env.HQ_COMPANY_UID?.trim() || "";
|
|
231
|
+
const companyUid = typeof manifestUid === "string" && manifestUid.trim()
|
|
232
|
+
? manifestUid.trim()
|
|
233
|
+
: companySlug === activeSlug
|
|
234
|
+
? activeUid
|
|
235
|
+
: "";
|
|
236
|
+
if (!/^cmp_[A-Za-z0-9]{3,128}$/.test(companyUid))
|
|
237
|
+
return false;
|
|
238
|
+
return clientHealthReasonCodesEnabledForCompany({
|
|
239
|
+
companyUid,
|
|
240
|
+
companySlug,
|
|
241
|
+
});
|
|
242
|
+
};
|
|
243
|
+
}
|
|
151
244
|
/** Register the top-level `hq doctor` command so it appears in `hq --help`. */
|
|
152
245
|
export function registerDoctorCommand(program) {
|
|
153
246
|
program
|
|
@@ -160,18 +253,42 @@ export function registerDoctorCommand(program) {
|
|
|
160
253
|
.option("--deep-test", "Also fire pure-guard hooks through the real gate under all three profiles (sandboxed).")
|
|
161
254
|
.option("--live-runtimes", "Also probe each installed AI CLI (claude, codex, grok) with a one-line prompt to verify login and subscription (networked; uses your subscriptions).")
|
|
162
255
|
.option("--company <slug>", "Company slug for integrations checks (otherwise resolves your single active company).")
|
|
256
|
+
.option("--only <families>", "Run only these comma-separated check families (e.g. hooks). Unknown names are rejected; --json then records the scope.")
|
|
163
257
|
.option("--fix", "Apply the allowlisted safe repairs (backs up first; read-only without this flag).")
|
|
258
|
+
.addOption(new Option("--client-health-report", "Resolve the opt-in hq-flags gate used by the client-health report hook.").hideHelp())
|
|
164
259
|
.option("--yes", "Skip the interactive --fix confirmation (non-interactive use).")
|
|
165
260
|
.option("--force", "Let --fix run despite uncommitted changes under .claude/, .codex/, or .grok/.")
|
|
166
261
|
.action(async (opts) => {
|
|
262
|
+
// `--fix` repairs the whole tree from its own allowlist and has no
|
|
263
|
+
// notion of a check family, so a scope passed alongside it could only
|
|
264
|
+
// be ignored. Ignoring it silently is the dangerous reading: an
|
|
265
|
+
// operator who wrote `--only sync --fix` would believe they had scoped
|
|
266
|
+
// hook configuration out of a write, and `--only typo --fix` would slip
|
|
267
|
+
// past the unknown-family rejection. Refuse the combination instead.
|
|
268
|
+
if (opts.fix === true && parseOnly(opts.only) !== undefined) {
|
|
269
|
+
process.stderr.write(`hq doctor: --only cannot be combined with --fix.\n` +
|
|
270
|
+
` --fix applies the allowlisted repairs across the whole tree; it has no family scope.\n` +
|
|
271
|
+
` Inspect with \`hq doctor --only ${parseOnly(opts.only)?.join(",")}\`, then repair with \`hq doctor --fix\`.\n`);
|
|
272
|
+
process.exitCode = 1;
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
167
275
|
// `--fix` is the only write path. It resolves the tree, applies the
|
|
168
276
|
// allowlisted repairs behind a backup + confirmation, and returns its own
|
|
169
277
|
// exit code; the read-only report below never runs in this branch.
|
|
170
278
|
if (opts.fix === true) {
|
|
171
279
|
const hqRoot = resolveHqRoot();
|
|
172
280
|
if (!hqRoot) {
|
|
173
|
-
|
|
174
|
-
|
|
281
|
+
if (opts.json === true) {
|
|
282
|
+
process.stdout.write(renderDoctorFixJson({
|
|
283
|
+
exitCode: 1,
|
|
284
|
+
refused: "outside-hq-tree",
|
|
285
|
+
applied: [],
|
|
286
|
+
}));
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
process.stderr.write(`hq doctor --fix: not inside an HQ tree.\n` +
|
|
290
|
+
` Looking for a directory containing all of: ${HQ_ROOT_MARKERS.join(", ")}\n`);
|
|
291
|
+
}
|
|
175
292
|
process.exitCode = 1;
|
|
176
293
|
return;
|
|
177
294
|
}
|
|
@@ -179,8 +296,14 @@ export function registerDoctorCommand(program) {
|
|
|
179
296
|
hqRoot,
|
|
180
297
|
yes: opts.yes === true,
|
|
181
298
|
force: opts.force === true,
|
|
182
|
-
confirm: promptYesNo,
|
|
299
|
+
confirm: () => promptYesNo(opts.json === true ? process.stderr : process.stdout),
|
|
300
|
+
...(opts.json === true
|
|
301
|
+
? { stdout: () => { }, stderr: () => { } }
|
|
302
|
+
: {}),
|
|
183
303
|
});
|
|
304
|
+
if (opts.json === true) {
|
|
305
|
+
process.stdout.write(renderDoctorFixJson(fixResult));
|
|
306
|
+
}
|
|
184
307
|
process.exitCode = fixResult.exitCode;
|
|
185
308
|
return;
|
|
186
309
|
}
|
|
@@ -199,6 +322,14 @@ export function registerDoctorCommand(program) {
|
|
|
199
322
|
id: detection.platform,
|
|
200
323
|
evidence: detection.evidence,
|
|
201
324
|
};
|
|
325
|
+
const clientHealthReasonCodesResolver = json && opts.clientHealthReport === true
|
|
326
|
+
? (() => {
|
|
327
|
+
const hqRoot = resolveHqRoot();
|
|
328
|
+
return hqRoot
|
|
329
|
+
? createClientHealthReasonCodeCompanyResolver(hqRoot)
|
|
330
|
+
: undefined;
|
|
331
|
+
})()
|
|
332
|
+
: undefined;
|
|
202
333
|
const result = await runDoctor({
|
|
203
334
|
json,
|
|
204
335
|
verbose: opts.verbose === true,
|
|
@@ -208,6 +339,8 @@ export function registerDoctorCommand(program) {
|
|
|
208
339
|
deepTest: opts.deepTest === true,
|
|
209
340
|
liveRuntimes: opts.liveRuntimes === true,
|
|
210
341
|
company: opts.company,
|
|
342
|
+
only: parseOnly(opts.only),
|
|
343
|
+
resolveClientHealthReasonCodesForCompany: clientHealthReasonCodesResolver,
|
|
211
344
|
});
|
|
212
345
|
// Set the exit code rather than calling process.exit, so the CLI's
|
|
213
346
|
// normal shutdown (telemetry flush) still runs. Non-zero means either an
|
|
@@ -215,17 +348,30 @@ export function registerDoctorCommand(program) {
|
|
|
215
348
|
process.exitCode = result.exitCode;
|
|
216
349
|
});
|
|
217
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Split `--only` into family ids. Blank entries are dropped so a trailing comma
|
|
353
|
+
* or a quoted empty string reads as "no scope" rather than as a family named "".
|
|
354
|
+
*/
|
|
355
|
+
function parseOnly(value) {
|
|
356
|
+
if (value === undefined)
|
|
357
|
+
return undefined;
|
|
358
|
+
const ids = value
|
|
359
|
+
.split(",")
|
|
360
|
+
.map((id) => id.trim())
|
|
361
|
+
.filter((id) => id.length > 0);
|
|
362
|
+
return ids.length > 0 ? ids : undefined;
|
|
363
|
+
}
|
|
218
364
|
/**
|
|
219
365
|
* Interactive y/N confirmation for `--fix`. Resolves false on a non-TTY stdin
|
|
220
366
|
* (so a piped run without `--yes` writes nothing) and on anything other than an
|
|
221
367
|
* explicit yes.
|
|
222
368
|
*/
|
|
223
|
-
function promptYesNo() {
|
|
369
|
+
function promptYesNo(output = process.stdout) {
|
|
224
370
|
if (!process.stdin.isTTY)
|
|
225
371
|
return Promise.resolve(false);
|
|
226
372
|
const rl = readline.createInterface({
|
|
227
373
|
input: process.stdin,
|
|
228
|
-
output
|
|
374
|
+
output,
|
|
229
375
|
});
|
|
230
376
|
return new Promise((resolve) => {
|
|
231
377
|
rl.question("Apply these repairs? [y/N] ", (answer) => {
|
|
@@ -3,6 +3,8 @@ import { type DiagnosticsBlob } from "../utils/feedback-diagnostics.js";
|
|
|
3
3
|
import { collectFeedbackLogs, feedbackLogsEnabled } from "../utils/feedback-logs.js";
|
|
4
4
|
import { type LogBundleRef } from "../utils/feedback-log-bundle.js";
|
|
5
5
|
export declare const BODY_MAX_BYTES: number;
|
|
6
|
+
/** Validate fields that must be valid before feedback attachments are uploaded. */
|
|
7
|
+
export declare function validateFeedbackContent(title: string, body: string): void;
|
|
6
8
|
/**
|
|
7
9
|
* Mirror of the server's `MAX_BODY_BYTES` in hq-pro
|
|
8
10
|
* `src/vault-service/handlers/feedback.ts`, which rejects the WHOLE request
|
|
@@ -36,6 +38,10 @@ export interface FeedbackSubmitOptions {
|
|
|
36
38
|
* stays a summary and this carries the rest.
|
|
37
39
|
*/
|
|
38
40
|
logBundle?: LogBundleRef;
|
|
41
|
+
/** Diagnostics collected before uploads by the command path. */
|
|
42
|
+
diagnostics?: DiagnosticsBlob;
|
|
43
|
+
/** Precomputed setting so environment lookup happens before attachments upload. */
|
|
44
|
+
logsEnabled?: boolean;
|
|
39
45
|
}
|
|
40
46
|
export declare function readBodyFile(bodyFile: string, stdin?: NodeJS.ReadableStream): Promise<string>;
|
|
41
47
|
/**
|
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { ensureCognitoToken } from "../utils/cognito-session.js";
|
|
4
|
-
import { vaultApiFetch } from "../utils/vault-api.js";
|
|
4
|
+
import { assertVaultApiRequestSupported, vaultApiFetch, } from "../utils/vault-api.js";
|
|
5
5
|
import { collectDiagnostics } from "../utils/feedback-diagnostics.js";
|
|
6
6
|
import { MAX_SCREENSHOTS, uploadScreenshots } from "../utils/feedback-screenshots.js";
|
|
7
7
|
import { FEEDBACK_LOGS_MAX_TOTAL_BYTES, FEEDBACK_LOGS_MIN_USEFUL_BYTES, collectFeedbackLogs, feedbackLogsEnabled, } from "../utils/feedback-logs.js";
|
|
8
8
|
import { uploadLogBundle } from "../utils/feedback-log-bundle.js";
|
|
9
9
|
export const BODY_MAX_BYTES = 64 * 1024;
|
|
10
|
+
/** Validate fields that must be valid before feedback attachments are uploaded. */
|
|
11
|
+
export function validateFeedbackContent(title, body) {
|
|
12
|
+
if (title.trim().length === 0) {
|
|
13
|
+
throw new Error("title must not be empty. Provide a short, non-whitespace title via --title.");
|
|
14
|
+
}
|
|
15
|
+
if (body.trim().length === 0) {
|
|
16
|
+
throw new Error("body must not be empty. Provide at least one non-whitespace character.");
|
|
17
|
+
}
|
|
18
|
+
const bodyBytes = Buffer.byteLength(body, "utf8");
|
|
19
|
+
if (bodyBytes > BODY_MAX_BYTES) {
|
|
20
|
+
throw new Error(`Body exceeds 64 KiB limit (${bodyBytes} bytes). Reduce the body size before submitting.`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
10
23
|
/**
|
|
11
24
|
* Mirror of the server's `MAX_BODY_BYTES` in hq-pro
|
|
12
25
|
* `src/vault-service/handlers/feedback.ts`, which rejects the WHOLE request
|
|
@@ -16,12 +29,36 @@ export const BODY_MAX_BYTES = 64 * 1024;
|
|
|
16
29
|
* logs are budgeted against whatever headroom is left between them.
|
|
17
30
|
*/
|
|
18
31
|
export const REQUEST_MAX_BYTES = 64 * 1024;
|
|
32
|
+
/** Reject JSON envelopes that hq-pro would refuse with HTTP 413. */
|
|
33
|
+
function validateFeedbackRequestSize(requestBody) {
|
|
34
|
+
const requestBytes = Buffer.byteLength(JSON.stringify(requestBody), "utf8");
|
|
35
|
+
if (requestBytes > REQUEST_MAX_BYTES) {
|
|
36
|
+
throw new Error(`Request exceeds 64 KiB limit (${requestBytes} bytes). Reduce the feedback content before submitting.`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
19
39
|
/**
|
|
20
40
|
* Headroom held back for the `"logs":{...}` JSON envelope itself — its keys,
|
|
21
41
|
* braces, and the escaping of the tail text. The final size is re-measured
|
|
22
42
|
* after attaching, so this reserve only needs to be roughly right.
|
|
23
43
|
*/
|
|
24
44
|
const LOGS_ENVELOPE_RESERVE_BYTES = 1024;
|
|
45
|
+
function buildFeedbackRequestBody(opts) {
|
|
46
|
+
const requestBody = {
|
|
47
|
+
type: opts.type,
|
|
48
|
+
title: opts.title,
|
|
49
|
+
body: opts.body,
|
|
50
|
+
diagnostics: opts.diagnostics,
|
|
51
|
+
};
|
|
52
|
+
if (opts.company) {
|
|
53
|
+
requestBody.company = opts.company;
|
|
54
|
+
}
|
|
55
|
+
if (opts.screenshots && opts.screenshots.length > 0) {
|
|
56
|
+
requestBody.screenshots = opts.screenshots;
|
|
57
|
+
}
|
|
58
|
+
if (opts.logBundle)
|
|
59
|
+
requestBody.logBundle = opts.logBundle;
|
|
60
|
+
return requestBody;
|
|
61
|
+
}
|
|
25
62
|
export async function readBodyFile(bodyFile, stdin) {
|
|
26
63
|
if (bodyFile === "-") {
|
|
27
64
|
const stream = stdin ?? process.stdin;
|
|
@@ -79,48 +116,32 @@ export function attachDebugLogs(requestBody, diagnostics, enabled, deps = {}) {
|
|
|
79
116
|
}
|
|
80
117
|
}
|
|
81
118
|
export async function submitFeedback(opts) {
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
// warning (HQ-AB). Catch it here so the caller gets a clear, actionable error
|
|
88
|
-
// and the bad request never reaches the server.
|
|
89
|
-
if (opts.title.trim().length === 0) {
|
|
90
|
-
throw new Error("title must not be empty. Provide a short, non-whitespace title via --title.");
|
|
91
|
-
}
|
|
92
|
-
if (opts.body.trim().length === 0) {
|
|
93
|
-
throw new Error("body must not be empty. Provide at least one non-whitespace character.");
|
|
94
|
-
}
|
|
95
|
-
const bodyBytes = Buffer.byteLength(opts.body, "utf8");
|
|
96
|
-
if (bodyBytes > BODY_MAX_BYTES) {
|
|
97
|
-
throw new Error(`Body exceeds 64 KiB limit (${bodyBytes} bytes). Reduce the body size before submitting.`);
|
|
98
|
-
}
|
|
99
|
-
const diagnostics = collectDiagnostics();
|
|
100
|
-
const requestBody = {
|
|
119
|
+
// Keep submitFeedback safe for direct callers as well as the command path,
|
|
120
|
+
// which invokes the same validator before uploading any attachments.
|
|
121
|
+
validateFeedbackContent(opts.title, opts.body);
|
|
122
|
+
const diagnostics = opts.diagnostics ?? collectDiagnostics();
|
|
123
|
+
const requestBody = buildFeedbackRequestBody({
|
|
101
124
|
type: opts.type,
|
|
102
125
|
title: opts.title,
|
|
103
126
|
body: opts.body,
|
|
127
|
+
company: opts.company,
|
|
104
128
|
diagnostics,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
// The bundle reference is four small fields, so unlike the inline logs below
|
|
113
|
-
// it needs no budgeting — but it is added BEFORE attachDebugLogs so those
|
|
114
|
-
// bytes are counted against the inline budget rather than overrunning it.
|
|
115
|
-
if (opts.logBundle) {
|
|
116
|
-
requestBody.logBundle = opts.logBundle;
|
|
117
|
-
}
|
|
129
|
+
screenshots: opts.screenshots,
|
|
130
|
+
logBundle: opts.logBundle,
|
|
131
|
+
});
|
|
132
|
+
// Direct callers can supply attachment references; ensure the complete base
|
|
133
|
+
// envelope still fits before adding optional inline logs or making a request.
|
|
134
|
+
validateFeedbackRequestSize(requestBody);
|
|
118
135
|
// Debug logs are attached LAST and sized against the headroom the rest of
|
|
119
136
|
// the request left behind. The server 413s the whole body over 64 KiB, so a
|
|
120
137
|
// fixed log budget would turn a previously-working large-body submission
|
|
121
138
|
// into a hard failure. Measuring the real serialized envelope — the exact
|
|
122
139
|
// bytes vaultApiFetch will send — is what makes that impossible.
|
|
123
|
-
attachDebugLogs(requestBody, diagnostics, opts.includeLogs !== false
|
|
140
|
+
attachDebugLogs(requestBody, diagnostics, opts.includeLogs !== false, {
|
|
141
|
+
envEnabled: opts.logsEnabled === undefined
|
|
142
|
+
? feedbackLogsEnabled
|
|
143
|
+
: () => opts.logsEnabled === true,
|
|
144
|
+
});
|
|
124
145
|
const res = await vaultApiFetch({
|
|
125
146
|
token: opts.token,
|
|
126
147
|
path: "/v1/feedback",
|
|
@@ -155,8 +176,34 @@ function registerSubcommand(feedbackCmd, type) {
|
|
|
155
176
|
try {
|
|
156
177
|
const token = await ensureCognitoToken({ interactive: false });
|
|
157
178
|
const body = await readBodyFile(opts.bodyFile);
|
|
158
|
-
|
|
159
|
-
//
|
|
179
|
+
validateFeedbackContent(opts.title, body);
|
|
180
|
+
// Resolve every required local input before creating S3 objects. These
|
|
181
|
+
// diagnostics are passed through so submitFeedback does not collect
|
|
182
|
+
// them again after attachments have been uploaded.
|
|
183
|
+
const diagnostics = collectDiagnostics();
|
|
184
|
+
const logsEnabled = opts.logs !== false && feedbackLogsEnabled();
|
|
185
|
+
// Validate the serialized server request envelope before screenshots
|
|
186
|
+
// or the log bundle can create remote objects. Attachment references
|
|
187
|
+
// are added and checked again inside submitFeedback after upload.
|
|
188
|
+
validateFeedbackRequestSize(buildFeedbackRequestBody({
|
|
189
|
+
type,
|
|
190
|
+
title: opts.title,
|
|
191
|
+
body,
|
|
192
|
+
company: opts.company,
|
|
193
|
+
diagnostics,
|
|
194
|
+
}));
|
|
195
|
+
// vaultApiFetch can reject an hqk_ token or an invalid API base URL
|
|
196
|
+
// locally before fetch. Check the mandatory POST, and the screenshot
|
|
197
|
+
// presign when requested, before any upload can create an orphan.
|
|
198
|
+
assertVaultApiRequestSupported({ token, path: "/v1/feedback" });
|
|
199
|
+
if ((opts.screenshot ?? []).length > 0) {
|
|
200
|
+
assertVaultApiRequestSupported({
|
|
201
|
+
token,
|
|
202
|
+
path: "/v1/feedback/screenshots/presign",
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
// Upload screenshots (direct-to-S3 via presigned PUT) before the
|
|
206
|
+
// submission, so the row references uploaded objects.
|
|
160
207
|
const screenshots = await uploadScreenshots({
|
|
161
208
|
paths: opts.screenshot ?? [],
|
|
162
209
|
token,
|
|
@@ -167,7 +214,7 @@ function registerSubcommand(feedbackCmd, type) {
|
|
|
167
214
|
// this resolves undefined and the report still carries inline logs.
|
|
168
215
|
const logBundle = await uploadLogBundle({
|
|
169
216
|
token,
|
|
170
|
-
enabled:
|
|
217
|
+
enabled: logsEnabled,
|
|
171
218
|
});
|
|
172
219
|
const result = await submitFeedback({
|
|
173
220
|
type,
|
|
@@ -178,6 +225,8 @@ function registerSubcommand(feedbackCmd, type) {
|
|
|
178
225
|
screenshots,
|
|
179
226
|
includeLogs: opts.logs !== false,
|
|
180
227
|
logBundle,
|
|
228
|
+
diagnostics,
|
|
229
|
+
logsEnabled,
|
|
181
230
|
});
|
|
182
231
|
console.log(`Submitted: ${result.id}`);
|
|
183
232
|
}
|
|
@@ -31,11 +31,14 @@
|
|
|
31
31
|
* `toCompanyAnchored`.
|
|
32
32
|
*
|
|
33
33
|
* Cross-package note: depends on the `VaultClient.sts.vend`/`.vendSelf`
|
|
34
|
-
* methods
|
|
34
|
+
* methods from hq-cloud.
|
|
35
35
|
*/
|
|
36
36
|
import { Command } from "commander";
|
|
37
37
|
import { ListObjectsV2Command, GetObjectCommand, type ListObjectsV2CommandOutput, type GetObjectCommandOutput } from "@aws-sdk/client-s3";
|
|
38
38
|
import { VaultClient, type ExplicitGrant } from "@indigoai-us/hq-cloud";
|
|
39
|
+
import { type AclSource } from "../utils/files-browse-acl.js";
|
|
40
|
+
export { ACL_SOURCE_DISPLAY_LABELS, displayAclSource } from "../utils/files-browse-acl.js";
|
|
41
|
+
export type { AclSource } from "../utils/files-browse-acl.js";
|
|
39
42
|
/** STS-vended credential set the browse/cat path consumes. */
|
|
40
43
|
export interface BrowseCredentials {
|
|
41
44
|
accessKeyId: string;
|
|
@@ -110,14 +113,17 @@ export type CompanyBrowseClientFactory = (input: {
|
|
|
110
113
|
/**
|
|
111
114
|
* ACL provenance for a single listed key.
|
|
112
115
|
* - `shared-with-you`: an explicit grant the caller holds covers the key.
|
|
116
|
+
* - `creator`: a creator-only child grant (or its folder marker) covers the
|
|
117
|
+
* key; this is explicit creator access, not an owner/admin role bypass.
|
|
113
118
|
* - `role-bypass`: the caller has no covering explicit grant, but
|
|
114
119
|
* owner/admin role widened the browse-vend policy to include it.
|
|
115
120
|
* - `personal-vault`: the key lives in the caller's own person-entity
|
|
116
121
|
* vault, where no grants graph applies — the caller is the only
|
|
117
122
|
* principal with access by construction. Emitted only when
|
|
118
123
|
* `runBrowse({ personalMode: true })`.
|
|
124
|
+
* - `private-folder`: this is the private folder row itself. Its children
|
|
125
|
+
* are creator-only, so it never covers a child key.
|
|
119
126
|
*/
|
|
120
|
-
export type AclSource = "shared-with-you" | "role-bypass" | "personal-vault";
|
|
121
127
|
export interface BrowseRow {
|
|
122
128
|
key: string;
|
|
123
129
|
size: number;
|
|
@@ -148,16 +154,23 @@ export declare function toBucketRelative(pathOrPrefix: string, slug: string): st
|
|
|
148
154
|
export declare function toCompanyAnchored(bucketRelKey: string, slug: string): string;
|
|
149
155
|
/**
|
|
150
156
|
* Classify a single company-relative S3 key against the caller's
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
* the owner/admin role-bypass the `/sts/vend`
|
|
154
|
-
* prefix is a company-wide grant and matches
|
|
157
|
+
* raw explicit-grant patterns. `foo/*` covers all keys below `foo/`, while
|
|
158
|
+
* `foo/` is the private folder itself and never covers a child key. Otherwise
|
|
159
|
+
* the key is visible only via the owner/admin role-bypass the `/sts/vend`
|
|
160
|
+
* policy applied. An empty-string prefix is a company-wide grant and matches
|
|
161
|
+
* everything.
|
|
155
162
|
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
163
|
+
* The caller translates only the redundant company anchor before calling this;
|
|
164
|
+
* it must not coalesce a trailing slash into a glob, which would imply child
|
|
165
|
+
* access that the server did not grant.
|
|
159
166
|
*/
|
|
160
|
-
export declare function classifyAclSource(bucketRelKey: string,
|
|
167
|
+
export declare function classifyAclSource(bucketRelKey: string, grantPatterns: Array<string | BrowseGrantPattern>): AclSource;
|
|
168
|
+
export interface BrowseGrantPattern {
|
|
169
|
+
pattern: string;
|
|
170
|
+
source?: ExplicitGrant["source"];
|
|
171
|
+
}
|
|
172
|
+
/** Remove only the redundant company anchor; retain the ACL pattern itself. */
|
|
173
|
+
export declare function toBrowseGrantPattern(grantPath: string, slug: string): string;
|
|
161
174
|
/**
|
|
162
175
|
* Bright-line guard for `--out`: refuse to write any byte beneath
|
|
163
176
|
* `<hqRoot>/companies/`. We do NOT enumerate `companies/manifest.yaml`
|
|
@@ -439,6 +452,12 @@ export declare function createCompanyPresignClient(input: {
|
|
|
439
452
|
* (keys on these errors are bucket-relative and carry no slug).
|
|
440
453
|
*/
|
|
441
454
|
companySlug?: string;
|
|
455
|
+
/**
|
|
456
|
+
* Control-plane origin for list/presign calls. Defaults to
|
|
457
|
+
* DEFAULT_VAULT_API_URL (via vaultApiFetch); an enrolled agent passes its
|
|
458
|
+
* own `apiBaseUrl` so its token only goes to the API it enrolled against.
|
|
459
|
+
*/
|
|
460
|
+
baseUrl?: string;
|
|
442
461
|
}): FilesBrowseS3Client;
|
|
443
462
|
/**
|
|
444
463
|
* Production company-mode client factory — closes over the caller's token and
|
|
@@ -485,6 +504,7 @@ export declare function resolveBrowseSession(): Promise<{
|
|
|
485
504
|
* and registers `share`/`unshare`/`acl`; this function appends the two
|
|
486
505
|
* new browse-vs-sync subcommands so they share the `--company` switch.
|
|
487
506
|
*/
|
|
488
|
-
export declare function registerFilesBrowseCommands(filesCmd: Command
|
|
489
|
-
|
|
507
|
+
export declare function registerFilesBrowseCommands(filesCmd: Command, deps?: {
|
|
508
|
+
personalS3Factory?: S3ClientFactory;
|
|
509
|
+
}): void;
|
|
490
510
|
//# sourceMappingURL=files-browse.d.ts.map
|