@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
|
@@ -36,19 +36,21 @@ export declare const CHECKPOINT_REPLY_REMINDER: string;
|
|
|
36
36
|
* demands the findings), so the conditional half still points there.
|
|
37
37
|
*/
|
|
38
38
|
export declare const CHECKPOINT_IDLE_REPLY_REMINDER: string;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
export declare const SIBLING_PROMPT_TEMPLATE = "You are the HQ checkpoint sibling \u2014 a background maintenance agent for this\nHQ install. Your parent session's state is in <payloadPath>. Work\nquietly and do not ask questions; if something is ambiguous, record it in the\nreport instead of guessing.\n\n1. Read the payload. If it lists a transcript path that exists, read its tail (~400 lines)\n both for session context and to extract additional reusable learnings/insights\n the parent did not pass explicitly. Never quote secrets\n or tokens from the transcript. If .claude/skills/checkpoint/SKILL.md exists\n under this HQ root, read it and follow it wherever it goes beyond these instructions;\n the write bounds below always win over the skill text.\n2. Upgrade the thread file named in the payload IN PLACE: verify/repair its\n JSON; fill git.remote_url, git.initial_commit, git.commits_made, and\n git.knowledge_repos by scanning core/knowledge/public/*,\n core/knowledge/private/*, personal/knowledge/*, and companies/*/knowledge\n for symlinks or directories containing .git, recording dirty repositories\n as {\"<name>\": {\"commit\": \"<short>\", \"dirty\": true}}. Fill worker,\n next_steps, and insights; set type to \"checkpoint\"; then rename the file to\n drop -auto- from its filename. Use the renamed path in every reference you\n write afterwards.\n3. For every explicit or transcript-derived learning that is a reusable rule,\n FIRST search the existing policies for one the learning refines, contradicts\n or duplicates. Then take exactly one of these actions and name it in the\n report \u2014 the policy set is curated, not append-only:\n - AMEND an existing policy in place when the learning sharpens it, narrows\n its scope, or adds a case, and the rule as written is still correct.\n - SUPERSEDE it when the learning contradicts it: rewrite the rule to what is\n now true and record inside the file what changed and why.\n - MERGE near-duplicates into the single best-named file, then delete the\n files you merged away.\n - CREATE a new policy only when no existing policy covers the rule.\n Follow core/knowledge/public/hq-core/policies-spec.md. Write under\n personal/policies/ or, only when the payload names a company and the rule is\n company-specific, companies/<company>/policies/.\n DELETION BOUNDS: delete a policy only as the MERGE or SUPERSEDE step above,\n only inside those two directories, and never one whose body marks it HARD \u2014\n if a hard policy now looks wrong, leave it untouched and flag it in the\n report for a human to decide. Never delete a file you have not read.\n Apply the same curation to durable facts (not rules) under\n personal/knowledge/ or companies/<company>/knowledge/: correct a stale fact\n in place rather than appending a second, contradictory copy of it.\n Store up to two explicit or transcript-derived insights per\n core/knowledge/public/hq-core/insights-spec.md when present, otherwise\n workspace/insights/.\n4. Close an active session journal fail-soft with\n bash .claude/skills/_shared/journal.sh close \"<project_dir>\" \"<one-line synthesis>\".\n Write a legacy checkpoint JSON under workspace/checkpoints/<id>.json with\n id, created_at, summary, files, and next_steps for backward compatibility.\n5. Update workspace/threads/recent.md and regenerate\n workspace/threads/INDEX.md. For each company whose knowledge path appears\n in files_touched, regenerate companies/<company>/knowledge/INDEX.md under\n core/knowledge/public/hq-core/index-md-spec.md. Mechanical index generation\n is allowed for those companies, but knowledge/policy content writes remain\n restricted to the payload's named company.\n6. Run .claude/skills/document-release/SKILL.md best-effort when it exists;\n skip silently on any failure. Hook or automation improvements go ONLY under\n personal/hooks/ as proposals.\n7. WRITE BOUNDS: you may write only under personal/, workspace/, and companies/<company>/ as constrained above. You must NEVER write into .claude/, core/, .agents/, .codex/, repos/, or anywhere outside the HQ root.\n8. Write <runDir>/report.md \u2014 full prose: what you read, what you changed\n (paths), and what you skipped and why. List every policy or knowledge file\n you amended, superseded, merged or deleted with the reason, so a human can\n audit and reverse it; a deletion you do not name in the report is a defect.\n Then drain the queue: while\n workspace/checkpoints/sibling/pending.jsonl exists and is non-empty, claim\n it atomically by renaming it aside \u2014\n mv workspace/checkpoints/sibling/pending.jsonl <runDir>/pending-claimed-N.jsonl\n (N counting up from 2) \u2014 and process the claimed payloads with this same\n flow. Repeat until a claim finds nothing left, then update the report.\n NEVER read the queue and truncate it in place: a payload appended between\n your read and the truncate is lost, and its checkpoint is never enriched.\n";
|
|
44
|
-
export declare function renderSiblingPrompt(runDir: string, payloadPath: string): string;
|
|
39
|
+
export declare function renderSiblingPrompt(runDir: string, payloadPath: string, options?: {
|
|
40
|
+
company?: string | null;
|
|
41
|
+
hqRoot?: string;
|
|
42
|
+
}): string;
|
|
45
43
|
export type WriteStampsOptions = {
|
|
46
44
|
/**
|
|
47
45
|
* Filesystem seam (default the real `node:fs`); injected in tests to force a
|
|
48
46
|
* permission errno so the HqStateWriteError conversion can be proven without a
|
|
49
47
|
* real unwritable path.
|
|
50
48
|
*/
|
|
51
|
-
fs?: Pick<typeof fs, "mkdirSync" | "writeFileSync">;
|
|
49
|
+
fs?: Pick<typeof fs, "mkdirSync" | "writeFileSync" | "renameSync" | "unlinkSync">;
|
|
50
|
+
/** Runtime seam for proving the Windows-only atomic path without host assumptions. */
|
|
51
|
+
platform?: NodeJS.Platform;
|
|
52
|
+
/** Synchronous delay seam for the bounded Windows lock retry. */
|
|
53
|
+
waitForRetry?: (delayMs: number) => void;
|
|
52
54
|
};
|
|
53
55
|
export declare function writeStamps(liveRoot: string, sessionId: string | undefined, options?: WriteStampsOptions): string[];
|
|
54
56
|
/**
|
|
@@ -56,9 +58,17 @@ export declare function writeStamps(liveRoot: string, sessionId: string | undefi
|
|
|
56
58
|
* claude session keeps using claude and a codex session keeps using codex
|
|
57
59
|
* (same-engine continuity), then the fallback priority claude -> codex -> grok
|
|
58
60
|
* for whatever the caller is not. Deterministic and env-only, so it is unit
|
|
59
|
-
* tested directly.
|
|
61
|
+
* tested directly. `preferGrok` (the company's grok-backend flag) puts grok
|
|
62
|
+
* ahead of that order and leaves the rest as the fallback.
|
|
63
|
+
*/
|
|
64
|
+
export declare function autoBackendPreference(preferGrok?: boolean): SpawnableBackend[];
|
|
65
|
+
/**
|
|
66
|
+
* Whether the payload company's last ontology plan recorded
|
|
67
|
+
* checkpoint.ontology.grok-backend as on. Reads only the local state file the
|
|
68
|
+
* detached sibling writes, so a foreground checkpoint never waits on the flag
|
|
69
|
+
* registry; a flag change takes effect from the checkpoint after the next plan.
|
|
60
70
|
*/
|
|
61
|
-
export declare function
|
|
71
|
+
export declare function companyPrefersGrok(liveRoot: string, companySlug: string | null | undefined): boolean;
|
|
62
72
|
export declare function siblingArgs(backend: SpawnableBackend, prompt: string): string[];
|
|
63
73
|
/** Attach the native checkpoint command to the hidden `hq core` group. */
|
|
64
74
|
export declare function registerCoreCheckpointCommand(core: Command): void;
|
|
@@ -8,20 +8,26 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import * as fs from "node:fs";
|
|
10
10
|
import * as path from "node:path";
|
|
11
|
+
import { randomUUID } from "node:crypto";
|
|
11
12
|
import { execFileSync, spawn } from "node:child_process";
|
|
12
13
|
import { homedir } from "node:os";
|
|
13
14
|
import { resolveLiveRoot } from "../utils/hq-roots.js";
|
|
14
15
|
import { peekIdToken } from "../utils/id-token.js";
|
|
15
16
|
import { toHqStateWriteError } from "../utils/hq-state-write-error.js";
|
|
17
|
+
import { checkpointStampWriteErrorFor, isCheckpointStampWriteError, } from "../utils/checkpoint-stamp-write-error.js";
|
|
18
|
+
import { readBackendPreference } from "../lib/checkpoint-ontology/plan.js";
|
|
19
|
+
import { resolveOntologyCompany } from "../lib/checkpoint-ontology/company.js";
|
|
20
|
+
import { markBorrowed, oldestQueuedCompany, recordQueuedTouches } from "../lib/checkpoint-ontology/queued-touches.js";
|
|
21
|
+
import { describeCoreCommand } from "./core-command-catalog.js";
|
|
16
22
|
const DEFAULT_TRIGGER = "stop-gate";
|
|
17
23
|
const BACKENDS = new Set(["auto", "claude", "codex", "grok", "none"]);
|
|
18
|
-
// Pinned by operator directive 2026-
|
|
24
|
+
// Pinned by operator directive 2026-09-15; change defaults here deliberately.
|
|
19
25
|
const CODEX_SIBLING_MODEL = "gpt-5.6-terra";
|
|
20
|
-
const CODEX_SIBLING_REASONING_EFFORT = "
|
|
21
|
-
const CLAUDE_SIBLING_MODEL = "claude-
|
|
26
|
+
const CODEX_SIBLING_REASONING_EFFORT = "medium";
|
|
27
|
+
const CLAUDE_SIBLING_MODEL = "claude-sonnet-5";
|
|
22
28
|
const CLAUDE_SIBLING_EFFORT = "medium";
|
|
23
|
-
const GROK_SIBLING_MODEL = "grok-4.
|
|
24
|
-
const GROK_SIBLING_EFFORT = "
|
|
29
|
+
const GROK_SIBLING_MODEL = "grok-4.6";
|
|
30
|
+
const GROK_SIBLING_EFFORT = "medium";
|
|
25
31
|
/**
|
|
26
32
|
* `grok -p` is single-turn by default: without a turn budget it answers with a
|
|
27
33
|
* plan and exits, having done nothing. The maintenance flow needs many turns.
|
|
@@ -32,6 +38,31 @@ const GROK_SIBLING_MAX_TURNS = "100";
|
|
|
32
38
|
* unavailable, unresponsive, out of credits (surfaces as a crashed run), or
|
|
33
39
|
* simply unknown. First healthy candidate wins.
|
|
34
40
|
*/
|
|
41
|
+
/**
|
|
42
|
+
* Durable opt-out for the maintenance sibling, read from the HQ root's
|
|
43
|
+
* `.claude/settings.json` (overlaid by `settings.local.json`, the same order
|
|
44
|
+
* Claude Code merges them):
|
|
45
|
+
*
|
|
46
|
+
* { "env": { "HQ_CHECKPOINT_AGENT": "0" } }
|
|
47
|
+
*
|
|
48
|
+
* `--no-agent` and `--backend none` already turn the sibling off, but only for
|
|
49
|
+
* one invocation — no help when the checkpoint is fired by the Stop gate,
|
|
50
|
+
* where the user has no command line to edit. The sibling is the expensive
|
|
51
|
+
* half of a checkpoint (an unattended agent turn per Stop), so the off switch
|
|
52
|
+
* has to be somewhere a user can set it once. The `env` block is that place:
|
|
53
|
+
* Claude Code already exports it into hook processes, and reading the file
|
|
54
|
+
* directly means the setting also holds for the Codex and grok gates, whose
|
|
55
|
+
* hosts never read it.
|
|
56
|
+
*/
|
|
57
|
+
const SIBLING_SETTING = "HQ_CHECKPOINT_AGENT";
|
|
58
|
+
/**
|
|
59
|
+
* The Stop gate's own switch. Resolved through the same settings file as the
|
|
60
|
+
* sibling switch so it reaches Codex and grok, whose hosts never export the
|
|
61
|
+
* `.claude/settings.json` `env` block into a hook process.
|
|
62
|
+
*/
|
|
63
|
+
const GATE_SETTING = "HQ_CHECKPOINT_GATE";
|
|
64
|
+
const SIBLING_SETTING_OFF = new Set(["0", "false", "off", "no"]);
|
|
65
|
+
const SIBLING_SETTING_ON = new Set(["1", "true", "on", "yes"]);
|
|
35
66
|
const FALLBACK_BACKEND_ORDER = ["claude", "codex", "grok"];
|
|
36
67
|
/** A backend that cannot answer `--version` this fast is treated as broken. */
|
|
37
68
|
const BACKEND_PROBE_TIMEOUT_MS = 10_000;
|
|
@@ -84,7 +115,7 @@ function printError(line) {
|
|
|
84
115
|
* Kept in TypeScript rather than in a bundled asset: it is an instruction to
|
|
85
116
|
* a locally-installed agent, not a scaffold script that should be packaged.
|
|
86
117
|
*/
|
|
87
|
-
|
|
118
|
+
const SIBLING_PROMPT_TEMPLATE = `You are the HQ checkpoint sibling — a background maintenance agent for this
|
|
88
119
|
HQ install. Your parent session's state is in <payloadPath>. Work
|
|
89
120
|
quietly and do not ask questions; if something is ambiguous, record it in the
|
|
90
121
|
report instead of guessing.
|
|
@@ -138,7 +169,7 @@ report instead of guessing.
|
|
|
138
169
|
core/knowledge/public/hq-core/index-md-spec.md. Mechanical index generation
|
|
139
170
|
is allowed for those companies, but knowledge/policy content writes remain
|
|
140
171
|
restricted to the payload's named company.
|
|
141
|
-
6. Run .claude/skills/document-release/SKILL.md best-effort when it exists;
|
|
172
|
+
<ontologyStep>6. Run .claude/skills/document-release/SKILL.md best-effort when it exists;
|
|
142
173
|
skip silently on any failure. Hook or automation improvements go ONLY under
|
|
143
174
|
personal/hooks/ as proposals.
|
|
144
175
|
7. WRITE BOUNDS: you may write only under personal/, workspace/, and companies/<company>/ as constrained above. You must NEVER write into .claude/, core/, .agents/, .codex/, repos/, or anywhere outside the HQ root.
|
|
@@ -155,10 +186,33 @@ report instead of guessing.
|
|
|
155
186
|
NEVER read the queue and truncate it in place: a payload appended between
|
|
156
187
|
your read and the truncate is lost, and its checkpoint is never enriched.
|
|
157
188
|
`;
|
|
158
|
-
|
|
189
|
+
/**
|
|
190
|
+
* Rendered into the sibling prompt only when the payload names a company. The
|
|
191
|
+
* flag check happens inside `hq core ontology plan`, in the sibling, because
|
|
192
|
+
* the checkpoint parent performs no network I/O. Only this run's own payload
|
|
193
|
+
* gets the step. A queued payload's company files are recorded as queued
|
|
194
|
+
* touches when it is queued (CO-59), and a later plan for that company takes
|
|
195
|
+
* them while checkpoint.ontology.queued-touches is on; a run with no company
|
|
196
|
+
* of its own gets the step for the company whose touches waited longest.
|
|
197
|
+
*/
|
|
198
|
+
const SIBLING_ONTOLOGY_STEP = `5b. ONTOLOGY (this run's own payload only; skip it for claimed queue payloads).
|
|
199
|
+
Run: hq core ontology plan --run-dir "<runDir>" --hq-root "<hqRoot>"
|
|
200
|
+
If it prints "ontology: skipped", do nothing more for this step. Otherwise
|
|
201
|
+
read <runDir>/ontology-plan.json, follow its "instructions" exactly, and
|
|
202
|
+
write <runDir>/ontology-candidates.json. Read only the files and line
|
|
203
|
+
ranges the plan lists. Then run:
|
|
204
|
+
hq core ontology apply --run-dir "<runDir>" --hq-root "<hqRoot>"
|
|
205
|
+
Never write under the company's ontology/ folder yourself, and never edit
|
|
206
|
+
payload.json or ontology-plan.json. Copy the command's one-line output into
|
|
207
|
+
the report. If either command fails, record the error and continue.
|
|
208
|
+
`;
|
|
209
|
+
export function renderSiblingPrompt(runDir, payloadPath, options = {}) {
|
|
210
|
+
const ontologyStep = options.company && options.hqRoot ? SIBLING_ONTOLOGY_STEP : "";
|
|
159
211
|
return SIBLING_PROMPT_TEMPLATE
|
|
212
|
+
.replaceAll("<ontologyStep>", () => ontologyStep)
|
|
160
213
|
.replaceAll("<runDir>", () => runDir)
|
|
161
|
-
.replaceAll("<payloadPath>", () => payloadPath)
|
|
214
|
+
.replaceAll("<payloadPath>", () => payloadPath)
|
|
215
|
+
.replaceAll("<hqRoot>", () => options.hqRoot ?? "");
|
|
162
216
|
}
|
|
163
217
|
function collect(value, previous) {
|
|
164
218
|
return [...previous, value];
|
|
@@ -383,14 +437,65 @@ function writeHqState(targetPath, operation, perform) {
|
|
|
383
437
|
perform();
|
|
384
438
|
}
|
|
385
439
|
catch (error) {
|
|
440
|
+
if (isCheckpointStampWriteError(error))
|
|
441
|
+
throw error;
|
|
386
442
|
const typed = toHqStateWriteError(error, targetPath, operation);
|
|
387
443
|
if (typed)
|
|
388
444
|
throw typed;
|
|
389
445
|
throw error;
|
|
390
446
|
}
|
|
391
447
|
}
|
|
448
|
+
const WINDOWS_CHECKPOINT_WRITE_RETRY_CODES = new Set(["EBUSY", "EPERM", "UNKNOWN"]);
|
|
449
|
+
const WINDOWS_CHECKPOINT_WRITE_RETRY_DELAYS_MS = [25, 50, 100];
|
|
450
|
+
function waitForCheckpointWriteRetry(delayMs) {
|
|
451
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT)), 0, 0, delayMs);
|
|
452
|
+
}
|
|
453
|
+
function removeCheckpointStampTemp(tempPath, fsImpl, waitForRetry) {
|
|
454
|
+
for (let attempt = 0;; attempt += 1) {
|
|
455
|
+
try {
|
|
456
|
+
fsImpl.unlinkSync(tempPath);
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
catch (error) {
|
|
460
|
+
const code = error?.code;
|
|
461
|
+
if (code === "ENOENT")
|
|
462
|
+
return;
|
|
463
|
+
if (typeof code === "string" &&
|
|
464
|
+
WINDOWS_CHECKPOINT_WRITE_RETRY_CODES.has(code) &&
|
|
465
|
+
attempt < WINDOWS_CHECKPOINT_WRITE_RETRY_DELAYS_MS.length) {
|
|
466
|
+
waitForRetry(WINDOWS_CHECKPOINT_WRITE_RETRY_DELAYS_MS[attempt]);
|
|
467
|
+
continue;
|
|
468
|
+
}
|
|
469
|
+
throw checkpointStampWriteErrorFor(error, "unlink") ?? error;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
function writeCheckpointStampAtomically(targetPath, contents, fsImpl, waitForRetry) {
|
|
474
|
+
for (let attempt = 0;; attempt += 1) {
|
|
475
|
+
const tempPath = path.join(path.dirname(targetPath), `.hq-checkpoint-stamp.tmp.${process.pid}.${randomUUID()}`);
|
|
476
|
+
let failedOperation = "open";
|
|
477
|
+
try {
|
|
478
|
+
fsImpl.writeFileSync(tempPath, contents, { flag: "wx" });
|
|
479
|
+
failedOperation = "rename";
|
|
480
|
+
fsImpl.renameSync(tempPath, targetPath);
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
catch (error) {
|
|
484
|
+
removeCheckpointStampTemp(tempPath, fsImpl, waitForRetry);
|
|
485
|
+
const code = error?.code;
|
|
486
|
+
if (typeof code !== "string" ||
|
|
487
|
+
!WINDOWS_CHECKPOINT_WRITE_RETRY_CODES.has(code) ||
|
|
488
|
+
attempt >= WINDOWS_CHECKPOINT_WRITE_RETRY_DELAYS_MS.length) {
|
|
489
|
+
throw checkpointStampWriteErrorFor(error, failedOperation) ?? error;
|
|
490
|
+
}
|
|
491
|
+
waitForRetry(WINDOWS_CHECKPOINT_WRITE_RETRY_DELAYS_MS[attempt]);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}
|
|
392
495
|
export function writeStamps(liveRoot, sessionId, options = {}) {
|
|
393
496
|
const fsImpl = options.fs ?? fs;
|
|
497
|
+
const platform = options.platform ?? process.platform;
|
|
498
|
+
const waitForRetry = options.waitForRetry ?? waitForCheckpointWriteRetry;
|
|
394
499
|
const stateDir = path.join(liveRoot, "workspace", "orchestrator", "hook-state");
|
|
395
500
|
writeHqState(stateDir, "create the checkpoint state directory", () => fsImpl.mkdirSync(stateDir, { recursive: true }));
|
|
396
501
|
const sessionKey = sessionId
|
|
@@ -402,7 +507,9 @@ export function writeStamps(liveRoot, sessionId, options = {}) {
|
|
|
402
507
|
path.join(stateDir, `checkpoint-cli-last-${sessionKey}`),
|
|
403
508
|
];
|
|
404
509
|
for (const stampPath of stampPaths) {
|
|
405
|
-
writeHqState(stampPath, "write its checkpoint state file", () =>
|
|
510
|
+
writeHqState(stampPath, "write its checkpoint state file", () => platform === "win32"
|
|
511
|
+
? writeCheckpointStampAtomically(stampPath, timestamp, fsImpl, waitForRetry)
|
|
512
|
+
: fsImpl.writeFileSync(stampPath, timestamp));
|
|
406
513
|
}
|
|
407
514
|
return stampPaths;
|
|
408
515
|
}
|
|
@@ -426,12 +533,13 @@ function checkpointGateRuntime() {
|
|
|
426
533
|
return runtime;
|
|
427
534
|
return "other";
|
|
428
535
|
}
|
|
429
|
-
function gateEligibility(runtime) {
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
536
|
+
function gateEligibility(runtime, liveRoot) {
|
|
537
|
+
// An operator switch precedes runtime and identity eligibility, and is read
|
|
538
|
+
// from the settings file as well as the environment: under Codex and grok the
|
|
539
|
+
// environment is the one place the operator cannot reach.
|
|
540
|
+
const forced = resolveSwitchSetting(liveRoot, GATE_SETTING);
|
|
541
|
+
if (forced !== undefined)
|
|
542
|
+
return forced;
|
|
435
543
|
if (runtime === "claude")
|
|
436
544
|
return true;
|
|
437
545
|
if (runtime !== "codex")
|
|
@@ -453,7 +561,7 @@ function writeGateVerdict(liveRoot) {
|
|
|
453
561
|
const stateDir = path.join(liveRoot, "workspace", "orchestrator", "hook-state");
|
|
454
562
|
fs.mkdirSync(stateDir, { recursive: true });
|
|
455
563
|
const runtime = checkpointGateRuntime();
|
|
456
|
-
const eligible = gateEligibility(runtime);
|
|
564
|
+
const eligible = gateEligibility(runtime, liveRoot);
|
|
457
565
|
fs.writeFileSync(path.join(stateDir, `checkpoint-gate-eligible-${runtime}`), eligible ? "1" : "0");
|
|
458
566
|
printResult(eligible ? "eligible" : "ineligible");
|
|
459
567
|
}
|
|
@@ -570,22 +678,128 @@ function callerBackend() {
|
|
|
570
678
|
* claude session keeps using claude and a codex session keeps using codex
|
|
571
679
|
* (same-engine continuity), then the fallback priority claude -> codex -> grok
|
|
572
680
|
* for whatever the caller is not. Deterministic and env-only, so it is unit
|
|
573
|
-
* tested directly.
|
|
681
|
+
* tested directly. `preferGrok` (the company's grok-backend flag) puts grok
|
|
682
|
+
* ahead of that order and leaves the rest as the fallback.
|
|
574
683
|
*/
|
|
575
|
-
export function autoBackendPreference() {
|
|
684
|
+
export function autoBackendPreference(preferGrok = false) {
|
|
576
685
|
const caller = callerBackend();
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
686
|
+
const order = caller
|
|
687
|
+
? [caller, ...FALLBACK_BACKEND_ORDER.filter((name) => name !== caller)]
|
|
688
|
+
: [...FALLBACK_BACKEND_ORDER];
|
|
689
|
+
return preferGrok ? ["grok", ...order.filter((name) => name !== "grok")] : order;
|
|
690
|
+
}
|
|
691
|
+
/**
|
|
692
|
+
* Whether the payload company's last ontology plan recorded
|
|
693
|
+
* checkpoint.ontology.grok-backend as on. Reads only the local state file the
|
|
694
|
+
* detached sibling writes, so a foreground checkpoint never waits on the flag
|
|
695
|
+
* registry; a flag change takes effect from the checkpoint after the next plan.
|
|
696
|
+
*/
|
|
697
|
+
export function companyPrefersGrok(liveRoot, companySlug) {
|
|
698
|
+
const resolved = resolveOntologyCompany(liveRoot, companySlug);
|
|
699
|
+
if (!resolved.ok)
|
|
700
|
+
return false;
|
|
701
|
+
try {
|
|
702
|
+
return readBackendPreference(liveRoot, resolved.company);
|
|
703
|
+
}
|
|
704
|
+
catch (error) {
|
|
705
|
+
// A damaged state file must not stop the checkpoint; the usual order applies.
|
|
706
|
+
printError(`checkpoint: ignoring unreadable backend preference for ${resolved.company.slug}: ${error.message}`);
|
|
707
|
+
return false;
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
function settingsEnvValue(liveRoot, key) {
|
|
711
|
+
// settings.local.json wins, matching Claude Code's own merge order.
|
|
712
|
+
for (const file of ["settings.local.json", "settings.json"]) {
|
|
713
|
+
const settingsPath = path.join(liveRoot, ".claude", file);
|
|
714
|
+
let contents;
|
|
715
|
+
try {
|
|
716
|
+
contents = fs.readFileSync(settingsPath, "utf8");
|
|
717
|
+
}
|
|
718
|
+
catch {
|
|
719
|
+
continue; // absent overlay or no .claude directory at all
|
|
720
|
+
}
|
|
721
|
+
let env;
|
|
722
|
+
try {
|
|
723
|
+
env = JSON.parse(contents)?.env;
|
|
724
|
+
}
|
|
725
|
+
catch {
|
|
726
|
+
printError(`checkpoint: ignoring ${settingsPath} (not valid JSON)`);
|
|
727
|
+
continue;
|
|
728
|
+
}
|
|
729
|
+
if (!env || typeof env !== "object" || !(key in env))
|
|
730
|
+
continue;
|
|
731
|
+
const raw = env[key];
|
|
732
|
+
if (typeof raw === "string") {
|
|
733
|
+
const trimmed = raw.trim();
|
|
734
|
+
// An empty string is not a deferral to the next file: the key is here and
|
|
735
|
+
// says nothing, which is a mistake worth naming.
|
|
736
|
+
return trimmed
|
|
737
|
+
? { kind: "value", value: trimmed, source: settingsPath }
|
|
738
|
+
: { kind: "invalid", source: settingsPath, raw };
|
|
739
|
+
}
|
|
740
|
+
// Claude Code's env block takes strings, but JSON's own `false`/`0` is what
|
|
741
|
+
// a user reaches for first. Honour it rather than ignoring the intent.
|
|
742
|
+
if (typeof raw === "boolean" || typeof raw === "number") {
|
|
743
|
+
return { kind: "value", value: String(raw), source: settingsPath };
|
|
744
|
+
}
|
|
745
|
+
return { kind: "invalid", source: settingsPath, raw };
|
|
746
|
+
}
|
|
747
|
+
return { kind: "absent" };
|
|
748
|
+
}
|
|
749
|
+
/** Maps one resolved value onto the switch, reporting a vocabulary it cannot read. */
|
|
750
|
+
function parseSwitchSetting(key, raw, source) {
|
|
751
|
+
const value = raw.toLowerCase();
|
|
752
|
+
if (SIBLING_SETTING_OFF.has(value))
|
|
753
|
+
return false;
|
|
754
|
+
if (SIBLING_SETTING_ON.has(value))
|
|
755
|
+
return true;
|
|
756
|
+
printError(`checkpoint: ignoring ${key}=${raw} from ${source} ` +
|
|
757
|
+
"(expected 0/1, false/true, off/on or no/yes)");
|
|
758
|
+
return undefined;
|
|
759
|
+
}
|
|
760
|
+
/**
|
|
761
|
+
* One operator switch: the process environment first, then the HQ root's
|
|
762
|
+
* Claude settings. `undefined` means nobody set it — distinct from a setting
|
|
763
|
+
* that says "off", and distinct from one this cannot read (reported, then
|
|
764
|
+
* treated as unset so a typo never silently flips a default).
|
|
765
|
+
*/
|
|
766
|
+
function resolveSwitchSetting(liveRoot, key) {
|
|
767
|
+
const fromEnv = process.env[key]?.trim();
|
|
768
|
+
if (fromEnv)
|
|
769
|
+
return parseSwitchSetting(key, fromEnv, "the environment");
|
|
770
|
+
const lookup = settingsEnvValue(liveRoot, key);
|
|
771
|
+
if (lookup.kind === "absent")
|
|
772
|
+
return undefined;
|
|
773
|
+
if (lookup.kind === "invalid") {
|
|
774
|
+
printError(`checkpoint: ignoring ${key} in ${lookup.source}: ` +
|
|
775
|
+
`${JSON.stringify(lookup.raw) ?? String(lookup.raw)} is not a value it can read ` +
|
|
776
|
+
'(expected a string such as "0" or "1")');
|
|
777
|
+
return undefined;
|
|
778
|
+
}
|
|
779
|
+
return parseSwitchSetting(key, lookup.value, lookup.source);
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* Whether the maintenance sibling may run at all. The process environment wins
|
|
783
|
+
* over the settings file, so a one-off `HQ_CHECKPOINT_AGENT=0 hq core
|
|
784
|
+
* checkpoint …` still works and a host that exports the settings `env` block
|
|
785
|
+
* (Claude Code does) agrees with a host that does not.
|
|
786
|
+
*/
|
|
787
|
+
function siblingEnabledBySetting(liveRoot) {
|
|
788
|
+
return resolveSwitchSetting(liveRoot, SIBLING_SETTING) ?? true;
|
|
580
789
|
}
|
|
581
|
-
|
|
790
|
+
/** Rejects an unknown `--backend` without paying for the probe that resolves one. */
|
|
791
|
+
function assertKnownBackend(requested) {
|
|
582
792
|
const value = requested ?? "auto";
|
|
583
793
|
if (!BACKENDS.has(value))
|
|
584
794
|
usage(`checkpoint: unknown backend: ${value}`);
|
|
795
|
+
return value;
|
|
796
|
+
}
|
|
797
|
+
function resolveBackend(requested, liveRoot, company) {
|
|
798
|
+
const value = assertKnownBackend(requested);
|
|
585
799
|
// An explicitly named backend is honoured as given; only `auto` shops around.
|
|
586
800
|
if (value !== "auto")
|
|
587
801
|
return value;
|
|
588
|
-
const available = autoBackendPreference().filter((name) => backendOnPath(name) && backendResponds(name));
|
|
802
|
+
const available = autoBackendPreference(companyPrefersGrok(liveRoot, company)).filter((name) => backendOnPath(name) && backendResponds(name));
|
|
589
803
|
if (available.length === 0)
|
|
590
804
|
return "none";
|
|
591
805
|
const crashed = crashedBackends(path.join(liveRoot, "workspace", "checkpoints", "sibling"));
|
|
@@ -593,6 +807,24 @@ function resolveBackend(requested, liveRoot) {
|
|
|
593
807
|
// failure is a weaker signal than running no maintenance sibling at all.
|
|
594
808
|
return available.find((name) => !crashed.has(name)) ?? available[0];
|
|
595
809
|
}
|
|
810
|
+
/**
|
|
811
|
+
* Lane identity a checkpoint caller may carry. The sibling is HQ maintenance,
|
|
812
|
+
* not the lane: with HQ_LANE_ID set, the lane drop-box hook hands the lane's
|
|
813
|
+
* operator messages to the sibling, and the lane never sees them.
|
|
814
|
+
*/
|
|
815
|
+
const LANE_ENV_KEYS = ["HQ_LANE_ID", "HQ_PROJECT_ID", "HQ_STORY_ID", "HQ_POLICY_WORKER_DIR"];
|
|
816
|
+
/** The sibling's environment: the caller's, minus lane identity. */
|
|
817
|
+
function siblingEnv(base, backend) {
|
|
818
|
+
const vars = { ...base };
|
|
819
|
+
for (const name of LANE_ENV_KEYS)
|
|
820
|
+
delete vars[name];
|
|
821
|
+
// This prevents the scaffold Stop hook from recursively launching a
|
|
822
|
+
// sibling when the background agent itself finishes a turn.
|
|
823
|
+
vars.HQ_CHECKPOINT_SIBLING = "1";
|
|
824
|
+
if (backend === "claude")
|
|
825
|
+
vars.CLAUDE_EFFORT = CLAUDE_SIBLING_EFFORT;
|
|
826
|
+
return vars;
|
|
827
|
+
}
|
|
596
828
|
export function siblingArgs(backend, prompt) {
|
|
597
829
|
switch (backend) {
|
|
598
830
|
case "claude":
|
|
@@ -772,15 +1004,43 @@ function startSibling(liveRoot, input, threadPath, backend) {
|
|
|
772
1004
|
fs.mkdirSync(siblingRoot, { recursive: true });
|
|
773
1005
|
if (activePid !== null) {
|
|
774
1006
|
const depth = appendPending(pendingPath, payload);
|
|
1007
|
+
try {
|
|
1008
|
+
recordQueuedTouches(liveRoot, payload.company, payload.files, new Date());
|
|
1009
|
+
}
|
|
1010
|
+
catch {
|
|
1011
|
+
// Queued touches only help a later ontology plan; they must never fail
|
|
1012
|
+
// the checkpoint itself.
|
|
1013
|
+
}
|
|
775
1014
|
printResult(`checkpoint: sibling busy — payload queued (${depth} pending)`);
|
|
776
1015
|
return;
|
|
777
1016
|
}
|
|
778
1017
|
const runDir = path.join(siblingRoot, `${formatTimestamp(new Date())}-${summarySlug(input.summary ?? "checkpoint")}`);
|
|
779
1018
|
fs.mkdirSync(runDir, { recursive: true });
|
|
780
1019
|
payload.pending_payloads = claimPending(pendingPath, path.join(runDir, "pending-claimed.jsonl"));
|
|
1020
|
+
if (!payload.company) {
|
|
1021
|
+
let queued;
|
|
1022
|
+
try {
|
|
1023
|
+
queued = oldestQueuedCompany(liveRoot);
|
|
1024
|
+
}
|
|
1025
|
+
catch {
|
|
1026
|
+
queued = null;
|
|
1027
|
+
}
|
|
1028
|
+
if (queued) {
|
|
1029
|
+
payload.ontology_company = queued;
|
|
1030
|
+
try {
|
|
1031
|
+
markBorrowed(liveRoot, queued, new Date());
|
|
1032
|
+
}
|
|
1033
|
+
catch {
|
|
1034
|
+
// A borrowed-company marker must never fail the checkpoint.
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
781
1038
|
const payloadPath = path.join(runDir, "payload.json");
|
|
782
1039
|
fs.writeFileSync(payloadPath, `${JSON.stringify(payload, null, 2)}\n`);
|
|
783
|
-
const prompt = renderSiblingPrompt(runDir, payloadPath
|
|
1040
|
+
const prompt = renderSiblingPrompt(runDir, payloadPath, {
|
|
1041
|
+
company: payload.company ?? payload.ontology_company ?? null,
|
|
1042
|
+
hqRoot: liveRoot,
|
|
1043
|
+
});
|
|
784
1044
|
fs.writeFileSync(path.join(runDir, "prompt.md"), prompt);
|
|
785
1045
|
const logPath = path.join(runDir, "run.log");
|
|
786
1046
|
const logFd = fs.openSync(logPath, "a");
|
|
@@ -789,15 +1049,10 @@ function startSibling(liveRoot, input, threadPath, backend) {
|
|
|
789
1049
|
try {
|
|
790
1050
|
child = spawn(backend, args, {
|
|
791
1051
|
detached: true,
|
|
1052
|
+
windowsHide: true,
|
|
792
1053
|
cwd: liveRoot,
|
|
793
1054
|
stdio: ["ignore", logFd, logFd],
|
|
794
|
-
|
|
795
|
-
// sibling when the background agent itself finishes a turn.
|
|
796
|
-
env: {
|
|
797
|
-
...process.env,
|
|
798
|
-
HQ_CHECKPOINT_SIBLING: "1",
|
|
799
|
-
...(backend === "claude" ? { CLAUDE_EFFORT: CLAUDE_SIBLING_EFFORT } : {}),
|
|
800
|
-
},
|
|
1055
|
+
env: siblingEnv(process.env, backend),
|
|
801
1056
|
});
|
|
802
1057
|
}
|
|
803
1058
|
finally {
|
|
@@ -869,7 +1124,12 @@ function runCheckpoint(options, command, group) {
|
|
|
869
1124
|
if (!input.summary?.trim()) {
|
|
870
1125
|
usage("checkpoint: --summary is required unless --idle or --gate-probe is used");
|
|
871
1126
|
}
|
|
872
|
-
|
|
1127
|
+
// Resolved before resolveBackend so an opted-out run pays for no backend
|
|
1128
|
+
// probe: `--backend auto` shells out to every installed CLI for a version.
|
|
1129
|
+
const siblingOptOut = options.agent === false || !siblingEnabledBySetting(liveRoot);
|
|
1130
|
+
// Validated even when nothing will spawn, so `--backend bogus` is still an error.
|
|
1131
|
+
const requestedBackend = assertKnownBackend(options.backend);
|
|
1132
|
+
const backend = siblingOptOut ? "none" : resolveBackend(requestedBackend, liveRoot, input.company);
|
|
873
1133
|
const now = new Date();
|
|
874
1134
|
const threadId = `T-${formatTimestamp(now)}-auto-${summarySlug(input.summary)}`;
|
|
875
1135
|
const threadPath = path.join(liveRoot, "workspace", "threads", `${threadId}.json`);
|
|
@@ -890,7 +1150,7 @@ function runCheckpoint(options, command, group) {
|
|
|
890
1150
|
worker: input.worker,
|
|
891
1151
|
},
|
|
892
1152
|
stamps: stampPaths.map((stampPath) => path.relative(liveRoot, stampPath)),
|
|
893
|
-
sibling:
|
|
1153
|
+
sibling: siblingOptOut ? null : { backend },
|
|
894
1154
|
});
|
|
895
1155
|
return;
|
|
896
1156
|
}
|
|
@@ -926,7 +1186,10 @@ function runCheckpoint(options, command, group) {
|
|
|
926
1186
|
// requested backend that is not installed).
|
|
927
1187
|
try {
|
|
928
1188
|
if (options.agent !== false) {
|
|
929
|
-
if (
|
|
1189
|
+
if (siblingOptOut) {
|
|
1190
|
+
printResult(`checkpoint: sibling disabled (${SIBLING_SETTING})`);
|
|
1191
|
+
}
|
|
1192
|
+
else if (backend === "none") {
|
|
930
1193
|
printResult("checkpoint: sibling disabled (backend none)");
|
|
931
1194
|
}
|
|
932
1195
|
else {
|
|
@@ -945,7 +1208,7 @@ function reportUsage(error) {
|
|
|
945
1208
|
}
|
|
946
1209
|
/** Attach the native checkpoint command to the hidden `hq core` group. */
|
|
947
1210
|
export function registerCoreCheckpointCommand(core) {
|
|
948
|
-
core
|
|
1211
|
+
const checkpoint = core
|
|
949
1212
|
.command("checkpoint")
|
|
950
1213
|
.description("Record an end-of-turn checkpoint and start HQ maintenance")
|
|
951
1214
|
.option("--summary <text>", "1–2 sentence outcome summary")
|
|
@@ -966,7 +1229,7 @@ export function registerCoreCheckpointCommand(core) {
|
|
|
966
1229
|
.option("--transcript <path>", "session transcript path")
|
|
967
1230
|
.option("--payload <file|->", "JSON payload file, or - for stdin")
|
|
968
1231
|
.option("--idle", "touch stamps without a checkpoint")
|
|
969
|
-
.option("--no-agent",
|
|
1232
|
+
.option("--no-agent", `do not spawn the maintenance sibling (set it off for good with "env": {"${SIBLING_SETTING}": "0"} in .claude/settings.json)`)
|
|
970
1233
|
.option("--backend <auto|claude|codex|grok|none>", "sibling backend", "auto")
|
|
971
1234
|
.option("--gate-probe", "write the local Stop-hook eligibility verdict")
|
|
972
1235
|
.option("--hq-root <path>", "HQ installation to operate on")
|
|
@@ -981,5 +1244,6 @@ export function registerCoreCheckpointCommand(core) {
|
|
|
981
1244
|
throw error;
|
|
982
1245
|
}
|
|
983
1246
|
});
|
|
1247
|
+
describeCoreCommand(checkpoint, { execution: "native", root: "live" });
|
|
984
1248
|
}
|
|
985
1249
|
//# sourceMappingURL=core-checkpoint.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
export type CoreCommandExecution = "native" | "bundled-shell" | "bundled-node";
|
|
3
|
+
export type CoreCommandRoot = "live" | "source" | "cwd";
|
|
4
|
+
export type CoreCommandListingEntry = {
|
|
5
|
+
name: string;
|
|
6
|
+
execution: CoreCommandExecution;
|
|
7
|
+
asset?: string;
|
|
8
|
+
root: CoreCommandRoot;
|
|
9
|
+
};
|
|
10
|
+
type CoreCommandMetadata = (Omit<CoreCommandListingEntry, "name"> & {
|
|
11
|
+
entries?: never;
|
|
12
|
+
}) | {
|
|
13
|
+
entries: readonly CoreCommandListingEntry[];
|
|
14
|
+
};
|
|
15
|
+
/** Mark the exact Commander registration that supplies a catalog row. */
|
|
16
|
+
export declare function describeCoreCommand(command: Command, metadata: CoreCommandMetadata): Command;
|
|
17
|
+
/**
|
|
18
|
+
* Reflect executable leaf commands from the Commander tree. Asset-backed rows
|
|
19
|
+
* are attached at the point where core.ts registers each table entry, so the
|
|
20
|
+
* JSON output cannot drift into a second, hand-maintained command list.
|
|
21
|
+
*/
|
|
22
|
+
export declare function registeredCoreCommandListing(core: Command): CoreCommandListingEntry[];
|
|
23
|
+
export declare function fastScaffoldListingMismatches(listing: readonly CoreCommandListingEntry[], fastScripts: readonly {
|
|
24
|
+
name: string;
|
|
25
|
+
kind: "shell" | "native";
|
|
26
|
+
asset?: string;
|
|
27
|
+
}[]): string[];
|
|
28
|
+
export declare function assertFastScaffoldListingParity(listing: readonly CoreCommandListingEntry[], fastScripts: readonly {
|
|
29
|
+
name: string;
|
|
30
|
+
kind: "shell" | "native";
|
|
31
|
+
asset?: string;
|
|
32
|
+
}[]): void;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=core-command-catalog.d.ts.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
const metadataByCommand = new WeakMap();
|
|
2
|
+
/** Mark the exact Commander registration that supplies a catalog row. */
|
|
3
|
+
export function describeCoreCommand(command, metadata) {
|
|
4
|
+
metadataByCommand.set(command, metadata);
|
|
5
|
+
return command;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Reflect executable leaf commands from the Commander tree. Asset-backed rows
|
|
9
|
+
* are attached at the point where core.ts registers each table entry, so the
|
|
10
|
+
* JSON output cannot drift into a second, hand-maintained command list.
|
|
11
|
+
*/
|
|
12
|
+
export function registeredCoreCommandListing(core) {
|
|
13
|
+
const entries = [];
|
|
14
|
+
const visit = (parent, parents) => {
|
|
15
|
+
for (const command of parent.commands) {
|
|
16
|
+
const path = [...parents, command.name()].join(" ");
|
|
17
|
+
if (command.commands.length > 0) {
|
|
18
|
+
visit(command, [...parents, command.name()]);
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const metadata = metadataByCommand.get(command);
|
|
22
|
+
if (!metadata) {
|
|
23
|
+
throw new Error(`hq core command ${path} has no listing metadata`);
|
|
24
|
+
}
|
|
25
|
+
const described = metadata.entries
|
|
26
|
+
? metadata.entries
|
|
27
|
+
: [{
|
|
28
|
+
name: path,
|
|
29
|
+
execution: metadata.execution,
|
|
30
|
+
...(metadata.asset ? { asset: metadata.asset } : {}),
|
|
31
|
+
root: metadata.root,
|
|
32
|
+
}];
|
|
33
|
+
entries.push(...described);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
visit(core, []);
|
|
37
|
+
return entries.sort((a, b) => a.name.localeCompare(b.name));
|
|
38
|
+
}
|
|
39
|
+
export function fastScaffoldListingMismatches(listing, fastScripts) {
|
|
40
|
+
const mismatches = [];
|
|
41
|
+
for (const fast of fastScripts) {
|
|
42
|
+
const listed = listing.find((entry) => entry.name === fast.name);
|
|
43
|
+
if (!listed) {
|
|
44
|
+
mismatches.push(`${fast.name} is missing from hq core commands`);
|
|
45
|
+
}
|
|
46
|
+
else if (fast.kind === "shell" && listed.asset !== fast.asset) {
|
|
47
|
+
mismatches.push(`${fast.name} lists ${listed.asset ?? "no asset"}, fast path uses ${fast.asset ?? "no asset"}`);
|
|
48
|
+
}
|
|
49
|
+
else if (fast.kind === "native" && ((listed.execution !== "native" && listed.execution !== "bundled-shell") ||
|
|
50
|
+
(fast.asset === undefined ? listed.asset !== undefined : listed.asset !== fast.asset))) {
|
|
51
|
+
mismatches.push(`${fast.name} has fast-route metadata that differs from the native command catalog`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return mismatches;
|
|
55
|
+
}
|
|
56
|
+
export function assertFastScaffoldListingParity(listing, fastScripts) {
|
|
57
|
+
const mismatches = fastScaffoldListingMismatches(listing, fastScripts);
|
|
58
|
+
if (mismatches.length > 0) {
|
|
59
|
+
throw new Error(mismatches.join("\n"));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=core-command-catalog.js.map
|