@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
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* body above 64 KiB, and `diagnostics` is written into a DynamoDB item, which
|
|
7
7
|
* caps at 400 KB. Neither can be tuned into carrying a real log history, so the
|
|
8
8
|
* inline blob is deliberately a ~40 KiB summary of 16 KiB tails. This module
|
|
9
|
-
* produces the other half: a
|
|
9
|
+
* produces the other half: a gzipped bundle uploaded direct to S3, carrying the
|
|
10
10
|
* files whole rather than in tail-sized slivers.
|
|
11
11
|
*
|
|
12
12
|
* Three properties are load-bearing and none may be traded away:
|
|
@@ -25,33 +25,17 @@
|
|
|
25
25
|
* 3. BOUNDED MEMORY. 50 MB compressed is roughly a gigabyte of raw log text
|
|
26
26
|
* at the ratio these files compress at. Nothing is ever fully materialised:
|
|
27
27
|
* files are read in slices, redacted a line at a time, and streamed into
|
|
28
|
-
*
|
|
28
|
+
* gzip, with only the compressed output retained.
|
|
29
29
|
*
|
|
30
|
-
*
|
|
31
|
-
* hq-pro feedback worker, and Slack's `files.completeUploadExternal` refuses a
|
|
32
|
-
* gzip member from this app at ANY size — a 52-byte gzip was rejected with
|
|
33
|
-
* `internal_error`, while the same bytes as zip were accepted. That was the
|
|
34
|
-
* root cause of roughly 110 consecutive silent attachment failures. The worker
|
|
35
|
-
* carries a gz-to-zip repack so older CLIs still get an attachable bundle;
|
|
36
|
-
* emitting zip here means the common path never pays for that unpack, and the
|
|
37
|
-
* archive is the format the destination actually accepts.
|
|
38
|
-
*
|
|
39
|
-
* A single deflate member wrapped in a ZIP32 container, one entry. The stream
|
|
40
|
-
* is raw deflate so the container's own CRC and sizes are the only integrity
|
|
41
|
-
* record; crc32 is folded in incrementally as lines are written, and the local
|
|
42
|
-
* header, central directory, and EOCD are assembled once at finish. The size
|
|
43
|
-
* budget is charged on the container, not the member, so the ~98 bytes of
|
|
44
|
-
* framing can never be what pushes an upload past the server's ceiling.
|
|
45
|
-
*
|
|
46
|
-
* Output format inside the entry — NDJSON, one JSON record per line:
|
|
30
|
+
* Output format — gzipped NDJSON, one JSON record per line:
|
|
47
31
|
* {"kind":"manifest","version":1,...} exactly one, first
|
|
48
32
|
* {"kind":"file","name":"logs/hq-sync.log",...} one per file
|
|
49
33
|
* {"kind":"chunk","name":"logs/hq-sync.log","seq":0,...} many per file
|
|
50
34
|
* {"kind":"summary","fileCount":12,...} exactly one, last
|
|
51
35
|
*
|
|
52
|
-
* NDJSON
|
|
53
|
-
*
|
|
54
|
-
*
|
|
36
|
+
* NDJSON rather than tar so there is no archive dependency, so a truncated
|
|
37
|
+
* bundle is still parseable line-by-line up to the cut, and so the records
|
|
38
|
+
* carry the same redaction metadata the inline blob already reports.
|
|
55
39
|
*/
|
|
56
40
|
import * as fs from "node:fs";
|
|
57
41
|
import * as os from "node:os";
|
|
@@ -66,29 +50,22 @@ import { vaultApiFetch } from "./vault-api.js";
|
|
|
66
50
|
* stay in step or the CLI will build bundles the server will not accept.
|
|
67
51
|
*/
|
|
68
52
|
export const LOG_BUNDLE_MAX_BYTES = 50 * 1024 * 1024;
|
|
69
|
-
/**
|
|
70
|
-
* What the presign request declares, and what the server must answer with.
|
|
71
|
-
* Mirrors `LOG_BUNDLE_FORMAT_ZIP` / `LOG_BUNDLE_ZIP_CONTENT_TYPE` in the hq-pro
|
|
72
|
-
* handler `feedback-log-bundles.ts`.
|
|
73
|
-
*/
|
|
74
|
-
const LOG_BUNDLE_FORMAT = "zip";
|
|
75
|
-
const LOG_BUNDLE_CONTENT_TYPE = "application/zip";
|
|
76
53
|
/**
|
|
77
54
|
* Headroom between the size we stop feeding at and the hard cap.
|
|
78
55
|
*
|
|
79
|
-
*
|
|
56
|
+
* gzip reports compressed bytes only as its internal buffer flushes, so the
|
|
80
57
|
* running total lags the bytes actually consumed. The lag is bounded by that
|
|
81
58
|
* buffer (tens of KiB); a 1 MiB margin covers it with three orders of magnitude
|
|
82
59
|
* to spare, and the final size is asserted against the real cap regardless.
|
|
83
60
|
*/
|
|
84
|
-
const LOG_BUNDLE_SAFETY_MARGIN_BYTES = 1024 * 1024;
|
|
61
|
+
export const LOG_BUNDLE_SAFETY_MARGIN_BYTES = 1024 * 1024;
|
|
85
62
|
/**
|
|
86
63
|
* Per-file raw ceiling. The desktop logger rotates at 32 MiB (hq-desktop-core
|
|
87
64
|
* `logfile.rs`), so this admits a full generation with headroom while stopping
|
|
88
65
|
* one pathological file from consuming the whole bundle. Files above it are
|
|
89
66
|
* read from the TAIL — the end of a log is what explains a failure.
|
|
90
67
|
*/
|
|
91
|
-
const LOG_BUNDLE_MAX_FILE_RAW_BYTES = 64 * 1024 * 1024;
|
|
68
|
+
export const LOG_BUNDLE_MAX_FILE_RAW_BYTES = 64 * 1024 * 1024;
|
|
92
69
|
/** Read slice size. Bounds peak memory; unrelated to the output chunking. */
|
|
93
70
|
const READ_SLICE_BYTES = 4 * 1024 * 1024;
|
|
94
71
|
/** Target raw text per emitted chunk record. Keeps NDJSON lines manageable. */
|
|
@@ -155,171 +132,24 @@ export function orderBundleCandidates(hqDir) {
|
|
|
155
132
|
const logs = discoverLogFiles(hqDir).sort((a, b) => b.modifiedMs - a.modifiedMs || a.name.localeCompare(b.name));
|
|
156
133
|
return [...state, ...logs];
|
|
157
134
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
* tells a triager (and `jq`) what is inside once it is unzipped.
|
|
161
|
-
*/
|
|
162
|
-
export const LOG_BUNDLE_ENTRY_NAME = "hq-logs.ndjson";
|
|
163
|
-
/**
|
|
164
|
-
* ZIP32 stores the uncompressed size in 32 bits, so a bundle whose contents
|
|
165
|
-
* exceed 4 GiB cannot be described by the container at all.
|
|
166
|
-
*
|
|
167
|
-
* The compressed cap does not prevent this. Log text compresses at roughly 24x
|
|
168
|
-
* in practice but there is no upper bound on the ratio — repetitive logs go
|
|
169
|
-
* far higher — and discovery admits an unbounded number of files at up to
|
|
170
|
-
* {@link LOG_BUNDLE_MAX_FILE_RAW_BYTES} each. Collection stops at the line
|
|
171
|
-
* below and reports `truncated`, which is what the caller already handles;
|
|
172
|
-
* without it `writeUInt32LE` throws at finish and the outer catch discards the
|
|
173
|
-
* whole bundle, so the installation with the most logs would send none.
|
|
174
|
-
*/
|
|
175
|
-
const ZIP32_MAX_UNCOMPRESSED_BYTES = 0xffffffff;
|
|
176
|
-
/**
|
|
177
|
-
* Room left below the ZIP32 ceiling for the chunk in flight plus the closing
|
|
178
|
-
* summary record. A chunk is written whole before the budget is re-checked.
|
|
179
|
-
*/
|
|
180
|
-
const ZIP32_UNCOMPRESSED_MARGIN_BYTES = 1024 * 1024;
|
|
181
|
-
/** The line collection actually stops at. Never above what ZIP32 can describe. */
|
|
182
|
-
export const ZIP32_UNCOMPRESSED_STOP_BYTES = ZIP32_MAX_UNCOMPRESSED_BYTES - ZIP32_UNCOMPRESSED_MARGIN_BYTES;
|
|
183
|
-
/**
|
|
184
|
-
* Resolve the entry ceiling a caller asked for. A caller may lower it; nothing
|
|
185
|
-
* may raise it past what the container can describe, because a ceiling above
|
|
186
|
-
* the format's limit is not a ceiling at all.
|
|
187
|
-
*/
|
|
188
|
-
export function entryCeiling(requested) {
|
|
189
|
-
if (requested === undefined || !Number.isFinite(requested)) {
|
|
190
|
-
return ZIP32_UNCOMPRESSED_STOP_BYTES;
|
|
191
|
-
}
|
|
192
|
-
return Math.max(0, Math.min(requested, ZIP32_UNCOMPRESSED_STOP_BYTES));
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* crc32 with a fallback, because `zlib.crc32` is newer than this package's
|
|
196
|
-
* floor: it landed in Node 22.2.0 and was backported only to 20.15.0, while
|
|
197
|
-
* `engines.node` is `>=20.0.0`. On Node 20.0-20.14 and 21.x the native call is
|
|
198
|
-
* undefined, the first sink write throws, and `buildLogBundle` catches it and
|
|
199
|
-
* returns undefined — every report on those runtimes silently loses its log
|
|
200
|
-
* bundle. The table is built once, on first use, and only when needed.
|
|
201
|
-
*/
|
|
202
|
-
let crcTable = null;
|
|
203
|
-
export function crc32Fallback(buf, seed = 0) {
|
|
204
|
-
if (!crcTable) {
|
|
205
|
-
crcTable = new Uint32Array(256);
|
|
206
|
-
for (let i = 0; i < 256; i++) {
|
|
207
|
-
let c = i;
|
|
208
|
-
for (let k = 0; k < 8; k++)
|
|
209
|
-
c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
210
|
-
crcTable[i] = c >>> 0;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
let crc = ~seed >>> 0;
|
|
214
|
-
for (let i = 0; i < buf.length; i++) {
|
|
215
|
-
crc = (crcTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8)) >>> 0;
|
|
216
|
-
}
|
|
217
|
-
return (~crc >>> 0) >>> 0;
|
|
218
|
-
}
|
|
219
|
-
/** Exported for the test that proves the fallback agrees with the native one. */
|
|
220
|
-
function crc32(buf, seed = 0) {
|
|
221
|
-
const native = zlib.crc32;
|
|
222
|
-
return typeof native === "function" ? native(buf, seed) : crc32Fallback(buf, seed);
|
|
223
|
-
}
|
|
224
|
-
/** Local file header, central directory header, and EOCD signatures. */
|
|
225
|
-
const ZIP_LOCAL_SIG = 0x04034b50;
|
|
226
|
-
const ZIP_CENTRAL_SIG = 0x02014b50;
|
|
227
|
-
const ZIP_EOCD_SIG = 0x06054b50;
|
|
228
|
-
/** Deflate, no data descriptor: sizes and CRC are known before a header is written. */
|
|
229
|
-
const ZIP_METHOD_DEFLATE = 8;
|
|
230
|
-
const ZIP_VERSION = 20;
|
|
231
|
-
/**
|
|
232
|
-
* A fixed MS-DOS timestamp, so the same logs produce the same bytes.
|
|
233
|
-
*
|
|
234
|
-
* Deliberately not the wall clock: a bundle's timing lives in the manifest
|
|
235
|
-
* record, which is redacted content the recipient can read, rather than in
|
|
236
|
-
* archive metadata that no tool here surfaces. 0x0021 is 1980-01-01, the
|
|
237
|
-
* earliest the format can represent.
|
|
238
|
-
*/
|
|
239
|
-
const ZIP_DOS_TIME = 0;
|
|
240
|
-
const ZIP_DOS_DATE = 0x0021;
|
|
241
|
-
/**
|
|
242
|
-
* Bytes of ZIP framing around one entry: local header, central directory
|
|
243
|
-
* header, end-of-central-directory. The name is stored twice.
|
|
244
|
-
*/
|
|
245
|
-
export function zipOverheadBytes(entryName) {
|
|
246
|
-
return 30 + 46 + 22 + Buffer.byteLength(entryName, "utf8") * 2;
|
|
247
|
-
}
|
|
248
|
-
function createZipSink(entryName = LOG_BUNDLE_ENTRY_NAME, maxUncompressed = ZIP32_UNCOMPRESSED_STOP_BYTES) {
|
|
249
|
-
const name = Buffer.from(entryName, "utf8");
|
|
250
|
-
const deflate = zlib.createDeflateRaw({ level: 9 });
|
|
135
|
+
function createGzipSink() {
|
|
136
|
+
const gzip = zlib.createGzip({ level: 9 });
|
|
251
137
|
const parts = [];
|
|
252
|
-
const overhead = zipOverheadBytes(entryName);
|
|
253
138
|
let compressed = 0;
|
|
254
|
-
let uncompressed = 0;
|
|
255
|
-
let crc = 0;
|
|
256
139
|
let failure = null;
|
|
257
|
-
|
|
140
|
+
gzip.on("data", (chunk) => {
|
|
258
141
|
parts.push(chunk);
|
|
259
142
|
compressed += chunk.byteLength;
|
|
260
143
|
});
|
|
261
|
-
|
|
144
|
+
gzip.on("error", (err) => {
|
|
262
145
|
failure = err;
|
|
263
146
|
});
|
|
264
|
-
function container(body) {
|
|
265
|
-
const local = Buffer.alloc(30);
|
|
266
|
-
local.writeUInt32LE(ZIP_LOCAL_SIG, 0);
|
|
267
|
-
local.writeUInt16LE(ZIP_VERSION, 4);
|
|
268
|
-
local.writeUInt16LE(0, 6); // flags
|
|
269
|
-
local.writeUInt16LE(ZIP_METHOD_DEFLATE, 8);
|
|
270
|
-
local.writeUInt16LE(ZIP_DOS_TIME, 10);
|
|
271
|
-
local.writeUInt16LE(ZIP_DOS_DATE, 12);
|
|
272
|
-
local.writeUInt32LE(crc >>> 0, 14);
|
|
273
|
-
local.writeUInt32LE(body.byteLength, 18);
|
|
274
|
-
local.writeUInt32LE(uncompressed, 22);
|
|
275
|
-
local.writeUInt16LE(name.byteLength, 26);
|
|
276
|
-
local.writeUInt16LE(0, 28); // extra length
|
|
277
|
-
const central = Buffer.alloc(46);
|
|
278
|
-
central.writeUInt32LE(ZIP_CENTRAL_SIG, 0);
|
|
279
|
-
central.writeUInt16LE(ZIP_VERSION, 4); // version made by
|
|
280
|
-
central.writeUInt16LE(ZIP_VERSION, 6); // version needed
|
|
281
|
-
central.writeUInt16LE(0, 8); // flags
|
|
282
|
-
central.writeUInt16LE(ZIP_METHOD_DEFLATE, 10);
|
|
283
|
-
central.writeUInt16LE(ZIP_DOS_TIME, 12);
|
|
284
|
-
central.writeUInt16LE(ZIP_DOS_DATE, 14);
|
|
285
|
-
central.writeUInt32LE(crc >>> 0, 16);
|
|
286
|
-
central.writeUInt32LE(body.byteLength, 20);
|
|
287
|
-
central.writeUInt32LE(uncompressed, 24);
|
|
288
|
-
central.writeUInt16LE(name.byteLength, 28);
|
|
289
|
-
central.writeUInt16LE(0, 30); // extra
|
|
290
|
-
central.writeUInt16LE(0, 32); // comment
|
|
291
|
-
central.writeUInt16LE(0, 34); // disk number start
|
|
292
|
-
central.writeUInt16LE(0, 36); // internal attrs
|
|
293
|
-
central.writeUInt32LE(0, 38); // external attrs
|
|
294
|
-
central.writeUInt32LE(0, 42); // local header offset
|
|
295
|
-
const centralSize = central.byteLength + name.byteLength;
|
|
296
|
-
const centralOffset = local.byteLength + name.byteLength + body.byteLength;
|
|
297
|
-
const eocd = Buffer.alloc(22);
|
|
298
|
-
eocd.writeUInt32LE(ZIP_EOCD_SIG, 0);
|
|
299
|
-
eocd.writeUInt16LE(0, 4); // this disk
|
|
300
|
-
eocd.writeUInt16LE(0, 6); // disk with central dir
|
|
301
|
-
eocd.writeUInt16LE(1, 8); // entries on this disk
|
|
302
|
-
eocd.writeUInt16LE(1, 10); // entries total
|
|
303
|
-
eocd.writeUInt32LE(centralSize, 12);
|
|
304
|
-
eocd.writeUInt32LE(centralOffset, 16);
|
|
305
|
-
eocd.writeUInt16LE(0, 20); // comment length
|
|
306
|
-
return Buffer.concat([local, name, body, central, name, eocd]);
|
|
307
|
-
}
|
|
308
147
|
return {
|
|
309
|
-
|
|
310
|
-
// container can never be what carries the upload over the server's cap.
|
|
311
|
-
compressedBytes: () => overhead + compressed,
|
|
312
|
-
atUncompressedLimit: () => uncompressed > maxUncompressed,
|
|
148
|
+
compressedBytes: () => compressed,
|
|
313
149
|
write: (line) => new Promise((resolve, reject) => {
|
|
314
150
|
if (failure)
|
|
315
151
|
return reject(failure);
|
|
316
|
-
|
|
317
|
-
// Folded in as we go: the whole point of this module is that the
|
|
318
|
-
// uncompressed text is never materialised, so there is nothing to
|
|
319
|
-
// checksum at the end.
|
|
320
|
-
crc = crc32(buf, crc);
|
|
321
|
-
uncompressed += buf.byteLength;
|
|
322
|
-
deflate.write(buf, (err) => (err ? reject(err) : resolve()));
|
|
152
|
+
gzip.write(line, "utf8", (err) => (err ? reject(err) : resolve()));
|
|
323
153
|
}),
|
|
324
154
|
// Z_SYNC_FLUSH costs a handful of bytes per boundary and a little ratio.
|
|
325
155
|
// That is the price of a budget that is enforced rather than estimated:
|
|
@@ -329,13 +159,13 @@ function createZipSink(entryName = LOG_BUNDLE_ENTRY_NAME, maxUncompressed = ZIP3
|
|
|
329
159
|
sync: () => new Promise((resolve, reject) => {
|
|
330
160
|
if (failure)
|
|
331
161
|
return reject(failure);
|
|
332
|
-
|
|
162
|
+
gzip.flush(zlib.constants.Z_SYNC_FLUSH, () => resolve());
|
|
333
163
|
}),
|
|
334
164
|
finish: () => new Promise((resolve, reject) => {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
165
|
+
gzip.on("end", () => (failure ? reject(failure) : resolve(Buffer.concat(parts))));
|
|
166
|
+
gzip.on("error", reject);
|
|
167
|
+
gzip.end();
|
|
168
|
+
gzip.resume();
|
|
339
169
|
}),
|
|
340
170
|
};
|
|
341
171
|
}
|
|
@@ -438,7 +268,7 @@ export async function streamRedactedFile(absPath, sizeBytes, maxRawBytes, chunkB
|
|
|
438
268
|
}
|
|
439
269
|
}
|
|
440
270
|
/**
|
|
441
|
-
* Build a
|
|
271
|
+
* Build a gzipped NDJSON bundle of the submitter's redacted `~/.hq` logs.
|
|
442
272
|
*
|
|
443
273
|
* Returns `undefined` when nothing eligible exists, so the caller can skip the
|
|
444
274
|
* upload entirely. Never throws: a bug report must not fail over its own
|
|
@@ -464,7 +294,7 @@ export async function buildLogBundle(opts = {}) {
|
|
|
464
294
|
if (candidates.length === 0)
|
|
465
295
|
return undefined;
|
|
466
296
|
try {
|
|
467
|
-
const sink =
|
|
297
|
+
const sink = createGzipSink();
|
|
468
298
|
let fileCount = 0;
|
|
469
299
|
let rawBytes = 0;
|
|
470
300
|
let redactions = 0;
|
|
@@ -479,7 +309,7 @@ export async function buildLogBundle(opts = {}) {
|
|
|
479
309
|
}));
|
|
480
310
|
for (const candidate of candidates) {
|
|
481
311
|
await sink.sync();
|
|
482
|
-
if (sink.compressedBytes() > stopAt
|
|
312
|
+
if (sink.compressedBytes() > stopAt) {
|
|
483
313
|
truncated = true;
|
|
484
314
|
break;
|
|
485
315
|
}
|
|
@@ -504,7 +334,7 @@ export async function buildLogBundle(opts = {}) {
|
|
|
504
334
|
// Stop feeding once the compressed total reaches the stop line.
|
|
505
335
|
// The sync is what makes that total trustworthy.
|
|
506
336
|
await sink.sync();
|
|
507
|
-
return sink.compressedBytes() <= stopAt
|
|
337
|
+
return sink.compressedBytes() <= stopAt;
|
|
508
338
|
});
|
|
509
339
|
stopped = result.stopped;
|
|
510
340
|
}
|
|
@@ -519,18 +349,18 @@ export async function buildLogBundle(opts = {}) {
|
|
|
519
349
|
}
|
|
520
350
|
}
|
|
521
351
|
await sink.write(record({ kind: "summary", fileCount, rawBytes, redactions, truncated }));
|
|
522
|
-
const
|
|
352
|
+
const gzip = await sink.finish();
|
|
523
353
|
// Nothing but a manifest and a summary is not worth uploading.
|
|
524
354
|
if (fileCount === 0)
|
|
525
355
|
return undefined;
|
|
526
356
|
// Final authority. The stop line plus margin should make this unreachable,
|
|
527
357
|
// but the server refuses to presign above the cap, so a bundle that
|
|
528
358
|
// overshot is useless and must not be offered.
|
|
529
|
-
if (
|
|
359
|
+
if (gzip.byteLength > maxBytes)
|
|
530
360
|
return undefined;
|
|
531
361
|
return {
|
|
532
|
-
|
|
533
|
-
sizeBytes:
|
|
362
|
+
gzip,
|
|
363
|
+
sizeBytes: gzip.byteLength,
|
|
534
364
|
fileCount,
|
|
535
365
|
truncated,
|
|
536
366
|
rawBytes,
|
|
@@ -565,10 +395,7 @@ export async function uploadLogBundle(opts) {
|
|
|
565
395
|
token: opts.token,
|
|
566
396
|
path: "/v1/feedback/logs/presign",
|
|
567
397
|
method: "POST",
|
|
568
|
-
|
|
569
|
-
// told which format is coming; without this it mints a `.ndjson.gz` slot
|
|
570
|
-
// signed `application/gzip` and the PUT would be a lie on both counts.
|
|
571
|
-
body: { sizeBytes: bundle.sizeBytes, format: LOG_BUNDLE_FORMAT },
|
|
398
|
+
body: { sizeBytes: bundle.sizeBytes },
|
|
572
399
|
});
|
|
573
400
|
if (!res.ok)
|
|
574
401
|
return undefined;
|
|
@@ -577,22 +404,15 @@ export async function uploadLogBundle(opts) {
|
|
|
577
404
|
if (!slot || typeof slot.key !== "string" || typeof slot.url !== "string") {
|
|
578
405
|
return undefined;
|
|
579
406
|
}
|
|
580
|
-
// A server too old to know about `format` answers with a gzip slot. Its
|
|
581
|
-
// signature binds `application/gzip` and its key claims `.gz`, and these
|
|
582
|
-
// bytes are neither. Skipping is the honest outcome and costs only the
|
|
583
|
-
// bundle — the submission still carries the inline logs, which is exactly
|
|
584
|
-
// what happens when bundles are disabled entirely.
|
|
585
|
-
if (slot.contentType !== LOG_BUNDLE_CONTENT_TYPE)
|
|
586
|
-
return undefined;
|
|
587
407
|
const doFetch = opts.fetchImpl ?? fetch;
|
|
588
408
|
const put = await doFetch(slot.url, {
|
|
589
409
|
method: "PUT",
|
|
590
410
|
headers: {
|
|
591
|
-
"Content-Type": slot.contentType,
|
|
411
|
+
"Content-Type": typeof slot.contentType === "string" ? slot.contentType : "application/gzip",
|
|
592
412
|
// Must match the length bound into the signature, or S3 rejects it.
|
|
593
413
|
"Content-Length": String(bundle.sizeBytes),
|
|
594
414
|
},
|
|
595
|
-
body: new Uint8Array(bundle.
|
|
415
|
+
body: new Uint8Array(bundle.gzip),
|
|
596
416
|
});
|
|
597
417
|
if (!put.ok)
|
|
598
418
|
return undefined;
|
|
@@ -13,9 +13,8 @@
|
|
|
13
13
|
* (`hq-sync.log.1`, `.2`, `.3`) are eligible too — just after a rotation
|
|
14
14
|
* the active file is nearly empty and the history lives in `.1`.
|
|
15
15
|
* `logs/mcp-registry.log` is the CLI's own append-only MCP audit trail.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* attached.
|
|
16
|
+
* Any future `*.log`/`*.jsonl` dropped into `~/.hq/logs/` is picked up
|
|
17
|
+
* automatically.
|
|
19
18
|
*
|
|
20
19
|
* - STATE SNAPSHOTS (`state`) — small JSON files that describe where sync
|
|
21
20
|
* and client health currently stand: the in-flight sync phase and conflict
|
|
@@ -37,9 +36,8 @@
|
|
|
37
36
|
*
|
|
38
37
|
* 1. ALLOWLIST, NOT A SCAN. `~/.hq` also holds `cognito-tokens.json`,
|
|
39
38
|
* `deploy-passwords.json`, and `secrets-cache/`. Only `*.log` files
|
|
40
|
-
* directly inside `~/.hq/logs
|
|
41
|
-
*
|
|
42
|
-
* logs are eligible. A recursive walk over `~/.hq` is a credential leak
|
|
39
|
+
* directly inside `~/.hq/logs/` plus the two known root-level boot logs
|
|
40
|
+
* are ever eligible. A recursive walk over `~/.hq` is a credential leak
|
|
43
41
|
* and must never be introduced here.
|
|
44
42
|
*
|
|
45
43
|
* 2. NO SYMLINKS. Eligibility is decided with `lstat`, and a candidate must
|
|
@@ -84,6 +82,13 @@ export declare const FEEDBACK_LOGS_MIN_USEFUL_BYTES = 1024;
|
|
|
84
82
|
* evidence. The overflow count preserves the signal without the bytes.
|
|
85
83
|
*/
|
|
86
84
|
export declare const FEEDBACK_MAX_SKIPPED_ENTRIES = 25;
|
|
85
|
+
/** Subdirectory of `~/.hq` whose log files are eligible. Not recursive. */
|
|
86
|
+
export declare const FEEDBACK_LOGS_DIRNAME = "logs";
|
|
87
|
+
/**
|
|
88
|
+
* Eligible extensions inside `~/.hq/logs/`. `.jsonl` is included because the
|
|
89
|
+
* CLI's MCP registry audit trail is JSON-lines, not plain text.
|
|
90
|
+
*/
|
|
91
|
+
export declare const FEEDBACK_LOG_EXTENSIONS: readonly string[];
|
|
87
92
|
/**
|
|
88
93
|
* True for a log filename, including a ROTATED generation.
|
|
89
94
|
*
|
|
@@ -96,6 +101,26 @@ export declare const FEEDBACK_MAX_SKIPPED_ENTRIES = 25;
|
|
|
96
101
|
export declare function isEligibleLogName(name: string): boolean;
|
|
97
102
|
/** Per-state-file ceiling. These are status documents, not streams. */
|
|
98
103
|
export declare const FEEDBACK_STATE_MAX_FILE_BYTES: number;
|
|
104
|
+
/**
|
|
105
|
+
* Ceiling on all state snapshots combined. Deliberately a small slice of the
|
|
106
|
+
* overall budget: state is dense but finite, and the rest belongs to logs.
|
|
107
|
+
*/
|
|
108
|
+
export declare const FEEDBACK_STATE_MAX_TOTAL_BYTES: number;
|
|
109
|
+
/**
|
|
110
|
+
* State files at the `~/.hq` ROOT that are eligible, by EXACT name.
|
|
111
|
+
*
|
|
112
|
+
* The root is where `cognito-tokens.json`, `deploy-passwords.json`, and
|
|
113
|
+
* `secrets-cache/` live, so it is never globbed. Adding a name here is a
|
|
114
|
+
* deliberate act: confirm the file carries no credential before listing it.
|
|
115
|
+
*/
|
|
116
|
+
export declare const FEEDBACK_STATE_FILENAMES: readonly string[];
|
|
117
|
+
/**
|
|
118
|
+
* Per-company sync journal LOCATORS (`sync-journal.<slug>.json`) are also
|
|
119
|
+
* eligible. Matched by an exact prefix AND a `.json` suffix, which is what
|
|
120
|
+
* excludes the multi-hundred-megabyte `…json.last-good` snapshots sitting
|
|
121
|
+
* beside them. No credential file at the root carries this prefix.
|
|
122
|
+
*/
|
|
123
|
+
export declare const FEEDBACK_STATE_JOURNAL_PREFIX = "sync-journal.";
|
|
99
124
|
/**
|
|
100
125
|
* `~/.hq/locks/` — held operation locks and background-work claims.
|
|
101
126
|
*
|
|
@@ -114,6 +139,8 @@ export declare const FEEDBACK_LOCKS_DIRNAME = "locks";
|
|
|
114
139
|
* bounds that walk carries.
|
|
115
140
|
*/
|
|
116
141
|
export declare const FEEDBACK_JOBS_DIRNAME = "jobs";
|
|
142
|
+
/** Per-entry ceiling for a lock file. Their value is the name plus a little context. */
|
|
143
|
+
export declare const FEEDBACK_LOCK_MAX_FILE_BYTES = 512;
|
|
117
144
|
/**
|
|
118
145
|
* Bounds on the `jobs/` walk. Depth 3 reaches
|
|
119
146
|
* `jobs/probes/<job>/last-attempt.json`; the file cap stops a pathological
|
|
@@ -123,9 +150,15 @@ export declare const FEEDBACK_JOBS_MAX_DEPTH = 3;
|
|
|
123
150
|
export declare const FEEDBACK_JOBS_MAX_FILES = 20;
|
|
124
151
|
/** Ceiling on how many lock entries are collected. */
|
|
125
152
|
export declare const FEEDBACK_LOCKS_MAX_FILES = 20;
|
|
153
|
+
/**
|
|
154
|
+
* Log files that live at the root of `~/.hq` rather than under `logs/`.
|
|
155
|
+
* Listed explicitly — the root directory holds credentials and must never be
|
|
156
|
+
* enumerated by pattern.
|
|
157
|
+
*/
|
|
158
|
+
export declare const FEEDBACK_ROOT_LOG_FILENAMES: readonly string[];
|
|
126
159
|
/** Why a discovered log file contributed nothing to the submission. */
|
|
127
|
-
type SkipReason = "budget" | "empty" | "unreadable";
|
|
128
|
-
interface LogTail {
|
|
160
|
+
export type SkipReason = "budget" | "empty" | "unreadable";
|
|
161
|
+
export interface LogTail {
|
|
129
162
|
/** Path relative to `~/.hq`, e.g. `logs/hq-sync.log`. Never absolute. */
|
|
130
163
|
name: string;
|
|
131
164
|
/** Full on-disk size, even when only a tail was included. */
|
|
@@ -142,7 +175,7 @@ interface LogTail {
|
|
|
142
175
|
tail: string;
|
|
143
176
|
}
|
|
144
177
|
/** A small JSON status document included whole (or head-truncated). */
|
|
145
|
-
interface StateSnapshot {
|
|
178
|
+
export interface StateSnapshot {
|
|
146
179
|
/** Path relative to `~/.hq`, e.g. `sync-progress.json`. Never absolute. */
|
|
147
180
|
name: string;
|
|
148
181
|
sizeBytes: number;
|
|
@@ -202,13 +235,12 @@ export declare function feedbackLogsEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
|
202
235
|
* Enumerate eligible log files under `hqDir`.
|
|
203
236
|
*
|
|
204
237
|
* Eligibility is the allowlist described in the module header: `*.log` files
|
|
205
|
-
* directly inside `hqDir/logs/`,
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
* before older ones.
|
|
238
|
+
* directly inside `hqDir/logs/`, plus {@link FEEDBACK_ROOT_LOG_FILENAMES} at
|
|
239
|
+
* the root. Every candidate must be a REGULAR file by `lstat` — directories
|
|
240
|
+
* and, critically, symlinks are rejected. Returned newest-modified first so
|
|
241
|
+
* the most relevant log is offered the budget before older ones.
|
|
210
242
|
*/
|
|
211
|
-
export declare function discoverLogFiles(hqDir: string
|
|
243
|
+
export declare function discoverLogFiles(hqDir: string): LogCandidate[];
|
|
212
244
|
/**
|
|
213
245
|
* Read the last `maxBytes` of a file.
|
|
214
246
|
*
|
|
@@ -282,8 +314,6 @@ export interface CollectFeedbackLogsOptions {
|
|
|
282
314
|
hqDir?: string;
|
|
283
315
|
/** Override the home directory used to derive `~/.hq` (tests). */
|
|
284
316
|
homeDir?: string;
|
|
285
|
-
/** Override process environment for configured log paths (tests). */
|
|
286
|
-
env?: NodeJS.ProcessEnv;
|
|
287
317
|
}
|
|
288
318
|
/**
|
|
289
319
|
* Collect redacted `~/.hq` evidence within `budgetBytes`.
|
|
@@ -296,5 +326,4 @@ export interface CollectFeedbackLogsOptions {
|
|
|
296
326
|
* omit the field entirely rather than attach an empty object. Never throws.
|
|
297
327
|
*/
|
|
298
328
|
export declare function collectFeedbackLogs(opts?: CollectFeedbackLogsOptions): FeedbackLogsBlob | undefined;
|
|
299
|
-
export {};
|
|
300
329
|
//# sourceMappingURL=feedback-logs.d.ts.map
|
|
@@ -13,9 +13,8 @@
|
|
|
13
13
|
* (`hq-sync.log.1`, `.2`, `.3`) are eligible too — just after a rotation
|
|
14
14
|
* the active file is nearly empty and the history lives in `.1`.
|
|
15
15
|
* `logs/mcp-registry.log` is the CLI's own append-only MCP audit trail.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* attached.
|
|
16
|
+
* Any future `*.log`/`*.jsonl` dropped into `~/.hq/logs/` is picked up
|
|
17
|
+
* automatically.
|
|
19
18
|
*
|
|
20
19
|
* - STATE SNAPSHOTS (`state`) — small JSON files that describe where sync
|
|
21
20
|
* and client health currently stand: the in-flight sync phase and conflict
|
|
@@ -37,9 +36,8 @@
|
|
|
37
36
|
*
|
|
38
37
|
* 1. ALLOWLIST, NOT A SCAN. `~/.hq` also holds `cognito-tokens.json`,
|
|
39
38
|
* `deploy-passwords.json`, and `secrets-cache/`. Only `*.log` files
|
|
40
|
-
* directly inside `~/.hq/logs
|
|
41
|
-
*
|
|
42
|
-
* logs are eligible. A recursive walk over `~/.hq` is a credential leak
|
|
39
|
+
* directly inside `~/.hq/logs/` plus the two known root-level boot logs
|
|
40
|
+
* are ever eligible. A recursive walk over `~/.hq` is a credential leak
|
|
43
41
|
* and must never be introduced here.
|
|
44
42
|
*
|
|
45
43
|
* 2. NO SYMLINKS. Eligibility is decided with `lstat`, and a candidate must
|
|
@@ -60,7 +58,6 @@
|
|
|
60
58
|
import * as fs from "node:fs";
|
|
61
59
|
import * as os from "node:os";
|
|
62
60
|
import * as path from "node:path";
|
|
63
|
-
import { currentSyncLogFamily, SYNC_LOG_RELATIVE_PATHS, SYNC_LOG_GENERATIONS, syncLogBasePaths, syncLogFamilyForRelativePath, syncLogGenerationPath, } from "./sync-log-sources.js";
|
|
64
61
|
/**
|
|
65
62
|
* Ceiling on the total redacted log text attached to one submission.
|
|
66
63
|
*
|
|
@@ -89,12 +86,12 @@ export const FEEDBACK_LOGS_MIN_USEFUL_BYTES = 1024;
|
|
|
89
86
|
*/
|
|
90
87
|
export const FEEDBACK_MAX_SKIPPED_ENTRIES = 25;
|
|
91
88
|
/** Subdirectory of `~/.hq` whose log files are eligible. Not recursive. */
|
|
92
|
-
const FEEDBACK_LOGS_DIRNAME = "logs";
|
|
89
|
+
export const FEEDBACK_LOGS_DIRNAME = "logs";
|
|
93
90
|
/**
|
|
94
91
|
* Eligible extensions inside `~/.hq/logs/`. `.jsonl` is included because the
|
|
95
92
|
* CLI's MCP registry audit trail is JSON-lines, not plain text.
|
|
96
93
|
*/
|
|
97
|
-
const FEEDBACK_LOG_EXTENSIONS = [".log", ".jsonl"];
|
|
94
|
+
export const FEEDBACK_LOG_EXTENSIONS = [".log", ".jsonl"];
|
|
98
95
|
/**
|
|
99
96
|
* True for a log filename, including a ROTATED generation.
|
|
100
97
|
*
|
|
@@ -120,7 +117,7 @@ export const FEEDBACK_STATE_MAX_FILE_BYTES = 4 * 1024;
|
|
|
120
117
|
* Ceiling on all state snapshots combined. Deliberately a small slice of the
|
|
121
118
|
* overall budget: state is dense but finite, and the rest belongs to logs.
|
|
122
119
|
*/
|
|
123
|
-
const FEEDBACK_STATE_MAX_TOTAL_BYTES = 12 * 1024;
|
|
120
|
+
export const FEEDBACK_STATE_MAX_TOTAL_BYTES = 12 * 1024;
|
|
124
121
|
/**
|
|
125
122
|
* State files at the `~/.hq` ROOT that are eligible, by EXACT name.
|
|
126
123
|
*
|
|
@@ -128,7 +125,7 @@ const FEEDBACK_STATE_MAX_TOTAL_BYTES = 12 * 1024;
|
|
|
128
125
|
* `secrets-cache/` live, so it is never globbed. Adding a name here is a
|
|
129
126
|
* deliberate act: confirm the file carries no credential before listing it.
|
|
130
127
|
*/
|
|
131
|
-
const FEEDBACK_STATE_FILENAMES = [
|
|
128
|
+
export const FEEDBACK_STATE_FILENAMES = [
|
|
132
129
|
// In-flight sync: phase, file counts, conflict count, current file.
|
|
133
130
|
"sync-progress.json",
|
|
134
131
|
// Sync contract version the installation last wrote.
|
|
@@ -150,7 +147,7 @@ const FEEDBACK_STATE_FILENAMES = [
|
|
|
150
147
|
* excludes the multi-hundred-megabyte `…json.last-good` snapshots sitting
|
|
151
148
|
* beside them. No credential file at the root carries this prefix.
|
|
152
149
|
*/
|
|
153
|
-
const FEEDBACK_STATE_JOURNAL_PREFIX = "sync-journal.";
|
|
150
|
+
export const FEEDBACK_STATE_JOURNAL_PREFIX = "sync-journal.";
|
|
154
151
|
/**
|
|
155
152
|
* `~/.hq/locks/` — held operation locks and background-work claims.
|
|
156
153
|
*
|
|
@@ -170,7 +167,7 @@ export const FEEDBACK_LOCKS_DIRNAME = "locks";
|
|
|
170
167
|
*/
|
|
171
168
|
export const FEEDBACK_JOBS_DIRNAME = "jobs";
|
|
172
169
|
/** Per-entry ceiling for a lock file. Their value is the name plus a little context. */
|
|
173
|
-
const FEEDBACK_LOCK_MAX_FILE_BYTES = 512;
|
|
170
|
+
export const FEEDBACK_LOCK_MAX_FILE_BYTES = 512;
|
|
174
171
|
/**
|
|
175
172
|
* Bounds on the `jobs/` walk. Depth 3 reaches
|
|
176
173
|
* `jobs/probes/<job>/last-attempt.json`; the file cap stops a pathological
|
|
@@ -185,7 +182,7 @@ export const FEEDBACK_LOCKS_MAX_FILES = 20;
|
|
|
185
182
|
* Listed explicitly — the root directory holds credentials and must never be
|
|
186
183
|
* enumerated by pattern.
|
|
187
184
|
*/
|
|
188
|
-
const FEEDBACK_ROOT_LOG_FILENAMES = [
|
|
185
|
+
export const FEEDBACK_ROOT_LOG_FILENAMES = [
|
|
189
186
|
"boot-sync.log",
|
|
190
187
|
"boot-capture.log",
|
|
191
188
|
];
|
|
@@ -282,15 +279,15 @@ function lstatOrNull(absPath) {
|
|
|
282
279
|
* Enumerate eligible log files under `hqDir`.
|
|
283
280
|
*
|
|
284
281
|
* Eligibility is the allowlist described in the module header: `*.log` files
|
|
285
|
-
* directly inside `hqDir/logs/`,
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
* before older ones.
|
|
282
|
+
* directly inside `hqDir/logs/`, plus {@link FEEDBACK_ROOT_LOG_FILENAMES} at
|
|
283
|
+
* the root. Every candidate must be a REGULAR file by `lstat` — directories
|
|
284
|
+
* and, critically, symlinks are rejected. Returned newest-modified first so
|
|
285
|
+
* the most relevant log is offered the budget before older ones.
|
|
290
286
|
*/
|
|
291
|
-
export function discoverLogFiles(hqDir
|
|
287
|
+
export function discoverLogFiles(hqDir) {
|
|
292
288
|
const candidates = [];
|
|
293
|
-
const consider = (relName
|
|
289
|
+
const consider = (relName) => {
|
|
290
|
+
const absPath = path.join(hqDir, relName);
|
|
294
291
|
const st = lstatOrNull(absPath);
|
|
295
292
|
// isFile() is false for both directories and symlinks under lstat. A
|
|
296
293
|
// symlink here would be the credential-exfiltration path (see header).
|
|
@@ -316,37 +313,11 @@ export function discoverLogFiles(hqDir, env = process.env) {
|
|
|
316
313
|
continue;
|
|
317
314
|
consider(`${FEEDBACK_LOGS_DIRNAME}/${entry}`);
|
|
318
315
|
}
|
|
319
|
-
const daemonLogPath = syncLogBasePaths(hqDir, env).daemon;
|
|
320
|
-
for (let generation = 0; generation < SYNC_LOG_GENERATIONS; generation += 1) {
|
|
321
|
-
const relName = syncLogGenerationPath(SYNC_LOG_RELATIVE_PATHS.daemon, generation);
|
|
322
|
-
const absPath = syncLogGenerationPath(daemonLogPath, generation);
|
|
323
|
-
consider(relName, absPath);
|
|
324
|
-
}
|
|
325
316
|
for (const filename of FEEDBACK_ROOT_LOG_FILENAMES) {
|
|
326
317
|
consider(filename);
|
|
327
318
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
for (const candidate of candidates) {
|
|
331
|
-
const family = syncLogFamilyForRelativePath(candidate.name);
|
|
332
|
-
if (family === "desktop") {
|
|
333
|
-
desktopModifiedMs = desktopModifiedMs === null
|
|
334
|
-
? candidate.modifiedMs
|
|
335
|
-
: Math.max(desktopModifiedMs, candidate.modifiedMs);
|
|
336
|
-
}
|
|
337
|
-
else if (family === "daemon") {
|
|
338
|
-
daemonModifiedMs = daemonModifiedMs === null
|
|
339
|
-
? candidate.modifiedMs
|
|
340
|
-
: Math.max(daemonModifiedMs, candidate.modifiedMs);
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
const selectedFamily = currentSyncLogFamily(desktopModifiedMs, daemonModifiedMs);
|
|
344
|
-
const selected = candidates.filter((candidate) => {
|
|
345
|
-
const family = syncLogFamilyForRelativePath(candidate.name);
|
|
346
|
-
return family === null || family === selectedFamily;
|
|
347
|
-
});
|
|
348
|
-
selected.sort((a, b) => b.modifiedMs - a.modifiedMs);
|
|
349
|
-
return selected;
|
|
319
|
+
candidates.sort((a, b) => b.modifiedMs - a.modifiedMs);
|
|
320
|
+
return candidates;
|
|
350
321
|
}
|
|
351
322
|
/**
|
|
352
323
|
* Read the last `maxBytes` of a file.
|
|
@@ -575,7 +546,7 @@ export function collectFeedbackLogs(opts = {}) {
|
|
|
575
546
|
let logCandidates;
|
|
576
547
|
let stateCandidates;
|
|
577
548
|
try {
|
|
578
|
-
logCandidates = discoverLogFiles(hqDir
|
|
549
|
+
logCandidates = discoverLogFiles(hqDir);
|
|
579
550
|
// Order matters: root status documents first, then the lock/claim files
|
|
580
551
|
// (highest signal for a hang), then scheduled-job status. Under a tight
|
|
581
552
|
// budget the earlier ones win, and that is the intended priority.
|