@indigoai-us/hq-cli 5.313.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.
Files changed (1174) hide show
  1. package/CHANGELOG.md +1 -4300
  2. package/assets/scaffold/core/scripts/checkpoint-stop-gate.sh +43 -281
  3. package/assets/scaffold/core/scripts/hook-lib.sh +50 -345
  4. package/assets/scaffold/core/scripts/hq-session.sh +23 -184
  5. package/assets/scaffold/core/scripts/lib/session-id.sh +2 -3
  6. package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +1 -1
  7. package/assets/scaffold/core/scripts/lib/work-mesh-enqueue.sh +1 -2
  8. package/assets/scaffold/core/scripts/qmd-reindex-after-sync.sh +87 -10
  9. package/assets/scaffold/core/scripts/rebuild-company-knowledge-index.sh +3 -36
  10. package/assets/scaffold/core/scripts/rebuild-projects-index.sh +12 -99
  11. package/assets/scaffold/core/scripts/token-usage-report.sh +20 -81
  12. package/dist/bin/hq-auth-refresh.d.ts +0 -2
  13. package/dist/bin/hq-auth-refresh.js +6 -12
  14. package/dist/commands/__fixtures__/access-vault.d.ts +0 -2
  15. package/dist/commands/__fixtures__/access-vault.js +1 -1
  16. package/dist/commands/_patterns.d.ts +0 -16
  17. package/dist/commands/_patterns.js +3 -20
  18. package/dist/commands/access.d.ts +1 -2
  19. package/dist/commands/access.js +49 -58
  20. package/dist/commands/agents.d.ts +4 -106
  21. package/dist/commands/agents.js +45 -924
  22. package/dist/commands/auth.d.ts +0 -1
  23. package/dist/commands/auth.js +19 -189
  24. package/dist/commands/billing.d.ts +0 -3
  25. package/dist/commands/billing.js +1 -6
  26. package/dist/commands/channels.js +1 -56
  27. package/dist/commands/cloud-demote.js +2 -3
  28. package/dist/commands/cloud-provision.d.ts +0 -14
  29. package/dist/commands/cloud-provision.js +58 -232
  30. package/dist/commands/cloud.d.ts +15 -49
  31. package/dist/commands/cloud.js +122 -357
  32. package/dist/commands/company-transfer.d.ts +28 -4
  33. package/dist/commands/company-transfer.js +49 -5
  34. package/dist/commands/company.js +3 -68
  35. package/dist/commands/core-checkpoint.d.ts +9 -19
  36. package/dist/commands/core-checkpoint.js +37 -301
  37. package/dist/commands/core.d.ts +0 -4
  38. package/dist/commands/core.js +80 -277
  39. package/dist/commands/crm.js +3 -52
  40. package/dist/commands/db-provision.js +4 -4
  41. package/dist/commands/db-sql.js +21 -7
  42. package/dist/commands/dm.d.ts +12 -119
  43. package/dist/commands/dm.js +38 -388
  44. package/dist/commands/doctor.d.ts +0 -12
  45. package/dist/commands/doctor.js +12 -158
  46. package/dist/commands/feedback.d.ts +0 -6
  47. package/dist/commands/feedback.js +37 -86
  48. package/dist/commands/files-browse.d.ts +12 -32
  49. package/dist/commands/files-browse.js +60 -176
  50. package/dist/commands/files.d.ts +0 -17
  51. package/dist/commands/files.js +47 -300
  52. package/dist/commands/group-grants.js +2 -3
  53. package/dist/commands/groups.js +5 -6
  54. package/dist/commands/index-cmd.d.ts +1 -19
  55. package/dist/commands/index-cmd.js +7 -74
  56. package/dist/commands/integrations-api.d.ts +10 -15
  57. package/dist/commands/integrations-api.js +22 -27
  58. package/dist/commands/integrations-connect.d.ts +13 -51
  59. package/dist/commands/integrations-connect.js +71 -86
  60. package/dist/commands/integrations-core.d.ts +6 -6
  61. package/dist/commands/integrations-core.js +11 -25
  62. package/dist/commands/integrations-import.d.ts +1 -1
  63. package/dist/commands/integrations-import.js +24 -43
  64. package/dist/commands/integrations-manage.js +13 -20
  65. package/dist/commands/integrations.d.ts +0 -8
  66. package/dist/commands/integrations.js +7 -94
  67. package/dist/commands/login.js +6 -49
  68. package/dist/commands/mcp-registration.d.ts +25 -32
  69. package/dist/commands/mcp-registration.js +23 -256
  70. package/dist/commands/mcp-status.js +0 -1
  71. package/dist/commands/meetings.js +34 -55
  72. package/dist/commands/members.js +1 -5
  73. package/dist/commands/mesh.d.ts +0 -11
  74. package/dist/commands/mesh.js +76 -1086
  75. package/dist/commands/onboard-identity-guard.d.ts +1 -1
  76. package/dist/commands/onboard.js +5 -24
  77. package/dist/commands/pack-install.js +1 -3
  78. package/dist/commands/packs.js +1 -11
  79. package/dist/commands/people.d.ts +0 -4
  80. package/dist/commands/people.js +3 -37
  81. package/dist/commands/publish.d.ts +1 -8
  82. package/dist/commands/publish.js +4 -17
  83. package/dist/commands/reindex.js +6 -56
  84. package/dist/commands/rescue.d.ts +0 -4
  85. package/dist/commands/rescue.js +17 -27
  86. package/dist/commands/run.js +4 -18
  87. package/dist/commands/safe-extract.d.ts +2 -11
  88. package/dist/commands/safe-extract.js +8 -36
  89. package/dist/commands/scaffold-fast.d.ts +41 -0
  90. package/dist/commands/scaffold-fast.js +57 -0
  91. package/dist/commands/secrets.d.ts +2 -20
  92. package/dist/commands/secrets.js +71 -175
  93. package/dist/commands/skill.d.ts +4 -35
  94. package/dist/commands/skill.js +18 -357
  95. package/dist/commands/sync-mode.d.ts +0 -11
  96. package/dist/commands/sync-mode.js +0 -30
  97. package/dist/commands/sync-narrow.js +5 -36
  98. package/dist/commands/team-sync.js +10 -71
  99. package/dist/commands/update.js +0 -6
  100. package/dist/commands/whoami.d.ts +0 -22
  101. package/dist/commands/whoami.js +4 -137
  102. package/dist/commands/workers.d.ts +14 -2
  103. package/dist/commands/workers.js +10 -7
  104. package/dist/fast-core.d.ts +7 -6
  105. package/dist/fast-core.js +24 -87
  106. package/dist/index.d.ts +4 -3
  107. package/dist/index.js +9 -59
  108. package/dist/lazy-commands.d.ts +44 -20
  109. package/dist/lazy-commands.js +58 -60
  110. package/dist/lib/company-skill-wrapper.d.ts +0 -1
  111. package/dist/lib/company-skill-wrapper.js +29 -121
  112. package/dist/lib/core-utils/codex-skill-bridge.d.ts +1 -2
  113. package/dist/lib/core-utils/qmd-reindex-after-sync.d.ts +1 -14
  114. package/dist/lib/core-utils/qmd-reindex-after-sync.js +17 -101
  115. package/dist/lib/core-utils/soft-timeout.js +1 -1
  116. package/dist/lib/core-utils/timeout-guard.d.ts +3 -3
  117. package/dist/lib/core-utils/timeout-guard.js +13 -28
  118. package/dist/lib/core-utils/token-usage-report.js +3 -17
  119. package/dist/lib/db/control-plane.js +0 -6
  120. package/dist/lib/db/local.d.ts +5 -0
  121. package/dist/lib/db/local.js +1 -1
  122. package/dist/lib/db/migrate.d.ts +12 -0
  123. package/dist/lib/db/migrate.js +5 -5
  124. package/dist/lib/db/remote-sql.d.ts +2 -2
  125. package/dist/lib/db/remote-sql.js +3 -3
  126. package/dist/lib/db/sql.d.ts +10 -0
  127. package/dist/lib/db/sql.js +8 -4
  128. package/dist/lib/doctor/__testing__/fake-hq-tree.d.ts +1 -1
  129. package/dist/lib/doctor/__testing__/fake-hq-tree.js +1 -1
  130. package/dist/lib/doctor/checks/claude-wiring.js +1 -70
  131. package/dist/lib/doctor/checks/codex-wiring.d.ts +4 -0
  132. package/dist/lib/doctor/checks/codex-wiring.js +35 -3
  133. package/dist/lib/doctor/checks/grok-wiring.js +34 -1
  134. package/dist/lib/doctor/checks/integrations.js +0 -11
  135. package/dist/lib/doctor/checks/runtime-health.d.ts +17 -4
  136. package/dist/lib/doctor/checks/runtime-health.js +7 -20
  137. package/dist/lib/doctor/checks/sync-health.d.ts +0 -21
  138. package/dist/lib/doctor/checks/sync-health.js +2 -72
  139. package/dist/lib/doctor/checks/work-context.js +6 -20
  140. package/dist/lib/doctor/compat.d.ts +16 -0
  141. package/dist/lib/doctor/compat.js +3 -4
  142. package/dist/lib/doctor/deep/effects.js +3 -1
  143. package/dist/lib/doctor/deep/executor.d.ts +10 -4
  144. package/dist/lib/doctor/deep/executor.js +1 -1
  145. package/dist/lib/doctor/deep/parity.d.ts +29 -2
  146. package/dist/lib/doctor/deep/parity.js +7 -7
  147. package/dist/lib/doctor/deep/sandbox.d.ts +25 -7
  148. package/dist/lib/doctor/deep/sandbox.js +7 -5
  149. package/dist/lib/doctor/fix/apply.d.ts +8 -79
  150. package/dist/lib/doctor/fix/apply.js +80 -292
  151. package/dist/lib/doctor/fix/remediation.d.ts +6 -14
  152. package/dist/lib/doctor/fix/remediation.js +9 -49
  153. package/dist/lib/doctor/fixtures/schema.js +3 -1
  154. package/dist/lib/doctor/json-output.d.ts +1 -17
  155. package/dist/lib/doctor/json-output.js +2 -7
  156. package/dist/lib/doctor/platform.d.ts +26 -0
  157. package/dist/lib/doctor/platform.js +5 -5
  158. package/dist/lib/doctor/registry.d.ts +0 -14
  159. package/dist/lib/doctor/registry.js +0 -71
  160. package/dist/lib/doctor/report.js +1 -1
  161. package/dist/lib/doctor/types.d.ts +0 -5
  162. package/dist/lib/doctor/types.js +0 -20
  163. package/dist/lib/flag-registry-worker.js +1 -12
  164. package/dist/lib/flag-registry.d.ts +6 -26
  165. package/dist/lib/flag-registry.js +16 -133
  166. package/dist/lib/index-render/companies.d.ts +1 -4
  167. package/dist/lib/index-render/companies.js +3 -66
  168. package/dist/lib/index-render/company-knowledge.js +17 -80
  169. package/dist/lib/index-render/index.d.ts +0 -1
  170. package/dist/lib/index-render/index.js +1 -2
  171. package/dist/lib/index-render/projects.js +5 -82
  172. package/dist/lib/index-render/shared.d.ts +1 -13
  173. package/dist/lib/index-render/shared.js +2 -41
  174. package/dist/lib/mesh/api.d.ts +10 -103
  175. package/dist/lib/mesh/api.js +64 -334
  176. package/dist/lib/mesh/client.d.ts +2 -3
  177. package/dist/lib/mesh/client.js +7 -26
  178. package/dist/lib/mesh/live/backfill-held.d.ts +16 -67
  179. package/dist/lib/mesh/live/backfill-held.js +61 -415
  180. package/dist/lib/mesh/live/backoff.d.ts +2 -2
  181. package/dist/lib/mesh/live/backoff.js +3 -16
  182. package/dist/lib/mesh/live/daemon/board-refresh.d.ts +1 -7
  183. package/dist/lib/mesh/live/daemon/board-refresh.js +30 -78
  184. package/dist/lib/mesh/live/daemon/credentials.d.ts +10 -64
  185. package/dist/lib/mesh/live/daemon/credentials.js +20 -270
  186. package/dist/lib/mesh/live/daemon/doctor.d.ts +0 -53
  187. package/dist/lib/mesh/live/daemon/doctor.js +6 -190
  188. package/dist/lib/mesh/live/daemon/index.d.ts +10 -13
  189. package/dist/lib/mesh/live/daemon/index.js +6 -7
  190. package/dist/lib/mesh/live/daemon/install.d.ts +1 -255
  191. package/dist/lib/mesh/live/daemon/install.js +13 -811
  192. package/dist/lib/mesh/live/daemon/paths.d.ts +0 -2
  193. package/dist/lib/mesh/live/daemon/paths.js +0 -2
  194. package/dist/lib/mesh/live/daemon/presence.d.ts +5 -24
  195. package/dist/lib/mesh/live/daemon/presence.js +10 -79
  196. package/dist/lib/mesh/live/daemon/run.d.ts +2 -48
  197. package/dist/lib/mesh/live/daemon/run.js +33 -485
  198. package/dist/lib/mesh/live/daemon/state.d.ts +2 -19
  199. package/dist/lib/mesh/live/daemon/state.js +2 -34
  200. package/dist/lib/mesh/live/daemon/transcript-watch.d.ts +9 -45
  201. package/dist/lib/mesh/live/daemon/transcript-watch.js +31 -227
  202. package/dist/lib/mesh/live/emit-client.d.ts +0 -8
  203. package/dist/lib/mesh/live/emit-client.js +8 -23
  204. package/dist/lib/mesh/live/emit-evidence.d.ts +0 -19
  205. package/dist/lib/mesh/live/emit-evidence.js +2 -20
  206. package/dist/lib/mesh/live/emit.d.ts +0 -9
  207. package/dist/lib/mesh/live/emit.js +2 -28
  208. package/dist/lib/mesh/live/enqueue.d.ts +0 -5
  209. package/dist/lib/mesh/live/enqueue.js +0 -19
  210. package/dist/lib/mesh/live/flush.d.ts +5 -17
  211. package/dist/lib/mesh/live/flush.js +38 -391
  212. package/dist/lib/mesh/live/format-spool-line.d.ts +2 -5
  213. package/dist/lib/mesh/live/format-spool-line.js +0 -10
  214. package/dist/lib/mesh/live/paths.d.ts +0 -2
  215. package/dist/lib/mesh/live/paths.js +0 -4
  216. package/dist/lib/mesh/live/session-event.schema.json +1 -24
  217. package/dist/lib/mesh/live/session-events-client.d.ts +0 -2
  218. package/dist/lib/mesh/live/session-events-client.js +0 -26
  219. package/dist/lib/mesh/live/spool.d.ts +0 -19
  220. package/dist/lib/mesh/live/spool.js +3 -269
  221. package/dist/lib/mesh/live/validate-session-event.d.ts +1 -1
  222. package/dist/lib/mesh/live/validate-session-event.js +1 -1
  223. package/dist/lib/plan-limit-nag.d.ts +6 -102
  224. package/dist/lib/plan-limit-nag.js +43 -348
  225. package/dist/lib/scan-packages/index.d.ts +0 -2
  226. package/dist/lib/scan-packages/index.js +6 -168
  227. package/dist/lib/search-index/background.d.ts +1 -8
  228. package/dist/lib/search-index/background.js +200 -55
  229. package/dist/lib/search-index/index.d.ts +0 -12
  230. package/dist/lib/search-index/index.js +7 -153
  231. package/dist/lib/work-context/company.d.ts +20 -22
  232. package/dist/lib/work-context/company.js +40 -124
  233. package/dist/lib/work-context/config.d.ts +11 -58
  234. package/dist/lib/work-context/config.js +83 -334
  235. package/dist/lib/work-context/contract.d.ts +0 -13
  236. package/dist/lib/work-context/contract.schema.json +1 -3
  237. package/dist/lib/work-context/index.d.ts +25 -0
  238. package/dist/lib/work-context/index.js +21 -0
  239. package/dist/lib/work-context/outbox.d.ts +5 -27
  240. package/dist/lib/work-context/outbox.js +6 -135
  241. package/dist/lib/work-context/reconcile.d.ts +0 -15
  242. package/dist/lib/work-context/reconcile.js +29 -405
  243. package/dist/lib/work-context/state.d.ts +10 -93
  244. package/dist/lib/work-context/state.js +29 -342
  245. package/dist/lib/workers-registry/index.js +8 -62
  246. package/dist/main.d.ts +0 -32
  247. package/dist/main.js +73 -273
  248. package/dist/node-network-compat.d.ts +30 -2
  249. package/dist/node-network-compat.js +51 -4
  250. package/dist/node-preflight.d.ts +1 -7
  251. package/dist/node-preflight.js +5 -5
  252. package/dist/register-all.d.ts +29 -4
  253. package/dist/register-all.js +233 -4
  254. package/dist/run/discover-schemas.d.ts +1 -2
  255. package/dist/run/env-graph-guard.d.ts +2 -2
  256. package/dist/run/env-graph-guard.js +2 -5
  257. package/dist/run/hq-plugin.d.ts +0 -4
  258. package/dist/run/hq-plugin.js +8 -36
  259. package/dist/sentry-before-send.js +0 -80
  260. package/dist/sentry.d.ts +2 -8
  261. package/dist/sentry.js +13 -117
  262. package/dist/startup-registration.d.ts +2 -26
  263. package/dist/startup-registration.js +15 -116
  264. package/dist/utils/cli-telemetry.d.ts +1 -74
  265. package/dist/utils/cli-telemetry.js +7 -434
  266. package/dist/utils/client-health.d.ts +4 -0
  267. package/dist/utils/client-health.js +2 -2
  268. package/dist/utils/cognito-session.d.ts +0 -71
  269. package/dist/utils/cognito-session.js +27 -481
  270. package/dist/utils/contribution-table.d.ts +1 -1
  271. package/dist/utils/environmental-error.d.ts +0 -18
  272. package/dist/utils/environmental-error.js +7 -240
  273. package/dist/utils/expected-cli-error.d.ts +0 -2
  274. package/dist/utils/expected-cli-error.js +0 -4
  275. package/dist/utils/feedback-diagnostics.d.ts +1 -2
  276. package/dist/utils/feedback-log-bundle.d.ts +26 -51
  277. package/dist/utils/feedback-log-bundle.js +31 -211
  278. package/dist/utils/feedback-logs.d.ts +47 -18
  279. package/dist/utils/feedback-logs.js +21 -50
  280. package/dist/utils/feedback-screenshots.d.ts +1 -0
  281. package/dist/utils/feedback-screenshots.js +1 -1
  282. package/dist/utils/hq-roots.d.ts +2 -25
  283. package/dist/utils/hq-roots.js +7 -67
  284. package/dist/utils/incomplete-install-error.d.ts +19 -87
  285. package/dist/utils/incomplete-install-error.js +68 -319
  286. package/dist/utils/install-tree-torn.d.ts +24 -260
  287. package/dist/utils/install-tree-torn.js +51 -998
  288. package/dist/utils/large-file-guard.d.ts +10 -0
  289. package/dist/utils/large-file-guard.js +1 -1
  290. package/dist/utils/local-files-overview.d.ts +8 -4
  291. package/dist/utils/local-files-overview.js +7 -48
  292. package/dist/utils/login-provider.d.ts +0 -7
  293. package/dist/utils/login-provider.js +0 -34
  294. package/dist/utils/pack-contributions.d.ts +14 -2
  295. package/dist/utils/pack-contributions.js +44 -7
  296. package/dist/utils/package-root-diagnostics.d.ts +1 -1
  297. package/dist/utils/people.d.ts +11 -7
  298. package/dist/utils/people.js +20 -5
  299. package/dist/utils/plan-gate-error.d.ts +10 -52
  300. package/dist/utils/plan-gate-error.js +41 -364
  301. package/dist/utils/qmd-model-download-error.d.ts +8 -0
  302. package/dist/utils/qmd-model-download-error.js +1 -1
  303. package/dist/utils/qmd-query-document-error.d.ts +6 -0
  304. package/dist/utils/qmd-query-document-error.js +1 -1
  305. package/dist/utils/redact-error-text.d.ts +2 -0
  306. package/dist/utils/redact-error-text.js +2 -3
  307. package/dist/utils/run-bundled-script.d.ts +0 -6
  308. package/dist/utils/run-bundled-script.js +4 -117
  309. package/dist/utils/sandbox-runner-client.d.ts +1 -2
  310. package/dist/utils/secrets-cache.d.ts +3 -7
  311. package/dist/utils/secrets-cache.js +14 -162
  312. package/dist/utils/self-update.d.ts +1 -34
  313. package/dist/utils/self-update.js +42 -660
  314. package/dist/utils/sentry-fingerprint.d.ts +1 -23
  315. package/dist/utils/sentry-fingerprint.js +31 -223
  316. package/dist/utils/team-upgrade.d.ts +1 -1
  317. package/dist/utils/team-upgrade.js +3 -4
  318. package/dist/utils/vault-api.d.ts +1 -21
  319. package/dist/utils/vault-api.js +84 -251
  320. package/dist/utils/version-check.d.ts +1 -11
  321. package/dist/utils/version-check.js +3 -32
  322. package/dist/utils/version-gate.d.ts +17 -101
  323. package/dist/utils/version-gate.js +70 -645
  324. package/dist/utils/windows-spawn.d.ts +0 -6
  325. package/dist/utils/windows-spawn.js +0 -37
  326. package/package.json +8 -20
  327. package/README.md +0 -113
  328. package/assets/bot-workers/setup/context/USER-GUIDE.md +0 -404
  329. package/assets/bot-workers/setup/context/quick-reference.md +0 -199
  330. package/assets/bot-workers/setup/skills/agents-and-team.md +0 -167
  331. package/assets/bot-workers/setup/skills/explain-hq.md +0 -35
  332. package/assets/bot-workers/setup/skills/first-company.md +0 -74
  333. package/assets/bot-workers/setup/skills/joining-a-team.md +0 -125
  334. package/assets/bot-workers/setup/skills/pricing.md +0 -92
  335. package/assets/bot-workers/setup/skills/standing-help.md +0 -81
  336. package/assets/bot-workers/setup/skills/your-business.md +0 -281
  337. package/assets/bot-workers/setup/worker.yaml +0 -791
  338. package/assets/lanes-hooks/hq-lanes-drain.json +0 -15
  339. package/assets/lanes-hooks/hq-lanes-drain.mjs +0 -275
  340. package/assets/lanes-hooks/hq-lanes-drain.sh +0 -21
  341. package/assets/lanes-reconcile/hq-lanes-reconcile.service +0 -11
  342. package/assets/lanes-reconcile/hq-lanes-reconcile.timer +0 -12
  343. package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +0 -485
  344. package/assets/scaffold/core/scripts/audit-log.sh +0 -384
  345. package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +0 -171
  346. package/assets/scaffold/core/scripts/eval-trigger.sh +0 -193
  347. package/assets/scaffold/core/scripts/git-pack-extension-check.sh +0 -164
  348. package/assets/scaffold/core/scripts/handoff-finalize.sh +0 -688
  349. package/assets/scaffold/core/scripts/handoff-open-steps.sh +0 -81
  350. package/assets/scaffold/core/scripts/handoff-post.sh +0 -252
  351. package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +0 -307
  352. package/assets/scaffold/core/scripts/hq-delegate-grant.sh +0 -252
  353. package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +0 -99
  354. package/assets/scaffold/core/scripts/hq-delegate-publish.sh +0 -91
  355. package/assets/scaffold/core/scripts/hq-delegate-repo.sh +0 -158
  356. package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +0 -145
  357. package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +0 -129
  358. package/assets/scaffold/core/scripts/hq-delegate-send.sh +0 -259
  359. package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +0 -175
  360. package/assets/scaffold/core/scripts/hq-delegate-verify.sh +0 -238
  361. package/assets/scaffold/core/scripts/hq-dm-bind.sh +0 -585
  362. package/assets/scaffold/core/scripts/hq-job-notify.sh +0 -389
  363. package/assets/scaffold/core/scripts/hq-job-probe.sh +0 -835
  364. package/assets/scaffold/core/scripts/hq-job-remediate.sh +0 -359
  365. package/assets/scaffold/core/scripts/hq-job-run.sh +0 -1025
  366. package/assets/scaffold/core/scripts/hq-pin.sh +0 -118
  367. package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +0 -310
  368. package/assets/scaffold/core/scripts/jobs-validate.sh +0 -451
  369. package/assets/scaffold/core/scripts/knowledge-prefs.sh +0 -55
  370. package/assets/scaffold/core/scripts/lib/portable.sh +0 -211
  371. package/assets/scaffold/core/scripts/lib/secret-patterns.sh +0 -58
  372. package/assets/scaffold/core/scripts/lib/work-mesh-live-hook.sh +0 -378
  373. package/assets/scaffold/core/scripts/lib/work-mesh-live-rebind.sh +0 -141
  374. package/assets/scaffold/core/scripts/migrate-policy-triggers.sh +0 -373
  375. package/assets/scaffold/core/scripts/ontology-audience-grant.sh +0 -81
  376. package/assets/scaffold/core/scripts/ontology-brief.mjs +0 -93
  377. package/assets/scaffold/core/scripts/ontology-candidate.sh +0 -100
  378. package/assets/scaffold/core/scripts/ontology-garden.mjs +0 -238
  379. package/assets/scaffold/core/scripts/ontology-source-worklist.sh +0 -79
  380. package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +0 -834
  381. package/assets/scaffold/core/scripts/policy-age-report.sh +0 -156
  382. package/assets/scaffold/core/scripts/policy-retire.sh +0 -199
  383. package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +0 -40
  384. package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +0 -32
  385. package/assets/scaffold/core/scripts/refresh-vault-access.sh +0 -188
  386. package/assets/scaffold/core/scripts/register-project.sh +0 -262
  387. package/assets/scaffold/core/scripts/resolve-company.sh +0 -199
  388. package/assets/scaffold/core/scripts/resume-thread-lock.sh +0 -285
  389. package/assets/scaffold/core/scripts/source-yaml-validate.sh +0 -36
  390. package/assets/scaffold/core/scripts/verify-story-deliverables.sh +0 -148
  391. package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +0 -152
  392. package/assets/scaffold/core/scripts/work-mesh-live-rebind.sh +0 -59
  393. package/assets/scaffold/core/scripts/worktree-gc.sh +0 -362
  394. package/contracts/preflight/v1/fixtures.json +0 -87
  395. package/contracts/preflight/v1/schema.json +0 -58
  396. package/dist/command-catalog.generated.d.ts +0 -10735
  397. package/dist/command-catalog.generated.js +0 -13836
  398. package/dist/command-registration-plan.d.ts +0 -474
  399. package/dist/command-registration-plan.js +0 -136
  400. package/dist/commands/agent-enroll.d.ts +0 -146
  401. package/dist/commands/agent-enroll.js +0 -401
  402. package/dist/commands/agent-inbox.d.ts +0 -9
  403. package/dist/commands/agent-inbox.js +0 -102
  404. package/dist/commands/agent-kit.d.ts +0 -87
  405. package/dist/commands/agent-kit.js +0 -480
  406. package/dist/commands/agent-mcp.d.ts +0 -24
  407. package/dist/commands/agent-mcp.js +0 -127
  408. package/dist/commands/agent-probe.d.ts +0 -77
  409. package/dist/commands/agent-probe.js +0 -335
  410. package/dist/commands/agent.d.ts +0 -13
  411. package/dist/commands/agent.js +0 -40
  412. package/dist/commands/billing-sponsor.d.ts +0 -83
  413. package/dist/commands/billing-sponsor.js +0 -344
  414. package/dist/commands/bot-companies.d.ts +0 -40
  415. package/dist/commands/bot-companies.js +0 -64
  416. package/dist/commands/bot-continuity.d.ts +0 -28
  417. package/dist/commands/bot-continuity.js +0 -68
  418. package/dist/commands/bot-jobs.d.ts +0 -127
  419. package/dist/commands/bot-jobs.js +0 -454
  420. package/dist/commands/bot.d.ts +0 -278
  421. package/dist/commands/bot.js +0 -1982
  422. package/dist/commands/cloud-retire.d.ts +0 -51
  423. package/dist/commands/cloud-retire.js +0 -154
  424. package/dist/commands/company-rename-flag.d.ts +0 -4
  425. package/dist/commands/company-rename-flag.js +0 -7
  426. package/dist/commands/company-rename.d.ts +0 -4
  427. package/dist/commands/company-rename.js +0 -90
  428. package/dist/commands/core-audit-log-native.d.ts +0 -9
  429. package/dist/commands/core-audit-log-native.js +0 -257
  430. package/dist/commands/core-checkpoint-gate-setting.d.ts +0 -59
  431. package/dist/commands/core-checkpoint-gate-setting.js +0 -163
  432. package/dist/commands/core-checkpoint-stop-gate-native.d.ts +0 -34
  433. package/dist/commands/core-checkpoint-stop-gate-native.js +0 -725
  434. package/dist/commands/core-command-catalog.d.ts +0 -34
  435. package/dist/commands/core-command-catalog.js +0 -62
  436. package/dist/commands/core-company-index-scope-flag.d.ts +0 -3
  437. package/dist/commands/core-company-index-scope-flag.js +0 -6
  438. package/dist/commands/core-delegate-w1b.d.ts +0 -10
  439. package/dist/commands/core-delegate-w1b.js +0 -1219
  440. package/dist/commands/core-delegate.d.ts +0 -46
  441. package/dist/commands/core-delegate.js +0 -1040
  442. package/dist/commands/core-dm-bind-native.d.ts +0 -32
  443. package/dist/commands/core-dm-bind-native.js +0 -668
  444. package/dist/commands/core-eval-trigger-native.d.ts +0 -4
  445. package/dist/commands/core-eval-trigger-native.js +0 -12
  446. package/dist/commands/core-git-pack-extension-check-native.d.ts +0 -22
  447. package/dist/commands/core-git-pack-extension-check-native.js +0 -190
  448. package/dist/commands/core-handoff-fast.d.ts +0 -18
  449. package/dist/commands/core-handoff-fast.js +0 -104
  450. package/dist/commands/core-handoff-open-steps.d.ts +0 -21
  451. package/dist/commands/core-handoff-open-steps.js +0 -264
  452. package/dist/commands/core-handoff.d.ts +0 -24
  453. package/dist/commands/core-handoff.js +0 -1144
  454. package/dist/commands/core-hq-session-native.d.ts +0 -39
  455. package/dist/commands/core-hq-session-native.js +0 -579
  456. package/dist/commands/core-job-native-utils.d.ts +0 -6
  457. package/dist/commands/core-job-native-utils.js +0 -80
  458. package/dist/commands/core-job-native.d.ts +0 -5
  459. package/dist/commands/core-job-native.js +0 -16
  460. package/dist/commands/core-job-notify-native.d.ts +0 -36
  461. package/dist/commands/core-job-notify-native.js +0 -359
  462. package/dist/commands/core-job-probe-native.d.ts +0 -45
  463. package/dist/commands/core-job-probe-native.js +0 -564
  464. package/dist/commands/core-job-remediate-native.d.ts +0 -26
  465. package/dist/commands/core-job-remediate-native.js +0 -374
  466. package/dist/commands/core-job-remote-launcher.d.ts +0 -7
  467. package/dist/commands/core-job-remote-launcher.js +0 -51
  468. package/dist/commands/core-job-run-native.d.ts +0 -47
  469. package/dist/commands/core-job-run-native.js +0 -1215
  470. package/dist/commands/core-jobs-native.d.ts +0 -25
  471. package/dist/commands/core-jobs-native.js +0 -1339
  472. package/dist/commands/core-knowledge-prefs.d.ts +0 -11
  473. package/dist/commands/core-knowledge-prefs.js +0 -137
  474. package/dist/commands/core-migrate-policy-triggers-native.d.ts +0 -21
  475. package/dist/commands/core-migrate-policy-triggers-native.js +0 -378
  476. package/dist/commands/core-native-handoff-flag.d.ts +0 -4
  477. package/dist/commands/core-native-handoff-flag.js +0 -7
  478. package/dist/commands/core-native-hook-helper-commands.d.ts +0 -4
  479. package/dist/commands/core-native-hook-helper-commands.js +0 -56
  480. package/dist/commands/core-native-hook-helpers-flag.d.ts +0 -4
  481. package/dist/commands/core-native-hook-helpers-flag.js +0 -7
  482. package/dist/commands/core-native-jobs-flag.d.ts +0 -4
  483. package/dist/commands/core-native-jobs-flag.js +0 -7
  484. package/dist/commands/core-native-policy-flag.d.ts +0 -9
  485. package/dist/commands/core-native-policy-flag.js +0 -12
  486. package/dist/commands/core-native-session-flag.d.ts +0 -4
  487. package/dist/commands/core-native-session-flag.js +0 -7
  488. package/dist/commands/core-native-utilities-flag.d.ts +0 -4
  489. package/dist/commands/core-native-utilities-flag.js +0 -7
  490. package/dist/commands/core-native-utilities.d.ts +0 -29
  491. package/dist/commands/core-native-utilities.js +0 -54
  492. package/dist/commands/core-native-worker-skills-flag.d.ts +0 -4
  493. package/dist/commands/core-native-worker-skills-flag.js +0 -7
  494. package/dist/commands/core-ontology-native.d.ts +0 -17
  495. package/dist/commands/core-ontology-native.js +0 -916
  496. package/dist/commands/core-ontology.d.ts +0 -66
  497. package/dist/commands/core-ontology.js +0 -430
  498. package/dist/commands/core-pin-native.d.ts +0 -14
  499. package/dist/commands/core-pin-native.js +0 -236
  500. package/dist/commands/core-policy-frontmatter.d.ts +0 -8
  501. package/dist/commands/core-policy-frontmatter.js +0 -52
  502. package/dist/commands/core-policy.d.ts +0 -14
  503. package/dist/commands/core-policy.js +0 -1018
  504. package/dist/commands/core-refresh-vault-access-native.d.ts +0 -20
  505. package/dist/commands/core-refresh-vault-access-native.js +0 -229
  506. package/dist/commands/core-register-project-native.d.ts +0 -30
  507. package/dist/commands/core-register-project-native.js +0 -347
  508. package/dist/commands/core-resolve-company-command.d.ts +0 -4
  509. package/dist/commands/core-resolve-company-command.js +0 -42
  510. package/dist/commands/core-resolve-company-native.d.ts +0 -28
  511. package/dist/commands/core-resolve-company-native.js +0 -408
  512. package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +0 -32
  513. package/dist/commands/core-work-mesh-bind-trusted-native.js +0 -190
  514. package/dist/commands/core-work-mesh-live-rebind-native.d.ts +0 -18
  515. package/dist/commands/core-work-mesh-live-rebind-native.js +0 -262
  516. package/dist/commands/core-worker-lint-native.d.ts +0 -4
  517. package/dist/commands/core-worker-lint-native.js +0 -160
  518. package/dist/commands/core-worker-share-native.d.ts +0 -4
  519. package/dist/commands/core-worker-share-native.js +0 -260
  520. package/dist/commands/core-worker-skills-command.d.ts +0 -8
  521. package/dist/commands/core-worker-skills-command.js +0 -33
  522. package/dist/commands/core-worker-skills-runtime.d.ts +0 -33
  523. package/dist/commands/core-worker-skills-runtime.js +0 -86
  524. package/dist/commands/daemon.d.ts +0 -63
  525. package/dist/commands/daemon.js +0 -877
  526. package/dist/commands/deploy-comments.d.ts +0 -3
  527. package/dist/commands/deploy-comments.js +0 -162
  528. package/dist/commands/lanes-accounts.d.ts +0 -28
  529. package/dist/commands/lanes-accounts.js +0 -595
  530. package/dist/commands/lanes-autopilot.d.ts +0 -11
  531. package/dist/commands/lanes-autopilot.js +0 -336
  532. package/dist/commands/lanes-checks.d.ts +0 -51
  533. package/dist/commands/lanes-checks.js +0 -941
  534. package/dist/commands/lanes-hold.d.ts +0 -43
  535. package/dist/commands/lanes-hold.js +0 -655
  536. package/dist/commands/lanes-kpis.d.ts +0 -11
  537. package/dist/commands/lanes-kpis.js +0 -34
  538. package/dist/commands/lanes-message.d.ts +0 -9
  539. package/dist/commands/lanes-message.js +0 -937
  540. package/dist/commands/lanes-move.d.ts +0 -12
  541. package/dist/commands/lanes-move.js +0 -397
  542. package/dist/commands/lanes-questions.d.ts +0 -36
  543. package/dist/commands/lanes-questions.js +0 -1005
  544. package/dist/commands/lanes-report.d.ts +0 -11
  545. package/dist/commands/lanes-report.js +0 -333
  546. package/dist/commands/lanes-resume.d.ts +0 -6
  547. package/dist/commands/lanes-resume.js +0 -564
  548. package/dist/commands/lanes-review.d.ts +0 -10
  549. package/dist/commands/lanes-review.js +0 -56
  550. package/dist/commands/lanes-shared.d.ts +0 -448
  551. package/dist/commands/lanes-shared.js +0 -170
  552. package/dist/commands/lanes-stories.d.ts +0 -15
  553. package/dist/commands/lanes-stories.js +0 -347
  554. package/dist/commands/lanes-watch.d.ts +0 -7
  555. package/dist/commands/lanes-watch.js +0 -216
  556. package/dist/commands/lanes.d.ts +0 -149
  557. package/dist/commands/lanes.js +0 -8973
  558. package/dist/commands/monitor.d.ts +0 -58
  559. package/dist/commands/monitor.js +0 -980
  560. package/dist/commands/onboard-bot-membership.d.ts +0 -32
  561. package/dist/commands/onboard-bot-membership.js +0 -40
  562. package/dist/commands/onboard-create-identity.d.ts +0 -26
  563. package/dist/commands/onboard-create-identity.js +0 -23
  564. package/dist/commands/outpost-pruner.d.ts +0 -3
  565. package/dist/commands/outpost-pruner.js +0 -125
  566. package/dist/commands/personal-connector-settings-flag.d.ts +0 -4
  567. package/dist/commands/personal-connector-settings-flag.js +0 -7
  568. package/dist/commands/personal-targeted-push-flag.d.ts +0 -4
  569. package/dist/commands/personal-targeted-push-flag.js +0 -7
  570. package/dist/commands/personal-targeted-push-paths.d.ts +0 -3
  571. package/dist/commands/personal-targeted-push-paths.js +0 -67
  572. package/dist/commands/report.d.ts +0 -19
  573. package/dist/commands/report.js +0 -537
  574. package/dist/commands/run-feature-telemetry.d.ts +0 -3
  575. package/dist/commands/run-feature-telemetry.js +0 -6
  576. package/dist/commands/staff/reset-test-account.d.ts +0 -110
  577. package/dist/commands/staff/reset-test-account.js +0 -268
  578. package/dist/commands/staff/test-account.d.ts +0 -51
  579. package/dist/commands/staff/test-account.js +0 -196
  580. package/dist/commands/vault-retention-flag.d.ts +0 -3
  581. package/dist/commands/vault-retention-flag.js +0 -9
  582. package/dist/commands/vault-retention.d.ts +0 -11
  583. package/dist/commands/vault-retention.js +0 -69
  584. package/dist/commands/version.d.ts +0 -10
  585. package/dist/commands/version.js +0 -11
  586. package/dist/fast-scaffold.d.ts +0 -86
  587. package/dist/fast-scaffold.js +0 -364
  588. package/dist/lanes-drain-hook.d.ts +0 -14
  589. package/dist/lanes-drain-hook.js +0 -203
  590. package/dist/lib/agent-kit/adopt-identity.d.ts +0 -27
  591. package/dist/lib/agent-kit/adopt-identity.js +0 -60
  592. package/dist/lib/agent-kit/attachment-download.d.ts +0 -24
  593. package/dist/lib/agent-kit/attachment-download.js +0 -47
  594. package/dist/lib/agent-kit/creds.d.ts +0 -106
  595. package/dist/lib/agent-kit/creds.js +0 -163
  596. package/dist/lib/agent-kit/fallback.d.ts +0 -78
  597. package/dist/lib/agent-kit/fallback.js +0 -210
  598. package/dist/lib/agent-kit/inbox-state.d.ts +0 -83
  599. package/dist/lib/agent-kit/inbox-state.js +0 -159
  600. package/dist/lib/agent-kit/kit-config.d.ts +0 -56
  601. package/dist/lib/agent-kit/kit-config.js +0 -65
  602. package/dist/lib/agent-kit/log.d.ts +0 -16
  603. package/dist/lib/agent-kit/log.js +0 -46
  604. package/dist/lib/agent-kit/mcp/attachments.d.ts +0 -126
  605. package/dist/lib/agent-kit/mcp/attachments.js +0 -222
  606. package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +0 -75
  607. package/dist/lib/agent-kit/mcp/jsonrpc.js +0 -164
  608. package/dist/lib/agent-kit/mcp/tools.d.ts +0 -64
  609. package/dist/lib/agent-kit/mcp/tools.js +0 -397
  610. package/dist/lib/agent-kit/paths.d.ts +0 -65
  611. package/dist/lib/agent-kit/paths.js +0 -118
  612. package/dist/lib/agent-kit/private-file.d.ts +0 -29
  613. package/dist/lib/agent-kit/private-file.js +0 -91
  614. package/dist/lib/agent-kit/run/heartbeat.d.ts +0 -72
  615. package/dist/lib/agent-kit/run/heartbeat.js +0 -128
  616. package/dist/lib/agent-kit/run/inbox.d.ts +0 -76
  617. package/dist/lib/agent-kit/run/inbox.js +0 -205
  618. package/dist/lib/agent-kit/run/supervisor.d.ts +0 -35
  619. package/dist/lib/agent-kit/run/supervisor.js +0 -85
  620. package/dist/lib/agent-kit/run/sync.d.ts +0 -33
  621. package/dist/lib/agent-kit/run/sync.js +0 -58
  622. package/dist/lib/agent-kit/services.d.ts +0 -31
  623. package/dist/lib/agent-kit/services.js +0 -55
  624. package/dist/lib/agent-kit/skills.d.ts +0 -18
  625. package/dist/lib/agent-kit/skills.js +0 -151
  626. package/dist/lib/agent-kit/wake.d.ts +0 -83
  627. package/dist/lib/agent-kit/wake.js +0 -243
  628. package/dist/lib/agents/model-catalog.d.ts +0 -62
  629. package/dist/lib/agents/model-catalog.js +0 -275
  630. package/dist/lib/auth-login-provider-state.d.ts +0 -8
  631. package/dist/lib/auth-login-provider-state.js +0 -63
  632. package/dist/lib/aws-sdk-node-warning-output.d.ts +0 -12
  633. package/dist/lib/aws-sdk-node-warning-output.js +0 -22
  634. package/dist/lib/billing/free-month.d.ts +0 -18
  635. package/dist/lib/billing/free-month.js +0 -31
  636. package/dist/lib/billing/plan-limit-refusals.d.ts +0 -69
  637. package/dist/lib/billing/plan-limit-refusals.js +0 -187
  638. package/dist/lib/billing/plan-limit-upgrade-url.d.ts +0 -11
  639. package/dist/lib/billing/plan-limit-upgrade-url.js +0 -66
  640. package/dist/lib/billing/plan-lock.d.ts +0 -143
  641. package/dist/lib/billing/plan-lock.js +0 -439
  642. package/dist/lib/bot/api.d.ts +0 -349
  643. package/dist/lib/bot/api.js +0 -316
  644. package/dist/lib/bot/attachments.d.ts +0 -45
  645. package/dist/lib/bot/attachments.js +0 -89
  646. package/dist/lib/bot/cli-update.d.ts +0 -138
  647. package/dist/lib/bot/cli-update.js +0 -278
  648. package/dist/lib/bot/company-bind.d.ts +0 -27
  649. package/dist/lib/bot/company-bind.js +0 -62
  650. package/dist/lib/bot/config.d.ts +0 -153
  651. package/dist/lib/bot/config.js +0 -233
  652. package/dist/lib/bot/continuity-download.d.ts +0 -28
  653. package/dist/lib/bot/continuity-download.js +0 -75
  654. package/dist/lib/bot/continuity-install.d.ts +0 -14
  655. package/dist/lib/bot/continuity-install.js +0 -101
  656. package/dist/lib/bot/continuity.d.ts +0 -67
  657. package/dist/lib/bot/continuity.js +0 -301
  658. package/dist/lib/bot/creds.d.ts +0 -24
  659. package/dist/lib/bot/creds.js +0 -51
  660. package/dist/lib/bot/daemon.d.ts +0 -173
  661. package/dist/lib/bot/daemon.js +0 -552
  662. package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +0 -24
  663. package/dist/lib/bot/inbox-poll-backoff-flag.js +0 -135
  664. package/dist/lib/bot/inbox-state.d.ts +0 -18
  665. package/dist/lib/bot/inbox-state.js +0 -51
  666. package/dist/lib/bot/index.d.ts +0 -23
  667. package/dist/lib/bot/index.js +0 -23
  668. package/dist/lib/bot/inflight.d.ts +0 -119
  669. package/dist/lib/bot/inflight.js +0 -83
  670. package/dist/lib/bot/job-completions.d.ts +0 -89
  671. package/dist/lib/bot/job-completions.js +0 -132
  672. package/dist/lib/bot/job-run.d.ts +0 -109
  673. package/dist/lib/bot/job-run.js +0 -246
  674. package/dist/lib/bot/local-config.d.ts +0 -61
  675. package/dist/lib/bot/local-config.js +0 -145
  676. package/dist/lib/bot/local-jobs.d.ts +0 -89
  677. package/dist/lib/bot/local-jobs.js +0 -459
  678. package/dist/lib/bot/local-name.d.ts +0 -54
  679. package/dist/lib/bot/local-name.js +0 -114
  680. package/dist/lib/bot/log.d.ts +0 -13
  681. package/dist/lib/bot/log.js +0 -59
  682. package/dist/lib/bot/owner-context.d.ts +0 -79
  683. package/dist/lib/bot/owner-context.js +0 -175
  684. package/dist/lib/bot/paths.d.ts +0 -76
  685. package/dist/lib/bot/paths.js +0 -131
  686. package/dist/lib/bot/progress.d.ts +0 -132
  687. package/dist/lib/bot/progress.js +0 -289
  688. package/dist/lib/bot/promote.d.ts +0 -16
  689. package/dist/lib/bot/promote.js +0 -106
  690. package/dist/lib/bot/promotion-hold.d.ts +0 -24
  691. package/dist/lib/bot/promotion-hold.js +0 -103
  692. package/dist/lib/bot/promotion-receipt.d.ts +0 -9
  693. package/dist/lib/bot/promotion-receipt.js +0 -56
  694. package/dist/lib/bot/promotion-upload.d.ts +0 -16
  695. package/dist/lib/bot/promotion-upload.js +0 -80
  696. package/dist/lib/bot/prompt.d.ts +0 -136
  697. package/dist/lib/bot/prompt.js +0 -433
  698. package/dist/lib/bot/room-policy.d.ts +0 -63
  699. package/dist/lib/bot/room-policy.js +0 -91
  700. package/dist/lib/bot/run.d.ts +0 -217
  701. package/dist/lib/bot/run.js +0 -1869
  702. package/dist/lib/bot/runnable.d.ts +0 -51
  703. package/dist/lib/bot/runnable.js +0 -65
  704. package/dist/lib/bot/runtime/claude.d.ts +0 -50
  705. package/dist/lib/bot/runtime/claude.js +0 -170
  706. package/dist/lib/bot/runtime/codex.d.ts +0 -28
  707. package/dist/lib/bot/runtime/codex.js +0 -153
  708. package/dist/lib/bot/runtime/grok-acp.d.ts +0 -40
  709. package/dist/lib/bot/runtime/grok-acp.js +0 -265
  710. package/dist/lib/bot/runtime/grok.d.ts +0 -41
  711. package/dist/lib/bot/runtime/grok.js +0 -169
  712. package/dist/lib/bot/runtime/index.d.ts +0 -36
  713. package/dist/lib/bot/runtime/index.js +0 -417
  714. package/dist/lib/bot/runtime/messages-stream.d.ts +0 -56
  715. package/dist/lib/bot/runtime/messages-stream.js +0 -194
  716. package/dist/lib/bot/runtime/sanitize.d.ts +0 -18
  717. package/dist/lib/bot/runtime/sanitize.js +0 -28
  718. package/dist/lib/bot/runtime/types.d.ts +0 -159
  719. package/dist/lib/bot/runtime/types.js +0 -51
  720. package/dist/lib/bot/runtime/windows.d.ts +0 -10
  721. package/dist/lib/bot/runtime/windows.js +0 -53
  722. package/dist/lib/bot/runtime-sign-in.d.ts +0 -24
  723. package/dist/lib/bot/runtime-sign-in.js +0 -31
  724. package/dist/lib/bot/scaffold.d.ts +0 -38
  725. package/dist/lib/bot/scaffold.js +0 -94
  726. package/dist/lib/bot/self-heal.d.ts +0 -52
  727. package/dist/lib/bot/self-heal.js +0 -79
  728. package/dist/lib/bot/self-process.d.ts +0 -19
  729. package/dist/lib/bot/self-process.js +0 -35
  730. package/dist/lib/bot/session.d.ts +0 -19
  731. package/dist/lib/bot/session.js +0 -39
  732. package/dist/lib/bot/setup-explain.d.ts +0 -64
  733. package/dist/lib/bot/setup-explain.js +0 -141
  734. package/dist/lib/bot/split.d.ts +0 -32
  735. package/dist/lib/bot/split.js +0 -241
  736. package/dist/lib/bot/status.d.ts +0 -57
  737. package/dist/lib/bot/status.js +0 -66
  738. package/dist/lib/bot/worker-source.d.ts +0 -66
  739. package/dist/lib/bot/worker-source.js +0 -283
  740. package/dist/lib/checkpoint-ontology/aliases.d.ts +0 -17
  741. package/dist/lib/checkpoint-ontology/aliases.js +0 -44
  742. package/dist/lib/checkpoint-ontology/apply.d.ts +0 -110
  743. package/dist/lib/checkpoint-ontology/apply.js +0 -777
  744. package/dist/lib/checkpoint-ontology/company-brief.d.ts +0 -18
  745. package/dist/lib/checkpoint-ontology/company-brief.js +0 -337
  746. package/dist/lib/checkpoint-ontology/company.d.ts +0 -44
  747. package/dist/lib/checkpoint-ontology/company.js +0 -118
  748. package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +0 -41
  749. package/dist/lib/checkpoint-ontology/drop-aliases.js +0 -76
  750. package/dist/lib/checkpoint-ontology/entity-file.d.ts +0 -109
  751. package/dist/lib/checkpoint-ontology/entity-file.js +0 -371
  752. package/dist/lib/checkpoint-ontology/identity.d.ts +0 -38
  753. package/dist/lib/checkpoint-ontology/identity.js +0 -95
  754. package/dist/lib/checkpoint-ontology/merge-copies.d.ts +0 -199
  755. package/dist/lib/checkpoint-ontology/merge-copies.js +0 -1086
  756. package/dist/lib/checkpoint-ontology/multi-writer.d.ts +0 -101
  757. package/dist/lib/checkpoint-ontology/multi-writer.js +0 -394
  758. package/dist/lib/checkpoint-ontology/plan.d.ts +0 -193
  759. package/dist/lib/checkpoint-ontology/plan.js +0 -504
  760. package/dist/lib/checkpoint-ontology/queued-touches.d.ts +0 -29
  761. package/dist/lib/checkpoint-ontology/queued-touches.js +0 -193
  762. package/dist/lib/checkpoint-ontology/sync-client.d.ts +0 -38
  763. package/dist/lib/checkpoint-ontology/sync-client.js +0 -84
  764. package/dist/lib/checkpoint-ontology/tree.d.ts +0 -55
  765. package/dist/lib/checkpoint-ontology/tree.js +0 -198
  766. package/dist/lib/company-errors-sdk-warning-flag.d.ts +0 -5
  767. package/dist/lib/company-errors-sdk-warning-flag.js +0 -8
  768. package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +0 -20
  769. package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +0 -81
  770. package/dist/lib/core-utils/jq-json-serializer.d.ts +0 -5
  771. package/dist/lib/core-utils/jq-json-serializer.js +0 -10
  772. package/dist/lib/core-utils/secret-patterns.d.ts +0 -43
  773. package/dist/lib/core-utils/secret-patterns.js +0 -34
  774. package/dist/lib/core-utils/sentry-report.d.ts +0 -114
  775. package/dist/lib/core-utils/sentry-report.js +0 -1034
  776. package/dist/lib/core-utils/timeout-guard-native.d.ts +0 -7
  777. package/dist/lib/core-utils/timeout-guard-native.js +0 -40
  778. package/dist/lib/core-utils/worktree-resume.d.ts +0 -20
  779. package/dist/lib/core-utils/worktree-resume.js +0 -1198
  780. package/dist/lib/daemon/catalog.d.ts +0 -134
  781. package/dist/lib/daemon/catalog.js +0 -358
  782. package/dist/lib/daemon/config.d.ts +0 -35
  783. package/dist/lib/daemon/config.js +0 -108
  784. package/dist/lib/daemon/flag.d.ts +0 -25
  785. package/dist/lib/daemon/flag.js +0 -59
  786. package/dist/lib/daemon/handoff.d.ts +0 -56
  787. package/dist/lib/daemon/handoff.js +0 -161
  788. package/dist/lib/daemon/hq-cloud.d.ts +0 -79
  789. package/dist/lib/daemon/hq-cloud.js +0 -183
  790. package/dist/lib/daemon/install.d.ts +0 -85
  791. package/dist/lib/daemon/install.js +0 -320
  792. package/dist/lib/daemon/legacy-sync-env.d.ts +0 -10
  793. package/dist/lib/daemon/legacy-sync-env.js +0 -58
  794. package/dist/lib/daemon/legacy.d.ts +0 -45
  795. package/dist/lib/daemon/legacy.js +0 -133
  796. package/dist/lib/daemon/lock.d.ts +0 -47
  797. package/dist/lib/daemon/lock.js +0 -138
  798. package/dist/lib/daemon/machine-type.d.ts +0 -50
  799. package/dist/lib/daemon/machine-type.js +0 -159
  800. package/dist/lib/daemon/migrate.d.ts +0 -77
  801. package/dist/lib/daemon/migrate.js +0 -265
  802. package/dist/lib/daemon/paths.d.ts +0 -24
  803. package/dist/lib/daemon/paths.js +0 -43
  804. package/dist/lib/daemon/protocol-tail.d.ts +0 -33
  805. package/dist/lib/daemon/protocol-tail.js +0 -131
  806. package/dist/lib/daemon/remote-control.d.ts +0 -74
  807. package/dist/lib/daemon/remote-control.js +0 -153
  808. package/dist/lib/daemon/requests.d.ts +0 -28
  809. package/dist/lib/daemon/requests.js +0 -65
  810. package/dist/lib/daemon/run.d.ts +0 -79
  811. package/dist/lib/daemon/run.js +0 -755
  812. package/dist/lib/daemon/succession.d.ts +0 -118
  813. package/dist/lib/daemon/succession.js +0 -263
  814. package/dist/lib/daemon/supervisor.d.ts +0 -132
  815. package/dist/lib/daemon/supervisor.js +0 -836
  816. package/dist/lib/daemon/sync-runner.d.ts +0 -58
  817. package/dist/lib/daemon/sync-runner.js +0 -277
  818. package/dist/lib/daemon/tools.d.ts +0 -52
  819. package/dist/lib/daemon/tools.js +0 -95
  820. package/dist/lib/daemon/updater.d.ts +0 -57
  821. package/dist/lib/daemon/updater.js +0 -163
  822. package/dist/lib/deploy-api.d.ts +0 -5
  823. package/dist/lib/deploy-api.js +0 -21
  824. package/dist/lib/deploy-apps.d.ts +0 -13
  825. package/dist/lib/deploy-apps.js +0 -29
  826. package/dist/lib/doctor/__testing__/run-doctor.d.ts +0 -8
  827. package/dist/lib/doctor/__testing__/run-doctor.js +0 -52
  828. package/dist/lib/doctor/checks/bots.d.ts +0 -13
  829. package/dist/lib/doctor/checks/bots.js +0 -189
  830. package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +0 -6
  831. package/dist/lib/doctor/checks/scaffold-cli-floor.js +0 -73
  832. package/dist/lib/doctor/checks/sync-runtime.d.ts +0 -11
  833. package/dist/lib/doctor/checks/sync-runtime.js +0 -216
  834. package/dist/lib/doctor/client-health-flag-token.d.ts +0 -15
  835. package/dist/lib/doctor/client-health-flag-token.js +0 -66
  836. package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +0 -27
  837. package/dist/lib/doctor/client-health-reason-codes-flag.js +0 -106
  838. package/dist/lib/doctor/fix/json-output.d.ts +0 -28
  839. package/dist/lib/doctor/fix/json-output.js +0 -33
  840. package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +0 -12
  841. package/dist/lib/doctor/fix/refresh-sync-outcome.js +0 -25
  842. package/dist/lib/doctor/shared.d.ts +0 -8
  843. package/dist/lib/doctor/shared.js +0 -38
  844. package/dist/lib/doctor/stray-gate-entries.d.ts +0 -35
  845. package/dist/lib/doctor/stray-gate-entries.js +0 -83
  846. package/dist/lib/first-sync-next-step.d.ts +0 -37
  847. package/dist/lib/first-sync-next-step.js +0 -189
  848. package/dist/lib/flag-registry-endpoint.d.ts +0 -5
  849. package/dist/lib/flag-registry-endpoint.js +0 -9
  850. package/dist/lib/flag-registry-worker-source.generated.d.ts +0 -2
  851. package/dist/lib/flag-registry-worker-source.generated.js +0 -3
  852. package/dist/lib/flag-snapshot-file.d.ts +0 -20
  853. package/dist/lib/flag-snapshot-file.js +0 -91
  854. package/dist/lib/heartbeat-identity.d.ts +0 -30
  855. package/dist/lib/heartbeat-identity.js +0 -76
  856. package/dist/lib/lanes/account-home.d.ts +0 -8
  857. package/dist/lib/lanes/account-home.js +0 -10
  858. package/dist/lib/lanes/accounts.d.ts +0 -117
  859. package/dist/lib/lanes/accounts.js +0 -366
  860. package/dist/lib/lanes/admission-host.d.ts +0 -22
  861. package/dist/lib/lanes/admission-host.js +0 -37
  862. package/dist/lib/lanes/admission.d.ts +0 -26
  863. package/dist/lib/lanes/admission.js +0 -210
  864. package/dist/lib/lanes/approval-gate.d.ts +0 -8
  865. package/dist/lib/lanes/approval-gate.js +0 -90
  866. package/dist/lib/lanes/autopilot-metrics.d.ts +0 -99
  867. package/dist/lib/lanes/autopilot-metrics.js +0 -301
  868. package/dist/lib/lanes/autopilot-registry.d.ts +0 -62
  869. package/dist/lib/lanes/autopilot-registry.js +0 -192
  870. package/dist/lib/lanes/autopilot.d.ts +0 -120
  871. package/dist/lib/lanes/autopilot.js +0 -1061
  872. package/dist/lib/lanes/blocker-freshness.d.ts +0 -31
  873. package/dist/lib/lanes/blocker-freshness.js +0 -168
  874. package/dist/lib/lanes/checked-company-path.d.ts +0 -3
  875. package/dist/lib/lanes/checked-company-path.js +0 -39
  876. package/dist/lib/lanes/claude-balance.d.ts +0 -97
  877. package/dist/lib/lanes/claude-balance.js +0 -319
  878. package/dist/lib/lanes/compaction.d.ts +0 -110
  879. package/dist/lib/lanes/compaction.js +0 -293
  880. package/dist/lib/lanes/config.d.ts +0 -94
  881. package/dist/lib/lanes/config.js +0 -606
  882. package/dist/lib/lanes/constants.d.ts +0 -3
  883. package/dist/lib/lanes/constants.js +0 -3
  884. package/dist/lib/lanes/delivery-core.d.ts +0 -15
  885. package/dist/lib/lanes/delivery-core.js +0 -21
  886. package/dist/lib/lanes/delivery.d.ts +0 -180
  887. package/dist/lib/lanes/delivery.js +0 -443
  888. package/dist/lib/lanes/disk-guard.d.ts +0 -66
  889. package/dist/lib/lanes/disk-guard.js +0 -172
  890. package/dist/lib/lanes/dropbox.d.ts +0 -129
  891. package/dist/lib/lanes/dropbox.js +0 -601
  892. package/dist/lib/lanes/effort.d.ts +0 -51
  893. package/dist/lib/lanes/effort.js +0 -113
  894. package/dist/lib/lanes/envelope-repair-dispatch.d.ts +0 -26
  895. package/dist/lib/lanes/envelope-repair-dispatch.js +0 -74
  896. package/dist/lib/lanes/errors.d.ts +0 -39
  897. package/dist/lib/lanes/errors.js +0 -72
  898. package/dist/lib/lanes/flag-keys.d.ts +0 -15
  899. package/dist/lib/lanes/flag-keys.js +0 -15
  900. package/dist/lib/lanes/grants.d.ts +0 -30
  901. package/dist/lib/lanes/grants.js +0 -171
  902. package/dist/lib/lanes/hire-grant-dispatch.d.ts +0 -29
  903. package/dist/lib/lanes/hire-grant-dispatch.js +0 -315
  904. package/dist/lib/lanes/hooks-install.d.ts +0 -82
  905. package/dist/lib/lanes/hooks-install.js +0 -479
  906. package/dist/lib/lanes/host-capacity.d.ts +0 -69
  907. package/dist/lib/lanes/host-capacity.js +0 -254
  908. package/dist/lib/lanes/hq-root.d.ts +0 -19
  909. package/dist/lib/lanes/hq-root.js +0 -28
  910. package/dist/lib/lanes/index.d.ts +0 -76
  911. package/dist/lib/lanes/index.js +0 -42
  912. package/dist/lib/lanes/keep-alive.d.ts +0 -68
  913. package/dist/lib/lanes/keep-alive.js +0 -343
  914. package/dist/lib/lanes/kr-freshness.d.ts +0 -76
  915. package/dist/lib/lanes/kr-freshness.js +0 -413
  916. package/dist/lib/lanes/lane-company.d.ts +0 -10
  917. package/dist/lib/lanes/lane-company.js +0 -41
  918. package/dist/lib/lanes/liveness.d.ts +0 -108
  919. package/dist/lib/lanes/liveness.js +0 -396
  920. package/dist/lib/lanes/machine-identity.d.ts +0 -34
  921. package/dist/lib/lanes/machine-identity.js +0 -92
  922. package/dist/lib/lanes/manager-status-gate.d.ts +0 -17
  923. package/dist/lib/lanes/manager-status-gate.js +0 -133
  924. package/dist/lib/lanes/merge-command.d.ts +0 -15
  925. package/dist/lib/lanes/merge-command.js +0 -629
  926. package/dist/lib/lanes/mesh-events.d.ts +0 -127
  927. package/dist/lib/lanes/mesh-events.js +0 -564
  928. package/dist/lib/lanes/message-replay.d.ts +0 -21
  929. package/dist/lib/lanes/message-replay.js +0 -122
  930. package/dist/lib/lanes/models.d.ts +0 -86
  931. package/dist/lib/lanes/models.js +0 -234
  932. package/dist/lib/lanes/monitor.d.ts +0 -48
  933. package/dist/lib/lanes/monitor.js +0 -428
  934. package/dist/lib/lanes/move-account.d.ts +0 -56
  935. package/dist/lib/lanes/move-account.js +0 -193
  936. package/dist/lib/lanes/orphans.d.ts +0 -25
  937. package/dist/lib/lanes/orphans.js +0 -102
  938. package/dist/lib/lanes/outpost-dispatch.d.ts +0 -147
  939. package/dist/lib/lanes/outpost-dispatch.js +0 -271
  940. package/dist/lib/lanes/outpost-hire-cache.d.ts +0 -22
  941. package/dist/lib/lanes/outpost-hire-cache.js +0 -153
  942. package/dist/lib/lanes/outpost-identity.d.ts +0 -33
  943. package/dist/lib/lanes/outpost-identity.js +0 -59
  944. package/dist/lib/lanes/outpost-profile-repin.d.ts +0 -17
  945. package/dist/lib/lanes/outpost-profile-repin.js +0 -84
  946. package/dist/lib/lanes/outpost-pruner-install.d.ts +0 -37
  947. package/dist/lib/lanes/outpost-pruner-install.js +0 -238
  948. package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +0 -18
  949. package/dist/lib/lanes/outpost-registry-worker-approval.js +0 -109
  950. package/dist/lib/lanes/outpost-snapshot-memo.d.ts +0 -6
  951. package/dist/lib/lanes/outpost-snapshot-memo.js +0 -14
  952. package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +0 -19
  953. package/dist/lib/lanes/outpost-worktree-pruner-flag.js +0 -86
  954. package/dist/lib/lanes/outpost-worktree-pruner.d.ts +0 -62
  955. package/dist/lib/lanes/outpost-worktree-pruner.js +0 -1201
  956. package/dist/lib/lanes/profile.d.ts +0 -69
  957. package/dist/lib/lanes/profile.js +0 -552
  958. package/dist/lib/lanes/provider-rejection.d.ts +0 -86
  959. package/dist/lib/lanes/provider-rejection.js +0 -286
  960. package/dist/lib/lanes/questions.d.ts +0 -90
  961. package/dist/lib/lanes/questions.js +0 -384
  962. package/dist/lib/lanes/quota.d.ts +0 -134
  963. package/dist/lib/lanes/quota.js +0 -471
  964. package/dist/lib/lanes/reconcile-install.d.ts +0 -90
  965. package/dist/lib/lanes/reconcile-install.js +0 -257
  966. package/dist/lib/lanes/reconcile.d.ts +0 -161
  967. package/dist/lib/lanes/reconcile.js +0 -3324
  968. package/dist/lib/lanes/registry-flag.d.ts +0 -35
  969. package/dist/lib/lanes/registry-flag.js +0 -164
  970. package/dist/lib/lanes/registry-persona.d.ts +0 -20
  971. package/dist/lib/lanes/registry-persona.js +0 -329
  972. package/dist/lib/lanes/registry.d.ts +0 -122
  973. package/dist/lib/lanes/registry.js +0 -570
  974. package/dist/lib/lanes/reviews.d.ts +0 -38
  975. package/dist/lib/lanes/reviews.js +0 -395
  976. package/dist/lib/lanes/runaway-tool-guard.d.ts +0 -38
  977. package/dist/lib/lanes/runaway-tool-guard.js +0 -284
  978. package/dist/lib/lanes/session-relink.d.ts +0 -25
  979. package/dist/lib/lanes/session-relink.js +0 -216
  980. package/dist/lib/lanes/spawn.d.ts +0 -355
  981. package/dist/lib/lanes/spawn.js +0 -2668
  982. package/dist/lib/lanes/ssm-command-context.d.ts +0 -12
  983. package/dist/lib/lanes/ssm-command-context.js +0 -52
  984. package/dist/lib/lanes/store.d.ts +0 -91
  985. package/dist/lib/lanes/store.js +0 -1822
  986. package/dist/lib/lanes/stories.d.ts +0 -23
  987. package/dist/lib/lanes/stories.js +0 -92
  988. package/dist/lib/lanes/story-ledger.d.ts +0 -80
  989. package/dist/lib/lanes/story-ledger.js +0 -815
  990. package/dist/lib/lanes/story-switch.d.ts +0 -21
  991. package/dist/lib/lanes/story-switch.js +0 -75
  992. package/dist/lib/lanes/text-scan.d.ts +0 -11
  993. package/dist/lib/lanes/text-scan.js +0 -103
  994. package/dist/lib/lanes/throttle.d.ts +0 -116
  995. package/dist/lib/lanes/throttle.js +0 -437
  996. package/dist/lib/lanes/timestamp.d.ts +0 -3
  997. package/dist/lib/lanes/timestamp.js +0 -26
  998. package/dist/lib/lanes/tracker-checks.d.ts +0 -77
  999. package/dist/lib/lanes/tracker-checks.js +0 -134
  1000. package/dist/lib/lanes/tracker-report-state.d.ts +0 -10
  1001. package/dist/lib/lanes/tracker-report-state.js +0 -124
  1002. package/dist/lib/lanes/tracker-report.d.ts +0 -203
  1003. package/dist/lib/lanes/tracker-report.js +0 -522
  1004. package/dist/lib/lanes/tracker-store.d.ts +0 -18
  1005. package/dist/lib/lanes/tracker-store.js +0 -106
  1006. package/dist/lib/lanes/types.d.ts +0 -1030
  1007. package/dist/lib/lanes/types.js +0 -418
  1008. package/dist/lib/lanes/wait.d.ts +0 -39
  1009. package/dist/lib/lanes/wait.js +0 -159
  1010. package/dist/lib/lanes/watch.d.ts +0 -39
  1011. package/dist/lib/lanes/watch.js +0 -249
  1012. package/dist/lib/lanes/watcher-main.d.ts +0 -11
  1013. package/dist/lib/lanes/watcher-main.js +0 -108
  1014. package/dist/lib/lanes/watcher.d.ts +0 -287
  1015. package/dist/lib/lanes/watcher.js +0 -1972
  1016. package/dist/lib/mesh/denial-codes.d.ts +0 -5
  1017. package/dist/lib/mesh/denial-codes.js +0 -14
  1018. package/dist/lib/mesh/live/daemon/config.d.ts +0 -36
  1019. package/dist/lib/mesh/live/daemon/config.js +0 -120
  1020. package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +0 -43
  1021. package/dist/lib/mesh/live/daemon/legacy-listen.js +0 -89
  1022. package/dist/lib/mesh/live/daemon/live-cache.d.ts +0 -26
  1023. package/dist/lib/mesh/live/daemon/live-cache.js +0 -116
  1024. package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +0 -7
  1025. package/dist/lib/mesh/live/daemon/mqtt-events.js +0 -2
  1026. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +0 -2
  1027. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +0 -10
  1028. package/dist/lib/mesh/live/daemon/version-drift.d.ts +0 -5
  1029. package/dist/lib/mesh/live/daemon/version-drift.js +0 -47
  1030. package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +0 -32
  1031. package/dist/lib/mesh/live/daemon/work-subscribe.js +0 -262
  1032. package/dist/lib/mesh/live/report-summary.d.ts +0 -45
  1033. package/dist/lib/mesh/live/report-summary.js +0 -234
  1034. package/dist/lib/mesh/live/session-seq.d.ts +0 -4
  1035. package/dist/lib/mesh/live/session-seq.js +0 -33
  1036. package/dist/lib/mesh/project-board.d.ts +0 -65
  1037. package/dist/lib/mesh/project-board.js +0 -181
  1038. package/dist/lib/mesh/story-status.d.ts +0 -22
  1039. package/dist/lib/mesh/story-status.js +0 -49
  1040. package/dist/lib/monitor.d.ts +0 -149
  1041. package/dist/lib/monitor.js +0 -519
  1042. package/dist/lib/node-binary.d.ts +0 -50
  1043. package/dist/lib/node-binary.js +0 -133
  1044. package/dist/lib/notify-recipient.d.ts +0 -7
  1045. package/dist/lib/notify-recipient.js +0 -11
  1046. package/dist/lib/onboarding/checkpoint.d.ts +0 -13
  1047. package/dist/lib/onboarding/checkpoint.js +0 -44
  1048. package/dist/lib/onboarding/cli/onboard.d.ts +0 -53
  1049. package/dist/lib/onboarding/cli/onboard.js +0 -135
  1050. package/dist/lib/onboarding/cli/prompts.d.ts +0 -28
  1051. package/dist/lib/onboarding/cli/prompts.js +0 -83
  1052. package/dist/lib/onboarding/errors.d.ts +0 -34
  1053. package/dist/lib/onboarding/errors.js +0 -59
  1054. package/dist/lib/onboarding/index.d.ts +0 -13
  1055. package/dist/lib/onboarding/index.js +0 -13
  1056. package/dist/lib/onboarding/orchestrator.d.ts +0 -47
  1057. package/dist/lib/onboarding/orchestrator.js +0 -569
  1058. package/dist/lib/onboarding/types.d.ts +0 -79
  1059. package/dist/lib/onboarding/types.js +0 -8
  1060. package/dist/lib/policy-validator.d.ts +0 -7
  1061. package/dist/lib/policy-validator.js +0 -187
  1062. package/dist/lib/process-flag-company-context.d.ts +0 -8
  1063. package/dist/lib/process-flag-company-context.js +0 -67
  1064. package/dist/lib/report-publish.d.ts +0 -175
  1065. package/dist/lib/report-publish.js +0 -421
  1066. package/dist/lib/report-run.d.ts +0 -62
  1067. package/dist/lib/report-run.js +0 -123
  1068. package/dist/lib/report-snapshot.d.ts +0 -12
  1069. package/dist/lib/report-snapshot.js +0 -135
  1070. package/dist/lib/report-templates.d.ts +0 -9
  1071. package/dist/lib/report-templates.js +0 -21
  1072. package/dist/lib/scaffold-cli-floor.d.ts +0 -8
  1073. package/dist/lib/scaffold-cli-floor.js +0 -50
  1074. package/dist/lib/search-index/collection-path-repair-flag.d.ts +0 -4
  1075. package/dist/lib/search-index/collection-path-repair-flag.js +0 -7
  1076. package/dist/lib/search-index/embed-lock.d.ts +0 -34
  1077. package/dist/lib/search-index/embed-lock.js +0 -295
  1078. package/dist/lib/search-index/load-gate.d.ts +0 -57
  1079. package/dist/lib/search-index/load-gate.js +0 -270
  1080. package/dist/lib/search-index/max-doc-bytes.d.ts +0 -219
  1081. package/dist/lib/search-index/max-doc-bytes.js +0 -463
  1082. package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +0 -5
  1083. package/dist/lib/search-index/qmd-exit-diagnostics.js +0 -40
  1084. package/dist/lib/search-index/reindex-single-flight-flag.d.ts +0 -5
  1085. package/dist/lib/search-index/reindex-single-flight-flag.js +0 -8
  1086. package/dist/lib/service-manager/index.d.ts +0 -42
  1087. package/dist/lib/service-manager/index.js +0 -105
  1088. package/dist/lib/service-manager/launchd.d.ts +0 -81
  1089. package/dist/lib/service-manager/launchd.js +0 -212
  1090. package/dist/lib/service-manager/systemd.d.ts +0 -19
  1091. package/dist/lib/service-manager/systemd.js +0 -72
  1092. package/dist/lib/service-manager/types.d.ts +0 -34
  1093. package/dist/lib/service-manager/types.js +0 -26
  1094. package/dist/lib/test-utils/isolated-flag-company-context.d.ts +0 -3
  1095. package/dist/lib/test-utils/isolated-flag-company-context.js +0 -18
  1096. package/dist/lib/work-context/bind-best.d.ts +0 -66
  1097. package/dist/lib/work-context/bind-best.js +0 -344
  1098. package/dist/lib/work-context/bind-calling-session.d.ts +0 -26
  1099. package/dist/lib/work-context/bind-calling-session.js +0 -63
  1100. package/dist/lib/work-context/company-rebind.d.ts +0 -23
  1101. package/dist/lib/work-context/company-rebind.js +0 -59
  1102. package/dist/lib/work-context/default-company.d.ts +0 -43
  1103. package/dist/lib/work-context/default-company.js +0 -83
  1104. package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +0 -4
  1105. package/dist/lib/work-context/outbox-quarantine-status-flag.js +0 -7
  1106. package/dist/lib/work-context/prd-sync.d.ts +0 -56
  1107. package/dist/lib/work-context/prd-sync.js +0 -197
  1108. package/dist/lib/work-context/preflight-contract.d.ts +0 -28
  1109. package/dist/lib/work-context/preflight-contract.js +0 -85
  1110. package/dist/lib/work-context/prompt-rebind.d.ts +0 -25
  1111. package/dist/lib/work-context/prompt-rebind.js +0 -85
  1112. package/dist/lib/work-context/windows-acl.d.ts +0 -123
  1113. package/dist/lib/work-context/windows-acl.js +0 -425
  1114. package/dist/lib/workers-registry/read.d.ts +0 -15
  1115. package/dist/lib/workers-registry/read.js +0 -17
  1116. package/dist/native-fast-route.d.ts +0 -7
  1117. package/dist/native-fast-route.js +0 -45
  1118. package/dist/node-network-compat-core.d.ts +0 -12
  1119. package/dist/node-network-compat-core.js +0 -41
  1120. package/dist/node-network-compat-fast.d.ts +0 -7
  1121. package/dist/node-network-compat-fast.js +0 -23
  1122. package/dist/secrets-env-fast-path.d.ts +0 -5
  1123. package/dist/secrets-env-fast-path.js +0 -16
  1124. package/dist/secrets-env-fast-route.d.ts +0 -18
  1125. package/dist/secrets-env-fast-route.js +0 -54
  1126. package/dist/utils/checkpoint-stamp-write-error.d.ts +0 -28
  1127. package/dist/utils/checkpoint-stamp-write-error.js +0 -99
  1128. package/dist/utils/cli-network-lifecycle.d.ts +0 -4
  1129. package/dist/utils/cli-network-lifecycle.js +0 -11
  1130. package/dist/utils/cognito-refresh-sentry.d.ts +0 -3
  1131. package/dist/utils/cognito-refresh-sentry.js +0 -49
  1132. package/dist/utils/console-origin.d.ts +0 -9
  1133. package/dist/utils/console-origin.js +0 -28
  1134. package/dist/utils/core-eval-trigger.d.ts +0 -4
  1135. package/dist/utils/core-eval-trigger.js +0 -88
  1136. package/dist/utils/exclusive-lock.d.ts +0 -32
  1137. package/dist/utils/exclusive-lock.js +0 -75
  1138. package/dist/utils/fast-stream-errors.d.ts +0 -12
  1139. package/dist/utils/fast-stream-errors.js +0 -18
  1140. package/dist/utils/files-browse-acl.d.ts +0 -5
  1141. package/dist/utils/files-browse-acl.js +0 -11
  1142. package/dist/utils/hq-core-yaml.d.ts +0 -10
  1143. package/dist/utils/hq-core-yaml.js +0 -40
  1144. package/dist/utils/hq-root-resolver.d.ts +0 -13
  1145. package/dist/utils/hq-root-resolver.js +0 -103
  1146. package/dist/utils/redact-url.d.ts +0 -14
  1147. package/dist/utils/redact-url.js +0 -218
  1148. package/dist/utils/scaffold-fast-import-guard.d.ts +0 -2
  1149. package/dist/utils/scaffold-fast-import-guard.js +0 -40
  1150. package/dist/utils/scaffold-packlist-guard.d.ts +0 -7
  1151. package/dist/utils/scaffold-packlist-guard.js +0 -23
  1152. package/dist/utils/scaffold-sibling-references.d.ts +0 -22
  1153. package/dist/utils/scaffold-sibling-references.js +0 -156
  1154. package/dist/utils/secret-load-availability.d.ts +0 -8
  1155. package/dist/utils/secret-load-availability.js +0 -54
  1156. package/dist/utils/staged-install.d.ts +0 -34
  1157. package/dist/utils/staged-install.js +0 -346
  1158. package/dist/utils/staged-npm-install.d.ts +0 -16
  1159. package/dist/utils/staged-npm-install.js +0 -264
  1160. package/dist/utils/sync-log-sources.d.ts +0 -15
  1161. package/dist/utils/sync-log-sources.js +0 -36
  1162. package/dist/utils/table-width.d.ts +0 -7
  1163. package/dist/utils/table-width.js +0 -15
  1164. package/dist/utils/update-command-supervisor.cjs +0 -247
  1165. package/dist/utils/upload-author.d.ts +0 -15
  1166. package/dist/utils/upload-author.js +0 -39
  1167. package/dist/utils/version-report.d.ts +0 -27
  1168. package/dist/utils/version-report.js +0 -105
  1169. package/dist/version-request.d.ts +0 -14
  1170. package/dist/version-request.js +0 -36
  1171. package/scripts/mesh-daemon-if-stale.mjs +0 -20
  1172. package/templates/reports/blank.md +0 -3
  1173. package/templates/reports/daily-digest.md +0 -11
  1174. package/templates/runbooks/update-report.md +0 -21
@@ -4,8 +4,6 @@
4
4
  * - macOS: LaunchAgent ai.getindigo.hq-mesh-daemon
5
5
  * - Linux: systemd user unit hq-mesh-daemon.service
6
6
  * (documented fallback: root-owned unit running as ec2-user)
7
- * - Windows: per-user Scheduled Task ai.getindigo.hq-mesh-daemon registered
8
- * from a rendered task XML via schtasks.exe (no native dependencies)
9
7
  *
10
8
  * The unit embeds the hq binary resolved at install time. Logs go to
11
9
  * ~/.hq/work-mesh/daemon/log (rotation at 5MB handled by the daemon).
@@ -14,282 +12,20 @@
14
12
  import * as fs from "node:fs";
15
13
  import * as os from "node:os";
16
14
  import * as path from "node:path";
17
- import { spawnSync } from "node:child_process";
18
- import semver from "semver";
19
15
  import { resolveDaemonAssetDir } from "./log.js";
20
- import { LAUNCHD_LABEL, SYSTEMD_UNIT_NAME, WINDOWS_TASK_NAME, daemonDir, daemonLogPath, daemonPidPath, } from "./paths.js";
21
- import { isInstallableHqRoot, readDaemonConfig, registerTrustedHqRoot, verifyHqRoot } from "./config.js";
22
- import { defaultPidLockDeps, pidLockStatus, readPidLock } from "./pid-lock.js";
23
- import { retireLegacyListen } from "./legacy-listen.js";
24
- import { readDaemonState } from "./state.js";
25
- import { activateLaunchd, defaultRunCommand, launchdIsLoaded, launchdServiceTarget, launchdPlistProgramArguments, launchdProgramArgumentsDiffer, parseLaunchctlPrintArguments, } from "../../../service-manager/launchd.js";
26
- import { activateSystemd, systemdIsActive } from "../../../service-manager/systemd.js";
27
- import { nodeBinaryProblem, preferStableNodeBinary } from "../../../node-binary.js";
28
- /**
29
- * `schtasks /End` terminates the task's root process only. The daemon is
30
- * launched through `conhost.exe --headless`, so ending the task kills conhost
31
- * and leaves node running as an orphan that still holds the pid lock. Stop
32
- * the recorded daemon pid explicitly. Returns the pid that was signalled, or
33
- * null when no live daemon pid was recorded.
34
- */
35
- export function stopWindowsDaemonProcess(dir, deps = {}) {
36
- const record = readPidLock(daemonPidPath(dir), {
37
- readFileSync: deps.readFileSync,
38
- existsSync: deps.existsSync,
39
- });
40
- if (!record || record.pid === (deps.selfPid ?? process.pid))
41
- return null;
42
- try {
43
- (deps.kill ?? ((pid) => process.kill(pid)))(record.pid);
44
- return record.pid;
45
- }
46
- catch {
47
- return null;
48
- }
49
- }
50
- export const defaultSchtasks = (args) => {
51
- const r = spawnSync("schtasks.exe", args, { encoding: "utf8", windowsHide: true });
52
- return {
53
- status: r.status,
54
- stdout: r.stdout ?? "",
55
- stderr: r.error ? r.error.message : (r.stderr ?? ""),
56
- };
57
- };
58
- function readServiceText(file, existsSync, readFileSync) {
59
- if (!existsSync(file))
60
- return "";
61
- const raw = readFileSync(file);
62
- const buf = Buffer.isBuffer(raw) ? raw : Buffer.from(String(raw));
63
- if ((buf.length >= 2 && buf[0] === 0xff && buf[1] === 0xfe) || buf.includes(0)) {
64
- return buf.toString("utf16le").replace(/^\uFEFF/, "");
65
- }
66
- return buf.toString("utf8");
67
- }
68
- function hqRootFromUnitText(platform, text) {
69
- if (platform === "win32")
70
- return parseWindowsTaskHqRoot(text);
71
- if (platform === "darwin") {
72
- const match = /<key>HQ_ROOT<\/key>\s*<string>([^<]*)<\/string>/.exec(text);
73
- return match?.[1] ?? null;
74
- }
75
- const match = /^Environment=HQ_ROOT=(.*)$/m.exec(text);
76
- if (!match)
77
- return null;
78
- const value = match[1].trim();
79
- return value.startsWith("'") && value.endsWith("'") ? value.slice(1, -1) : value;
80
- }
81
- /**
82
- * Record the HQ root the daemon was serving and replace a pre-allowlist unit
83
- * before the process is restarted. A unit with no HQ_ROOT (or Restart=on-failure)
84
- * comes back with an empty root allowlist unless this runs first.
85
- */
86
- function migrateLegacyDaemonUnit(opts) {
87
- const { platform, home } = opts;
88
- if (platform !== "darwin" && platform !== "linux" && platform !== "win32")
89
- return;
90
- const unitPath = platform === "darwin"
91
- ? path.join(home, "Library", "LaunchAgents", `${LAUNCHD_LABEL}.plist`)
92
- : platform === "linux"
93
- ? path.join(home, ".config", "systemd", "user", SYSTEMD_UNIT_NAME)
94
- : path.join(daemonDir(undefined, home, opts.env), `${WINDOWS_TASK_NAME}.xml`);
95
- if (!opts.existsSync(unitPath))
96
- return;
97
- const text = readServiceText(unitPath, opts.existsSync, opts.readFileSync);
98
- const fromUnit = hqRootFromUnitText(platform, text);
99
- const verified = verifyHqRoot(fromUnit ?? undefined)
100
- ?? verifyHqRoot(opts.hqRoot)
101
- ?? verifyHqRoot(opts.env?.HQ_ROOT);
102
- if (!verified)
103
- return;
104
- registerTrustedHqRoot(daemonDir(undefined, home, opts.env), verified);
105
- const legacy = platform === "linux"
106
- ? !text.includes("Environment=HQ_ROOT=") || /Restart=on-failure/.test(text)
107
- : platform === "darwin"
108
- ? !/<key>HQ_ROOT<\/key>/.test(text)
109
- : !fromUnit;
110
- if (!legacy)
111
- return;
112
- const paths = buildInstallPaths({
113
- home,
114
- env: opts.env,
115
- hqRoot: verified,
116
- hqBinary: "/usr/bin/hq",
117
- nodeBinary: process.execPath ? resolveNodeBinary(process.execPath, opts.env ?? process.env) : "/usr/bin/node",
118
- });
119
- try {
120
- paths.hqBinary = resolveHqBinary(process.argv, opts.env ?? process.env);
121
- }
122
- catch {
123
- // The rendered command only has to name a binary; install already resolved one.
124
- }
125
- if (platform === "darwin") {
126
- opts.writeFileSync(unitPath, renderLaunchdPlist(paths), { mode: 0o600 });
127
- return;
128
- }
129
- if (platform === "linux") {
130
- opts.writeFileSync(unitPath, renderSystemdUserUnit(paths), { mode: 0o600 });
131
- opts.run("systemctl", ["--user", "daemon-reload"]);
132
- return;
133
- }
134
- const rendered = renderWindowsTaskXml(paths);
135
- opts.writeFileSync(unitPath, encodeWindowsTaskXml(rendered));
136
- opts.run("schtasks.exe", ["/Create", "/TN", WINDOWS_TASK_NAME, "/XML", unitPath, "/F"]);
137
- }
138
- /**
139
- * Restart the installed user daemon after a CLI upgrade. This is deliberately
140
- * best-effort: an update must remain successful if a user has no service,
141
- * launchctl/systemd is unavailable, or the user manager is not running.
142
- */
143
- function asRunCommand(run) {
144
- return (command, args) => {
145
- const result = run(command, args);
146
- return {
147
- status: result.status,
148
- stdout: result.stdout ?? "",
149
- stderr: result.stderr ?? "",
150
- };
151
- };
152
- }
153
- export function restartDaemonServiceIfInstalled(opts = {}) {
154
- const platform = opts.platform ?? detectPlatform();
155
- const home = opts.home ?? os.homedir();
156
- const existsSync = opts.existsSync ?? fs.existsSync;
157
- const readFileSync = opts.readFileSync ?? fs.readFileSync;
158
- const writeFileSync = opts.writeFileSync ?? fs.writeFileSync;
159
- const run = opts.run ?? ((command, args) => {
160
- const result = spawnSync(command, args, { encoding: "utf8" });
161
- return {
162
- status: result.status,
163
- stdout: typeof result.stdout === "string" ? result.stdout : "",
164
- stderr: result.error ? result.error.message : (typeof result.stderr === "string" ? result.stderr : ""),
165
- };
166
- });
167
- try {
168
- migrateLegacyDaemonUnit({ platform, home, hqRoot: opts.hqRoot, env: opts.env, existsSync, readFileSync, writeFileSync, run });
169
- if (platform === "darwin") {
170
- const plist = path.join(home, "Library", "LaunchAgents", `${LAUNCHD_LABEL}.plist`);
171
- if (!existsSync(plist))
172
- return { attempted: false, restarted: false };
173
- const uid = opts.uid ?? process.getuid?.();
174
- if (typeof uid !== "number")
175
- return { attempted: false, restarted: false };
176
- const target = `gui/${uid}/${LAUNCHD_LABEL}`;
177
- const printed = run("launchctl", ["print", target]);
178
- const loadedArgs = parseLaunchctlPrintArguments(printed.stdout ?? "");
179
- const rawPlist = readFileSync(plist);
180
- const plistText = Buffer.isBuffer(rawPlist) ? rawPlist.toString("utf8") : String(rawPlist);
181
- const plistArgs = launchdPlistProgramArguments(plistText);
182
- if (launchdProgramArgumentsDiffer(loadedArgs, plistArgs)) {
183
- try {
184
- activateLaunchd(plist, asRunCommand(run), uid, { sleep: opts.sleep });
185
- return { attempted: true, restarted: true };
186
- }
187
- catch (err) {
188
- return { attempted: true, restarted: false, message: err instanceof Error ? err.message : String(err) };
189
- }
190
- }
191
- const result = run("launchctl", ["kickstart", "-k", target]);
192
- return { attempted: true, restarted: result.status === 0 };
193
- }
194
- if (platform === "linux") {
195
- const unit = path.join(home, ".config", "systemd", "user", SYSTEMD_UNIT_NAME);
196
- if (existsSync(unit)) {
197
- const result = run("systemctl", ["--user", "restart", SYSTEMD_UNIT_NAME]);
198
- return { attempted: true, restarted: result.status === 0 };
199
- }
200
- const systemUnit = path.join("/etc", "systemd", "system", SYSTEMD_UNIT_NAME);
201
- if (existsSync(systemUnit)) {
202
- return {
203
- attempted: true,
204
- restarted: false,
205
- message: "system unit detected; restart requires the box's service manager",
206
- };
207
- }
208
- return { attempted: false, restarted: false };
209
- }
210
- if (platform === "win32") {
211
- const dir = daemonDir(undefined, home);
212
- const xml = path.join(dir, `${WINDOWS_TASK_NAME}.xml`);
213
- if (!existsSync(xml))
214
- return { attempted: false, restarted: false };
215
- run("schtasks.exe", ["/End", "/TN", WINDOWS_TASK_NAME]);
216
- stopWindowsDaemonProcess(dir, { existsSync, kill: opts.kill });
217
- const result = run("schtasks.exe", ["/Run", "/TN", WINDOWS_TASK_NAME]);
218
- return { attempted: true, restarted: result.status === 0 };
219
- }
220
- }
221
- catch {
222
- // The caller has already completed the update; service restart failure is
223
- // intentionally non-fatal and will be retried by normal service recovery.
224
- }
225
- return { attempted: false, restarted: false };
226
- }
16
+ import { LAUNCHD_LABEL, SYSTEMD_UNIT_NAME, daemonDir, daemonLogPath, } from "./paths.js";
227
17
  export function detectPlatform(platform = process.platform) {
228
18
  if (platform === "darwin")
229
19
  return "darwin";
230
20
  if (platform === "linux")
231
21
  return "linux";
232
- if (platform === "win32")
233
- return "win32";
234
22
  return "other";
235
23
  }
236
- /**
237
- * HQ updates moved the CLI from toolchain/node/bin/hq to
238
- * toolchain/npm-global/bin/hq. A LaunchAgent that still names the old path
239
- * dies with MODULE_NOT_FOUND on the next restart. Prefer the live npm-global
240
- * binary when both exist.
241
- */
242
- export function preferStableHqBinary(entry) {
243
- const stale = `${path.sep}toolchain${path.sep}node${path.sep}bin${path.sep}`;
244
- const stable = `${path.sep}toolchain${path.sep}npm-global${path.sep}bin${path.sep}`;
245
- if (!entry.includes(stale))
246
- return entry;
247
- const candidate = entry.replace(stale, stable);
248
- if (candidate !== entry && fs.existsSync(candidate))
249
- return path.resolve(candidate);
250
- return entry;
251
- }
252
- /**
253
- * Absolute path of the CLI entry that is executing this process.
254
- * realpath of argv[1] only — never a PATH lookup of `hq`.
255
- */
256
- export function resolveRunningCliEntry(argv = process.argv) {
257
- const entry = argv[1];
258
- if (!entry) {
259
- throw new Error("Cannot resolve hq binary: process.argv[1] is empty");
260
- }
261
- try {
262
- return fs.realpathSync(entry);
263
- }
264
- catch {
265
- throw new Error(`Cannot resolve hq binary: ${entry} is not a real path`);
266
- }
267
- }
268
- /**
269
- * Absolute node binary for a service unit: the realpath of process.execPath,
270
- * then its upgrade-stable alias (/opt/homebrew/bin/node rather than
271
- * /opt/homebrew/Cellar/node/<version>/bin/node) when one resolves to the same
272
- * binary. No PATH lookup of `node` by name.
273
- */
274
- export function resolveAbsoluteNodeBinary(execPath = process.execPath) {
275
- if (!execPath)
276
- throw new Error("Cannot resolve node binary: execPath is empty");
277
- let real;
278
- try {
279
- real = fs.realpathSync(execPath);
280
- }
281
- catch {
282
- if (path.isAbsolute(execPath))
283
- return execPath;
284
- throw new Error(`Cannot resolve node binary: ${execPath} is not a real path`);
285
- }
286
- return preferStableNodeBinary(real);
287
- }
288
24
  /** Resolve the hq binary the current shell uses (argv[1] or PATH). */
289
25
  export function resolveHqBinary(argv = process.argv, env = process.env) {
290
26
  const entry = argv[1];
291
27
  if (entry && fs.existsSync(entry)) {
292
- return preferStableHqBinary(path.resolve(entry));
28
+ return path.resolve(entry);
293
29
  }
294
30
  const pathEnv = env.PATH ?? "";
295
31
  for (const dir of pathEnv.split(path.delimiter)) {
@@ -303,104 +39,9 @@ export function resolveHqBinary(argv = process.argv, env = process.env) {
303
39
  }
304
40
  throw new Error("Cannot resolve hq binary for daemon install");
305
41
  }
306
- /** True when this CLI is newer than the version the daemon recorded, or nothing was recorded. */
307
- export function isNewerCliVersion(current, recorded) {
308
- const recordedVersion = recorded?.trim() ?? "";
309
- if (!recordedVersion)
310
- return true;
311
- if (semver.valid(current) && semver.valid(recordedVersion)) {
312
- return semver.gt(current, recordedVersion);
313
- }
314
- return current !== recordedVersion;
315
- }
316
- /**
317
- * Reinstall and restart the user daemon only when `currentVersion` is newer
318
- * than daemon/state.json `cliVersion`. A missing record counts as stale.
319
- * `run` is the launchctl/systemctl seam — tests pass a stub.
320
- */
321
- export function installDaemonIfStale(opts) {
322
- const recorded = readDaemonState(opts.paths.daemonDir)?.cliVersion;
323
- const platformForUnit = opts.platform ?? detectPlatform();
324
- const installedNode = installedDaemonNodeBinary(opts.paths, platformForUnit, opts.readUnit);
325
- // Only a rewrite that changes the node path helps: a unit whose node is gone
326
- // or versioned, while this install resolves a different (stable) one.
327
- const nodeProblem = installedNode && installedNode !== opts.paths.nodeBinary
328
- ? (opts.nodeProblem ?? nodeBinaryProblem)(installedNode)
329
- : null;
330
- if (!isNewerCliVersion(opts.currentVersion, recorded) && !nodeProblem) {
331
- return {
332
- reinstalled: false,
333
- message: `daemon already records hq ${recorded}; not reinstalling`,
334
- };
335
- }
336
- const run = opts.run ?? ((command, args) => {
337
- const result = spawnSync(command, args, { encoding: "utf8" });
338
- return {
339
- status: result.status,
340
- stdout: typeof result.stdout === "string" ? result.stdout : "",
341
- stderr: typeof result.stderr === "string" ? result.stderr : "",
342
- };
343
- });
344
- const platform = opts.platform ?? detectPlatform();
345
- const installed = installDaemonService({
346
- platform,
347
- paths: opts.paths,
348
- systemUser: opts.systemUser,
349
- writeFileSync: opts.writeFileSync,
350
- mkdirSync: opts.mkdirSync,
351
- reloadSystemd: opts.reloadSystemd,
352
- schtasks: opts.schtasks,
353
- kill: opts.kill,
354
- runCommand: opts.runCommand,
355
- windowsLegacyTaskPresent: opts.windowsLegacyTaskPresent,
356
- run,
357
- uid: opts.uid,
358
- sleep: opts.sleep,
359
- });
360
- if (platform === "linux" && !opts.systemUser && !opts.paths.systemUser) {
361
- activateSystemd(SYSTEMD_UNIT_NAME, run);
362
- }
363
- return {
364
- reinstalled: true,
365
- message: `${installed.message} Restarted with ${opts.paths.nodeBinary} ${opts.paths.hqBinary}.`,
366
- };
367
- }
368
- /**
369
- * The node binary baked into the installed daemon unit (darwin plist or linux
370
- * user unit), or null when there is no unit or it cannot be read. Used to
371
- * reinstall a unit whose node was a versioned path an upgrade removed.
372
- */
373
- export function installedDaemonNodeBinary(paths, platform, readUnit = (file) => {
374
- try {
375
- return fs.existsSync(file) ? fs.readFileSync(file, "utf8") : null;
376
- }
377
- catch {
378
- return null;
379
- }
380
- }) {
381
- if (platform === "darwin") {
382
- const text = readUnit(paths.plistPath);
383
- if (!text)
384
- return null;
385
- const block = text.match(/<key>ProgramArguments<\/key>\s*<array>([\s\S]*?)<\/array>/);
386
- const first = block?.[1]?.match(/<string>([^<]*)<\/string>/);
387
- return first?.[1] ?? null;
388
- }
389
- if (platform === "linux") {
390
- const text = readUnit(paths.systemdUnitPath);
391
- if (!text)
392
- return null;
393
- const m = text.match(/^ExecStart=('(?:[^']|'\\'')*'|\S+)/m);
394
- if (!m)
395
- return null;
396
- const raw = m[1];
397
- return raw.startsWith("'") ? raw.slice(1, -1).replace(/'\\''/g, "'") : raw;
398
- }
399
- return null;
400
- }
401
42
  export function resolveNodeBinary(execPath = process.execPath, env = process.env) {
402
43
  if (execPath && fs.existsSync(execPath))
403
- return preferStableNodeBinary(execPath, { env });
44
+ return execPath;
404
45
  const pathEnv = env.PATH ?? "";
405
46
  for (const dir of pathEnv.split(path.delimiter)) {
406
47
  const candidate = path.join(dir, "node");
@@ -425,71 +66,9 @@ export function buildInstallPaths(opts) {
425
66
  plistPath: path.join(home, "Library", "LaunchAgents", `${LAUNCHD_LABEL}.plist`),
426
67
  systemdUserDir: path.join(home, ".config", "systemd", "user"),
427
68
  systemdUnitPath: path.join(home, ".config", "systemd", "user", SYSTEMD_UNIT_NAME),
428
- windowsTaskXmlPath: path.join(ddir, `${WINDOWS_TASK_NAME}.xml`),
429
- windowsUser: opts.windowsUser ?? resolveWindowsUser(env),
430
- windowsHeadlessLauncher: opts.windowsHeadlessLauncher === undefined
431
- ? resolveWindowsHeadlessLauncher(env)
432
- : (opts.windowsHeadlessLauncher ?? undefined),
433
69
  systemUser: opts.systemUser,
434
- hqRoot: opts.hqRoot,
435
- hqRootSource: opts.hqRootSource,
436
70
  };
437
71
  }
438
- /** `DOMAIN\user` for the current account, as Task Scheduler expects. */
439
- export function resolveWindowsUser(env = process.env) {
440
- const user = env.USERNAME?.trim() || safeUsername();
441
- const domain = env.USERDOMAIN?.trim();
442
- return domain ? `${domain}\\${user}` : user;
443
- }
444
- /**
445
- * `conhost.exe --headless` is undocumented. It shipped with the ConPTY
446
- * conhost in Windows 10 1809 (build 17763); older conhost builds reject the
447
- * flag and the task would fail on every logon. Gate on the kernel build
448
- * reported by os.release() ("10.0.<build>") plus a presence check.
449
- */
450
- export const WINDOWS_CONHOST_HEADLESS_MIN_BUILD = 17763;
451
- /** Build number from an os.release() string such as "10.0.26200"; null if unparsable. */
452
- export function parseWindowsBuild(release) {
453
- const m = /^\d+\.\d+\.(\d+)/.exec(release.trim());
454
- if (!m)
455
- return null;
456
- const build = Number(m[1]);
457
- return Number.isFinite(build) ? build : null;
458
- }
459
- /**
460
- * `conhost.exe --headless` (Windows 10 1809+) runs a console app with no
461
- * window. Returns the launcher path only when conhost.exe exists under
462
- * SystemRoot and the host build is new enough to honour `--headless`.
463
- */
464
- export function resolveWindowsHeadlessLauncher(env = process.env, existsSync = fs.existsSync, release = os.release()) {
465
- const build = parseWindowsBuild(release);
466
- if (build === null || build < WINDOWS_CONHOST_HEADLESS_MIN_BUILD)
467
- return undefined;
468
- const systemRoot = env.SystemRoot?.trim() || env.windir?.trim() || "C:\\Windows";
469
- const candidate = path.join(systemRoot, "System32", "conhost.exe");
470
- return existsSync(candidate) ? candidate : undefined;
471
- }
472
- /** Which launch wrapper the rendered task uses (recorded in the install message). */
473
- export function windowsLaunchMode(paths) {
474
- return paths.windowsHeadlessLauncher ? "conhost-headless" : "direct";
475
- }
476
- /** The task uses the interactive token, so it exists only inside the user's logon session. */
477
- export function windowsLogonNotice(paths) {
478
- return `runs at logon of ${paths.windowsUser}; not running while logged out`;
479
- }
480
- function describeWindowsLaunchMode(paths) {
481
- return windowsLaunchMode(paths) === "conhost-headless"
482
- ? `mode: conhost --headless via ${paths.windowsHeadlessLauncher}`
483
- : "mode: direct node (conhost --headless unavailable on this host; a console window may appear at logon)";
484
- }
485
- function safeUsername() {
486
- try {
487
- return os.userInfo().username;
488
- }
489
- catch {
490
- return "";
491
- }
492
- }
493
72
  export function renderLaunchdPlist(paths) {
494
73
  return `<?xml version="1.0" encoding="UTF-8"?>
495
74
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -521,7 +100,6 @@ export function renderLaunchdPlist(paths) {
521
100
  <string>${escapeXml(paths.home)}</string>
522
101
  <key>PATH</key>
523
102
  <string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
524
- ${paths.hqRoot ? `<key>HQ_ROOT</key>\n <string>${escapeXml(paths.hqRoot)}</string>` : ""}
525
103
  </dict>
526
104
  </dict>
527
105
  </plist>
@@ -537,11 +115,11 @@ Wants=network-online.target
537
115
  Type=simple
538
116
  ExecStart=${shellQuote(paths.nodeBinary)} ${shellQuote(paths.hqBinary)} mesh daemon run
539
117
  WorkingDirectory=${paths.daemonDir}
540
- Restart=always
118
+ Restart=on-failure
541
119
  RestartSec=5
542
120
  Environment=HOME=${paths.home}
543
121
  Environment=PATH=/usr/local/bin:/usr/bin:/bin
544
- ${paths.hqRoot ? `Environment=HQ_ROOT=${shellQuote(paths.hqRoot)}\n` : ""}StandardOutput=append:${paths.logPath}
122
+ StandardOutput=append:${paths.logPath}
545
123
  StandardError=append:${paths.logPath}
546
124
 
547
125
  [Install]
@@ -569,237 +147,19 @@ User=${user}
569
147
  Group=${user}
570
148
  ExecStart=${shellQuote(paths.nodeBinary)} ${shellQuote(paths.hqBinary)} mesh daemon run
571
149
  WorkingDirectory=/home/${user}/.hq/work-mesh/daemon
572
- Restart=always
150
+ Restart=on-failure
573
151
  RestartSec=5
574
152
  Environment=HOME=/home/${user}
575
153
  Environment=PATH=/usr/local/bin:/usr/bin:/bin
576
154
  Environment=HQ_MACHINE_CREDS_FILE=/home/${user}/.hq-agent/machine-creds.json
577
155
  Environment=HQ_AGENT_IDENTITY_FILE=/var/lib/hq-agent/identity.json
578
- ${paths.hqRoot ? `Environment=HQ_ROOT=${shellQuote(paths.hqRoot)}\n` : ""}StandardOutput=append:/home/${user}/.hq/work-mesh/daemon/log
156
+ StandardOutput=append:/home/${user}/.hq/work-mesh/daemon/log
579
157
  StandardError=append:/home/${user}/.hq/work-mesh/daemon/log
580
158
 
581
159
  [Install]
582
160
  WantedBy=multi-user.target
583
161
  `;
584
162
  }
585
- /**
586
- * Windows Task Scheduler definition (schtasks /Create /XML). Runs at logon of
587
- * the registering user, hidden, no execution time limit, one instance, and
588
- * restarts every minute on failure. HOME/USERPROFILE come from the user's own
589
- * session. Task Scheduler XML has no environment block, so the HQ root the
590
- * install was run for is passed explicitly as `mesh daemon run --hq-root
591
- * <path>` (the launchd/systemd equivalent of Environment=HQ_ROOT) and is also
592
- * persisted in the daemon config as a trusted root.
593
- *
594
- * LogonType is InteractiveToken: S4U ("run whether user is logged on or not")
595
- * needs elevation to register, and the interactive token is what an
596
- * unprivileged `hq mesh daemon install` can create. As a consequence the task
597
- * runs only while the registering user is logged on. The console window that
598
- * an interactive-token task would otherwise open is avoided by launching
599
- * through `conhost.exe --headless` when the host supports it (see
600
- * resolveWindowsHeadlessLauncher); otherwise node is run directly.
601
- */
602
- export function renderWindowsTaskXml(paths) {
603
- const user = escapeXml(paths.windowsUser);
604
- const nodeArg = windowsArgQuote(paths.nodeBinary);
605
- const hqArg = windowsArgQuote(paths.hqBinary);
606
- const command = paths.windowsHeadlessLauncher ?? paths.nodeBinary;
607
- const rootArgs = paths.hqRoot ? ` --hq-root ${windowsArgQuote(paths.hqRoot)}` : "";
608
- const args = paths.windowsHeadlessLauncher
609
- ? `--headless ${nodeArg} ${hqArg} mesh daemon run${rootArgs}`
610
- : `${hqArg} mesh daemon run${rootArgs}`;
611
- return `<?xml version="1.0" encoding="UTF-16"?>
612
- <Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
613
- <RegistrationInfo>
614
- <URI>\\${WINDOWS_TASK_NAME}</URI>
615
- <Description>HQ Work Mesh Live daemon (spool drainer + MQTT presence)</Description>
616
- </RegistrationInfo>
617
- <Triggers>
618
- <LogonTrigger>
619
- <Enabled>true</Enabled>
620
- <UserId>${user}</UserId>
621
- </LogonTrigger>
622
- </Triggers>
623
- <Principals>
624
- <Principal id="Author">
625
- <UserId>${user}</UserId>
626
- <LogonType>${WINDOWS_TASK_LOGON_TYPE}</LogonType>
627
- <RunLevel>LeastPrivilege</RunLevel>
628
- </Principal>
629
- </Principals>
630
- <Settings>
631
- <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
632
- <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
633
- <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
634
- <AllowHardTerminate>true</AllowHardTerminate>
635
- <StartWhenAvailable>true</StartWhenAvailable>
636
- <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
637
- <AllowStartOnDemand>true</AllowStartOnDemand>
638
- <Enabled>true</Enabled>
639
- <Hidden>true</Hidden>
640
- <RunOnlyIfIdle>false</RunOnlyIfIdle>
641
- <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
642
- <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
643
- <WakeToRun>false</WakeToRun>
644
- <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
645
- <Priority>7</Priority>
646
- <RestartOnFailure>
647
- <Interval>PT1M</Interval>
648
- <Count>999</Count>
649
- </RestartOnFailure>
650
- </Settings>
651
- <Actions Context="Author">
652
- <Exec>
653
- <Command>${escapeXml(command)}</Command>
654
- <Arguments>${escapeXml(args)}</Arguments>
655
- <WorkingDirectory>${escapeXml(paths.daemonDir)}</WorkingDirectory>
656
- </Exec>
657
- </Actions>
658
- </Task>
659
- `;
660
- }
661
- const WINDOWS_TASK_LOGON_TYPE = "InteractiveToken";
662
- /** schtasks stores task XML as UTF-16 LE with BOM; match it so /XML parses. */
663
- export function encodeWindowsTaskXml(rendered) {
664
- return Buffer.from(`\uFEFF${rendered}`, "utf16le");
665
- }
666
- function windowsArgQuote(value) {
667
- if (/^[A-Za-z0-9_.:\\/-]+$/.test(value))
668
- return value;
669
- return `"${value.replace(/"/g, '\\"')}"`;
670
- }
671
- /** Status column of `schtasks /Query /FO CSV /NH`: "TaskName","Next Run Time","Status". */
672
- export function parseSchtasksCsvStatus(stdout) {
673
- for (const line of stdout.split(/\r?\n/)) {
674
- const cells = line.match(/"([^"]*)"/g);
675
- if (!cells || cells.length < 3)
676
- continue;
677
- return cells[2].slice(1, -1).trim();
678
- }
679
- return null;
680
- }
681
- /** Split one CSV line as schtasks emits it (all cells quoted, `""` escapes a quote). */
682
- function splitCsvLine(line) {
683
- const cells = [];
684
- let cur = "";
685
- let inQuotes = false;
686
- for (let i = 0; i < line.length; i++) {
687
- const ch = line[i];
688
- if (inQuotes) {
689
- if (ch === '"') {
690
- if (line[i + 1] === '"') {
691
- cur += '"';
692
- i++;
693
- }
694
- else
695
- inQuotes = false;
696
- }
697
- else
698
- cur += ch;
699
- }
700
- else if (ch === '"')
701
- inQuotes = true;
702
- else if (ch === ",") {
703
- cells.push(cur);
704
- cur = "";
705
- }
706
- else
707
- cur += ch;
708
- }
709
- cells.push(cur);
710
- return cells;
711
- }
712
- /** Column index of "Last Result" in `schtasks /Query /V /FO CSV` (fixed order, header localized). */
713
- const SCHTASKS_LAST_RESULT_COLUMN = 6;
714
- /**
715
- * "Last Result" of `schtasks /Query /TN <name> /V /FO CSV`, normalized to an
716
- * unsigned 32-bit code (schtasks prints HRESULT/NTSTATUS values as signed
717
- * decimals, e.g. -2147024894 for 0x80070002). Prefers the English header
718
- * when present; otherwise uses the fixed column position. Null when the
719
- * output carries no task row or the cell is not numeric.
720
- */
721
- export function parseSchtasksLastResult(stdout) {
722
- const lines = stdout.split(/\r?\n/).filter((l) => l.trim().length > 0);
723
- if (lines.length === 0)
724
- return null;
725
- let column = SCHTASKS_LAST_RESULT_COLUMN;
726
- let rows = lines;
727
- const header = splitCsvLine(lines[0]);
728
- const headerIdx = header.findIndex((h) => /^last result$/i.test(h.trim()));
729
- if (headerIdx >= 0 || /^hostname$/i.test(header[0]?.trim() ?? "")) {
730
- if (headerIdx >= 0)
731
- column = headerIdx;
732
- rows = lines.slice(1);
733
- }
734
- for (const line of rows) {
735
- const cells = splitCsvLine(line);
736
- if (cells.length <= column)
737
- continue;
738
- const raw = cells[column].trim();
739
- if (!/^-?\d+$/.test(raw))
740
- continue;
741
- return Number(raw) >>> 0;
742
- }
743
- return null;
744
- }
745
- /**
746
- * Task Scheduler informational results mean "no failed start": 0 is success,
747
- * and every SCHED_S_* code (ready, running, not yet run, terminated, queued,
748
- * ...) is a success-severity HRESULT (bit 31 clear) in FACILITY_ITF (0x4)
749
- * with code 0x1300-0x13FF, i.e. 0x00041300-0x000413FF. Everything else
750
- * (0x8007xxxx, 0xC000xxxx, process exit codes such as 1) is a failed start.
751
- */
752
- export function schtasksLastResultFailed(code) {
753
- if (code === null || code === 0)
754
- return false;
755
- const severityFailed = (code & 0x80000000) !== 0;
756
- const facility = (code >>> 16) & 0x7ff;
757
- const lowCode = code & 0xffff;
758
- if (!severityFailed && facility === 0x4 && lowCode >= 0x1300 && lowCode <= 0x13ff)
759
- return false;
760
- return true;
761
- }
762
- /** `--hq-root <path>` from a rendered task's <Arguments> (XML-escaped, optionally quoted). */
763
- export function parseWindowsTaskHqRoot(xml) {
764
- const m = /<Arguments>([^<]*)<\/Arguments>/.exec(xml);
765
- if (!m)
766
- return null;
767
- const args = unescapeXml(m[1]);
768
- const quoted = /--hq-root "((?:[^"\\]|\\.)*)"/.exec(args);
769
- if (quoted)
770
- return quoted[1].replace(/\\"/g, '"');
771
- const bare = /--hq-root (\S+)/.exec(args);
772
- return bare ? bare[1] : null;
773
- }
774
- /**
775
- * The HQ root the installed Windows task actually carries: the task XML on
776
- * disk first, else the first persisted trusted root. Reads state only; never
777
- * resolves from cwd, so status reports what install recorded.
778
- */
779
- export function readRecordedWindowsHqRoot(paths, deps = {}) {
780
- const existsSync = deps.existsSync ?? fs.existsSync;
781
- const readFileSync = deps.readFileSync ?? fs.readFileSync;
782
- try {
783
- if (existsSync(paths.windowsTaskXmlPath)) {
784
- const raw = readFileSync(paths.windowsTaskXmlPath);
785
- const text = Buffer.isBuffer(raw) ? raw.toString("utf16le").replace(/^\uFEFF/, "") : String(raw);
786
- const fromXml = parseWindowsTaskHqRoot(text);
787
- if (fromXml)
788
- return fromXml;
789
- }
790
- }
791
- catch {
792
- // fall through to config
793
- }
794
- return readDaemonConfig(paths.daemonDir).trustedHqRoots[0] ?? null;
795
- }
796
- function unescapeXml(value) {
797
- return value
798
- .replace(/&quot;/g, '"')
799
- .replace(/&lt;/g, "<")
800
- .replace(/&gt;/g, ">")
801
- .replace(/&amp;/g, "&");
802
- }
803
163
  function escapeXml(value) {
804
164
  return value
805
165
  .replace(/&/g, "&amp;")
@@ -819,33 +179,18 @@ export function installDaemonService(opts) {
819
179
  const writeFileSync = opts.writeFileSync ?? fs.writeFileSync;
820
180
  const mkdirSync = opts.mkdirSync ?? fs.mkdirSync;
821
181
  mkdirSync(paths.daemonDir, { recursive: true, mode: 0o700 });
822
- registerTrustedHqRoot(paths.daemonDir, paths.hqRoot);
823
- const retired = retireLegacyListen({
824
- home: paths.home,
825
- platform,
826
- run: opts.runCommand,
827
- windowsTaskPresent: opts.windowsLegacyTaskPresent,
828
- });
829
- const legacyNote = retired.removed
830
- ? " Retired legacy listener ai.getindigo.hq-work-mesh-listen."
831
- : "";
832
182
  if (platform === "darwin") {
833
183
  const rendered = renderLaunchdPlist(paths);
834
184
  mkdirSync(paths.launchAgentsDir, { recursive: true });
835
185
  writeFileSync(paths.plistPath, rendered, { mode: 0o600 });
836
- if (opts.run) {
837
- activateLaunchd(paths.plistPath, opts.run, opts.uid, { sleep: opts.sleep });
838
- }
839
- else {
840
- opts.activate?.(platform, paths.plistPath);
841
- }
186
+ opts.activate?.(platform, paths.plistPath);
842
187
  return {
843
188
  platform,
844
189
  action: "install",
845
190
  paths,
846
191
  rendered,
847
192
  dest: paths.plistPath,
848
- message: `Installed LaunchAgent ${LAUNCHD_LABEL} → ${paths.plistPath}${legacyNote}`,
193
+ message: `Installed LaunchAgent ${LAUNCHD_LABEL} → ${paths.plistPath}`,
849
194
  };
850
195
  }
851
196
  if (platform === "linux") {
@@ -865,13 +210,12 @@ export function installDaemonService(opts) {
865
210
  dest,
866
211
  message: `Wrote system unit template for user ${opts.systemUser ?? paths.systemUser} at ${dest}. ` +
867
212
  `Install with: sudo cp ${dest} /etc/systemd/system/${SYSTEMD_UNIT_NAME} && ` +
868
- `sudo systemctl daemon-reload && sudo systemctl enable --now ${SYSTEMD_UNIT_NAME}${legacyNote}`,
213
+ `sudo systemctl daemon-reload && sudo systemctl enable --now ${SYSTEMD_UNIT_NAME}`,
869
214
  };
870
215
  }
871
216
  const rendered = renderSystemdUserUnit(paths);
872
217
  mkdirSync(paths.systemdUserDir, { recursive: true });
873
218
  writeFileSync(paths.systemdUnitPath, rendered, { mode: 0o600 });
874
- (opts.reloadSystemd ?? (() => spawnSync("systemctl", ["--user", "daemon-reload"], { stdio: "ignore" })))();
875
219
  opts.activate?.(platform, paths.systemdUnitPath);
876
220
  return {
877
221
  platform,
@@ -879,49 +223,14 @@ export function installDaemonService(opts) {
879
223
  paths,
880
224
  rendered,
881
225
  dest: paths.systemdUnitPath,
882
- message: `Installed systemd user unit ${SYSTEMD_UNIT_NAME} → ${paths.systemdUnitPath}${legacyNote}`,
883
- };
884
- }
885
- if (platform === "win32") {
886
- const schtasks = opts.schtasks ?? defaultSchtasks;
887
- const rendered = renderWindowsTaskXml(paths);
888
- writeFileSync(paths.windowsTaskXmlPath, encodeWindowsTaskXml(rendered), { mode: 0o600 });
889
- const created = schtasks([
890
- "/Create", "/TN", WINDOWS_TASK_NAME, "/XML", paths.windowsTaskXmlPath, "/F",
891
- ]);
892
- if (created.status !== 0) {
893
- throw new Error(`schtasks /Create failed for ${WINDOWS_TASK_NAME} (exit ${created.status ?? "signal"}): ` +
894
- `${(created.stderr || created.stdout).trim()}`);
895
- }
896
- // /F replaced any previous registration without ending its instance; stop
897
- // the recorded daemon so the fresh task instance can take the pid lock.
898
- schtasks(["/End", "/TN", WINDOWS_TASK_NAME]);
899
- stopWindowsDaemonProcess(paths.daemonDir, { kill: opts.kill });
900
- const started = schtasks(["/Run", "/TN", WINDOWS_TASK_NAME]);
901
- const running = started.status === 0;
902
- const mode = describeWindowsLaunchMode(paths);
903
- const rootLine = paths.hqRoot
904
- ? `HQ root: ${paths.hqRoot}${paths.hqRootSource ? ` (from ${paths.hqRootSource})` : ""}\n`
905
- : "";
906
- return {
907
- platform,
908
- action: "install",
909
- paths,
910
- rendered,
911
- dest: paths.windowsTaskXmlPath,
912
- running,
913
- message: running
914
- ? `${rootLine}Installed Scheduled Task ${WINDOWS_TASK_NAME} → ${paths.windowsTaskXmlPath} (started; ${mode})${legacyNote}`
915
- : `${rootLine}Installed Scheduled Task ${WINDOWS_TASK_NAME} → ${paths.windowsTaskXmlPath} (${mode}); ` +
916
- `start failed: ${(started.stderr || started.stdout).trim()}. It starts at next logon.${legacyNote}`,
917
- notice: windowsLogonNotice(paths),
226
+ message: `Installed systemd user unit ${SYSTEMD_UNIT_NAME} → ${paths.systemdUnitPath}`,
918
227
  };
919
228
  }
920
229
  return {
921
230
  platform,
922
231
  action: "install",
923
232
  paths,
924
- message: `Unsupported platform for service install; run: ${paths.nodeBinary} ${paths.hqBinary} mesh daemon run${legacyNote}`,
233
+ message: `Unsupported platform for service install; run: ${paths.nodeBinary} ${paths.hqBinary} mesh daemon run`,
925
234
  };
926
235
  }
927
236
  export function uninstallDaemonService(opts) {
@@ -929,44 +238,9 @@ export function uninstallDaemonService(opts) {
929
238
  const paths = opts.paths ?? buildInstallPaths({});
930
239
  const unlinkSync = opts.unlinkSync ?? fs.unlinkSync;
931
240
  const existsSync = opts.existsSync ?? fs.existsSync;
932
- if (platform === "win32") {
933
- const schtasks = opts.schtasks ?? defaultSchtasks;
934
- const registered = schtasks(["/Query", "/TN", WINDOWS_TASK_NAME, "/FO", "CSV", "/NH"]).status === 0;
935
- if (registered) {
936
- schtasks(["/End", "/TN", WINDOWS_TASK_NAME]);
937
- stopWindowsDaemonProcess(paths.daemonDir, { existsSync, kill: opts.kill });
938
- const deleted = schtasks(["/Delete", "/TN", WINDOWS_TASK_NAME, "/F"]);
939
- if (deleted.status !== 0) {
940
- throw new Error(`schtasks /Delete failed for ${WINDOWS_TASK_NAME} (exit ${deleted.status ?? "signal"}): ` +
941
- `${(deleted.stderr || deleted.stdout).trim()}`);
942
- }
943
- }
944
- if (existsSync(paths.windowsTaskXmlPath))
945
- unlinkSync(paths.windowsTaskXmlPath);
946
- return {
947
- platform,
948
- action: "uninstall",
949
- paths,
950
- dest: paths.windowsTaskXmlPath,
951
- message: registered
952
- ? `Removed Scheduled Task ${WINDOWS_TASK_NAME}`
953
- : `Scheduled Task ${WINDOWS_TASK_NAME} was not registered; removed local task XML if present`,
954
- };
955
- }
956
241
  if (platform === "darwin") {
957
242
  if (existsSync(paths.plistPath)) {
958
- if (opts.deactivate) {
959
- opts.deactivate(platform, paths.plistPath);
960
- }
961
- else {
962
- const run = opts.run ?? defaultRunCommand;
963
- const target = launchdServiceTarget(paths.plistPath, opts.uid);
964
- const bootout = run("launchctl", ["bootout", target]);
965
- if (bootout.status !== 0 && run("launchctl", ["print", target]).status === 0) {
966
- const detail = (bootout.stderr || bootout.stdout).trim();
967
- throw new Error(`launchctl bootout failed for ${target}${detail ? `: ${detail}` : ` (exit ${bootout.status})`}`);
968
- }
969
- }
243
+ opts.deactivate?.(platform, paths.plistPath);
970
244
  unlinkSync(paths.plistPath);
971
245
  }
972
246
  return {
@@ -1001,82 +275,10 @@ export function uninstallDaemonService(opts) {
1001
275
  message: "Nothing to uninstall on this platform",
1002
276
  };
1003
277
  }
1004
- /**
1005
- * Live service-manager probe for `daemonServiceStatus`: `launchctl print
1006
- * gui/<uid>/<label>` on macOS, `systemctl --user is-active` on Linux.
1007
- */
1008
- export function daemonServiceIsLoaded(run, uid) {
1009
- return (platform) => {
1010
- if (platform === "darwin")
1011
- return launchdIsLoaded(LAUNCHD_LABEL, run, uid);
1012
- if (platform === "linux")
1013
- return systemdIsActive(SYSTEMD_UNIT_NAME, run);
1014
- return false;
1015
- };
1016
- }
1017
278
  export function daemonServiceStatus(opts) {
1018
279
  const platform = opts.platform ?? detectPlatform();
1019
280
  const paths = opts.paths ?? buildInstallPaths({});
1020
281
  const existsSync = opts.existsSync ?? fs.existsSync;
1021
- if (platform === "win32") {
1022
- const schtasks = opts.schtasks ?? defaultSchtasks;
1023
- // schtasks only tells us whether the task exists. Its Status column is
1024
- // localized ("Running" / "Wird ausgeführt" / ...), so the daemon pid lock
1025
- // is the source of truth for "running"; the column is shown when it
1026
- // happens to carry a value, as extra context only.
1027
- const query = schtasks(["/Query", "/TN", WINDOWS_TASK_NAME, "/FO", "CSV", "/NH"]);
1028
- const installed = query.status === 0;
1029
- const taskState = installed ? parseSchtasksCsvStatus(query.stdout) : null;
1030
- // The verbose query carries "Last Result": a non-zero, non-informational
1031
- // code means the last start failed (for example conhost rejecting
1032
- // --headless), which the pid lock alone would report as merely "not
1033
- // running". Surface it so a failed start never looks like a clean idle.
1034
- const verbose = installed
1035
- ? schtasks(["/Query", "/TN", WINDOWS_TASK_NAME, "/V", "/FO", "CSV"])
1036
- : null;
1037
- const lastResult = verbose && verbose.status === 0 ? parseSchtasksLastResult(verbose.stdout) : null;
1038
- const lastRunFailed = schtasksLastResultFailed(lastResult);
1039
- const lock = pidLockStatus(daemonPidPath(paths.daemonDir), {
1040
- isProcessAlive: opts.isProcessAlive ?? defaultPidLockDeps().isProcessAlive,
1041
- readFileSync: opts.readFileSync,
1042
- existsSync,
1043
- });
1044
- const running = lock === "held";
1045
- // Read the root the task actually carries and re-check it: a moved,
1046
- // renamed, or deleted HQ tree leaves the task pointing at nothing.
1047
- const recordedHqRoot = installed
1048
- ? readRecordedWindowsHqRoot(paths, { existsSync, readFileSync: opts.readFileSync })
1049
- : null;
1050
- const rootValid = recordedHqRoot ? isInstallableHqRoot(recordedHqRoot) : undefined;
1051
- const detail = (taskState ? ` [task: ${taskState}]` : "") +
1052
- (lastRunFailed ? ` [last run failed: result ${lastResult}]` : "") +
1053
- (rootValid === false ? ` [recorded root no longer qualifies: ${recordedHqRoot}]` : "");
1054
- let message;
1055
- if (!installed) {
1056
- message = running
1057
- ? `Scheduled Task ${WINDOWS_TASK_NAME}: not installed (daemon running outside the task)`
1058
- : `Scheduled Task ${WINDOWS_TASK_NAME}: not installed`;
1059
- }
1060
- else if (running) {
1061
- message = `Scheduled Task ${WINDOWS_TASK_NAME}: running${detail}`;
1062
- }
1063
- else {
1064
- message = `Scheduled Task ${WINDOWS_TASK_NAME}: installed (daemon not running${lock === "stale" ? ", stale pid lock" : ""})${detail}`;
1065
- }
1066
- return {
1067
- platform,
1068
- action: "status",
1069
- paths,
1070
- dest: paths.windowsTaskXmlPath,
1071
- running,
1072
- message,
1073
- lastResult,
1074
- lastRunFailed,
1075
- notice: installed ? windowsLogonNotice(paths) : undefined,
1076
- recordedHqRoot,
1077
- rootValid,
1078
- };
1079
- }
1080
282
  if (platform === "darwin") {
1081
283
  const installed = existsSync(paths.plistPath);
1082
284
  const running = installed