@indigoai-us/hq-cli 5.312.2-beta.0 → 5.314.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 +1 -4293
- package/assets/scaffold/core/scripts/checkpoint-stop-gate.sh +43 -281
- package/assets/scaffold/core/scripts/hook-lib.sh +50 -345
- package/assets/scaffold/core/scripts/hq-session.sh +23 -184
- package/assets/scaffold/core/scripts/lib/session-id.sh +2 -3
- package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +1 -1
- package/assets/scaffold/core/scripts/lib/work-mesh-enqueue.sh +1 -2
- package/assets/scaffold/core/scripts/qmd-reindex-after-sync.sh +87 -10
- package/assets/scaffold/core/scripts/rebuild-company-knowledge-index.sh +3 -36
- package/assets/scaffold/core/scripts/rebuild-projects-index.sh +12 -99
- package/assets/scaffold/core/scripts/token-usage-report.sh +20 -81
- package/dist/bin/hq-auth-refresh.d.ts +0 -2
- package/dist/bin/hq-auth-refresh.js +6 -12
- package/dist/commands/__fixtures__/access-vault.d.ts +0 -2
- package/dist/commands/__fixtures__/access-vault.js +1 -1
- package/dist/commands/_patterns.d.ts +0 -16
- package/dist/commands/_patterns.js +3 -20
- package/dist/commands/access.d.ts +1 -2
- package/dist/commands/access.js +49 -58
- package/dist/commands/agents.d.ts +4 -106
- package/dist/commands/agents.js +45 -924
- package/dist/commands/auth.d.ts +0 -1
- package/dist/commands/auth.js +19 -189
- package/dist/commands/billing.d.ts +0 -3
- package/dist/commands/billing.js +1 -6
- package/dist/commands/channels.js +1 -56
- package/dist/commands/cloud-demote.js +2 -3
- package/dist/commands/cloud-provision.d.ts +0 -14
- package/dist/commands/cloud-provision.js +58 -232
- package/dist/commands/cloud.d.ts +15 -49
- package/dist/commands/cloud.js +122 -358
- package/dist/commands/company-transfer.d.ts +28 -4
- package/dist/commands/company-transfer.js +49 -5
- package/dist/commands/company.js +3 -66
- package/dist/commands/core-checkpoint.d.ts +9 -19
- package/dist/commands/core-checkpoint.js +37 -301
- package/dist/commands/core.d.ts +0 -4
- package/dist/commands/core.js +80 -270
- package/dist/commands/crm.js +3 -52
- package/dist/commands/db-provision.js +4 -4
- package/dist/commands/db-sql.js +21 -7
- package/dist/commands/dm.d.ts +12 -119
- package/dist/commands/dm.js +38 -388
- package/dist/commands/doctor.d.ts +0 -12
- package/dist/commands/doctor.js +12 -158
- package/dist/commands/feedback.d.ts +0 -6
- package/dist/commands/feedback.js +37 -86
- package/dist/commands/files-browse.d.ts +12 -32
- package/dist/commands/files-browse.js +60 -176
- package/dist/commands/files.d.ts +0 -17
- package/dist/commands/files.js +47 -300
- package/dist/commands/group-grants.js +2 -3
- package/dist/commands/groups.js +5 -6
- package/dist/commands/index-cmd.d.ts +1 -19
- package/dist/commands/index-cmd.js +7 -74
- package/dist/commands/integrations-api.d.ts +10 -15
- package/dist/commands/integrations-api.js +22 -27
- package/dist/commands/integrations-connect.d.ts +13 -51
- package/dist/commands/integrations-connect.js +71 -86
- package/dist/commands/integrations-core.d.ts +6 -6
- package/dist/commands/integrations-core.js +11 -25
- package/dist/commands/integrations-import.d.ts +1 -1
- package/dist/commands/integrations-import.js +24 -43
- package/dist/commands/integrations-manage.js +13 -20
- package/dist/commands/integrations.d.ts +0 -8
- package/dist/commands/integrations.js +7 -94
- package/dist/commands/login.js +6 -49
- package/dist/commands/mcp-registration.d.ts +25 -32
- package/dist/commands/mcp-registration.js +23 -256
- package/dist/commands/mcp-status.js +0 -1
- package/dist/commands/meetings.js +34 -55
- package/dist/commands/members.js +1 -5
- package/dist/commands/mesh.d.ts +0 -11
- package/dist/commands/mesh.js +76 -1086
- package/dist/commands/onboard-identity-guard.d.ts +1 -1
- package/dist/commands/onboard.js +5 -24
- package/dist/commands/pack-install.js +1 -3
- package/dist/commands/packs.js +1 -11
- package/dist/commands/people.d.ts +0 -4
- package/dist/commands/people.js +3 -37
- package/dist/commands/publish.d.ts +1 -8
- package/dist/commands/publish.js +4 -17
- package/dist/commands/reindex.js +6 -56
- package/dist/commands/rescue.d.ts +0 -4
- package/dist/commands/rescue.js +17 -27
- package/dist/commands/run.js +4 -18
- package/dist/commands/safe-extract.d.ts +2 -11
- package/dist/commands/safe-extract.js +8 -36
- package/dist/commands/scaffold-fast.d.ts +41 -0
- package/dist/commands/scaffold-fast.js +57 -0
- package/dist/commands/secrets.d.ts +2 -20
- package/dist/commands/secrets.js +71 -175
- package/dist/commands/skill.d.ts +4 -35
- package/dist/commands/skill.js +18 -357
- package/dist/commands/sync-mode.d.ts +0 -11
- package/dist/commands/sync-mode.js +0 -30
- package/dist/commands/sync-narrow.js +5 -36
- package/dist/commands/team-sync.js +10 -71
- package/dist/commands/update.js +0 -6
- package/dist/commands/whoami.d.ts +0 -22
- package/dist/commands/whoami.js +4 -137
- package/dist/commands/workers.d.ts +14 -2
- package/dist/commands/workers.js +10 -7
- package/dist/fast-core.d.ts +7 -6
- package/dist/fast-core.js +24 -80
- package/dist/index.d.ts +4 -3
- package/dist/index.js +9 -59
- package/dist/lazy-commands.d.ts +44 -20
- package/dist/lazy-commands.js +58 -60
- package/dist/lib/company-skill-wrapper.d.ts +0 -1
- package/dist/lib/company-skill-wrapper.js +29 -121
- package/dist/lib/core-utils/codex-skill-bridge.d.ts +1 -2
- package/dist/lib/core-utils/qmd-reindex-after-sync.d.ts +1 -14
- package/dist/lib/core-utils/qmd-reindex-after-sync.js +17 -101
- package/dist/lib/core-utils/soft-timeout.js +1 -1
- package/dist/lib/core-utils/timeout-guard.d.ts +3 -3
- package/dist/lib/core-utils/timeout-guard.js +13 -28
- package/dist/lib/core-utils/token-usage-report.js +3 -17
- package/dist/lib/db/control-plane.js +0 -6
- package/dist/lib/db/local.d.ts +5 -0
- package/dist/lib/db/local.js +1 -1
- package/dist/lib/db/migrate.d.ts +12 -0
- 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 +10 -0
- package/dist/lib/db/sql.js +8 -4
- 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/checks/claude-wiring.js +1 -70
- package/dist/lib/doctor/checks/codex-wiring.d.ts +4 -0
- package/dist/lib/doctor/checks/codex-wiring.js +35 -3
- package/dist/lib/doctor/checks/grok-wiring.js +34 -1
- package/dist/lib/doctor/checks/integrations.js +0 -11
- package/dist/lib/doctor/checks/runtime-health.d.ts +17 -4
- package/dist/lib/doctor/checks/runtime-health.js +7 -20
- package/dist/lib/doctor/checks/sync-health.d.ts +0 -21
- package/dist/lib/doctor/checks/sync-health.js +2 -72
- package/dist/lib/doctor/checks/work-context.js +6 -12
- package/dist/lib/doctor/compat.d.ts +16 -0
- package/dist/lib/doctor/compat.js +3 -4
- package/dist/lib/doctor/deep/effects.js +3 -1
- package/dist/lib/doctor/deep/executor.d.ts +10 -4
- package/dist/lib/doctor/deep/executor.js +1 -1
- package/dist/lib/doctor/deep/parity.d.ts +29 -2
- package/dist/lib/doctor/deep/parity.js +7 -7
- package/dist/lib/doctor/deep/sandbox.d.ts +25 -7
- package/dist/lib/doctor/deep/sandbox.js +7 -5
- package/dist/lib/doctor/fix/apply.d.ts +8 -79
- package/dist/lib/doctor/fix/apply.js +80 -292
- package/dist/lib/doctor/fix/remediation.d.ts +6 -14
- package/dist/lib/doctor/fix/remediation.js +9 -49
- package/dist/lib/doctor/fixtures/schema.js +3 -1
- package/dist/lib/doctor/json-output.d.ts +1 -17
- package/dist/lib/doctor/json-output.js +2 -7
- package/dist/lib/doctor/platform.d.ts +26 -0
- package/dist/lib/doctor/platform.js +5 -5
- package/dist/lib/doctor/registry.d.ts +0 -14
- package/dist/lib/doctor/registry.js +0 -71
- package/dist/lib/doctor/report.js +1 -1
- package/dist/lib/doctor/types.d.ts +0 -5
- package/dist/lib/doctor/types.js +0 -20
- package/dist/lib/flag-registry-worker.js +1 -12
- package/dist/lib/flag-registry.d.ts +6 -26
- package/dist/lib/flag-registry.js +16 -133
- package/dist/lib/index-render/companies.d.ts +1 -4
- package/dist/lib/index-render/companies.js +3 -66
- package/dist/lib/index-render/company-knowledge.js +17 -80
- package/dist/lib/index-render/index.d.ts +0 -1
- package/dist/lib/index-render/index.js +1 -2
- package/dist/lib/index-render/projects.js +5 -82
- package/dist/lib/index-render/shared.d.ts +1 -13
- package/dist/lib/index-render/shared.js +2 -41
- package/dist/lib/mesh/api.d.ts +10 -103
- package/dist/lib/mesh/api.js +64 -334
- package/dist/lib/mesh/client.d.ts +2 -3
- package/dist/lib/mesh/client.js +2 -3
- package/dist/lib/mesh/live/backfill-held.d.ts +16 -67
- package/dist/lib/mesh/live/backfill-held.js +61 -415
- package/dist/lib/mesh/live/backoff.d.ts +2 -2
- package/dist/lib/mesh/live/backoff.js +3 -16
- package/dist/lib/mesh/live/daemon/board-refresh.d.ts +1 -7
- package/dist/lib/mesh/live/daemon/board-refresh.js +30 -78
- package/dist/lib/mesh/live/daemon/credentials.d.ts +10 -64
- package/dist/lib/mesh/live/daemon/credentials.js +20 -270
- package/dist/lib/mesh/live/daemon/doctor.d.ts +0 -51
- package/dist/lib/mesh/live/daemon/doctor.js +6 -180
- package/dist/lib/mesh/live/daemon/index.d.ts +10 -13
- package/dist/lib/mesh/live/daemon/index.js +6 -7
- package/dist/lib/mesh/live/daemon/install.d.ts +1 -255
- package/dist/lib/mesh/live/daemon/install.js +13 -811
- package/dist/lib/mesh/live/daemon/paths.d.ts +0 -2
- package/dist/lib/mesh/live/daemon/paths.js +0 -2
- package/dist/lib/mesh/live/daemon/presence.d.ts +5 -24
- package/dist/lib/mesh/live/daemon/presence.js +10 -79
- package/dist/lib/mesh/live/daemon/run.d.ts +2 -48
- package/dist/lib/mesh/live/daemon/run.js +33 -485
- package/dist/lib/mesh/live/daemon/state.d.ts +2 -19
- package/dist/lib/mesh/live/daemon/state.js +2 -34
- package/dist/lib/mesh/live/daemon/transcript-watch.d.ts +9 -45
- package/dist/lib/mesh/live/daemon/transcript-watch.js +31 -227
- package/dist/lib/mesh/live/emit-client.d.ts +0 -8
- package/dist/lib/mesh/live/emit-client.js +8 -23
- package/dist/lib/mesh/live/emit-evidence.d.ts +0 -19
- package/dist/lib/mesh/live/emit-evidence.js +2 -20
- package/dist/lib/mesh/live/emit.d.ts +0 -9
- package/dist/lib/mesh/live/emit.js +2 -28
- package/dist/lib/mesh/live/enqueue.d.ts +0 -5
- package/dist/lib/mesh/live/enqueue.js +0 -19
- package/dist/lib/mesh/live/flush.d.ts +5 -17
- package/dist/lib/mesh/live/flush.js +38 -391
- package/dist/lib/mesh/live/format-spool-line.d.ts +2 -5
- package/dist/lib/mesh/live/format-spool-line.js +0 -10
- package/dist/lib/mesh/live/paths.d.ts +0 -2
- package/dist/lib/mesh/live/paths.js +0 -4
- package/dist/lib/mesh/live/session-event.schema.json +1 -24
- package/dist/lib/mesh/live/session-events-client.d.ts +0 -2
- package/dist/lib/mesh/live/session-events-client.js +0 -26
- package/dist/lib/mesh/live/spool.d.ts +0 -19
- package/dist/lib/mesh/live/spool.js +3 -269
- 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/plan-limit-nag.d.ts +6 -102
- package/dist/lib/plan-limit-nag.js +43 -348
- package/dist/lib/scan-packages/index.d.ts +0 -2
- package/dist/lib/scan-packages/index.js +6 -168
- package/dist/lib/search-index/background.d.ts +1 -8
- package/dist/lib/search-index/background.js +200 -55
- package/dist/lib/search-index/index.d.ts +0 -12
- package/dist/lib/search-index/index.js +7 -153
- package/dist/lib/work-context/company.d.ts +20 -22
- package/dist/lib/work-context/company.js +40 -124
- package/dist/lib/work-context/config.d.ts +11 -58
- package/dist/lib/work-context/config.js +83 -334
- package/dist/lib/work-context/contract.d.ts +0 -10
- package/dist/lib/work-context/index.d.ts +25 -0
- package/dist/lib/work-context/index.js +21 -0
- package/dist/lib/work-context/outbox.d.ts +1 -14
- package/dist/lib/work-context/outbox.js +1 -87
- package/dist/lib/work-context/reconcile.d.ts +0 -15
- package/dist/lib/work-context/reconcile.js +25 -380
- package/dist/lib/work-context/state.d.ts +10 -93
- package/dist/lib/work-context/state.js +29 -342
- package/dist/lib/workers-registry/index.js +8 -62
- package/dist/main.d.ts +0 -12
- package/dist/main.js +73 -266
- package/dist/node-network-compat.d.ts +30 -2
- package/dist/node-network-compat.js +51 -4
- package/dist/node-preflight.d.ts +1 -7
- package/dist/node-preflight.js +5 -5
- package/dist/register-all.d.ts +29 -4
- package/dist/register-all.js +233 -4
- package/dist/run/discover-schemas.d.ts +1 -2
- package/dist/run/env-graph-guard.d.ts +2 -2
- package/dist/run/env-graph-guard.js +2 -5
- package/dist/run/hq-plugin.d.ts +0 -4
- package/dist/run/hq-plugin.js +8 -36
- package/dist/sentry-before-send.js +0 -80
- package/dist/sentry.d.ts +2 -8
- package/dist/sentry.js +13 -117
- package/dist/startup-registration.d.ts +2 -26
- package/dist/startup-registration.js +15 -116
- package/dist/utils/cli-telemetry.d.ts +1 -74
- package/dist/utils/cli-telemetry.js +7 -434
- package/dist/utils/client-health.d.ts +4 -0
- package/dist/utils/client-health.js +2 -2
- package/dist/utils/cognito-session.d.ts +0 -71
- package/dist/utils/cognito-session.js +27 -481
- package/dist/utils/contribution-table.d.ts +1 -1
- package/dist/utils/environmental-error.d.ts +0 -18
- package/dist/utils/environmental-error.js +7 -240
- package/dist/utils/expected-cli-error.d.ts +0 -2
- package/dist/utils/expected-cli-error.js +0 -4
- package/dist/utils/feedback-diagnostics.d.ts +1 -2
- package/dist/utils/feedback-log-bundle.d.ts +26 -51
- package/dist/utils/feedback-log-bundle.js +31 -211
- package/dist/utils/feedback-logs.d.ts +47 -18
- package/dist/utils/feedback-logs.js +21 -50
- package/dist/utils/feedback-screenshots.d.ts +1 -0
- package/dist/utils/feedback-screenshots.js +1 -1
- package/dist/utils/hq-roots.d.ts +2 -25
- package/dist/utils/hq-roots.js +7 -67
- package/dist/utils/incomplete-install-error.d.ts +19 -87
- package/dist/utils/incomplete-install-error.js +68 -319
- package/dist/utils/install-tree-torn.d.ts +24 -260
- package/dist/utils/install-tree-torn.js +51 -998
- package/dist/utils/large-file-guard.d.ts +10 -0
- package/dist/utils/large-file-guard.js +1 -1
- package/dist/utils/local-files-overview.d.ts +8 -4
- package/dist/utils/local-files-overview.js +7 -48
- package/dist/utils/login-provider.d.ts +0 -7
- package/dist/utils/login-provider.js +0 -34
- package/dist/utils/pack-contributions.d.ts +9 -2
- package/dist/utils/pack-contributions.js +43 -6
- package/dist/utils/package-root-diagnostics.d.ts +1 -1
- package/dist/utils/people.d.ts +11 -7
- package/dist/utils/people.js +20 -5
- package/dist/utils/plan-gate-error.d.ts +10 -52
- package/dist/utils/plan-gate-error.js +41 -364
- package/dist/utils/qmd-model-download-error.d.ts +8 -0
- package/dist/utils/qmd-model-download-error.js +1 -1
- package/dist/utils/qmd-query-document-error.d.ts +6 -0
- package/dist/utils/qmd-query-document-error.js +1 -1
- package/dist/utils/redact-error-text.js +1 -2
- package/dist/utils/run-bundled-script.d.ts +0 -6
- package/dist/utils/run-bundled-script.js +4 -117
- package/dist/utils/secrets-cache.d.ts +3 -7
- package/dist/utils/secrets-cache.js +14 -162
- package/dist/utils/self-update.d.ts +1 -34
- package/dist/utils/self-update.js +42 -660
- package/dist/utils/sentry-fingerprint.d.ts +1 -23
- package/dist/utils/sentry-fingerprint.js +31 -223
- package/dist/utils/team-upgrade.d.ts +1 -1
- package/dist/utils/team-upgrade.js +3 -4
- package/dist/utils/vault-api.d.ts +1 -21
- package/dist/utils/vault-api.js +84 -251
- package/dist/utils/version-check.d.ts +1 -11
- package/dist/utils/version-check.js +3 -32
- package/dist/utils/version-gate.d.ts +17 -101
- package/dist/utils/version-gate.js +70 -645
- package/dist/utils/windows-spawn.d.ts +0 -6
- package/dist/utils/windows-spawn.js +0 -37
- package/package.json +8 -20
- package/README.md +0 -113
- package/assets/bot-workers/setup/context/USER-GUIDE.md +0 -404
- package/assets/bot-workers/setup/context/quick-reference.md +0 -199
- package/assets/bot-workers/setup/skills/agents-and-team.md +0 -167
- package/assets/bot-workers/setup/skills/explain-hq.md +0 -35
- package/assets/bot-workers/setup/skills/first-company.md +0 -74
- package/assets/bot-workers/setup/skills/joining-a-team.md +0 -125
- package/assets/bot-workers/setup/skills/pricing.md +0 -92
- package/assets/bot-workers/setup/skills/standing-help.md +0 -81
- package/assets/bot-workers/setup/skills/your-business.md +0 -281
- package/assets/bot-workers/setup/worker.yaml +0 -791
- package/assets/lanes-hooks/hq-lanes-drain.json +0 -15
- package/assets/lanes-hooks/hq-lanes-drain.mjs +0 -275
- package/assets/lanes-hooks/hq-lanes-drain.sh +0 -21
- package/assets/lanes-reconcile/hq-lanes-reconcile.service +0 -11
- package/assets/lanes-reconcile/hq-lanes-reconcile.timer +0 -12
- package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +0 -485
- package/assets/scaffold/core/scripts/audit-log.sh +0 -384
- package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +0 -171
- package/assets/scaffold/core/scripts/eval-trigger.sh +0 -193
- package/assets/scaffold/core/scripts/git-pack-extension-check.sh +0 -164
- package/assets/scaffold/core/scripts/handoff-finalize.sh +0 -688
- package/assets/scaffold/core/scripts/handoff-open-steps.sh +0 -81
- package/assets/scaffold/core/scripts/handoff-post.sh +0 -252
- package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +0 -307
- package/assets/scaffold/core/scripts/hq-delegate-grant.sh +0 -252
- package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +0 -99
- package/assets/scaffold/core/scripts/hq-delegate-publish.sh +0 -91
- package/assets/scaffold/core/scripts/hq-delegate-repo.sh +0 -158
- package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +0 -145
- package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +0 -129
- package/assets/scaffold/core/scripts/hq-delegate-send.sh +0 -259
- package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +0 -175
- package/assets/scaffold/core/scripts/hq-delegate-verify.sh +0 -238
- package/assets/scaffold/core/scripts/hq-dm-bind.sh +0 -585
- package/assets/scaffold/core/scripts/hq-job-notify.sh +0 -389
- package/assets/scaffold/core/scripts/hq-job-probe.sh +0 -835
- package/assets/scaffold/core/scripts/hq-job-remediate.sh +0 -359
- package/assets/scaffold/core/scripts/hq-job-run.sh +0 -1025
- package/assets/scaffold/core/scripts/hq-pin.sh +0 -118
- package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +0 -310
- package/assets/scaffold/core/scripts/jobs-validate.sh +0 -451
- package/assets/scaffold/core/scripts/knowledge-prefs.sh +0 -55
- package/assets/scaffold/core/scripts/lib/portable.sh +0 -211
- package/assets/scaffold/core/scripts/lib/secret-patterns.sh +0 -58
- package/assets/scaffold/core/scripts/ontology-audience-grant.sh +0 -81
- package/assets/scaffold/core/scripts/ontology-brief.mjs +0 -93
- package/assets/scaffold/core/scripts/ontology-candidate.sh +0 -100
- package/assets/scaffold/core/scripts/ontology-garden.mjs +0 -238
- package/assets/scaffold/core/scripts/ontology-source-worklist.sh +0 -79
- package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +0 -834
- package/assets/scaffold/core/scripts/policy-age-report.sh +0 -156
- package/assets/scaffold/core/scripts/policy-retire.sh +0 -199
- package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +0 -40
- package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +0 -32
- package/assets/scaffold/core/scripts/refresh-vault-access.sh +0 -188
- package/assets/scaffold/core/scripts/resolve-company.sh +0 -199
- package/assets/scaffold/core/scripts/resume-thread-lock.sh +0 -285
- package/assets/scaffold/core/scripts/source-yaml-validate.sh +0 -36
- package/assets/scaffold/core/scripts/verify-story-deliverables.sh +0 -148
- package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +0 -152
- package/assets/scaffold/core/scripts/worktree-gc.sh +0 -362
- package/contracts/preflight/v1/fixtures.json +0 -87
- package/contracts/preflight/v1/schema.json +0 -58
- package/dist/command-catalog.generated.d.ts +0 -10655
- package/dist/command-catalog.generated.js +0 -13737
- package/dist/command-registration-plan.d.ts +0 -474
- package/dist/command-registration-plan.js +0 -136
- package/dist/commands/agent-enroll.d.ts +0 -146
- package/dist/commands/agent-enroll.js +0 -401
- package/dist/commands/agent-inbox.d.ts +0 -9
- package/dist/commands/agent-inbox.js +0 -102
- package/dist/commands/agent-kit.d.ts +0 -87
- package/dist/commands/agent-kit.js +0 -480
- package/dist/commands/agent-mcp.d.ts +0 -24
- package/dist/commands/agent-mcp.js +0 -127
- package/dist/commands/agent-probe.d.ts +0 -77
- package/dist/commands/agent-probe.js +0 -335
- package/dist/commands/agent.d.ts +0 -13
- package/dist/commands/agent.js +0 -40
- package/dist/commands/billing-sponsor.d.ts +0 -83
- package/dist/commands/billing-sponsor.js +0 -344
- package/dist/commands/bot-companies.d.ts +0 -40
- package/dist/commands/bot-companies.js +0 -64
- package/dist/commands/bot-continuity.d.ts +0 -28
- package/dist/commands/bot-continuity.js +0 -68
- package/dist/commands/bot-jobs.d.ts +0 -127
- package/dist/commands/bot-jobs.js +0 -454
- package/dist/commands/bot.d.ts +0 -278
- package/dist/commands/bot.js +0 -1982
- package/dist/commands/cloud-retire.d.ts +0 -51
- package/dist/commands/cloud-retire.js +0 -154
- package/dist/commands/core-audit-log-native.d.ts +0 -9
- package/dist/commands/core-audit-log-native.js +0 -257
- package/dist/commands/core-checkpoint-gate-setting.d.ts +0 -59
- package/dist/commands/core-checkpoint-gate-setting.js +0 -163
- package/dist/commands/core-checkpoint-stop-gate-native.d.ts +0 -34
- package/dist/commands/core-checkpoint-stop-gate-native.js +0 -725
- package/dist/commands/core-command-catalog.d.ts +0 -34
- package/dist/commands/core-command-catalog.js +0 -62
- package/dist/commands/core-company-index-scope-flag.d.ts +0 -3
- package/dist/commands/core-company-index-scope-flag.js +0 -6
- package/dist/commands/core-delegate-w1b.d.ts +0 -10
- package/dist/commands/core-delegate-w1b.js +0 -1219
- package/dist/commands/core-delegate.d.ts +0 -46
- package/dist/commands/core-delegate.js +0 -1040
- package/dist/commands/core-dm-bind-native.d.ts +0 -32
- package/dist/commands/core-dm-bind-native.js +0 -668
- package/dist/commands/core-git-pack-extension-check-native.d.ts +0 -22
- package/dist/commands/core-git-pack-extension-check-native.js +0 -190
- package/dist/commands/core-handoff-fast.d.ts +0 -18
- package/dist/commands/core-handoff-fast.js +0 -104
- package/dist/commands/core-handoff-open-steps.d.ts +0 -21
- package/dist/commands/core-handoff-open-steps.js +0 -264
- package/dist/commands/core-handoff.d.ts +0 -24
- package/dist/commands/core-handoff.js +0 -1144
- package/dist/commands/core-hq-session-native.d.ts +0 -39
- package/dist/commands/core-hq-session-native.js +0 -579
- package/dist/commands/core-job-native-utils.d.ts +0 -6
- package/dist/commands/core-job-native-utils.js +0 -80
- package/dist/commands/core-job-native.d.ts +0 -5
- package/dist/commands/core-job-native.js +0 -16
- package/dist/commands/core-job-notify-native.d.ts +0 -36
- package/dist/commands/core-job-notify-native.js +0 -359
- package/dist/commands/core-job-probe-native.d.ts +0 -45
- package/dist/commands/core-job-probe-native.js +0 -564
- package/dist/commands/core-job-remediate-native.d.ts +0 -26
- package/dist/commands/core-job-remediate-native.js +0 -374
- package/dist/commands/core-job-remote-launcher.d.ts +0 -7
- package/dist/commands/core-job-remote-launcher.js +0 -51
- package/dist/commands/core-job-run-native.d.ts +0 -47
- package/dist/commands/core-job-run-native.js +0 -1215
- package/dist/commands/core-jobs-native.d.ts +0 -25
- package/dist/commands/core-jobs-native.js +0 -1339
- package/dist/commands/core-knowledge-prefs.d.ts +0 -12
- package/dist/commands/core-knowledge-prefs.js +0 -137
- package/dist/commands/core-native-handoff-flag.d.ts +0 -4
- package/dist/commands/core-native-handoff-flag.js +0 -7
- package/dist/commands/core-native-jobs-flag.d.ts +0 -4
- package/dist/commands/core-native-jobs-flag.js +0 -7
- package/dist/commands/core-native-policy-flag.d.ts +0 -9
- package/dist/commands/core-native-policy-flag.js +0 -12
- package/dist/commands/core-native-session-flag.d.ts +0 -4
- package/dist/commands/core-native-session-flag.js +0 -7
- package/dist/commands/core-native-utilities-flag.d.ts +0 -4
- package/dist/commands/core-native-utilities-flag.js +0 -7
- package/dist/commands/core-native-utilities.d.ts +0 -29
- package/dist/commands/core-native-utilities.js +0 -54
- package/dist/commands/core-native-worker-skills-flag.d.ts +0 -4
- package/dist/commands/core-native-worker-skills-flag.js +0 -7
- package/dist/commands/core-ontology-native.d.ts +0 -17
- package/dist/commands/core-ontology-native.js +0 -916
- package/dist/commands/core-ontology.d.ts +0 -66
- package/dist/commands/core-ontology.js +0 -430
- package/dist/commands/core-pin-native.d.ts +0 -14
- package/dist/commands/core-pin-native.js +0 -236
- package/dist/commands/core-policy-frontmatter.d.ts +0 -8
- package/dist/commands/core-policy-frontmatter.js +0 -52
- package/dist/commands/core-policy.d.ts +0 -14
- package/dist/commands/core-policy.js +0 -1018
- package/dist/commands/core-refresh-vault-access-native.d.ts +0 -20
- package/dist/commands/core-refresh-vault-access-native.js +0 -229
- package/dist/commands/core-resolve-company-command.d.ts +0 -4
- package/dist/commands/core-resolve-company-command.js +0 -42
- package/dist/commands/core-resolve-company-native.d.ts +0 -28
- package/dist/commands/core-resolve-company-native.js +0 -408
- package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +0 -32
- package/dist/commands/core-work-mesh-bind-trusted-native.js +0 -190
- package/dist/commands/core-worker-lint-native.d.ts +0 -4
- package/dist/commands/core-worker-lint-native.js +0 -160
- package/dist/commands/core-worker-share-native.d.ts +0 -5
- package/dist/commands/core-worker-share-native.js +0 -260
- package/dist/commands/core-worker-skills-command.d.ts +0 -8
- package/dist/commands/core-worker-skills-command.js +0 -33
- package/dist/commands/core-worker-skills-runtime.d.ts +0 -33
- package/dist/commands/core-worker-skills-runtime.js +0 -86
- package/dist/commands/daemon.d.ts +0 -63
- package/dist/commands/daemon.js +0 -877
- package/dist/commands/deploy-comments.d.ts +0 -3
- package/dist/commands/deploy-comments.js +0 -162
- package/dist/commands/lanes-accounts.d.ts +0 -28
- package/dist/commands/lanes-accounts.js +0 -595
- package/dist/commands/lanes-autopilot.d.ts +0 -11
- package/dist/commands/lanes-autopilot.js +0 -336
- package/dist/commands/lanes-checks.d.ts +0 -51
- package/dist/commands/lanes-checks.js +0 -941
- package/dist/commands/lanes-hold.d.ts +0 -43
- package/dist/commands/lanes-hold.js +0 -655
- package/dist/commands/lanes-kpis.d.ts +0 -11
- package/dist/commands/lanes-kpis.js +0 -34
- package/dist/commands/lanes-message.d.ts +0 -9
- package/dist/commands/lanes-message.js +0 -934
- package/dist/commands/lanes-move.d.ts +0 -12
- package/dist/commands/lanes-move.js +0 -397
- package/dist/commands/lanes-questions.d.ts +0 -36
- package/dist/commands/lanes-questions.js +0 -1004
- package/dist/commands/lanes-report.d.ts +0 -11
- package/dist/commands/lanes-report.js +0 -333
- package/dist/commands/lanes-resume.d.ts +0 -6
- package/dist/commands/lanes-resume.js +0 -561
- package/dist/commands/lanes-review.d.ts +0 -10
- package/dist/commands/lanes-review.js +0 -56
- package/dist/commands/lanes-shared.d.ts +0 -448
- package/dist/commands/lanes-shared.js +0 -170
- package/dist/commands/lanes-stories.d.ts +0 -15
- package/dist/commands/lanes-stories.js +0 -347
- package/dist/commands/lanes-watch.d.ts +0 -7
- package/dist/commands/lanes-watch.js +0 -216
- package/dist/commands/lanes.d.ts +0 -149
- package/dist/commands/lanes.js +0 -8843
- package/dist/commands/monitor.d.ts +0 -58
- package/dist/commands/monitor.js +0 -980
- package/dist/commands/onboard-bot-membership.d.ts +0 -32
- package/dist/commands/onboard-bot-membership.js +0 -40
- package/dist/commands/onboard-create-identity.d.ts +0 -26
- package/dist/commands/onboard-create-identity.js +0 -23
- package/dist/commands/outpost-pruner.d.ts +0 -3
- package/dist/commands/outpost-pruner.js +0 -125
- package/dist/commands/personal-connector-settings-flag.d.ts +0 -4
- package/dist/commands/personal-connector-settings-flag.js +0 -7
- package/dist/commands/personal-targeted-push-flag.d.ts +0 -4
- package/dist/commands/personal-targeted-push-flag.js +0 -7
- package/dist/commands/personal-targeted-push-paths.d.ts +0 -3
- package/dist/commands/personal-targeted-push-paths.js +0 -67
- package/dist/commands/report.d.ts +0 -19
- package/dist/commands/report.js +0 -537
- package/dist/commands/run-feature-telemetry.d.ts +0 -3
- package/dist/commands/run-feature-telemetry.js +0 -6
- package/dist/commands/staff/reset-test-account.d.ts +0 -110
- package/dist/commands/staff/reset-test-account.js +0 -268
- package/dist/commands/staff/test-account.d.ts +0 -51
- package/dist/commands/staff/test-account.js +0 -196
- package/dist/commands/vault-retention-flag.d.ts +0 -3
- package/dist/commands/vault-retention-flag.js +0 -9
- package/dist/commands/vault-retention.d.ts +0 -11
- package/dist/commands/vault-retention.js +0 -69
- package/dist/commands/version.d.ts +0 -10
- package/dist/commands/version.js +0 -11
- package/dist/fast-scaffold.d.ts +0 -84
- package/dist/fast-scaffold.js +0 -353
- package/dist/lanes-drain-hook.d.ts +0 -14
- package/dist/lanes-drain-hook.js +0 -203
- package/dist/lib/agent-kit/adopt-identity.d.ts +0 -27
- package/dist/lib/agent-kit/adopt-identity.js +0 -60
- package/dist/lib/agent-kit/attachment-download.d.ts +0 -24
- package/dist/lib/agent-kit/attachment-download.js +0 -47
- package/dist/lib/agent-kit/creds.d.ts +0 -106
- package/dist/lib/agent-kit/creds.js +0 -163
- package/dist/lib/agent-kit/fallback.d.ts +0 -78
- package/dist/lib/agent-kit/fallback.js +0 -210
- package/dist/lib/agent-kit/inbox-state.d.ts +0 -83
- package/dist/lib/agent-kit/inbox-state.js +0 -159
- package/dist/lib/agent-kit/kit-config.d.ts +0 -56
- package/dist/lib/agent-kit/kit-config.js +0 -65
- package/dist/lib/agent-kit/log.d.ts +0 -16
- package/dist/lib/agent-kit/log.js +0 -46
- package/dist/lib/agent-kit/mcp/attachments.d.ts +0 -126
- package/dist/lib/agent-kit/mcp/attachments.js +0 -222
- package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +0 -75
- package/dist/lib/agent-kit/mcp/jsonrpc.js +0 -164
- package/dist/lib/agent-kit/mcp/tools.d.ts +0 -64
- package/dist/lib/agent-kit/mcp/tools.js +0 -397
- package/dist/lib/agent-kit/paths.d.ts +0 -65
- package/dist/lib/agent-kit/paths.js +0 -118
- package/dist/lib/agent-kit/private-file.d.ts +0 -29
- package/dist/lib/agent-kit/private-file.js +0 -91
- package/dist/lib/agent-kit/run/heartbeat.d.ts +0 -72
- package/dist/lib/agent-kit/run/heartbeat.js +0 -128
- package/dist/lib/agent-kit/run/inbox.d.ts +0 -76
- package/dist/lib/agent-kit/run/inbox.js +0 -205
- package/dist/lib/agent-kit/run/supervisor.d.ts +0 -35
- package/dist/lib/agent-kit/run/supervisor.js +0 -85
- package/dist/lib/agent-kit/run/sync.d.ts +0 -33
- package/dist/lib/agent-kit/run/sync.js +0 -58
- package/dist/lib/agent-kit/services.d.ts +0 -31
- package/dist/lib/agent-kit/services.js +0 -55
- package/dist/lib/agent-kit/skills.d.ts +0 -18
- package/dist/lib/agent-kit/skills.js +0 -151
- package/dist/lib/agent-kit/wake.d.ts +0 -83
- package/dist/lib/agent-kit/wake.js +0 -243
- package/dist/lib/agents/model-catalog.d.ts +0 -62
- package/dist/lib/agents/model-catalog.js +0 -275
- package/dist/lib/auth-login-provider-state.d.ts +0 -8
- package/dist/lib/auth-login-provider-state.js +0 -63
- package/dist/lib/aws-sdk-node-warning-output.d.ts +0 -12
- package/dist/lib/aws-sdk-node-warning-output.js +0 -22
- package/dist/lib/billing/free-month.d.ts +0 -18
- package/dist/lib/billing/free-month.js +0 -31
- package/dist/lib/billing/plan-limit-refusals.d.ts +0 -69
- package/dist/lib/billing/plan-limit-refusals.js +0 -187
- package/dist/lib/billing/plan-limit-upgrade-url.d.ts +0 -11
- package/dist/lib/billing/plan-limit-upgrade-url.js +0 -66
- package/dist/lib/billing/plan-lock.d.ts +0 -143
- package/dist/lib/billing/plan-lock.js +0 -439
- package/dist/lib/bot/api.d.ts +0 -349
- package/dist/lib/bot/api.js +0 -316
- package/dist/lib/bot/attachments.d.ts +0 -45
- package/dist/lib/bot/attachments.js +0 -89
- package/dist/lib/bot/cli-update.d.ts +0 -138
- package/dist/lib/bot/cli-update.js +0 -278
- package/dist/lib/bot/company-bind.d.ts +0 -27
- package/dist/lib/bot/company-bind.js +0 -62
- package/dist/lib/bot/config.d.ts +0 -153
- package/dist/lib/bot/config.js +0 -233
- package/dist/lib/bot/continuity-download.d.ts +0 -28
- package/dist/lib/bot/continuity-download.js +0 -75
- package/dist/lib/bot/continuity-install.d.ts +0 -14
- package/dist/lib/bot/continuity-install.js +0 -101
- package/dist/lib/bot/continuity.d.ts +0 -67
- package/dist/lib/bot/continuity.js +0 -301
- package/dist/lib/bot/creds.d.ts +0 -24
- package/dist/lib/bot/creds.js +0 -51
- package/dist/lib/bot/daemon.d.ts +0 -173
- package/dist/lib/bot/daemon.js +0 -552
- package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +0 -24
- package/dist/lib/bot/inbox-poll-backoff-flag.js +0 -135
- package/dist/lib/bot/inbox-state.d.ts +0 -18
- package/dist/lib/bot/inbox-state.js +0 -51
- package/dist/lib/bot/index.d.ts +0 -23
- package/dist/lib/bot/index.js +0 -23
- package/dist/lib/bot/inflight.d.ts +0 -119
- package/dist/lib/bot/inflight.js +0 -83
- package/dist/lib/bot/job-completions.d.ts +0 -89
- package/dist/lib/bot/job-completions.js +0 -132
- package/dist/lib/bot/job-run.d.ts +0 -109
- package/dist/lib/bot/job-run.js +0 -246
- package/dist/lib/bot/local-config.d.ts +0 -61
- package/dist/lib/bot/local-config.js +0 -145
- package/dist/lib/bot/local-jobs.d.ts +0 -89
- package/dist/lib/bot/local-jobs.js +0 -459
- package/dist/lib/bot/local-name.d.ts +0 -54
- package/dist/lib/bot/local-name.js +0 -114
- package/dist/lib/bot/log.d.ts +0 -13
- package/dist/lib/bot/log.js +0 -59
- package/dist/lib/bot/owner-context.d.ts +0 -79
- package/dist/lib/bot/owner-context.js +0 -175
- package/dist/lib/bot/paths.d.ts +0 -76
- package/dist/lib/bot/paths.js +0 -131
- package/dist/lib/bot/progress.d.ts +0 -132
- package/dist/lib/bot/progress.js +0 -289
- package/dist/lib/bot/promote.d.ts +0 -16
- package/dist/lib/bot/promote.js +0 -106
- package/dist/lib/bot/promotion-hold.d.ts +0 -24
- package/dist/lib/bot/promotion-hold.js +0 -103
- package/dist/lib/bot/promotion-receipt.d.ts +0 -9
- package/dist/lib/bot/promotion-receipt.js +0 -56
- package/dist/lib/bot/promotion-upload.d.ts +0 -16
- package/dist/lib/bot/promotion-upload.js +0 -80
- package/dist/lib/bot/prompt.d.ts +0 -136
- package/dist/lib/bot/prompt.js +0 -433
- package/dist/lib/bot/room-policy.d.ts +0 -63
- package/dist/lib/bot/room-policy.js +0 -91
- package/dist/lib/bot/run.d.ts +0 -217
- package/dist/lib/bot/run.js +0 -1869
- package/dist/lib/bot/runnable.d.ts +0 -51
- package/dist/lib/bot/runnable.js +0 -65
- package/dist/lib/bot/runtime/claude.d.ts +0 -50
- package/dist/lib/bot/runtime/claude.js +0 -170
- package/dist/lib/bot/runtime/codex.d.ts +0 -28
- package/dist/lib/bot/runtime/codex.js +0 -153
- package/dist/lib/bot/runtime/grok-acp.d.ts +0 -40
- package/dist/lib/bot/runtime/grok-acp.js +0 -265
- package/dist/lib/bot/runtime/grok.d.ts +0 -41
- package/dist/lib/bot/runtime/grok.js +0 -169
- package/dist/lib/bot/runtime/index.d.ts +0 -36
- package/dist/lib/bot/runtime/index.js +0 -417
- package/dist/lib/bot/runtime/messages-stream.d.ts +0 -56
- package/dist/lib/bot/runtime/messages-stream.js +0 -194
- package/dist/lib/bot/runtime/sanitize.d.ts +0 -18
- package/dist/lib/bot/runtime/sanitize.js +0 -28
- package/dist/lib/bot/runtime/types.d.ts +0 -159
- package/dist/lib/bot/runtime/types.js +0 -51
- package/dist/lib/bot/runtime/windows.d.ts +0 -10
- package/dist/lib/bot/runtime/windows.js +0 -53
- package/dist/lib/bot/runtime-sign-in.d.ts +0 -24
- package/dist/lib/bot/runtime-sign-in.js +0 -31
- package/dist/lib/bot/scaffold.d.ts +0 -38
- package/dist/lib/bot/scaffold.js +0 -94
- package/dist/lib/bot/self-heal.d.ts +0 -52
- package/dist/lib/bot/self-heal.js +0 -79
- package/dist/lib/bot/self-process.d.ts +0 -19
- package/dist/lib/bot/self-process.js +0 -35
- package/dist/lib/bot/session.d.ts +0 -19
- package/dist/lib/bot/session.js +0 -39
- package/dist/lib/bot/setup-explain.d.ts +0 -64
- package/dist/lib/bot/setup-explain.js +0 -141
- package/dist/lib/bot/split.d.ts +0 -32
- package/dist/lib/bot/split.js +0 -241
- package/dist/lib/bot/status.d.ts +0 -57
- package/dist/lib/bot/status.js +0 -66
- package/dist/lib/bot/worker-source.d.ts +0 -66
- package/dist/lib/bot/worker-source.js +0 -283
- package/dist/lib/checkpoint-ontology/aliases.d.ts +0 -17
- package/dist/lib/checkpoint-ontology/aliases.js +0 -44
- package/dist/lib/checkpoint-ontology/apply.d.ts +0 -110
- package/dist/lib/checkpoint-ontology/apply.js +0 -777
- package/dist/lib/checkpoint-ontology/company-brief.d.ts +0 -18
- package/dist/lib/checkpoint-ontology/company-brief.js +0 -337
- package/dist/lib/checkpoint-ontology/company.d.ts +0 -44
- package/dist/lib/checkpoint-ontology/company.js +0 -118
- package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +0 -41
- package/dist/lib/checkpoint-ontology/drop-aliases.js +0 -76
- package/dist/lib/checkpoint-ontology/entity-file.d.ts +0 -109
- package/dist/lib/checkpoint-ontology/entity-file.js +0 -371
- package/dist/lib/checkpoint-ontology/identity.d.ts +0 -38
- package/dist/lib/checkpoint-ontology/identity.js +0 -95
- package/dist/lib/checkpoint-ontology/merge-copies.d.ts +0 -199
- package/dist/lib/checkpoint-ontology/merge-copies.js +0 -1086
- package/dist/lib/checkpoint-ontology/multi-writer.d.ts +0 -101
- package/dist/lib/checkpoint-ontology/multi-writer.js +0 -394
- package/dist/lib/checkpoint-ontology/plan.d.ts +0 -193
- package/dist/lib/checkpoint-ontology/plan.js +0 -504
- package/dist/lib/checkpoint-ontology/queued-touches.d.ts +0 -29
- package/dist/lib/checkpoint-ontology/queued-touches.js +0 -193
- package/dist/lib/checkpoint-ontology/sync-client.d.ts +0 -38
- package/dist/lib/checkpoint-ontology/sync-client.js +0 -84
- package/dist/lib/checkpoint-ontology/tree.d.ts +0 -55
- package/dist/lib/checkpoint-ontology/tree.js +0 -198
- package/dist/lib/company-errors-sdk-warning-flag.d.ts +0 -5
- package/dist/lib/company-errors-sdk-warning-flag.js +0 -8
- package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +0 -20
- package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +0 -81
- package/dist/lib/core-utils/jq-json-serializer.d.ts +0 -5
- package/dist/lib/core-utils/jq-json-serializer.js +0 -10
- package/dist/lib/core-utils/secret-patterns.d.ts +0 -43
- package/dist/lib/core-utils/secret-patterns.js +0 -34
- package/dist/lib/core-utils/sentry-report.d.ts +0 -114
- package/dist/lib/core-utils/sentry-report.js +0 -1034
- package/dist/lib/core-utils/timeout-guard-native.d.ts +0 -7
- package/dist/lib/core-utils/timeout-guard-native.js +0 -40
- package/dist/lib/core-utils/worktree-resume.d.ts +0 -20
- package/dist/lib/core-utils/worktree-resume.js +0 -1198
- package/dist/lib/daemon/catalog.d.ts +0 -134
- package/dist/lib/daemon/catalog.js +0 -358
- package/dist/lib/daemon/config.d.ts +0 -35
- package/dist/lib/daemon/config.js +0 -108
- package/dist/lib/daemon/flag.d.ts +0 -25
- package/dist/lib/daemon/flag.js +0 -59
- package/dist/lib/daemon/handoff.d.ts +0 -56
- package/dist/lib/daemon/handoff.js +0 -161
- package/dist/lib/daemon/hq-cloud.d.ts +0 -79
- package/dist/lib/daemon/hq-cloud.js +0 -183
- package/dist/lib/daemon/install.d.ts +0 -85
- package/dist/lib/daemon/install.js +0 -320
- package/dist/lib/daemon/legacy-sync-env.d.ts +0 -10
- package/dist/lib/daemon/legacy-sync-env.js +0 -58
- package/dist/lib/daemon/legacy.d.ts +0 -45
- package/dist/lib/daemon/legacy.js +0 -133
- package/dist/lib/daemon/lock.d.ts +0 -47
- package/dist/lib/daemon/lock.js +0 -138
- package/dist/lib/daemon/machine-type.d.ts +0 -50
- package/dist/lib/daemon/machine-type.js +0 -159
- package/dist/lib/daemon/migrate.d.ts +0 -77
- package/dist/lib/daemon/migrate.js +0 -265
- package/dist/lib/daemon/paths.d.ts +0 -24
- package/dist/lib/daemon/paths.js +0 -43
- package/dist/lib/daemon/protocol-tail.d.ts +0 -33
- package/dist/lib/daemon/protocol-tail.js +0 -131
- package/dist/lib/daemon/remote-control.d.ts +0 -74
- package/dist/lib/daemon/remote-control.js +0 -153
- package/dist/lib/daemon/requests.d.ts +0 -28
- package/dist/lib/daemon/requests.js +0 -65
- package/dist/lib/daemon/run.d.ts +0 -79
- package/dist/lib/daemon/run.js +0 -755
- package/dist/lib/daemon/succession.d.ts +0 -118
- package/dist/lib/daemon/succession.js +0 -263
- package/dist/lib/daemon/supervisor.d.ts +0 -132
- package/dist/lib/daemon/supervisor.js +0 -836
- package/dist/lib/daemon/sync-runner.d.ts +0 -58
- package/dist/lib/daemon/sync-runner.js +0 -277
- package/dist/lib/daemon/tools.d.ts +0 -52
- package/dist/lib/daemon/tools.js +0 -95
- package/dist/lib/daemon/updater.d.ts +0 -57
- package/dist/lib/daemon/updater.js +0 -163
- package/dist/lib/deploy-api.d.ts +0 -5
- package/dist/lib/deploy-api.js +0 -21
- package/dist/lib/deploy-apps.d.ts +0 -13
- package/dist/lib/deploy-apps.js +0 -29
- package/dist/lib/doctor/__testing__/run-doctor.d.ts +0 -8
- package/dist/lib/doctor/__testing__/run-doctor.js +0 -52
- package/dist/lib/doctor/checks/bots.d.ts +0 -13
- package/dist/lib/doctor/checks/bots.js +0 -189
- package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +0 -6
- package/dist/lib/doctor/checks/scaffold-cli-floor.js +0 -73
- package/dist/lib/doctor/checks/sync-runtime.d.ts +0 -11
- package/dist/lib/doctor/checks/sync-runtime.js +0 -216
- package/dist/lib/doctor/client-health-flag-token.d.ts +0 -15
- package/dist/lib/doctor/client-health-flag-token.js +0 -66
- package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +0 -27
- package/dist/lib/doctor/client-health-reason-codes-flag.js +0 -106
- package/dist/lib/doctor/fix/json-output.d.ts +0 -28
- package/dist/lib/doctor/fix/json-output.js +0 -33
- package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +0 -12
- package/dist/lib/doctor/fix/refresh-sync-outcome.js +0 -25
- package/dist/lib/doctor/shared.d.ts +0 -8
- package/dist/lib/doctor/shared.js +0 -38
- package/dist/lib/doctor/stray-gate-entries.d.ts +0 -35
- package/dist/lib/doctor/stray-gate-entries.js +0 -83
- package/dist/lib/first-sync-next-step.d.ts +0 -37
- package/dist/lib/first-sync-next-step.js +0 -189
- package/dist/lib/flag-registry-endpoint.d.ts +0 -5
- package/dist/lib/flag-registry-endpoint.js +0 -9
- package/dist/lib/flag-registry-worker-source.generated.d.ts +0 -2
- package/dist/lib/flag-registry-worker-source.generated.js +0 -3
- package/dist/lib/flag-snapshot-file.d.ts +0 -20
- package/dist/lib/flag-snapshot-file.js +0 -91
- package/dist/lib/heartbeat-identity.d.ts +0 -30
- package/dist/lib/heartbeat-identity.js +0 -76
- package/dist/lib/lanes/account-home.d.ts +0 -8
- package/dist/lib/lanes/account-home.js +0 -10
- package/dist/lib/lanes/accounts.d.ts +0 -117
- package/dist/lib/lanes/accounts.js +0 -366
- package/dist/lib/lanes/admission-host.d.ts +0 -22
- package/dist/lib/lanes/admission-host.js +0 -37
- package/dist/lib/lanes/admission.d.ts +0 -26
- package/dist/lib/lanes/admission.js +0 -210
- package/dist/lib/lanes/approval-gate.d.ts +0 -8
- package/dist/lib/lanes/approval-gate.js +0 -90
- package/dist/lib/lanes/autopilot-metrics.d.ts +0 -99
- package/dist/lib/lanes/autopilot-metrics.js +0 -301
- package/dist/lib/lanes/autopilot-registry.d.ts +0 -62
- package/dist/lib/lanes/autopilot-registry.js +0 -192
- package/dist/lib/lanes/autopilot.d.ts +0 -120
- package/dist/lib/lanes/autopilot.js +0 -1061
- package/dist/lib/lanes/blocker-freshness.d.ts +0 -31
- package/dist/lib/lanes/blocker-freshness.js +0 -168
- package/dist/lib/lanes/checked-company-path.d.ts +0 -3
- package/dist/lib/lanes/checked-company-path.js +0 -39
- package/dist/lib/lanes/claude-balance.d.ts +0 -97
- package/dist/lib/lanes/claude-balance.js +0 -319
- package/dist/lib/lanes/compaction.d.ts +0 -110
- package/dist/lib/lanes/compaction.js +0 -293
- package/dist/lib/lanes/config.d.ts +0 -91
- package/dist/lib/lanes/config.js +0 -592
- package/dist/lib/lanes/constants.d.ts +0 -3
- package/dist/lib/lanes/constants.js +0 -3
- package/dist/lib/lanes/delivery-core.d.ts +0 -15
- package/dist/lib/lanes/delivery-core.js +0 -21
- package/dist/lib/lanes/delivery.d.ts +0 -180
- package/dist/lib/lanes/delivery.js +0 -443
- package/dist/lib/lanes/dropbox.d.ts +0 -129
- package/dist/lib/lanes/dropbox.js +0 -601
- package/dist/lib/lanes/effort.d.ts +0 -51
- package/dist/lib/lanes/effort.js +0 -113
- package/dist/lib/lanes/envelope-repair-dispatch.d.ts +0 -26
- package/dist/lib/lanes/envelope-repair-dispatch.js +0 -74
- package/dist/lib/lanes/errors.d.ts +0 -39
- package/dist/lib/lanes/errors.js +0 -72
- package/dist/lib/lanes/flag-keys.d.ts +0 -13
- package/dist/lib/lanes/flag-keys.js +0 -13
- package/dist/lib/lanes/grants.d.ts +0 -29
- package/dist/lib/lanes/grants.js +0 -166
- package/dist/lib/lanes/hire-grant-dispatch.d.ts +0 -29
- package/dist/lib/lanes/hire-grant-dispatch.js +0 -316
- package/dist/lib/lanes/hooks-install.d.ts +0 -82
- package/dist/lib/lanes/hooks-install.js +0 -479
- package/dist/lib/lanes/host-capacity.d.ts +0 -69
- package/dist/lib/lanes/host-capacity.js +0 -254
- package/dist/lib/lanes/hq-root.d.ts +0 -19
- package/dist/lib/lanes/hq-root.js +0 -28
- package/dist/lib/lanes/index.d.ts +0 -76
- package/dist/lib/lanes/index.js +0 -42
- package/dist/lib/lanes/keep-alive.d.ts +0 -68
- package/dist/lib/lanes/keep-alive.js +0 -343
- package/dist/lib/lanes/kr-freshness.d.ts +0 -76
- package/dist/lib/lanes/kr-freshness.js +0 -413
- package/dist/lib/lanes/lane-company.d.ts +0 -10
- package/dist/lib/lanes/lane-company.js +0 -41
- package/dist/lib/lanes/liveness.d.ts +0 -108
- package/dist/lib/lanes/liveness.js +0 -396
- package/dist/lib/lanes/machine-identity.d.ts +0 -34
- package/dist/lib/lanes/machine-identity.js +0 -92
- package/dist/lib/lanes/manager-status-gate.d.ts +0 -17
- package/dist/lib/lanes/manager-status-gate.js +0 -133
- package/dist/lib/lanes/merge-command.d.ts +0 -15
- package/dist/lib/lanes/merge-command.js +0 -629
- package/dist/lib/lanes/mesh-events.d.ts +0 -127
- package/dist/lib/lanes/mesh-events.js +0 -564
- package/dist/lib/lanes/message-replay.d.ts +0 -21
- package/dist/lib/lanes/message-replay.js +0 -122
- package/dist/lib/lanes/models.d.ts +0 -86
- package/dist/lib/lanes/models.js +0 -234
- package/dist/lib/lanes/monitor.d.ts +0 -48
- package/dist/lib/lanes/monitor.js +0 -428
- package/dist/lib/lanes/move-account.d.ts +0 -56
- package/dist/lib/lanes/move-account.js +0 -193
- package/dist/lib/lanes/orphans.d.ts +0 -25
- package/dist/lib/lanes/orphans.js +0 -102
- package/dist/lib/lanes/outpost-dispatch.d.ts +0 -147
- package/dist/lib/lanes/outpost-dispatch.js +0 -271
- package/dist/lib/lanes/outpost-hire-cache.d.ts +0 -22
- package/dist/lib/lanes/outpost-hire-cache.js +0 -153
- package/dist/lib/lanes/outpost-identity.d.ts +0 -33
- package/dist/lib/lanes/outpost-identity.js +0 -59
- package/dist/lib/lanes/outpost-profile-repin.d.ts +0 -17
- package/dist/lib/lanes/outpost-profile-repin.js +0 -84
- package/dist/lib/lanes/outpost-pruner-install.d.ts +0 -37
- package/dist/lib/lanes/outpost-pruner-install.js +0 -238
- package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +0 -18
- package/dist/lib/lanes/outpost-registry-worker-approval.js +0 -109
- package/dist/lib/lanes/outpost-snapshot-memo.d.ts +0 -6
- package/dist/lib/lanes/outpost-snapshot-memo.js +0 -14
- package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +0 -19
- package/dist/lib/lanes/outpost-worktree-pruner-flag.js +0 -86
- package/dist/lib/lanes/outpost-worktree-pruner.d.ts +0 -62
- package/dist/lib/lanes/outpost-worktree-pruner.js +0 -1201
- package/dist/lib/lanes/profile.d.ts +0 -69
- package/dist/lib/lanes/profile.js +0 -552
- package/dist/lib/lanes/provider-rejection.d.ts +0 -86
- package/dist/lib/lanes/provider-rejection.js +0 -286
- package/dist/lib/lanes/questions.d.ts +0 -90
- package/dist/lib/lanes/questions.js +0 -384
- package/dist/lib/lanes/quota.d.ts +0 -134
- package/dist/lib/lanes/quota.js +0 -471
- package/dist/lib/lanes/reconcile-install.d.ts +0 -90
- package/dist/lib/lanes/reconcile-install.js +0 -257
- package/dist/lib/lanes/reconcile.d.ts +0 -155
- package/dist/lib/lanes/reconcile.js +0 -3193
- package/dist/lib/lanes/registry-flag.d.ts +0 -29
- package/dist/lib/lanes/registry-flag.js +0 -139
- package/dist/lib/lanes/registry-persona.d.ts +0 -20
- package/dist/lib/lanes/registry-persona.js +0 -329
- package/dist/lib/lanes/registry.d.ts +0 -122
- package/dist/lib/lanes/registry.js +0 -570
- package/dist/lib/lanes/reviews.d.ts +0 -38
- package/dist/lib/lanes/reviews.js +0 -395
- package/dist/lib/lanes/runaway-tool-guard.d.ts +0 -38
- package/dist/lib/lanes/runaway-tool-guard.js +0 -284
- package/dist/lib/lanes/session-relink.d.ts +0 -25
- package/dist/lib/lanes/session-relink.js +0 -216
- package/dist/lib/lanes/spawn.d.ts +0 -350
- package/dist/lib/lanes/spawn.js +0 -2643
- package/dist/lib/lanes/ssm-command-context.d.ts +0 -12
- package/dist/lib/lanes/ssm-command-context.js +0 -52
- package/dist/lib/lanes/store.d.ts +0 -91
- package/dist/lib/lanes/store.js +0 -1811
- package/dist/lib/lanes/stories.d.ts +0 -23
- package/dist/lib/lanes/stories.js +0 -92
- package/dist/lib/lanes/story-ledger.d.ts +0 -80
- package/dist/lib/lanes/story-ledger.js +0 -815
- package/dist/lib/lanes/story-switch.d.ts +0 -21
- package/dist/lib/lanes/story-switch.js +0 -75
- package/dist/lib/lanes/text-scan.d.ts +0 -11
- package/dist/lib/lanes/text-scan.js +0 -103
- package/dist/lib/lanes/throttle.d.ts +0 -116
- package/dist/lib/lanes/throttle.js +0 -437
- package/dist/lib/lanes/timestamp.d.ts +0 -3
- package/dist/lib/lanes/timestamp.js +0 -26
- package/dist/lib/lanes/tracker-checks.d.ts +0 -77
- package/dist/lib/lanes/tracker-checks.js +0 -134
- package/dist/lib/lanes/tracker-report-state.d.ts +0 -10
- package/dist/lib/lanes/tracker-report-state.js +0 -124
- package/dist/lib/lanes/tracker-report.d.ts +0 -203
- package/dist/lib/lanes/tracker-report.js +0 -522
- package/dist/lib/lanes/tracker-store.d.ts +0 -18
- package/dist/lib/lanes/tracker-store.js +0 -106
- package/dist/lib/lanes/types.d.ts +0 -1020
- package/dist/lib/lanes/types.js +0 -417
- package/dist/lib/lanes/wait.d.ts +0 -39
- package/dist/lib/lanes/wait.js +0 -159
- package/dist/lib/lanes/watch.d.ts +0 -39
- package/dist/lib/lanes/watch.js +0 -249
- package/dist/lib/lanes/watcher-main.d.ts +0 -11
- package/dist/lib/lanes/watcher-main.js +0 -108
- package/dist/lib/lanes/watcher.d.ts +0 -287
- package/dist/lib/lanes/watcher.js +0 -1972
- package/dist/lib/mesh/live/daemon/config.d.ts +0 -36
- package/dist/lib/mesh/live/daemon/config.js +0 -120
- package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +0 -43
- package/dist/lib/mesh/live/daemon/legacy-listen.js +0 -89
- package/dist/lib/mesh/live/daemon/live-cache.d.ts +0 -26
- package/dist/lib/mesh/live/daemon/live-cache.js +0 -116
- package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +0 -7
- package/dist/lib/mesh/live/daemon/mqtt-events.js +0 -2
- package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +0 -2
- package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +0 -10
- package/dist/lib/mesh/live/daemon/version-drift.d.ts +0 -5
- package/dist/lib/mesh/live/daemon/version-drift.js +0 -47
- package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +0 -32
- package/dist/lib/mesh/live/daemon/work-subscribe.js +0 -262
- package/dist/lib/mesh/live/report-summary.d.ts +0 -45
- package/dist/lib/mesh/live/report-summary.js +0 -234
- package/dist/lib/mesh/live/session-seq.d.ts +0 -4
- package/dist/lib/mesh/live/session-seq.js +0 -33
- package/dist/lib/mesh/project-board.d.ts +0 -65
- package/dist/lib/mesh/project-board.js +0 -181
- package/dist/lib/mesh/story-status.d.ts +0 -22
- package/dist/lib/mesh/story-status.js +0 -49
- package/dist/lib/monitor.d.ts +0 -149
- package/dist/lib/monitor.js +0 -519
- package/dist/lib/node-binary.d.ts +0 -50
- package/dist/lib/node-binary.js +0 -133
- package/dist/lib/notify-recipient.d.ts +0 -7
- package/dist/lib/notify-recipient.js +0 -11
- package/dist/lib/onboarding/checkpoint.d.ts +0 -13
- package/dist/lib/onboarding/checkpoint.js +0 -44
- package/dist/lib/onboarding/cli/onboard.d.ts +0 -53
- package/dist/lib/onboarding/cli/onboard.js +0 -135
- package/dist/lib/onboarding/cli/prompts.d.ts +0 -28
- package/dist/lib/onboarding/cli/prompts.js +0 -83
- package/dist/lib/onboarding/errors.d.ts +0 -34
- package/dist/lib/onboarding/errors.js +0 -59
- package/dist/lib/onboarding/index.d.ts +0 -13
- package/dist/lib/onboarding/index.js +0 -13
- package/dist/lib/onboarding/orchestrator.d.ts +0 -47
- package/dist/lib/onboarding/orchestrator.js +0 -569
- package/dist/lib/onboarding/types.d.ts +0 -79
- package/dist/lib/onboarding/types.js +0 -8
- package/dist/lib/policy-validator.d.ts +0 -7
- package/dist/lib/policy-validator.js +0 -187
- package/dist/lib/process-flag-company-context.d.ts +0 -8
- package/dist/lib/process-flag-company-context.js +0 -67
- package/dist/lib/report-publish.d.ts +0 -175
- package/dist/lib/report-publish.js +0 -421
- package/dist/lib/report-run.d.ts +0 -62
- package/dist/lib/report-run.js +0 -123
- package/dist/lib/report-snapshot.d.ts +0 -12
- package/dist/lib/report-snapshot.js +0 -135
- package/dist/lib/report-templates.d.ts +0 -9
- package/dist/lib/report-templates.js +0 -21
- package/dist/lib/scaffold-cli-floor.d.ts +0 -8
- package/dist/lib/scaffold-cli-floor.js +0 -50
- package/dist/lib/search-index/collection-path-repair-flag.d.ts +0 -4
- package/dist/lib/search-index/collection-path-repair-flag.js +0 -7
- package/dist/lib/search-index/embed-lock.d.ts +0 -32
- package/dist/lib/search-index/embed-lock.js +0 -286
- package/dist/lib/search-index/load-gate.d.ts +0 -57
- package/dist/lib/search-index/load-gate.js +0 -270
- package/dist/lib/search-index/max-doc-bytes.d.ts +0 -219
- package/dist/lib/search-index/max-doc-bytes.js +0 -463
- package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +0 -5
- package/dist/lib/search-index/qmd-exit-diagnostics.js +0 -40
- package/dist/lib/search-index/reindex-single-flight-flag.d.ts +0 -5
- package/dist/lib/search-index/reindex-single-flight-flag.js +0 -8
- package/dist/lib/service-manager/index.d.ts +0 -42
- package/dist/lib/service-manager/index.js +0 -105
- package/dist/lib/service-manager/launchd.d.ts +0 -81
- package/dist/lib/service-manager/launchd.js +0 -212
- package/dist/lib/service-manager/systemd.d.ts +0 -19
- package/dist/lib/service-manager/systemd.js +0 -72
- package/dist/lib/service-manager/types.d.ts +0 -34
- package/dist/lib/service-manager/types.js +0 -26
- package/dist/lib/test-utils/isolated-flag-company-context.d.ts +0 -3
- package/dist/lib/test-utils/isolated-flag-company-context.js +0 -18
- package/dist/lib/work-context/bind-best.d.ts +0 -66
- package/dist/lib/work-context/bind-best.js +0 -344
- package/dist/lib/work-context/bind-calling-session.d.ts +0 -26
- package/dist/lib/work-context/bind-calling-session.js +0 -63
- package/dist/lib/work-context/company-rebind.d.ts +0 -23
- package/dist/lib/work-context/company-rebind.js +0 -59
- package/dist/lib/work-context/default-company.d.ts +0 -43
- package/dist/lib/work-context/default-company.js +0 -83
- package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +0 -4
- package/dist/lib/work-context/outbox-quarantine-status-flag.js +0 -7
- package/dist/lib/work-context/prd-sync.d.ts +0 -56
- package/dist/lib/work-context/prd-sync.js +0 -197
- package/dist/lib/work-context/preflight-contract.d.ts +0 -28
- package/dist/lib/work-context/preflight-contract.js +0 -85
- package/dist/lib/work-context/prompt-rebind.d.ts +0 -25
- package/dist/lib/work-context/prompt-rebind.js +0 -85
- package/dist/lib/work-context/windows-acl.d.ts +0 -123
- package/dist/lib/work-context/windows-acl.js +0 -425
- package/dist/lib/workers-registry/read.d.ts +0 -15
- package/dist/lib/workers-registry/read.js +0 -17
- package/dist/native-fast-route.d.ts +0 -7
- package/dist/native-fast-route.js +0 -45
- package/dist/node-network-compat-core.d.ts +0 -12
- package/dist/node-network-compat-core.js +0 -41
- package/dist/node-network-compat-fast.d.ts +0 -7
- package/dist/node-network-compat-fast.js +0 -23
- package/dist/secrets-env-fast-path.d.ts +0 -5
- package/dist/secrets-env-fast-path.js +0 -16
- package/dist/secrets-env-fast-route.d.ts +0 -18
- package/dist/secrets-env-fast-route.js +0 -54
- package/dist/utils/checkpoint-stamp-write-error.d.ts +0 -28
- package/dist/utils/checkpoint-stamp-write-error.js +0 -99
- package/dist/utils/cli-network-lifecycle.d.ts +0 -4
- package/dist/utils/cli-network-lifecycle.js +0 -11
- package/dist/utils/cognito-refresh-sentry.d.ts +0 -3
- package/dist/utils/cognito-refresh-sentry.js +0 -49
- package/dist/utils/console-origin.d.ts +0 -9
- package/dist/utils/console-origin.js +0 -28
- package/dist/utils/exclusive-lock.d.ts +0 -32
- package/dist/utils/exclusive-lock.js +0 -75
- package/dist/utils/fast-stream-errors.d.ts +0 -12
- package/dist/utils/fast-stream-errors.js +0 -18
- package/dist/utils/files-browse-acl.d.ts +0 -5
- package/dist/utils/files-browse-acl.js +0 -11
- package/dist/utils/hq-core-yaml.d.ts +0 -10
- package/dist/utils/hq-core-yaml.js +0 -40
- package/dist/utils/hq-root-resolver.d.ts +0 -13
- package/dist/utils/hq-root-resolver.js +0 -103
- package/dist/utils/redact-url.d.ts +0 -14
- package/dist/utils/redact-url.js +0 -218
- package/dist/utils/scaffold-fast-import-guard.d.ts +0 -2
- package/dist/utils/scaffold-fast-import-guard.js +0 -40
- package/dist/utils/scaffold-packlist-guard.d.ts +0 -7
- package/dist/utils/scaffold-packlist-guard.js +0 -23
- package/dist/utils/scaffold-sibling-references.d.ts +0 -22
- package/dist/utils/scaffold-sibling-references.js +0 -156
- package/dist/utils/secret-load-availability.d.ts +0 -8
- package/dist/utils/secret-load-availability.js +0 -54
- package/dist/utils/staged-install.d.ts +0 -34
- package/dist/utils/staged-install.js +0 -346
- package/dist/utils/staged-npm-install.d.ts +0 -16
- package/dist/utils/staged-npm-install.js +0 -264
- package/dist/utils/sync-log-sources.d.ts +0 -15
- package/dist/utils/sync-log-sources.js +0 -36
- package/dist/utils/table-width.d.ts +0 -7
- package/dist/utils/table-width.js +0 -15
- package/dist/utils/update-command-supervisor.cjs +0 -247
- package/dist/utils/upload-author.d.ts +0 -15
- package/dist/utils/upload-author.js +0 -39
- package/dist/utils/version-report.d.ts +0 -27
- package/dist/utils/version-report.js +0 -105
- package/dist/version-request.d.ts +0 -14
- package/dist/version-request.js +0 -36
- package/scripts/mesh-daemon-if-stale.mjs +0 -20
- package/templates/reports/blank.md +0 -3
- package/templates/reports/daily-digest.md +0 -11
- package/templates/runbooks/update-report.md +0 -21
package/dist/commands/dm.js
CHANGED
|
@@ -2,9 +2,11 @@ import chalk from "chalk";
|
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { ensureCognitoToken } from "../utils/cognito-session.js";
|
|
4
4
|
import { vaultApiFetch } from "../utils/vault-api.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const EMAIL_PATTERN = /^[^\s]+@[^\s]+$/;
|
|
6
|
+
// People (prs_) and agents (agt_) are both first-class DM participants; the
|
|
7
|
+
// server applies the same membership-overlap gate to either and delivers
|
|
8
|
+
// agt_* recipients into the agent's durable box inbox.
|
|
9
|
+
const RECIPIENT_UID_PATTERN = /^(prs|agt)_[A-Za-z0-9_-]+$/;
|
|
8
10
|
/**
|
|
9
11
|
* Classify a recipient arg as an email or a person/agent uid. Mirrors the
|
|
10
12
|
* email/uid heuristic used by `hq members`. Returns null for neither.
|
|
@@ -84,13 +86,6 @@ export function parseChannelName(recipient) {
|
|
|
84
86
|
* unit-testable.
|
|
85
87
|
*/
|
|
86
88
|
export function matchChannelsByName(channels, name) {
|
|
87
|
-
// A channel id is exact and names nothing else, so it may target any scope,
|
|
88
|
-
// including an unnamed group DM. Bots reply this way: their inbox carries
|
|
89
|
-
// the id of the conversation a message arrived in, not its name.
|
|
90
|
-
const trimmed = name.trim().replace(/^#/, "");
|
|
91
|
-
if (/^chn_[A-Za-z0-9]+$/.test(trimmed)) {
|
|
92
|
-
return channels.filter((c) => c.channelId === trimmed);
|
|
93
|
-
}
|
|
94
89
|
const targetSlug = channelSlug(name);
|
|
95
90
|
const targetName = name.trim().toLowerCase();
|
|
96
91
|
if (!targetSlug && !targetName)
|
|
@@ -141,15 +136,6 @@ export function mentionParticipantType(uid) {
|
|
|
141
136
|
* Trailing punctuation is trimmed ("@Izzy," → "Izzy"), so a name is never
|
|
142
137
|
* polluted by the sentence around it.
|
|
143
138
|
*/
|
|
144
|
-
/**
|
|
145
|
-
* Once a quoted token has resolved to a real mention, the quotes have done
|
|
146
|
-
* their job (they only exist so a multi-word name parses as one token). Post
|
|
147
|
-
* the body with `@"Jacob Posel"` rewritten to `@Jacob Posel`, which is how a
|
|
148
|
-
* person would have typed it and how the room should read it. Pure.
|
|
149
|
-
*/
|
|
150
|
-
export function stripMentionQuotes(body) {
|
|
151
|
-
return body.replace(/(^|[\s([{<])@"([^"\n]{1,80})"/g, "$1@$2");
|
|
152
|
-
}
|
|
153
139
|
export function parseMentionTokens(body) {
|
|
154
140
|
const pattern = /(^|[\s([{<])@(?:"([^"\n]{1,80})"|([A-Za-z0-9][A-Za-z0-9._-]*))/g;
|
|
155
141
|
const names = [];
|
|
@@ -283,7 +269,6 @@ export function parseDuration(input) {
|
|
|
283
269
|
};
|
|
284
270
|
return n * mult[m[2]];
|
|
285
271
|
}
|
|
286
|
-
const DM_AUDIENCE_VALUES = ["human", "agent", "both"];
|
|
287
272
|
/**
|
|
288
273
|
* Build the POST /v1/notify/dm request body from CLI inputs. Pure (no I/O,
|
|
289
274
|
* no clock) so the option-resolution logic is unit-testable; the caller
|
|
@@ -320,20 +305,12 @@ export function buildDmBody(args) {
|
|
|
320
305
|
}
|
|
321
306
|
const prompt = args.prompt?.trim();
|
|
322
307
|
const details = args.details?.trim();
|
|
323
|
-
let audience;
|
|
324
|
-
if (args.audience !== undefined && args.audience !== "") {
|
|
325
|
-
if (!DM_AUDIENCE_VALUES.includes(args.audience)) {
|
|
326
|
-
throw new Error(`Invalid --audience '${args.audience}': must be human, agent, or both.`);
|
|
327
|
-
}
|
|
328
|
-
audience = args.audience;
|
|
329
|
-
}
|
|
330
308
|
return {
|
|
331
309
|
...rcpt,
|
|
332
310
|
body,
|
|
333
311
|
...(prompt ? { prompt } : {}),
|
|
334
312
|
...(details ? { details } : {}),
|
|
335
313
|
...(deliverAt ? { deliverAt } : {}),
|
|
336
|
-
...(audience ? { audience } : {}),
|
|
337
314
|
};
|
|
338
315
|
}
|
|
339
316
|
function friendlyDmError(status, code, fallback) {
|
|
@@ -367,22 +344,25 @@ export function matchRequest(requests, identifier) {
|
|
|
367
344
|
return null;
|
|
368
345
|
}
|
|
369
346
|
/**
|
|
370
|
-
* Build the POST body for an accept/decline/block action.
|
|
371
|
-
*
|
|
372
|
-
*
|
|
373
|
-
*
|
|
347
|
+
* Build the POST body for an accept/decline/block action. Prefers a resolved
|
|
348
|
+
* pairKey (from a matched pending request); otherwise falls back to the
|
|
349
|
+
* recipient identifier the backend can resolve (`withPersonUid` for a prs_ UID,
|
|
350
|
+
* `toEmail`-style is not supported by the connections endpoints so we send
|
|
351
|
+
* `withEmail`). Pure → unit-testable.
|
|
374
352
|
*
|
|
375
353
|
* Throws Error with a user-facing message when the identifier can't be resolved.
|
|
376
354
|
*/
|
|
377
355
|
export function buildConnectionActionBody(identifier, matched) {
|
|
378
356
|
if (matched) {
|
|
379
|
-
return {
|
|
357
|
+
return { pairKey: matched.pairKey };
|
|
380
358
|
}
|
|
381
359
|
const r = identifier.trim();
|
|
382
360
|
const rcpt = detectRecipient(r);
|
|
383
361
|
if (rcpt?.toPersonUid)
|
|
384
|
-
return {
|
|
385
|
-
|
|
362
|
+
return { withPersonUid: rcpt.toPersonUid };
|
|
363
|
+
if (rcpt?.toEmail)
|
|
364
|
+
return { withEmail: rcpt.toEmail };
|
|
365
|
+
throw new Error(`Could not resolve '${identifier}' to a pending request — pass the requester's email, personUid, or the pairKey from \`hq dm requests\`.`);
|
|
386
366
|
}
|
|
387
367
|
const CONNECTION_ACTIONS = {
|
|
388
368
|
accept: { path: "accept", done: "Connection accepted" },
|
|
@@ -407,12 +387,7 @@ async function runConnectionAction(action, identifier) {
|
|
|
407
387
|
const token = await ensureCognitoToken();
|
|
408
388
|
// Resolve the pairKey from the caller's pending requests when possible so
|
|
409
389
|
// accept/decline/block work against a friendly email or personUid.
|
|
410
|
-
const requests = await fetchRequests(token).catch((
|
|
411
|
-
console.error("hq dm: pending connection request lookup failed", {
|
|
412
|
-
errorName: err instanceof Error ? err.name : typeof err,
|
|
413
|
-
});
|
|
414
|
-
return [];
|
|
415
|
-
});
|
|
390
|
+
const requests = await fetchRequests(token).catch(() => []);
|
|
416
391
|
const matched = matchRequest(requests, identifier);
|
|
417
392
|
const body = buildConnectionActionBody(identifier, matched);
|
|
418
393
|
const res = await vaultApiFetch({
|
|
@@ -503,7 +478,7 @@ async function runGroupSend(recipients, message) {
|
|
|
503
478
|
}
|
|
504
479
|
}
|
|
505
480
|
/** Fetch the caller's channels (GET /v1/notify/channels). */
|
|
506
|
-
|
|
481
|
+
async function fetchChannels(token) {
|
|
507
482
|
const res = await vaultApiFetch({ token, path: "/v1/notify/channels" });
|
|
508
483
|
if (!res.ok) {
|
|
509
484
|
const err = (await res.json().catch(() => ({})));
|
|
@@ -517,7 +492,7 @@ export async function fetchChannels(token) {
|
|
|
517
492
|
* who can read the channel may read its members, so this is the same gate the
|
|
518
493
|
* post itself passes. Used to resolve `@name` mentions into participant uids.
|
|
519
494
|
*/
|
|
520
|
-
|
|
495
|
+
async function fetchChannelMembers(token, channelId) {
|
|
521
496
|
const res = await vaultApiFetch({
|
|
522
497
|
token,
|
|
523
498
|
path: `/v1/notify/channels/${encodeURIComponent(channelId)}/members`,
|
|
@@ -529,20 +504,6 @@ export async function fetchChannelMembers(token, channelId) {
|
|
|
529
504
|
const data = (await res.json());
|
|
530
505
|
return data.members ?? [];
|
|
531
506
|
}
|
|
532
|
-
/** Fetch a channel history page (GET /v1/notify/channels/{id}/messages). Newest-first. */
|
|
533
|
-
async function fetchChannelMessages(token, channelId, query = {}) {
|
|
534
|
-
const res = await vaultApiFetch({
|
|
535
|
-
token,
|
|
536
|
-
path: `/v1/notify/channels/${encodeURIComponent(channelId)}/messages`,
|
|
537
|
-
query,
|
|
538
|
-
});
|
|
539
|
-
if (!res.ok) {
|
|
540
|
-
const err = (await res.json().catch(() => ({})));
|
|
541
|
-
throw new Error(friendlyDmError(res.status, err.code, err.error ?? err.message ?? res.statusText));
|
|
542
|
-
}
|
|
543
|
-
const data = (await res.json());
|
|
544
|
-
return data.messages ?? [];
|
|
545
|
-
}
|
|
546
507
|
/**
|
|
547
508
|
* Channel DM path: `hq dm vyg-dev "msg"`, `hq dm '#vyg-dev' "msg"`, or
|
|
548
509
|
* `hq dm --channel vyg-dev "msg"`. Resolves the caller's channel by name via
|
|
@@ -552,7 +513,7 @@ async function fetchChannelMessages(token, channelId, query = {}) {
|
|
|
552
513
|
*/
|
|
553
514
|
async function runChannelSend(channelName, message, opts) {
|
|
554
515
|
try {
|
|
555
|
-
|
|
516
|
+
const body = (message ?? "").trim();
|
|
556
517
|
if (!body) {
|
|
557
518
|
console.error(chalk.red(`A message body is required: hq dm ${channelName} "<message>" (or hq dm --channel ${channelName} "<message>").`));
|
|
558
519
|
process.exit(1);
|
|
@@ -580,20 +541,6 @@ async function runChannelSend(channelName, message, opts) {
|
|
|
580
541
|
process.exit(1);
|
|
581
542
|
}
|
|
582
543
|
const channel = matches[0];
|
|
583
|
-
let rootEventId;
|
|
584
|
-
if (opts.thread !== undefined) {
|
|
585
|
-
let recent = [];
|
|
586
|
-
if (opts.thread.trim().toLowerCase() === "last") {
|
|
587
|
-
recent = await fetchChannelMessages(token, channel.channelId);
|
|
588
|
-
}
|
|
589
|
-
const resolved = resolveThreadFlag(opts.thread, recent, callerFromToken(token));
|
|
590
|
-
if (!resolved.ok) {
|
|
591
|
-
console.error(chalk.red(resolved.error));
|
|
592
|
-
process.exit(1);
|
|
593
|
-
return;
|
|
594
|
-
}
|
|
595
|
-
rootEventId = resolved.rootEventId;
|
|
596
|
-
}
|
|
597
544
|
// Mentions are structured-only server-side: resolve `@name` against the
|
|
598
545
|
// roster and send the array, or fail before posting. --no-mentions opts out
|
|
599
546
|
// and posts the text literally.
|
|
@@ -611,19 +558,11 @@ async function runChannelSend(channelName, message, opts) {
|
|
|
611
558
|
mentions = resolved.mentions;
|
|
612
559
|
}
|
|
613
560
|
}
|
|
614
|
-
// Send the human-readable form: the quotes only existed for parsing.
|
|
615
|
-
if (mentions.length > 0)
|
|
616
|
-
body = stripMentionQuotes(body);
|
|
617
|
-
const payload = { body };
|
|
618
|
-
if (mentions.length > 0)
|
|
619
|
-
payload.mentions = mentions;
|
|
620
|
-
if (rootEventId)
|
|
621
|
-
payload.rootEventId = rootEventId;
|
|
622
561
|
const sendRes = await vaultApiFetch({
|
|
623
562
|
token,
|
|
624
563
|
path: `/v1/notify/channels/${encodeURIComponent(channel.channelId)}/messages`,
|
|
625
564
|
method: "POST",
|
|
626
|
-
body:
|
|
565
|
+
body: mentions.length > 0 ? { body, mentions } : { body },
|
|
627
566
|
});
|
|
628
567
|
if (!sendRes.ok) {
|
|
629
568
|
const err = (await sendRes.json().catch(() => ({})));
|
|
@@ -633,8 +572,7 @@ async function runChannelSend(channelName, message, opts) {
|
|
|
633
572
|
const mentionSuffix = mentions.length > 0
|
|
634
573
|
? ` Mentioned ${mentions.map((m) => m.displayName).join(", ")}.`
|
|
635
574
|
: "";
|
|
636
|
-
|
|
637
|
-
console.log(chalk.green(`Message posted to #${channel.name ?? channelName}.${mentionSuffix}${threadSuffix}`));
|
|
575
|
+
console.log(chalk.green(`Message posted to #${channel.name ?? channelName}.${mentionSuffix}`));
|
|
638
576
|
}
|
|
639
577
|
catch (err) {
|
|
640
578
|
console.error(chalk.red("Error:"), err instanceof Error ? err.message : String(err));
|
|
@@ -656,11 +594,6 @@ async function runDmSend(recipient, message, opts) {
|
|
|
656
594
|
// A comma in the recipient means a group DM — fan into the channel path.
|
|
657
595
|
const group = parseGroupRecipients(recipient);
|
|
658
596
|
if (group) {
|
|
659
|
-
if (opts.thread !== undefined) {
|
|
660
|
-
console.error(chalk.red("--thread is only supported for named channel messages (hq dm <channel> --thread <eventId|last> \"…\")."));
|
|
661
|
-
process.exit(1);
|
|
662
|
-
return;
|
|
663
|
-
}
|
|
664
597
|
await runGroupSend(group, message);
|
|
665
598
|
return;
|
|
666
599
|
}
|
|
@@ -670,11 +603,6 @@ async function runDmSend(recipient, message, opts) {
|
|
|
670
603
|
await runChannelSend(channelName, message, opts);
|
|
671
604
|
return;
|
|
672
605
|
}
|
|
673
|
-
if (opts.thread !== undefined) {
|
|
674
|
-
console.error(chalk.red("--thread is only supported for channel messages (hq dm <channel> --thread <eventId|last> \"…\")."));
|
|
675
|
-
process.exit(1);
|
|
676
|
-
return;
|
|
677
|
-
}
|
|
678
606
|
try {
|
|
679
607
|
// Resolve prompt/details from inline text or a file.
|
|
680
608
|
let prompt = opts.prompt;
|
|
@@ -691,7 +619,6 @@ async function runDmSend(recipient, message, opts) {
|
|
|
691
619
|
at: opts.at,
|
|
692
620
|
inDelay: opts.in,
|
|
693
621
|
now: Date.now(),
|
|
694
|
-
audience: opts.audience,
|
|
695
622
|
});
|
|
696
623
|
const token = await ensureCognitoToken();
|
|
697
624
|
const res = await vaultApiFetch({
|
|
@@ -752,27 +679,6 @@ async function runDmRequests() {
|
|
|
752
679
|
process.exit(1);
|
|
753
680
|
}
|
|
754
681
|
}
|
|
755
|
-
/**
|
|
756
|
-
* Render the attachment lines for one message. An agent reading its DMs through
|
|
757
|
-
* the CLI only ever sees this text, so the vault path AND the command that
|
|
758
|
-
* fetches it both have to be on screen — a bare "[image]" marker is why a bot
|
|
759
|
-
* answers "no image came through". Returns "" when there is nothing attached.
|
|
760
|
-
* Pure → unit-testable.
|
|
761
|
-
*/
|
|
762
|
-
export function formatAttachments(m, indent = " ") {
|
|
763
|
-
const files = (m.attachments?.length ? m.attachments : m.attachment ? [m.attachment] : [])
|
|
764
|
-
.filter((f) => Boolean(f?.vaultPath));
|
|
765
|
-
if (files.length === 0)
|
|
766
|
-
return "";
|
|
767
|
-
return files
|
|
768
|
-
.map((f) => {
|
|
769
|
-
const label = f.name?.trim() || f.vaultPath.split("/").pop() || "file";
|
|
770
|
-
const type = f.contentType ? ` ${chalk.dim(f.contentType)}` : "";
|
|
771
|
-
const company = f.companyUid ? chalk.dim(` company=${f.companyUid}`) : "";
|
|
772
|
-
return `\n${indent}${chalk.dim("[file]")} ${label}${type}\n${indent} ${chalk.dim(`vault: ${f.vaultPath}`)}${company}`;
|
|
773
|
-
})
|
|
774
|
-
.join("");
|
|
775
|
-
}
|
|
776
682
|
/**
|
|
777
683
|
* Human label for a message sender — display name, else email, else uid. Pure →
|
|
778
684
|
* unit-testable.
|
|
@@ -853,179 +759,20 @@ export function formatInboxEvent(e, nowMs) {
|
|
|
853
759
|
const when = chalk.dim(formatRelativeTime(e.createdAt, nowMs));
|
|
854
760
|
const who = chalk.bold(senderLabel(e));
|
|
855
761
|
const email = e.fromEmail && e.fromDisplayName ? chalk.dim(` <${e.fromEmail}>`) : "";
|
|
856
|
-
|
|
857
|
-
return `${marker} ${when} ${who}${email}${audienceTag}\n ${firstLine(e.body)}${formatAttachments(e)}`;
|
|
762
|
+
return `${marker} ${when} ${who}${email}\n ${firstLine(e.body)}`;
|
|
858
763
|
}
|
|
859
764
|
/** Render one 1:1 thread line, tagged by direction. */
|
|
860
765
|
export function formatThreadMessage(m, nowMs) {
|
|
861
766
|
const arrow = m.direction === "out" ? chalk.dim("→") : chalk.cyan("←");
|
|
862
767
|
const who = m.direction === "out" ? "you" : senderLabel(m);
|
|
863
768
|
const when = chalk.dim(formatRelativeTime(m.createdAt, nowMs));
|
|
864
|
-
|
|
865
|
-
return `${arrow} ${chalk.bold(who)} ${when}${audienceTag}\n ${firstLine(m.body)}${formatAttachments(m)}`;
|
|
769
|
+
return `${arrow} ${chalk.bold(who)} ${when}\n ${firstLine(m.body)}`;
|
|
866
770
|
}
|
|
867
771
|
/** Render one channel/group message line. */
|
|
868
|
-
export function formatChannelMessage(m, nowMs
|
|
869
|
-
const indent = opts.indent ?? "";
|
|
772
|
+
export function formatChannelMessage(m, nowMs) {
|
|
870
773
|
const who = chalk.bold(senderLabel(m));
|
|
871
774
|
const when = chalk.dim(formatRelativeTime(m.createdAt, nowMs));
|
|
872
|
-
|
|
873
|
-
const idPart = id ? ` ${chalk.dim(id)}` : "";
|
|
874
|
-
const bodyIndent = `${indent} `;
|
|
875
|
-
const body = firstLine(m.body);
|
|
876
|
-
const readableBody = body ||
|
|
877
|
-
(senderLabel(m).toLowerCase() === "hq"
|
|
878
|
-
? "System notification (no text provided)."
|
|
879
|
-
: "(no message text)");
|
|
880
|
-
return `${indent}${who} ${when}${idPart}\n${bodyIndent}${readableBody}${formatAttachments(m, bodyIndent)}`;
|
|
881
|
-
}
|
|
882
|
-
/**
|
|
883
|
-
* Read the caller's person/agent uid and email from a JWT we already hold.
|
|
884
|
-
* Used to resolve `--thread last` (most recent top-level message *by us*).
|
|
885
|
-
* Pure → unit-testable.
|
|
886
|
-
*/
|
|
887
|
-
export function callerFromToken(token) {
|
|
888
|
-
const claims = peekIdToken(token);
|
|
889
|
-
const uid = claims["custom:entityUid"];
|
|
890
|
-
const email = claims.email;
|
|
891
|
-
const personUid = typeof uid === "string" && uid.trim() ? uid.trim() : undefined;
|
|
892
|
-
const emailNorm = typeof email === "string" && email.trim()
|
|
893
|
-
? email.trim().toLowerCase()
|
|
894
|
-
: undefined;
|
|
895
|
-
return {
|
|
896
|
-
...(personUid ? { personUid } : {}),
|
|
897
|
-
...(emailNorm ? { email: emailNorm } : {}),
|
|
898
|
-
};
|
|
899
|
-
}
|
|
900
|
-
function isCallerMessage(m, me) {
|
|
901
|
-
if (me.personUid && m.fromPersonUid === me.personUid)
|
|
902
|
-
return true;
|
|
903
|
-
if (me.email && (m.fromEmail ?? "").trim().toLowerCase() === me.email) {
|
|
904
|
-
return true;
|
|
905
|
-
}
|
|
906
|
-
return false;
|
|
907
|
-
}
|
|
908
|
-
function messageEventId(m) {
|
|
909
|
-
const id = (m.eventId ?? m.messageId ?? "").trim();
|
|
910
|
-
return id || undefined;
|
|
911
|
-
}
|
|
912
|
-
/**
|
|
913
|
-
* Newest-first channel history → the caller's most recent top-level eventId.
|
|
914
|
-
* Replies (those with rootEventId) are skipped. Pure → unit-testable.
|
|
915
|
-
*/
|
|
916
|
-
export function lastCallerRootEventId(messagesNewestFirst, me) {
|
|
917
|
-
for (const m of messagesNewestFirst) {
|
|
918
|
-
if ((m.rootEventId ?? "").trim())
|
|
919
|
-
continue;
|
|
920
|
-
if (!isCallerMessage(m, me))
|
|
921
|
-
continue;
|
|
922
|
-
const id = messageEventId(m);
|
|
923
|
-
if (id)
|
|
924
|
-
return id;
|
|
925
|
-
}
|
|
926
|
-
return undefined;
|
|
927
|
-
}
|
|
928
|
-
/**
|
|
929
|
-
* Resolve `--thread <eventId|last>` against a newest-first message page.
|
|
930
|
-
* An explicit eventId is passed through; `last` picks our most recent
|
|
931
|
-
* top-level message. Pure → unit-testable (the fetch is the caller's job).
|
|
932
|
-
*/
|
|
933
|
-
export function resolveThreadFlag(thread, messagesNewestFirst, me) {
|
|
934
|
-
if (thread === undefined)
|
|
935
|
-
return { ok: true };
|
|
936
|
-
const value = thread.trim();
|
|
937
|
-
if (!value) {
|
|
938
|
-
return { ok: false, error: "--thread requires an eventId or 'last'." };
|
|
939
|
-
}
|
|
940
|
-
if (value.toLowerCase() !== "last") {
|
|
941
|
-
return { ok: true, rootEventId: value };
|
|
942
|
-
}
|
|
943
|
-
if (!me.personUid && !me.email) {
|
|
944
|
-
return {
|
|
945
|
-
ok: false,
|
|
946
|
-
error: "Cannot resolve --thread last: the session token has no person uid or email. Pass --thread <eventId> from `hq dm channel`.",
|
|
947
|
-
};
|
|
948
|
-
}
|
|
949
|
-
const id = lastCallerRootEventId(messagesNewestFirst, me);
|
|
950
|
-
if (!id) {
|
|
951
|
-
return {
|
|
952
|
-
ok: false,
|
|
953
|
-
error: "No top-level message from you in this channel's recent history. Pass --thread <eventId> (copy it from `hq dm channel <name>`).",
|
|
954
|
-
};
|
|
955
|
-
}
|
|
956
|
-
return { ok: true, rootEventId: id };
|
|
957
|
-
}
|
|
958
|
-
function sortByCreatedAt(a, b) {
|
|
959
|
-
return (a.createdAt ?? "").localeCompare(b.createdAt ?? "");
|
|
960
|
-
}
|
|
961
|
-
/**
|
|
962
|
-
* Group a channel history page into roots with their replies underneath.
|
|
963
|
-
* Orphan replies (root not in this page) hang off a placeholder carrying the
|
|
964
|
-
* missing root's eventId. Pure → unit-testable.
|
|
965
|
-
*/
|
|
966
|
-
export function groupChannelMessages(messages) {
|
|
967
|
-
const roots = [];
|
|
968
|
-
const repliesByRoot = new Map();
|
|
969
|
-
for (const m of messages) {
|
|
970
|
-
const rootId = (m.rootEventId ?? "").trim();
|
|
971
|
-
if (!rootId) {
|
|
972
|
-
roots.push(m);
|
|
973
|
-
continue;
|
|
974
|
-
}
|
|
975
|
-
const bucket = repliesByRoot.get(rootId) ?? [];
|
|
976
|
-
bucket.push(m);
|
|
977
|
-
repliesByRoot.set(rootId, bucket);
|
|
978
|
-
}
|
|
979
|
-
const used = new Set();
|
|
980
|
-
const threads = [];
|
|
981
|
-
roots.sort(sortByCreatedAt);
|
|
982
|
-
for (const root of roots) {
|
|
983
|
-
const id = messageEventId(root) ?? "";
|
|
984
|
-
if (id)
|
|
985
|
-
used.add(id);
|
|
986
|
-
threads.push({
|
|
987
|
-
root,
|
|
988
|
-
replies: (repliesByRoot.get(id) ?? []).slice().sort(sortByCreatedAt),
|
|
989
|
-
});
|
|
990
|
-
}
|
|
991
|
-
for (const [rootId, replies] of repliesByRoot) {
|
|
992
|
-
if (used.has(rootId))
|
|
993
|
-
continue;
|
|
994
|
-
const sorted = replies.slice().sort(sortByCreatedAt);
|
|
995
|
-
threads.push({
|
|
996
|
-
root: {
|
|
997
|
-
eventId: rootId,
|
|
998
|
-
body: "",
|
|
999
|
-
createdAt: sorted[0]?.createdAt ?? "",
|
|
1000
|
-
},
|
|
1001
|
-
replies: sorted,
|
|
1002
|
-
missingRoot: true,
|
|
1003
|
-
});
|
|
1004
|
-
}
|
|
1005
|
-
return threads;
|
|
1006
|
-
}
|
|
1007
|
-
/**
|
|
1008
|
-
* Human channel history: each root prints its eventId so `--thread` can copy
|
|
1009
|
-
* it; replies render indented under their root. `--json` does not use this.
|
|
1010
|
-
* Pure → unit-testable.
|
|
1011
|
-
*/
|
|
1012
|
-
export function formatChannelTranscript(messages, nowMs) {
|
|
1013
|
-
const threads = groupChannelMessages(messages);
|
|
1014
|
-
const blocks = [];
|
|
1015
|
-
for (const t of threads) {
|
|
1016
|
-
const parts = [];
|
|
1017
|
-
if (t.missingRoot) {
|
|
1018
|
-
parts.push(chalk.dim(`… ${t.root.eventId ?? ""} (root not in this page)`));
|
|
1019
|
-
}
|
|
1020
|
-
else {
|
|
1021
|
-
parts.push(formatChannelMessage(t.root, nowMs, { showEventId: true }));
|
|
1022
|
-
}
|
|
1023
|
-
for (const reply of t.replies) {
|
|
1024
|
-
parts.push(formatChannelMessage(reply, nowMs, { indent: " " }));
|
|
1025
|
-
}
|
|
1026
|
-
blocks.push(parts.join("\n"));
|
|
1027
|
-
}
|
|
1028
|
-
return blocks.join("\n\n");
|
|
775
|
+
return `${who} ${when}\n ${firstLine(m.body)}`;
|
|
1029
776
|
}
|
|
1030
777
|
/** POST /v1/notify/inbox/ack — idempotently mark messages read. */
|
|
1031
778
|
async function ackEvents(token, eventIds) {
|
|
@@ -1042,89 +789,9 @@ async function ackEvents(token, eventIds) {
|
|
|
1042
789
|
throw new Error(friendlyDmError(res.status, err.code, err.error ?? err.message ?? res.statusText));
|
|
1043
790
|
}
|
|
1044
791
|
}
|
|
1045
|
-
/**
|
|
1046
|
-
* The agent uid when the caller is an agent (machine) identity, else null.
|
|
1047
|
-
* Agents may not read /v1/notify/inbox or /v1/notify/thread (the server
|
|
1048
|
-
* allow-list is intentionally human-only); their read surface is
|
|
1049
|
-
* GET /v1/agents/{uid}/inbox.
|
|
1050
|
-
*/
|
|
1051
|
-
export function agentCallerUid(token, machine = isMachineIdentity) {
|
|
1052
|
-
const claims = peekIdToken(token);
|
|
1053
|
-
const uid = claims["custom:entityUid"];
|
|
1054
|
-
if (typeof uid !== "string" || !uid.startsWith("agt_"))
|
|
1055
|
-
return null;
|
|
1056
|
-
if (claims["custom:entityType"] === "agent")
|
|
1057
|
-
return uid;
|
|
1058
|
-
try {
|
|
1059
|
-
return machine() ? uid : null;
|
|
1060
|
-
}
|
|
1061
|
-
catch {
|
|
1062
|
-
return null;
|
|
1063
|
-
}
|
|
1064
|
-
}
|
|
1065
|
-
export const AGENT_THREAD_UNAVAILABLE = "`hq dm thread` reads /v1/notify/thread, which is not available to agent identities. " +
|
|
1066
|
-
"Use `hq dm inbox` — for agents it reads GET /v1/agents/{uid}/inbox.";
|
|
1067
|
-
/** One-line summary of an agent inbox item (DM, email, … — shapes vary by channel). Pure. */
|
|
1068
|
-
function formatAgentInboxItem(item) {
|
|
1069
|
-
const str = (k) => (typeof item[k] === "string" ? item[k] : "");
|
|
1070
|
-
const id = str("messageId") || str("id") || "?";
|
|
1071
|
-
const channel = str("channel") || "inbox";
|
|
1072
|
-
const from = str("fromDisplayName") || str("fromEmail") || str("from") || str("fromPersonUid") || "unknown";
|
|
1073
|
-
const when = str("createdAt") || str("receivedAt");
|
|
1074
|
-
const text = str("text") || str("body") || str("subject");
|
|
1075
|
-
return `${chalk.bold(from)} ${chalk.dim(`[${channel}] ${id}${when ? ` ${when}` : ""}`)}\n ${firstLine(text)}`;
|
|
1076
|
-
}
|
|
1077
|
-
/** Remove delegated execution context before agent inbox items can be emitted. */
|
|
1078
|
-
function redactAgentInboxItem(item) {
|
|
1079
|
-
const { actingContext: _actingContext, ...safe } = item;
|
|
1080
|
-
return safe;
|
|
1081
|
-
}
|
|
1082
|
-
async function runAgentInbox(token, agentUid, opts) {
|
|
1083
|
-
const route = `/v1/agents/${encodeURIComponent(agentUid)}/inbox`;
|
|
1084
|
-
const res = await vaultApiFetch({ token, path: route });
|
|
1085
|
-
if (!res.ok) {
|
|
1086
|
-
// Error bodies are not constrained to the success response shape. Do not
|
|
1087
|
-
// echo them: a proxy or partial failure could include inbox items.
|
|
1088
|
-
console.error(chalk.red(`GET ${route} → ${res.status}`));
|
|
1089
|
-
process.exit(1);
|
|
1090
|
-
}
|
|
1091
|
-
const data = (await res.json().catch(() => ({})));
|
|
1092
|
-
let items = (Array.isArray(data.messages) ? data.messages : []).map(redactAgentInboxItem);
|
|
1093
|
-
if (opts.limit && Number(opts.limit) > 0)
|
|
1094
|
-
items = items.slice(0, Number(opts.limit));
|
|
1095
|
-
if (opts.json) {
|
|
1096
|
-
console.log(JSON.stringify(items, null, 2));
|
|
1097
|
-
}
|
|
1098
|
-
else if (items.length === 0) {
|
|
1099
|
-
console.log(chalk.dim("No pending inbox items."));
|
|
1100
|
-
}
|
|
1101
|
-
else {
|
|
1102
|
-
console.log(chalk.green(`${items.length} pending inbox item${items.length === 1 ? "" : "s"}:`));
|
|
1103
|
-
for (const item of items)
|
|
1104
|
-
console.log(`\n${formatAgentInboxItem(item)}`);
|
|
1105
|
-
}
|
|
1106
|
-
if (opts.markRead) {
|
|
1107
|
-
let acked = 0;
|
|
1108
|
-
for (const item of items) {
|
|
1109
|
-
const id = typeof item.messageId === "string" ? item.messageId : typeof item.id === "string" ? item.id : null;
|
|
1110
|
-
if (!id)
|
|
1111
|
-
continue;
|
|
1112
|
-
const ack = await vaultApiFetch({ token, path: `${route}/${encodeURIComponent(id)}/ack`, method: "POST" });
|
|
1113
|
-
if (ack.ok)
|
|
1114
|
-
acked += 1;
|
|
1115
|
-
}
|
|
1116
|
-
if (!opts.json && acked > 0)
|
|
1117
|
-
console.log(chalk.dim(`\nAcked ${acked}.`));
|
|
1118
|
-
}
|
|
1119
|
-
}
|
|
1120
792
|
async function runDmInbox(opts) {
|
|
1121
793
|
try {
|
|
1122
794
|
const token = await ensureCognitoToken();
|
|
1123
|
-
const agentUid = agentCallerUid(token);
|
|
1124
|
-
if (agentUid) {
|
|
1125
|
-
await runAgentInbox(token, agentUid, opts);
|
|
1126
|
-
return;
|
|
1127
|
-
}
|
|
1128
795
|
const query = {};
|
|
1129
796
|
if (opts.limit)
|
|
1130
797
|
query.limit = opts.limit;
|
|
@@ -1174,10 +841,6 @@ async function runDmThread(identifier, opts) {
|
|
|
1174
841
|
if (opts.limit)
|
|
1175
842
|
query.limit = opts.limit;
|
|
1176
843
|
const token = await ensureCognitoToken();
|
|
1177
|
-
if (agentCallerUid(token)) {
|
|
1178
|
-
console.error(chalk.yellow(AGENT_THREAD_UNAVAILABLE));
|
|
1179
|
-
process.exit(1);
|
|
1180
|
-
}
|
|
1181
844
|
const res = await vaultApiFetch({
|
|
1182
845
|
token,
|
|
1183
846
|
path: "/v1/notify/thread",
|
|
@@ -1232,27 +895,26 @@ async function runDmThread(identifier, opts) {
|
|
|
1232
895
|
* `hq channels`). Throws a user-facing message when nothing matches or a name is
|
|
1233
896
|
* ambiguous.
|
|
1234
897
|
*/
|
|
1235
|
-
async function
|
|
898
|
+
async function resolveChannelId(token, target) {
|
|
1236
899
|
const raw = target.trim().replace(/^#/, "");
|
|
1237
900
|
if (!raw)
|
|
1238
901
|
throw new Error("A channel name or id is required.");
|
|
1239
902
|
const channels = await fetchChannels(token);
|
|
1240
903
|
const named = matchChannelsByName(channels, raw);
|
|
1241
904
|
if (named.length === 1)
|
|
1242
|
-
return named[0];
|
|
905
|
+
return named[0].channelId;
|
|
1243
906
|
if (named.length > 1) {
|
|
1244
907
|
throw new Error(`'${raw}' matches ${named.length} channels — pass the channel id instead (see \`hq channels\`).`);
|
|
1245
908
|
}
|
|
1246
909
|
const byId = channels.find((c) => c.channelId === raw);
|
|
1247
910
|
if (byId)
|
|
1248
|
-
return byId;
|
|
911
|
+
return byId.channelId;
|
|
1249
912
|
throw new Error(`No channel named or with id '${raw}' — run \`hq channels\` to see yours.`);
|
|
1250
913
|
}
|
|
1251
914
|
async function runDmChannel(target, opts) {
|
|
1252
915
|
try {
|
|
1253
916
|
const token = await ensureCognitoToken();
|
|
1254
|
-
const
|
|
1255
|
-
const channelId = channel.channelId;
|
|
917
|
+
const channelId = await resolveChannelId(token, target);
|
|
1256
918
|
const query = {};
|
|
1257
919
|
if (opts.limit)
|
|
1258
920
|
query.limit = opts.limit;
|
|
@@ -1268,28 +930,18 @@ async function runDmChannel(target, opts) {
|
|
|
1268
930
|
}
|
|
1269
931
|
const data = (await res.json());
|
|
1270
932
|
const messages = data.messages ?? [];
|
|
1271
|
-
const
|
|
1272
|
-
const ordered = [...messages].reverse().map((message) => agentCaller ? redactAgentInboxItem(message) : message); // oldest-first for reading; agent JSON must not expose delegated context
|
|
933
|
+
const ordered = [...messages].reverse(); // oldest-first for reading
|
|
1273
934
|
if (opts.json) {
|
|
1274
935
|
console.log(JSON.stringify(ordered, null, 2));
|
|
1275
936
|
}
|
|
1276
937
|
else if (ordered.length === 0) {
|
|
1277
|
-
|
|
1278
|
-
? "personal"
|
|
1279
|
-
: channel.scope === "group"
|
|
1280
|
-
? "group"
|
|
1281
|
-
: "shared";
|
|
1282
|
-
const channelName = channel.name?.trim() || channel.slug?.trim() || channelId;
|
|
1283
|
-
const requestedTarget = target.trim().replace(/^#/, "");
|
|
1284
|
-
const sendTarget = requestedTarget === channelId
|
|
1285
|
-
? channelId
|
|
1286
|
-
: channel.slug?.trim() || requestedTarget;
|
|
1287
|
-
console.log(chalk.dim(`No messages in ${channelType} channel "${channelName}" yet.\nSend a message with: hq dm ${sendTarget} "Hello"`));
|
|
938
|
+
console.log(chalk.dim("No messages in this channel yet."));
|
|
1288
939
|
}
|
|
1289
940
|
else {
|
|
1290
941
|
console.log(chalk.green(`${ordered.length} message${ordered.length === 1 ? "" : "s"}:`));
|
|
1291
942
|
const now = Date.now();
|
|
1292
|
-
|
|
943
|
+
for (const m of ordered)
|
|
944
|
+
console.log(`\n${formatChannelMessage(m, now)}`);
|
|
1293
945
|
}
|
|
1294
946
|
if (opts.markRead) {
|
|
1295
947
|
// messages are newest-first from the server; advance the read cursor to
|
|
@@ -1317,17 +969,15 @@ export function registerDmCommand(program) {
|
|
|
1317
969
|
.description("Send and read direct messages, and manage connection requests.");
|
|
1318
970
|
dm
|
|
1319
971
|
.command("send [recipient] [message]", { isDefault: true, hidden: true })
|
|
1320
|
-
.description('Send a direct message. RECIPIENT can be a person (email, personUid, or agentUid), a GROUP DM (comma-separated: "a@x.com,b@y.com"), or one of your DM CHANNELS by name — bare (hq dm vyg-dev "hi"), hash form (hq dm "#vyg-dev" "hi"), or via --channel (hq dm --channel vyg-dev "hi"). A person receives a DM as an HQ Sync notification; an agent receives it in its durable box inbox. If you aren\'t connected yet, it sends a connection request that holds your message. See your channels with `hq channels`.\n\nCHANNEL MENTIONS: HQ mentions are structured — the server never reads `@name` out of your text, so a channel message has to carry the participants alongside the body. When you write `@name` in a channel message, this command looks the name up in the channel roster (case-insensitive on display name and slug/handle; quote multi-word names as @"Jacob Posel") and sends it as a real mention, which notifies people and wakes agents. If a name is unknown or matches more than one member, the send FAILS with the candidates instead of posting something that mentions nobody. A bare "@" or an email address in your prose is never treated as a mention. Pass --no-mentions to post the text literally
|
|
972
|
+
.description('Send a direct message. RECIPIENT can be a person (email, personUid, or agentUid), a GROUP DM (comma-separated: "a@x.com,b@y.com"), or one of your DM CHANNELS by name — bare (hq dm vyg-dev "hi"), hash form (hq dm "#vyg-dev" "hi"), or via --channel (hq dm --channel vyg-dev "hi"). A person receives a DM as an HQ Sync notification; an agent receives it in its durable box inbox. If you aren\'t connected yet, it sends a connection request that holds your message. See your channels with `hq channels`.\n\nCHANNEL MENTIONS: HQ mentions are structured — the server never reads `@name` out of your text, so a channel message has to carry the participants alongside the body. When you write `@name` in a channel message, this command looks the name up in the channel roster (case-insensitive on display name and slug/handle; quote multi-word names as @"Jacob Posel") and sends it as a real mention, which notifies people and wakes agents. If a name is unknown or matches more than one member, the send FAILS with the candidates instead of posting something that mentions nobody. A bare "@" or an email address in your prose is never treated as a mention. Pass --no-mentions to post the text literally.')
|
|
1321
973
|
.option("--channel <name>", "Post the message to one of your DM channels by name (e.g. --channel vyg-dev)")
|
|
1322
974
|
.option("--no-mentions", "Do not resolve `@name` in a channel message into structured mentions — post the text literally")
|
|
1323
|
-
.option("--thread <eventId>", 'Reply in a channel thread. Pass a root eventId from `hq dm channel`, or `last` for your most recent top-level message in that channel')
|
|
1324
975
|
.option("--prompt <text>", "Agent-context prompt the recipient can one-click copy into their agent (1:1 DMs only)")
|
|
1325
976
|
.option("--prompt-file <path>", "Read the agent prompt from a file (1:1 DMs only)")
|
|
1326
977
|
.option("--details <text>", "Longer detail shown in the recipient's DM detail window (1:1 DMs only)")
|
|
1327
978
|
.option("--details-file <path>", "Read the details from a file (1:1 DMs only)")
|
|
1328
979
|
.option("--at <iso>", "Schedule delivery at an ISO8601 time (store-and-forward; delivered within ~60s of the time; 1:1 DMs only)")
|
|
1329
980
|
.option("--in <duration>", "Schedule delivery after a relative delay: 30s, 10m, 2h, 1d (1:1 DMs only)")
|
|
1330
|
-
.option("--audience <human|agent|both>", "Tag who this message is for: human (a person must read it), agent (progress/status, hidden from humans by default), or both (1:1 DMs only)")
|
|
1331
981
|
.action(async (recipient, message, opts) => {
|
|
1332
982
|
await runDmSend(recipient, message, opts);
|
|
1333
983
|
});
|
|
@@ -1354,7 +1004,7 @@ export function registerDmCommand(program) {
|
|
|
1354
1004
|
dm
|
|
1355
1005
|
.command("channel <target>")
|
|
1356
1006
|
.alias("history")
|
|
1357
|
-
.description("Show recent messages in a DM channel or group DM — by name, #name, or a channel id from `hq channels`.
|
|
1007
|
+
.description("Show recent messages in a DM channel or group DM — by name, #name, or a channel id from `hq channels`.")
|
|
1358
1008
|
.option("--limit <n>", "Max messages to fetch (server-capped)")
|
|
1359
1009
|
.option("--mark-read", "Advance your read marker to the newest message")
|
|
1360
1010
|
.option("--json", "Output raw JSON instead of a transcript")
|
|
@@ -1369,19 +1019,19 @@ export function registerDmCommand(program) {
|
|
|
1369
1019
|
});
|
|
1370
1020
|
dm
|
|
1371
1021
|
.command("accept <person>")
|
|
1372
|
-
.description("Accept a pending connection request (by
|
|
1022
|
+
.description("Accept a pending connection request (by email, personUid, or pairKey). Their held message is then delivered.")
|
|
1373
1023
|
.action(async (person) => {
|
|
1374
1024
|
await runConnectionAction("accept", person);
|
|
1375
1025
|
});
|
|
1376
1026
|
dm
|
|
1377
1027
|
.command("decline <person>")
|
|
1378
|
-
.description("Decline a pending connection request (by
|
|
1028
|
+
.description("Decline a pending connection request (by email, personUid, or pairKey).")
|
|
1379
1029
|
.action(async (person) => {
|
|
1380
1030
|
await runConnectionAction("decline", person);
|
|
1381
1031
|
});
|
|
1382
1032
|
dm
|
|
1383
1033
|
.command("block <person>")
|
|
1384
|
-
.description("Block a person so they can't send you further requests (by
|
|
1034
|
+
.description("Block a person so they can't send you further requests (by email, personUid, or pairKey).")
|
|
1385
1035
|
.action(async (person) => {
|
|
1386
1036
|
await runConnectionAction("block", person);
|
|
1387
1037
|
});
|