@indigoai-us/hq-cli 5.314.0 → 5.315.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4311 -1
- package/README.md +113 -0
- package/assets/bot-workers/setup/context/USER-GUIDE.md +404 -0
- package/assets/bot-workers/setup/context/quick-reference.md +199 -0
- package/assets/bot-workers/setup/skills/agents-and-team.md +167 -0
- package/assets/bot-workers/setup/skills/explain-hq.md +35 -0
- package/assets/bot-workers/setup/skills/first-company.md +74 -0
- package/assets/bot-workers/setup/skills/joining-a-team.md +125 -0
- package/assets/bot-workers/setup/skills/pricing.md +92 -0
- package/assets/bot-workers/setup/skills/standing-help.md +81 -0
- package/assets/bot-workers/setup/skills/your-business.md +281 -0
- package/assets/bot-workers/setup/worker.yaml +791 -0
- package/assets/lanes-hooks/hq-lanes-drain.json +15 -0
- package/assets/lanes-hooks/hq-lanes-drain.mjs +275 -0
- package/assets/lanes-hooks/hq-lanes-drain.sh +21 -0
- package/assets/lanes-reconcile/hq-lanes-reconcile.service +11 -0
- package/assets/lanes-reconcile/hq-lanes-reconcile.timer +12 -0
- package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +485 -0
- package/assets/scaffold/core/scripts/audit-log.sh +384 -0
- package/assets/scaffold/core/scripts/checkpoint-stop-gate.sh +281 -43
- package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +171 -0
- package/assets/scaffold/core/scripts/eval-trigger.sh +193 -0
- package/assets/scaffold/core/scripts/git-pack-extension-check.sh +164 -0
- package/assets/scaffold/core/scripts/handoff-finalize.sh +688 -0
- package/assets/scaffold/core/scripts/handoff-open-steps.sh +81 -0
- package/assets/scaffold/core/scripts/handoff-post.sh +252 -0
- package/assets/scaffold/core/scripts/hook-lib.sh +345 -50
- package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +307 -0
- package/assets/scaffold/core/scripts/hq-delegate-grant.sh +252 -0
- package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +99 -0
- package/assets/scaffold/core/scripts/hq-delegate-publish.sh +91 -0
- package/assets/scaffold/core/scripts/hq-delegate-repo.sh +158 -0
- package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +145 -0
- package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +129 -0
- package/assets/scaffold/core/scripts/hq-delegate-send.sh +259 -0
- package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +175 -0
- package/assets/scaffold/core/scripts/hq-delegate-verify.sh +238 -0
- package/assets/scaffold/core/scripts/hq-dm-bind.sh +585 -0
- package/assets/scaffold/core/scripts/hq-job-notify.sh +389 -0
- package/assets/scaffold/core/scripts/hq-job-probe.sh +835 -0
- package/assets/scaffold/core/scripts/hq-job-remediate.sh +359 -0
- package/assets/scaffold/core/scripts/hq-job-run.sh +1025 -0
- package/assets/scaffold/core/scripts/hq-pin.sh +118 -0
- package/assets/scaffold/core/scripts/hq-session.sh +184 -23
- package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +310 -0
- package/assets/scaffold/core/scripts/jobs-validate.sh +451 -0
- package/assets/scaffold/core/scripts/knowledge-prefs.sh +55 -0
- package/assets/scaffold/core/scripts/lib/portable.sh +211 -0
- package/assets/scaffold/core/scripts/lib/secret-patterns.sh +58 -0
- package/assets/scaffold/core/scripts/lib/session-id.sh +3 -2
- package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +1 -1
- package/assets/scaffold/core/scripts/lib/work-mesh-enqueue.sh +2 -1
- package/assets/scaffold/core/scripts/lib/work-mesh-live-hook.sh +378 -0
- package/assets/scaffold/core/scripts/lib/work-mesh-live-rebind.sh +141 -0
- package/assets/scaffold/core/scripts/migrate-policy-triggers.sh +378 -0
- package/assets/scaffold/core/scripts/ontology-audience-grant.sh +81 -0
- package/assets/scaffold/core/scripts/ontology-brief.mjs +93 -0
- package/assets/scaffold/core/scripts/ontology-candidate.sh +100 -0
- package/assets/scaffold/core/scripts/ontology-garden.mjs +238 -0
- package/assets/scaffold/core/scripts/ontology-source-worklist.sh +79 -0
- package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +834 -0
- package/assets/scaffold/core/scripts/policy-age-report.sh +156 -0
- package/assets/scaffold/core/scripts/policy-retire.sh +199 -0
- package/assets/scaffold/core/scripts/qmd-reindex-after-sync.sh +10 -87
- package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +40 -0
- package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +32 -0
- package/assets/scaffold/core/scripts/rebuild-company-knowledge-index.sh +36 -3
- package/assets/scaffold/core/scripts/rebuild-projects-index.sh +99 -12
- package/assets/scaffold/core/scripts/refresh-vault-access.sh +188 -0
- package/assets/scaffold/core/scripts/register-project.sh +262 -0
- package/assets/scaffold/core/scripts/resolve-company.sh +199 -0
- package/assets/scaffold/core/scripts/resume-thread-lock.sh +285 -0
- package/assets/scaffold/core/scripts/source-yaml-validate.sh +36 -0
- package/assets/scaffold/core/scripts/token-usage-report.sh +81 -20
- package/assets/scaffold/core/scripts/verify-story-deliverables.sh +148 -0
- package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +152 -0
- package/assets/scaffold/core/scripts/work-mesh-live-rebind.sh +59 -0
- package/assets/scaffold/core/scripts/worktree-gc.sh +362 -0
- package/contracts/preflight/v1/fixtures.json +87 -0
- package/contracts/preflight/v1/schema.json +58 -0
- package/dist/bin/hq-auth-refresh.d.ts +2 -0
- package/dist/bin/hq-auth-refresh.js +12 -6
- package/dist/command-catalog.generated.d.ts +10753 -0
- package/dist/command-catalog.generated.js +13859 -0
- package/dist/command-registration-plan.d.ts +474 -0
- package/dist/command-registration-plan.js +136 -0
- package/dist/commands/__fixtures__/access-vault.d.ts +2 -0
- package/dist/commands/__fixtures__/access-vault.js +1 -1
- package/dist/commands/_patterns.d.ts +16 -0
- package/dist/commands/_patterns.js +20 -3
- package/dist/commands/access.d.ts +2 -1
- package/dist/commands/access.js +58 -49
- package/dist/commands/agent-enroll.d.ts +146 -0
- package/dist/commands/agent-enroll.js +401 -0
- package/dist/commands/agent-inbox.d.ts +9 -0
- package/dist/commands/agent-inbox.js +102 -0
- package/dist/commands/agent-kit.d.ts +87 -0
- package/dist/commands/agent-kit.js +480 -0
- package/dist/commands/agent-mcp.d.ts +24 -0
- package/dist/commands/agent-mcp.js +127 -0
- package/dist/commands/agent-probe.d.ts +77 -0
- package/dist/commands/agent-probe.js +335 -0
- package/dist/commands/agent.d.ts +13 -0
- package/dist/commands/agent.js +40 -0
- package/dist/commands/agents.d.ts +106 -4
- package/dist/commands/agents.js +924 -45
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +189 -19
- package/dist/commands/billing-sponsor.d.ts +83 -0
- package/dist/commands/billing-sponsor.js +344 -0
- package/dist/commands/billing.d.ts +3 -0
- package/dist/commands/billing.js +6 -1
- package/dist/commands/bot-companies.d.ts +40 -0
- package/dist/commands/bot-companies.js +64 -0
- package/dist/commands/bot-continuity.d.ts +28 -0
- package/dist/commands/bot-continuity.js +68 -0
- package/dist/commands/bot-jobs.d.ts +127 -0
- package/dist/commands/bot-jobs.js +454 -0
- package/dist/commands/bot.d.ts +278 -0
- package/dist/commands/bot.js +1982 -0
- package/dist/commands/channels.js +56 -1
- package/dist/commands/cloud-demote.js +3 -2
- package/dist/commands/cloud-provision.d.ts +14 -0
- package/dist/commands/cloud-provision.js +232 -58
- package/dist/commands/cloud-retire.d.ts +51 -0
- package/dist/commands/cloud-retire.js +154 -0
- package/dist/commands/cloud.d.ts +49 -15
- package/dist/commands/cloud.js +357 -122
- package/dist/commands/company-rename-flag.d.ts +4 -0
- package/dist/commands/company-rename-flag.js +7 -0
- package/dist/commands/company-rename.d.ts +4 -0
- package/dist/commands/company-rename.js +90 -0
- package/dist/commands/company-transfer.d.ts +4 -28
- package/dist/commands/company-transfer.js +5 -49
- package/dist/commands/company.js +68 -3
- package/dist/commands/core-audit-log-native.d.ts +9 -0
- package/dist/commands/core-audit-log-native.js +257 -0
- package/dist/commands/core-checkpoint-gate-setting.d.ts +59 -0
- package/dist/commands/core-checkpoint-gate-setting.js +163 -0
- package/dist/commands/core-checkpoint-stop-gate-native.d.ts +34 -0
- package/dist/commands/core-checkpoint-stop-gate-native.js +725 -0
- package/dist/commands/core-checkpoint.d.ts +19 -9
- package/dist/commands/core-checkpoint.js +301 -37
- package/dist/commands/core-command-catalog.d.ts +34 -0
- package/dist/commands/core-command-catalog.js +62 -0
- package/dist/commands/core-company-index-scope-flag.d.ts +3 -0
- package/dist/commands/core-company-index-scope-flag.js +6 -0
- package/dist/commands/core-delegate-w1b.d.ts +10 -0
- package/dist/commands/core-delegate-w1b.js +1219 -0
- package/dist/commands/core-delegate.d.ts +46 -0
- package/dist/commands/core-delegate.js +1040 -0
- package/dist/commands/core-dm-bind-native.d.ts +32 -0
- package/dist/commands/core-dm-bind-native.js +668 -0
- package/dist/commands/core-eval-trigger-native.d.ts +4 -0
- package/dist/commands/core-eval-trigger-native.js +12 -0
- package/dist/commands/core-git-pack-extension-check-native.d.ts +22 -0
- package/dist/commands/core-git-pack-extension-check-native.js +190 -0
- package/dist/commands/core-handoff-fast.d.ts +18 -0
- package/dist/commands/core-handoff-fast.js +104 -0
- package/dist/commands/core-handoff-open-steps.d.ts +21 -0
- package/dist/commands/core-handoff-open-steps.js +264 -0
- package/dist/commands/core-handoff.d.ts +24 -0
- package/dist/commands/core-handoff.js +1144 -0
- package/dist/commands/core-hq-session-native.d.ts +39 -0
- package/dist/commands/core-hq-session-native.js +579 -0
- package/dist/commands/core-job-native-utils.d.ts +6 -0
- package/dist/commands/core-job-native-utils.js +80 -0
- package/dist/commands/core-job-native.d.ts +5 -0
- package/dist/commands/core-job-native.js +16 -0
- package/dist/commands/core-job-notify-native.d.ts +36 -0
- package/dist/commands/core-job-notify-native.js +359 -0
- package/dist/commands/core-job-probe-native.d.ts +45 -0
- package/dist/commands/core-job-probe-native.js +564 -0
- package/dist/commands/core-job-remediate-native.d.ts +26 -0
- package/dist/commands/core-job-remediate-native.js +374 -0
- package/dist/commands/core-job-remote-launcher.d.ts +7 -0
- package/dist/commands/core-job-remote-launcher.js +51 -0
- package/dist/commands/core-job-run-native.d.ts +47 -0
- package/dist/commands/core-job-run-native.js +1215 -0
- package/dist/commands/core-jobs-native.d.ts +25 -0
- package/dist/commands/core-jobs-native.js +1339 -0
- package/dist/commands/core-knowledge-prefs.d.ts +11 -0
- package/dist/commands/core-knowledge-prefs.js +137 -0
- package/dist/commands/core-migrate-policy-triggers-native.d.ts +21 -0
- package/dist/commands/core-migrate-policy-triggers-native.js +374 -0
- package/dist/commands/core-native-handoff-flag.d.ts +4 -0
- package/dist/commands/core-native-handoff-flag.js +7 -0
- package/dist/commands/core-native-hook-helper-commands.d.ts +4 -0
- package/dist/commands/core-native-hook-helper-commands.js +56 -0
- package/dist/commands/core-native-hook-helpers-flag.d.ts +4 -0
- package/dist/commands/core-native-hook-helpers-flag.js +7 -0
- package/dist/commands/core-native-jobs-flag.d.ts +4 -0
- package/dist/commands/core-native-jobs-flag.js +7 -0
- package/dist/commands/core-native-policy-flag.d.ts +9 -0
- package/dist/commands/core-native-policy-flag.js +12 -0
- package/dist/commands/core-native-session-flag.d.ts +4 -0
- package/dist/commands/core-native-session-flag.js +7 -0
- package/dist/commands/core-native-utilities-flag.d.ts +4 -0
- package/dist/commands/core-native-utilities-flag.js +7 -0
- package/dist/commands/core-native-utilities.d.ts +29 -0
- package/dist/commands/core-native-utilities.js +54 -0
- package/dist/commands/core-native-worker-skills-flag.d.ts +4 -0
- package/dist/commands/core-native-worker-skills-flag.js +7 -0
- package/dist/commands/core-ontology-native.d.ts +17 -0
- package/dist/commands/core-ontology-native.js +916 -0
- package/dist/commands/core-ontology.d.ts +66 -0
- package/dist/commands/core-ontology.js +430 -0
- package/dist/commands/core-pin-native.d.ts +14 -0
- package/dist/commands/core-pin-native.js +236 -0
- package/dist/commands/core-policy-frontmatter.d.ts +8 -0
- package/dist/commands/core-policy-frontmatter.js +52 -0
- package/dist/commands/core-policy.d.ts +14 -0
- package/dist/commands/core-policy.js +1018 -0
- package/dist/commands/core-refresh-vault-access-native.d.ts +20 -0
- package/dist/commands/core-refresh-vault-access-native.js +229 -0
- package/dist/commands/core-register-project-native.d.ts +30 -0
- package/dist/commands/core-register-project-native.js +347 -0
- package/dist/commands/core-resolve-company-command.d.ts +4 -0
- package/dist/commands/core-resolve-company-command.js +42 -0
- package/dist/commands/core-resolve-company-native.d.ts +28 -0
- package/dist/commands/core-resolve-company-native.js +408 -0
- package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +32 -0
- package/dist/commands/core-work-mesh-bind-trusted-native.js +190 -0
- package/dist/commands/core-work-mesh-live-rebind-native.d.ts +18 -0
- package/dist/commands/core-work-mesh-live-rebind-native.js +262 -0
- package/dist/commands/core-worker-lint-native.d.ts +4 -0
- package/dist/commands/core-worker-lint-native.js +160 -0
- package/dist/commands/core-worker-share-native.d.ts +4 -0
- package/dist/commands/core-worker-share-native.js +260 -0
- package/dist/commands/core-worker-skills-command.d.ts +8 -0
- package/dist/commands/core-worker-skills-command.js +33 -0
- package/dist/commands/core-worker-skills-runtime.d.ts +33 -0
- package/dist/commands/core-worker-skills-runtime.js +86 -0
- package/dist/commands/core.d.ts +4 -0
- package/dist/commands/core.js +277 -80
- package/dist/commands/crm.js +52 -3
- package/dist/commands/daemon.d.ts +63 -0
- package/dist/commands/daemon.js +877 -0
- package/dist/commands/db-provision.js +4 -4
- package/dist/commands/db-sql.js +7 -21
- package/dist/commands/deploy-comments.d.ts +3 -0
- package/dist/commands/deploy-comments.js +162 -0
- package/dist/commands/dm.d.ts +119 -12
- package/dist/commands/dm.js +388 -38
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.js +158 -12
- package/dist/commands/feedback.d.ts +6 -0
- package/dist/commands/feedback.js +86 -37
- package/dist/commands/files-browse.d.ts +32 -12
- package/dist/commands/files-browse.js +176 -60
- package/dist/commands/files.d.ts +17 -0
- package/dist/commands/files.js +300 -47
- package/dist/commands/group-grants.js +3 -2
- package/dist/commands/groups.js +6 -5
- package/dist/commands/index-cmd.d.ts +19 -1
- package/dist/commands/index-cmd.js +74 -7
- package/dist/commands/integrations-api.d.ts +15 -10
- package/dist/commands/integrations-api.js +27 -22
- package/dist/commands/integrations-connect.d.ts +51 -13
- package/dist/commands/integrations-connect.js +86 -71
- package/dist/commands/integrations-core.d.ts +6 -6
- package/dist/commands/integrations-core.js +25 -11
- package/dist/commands/integrations-import.d.ts +1 -1
- package/dist/commands/integrations-import.js +43 -24
- package/dist/commands/integrations-manage.js +20 -13
- package/dist/commands/integrations.d.ts +8 -0
- package/dist/commands/integrations.js +94 -7
- package/dist/commands/lanes-accounts.d.ts +28 -0
- package/dist/commands/lanes-accounts.js +595 -0
- package/dist/commands/lanes-autopilot.d.ts +11 -0
- package/dist/commands/lanes-autopilot.js +336 -0
- package/dist/commands/lanes-checks.d.ts +51 -0
- package/dist/commands/lanes-checks.js +941 -0
- package/dist/commands/lanes-hold.d.ts +43 -0
- package/dist/commands/lanes-hold.js +655 -0
- package/dist/commands/lanes-keep-alive-audit.d.ts +10 -0
- package/dist/commands/lanes-keep-alive-audit.js +19 -0
- package/dist/commands/lanes-kpis.d.ts +11 -0
- package/dist/commands/lanes-kpis.js +34 -0
- package/dist/commands/lanes-message.d.ts +9 -0
- package/dist/commands/lanes-message.js +946 -0
- package/dist/commands/lanes-move.d.ts +12 -0
- package/dist/commands/lanes-move.js +397 -0
- package/dist/commands/lanes-questions.d.ts +36 -0
- package/dist/commands/lanes-questions.js +1005 -0
- package/dist/commands/lanes-report.d.ts +11 -0
- package/dist/commands/lanes-report.js +333 -0
- package/dist/commands/lanes-resume.d.ts +6 -0
- package/dist/commands/lanes-resume.js +564 -0
- package/dist/commands/lanes-review.d.ts +10 -0
- package/dist/commands/lanes-review.js +56 -0
- package/dist/commands/lanes-shared.d.ts +449 -0
- package/dist/commands/lanes-shared.js +170 -0
- package/dist/commands/lanes-stories.d.ts +15 -0
- package/dist/commands/lanes-stories.js +347 -0
- package/dist/commands/lanes-watch.d.ts +7 -0
- package/dist/commands/lanes-watch.js +216 -0
- package/dist/commands/lanes.d.ts +149 -0
- package/dist/commands/lanes.js +8983 -0
- package/dist/commands/login.js +49 -6
- package/dist/commands/mcp-registration.d.ts +32 -25
- package/dist/commands/mcp-registration.js +256 -23
- package/dist/commands/mcp-status.js +1 -0
- package/dist/commands/meetings.js +55 -34
- package/dist/commands/members.js +5 -1
- package/dist/commands/mesh.d.ts +11 -0
- package/dist/commands/mesh.js +1086 -76
- package/dist/commands/monitor.d.ts +58 -0
- package/dist/commands/monitor.js +980 -0
- package/dist/commands/onboard-bot-membership.d.ts +32 -0
- package/dist/commands/onboard-bot-membership.js +40 -0
- package/dist/commands/onboard-create-identity.d.ts +26 -0
- package/dist/commands/onboard-create-identity.js +23 -0
- package/dist/commands/onboard-identity-guard.d.ts +1 -1
- package/dist/commands/onboard.js +24 -5
- package/dist/commands/outpost-pruner.d.ts +3 -0
- package/dist/commands/outpost-pruner.js +125 -0
- package/dist/commands/pack-install.js +3 -1
- package/dist/commands/packs.js +11 -1
- package/dist/commands/people.d.ts +4 -0
- package/dist/commands/people.js +37 -3
- package/dist/commands/personal-connector-settings-flag.d.ts +4 -0
- package/dist/commands/personal-connector-settings-flag.js +7 -0
- package/dist/commands/personal-targeted-push-flag.d.ts +4 -0
- package/dist/commands/personal-targeted-push-flag.js +7 -0
- package/dist/commands/personal-targeted-push-paths.d.ts +3 -0
- package/dist/commands/personal-targeted-push-paths.js +67 -0
- package/dist/commands/publish.d.ts +8 -1
- package/dist/commands/publish.js +17 -4
- package/dist/commands/reindex.js +56 -6
- package/dist/commands/report.d.ts +19 -0
- package/dist/commands/report.js +537 -0
- package/dist/commands/rescue.d.ts +4 -0
- package/dist/commands/rescue.js +27 -17
- package/dist/commands/run-feature-telemetry.d.ts +3 -0
- package/dist/commands/run-feature-telemetry.js +6 -0
- package/dist/commands/run.js +18 -4
- package/dist/commands/safe-extract.d.ts +11 -2
- package/dist/commands/safe-extract.js +36 -8
- package/dist/commands/secrets.d.ts +20 -2
- package/dist/commands/secrets.js +175 -71
- package/dist/commands/skill.d.ts +35 -4
- package/dist/commands/skill.js +357 -18
- package/dist/commands/staff/reset-test-account.d.ts +110 -0
- package/dist/commands/staff/reset-test-account.js +268 -0
- package/dist/commands/staff/test-account.d.ts +51 -0
- package/dist/commands/staff/test-account.js +196 -0
- package/dist/commands/sync-mode.d.ts +11 -0
- package/dist/commands/sync-mode.js +30 -0
- package/dist/commands/sync-narrow.js +36 -5
- package/dist/commands/team-sync.js +71 -10
- package/dist/commands/update.js +6 -0
- package/dist/commands/vault-retention-flag.d.ts +3 -0
- package/dist/commands/vault-retention-flag.js +9 -0
- package/dist/commands/vault-retention.d.ts +11 -0
- package/dist/commands/vault-retention.js +69 -0
- package/dist/commands/version.d.ts +10 -0
- package/dist/commands/version.js +11 -0
- package/dist/commands/whoami.d.ts +22 -0
- package/dist/commands/whoami.js +137 -4
- package/dist/commands/workers.d.ts +2 -14
- package/dist/commands/workers.js +7 -10
- package/dist/fast-core.d.ts +6 -7
- package/dist/fast-core.js +87 -24
- package/dist/fast-scaffold.d.ts +86 -0
- package/dist/fast-scaffold.js +364 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.js +59 -9
- package/dist/lanes-drain-hook.d.ts +14 -0
- package/dist/lanes-drain-hook.js +203 -0
- package/dist/lazy-commands.d.ts +20 -44
- package/dist/lazy-commands.js +60 -58
- package/dist/lib/agent-kit/adopt-identity.d.ts +27 -0
- package/dist/lib/agent-kit/adopt-identity.js +60 -0
- package/dist/lib/agent-kit/attachment-download.d.ts +24 -0
- package/dist/lib/agent-kit/attachment-download.js +47 -0
- package/dist/lib/agent-kit/creds.d.ts +106 -0
- package/dist/lib/agent-kit/creds.js +163 -0
- package/dist/lib/agent-kit/fallback.d.ts +78 -0
- package/dist/lib/agent-kit/fallback.js +210 -0
- package/dist/lib/agent-kit/inbox-state.d.ts +83 -0
- package/dist/lib/agent-kit/inbox-state.js +159 -0
- package/dist/lib/agent-kit/kit-config.d.ts +56 -0
- package/dist/lib/agent-kit/kit-config.js +65 -0
- package/dist/lib/agent-kit/log.d.ts +16 -0
- package/dist/lib/agent-kit/log.js +46 -0
- package/dist/lib/agent-kit/mcp/attachments.d.ts +126 -0
- package/dist/lib/agent-kit/mcp/attachments.js +222 -0
- package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +75 -0
- package/dist/lib/agent-kit/mcp/jsonrpc.js +164 -0
- package/dist/lib/agent-kit/mcp/tools.d.ts +64 -0
- package/dist/lib/agent-kit/mcp/tools.js +397 -0
- package/dist/lib/agent-kit/paths.d.ts +65 -0
- package/dist/lib/agent-kit/paths.js +118 -0
- package/dist/lib/agent-kit/private-file.d.ts +29 -0
- package/dist/lib/agent-kit/private-file.js +91 -0
- package/dist/lib/agent-kit/run/heartbeat.d.ts +72 -0
- package/dist/lib/agent-kit/run/heartbeat.js +128 -0
- package/dist/lib/agent-kit/run/inbox.d.ts +76 -0
- package/dist/lib/agent-kit/run/inbox.js +205 -0
- package/dist/lib/agent-kit/run/supervisor.d.ts +35 -0
- package/dist/lib/agent-kit/run/supervisor.js +85 -0
- package/dist/lib/agent-kit/run/sync.d.ts +33 -0
- package/dist/lib/agent-kit/run/sync.js +58 -0
- package/dist/lib/agent-kit/services.d.ts +31 -0
- package/dist/lib/agent-kit/services.js +55 -0
- package/dist/lib/agent-kit/skills.d.ts +18 -0
- package/dist/lib/agent-kit/skills.js +151 -0
- package/dist/lib/agent-kit/wake.d.ts +83 -0
- package/dist/lib/agent-kit/wake.js +243 -0
- package/dist/lib/agents/model-catalog.d.ts +62 -0
- package/dist/lib/agents/model-catalog.js +275 -0
- package/dist/lib/auth-login-provider-state.d.ts +8 -0
- package/dist/lib/auth-login-provider-state.js +63 -0
- package/dist/lib/aws-sdk-node-warning-output.d.ts +12 -0
- package/dist/lib/aws-sdk-node-warning-output.js +22 -0
- package/dist/lib/billing/free-month.d.ts +18 -0
- package/dist/lib/billing/free-month.js +31 -0
- package/dist/lib/billing/plan-limit-refusals.d.ts +69 -0
- package/dist/lib/billing/plan-limit-refusals.js +187 -0
- package/dist/lib/billing/plan-limit-upgrade-url.d.ts +11 -0
- package/dist/lib/billing/plan-limit-upgrade-url.js +66 -0
- package/dist/lib/billing/plan-lock.d.ts +143 -0
- package/dist/lib/billing/plan-lock.js +439 -0
- package/dist/lib/bot/api.d.ts +349 -0
- package/dist/lib/bot/api.js +316 -0
- package/dist/lib/bot/attachments.d.ts +45 -0
- package/dist/lib/bot/attachments.js +89 -0
- package/dist/lib/bot/cli-update.d.ts +138 -0
- package/dist/lib/bot/cli-update.js +278 -0
- package/dist/lib/bot/company-bind.d.ts +27 -0
- package/dist/lib/bot/company-bind.js +62 -0
- package/dist/lib/bot/config.d.ts +153 -0
- package/dist/lib/bot/config.js +233 -0
- package/dist/lib/bot/continuity-download.d.ts +28 -0
- package/dist/lib/bot/continuity-download.js +75 -0
- package/dist/lib/bot/continuity-install.d.ts +14 -0
- package/dist/lib/bot/continuity-install.js +101 -0
- package/dist/lib/bot/continuity.d.ts +67 -0
- package/dist/lib/bot/continuity.js +301 -0
- package/dist/lib/bot/creds.d.ts +24 -0
- package/dist/lib/bot/creds.js +51 -0
- package/dist/lib/bot/daemon.d.ts +173 -0
- package/dist/lib/bot/daemon.js +552 -0
- package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +24 -0
- package/dist/lib/bot/inbox-poll-backoff-flag.js +135 -0
- package/dist/lib/bot/inbox-state.d.ts +18 -0
- package/dist/lib/bot/inbox-state.js +51 -0
- package/dist/lib/bot/index.d.ts +23 -0
- package/dist/lib/bot/index.js +23 -0
- package/dist/lib/bot/inflight.d.ts +119 -0
- package/dist/lib/bot/inflight.js +83 -0
- package/dist/lib/bot/job-completions.d.ts +89 -0
- package/dist/lib/bot/job-completions.js +132 -0
- package/dist/lib/bot/job-run.d.ts +109 -0
- package/dist/lib/bot/job-run.js +246 -0
- package/dist/lib/bot/local-config.d.ts +61 -0
- package/dist/lib/bot/local-config.js +145 -0
- package/dist/lib/bot/local-jobs.d.ts +89 -0
- package/dist/lib/bot/local-jobs.js +459 -0
- package/dist/lib/bot/local-name.d.ts +54 -0
- package/dist/lib/bot/local-name.js +114 -0
- package/dist/lib/bot/log.d.ts +13 -0
- package/dist/lib/bot/log.js +59 -0
- package/dist/lib/bot/owner-context.d.ts +79 -0
- package/dist/lib/bot/owner-context.js +175 -0
- package/dist/lib/bot/paths.d.ts +76 -0
- package/dist/lib/bot/paths.js +131 -0
- package/dist/lib/bot/progress.d.ts +132 -0
- package/dist/lib/bot/progress.js +289 -0
- package/dist/lib/bot/promote.d.ts +16 -0
- package/dist/lib/bot/promote.js +106 -0
- package/dist/lib/bot/promotion-hold.d.ts +24 -0
- package/dist/lib/bot/promotion-hold.js +103 -0
- package/dist/lib/bot/promotion-receipt.d.ts +9 -0
- package/dist/lib/bot/promotion-receipt.js +56 -0
- package/dist/lib/bot/promotion-upload.d.ts +16 -0
- package/dist/lib/bot/promotion-upload.js +80 -0
- package/dist/lib/bot/prompt.d.ts +136 -0
- package/dist/lib/bot/prompt.js +433 -0
- package/dist/lib/bot/room-policy.d.ts +63 -0
- package/dist/lib/bot/room-policy.js +91 -0
- package/dist/lib/bot/run.d.ts +217 -0
- package/dist/lib/bot/run.js +1869 -0
- package/dist/lib/bot/runnable.d.ts +51 -0
- package/dist/lib/bot/runnable.js +65 -0
- package/dist/lib/bot/runtime/claude.d.ts +50 -0
- package/dist/lib/bot/runtime/claude.js +170 -0
- package/dist/lib/bot/runtime/codex.d.ts +28 -0
- package/dist/lib/bot/runtime/codex.js +153 -0
- package/dist/lib/bot/runtime/grok-acp.d.ts +40 -0
- package/dist/lib/bot/runtime/grok-acp.js +265 -0
- package/dist/lib/bot/runtime/grok.d.ts +41 -0
- package/dist/lib/bot/runtime/grok.js +169 -0
- package/dist/lib/bot/runtime/index.d.ts +36 -0
- package/dist/lib/bot/runtime/index.js +417 -0
- package/dist/lib/bot/runtime/messages-stream.d.ts +56 -0
- package/dist/lib/bot/runtime/messages-stream.js +194 -0
- package/dist/lib/bot/runtime/sanitize.d.ts +18 -0
- package/dist/lib/bot/runtime/sanitize.js +28 -0
- package/dist/lib/bot/runtime/types.d.ts +159 -0
- package/dist/lib/bot/runtime/types.js +51 -0
- package/dist/lib/bot/runtime/windows.d.ts +10 -0
- package/dist/lib/bot/runtime/windows.js +53 -0
- package/dist/lib/bot/runtime-sign-in.d.ts +24 -0
- package/dist/lib/bot/runtime-sign-in.js +31 -0
- package/dist/lib/bot/scaffold.d.ts +38 -0
- package/dist/lib/bot/scaffold.js +94 -0
- package/dist/lib/bot/self-heal.d.ts +52 -0
- package/dist/lib/bot/self-heal.js +79 -0
- package/dist/lib/bot/self-process.d.ts +19 -0
- package/dist/lib/bot/self-process.js +35 -0
- package/dist/lib/bot/session.d.ts +19 -0
- package/dist/lib/bot/session.js +39 -0
- package/dist/lib/bot/setup-explain.d.ts +64 -0
- package/dist/lib/bot/setup-explain.js +141 -0
- package/dist/lib/bot/split.d.ts +32 -0
- package/dist/lib/bot/split.js +241 -0
- package/dist/lib/bot/status.d.ts +57 -0
- package/dist/lib/bot/status.js +66 -0
- package/dist/lib/bot/worker-source.d.ts +66 -0
- package/dist/lib/bot/worker-source.js +283 -0
- package/dist/lib/checkpoint-ontology/aliases.d.ts +17 -0
- package/dist/lib/checkpoint-ontology/aliases.js +44 -0
- package/dist/lib/checkpoint-ontology/apply.d.ts +110 -0
- package/dist/lib/checkpoint-ontology/apply.js +777 -0
- package/dist/lib/checkpoint-ontology/company-brief.d.ts +18 -0
- package/dist/lib/checkpoint-ontology/company-brief.js +337 -0
- package/dist/lib/checkpoint-ontology/company.d.ts +44 -0
- package/dist/lib/checkpoint-ontology/company.js +118 -0
- package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +41 -0
- package/dist/lib/checkpoint-ontology/drop-aliases.js +76 -0
- package/dist/lib/checkpoint-ontology/entity-file.d.ts +109 -0
- package/dist/lib/checkpoint-ontology/entity-file.js +371 -0
- package/dist/lib/checkpoint-ontology/identity.d.ts +38 -0
- package/dist/lib/checkpoint-ontology/identity.js +95 -0
- package/dist/lib/checkpoint-ontology/merge-copies.d.ts +199 -0
- package/dist/lib/checkpoint-ontology/merge-copies.js +1086 -0
- package/dist/lib/checkpoint-ontology/multi-writer.d.ts +101 -0
- package/dist/lib/checkpoint-ontology/multi-writer.js +394 -0
- package/dist/lib/checkpoint-ontology/plan.d.ts +193 -0
- package/dist/lib/checkpoint-ontology/plan.js +504 -0
- package/dist/lib/checkpoint-ontology/queued-touches.d.ts +29 -0
- package/dist/lib/checkpoint-ontology/queued-touches.js +193 -0
- package/dist/lib/checkpoint-ontology/sync-client.d.ts +38 -0
- package/dist/lib/checkpoint-ontology/sync-client.js +84 -0
- package/dist/lib/checkpoint-ontology/tree.d.ts +55 -0
- package/dist/lib/checkpoint-ontology/tree.js +198 -0
- package/dist/lib/company-errors-sdk-warning-flag.d.ts +5 -0
- package/dist/lib/company-errors-sdk-warning-flag.js +8 -0
- package/dist/lib/company-skill-wrapper.d.ts +1 -0
- package/dist/lib/company-skill-wrapper.js +121 -29
- package/dist/lib/core-utils/codex-skill-bridge.d.ts +2 -1
- package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +20 -0
- package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +81 -0
- package/dist/lib/core-utils/jq-json-serializer.d.ts +5 -0
- package/dist/lib/core-utils/jq-json-serializer.js +10 -0
- package/dist/lib/core-utils/qmd-reindex-after-sync.d.ts +14 -1
- package/dist/lib/core-utils/qmd-reindex-after-sync.js +101 -17
- package/dist/lib/core-utils/secret-patterns.d.ts +43 -0
- package/dist/lib/core-utils/secret-patterns.js +34 -0
- package/dist/lib/core-utils/sentry-report.d.ts +114 -0
- package/dist/lib/core-utils/sentry-report.js +1055 -0
- package/dist/lib/core-utils/soft-timeout.js +1 -1
- package/dist/lib/core-utils/timeout-guard-native.d.ts +7 -0
- package/dist/lib/core-utils/timeout-guard-native.js +40 -0
- package/dist/lib/core-utils/timeout-guard.d.ts +3 -3
- package/dist/lib/core-utils/timeout-guard.js +28 -13
- package/dist/lib/core-utils/token-usage-report.js +17 -3
- package/dist/lib/core-utils/worktree-resume.d.ts +20 -0
- package/dist/lib/core-utils/worktree-resume.js +1198 -0
- package/dist/lib/daemon/catalog.d.ts +134 -0
- package/dist/lib/daemon/catalog.js +358 -0
- package/dist/lib/daemon/config.d.ts +35 -0
- package/dist/lib/daemon/config.js +108 -0
- package/dist/lib/daemon/flag.d.ts +25 -0
- package/dist/lib/daemon/flag.js +59 -0
- package/dist/lib/daemon/handoff.d.ts +56 -0
- package/dist/lib/daemon/handoff.js +161 -0
- package/dist/lib/daemon/hq-cloud.d.ts +79 -0
- package/dist/lib/daemon/hq-cloud.js +183 -0
- package/dist/lib/daemon/install.d.ts +85 -0
- package/dist/lib/daemon/install.js +320 -0
- package/dist/lib/daemon/legacy-sync-env.d.ts +10 -0
- package/dist/lib/daemon/legacy-sync-env.js +58 -0
- package/dist/lib/daemon/legacy.d.ts +45 -0
- package/dist/lib/daemon/legacy.js +133 -0
- package/dist/lib/daemon/lock.d.ts +47 -0
- package/dist/lib/daemon/lock.js +138 -0
- package/dist/lib/daemon/machine-type.d.ts +50 -0
- package/dist/lib/daemon/machine-type.js +159 -0
- package/dist/lib/daemon/migrate.d.ts +77 -0
- package/dist/lib/daemon/migrate.js +265 -0
- package/dist/lib/daemon/paths.d.ts +24 -0
- package/dist/lib/daemon/paths.js +43 -0
- package/dist/lib/daemon/protocol-tail.d.ts +33 -0
- package/dist/lib/daemon/protocol-tail.js +131 -0
- package/dist/lib/daemon/remote-control.d.ts +74 -0
- package/dist/lib/daemon/remote-control.js +153 -0
- package/dist/lib/daemon/requests.d.ts +28 -0
- package/dist/lib/daemon/requests.js +65 -0
- package/dist/lib/daemon/run.d.ts +79 -0
- package/dist/lib/daemon/run.js +755 -0
- package/dist/lib/daemon/succession.d.ts +118 -0
- package/dist/lib/daemon/succession.js +263 -0
- package/dist/lib/daemon/supervisor.d.ts +132 -0
- package/dist/lib/daemon/supervisor.js +836 -0
- package/dist/lib/daemon/sync-runner.d.ts +58 -0
- package/dist/lib/daemon/sync-runner.js +277 -0
- package/dist/lib/daemon/tools.d.ts +52 -0
- package/dist/lib/daemon/tools.js +95 -0
- package/dist/lib/daemon/updater.d.ts +57 -0
- package/dist/lib/daemon/updater.js +163 -0
- package/dist/lib/db/control-plane.js +6 -0
- package/dist/lib/db/local.d.ts +0 -5
- package/dist/lib/db/local.js +1 -1
- package/dist/lib/db/migrate.d.ts +0 -12
- package/dist/lib/db/migrate.js +5 -5
- package/dist/lib/db/remote-sql.d.ts +2 -2
- package/dist/lib/db/remote-sql.js +3 -3
- package/dist/lib/db/sql.d.ts +0 -10
- package/dist/lib/db/sql.js +4 -8
- package/dist/lib/deploy-api.d.ts +5 -0
- package/dist/lib/deploy-api.js +21 -0
- package/dist/lib/deploy-apps.d.ts +13 -0
- package/dist/lib/deploy-apps.js +29 -0
- package/dist/lib/doctor/__testing__/fake-hq-tree.d.ts +1 -1
- package/dist/lib/doctor/__testing__/fake-hq-tree.js +1 -1
- package/dist/lib/doctor/__testing__/run-doctor.d.ts +8 -0
- package/dist/lib/doctor/__testing__/run-doctor.js +52 -0
- package/dist/lib/doctor/checks/bots.d.ts +13 -0
- package/dist/lib/doctor/checks/bots.js +189 -0
- package/dist/lib/doctor/checks/claude-wiring.js +70 -1
- package/dist/lib/doctor/checks/codex-wiring.d.ts +0 -4
- package/dist/lib/doctor/checks/codex-wiring.js +3 -35
- package/dist/lib/doctor/checks/grok-wiring.js +1 -34
- package/dist/lib/doctor/checks/integrations.js +11 -0
- package/dist/lib/doctor/checks/runtime-health.d.ts +4 -17
- package/dist/lib/doctor/checks/runtime-health.js +20 -7
- package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +6 -0
- package/dist/lib/doctor/checks/scaffold-cli-floor.js +73 -0
- package/dist/lib/doctor/checks/sync-health.d.ts +21 -0
- package/dist/lib/doctor/checks/sync-health.js +72 -2
- package/dist/lib/doctor/checks/sync-runtime.d.ts +11 -0
- package/dist/lib/doctor/checks/sync-runtime.js +216 -0
- package/dist/lib/doctor/checks/work-context.js +20 -6
- package/dist/lib/doctor/client-health-flag-token.d.ts +15 -0
- package/dist/lib/doctor/client-health-flag-token.js +66 -0
- package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +27 -0
- package/dist/lib/doctor/client-health-reason-codes-flag.js +106 -0
- package/dist/lib/doctor/compat.d.ts +0 -16
- package/dist/lib/doctor/compat.js +4 -3
- package/dist/lib/doctor/deep/effects.js +1 -3
- package/dist/lib/doctor/deep/executor.d.ts +4 -10
- package/dist/lib/doctor/deep/executor.js +1 -1
- package/dist/lib/doctor/deep/parity.d.ts +2 -29
- package/dist/lib/doctor/deep/parity.js +7 -7
- package/dist/lib/doctor/deep/sandbox.d.ts +7 -25
- package/dist/lib/doctor/deep/sandbox.js +5 -7
- package/dist/lib/doctor/fix/apply.d.ts +79 -8
- package/dist/lib/doctor/fix/apply.js +292 -80
- package/dist/lib/doctor/fix/json-output.d.ts +28 -0
- package/dist/lib/doctor/fix/json-output.js +33 -0
- package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +12 -0
- package/dist/lib/doctor/fix/refresh-sync-outcome.js +25 -0
- package/dist/lib/doctor/fix/remediation.d.ts +14 -6
- package/dist/lib/doctor/fix/remediation.js +49 -9
- package/dist/lib/doctor/fixtures/schema.js +1 -3
- package/dist/lib/doctor/json-output.d.ts +17 -1
- package/dist/lib/doctor/json-output.js +7 -2
- package/dist/lib/doctor/platform.d.ts +0 -26
- package/dist/lib/doctor/platform.js +5 -5
- package/dist/lib/doctor/registry.d.ts +14 -0
- package/dist/lib/doctor/registry.js +71 -0
- package/dist/lib/doctor/report.js +1 -1
- package/dist/lib/doctor/shared.d.ts +8 -0
- package/dist/lib/doctor/shared.js +38 -0
- package/dist/lib/doctor/stray-gate-entries.d.ts +35 -0
- package/dist/lib/doctor/stray-gate-entries.js +83 -0
- package/dist/lib/doctor/types.d.ts +5 -0
- package/dist/lib/doctor/types.js +20 -0
- package/dist/lib/first-sync-next-step.d.ts +34 -0
- package/dist/lib/first-sync-next-step.js +179 -0
- package/dist/lib/flag-registry-endpoint.d.ts +5 -0
- package/dist/lib/flag-registry-endpoint.js +9 -0
- package/dist/lib/flag-registry-worker-source.generated.d.ts +2 -0
- package/dist/lib/flag-registry-worker-source.generated.js +3 -0
- package/dist/lib/flag-registry-worker.js +12 -1
- package/dist/lib/flag-registry.d.ts +26 -6
- package/dist/lib/flag-registry.js +133 -16
- package/dist/lib/flag-snapshot-file.d.ts +20 -0
- package/dist/lib/flag-snapshot-file.js +91 -0
- package/dist/lib/heartbeat-identity.d.ts +30 -0
- package/dist/lib/heartbeat-identity.js +76 -0
- package/dist/lib/index-render/companies.d.ts +4 -1
- package/dist/lib/index-render/companies.js +66 -3
- package/dist/lib/index-render/company-knowledge.js +80 -17
- package/dist/lib/index-render/index.d.ts +1 -0
- package/dist/lib/index-render/index.js +2 -1
- package/dist/lib/index-render/projects.js +82 -5
- package/dist/lib/index-render/shared.d.ts +13 -1
- package/dist/lib/index-render/shared.js +41 -2
- package/dist/lib/lanes/account-home.d.ts +8 -0
- package/dist/lib/lanes/account-home.js +10 -0
- package/dist/lib/lanes/accounts.d.ts +117 -0
- package/dist/lib/lanes/accounts.js +366 -0
- package/dist/lib/lanes/admission-host.d.ts +22 -0
- package/dist/lib/lanes/admission-host.js +37 -0
- package/dist/lib/lanes/admission.d.ts +26 -0
- package/dist/lib/lanes/admission.js +210 -0
- package/dist/lib/lanes/approval-gate.d.ts +8 -0
- package/dist/lib/lanes/approval-gate.js +90 -0
- package/dist/lib/lanes/autopilot-metrics.d.ts +99 -0
- package/dist/lib/lanes/autopilot-metrics.js +301 -0
- package/dist/lib/lanes/autopilot-registry.d.ts +62 -0
- package/dist/lib/lanes/autopilot-registry.js +192 -0
- package/dist/lib/lanes/autopilot.d.ts +133 -0
- package/dist/lib/lanes/autopilot.js +1222 -0
- package/dist/lib/lanes/blocker-freshness.d.ts +31 -0
- package/dist/lib/lanes/blocker-freshness.js +168 -0
- package/dist/lib/lanes/checked-company-path.d.ts +3 -0
- package/dist/lib/lanes/checked-company-path.js +39 -0
- package/dist/lib/lanes/claude-balance.d.ts +97 -0
- package/dist/lib/lanes/claude-balance.js +319 -0
- package/dist/lib/lanes/compaction.d.ts +110 -0
- package/dist/lib/lanes/compaction.js +293 -0
- package/dist/lib/lanes/config.d.ts +94 -0
- package/dist/lib/lanes/config.js +606 -0
- package/dist/lib/lanes/constants.d.ts +3 -0
- package/dist/lib/lanes/constants.js +3 -0
- package/dist/lib/lanes/delivery-core.d.ts +15 -0
- package/dist/lib/lanes/delivery-core.js +21 -0
- package/dist/lib/lanes/delivery.d.ts +180 -0
- package/dist/lib/lanes/delivery.js +443 -0
- package/dist/lib/lanes/disk-guard.d.ts +66 -0
- package/dist/lib/lanes/disk-guard.js +172 -0
- package/dist/lib/lanes/dropbox.d.ts +129 -0
- package/dist/lib/lanes/dropbox.js +601 -0
- package/dist/lib/lanes/effort.d.ts +51 -0
- package/dist/lib/lanes/effort.js +113 -0
- package/dist/lib/lanes/envelope-repair-dispatch.d.ts +26 -0
- package/dist/lib/lanes/envelope-repair-dispatch.js +74 -0
- package/dist/lib/lanes/errors.d.ts +39 -0
- package/dist/lib/lanes/errors.js +72 -0
- package/dist/lib/lanes/flag-keys.d.ts +22 -0
- package/dist/lib/lanes/flag-keys.js +22 -0
- package/dist/lib/lanes/grants.d.ts +30 -0
- package/dist/lib/lanes/grants.js +171 -0
- package/dist/lib/lanes/hire-grant-dispatch.d.ts +29 -0
- package/dist/lib/lanes/hire-grant-dispatch.js +315 -0
- package/dist/lib/lanes/hooks-install.d.ts +82 -0
- package/dist/lib/lanes/hooks-install.js +479 -0
- package/dist/lib/lanes/host-capacity.d.ts +69 -0
- package/dist/lib/lanes/host-capacity.js +254 -0
- package/dist/lib/lanes/hq-root.d.ts +19 -0
- package/dist/lib/lanes/hq-root.js +28 -0
- package/dist/lib/lanes/index.d.ts +76 -0
- package/dist/lib/lanes/index.js +42 -0
- package/dist/lib/lanes/keep-alive-audit.d.ts +46 -0
- package/dist/lib/lanes/keep-alive-audit.js +370 -0
- package/dist/lib/lanes/keep-alive.d.ts +68 -0
- package/dist/lib/lanes/keep-alive.js +343 -0
- package/dist/lib/lanes/kr-freshness.d.ts +76 -0
- package/dist/lib/lanes/kr-freshness.js +413 -0
- package/dist/lib/lanes/lane-company.d.ts +10 -0
- package/dist/lib/lanes/lane-company.js +41 -0
- package/dist/lib/lanes/liveness.d.ts +108 -0
- package/dist/lib/lanes/liveness.js +396 -0
- package/dist/lib/lanes/machine-identity.d.ts +34 -0
- package/dist/lib/lanes/machine-identity.js +92 -0
- package/dist/lib/lanes/manager-status-gate.d.ts +17 -0
- package/dist/lib/lanes/manager-status-gate.js +133 -0
- package/dist/lib/lanes/merge-command.d.ts +15 -0
- package/dist/lib/lanes/merge-command.js +629 -0
- package/dist/lib/lanes/mesh-events.d.ts +127 -0
- package/dist/lib/lanes/mesh-events.js +564 -0
- package/dist/lib/lanes/message-replay.d.ts +21 -0
- package/dist/lib/lanes/message-replay.js +122 -0
- package/dist/lib/lanes/models.d.ts +86 -0
- package/dist/lib/lanes/models.js +234 -0
- package/dist/lib/lanes/monitor.d.ts +48 -0
- package/dist/lib/lanes/monitor.js +428 -0
- package/dist/lib/lanes/move-account.d.ts +56 -0
- package/dist/lib/lanes/move-account.js +193 -0
- package/dist/lib/lanes/orphans.d.ts +25 -0
- package/dist/lib/lanes/orphans.js +102 -0
- package/dist/lib/lanes/outpost-dispatch.d.ts +147 -0
- package/dist/lib/lanes/outpost-dispatch.js +271 -0
- package/dist/lib/lanes/outpost-hire-cache.d.ts +22 -0
- package/dist/lib/lanes/outpost-hire-cache.js +153 -0
- package/dist/lib/lanes/outpost-identity.d.ts +33 -0
- package/dist/lib/lanes/outpost-identity.js +59 -0
- package/dist/lib/lanes/outpost-profile-repin.d.ts +17 -0
- package/dist/lib/lanes/outpost-profile-repin.js +84 -0
- package/dist/lib/lanes/outpost-pruner-install.d.ts +37 -0
- package/dist/lib/lanes/outpost-pruner-install.js +238 -0
- package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +18 -0
- package/dist/lib/lanes/outpost-registry-worker-approval.js +109 -0
- package/dist/lib/lanes/outpost-snapshot-memo.d.ts +6 -0
- package/dist/lib/lanes/outpost-snapshot-memo.js +14 -0
- package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +19 -0
- package/dist/lib/lanes/outpost-worktree-pruner-flag.js +86 -0
- package/dist/lib/lanes/outpost-worktree-pruner.d.ts +62 -0
- package/dist/lib/lanes/outpost-worktree-pruner.js +1201 -0
- package/dist/lib/lanes/profile.d.ts +69 -0
- package/dist/lib/lanes/profile.js +552 -0
- package/dist/lib/lanes/provider-rejection.d.ts +86 -0
- package/dist/lib/lanes/provider-rejection.js +286 -0
- package/dist/lib/lanes/questions.d.ts +90 -0
- package/dist/lib/lanes/questions.js +384 -0
- package/dist/lib/lanes/quota.d.ts +134 -0
- package/dist/lib/lanes/quota.js +471 -0
- package/dist/lib/lanes/reconcile-install.d.ts +90 -0
- package/dist/lib/lanes/reconcile-install.js +257 -0
- package/dist/lib/lanes/reconcile.d.ts +161 -0
- package/dist/lib/lanes/reconcile.js +3343 -0
- package/dist/lib/lanes/registry-flag.d.ts +35 -0
- package/dist/lib/lanes/registry-flag.js +164 -0
- package/dist/lib/lanes/registry-persona.d.ts +20 -0
- package/dist/lib/lanes/registry-persona.js +329 -0
- package/dist/lib/lanes/registry.d.ts +122 -0
- package/dist/lib/lanes/registry.js +570 -0
- package/dist/lib/lanes/reviews.d.ts +38 -0
- package/dist/lib/lanes/reviews.js +395 -0
- package/dist/lib/lanes/runaway-tool-guard.d.ts +38 -0
- package/dist/lib/lanes/runaway-tool-guard.js +284 -0
- package/dist/lib/lanes/session-relink.d.ts +25 -0
- package/dist/lib/lanes/session-relink.js +216 -0
- package/dist/lib/lanes/spawn.d.ts +355 -0
- package/dist/lib/lanes/spawn.js +2668 -0
- package/dist/lib/lanes/ssm-command-context.d.ts +12 -0
- package/dist/lib/lanes/ssm-command-context.js +52 -0
- package/dist/lib/lanes/store.d.ts +91 -0
- package/dist/lib/lanes/store.js +1822 -0
- package/dist/lib/lanes/stories.d.ts +23 -0
- package/dist/lib/lanes/stories.js +92 -0
- package/dist/lib/lanes/story-ledger.d.ts +80 -0
- package/dist/lib/lanes/story-ledger.js +815 -0
- package/dist/lib/lanes/story-switch.d.ts +21 -0
- package/dist/lib/lanes/story-switch.js +75 -0
- package/dist/lib/lanes/text-scan.d.ts +11 -0
- package/dist/lib/lanes/text-scan.js +103 -0
- package/dist/lib/lanes/throttle.d.ts +116 -0
- package/dist/lib/lanes/throttle.js +437 -0
- package/dist/lib/lanes/timestamp.d.ts +3 -0
- package/dist/lib/lanes/timestamp.js +26 -0
- package/dist/lib/lanes/tracker-checks.d.ts +77 -0
- package/dist/lib/lanes/tracker-checks.js +134 -0
- package/dist/lib/lanes/tracker-report-state.d.ts +10 -0
- package/dist/lib/lanes/tracker-report-state.js +124 -0
- package/dist/lib/lanes/tracker-report.d.ts +203 -0
- package/dist/lib/lanes/tracker-report.js +522 -0
- package/dist/lib/lanes/tracker-store.d.ts +18 -0
- package/dist/lib/lanes/tracker-store.js +106 -0
- package/dist/lib/lanes/types.d.ts +1030 -0
- package/dist/lib/lanes/types.js +418 -0
- package/dist/lib/lanes/wait.d.ts +39 -0
- package/dist/lib/lanes/wait.js +159 -0
- package/dist/lib/lanes/watch.d.ts +39 -0
- package/dist/lib/lanes/watch.js +249 -0
- package/dist/lib/lanes/watcher-main.d.ts +11 -0
- package/dist/lib/lanes/watcher-main.js +108 -0
- package/dist/lib/lanes/watcher.d.ts +287 -0
- package/dist/lib/lanes/watcher.js +1972 -0
- package/dist/lib/mesh/api.d.ts +103 -10
- package/dist/lib/mesh/api.js +334 -64
- package/dist/lib/mesh/client.d.ts +3 -2
- package/dist/lib/mesh/client.js +26 -7
- package/dist/lib/mesh/denial-codes.d.ts +5 -0
- package/dist/lib/mesh/denial-codes.js +14 -0
- package/dist/lib/mesh/live/backfill-held.d.ts +67 -16
- package/dist/lib/mesh/live/backfill-held.js +415 -61
- package/dist/lib/mesh/live/backoff.d.ts +2 -2
- package/dist/lib/mesh/live/backoff.js +16 -3
- package/dist/lib/mesh/live/daemon/board-refresh.d.ts +7 -1
- package/dist/lib/mesh/live/daemon/board-refresh.js +78 -30
- package/dist/lib/mesh/live/daemon/config.d.ts +36 -0
- package/dist/lib/mesh/live/daemon/config.js +120 -0
- package/dist/lib/mesh/live/daemon/credentials.d.ts +64 -10
- package/dist/lib/mesh/live/daemon/credentials.js +270 -20
- package/dist/lib/mesh/live/daemon/doctor.d.ts +53 -0
- package/dist/lib/mesh/live/daemon/doctor.js +190 -6
- package/dist/lib/mesh/live/daemon/index.d.ts +13 -10
- package/dist/lib/mesh/live/daemon/index.js +7 -6
- package/dist/lib/mesh/live/daemon/install.d.ts +255 -1
- package/dist/lib/mesh/live/daemon/install.js +811 -13
- package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +43 -0
- package/dist/lib/mesh/live/daemon/legacy-listen.js +89 -0
- package/dist/lib/mesh/live/daemon/live-cache.d.ts +26 -0
- package/dist/lib/mesh/live/daemon/live-cache.js +116 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +7 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.js +2 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +2 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +10 -0
- package/dist/lib/mesh/live/daemon/paths.d.ts +2 -0
- package/dist/lib/mesh/live/daemon/paths.js +2 -0
- package/dist/lib/mesh/live/daemon/presence.d.ts +24 -5
- package/dist/lib/mesh/live/daemon/presence.js +79 -10
- package/dist/lib/mesh/live/daemon/run.d.ts +48 -2
- package/dist/lib/mesh/live/daemon/run.js +485 -33
- package/dist/lib/mesh/live/daemon/state.d.ts +19 -2
- package/dist/lib/mesh/live/daemon/state.js +34 -2
- package/dist/lib/mesh/live/daemon/transcript-watch.d.ts +45 -9
- package/dist/lib/mesh/live/daemon/transcript-watch.js +227 -31
- package/dist/lib/mesh/live/daemon/version-drift.d.ts +5 -0
- package/dist/lib/mesh/live/daemon/version-drift.js +47 -0
- package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +32 -0
- package/dist/lib/mesh/live/daemon/work-subscribe.js +262 -0
- package/dist/lib/mesh/live/emit-client.d.ts +8 -0
- package/dist/lib/mesh/live/emit-client.js +23 -8
- package/dist/lib/mesh/live/emit-evidence.d.ts +19 -0
- package/dist/lib/mesh/live/emit-evidence.js +20 -2
- package/dist/lib/mesh/live/emit.d.ts +9 -0
- package/dist/lib/mesh/live/emit.js +28 -2
- package/dist/lib/mesh/live/enqueue.d.ts +5 -0
- package/dist/lib/mesh/live/enqueue.js +19 -0
- package/dist/lib/mesh/live/flush.d.ts +17 -5
- package/dist/lib/mesh/live/flush.js +391 -38
- package/dist/lib/mesh/live/format-spool-line.d.ts +5 -2
- package/dist/lib/mesh/live/format-spool-line.js +10 -0
- package/dist/lib/mesh/live/paths.d.ts +2 -0
- package/dist/lib/mesh/live/paths.js +4 -0
- package/dist/lib/mesh/live/report-summary.d.ts +45 -0
- package/dist/lib/mesh/live/report-summary.js +234 -0
- package/dist/lib/mesh/live/session-event.schema.json +24 -1
- package/dist/lib/mesh/live/session-events-client.d.ts +2 -0
- package/dist/lib/mesh/live/session-events-client.js +26 -0
- package/dist/lib/mesh/live/session-seq.d.ts +4 -0
- package/dist/lib/mesh/live/session-seq.js +33 -0
- package/dist/lib/mesh/live/spool.d.ts +19 -0
- package/dist/lib/mesh/live/spool.js +269 -3
- package/dist/lib/mesh/live/validate-session-event.d.ts +1 -1
- package/dist/lib/mesh/live/validate-session-event.js +1 -1
- package/dist/lib/mesh/project-board.d.ts +65 -0
- package/dist/lib/mesh/project-board.js +181 -0
- package/dist/lib/mesh/story-status.d.ts +22 -0
- package/dist/lib/mesh/story-status.js +49 -0
- package/dist/lib/monitor.d.ts +149 -0
- package/dist/lib/monitor.js +519 -0
- package/dist/lib/node-binary.d.ts +50 -0
- package/dist/lib/node-binary.js +133 -0
- package/dist/lib/notify-recipient.d.ts +7 -0
- package/dist/lib/notify-recipient.js +11 -0
- package/dist/lib/onboarding/checkpoint.d.ts +13 -0
- package/dist/lib/onboarding/checkpoint.js +44 -0
- package/dist/lib/onboarding/cli/onboard.d.ts +53 -0
- package/dist/lib/onboarding/cli/onboard.js +135 -0
- package/dist/lib/onboarding/cli/prompts.d.ts +28 -0
- package/dist/lib/onboarding/cli/prompts.js +83 -0
- package/dist/lib/onboarding/errors.d.ts +34 -0
- package/dist/lib/onboarding/errors.js +59 -0
- package/dist/lib/onboarding/index.d.ts +13 -0
- package/dist/lib/onboarding/index.js +13 -0
- package/dist/lib/onboarding/orchestrator.d.ts +47 -0
- package/dist/lib/onboarding/orchestrator.js +569 -0
- package/dist/lib/onboarding/types.d.ts +79 -0
- package/dist/lib/onboarding/types.js +8 -0
- package/dist/lib/plan-limit-nag.d.ts +102 -6
- package/dist/lib/plan-limit-nag.js +348 -43
- package/dist/lib/policy-validator.d.ts +7 -0
- package/dist/lib/policy-validator.js +187 -0
- package/dist/lib/process-flag-company-context.d.ts +8 -0
- package/dist/lib/process-flag-company-context.js +67 -0
- package/dist/lib/report-publish.d.ts +175 -0
- package/dist/lib/report-publish.js +421 -0
- package/dist/lib/report-run.d.ts +62 -0
- package/dist/lib/report-run.js +123 -0
- package/dist/lib/report-snapshot.d.ts +12 -0
- package/dist/lib/report-snapshot.js +135 -0
- package/dist/lib/report-templates.d.ts +9 -0
- package/dist/lib/report-templates.js +21 -0
- package/dist/lib/scaffold-cli-floor.d.ts +8 -0
- package/dist/lib/scaffold-cli-floor.js +50 -0
- package/dist/lib/scan-packages/index.d.ts +2 -0
- package/dist/lib/scan-packages/index.js +168 -6
- package/dist/lib/search-index/background.d.ts +8 -1
- package/dist/lib/search-index/background.js +55 -200
- package/dist/lib/search-index/collection-path-repair-flag.d.ts +4 -0
- package/dist/lib/search-index/collection-path-repair-flag.js +7 -0
- package/dist/lib/search-index/embed-lock.d.ts +34 -0
- package/dist/lib/search-index/embed-lock.js +295 -0
- package/dist/lib/search-index/index.d.ts +12 -0
- package/dist/lib/search-index/index.js +153 -7
- package/dist/lib/search-index/load-gate.d.ts +57 -0
- package/dist/lib/search-index/load-gate.js +270 -0
- package/dist/lib/search-index/max-doc-bytes.d.ts +219 -0
- package/dist/lib/search-index/max-doc-bytes.js +463 -0
- package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +5 -0
- package/dist/lib/search-index/qmd-exit-diagnostics.js +40 -0
- package/dist/lib/search-index/reindex-single-flight-flag.d.ts +5 -0
- package/dist/lib/search-index/reindex-single-flight-flag.js +8 -0
- package/dist/lib/service-manager/index.d.ts +42 -0
- package/dist/lib/service-manager/index.js +105 -0
- package/dist/lib/service-manager/launchd.d.ts +81 -0
- package/dist/lib/service-manager/launchd.js +212 -0
- package/dist/lib/service-manager/systemd.d.ts +19 -0
- package/dist/lib/service-manager/systemd.js +72 -0
- package/dist/lib/service-manager/types.d.ts +34 -0
- package/dist/lib/service-manager/types.js +26 -0
- package/dist/lib/test-utils/isolated-flag-company-context.d.ts +3 -0
- package/dist/lib/test-utils/isolated-flag-company-context.js +18 -0
- package/dist/lib/work-context/bind-best.d.ts +66 -0
- package/dist/lib/work-context/bind-best.js +344 -0
- package/dist/lib/work-context/bind-calling-session.d.ts +26 -0
- package/dist/lib/work-context/bind-calling-session.js +63 -0
- package/dist/lib/work-context/company-rebind.d.ts +23 -0
- package/dist/lib/work-context/company-rebind.js +59 -0
- package/dist/lib/work-context/company.d.ts +22 -20
- package/dist/lib/work-context/company.js +124 -40
- package/dist/lib/work-context/config.d.ts +58 -11
- package/dist/lib/work-context/config.js +334 -83
- package/dist/lib/work-context/contract.d.ts +13 -0
- package/dist/lib/work-context/contract.schema.json +3 -1
- package/dist/lib/work-context/default-company.d.ts +43 -0
- package/dist/lib/work-context/default-company.js +83 -0
- package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +4 -0
- package/dist/lib/work-context/outbox-quarantine-status-flag.js +7 -0
- package/dist/lib/work-context/outbox.d.ts +27 -5
- package/dist/lib/work-context/outbox.js +135 -6
- package/dist/lib/work-context/prd-sync.d.ts +56 -0
- package/dist/lib/work-context/prd-sync.js +197 -0
- package/dist/lib/work-context/preflight-contract.d.ts +28 -0
- package/dist/lib/work-context/preflight-contract.js +85 -0
- package/dist/lib/work-context/prompt-rebind.d.ts +25 -0
- package/dist/lib/work-context/prompt-rebind.js +85 -0
- package/dist/lib/work-context/reconcile.d.ts +15 -0
- package/dist/lib/work-context/reconcile.js +405 -29
- package/dist/lib/work-context/state.d.ts +93 -10
- package/dist/lib/work-context/state.js +342 -29
- package/dist/lib/work-context/windows-acl.d.ts +123 -0
- package/dist/lib/work-context/windows-acl.js +425 -0
- package/dist/lib/workers-registry/index.js +62 -8
- package/dist/lib/workers-registry/read.d.ts +15 -0
- package/dist/lib/workers-registry/read.js +17 -0
- package/dist/main.d.ts +32 -0
- package/dist/main.js +273 -73
- package/dist/native-fast-route.d.ts +7 -0
- package/dist/native-fast-route.js +45 -0
- package/dist/node-network-compat-core.d.ts +12 -0
- package/dist/node-network-compat-core.js +41 -0
- package/dist/node-network-compat-fast.d.ts +7 -0
- package/dist/node-network-compat-fast.js +23 -0
- package/dist/node-network-compat.d.ts +2 -30
- package/dist/node-network-compat.js +4 -51
- package/dist/node-preflight.d.ts +7 -1
- package/dist/node-preflight.js +5 -5
- package/dist/register-all.d.ts +4 -29
- package/dist/register-all.js +4 -233
- package/dist/run/discover-schemas.d.ts +2 -1
- package/dist/run/env-graph-guard.d.ts +2 -2
- package/dist/run/env-graph-guard.js +5 -2
- package/dist/run/hq-plugin.d.ts +4 -0
- package/dist/run/hq-plugin.js +36 -8
- package/dist/secrets-env-fast-path.d.ts +5 -0
- package/dist/secrets-env-fast-path.js +16 -0
- package/dist/secrets-env-fast-route.d.ts +18 -0
- package/dist/secrets-env-fast-route.js +54 -0
- package/dist/sentry-before-send.js +80 -0
- package/dist/sentry.d.ts +16 -4
- package/dist/sentry.js +179 -18
- package/dist/startup-registration.d.ts +26 -2
- package/dist/startup-registration.js +116 -15
- package/dist/utils/checkpoint-stamp-write-error.d.ts +28 -0
- package/dist/utils/checkpoint-stamp-write-error.js +99 -0
- package/dist/utils/cli-network-lifecycle.d.ts +4 -0
- package/dist/utils/cli-network-lifecycle.js +11 -0
- package/dist/utils/cli-telemetry.d.ts +75 -1
- package/dist/utils/cli-telemetry.js +433 -7
- package/dist/utils/client-health.d.ts +0 -4
- package/dist/utils/client-health.js +2 -2
- package/dist/utils/cognito-refresh-sentry.d.ts +3 -0
- package/dist/utils/cognito-refresh-sentry.js +49 -0
- package/dist/utils/cognito-session.d.ts +71 -0
- package/dist/utils/cognito-session.js +481 -27
- package/dist/utils/console-origin.d.ts +9 -0
- package/dist/utils/console-origin.js +28 -0
- package/dist/utils/contribution-table.d.ts +1 -1
- package/dist/utils/core-eval-trigger.d.ts +4 -0
- package/dist/utils/core-eval-trigger.js +88 -0
- package/dist/utils/environmental-error.d.ts +18 -0
- package/dist/utils/environmental-error.js +240 -7
- package/dist/utils/exclusive-lock.d.ts +32 -0
- package/dist/utils/exclusive-lock.js +75 -0
- package/dist/utils/expected-cli-error.d.ts +2 -0
- package/dist/utils/expected-cli-error.js +4 -0
- package/dist/utils/fast-stream-errors.d.ts +12 -0
- package/dist/utils/fast-stream-errors.js +18 -0
- package/dist/utils/feedback-diagnostics.d.ts +2 -1
- package/dist/utils/feedback-log-bundle.d.ts +51 -26
- package/dist/utils/feedback-log-bundle.js +211 -31
- package/dist/utils/feedback-logs.d.ts +18 -47
- package/dist/utils/feedback-logs.js +50 -21
- package/dist/utils/feedback-screenshots.d.ts +0 -1
- package/dist/utils/feedback-screenshots.js +1 -1
- package/dist/utils/files-browse-acl.d.ts +5 -0
- package/dist/utils/files-browse-acl.js +11 -0
- package/dist/utils/hq-core-yaml.d.ts +10 -0
- package/dist/utils/hq-core-yaml.js +40 -0
- package/dist/utils/hq-root-resolver.d.ts +13 -0
- package/dist/utils/hq-root-resolver.js +103 -0
- package/dist/utils/hq-roots.d.ts +25 -2
- package/dist/utils/hq-roots.js +67 -7
- package/dist/utils/incomplete-install-error.d.ts +87 -19
- package/dist/utils/incomplete-install-error.js +319 -68
- package/dist/utils/install-tree-torn.d.ts +260 -24
- package/dist/utils/install-tree-torn.js +998 -51
- package/dist/utils/large-file-guard.d.ts +0 -10
- package/dist/utils/large-file-guard.js +1 -1
- package/dist/utils/local-files-overview.d.ts +4 -8
- package/dist/utils/local-files-overview.js +48 -7
- package/dist/utils/login-provider.d.ts +7 -0
- package/dist/utils/login-provider.js +34 -0
- package/dist/utils/pack-contributions.d.ts +2 -14
- package/dist/utils/pack-contributions.js +7 -44
- package/dist/utils/package-root-diagnostics.d.ts +1 -1
- package/dist/utils/people.d.ts +7 -11
- package/dist/utils/people.js +5 -20
- package/dist/utils/plan-gate-error.d.ts +52 -10
- package/dist/utils/plan-gate-error.js +364 -41
- package/dist/utils/qmd-model-download-error.d.ts +0 -8
- package/dist/utils/qmd-model-download-error.js +1 -1
- package/dist/utils/qmd-query-document-error.d.ts +0 -6
- package/dist/utils/qmd-query-document-error.js +1 -1
- package/dist/utils/redact-error-text.d.ts +0 -2
- package/dist/utils/redact-error-text.js +3 -2
- package/dist/utils/redact-url.d.ts +14 -0
- package/dist/utils/redact-url.js +218 -0
- package/dist/utils/run-bundled-script.d.ts +6 -0
- package/dist/utils/run-bundled-script.js +117 -4
- package/dist/utils/sandbox-runner-client.d.ts +2 -1
- package/dist/utils/scaffold-fast-import-guard.d.ts +2 -0
- package/dist/utils/scaffold-fast-import-guard.js +40 -0
- package/dist/utils/scaffold-packlist-guard.d.ts +7 -0
- package/dist/utils/scaffold-packlist-guard.js +23 -0
- package/dist/utils/scaffold-sibling-references.d.ts +22 -0
- package/dist/utils/scaffold-sibling-references.js +156 -0
- package/dist/utils/secret-load-availability.d.ts +8 -0
- package/dist/utils/secret-load-availability.js +54 -0
- package/dist/utils/secrets-cache.d.ts +7 -3
- package/dist/utils/secrets-cache.js +162 -14
- package/dist/utils/self-update.d.ts +34 -1
- package/dist/utils/self-update.js +660 -42
- package/dist/utils/sentry-fingerprint.d.ts +23 -1
- package/dist/utils/sentry-fingerprint.js +223 -31
- package/dist/utils/staged-install.d.ts +34 -0
- package/dist/utils/staged-install.js +346 -0
- package/dist/utils/staged-npm-install.d.ts +16 -0
- package/dist/utils/staged-npm-install.js +264 -0
- package/dist/utils/sync-log-sources.d.ts +15 -0
- package/dist/utils/sync-log-sources.js +36 -0
- package/dist/utils/table-width.d.ts +7 -0
- package/dist/utils/table-width.js +15 -0
- package/dist/utils/team-upgrade.d.ts +1 -1
- package/dist/utils/team-upgrade.js +4 -3
- package/dist/utils/update-command-supervisor.cjs +247 -0
- package/dist/utils/upload-author.d.ts +15 -0
- package/dist/utils/upload-author.js +39 -0
- package/dist/utils/vault-api.d.ts +21 -1
- package/dist/utils/vault-api.js +251 -84
- package/dist/utils/version-check.d.ts +11 -1
- package/dist/utils/version-check.js +32 -3
- package/dist/utils/version-gate.d.ts +101 -17
- package/dist/utils/version-gate.js +645 -70
- package/dist/utils/version-report.d.ts +27 -0
- package/dist/utils/version-report.js +105 -0
- package/dist/utils/windows-spawn.d.ts +6 -0
- package/dist/utils/windows-spawn.js +37 -0
- package/dist/version-request.d.ts +14 -0
- package/dist/version-request.js +36 -0
- package/package.json +20 -8
- package/scripts/mesh-daemon-if-stale.mjs +20 -0
- package/templates/reports/blank.md +3 -0
- package/templates/reports/daily-digest.md +11 -0
- package/templates/runbooks/update-report.md +21 -0
- package/dist/commands/scaffold-fast.d.ts +0 -41
- package/dist/commands/scaffold-fast.js +0 -57
- package/dist/lib/work-context/index.d.ts +0 -25
- package/dist/lib/work-context/index.js +0 -21
package/dist/commands/login.js
CHANGED
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import { browserLogin, loadCachedTokens, isExpiring } from '@indigoai-us/hq-cloud';
|
|
6
6
|
import { cognitoConfigForLoginProvider } from '../utils/login-provider.js';
|
|
7
|
+
import * as readline from "node:readline/promises";
|
|
8
|
+
import { listActiveMembershipCompanies } from "../lib/mesh/api.js";
|
|
9
|
+
import { setDefaultCompany } from "../lib/work-context/config.js";
|
|
10
|
+
import { ensureDefaultCompany } from "../lib/work-context/default-company.js";
|
|
11
|
+
import { workContextRoot } from "../lib/work-context/paths.js";
|
|
7
12
|
function peekIdToken(idToken) {
|
|
8
13
|
try {
|
|
9
14
|
const payload = idToken.split('.')[1];
|
|
@@ -24,21 +29,59 @@ export function registerLoginCommand(program) {
|
|
|
24
29
|
.description('Authenticate with HQ via Cognito')
|
|
25
30
|
.option('--provider <provider>', 'OAuth provider to use: google, microsoft, or picker')
|
|
26
31
|
.action(async (options) => {
|
|
32
|
+
let accessToken;
|
|
27
33
|
try {
|
|
28
34
|
const existing = loadCachedTokens();
|
|
29
35
|
if (existing && !isExpiring(existing, 120)) {
|
|
30
36
|
const who = peekIdToken(existing.idToken).email ?? 'cached session';
|
|
31
37
|
console.log(chalk.green(`Already logged in as ${who}. Run \`hq logout\` to switch accounts.`));
|
|
32
|
-
|
|
38
|
+
accessToken = existing.accessToken;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log('Opening browser for authentication...');
|
|
42
|
+
const tokens = await browserLogin(cognitoConfigForLoginProvider(options.provider));
|
|
43
|
+
const who = peekIdToken(tokens.idToken).email ?? 'HQ';
|
|
44
|
+
console.log(chalk.green(`Logged in as ${who}`));
|
|
45
|
+
accessToken = tokens.accessToken;
|
|
33
46
|
}
|
|
34
|
-
console.log('Opening browser for authentication...');
|
|
35
|
-
const tokens = await browserLogin(cognitoConfigForLoginProvider(options.provider));
|
|
36
|
-
const who = peekIdToken(tokens.idToken).email ?? 'HQ';
|
|
37
|
-
console.log(chalk.green(`Logged in as ${who}`));
|
|
38
47
|
}
|
|
39
48
|
catch (error) {
|
|
40
49
|
console.error(chalk.red('Login failed:'), error instanceof Error ? error.message : 'Unknown error');
|
|
41
|
-
process.
|
|
50
|
+
process.exitCode = 1;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const root = workContextRoot();
|
|
55
|
+
const activation = await ensureDefaultCompany({
|
|
56
|
+
root,
|
|
57
|
+
listMemberships: () => listActiveMembershipCompanies(accessToken),
|
|
58
|
+
log: (message) => console.error(chalk.dim(message)),
|
|
59
|
+
});
|
|
60
|
+
if (activation.status === "needs_choice" && process.stdin.isTTY && process.stdout.isTTY) {
|
|
61
|
+
const choices = activation.memberships
|
|
62
|
+
.map((membership, index) => `${index + 1}. ${membership.slug}`)
|
|
63
|
+
.join("\n");
|
|
64
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
|
|
65
|
+
try {
|
|
66
|
+
const answer = await rl.question(`Choose this device's default company:\n${choices}\nSelection: `);
|
|
67
|
+
const selected = activation.memberships[Number.parseInt(answer, 10) - 1];
|
|
68
|
+
if (selected) {
|
|
69
|
+
await setDefaultCompany(selected.slug, {
|
|
70
|
+
root,
|
|
71
|
+
validateMembership: (candidate) => candidate === selected.slug ? { uid: selected.uid } : false,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
rl.close();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else if (activation.status === "needs_choice") {
|
|
80
|
+
console.error(chalk.yellow("Multiple active memberships. Run `hq mesh context default set <slug>` to choose this device's default company."));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.error(chalk.yellow('Default-company setup failed:'), error instanceof Error ? error.message : 'Unknown error');
|
|
42
85
|
}
|
|
43
86
|
});
|
|
44
87
|
}
|
|
@@ -74,6 +74,15 @@ export declare class ConfigParseError extends McpRegistrationError {
|
|
|
74
74
|
export declare class ConfigPermissionError extends McpRegistrationError {
|
|
75
75
|
readonly code: "ConfigPermissionError";
|
|
76
76
|
}
|
|
77
|
+
type CodexMcpCollisionOwner = 'hq' | 'foreign' | 'unknown';
|
|
78
|
+
type CodexMcpCollisionField = 'command' | 'args' | 'env' | 'url' | 'other';
|
|
79
|
+
/** Safe, value-free context for a Codex name collision reported to Sentry. */
|
|
80
|
+
export interface CodexMcpCollisionDiagnostics {
|
|
81
|
+
client: 'codex';
|
|
82
|
+
serverName: string;
|
|
83
|
+
existingEntryOwner: CodexMcpCollisionOwner;
|
|
84
|
+
diffFields: CodexMcpCollisionField[];
|
|
85
|
+
}
|
|
77
86
|
/**
|
|
78
87
|
* A server name is already present in the target config with a DIFFERENT
|
|
79
88
|
* definition than the one being merged (def-equal = idempotent no-op;
|
|
@@ -82,6 +91,8 @@ export declare class ConfigPermissionError extends McpRegistrationError {
|
|
|
82
91
|
*/
|
|
83
92
|
export declare class McpNameCollisionError extends McpRegistrationError {
|
|
84
93
|
readonly code: "McpNameCollisionError";
|
|
94
|
+
readonly codexDiagnostics?: CodexMcpCollisionDiagnostics;
|
|
95
|
+
constructor(message: string, codexDiagnostics?: CodexMcpCollisionDiagnostics);
|
|
85
96
|
}
|
|
86
97
|
/**
|
|
87
98
|
* The Codex runtime is absent (`~/.codex` missing). This is a FIRST-CLASS SKIP,
|
|
@@ -135,7 +146,7 @@ export declare function backupRoot(env: SafeWriteEnv): string;
|
|
|
135
146
|
/** `~/.hq/logs/mcp-registry.log` — the append-only JSONL audit log (mirrors backupRoot style). */
|
|
136
147
|
export declare function mcpRegistryLogPath(env: SafeWriteEnv): string;
|
|
137
148
|
/** The action recorded on an audit line. */
|
|
138
|
-
|
|
149
|
+
type AuditAction = 'register' | 'unregister';
|
|
139
150
|
/**
|
|
140
151
|
* The result recorded on an audit line:
|
|
141
152
|
* - `registered` — a register write that changed the file.
|
|
@@ -145,7 +156,7 @@ export type AuditAction = 'register' | 'unregister';
|
|
|
145
156
|
* foreign/unstamped entry left in place). PARTIAL is auditable.
|
|
146
157
|
* - `error` — the surface emit threw (the operation failed for this surface).
|
|
147
158
|
*/
|
|
148
|
-
|
|
159
|
+
type AuditResult = 'registered' | 'unregistered' | 'noop' | 'skipped' | 'error';
|
|
149
160
|
/**
|
|
150
161
|
* One append-only audit-log entry. EXACT shape (field order is the JSON key order):
|
|
151
162
|
* `{ ts, action, pack, server, transport, target, file, prevHash, newHash, result }`.
|
|
@@ -202,8 +213,6 @@ export declare function codexConfigPath(env: SafeWriteEnv): string;
|
|
|
202
213
|
export declare function isCodexInstalled(env: SafeWriteEnv): boolean;
|
|
203
214
|
/** `~/.claude.json` — the PINNED single Claude surface (top-level mcpServers). */
|
|
204
215
|
export declare function claudeConfigPath(env: SafeWriteEnv): string;
|
|
205
|
-
/** `~/.mcp.json` — the project-pinned Claude surface (a symlink on this host). */
|
|
206
|
-
export declare function mcpJsonPath(env: SafeWriteEnv): string;
|
|
207
216
|
/** Outcome of {@link readConfigDoc}: a parsed doc plus whether the file pre-existed. */
|
|
208
217
|
export interface ReadConfigResult<T> {
|
|
209
218
|
/** The parsed doc, or the `emptyDoc` when the file is absent/empty. */
|
|
@@ -273,10 +282,6 @@ export declare function readConfigDoc<T>(target: string, format: ConfigFormat<T>
|
|
|
273
282
|
* separate snippet block) cannot leak. The result never contains raw file content.
|
|
274
283
|
*/
|
|
275
284
|
export declare function sanitizeParserMessage(message: string): string;
|
|
276
|
-
/** Default stale-lock timeout — a lock older than this whose PID is dead is broken. */
|
|
277
|
-
export declare const DEFAULT_LOCK_STALE_MS = 30000;
|
|
278
|
-
/** Default total time to wait for a held lock before giving up. */
|
|
279
|
-
export declare const DEFAULT_LOCK_WAIT_MS = 10000;
|
|
280
285
|
/** A held advisory lock; release with {@link releaseLock} (idempotent). */
|
|
281
286
|
export interface ConfigLock {
|
|
282
287
|
/** The lockfile path (`~/.<basename>.hqlock`). */
|
|
@@ -494,7 +499,8 @@ export declare function serverDefsEqual(a: unknown, b: unknown): boolean;
|
|
|
494
499
|
* it — but byte-equality of the rest means {@link writeConfigAtomic} writes
|
|
495
500
|
* nothing unless the stamp itself is the only delta, which we treat as a no-op
|
|
496
501
|
* by returning the original doc.
|
|
497
|
-
* - name PRESENT, def-DIFFERS ->
|
|
502
|
+
* - name PRESENT, def-DIFFERS, same non-empty `_hqPack` -> replace the entry.
|
|
503
|
+
* - name PRESENT, def-DIFFERS, unmarked or different owner -> collision ABORT.
|
|
498
504
|
*
|
|
499
505
|
* Never touches any OTHER server entry or any other top-level key.
|
|
500
506
|
*/
|
|
@@ -646,8 +652,8 @@ type TomlTable = Record<string, unknown>;
|
|
|
646
652
|
* The Codex doc threaded through the safe-write core. We carry BOTH the parsed
|
|
647
653
|
* value (`value`, for the merge fn + verify) AND the ORIGINAL file text
|
|
648
654
|
* (`originalText`, `null` for a fresh/empty file). {@link codexConfigFormat.serialize}
|
|
649
|
-
* uses `originalText` to APPEND
|
|
650
|
-
*
|
|
655
|
+
* uses `originalText` to APPEND a new table or replace sections of a same-pack
|
|
656
|
+
* owned table without re-serializing unrelated content. This is the seam that
|
|
651
657
|
* makes "preserves comments" honest within a value-only TOML library.
|
|
652
658
|
*/
|
|
653
659
|
export interface CodexTomlDoc {
|
|
@@ -661,7 +667,7 @@ export declare const CODEX_MCP_SERVERS_KEY = "mcp_servers";
|
|
|
661
667
|
/**
|
|
662
668
|
* Serialize EXACTLY ONE server table (`[mcp_servers.<name>]` + its sub-tables)
|
|
663
669
|
* by wrapping the def under `mcp_servers.<name>` and round-tripping it through
|
|
664
|
-
* smol-toml. Used
|
|
670
|
+
* smol-toml. Used for appending new servers, replacing an owned table, and the
|
|
665
671
|
* collision/equality comparison. The output is deterministic for a given def so a
|
|
666
672
|
* re-install produces byte-identical text (idempotency depends on it).
|
|
667
673
|
*/
|
|
@@ -670,15 +676,15 @@ export declare function serializeOneCodexServer(name: string, def: TomlTable): s
|
|
|
670
676
|
* The Codex `ConfigFormat`. `parse` round-trips the file through smol-toml
|
|
671
677
|
* (throwing `TomlError` on malformed NON-empty input → the substrate maps it to
|
|
672
678
|
* {@link ConfigParseError}, FAIL-CLOSED). `serialize` is comment-preserving: when
|
|
673
|
-
* the doc carries `originalText` (the file pre-existed) it APPENDS
|
|
674
|
-
*
|
|
675
|
-
* whole value
|
|
676
|
-
*
|
|
677
|
-
*
|
|
678
|
-
* Because `serialize` needs
|
|
679
|
-
*
|
|
680
|
-
*
|
|
681
|
-
*
|
|
679
|
+
* the doc carries `originalText` (the file pre-existed) it APPENDS a new server
|
|
680
|
+
* table or replaces only a same-pack owned table, rather than re-serializing the
|
|
681
|
+
* whole value. Only a fresh file (`null`) is serialized from scratch.
|
|
682
|
+
* `assertEntry` checks `mcp_servers.<name>` is present.
|
|
683
|
+
*
|
|
684
|
+
* Because `serialize` needs to know WHICH server to append or replace, the merge
|
|
685
|
+
* fn ({@link mergeCodexServer}) records the operation on the doc. For an
|
|
686
|
+
* idempotent no-op (server already present, def-equal) the merge returns the doc
|
|
687
|
+
* UNCHANGED, so
|
|
682
688
|
* `serialize` reproduces the original text exactly (no write happens).
|
|
683
689
|
*/
|
|
684
690
|
export declare const codexConfigFormat: ConfigFormat<CodexTomlDoc>;
|
|
@@ -716,9 +722,10 @@ export declare function buildCodexToolsTable(tools: McpManifest['tools']): TomlT
|
|
|
716
722
|
* - name PRESENT, def-equal (provenance-ignored) → NO-OP (idempotent re-install /
|
|
717
723
|
* PARTIAL self-heal): return the doc UNCHANGED with no pending append, so the
|
|
718
724
|
* original text round-trips byte-for-byte.
|
|
719
|
-
* - name PRESENT, def-DIFFERS →
|
|
720
|
-
*
|
|
721
|
-
*
|
|
725
|
+
* - name PRESENT, def-DIFFERS, same `_hqPack` owner → update that owned table
|
|
726
|
+
* while preserving unrelated TOML bytes and comments.
|
|
727
|
+
* - name PRESENT, def-DIFFERS, any other owner → {@link McpNameCollisionError}
|
|
728
|
+
* ABORT with value-free diagnostics.
|
|
722
729
|
*
|
|
723
730
|
* Never touches any OTHER server table or any other top-level table.
|
|
724
731
|
*/
|
|
@@ -739,7 +746,7 @@ export declare function mergeCodexServer(name: string, def: TomlTable): (doc: Co
|
|
|
739
746
|
*/
|
|
740
747
|
export declare function registerCodexServer(opts: RegisterServerOptions): RegisterSurfaceResult | RegisterSurfaceSkip;
|
|
741
748
|
/** Discriminates an un-registration outcome on one surface. */
|
|
742
|
-
|
|
749
|
+
type UnregisterOutcome =
|
|
743
750
|
/** The provenance-stamped entry was found and removed (file changed). */
|
|
744
751
|
'removed'
|
|
745
752
|
/** The entry was already absent / never installed — a clean idempotent no-op. */
|
|
@@ -99,6 +99,11 @@ export class ConfigPermissionError extends McpRegistrationError {
|
|
|
99
99
|
*/
|
|
100
100
|
export class McpNameCollisionError extends McpRegistrationError {
|
|
101
101
|
code = 'McpNameCollisionError';
|
|
102
|
+
codexDiagnostics;
|
|
103
|
+
constructor(message, codexDiagnostics) {
|
|
104
|
+
super(message);
|
|
105
|
+
this.codexDiagnostics = codexDiagnostics;
|
|
106
|
+
}
|
|
102
107
|
}
|
|
103
108
|
/**
|
|
104
109
|
* The Codex runtime is absent (`~/.codex` missing). This is a FIRST-CLASS SKIP,
|
|
@@ -237,10 +242,6 @@ export function isCodexInstalled(env) {
|
|
|
237
242
|
export function claudeConfigPath(env) {
|
|
238
243
|
return path.join(env.home, '.claude.json');
|
|
239
244
|
}
|
|
240
|
-
/** `~/.mcp.json` — the project-pinned Claude surface (a symlink on this host). */
|
|
241
|
-
export function mcpJsonPath(env) {
|
|
242
|
-
return path.join(env.home, '.mcp.json');
|
|
243
|
-
}
|
|
244
245
|
/**
|
|
245
246
|
* Built-in JSON {@link ConfigFormat} for the Claude surfaces. Pretty-prints with
|
|
246
247
|
* a trailing newline; an empty doc is `{}`. Parsing the empty string is the
|
|
@@ -363,9 +364,9 @@ export function sanitizeParserMessage(message) {
|
|
|
363
364
|
// Advisory O_EXCL lock (held across read->merge->write).
|
|
364
365
|
// ---------------------------------------------------------------------------
|
|
365
366
|
/** Default stale-lock timeout — a lock older than this whose PID is dead is broken. */
|
|
366
|
-
|
|
367
|
+
const DEFAULT_LOCK_STALE_MS = 30_000;
|
|
367
368
|
/** Default total time to wait for a held lock before giving up. */
|
|
368
|
-
|
|
369
|
+
const DEFAULT_LOCK_WAIT_MS = 10_000;
|
|
369
370
|
/** The lockfile path for a target: `~/.<basename>.hqlock` (a sibling, hidden). */
|
|
370
371
|
export function lockPathFor(target) {
|
|
371
372
|
const dir = path.dirname(target);
|
|
@@ -1009,7 +1010,8 @@ function canonicalJson(v) {
|
|
|
1009
1010
|
* it — but byte-equality of the rest means {@link writeConfigAtomic} writes
|
|
1010
1011
|
* nothing unless the stamp itself is the only delta, which we treat as a no-op
|
|
1011
1012
|
* by returning the original doc.
|
|
1012
|
-
* - name PRESENT, def-DIFFERS ->
|
|
1013
|
+
* - name PRESENT, def-DIFFERS, same non-empty `_hqPack` -> replace the entry.
|
|
1014
|
+
* - name PRESENT, def-DIFFERS, unmarked or different owner -> collision ABORT.
|
|
1013
1015
|
*
|
|
1014
1016
|
* Never touches any OTHER server entry or any other top-level key.
|
|
1015
1017
|
*/
|
|
@@ -1023,6 +1025,12 @@ export function mergeClaudeServer(name, def) {
|
|
|
1023
1025
|
// (do not re-stamp) so a re-install is a true byte-for-byte no-op.
|
|
1024
1026
|
return doc;
|
|
1025
1027
|
}
|
|
1028
|
+
const existingPack = provenanceOf(existing);
|
|
1029
|
+
const incomingPack = provenanceOf(def);
|
|
1030
|
+
if (existingPack && existingPack === incomingPack) {
|
|
1031
|
+
servers[name] = def;
|
|
1032
|
+
return { ...doc, mcpServers: servers };
|
|
1033
|
+
}
|
|
1026
1034
|
throw new McpNameCollisionError(`MCP server "${name}" is already defined in ~/.claude.json with a different ` +
|
|
1027
1035
|
'definition — refusing to overwrite. Remove or rename the existing server, ' +
|
|
1028
1036
|
'or uninstall the conflicting pack, then re-install.');
|
|
@@ -1302,7 +1310,7 @@ export const CODEX_MCP_SERVERS_KEY = 'mcp_servers';
|
|
|
1302
1310
|
/**
|
|
1303
1311
|
* Serialize EXACTLY ONE server table (`[mcp_servers.<name>]` + its sub-tables)
|
|
1304
1312
|
* by wrapping the def under `mcp_servers.<name>` and round-tripping it through
|
|
1305
|
-
* smol-toml. Used
|
|
1313
|
+
* smol-toml. Used for appending new servers, replacing an owned table, and the
|
|
1306
1314
|
* collision/equality comparison. The output is deterministic for a given def so a
|
|
1307
1315
|
* re-install produces byte-identical text (idempotency depends on it).
|
|
1308
1316
|
*/
|
|
@@ -1313,15 +1321,15 @@ export function serializeOneCodexServer(name, def) {
|
|
|
1313
1321
|
* The Codex `ConfigFormat`. `parse` round-trips the file through smol-toml
|
|
1314
1322
|
* (throwing `TomlError` on malformed NON-empty input → the substrate maps it to
|
|
1315
1323
|
* {@link ConfigParseError}, FAIL-CLOSED). `serialize` is comment-preserving: when
|
|
1316
|
-
* the doc carries `originalText` (the file pre-existed) it APPENDS
|
|
1317
|
-
*
|
|
1318
|
-
* whole value
|
|
1319
|
-
*
|
|
1324
|
+
* the doc carries `originalText` (the file pre-existed) it APPENDS a new server
|
|
1325
|
+
* table or replaces only a same-pack owned table, rather than re-serializing the
|
|
1326
|
+
* whole value. Only a fresh file (`null`) is serialized from scratch.
|
|
1327
|
+
* `assertEntry` checks `mcp_servers.<name>` is present.
|
|
1320
1328
|
*
|
|
1321
|
-
* Because `serialize` needs
|
|
1322
|
-
*
|
|
1323
|
-
*
|
|
1324
|
-
*
|
|
1329
|
+
* Because `serialize` needs to know WHICH server to append or replace, the merge
|
|
1330
|
+
* fn ({@link mergeCodexServer}) records the operation on the doc. For an
|
|
1331
|
+
* idempotent no-op (server already present, def-equal) the merge returns the doc
|
|
1332
|
+
* UNCHANGED, so
|
|
1325
1333
|
* `serialize` reproduces the original text exactly (no write happens).
|
|
1326
1334
|
*/
|
|
1327
1335
|
export const codexConfigFormat = {
|
|
@@ -1332,7 +1340,16 @@ export const codexConfigFormat = {
|
|
|
1332
1340
|
return { value, originalText: text };
|
|
1333
1341
|
},
|
|
1334
1342
|
serialize(doc) {
|
|
1335
|
-
const
|
|
1343
|
+
const pendingDoc = doc;
|
|
1344
|
+
const pendingUpdate = pendingDoc[PENDING_UPDATE];
|
|
1345
|
+
if (doc.originalText !== null && pendingUpdate) {
|
|
1346
|
+
const updated = replaceCodexTable(doc.originalText, pendingUpdate.name, pendingUpdate.def);
|
|
1347
|
+
if (updated === null) {
|
|
1348
|
+
throw new McpNameCollisionError(codexCollisionMessage(pendingUpdate.name), pendingUpdate.diagnostics);
|
|
1349
|
+
}
|
|
1350
|
+
return updated;
|
|
1351
|
+
}
|
|
1352
|
+
const pending = pendingDoc[PENDING_APPEND];
|
|
1336
1353
|
if (doc.originalText !== null && pending) {
|
|
1337
1354
|
// APPEND path: keep the original bytes verbatim (comments + every existing
|
|
1338
1355
|
// table/sub-table preserved), then append the one new server table.
|
|
@@ -1362,6 +1379,7 @@ export const codexConfigFormat = {
|
|
|
1362
1379
|
};
|
|
1363
1380
|
/** Symbol carrying the pending append on a {@link CodexTomlDoc} (merge → serialize). */
|
|
1364
1381
|
const PENDING_APPEND = Symbol('hqPendingCodexAppend');
|
|
1382
|
+
const PENDING_UPDATE = Symbol('hqPendingCodexUpdate');
|
|
1365
1383
|
/** Return a copy of `value` with `mcp_servers.<name> = def` set (used for fresh-file serialize). */
|
|
1366
1384
|
function withServer(value, name, def) {
|
|
1367
1385
|
const servers = { ...(value[CODEX_MCP_SERVERS_KEY] ?? {}) };
|
|
@@ -1384,6 +1402,171 @@ export function appendCodexTable(originalText, name, def) {
|
|
|
1384
1402
|
const body = block.endsWith('\n') ? block : `${block}\n`;
|
|
1385
1403
|
return `${trimmed}\n\n${body}`;
|
|
1386
1404
|
}
|
|
1405
|
+
/** Return the decoded table path for a valid TOML table header, or null. */
|
|
1406
|
+
function codexTablePath(headerLine) {
|
|
1407
|
+
try {
|
|
1408
|
+
const value = parseToml(headerLine);
|
|
1409
|
+
const matches = [];
|
|
1410
|
+
const visit = (current, pathParts) => {
|
|
1411
|
+
if (current === null || typeof current !== 'object')
|
|
1412
|
+
return;
|
|
1413
|
+
if (Array.isArray(current)) {
|
|
1414
|
+
current.forEach((item, index) => visit(item, [...pathParts, String(index)]));
|
|
1415
|
+
return;
|
|
1416
|
+
}
|
|
1417
|
+
const table = current;
|
|
1418
|
+
const entries = Object.entries(table);
|
|
1419
|
+
if (entries.length === 0) {
|
|
1420
|
+
matches.push(pathParts);
|
|
1421
|
+
return;
|
|
1422
|
+
}
|
|
1423
|
+
for (const [key, child] of entries) {
|
|
1424
|
+
visit(child, [...pathParts, key]);
|
|
1425
|
+
}
|
|
1426
|
+
};
|
|
1427
|
+
visit(value, []);
|
|
1428
|
+
return matches.length === 1 ? matches[0] : null;
|
|
1429
|
+
}
|
|
1430
|
+
catch {
|
|
1431
|
+
// The caller has already parsed the whole document. Ordinary values are
|
|
1432
|
+
// not table headers.
|
|
1433
|
+
return null;
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
/**
|
|
1437
|
+
* Locate real table headers without mistaking bracket-like text in TOML values
|
|
1438
|
+
* for a header. Parsing the preceding prefix ensures a candidate is not inside
|
|
1439
|
+
* an unfinished multiline string or array; smol-toml decodes quoted key paths.
|
|
1440
|
+
*/
|
|
1441
|
+
function codexTomlSections(text) {
|
|
1442
|
+
const headers = [];
|
|
1443
|
+
let offset = 0;
|
|
1444
|
+
for (const line of text.match(/[^\n]*(?:\n|$)/g) ?? []) {
|
|
1445
|
+
if (line.length === 0)
|
|
1446
|
+
continue;
|
|
1447
|
+
const content = line.replace(/\r?\n$/, '');
|
|
1448
|
+
if (content.trimStart().startsWith('[')) {
|
|
1449
|
+
try {
|
|
1450
|
+
parseToml(text.slice(0, offset));
|
|
1451
|
+
const path = codexTablePath(content);
|
|
1452
|
+
if (path)
|
|
1453
|
+
headers.push({ start: offset, path });
|
|
1454
|
+
}
|
|
1455
|
+
catch {
|
|
1456
|
+
// The prefix is incomplete TOML, so this bracket is part of a value.
|
|
1457
|
+
}
|
|
1458
|
+
}
|
|
1459
|
+
offset += line.length;
|
|
1460
|
+
}
|
|
1461
|
+
return headers.map((header, index) => {
|
|
1462
|
+
const nextStart = headers[index + 1]?.start ?? text.length;
|
|
1463
|
+
let end = nextStart;
|
|
1464
|
+
const trailingLines = text.slice(header.start, nextStart).match(/[^\n]*(?:\n|$)/g) ?? [];
|
|
1465
|
+
for (let lineIndex = trailingLines.length - 1; lineIndex >= 0; lineIndex -= 1) {
|
|
1466
|
+
const content = trailingLines[lineIndex].replace(/\r?\n$/, '');
|
|
1467
|
+
if (content.trim() === '' || content.trimStart().startsWith('#')) {
|
|
1468
|
+
end -= trailingLines[lineIndex].length;
|
|
1469
|
+
}
|
|
1470
|
+
else {
|
|
1471
|
+
break;
|
|
1472
|
+
}
|
|
1473
|
+
}
|
|
1474
|
+
return { ...header, end };
|
|
1475
|
+
});
|
|
1476
|
+
}
|
|
1477
|
+
/** Extract comment text outside TOML strings so updating an owned table drops no user notes. */
|
|
1478
|
+
function codexTomlComments(text) {
|
|
1479
|
+
const comments = [];
|
|
1480
|
+
let multiline = null;
|
|
1481
|
+
let lineOffset = 0;
|
|
1482
|
+
for (const lineWithEnding of text.match(/[^\n]*(?:\n|$)/g) ?? []) {
|
|
1483
|
+
if (lineWithEnding.length === 0)
|
|
1484
|
+
continue;
|
|
1485
|
+
const line = lineWithEnding.replace(/\r?\n$/, '');
|
|
1486
|
+
let quote = null;
|
|
1487
|
+
let index = 0;
|
|
1488
|
+
while (index < line.length) {
|
|
1489
|
+
if (multiline) {
|
|
1490
|
+
const delimiter = multiline === 'basic' ? '"""' : "'''";
|
|
1491
|
+
if (multiline === 'basic' && line[index] === '\\') {
|
|
1492
|
+
index += 2;
|
|
1493
|
+
}
|
|
1494
|
+
else if (line.startsWith(delimiter, index)) {
|
|
1495
|
+
multiline = null;
|
|
1496
|
+
index += 3;
|
|
1497
|
+
}
|
|
1498
|
+
else {
|
|
1499
|
+
index += 1;
|
|
1500
|
+
}
|
|
1501
|
+
continue;
|
|
1502
|
+
}
|
|
1503
|
+
if (quote) {
|
|
1504
|
+
const closing = quote === 'basic' ? '"' : "'";
|
|
1505
|
+
if (quote === 'basic' && line[index] === '\\') {
|
|
1506
|
+
index += 2;
|
|
1507
|
+
}
|
|
1508
|
+
else if (line[index] === closing) {
|
|
1509
|
+
quote = null;
|
|
1510
|
+
index += 1;
|
|
1511
|
+
}
|
|
1512
|
+
else {
|
|
1513
|
+
index += 1;
|
|
1514
|
+
}
|
|
1515
|
+
continue;
|
|
1516
|
+
}
|
|
1517
|
+
if (line[index] === '#') {
|
|
1518
|
+
comments.push({ offset: lineOffset + index, text: line.slice(index) });
|
|
1519
|
+
break;
|
|
1520
|
+
}
|
|
1521
|
+
if (line.startsWith('"""', index)) {
|
|
1522
|
+
multiline = 'basic';
|
|
1523
|
+
index += 3;
|
|
1524
|
+
}
|
|
1525
|
+
else if (line.startsWith("'''", index)) {
|
|
1526
|
+
multiline = 'literal';
|
|
1527
|
+
index += 3;
|
|
1528
|
+
}
|
|
1529
|
+
else if (line[index] === '"') {
|
|
1530
|
+
quote = 'basic';
|
|
1531
|
+
index += 1;
|
|
1532
|
+
}
|
|
1533
|
+
else if (line[index] === "'") {
|
|
1534
|
+
quote = 'literal';
|
|
1535
|
+
index += 1;
|
|
1536
|
+
}
|
|
1537
|
+
else {
|
|
1538
|
+
index += 1;
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1541
|
+
lineOffset += lineWithEnding.length;
|
|
1542
|
+
}
|
|
1543
|
+
return comments;
|
|
1544
|
+
}
|
|
1545
|
+
/** Replace all sections for one same-pack server while retaining unrelated bytes and comments. */
|
|
1546
|
+
function replaceCodexTable(originalText, name, def) {
|
|
1547
|
+
const sections = codexTomlSections(originalText);
|
|
1548
|
+
const target = sections.filter((section) => section.path[0] === CODEX_MCP_SERVERS_KEY && section.path[1] === name);
|
|
1549
|
+
if (!target.some((section) => section.path.length === 2))
|
|
1550
|
+
return null;
|
|
1551
|
+
const newline = originalText.includes('\r\n') ? '\r\n' : '\n';
|
|
1552
|
+
const comments = codexTomlComments(originalText)
|
|
1553
|
+
.filter((comment) => target.some((section) => comment.offset >= section.start && comment.offset < section.end))
|
|
1554
|
+
.map((comment) => comment.text);
|
|
1555
|
+
let output = '';
|
|
1556
|
+
let cursor = 0;
|
|
1557
|
+
let inserted = false;
|
|
1558
|
+
for (const section of target) {
|
|
1559
|
+
output += originalText.slice(cursor, section.start);
|
|
1560
|
+
if (!inserted) {
|
|
1561
|
+
output += serializeOneCodexServer(name, def).replace(/\n/g, newline);
|
|
1562
|
+
if (comments.length > 0)
|
|
1563
|
+
output += comments.join(newline) + newline;
|
|
1564
|
+
inserted = true;
|
|
1565
|
+
}
|
|
1566
|
+
cursor = section.end;
|
|
1567
|
+
}
|
|
1568
|
+
return inserted ? output + originalText.slice(cursor) : null;
|
|
1569
|
+
}
|
|
1387
1570
|
/**
|
|
1388
1571
|
* Build the Codex server table emitted as `[mcp_servers.<name>]`: pass the
|
|
1389
1572
|
* transport fields through, resolve `${secret:}` in every argument/header/env value
|
|
@@ -1447,9 +1630,10 @@ export function buildCodexToolsTable(tools) {
|
|
|
1447
1630
|
* - name PRESENT, def-equal (provenance-ignored) → NO-OP (idempotent re-install /
|
|
1448
1631
|
* PARTIAL self-heal): return the doc UNCHANGED with no pending append, so the
|
|
1449
1632
|
* original text round-trips byte-for-byte.
|
|
1450
|
-
* - name PRESENT, def-DIFFERS →
|
|
1451
|
-
*
|
|
1452
|
-
*
|
|
1633
|
+
* - name PRESENT, def-DIFFERS, same `_hqPack` owner → update that owned table
|
|
1634
|
+
* while preserving unrelated TOML bytes and comments.
|
|
1635
|
+
* - name PRESENT, def-DIFFERS, any other owner → {@link McpNameCollisionError}
|
|
1636
|
+
* ABORT with value-free diagnostics.
|
|
1453
1637
|
*
|
|
1454
1638
|
* Never touches any OTHER server table or any other top-level table.
|
|
1455
1639
|
*/
|
|
@@ -1463,9 +1647,23 @@ export function mergeCodexServer(name, def) {
|
|
|
1463
1647
|
// so serialize reproduces the original text exactly.
|
|
1464
1648
|
return doc;
|
|
1465
1649
|
}
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1650
|
+
const diagnostics = codexCollisionDiagnostics(name, existing, def);
|
|
1651
|
+
const existingPack = isTomlTable(existing)
|
|
1652
|
+
? existing[HQ_PACK_PROVENANCE_KEY]
|
|
1653
|
+
: undefined;
|
|
1654
|
+
if (doc.originalText !== null &&
|
|
1655
|
+
isTomlTable(existing) &&
|
|
1656
|
+
typeof existingPack === 'string' &&
|
|
1657
|
+
existingPack.length > 0 &&
|
|
1658
|
+
existingPack === def[HQ_PACK_PROVENANCE_KEY]) {
|
|
1659
|
+
const next = {
|
|
1660
|
+
value: withServer(doc.value, name, def),
|
|
1661
|
+
originalText: doc.originalText,
|
|
1662
|
+
[PENDING_UPDATE]: { name, def, diagnostics },
|
|
1663
|
+
};
|
|
1664
|
+
return next;
|
|
1665
|
+
}
|
|
1666
|
+
throw new McpNameCollisionError(codexCollisionMessage(name), diagnostics);
|
|
1469
1667
|
}
|
|
1470
1668
|
// Insert into the value (for verify-after-write) AND record the pending append
|
|
1471
1669
|
// (for comment-preserving serialize).
|
|
@@ -1478,6 +1676,41 @@ export function mergeCodexServer(name, def) {
|
|
|
1478
1676
|
return next;
|
|
1479
1677
|
};
|
|
1480
1678
|
}
|
|
1679
|
+
function isTomlTable(value) {
|
|
1680
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
1681
|
+
}
|
|
1682
|
+
function codexCollisionMessage(name) {
|
|
1683
|
+
return `MCP server "${name}" is already defined in ~/.codex/config.toml with a different ` +
|
|
1684
|
+
'definition — refusing to overwrite. Remove or rename the existing server, ' +
|
|
1685
|
+
'or uninstall the conflicting pack, then re-install.';
|
|
1686
|
+
}
|
|
1687
|
+
function codexCollisionDiagnostics(name, existing, incoming) {
|
|
1688
|
+
const existingTable = isTomlTable(existing) ? existing : {};
|
|
1689
|
+
const owner = typeof existingTable[HQ_PACK_PROVENANCE_KEY] === 'string' &&
|
|
1690
|
+
existingTable[HQ_PACK_PROVENANCE_KEY].length > 0
|
|
1691
|
+
? 'hq'
|
|
1692
|
+
: 'unknown';
|
|
1693
|
+
const keys = new Set([...Object.keys(existingTable), ...Object.keys(incoming)]);
|
|
1694
|
+
keys.delete(HQ_PACK_PROVENANCE_KEY);
|
|
1695
|
+
const fields = new Set();
|
|
1696
|
+
for (const key of keys) {
|
|
1697
|
+
const existingHasKey = Object.prototype.hasOwnProperty.call(existingTable, key);
|
|
1698
|
+
const incomingHasKey = Object.prototype.hasOwnProperty.call(incoming, key);
|
|
1699
|
+
if (existingHasKey === incomingHasKey &&
|
|
1700
|
+
canonicalJson(existingTable[key]) === canonicalJson(incoming[key])) {
|
|
1701
|
+
continue;
|
|
1702
|
+
}
|
|
1703
|
+
fields.add(key === 'command' || key === 'args' || key === 'env' || key === 'url'
|
|
1704
|
+
? key
|
|
1705
|
+
: 'other');
|
|
1706
|
+
}
|
|
1707
|
+
return {
|
|
1708
|
+
client: 'codex',
|
|
1709
|
+
serverName: name,
|
|
1710
|
+
existingEntryOwner: owner,
|
|
1711
|
+
diffFields: [...fields].sort(),
|
|
1712
|
+
};
|
|
1713
|
+
}
|
|
1481
1714
|
/**
|
|
1482
1715
|
* Emit ONE server into the GLOBAL Codex surface (`~/.codex/config.toml`
|
|
1483
1716
|
* `[mcp_servers.<name>]`) via {@link writeConfigAtomic}. A FIRST-CLASS SKIP when the
|
|
@@ -374,6 +374,7 @@ export function registerMcpCommand(program) {
|
|
|
374
374
|
.description('MCP pack observability (read-only) across Claude + Codex');
|
|
375
375
|
mcp
|
|
376
376
|
.command('status')
|
|
377
|
+
.alias('list')
|
|
377
378
|
.description('Show installed MCP packs/servers and their health in BOTH Claude and Codex (PARTIAL/DRIFT flagged; secrets redacted)')
|
|
378
379
|
.option('--json', 'Emit the structured report as JSON (for CI / scripting)')
|
|
379
380
|
.action((opts) => {
|