@indigoai-us/hq-cli 5.312.2-beta.0 → 5.314.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1144) hide show
  1. package/CHANGELOG.md +1 -4293
  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 -358
  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 -66
  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 -270
  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 -80
  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 -12
  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 +2 -3
  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 -51
  187. package/dist/lib/mesh/live/daemon/doctor.js +6 -180
  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 -10
  236. package/dist/lib/work-context/index.d.ts +25 -0
  237. package/dist/lib/work-context/index.js +21 -0
  238. package/dist/lib/work-context/outbox.d.ts +1 -14
  239. package/dist/lib/work-context/outbox.js +1 -87
  240. package/dist/lib/work-context/reconcile.d.ts +0 -15
  241. package/dist/lib/work-context/reconcile.js +25 -380
  242. package/dist/lib/work-context/state.d.ts +10 -93
  243. package/dist/lib/work-context/state.js +29 -342
  244. package/dist/lib/workers-registry/index.js +8 -62
  245. package/dist/main.d.ts +0 -12
  246. package/dist/main.js +73 -266
  247. package/dist/node-network-compat.d.ts +30 -2
  248. package/dist/node-network-compat.js +51 -4
  249. package/dist/node-preflight.d.ts +1 -7
  250. package/dist/node-preflight.js +5 -5
  251. package/dist/register-all.d.ts +29 -4
  252. package/dist/register-all.js +233 -4
  253. package/dist/run/discover-schemas.d.ts +1 -2
  254. package/dist/run/env-graph-guard.d.ts +2 -2
  255. package/dist/run/env-graph-guard.js +2 -5
  256. package/dist/run/hq-plugin.d.ts +0 -4
  257. package/dist/run/hq-plugin.js +8 -36
  258. package/dist/sentry-before-send.js +0 -80
  259. package/dist/sentry.d.ts +2 -8
  260. package/dist/sentry.js +13 -117
  261. package/dist/startup-registration.d.ts +2 -26
  262. package/dist/startup-registration.js +15 -116
  263. package/dist/utils/cli-telemetry.d.ts +1 -74
  264. package/dist/utils/cli-telemetry.js +7 -434
  265. package/dist/utils/client-health.d.ts +4 -0
  266. package/dist/utils/client-health.js +2 -2
  267. package/dist/utils/cognito-session.d.ts +0 -71
  268. package/dist/utils/cognito-session.js +27 -481
  269. package/dist/utils/contribution-table.d.ts +1 -1
  270. package/dist/utils/environmental-error.d.ts +0 -18
  271. package/dist/utils/environmental-error.js +7 -240
  272. package/dist/utils/expected-cli-error.d.ts +0 -2
  273. package/dist/utils/expected-cli-error.js +0 -4
  274. package/dist/utils/feedback-diagnostics.d.ts +1 -2
  275. package/dist/utils/feedback-log-bundle.d.ts +26 -51
  276. package/dist/utils/feedback-log-bundle.js +31 -211
  277. package/dist/utils/feedback-logs.d.ts +47 -18
  278. package/dist/utils/feedback-logs.js +21 -50
  279. package/dist/utils/feedback-screenshots.d.ts +1 -0
  280. package/dist/utils/feedback-screenshots.js +1 -1
  281. package/dist/utils/hq-roots.d.ts +2 -25
  282. package/dist/utils/hq-roots.js +7 -67
  283. package/dist/utils/incomplete-install-error.d.ts +19 -87
  284. package/dist/utils/incomplete-install-error.js +68 -319
  285. package/dist/utils/install-tree-torn.d.ts +24 -260
  286. package/dist/utils/install-tree-torn.js +51 -998
  287. package/dist/utils/large-file-guard.d.ts +10 -0
  288. package/dist/utils/large-file-guard.js +1 -1
  289. package/dist/utils/local-files-overview.d.ts +8 -4
  290. package/dist/utils/local-files-overview.js +7 -48
  291. package/dist/utils/login-provider.d.ts +0 -7
  292. package/dist/utils/login-provider.js +0 -34
  293. package/dist/utils/pack-contributions.d.ts +9 -2
  294. package/dist/utils/pack-contributions.js +43 -6
  295. package/dist/utils/package-root-diagnostics.d.ts +1 -1
  296. package/dist/utils/people.d.ts +11 -7
  297. package/dist/utils/people.js +20 -5
  298. package/dist/utils/plan-gate-error.d.ts +10 -52
  299. package/dist/utils/plan-gate-error.js +41 -364
  300. package/dist/utils/qmd-model-download-error.d.ts +8 -0
  301. package/dist/utils/qmd-model-download-error.js +1 -1
  302. package/dist/utils/qmd-query-document-error.d.ts +6 -0
  303. package/dist/utils/qmd-query-document-error.js +1 -1
  304. package/dist/utils/redact-error-text.js +1 -2
  305. package/dist/utils/run-bundled-script.d.ts +0 -6
  306. package/dist/utils/run-bundled-script.js +4 -117
  307. package/dist/utils/secrets-cache.d.ts +3 -7
  308. package/dist/utils/secrets-cache.js +14 -162
  309. package/dist/utils/self-update.d.ts +1 -34
  310. package/dist/utils/self-update.js +42 -660
  311. package/dist/utils/sentry-fingerprint.d.ts +1 -23
  312. package/dist/utils/sentry-fingerprint.js +31 -223
  313. package/dist/utils/team-upgrade.d.ts +1 -1
  314. package/dist/utils/team-upgrade.js +3 -4
  315. package/dist/utils/vault-api.d.ts +1 -21
  316. package/dist/utils/vault-api.js +84 -251
  317. package/dist/utils/version-check.d.ts +1 -11
  318. package/dist/utils/version-check.js +3 -32
  319. package/dist/utils/version-gate.d.ts +17 -101
  320. package/dist/utils/version-gate.js +70 -645
  321. package/dist/utils/windows-spawn.d.ts +0 -6
  322. package/dist/utils/windows-spawn.js +0 -37
  323. package/package.json +8 -20
  324. package/README.md +0 -113
  325. package/assets/bot-workers/setup/context/USER-GUIDE.md +0 -404
  326. package/assets/bot-workers/setup/context/quick-reference.md +0 -199
  327. package/assets/bot-workers/setup/skills/agents-and-team.md +0 -167
  328. package/assets/bot-workers/setup/skills/explain-hq.md +0 -35
  329. package/assets/bot-workers/setup/skills/first-company.md +0 -74
  330. package/assets/bot-workers/setup/skills/joining-a-team.md +0 -125
  331. package/assets/bot-workers/setup/skills/pricing.md +0 -92
  332. package/assets/bot-workers/setup/skills/standing-help.md +0 -81
  333. package/assets/bot-workers/setup/skills/your-business.md +0 -281
  334. package/assets/bot-workers/setup/worker.yaml +0 -791
  335. package/assets/lanes-hooks/hq-lanes-drain.json +0 -15
  336. package/assets/lanes-hooks/hq-lanes-drain.mjs +0 -275
  337. package/assets/lanes-hooks/hq-lanes-drain.sh +0 -21
  338. package/assets/lanes-reconcile/hq-lanes-reconcile.service +0 -11
  339. package/assets/lanes-reconcile/hq-lanes-reconcile.timer +0 -12
  340. package/assets/scaffold/.claude/hooks/validate-policy-frontmatter.sh +0 -485
  341. package/assets/scaffold/core/scripts/audit-log.sh +0 -384
  342. package/assets/scaffold/core/scripts/clean-worktree-reconcile-handoff.sh +0 -171
  343. package/assets/scaffold/core/scripts/eval-trigger.sh +0 -193
  344. package/assets/scaffold/core/scripts/git-pack-extension-check.sh +0 -164
  345. package/assets/scaffold/core/scripts/handoff-finalize.sh +0 -688
  346. package/assets/scaffold/core/scripts/handoff-open-steps.sh +0 -81
  347. package/assets/scaffold/core/scripts/handoff-post.sh +0 -252
  348. package/assets/scaffold/core/scripts/hq-delegate-bundle.sh +0 -307
  349. package/assets/scaffold/core/scripts/hq-delegate-grant.sh +0 -252
  350. package/assets/scaffold/core/scripts/hq-delegate-pickup.sh +0 -99
  351. package/assets/scaffold/core/scripts/hq-delegate-publish.sh +0 -91
  352. package/assets/scaffold/core/scripts/hq-delegate-repo.sh +0 -158
  353. package/assets/scaffold/core/scripts/hq-delegate-resolve.sh +0 -145
  354. package/assets/scaffold/core/scripts/hq-delegate-secrets.sh +0 -129
  355. package/assets/scaffold/core/scripts/hq-delegate-send.sh +0 -259
  356. package/assets/scaffold/core/scripts/hq-delegate-transfer.sh +0 -175
  357. package/assets/scaffold/core/scripts/hq-delegate-verify.sh +0 -238
  358. package/assets/scaffold/core/scripts/hq-dm-bind.sh +0 -585
  359. package/assets/scaffold/core/scripts/hq-job-notify.sh +0 -389
  360. package/assets/scaffold/core/scripts/hq-job-probe.sh +0 -835
  361. package/assets/scaffold/core/scripts/hq-job-remediate.sh +0 -359
  362. package/assets/scaffold/core/scripts/hq-job-run.sh +0 -1025
  363. package/assets/scaffold/core/scripts/hq-pin.sh +0 -118
  364. package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +0 -310
  365. package/assets/scaffold/core/scripts/jobs-validate.sh +0 -451
  366. package/assets/scaffold/core/scripts/knowledge-prefs.sh +0 -55
  367. package/assets/scaffold/core/scripts/lib/portable.sh +0 -211
  368. package/assets/scaffold/core/scripts/lib/secret-patterns.sh +0 -58
  369. package/assets/scaffold/core/scripts/ontology-audience-grant.sh +0 -81
  370. package/assets/scaffold/core/scripts/ontology-brief.mjs +0 -93
  371. package/assets/scaffold/core/scripts/ontology-candidate.sh +0 -100
  372. package/assets/scaffold/core/scripts/ontology-garden.mjs +0 -238
  373. package/assets/scaffold/core/scripts/ontology-source-worklist.sh +0 -79
  374. package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +0 -834
  375. package/assets/scaffold/core/scripts/policy-age-report.sh +0 -156
  376. package/assets/scaffold/core/scripts/policy-retire.sh +0 -199
  377. package/assets/scaffold/core/scripts/qmd-reindex-bg.sh +0 -40
  378. package/assets/scaffold/core/scripts/read-policy-frontmatter.sh +0 -32
  379. package/assets/scaffold/core/scripts/refresh-vault-access.sh +0 -188
  380. package/assets/scaffold/core/scripts/resolve-company.sh +0 -199
  381. package/assets/scaffold/core/scripts/resume-thread-lock.sh +0 -285
  382. package/assets/scaffold/core/scripts/source-yaml-validate.sh +0 -36
  383. package/assets/scaffold/core/scripts/verify-story-deliverables.sh +0 -148
  384. package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +0 -152
  385. package/assets/scaffold/core/scripts/worktree-gc.sh +0 -362
  386. package/contracts/preflight/v1/fixtures.json +0 -87
  387. package/contracts/preflight/v1/schema.json +0 -58
  388. package/dist/command-catalog.generated.d.ts +0 -10655
  389. package/dist/command-catalog.generated.js +0 -13737
  390. package/dist/command-registration-plan.d.ts +0 -474
  391. package/dist/command-registration-plan.js +0 -136
  392. package/dist/commands/agent-enroll.d.ts +0 -146
  393. package/dist/commands/agent-enroll.js +0 -401
  394. package/dist/commands/agent-inbox.d.ts +0 -9
  395. package/dist/commands/agent-inbox.js +0 -102
  396. package/dist/commands/agent-kit.d.ts +0 -87
  397. package/dist/commands/agent-kit.js +0 -480
  398. package/dist/commands/agent-mcp.d.ts +0 -24
  399. package/dist/commands/agent-mcp.js +0 -127
  400. package/dist/commands/agent-probe.d.ts +0 -77
  401. package/dist/commands/agent-probe.js +0 -335
  402. package/dist/commands/agent.d.ts +0 -13
  403. package/dist/commands/agent.js +0 -40
  404. package/dist/commands/billing-sponsor.d.ts +0 -83
  405. package/dist/commands/billing-sponsor.js +0 -344
  406. package/dist/commands/bot-companies.d.ts +0 -40
  407. package/dist/commands/bot-companies.js +0 -64
  408. package/dist/commands/bot-continuity.d.ts +0 -28
  409. package/dist/commands/bot-continuity.js +0 -68
  410. package/dist/commands/bot-jobs.d.ts +0 -127
  411. package/dist/commands/bot-jobs.js +0 -454
  412. package/dist/commands/bot.d.ts +0 -278
  413. package/dist/commands/bot.js +0 -1982
  414. package/dist/commands/cloud-retire.d.ts +0 -51
  415. package/dist/commands/cloud-retire.js +0 -154
  416. package/dist/commands/core-audit-log-native.d.ts +0 -9
  417. package/dist/commands/core-audit-log-native.js +0 -257
  418. package/dist/commands/core-checkpoint-gate-setting.d.ts +0 -59
  419. package/dist/commands/core-checkpoint-gate-setting.js +0 -163
  420. package/dist/commands/core-checkpoint-stop-gate-native.d.ts +0 -34
  421. package/dist/commands/core-checkpoint-stop-gate-native.js +0 -725
  422. package/dist/commands/core-command-catalog.d.ts +0 -34
  423. package/dist/commands/core-command-catalog.js +0 -62
  424. package/dist/commands/core-company-index-scope-flag.d.ts +0 -3
  425. package/dist/commands/core-company-index-scope-flag.js +0 -6
  426. package/dist/commands/core-delegate-w1b.d.ts +0 -10
  427. package/dist/commands/core-delegate-w1b.js +0 -1219
  428. package/dist/commands/core-delegate.d.ts +0 -46
  429. package/dist/commands/core-delegate.js +0 -1040
  430. package/dist/commands/core-dm-bind-native.d.ts +0 -32
  431. package/dist/commands/core-dm-bind-native.js +0 -668
  432. package/dist/commands/core-git-pack-extension-check-native.d.ts +0 -22
  433. package/dist/commands/core-git-pack-extension-check-native.js +0 -190
  434. package/dist/commands/core-handoff-fast.d.ts +0 -18
  435. package/dist/commands/core-handoff-fast.js +0 -104
  436. package/dist/commands/core-handoff-open-steps.d.ts +0 -21
  437. package/dist/commands/core-handoff-open-steps.js +0 -264
  438. package/dist/commands/core-handoff.d.ts +0 -24
  439. package/dist/commands/core-handoff.js +0 -1144
  440. package/dist/commands/core-hq-session-native.d.ts +0 -39
  441. package/dist/commands/core-hq-session-native.js +0 -579
  442. package/dist/commands/core-job-native-utils.d.ts +0 -6
  443. package/dist/commands/core-job-native-utils.js +0 -80
  444. package/dist/commands/core-job-native.d.ts +0 -5
  445. package/dist/commands/core-job-native.js +0 -16
  446. package/dist/commands/core-job-notify-native.d.ts +0 -36
  447. package/dist/commands/core-job-notify-native.js +0 -359
  448. package/dist/commands/core-job-probe-native.d.ts +0 -45
  449. package/dist/commands/core-job-probe-native.js +0 -564
  450. package/dist/commands/core-job-remediate-native.d.ts +0 -26
  451. package/dist/commands/core-job-remediate-native.js +0 -374
  452. package/dist/commands/core-job-remote-launcher.d.ts +0 -7
  453. package/dist/commands/core-job-remote-launcher.js +0 -51
  454. package/dist/commands/core-job-run-native.d.ts +0 -47
  455. package/dist/commands/core-job-run-native.js +0 -1215
  456. package/dist/commands/core-jobs-native.d.ts +0 -25
  457. package/dist/commands/core-jobs-native.js +0 -1339
  458. package/dist/commands/core-knowledge-prefs.d.ts +0 -12
  459. package/dist/commands/core-knowledge-prefs.js +0 -137
  460. package/dist/commands/core-native-handoff-flag.d.ts +0 -4
  461. package/dist/commands/core-native-handoff-flag.js +0 -7
  462. package/dist/commands/core-native-jobs-flag.d.ts +0 -4
  463. package/dist/commands/core-native-jobs-flag.js +0 -7
  464. package/dist/commands/core-native-policy-flag.d.ts +0 -9
  465. package/dist/commands/core-native-policy-flag.js +0 -12
  466. package/dist/commands/core-native-session-flag.d.ts +0 -4
  467. package/dist/commands/core-native-session-flag.js +0 -7
  468. package/dist/commands/core-native-utilities-flag.d.ts +0 -4
  469. package/dist/commands/core-native-utilities-flag.js +0 -7
  470. package/dist/commands/core-native-utilities.d.ts +0 -29
  471. package/dist/commands/core-native-utilities.js +0 -54
  472. package/dist/commands/core-native-worker-skills-flag.d.ts +0 -4
  473. package/dist/commands/core-native-worker-skills-flag.js +0 -7
  474. package/dist/commands/core-ontology-native.d.ts +0 -17
  475. package/dist/commands/core-ontology-native.js +0 -916
  476. package/dist/commands/core-ontology.d.ts +0 -66
  477. package/dist/commands/core-ontology.js +0 -430
  478. package/dist/commands/core-pin-native.d.ts +0 -14
  479. package/dist/commands/core-pin-native.js +0 -236
  480. package/dist/commands/core-policy-frontmatter.d.ts +0 -8
  481. package/dist/commands/core-policy-frontmatter.js +0 -52
  482. package/dist/commands/core-policy.d.ts +0 -14
  483. package/dist/commands/core-policy.js +0 -1018
  484. package/dist/commands/core-refresh-vault-access-native.d.ts +0 -20
  485. package/dist/commands/core-refresh-vault-access-native.js +0 -229
  486. package/dist/commands/core-resolve-company-command.d.ts +0 -4
  487. package/dist/commands/core-resolve-company-command.js +0 -42
  488. package/dist/commands/core-resolve-company-native.d.ts +0 -28
  489. package/dist/commands/core-resolve-company-native.js +0 -408
  490. package/dist/commands/core-work-mesh-bind-trusted-native.d.ts +0 -32
  491. package/dist/commands/core-work-mesh-bind-trusted-native.js +0 -190
  492. package/dist/commands/core-worker-lint-native.d.ts +0 -4
  493. package/dist/commands/core-worker-lint-native.js +0 -160
  494. package/dist/commands/core-worker-share-native.d.ts +0 -5
  495. package/dist/commands/core-worker-share-native.js +0 -260
  496. package/dist/commands/core-worker-skills-command.d.ts +0 -8
  497. package/dist/commands/core-worker-skills-command.js +0 -33
  498. package/dist/commands/core-worker-skills-runtime.d.ts +0 -33
  499. package/dist/commands/core-worker-skills-runtime.js +0 -86
  500. package/dist/commands/daemon.d.ts +0 -63
  501. package/dist/commands/daemon.js +0 -877
  502. package/dist/commands/deploy-comments.d.ts +0 -3
  503. package/dist/commands/deploy-comments.js +0 -162
  504. package/dist/commands/lanes-accounts.d.ts +0 -28
  505. package/dist/commands/lanes-accounts.js +0 -595
  506. package/dist/commands/lanes-autopilot.d.ts +0 -11
  507. package/dist/commands/lanes-autopilot.js +0 -336
  508. package/dist/commands/lanes-checks.d.ts +0 -51
  509. package/dist/commands/lanes-checks.js +0 -941
  510. package/dist/commands/lanes-hold.d.ts +0 -43
  511. package/dist/commands/lanes-hold.js +0 -655
  512. package/dist/commands/lanes-kpis.d.ts +0 -11
  513. package/dist/commands/lanes-kpis.js +0 -34
  514. package/dist/commands/lanes-message.d.ts +0 -9
  515. package/dist/commands/lanes-message.js +0 -934
  516. package/dist/commands/lanes-move.d.ts +0 -12
  517. package/dist/commands/lanes-move.js +0 -397
  518. package/dist/commands/lanes-questions.d.ts +0 -36
  519. package/dist/commands/lanes-questions.js +0 -1004
  520. package/dist/commands/lanes-report.d.ts +0 -11
  521. package/dist/commands/lanes-report.js +0 -333
  522. package/dist/commands/lanes-resume.d.ts +0 -6
  523. package/dist/commands/lanes-resume.js +0 -561
  524. package/dist/commands/lanes-review.d.ts +0 -10
  525. package/dist/commands/lanes-review.js +0 -56
  526. package/dist/commands/lanes-shared.d.ts +0 -448
  527. package/dist/commands/lanes-shared.js +0 -170
  528. package/dist/commands/lanes-stories.d.ts +0 -15
  529. package/dist/commands/lanes-stories.js +0 -347
  530. package/dist/commands/lanes-watch.d.ts +0 -7
  531. package/dist/commands/lanes-watch.js +0 -216
  532. package/dist/commands/lanes.d.ts +0 -149
  533. package/dist/commands/lanes.js +0 -8843
  534. package/dist/commands/monitor.d.ts +0 -58
  535. package/dist/commands/monitor.js +0 -980
  536. package/dist/commands/onboard-bot-membership.d.ts +0 -32
  537. package/dist/commands/onboard-bot-membership.js +0 -40
  538. package/dist/commands/onboard-create-identity.d.ts +0 -26
  539. package/dist/commands/onboard-create-identity.js +0 -23
  540. package/dist/commands/outpost-pruner.d.ts +0 -3
  541. package/dist/commands/outpost-pruner.js +0 -125
  542. package/dist/commands/personal-connector-settings-flag.d.ts +0 -4
  543. package/dist/commands/personal-connector-settings-flag.js +0 -7
  544. package/dist/commands/personal-targeted-push-flag.d.ts +0 -4
  545. package/dist/commands/personal-targeted-push-flag.js +0 -7
  546. package/dist/commands/personal-targeted-push-paths.d.ts +0 -3
  547. package/dist/commands/personal-targeted-push-paths.js +0 -67
  548. package/dist/commands/report.d.ts +0 -19
  549. package/dist/commands/report.js +0 -537
  550. package/dist/commands/run-feature-telemetry.d.ts +0 -3
  551. package/dist/commands/run-feature-telemetry.js +0 -6
  552. package/dist/commands/staff/reset-test-account.d.ts +0 -110
  553. package/dist/commands/staff/reset-test-account.js +0 -268
  554. package/dist/commands/staff/test-account.d.ts +0 -51
  555. package/dist/commands/staff/test-account.js +0 -196
  556. package/dist/commands/vault-retention-flag.d.ts +0 -3
  557. package/dist/commands/vault-retention-flag.js +0 -9
  558. package/dist/commands/vault-retention.d.ts +0 -11
  559. package/dist/commands/vault-retention.js +0 -69
  560. package/dist/commands/version.d.ts +0 -10
  561. package/dist/commands/version.js +0 -11
  562. package/dist/fast-scaffold.d.ts +0 -84
  563. package/dist/fast-scaffold.js +0 -353
  564. package/dist/lanes-drain-hook.d.ts +0 -14
  565. package/dist/lanes-drain-hook.js +0 -203
  566. package/dist/lib/agent-kit/adopt-identity.d.ts +0 -27
  567. package/dist/lib/agent-kit/adopt-identity.js +0 -60
  568. package/dist/lib/agent-kit/attachment-download.d.ts +0 -24
  569. package/dist/lib/agent-kit/attachment-download.js +0 -47
  570. package/dist/lib/agent-kit/creds.d.ts +0 -106
  571. package/dist/lib/agent-kit/creds.js +0 -163
  572. package/dist/lib/agent-kit/fallback.d.ts +0 -78
  573. package/dist/lib/agent-kit/fallback.js +0 -210
  574. package/dist/lib/agent-kit/inbox-state.d.ts +0 -83
  575. package/dist/lib/agent-kit/inbox-state.js +0 -159
  576. package/dist/lib/agent-kit/kit-config.d.ts +0 -56
  577. package/dist/lib/agent-kit/kit-config.js +0 -65
  578. package/dist/lib/agent-kit/log.d.ts +0 -16
  579. package/dist/lib/agent-kit/log.js +0 -46
  580. package/dist/lib/agent-kit/mcp/attachments.d.ts +0 -126
  581. package/dist/lib/agent-kit/mcp/attachments.js +0 -222
  582. package/dist/lib/agent-kit/mcp/jsonrpc.d.ts +0 -75
  583. package/dist/lib/agent-kit/mcp/jsonrpc.js +0 -164
  584. package/dist/lib/agent-kit/mcp/tools.d.ts +0 -64
  585. package/dist/lib/agent-kit/mcp/tools.js +0 -397
  586. package/dist/lib/agent-kit/paths.d.ts +0 -65
  587. package/dist/lib/agent-kit/paths.js +0 -118
  588. package/dist/lib/agent-kit/private-file.d.ts +0 -29
  589. package/dist/lib/agent-kit/private-file.js +0 -91
  590. package/dist/lib/agent-kit/run/heartbeat.d.ts +0 -72
  591. package/dist/lib/agent-kit/run/heartbeat.js +0 -128
  592. package/dist/lib/agent-kit/run/inbox.d.ts +0 -76
  593. package/dist/lib/agent-kit/run/inbox.js +0 -205
  594. package/dist/lib/agent-kit/run/supervisor.d.ts +0 -35
  595. package/dist/lib/agent-kit/run/supervisor.js +0 -85
  596. package/dist/lib/agent-kit/run/sync.d.ts +0 -33
  597. package/dist/lib/agent-kit/run/sync.js +0 -58
  598. package/dist/lib/agent-kit/services.d.ts +0 -31
  599. package/dist/lib/agent-kit/services.js +0 -55
  600. package/dist/lib/agent-kit/skills.d.ts +0 -18
  601. package/dist/lib/agent-kit/skills.js +0 -151
  602. package/dist/lib/agent-kit/wake.d.ts +0 -83
  603. package/dist/lib/agent-kit/wake.js +0 -243
  604. package/dist/lib/agents/model-catalog.d.ts +0 -62
  605. package/dist/lib/agents/model-catalog.js +0 -275
  606. package/dist/lib/auth-login-provider-state.d.ts +0 -8
  607. package/dist/lib/auth-login-provider-state.js +0 -63
  608. package/dist/lib/aws-sdk-node-warning-output.d.ts +0 -12
  609. package/dist/lib/aws-sdk-node-warning-output.js +0 -22
  610. package/dist/lib/billing/free-month.d.ts +0 -18
  611. package/dist/lib/billing/free-month.js +0 -31
  612. package/dist/lib/billing/plan-limit-refusals.d.ts +0 -69
  613. package/dist/lib/billing/plan-limit-refusals.js +0 -187
  614. package/dist/lib/billing/plan-limit-upgrade-url.d.ts +0 -11
  615. package/dist/lib/billing/plan-limit-upgrade-url.js +0 -66
  616. package/dist/lib/billing/plan-lock.d.ts +0 -143
  617. package/dist/lib/billing/plan-lock.js +0 -439
  618. package/dist/lib/bot/api.d.ts +0 -349
  619. package/dist/lib/bot/api.js +0 -316
  620. package/dist/lib/bot/attachments.d.ts +0 -45
  621. package/dist/lib/bot/attachments.js +0 -89
  622. package/dist/lib/bot/cli-update.d.ts +0 -138
  623. package/dist/lib/bot/cli-update.js +0 -278
  624. package/dist/lib/bot/company-bind.d.ts +0 -27
  625. package/dist/lib/bot/company-bind.js +0 -62
  626. package/dist/lib/bot/config.d.ts +0 -153
  627. package/dist/lib/bot/config.js +0 -233
  628. package/dist/lib/bot/continuity-download.d.ts +0 -28
  629. package/dist/lib/bot/continuity-download.js +0 -75
  630. package/dist/lib/bot/continuity-install.d.ts +0 -14
  631. package/dist/lib/bot/continuity-install.js +0 -101
  632. package/dist/lib/bot/continuity.d.ts +0 -67
  633. package/dist/lib/bot/continuity.js +0 -301
  634. package/dist/lib/bot/creds.d.ts +0 -24
  635. package/dist/lib/bot/creds.js +0 -51
  636. package/dist/lib/bot/daemon.d.ts +0 -173
  637. package/dist/lib/bot/daemon.js +0 -552
  638. package/dist/lib/bot/inbox-poll-backoff-flag.d.ts +0 -24
  639. package/dist/lib/bot/inbox-poll-backoff-flag.js +0 -135
  640. package/dist/lib/bot/inbox-state.d.ts +0 -18
  641. package/dist/lib/bot/inbox-state.js +0 -51
  642. package/dist/lib/bot/index.d.ts +0 -23
  643. package/dist/lib/bot/index.js +0 -23
  644. package/dist/lib/bot/inflight.d.ts +0 -119
  645. package/dist/lib/bot/inflight.js +0 -83
  646. package/dist/lib/bot/job-completions.d.ts +0 -89
  647. package/dist/lib/bot/job-completions.js +0 -132
  648. package/dist/lib/bot/job-run.d.ts +0 -109
  649. package/dist/lib/bot/job-run.js +0 -246
  650. package/dist/lib/bot/local-config.d.ts +0 -61
  651. package/dist/lib/bot/local-config.js +0 -145
  652. package/dist/lib/bot/local-jobs.d.ts +0 -89
  653. package/dist/lib/bot/local-jobs.js +0 -459
  654. package/dist/lib/bot/local-name.d.ts +0 -54
  655. package/dist/lib/bot/local-name.js +0 -114
  656. package/dist/lib/bot/log.d.ts +0 -13
  657. package/dist/lib/bot/log.js +0 -59
  658. package/dist/lib/bot/owner-context.d.ts +0 -79
  659. package/dist/lib/bot/owner-context.js +0 -175
  660. package/dist/lib/bot/paths.d.ts +0 -76
  661. package/dist/lib/bot/paths.js +0 -131
  662. package/dist/lib/bot/progress.d.ts +0 -132
  663. package/dist/lib/bot/progress.js +0 -289
  664. package/dist/lib/bot/promote.d.ts +0 -16
  665. package/dist/lib/bot/promote.js +0 -106
  666. package/dist/lib/bot/promotion-hold.d.ts +0 -24
  667. package/dist/lib/bot/promotion-hold.js +0 -103
  668. package/dist/lib/bot/promotion-receipt.d.ts +0 -9
  669. package/dist/lib/bot/promotion-receipt.js +0 -56
  670. package/dist/lib/bot/promotion-upload.d.ts +0 -16
  671. package/dist/lib/bot/promotion-upload.js +0 -80
  672. package/dist/lib/bot/prompt.d.ts +0 -136
  673. package/dist/lib/bot/prompt.js +0 -433
  674. package/dist/lib/bot/room-policy.d.ts +0 -63
  675. package/dist/lib/bot/room-policy.js +0 -91
  676. package/dist/lib/bot/run.d.ts +0 -217
  677. package/dist/lib/bot/run.js +0 -1869
  678. package/dist/lib/bot/runnable.d.ts +0 -51
  679. package/dist/lib/bot/runnable.js +0 -65
  680. package/dist/lib/bot/runtime/claude.d.ts +0 -50
  681. package/dist/lib/bot/runtime/claude.js +0 -170
  682. package/dist/lib/bot/runtime/codex.d.ts +0 -28
  683. package/dist/lib/bot/runtime/codex.js +0 -153
  684. package/dist/lib/bot/runtime/grok-acp.d.ts +0 -40
  685. package/dist/lib/bot/runtime/grok-acp.js +0 -265
  686. package/dist/lib/bot/runtime/grok.d.ts +0 -41
  687. package/dist/lib/bot/runtime/grok.js +0 -169
  688. package/dist/lib/bot/runtime/index.d.ts +0 -36
  689. package/dist/lib/bot/runtime/index.js +0 -417
  690. package/dist/lib/bot/runtime/messages-stream.d.ts +0 -56
  691. package/dist/lib/bot/runtime/messages-stream.js +0 -194
  692. package/dist/lib/bot/runtime/sanitize.d.ts +0 -18
  693. package/dist/lib/bot/runtime/sanitize.js +0 -28
  694. package/dist/lib/bot/runtime/types.d.ts +0 -159
  695. package/dist/lib/bot/runtime/types.js +0 -51
  696. package/dist/lib/bot/runtime/windows.d.ts +0 -10
  697. package/dist/lib/bot/runtime/windows.js +0 -53
  698. package/dist/lib/bot/runtime-sign-in.d.ts +0 -24
  699. package/dist/lib/bot/runtime-sign-in.js +0 -31
  700. package/dist/lib/bot/scaffold.d.ts +0 -38
  701. package/dist/lib/bot/scaffold.js +0 -94
  702. package/dist/lib/bot/self-heal.d.ts +0 -52
  703. package/dist/lib/bot/self-heal.js +0 -79
  704. package/dist/lib/bot/self-process.d.ts +0 -19
  705. package/dist/lib/bot/self-process.js +0 -35
  706. package/dist/lib/bot/session.d.ts +0 -19
  707. package/dist/lib/bot/session.js +0 -39
  708. package/dist/lib/bot/setup-explain.d.ts +0 -64
  709. package/dist/lib/bot/setup-explain.js +0 -141
  710. package/dist/lib/bot/split.d.ts +0 -32
  711. package/dist/lib/bot/split.js +0 -241
  712. package/dist/lib/bot/status.d.ts +0 -57
  713. package/dist/lib/bot/status.js +0 -66
  714. package/dist/lib/bot/worker-source.d.ts +0 -66
  715. package/dist/lib/bot/worker-source.js +0 -283
  716. package/dist/lib/checkpoint-ontology/aliases.d.ts +0 -17
  717. package/dist/lib/checkpoint-ontology/aliases.js +0 -44
  718. package/dist/lib/checkpoint-ontology/apply.d.ts +0 -110
  719. package/dist/lib/checkpoint-ontology/apply.js +0 -777
  720. package/dist/lib/checkpoint-ontology/company-brief.d.ts +0 -18
  721. package/dist/lib/checkpoint-ontology/company-brief.js +0 -337
  722. package/dist/lib/checkpoint-ontology/company.d.ts +0 -44
  723. package/dist/lib/checkpoint-ontology/company.js +0 -118
  724. package/dist/lib/checkpoint-ontology/drop-aliases.d.ts +0 -41
  725. package/dist/lib/checkpoint-ontology/drop-aliases.js +0 -76
  726. package/dist/lib/checkpoint-ontology/entity-file.d.ts +0 -109
  727. package/dist/lib/checkpoint-ontology/entity-file.js +0 -371
  728. package/dist/lib/checkpoint-ontology/identity.d.ts +0 -38
  729. package/dist/lib/checkpoint-ontology/identity.js +0 -95
  730. package/dist/lib/checkpoint-ontology/merge-copies.d.ts +0 -199
  731. package/dist/lib/checkpoint-ontology/merge-copies.js +0 -1086
  732. package/dist/lib/checkpoint-ontology/multi-writer.d.ts +0 -101
  733. package/dist/lib/checkpoint-ontology/multi-writer.js +0 -394
  734. package/dist/lib/checkpoint-ontology/plan.d.ts +0 -193
  735. package/dist/lib/checkpoint-ontology/plan.js +0 -504
  736. package/dist/lib/checkpoint-ontology/queued-touches.d.ts +0 -29
  737. package/dist/lib/checkpoint-ontology/queued-touches.js +0 -193
  738. package/dist/lib/checkpoint-ontology/sync-client.d.ts +0 -38
  739. package/dist/lib/checkpoint-ontology/sync-client.js +0 -84
  740. package/dist/lib/checkpoint-ontology/tree.d.ts +0 -55
  741. package/dist/lib/checkpoint-ontology/tree.js +0 -198
  742. package/dist/lib/company-errors-sdk-warning-flag.d.ts +0 -5
  743. package/dist/lib/company-errors-sdk-warning-flag.js +0 -8
  744. package/dist/lib/core-utils/hook-timeout-debug-context-flag.d.ts +0 -20
  745. package/dist/lib/core-utils/hook-timeout-debug-context-flag.js +0 -81
  746. package/dist/lib/core-utils/jq-json-serializer.d.ts +0 -5
  747. package/dist/lib/core-utils/jq-json-serializer.js +0 -10
  748. package/dist/lib/core-utils/secret-patterns.d.ts +0 -43
  749. package/dist/lib/core-utils/secret-patterns.js +0 -34
  750. package/dist/lib/core-utils/sentry-report.d.ts +0 -114
  751. package/dist/lib/core-utils/sentry-report.js +0 -1034
  752. package/dist/lib/core-utils/timeout-guard-native.d.ts +0 -7
  753. package/dist/lib/core-utils/timeout-guard-native.js +0 -40
  754. package/dist/lib/core-utils/worktree-resume.d.ts +0 -20
  755. package/dist/lib/core-utils/worktree-resume.js +0 -1198
  756. package/dist/lib/daemon/catalog.d.ts +0 -134
  757. package/dist/lib/daemon/catalog.js +0 -358
  758. package/dist/lib/daemon/config.d.ts +0 -35
  759. package/dist/lib/daemon/config.js +0 -108
  760. package/dist/lib/daemon/flag.d.ts +0 -25
  761. package/dist/lib/daemon/flag.js +0 -59
  762. package/dist/lib/daemon/handoff.d.ts +0 -56
  763. package/dist/lib/daemon/handoff.js +0 -161
  764. package/dist/lib/daemon/hq-cloud.d.ts +0 -79
  765. package/dist/lib/daemon/hq-cloud.js +0 -183
  766. package/dist/lib/daemon/install.d.ts +0 -85
  767. package/dist/lib/daemon/install.js +0 -320
  768. package/dist/lib/daemon/legacy-sync-env.d.ts +0 -10
  769. package/dist/lib/daemon/legacy-sync-env.js +0 -58
  770. package/dist/lib/daemon/legacy.d.ts +0 -45
  771. package/dist/lib/daemon/legacy.js +0 -133
  772. package/dist/lib/daemon/lock.d.ts +0 -47
  773. package/dist/lib/daemon/lock.js +0 -138
  774. package/dist/lib/daemon/machine-type.d.ts +0 -50
  775. package/dist/lib/daemon/machine-type.js +0 -159
  776. package/dist/lib/daemon/migrate.d.ts +0 -77
  777. package/dist/lib/daemon/migrate.js +0 -265
  778. package/dist/lib/daemon/paths.d.ts +0 -24
  779. package/dist/lib/daemon/paths.js +0 -43
  780. package/dist/lib/daemon/protocol-tail.d.ts +0 -33
  781. package/dist/lib/daemon/protocol-tail.js +0 -131
  782. package/dist/lib/daemon/remote-control.d.ts +0 -74
  783. package/dist/lib/daemon/remote-control.js +0 -153
  784. package/dist/lib/daemon/requests.d.ts +0 -28
  785. package/dist/lib/daemon/requests.js +0 -65
  786. package/dist/lib/daemon/run.d.ts +0 -79
  787. package/dist/lib/daemon/run.js +0 -755
  788. package/dist/lib/daemon/succession.d.ts +0 -118
  789. package/dist/lib/daemon/succession.js +0 -263
  790. package/dist/lib/daemon/supervisor.d.ts +0 -132
  791. package/dist/lib/daemon/supervisor.js +0 -836
  792. package/dist/lib/daemon/sync-runner.d.ts +0 -58
  793. package/dist/lib/daemon/sync-runner.js +0 -277
  794. package/dist/lib/daemon/tools.d.ts +0 -52
  795. package/dist/lib/daemon/tools.js +0 -95
  796. package/dist/lib/daemon/updater.d.ts +0 -57
  797. package/dist/lib/daemon/updater.js +0 -163
  798. package/dist/lib/deploy-api.d.ts +0 -5
  799. package/dist/lib/deploy-api.js +0 -21
  800. package/dist/lib/deploy-apps.d.ts +0 -13
  801. package/dist/lib/deploy-apps.js +0 -29
  802. package/dist/lib/doctor/__testing__/run-doctor.d.ts +0 -8
  803. package/dist/lib/doctor/__testing__/run-doctor.js +0 -52
  804. package/dist/lib/doctor/checks/bots.d.ts +0 -13
  805. package/dist/lib/doctor/checks/bots.js +0 -189
  806. package/dist/lib/doctor/checks/scaffold-cli-floor.d.ts +0 -6
  807. package/dist/lib/doctor/checks/scaffold-cli-floor.js +0 -73
  808. package/dist/lib/doctor/checks/sync-runtime.d.ts +0 -11
  809. package/dist/lib/doctor/checks/sync-runtime.js +0 -216
  810. package/dist/lib/doctor/client-health-flag-token.d.ts +0 -15
  811. package/dist/lib/doctor/client-health-flag-token.js +0 -66
  812. package/dist/lib/doctor/client-health-reason-codes-flag.d.ts +0 -27
  813. package/dist/lib/doctor/client-health-reason-codes-flag.js +0 -106
  814. package/dist/lib/doctor/fix/json-output.d.ts +0 -28
  815. package/dist/lib/doctor/fix/json-output.js +0 -33
  816. package/dist/lib/doctor/fix/refresh-sync-outcome.d.ts +0 -12
  817. package/dist/lib/doctor/fix/refresh-sync-outcome.js +0 -25
  818. package/dist/lib/doctor/shared.d.ts +0 -8
  819. package/dist/lib/doctor/shared.js +0 -38
  820. package/dist/lib/doctor/stray-gate-entries.d.ts +0 -35
  821. package/dist/lib/doctor/stray-gate-entries.js +0 -83
  822. package/dist/lib/first-sync-next-step.d.ts +0 -37
  823. package/dist/lib/first-sync-next-step.js +0 -189
  824. package/dist/lib/flag-registry-endpoint.d.ts +0 -5
  825. package/dist/lib/flag-registry-endpoint.js +0 -9
  826. package/dist/lib/flag-registry-worker-source.generated.d.ts +0 -2
  827. package/dist/lib/flag-registry-worker-source.generated.js +0 -3
  828. package/dist/lib/flag-snapshot-file.d.ts +0 -20
  829. package/dist/lib/flag-snapshot-file.js +0 -91
  830. package/dist/lib/heartbeat-identity.d.ts +0 -30
  831. package/dist/lib/heartbeat-identity.js +0 -76
  832. package/dist/lib/lanes/account-home.d.ts +0 -8
  833. package/dist/lib/lanes/account-home.js +0 -10
  834. package/dist/lib/lanes/accounts.d.ts +0 -117
  835. package/dist/lib/lanes/accounts.js +0 -366
  836. package/dist/lib/lanes/admission-host.d.ts +0 -22
  837. package/dist/lib/lanes/admission-host.js +0 -37
  838. package/dist/lib/lanes/admission.d.ts +0 -26
  839. package/dist/lib/lanes/admission.js +0 -210
  840. package/dist/lib/lanes/approval-gate.d.ts +0 -8
  841. package/dist/lib/lanes/approval-gate.js +0 -90
  842. package/dist/lib/lanes/autopilot-metrics.d.ts +0 -99
  843. package/dist/lib/lanes/autopilot-metrics.js +0 -301
  844. package/dist/lib/lanes/autopilot-registry.d.ts +0 -62
  845. package/dist/lib/lanes/autopilot-registry.js +0 -192
  846. package/dist/lib/lanes/autopilot.d.ts +0 -120
  847. package/dist/lib/lanes/autopilot.js +0 -1061
  848. package/dist/lib/lanes/blocker-freshness.d.ts +0 -31
  849. package/dist/lib/lanes/blocker-freshness.js +0 -168
  850. package/dist/lib/lanes/checked-company-path.d.ts +0 -3
  851. package/dist/lib/lanes/checked-company-path.js +0 -39
  852. package/dist/lib/lanes/claude-balance.d.ts +0 -97
  853. package/dist/lib/lanes/claude-balance.js +0 -319
  854. package/dist/lib/lanes/compaction.d.ts +0 -110
  855. package/dist/lib/lanes/compaction.js +0 -293
  856. package/dist/lib/lanes/config.d.ts +0 -91
  857. package/dist/lib/lanes/config.js +0 -592
  858. package/dist/lib/lanes/constants.d.ts +0 -3
  859. package/dist/lib/lanes/constants.js +0 -3
  860. package/dist/lib/lanes/delivery-core.d.ts +0 -15
  861. package/dist/lib/lanes/delivery-core.js +0 -21
  862. package/dist/lib/lanes/delivery.d.ts +0 -180
  863. package/dist/lib/lanes/delivery.js +0 -443
  864. package/dist/lib/lanes/dropbox.d.ts +0 -129
  865. package/dist/lib/lanes/dropbox.js +0 -601
  866. package/dist/lib/lanes/effort.d.ts +0 -51
  867. package/dist/lib/lanes/effort.js +0 -113
  868. package/dist/lib/lanes/envelope-repair-dispatch.d.ts +0 -26
  869. package/dist/lib/lanes/envelope-repair-dispatch.js +0 -74
  870. package/dist/lib/lanes/errors.d.ts +0 -39
  871. package/dist/lib/lanes/errors.js +0 -72
  872. package/dist/lib/lanes/flag-keys.d.ts +0 -13
  873. package/dist/lib/lanes/flag-keys.js +0 -13
  874. package/dist/lib/lanes/grants.d.ts +0 -29
  875. package/dist/lib/lanes/grants.js +0 -166
  876. package/dist/lib/lanes/hire-grant-dispatch.d.ts +0 -29
  877. package/dist/lib/lanes/hire-grant-dispatch.js +0 -316
  878. package/dist/lib/lanes/hooks-install.d.ts +0 -82
  879. package/dist/lib/lanes/hooks-install.js +0 -479
  880. package/dist/lib/lanes/host-capacity.d.ts +0 -69
  881. package/dist/lib/lanes/host-capacity.js +0 -254
  882. package/dist/lib/lanes/hq-root.d.ts +0 -19
  883. package/dist/lib/lanes/hq-root.js +0 -28
  884. package/dist/lib/lanes/index.d.ts +0 -76
  885. package/dist/lib/lanes/index.js +0 -42
  886. package/dist/lib/lanes/keep-alive.d.ts +0 -68
  887. package/dist/lib/lanes/keep-alive.js +0 -343
  888. package/dist/lib/lanes/kr-freshness.d.ts +0 -76
  889. package/dist/lib/lanes/kr-freshness.js +0 -413
  890. package/dist/lib/lanes/lane-company.d.ts +0 -10
  891. package/dist/lib/lanes/lane-company.js +0 -41
  892. package/dist/lib/lanes/liveness.d.ts +0 -108
  893. package/dist/lib/lanes/liveness.js +0 -396
  894. package/dist/lib/lanes/machine-identity.d.ts +0 -34
  895. package/dist/lib/lanes/machine-identity.js +0 -92
  896. package/dist/lib/lanes/manager-status-gate.d.ts +0 -17
  897. package/dist/lib/lanes/manager-status-gate.js +0 -133
  898. package/dist/lib/lanes/merge-command.d.ts +0 -15
  899. package/dist/lib/lanes/merge-command.js +0 -629
  900. package/dist/lib/lanes/mesh-events.d.ts +0 -127
  901. package/dist/lib/lanes/mesh-events.js +0 -564
  902. package/dist/lib/lanes/message-replay.d.ts +0 -21
  903. package/dist/lib/lanes/message-replay.js +0 -122
  904. package/dist/lib/lanes/models.d.ts +0 -86
  905. package/dist/lib/lanes/models.js +0 -234
  906. package/dist/lib/lanes/monitor.d.ts +0 -48
  907. package/dist/lib/lanes/monitor.js +0 -428
  908. package/dist/lib/lanes/move-account.d.ts +0 -56
  909. package/dist/lib/lanes/move-account.js +0 -193
  910. package/dist/lib/lanes/orphans.d.ts +0 -25
  911. package/dist/lib/lanes/orphans.js +0 -102
  912. package/dist/lib/lanes/outpost-dispatch.d.ts +0 -147
  913. package/dist/lib/lanes/outpost-dispatch.js +0 -271
  914. package/dist/lib/lanes/outpost-hire-cache.d.ts +0 -22
  915. package/dist/lib/lanes/outpost-hire-cache.js +0 -153
  916. package/dist/lib/lanes/outpost-identity.d.ts +0 -33
  917. package/dist/lib/lanes/outpost-identity.js +0 -59
  918. package/dist/lib/lanes/outpost-profile-repin.d.ts +0 -17
  919. package/dist/lib/lanes/outpost-profile-repin.js +0 -84
  920. package/dist/lib/lanes/outpost-pruner-install.d.ts +0 -37
  921. package/dist/lib/lanes/outpost-pruner-install.js +0 -238
  922. package/dist/lib/lanes/outpost-registry-worker-approval.d.ts +0 -18
  923. package/dist/lib/lanes/outpost-registry-worker-approval.js +0 -109
  924. package/dist/lib/lanes/outpost-snapshot-memo.d.ts +0 -6
  925. package/dist/lib/lanes/outpost-snapshot-memo.js +0 -14
  926. package/dist/lib/lanes/outpost-worktree-pruner-flag.d.ts +0 -19
  927. package/dist/lib/lanes/outpost-worktree-pruner-flag.js +0 -86
  928. package/dist/lib/lanes/outpost-worktree-pruner.d.ts +0 -62
  929. package/dist/lib/lanes/outpost-worktree-pruner.js +0 -1201
  930. package/dist/lib/lanes/profile.d.ts +0 -69
  931. package/dist/lib/lanes/profile.js +0 -552
  932. package/dist/lib/lanes/provider-rejection.d.ts +0 -86
  933. package/dist/lib/lanes/provider-rejection.js +0 -286
  934. package/dist/lib/lanes/questions.d.ts +0 -90
  935. package/dist/lib/lanes/questions.js +0 -384
  936. package/dist/lib/lanes/quota.d.ts +0 -134
  937. package/dist/lib/lanes/quota.js +0 -471
  938. package/dist/lib/lanes/reconcile-install.d.ts +0 -90
  939. package/dist/lib/lanes/reconcile-install.js +0 -257
  940. package/dist/lib/lanes/reconcile.d.ts +0 -155
  941. package/dist/lib/lanes/reconcile.js +0 -3193
  942. package/dist/lib/lanes/registry-flag.d.ts +0 -29
  943. package/dist/lib/lanes/registry-flag.js +0 -139
  944. package/dist/lib/lanes/registry-persona.d.ts +0 -20
  945. package/dist/lib/lanes/registry-persona.js +0 -329
  946. package/dist/lib/lanes/registry.d.ts +0 -122
  947. package/dist/lib/lanes/registry.js +0 -570
  948. package/dist/lib/lanes/reviews.d.ts +0 -38
  949. package/dist/lib/lanes/reviews.js +0 -395
  950. package/dist/lib/lanes/runaway-tool-guard.d.ts +0 -38
  951. package/dist/lib/lanes/runaway-tool-guard.js +0 -284
  952. package/dist/lib/lanes/session-relink.d.ts +0 -25
  953. package/dist/lib/lanes/session-relink.js +0 -216
  954. package/dist/lib/lanes/spawn.d.ts +0 -350
  955. package/dist/lib/lanes/spawn.js +0 -2643
  956. package/dist/lib/lanes/ssm-command-context.d.ts +0 -12
  957. package/dist/lib/lanes/ssm-command-context.js +0 -52
  958. package/dist/lib/lanes/store.d.ts +0 -91
  959. package/dist/lib/lanes/store.js +0 -1811
  960. package/dist/lib/lanes/stories.d.ts +0 -23
  961. package/dist/lib/lanes/stories.js +0 -92
  962. package/dist/lib/lanes/story-ledger.d.ts +0 -80
  963. package/dist/lib/lanes/story-ledger.js +0 -815
  964. package/dist/lib/lanes/story-switch.d.ts +0 -21
  965. package/dist/lib/lanes/story-switch.js +0 -75
  966. package/dist/lib/lanes/text-scan.d.ts +0 -11
  967. package/dist/lib/lanes/text-scan.js +0 -103
  968. package/dist/lib/lanes/throttle.d.ts +0 -116
  969. package/dist/lib/lanes/throttle.js +0 -437
  970. package/dist/lib/lanes/timestamp.d.ts +0 -3
  971. package/dist/lib/lanes/timestamp.js +0 -26
  972. package/dist/lib/lanes/tracker-checks.d.ts +0 -77
  973. package/dist/lib/lanes/tracker-checks.js +0 -134
  974. package/dist/lib/lanes/tracker-report-state.d.ts +0 -10
  975. package/dist/lib/lanes/tracker-report-state.js +0 -124
  976. package/dist/lib/lanes/tracker-report.d.ts +0 -203
  977. package/dist/lib/lanes/tracker-report.js +0 -522
  978. package/dist/lib/lanes/tracker-store.d.ts +0 -18
  979. package/dist/lib/lanes/tracker-store.js +0 -106
  980. package/dist/lib/lanes/types.d.ts +0 -1020
  981. package/dist/lib/lanes/types.js +0 -417
  982. package/dist/lib/lanes/wait.d.ts +0 -39
  983. package/dist/lib/lanes/wait.js +0 -159
  984. package/dist/lib/lanes/watch.d.ts +0 -39
  985. package/dist/lib/lanes/watch.js +0 -249
  986. package/dist/lib/lanes/watcher-main.d.ts +0 -11
  987. package/dist/lib/lanes/watcher-main.js +0 -108
  988. package/dist/lib/lanes/watcher.d.ts +0 -287
  989. package/dist/lib/lanes/watcher.js +0 -1972
  990. package/dist/lib/mesh/live/daemon/config.d.ts +0 -36
  991. package/dist/lib/mesh/live/daemon/config.js +0 -120
  992. package/dist/lib/mesh/live/daemon/legacy-listen.d.ts +0 -43
  993. package/dist/lib/mesh/live/daemon/legacy-listen.js +0 -89
  994. package/dist/lib/mesh/live/daemon/live-cache.d.ts +0 -26
  995. package/dist/lib/mesh/live/daemon/live-cache.js +0 -116
  996. package/dist/lib/mesh/live/daemon/mqtt-events.d.ts +0 -7
  997. package/dist/lib/mesh/live/daemon/mqtt-events.js +0 -2
  998. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.d.ts +0 -2
  999. package/dist/lib/mesh/live/daemon/mqtt-events.test-d.js +0 -10
  1000. package/dist/lib/mesh/live/daemon/version-drift.d.ts +0 -5
  1001. package/dist/lib/mesh/live/daemon/version-drift.js +0 -47
  1002. package/dist/lib/mesh/live/daemon/work-subscribe.d.ts +0 -32
  1003. package/dist/lib/mesh/live/daemon/work-subscribe.js +0 -262
  1004. package/dist/lib/mesh/live/report-summary.d.ts +0 -45
  1005. package/dist/lib/mesh/live/report-summary.js +0 -234
  1006. package/dist/lib/mesh/live/session-seq.d.ts +0 -4
  1007. package/dist/lib/mesh/live/session-seq.js +0 -33
  1008. package/dist/lib/mesh/project-board.d.ts +0 -65
  1009. package/dist/lib/mesh/project-board.js +0 -181
  1010. package/dist/lib/mesh/story-status.d.ts +0 -22
  1011. package/dist/lib/mesh/story-status.js +0 -49
  1012. package/dist/lib/monitor.d.ts +0 -149
  1013. package/dist/lib/monitor.js +0 -519
  1014. package/dist/lib/node-binary.d.ts +0 -50
  1015. package/dist/lib/node-binary.js +0 -133
  1016. package/dist/lib/notify-recipient.d.ts +0 -7
  1017. package/dist/lib/notify-recipient.js +0 -11
  1018. package/dist/lib/onboarding/checkpoint.d.ts +0 -13
  1019. package/dist/lib/onboarding/checkpoint.js +0 -44
  1020. package/dist/lib/onboarding/cli/onboard.d.ts +0 -53
  1021. package/dist/lib/onboarding/cli/onboard.js +0 -135
  1022. package/dist/lib/onboarding/cli/prompts.d.ts +0 -28
  1023. package/dist/lib/onboarding/cli/prompts.js +0 -83
  1024. package/dist/lib/onboarding/errors.d.ts +0 -34
  1025. package/dist/lib/onboarding/errors.js +0 -59
  1026. package/dist/lib/onboarding/index.d.ts +0 -13
  1027. package/dist/lib/onboarding/index.js +0 -13
  1028. package/dist/lib/onboarding/orchestrator.d.ts +0 -47
  1029. package/dist/lib/onboarding/orchestrator.js +0 -569
  1030. package/dist/lib/onboarding/types.d.ts +0 -79
  1031. package/dist/lib/onboarding/types.js +0 -8
  1032. package/dist/lib/policy-validator.d.ts +0 -7
  1033. package/dist/lib/policy-validator.js +0 -187
  1034. package/dist/lib/process-flag-company-context.d.ts +0 -8
  1035. package/dist/lib/process-flag-company-context.js +0 -67
  1036. package/dist/lib/report-publish.d.ts +0 -175
  1037. package/dist/lib/report-publish.js +0 -421
  1038. package/dist/lib/report-run.d.ts +0 -62
  1039. package/dist/lib/report-run.js +0 -123
  1040. package/dist/lib/report-snapshot.d.ts +0 -12
  1041. package/dist/lib/report-snapshot.js +0 -135
  1042. package/dist/lib/report-templates.d.ts +0 -9
  1043. package/dist/lib/report-templates.js +0 -21
  1044. package/dist/lib/scaffold-cli-floor.d.ts +0 -8
  1045. package/dist/lib/scaffold-cli-floor.js +0 -50
  1046. package/dist/lib/search-index/collection-path-repair-flag.d.ts +0 -4
  1047. package/dist/lib/search-index/collection-path-repair-flag.js +0 -7
  1048. package/dist/lib/search-index/embed-lock.d.ts +0 -32
  1049. package/dist/lib/search-index/embed-lock.js +0 -286
  1050. package/dist/lib/search-index/load-gate.d.ts +0 -57
  1051. package/dist/lib/search-index/load-gate.js +0 -270
  1052. package/dist/lib/search-index/max-doc-bytes.d.ts +0 -219
  1053. package/dist/lib/search-index/max-doc-bytes.js +0 -463
  1054. package/dist/lib/search-index/qmd-exit-diagnostics.d.ts +0 -5
  1055. package/dist/lib/search-index/qmd-exit-diagnostics.js +0 -40
  1056. package/dist/lib/search-index/reindex-single-flight-flag.d.ts +0 -5
  1057. package/dist/lib/search-index/reindex-single-flight-flag.js +0 -8
  1058. package/dist/lib/service-manager/index.d.ts +0 -42
  1059. package/dist/lib/service-manager/index.js +0 -105
  1060. package/dist/lib/service-manager/launchd.d.ts +0 -81
  1061. package/dist/lib/service-manager/launchd.js +0 -212
  1062. package/dist/lib/service-manager/systemd.d.ts +0 -19
  1063. package/dist/lib/service-manager/systemd.js +0 -72
  1064. package/dist/lib/service-manager/types.d.ts +0 -34
  1065. package/dist/lib/service-manager/types.js +0 -26
  1066. package/dist/lib/test-utils/isolated-flag-company-context.d.ts +0 -3
  1067. package/dist/lib/test-utils/isolated-flag-company-context.js +0 -18
  1068. package/dist/lib/work-context/bind-best.d.ts +0 -66
  1069. package/dist/lib/work-context/bind-best.js +0 -344
  1070. package/dist/lib/work-context/bind-calling-session.d.ts +0 -26
  1071. package/dist/lib/work-context/bind-calling-session.js +0 -63
  1072. package/dist/lib/work-context/company-rebind.d.ts +0 -23
  1073. package/dist/lib/work-context/company-rebind.js +0 -59
  1074. package/dist/lib/work-context/default-company.d.ts +0 -43
  1075. package/dist/lib/work-context/default-company.js +0 -83
  1076. package/dist/lib/work-context/outbox-quarantine-status-flag.d.ts +0 -4
  1077. package/dist/lib/work-context/outbox-quarantine-status-flag.js +0 -7
  1078. package/dist/lib/work-context/prd-sync.d.ts +0 -56
  1079. package/dist/lib/work-context/prd-sync.js +0 -197
  1080. package/dist/lib/work-context/preflight-contract.d.ts +0 -28
  1081. package/dist/lib/work-context/preflight-contract.js +0 -85
  1082. package/dist/lib/work-context/prompt-rebind.d.ts +0 -25
  1083. package/dist/lib/work-context/prompt-rebind.js +0 -85
  1084. package/dist/lib/work-context/windows-acl.d.ts +0 -123
  1085. package/dist/lib/work-context/windows-acl.js +0 -425
  1086. package/dist/lib/workers-registry/read.d.ts +0 -15
  1087. package/dist/lib/workers-registry/read.js +0 -17
  1088. package/dist/native-fast-route.d.ts +0 -7
  1089. package/dist/native-fast-route.js +0 -45
  1090. package/dist/node-network-compat-core.d.ts +0 -12
  1091. package/dist/node-network-compat-core.js +0 -41
  1092. package/dist/node-network-compat-fast.d.ts +0 -7
  1093. package/dist/node-network-compat-fast.js +0 -23
  1094. package/dist/secrets-env-fast-path.d.ts +0 -5
  1095. package/dist/secrets-env-fast-path.js +0 -16
  1096. package/dist/secrets-env-fast-route.d.ts +0 -18
  1097. package/dist/secrets-env-fast-route.js +0 -54
  1098. package/dist/utils/checkpoint-stamp-write-error.d.ts +0 -28
  1099. package/dist/utils/checkpoint-stamp-write-error.js +0 -99
  1100. package/dist/utils/cli-network-lifecycle.d.ts +0 -4
  1101. package/dist/utils/cli-network-lifecycle.js +0 -11
  1102. package/dist/utils/cognito-refresh-sentry.d.ts +0 -3
  1103. package/dist/utils/cognito-refresh-sentry.js +0 -49
  1104. package/dist/utils/console-origin.d.ts +0 -9
  1105. package/dist/utils/console-origin.js +0 -28
  1106. package/dist/utils/exclusive-lock.d.ts +0 -32
  1107. package/dist/utils/exclusive-lock.js +0 -75
  1108. package/dist/utils/fast-stream-errors.d.ts +0 -12
  1109. package/dist/utils/fast-stream-errors.js +0 -18
  1110. package/dist/utils/files-browse-acl.d.ts +0 -5
  1111. package/dist/utils/files-browse-acl.js +0 -11
  1112. package/dist/utils/hq-core-yaml.d.ts +0 -10
  1113. package/dist/utils/hq-core-yaml.js +0 -40
  1114. package/dist/utils/hq-root-resolver.d.ts +0 -13
  1115. package/dist/utils/hq-root-resolver.js +0 -103
  1116. package/dist/utils/redact-url.d.ts +0 -14
  1117. package/dist/utils/redact-url.js +0 -218
  1118. package/dist/utils/scaffold-fast-import-guard.d.ts +0 -2
  1119. package/dist/utils/scaffold-fast-import-guard.js +0 -40
  1120. package/dist/utils/scaffold-packlist-guard.d.ts +0 -7
  1121. package/dist/utils/scaffold-packlist-guard.js +0 -23
  1122. package/dist/utils/scaffold-sibling-references.d.ts +0 -22
  1123. package/dist/utils/scaffold-sibling-references.js +0 -156
  1124. package/dist/utils/secret-load-availability.d.ts +0 -8
  1125. package/dist/utils/secret-load-availability.js +0 -54
  1126. package/dist/utils/staged-install.d.ts +0 -34
  1127. package/dist/utils/staged-install.js +0 -346
  1128. package/dist/utils/staged-npm-install.d.ts +0 -16
  1129. package/dist/utils/staged-npm-install.js +0 -264
  1130. package/dist/utils/sync-log-sources.d.ts +0 -15
  1131. package/dist/utils/sync-log-sources.js +0 -36
  1132. package/dist/utils/table-width.d.ts +0 -7
  1133. package/dist/utils/table-width.js +0 -15
  1134. package/dist/utils/update-command-supervisor.cjs +0 -247
  1135. package/dist/utils/upload-author.d.ts +0 -15
  1136. package/dist/utils/upload-author.js +0 -39
  1137. package/dist/utils/version-report.d.ts +0 -27
  1138. package/dist/utils/version-report.js +0 -105
  1139. package/dist/version-request.d.ts +0 -14
  1140. package/dist/version-request.js +0 -36
  1141. package/scripts/mesh-daemon-if-stale.mjs +0 -20
  1142. package/templates/reports/blank.md +0 -3
  1143. package/templates/reports/daily-digest.md +0 -11
  1144. 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