@indigoai-us/hq-cli 5.314.0 → 5.316.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4320 -1
- package/README.md +113 -0
- package/assets/bot-workers/setup/context/USER-GUIDE.md +404 -0
- package/assets/bot-workers/setup/context/quick-reference.md +199 -0
- package/assets/bot-workers/setup/skills/agents-and-team.md +167 -0
- package/assets/bot-workers/setup/skills/explain-hq.md +35 -0
- package/assets/bot-workers/setup/skills/first-company.md +74 -0
- package/assets/bot-workers/setup/skills/joining-a-team.md +125 -0
- package/assets/bot-workers/setup/skills/pricing.md +92 -0
- package/assets/bot-workers/setup/skills/standing-help.md +81 -0
- package/assets/bot-workers/setup/skills/your-business.md +281 -0
- package/assets/bot-workers/setup/worker.yaml +791 -0
- package/assets/lanes-hooks/hq-lanes-drain.json +15 -0
- package/assets/lanes-hooks/hq-lanes-drain.mjs +275 -0
- package/assets/lanes-hooks/hq-lanes-drain.sh +21 -0
- package/assets/lanes-reconcile/hq-lanes-reconcile.service +11 -0
- package/assets/lanes-reconcile/hq-lanes-reconcile.timer +12 -0
- package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +485 -0
- package/assets/scaffold/core/scripts/audit-log.sh +384 -0
- package/assets/scaffold/core/scripts/checkpoint-stop-gate.sh +281 -43
- package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +171 -0
- package/assets/scaffold/core/scripts/detect-stale-review-base.sh +199 -0
- package/assets/scaffold/core/scripts/eval-trigger.sh +193 -0
- package/assets/scaffold/core/scripts/git-pack-extension-check.sh +164 -0
- package/assets/scaffold/core/scripts/handoff-finalize.sh +688 -0
- package/assets/scaffold/core/scripts/handoff-open-steps.sh +81 -0
- package/assets/scaffold/core/scripts/handoff-post.sh +252 -0
- package/assets/scaffold/core/scripts/hook-lib.sh +345 -50
- package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +307 -0
- package/assets/scaffold/core/scripts/hq-delegate-grant.sh +252 -0
- package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +99 -0
- package/assets/scaffold/core/scripts/hq-delegate-publish.sh +91 -0
- package/assets/scaffold/core/scripts/hq-delegate-repo.sh +158 -0
- package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +145 -0
- package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +129 -0
- package/assets/scaffold/core/scripts/hq-delegate-send.sh +259 -0
- package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +175 -0
- package/assets/scaffold/core/scripts/hq-delegate-verify.sh +238 -0
- package/assets/scaffold/core/scripts/hq-dm-bind.sh +585 -0
- package/assets/scaffold/core/scripts/hq-job-notify.sh +389 -0
- package/assets/scaffold/core/scripts/hq-job-probe.sh +835 -0
- package/assets/scaffold/core/scripts/hq-job-remediate.sh +359 -0
- package/assets/scaffold/core/scripts/hq-job-run.sh +1025 -0
- package/assets/scaffold/core/scripts/hq-pin.sh +118 -0
- package/assets/scaffold/core/scripts/hq-session.sh +184 -23
- package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +310 -0
- package/assets/scaffold/core/scripts/jobs-validate.sh +451 -0
- package/assets/scaffold/core/scripts/knowledge-prefs.sh +55 -0
- package/assets/scaffold/core/scripts/lib/portable.sh +211 -0
- package/assets/scaffold/core/scripts/lib/secret-patterns.sh +58 -0
- package/assets/scaffold/core/scripts/lib/session-id.sh +3 -2
- package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +1 -1
- package/assets/scaffold/core/scripts/lib/work-mesh-enqueue.sh +2 -1
- package/assets/scaffold/core/scripts/lib/work-mesh-live-hook.sh +378 -0
- package/assets/scaffold/core/scripts/lib/work-mesh-live-rebind.sh +141 -0
- package/assets/scaffold/core/scripts/migrate-policy-triggers.sh +378 -0
- package/assets/scaffold/core/scripts/ontology-audience-grant.sh +81 -0
- package/assets/scaffold/core/scripts/ontology-brief.mjs +93 -0
- package/assets/scaffold/core/scripts/ontology-candidate.sh +100 -0
- package/assets/scaffold/core/scripts/ontology-garden.mjs +238 -0
- package/assets/scaffold/core/scripts/ontology-source-worklist.sh +79 -0
- package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +834 -0
- package/assets/scaffold/core/scripts/policy-age-report.sh +156 -0
- package/assets/scaffold/core/scripts/policy-retire.sh +199 -0
- package/assets/scaffold/core/scripts/qmd-reindex-after-sync.sh +10 -87
- package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +40 -0
- package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +32 -0
- package/assets/scaffold/core/scripts/rebuild-company-knowledge-index.sh +36 -3
- package/assets/scaffold/core/scripts/rebuild-projects-index.sh +99 -12
- package/assets/scaffold/core/scripts/refresh-vault-access.sh +188 -0
- package/assets/scaffold/core/scripts/register-project.sh +262 -0
- package/assets/scaffold/core/scripts/repo-run-registry.sh +408 -0
- package/assets/scaffold/core/scripts/resolve-company.sh +199 -0
- package/assets/scaffold/core/scripts/resume-thread-lock.sh +285 -0
- package/assets/scaffold/core/scripts/share-suggestion-state.sh +541 -0
- package/assets/scaffold/core/scripts/source-yaml-validate.sh +36 -0
- package/assets/scaffold/core/scripts/token-usage-report.sh +81 -20
- package/assets/scaffold/core/scripts/verify-story-deliverables.sh +148 -0
- package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +152 -0
- package/assets/scaffold/core/scripts/work-mesh-live-rebind.sh +59 -0
- package/assets/scaffold/core/scripts/worktree-gc.sh +362 -0
- package/contracts/preflight/v1/fixtures.json +87 -0
- package/contracts/preflight/v1/schema.json +58 -0
- package/dist/bin/hq-auth-refresh.d.ts +2 -0
- package/dist/bin/hq-auth-refresh.js +12 -6
- package/dist/command-catalog.generated.d.ts +10798 -0
- package/dist/command-catalog.generated.js +13915 -0
- package/dist/command-registration-plan.d.ts +474 -0
- package/dist/command-registration-plan.js +136 -0
- package/dist/commands/__fixtures__/access-vault.d.ts +2 -0
- package/dist/commands/__fixtures__/access-vault.js +1 -1
- package/dist/commands/_patterns.d.ts +16 -0
- package/dist/commands/_patterns.js +20 -3
- package/dist/commands/access.d.ts +2 -1
- package/dist/commands/access.js +58 -49
- package/dist/commands/agent-enroll.d.ts +146 -0
- package/dist/commands/agent-enroll.js +401 -0
- package/dist/commands/agent-inbox.d.ts +9 -0
- package/dist/commands/agent-inbox.js +102 -0
- package/dist/commands/agent-kit.d.ts +87 -0
- package/dist/commands/agent-kit.js +480 -0
- package/dist/commands/agent-mcp.d.ts +24 -0
- package/dist/commands/agent-mcp.js +127 -0
- package/dist/commands/agent-probe.d.ts +77 -0
- package/dist/commands/agent-probe.js +335 -0
- package/dist/commands/agent.d.ts +13 -0
- package/dist/commands/agent.js +40 -0
- package/dist/commands/agents.d.ts +106 -4
- package/dist/commands/agents.js +924 -45
- package/dist/commands/auth.d.ts +1 -0
- package/dist/commands/auth.js +189 -19
- package/dist/commands/billing-sponsor.d.ts +83 -0
- package/dist/commands/billing-sponsor.js +344 -0
- package/dist/commands/billing.d.ts +3 -0
- package/dist/commands/billing.js +6 -1
- package/dist/commands/bot-companies.d.ts +40 -0
- package/dist/commands/bot-companies.js +64 -0
- package/dist/commands/bot-continuity.d.ts +28 -0
- package/dist/commands/bot-continuity.js +68 -0
- package/dist/commands/bot-jobs.d.ts +131 -0
- package/dist/commands/bot-jobs.js +474 -0
- package/dist/commands/bot.d.ts +278 -0
- package/dist/commands/bot.js +1982 -0
- package/dist/commands/channels.js +56 -1
- package/dist/commands/cloud-demote.js +3 -2
- package/dist/commands/cloud-provision.d.ts +14 -0
- package/dist/commands/cloud-provision.js +232 -58
- package/dist/commands/cloud-retire.d.ts +51 -0
- package/dist/commands/cloud-retire.js +154 -0
- package/dist/commands/cloud.d.ts +49 -15
- package/dist/commands/cloud.js +357 -122
- package/dist/commands/company-rename-flag.d.ts +4 -0
- package/dist/commands/company-rename-flag.js +7 -0
- package/dist/commands/company-rename.d.ts +4 -0
- package/dist/commands/company-rename.js +90 -0
- package/dist/commands/company-transfer.d.ts +4 -28
- package/dist/commands/company-transfer.js +5 -49
- package/dist/commands/company.js +68 -3
- package/dist/commands/core-audit-log-native.d.ts +9 -0
- package/dist/commands/core-audit-log-native.js +257 -0
- package/dist/commands/core-checkpoint-gate-setting.d.ts +59 -0
- package/dist/commands/core-checkpoint-gate-setting.js +163 -0
- package/dist/commands/core-checkpoint-stop-gate-native.d.ts +34 -0
- package/dist/commands/core-checkpoint-stop-gate-native.js +725 -0
- package/dist/commands/core-checkpoint.d.ts +19 -9
- package/dist/commands/core-checkpoint.js +301 -37
- package/dist/commands/core-command-catalog.d.ts +34 -0
- package/dist/commands/core-command-catalog.js +62 -0
- package/dist/commands/core-company-index-scope-flag.d.ts +3 -0
- package/dist/commands/core-company-index-scope-flag.js +6 -0
- package/dist/commands/core-delegate-w1b.d.ts +10 -0
- package/dist/commands/core-delegate-w1b.js +1219 -0
- package/dist/commands/core-delegate.d.ts +46 -0
- package/dist/commands/core-delegate.js +1040 -0
- package/dist/commands/core-detect-stale-review-base-native.d.ts +23 -0
- package/dist/commands/core-detect-stale-review-base-native.js +178 -0
- package/dist/commands/core-dm-bind-native.d.ts +32 -0
- package/dist/commands/core-dm-bind-native.js +668 -0
- package/dist/commands/core-eval-trigger-native.d.ts +4 -0
- package/dist/commands/core-eval-trigger-native.js +12 -0
- package/dist/commands/core-git-pack-extension-check-native.d.ts +22 -0
- package/dist/commands/core-git-pack-extension-check-native.js +190 -0
- package/dist/commands/core-handoff-fast.d.ts +18 -0
- package/dist/commands/core-handoff-fast.js +104 -0
- package/dist/commands/core-handoff-open-steps.d.ts +21 -0
- package/dist/commands/core-handoff-open-steps.js +264 -0
- package/dist/commands/core-handoff.d.ts +24 -0
- package/dist/commands/core-handoff.js +1144 -0
- package/dist/commands/core-hook-state-helpers-native.d.ts +11 -0
- package/dist/commands/core-hook-state-helpers-native.js +74 -0
- package/dist/commands/core-hq-session-native.d.ts +39 -0
- package/dist/commands/core-hq-session-native.js +579 -0
- package/dist/commands/core-job-native-utils.d.ts +6 -0
- package/dist/commands/core-job-native-utils.js +80 -0
- package/dist/commands/core-job-native.d.ts +5 -0
- package/dist/commands/core-job-native.js +16 -0
- package/dist/commands/core-job-notify-native.d.ts +36 -0
- package/dist/commands/core-job-notify-native.js +359 -0
- package/dist/commands/core-job-probe-native.d.ts +45 -0
- package/dist/commands/core-job-probe-native.js +564 -0
- package/dist/commands/core-job-remediate-native.d.ts +26 -0
- package/dist/commands/core-job-remediate-native.js +374 -0
- package/dist/commands/core-job-remote-launcher.d.ts +7 -0
- package/dist/commands/core-job-remote-launcher.js +51 -0
- package/dist/commands/core-job-run-native.d.ts +47 -0
- package/dist/commands/core-job-run-native.js +1215 -0
- package/dist/commands/core-jobs-native.d.ts +25 -0
- package/dist/commands/core-jobs-native.js +1339 -0
- package/dist/commands/core-knowledge-prefs.d.ts +11 -0
- package/dist/commands/core-knowledge-prefs.js +137 -0
- package/dist/commands/core-migrate-policy-triggers-native.d.ts +21 -0
- package/dist/commands/core-migrate-policy-triggers-native.js +374 -0
- package/dist/commands/core-native-handoff-flag.d.ts +4 -0
- package/dist/commands/core-native-handoff-flag.js +7 -0
- package/dist/commands/core-native-hook-helper-commands.d.ts +4 -0
- package/dist/commands/core-native-hook-helper-commands.js +56 -0
- package/dist/commands/core-native-hook-helpers-flag.d.ts +4 -0
- package/dist/commands/core-native-hook-helpers-flag.js +7 -0
- package/dist/commands/core-native-jobs-flag.d.ts +4 -0
- package/dist/commands/core-native-jobs-flag.js +7 -0
- package/dist/commands/core-native-policy-flag.d.ts +9 -0
- package/dist/commands/core-native-policy-flag.js +12 -0
- package/dist/commands/core-native-session-flag.d.ts +4 -0
- package/dist/commands/core-native-session-flag.js +7 -0
- package/dist/commands/core-native-utilities-flag.d.ts +4 -0
- package/dist/commands/core-native-utilities-flag.js +7 -0
- package/dist/commands/core-native-utilities.d.ts +29 -0
- package/dist/commands/core-native-utilities.js +54 -0
- package/dist/commands/core-native-worker-skills-flag.d.ts +4 -0
- package/dist/commands/core-native-worker-skills-flag.js +7 -0
- package/dist/commands/core-ontology-native.d.ts +17 -0
- package/dist/commands/core-ontology-native.js +916 -0
- package/dist/commands/core-ontology.d.ts +66 -0
- package/dist/commands/core-ontology.js +430 -0
- package/dist/commands/core-pin-native.d.ts +14 -0
- package/dist/commands/core-pin-native.js +236 -0
- package/dist/commands/core-policy-frontmatter.d.ts +8 -0
- package/dist/commands/core-policy-frontmatter.js +52 -0
- package/dist/commands/core-policy.d.ts +14 -0
- package/dist/commands/core-policy.js +1018 -0
- package/dist/commands/core-refresh-vault-access-native.d.ts +20 -0
- package/dist/commands/core-refresh-vault-access-native.js +229 -0
- package/dist/commands/core-register-project-native.d.ts +30 -0
- package/dist/commands/core-register-project-native.js +347 -0
- package/dist/commands/core-repo-run-registry-native.d.ts +19 -0
- package/dist/commands/core-repo-run-registry-native.js +357 -0
- package/dist/commands/core-resolve-company-command.d.ts +4 -0
- package/dist/commands/core-resolve-company-command.js +42 -0
- package/dist/commands/core-resolve-company-native.d.ts +28 -0
- package/dist/commands/core-resolve-company-native.js +408 -0
- package/dist/commands/core-share-suggestion-state-native.d.ts +18 -0
- package/dist/commands/core-share-suggestion-state-native.js +445 -0
- package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +32 -0
- package/dist/commands/core-work-mesh-bind-trusted-native.js +190 -0
- package/dist/commands/core-work-mesh-live-rebind-native.d.ts +18 -0
- package/dist/commands/core-work-mesh-live-rebind-native.js +262 -0
- package/dist/commands/core-worker-lint-native.d.ts +4 -0
- package/dist/commands/core-worker-lint-native.js +160 -0
- package/dist/commands/core-worker-share-native.d.ts +4 -0
- package/dist/commands/core-worker-share-native.js +260 -0
- package/dist/commands/core-worker-skills-command.d.ts +8 -0
- package/dist/commands/core-worker-skills-command.js +33 -0
- package/dist/commands/core-worker-skills-runtime.d.ts +33 -0
- package/dist/commands/core-worker-skills-runtime.js +86 -0
- package/dist/commands/core.d.ts +4 -0
- package/dist/commands/core.js +282 -80
- package/dist/commands/crm.js +52 -3
- package/dist/commands/daemon.d.ts +63 -0
- package/dist/commands/daemon.js +877 -0
- package/dist/commands/db-provision.js +4 -4
- package/dist/commands/db-sql.js +7 -21
- package/dist/commands/deploy-comments.d.ts +3 -0
- package/dist/commands/deploy-comments.js +162 -0
- package/dist/commands/dm.d.ts +119 -12
- package/dist/commands/dm.js +388 -38
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.js +158 -12
- package/dist/commands/feedback.d.ts +6 -0
- package/dist/commands/feedback.js +86 -37
- package/dist/commands/files-browse.d.ts +32 -12
- package/dist/commands/files-browse.js +176 -60
- package/dist/commands/files.d.ts +17 -0
- package/dist/commands/files.js +300 -47
- package/dist/commands/group-grants.js +3 -2
- package/dist/commands/groups.js +6 -5
- package/dist/commands/index-cmd.d.ts +19 -1
- package/dist/commands/index-cmd.js +74 -7
- package/dist/commands/integrations-api.d.ts +15 -10
- package/dist/commands/integrations-api.js +27 -22
- package/dist/commands/integrations-connect.d.ts +51 -13
- package/dist/commands/integrations-connect.js +86 -71
- package/dist/commands/integrations-core.d.ts +6 -6
- package/dist/commands/integrations-core.js +25 -11
- package/dist/commands/integrations-import.d.ts +1 -1
- package/dist/commands/integrations-import.js +43 -24
- package/dist/commands/integrations-manage.js +20 -13
- package/dist/commands/integrations.d.ts +8 -0
- package/dist/commands/integrations.js +94 -7
- package/dist/commands/lanes-accounts.d.ts +28 -0
- package/dist/commands/lanes-accounts.js +595 -0
- package/dist/commands/lanes-autopilot.d.ts +11 -0
- package/dist/commands/lanes-autopilot.js +336 -0
- package/dist/commands/lanes-checks.d.ts +51 -0
- package/dist/commands/lanes-checks.js +941 -0
- package/dist/commands/lanes-hold.d.ts +43 -0
- package/dist/commands/lanes-hold.js +655 -0
- package/dist/commands/lanes-keep-alive-audit.d.ts +10 -0
- package/dist/commands/lanes-keep-alive-audit.js +19 -0
- package/dist/commands/lanes-kpis.d.ts +11 -0
- package/dist/commands/lanes-kpis.js +34 -0
- package/dist/commands/lanes-message.d.ts +9 -0
- package/dist/commands/lanes-message.js +946 -0
- package/dist/commands/lanes-move.d.ts +12 -0
- package/dist/commands/lanes-move.js +397 -0
- package/dist/commands/lanes-questions.d.ts +36 -0
- package/dist/commands/lanes-questions.js +1005 -0
- package/dist/commands/lanes-report.d.ts +11 -0
- package/dist/commands/lanes-report.js +333 -0
- package/dist/commands/lanes-resume.d.ts +6 -0
- package/dist/commands/lanes-resume.js +564 -0
- package/dist/commands/lanes-review.d.ts +10 -0
- package/dist/commands/lanes-review.js +56 -0
- package/dist/commands/lanes-shared.d.ts +449 -0
- package/dist/commands/lanes-shared.js +170 -0
- package/dist/commands/lanes-stories.d.ts +15 -0
- package/dist/commands/lanes-stories.js +347 -0
- package/dist/commands/lanes-watch.d.ts +7 -0
- package/dist/commands/lanes-watch.js +216 -0
- package/dist/commands/lanes.d.ts +149 -0
- package/dist/commands/lanes.js +9013 -0
- package/dist/commands/login.js +49 -6
- package/dist/commands/mcp-registration.d.ts +32 -25
- package/dist/commands/mcp-registration.js +256 -23
- package/dist/commands/mcp-status.js +1 -0
- package/dist/commands/meetings.js +55 -34
- package/dist/commands/members.js +5 -1
- package/dist/commands/mesh.d.ts +11 -0
- package/dist/commands/mesh.js +1086 -76
- package/dist/commands/monitor.d.ts +58 -0
- package/dist/commands/monitor.js +980 -0
- package/dist/commands/onboard-bot-membership.d.ts +32 -0
- package/dist/commands/onboard-bot-membership.js +40 -0
- package/dist/commands/onboard-create-identity.d.ts +26 -0
- package/dist/commands/onboard-create-identity.js +23 -0
- package/dist/commands/onboard-identity-guard.d.ts +1 -1
- package/dist/commands/onboard.js +24 -5
- package/dist/commands/outpost-pruner.d.ts +3 -0
- package/dist/commands/outpost-pruner.js +125 -0
- package/dist/commands/pack-install.js +3 -1
- package/dist/commands/packs.js +11 -1
- package/dist/commands/people.d.ts +4 -0
- package/dist/commands/people.js +37 -3
- package/dist/commands/personal-connector-settings-flag.d.ts +4 -0
- package/dist/commands/personal-connector-settings-flag.js +7 -0
- package/dist/commands/personal-targeted-push-flag.d.ts +4 -0
- package/dist/commands/personal-targeted-push-flag.js +7 -0
- package/dist/commands/personal-targeted-push-paths.d.ts +3 -0
- package/dist/commands/personal-targeted-push-paths.js +67 -0
- package/dist/commands/publish.d.ts +8 -1
- package/dist/commands/publish.js +17 -4
- package/dist/commands/reindex.js +56 -6
- package/dist/commands/report.d.ts +19 -0
- package/dist/commands/report.js +537 -0
- package/dist/commands/rescue.d.ts +4 -0
- package/dist/commands/rescue.js +27 -17
- package/dist/commands/run-feature-telemetry.d.ts +3 -0
- package/dist/commands/run-feature-telemetry.js +6 -0
- package/dist/commands/run.js +18 -4
- package/dist/commands/safe-extract.d.ts +11 -2
- package/dist/commands/safe-extract.js +36 -8
- package/dist/commands/secrets.d.ts +20 -2
- package/dist/commands/secrets.js +175 -71
- package/dist/commands/skill.d.ts +35 -4
- package/dist/commands/skill.js +357 -18
- package/dist/commands/staff/reset-test-account.d.ts +110 -0
- package/dist/commands/staff/reset-test-account.js +268 -0
- package/dist/commands/staff/test-account.d.ts +51 -0
- package/dist/commands/staff/test-account.js +196 -0
- package/dist/commands/sync-mode.d.ts +11 -0
- package/dist/commands/sync-mode.js +30 -0
- package/dist/commands/sync-narrow.js +36 -5
- package/dist/commands/team-sync.js +71 -10
- package/dist/commands/update.js +6 -0
- package/dist/commands/vault-retention-flag.d.ts +3 -0
- package/dist/commands/vault-retention-flag.js +9 -0
- package/dist/commands/vault-retention.d.ts +11 -0
- package/dist/commands/vault-retention.js +69 -0
- package/dist/commands/version.d.ts +10 -0
- package/dist/commands/version.js +11 -0
- package/dist/commands/whoami.d.ts +22 -0
- package/dist/commands/whoami.js +137 -4
- package/dist/commands/workers.d.ts +2 -14
- package/dist/commands/workers.js +7 -10
- package/dist/fast-core.d.ts +7 -7
- package/dist/fast-core.js +91 -24
- package/dist/fast-scaffold.d.ts +86 -0
- package/dist/fast-scaffold.js +381 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.js +59 -9
- package/dist/lanes-drain-hook.d.ts +14 -0
- package/dist/lanes-drain-hook.js +203 -0
- package/dist/lazy-commands.d.ts +20 -44
- package/dist/lazy-commands.js +60 -58
- package/dist/lib/agent-kit/adopt-identity.d.ts +27 -0
- package/dist/lib/agent-kit/adopt-identity.js +60 -0
- package/dist/lib/agent-kit/attachment-download.d.ts +24 -0
- package/dist/lib/agent-kit/attachment-download.js +47 -0
- package/dist/lib/agent-kit/creds.d.ts +106 -0
- package/dist/lib/agent-kit/creds.js +163 -0
- package/dist/lib/agent-kit/fallback.d.ts +78 -0
- package/dist/lib/agent-kit/fallback.js +210 -0
- package/dist/lib/agent-kit/inbox-state.d.ts +83 -0
- package/dist/lib/agent-kit/inbox-state.js +159 -0
- package/dist/lib/agent-kit/kit-config.d.ts +56 -0
- package/dist/lib/agent-kit/kit-config.js +65 -0
- package/dist/lib/agent-kit/log.d.ts +16 -0
- package/dist/lib/agent-kit/log.js +46 -0
- package/dist/lib/agent-kit/mcp/attachments.d.ts +126 -0
- package/dist/lib/agent-kit/mcp/attachments.js +222 -0
- package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +75 -0
- package/dist/lib/agent-kit/mcp/jsonrpc.js +164 -0
- package/dist/lib/agent-kit/mcp/tools.d.ts +64 -0
- package/dist/lib/agent-kit/mcp/tools.js +397 -0
- package/dist/lib/agent-kit/paths.d.ts +65 -0
- package/dist/lib/agent-kit/paths.js +118 -0
- package/dist/lib/agent-kit/private-file.d.ts +29 -0
- package/dist/lib/agent-kit/private-file.js +91 -0
- package/dist/lib/agent-kit/run/heartbeat.d.ts +72 -0
- package/dist/lib/agent-kit/run/heartbeat.js +128 -0
- package/dist/lib/agent-kit/run/inbox.d.ts +76 -0
- package/dist/lib/agent-kit/run/inbox.js +205 -0
- package/dist/lib/agent-kit/run/supervisor.d.ts +35 -0
- package/dist/lib/agent-kit/run/supervisor.js +85 -0
- package/dist/lib/agent-kit/run/sync.d.ts +33 -0
- package/dist/lib/agent-kit/run/sync.js +58 -0
- package/dist/lib/agent-kit/services.d.ts +31 -0
- package/dist/lib/agent-kit/services.js +55 -0
- package/dist/lib/agent-kit/skills.d.ts +18 -0
- package/dist/lib/agent-kit/skills.js +151 -0
- package/dist/lib/agent-kit/wake.d.ts +83 -0
- package/dist/lib/agent-kit/wake.js +243 -0
- package/dist/lib/agents/model-catalog.d.ts +62 -0
- package/dist/lib/agents/model-catalog.js +275 -0
- package/dist/lib/auth-login-provider-state.d.ts +8 -0
- package/dist/lib/auth-login-provider-state.js +63 -0
- package/dist/lib/aws-sdk-node-warning-output.d.ts +12 -0
- package/dist/lib/aws-sdk-node-warning-output.js +22 -0
- package/dist/lib/billing/free-month.d.ts +18 -0
- package/dist/lib/billing/free-month.js +31 -0
- package/dist/lib/billing/plan-limit-refusals.d.ts +69 -0
- package/dist/lib/billing/plan-limit-refusals.js +187 -0
- package/dist/lib/billing/plan-limit-upgrade-url.d.ts +11 -0
- package/dist/lib/billing/plan-limit-upgrade-url.js +66 -0
- package/dist/lib/billing/plan-lock.d.ts +143 -0
- package/dist/lib/billing/plan-lock.js +439 -0
- package/dist/lib/bot/api.d.ts +349 -0
- package/dist/lib/bot/api.js +316 -0
- package/dist/lib/bot/attachments.d.ts +45 -0
- package/dist/lib/bot/attachments.js +89 -0
- package/dist/lib/bot/cli-update.d.ts +138 -0
- package/dist/lib/bot/cli-update.js +278 -0
- package/dist/lib/bot/company-bind.d.ts +27 -0
- package/dist/lib/bot/company-bind.js +62 -0
- package/dist/lib/bot/config.d.ts +153 -0
- package/dist/lib/bot/config.js +233 -0
- package/dist/lib/bot/continuity-download.d.ts +28 -0
- package/dist/lib/bot/continuity-download.js +75 -0
- package/dist/lib/bot/continuity-install.d.ts +14 -0
- package/dist/lib/bot/continuity-install.js +101 -0
- package/dist/lib/bot/continuity.d.ts +67 -0
- package/dist/lib/bot/continuity.js +301 -0
- package/dist/lib/bot/creds.d.ts +24 -0
- package/dist/lib/bot/creds.js +51 -0
- package/dist/lib/bot/daemon.d.ts +173 -0
- package/dist/lib/bot/daemon.js +552 -0
- package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +24 -0
- package/dist/lib/bot/inbox-poll-backoff-flag.js +135 -0
- package/dist/lib/bot/inbox-state.d.ts +18 -0
- package/dist/lib/bot/inbox-state.js +51 -0
- package/dist/lib/bot/index.d.ts +23 -0
- package/dist/lib/bot/index.js +23 -0
- package/dist/lib/bot/inflight.d.ts +119 -0
- package/dist/lib/bot/inflight.js +83 -0
- package/dist/lib/bot/job-completions.d.ts +89 -0
- package/dist/lib/bot/job-completions.js +132 -0
- package/dist/lib/bot/job-quiet-flag.d.ts +4 -0
- package/dist/lib/bot/job-quiet-flag.js +14 -0
- package/dist/lib/bot/job-run.d.ts +114 -0
- package/dist/lib/bot/job-run.js +266 -0
- package/dist/lib/bot/local-config.d.ts +61 -0
- package/dist/lib/bot/local-config.js +145 -0
- package/dist/lib/bot/local-jobs.d.ts +89 -0
- package/dist/lib/bot/local-jobs.js +459 -0
- package/dist/lib/bot/local-name.d.ts +54 -0
- package/dist/lib/bot/local-name.js +114 -0
- package/dist/lib/bot/log.d.ts +13 -0
- package/dist/lib/bot/log.js +59 -0
- package/dist/lib/bot/owner-context.d.ts +79 -0
- package/dist/lib/bot/owner-context.js +175 -0
- package/dist/lib/bot/paths.d.ts +76 -0
- package/dist/lib/bot/paths.js +131 -0
- package/dist/lib/bot/progress.d.ts +132 -0
- package/dist/lib/bot/progress.js +289 -0
- package/dist/lib/bot/promote.d.ts +16 -0
- package/dist/lib/bot/promote.js +106 -0
- package/dist/lib/bot/promotion-hold.d.ts +24 -0
- package/dist/lib/bot/promotion-hold.js +103 -0
- package/dist/lib/bot/promotion-receipt.d.ts +9 -0
- package/dist/lib/bot/promotion-receipt.js +56 -0
- package/dist/lib/bot/promotion-upload.d.ts +16 -0
- package/dist/lib/bot/promotion-upload.js +80 -0
- package/dist/lib/bot/prompt.d.ts +136 -0
- package/dist/lib/bot/prompt.js +433 -0
- package/dist/lib/bot/room-policy.d.ts +63 -0
- package/dist/lib/bot/room-policy.js +91 -0
- package/dist/lib/bot/run.d.ts +219 -0
- package/dist/lib/bot/run.js +1881 -0
- package/dist/lib/bot/runnable.d.ts +51 -0
- package/dist/lib/bot/runnable.js +65 -0
- package/dist/lib/bot/runtime/claude.d.ts +50 -0
- package/dist/lib/bot/runtime/claude.js +170 -0
- package/dist/lib/bot/runtime/codex.d.ts +28 -0
- package/dist/lib/bot/runtime/codex.js +153 -0
- package/dist/lib/bot/runtime/grok-acp.d.ts +40 -0
- package/dist/lib/bot/runtime/grok-acp.js +265 -0
- package/dist/lib/bot/runtime/grok.d.ts +41 -0
- package/dist/lib/bot/runtime/grok.js +169 -0
- package/dist/lib/bot/runtime/index.d.ts +36 -0
- package/dist/lib/bot/runtime/index.js +417 -0
- package/dist/lib/bot/runtime/messages-stream.d.ts +56 -0
- package/dist/lib/bot/runtime/messages-stream.js +194 -0
- package/dist/lib/bot/runtime/sanitize.d.ts +18 -0
- package/dist/lib/bot/runtime/sanitize.js +28 -0
- package/dist/lib/bot/runtime/types.d.ts +159 -0
- package/dist/lib/bot/runtime/types.js +51 -0
- package/dist/lib/bot/runtime/windows.d.ts +10 -0
- package/dist/lib/bot/runtime/windows.js +53 -0
- package/dist/lib/bot/runtime-sign-in.d.ts +24 -0
- package/dist/lib/bot/runtime-sign-in.js +31 -0
- package/dist/lib/bot/scaffold.d.ts +38 -0
- package/dist/lib/bot/scaffold.js +94 -0
- package/dist/lib/bot/self-heal.d.ts +52 -0
- package/dist/lib/bot/self-heal.js +79 -0
- package/dist/lib/bot/self-process.d.ts +19 -0
- package/dist/lib/bot/self-process.js +35 -0
- package/dist/lib/bot/session.d.ts +19 -0
- package/dist/lib/bot/session.js +39 -0
- package/dist/lib/bot/setup-explain.d.ts +64 -0
- package/dist/lib/bot/setup-explain.js +141 -0
- package/dist/lib/bot/split.d.ts +32 -0
- package/dist/lib/bot/split.js +241 -0
- package/dist/lib/bot/status.d.ts +57 -0
- package/dist/lib/bot/status.js +66 -0
- package/dist/lib/bot/worker-source.d.ts +66 -0
- package/dist/lib/bot/worker-source.js +283 -0
- package/dist/lib/checkpoint-ontology/aliases.d.ts +17 -0
- package/dist/lib/checkpoint-ontology/aliases.js +44 -0
- package/dist/lib/checkpoint-ontology/apply.d.ts +110 -0
- package/dist/lib/checkpoint-ontology/apply.js +777 -0
- package/dist/lib/checkpoint-ontology/company-brief.d.ts +18 -0
- package/dist/lib/checkpoint-ontology/company-brief.js +337 -0
- package/dist/lib/checkpoint-ontology/company.d.ts +44 -0
- package/dist/lib/checkpoint-ontology/company.js +118 -0
- package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +41 -0
- package/dist/lib/checkpoint-ontology/drop-aliases.js +76 -0
- package/dist/lib/checkpoint-ontology/entity-file.d.ts +109 -0
- package/dist/lib/checkpoint-ontology/entity-file.js +371 -0
- package/dist/lib/checkpoint-ontology/identity.d.ts +38 -0
- package/dist/lib/checkpoint-ontology/identity.js +95 -0
- package/dist/lib/checkpoint-ontology/merge-copies.d.ts +199 -0
- package/dist/lib/checkpoint-ontology/merge-copies.js +1086 -0
- package/dist/lib/checkpoint-ontology/multi-writer.d.ts +101 -0
- package/dist/lib/checkpoint-ontology/multi-writer.js +394 -0
- package/dist/lib/checkpoint-ontology/plan.d.ts +193 -0
- package/dist/lib/checkpoint-ontology/plan.js +504 -0
- package/dist/lib/checkpoint-ontology/queued-touches.d.ts +29 -0
- package/dist/lib/checkpoint-ontology/queued-touches.js +193 -0
- package/dist/lib/checkpoint-ontology/sync-client.d.ts +38 -0
- package/dist/lib/checkpoint-ontology/sync-client.js +84 -0
- package/dist/lib/checkpoint-ontology/tree.d.ts +55 -0
- package/dist/lib/checkpoint-ontology/tree.js +198 -0
- package/dist/lib/company-errors-sdk-warning-flag.d.ts +5 -0
- package/dist/lib/company-errors-sdk-warning-flag.js +8 -0
- package/dist/lib/company-skill-wrapper.d.ts +1 -0
- package/dist/lib/company-skill-wrapper.js +121 -29
- package/dist/lib/core-utils/codex-skill-bridge.d.ts +2 -1
- package/dist/lib/core-utils/common.d.ts +0 -1
- package/dist/lib/core-utils/common.js +0 -9
- package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +20 -0
- package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +81 -0
- package/dist/lib/core-utils/jq-json-serializer.d.ts +5 -0
- package/dist/lib/core-utils/jq-json-serializer.js +10 -0
- package/dist/lib/core-utils/qmd-reindex-after-sync.d.ts +14 -1
- package/dist/lib/core-utils/qmd-reindex-after-sync.js +101 -17
- package/dist/lib/core-utils/secret-patterns.d.ts +43 -0
- package/dist/lib/core-utils/secret-patterns.js +34 -0
- package/dist/lib/core-utils/sentry-report.d.ts +114 -0
- package/dist/lib/core-utils/sentry-report.js +1055 -0
- package/dist/lib/core-utils/soft-timeout.js +1 -1
- package/dist/lib/core-utils/timeout-guard-native.d.ts +7 -0
- package/dist/lib/core-utils/timeout-guard-native.js +40 -0
- package/dist/lib/core-utils/timeout-guard.d.ts +3 -3
- package/dist/lib/core-utils/timeout-guard.js +28 -13
- package/dist/lib/core-utils/token-usage-report.js +17 -3
- package/dist/lib/core-utils/worktree-resume.d.ts +20 -0
- package/dist/lib/core-utils/worktree-resume.js +1198 -0
- package/dist/lib/daemon/catalog.d.ts +134 -0
- package/dist/lib/daemon/catalog.js +358 -0
- package/dist/lib/daemon/config.d.ts +35 -0
- package/dist/lib/daemon/config.js +108 -0
- package/dist/lib/daemon/flag.d.ts +25 -0
- package/dist/lib/daemon/flag.js +59 -0
- package/dist/lib/daemon/handoff.d.ts +56 -0
- package/dist/lib/daemon/handoff.js +161 -0
- package/dist/lib/daemon/hq-cloud.d.ts +79 -0
- package/dist/lib/daemon/hq-cloud.js +183 -0
- package/dist/lib/daemon/install.d.ts +85 -0
- package/dist/lib/daemon/install.js +320 -0
- package/dist/lib/daemon/legacy-sync-env.d.ts +10 -0
- package/dist/lib/daemon/legacy-sync-env.js +58 -0
- package/dist/lib/daemon/legacy.d.ts +45 -0
- package/dist/lib/daemon/legacy.js +133 -0
- package/dist/lib/daemon/lock.d.ts +47 -0
- package/dist/lib/daemon/lock.js +138 -0
- package/dist/lib/daemon/machine-type.d.ts +50 -0
- package/dist/lib/daemon/machine-type.js +159 -0
- package/dist/lib/daemon/migrate.d.ts +77 -0
- package/dist/lib/daemon/migrate.js +265 -0
- package/dist/lib/daemon/paths.d.ts +24 -0
- package/dist/lib/daemon/paths.js +43 -0
- package/dist/lib/daemon/protocol-tail.d.ts +33 -0
- package/dist/lib/daemon/protocol-tail.js +131 -0
- package/dist/lib/daemon/remote-control.d.ts +74 -0
- package/dist/lib/daemon/remote-control.js +153 -0
- package/dist/lib/daemon/requests.d.ts +28 -0
- package/dist/lib/daemon/requests.js +65 -0
- package/dist/lib/daemon/run.d.ts +79 -0
- package/dist/lib/daemon/run.js +755 -0
- package/dist/lib/daemon/succession.d.ts +118 -0
- package/dist/lib/daemon/succession.js +263 -0
- package/dist/lib/daemon/supervisor.d.ts +132 -0
- package/dist/lib/daemon/supervisor.js +836 -0
- package/dist/lib/daemon/sync-runner.d.ts +58 -0
- package/dist/lib/daemon/sync-runner.js +277 -0
- package/dist/lib/daemon/tools.d.ts +52 -0
- package/dist/lib/daemon/tools.js +95 -0
- package/dist/lib/daemon/updater.d.ts +57 -0
- package/dist/lib/daemon/updater.js +163 -0
- package/dist/lib/db/control-plane.js +6 -0
- package/dist/lib/db/local.d.ts +0 -5
- package/dist/lib/db/local.js +1 -1
- package/dist/lib/db/migrate.d.ts +0 -12
- package/dist/lib/db/migrate.js +5 -5
- package/dist/lib/db/remote-sql.d.ts +2 -2
- package/dist/lib/db/remote-sql.js +3 -3
- package/dist/lib/db/sql.d.ts +0 -10
- package/dist/lib/db/sql.js +4 -8
- package/dist/lib/deploy-api.d.ts +5 -0
- package/dist/lib/deploy-api.js +21 -0
- package/dist/lib/deploy-apps.d.ts +13 -0
- package/dist/lib/deploy-apps.js +29 -0
- package/dist/lib/doctor/__testing__/fake-hq-tree.d.ts +1 -1
- package/dist/lib/doctor/__testing__/fake-hq-tree.js +1 -1
- package/dist/lib/doctor/__testing__/run-doctor.d.ts +8 -0
- package/dist/lib/doctor/__testing__/run-doctor.js +52 -0
- package/dist/lib/doctor/checks/bots.d.ts +13 -0
- package/dist/lib/doctor/checks/bots.js +189 -0
- package/dist/lib/doctor/checks/claude-wiring.js +70 -1
- package/dist/lib/doctor/checks/codex-wiring.d.ts +0 -4
- package/dist/lib/doctor/checks/codex-wiring.js +3 -35
- package/dist/lib/doctor/checks/grok-wiring.js +1 -34
- package/dist/lib/doctor/checks/integrations.js +11 -0
- package/dist/lib/doctor/checks/runtime-health.d.ts +4 -17
- package/dist/lib/doctor/checks/runtime-health.js +20 -7
- package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +6 -0
- package/dist/lib/doctor/checks/scaffold-cli-floor.js +73 -0
- package/dist/lib/doctor/checks/sync-health.d.ts +21 -0
- package/dist/lib/doctor/checks/sync-health.js +72 -2
- package/dist/lib/doctor/checks/sync-runtime.d.ts +11 -0
- package/dist/lib/doctor/checks/sync-runtime.js +216 -0
- package/dist/lib/doctor/checks/work-context.js +20 -6
- package/dist/lib/doctor/client-health-flag-token.d.ts +15 -0
- package/dist/lib/doctor/client-health-flag-token.js +66 -0
- package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +27 -0
- package/dist/lib/doctor/client-health-reason-codes-flag.js +106 -0
- package/dist/lib/doctor/compat.d.ts +0 -16
- package/dist/lib/doctor/compat.js +4 -3
- package/dist/lib/doctor/deep/effects.js +1 -3
- package/dist/lib/doctor/deep/executor.d.ts +4 -10
- package/dist/lib/doctor/deep/executor.js +1 -1
- package/dist/lib/doctor/deep/parity.d.ts +2 -29
- package/dist/lib/doctor/deep/parity.js +7 -7
- package/dist/lib/doctor/deep/sandbox.d.ts +7 -25
- package/dist/lib/doctor/deep/sandbox.js +5 -7
- package/dist/lib/doctor/fix/apply.d.ts +79 -8
- package/dist/lib/doctor/fix/apply.js +292 -80
- package/dist/lib/doctor/fix/json-output.d.ts +28 -0
- package/dist/lib/doctor/fix/json-output.js +33 -0
- package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +12 -0
- package/dist/lib/doctor/fix/refresh-sync-outcome.js +25 -0
- package/dist/lib/doctor/fix/remediation.d.ts +14 -6
- package/dist/lib/doctor/fix/remediation.js +49 -9
- package/dist/lib/doctor/fixtures/schema.js +1 -3
- package/dist/lib/doctor/json-output.d.ts +17 -1
- package/dist/lib/doctor/json-output.js +7 -2
- package/dist/lib/doctor/platform.d.ts +0 -26
- package/dist/lib/doctor/platform.js +5 -5
- package/dist/lib/doctor/registry.d.ts +14 -0
- package/dist/lib/doctor/registry.js +71 -0
- package/dist/lib/doctor/report.js +1 -1
- package/dist/lib/doctor/shared.d.ts +8 -0
- package/dist/lib/doctor/shared.js +38 -0
- package/dist/lib/doctor/stray-gate-entries.d.ts +35 -0
- package/dist/lib/doctor/stray-gate-entries.js +83 -0
- package/dist/lib/doctor/types.d.ts +5 -0
- package/dist/lib/doctor/types.js +20 -0
- package/dist/lib/first-sync-next-step.d.ts +34 -0
- package/dist/lib/first-sync-next-step.js +179 -0
- package/dist/lib/flag-registry-endpoint.d.ts +5 -0
- package/dist/lib/flag-registry-endpoint.js +9 -0
- package/dist/lib/flag-registry-worker-source.generated.d.ts +2 -0
- package/dist/lib/flag-registry-worker-source.generated.js +3 -0
- package/dist/lib/flag-registry-worker.js +12 -1
- package/dist/lib/flag-registry.d.ts +26 -6
- package/dist/lib/flag-registry.js +133 -16
- package/dist/lib/flag-snapshot-file.d.ts +20 -0
- package/dist/lib/flag-snapshot-file.js +91 -0
- package/dist/lib/heartbeat-identity.d.ts +30 -0
- package/dist/lib/heartbeat-identity.js +76 -0
- package/dist/lib/index-render/companies.d.ts +4 -1
- package/dist/lib/index-render/companies.js +66 -3
- package/dist/lib/index-render/company-knowledge.js +80 -17
- package/dist/lib/index-render/index.d.ts +1 -0
- package/dist/lib/index-render/index.js +2 -1
- package/dist/lib/index-render/projects.js +82 -5
- package/dist/lib/index-render/shared.d.ts +13 -1
- package/dist/lib/index-render/shared.js +41 -2
- package/dist/lib/lanes/account-home.d.ts +8 -0
- package/dist/lib/lanes/account-home.js +10 -0
- package/dist/lib/lanes/accounts.d.ts +117 -0
- package/dist/lib/lanes/accounts.js +366 -0
- package/dist/lib/lanes/admission-host.d.ts +22 -0
- package/dist/lib/lanes/admission-host.js +37 -0
- package/dist/lib/lanes/admission.d.ts +26 -0
- package/dist/lib/lanes/admission.js +210 -0
- package/dist/lib/lanes/approval-gate.d.ts +8 -0
- package/dist/lib/lanes/approval-gate.js +90 -0
- package/dist/lib/lanes/autopilot-metrics.d.ts +99 -0
- package/dist/lib/lanes/autopilot-metrics.js +301 -0
- package/dist/lib/lanes/autopilot-registry.d.ts +62 -0
- package/dist/lib/lanes/autopilot-registry.js +192 -0
- package/dist/lib/lanes/autopilot.d.ts +137 -0
- package/dist/lib/lanes/autopilot.js +1291 -0
- package/dist/lib/lanes/blocker-freshness.d.ts +31 -0
- package/dist/lib/lanes/blocker-freshness.js +168 -0
- package/dist/lib/lanes/checked-company-path.d.ts +3 -0
- package/dist/lib/lanes/checked-company-path.js +39 -0
- package/dist/lib/lanes/claude-balance.d.ts +97 -0
- package/dist/lib/lanes/claude-balance.js +319 -0
- package/dist/lib/lanes/compaction.d.ts +110 -0
- package/dist/lib/lanes/compaction.js +293 -0
- package/dist/lib/lanes/config.d.ts +94 -0
- package/dist/lib/lanes/config.js +606 -0
- package/dist/lib/lanes/constants.d.ts +3 -0
- package/dist/lib/lanes/constants.js +3 -0
- package/dist/lib/lanes/delivery-core.d.ts +15 -0
- package/dist/lib/lanes/delivery-core.js +21 -0
- package/dist/lib/lanes/delivery.d.ts +180 -0
- package/dist/lib/lanes/delivery.js +443 -0
- package/dist/lib/lanes/disk-guard.d.ts +65 -0
- package/dist/lib/lanes/disk-guard.js +172 -0
- package/dist/lib/lanes/dropbox.d.ts +129 -0
- package/dist/lib/lanes/dropbox.js +601 -0
- package/dist/lib/lanes/effort.d.ts +51 -0
- package/dist/lib/lanes/effort.js +113 -0
- package/dist/lib/lanes/envelope-repair-dispatch.d.ts +26 -0
- package/dist/lib/lanes/envelope-repair-dispatch.js +74 -0
- package/dist/lib/lanes/errors.d.ts +39 -0
- package/dist/lib/lanes/errors.js +72 -0
- package/dist/lib/lanes/flag-keys.d.ts +25 -0
- package/dist/lib/lanes/flag-keys.js +25 -0
- package/dist/lib/lanes/grants.d.ts +30 -0
- package/dist/lib/lanes/grants.js +171 -0
- package/dist/lib/lanes/hire-grant-dispatch.d.ts +29 -0
- package/dist/lib/lanes/hire-grant-dispatch.js +315 -0
- package/dist/lib/lanes/hooks-install.d.ts +82 -0
- package/dist/lib/lanes/hooks-install.js +555 -0
- package/dist/lib/lanes/host-capacity.d.ts +69 -0
- package/dist/lib/lanes/host-capacity.js +254 -0
- package/dist/lib/lanes/hq-root.d.ts +19 -0
- package/dist/lib/lanes/hq-root.js +28 -0
- package/dist/lib/lanes/index.d.ts +76 -0
- package/dist/lib/lanes/index.js +42 -0
- package/dist/lib/lanes/keep-alive-audit.d.ts +47 -0
- package/dist/lib/lanes/keep-alive-audit.js +370 -0
- package/dist/lib/lanes/keep-alive.d.ts +68 -0
- package/dist/lib/lanes/keep-alive.js +343 -0
- package/dist/lib/lanes/kr-freshness.d.ts +76 -0
- package/dist/lib/lanes/kr-freshness.js +413 -0
- package/dist/lib/lanes/lane-company.d.ts +10 -0
- package/dist/lib/lanes/lane-company.js +41 -0
- package/dist/lib/lanes/liveness.d.ts +108 -0
- package/dist/lib/lanes/liveness.js +396 -0
- package/dist/lib/lanes/machine-identity.d.ts +34 -0
- package/dist/lib/lanes/machine-identity.js +92 -0
- package/dist/lib/lanes/manager-status-gate.d.ts +17 -0
- package/dist/lib/lanes/manager-status-gate.js +133 -0
- package/dist/lib/lanes/merge-command.d.ts +15 -0
- package/dist/lib/lanes/merge-command.js +629 -0
- package/dist/lib/lanes/mesh-events.d.ts +127 -0
- package/dist/lib/lanes/mesh-events.js +564 -0
- package/dist/lib/lanes/message-replay.d.ts +21 -0
- package/dist/lib/lanes/message-replay.js +122 -0
- package/dist/lib/lanes/models.d.ts +86 -0
- package/dist/lib/lanes/models.js +234 -0
- package/dist/lib/lanes/monitor.d.ts +48 -0
- package/dist/lib/lanes/monitor.js +428 -0
- package/dist/lib/lanes/move-account.d.ts +56 -0
- package/dist/lib/lanes/move-account.js +193 -0
- package/dist/lib/lanes/orphans.d.ts +25 -0
- package/dist/lib/lanes/orphans.js +102 -0
- package/dist/lib/lanes/outpost-dispatch.d.ts +156 -0
- package/dist/lib/lanes/outpost-dispatch.js +293 -0
- package/dist/lib/lanes/outpost-hire-cache.d.ts +22 -0
- package/dist/lib/lanes/outpost-hire-cache.js +153 -0
- package/dist/lib/lanes/outpost-identity.d.ts +33 -0
- package/dist/lib/lanes/outpost-identity.js +59 -0
- package/dist/lib/lanes/outpost-profile-repin.d.ts +17 -0
- package/dist/lib/lanes/outpost-profile-repin.js +84 -0
- package/dist/lib/lanes/outpost-pruner-install.d.ts +37 -0
- package/dist/lib/lanes/outpost-pruner-install.js +238 -0
- package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +18 -0
- package/dist/lib/lanes/outpost-registry-worker-approval.js +109 -0
- package/dist/lib/lanes/outpost-snapshot-memo.d.ts +6 -0
- package/dist/lib/lanes/outpost-snapshot-memo.js +14 -0
- package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +19 -0
- package/dist/lib/lanes/outpost-worktree-pruner-flag.js +86 -0
- package/dist/lib/lanes/outpost-worktree-pruner.d.ts +62 -0
- package/dist/lib/lanes/outpost-worktree-pruner.js +1201 -0
- package/dist/lib/lanes/profile.d.ts +69 -0
- package/dist/lib/lanes/profile.js +552 -0
- package/dist/lib/lanes/provider-rejection.d.ts +86 -0
- package/dist/lib/lanes/provider-rejection.js +286 -0
- package/dist/lib/lanes/questions.d.ts +90 -0
- package/dist/lib/lanes/questions.js +384 -0
- package/dist/lib/lanes/quota.d.ts +134 -0
- package/dist/lib/lanes/quota.js +471 -0
- package/dist/lib/lanes/reconcile-install.d.ts +90 -0
- package/dist/lib/lanes/reconcile-install.js +257 -0
- package/dist/lib/lanes/reconcile.d.ts +161 -0
- package/dist/lib/lanes/reconcile.js +3343 -0
- package/dist/lib/lanes/registry-flag.d.ts +35 -0
- package/dist/lib/lanes/registry-flag.js +164 -0
- package/dist/lib/lanes/registry-persona.d.ts +20 -0
- package/dist/lib/lanes/registry-persona.js +329 -0
- package/dist/lib/lanes/registry.d.ts +122 -0
- package/dist/lib/lanes/registry.js +570 -0
- package/dist/lib/lanes/reviews.d.ts +38 -0
- package/dist/lib/lanes/reviews.js +395 -0
- package/dist/lib/lanes/runaway-tool-guard.d.ts +38 -0
- package/dist/lib/lanes/runaway-tool-guard.js +284 -0
- package/dist/lib/lanes/session-relink.d.ts +25 -0
- package/dist/lib/lanes/session-relink.js +216 -0
- package/dist/lib/lanes/spawn.d.ts +355 -0
- package/dist/lib/lanes/spawn.js +2668 -0
- package/dist/lib/lanes/ssm-command-context.d.ts +12 -0
- package/dist/lib/lanes/ssm-command-context.js +52 -0
- package/dist/lib/lanes/store.d.ts +91 -0
- package/dist/lib/lanes/store.js +1822 -0
- package/dist/lib/lanes/stories.d.ts +23 -0
- package/dist/lib/lanes/stories.js +92 -0
- package/dist/lib/lanes/story-ledger.d.ts +80 -0
- package/dist/lib/lanes/story-ledger.js +815 -0
- package/dist/lib/lanes/story-switch.d.ts +21 -0
- package/dist/lib/lanes/story-switch.js +75 -0
- package/dist/lib/lanes/text-scan.d.ts +11 -0
- package/dist/lib/lanes/text-scan.js +103 -0
- package/dist/lib/lanes/throttle.d.ts +116 -0
- package/dist/lib/lanes/throttle.js +437 -0
- package/dist/lib/lanes/timestamp.d.ts +3 -0
- package/dist/lib/lanes/timestamp.js +26 -0
- package/dist/lib/lanes/tracker-checks.d.ts +77 -0
- package/dist/lib/lanes/tracker-checks.js +134 -0
- package/dist/lib/lanes/tracker-report-state.d.ts +10 -0
- package/dist/lib/lanes/tracker-report-state.js +124 -0
- package/dist/lib/lanes/tracker-report.d.ts +203 -0
- package/dist/lib/lanes/tracker-report.js +522 -0
- package/dist/lib/lanes/tracker-store.d.ts +18 -0
- package/dist/lib/lanes/tracker-store.js +106 -0
- package/dist/lib/lanes/types.d.ts +1030 -0
- package/dist/lib/lanes/types.js +418 -0
- package/dist/lib/lanes/wait.d.ts +39 -0
- package/dist/lib/lanes/wait.js +159 -0
- package/dist/lib/lanes/watch.d.ts +39 -0
- package/dist/lib/lanes/watch.js +249 -0
- package/dist/lib/lanes/watcher-main.d.ts +11 -0
- package/dist/lib/lanes/watcher-main.js +108 -0
- package/dist/lib/lanes/watcher.d.ts +287 -0
- package/dist/lib/lanes/watcher.js +1972 -0
- package/dist/lib/mesh/api.d.ts +103 -10
- package/dist/lib/mesh/api.js +334 -64
- package/dist/lib/mesh/client.d.ts +3 -2
- package/dist/lib/mesh/client.js +26 -7
- package/dist/lib/mesh/denial-codes.d.ts +5 -0
- package/dist/lib/mesh/denial-codes.js +14 -0
- package/dist/lib/mesh/live/backfill-held.d.ts +67 -16
- package/dist/lib/mesh/live/backfill-held.js +415 -61
- package/dist/lib/mesh/live/backoff.d.ts +2 -2
- package/dist/lib/mesh/live/backoff.js +16 -3
- package/dist/lib/mesh/live/daemon/board-refresh.d.ts +7 -1
- package/dist/lib/mesh/live/daemon/board-refresh.js +78 -30
- package/dist/lib/mesh/live/daemon/config.d.ts +36 -0
- package/dist/lib/mesh/live/daemon/config.js +120 -0
- package/dist/lib/mesh/live/daemon/credentials.d.ts +64 -10
- package/dist/lib/mesh/live/daemon/credentials.js +270 -20
- package/dist/lib/mesh/live/daemon/doctor.d.ts +53 -0
- package/dist/lib/mesh/live/daemon/doctor.js +190 -6
- package/dist/lib/mesh/live/daemon/index.d.ts +13 -10
- package/dist/lib/mesh/live/daemon/index.js +7 -6
- package/dist/lib/mesh/live/daemon/install.d.ts +255 -1
- package/dist/lib/mesh/live/daemon/install.js +811 -13
- package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +43 -0
- package/dist/lib/mesh/live/daemon/legacy-listen.js +89 -0
- package/dist/lib/mesh/live/daemon/live-cache.d.ts +26 -0
- package/dist/lib/mesh/live/daemon/live-cache.js +116 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +7 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.js +2 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +2 -0
- package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +10 -0
- package/dist/lib/mesh/live/daemon/paths.d.ts +2 -0
- package/dist/lib/mesh/live/daemon/paths.js +2 -0
- package/dist/lib/mesh/live/daemon/presence.d.ts +24 -5
- package/dist/lib/mesh/live/daemon/presence.js +79 -10
- package/dist/lib/mesh/live/daemon/run.d.ts +48 -2
- package/dist/lib/mesh/live/daemon/run.js +485 -33
- package/dist/lib/mesh/live/daemon/state.d.ts +19 -2
- package/dist/lib/mesh/live/daemon/state.js +34 -2
- package/dist/lib/mesh/live/daemon/transcript-watch.d.ts +45 -9
- package/dist/lib/mesh/live/daemon/transcript-watch.js +227 -31
- package/dist/lib/mesh/live/daemon/version-drift.d.ts +5 -0
- package/dist/lib/mesh/live/daemon/version-drift.js +47 -0
- package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +32 -0
- package/dist/lib/mesh/live/daemon/work-subscribe.js +262 -0
- package/dist/lib/mesh/live/emit-client.d.ts +8 -0
- package/dist/lib/mesh/live/emit-client.js +23 -8
- package/dist/lib/mesh/live/emit-evidence.d.ts +19 -0
- package/dist/lib/mesh/live/emit-evidence.js +20 -2
- package/dist/lib/mesh/live/emit.d.ts +9 -0
- package/dist/lib/mesh/live/emit.js +28 -2
- package/dist/lib/mesh/live/enqueue.d.ts +5 -0
- package/dist/lib/mesh/live/enqueue.js +19 -0
- package/dist/lib/mesh/live/flush.d.ts +17 -5
- package/dist/lib/mesh/live/flush.js +391 -38
- package/dist/lib/mesh/live/format-spool-line.d.ts +5 -2
- package/dist/lib/mesh/live/format-spool-line.js +10 -0
- package/dist/lib/mesh/live/paths.d.ts +2 -0
- package/dist/lib/mesh/live/paths.js +4 -0
- package/dist/lib/mesh/live/report-summary.d.ts +45 -0
- package/dist/lib/mesh/live/report-summary.js +234 -0
- package/dist/lib/mesh/live/session-event.schema.json +24 -1
- package/dist/lib/mesh/live/session-events-client.d.ts +2 -0
- package/dist/lib/mesh/live/session-events-client.js +26 -0
- package/dist/lib/mesh/live/session-seq.d.ts +4 -0
- package/dist/lib/mesh/live/session-seq.js +33 -0
- package/dist/lib/mesh/live/spool.d.ts +19 -0
- package/dist/lib/mesh/live/spool.js +269 -3
- package/dist/lib/mesh/live/validate-session-event.d.ts +1 -1
- package/dist/lib/mesh/live/validate-session-event.js +1 -1
- package/dist/lib/mesh/project-board.d.ts +65 -0
- package/dist/lib/mesh/project-board.js +181 -0
- package/dist/lib/mesh/story-status.d.ts +22 -0
- package/dist/lib/mesh/story-status.js +49 -0
- package/dist/lib/monitor.d.ts +149 -0
- package/dist/lib/monitor.js +519 -0
- package/dist/lib/node-binary.d.ts +50 -0
- package/dist/lib/node-binary.js +133 -0
- package/dist/lib/notify-recipient.d.ts +7 -0
- package/dist/lib/notify-recipient.js +11 -0
- package/dist/lib/onboarding/checkpoint.d.ts +13 -0
- package/dist/lib/onboarding/checkpoint.js +44 -0
- package/dist/lib/onboarding/cli/onboard.d.ts +53 -0
- package/dist/lib/onboarding/cli/onboard.js +135 -0
- package/dist/lib/onboarding/cli/prompts.d.ts +28 -0
- package/dist/lib/onboarding/cli/prompts.js +83 -0
- package/dist/lib/onboarding/errors.d.ts +34 -0
- package/dist/lib/onboarding/errors.js +59 -0
- package/dist/lib/onboarding/index.d.ts +13 -0
- package/dist/lib/onboarding/index.js +13 -0
- package/dist/lib/onboarding/orchestrator.d.ts +47 -0
- package/dist/lib/onboarding/orchestrator.js +569 -0
- package/dist/lib/onboarding/types.d.ts +79 -0
- package/dist/lib/onboarding/types.js +8 -0
- package/dist/lib/plan-limit-nag.d.ts +102 -6
- package/dist/lib/plan-limit-nag.js +348 -43
- package/dist/lib/policy-validator.d.ts +7 -0
- package/dist/lib/policy-validator.js +187 -0
- package/dist/lib/process-flag-company-context.d.ts +8 -0
- package/dist/lib/process-flag-company-context.js +67 -0
- package/dist/lib/report-publish.d.ts +175 -0
- package/dist/lib/report-publish.js +421 -0
- package/dist/lib/report-run.d.ts +62 -0
- package/dist/lib/report-run.js +123 -0
- package/dist/lib/report-snapshot.d.ts +12 -0
- package/dist/lib/report-snapshot.js +135 -0
- package/dist/lib/report-templates.d.ts +9 -0
- package/dist/lib/report-templates.js +21 -0
- package/dist/lib/scaffold-cli-floor.d.ts +8 -0
- package/dist/lib/scaffold-cli-floor.js +50 -0
- package/dist/lib/scan-packages/index.d.ts +2 -0
- package/dist/lib/scan-packages/index.js +168 -6
- package/dist/lib/search-index/background.d.ts +8 -1
- package/dist/lib/search-index/background.js +55 -200
- package/dist/lib/search-index/collection-path-repair-flag.d.ts +4 -0
- package/dist/lib/search-index/collection-path-repair-flag.js +7 -0
- package/dist/lib/search-index/embed-lock.d.ts +34 -0
- package/dist/lib/search-index/embed-lock.js +295 -0
- package/dist/lib/search-index/index.d.ts +12 -0
- package/dist/lib/search-index/index.js +153 -7
- package/dist/lib/search-index/load-gate.d.ts +57 -0
- package/dist/lib/search-index/load-gate.js +270 -0
- package/dist/lib/search-index/max-doc-bytes.d.ts +219 -0
- package/dist/lib/search-index/max-doc-bytes.js +463 -0
- package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +5 -0
- package/dist/lib/search-index/qmd-exit-diagnostics.js +40 -0
- package/dist/lib/search-index/reindex-single-flight-flag.d.ts +5 -0
- package/dist/lib/search-index/reindex-single-flight-flag.js +8 -0
- package/dist/lib/service-manager/index.d.ts +42 -0
- package/dist/lib/service-manager/index.js +105 -0
- package/dist/lib/service-manager/launchd.d.ts +81 -0
- package/dist/lib/service-manager/launchd.js +212 -0
- package/dist/lib/service-manager/systemd.d.ts +19 -0
- package/dist/lib/service-manager/systemd.js +72 -0
- package/dist/lib/service-manager/types.d.ts +34 -0
- package/dist/lib/service-manager/types.js +26 -0
- package/dist/lib/test-utils/isolated-flag-company-context.d.ts +3 -0
- package/dist/lib/test-utils/isolated-flag-company-context.js +18 -0
- package/dist/lib/work-context/bind-best.d.ts +66 -0
- package/dist/lib/work-context/bind-best.js +344 -0
- package/dist/lib/work-context/bind-calling-session.d.ts +26 -0
- package/dist/lib/work-context/bind-calling-session.js +63 -0
- package/dist/lib/work-context/company-rebind.d.ts +23 -0
- package/dist/lib/work-context/company-rebind.js +59 -0
- package/dist/lib/work-context/company.d.ts +22 -20
- package/dist/lib/work-context/company.js +124 -40
- package/dist/lib/work-context/config.d.ts +58 -11
- package/dist/lib/work-context/config.js +334 -83
- package/dist/lib/work-context/contract.d.ts +13 -0
- package/dist/lib/work-context/contract.schema.json +3 -1
- package/dist/lib/work-context/default-company.d.ts +43 -0
- package/dist/lib/work-context/default-company.js +83 -0
- package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +4 -0
- package/dist/lib/work-context/outbox-quarantine-status-flag.js +7 -0
- package/dist/lib/work-context/outbox.d.ts +27 -5
- package/dist/lib/work-context/outbox.js +135 -6
- package/dist/lib/work-context/prd-sync.d.ts +56 -0
- package/dist/lib/work-context/prd-sync.js +197 -0
- package/dist/lib/work-context/preflight-contract.d.ts +28 -0
- package/dist/lib/work-context/preflight-contract.js +85 -0
- package/dist/lib/work-context/prompt-rebind.d.ts +25 -0
- package/dist/lib/work-context/prompt-rebind.js +85 -0
- package/dist/lib/work-context/reconcile.d.ts +15 -0
- package/dist/lib/work-context/reconcile.js +405 -29
- package/dist/lib/work-context/state.d.ts +93 -10
- package/dist/lib/work-context/state.js +342 -29
- package/dist/lib/work-context/windows-acl.d.ts +123 -0
- package/dist/lib/work-context/windows-acl.js +425 -0
- package/dist/lib/workers-registry/index.js +62 -8
- package/dist/lib/workers-registry/read.d.ts +15 -0
- package/dist/lib/workers-registry/read.js +17 -0
- package/dist/main.d.ts +32 -0
- package/dist/main.js +273 -73
- package/dist/native-fast-route.d.ts +7 -0
- package/dist/native-fast-route.js +45 -0
- package/dist/node-network-compat-core.d.ts +12 -0
- package/dist/node-network-compat-core.js +41 -0
- package/dist/node-network-compat-fast.d.ts +7 -0
- package/dist/node-network-compat-fast.js +23 -0
- package/dist/node-network-compat.d.ts +2 -30
- package/dist/node-network-compat.js +4 -51
- package/dist/node-preflight.d.ts +7 -1
- package/dist/node-preflight.js +5 -5
- package/dist/register-all.d.ts +4 -29
- package/dist/register-all.js +4 -233
- package/dist/run/discover-schemas.d.ts +2 -1
- package/dist/run/env-graph-guard.d.ts +2 -2
- package/dist/run/env-graph-guard.js +5 -2
- package/dist/run/hq-plugin.d.ts +4 -0
- package/dist/run/hq-plugin.js +36 -8
- package/dist/secrets-env-fast-path.d.ts +5 -0
- package/dist/secrets-env-fast-path.js +16 -0
- package/dist/secrets-env-fast-route.d.ts +18 -0
- package/dist/secrets-env-fast-route.js +54 -0
- package/dist/sentry-before-send.js +80 -0
- package/dist/sentry.d.ts +16 -4
- package/dist/sentry.js +179 -18
- package/dist/startup-registration.d.ts +26 -2
- package/dist/startup-registration.js +116 -15
- package/dist/utils/checkpoint-stamp-write-error.d.ts +28 -0
- package/dist/utils/checkpoint-stamp-write-error.js +99 -0
- package/dist/utils/cli-network-lifecycle.d.ts +4 -0
- package/dist/utils/cli-network-lifecycle.js +11 -0
- package/dist/utils/cli-telemetry.d.ts +75 -1
- package/dist/utils/cli-telemetry.js +433 -7
- package/dist/utils/client-health.d.ts +0 -4
- package/dist/utils/client-health.js +2 -2
- package/dist/utils/cognito-refresh-sentry.d.ts +3 -0
- package/dist/utils/cognito-refresh-sentry.js +49 -0
- package/dist/utils/cognito-session.d.ts +71 -0
- package/dist/utils/cognito-session.js +481 -27
- package/dist/utils/console-origin.d.ts +9 -0
- package/dist/utils/console-origin.js +28 -0
- package/dist/utils/contribution-table.d.ts +1 -1
- package/dist/utils/core-eval-trigger.d.ts +4 -0
- package/dist/utils/core-eval-trigger.js +88 -0
- package/dist/utils/environmental-error.d.ts +18 -0
- package/dist/utils/environmental-error.js +240 -7
- package/dist/utils/exclusive-lock.d.ts +32 -0
- package/dist/utils/exclusive-lock.js +75 -0
- package/dist/utils/expected-cli-error.d.ts +2 -0
- package/dist/utils/expected-cli-error.js +4 -0
- package/dist/utils/fast-stream-errors.d.ts +12 -0
- package/dist/utils/fast-stream-errors.js +18 -0
- package/dist/utils/feedback-diagnostics.d.ts +2 -1
- package/dist/utils/feedback-log-bundle.d.ts +51 -26
- package/dist/utils/feedback-log-bundle.js +211 -31
- package/dist/utils/feedback-logs.d.ts +18 -47
- package/dist/utils/feedback-logs.js +50 -21
- package/dist/utils/feedback-screenshots.d.ts +0 -1
- package/dist/utils/feedback-screenshots.js +1 -1
- package/dist/utils/files-browse-acl.d.ts +5 -0
- package/dist/utils/files-browse-acl.js +11 -0
- package/dist/utils/hq-core-yaml.d.ts +10 -0
- package/dist/utils/hq-core-yaml.js +40 -0
- package/dist/utils/hq-root-resolver.d.ts +13 -0
- package/dist/utils/hq-root-resolver.js +103 -0
- package/dist/utils/hq-roots.d.ts +25 -2
- package/dist/utils/hq-roots.js +67 -7
- package/dist/utils/incomplete-install-error.d.ts +87 -19
- package/dist/utils/incomplete-install-error.js +319 -68
- package/dist/utils/install-tree-torn.d.ts +260 -24
- package/dist/utils/install-tree-torn.js +998 -51
- package/dist/utils/large-file-guard.d.ts +0 -10
- package/dist/utils/large-file-guard.js +1 -1
- package/dist/utils/local-files-overview.d.ts +4 -8
- package/dist/utils/local-files-overview.js +48 -7
- package/dist/utils/login-provider.d.ts +7 -0
- package/dist/utils/login-provider.js +34 -0
- package/dist/utils/pack-contributions.d.ts +2 -14
- package/dist/utils/pack-contributions.js +7 -44
- package/dist/utils/package-root-diagnostics.d.ts +1 -1
- package/dist/utils/people.d.ts +7 -11
- package/dist/utils/people.js +5 -20
- package/dist/utils/plan-gate-error.d.ts +52 -10
- package/dist/utils/plan-gate-error.js +364 -41
- package/dist/utils/qmd-model-download-error.d.ts +0 -8
- package/dist/utils/qmd-model-download-error.js +1 -1
- package/dist/utils/qmd-query-document-error.d.ts +0 -6
- package/dist/utils/qmd-query-document-error.js +1 -1
- package/dist/utils/redact-error-text.d.ts +0 -2
- package/dist/utils/redact-error-text.js +3 -2
- package/dist/utils/redact-url.d.ts +14 -0
- package/dist/utils/redact-url.js +218 -0
- package/dist/utils/run-bundled-script.d.ts +6 -0
- package/dist/utils/run-bundled-script.js +117 -4
- package/dist/utils/sandbox-runner-client.d.ts +2 -1
- package/dist/utils/scaffold-fast-import-guard.d.ts +2 -0
- package/dist/utils/scaffold-fast-import-guard.js +40 -0
- package/dist/utils/scaffold-packlist-guard.d.ts +7 -0
- package/dist/utils/scaffold-packlist-guard.js +23 -0
- package/dist/utils/scaffold-sibling-references.d.ts +22 -0
- package/dist/utils/scaffold-sibling-references.js +156 -0
- package/dist/utils/secret-load-availability.d.ts +8 -0
- package/dist/utils/secret-load-availability.js +54 -0
- package/dist/utils/secrets-cache.d.ts +7 -3
- package/dist/utils/secrets-cache.js +162 -14
- package/dist/utils/self-update.d.ts +34 -1
- package/dist/utils/self-update.js +660 -42
- package/dist/utils/sentry-fingerprint.d.ts +23 -1
- package/dist/utils/sentry-fingerprint.js +223 -31
- package/dist/utils/staged-install.d.ts +34 -0
- package/dist/utils/staged-install.js +346 -0
- package/dist/utils/staged-npm-install.d.ts +16 -0
- package/dist/utils/staged-npm-install.js +264 -0
- package/dist/utils/sync-log-sources.d.ts +15 -0
- package/dist/utils/sync-log-sources.js +36 -0
- package/dist/utils/table-width.d.ts +7 -0
- package/dist/utils/table-width.js +15 -0
- package/dist/utils/team-upgrade.d.ts +1 -1
- package/dist/utils/team-upgrade.js +4 -3
- package/dist/utils/update-command-supervisor.cjs +247 -0
- package/dist/utils/upload-author.d.ts +15 -0
- package/dist/utils/upload-author.js +39 -0
- package/dist/utils/vault-api.d.ts +21 -1
- package/dist/utils/vault-api.js +251 -84
- package/dist/utils/version-check.d.ts +11 -1
- package/dist/utils/version-check.js +32 -3
- package/dist/utils/version-gate.d.ts +101 -17
- package/dist/utils/version-gate.js +645 -70
- package/dist/utils/version-report.d.ts +27 -0
- package/dist/utils/version-report.js +105 -0
- package/dist/utils/windows-spawn.d.ts +6 -0
- package/dist/utils/windows-spawn.js +37 -0
- package/dist/version-request.d.ts +14 -0
- package/dist/version-request.js +36 -0
- package/package.json +20 -8
- package/scripts/mesh-daemon-if-stale.mjs +20 -0
- package/templates/reports/blank.md +3 -0
- package/templates/reports/daily-digest.md +11 -0
- package/templates/runbooks/update-report.md +21 -0
- package/dist/commands/scaffold-fast.d.ts +0 -41
- package/dist/commands/scaffold-fast.js +0 -57
- package/dist/lib/work-context/index.d.ts +0 -25
- package/dist/lib/work-context/index.js +0 -21
package/dist/commands/skill.d.ts
CHANGED
|
@@ -3,15 +3,22 @@
|
|
|
3
3
|
*
|
|
4
4
|
* `hq skill create <slug>` registers a canonical company skill, stamps its
|
|
5
5
|
* immutable UID, surfaces its generated runtime wrapper, and syncs it.
|
|
6
|
+
* `hq skill register <slug>` reserves that UID from a proposal-lane source and
|
|
7
|
+
* writes server-stamped bytes only to `--stamped-output` — never under
|
|
8
|
+
* `companies/<company>/skills/`, and never as a discovery wrapper or sync.
|
|
9
|
+
* `hq skill promote <slug>` copies independently-cleared stamped bytes into the
|
|
10
|
+
* canonical tree only after the expected SHA-256 and registered skill_uid match.
|
|
6
11
|
* `hq skill propose <uid|path> --message "…"` posts a whole-skill comment to
|
|
7
12
|
* the same improvement thread shown in HQ Console. It never uploads a modified
|
|
8
|
-
* SKILL.md and cannot overwrite live content.
|
|
9
|
-
*
|
|
13
|
+
* SKILL.md and cannot overwrite live content. `hq skill delete <target>` removes
|
|
14
|
+
* a skill and its files for the whole company (confirmation unless --yes).
|
|
15
|
+
* Structured suggest/list/review commands intentionally are not registered.
|
|
10
16
|
*/
|
|
11
17
|
import { Command } from "commander";
|
|
12
18
|
import { ensureCognitoToken } from "../utils/cognito-session.js";
|
|
13
|
-
import { vaultApiFetch } from "../utils/vault-api.js";
|
|
19
|
+
import { vaultApiFetch, getCompanyUid } from "../utils/vault-api.js";
|
|
14
20
|
import { surfaceCompanySkill } from "../lib/company-skill-wrapper.js";
|
|
21
|
+
import { type PlanLimitRefusalSummary } from "../lib/billing/plan-limit-refusals.js";
|
|
15
22
|
export declare const SKILL_UID_PATTERN: RegExp;
|
|
16
23
|
export declare const SKILL_SLUG_PATTERN: RegExp;
|
|
17
24
|
interface SkillSyncInput {
|
|
@@ -24,6 +31,8 @@ interface SkillSyncResult {
|
|
|
24
31
|
filesUploaded: number;
|
|
25
32
|
filesSkipped: number;
|
|
26
33
|
aborted: boolean;
|
|
34
|
+
/** Set when a plan limit refused the upload; absent or null otherwise. */
|
|
35
|
+
planLimit?: PlanLimitRefusalSummary | null;
|
|
27
36
|
}
|
|
28
37
|
export declare function parseSkillUid(markdown: string): string | undefined;
|
|
29
38
|
export declare function readActiveCompanySlug(hqRoot: string): string | undefined;
|
|
@@ -38,7 +47,21 @@ export declare function makeSkillTemplate(input: {
|
|
|
38
47
|
description?: string;
|
|
39
48
|
}): string;
|
|
40
49
|
/** Replace SKILL.md without exposing a partially-written identity to agents. */
|
|
41
|
-
export declare function writeSkillFileAtomically(filePath: string, content: string): void;
|
|
50
|
+
export declare function writeSkillFileAtomically(filePath: string, content: string | Buffer): void;
|
|
51
|
+
export declare function sha256Hex(data: string | Buffer): string;
|
|
52
|
+
export declare function skillVaultPath(skillSlug: string): string;
|
|
53
|
+
export declare function isInsideCompanySkillsTree(hqRoot: string, candidatePath: string): boolean;
|
|
54
|
+
export declare function resolveSkillMarkdownPath(target: string, cwd: string): string;
|
|
55
|
+
export declare function assertStagedOutputPath(hqRoot: string, outputPath: string): string;
|
|
56
|
+
export declare function assertSha256HexMatch(actualHex: string, expectedHex: string): void;
|
|
57
|
+
export declare function assertRegisteredSkillResponse(registered: {
|
|
58
|
+
skillUid?: unknown;
|
|
59
|
+
content?: unknown;
|
|
60
|
+
}): {
|
|
61
|
+
skillUid: string;
|
|
62
|
+
content: string;
|
|
63
|
+
};
|
|
64
|
+
export declare function normalizeLiveSkillVaultPath(rawPath: string): string;
|
|
42
65
|
export declare function mapSkillError(status: number, body: Record<string, unknown>): string;
|
|
43
66
|
/**
|
|
44
67
|
* Type a failed skills-API response by its HTTP status so the top-level error
|
|
@@ -98,9 +121,17 @@ export declare function mapSkillError(status: number, body: Record<string, unkno
|
|
|
98
121
|
export declare function skillApiError(status: number, body: Record<string, unknown>, opts?: {
|
|
99
122
|
machineIdentity?: boolean;
|
|
100
123
|
}): Error;
|
|
124
|
+
export type SkillConfirmFn = (message: string) => Promise<boolean>;
|
|
125
|
+
/**
|
|
126
|
+
* Resolve a delete target: a `skl_…` uid, a SKILL.md path or its directory, or
|
|
127
|
+
* a bare skill slug under `companies/<company>/skills/<slug>/`.
|
|
128
|
+
*/
|
|
129
|
+
export declare function resolveDeleteTarget(target: string, cwd: string, hqRoot: string, companySlug: string): string;
|
|
101
130
|
interface SkillCommandDeps {
|
|
102
131
|
ensureToken?: typeof ensureCognitoToken;
|
|
103
132
|
apiFetch?: typeof vaultApiFetch;
|
|
133
|
+
confirm?: SkillConfirmFn;
|
|
134
|
+
resolveCompanyUid?: typeof getCompanyUid;
|
|
104
135
|
cwd?: () => string;
|
|
105
136
|
hqRoot?: string;
|
|
106
137
|
syncFile?: (input: SkillSyncInput) => Promise<SkillSyncResult>;
|
package/dist/commands/skill.js
CHANGED
|
@@ -3,40 +3,71 @@
|
|
|
3
3
|
*
|
|
4
4
|
* `hq skill create <slug>` registers a canonical company skill, stamps its
|
|
5
5
|
* immutable UID, surfaces its generated runtime wrapper, and syncs it.
|
|
6
|
+
* `hq skill register <slug>` reserves that UID from a proposal-lane source and
|
|
7
|
+
* writes server-stamped bytes only to `--stamped-output` — never under
|
|
8
|
+
* `companies/<company>/skills/`, and never as a discovery wrapper or sync.
|
|
9
|
+
* `hq skill promote <slug>` copies independently-cleared stamped bytes into the
|
|
10
|
+
* canonical tree only after the expected SHA-256 and registered skill_uid match.
|
|
6
11
|
* `hq skill propose <uid|path> --message "…"` posts a whole-skill comment to
|
|
7
12
|
* the same improvement thread shown in HQ Console. It never uploads a modified
|
|
8
|
-
* SKILL.md and cannot overwrite live content.
|
|
9
|
-
*
|
|
13
|
+
* SKILL.md and cannot overwrite live content. `hq skill delete <target>` removes
|
|
14
|
+
* a skill and its files for the whole company (confirmation unless --yes).
|
|
15
|
+
* Structured suggest/list/review commands intentionally are not registered.
|
|
10
16
|
*/
|
|
11
17
|
import * as fs from "node:fs";
|
|
12
18
|
import * as path from "node:path";
|
|
19
|
+
import { createHash, timingSafeEqual } from "node:crypto";
|
|
13
20
|
import chalk from "chalk";
|
|
14
21
|
import yaml from "js-yaml";
|
|
15
22
|
import { share } from "@indigoai-us/hq-cloud";
|
|
16
23
|
import { ensureCognitoToken, DEFAULT_HQ_ROOT, buildVaultConfig, isMachineIdentity, } from "../utils/cognito-session.js";
|
|
17
|
-
import
|
|
24
|
+
import * as readline from "node:readline";
|
|
25
|
+
import { vaultApiFetch, getCompanyUid } from "../utils/vault-api.js";
|
|
18
26
|
import { surfaceCompanySkill } from "../lib/company-skill-wrapper.js";
|
|
19
27
|
import { AuthError } from "../utils/auth-error.js";
|
|
20
28
|
import { redactErrorText } from "../utils/redact-error-text.js";
|
|
21
29
|
import { stampVaultAccessDenied, vaultAccessDeniedDiagnostics, } from "../utils/vault-access-denied-error.js";
|
|
30
|
+
import { PlanGateError } from "../utils/plan-gate-error.js";
|
|
31
|
+
import { createPlanLimitRefusalTracker, trackingProgressRecorder, } from "../lib/billing/plan-limit-refusals.js";
|
|
22
32
|
export const SKILL_UID_PATTERN = /^skl_[A-Za-z0-9]+$/;
|
|
23
33
|
export const SKILL_SLUG_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
|
|
24
34
|
const COMPANY_SLUG_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
|
|
25
35
|
const FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/;
|
|
36
|
+
const SHA256_HEX_PATTERN = /^[0-9a-f]{64}$/;
|
|
26
37
|
async function defaultSyncFile(input) {
|
|
38
|
+
// The runner reports a plan-limit refusal as an event, not a throw, and still
|
|
39
|
+
// returns normally. Track it so the command cannot claim "Sync: complete".
|
|
40
|
+
const tracker = createPlanLimitRefusalTracker({ companySlug: input.companySlug });
|
|
27
41
|
const result = await share({
|
|
28
42
|
paths: [input.filePath],
|
|
29
43
|
company: input.companySlug,
|
|
30
44
|
hqRoot: input.hqRoot,
|
|
31
45
|
vaultConfig: buildVaultConfig(input.token),
|
|
32
46
|
onConflict: "abort",
|
|
47
|
+
progressRecorder: trackingProgressRecorder(tracker, input.companySlug),
|
|
33
48
|
});
|
|
34
49
|
return {
|
|
35
50
|
filesUploaded: result.filesUploaded,
|
|
36
51
|
filesSkipped: result.filesSkipped,
|
|
37
52
|
aborted: result.aborted,
|
|
53
|
+
planLimit: tracker.summary(),
|
|
38
54
|
};
|
|
39
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* The upload of a stamped skill file was refused by a plan limit. Registration
|
|
58
|
+
* and the local stamp already succeeded, so say that on stderr, then return a
|
|
59
|
+
* typed plan gate for main.ts to render (reason and upgrade link) and exit
|
|
60
|
+
* non-zero. Never "Skill ready … Sync: complete".
|
|
61
|
+
*/
|
|
62
|
+
function skillUploadRefused(skillUid, filePath, companySlug, refused) {
|
|
63
|
+
console.warn(chalk.yellow(`⚠ Skill ${skillUid} is stamped locally at '${filePath}', but the upload was refused by your plan limit.`));
|
|
64
|
+
return new PlanGateError("PLAN_LIMIT_EXCEEDED", {
|
|
65
|
+
reason: `${refused.message ?? "New files are paused by your plan limit."} ` +
|
|
66
|
+
"The skill file was not uploaded. Once the limit is sorted, upload it with: " +
|
|
67
|
+
`hq sync push --company ${companySlug} '${filePath}'`,
|
|
68
|
+
...(refused.upgradeUrl ? { upgradeUrl: refused.upgradeUrl } : {}),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
40
71
|
export function parseSkillUid(markdown) {
|
|
41
72
|
const match = markdown.match(FRONTMATTER_RE);
|
|
42
73
|
if (!match)
|
|
@@ -183,11 +214,19 @@ export function writeSkillFileAtomically(filePath, content) {
|
|
|
183
214
|
: 0o644;
|
|
184
215
|
const tempPath = path.join(dir, `.SKILL.md.${process.pid}.${Date.now()}.tmp`);
|
|
185
216
|
try {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
217
|
+
if (typeof content === "string") {
|
|
218
|
+
fs.writeFileSync(tempPath, content, {
|
|
219
|
+
encoding: "utf8",
|
|
220
|
+
flag: "wx",
|
|
221
|
+
mode: existingMode,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
fs.writeFileSync(tempPath, content, {
|
|
226
|
+
flag: "wx",
|
|
227
|
+
mode: existingMode,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
191
230
|
fs.renameSync(tempPath, filePath);
|
|
192
231
|
}
|
|
193
232
|
finally {
|
|
@@ -195,6 +234,69 @@ export function writeSkillFileAtomically(filePath, content) {
|
|
|
195
234
|
fs.rmSync(tempPath, { force: true });
|
|
196
235
|
}
|
|
197
236
|
}
|
|
237
|
+
export function sha256Hex(data) {
|
|
238
|
+
return createHash("sha256").update(data).digest("hex");
|
|
239
|
+
}
|
|
240
|
+
export function skillVaultPath(skillSlug) {
|
|
241
|
+
return `skills/${skillSlug}/SKILL.md`;
|
|
242
|
+
}
|
|
243
|
+
export function isInsideCompanySkillsTree(hqRoot, candidatePath) {
|
|
244
|
+
const companiesRoot = path.resolve(hqRoot, "companies");
|
|
245
|
+
const resolved = path.resolve(candidatePath);
|
|
246
|
+
const rel = path.relative(companiesRoot, resolved);
|
|
247
|
+
if (rel === "" || rel.startsWith("..") || path.isAbsolute(rel))
|
|
248
|
+
return false;
|
|
249
|
+
const parts = rel.split(path.sep);
|
|
250
|
+
return parts.length >= 2 && parts[1] === "skills";
|
|
251
|
+
}
|
|
252
|
+
export function resolveSkillMarkdownPath(target, cwd) {
|
|
253
|
+
let filePath = path.resolve(cwd, target);
|
|
254
|
+
if (fs.existsSync(filePath) && fs.statSync(filePath).isDirectory()) {
|
|
255
|
+
filePath = path.join(filePath, "SKILL.md");
|
|
256
|
+
}
|
|
257
|
+
return filePath;
|
|
258
|
+
}
|
|
259
|
+
export function assertStagedOutputPath(hqRoot, outputPath) {
|
|
260
|
+
const resolved = path.resolve(outputPath);
|
|
261
|
+
if (isInsideCompanySkillsTree(hqRoot, resolved)) {
|
|
262
|
+
throw localSkillError(`Stamped output '${resolved}' is inside companies/<company>/skills/. Pass a proposal-lane path outside the canonical skill tree.`);
|
|
263
|
+
}
|
|
264
|
+
return resolved;
|
|
265
|
+
}
|
|
266
|
+
export function assertSha256HexMatch(actualHex, expectedHex) {
|
|
267
|
+
const want = expectedHex.trim().toLowerCase();
|
|
268
|
+
if (!SHA256_HEX_PATTERN.test(want)) {
|
|
269
|
+
throw localSkillError("--expected-sha256 must be a 64-character hex SHA-256 digest.");
|
|
270
|
+
}
|
|
271
|
+
const got = actualHex.trim().toLowerCase();
|
|
272
|
+
if (!SHA256_HEX_PATTERN.test(got)) {
|
|
273
|
+
throw localSkillError(`Stamped file SHA-256 ${got} does not match --expected-sha256. Canonical skill was not written.`);
|
|
274
|
+
}
|
|
275
|
+
if (!timingSafeEqual(Buffer.from(got, "hex"), Buffer.from(want, "hex"))) {
|
|
276
|
+
throw localSkillError(`Stamped file SHA-256 ${got} does not match --expected-sha256. Canonical skill was not written.`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
export function assertRegisteredSkillResponse(registered) {
|
|
280
|
+
if (typeof registered.skillUid !== "string" ||
|
|
281
|
+
!SKILL_UID_PATTERN.test(registered.skillUid) ||
|
|
282
|
+
typeof registered.content !== "string" ||
|
|
283
|
+
parseSkillUid(registered.content) !== registered.skillUid) {
|
|
284
|
+
throw new Error("The server returned an invalid skill registration response; the local file was not changed.");
|
|
285
|
+
}
|
|
286
|
+
return { skillUid: registered.skillUid, content: registered.content };
|
|
287
|
+
}
|
|
288
|
+
function skillRecordPath(record) {
|
|
289
|
+
for (const value of [record?.vaultPath, record?.sourcePath, record?.path]) {
|
|
290
|
+
if (typeof value === "string" && value.length > 0)
|
|
291
|
+
return value;
|
|
292
|
+
}
|
|
293
|
+
return undefined;
|
|
294
|
+
}
|
|
295
|
+
export function normalizeLiveSkillVaultPath(rawPath) {
|
|
296
|
+
const normalized = rawPath.replace(/\\/g, "/").replace(/^\/+/, "").replace(/\/+$/, "");
|
|
297
|
+
const match = normalized.match(/(?:^|\/)skills\/([a-z0-9][a-z0-9-]*)(?:\/SKILL\.md)?$/);
|
|
298
|
+
return match ? skillVaultPath(match[1]) : normalized;
|
|
299
|
+
}
|
|
198
300
|
export function mapSkillError(status, body) {
|
|
199
301
|
const server = (typeof body.error === "string" && body.error) ||
|
|
200
302
|
(typeof body.message === "string" && body.message) ||
|
|
@@ -322,6 +424,31 @@ export function skillApiError(status, body, opts = {}) {
|
|
|
322
424
|
}
|
|
323
425
|
return new Error(message);
|
|
324
426
|
}
|
|
427
|
+
function realConfirm(message) {
|
|
428
|
+
const rl = readline.createInterface({
|
|
429
|
+
input: process.stdin,
|
|
430
|
+
output: process.stdout,
|
|
431
|
+
});
|
|
432
|
+
return new Promise((resolve) => {
|
|
433
|
+
rl.question(`${message} [y/N] `, (answer) => {
|
|
434
|
+
rl.close();
|
|
435
|
+
resolve(/^y(es)?$/i.test(answer.trim()));
|
|
436
|
+
});
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Resolve a delete target: a `skl_…` uid, a SKILL.md path or its directory, or
|
|
441
|
+
* a bare skill slug under `companies/<company>/skills/<slug>/`.
|
|
442
|
+
*/
|
|
443
|
+
export function resolveDeleteTarget(target, cwd, hqRoot, companySlug) {
|
|
444
|
+
if (SKILL_UID_PATTERN.test(target))
|
|
445
|
+
return target;
|
|
446
|
+
const asPath = path.resolve(cwd, target);
|
|
447
|
+
if (!fs.existsSync(asPath) && SKILL_SLUG_PATTERN.test(target)) {
|
|
448
|
+
return resolveSkillUid(canonicalCompanySkillPath(hqRoot, companySlug, target), cwd);
|
|
449
|
+
}
|
|
450
|
+
return resolveSkillUid(target, cwd);
|
|
451
|
+
}
|
|
325
452
|
export function registerSkillCommand(program, deps = {}) {
|
|
326
453
|
const ensureToken = deps.ensureToken ?? ensureCognitoToken;
|
|
327
454
|
const apiFetch = deps.apiFetch ?? vaultApiFetch;
|
|
@@ -329,9 +456,11 @@ export function registerSkillCommand(program, deps = {}) {
|
|
|
329
456
|
const hqRoot = deps.hqRoot ?? DEFAULT_HQ_ROOT;
|
|
330
457
|
const syncFile = deps.syncFile ?? defaultSyncFile;
|
|
331
458
|
const surfaceSkillFn = deps.surfaceSkillFn ?? surfaceCompanySkill;
|
|
459
|
+
const confirm = deps.confirm ?? realConfirm;
|
|
460
|
+
const resolveCompanyUid = deps.resolveCompanyUid ?? getCompanyUid;
|
|
332
461
|
const skill = program
|
|
333
462
|
.command("skill")
|
|
334
|
-
.description("Create
|
|
463
|
+
.description("Create, stage, promote, and discuss company skills")
|
|
335
464
|
.option("--company <slug>", "Company slug (defaults to the active company)")
|
|
336
465
|
.option("--hq-root <path>", "Local HQ root", hqRoot);
|
|
337
466
|
skill
|
|
@@ -391,7 +520,7 @@ export function registerSkillCommand(program, deps = {}) {
|
|
|
391
520
|
path: `/v1/files/skills/company/${encodeURIComponent(companySlug)}/register`,
|
|
392
521
|
method: "POST",
|
|
393
522
|
body: {
|
|
394
|
-
path:
|
|
523
|
+
path: skillVaultPath(slug),
|
|
395
524
|
content: localContent,
|
|
396
525
|
},
|
|
397
526
|
});
|
|
@@ -401,13 +530,8 @@ export function registerSkillCommand(program, deps = {}) {
|
|
|
401
530
|
machineIdentity: isMachineIdentity(),
|
|
402
531
|
});
|
|
403
532
|
}
|
|
404
|
-
const
|
|
405
|
-
|
|
406
|
-
!SKILL_UID_PATTERN.test(registered.skillUid) ||
|
|
407
|
-
typeof registered.content !== "string" ||
|
|
408
|
-
parseSkillUid(registered.content) !== registered.skillUid) {
|
|
409
|
-
throw new Error("The server returned an invalid skill registration response; the local file was not changed.");
|
|
410
|
-
}
|
|
533
|
+
const payload = (await response.json());
|
|
534
|
+
const registered = assertRegisteredSkillResponse(payload);
|
|
411
535
|
writeSkillFileAtomically(filePath, registered.content);
|
|
412
536
|
let discoveryStatus = null;
|
|
413
537
|
try {
|
|
@@ -473,15 +597,183 @@ export function registerSkillCommand(program, deps = {}) {
|
|
|
473
597
|
// Sentry rather than filing a crash on its first occurrence.
|
|
474
598
|
throw localSkillError(`Skill ${registered.skillUid} is stamped locally at '${filePath}', but sync aborted because the remote file conflicts.`);
|
|
475
599
|
}
|
|
600
|
+
if (syncResult.planLimit) {
|
|
601
|
+
throw skillUploadRefused(registered.skillUid, filePath, companySlug, syncResult.planLimit);
|
|
602
|
+
}
|
|
476
603
|
}
|
|
477
604
|
console.log(chalk.green(`Skill ready: ${registered.skillUid}`));
|
|
478
605
|
console.log(` File: ${filePath}`);
|
|
479
606
|
console.log(` Discovery: ${discoveryStatus === 0 ? "ready" : "needs attention"}`);
|
|
480
|
-
console.log(
|
|
607
|
+
console.log(payload.accessPolicy === "open"
|
|
481
608
|
? ` Access: Open — every active ${companySlug} member can edit`
|
|
482
609
|
: " Access: preserved existing policy");
|
|
483
610
|
console.log(` Sync: ${opts.sync === false ? "not requested" : "complete"}`);
|
|
484
611
|
});
|
|
612
|
+
skill
|
|
613
|
+
.command("register <slug>")
|
|
614
|
+
.description("Register a company skill to a proposal-lane stamped file without writing the canonical tree")
|
|
615
|
+
.requiredOption("--source <path>", "Caller-authored SKILL.md (or its directory) to send to the server validator")
|
|
616
|
+
.requiredOption("--stamped-output <path>", "Write the complete server-stamped bytes here, outside companies/<company>/skills/")
|
|
617
|
+
.option("--no-canonical-write", "Refuse to write companies/<company>/skills/ (always the register behavior)")
|
|
618
|
+
.option("--no-surface", "Do not create a discovery wrapper (always the register behavior)")
|
|
619
|
+
.option("--no-sync", "Do not upload the skill file (always the register behavior)")
|
|
620
|
+
.action(async (slug, opts) => {
|
|
621
|
+
if (!SKILL_SLUG_PATTERN.test(slug)) {
|
|
622
|
+
throw localSkillError("Skill slug must start with a lowercase letter or number and contain only lowercase letters, numbers, and hyphens.");
|
|
623
|
+
}
|
|
624
|
+
const parentOpts = skill.opts();
|
|
625
|
+
const resolvedRoot = path.resolve(parentOpts.hqRoot ?? hqRoot);
|
|
626
|
+
const companySlug = resolveCompanySlug(parentOpts.company, resolvedRoot);
|
|
627
|
+
canonicalCompanySkillPath(resolvedRoot, companySlug, slug);
|
|
628
|
+
const sourcePath = resolveSkillMarkdownPath(opts.source, cwd());
|
|
629
|
+
if (!fs.existsSync(sourcePath) || !fs.statSync(sourcePath).isFile()) {
|
|
630
|
+
throw localSkillError(`No SKILL.md found at '${opts.source}'. Pass --source <file> or a directory that contains SKILL.md.`);
|
|
631
|
+
}
|
|
632
|
+
const stampedOutputPath = assertStagedOutputPath(resolvedRoot, path.resolve(cwd(), opts.stampedOutput));
|
|
633
|
+
const localContent = fs.readFileSync(sourcePath, "utf8");
|
|
634
|
+
const sourceHash = sha256Hex(localContent);
|
|
635
|
+
const token = await ensureToken();
|
|
636
|
+
const response = await apiFetch({
|
|
637
|
+
token,
|
|
638
|
+
path: `/v1/files/skills/company/${encodeURIComponent(companySlug)}/register`,
|
|
639
|
+
method: "POST",
|
|
640
|
+
body: {
|
|
641
|
+
path: skillVaultPath(slug),
|
|
642
|
+
content: localContent,
|
|
643
|
+
},
|
|
644
|
+
});
|
|
645
|
+
if (!response.ok) {
|
|
646
|
+
const body = (await response.json().catch(() => ({})));
|
|
647
|
+
throw skillApiError(response.status, body, {
|
|
648
|
+
machineIdentity: isMachineIdentity(),
|
|
649
|
+
});
|
|
650
|
+
}
|
|
651
|
+
const registered = assertRegisteredSkillResponse((await response.json()));
|
|
652
|
+
writeSkillFileAtomically(stampedOutputPath, registered.content);
|
|
653
|
+
const stampedHash = sha256Hex(registered.content);
|
|
654
|
+
console.log(chalk.green(`Skill registered (staged): ${registered.skillUid}`));
|
|
655
|
+
console.log(` Source: ${sourcePath}`);
|
|
656
|
+
console.log(` Source SHA-256: ${sourceHash}`);
|
|
657
|
+
console.log(` Stamped output: ${stampedOutputPath}`);
|
|
658
|
+
console.log(` Stamped SHA-256: ${stampedHash}`);
|
|
659
|
+
console.log(" Canonical write: not requested");
|
|
660
|
+
console.log(" Discovery: not requested");
|
|
661
|
+
console.log(" Sync: not requested");
|
|
662
|
+
});
|
|
663
|
+
skill
|
|
664
|
+
.command("promote <slug>")
|
|
665
|
+
.description("Copy independently-cleared stamped bytes into the canonical skill path after SHA-256 and skill_uid checks")
|
|
666
|
+
.requiredOption("--from <path>", "Independently-cleared stamped SKILL.md (or its directory)")
|
|
667
|
+
.requiredOption("--expected-sha256 <hex>", "SHA-256 of the exact stamped file bytes that were cleared")
|
|
668
|
+
.option("--reviewed-update", "Replace an existing canonical SKILL.md whose bytes differ from the stamped file")
|
|
669
|
+
.option("--no-sync", "Promote locally without uploading the canonical file")
|
|
670
|
+
.action(async (slug, opts) => {
|
|
671
|
+
if (!SKILL_SLUG_PATTERN.test(slug)) {
|
|
672
|
+
throw localSkillError("Skill slug must start with a lowercase letter or number and contain only lowercase letters, numbers, and hyphens.");
|
|
673
|
+
}
|
|
674
|
+
const parentOpts = skill.opts();
|
|
675
|
+
const resolvedRoot = path.resolve(parentOpts.hqRoot ?? hqRoot);
|
|
676
|
+
const companySlug = resolveCompanySlug(parentOpts.company, resolvedRoot);
|
|
677
|
+
const canonicalPath = canonicalCompanySkillPath(resolvedRoot, companySlug, slug);
|
|
678
|
+
const fromPath = resolveSkillMarkdownPath(opts.from, cwd());
|
|
679
|
+
if (!fs.existsSync(fromPath) || !fs.statSync(fromPath).isFile()) {
|
|
680
|
+
throw localSkillError(`No stamped SKILL.md found at '${opts.from}'. Pass --from <file> or a directory that contains SKILL.md.`);
|
|
681
|
+
}
|
|
682
|
+
const stampedBytes = fs.readFileSync(fromPath);
|
|
683
|
+
assertSha256HexMatch(sha256Hex(stampedBytes), opts.expectedSha256);
|
|
684
|
+
const stampedContent = stampedBytes.toString("utf8");
|
|
685
|
+
const skillUid = parseSkillUid(stampedContent);
|
|
686
|
+
if (!skillUid) {
|
|
687
|
+
throw localSkillError(`The stamped SKILL.md at '${fromPath}' has no registered skill_uid. Canonical skill was not written.`);
|
|
688
|
+
}
|
|
689
|
+
const token = await ensureToken();
|
|
690
|
+
const companyUid = await resolveCompanyUid(token, companySlug);
|
|
691
|
+
const detail = await apiFetch({
|
|
692
|
+
token,
|
|
693
|
+
path: `/v1/skills/${encodeURIComponent(companyUid)}/${encodeURIComponent(skillUid)}`,
|
|
694
|
+
method: "GET",
|
|
695
|
+
});
|
|
696
|
+
if (!detail.ok) {
|
|
697
|
+
const body = (await detail.json().catch(() => ({})));
|
|
698
|
+
throw skillApiError(detail.status, body, {
|
|
699
|
+
machineIdentity: isMachineIdentity(),
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
const { skill: record } = (await detail.json());
|
|
703
|
+
if (typeof record?.skillUid === "string" &&
|
|
704
|
+
record.skillUid !== skillUid) {
|
|
705
|
+
throw localSkillError(`Stamped skill_uid ${skillUid} does not match the server registration. Canonical skill was not written.`);
|
|
706
|
+
}
|
|
707
|
+
const recordPath = skillRecordPath(record);
|
|
708
|
+
if (recordPath &&
|
|
709
|
+
normalizeLiveSkillVaultPath(recordPath) !== skillVaultPath(slug)) {
|
|
710
|
+
throw localSkillError(`Stamped skill_uid ${skillUid} is registered at '${recordPath}', not '${skillVaultPath(slug)}'. Canonical skill was not written.`);
|
|
711
|
+
}
|
|
712
|
+
if (fs.existsSync(canonicalPath) && !fs.statSync(canonicalPath).isFile()) {
|
|
713
|
+
throw localSkillError(`Expected a SKILL.md file at '${canonicalPath}'.`);
|
|
714
|
+
}
|
|
715
|
+
const existing = fs.existsSync(canonicalPath)
|
|
716
|
+
? fs.readFileSync(canonicalPath)
|
|
717
|
+
: null;
|
|
718
|
+
if (existing && !existing.equals(stampedBytes)) {
|
|
719
|
+
if (opts.reviewedUpdate !== true) {
|
|
720
|
+
throw localSkillError(`Canonical skill '${canonicalPath}' already exists and differs from the stamped file. Re-run with --reviewed-update after that exact change is cleared.`);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
if (!existing || !existing.equals(stampedBytes)) {
|
|
724
|
+
writeSkillFileAtomically(canonicalPath, stampedBytes);
|
|
725
|
+
}
|
|
726
|
+
const legacyPrefix = readCompanyPrefix(resolvedRoot, companySlug);
|
|
727
|
+
let discoveryStatus = null;
|
|
728
|
+
try {
|
|
729
|
+
discoveryStatus = surfaceSkillFn({
|
|
730
|
+
hqRoot: resolvedRoot,
|
|
731
|
+
companySlug,
|
|
732
|
+
skillSlug: slug,
|
|
733
|
+
...(legacyPrefix ? { legacyPrefix } : {}),
|
|
734
|
+
}).status;
|
|
735
|
+
}
|
|
736
|
+
catch (err) {
|
|
737
|
+
console.warn(chalk.yellow(`⚠ Skill promoted, but local discovery failed: ${err instanceof Error ? err.message : String(err)}`));
|
|
738
|
+
}
|
|
739
|
+
if (discoveryStatus !== null && discoveryStatus !== 0) {
|
|
740
|
+
console.warn(chalk.yellow(`⚠ Skill promoted, but local discovery exited ${discoveryStatus}. Run 'hq skill --company ${companySlug} create ${slug} --surface-only' to retry without another registration request.`));
|
|
741
|
+
}
|
|
742
|
+
if (opts.sync !== false) {
|
|
743
|
+
let syncResult;
|
|
744
|
+
try {
|
|
745
|
+
syncResult = await syncFile({
|
|
746
|
+
filePath: canonicalPath,
|
|
747
|
+
companySlug,
|
|
748
|
+
hqRoot: resolvedRoot,
|
|
749
|
+
token,
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
catch (err) {
|
|
753
|
+
console.warn(chalk.yellow(`⚠ Skill ${skillUid} is stamped locally at '${canonicalPath}', but sync failed.`));
|
|
754
|
+
if (err && typeof err === "object") {
|
|
755
|
+
const diagnostics = vaultAccessDeniedDiagnostics(err, {
|
|
756
|
+
companySlug,
|
|
757
|
+
objectKey: skillVaultPath(slug),
|
|
758
|
+
});
|
|
759
|
+
if (diagnostics)
|
|
760
|
+
stampVaultAccessDenied(err, diagnostics);
|
|
761
|
+
}
|
|
762
|
+
throw err;
|
|
763
|
+
}
|
|
764
|
+
if (syncResult.aborted) {
|
|
765
|
+
throw localSkillError(`Skill ${skillUid} is stamped locally at '${canonicalPath}', but sync aborted because the remote file conflicts.`);
|
|
766
|
+
}
|
|
767
|
+
if (syncResult.planLimit) {
|
|
768
|
+
throw skillUploadRefused(skillUid, canonicalPath, companySlug, syncResult.planLimit);
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
console.log(chalk.green(`Skill promoted: ${skillUid}`));
|
|
772
|
+
console.log(` File: ${canonicalPath}`);
|
|
773
|
+
console.log(` SHA-256: ${sha256Hex(stampedBytes)}`);
|
|
774
|
+
console.log(` Discovery: ${discoveryStatus === 0 ? "ready" : "needs attention"}`);
|
|
775
|
+
console.log(` Sync: ${opts.sync === false ? "not requested" : "complete"}`);
|
|
776
|
+
});
|
|
485
777
|
skill
|
|
486
778
|
.command("propose <target>")
|
|
487
779
|
.description("Post a comment-only improvement for a skill")
|
|
@@ -516,6 +808,53 @@ export function registerSkillCommand(program, deps = {}) {
|
|
|
516
808
|
console.log(` Message: ${posted.body}`);
|
|
517
809
|
console.log(chalk.dim(" Review it in HQ Console → Skills → Improvements"));
|
|
518
810
|
});
|
|
811
|
+
skill
|
|
812
|
+
.command("delete <target>")
|
|
813
|
+
.description("Delete a company skill and all of its files for everyone (skl_… uid, SKILL.md path, or skill slug). Prompts for confirmation unless --yes.")
|
|
814
|
+
.option("-y, --yes", "Skip the confirmation prompt (for scripts)")
|
|
815
|
+
.action(async (target, opts) => {
|
|
816
|
+
const parentOpts = skill.opts();
|
|
817
|
+
const resolvedRoot = path.resolve(parentOpts.hqRoot ?? hqRoot);
|
|
818
|
+
const companySlug = resolveCompanySlug(parentOpts.company, resolvedRoot);
|
|
819
|
+
const skillUid = resolveDeleteTarget(target, cwd(), resolvedRoot, companySlug);
|
|
820
|
+
const token = await ensureToken();
|
|
821
|
+
const companyUid = await resolveCompanyUid(token, companySlug);
|
|
822
|
+
const skillPath = `/v1/skills/${encodeURIComponent(companyUid)}/${encodeURIComponent(skillUid)}`;
|
|
823
|
+
const detail = await apiFetch({ token, path: skillPath, method: "GET" });
|
|
824
|
+
if (!detail.ok) {
|
|
825
|
+
const body = (await detail.json().catch(() => ({})));
|
|
826
|
+
throw skillApiError(detail.status, body, {
|
|
827
|
+
machineIdentity: isMachineIdentity(),
|
|
828
|
+
});
|
|
829
|
+
}
|
|
830
|
+
const { skill: record } = (await detail.json());
|
|
831
|
+
const name = typeof record?.name === "string" ? record.name : skillUid;
|
|
832
|
+
if (opts.yes !== true) {
|
|
833
|
+
if (!process.stdin.isTTY) {
|
|
834
|
+
throw localSkillError(`Refusing to delete '${name}' without confirmation. Re-run with --yes.`);
|
|
835
|
+
}
|
|
836
|
+
const ok = await confirm(`Delete skill '${name}' (${skillUid}) and all of its files for everyone in ${companySlug}? This can't be undone from the CLI.`);
|
|
837
|
+
if (!ok) {
|
|
838
|
+
console.log("Cancelled — nothing was deleted.");
|
|
839
|
+
return;
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
const response = await apiFetch({ token, path: skillPath, method: "DELETE" });
|
|
843
|
+
if (!response.ok) {
|
|
844
|
+
const body = (await response.json().catch(() => ({})));
|
|
845
|
+
throw skillApiError(response.status, body, {
|
|
846
|
+
machineIdentity: isMachineIdentity(),
|
|
847
|
+
});
|
|
848
|
+
}
|
|
849
|
+
const result = (await response.json());
|
|
850
|
+
console.log(chalk.green(`Skill deleted: ${name}`));
|
|
851
|
+
console.log(` Skill: ${skillUid}`);
|
|
852
|
+
console.log(` Files: ${typeof result.filesDeleted === "number" ? result.filesDeleted : 0} removed`);
|
|
853
|
+
if (result.tombstoneIncomplete === true) {
|
|
854
|
+
console.warn(chalk.yellow("⚠ Some synced computers may not be told to remove their copy. Delete it locally if it reappears."));
|
|
855
|
+
}
|
|
856
|
+
console.log(chalk.dim(" Local copies are removed on the next sync (hq sync now)."));
|
|
857
|
+
});
|
|
519
858
|
return skill;
|
|
520
859
|
}
|
|
521
860
|
//# sourceMappingURL=skill.js.map
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
/**
|
|
3
|
+
* `hq staff reset-test-account <email>` — onboarding-test-accounts US-007.
|
|
4
|
+
*
|
|
5
|
+
* Thin CLI wrapper over `POST /v1/admin/test-account/reset` (US-003 dry-run +
|
|
6
|
+
* US-006 execute). Server owns every safety gate; this file owns two operator
|
|
7
|
+
* ergonomics the wire cannot: (1) a LOCAL staff-email preflight so a non-staff
|
|
8
|
+
* caller stops here instead of paying a round trip for the same 403, and (2)
|
|
9
|
+
* the typed-email confirmation prompt for `--execute`, whose value is what the
|
|
10
|
+
* server matches against `plan.target.normalizedEmail` via `confirmEmailMatches`.
|
|
11
|
+
*
|
|
12
|
+
* OQ-003 recommendation: this ships as a subcommand of the existing hq CLI
|
|
13
|
+
* (`hq staff …`) rather than a separate `hq-staff` binary — reuses auth,
|
|
14
|
+
* distribution, and telemetry with zero new plumbing.
|
|
15
|
+
*/
|
|
16
|
+
interface PlanCognitoUser {
|
|
17
|
+
username: string;
|
|
18
|
+
sub: string;
|
|
19
|
+
provider: string;
|
|
20
|
+
email: string;
|
|
21
|
+
}
|
|
22
|
+
interface PlanCompany {
|
|
23
|
+
uid: string;
|
|
24
|
+
slug: string;
|
|
25
|
+
memberCount: number;
|
|
26
|
+
}
|
|
27
|
+
interface Plan {
|
|
28
|
+
target: {
|
|
29
|
+
input: string;
|
|
30
|
+
normalizedEmail: string;
|
|
31
|
+
};
|
|
32
|
+
personUid: string | null;
|
|
33
|
+
cognitoUsers: PlanCognitoUser[];
|
|
34
|
+
ownedCompanies: PlanCompany[];
|
|
35
|
+
personalVault: {
|
|
36
|
+
bucketName: string | null;
|
|
37
|
+
kmsKeyAlias: string | null;
|
|
38
|
+
};
|
|
39
|
+
stripe: {
|
|
40
|
+
customerIds: string[];
|
|
41
|
+
subscriptionState: unknown | null;
|
|
42
|
+
};
|
|
43
|
+
welcomeSeries: {
|
|
44
|
+
present: boolean;
|
|
45
|
+
};
|
|
46
|
+
workMesh: {
|
|
47
|
+
eventCount: number | null;
|
|
48
|
+
note?: string;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
interface StepOutcome {
|
|
52
|
+
ok: boolean;
|
|
53
|
+
skipped?: boolean;
|
|
54
|
+
reason?: string;
|
|
55
|
+
error?: string;
|
|
56
|
+
}
|
|
57
|
+
interface ExecuteResult {
|
|
58
|
+
ok: boolean;
|
|
59
|
+
steps: Record<string, StepOutcome & Record<string, unknown>>;
|
|
60
|
+
counts: {
|
|
61
|
+
stripeDeleted: number;
|
|
62
|
+
welcomeDeleted: number;
|
|
63
|
+
rawTelemetryDeleted: number | null;
|
|
64
|
+
workMeshDeleted: number | null;
|
|
65
|
+
membershipsDeleted: number;
|
|
66
|
+
companiesPurged: number;
|
|
67
|
+
entitiesPurged: number;
|
|
68
|
+
cognitoDeleted: number;
|
|
69
|
+
kms: string;
|
|
70
|
+
invitesDeleted: number;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Same predicate the server's admin gate applies at the FIRST layer
|
|
75
|
+
* (`isStaffEmail` in the vault-service admin handler). Duplicated here so a
|
|
76
|
+
* non-staff caller stops before the round trip; the server remains the
|
|
77
|
+
* authorization boundary (this file could not enforce it if it wanted to).
|
|
78
|
+
*
|
|
79
|
+
* Exact suffix match. `foo@getindigo.ai.evil.test` and `bar@xgetindigo.ai`
|
|
80
|
+
* do not qualify.
|
|
81
|
+
*/
|
|
82
|
+
export declare function isStaffEmail(candidate: unknown): boolean;
|
|
83
|
+
/** Pull the caller email out of a locally cached id_token. */
|
|
84
|
+
export declare function callerEmailFromToken(token: string): string | undefined;
|
|
85
|
+
export type ConfirmFn = (question: string) => Promise<string>;
|
|
86
|
+
export interface RunResetTestAccountParams {
|
|
87
|
+
email: string;
|
|
88
|
+
execute: boolean;
|
|
89
|
+
/** Skip the typed-confirmation prompt on --execute (for scripts). */
|
|
90
|
+
yes?: boolean;
|
|
91
|
+
}
|
|
92
|
+
export interface RunResetTestAccountDeps {
|
|
93
|
+
prompt?: ConfirmFn;
|
|
94
|
+
/** Whether to treat this session as an interactive TTY. Defaults to `process.stdin.isTTY`. */
|
|
95
|
+
isTty?: boolean;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Print a compact dry-run plan. Kept flat so the operator can eyeball what the
|
|
99
|
+
* executor would touch without a JSON pretty-printer in the loop.
|
|
100
|
+
*/
|
|
101
|
+
export declare function renderPlan(plan: Plan): string;
|
|
102
|
+
/**
|
|
103
|
+
* One-line-per-step summary of the executor's result. AC calls for "per-step
|
|
104
|
+
* counts, ok/failed".
|
|
105
|
+
*/
|
|
106
|
+
export declare function renderExecuteSummary(result: ExecuteResult): string;
|
|
107
|
+
export declare function runResetTestAccount(params: RunResetTestAccountParams, deps?: RunResetTestAccountDeps): Promise<void>;
|
|
108
|
+
export declare function registerResetTestAccountCommand(staff: Command, deps?: RunResetTestAccountDeps): Command;
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=reset-test-account.d.ts.map
|