@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
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Several checkpoint writers in one company vault (design section 20).
|
|
3
|
+
*
|
|
4
|
+
* Gated by `checkpoint.ontology.multi-writer`. Three parts:
|
|
5
|
+
*
|
|
6
|
+
* - The outbox records the exact bytes this machine's checkpoint wrote to
|
|
7
|
+
* each entity file. Sync pushes an entity file only when it still matches
|
|
8
|
+
* its outbox entry, so an old pulled copy is never uploaded (C1, C2).
|
|
9
|
+
* - Merge-back re-applies the monotone part of an entity version that sync
|
|
10
|
+
* set aside after losing a push race (C3, C4). A version whose entity was
|
|
11
|
+
* deleted stays aside (C6); one that differs in keys the checkpoint does
|
|
12
|
+
* not own is merged for the owned keys and also stays aside (C8).
|
|
13
|
+
* - The duplicate scan reports entities of one type whose names collide, with
|
|
14
|
+
* a proposed survivor. Nothing is deleted (C5, C7).
|
|
15
|
+
*/
|
|
16
|
+
import { type OntologyCompany } from "./company.js";
|
|
17
|
+
import { type SignalBackRef } from "./entity-file.js";
|
|
18
|
+
import { type EntityIndex } from "./tree.js";
|
|
19
|
+
declare const OUTBOX_SCHEMA = "hq-ontology-outbox.v1";
|
|
20
|
+
export declare const MERGED_BACKUPS_DIR = ".hq/conflict-backups/ontology-merged";
|
|
21
|
+
interface OutboxEntry {
|
|
22
|
+
sha256: string;
|
|
23
|
+
written_at: string;
|
|
24
|
+
}
|
|
25
|
+
export interface Outbox {
|
|
26
|
+
schema: typeof OUTBOX_SCHEMA;
|
|
27
|
+
company: string;
|
|
28
|
+
entries: Record<string, OutboxEntry>;
|
|
29
|
+
}
|
|
30
|
+
export interface OutboxWrite {
|
|
31
|
+
/** Company-relative vault key, `ontology/entities/<type>/<file>.md`. */
|
|
32
|
+
rel: string;
|
|
33
|
+
content: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function outboxPath(hqRoot: string, company: OntologyCompany): string;
|
|
36
|
+
/** The company's outbox. A missing file is an empty outbox; an unreadable one throws. */
|
|
37
|
+
export declare function readOutbox(hqRoot: string, company: OntologyCompany): Outbox;
|
|
38
|
+
/**
|
|
39
|
+
* Record entity bytes this checkpoint wrote, and drop entries older than the
|
|
40
|
+
* retention window. An unreadable outbox is replaced: a lost entry only makes
|
|
41
|
+
* sync hold that file back, which is the safe direction.
|
|
42
|
+
*/
|
|
43
|
+
export declare function recordOutbox(hqRoot: string, company: OntologyCompany, writes: OutboxWrite[], now: Date): {
|
|
44
|
+
reset: boolean;
|
|
45
|
+
};
|
|
46
|
+
type MergeBackResult = "merged" | "kept_both" | "stale" | "deleted" | "identity_conflict" | "invalid" | "write_error";
|
|
47
|
+
export interface MergeBackOutcome {
|
|
48
|
+
/** HQ-relative path of the set-aside version. */
|
|
49
|
+
backup: string;
|
|
50
|
+
/** Company-relative entity file it belongs to. */
|
|
51
|
+
target: string;
|
|
52
|
+
result: MergeBackResult;
|
|
53
|
+
/** For `kept_both`, the keys that differ (`body` for prose); for `invalid` and `write_error`, the reason. */
|
|
54
|
+
detail?: string;
|
|
55
|
+
}
|
|
56
|
+
/** Back-reference lines in a body, as refs `appendBackRefs` can re-add. */
|
|
57
|
+
export declare function readBackRefs(body: string): SignalBackRef[];
|
|
58
|
+
export interface MergeBackRun {
|
|
59
|
+
outcomes: MergeBackOutcome[];
|
|
60
|
+
/** Entity files rewritten; each was recorded in the outbox before it was written. */
|
|
61
|
+
writes: OutboxWrite[];
|
|
62
|
+
outbox_reset?: true;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Re-apply set-aside entity versions of this company to the current files
|
|
66
|
+
* (design 20.4). Never deletes an entity file and never re-creates one.
|
|
67
|
+
*/
|
|
68
|
+
export declare function mergeBackConflicts(hqRoot: string, company: OntologyCompany, now: Date): MergeBackRun;
|
|
69
|
+
export interface DuplicateGroup {
|
|
70
|
+
type: string;
|
|
71
|
+
/** `same_name`: equal canonical names, or one's canonical name is the other's unshared alias. `similar_name`: canonical names match once spaces are removed. */
|
|
72
|
+
reason: "same_name" | "similar_name";
|
|
73
|
+
paths: string[];
|
|
74
|
+
/** Highest `signal_count`, then earliest `first_seen`, then a file that is not a numbered copy (`<slug> 2.md`), then path. */
|
|
75
|
+
survivor: string;
|
|
76
|
+
}
|
|
77
|
+
export interface DuplicateReport {
|
|
78
|
+
groups: number;
|
|
79
|
+
shown: DuplicateGroup[];
|
|
80
|
+
}
|
|
81
|
+
/** Groups of writable entities of one type whose names collide. Read-only. */
|
|
82
|
+
export declare function findDuplicateGroups(index: EntityIndex): DuplicateGroup[];
|
|
83
|
+
/** The duplicate scan for a company, capped for the apply report. */
|
|
84
|
+
export declare function scanDuplicates(company: OntologyCompany, limit?: number): DuplicateReport;
|
|
85
|
+
export interface MultiWriterStart {
|
|
86
|
+
merge_back: MergeBackOutcome[];
|
|
87
|
+
/** Why merge-back or the outbox write stopped, when it did. */
|
|
88
|
+
error?: string;
|
|
89
|
+
outbox_reset?: true;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The start of a checkpoint run: merge back set-aside versions (each merged
|
|
93
|
+
* file is recorded in the outbox before it is written). Runs in `plan`, so a
|
|
94
|
+
* run with no changed inputs still merges. Errors are returned, not thrown,
|
|
95
|
+
* so the rest of the checkpoint goes on.
|
|
96
|
+
*/
|
|
97
|
+
export declare function startMultiWriterRun(hqRoot: string, company: OntologyCompany, now: Date): MultiWriterStart;
|
|
98
|
+
/** Count merge-back outcomes by result, for one-line summaries. */
|
|
99
|
+
export declare function summarizeMergeBack(outcomes: MergeBackOutcome[]): string;
|
|
100
|
+
export {};
|
|
101
|
+
//# sourceMappingURL=multi-writer.d.ts.map
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Several checkpoint writers in one company vault (design section 20).
|
|
3
|
+
*
|
|
4
|
+
* Gated by `checkpoint.ontology.multi-writer`. Three parts:
|
|
5
|
+
*
|
|
6
|
+
* - The outbox records the exact bytes this machine's checkpoint wrote to
|
|
7
|
+
* each entity file. Sync pushes an entity file only when it still matches
|
|
8
|
+
* its outbox entry, so an old pulled copy is never uploaded (C1, C2).
|
|
9
|
+
* - Merge-back re-applies the monotone part of an entity version that sync
|
|
10
|
+
* set aside after losing a push race (C3, C4). A version whose entity was
|
|
11
|
+
* deleted stays aside (C6); one that differs in keys the checkpoint does
|
|
12
|
+
* not own is merged for the owned keys and also stays aside (C8).
|
|
13
|
+
* - The duplicate scan reports entities of one type whose names collide, with
|
|
14
|
+
* a proposed survivor. Nothing is deleted (C5, C7).
|
|
15
|
+
*/
|
|
16
|
+
import { createHash } from "node:crypto";
|
|
17
|
+
import * as fs from "node:fs";
|
|
18
|
+
import * as path from "node:path";
|
|
19
|
+
import { isDeepStrictEqual } from "node:util";
|
|
20
|
+
import { entityKey, freshAliases, ownNames } from "./aliases.js";
|
|
21
|
+
import { entitiesRoot, safeWriteFile } from "./company.js";
|
|
22
|
+
import { appendBackRefs, OWNED_KEYS, parseEntityFile, patchEntityFile, validateEntityFrontmatter, } from "./entity-file.js";
|
|
23
|
+
import { isWritableEntityType, squash } from "./identity.js";
|
|
24
|
+
import { buildEntityIndex, indexAlias } from "./tree.js";
|
|
25
|
+
const OUTBOX_SCHEMA = "hq-ontology-outbox.v1";
|
|
26
|
+
const OUTBOX_DIR = ".hq/ontology-outbox";
|
|
27
|
+
const OUTBOX_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
|
|
28
|
+
/** Where sync parks a losing local body (hq-cloud `CONFLICT_BACKUPS_DIR`). */
|
|
29
|
+
const CONFLICT_BACKUPS_DIR = ".hq/conflict-backups";
|
|
30
|
+
export const MERGED_BACKUPS_DIR = ".hq/conflict-backups/ontology-merged";
|
|
31
|
+
const STALE_BACKUP_MS = 7 * 24 * 60 * 60 * 1000;
|
|
32
|
+
const DUPLICATE_REPORT_LIMIT = 20;
|
|
33
|
+
/**
|
|
34
|
+
* Keys that differ between two versions of a new entity for reasons that say
|
|
35
|
+
* nothing about its content. The vault's value stands and the difference is
|
|
36
|
+
* not reported.
|
|
37
|
+
*/
|
|
38
|
+
const IGNORED_ON_MERGE = new Set(["first_seen"]);
|
|
39
|
+
/** hq-cloud `buildConflictBackupPath`: `<file>.md.<YYYY-MM-DDTHH-MM-SSZ>-<machine>.md`. */
|
|
40
|
+
const BACKUP_NAME_RE = /^(.+\.md)\.(\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}Z)-([a-f0-9]+|unknown)\.md$/;
|
|
41
|
+
const TYPE_DIR_RE = /^[a-z][a-z0-9-]*$/;
|
|
42
|
+
/** One back-reference line, as `appendBackRefs` and the gardener write it. */
|
|
43
|
+
const BACKREF_LINE_RE = /^- Referenced in \[([A-Za-z_]+): (.*)\]\(([^)\s]+)\)\s*$/;
|
|
44
|
+
function sha256(content) {
|
|
45
|
+
return createHash("sha256").update(content, "utf8").digest("hex");
|
|
46
|
+
}
|
|
47
|
+
export function outboxPath(hqRoot, company) {
|
|
48
|
+
return path.join(hqRoot, ...OUTBOX_DIR.split("/"), `${company.slug}.json`);
|
|
49
|
+
}
|
|
50
|
+
/** The company's outbox. A missing file is an empty outbox; an unreadable one throws. */
|
|
51
|
+
export function readOutbox(hqRoot, company) {
|
|
52
|
+
const empty = { schema: OUTBOX_SCHEMA, company: company.slug, entries: {} };
|
|
53
|
+
let raw;
|
|
54
|
+
try {
|
|
55
|
+
raw = fs.readFileSync(outboxPath(hqRoot, company), "utf8");
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error.code === "ENOENT")
|
|
59
|
+
return empty;
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
const doc = JSON.parse(raw);
|
|
63
|
+
if (doc.schema !== OUTBOX_SCHEMA || doc.company !== company.slug || !doc.entries || typeof doc.entries !== "object") {
|
|
64
|
+
throw new Error("outbox has an unexpected shape");
|
|
65
|
+
}
|
|
66
|
+
return { schema: OUTBOX_SCHEMA, company: company.slug, entries: doc.entries };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Record entity bytes this checkpoint wrote, and drop entries older than the
|
|
70
|
+
* retention window. An unreadable outbox is replaced: a lost entry only makes
|
|
71
|
+
* sync hold that file back, which is the safe direction.
|
|
72
|
+
*/
|
|
73
|
+
export function recordOutbox(hqRoot, company, writes, now) {
|
|
74
|
+
let outbox;
|
|
75
|
+
let reset = false;
|
|
76
|
+
try {
|
|
77
|
+
outbox = readOutbox(hqRoot, company);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
outbox = { schema: OUTBOX_SCHEMA, company: company.slug, entries: {} };
|
|
81
|
+
reset = true;
|
|
82
|
+
}
|
|
83
|
+
const cutoff = now.getTime() - OUTBOX_RETENTION_MS;
|
|
84
|
+
const entries = {};
|
|
85
|
+
for (const [rel, entry] of Object.entries(outbox.entries)) {
|
|
86
|
+
const at = Date.parse(entry?.written_at ?? "");
|
|
87
|
+
if (typeof entry?.sha256 === "string" && Number.isFinite(at) && at >= cutoff)
|
|
88
|
+
entries[rel] = entry;
|
|
89
|
+
}
|
|
90
|
+
for (const write of writes)
|
|
91
|
+
entries[write.rel] = { sha256: sha256(write.content), written_at: now.toISOString() };
|
|
92
|
+
const sorted = Object.fromEntries(Object.entries(entries).sort(([a], [b]) => a.localeCompare(b)));
|
|
93
|
+
const doc = { schema: OUTBOX_SCHEMA, company: company.slug, entries: sorted };
|
|
94
|
+
safeWriteFile(hqRoot, [path.join(hqRoot, ...OUTBOX_DIR.split("/"))], outboxPath(hqRoot, company), `${JSON.stringify(doc, null, 2)}\n`);
|
|
95
|
+
return { reset };
|
|
96
|
+
}
|
|
97
|
+
/** A directory that exists and is not a symlink. */
|
|
98
|
+
function isRealDir(dir) {
|
|
99
|
+
try {
|
|
100
|
+
return fs.lstatSync(dir).isDirectory();
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error.code === "ENOENT")
|
|
104
|
+
return false;
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/** Set-aside entity versions of this company, oldest first per entity. */
|
|
109
|
+
function listEntityBackups(hqRoot, company) {
|
|
110
|
+
const segments = [...CONFLICT_BACKUPS_DIR.split("/"), "companies", company.slug, "ontology", "entities"];
|
|
111
|
+
for (let i = 1; i <= segments.length; i += 1) {
|
|
112
|
+
if (!isRealDir(path.join(hqRoot, ...segments.slice(0, i))))
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
const root = path.join(hqRoot, ...segments);
|
|
116
|
+
const out = [];
|
|
117
|
+
for (const typeDir of fs.readdirSync(root, { withFileTypes: true })) {
|
|
118
|
+
// Other entity types (contacts, deals) belong to other writers.
|
|
119
|
+
if (!typeDir.isDirectory() || !TYPE_DIR_RE.test(typeDir.name) || !isWritableEntityType(typeDir.name))
|
|
120
|
+
continue;
|
|
121
|
+
for (const file of fs.readdirSync(path.join(root, typeDir.name), { withFileTypes: true })) {
|
|
122
|
+
const match = file.isFile() ? BACKUP_NAME_RE.exec(file.name) : null;
|
|
123
|
+
if (!match)
|
|
124
|
+
continue;
|
|
125
|
+
out.push({
|
|
126
|
+
full: path.join(root, typeDir.name, file.name),
|
|
127
|
+
hqRel: [...segments, typeDir.name, file.name].join("/"),
|
|
128
|
+
target: `ontology/entities/${typeDir.name}/${match[1]}`,
|
|
129
|
+
stampedAt: match[2],
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return out.sort((a, b) => a.target.localeCompare(b.target) || a.stampedAt.localeCompare(b.stampedAt) || a.hqRel.localeCompare(b.hqRel));
|
|
134
|
+
}
|
|
135
|
+
/** The later of two ISO timestamps; an unparseable one loses. */
|
|
136
|
+
function later(a, b) {
|
|
137
|
+
const ta = Date.parse(a);
|
|
138
|
+
const tb = Date.parse(b);
|
|
139
|
+
if (!Number.isFinite(ta))
|
|
140
|
+
return b;
|
|
141
|
+
if (!Number.isFinite(tb))
|
|
142
|
+
return a;
|
|
143
|
+
return tb > ta ? b : a;
|
|
144
|
+
}
|
|
145
|
+
/** Back-reference lines in a body, as refs `appendBackRefs` can re-add. */
|
|
146
|
+
export function readBackRefs(body) {
|
|
147
|
+
const out = [];
|
|
148
|
+
for (const line of body.split(/\r?\n/)) {
|
|
149
|
+
const match = BACKREF_LINE_RE.exec(line);
|
|
150
|
+
if (match)
|
|
151
|
+
out.push({ signalType: match[1], preview: match[2], href: match[3] });
|
|
152
|
+
}
|
|
153
|
+
return out;
|
|
154
|
+
}
|
|
155
|
+
/** The body with back-reference lines and blank lines removed, for comparing prose. */
|
|
156
|
+
function proseOf(body) {
|
|
157
|
+
return body
|
|
158
|
+
.split(/\r?\n/)
|
|
159
|
+
.filter((line) => !BACKREF_LINE_RE.test(line) && !/^##\s+Relationships\s*$/.test(line))
|
|
160
|
+
.map((line) => line.trimEnd())
|
|
161
|
+
.filter((line) => line !== "")
|
|
162
|
+
.join("\n");
|
|
163
|
+
}
|
|
164
|
+
/** Keys the checkpoint does not own whose values differ, plus `body` for prose. */
|
|
165
|
+
function unownedDifferences(backup, current) {
|
|
166
|
+
const keys = [...new Set([...Object.keys(backup.frontmatter), ...Object.keys(current.frontmatter)])].sort();
|
|
167
|
+
const out = keys.filter((key) => !OWNED_KEYS.has(key) && !IGNORED_ON_MERGE.has(key) && !isDeepStrictEqual(backup.frontmatter[key], current.frontmatter[key]));
|
|
168
|
+
if (proseOf(backup.body) !== proseOf(current.body))
|
|
169
|
+
out.push("body");
|
|
170
|
+
return out;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Re-apply set-aside entity versions of this company to the current files
|
|
174
|
+
* (design 20.4). Never deletes an entity file and never re-creates one.
|
|
175
|
+
*/
|
|
176
|
+
export function mergeBackConflicts(hqRoot, company, now) {
|
|
177
|
+
const run = { outcomes: [], writes: [] };
|
|
178
|
+
const backups = listEntityBackups(hqRoot, company);
|
|
179
|
+
if (backups.length === 0)
|
|
180
|
+
return run;
|
|
181
|
+
const index = buildEntityIndex(company.dir);
|
|
182
|
+
const entityRoot = entitiesRoot(company);
|
|
183
|
+
for (const backup of backups) {
|
|
184
|
+
const outcome = (result, detail) => run.outcomes.push({ backup: backup.hqRel, target: backup.target, result, ...(detail ? { detail } : {}) });
|
|
185
|
+
const saved = parseEntityFile(fs.readFileSync(backup.full, "utf8"));
|
|
186
|
+
const savedFields = saved ? validateEntityFrontmatter(saved.frontmatter) : "unparseable";
|
|
187
|
+
if (!saved || typeof savedFields === "string") {
|
|
188
|
+
outcome("invalid", `backup:${savedFields}`);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
const savedUpdated = String(saved.frontmatter.last_updated);
|
|
192
|
+
const savedAt = Date.parse(savedUpdated);
|
|
193
|
+
if (!Number.isFinite(savedAt)) {
|
|
194
|
+
outcome("invalid", "backup:last_updated");
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
if (now.getTime() - savedAt > STALE_BACKUP_MS) {
|
|
198
|
+
outcome("stale");
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
const targetFull = path.join(company.dir, backup.target);
|
|
202
|
+
let targetStat;
|
|
203
|
+
try {
|
|
204
|
+
targetStat = fs.lstatSync(targetFull);
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
if (error.code !== "ENOENT")
|
|
208
|
+
throw error;
|
|
209
|
+
outcome("deleted");
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
if (!targetStat.isFile()) {
|
|
213
|
+
outcome("invalid", "current:not_a_file");
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
const currentContent = fs.readFileSync(targetFull, "utf8");
|
|
217
|
+
const current = parseEntityFile(currentContent);
|
|
218
|
+
const currentFields = current ? validateEntityFrontmatter(current.frontmatter) : "unparseable";
|
|
219
|
+
if (!current || typeof currentFields === "string") {
|
|
220
|
+
outcome("invalid", `current:${currentFields}`);
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (savedFields.id !== currentFields.id || savedFields.type !== currentFields.type) {
|
|
224
|
+
outcome("identity_conflict");
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
if (!isWritableEntityType(currentFields.type)) {
|
|
228
|
+
outcome("invalid", "current:type_not_checkpoint_owned");
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
const differences = unownedDifferences(saved, current);
|
|
232
|
+
const type = currentFields.type;
|
|
233
|
+
const aliases = index.byRel.has(backup.target)
|
|
234
|
+
? freshAliases(index, type, backup.target, ownNames(index, backup.target, []), savedFields.aliases)
|
|
235
|
+
: [];
|
|
236
|
+
const withRefs = appendBackRefs(currentContent, readBackRefs(saved.body));
|
|
237
|
+
const currentUpdated = String(current.frontmatter.last_updated);
|
|
238
|
+
const lastUpdated = later(currentUpdated, savedUpdated);
|
|
239
|
+
const patched = patchEntityFile(withRefs.content, {
|
|
240
|
+
addAliases: aliases,
|
|
241
|
+
signalCount: savedFields.signal_count,
|
|
242
|
+
lastUpdated,
|
|
243
|
+
// A later timestamp alone is a change too; otherwise the merge result
|
|
244
|
+
// would depend on which version this machine holds.
|
|
245
|
+
bodyChanged: withRefs.added > 0 || lastUpdated !== currentUpdated,
|
|
246
|
+
});
|
|
247
|
+
if (!patched.ok) {
|
|
248
|
+
outcome("write_error", patched.reason);
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
if (patched.changed) {
|
|
252
|
+
// Outbox first: a file sync may push must never lack its entry, and a
|
|
253
|
+
// failed outbox write leaves the file and the backup for the next run.
|
|
254
|
+
try {
|
|
255
|
+
if (recordOutbox(hqRoot, company, [{ rel: backup.target, content: patched.content }], now).reset)
|
|
256
|
+
run.outbox_reset = true;
|
|
257
|
+
}
|
|
258
|
+
catch (error) {
|
|
259
|
+
outcome("write_error", `outbox:${error.name}`);
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
try {
|
|
263
|
+
safeWriteFile(hqRoot, [entityRoot], targetFull, patched.content);
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
outcome("write_error", error.name);
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
run.writes = run.writes.filter((write) => write.rel !== backup.target);
|
|
270
|
+
run.writes.push({ rel: backup.target, content: patched.content });
|
|
271
|
+
for (const alias of aliases)
|
|
272
|
+
indexAlias(index, type, backup.target, alias);
|
|
273
|
+
const entity = index.byRel.get(backup.target);
|
|
274
|
+
if (entity)
|
|
275
|
+
entity.aliases = [...entity.aliases, ...aliases];
|
|
276
|
+
}
|
|
277
|
+
if (differences.length > 0) {
|
|
278
|
+
outcome("kept_both", differences.join(","));
|
|
279
|
+
continue;
|
|
280
|
+
}
|
|
281
|
+
const mergedFull = path.join(hqRoot, ...MERGED_BACKUPS_DIR.split("/"), ...backup.hqRel.split("/").slice(CONFLICT_BACKUPS_DIR.split("/").length));
|
|
282
|
+
fs.mkdirSync(path.dirname(mergedFull), { recursive: true });
|
|
283
|
+
fs.renameSync(backup.full, mergedFull);
|
|
284
|
+
outcome("merged");
|
|
285
|
+
}
|
|
286
|
+
return run;
|
|
287
|
+
}
|
|
288
|
+
/** A copy saved next to the original file, e.g. `hq-core 2.md`. */
|
|
289
|
+
const NUMBERED_COPY = / \d+\.md$/;
|
|
290
|
+
/** Groups of writable entities of one type whose names collide. Read-only. */
|
|
291
|
+
export function findDuplicateGroups(index) {
|
|
292
|
+
const parent = new Map();
|
|
293
|
+
const find = (rel) => {
|
|
294
|
+
let root = rel;
|
|
295
|
+
while (parent.get(root) !== root)
|
|
296
|
+
root = parent.get(root);
|
|
297
|
+
parent.set(rel, root);
|
|
298
|
+
return root;
|
|
299
|
+
};
|
|
300
|
+
const union = (rels) => {
|
|
301
|
+
const list = [...rels].filter((rel) => isWritableEntityType(index.byRel.get(rel)?.type));
|
|
302
|
+
for (const rel of list)
|
|
303
|
+
if (!parent.has(rel))
|
|
304
|
+
parent.set(rel, rel);
|
|
305
|
+
for (const rel of list.slice(1)) {
|
|
306
|
+
const a = find(list[0]);
|
|
307
|
+
const b = find(rel);
|
|
308
|
+
if (a !== b)
|
|
309
|
+
parent.set(b, a);
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
// Only the matches `resolveCandidate` treats as one entity link files: equal
|
|
313
|
+
// canonical names, or a canonical name that is exactly one other file's
|
|
314
|
+
// alias. An alias several files share (a Slack id, "hq") is ambiguous, not
|
|
315
|
+
// a duplicate, and following it chains unrelated entities together.
|
|
316
|
+
const exactPairs = new Set();
|
|
317
|
+
const sameName = (rels) => {
|
|
318
|
+
if (rels.length < 2)
|
|
319
|
+
return;
|
|
320
|
+
union(rels);
|
|
321
|
+
for (const rel of rels)
|
|
322
|
+
exactPairs.add(rel);
|
|
323
|
+
};
|
|
324
|
+
const squashed = new Map();
|
|
325
|
+
for (const [name, rels] of index.canonical) {
|
|
326
|
+
const holders = index.alias.get(name);
|
|
327
|
+
const aliasHolder = holders && holders.size === 1 ? [...holders] : [];
|
|
328
|
+
sameName([...new Set([...rels, ...aliasHolder])]);
|
|
329
|
+
const [type, normalized] = name.split("\0");
|
|
330
|
+
const squashKey = entityKey(type, squash(normalized));
|
|
331
|
+
squashed.set(squashKey, [...(squashed.get(squashKey) ?? []), ...rels]);
|
|
332
|
+
}
|
|
333
|
+
// Canonical names that match once spaces and punctuation are removed.
|
|
334
|
+
for (const rels of squashed.values())
|
|
335
|
+
if (rels.length > 1)
|
|
336
|
+
union(rels);
|
|
337
|
+
const groups = new Map();
|
|
338
|
+
for (const rel of parent.keys()) {
|
|
339
|
+
const root = find(rel);
|
|
340
|
+
groups.set(root, [...(groups.get(root) ?? []), rel]);
|
|
341
|
+
}
|
|
342
|
+
const out = [];
|
|
343
|
+
for (const members of groups.values()) {
|
|
344
|
+
if (members.length < 2)
|
|
345
|
+
continue;
|
|
346
|
+
const paths = members.sort();
|
|
347
|
+
const ranked = [...paths].sort((a, b) => {
|
|
348
|
+
const ea = index.byRel.get(a);
|
|
349
|
+
const eb = index.byRel.get(b);
|
|
350
|
+
const fa = Date.parse(ea.first_seen ?? "");
|
|
351
|
+
const fb = Date.parse(eb.first_seen ?? "");
|
|
352
|
+
return (eb.signal_count - ea.signal_count ||
|
|
353
|
+
(Number.isFinite(fa) ? fa : Infinity) - (Number.isFinite(fb) ? fb : Infinity) ||
|
|
354
|
+
Number(NUMBERED_COPY.test(a)) - Number(NUMBERED_COPY.test(b)) ||
|
|
355
|
+
a.localeCompare(b));
|
|
356
|
+
});
|
|
357
|
+
out.push({
|
|
358
|
+
type: index.byRel.get(paths[0]).type,
|
|
359
|
+
reason: paths.filter((rel) => exactPairs.has(rel)).length >= 2 ? "same_name" : "similar_name",
|
|
360
|
+
paths,
|
|
361
|
+
survivor: ranked[0],
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
return out.sort((a, b) => b.paths.length - a.paths.length || a.paths[0].localeCompare(b.paths[0]));
|
|
365
|
+
}
|
|
366
|
+
/** The duplicate scan for a company, capped for the apply report. */
|
|
367
|
+
export function scanDuplicates(company, limit = DUPLICATE_REPORT_LIMIT) {
|
|
368
|
+
const groups = findDuplicateGroups(buildEntityIndex(company.dir));
|
|
369
|
+
return { groups: groups.length, shown: groups.slice(0, limit) };
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* The start of a checkpoint run: merge back set-aside versions (each merged
|
|
373
|
+
* file is recorded in the outbox before it is written). Runs in `plan`, so a
|
|
374
|
+
* run with no changed inputs still merges. Errors are returned, not thrown,
|
|
375
|
+
* so the rest of the checkpoint goes on.
|
|
376
|
+
*/
|
|
377
|
+
export function startMultiWriterRun(hqRoot, company, now) {
|
|
378
|
+
let merged;
|
|
379
|
+
try {
|
|
380
|
+
merged = mergeBackConflicts(hqRoot, company, now);
|
|
381
|
+
}
|
|
382
|
+
catch (error) {
|
|
383
|
+
return { merge_back: [], error: `merge_back:${error.name}` };
|
|
384
|
+
}
|
|
385
|
+
return { merge_back: merged.outcomes, ...(merged.outbox_reset ? { outbox_reset: true } : {}) };
|
|
386
|
+
}
|
|
387
|
+
/** Count merge-back outcomes by result, for one-line summaries. */
|
|
388
|
+
export function summarizeMergeBack(outcomes) {
|
|
389
|
+
const counts = new Map();
|
|
390
|
+
for (const outcome of outcomes)
|
|
391
|
+
counts.set(outcome.result, (counts.get(outcome.result) ?? 0) + 1);
|
|
392
|
+
return [...counts].sort(([a], [b]) => a.localeCompare(b)).map(([result, n]) => `${n} ${result.replaceAll("_", " ")}`).join(", ");
|
|
393
|
+
}
|
|
394
|
+
//# sourceMappingURL=multi-writer.js.map
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `hq core ontology plan`: pick this run's inputs.
|
|
3
|
+
*
|
|
4
|
+
* Runs in the detached checkpoint sibling. It resolves the flag, finds the
|
|
5
|
+
* company's changed knowledge and signal files with a content-hash ledger,
|
|
6
|
+
* applies the per-run budget, and writes `<runDir>/ontology-plan.json` for the
|
|
7
|
+
* backend model to read. The model only fills a candidates file; everything
|
|
8
|
+
* that affects identity, scope and cost stays in code.
|
|
9
|
+
*/
|
|
10
|
+
import { type CompanyBriefResult } from "./company-brief.js";
|
|
11
|
+
import { type OntologyCompany } from "./company.js";
|
|
12
|
+
import { type MultiWriterStart } from "./multi-writer.js";
|
|
13
|
+
import { type SyncClientVersions } from "./sync-client.js";
|
|
14
|
+
export declare const ONTOLOGY_FLAG = "checkpoint.ontology";
|
|
15
|
+
/**
|
|
16
|
+
* Turns the step on like `checkpoint.ontology`, but only builds that check the
|
|
17
|
+
* sync client read it (CO-45, owner decision CO-D-005). Older CLI builds read
|
|
18
|
+
* only `checkpoint.ontology`, so this key can default on without starting the
|
|
19
|
+
* step next to an hq-cloud older than 6.18.7. Either key needs a sync client of
|
|
20
|
+
* 6.18.7 or later; see ./sync-client.ts.
|
|
21
|
+
*/
|
|
22
|
+
export declare const ONTOLOGY_SYNC_GATED_FLAG = "checkpoint.ontology.sync-gated";
|
|
23
|
+
/**
|
|
24
|
+
* Several writers in one company vault (design section 20): record written
|
|
25
|
+
* entity bytes in the outbox, merge back set-aside versions, and report
|
|
26
|
+
* duplicate entities.
|
|
27
|
+
*/
|
|
28
|
+
export declare const MULTI_WRITER_FLAG = "checkpoint.ontology.multi-writer";
|
|
29
|
+
/**
|
|
30
|
+
* CO-59: consume the files touched by company checkpoints that were queued
|
|
31
|
+
* behind a busy sibling (see queued-touches.ts). On, the plan adds the
|
|
32
|
+
* company's queued touches to this run's session-touched set, and a run whose
|
|
33
|
+
* own payload names no company plans the company the parent picked for it
|
|
34
|
+
* (`ontology_company`), without that run's session text. Off, queued touches
|
|
35
|
+
* wait on disk and a company-less run skips the ontology step as before.
|
|
36
|
+
*/
|
|
37
|
+
export declare const QUEUED_TOUCHES_FLAG = "checkpoint.ontology.queued-touches";
|
|
38
|
+
export declare const PLAN_FILE = "ontology-plan.json";
|
|
39
|
+
export declare const CANDIDATES_FILE = "ontology-candidates.json";
|
|
40
|
+
export declare const REPORT_FILE = "ontology-report.json";
|
|
41
|
+
export declare const PLAN_SCHEMA = "hq-checkpoint-ontology-plan.v1";
|
|
42
|
+
export declare const CANDIDATES_SCHEMA = "hq-checkpoint-ontology-candidates.v1";
|
|
43
|
+
declare const LEDGER_SCHEMA = "hq-checkpoint-ontology-ledger.v1";
|
|
44
|
+
export declare const BUDGET: {
|
|
45
|
+
readonly maxInputs: 20;
|
|
46
|
+
readonly maxTokens: 60000;
|
|
47
|
+
readonly chunkTokens: 12000;
|
|
48
|
+
};
|
|
49
|
+
type PendingReason = "session-touched";
|
|
50
|
+
interface LedgerEntry {
|
|
51
|
+
sha256: string;
|
|
52
|
+
size: number;
|
|
53
|
+
mtime_ms: number;
|
|
54
|
+
state: "seen" | "pending" | "done";
|
|
55
|
+
reason?: PendingReason;
|
|
56
|
+
/** Next chunk to process for a file larger than one chunk. */
|
|
57
|
+
next_chunk?: number;
|
|
58
|
+
run?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface Ledger {
|
|
61
|
+
schema: typeof LEDGER_SCHEMA;
|
|
62
|
+
company: string;
|
|
63
|
+
/** Latest entity `last_updated` when the ledger was seeded (design 14.3). */
|
|
64
|
+
boundary: string | null;
|
|
65
|
+
entries: Record<string, LedgerEntry>;
|
|
66
|
+
}
|
|
67
|
+
export interface PlanInput {
|
|
68
|
+
/** Candidate `input` value: the company-relative path, `#<chunk>` when chunked, or `session`. */
|
|
69
|
+
id: string;
|
|
70
|
+
kind: "knowledge" | "signal" | "session";
|
|
71
|
+
/** Company-relative path of the file to read; null for `session` (its text is in the plan). */
|
|
72
|
+
path: string | null;
|
|
73
|
+
audience: "company" | "session";
|
|
74
|
+
reason: PendingReason;
|
|
75
|
+
sha256: string | null;
|
|
76
|
+
est_tokens: number;
|
|
77
|
+
/** 1-based inclusive line range to read, for a file larger than one chunk. */
|
|
78
|
+
lines: [number, number] | null;
|
|
79
|
+
chunk: {
|
|
80
|
+
index: number;
|
|
81
|
+
count: number;
|
|
82
|
+
} | null;
|
|
83
|
+
/** For signals: `entity_refs` items with no entity file yet. */
|
|
84
|
+
missing_refs?: string[];
|
|
85
|
+
/** Run-directory-relative copy of `path` with annotator entity lists removed; same line numbers. */
|
|
86
|
+
read_path?: string;
|
|
87
|
+
}
|
|
88
|
+
export interface OntologyPlan {
|
|
89
|
+
schema: typeof PLAN_SCHEMA;
|
|
90
|
+
company: string;
|
|
91
|
+
run_id: string;
|
|
92
|
+
created_at: string;
|
|
93
|
+
first_run: boolean;
|
|
94
|
+
boundary: string | null;
|
|
95
|
+
/** Present only when `checkpoint.ontology.company-brief` was on for this plan. */
|
|
96
|
+
company_brief?: {
|
|
97
|
+
status: CompanyBriefResult["status"];
|
|
98
|
+
reason?: string;
|
|
99
|
+
};
|
|
100
|
+
/** Present only when `checkpoint.ontology.multi-writer` was on for this plan. */
|
|
101
|
+
multi_writer?: MultiWriterStart;
|
|
102
|
+
/** Present, as false, only when `checkpoint.ontology.no-link-aliases` was on for this plan. */
|
|
103
|
+
link_aliases?: false;
|
|
104
|
+
/** Set by checkpoint.ontology.first-name-people: apply defers a one-word person who may be an existing fuller name. */
|
|
105
|
+
first_name_people?: true;
|
|
106
|
+
/** Set by checkpoint.ontology.skip-ambiguous-concept-links: apply rejects a knowledge link to a concept whose name another type also holds. */
|
|
107
|
+
skip_ambiguous_concept_links?: true;
|
|
108
|
+
/** Set by checkpoint.ontology.dominant-sibling-link: apply redirects a knowledge link from a weak cross-type sibling to the one other files link to. */
|
|
109
|
+
dominant_sibling_link?: true;
|
|
110
|
+
/** Set by checkpoint.ontology.hub-mention-floor: apply rejects a knowledge link to an under-mentioned non-person hub. */
|
|
111
|
+
hub_mention_floor?: true;
|
|
112
|
+
/** Set by checkpoint.ontology.concept-project-link: apply links a knowledge concept with an ambiguous alias to the one project of that canonical name. */
|
|
113
|
+
concept_project_link?: true;
|
|
114
|
+
/** Set by checkpoint.ontology.named-evidence: apply rejects a knowledge link to the company's own entity, or a concept-project-link redirect, whose evidence does not name it as a word. */
|
|
115
|
+
named_evidence?: true;
|
|
116
|
+
inputs: PlanInput[];
|
|
117
|
+
/** The session's summary, decisions and learnings, for the `session` input. */
|
|
118
|
+
session_text: string | null;
|
|
119
|
+
pending_after_run: number;
|
|
120
|
+
budget: {
|
|
121
|
+
max_inputs: number;
|
|
122
|
+
max_tokens: number;
|
|
123
|
+
chunk_tokens: number;
|
|
124
|
+
planned_tokens: number;
|
|
125
|
+
};
|
|
126
|
+
candidates_file: string;
|
|
127
|
+
instructions: string[];
|
|
128
|
+
}
|
|
129
|
+
export interface CheckpointPayloadLike {
|
|
130
|
+
company?: unknown;
|
|
131
|
+
/**
|
|
132
|
+
* Set by `hq core checkpoint` only when the payload names no company and
|
|
133
|
+
* another company has queued touches (CO-59). Never scopes anything else.
|
|
134
|
+
*/
|
|
135
|
+
ontology_company?: unknown;
|
|
136
|
+
/** The sibling backend `hq core checkpoint` spawned for this payload. */
|
|
137
|
+
backend?: unknown;
|
|
138
|
+
files?: unknown;
|
|
139
|
+
summary?: unknown;
|
|
140
|
+
decisions?: unknown;
|
|
141
|
+
learnings?: unknown;
|
|
142
|
+
insights?: unknown;
|
|
143
|
+
}
|
|
144
|
+
export type FlagReader = (flagKey: string, company: OntologyCompany) => Promise<boolean>;
|
|
145
|
+
export interface PlanOptions {
|
|
146
|
+
hqRoot: string;
|
|
147
|
+
runDir: string;
|
|
148
|
+
payload: CheckpointPayloadLike;
|
|
149
|
+
readFlag: FlagReader;
|
|
150
|
+
now?: Date;
|
|
151
|
+
/** This machine's hq-cloud versions; defaults to reading them. */
|
|
152
|
+
syncClientVersions?: () => SyncClientVersions;
|
|
153
|
+
}
|
|
154
|
+
export type PlanOutcome = {
|
|
155
|
+
status: "skipped";
|
|
156
|
+
reason: string;
|
|
157
|
+
companyBrief?: CompanyBriefResult;
|
|
158
|
+
multiWriter?: MultiWriterStart;
|
|
159
|
+
} | {
|
|
160
|
+
status: "planned";
|
|
161
|
+
plan: OntologyPlan;
|
|
162
|
+
planPath: string;
|
|
163
|
+
companyBrief?: CompanyBriefResult;
|
|
164
|
+
};
|
|
165
|
+
export declare const READ_PATH_INSTRUCTION = "When an input has read_path, read that file (relative to the run directory) instead of path, with the same line range. It is the same text with an older annotator's entity lists and entity links removed.";
|
|
166
|
+
export declare const FIRST_NAME_PEOPLE_INSTRUCTION = "Name a person by the full name the input or the company's entities give. When neither gives more than a first name, name the person by that first name; do not leave them out.";
|
|
167
|
+
export declare function readLedger(hqRoot: string, company: OntologyCompany): Ledger | null;
|
|
168
|
+
export declare function writeLedger(hqRoot: string, company: OntologyCompany, ledger: Ledger): void;
|
|
169
|
+
export declare function backendPreferencePath(hqRoot: string, company: OntologyCompany): string;
|
|
170
|
+
/** The grok-backend flag value the last plan recorded; false when no plan has recorded one. */
|
|
171
|
+
export declare function readBackendPreference(hqRoot: string, company: OntologyCompany): boolean;
|
|
172
|
+
/**
|
|
173
|
+
* The company this run's ontology step works on: the payload's own company,
|
|
174
|
+
* or else the `ontology_company` the checkpoint parent picked for queued
|
|
175
|
+
* touches (`borrowed`).
|
|
176
|
+
*/
|
|
177
|
+
export declare function payloadOntologyCompany(payload: CheckpointPayloadLike): {
|
|
178
|
+
slug: string | null;
|
|
179
|
+
borrowed: boolean;
|
|
180
|
+
};
|
|
181
|
+
/** Plan this run. Never throws for a skip; returns the reason instead. */
|
|
182
|
+
export declare function planOntologyRun(options: PlanOptions): Promise<PlanOutcome>;
|
|
183
|
+
/**
|
|
184
|
+
* The cloud annotator wrote an `entities:` list into knowledge front matter and
|
|
185
|
+
* `[[ontology/entities/...]]` links into the text. Most are wrong, and a model
|
|
186
|
+
* told to ignore them still copies them (design section 18), so the model reads
|
|
187
|
+
* a copy without them. The list's lines are blanked rather than removed so the
|
|
188
|
+
* plan's line ranges still hold; a link becomes its label, or its last path
|
|
189
|
+
* segment. Returns null when the text has neither.
|
|
190
|
+
*/
|
|
191
|
+
export declare function stripAnnotations(text: string): string | null;
|
|
192
|
+
export {};
|
|
193
|
+
//# sourceMappingURL=plan.d.ts.map
|