@cleocode/core 2026.9.19 → 2026.9.21

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 (863) hide show
  1. package/dist/adapters/discovery.d.ts.map +1 -1
  2. package/dist/adapters/discovery.js +3 -10
  3. package/dist/adapters/discovery.js.map +1 -1
  4. package/dist/adrs/link-pipeline.js +2 -2
  5. package/dist/adrs/link-pipeline.js.map +1 -1
  6. package/dist/adrs/parse.js +3 -3
  7. package/dist/adrs/parse.js.map +1 -1
  8. package/dist/agents/invoke-meta-agent.d.ts.map +1 -1
  9. package/dist/agents/invoke-meta-agent.js +8 -4
  10. package/dist/agents/invoke-meta-agent.js.map +1 -1
  11. package/dist/bootstrap.d.ts +5 -1
  12. package/dist/bootstrap.d.ts.map +1 -1
  13. package/dist/bootstrap.js +41 -21
  14. package/dist/bootstrap.js.map +1 -1
  15. package/dist/cloud/crypto.d.ts +47 -0
  16. package/dist/cloud/crypto.d.ts.map +1 -0
  17. package/dist/cloud/crypto.js +223 -0
  18. package/dist/cloud/crypto.js.map +1 -0
  19. package/dist/cloud/http.d.ts +52 -0
  20. package/dist/cloud/http.d.ts.map +1 -0
  21. package/dist/cloud/http.js +98 -0
  22. package/dist/cloud/http.js.map +1 -0
  23. package/dist/cloud/index.d.ts +19 -0
  24. package/dist/cloud/index.d.ts.map +1 -0
  25. package/dist/cloud/index.js +19 -0
  26. package/dist/cloud/index.js.map +1 -0
  27. package/dist/cloud/journal.d.ts +169 -0
  28. package/dist/cloud/journal.d.ts.map +1 -0
  29. package/dist/cloud/journal.js +428 -0
  30. package/dist/cloud/journal.js.map +1 -0
  31. package/dist/cloud/keys.d.ts +213 -0
  32. package/dist/cloud/keys.d.ts.map +1 -0
  33. package/dist/cloud/keys.js +362 -0
  34. package/dist/cloud/keys.js.map +1 -0
  35. package/dist/cloud/manifest-check.d.ts +36 -0
  36. package/dist/cloud/manifest-check.d.ts.map +1 -0
  37. package/dist/cloud/manifest-check.js +70 -0
  38. package/dist/cloud/manifest-check.js.map +1 -0
  39. package/dist/cloud/projects.d.ts +13 -0
  40. package/dist/cloud/projects.d.ts.map +1 -0
  41. package/dist/cloud/projects.js +11 -0
  42. package/dist/cloud/projects.js.map +1 -0
  43. package/dist/cloud/signing.d.ts +105 -0
  44. package/dist/cloud/signing.d.ts.map +1 -0
  45. package/dist/cloud/signing.js +117 -0
  46. package/dist/cloud/signing.js.map +1 -0
  47. package/dist/cloud/streams.d.ts +6 -0
  48. package/dist/cloud/streams.d.ts.map +1 -0
  49. package/dist/cloud/streams.js +5 -0
  50. package/dist/cloud/streams.js.map +1 -0
  51. package/dist/decide/audit.d.ts +131 -0
  52. package/dist/decide/audit.d.ts.map +1 -0
  53. package/dist/decide/audit.js +98 -0
  54. package/dist/decide/audit.js.map +1 -0
  55. package/dist/decide/budget.d.ts +91 -0
  56. package/dist/decide/budget.d.ts.map +1 -0
  57. package/dist/decide/budget.js +194 -0
  58. package/dist/decide/budget.js.map +1 -0
  59. package/dist/decide/cache.d.ts +49 -0
  60. package/dist/decide/cache.d.ts.map +1 -0
  61. package/dist/decide/cache.js +87 -0
  62. package/dist/decide/cache.js.map +1 -0
  63. package/dist/decide/client.d.ts +103 -0
  64. package/dist/decide/client.d.ts.map +1 -0
  65. package/dist/decide/client.js +262 -0
  66. package/dist/decide/client.js.map +1 -0
  67. package/dist/decide/credentials.d.ts +159 -0
  68. package/dist/decide/credentials.d.ts.map +1 -0
  69. package/dist/decide/credentials.js +383 -0
  70. package/dist/decide/credentials.js.map +1 -0
  71. package/dist/decide/index.d.ts +18 -0
  72. package/dist/decide/index.d.ts.map +1 -0
  73. package/dist/decide/index.js +18 -0
  74. package/dist/decide/index.js.map +1 -0
  75. package/dist/decide/jev-wire.d.ts +155 -0
  76. package/dist/decide/jev-wire.d.ts.map +1 -0
  77. package/dist/decide/jev-wire.js +420 -0
  78. package/dist/decide/jev-wire.js.map +1 -0
  79. package/dist/decide/operations.d.ts +152 -0
  80. package/dist/decide/operations.d.ts.map +1 -0
  81. package/dist/decide/operations.js +199 -0
  82. package/dist/decide/operations.js.map +1 -0
  83. package/dist/decide/provider.d.ts +90 -0
  84. package/dist/decide/provider.d.ts.map +1 -0
  85. package/dist/decide/provider.js +43 -0
  86. package/dist/decide/provider.js.map +1 -0
  87. package/dist/decide/site.d.ts +148 -0
  88. package/dist/decide/site.d.ts.map +1 -0
  89. package/dist/decide/site.js +181 -0
  90. package/dist/decide/site.js.map +1 -0
  91. package/dist/decide/transport.d.ts +67 -0
  92. package/dist/decide/transport.d.ts.map +1 -0
  93. package/dist/decide/transport.js +350 -0
  94. package/dist/decide/transport.js.map +1 -0
  95. package/dist/docs/export-document.js +5908 -2436
  96. package/dist/docs/export-document.js.map +3 -3
  97. package/dist/docs/index.d.ts +2 -2
  98. package/dist/docs/index.d.ts.map +1 -1
  99. package/dist/docs/index.js +1 -1
  100. package/dist/docs/index.js.map +1 -1
  101. package/dist/docs/projection.d.ts.map +1 -1
  102. package/dist/docs/projection.js +2 -3
  103. package/dist/docs/projection.js.map +1 -1
  104. package/dist/docs/publish-pr.d.ts +69 -1
  105. package/dist/docs/publish-pr.d.ts.map +1 -1
  106. package/dist/docs/publish-pr.js +112 -10
  107. package/dist/docs/publish-pr.js.map +1 -1
  108. package/dist/doctor/db-substrate.d.ts +13 -8
  109. package/dist/doctor/db-substrate.d.ts.map +1 -1
  110. package/dist/doctor/db-substrate.js +39 -26
  111. package/dist/doctor/db-substrate.js.map +1 -1
  112. package/dist/doctor/index.d.ts +2 -0
  113. package/dist/doctor/index.d.ts.map +1 -1
  114. package/dist/doctor/index.js +1 -0
  115. package/dist/doctor/index.js.map +1 -1
  116. package/dist/doctor/knowledge.d.ts.map +1 -1
  117. package/dist/doctor/knowledge.js +5 -15
  118. package/dist/doctor/knowledge.js.map +1 -1
  119. package/dist/doctor/nexus-schema-residency.d.ts +1 -1
  120. package/dist/doctor/nexus-schema-residency.d.ts.map +1 -1
  121. package/dist/doctor/nexus-schema-residency.js +3 -0
  122. package/dist/doctor/nexus-schema-residency.js.map +1 -1
  123. package/dist/doctor/project-identity.d.ts +44 -1
  124. package/dist/doctor/project-identity.d.ts.map +1 -1
  125. package/dist/doctor/project-identity.js +237 -10
  126. package/dist/doctor/project-identity.js.map +1 -1
  127. package/dist/doctor/projects.d.ts +170 -0
  128. package/dist/doctor/projects.d.ts.map +1 -0
  129. package/dist/doctor/projects.js +1075 -0
  130. package/dist/doctor/projects.js.map +1 -0
  131. package/dist/doctor/twin-collapse.d.ts +97 -0
  132. package/dist/doctor/twin-collapse.d.ts.map +1 -0
  133. package/dist/doctor/twin-collapse.js +168 -0
  134. package/dist/doctor/twin-collapse.js.map +1 -0
  135. package/dist/doctor/worktree-orphans.d.ts.map +1 -1
  136. package/dist/doctor/worktree-orphans.js +13 -29
  137. package/dist/doctor/worktree-orphans.js.map +1 -1
  138. package/dist/doctor/worktree-stores.d.ts +128 -0
  139. package/dist/doctor/worktree-stores.d.ts.map +1 -0
  140. package/dist/doctor/worktree-stores.js +374 -0
  141. package/dist/doctor/worktree-stores.js.map +1 -0
  142. package/dist/engine/engine-ops.d.ts.map +1 -1
  143. package/dist/engine/engine-ops.js +59 -23
  144. package/dist/engine/engine-ops.js.map +1 -1
  145. package/dist/error-catalog.d.ts.map +1 -1
  146. package/dist/error-catalog.js +21 -0
  147. package/dist/error-catalog.js.map +1 -1
  148. package/dist/error-registry.d.ts.map +1 -1
  149. package/dist/error-registry.js +40 -0
  150. package/dist/error-registry.js.map +1 -1
  151. package/dist/gc/cleanup.d.ts.map +1 -1
  152. package/dist/gc/cleanup.js +32 -19
  153. package/dist/gc/cleanup.js.map +1 -1
  154. package/dist/git/bounded-git.d.ts +170 -0
  155. package/dist/git/bounded-git.d.ts.map +1 -0
  156. package/dist/git/bounded-git.js +371 -0
  157. package/dist/git/bounded-git.js.map +1 -0
  158. package/dist/git/work-tree.d.ts +20 -0
  159. package/dist/git/work-tree.d.ts.map +1 -1
  160. package/dist/git/work-tree.js +20 -2
  161. package/dist/git/work-tree.js.map +1 -1
  162. package/dist/hooks/handlers/session-hooks.d.ts +11 -26
  163. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  164. package/dist/hooks/handlers/session-hooks.js +18 -47
  165. package/dist/hooks/handlers/session-hooks.js.map +1 -1
  166. package/dist/hooks/payload-schemas.d.ts +2 -2
  167. package/dist/index.d.ts +6 -5
  168. package/dist/index.d.ts.map +1 -1
  169. package/dist/index.js +5 -3
  170. package/dist/index.js.map +1 -1
  171. package/dist/init/engine-ops.d.ts.map +1 -1
  172. package/dist/init/engine-ops.js +23 -1
  173. package/dist/init/engine-ops.js.map +1 -1
  174. package/dist/init.d.ts +158 -1
  175. package/dist/init.d.ts.map +1 -1
  176. package/dist/init.js +535 -44
  177. package/dist/init.js.map +1 -1
  178. package/dist/injection.d.ts +55 -0
  179. package/dist/injection.d.ts.map +1 -1
  180. package/dist/injection.js +102 -6
  181. package/dist/injection.js.map +1 -1
  182. package/dist/internal.d.ts +9 -5
  183. package/dist/internal.d.ts.map +1 -1
  184. package/dist/internal.js +8 -4
  185. package/dist/internal.js.map +1 -1
  186. package/dist/issue/diagnostics.d.ts.map +1 -1
  187. package/dist/issue/diagnostics.js +2 -1
  188. package/dist/issue/diagnostics.js.map +1 -1
  189. package/dist/lib/concurrency.d.ts +25 -0
  190. package/dist/lib/concurrency.d.ts.map +1 -0
  191. package/dist/lib/concurrency.js +43 -0
  192. package/dist/lib/concurrency.js.map +1 -0
  193. package/dist/lib/index.d.ts +1 -0
  194. package/dist/lib/index.d.ts.map +1 -1
  195. package/dist/lib/index.js +1 -0
  196. package/dist/lib/index.js.map +1 -1
  197. package/dist/lifecycle/engine-ops.d.ts.map +1 -1
  198. package/dist/lifecycle/engine-ops.js +4 -2
  199. package/dist/lifecycle/engine-ops.js.map +1 -1
  200. package/dist/lifecycle/stage-guidance.d.ts +5 -0
  201. package/dist/lifecycle/stage-guidance.d.ts.map +1 -1
  202. package/dist/lifecycle/stage-guidance.js +14 -4
  203. package/dist/lifecycle/stage-guidance.js.map +1 -1
  204. package/dist/llm/catalog-cache.d.ts +3 -2
  205. package/dist/llm/catalog-cache.d.ts.map +1 -1
  206. package/dist/llm/catalog-cache.js +5 -5
  207. package/dist/llm/catalog-cache.js.map +1 -1
  208. package/dist/llm/credentials.d.ts +4 -4
  209. package/dist/llm/credentials.js +6 -6
  210. package/dist/llm/credentials.js.map +1 -1
  211. package/dist/llm/plugin-facade.js +4312 -1798
  212. package/dist/llm/plugin-facade.js.map +3 -3
  213. package/dist/llm/stable-device-id.d.ts.map +1 -1
  214. package/dist/llm/stable-device-id.js +3 -5
  215. package/dist/llm/stable-device-id.js.map +1 -1
  216. package/dist/memory/attention.d.ts.map +1 -1
  217. package/dist/memory/attention.js +30 -30
  218. package/dist/memory/attention.js.map +1 -1
  219. package/dist/memory/decision-contradiction.d.ts +152 -0
  220. package/dist/memory/decision-contradiction.d.ts.map +1 -0
  221. package/dist/memory/decision-contradiction.js +273 -0
  222. package/dist/memory/decision-contradiction.js.map +1 -0
  223. package/dist/memory/decisions.d.ts +42 -11
  224. package/dist/memory/decisions.d.ts.map +1 -1
  225. package/dist/memory/decisions.js +153 -56
  226. package/dist/memory/decisions.js.map +1 -1
  227. package/dist/memory/dialectic-evaluator.d.ts +7 -0
  228. package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
  229. package/dist/memory/dialectic-evaluator.js +23 -8
  230. package/dist/memory/dialectic-evaluator.js.map +1 -1
  231. package/dist/memory/dispatch-trace-format.d.ts +39 -0
  232. package/dist/memory/dispatch-trace-format.d.ts.map +1 -0
  233. package/dist/memory/dispatch-trace-format.js +54 -0
  234. package/dist/memory/dispatch-trace-format.js.map +1 -0
  235. package/dist/memory/dispatch-trace.d.ts.map +1 -1
  236. package/dist/memory/dispatch-trace.js +1 -27
  237. package/dist/memory/dispatch-trace.js.map +1 -1
  238. package/dist/memory/engine-compat.d.ts +2 -0
  239. package/dist/memory/engine-compat.d.ts.map +1 -1
  240. package/dist/memory/engine-compat.js +1 -0
  241. package/dist/memory/engine-compat.js.map +1 -1
  242. package/dist/memory/import-from-provider.js +3 -3
  243. package/dist/memory/import-from-provider.js.map +1 -1
  244. package/dist/memory/learnings.d.ts +2 -2
  245. package/dist/memory/observation-type-decision.d.ts +96 -0
  246. package/dist/memory/observation-type-decision.d.ts.map +1 -0
  247. package/dist/memory/observation-type-decision.js +218 -0
  248. package/dist/memory/observation-type-decision.js.map +1 -0
  249. package/dist/memory/redaction.js +2 -0
  250. package/dist/memory/redaction.js.map +1 -1
  251. package/dist/memory/retrieval/build-retrieval-bundle.d.ts +9 -2
  252. package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
  253. package/dist/memory/retrieval/build-retrieval-bundle.js +42 -11
  254. package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
  255. package/dist/memory/retrieval/get-current-session-id.d.ts +5 -0
  256. package/dist/memory/retrieval/get-current-session-id.d.ts.map +1 -1
  257. package/dist/memory/retrieval/get-current-session-id.js +7 -2
  258. package/dist/memory/retrieval/get-current-session-id.js.map +1 -1
  259. package/dist/memory/retrieval/observe.d.ts.map +1 -1
  260. package/dist/memory/retrieval/observe.js +30 -29
  261. package/dist/memory/retrieval/observe.js.map +1 -1
  262. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  263. package/dist/nexus/analyze-orchestrator.js +42 -29
  264. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  265. package/dist/nexus/assessment-projection.d.ts +76 -0
  266. package/dist/nexus/assessment-projection.d.ts.map +1 -0
  267. package/dist/nexus/assessment-projection.js +143 -0
  268. package/dist/nexus/assessment-projection.js.map +1 -0
  269. package/dist/nexus/assessment-store.d.ts +14 -2
  270. package/dist/nexus/assessment-store.d.ts.map +1 -1
  271. package/dist/nexus/assessment-store.js +21 -3
  272. package/dist/nexus/assessment-store.js.map +1 -1
  273. package/dist/nexus/checkout-nonce.d.ts +48 -0
  274. package/dist/nexus/checkout-nonce.d.ts.map +1 -0
  275. package/dist/nexus/checkout-nonce.js +84 -0
  276. package/dist/nexus/checkout-nonce.js.map +1 -0
  277. package/dist/nexus/devices.d.ts +93 -0
  278. package/dist/nexus/devices.d.ts.map +1 -0
  279. package/dist/nexus/devices.js +141 -0
  280. package/dist/nexus/devices.js.map +1 -0
  281. package/dist/nexus/freshness.d.ts.map +1 -1
  282. package/dist/nexus/freshness.js +25 -6
  283. package/dist/nexus/freshness.js.map +1 -1
  284. package/dist/nexus/git-state.d.ts +225 -0
  285. package/dist/nexus/git-state.d.ts.map +1 -0
  286. package/dist/nexus/git-state.js +677 -0
  287. package/dist/nexus/git-state.js.map +1 -0
  288. package/dist/nexus/graph-manifest.d.ts +20 -4
  289. package/dist/nexus/graph-manifest.d.ts.map +1 -1
  290. package/dist/nexus/graph-manifest.js +40 -5
  291. package/dist/nexus/graph-manifest.js.map +1 -1
  292. package/dist/nexus/identity.d.ts +68 -23
  293. package/dist/nexus/identity.d.ts.map +1 -1
  294. package/dist/nexus/identity.js +99 -22
  295. package/dist/nexus/identity.js.map +1 -1
  296. package/dist/nexus/index.d.ts +5 -2
  297. package/dist/nexus/index.d.ts.map +1 -1
  298. package/dist/nexus/index.js +10 -4
  299. package/dist/nexus/index.js.map +1 -1
  300. package/dist/nexus/knowledge.d.ts +5 -0
  301. package/dist/nexus/knowledge.d.ts.map +1 -1
  302. package/dist/nexus/knowledge.js +26 -2
  303. package/dist/nexus/knowledge.js.map +1 -1
  304. package/dist/nexus/legacy-alias.d.ts +60 -0
  305. package/dist/nexus/legacy-alias.d.ts.map +1 -0
  306. package/dist/nexus/legacy-alias.js +68 -0
  307. package/dist/nexus/legacy-alias.js.map +1 -0
  308. package/dist/nexus/migrate-json-to-sqlite.js +2 -2
  309. package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
  310. package/dist/nexus/ops.d.ts +1 -0
  311. package/dist/nexus/ops.d.ts.map +1 -1
  312. package/dist/nexus/path-map.d.ts +264 -20
  313. package/dist/nexus/path-map.d.ts.map +1 -1
  314. package/dist/nexus/path-map.js +580 -44
  315. package/dist/nexus/path-map.js.map +1 -1
  316. package/dist/nexus/projects-clean.d.ts +9 -1
  317. package/dist/nexus/projects-clean.d.ts.map +1 -1
  318. package/dist/nexus/projects-clean.js +126 -14
  319. package/dist/nexus/projects-clean.js.map +1 -1
  320. package/dist/nexus/projects-scan.d.ts +56 -1
  321. package/dist/nexus/projects-scan.d.ts.map +1 -1
  322. package/dist/nexus/projects-scan.js +144 -3
  323. package/dist/nexus/projects-scan.js.map +1 -1
  324. package/dist/nexus/registry-hygiene.d.ts +18 -2
  325. package/dist/nexus/registry-hygiene.d.ts.map +1 -1
  326. package/dist/nexus/registry-hygiene.js +37 -11
  327. package/dist/nexus/registry-hygiene.js.map +1 -1
  328. package/dist/nexus/registry-roots.d.ts +47 -0
  329. package/dist/nexus/registry-roots.d.ts.map +1 -0
  330. package/dist/nexus/registry-roots.js +79 -0
  331. package/dist/nexus/registry-roots.js.map +1 -0
  332. package/dist/nexus/registry.d.ts +50 -9
  333. package/dist/nexus/registry.d.ts.map +1 -1
  334. package/dist/nexus/registry.js +311 -156
  335. package/dist/nexus/registry.js.map +1 -1
  336. package/dist/nexus/stored-roots.d.ts +106 -0
  337. package/dist/nexus/stored-roots.d.ts.map +1 -0
  338. package/dist/nexus/stored-roots.js +180 -0
  339. package/dist/nexus/stored-roots.js.map +1 -0
  340. package/dist/nexus/transfer.d.ts.map +1 -1
  341. package/dist/nexus/transfer.js +3 -0
  342. package/dist/nexus/transfer.js.map +1 -1
  343. package/dist/nexus/user-profile-hygiene.d.ts +168 -0
  344. package/dist/nexus/user-profile-hygiene.d.ts.map +1 -0
  345. package/dist/nexus/user-profile-hygiene.js +305 -0
  346. package/dist/nexus/user-profile-hygiene.js.map +1 -0
  347. package/dist/nexus/user-profile.d.ts +53 -2
  348. package/dist/nexus/user-profile.d.ts.map +1 -1
  349. package/dist/nexus/user-profile.js +106 -4
  350. package/dist/nexus/user-profile.js.map +1 -1
  351. package/dist/orchestrate/pivot.d.ts.map +1 -1
  352. package/dist/orchestrate/pivot.js +5 -1
  353. package/dist/orchestrate/pivot.js.map +1 -1
  354. package/dist/orchestrate/spawn-ops.d.ts +12 -0
  355. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  356. package/dist/orchestrate/spawn-ops.js +152 -57
  357. package/dist/orchestrate/spawn-ops.js.map +1 -1
  358. package/dist/orchestration/classify-readiness.d.ts +37 -1
  359. package/dist/orchestration/classify-readiness.d.ts.map +1 -1
  360. package/dist/orchestration/classify-readiness.js +48 -19
  361. package/dist/orchestration/classify-readiness.js.map +1 -1
  362. package/dist/orchestration/index.d.ts +3 -2
  363. package/dist/orchestration/index.d.ts.map +1 -1
  364. package/dist/orchestration/index.js +2 -1
  365. package/dist/orchestration/index.js.map +1 -1
  366. package/dist/orchestration/owner-decision-readiness.d.ts +88 -0
  367. package/dist/orchestration/owner-decision-readiness.d.ts.map +1 -0
  368. package/dist/orchestration/owner-decision-readiness.js +152 -0
  369. package/dist/orchestration/owner-decision-readiness.js.map +1 -0
  370. package/dist/orchestration/psyche-memory-budget.d.ts +105 -0
  371. package/dist/orchestration/psyche-memory-budget.d.ts.map +1 -0
  372. package/dist/orchestration/psyche-memory-budget.js +383 -0
  373. package/dist/orchestration/psyche-memory-budget.js.map +1 -0
  374. package/dist/orchestration/spawn-prompt.d.ts +12 -1
  375. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  376. package/dist/orchestration/spawn-prompt.js +141 -179
  377. package/dist/orchestration/spawn-prompt.js.map +1 -1
  378. package/dist/orchestration/spawn.d.ts +7 -0
  379. package/dist/orchestration/spawn.d.ts.map +1 -1
  380. package/dist/orchestration/spawn.js +1 -0
  381. package/dist/orchestration/spawn.js.map +1 -1
  382. package/dist/paths.d.ts +24 -8
  383. package/dist/paths.d.ts.map +1 -1
  384. package/dist/paths.js +135 -71
  385. package/dist/paths.js.map +1 -1
  386. package/dist/platform.d.ts +6 -1
  387. package/dist/platform.d.ts.map +1 -1
  388. package/dist/platform.js +8 -19
  389. package/dist/platform.js.map +1 -1
  390. package/dist/project-info.d.ts +18 -0
  391. package/dist/project-info.d.ts.map +1 -1
  392. package/dist/project-info.js +29 -1
  393. package/dist/project-info.js.map +1 -1
  394. package/dist/project-lifecycle.d.ts +91 -32
  395. package/dist/project-lifecycle.d.ts.map +1 -1
  396. package/dist/project-lifecycle.js +639 -75
  397. package/dist/project-lifecycle.js.map +1 -1
  398. package/dist/project-scope.d.ts +86 -4
  399. package/dist/project-scope.d.ts.map +1 -1
  400. package/dist/project-scope.js +226 -13
  401. package/dist/project-scope.js.map +1 -1
  402. package/dist/project-tombstone.d.ts +111 -0
  403. package/dist/project-tombstone.d.ts.map +1 -0
  404. package/dist/project-tombstone.js +220 -0
  405. package/dist/project-tombstone.js.map +1 -0
  406. package/dist/release/artifacts.d.ts.map +1 -1
  407. package/dist/release/artifacts.js +14 -9
  408. package/dist/release/artifacts.js.map +1 -1
  409. package/dist/release/ci-evidence.d.ts +223 -0
  410. package/dist/release/ci-evidence.d.ts.map +1 -0
  411. package/dist/release/ci-evidence.js +652 -0
  412. package/dist/release/ci-evidence.js.map +1 -0
  413. package/dist/release/engine-ops.d.ts.map +1 -1
  414. package/dist/release/engine-ops.js +3 -3
  415. package/dist/release/engine-ops.js.map +1 -1
  416. package/dist/release/plan.d.ts.map +1 -1
  417. package/dist/release/plan.js +7 -6
  418. package/dist/release/plan.js.map +1 -1
  419. package/dist/release/pr-evidence.d.ts +38 -0
  420. package/dist/release/pr-evidence.d.ts.map +1 -1
  421. package/dist/release/pr-evidence.js +67 -11
  422. package/dist/release/pr-evidence.js.map +1 -1
  423. package/dist/release/reconcile.d.ts.map +1 -1
  424. package/dist/release/reconcile.js +3 -2
  425. package/dist/release/reconcile.js.map +1 -1
  426. package/dist/release/release-manifest.d.ts +2 -1
  427. package/dist/release/release-manifest.d.ts.map +1 -1
  428. package/dist/release/release-manifest.js +6 -5
  429. package/dist/release/release-manifest.js.map +1 -1
  430. package/dist/render/nexus/graph/index.d.ts +4 -0
  431. package/dist/render/nexus/graph/index.d.ts.map +1 -1
  432. package/dist/render/nexus/graph/index.js +57 -0
  433. package/dist/render/nexus/graph/index.js.map +1 -1
  434. package/dist/resources/spawn-wrapper.d.ts +8 -1
  435. package/dist/resources/spawn-wrapper.d.ts.map +1 -1
  436. package/dist/resources/spawn-wrapper.js +42 -5
  437. package/dist/resources/spawn-wrapper.js.map +1 -1
  438. package/dist/routing/build-command-groups.d.ts.map +1 -1
  439. package/dist/routing/build-command-groups.js +1 -0
  440. package/dist/routing/build-command-groups.js.map +1 -1
  441. package/dist/sagas/index.d.ts +1 -1
  442. package/dist/sagas/index.d.ts.map +1 -1
  443. package/dist/sagas/index.js +1 -1
  444. package/dist/sagas/index.js.map +1 -1
  445. package/dist/sagas/reconcile.d.ts +24 -4
  446. package/dist/sagas/reconcile.d.ts.map +1 -1
  447. package/dist/sagas/reconcile.js +226 -100
  448. package/dist/sagas/reconcile.js.map +1 -1
  449. package/dist/scaffold/ensure-config.d.ts.map +1 -1
  450. package/dist/scaffold/ensure-config.js +31 -1
  451. package/dist/scaffold/ensure-config.js.map +1 -1
  452. package/dist/scaffold/project-identity.d.ts +2 -8
  453. package/dist/scaffold/project-identity.d.ts.map +1 -1
  454. package/dist/scaffold/project-identity.js +5 -21
  455. package/dist/scaffold/project-identity.js.map +1 -1
  456. package/dist/security/input-sanitization.d.ts +9 -1
  457. package/dist/security/input-sanitization.d.ts.map +1 -1
  458. package/dist/security/input-sanitization.js +12 -2
  459. package/dist/security/input-sanitization.js.map +1 -1
  460. package/dist/selfimprove/fix-gen.js +4321 -1807
  461. package/dist/selfimprove/fix-gen.js.map +3 -3
  462. package/dist/sentient/propose-tick.d.ts.map +1 -1
  463. package/dist/sentient/propose-tick.js +4 -2
  464. package/dist/sentient/propose-tick.js.map +1 -1
  465. package/dist/sequence/index.d.ts.map +1 -1
  466. package/dist/sequence/index.js +6 -23
  467. package/dist/sequence/index.js.map +1 -1
  468. package/dist/session/engine-ops.d.ts +9 -0
  469. package/dist/session/engine-ops.d.ts.map +1 -1
  470. package/dist/session/engine-ops.js +110 -18
  471. package/dist/session/engine-ops.js.map +1 -1
  472. package/dist/sessions/assumptions.d.ts.map +1 -1
  473. package/dist/sessions/assumptions.js +7 -4
  474. package/dist/sessions/assumptions.js.map +1 -1
  475. package/dist/sessions/briefing.d.ts +6 -0
  476. package/dist/sessions/briefing.d.ts.map +1 -1
  477. package/dist/sessions/briefing.js +12 -1
  478. package/dist/sessions/briefing.js.map +1 -1
  479. package/dist/sessions/decisions.d.ts +38 -3
  480. package/dist/sessions/decisions.d.ts.map +1 -1
  481. package/dist/sessions/decisions.js +235 -21
  482. package/dist/sessions/decisions.js.map +1 -1
  483. package/dist/sessions/drift-watchdog.d.ts.map +1 -1
  484. package/dist/sessions/drift-watchdog.js +4 -2
  485. package/dist/sessions/drift-watchdog.js.map +1 -1
  486. package/dist/sessions/index.d.ts.map +1 -1
  487. package/dist/sessions/index.js +33 -4
  488. package/dist/sessions/index.js.map +1 -1
  489. package/dist/sessions/session-end-snapshot-entry.d.ts +26 -0
  490. package/dist/sessions/session-end-snapshot-entry.d.ts.map +1 -0
  491. package/dist/sessions/session-end-snapshot-entry.js +59 -0
  492. package/dist/sessions/session-end-snapshot-entry.js.map +1 -0
  493. package/dist/sessions/session-end-snapshot.d.ts +114 -0
  494. package/dist/sessions/session-end-snapshot.d.ts.map +1 -0
  495. package/dist/sessions/session-end-snapshot.js +446 -0
  496. package/dist/sessions/session-end-snapshot.js.map +1 -0
  497. package/dist/sessions/session-manifest-mirror.d.ts.map +1 -1
  498. package/dist/sessions/session-manifest-mirror.js +10 -17
  499. package/dist/sessions/session-manifest-mirror.js.map +1 -1
  500. package/dist/sessions/session-switch.d.ts.map +1 -1
  501. package/dist/sessions/session-switch.js +5 -3
  502. package/dist/sessions/session-switch.js.map +1 -1
  503. package/dist/sessions/snapshot.d.ts.map +1 -1
  504. package/dist/sessions/snapshot.js +5 -4
  505. package/dist/sessions/snapshot.js.map +1 -1
  506. package/dist/sessions/terminal-identity.d.ts +169 -0
  507. package/dist/sessions/terminal-identity.d.ts.map +1 -0
  508. package/dist/sessions/terminal-identity.js +273 -0
  509. package/dist/sessions/terminal-identity.js.map +1 -0
  510. package/dist/setup/sections/verification.d.ts +1 -1
  511. package/dist/setup/sections/verification.d.ts.map +1 -1
  512. package/dist/setup/sections/verification.js +11 -15
  513. package/dist/setup/sections/verification.js.map +1 -1
  514. package/dist/skills/discovery.d.ts +8 -2
  515. package/dist/skills/discovery.d.ts.map +1 -1
  516. package/dist/skills/discovery.js +15 -3
  517. package/dist/skills/discovery.js.map +1 -1
  518. package/dist/skills/dispatch.d.ts +5 -2
  519. package/dist/skills/dispatch.d.ts.map +1 -1
  520. package/dist/skills/dispatch.js +5 -2
  521. package/dist/skills/dispatch.js.map +1 -1
  522. package/dist/skills/doctor.d.ts.map +1 -1
  523. package/dist/skills/doctor.js +5 -1
  524. package/dist/skills/doctor.js.map +1 -1
  525. package/dist/skills/federated-search.js +2 -2
  526. package/dist/skills/federated-search.js.map +1 -1
  527. package/dist/skills/index.d.ts +3 -3
  528. package/dist/skills/index.d.ts.map +1 -1
  529. package/dist/skills/index.js +1 -1
  530. package/dist/skills/index.js.map +1 -1
  531. package/dist/skills/install.d.ts +15 -2
  532. package/dist/skills/install.d.ts.map +1 -1
  533. package/dist/skills/install.js +21 -5
  534. package/dist/skills/install.js.map +1 -1
  535. package/dist/skills/migration.d.ts +5 -5
  536. package/dist/skills/migration.d.ts.map +1 -1
  537. package/dist/skills/migration.js +7 -9
  538. package/dist/skills/migration.js.map +1 -1
  539. package/dist/skills/orchestrator/startup.d.ts.map +1 -1
  540. package/dist/skills/orchestrator/startup.js +4 -2
  541. package/dist/skills/orchestrator/startup.js.map +1 -1
  542. package/dist/skills/skill-paths.d.ts +30 -3
  543. package/dist/skills/skill-paths.d.ts.map +1 -1
  544. package/dist/skills/skill-paths.js +28 -9
  545. package/dist/skills/skill-paths.js.map +1 -1
  546. package/dist/skills/skill-root.d.ts +60 -11
  547. package/dist/skills/skill-root.d.ts.map +1 -1
  548. package/dist/skills/skill-root.js +100 -14
  549. package/dist/skills/skill-root.js.map +1 -1
  550. package/dist/skills/skills-guard.js +5 -5
  551. package/dist/skills/skills-guard.js.map +1 -1
  552. package/dist/skills/types.d.ts +23 -0
  553. package/dist/skills/types.d.ts.map +1 -1
  554. package/dist/skills/types.js.map +1 -1
  555. package/dist/spawn/agent-identity.d.ts +51 -2
  556. package/dist/spawn/agent-identity.d.ts.map +1 -1
  557. package/dist/spawn/agent-identity.js +89 -26
  558. package/dist/spawn/agent-identity.js.map +1 -1
  559. package/dist/spawn/branch-lock.d.ts.map +1 -1
  560. package/dist/spawn/branch-lock.js +56 -79
  561. package/dist/spawn/branch-lock.js.map +1 -1
  562. package/dist/spawn/index.d.ts +2 -2
  563. package/dist/spawn/index.d.ts.map +1 -1
  564. package/dist/spawn/index.js +1 -1
  565. package/dist/spawn/index.js.map +1 -1
  566. package/dist/spawn/worktree-lock-holder.d.ts +37 -0
  567. package/dist/spawn/worktree-lock-holder.d.ts.map +1 -0
  568. package/dist/spawn/worktree-lock-holder.js +41 -0
  569. package/dist/spawn/worktree-lock-holder.js.map +1 -0
  570. package/dist/sticky/convert.d.ts.map +1 -1
  571. package/dist/sticky/convert.js +16 -4
  572. package/dist/sticky/convert.js.map +1 -1
  573. package/dist/store/attachment-store.d.ts +14 -0
  574. package/dist/store/attachment-store.d.ts.map +1 -1
  575. package/dist/store/attachment-store.js +11 -1
  576. package/dist/store/attachment-store.js.map +1 -1
  577. package/dist/store/backup-inspect.d.ts +7 -3
  578. package/dist/store/backup-inspect.d.ts.map +1 -1
  579. package/dist/store/backup-inspect.js +18 -7
  580. package/dist/store/backup-inspect.js.map +1 -1
  581. package/dist/store/backup-sidecar.d.ts +60 -0
  582. package/dist/store/backup-sidecar.d.ts.map +1 -0
  583. package/dist/store/backup-sidecar.js +96 -0
  584. package/dist/store/backup-sidecar.js.map +1 -0
  585. package/dist/store/data-accessor.d.ts +1 -1
  586. package/dist/store/data-accessor.d.ts.map +1 -1
  587. package/dist/store/data-accessor.js +6 -6
  588. package/dist/store/data-accessor.js.map +1 -1
  589. package/dist/store/data-safety-central.d.ts +13 -4
  590. package/dist/store/data-safety-central.d.ts.map +1 -1
  591. package/dist/store/data-safety-central.js +31 -4
  592. package/dist/store/data-safety-central.js.map +1 -1
  593. package/dist/store/dual-scope-db.d.ts.map +1 -1
  594. package/dist/store/dual-scope-db.js +10 -0
  595. package/dist/store/dual-scope-db.js.map +1 -1
  596. package/dist/store/exodus/__fixtures__/representative-fixture.d.ts.map +1 -1
  597. package/dist/store/exodus/__fixtures__/representative-fixture.js +4 -0
  598. package/dist/store/exodus/__fixtures__/representative-fixture.js.map +1 -1
  599. package/dist/store/exodus/migrate.js +1 -1
  600. package/dist/store/exodus/migrate.js.map +1 -1
  601. package/dist/store/exodus/reconcile.js +1 -1
  602. package/dist/store/exodus/reconcile.js.map +1 -1
  603. package/dist/store/exodus/runtime-targets.d.ts +4 -3
  604. package/dist/store/exodus/runtime-targets.d.ts.map +1 -1
  605. package/dist/store/exodus/runtime-targets.js +4 -3
  606. package/dist/store/exodus/runtime-targets.js.map +1 -1
  607. package/dist/store/import-logging.d.ts.map +1 -1
  608. package/dist/store/import-logging.js +5 -4
  609. package/dist/store/import-logging.js.map +1 -1
  610. package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
  611. package/dist/store/legacy-tasks-lineage.js +2 -7
  612. package/dist/store/legacy-tasks-lineage.js.map +1 -1
  613. package/dist/store/lock.d.ts +1 -0
  614. package/dist/store/lock.d.ts.map +1 -1
  615. package/dist/store/lock.js +1 -0
  616. package/dist/store/lock.js.map +1 -1
  617. package/dist/store/memory-accessor.d.ts +8 -3
  618. package/dist/store/memory-accessor.d.ts.map +1 -1
  619. package/dist/store/memory-accessor.js +29 -13
  620. package/dist/store/memory-accessor.js.map +1 -1
  621. package/dist/store/memory-sqlite.d.ts.map +1 -1
  622. package/dist/store/memory-sqlite.js +5 -0
  623. package/dist/store/memory-sqlite.js.map +1 -1
  624. package/dist/store/open-cleo-db.d.ts.map +1 -1
  625. package/dist/store/open-cleo-db.js +11 -6
  626. package/dist/store/open-cleo-db.js.map +1 -1
  627. package/dist/store/portable-bundle-relocate.d.ts +13 -8
  628. package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
  629. package/dist/store/portable-bundle-relocate.js +75 -31
  630. package/dist/store/portable-bundle-relocate.js.map +1 -1
  631. package/dist/store/portable-bundle-scan.d.ts.map +1 -1
  632. package/dist/store/portable-bundle-scan.js +2 -1
  633. package/dist/store/portable-bundle-scan.js.map +1 -1
  634. package/dist/store/portable-bundle.d.ts.map +1 -1
  635. package/dist/store/portable-bundle.js +7 -3
  636. package/dist/store/portable-bundle.js.map +1 -1
  637. package/dist/store/pre-repair-snapshot.d.ts +77 -0
  638. package/dist/store/pre-repair-snapshot.d.ts.map +1 -0
  639. package/dist/store/pre-repair-snapshot.js +122 -0
  640. package/dist/store/pre-repair-snapshot.js.map +1 -0
  641. package/dist/store/regenerators.d.ts +2 -1
  642. package/dist/store/regenerators.d.ts.map +1 -1
  643. package/dist/store/regenerators.js +17 -3
  644. package/dist/store/regenerators.js.map +1 -1
  645. package/dist/store/relocated-store-guard.d.ts +71 -0
  646. package/dist/store/relocated-store-guard.d.ts.map +1 -0
  647. package/dist/store/relocated-store-guard.js +138 -0
  648. package/dist/store/relocated-store-guard.js.map +1 -0
  649. package/dist/store/safety-data-accessor.d.ts +2 -2
  650. package/dist/store/safety-data-accessor.d.ts.map +1 -1
  651. package/dist/store/safety-data-accessor.js +2 -2
  652. package/dist/store/safety-data-accessor.js.map +1 -1
  653. package/dist/store/schema/attachments.d.ts +2 -2
  654. package/dist/store/schema/audit.d.ts +5 -5
  655. package/dist/store/schema/background-jobs.d.ts +1 -1
  656. package/dist/store/schema/cleo-global/models-catalog.d.ts +1 -1
  657. package/dist/store/schema/cleo-global/nexus.d.ts +686 -0
  658. package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
  659. package/dist/store/schema/cleo-global/nexus.js +175 -7
  660. package/dist/store/schema/cleo-global/nexus.js.map +1 -1
  661. package/dist/store/schema/cleo-global/skills.d.ts +2 -2
  662. package/dist/store/schema/cleo-project/audit.d.ts +5 -5
  663. package/dist/store/schema/cleo-project/docs.d.ts +3 -3
  664. package/dist/store/schema/cleo-project/lifecycle.d.ts +3 -3
  665. package/dist/store/schema/cleo-project/provenance-commits.d.ts +2 -2
  666. package/dist/store/schema/cleo-project/provenance-rest.d.ts +3 -3
  667. package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
  668. package/dist/store/schema/cleo-project/tasks-core.d.ts +6 -6
  669. package/dist/store/schema/cleo-shared/brain.d.ts +26 -26
  670. package/dist/store/schema/lifecycle.d.ts +3 -3
  671. package/dist/store/schema/manifest.d.ts +1 -1
  672. package/dist/store/schema/memory-schema.d.ts +26 -26
  673. package/dist/store/schema/nexus-schema.d.ts +696 -2
  674. package/dist/store/schema/nexus-schema.d.ts.map +1 -1
  675. package/dist/store/schema/nexus-schema.js +175 -19
  676. package/dist/store/schema/nexus-schema.js.map +1 -1
  677. package/dist/store/schema/provenance/releases.d.ts +1 -1
  678. package/dist/store/schema/skills-schema.d.ts +2 -2
  679. package/dist/store/schema/tasks.d.ts +5 -5
  680. package/dist/store/session-binding-schema.d.ts +132 -0
  681. package/dist/store/session-binding-schema.d.ts.map +1 -0
  682. package/dist/store/session-binding-schema.js +53 -0
  683. package/dist/store/session-binding-schema.js.map +1 -0
  684. package/dist/store/session-store.d.ts +262 -4
  685. package/dist/store/session-store.d.ts.map +1 -1
  686. package/dist/store/session-store.js +486 -26
  687. package/dist/store/session-store.js.map +1 -1
  688. package/dist/store/snapshot-gate.d.ts +239 -0
  689. package/dist/store/snapshot-gate.d.ts.map +1 -0
  690. package/dist/store/snapshot-gate.js +398 -0
  691. package/dist/store/snapshot-gate.js.map +1 -0
  692. package/dist/store/split-brain-import.js +2 -2
  693. package/dist/store/split-brain-import.js.map +1 -1
  694. package/dist/store/sqlite-backup.d.ts +55 -13
  695. package/dist/store/sqlite-backup.d.ts.map +1 -1
  696. package/dist/store/sqlite-backup.js +414 -106
  697. package/dist/store/sqlite-backup.js.map +1 -1
  698. package/dist/store/sqlite-data-accessor.d.ts +15 -0
  699. package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
  700. package/dist/store/sqlite-data-accessor.js +63 -4
  701. package/dist/store/sqlite-data-accessor.js.map +1 -1
  702. package/dist/store/sqlite.d.ts +1 -1
  703. package/dist/store/sqlite.d.ts.map +1 -1
  704. package/dist/store/sqlite.js +53 -5
  705. package/dist/store/sqlite.js.map +1 -1
  706. package/dist/store/store-write-guard.d.ts +28 -0
  707. package/dist/store/store-write-guard.d.ts.map +1 -0
  708. package/dist/store/store-write-guard.js +50 -0
  709. package/dist/store/store-write-guard.js.map +1 -0
  710. package/dist/store/table-classification.d.ts +143 -0
  711. package/dist/store/table-classification.d.ts.map +1 -0
  712. package/dist/store/table-classification.js +1866 -0
  713. package/dist/store/table-classification.js.map +1 -0
  714. package/dist/store/task-version.d.ts +72 -0
  715. package/dist/store/task-version.d.ts.map +1 -0
  716. package/dist/store/task-version.js +93 -0
  717. package/dist/store/task-version.js.map +1 -0
  718. package/dist/store/tasks-schema.d.ts +1 -0
  719. package/dist/store/tasks-schema.d.ts.map +1 -1
  720. package/dist/store/tasks-schema.js +13 -0
  721. package/dist/store/tasks-schema.js.map +1 -1
  722. package/dist/store/tasks-sqlite.d.ts +10 -3
  723. package/dist/store/tasks-sqlite.d.ts.map +1 -1
  724. package/dist/store/tasks-sqlite.js +12 -3
  725. package/dist/store/tasks-sqlite.js.map +1 -1
  726. package/dist/store/twin-collapse.d.ts +275 -0
  727. package/dist/store/twin-collapse.d.ts.map +1 -0
  728. package/dist/store/twin-collapse.js +805 -0
  729. package/dist/store/twin-collapse.js.map +1 -0
  730. package/dist/store/umbrella-data-accessor.d.ts +2 -2
  731. package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
  732. package/dist/store/umbrella-data-accessor.js +2 -2
  733. package/dist/store/umbrella-data-accessor.js.map +1 -1
  734. package/dist/store/validation-schemas.d.ts +63 -63
  735. package/dist/store/worktree-isolation-guard.d.ts +46 -24
  736. package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
  737. package/dist/store/worktree-isolation-guard.js +69 -50
  738. package/dist/store/worktree-isolation-guard.js.map +1 -1
  739. package/dist/system/backup.d.ts.map +1 -1
  740. package/dist/system/backup.js +3 -67
  741. package/dist/system/backup.js.map +1 -1
  742. package/dist/system/cleo-link.d.ts +163 -0
  743. package/dist/system/cleo-link.d.ts.map +1 -0
  744. package/dist/system/cleo-link.js +246 -0
  745. package/dist/system/cleo-link.js.map +1 -0
  746. package/dist/system/dependencies.d.ts.map +1 -1
  747. package/dist/system/dependencies.js +26 -41
  748. package/dist/system/dependencies.js.map +1 -1
  749. package/dist/system/global-delivery.d.ts +205 -0
  750. package/dist/system/global-delivery.d.ts.map +1 -0
  751. package/dist/system/global-delivery.js +320 -0
  752. package/dist/system/global-delivery.js.map +1 -0
  753. package/dist/system/health.d.ts.map +1 -1
  754. package/dist/system/health.js +29 -6
  755. package/dist/system/health.js.map +1 -1
  756. package/dist/system/project-health.d.ts.map +1 -1
  757. package/dist/system/project-health.js +1 -20
  758. package/dist/system/project-health.js.map +1 -1
  759. package/dist/system/runtime.d.ts.map +1 -1
  760. package/dist/system/runtime.js +2 -12
  761. package/dist/system/runtime.js.map +1 -1
  762. package/dist/system/safestop.d.ts.map +1 -1
  763. package/dist/system/safestop.js +5 -2
  764. package/dist/system/safestop.js.map +1 -1
  765. package/dist/system/skill-fixtures.d.ts +200 -0
  766. package/dist/system/skill-fixtures.d.ts.map +1 -0
  767. package/dist/system/skill-fixtures.js +331 -0
  768. package/dist/system/skill-fixtures.js.map +1 -0
  769. package/dist/tasks/add.d.ts.map +1 -1
  770. package/dist/tasks/add.js +4 -2
  771. package/dist/tasks/add.js.map +1 -1
  772. package/dist/tasks/affected-packages.d.ts +173 -0
  773. package/dist/tasks/affected-packages.d.ts.map +1 -0
  774. package/dist/tasks/affected-packages.js +389 -0
  775. package/dist/tasks/affected-packages.js.map +1 -0
  776. package/dist/tasks/change-set.d.ts +151 -0
  777. package/dist/tasks/change-set.d.ts.map +1 -0
  778. package/dist/tasks/change-set.js +634 -0
  779. package/dist/tasks/change-set.js.map +1 -0
  780. package/dist/tasks/complete.d.ts.map +1 -1
  781. package/dist/tasks/complete.js +10 -5
  782. package/dist/tasks/complete.js.map +1 -1
  783. package/dist/tasks/done-plan.d.ts +103 -0
  784. package/dist/tasks/done-plan.d.ts.map +1 -0
  785. package/dist/tasks/done-plan.js +541 -0
  786. package/dist/tasks/done-plan.js.map +1 -0
  787. package/dist/tasks/done-record.d.ts +127 -0
  788. package/dist/tasks/done-record.d.ts.map +1 -0
  789. package/dist/tasks/done-record.js +373 -0
  790. package/dist/tasks/done-record.js.map +1 -0
  791. package/dist/tasks/duplicate-detector.d.ts +68 -11
  792. package/dist/tasks/duplicate-detector.d.ts.map +1 -1
  793. package/dist/tasks/duplicate-detector.js +314 -58
  794. package/dist/tasks/duplicate-detector.js.map +1 -1
  795. package/dist/tasks/evidence-paths.d.ts +78 -0
  796. package/dist/tasks/evidence-paths.d.ts.map +1 -0
  797. package/dist/tasks/evidence-paths.js +150 -0
  798. package/dist/tasks/evidence-paths.js.map +1 -0
  799. package/dist/tasks/evidence.d.ts +55 -0
  800. package/dist/tasks/evidence.d.ts.map +1 -1
  801. package/dist/tasks/evidence.js +223 -26
  802. package/dist/tasks/evidence.js.map +1 -1
  803. package/dist/tasks/gate-preview.d.ts +5 -0
  804. package/dist/tasks/gate-preview.d.ts.map +1 -1
  805. package/dist/tasks/gate-preview.js +25 -21
  806. package/dist/tasks/gate-preview.js.map +1 -1
  807. package/dist/tasks/gate-result-cache.d.ts +205 -0
  808. package/dist/tasks/gate-result-cache.d.ts.map +1 -0
  809. package/dist/tasks/gate-result-cache.js +285 -0
  810. package/dist/tasks/gate-result-cache.js.map +1 -0
  811. package/dist/tasks/gate-runner.d.ts +126 -3
  812. package/dist/tasks/gate-runner.d.ts.map +1 -1
  813. package/dist/tasks/gate-runner.js +483 -28
  814. package/dist/tasks/gate-runner.js.map +1 -1
  815. package/dist/tasks/session-scope.d.ts +3 -1
  816. package/dist/tasks/session-scope.d.ts.map +1 -1
  817. package/dist/tasks/session-scope.js +18 -3
  818. package/dist/tasks/session-scope.js.map +1 -1
  819. package/dist/tasks/tool-resolver.d.ts +23 -6
  820. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  821. package/dist/tasks/tool-resolver.js +146 -8
  822. package/dist/tasks/tool-resolver.js.map +1 -1
  823. package/dist/tasks/tool-vacuity.d.ts +71 -0
  824. package/dist/tasks/tool-vacuity.d.ts.map +1 -0
  825. package/dist/tasks/tool-vacuity.js +334 -0
  826. package/dist/tasks/tool-vacuity.js.map +1 -0
  827. package/dist/tasks/update.d.ts +8 -0
  828. package/dist/tasks/update.d.ts.map +1 -1
  829. package/dist/tasks/update.js +159 -78
  830. package/dist/tasks/update.js.map +1 -1
  831. package/dist/upgrade.d.ts.map +1 -1
  832. package/dist/upgrade.js +18 -2
  833. package/dist/upgrade.js.map +1 -1
  834. package/dist/validation/doctor/checks.d.ts +20 -2
  835. package/dist/validation/doctor/checks.d.ts.map +1 -1
  836. package/dist/validation/doctor/checks.js +64 -4
  837. package/dist/validation/doctor/checks.js.map +1 -1
  838. package/dist/validation/doctor/index.d.ts +1 -1
  839. package/dist/validation/doctor/index.d.ts.map +1 -1
  840. package/dist/validation/doctor/index.js +1 -1
  841. package/dist/validation/doctor/index.js.map +1 -1
  842. package/dist/validation/doctor/utils.d.ts.map +1 -1
  843. package/dist/validation/doctor/utils.js +7 -2
  844. package/dist/validation/doctor/utils.js.map +1 -1
  845. package/dist/validation/engine-ops.d.ts +15 -0
  846. package/dist/validation/engine-ops.d.ts.map +1 -1
  847. package/dist/validation/engine-ops.js +249 -98
  848. package/dist/validation/engine-ops.js.map +1 -1
  849. package/migrations/drizzle-cleo-global/20260927000000_t12469-project-locations/migration.sql +121 -0
  850. package/migrations/drizzle-cleo-global/20260927010000_t12543-user-profile-project-scope/migration.sql +23 -0
  851. package/migrations/drizzle-cleo-global/20260928010000_t12470-location-candidates/migration.sql +72 -0
  852. package/migrations/drizzle-cleo-global/20260928020000_t12510-nexus-devices/migration.sql +34 -0
  853. package/migrations/drizzle-cleo-global/20260928030000_t12511-project-git-state/migration.sql +62 -0
  854. package/migrations/drizzle-cleo-project/20260927000000_t12499-session-terminal-bindings/migration.sql +34 -0
  855. package/migrations/drizzle-cleo-project/20260928000000_t12500-binding-provider-flag/migration.sql +15 -0
  856. package/package.json +23 -13
  857. package/schemas/config.schema.json +54 -0
  858. package/schemas/project-context.schema.json +51 -3
  859. package/schemas/project-info.schema.json +28 -1
  860. package/templates/CLEO-INJECTION.md +40 -332
  861. package/templates/CLEO-REFERENCE.md +303 -0
  862. package/templates/workflows/README.md +36 -14
  863. package/templates/workflows/release-prepare.yml.tmpl +7 -0
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Shared plumbing for System One call sites: the `off | shadow | on` mode,
3
+ * the generative-fallback opt-in, and redact-then-clip for state text.
4
+ *
5
+ * Every site resolves its settings the same way, so the rule that an
6
+ * unconfigured provider means `off` (and therefore zero network) lives here
7
+ * once. Heavy modules (credentials, config registry) load lazily: importing
8
+ * this file costs nothing on a path that never asks a decision.
9
+ *
10
+ * @task T12493
11
+ * @epic T12486
12
+ */
13
+ /**
14
+ * Type guard for {@link DecisionSiteMode}.
15
+ *
16
+ * @param value - Any config value.
17
+ * @returns Whether `value` is `off`, `shadow` or `on`.
18
+ */
19
+ export function isDecisionSiteMode(value) {
20
+ return value === 'off' || value === 'shadow' || value === 'on';
21
+ }
22
+ /**
23
+ * Redact secrets, THEN clip to `max` characters, marking the cut.
24
+ *
25
+ * The order matters: clipping first can cut a secret in half, and a partial
26
+ * secret no longer matches the redaction patterns — `decide()`'s own redaction
27
+ * would then let the prefix through.
28
+ *
29
+ * @param text - Raw text.
30
+ * @param max - Maximum length of the result, in UTF-16 characters.
31
+ * @param redact - The redaction function (the memory redaction patterns).
32
+ * @returns Redacted text of at most `max` characters.
33
+ */
34
+ export function redactThenClip(text, max, redact) {
35
+ const safe = redact(text);
36
+ return safe.length <= max ? safe : `${safe.slice(0, max - 1)}…`;
37
+ }
38
+ /**
39
+ * Resolve a site's mode and generative opt-in.
40
+ *
41
+ * Unconfigured (no explicit provider/connection and nothing stored by
42
+ * `cleo decide config`) always resolves to `off`, whatever the config says,
43
+ * so an unconfigured site never opens a socket. Never throws: unreadable
44
+ * credentials or config fall back to the defaults.
45
+ *
46
+ * @param input - Config keys, explicit overrides and wiring.
47
+ * @returns The effective settings.
48
+ */
49
+ export async function resolveDecisionSiteSettings(input) {
50
+ const wiring = input.wiring ?? {};
51
+ let configured;
52
+ if (wiring.provider) {
53
+ configured = true;
54
+ }
55
+ else if (wiring.connection !== undefined) {
56
+ configured = wiring.connection !== null && wiring.connection.apiKey.trim() !== '';
57
+ }
58
+ else {
59
+ try {
60
+ const { loadDecideConnection } = await import('./credentials.js');
61
+ configured = loadDecideConnection() !== null;
62
+ }
63
+ catch {
64
+ configured = false;
65
+ }
66
+ }
67
+ const needConfig = (configured && input.mode === undefined) ||
68
+ (input.llmTierKey !== undefined && input.llmTier === undefined);
69
+ let configMode;
70
+ let configLlmTier;
71
+ if (needConfig) {
72
+ try {
73
+ const { getConfigValue } = await import('../config/registry.js');
74
+ const { getProjectRoot } = await import('../paths.js');
75
+ const projectRoot = input.projectRoot ?? getProjectRoot();
76
+ const llmTierKey = input.llmTierKey;
77
+ [configMode, configLlmTier] = await Promise.all([
78
+ getConfigValue(input.modeKey, { projectRoot }),
79
+ llmTierKey === undefined ? undefined : getConfigValue(llmTierKey, { projectRoot }),
80
+ ]);
81
+ }
82
+ catch {
83
+ // Unreadable config → defaults.
84
+ }
85
+ }
86
+ const mode = !configured
87
+ ? 'off'
88
+ : (input.mode ?? (isDecisionSiteMode(configMode) ? configMode : 'shadow'));
89
+ const llmTierDefault = input.llmTierDefault?.(mode) ?? false;
90
+ const llmTier = input.llmTier ?? (typeof configLlmTier === 'boolean' ? configLlmTier : llmTierDefault);
91
+ return { mode, llmTier };
92
+ }
93
+ function allConfident(answers, min) {
94
+ return Object.values(answers).every((a) => a.confidence >= min);
95
+ }
96
+ /**
97
+ * Ask one budgeted System One decision for a call site, auditing the
98
+ * heuristic's answers beside the decision's in the same `decisions.jsonl` line.
99
+ *
100
+ * Never throws. Heavy modules load lazily FIRST; then the deadline starts, and
101
+ * the provider is never waited on longer than `budgetMs` (request building,
102
+ * redaction, the audit sink and the client's own setup are inside it). Module
103
+ * load is excluded on purpose: in a cold process it alone can exceed the
104
+ * budget, and a budget that includes it means a fast provider never answers.
105
+ *
106
+ * @param input - Site id, budget, mode, request builder, heuristic and wiring.
107
+ * @returns The decision, or `null` when the heuristic answered (fallback) or the answer was invalid.
108
+ */
109
+ export async function askSiteDecision(input) {
110
+ try {
111
+ const [{ decide }, { auditAnswers, createJsonlDecisionAudit }, { redactContent }, paths] = await Promise.all([
112
+ import('./client.js'),
113
+ import('./audit.js'),
114
+ import('../memory/redaction.js'),
115
+ import('../paths.js'),
116
+ ]);
117
+ // The wait budget starts now, with every module loaded.
118
+ const started = performance.now();
119
+ const deadline = AbortSignal.timeout(input.budgetMs);
120
+ const req = input.buildRequest((text) => redactContent(text).content);
121
+ const heuristicAudit = auditAnswers({
122
+ answers: input.heuristicAnswers,
123
+ source: 'fallback',
124
+ latencyMs: 0,
125
+ });
126
+ const isValid = input.isValid ?? (() => true);
127
+ const wiring = input.wiring ?? {};
128
+ let sink = wiring.audit;
129
+ if (sink === undefined) {
130
+ try {
131
+ sink = createJsonlDecisionAudit(wiring.projectRoot ?? input.projectRoot ?? paths.getProjectRoot());
132
+ }
133
+ catch {
134
+ sink = null;
135
+ }
136
+ }
137
+ const base = sink;
138
+ const audit = base
139
+ ? {
140
+ write: (entry) => {
141
+ const answered = entry.source !== 'fallback';
142
+ const valid = answered && isValid(entry.answers);
143
+ base.write({
144
+ ...entry,
145
+ shadow: {
146
+ mode: input.mode,
147
+ acted: input.mode === 'on' && valid && allConfident(entry.answers, input.minConfidence)
148
+ ? 'decision'
149
+ : 'heuristic',
150
+ heuristicVerdict: input.heuristicVerdict,
151
+ heuristicAnswers: heuristicAudit,
152
+ agree: valid ? input.agree(entry.answers) : null,
153
+ ...input.shadowExtras,
154
+ ...(answered && !valid ? { rejected: 'invalid_choice' } : {}),
155
+ },
156
+ });
157
+ },
158
+ }
159
+ : null;
160
+ const remaining = Math.max(0, input.budgetMs - (performance.now() - started));
161
+ const outcome = await decide(input.siteId, req, () => input.heuristicAnswers, {
162
+ ...wiring,
163
+ audit,
164
+ timeoutMs: Math.min(wiring.timeoutMs ?? remaining, remaining),
165
+ signal: wiring.signal ? AbortSignal.any([wiring.signal, deadline]) : deadline,
166
+ });
167
+ if (outcome.source === 'fallback')
168
+ return null;
169
+ if (!isValid(auditAnswers(outcome)))
170
+ return null;
171
+ return {
172
+ answers: outcome.answers,
173
+ source: outcome.source,
174
+ confident: allConfident(outcome.answers, input.minConfidence),
175
+ };
176
+ }
177
+ catch {
178
+ return null;
179
+ }
180
+ }
181
+ //# sourceMappingURL=site.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site.js","sourceRoot":"","sources":["../../src/decide/site.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Abort-complete HTTP transport for decision providers.
3
+ *
4
+ * The global `fetch` cannot be trusted with a sub-second, one-shot CLI
5
+ * budget: aborting it rejects the promise, but a request still in its CONNECT
6
+ * phase keeps its handle — `TCPConnectWrap` for an unanswered SYN, the TLS
7
+ * socket for a stalled handshake, `GetAddrInfoReqWrap` for a slow DNS lookup
8
+ * on the libuv threadpool. The CLI's success path relies on the event loop
9
+ * draining, so each of those kept `cleo add` alive until the 3 s teardown
10
+ * backstop (measured 4.4 s end to end, T12492).
11
+ *
12
+ * This transport owns every handle it creates, and releases all of them when
13
+ * the signal fires:
14
+ *
15
+ * - DNS goes through a dedicated `dns.Resolver` (c-ares) whose `cancel()`
16
+ * ends in-flight queries. IP literals skip DNS; `localhost` and other
17
+ * hosts-file names are answered from the hosts file, in file order.
18
+ * - `.local` (mDNS) names are refused outright unless the hosts file maps
19
+ * them: c-ares answers NXDOMAIN, and the system resolver would then wait
20
+ * seconds on multicast, uncancellably.
21
+ * - When c-ares cannot answer (NXDOMAIN, SERVFAIL, REFUSED, timeout — e.g. a
22
+ * VPN's split DNS that only the system resolver knows), `dns.lookup` is the
23
+ * fallback. It is the ONE step that cannot be cancelled: a hung
24
+ * `getaddrinfo` holds the process until it returns. That residual risk is
25
+ * disclosed in the T12492 changeset.
26
+ * - Every resolved address is tried in order (IPv4 first, then IPv6) until a
27
+ * connection is made; a refused or unreachable address moves on to the next.
28
+ * - Requests use `agent: false` — no pooled keep-alive socket survives the
29
+ * call — and `req.destroy()` on abort tears down a socket in any phase.
30
+ * - TLS verifies the certificate against the ORIGINAL hostname
31
+ * (`servername`), not the resolved address.
32
+ * - Every listener converts a throw into a rejection: a response the WHATWG
33
+ * `Response` cannot represent (status outside 200–599) is a rejected call,
34
+ * never an uncaught exception that kills the CLI mid-write.
35
+ * - The transport never consults `HTTPS_PROXY` / `NODE_USE_ENV_PROXY`.
36
+ *
37
+ * Provider-neutral: it knows no endpoint paths or wire shapes.
38
+ *
39
+ * @task T12492
40
+ */
41
+ /** Request options accepted by {@link decideFetch}. */
42
+ export interface DecideFetchInit {
43
+ /** HTTP method. */
44
+ readonly method: 'GET' | 'POST';
45
+ /** Request headers. */
46
+ readonly headers: Readonly<Record<string, string>>;
47
+ /** Request body. */
48
+ readonly body?: string;
49
+ /** Cancels DNS, connect, request and response; every handle is released. */
50
+ readonly signal: AbortSignal;
51
+ }
52
+ /** Signature of {@link decideFetch}; `globalThis.fetch` satisfies it too (tests inject stubs). */
53
+ export type DecideFetch = (url: string, init: DecideFetchInit) => Promise<Response>;
54
+ /**
55
+ * Perform one HTTP(S) request and buffer the response.
56
+ *
57
+ * Rejects — never throws out of a callback — on abort, on any network or
58
+ * protocol failure, and on a status outside 200–599. By the time an abort
59
+ * rejects, the DNS query, socket and request have been destroyed (except a
60
+ * system-resolver fallback already in flight; see the module docs).
61
+ *
62
+ * @param url - Absolute `http:` or `https:` URL.
63
+ * @param init - Method, headers, body and the (required) abort signal.
64
+ * @returns The buffered response.
65
+ */
66
+ export declare function decideFetch(url: string, init: DecideFetchInit): Promise<Response>;
67
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/decide/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAQH,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IAChC,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,kGAAkG;AAClG,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAyQpF;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuBvF"}
@@ -0,0 +1,350 @@
1
+ /**
2
+ * Abort-complete HTTP transport for decision providers.
3
+ *
4
+ * The global `fetch` cannot be trusted with a sub-second, one-shot CLI
5
+ * budget: aborting it rejects the promise, but a request still in its CONNECT
6
+ * phase keeps its handle — `TCPConnectWrap` for an unanswered SYN, the TLS
7
+ * socket for a stalled handshake, `GetAddrInfoReqWrap` for a slow DNS lookup
8
+ * on the libuv threadpool. The CLI's success path relies on the event loop
9
+ * draining, so each of those kept `cleo add` alive until the 3 s teardown
10
+ * backstop (measured 4.4 s end to end, T12492).
11
+ *
12
+ * This transport owns every handle it creates, and releases all of them when
13
+ * the signal fires:
14
+ *
15
+ * - DNS goes through a dedicated `dns.Resolver` (c-ares) whose `cancel()`
16
+ * ends in-flight queries. IP literals skip DNS; `localhost` and other
17
+ * hosts-file names are answered from the hosts file, in file order.
18
+ * - `.local` (mDNS) names are refused outright unless the hosts file maps
19
+ * them: c-ares answers NXDOMAIN, and the system resolver would then wait
20
+ * seconds on multicast, uncancellably.
21
+ * - When c-ares cannot answer (NXDOMAIN, SERVFAIL, REFUSED, timeout — e.g. a
22
+ * VPN's split DNS that only the system resolver knows), `dns.lookup` is the
23
+ * fallback. It is the ONE step that cannot be cancelled: a hung
24
+ * `getaddrinfo` holds the process until it returns. That residual risk is
25
+ * disclosed in the T12492 changeset.
26
+ * - Every resolved address is tried in order (IPv4 first, then IPv6) until a
27
+ * connection is made; a refused or unreachable address moves on to the next.
28
+ * - Requests use `agent: false` — no pooled keep-alive socket survives the
29
+ * call — and `req.destroy()` on abort tears down a socket in any phase.
30
+ * - TLS verifies the certificate against the ORIGINAL hostname
31
+ * (`servername`), not the resolved address.
32
+ * - Every listener converts a throw into a rejection: a response the WHATWG
33
+ * `Response` cannot represent (status outside 200–599) is a rejected call,
34
+ * never an uncaught exception that kills the CLI mid-write.
35
+ * - The transport never consults `HTTPS_PROXY` / `NODE_USE_ENV_PROXY`.
36
+ *
37
+ * Provider-neutral: it knows no endpoint paths or wire shapes.
38
+ *
39
+ * @task T12492
40
+ */
41
+ import { lookup as dnsLookup, Resolver } from 'node:dns';
42
+ import { readFileSync } from 'node:fs';
43
+ import { request as httpRequest } from 'node:http';
44
+ import { request as httpsRequest } from 'node:https';
45
+ import { isIP } from 'node:net';
46
+ /** Upper bound on one DNS query when no abort arrives first, in ms. */
47
+ const RESOLVER_TIMEOUT_MS = 2_000;
48
+ /** Byte cap on a buffered response body. */
49
+ const MAX_RESPONSE_BYTES = 1024 * 1024;
50
+ /** Statuses whose `Response` must not carry a body. */
51
+ const NULL_BODY_STATUSES = new Set([204, 205, 304]);
52
+ /** c-ares answers after which the system resolver may still know the name. */
53
+ const SYSTEM_FALLBACK_CODES = new Set([
54
+ 'ENOTFOUND',
55
+ 'ENODATA',
56
+ 'NOTFOUND',
57
+ 'ESERVFAIL',
58
+ 'SERVFAIL',
59
+ 'EREFUSED',
60
+ 'REFUSED',
61
+ 'ETIMEOUT',
62
+ 'TIMEOUT',
63
+ ]);
64
+ /** Connect-phase failures after which the next address is worth trying. */
65
+ const NEXT_ADDRESS_CODES = new Set([
66
+ 'ECONNREFUSED',
67
+ 'EHOSTUNREACH',
68
+ 'ENETUNREACH',
69
+ 'EADDRNOTAVAIL',
70
+ 'EAFNOSUPPORT',
71
+ ]);
72
+ function abortError() {
73
+ const err = new Error('The operation was aborted');
74
+ err.name = 'AbortError';
75
+ return err;
76
+ }
77
+ function errorCode(err) {
78
+ return err instanceof Error && 'code' in err && typeof err.code === 'string'
79
+ ? err.code
80
+ : undefined;
81
+ }
82
+ function asError(err) {
83
+ return err instanceof Error ? err : new Error(String(err));
84
+ }
85
+ /** Hosts-file path for this platform. */
86
+ function hostsFilePath() {
87
+ return process.platform === 'win32'
88
+ ? `${process.env['SystemRoot'] ?? 'C:\\Windows'}\\System32\\drivers\\etc\\hosts`
89
+ : '/etc/hosts';
90
+ }
91
+ /**
92
+ * Addresses the hosts file maps `hostname` to, in file order. A synchronous
93
+ * read of a small local file — no handle survives it.
94
+ */
95
+ function hostsFileAddresses(hostname) {
96
+ let text;
97
+ try {
98
+ text = readFileSync(hostsFilePath(), 'utf-8');
99
+ }
100
+ catch {
101
+ return [];
102
+ }
103
+ const out = [];
104
+ for (const raw of text.split(/\r?\n/)) {
105
+ const [address, ...names] = (raw.split('#')[0] ?? '').trim().split(/\s+/);
106
+ if (!address || !isIP(address))
107
+ continue;
108
+ if (names.some((n) => n.toLowerCase() === hostname) && !out.includes(address)) {
109
+ out.push(address);
110
+ }
111
+ }
112
+ return out;
113
+ }
114
+ /** IPv4 addresses first, then IPv6, preserving order within each family. */
115
+ function v4First(addresses) {
116
+ return [...addresses.filter((a) => isIP(a) === 4), ...addresses.filter((a) => isIP(a) === 6)];
117
+ }
118
+ /** Resolve through c-ares: both families. Cancellable; never throws synchronously. */
119
+ function resolveWithCares(hostname, signal) {
120
+ return new Promise((resolve, reject) => {
121
+ const resolver = new Resolver({ timeout: RESOLVER_TIMEOUT_MS, tries: 1 });
122
+ let done = false;
123
+ const finish = (err, addresses = []) => {
124
+ if (done)
125
+ return;
126
+ done = true;
127
+ signal.removeEventListener('abort', onAbort);
128
+ if (err)
129
+ reject(err);
130
+ else
131
+ resolve(addresses);
132
+ };
133
+ const onAbort = () => {
134
+ resolver.cancel();
135
+ finish(abortError());
136
+ };
137
+ signal.addEventListener('abort', onAbort, { once: true });
138
+ try {
139
+ resolver.resolve4(hostname, (err4, v4) => {
140
+ if (done)
141
+ return;
142
+ resolver.resolve6(hostname, (err6, v6) => {
143
+ const found = [...(err4 ? [] : v4), ...(err6 ? [] : v6)];
144
+ if (found.length > 0)
145
+ finish(null, found);
146
+ else
147
+ finish(err4 ?? err6 ?? new Error(`could not resolve ${hostname}`));
148
+ });
149
+ });
150
+ }
151
+ catch (err) {
152
+ finish(asError(err));
153
+ }
154
+ });
155
+ }
156
+ /**
157
+ * The system resolver (`getaddrinfo`) — NOT cancellable. Used only after
158
+ * c-ares could not answer. An abort still settles the promise at once, but a
159
+ * hung lookup keeps its threadpool request alive until it returns.
160
+ */
161
+ function resolveWithSystem(hostname, signal) {
162
+ return new Promise((resolve, reject) => {
163
+ const onAbort = () => reject(abortError());
164
+ signal.addEventListener('abort', onAbort, { once: true });
165
+ try {
166
+ dnsLookup(hostname, { all: true }, (err, addresses) => {
167
+ signal.removeEventListener('abort', onAbort);
168
+ if (err)
169
+ reject(err);
170
+ else
171
+ resolve(addresses.map((a) => a.address));
172
+ });
173
+ }
174
+ catch (err) {
175
+ signal.removeEventListener('abort', onAbort);
176
+ reject(asError(err));
177
+ }
178
+ });
179
+ }
180
+ /** Resolve `hostname` to every candidate address, in connection order. */
181
+ async function resolveHost(hostname, signal) {
182
+ if (isIP(hostname))
183
+ return [hostname];
184
+ const name = hostname.toLowerCase().replace(/\.$/, '');
185
+ const fromHosts = hostsFileAddresses(name);
186
+ // `localhost` keeps the hosts file's own order (the system order).
187
+ if (name === 'localhost')
188
+ return fromHosts.length > 0 ? fromHosts : ['127.0.0.1', '::1'];
189
+ if (fromHosts.length > 0)
190
+ return v4First(fromHosts);
191
+ if (name === 'local' || name.endsWith('.local')) {
192
+ throw new Error(`refusing to resolve ${hostname}: .local (mDNS) names are not supported`);
193
+ }
194
+ try {
195
+ return v4First(await resolveWithCares(hostname, signal));
196
+ }
197
+ catch (err) {
198
+ if (signal.aborted)
199
+ throw abortError();
200
+ const code = errorCode(err);
201
+ if (code === undefined || !SYSTEM_FALLBACK_CODES.has(code))
202
+ throw asError(err);
203
+ return v4First(await resolveWithSystem(hostname, signal));
204
+ }
205
+ }
206
+ /**
207
+ * Buffer `res` into a WHATWG `Response`, capped at {@link MAX_RESPONSE_BYTES}.
208
+ * Settles by rejection on any failure, including a status `Response` refuses.
209
+ */
210
+ function toResponse(res) {
211
+ return new Promise((resolve, reject) => {
212
+ const status = res.statusCode ?? 0;
213
+ if (!Number.isInteger(status) || status < 200 || status > 599) {
214
+ res.destroy();
215
+ reject(new Error(`provider returned an HTTP status outside 200-599 (${status})`));
216
+ return;
217
+ }
218
+ const chunks = [];
219
+ let total = 0;
220
+ res.on('data', (chunk) => {
221
+ try {
222
+ total += chunk.byteLength;
223
+ if (total > MAX_RESPONSE_BYTES) {
224
+ res.destroy(new Error('response body exceeds the size limit'));
225
+ return;
226
+ }
227
+ chunks.push(chunk);
228
+ }
229
+ catch (err) {
230
+ res.destroy(asError(err));
231
+ }
232
+ });
233
+ res.on('error', (err) => reject(err));
234
+ res.on('aborted', () => reject(new Error('response aborted')));
235
+ res.on('close', () => {
236
+ if (!res.complete)
237
+ reject(new Error('response closed before it completed'));
238
+ });
239
+ res.on('end', () => {
240
+ try {
241
+ const headers = new Headers();
242
+ for (const [name, value] of Object.entries(res.headers)) {
243
+ if (value === undefined)
244
+ continue;
245
+ for (const v of Array.isArray(value) ? value : [value])
246
+ headers.append(name, v);
247
+ }
248
+ const body = NULL_BODY_STATUSES.has(status) ? null : Buffer.concat(chunks);
249
+ resolve(new Response(body, { status, headers }));
250
+ }
251
+ catch (err) {
252
+ reject(asError(err));
253
+ }
254
+ });
255
+ });
256
+ }
257
+ /** One request to one resolved address. Settles by rejection; no listener throws. */
258
+ function requestOnce(target, address, hostname, init) {
259
+ const { signal } = init;
260
+ const https = target.protocol === 'https:';
261
+ return new Promise((resolve, reject) => {
262
+ let settled = false;
263
+ let req;
264
+ const settle = (fn) => {
265
+ if (settled)
266
+ return;
267
+ settled = true;
268
+ signal.removeEventListener('abort', onAbort);
269
+ fn();
270
+ };
271
+ const onAbort = () => {
272
+ req?.destroy(abortError());
273
+ settle(() => reject(abortError()));
274
+ };
275
+ try {
276
+ req = (https ? httpsRequest : httpRequest)({
277
+ host: address,
278
+ port: target.port || (https ? 443 : 80),
279
+ path: `${target.pathname}${target.search}`,
280
+ method: init.method,
281
+ headers: { ...init.headers, host: target.host },
282
+ agent: false,
283
+ ...(https && !isIP(hostname) ? { servername: hostname } : {}),
284
+ });
285
+ }
286
+ catch (err) {
287
+ settle(() => reject(asError(err)));
288
+ return;
289
+ }
290
+ const active = req;
291
+ signal.addEventListener('abort', onAbort, { once: true });
292
+ active.on('error', (err) => {
293
+ settle(() => reject(signal.aborted ? abortError() : err));
294
+ });
295
+ active.on('response', (res) => {
296
+ toResponse(res).then((response) => settle(() => resolve(response)), (err) => {
297
+ active.destroy();
298
+ settle(() => reject(signal.aborted ? abortError() : asError(err)));
299
+ });
300
+ });
301
+ try {
302
+ active.end(init.body);
303
+ }
304
+ catch (err) {
305
+ active.destroy();
306
+ settle(() => reject(asError(err)));
307
+ }
308
+ });
309
+ }
310
+ /**
311
+ * Perform one HTTP(S) request and buffer the response.
312
+ *
313
+ * Rejects — never throws out of a callback — on abort, on any network or
314
+ * protocol failure, and on a status outside 200–599. By the time an abort
315
+ * rejects, the DNS query, socket and request have been destroyed (except a
316
+ * system-resolver fallback already in flight; see the module docs).
317
+ *
318
+ * @param url - Absolute `http:` or `https:` URL.
319
+ * @param init - Method, headers, body and the (required) abort signal.
320
+ * @returns The buffered response.
321
+ */
322
+ export async function decideFetch(url, init) {
323
+ const { signal } = init;
324
+ if (signal.aborted)
325
+ throw abortError();
326
+ const target = new URL(url);
327
+ if (target.protocol !== 'https:' && target.protocol !== 'http:') {
328
+ throw new Error(`unsupported protocol ${target.protocol}`);
329
+ }
330
+ const hostname = target.hostname.replace(/^\[|\]$/g, '');
331
+ const addresses = await resolveHost(hostname, signal);
332
+ if (signal.aborted)
333
+ throw abortError();
334
+ let lastError = new Error(`no address for ${hostname}`);
335
+ for (const address of addresses) {
336
+ try {
337
+ return await requestOnce(target, address, hostname, init);
338
+ }
339
+ catch (err) {
340
+ if (signal.aborted)
341
+ throw abortError();
342
+ lastError = asError(err);
343
+ const code = errorCode(err);
344
+ if (code === undefined || !NEXT_ADDRESS_CODES.has(code))
345
+ throw lastError;
346
+ }
347
+ }
348
+ throw lastError;
349
+ }
350
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/decide/transport.ts"],"names":[],"mappings":"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"}