@telora/daemon 0.22.104 → 0.22.131

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 (478) hide show
  1. package/build-info.json +4 -3
  2. package/dist/completion/commit-verdict-release.d.ts +49 -0
  3. package/dist/completion/commit-verdict-release.d.ts.map +1 -0
  4. package/dist/completion/commit-verdict-release.js +240 -0
  5. package/dist/completion/commit-verdict-release.js.map +1 -0
  6. package/dist/completion/completion-phase-registry.d.ts +10 -4
  7. package/dist/completion/completion-phase-registry.d.ts.map +1 -1
  8. package/dist/completion/completion-phase-registry.js +19 -7
  9. package/dist/completion/completion-phase-registry.js.map +1 -1
  10. package/dist/completion/detector.d.ts.map +1 -1
  11. package/dist/completion/detector.js +1 -0
  12. package/dist/completion/detector.js.map +1 -1
  13. package/dist/completion/event-entry-phases.d.ts +6 -3
  14. package/dist/completion/event-entry-phases.d.ts.map +1 -1
  15. package/dist/completion/event-entry-phases.js +135 -76
  16. package/dist/completion/event-entry-phases.js.map +1 -1
  17. package/dist/completion/event-phases.d.ts +24 -3
  18. package/dist/completion/event-phases.d.ts.map +1 -1
  19. package/dist/completion/event-phases.js +9 -9
  20. package/dist/completion/event-phases.js.map +1 -1
  21. package/dist/completion/event.d.ts +8 -0
  22. package/dist/completion/event.d.ts.map +1 -1
  23. package/dist/completion/event.js +47 -21
  24. package/dist/completion/event.js.map +1 -1
  25. package/dist/completion/exit-classification.d.ts.map +1 -1
  26. package/dist/completion/exit-classification.js +1 -0
  27. package/dist/completion/exit-classification.js.map +1 -1
  28. package/dist/completion/merge-phase.d.ts +21 -9
  29. package/dist/completion/merge-phase.d.ts.map +1 -1
  30. package/dist/completion/merge-phase.js +35 -10
  31. package/dist/completion/merge-phase.js.map +1 -1
  32. package/dist/completion/review-auto-approval-record.d.ts +19 -0
  33. package/dist/completion/review-auto-approval-record.d.ts.map +1 -0
  34. package/dist/completion/review-auto-approval-record.js +102 -0
  35. package/dist/completion/review-auto-approval-record.js.map +1 -0
  36. package/dist/completion/review-cycle-cap.d.ts +62 -0
  37. package/dist/completion/review-cycle-cap.d.ts.map +1 -0
  38. package/dist/completion/review-cycle-cap.js +180 -0
  39. package/dist/completion/review-cycle-cap.js.map +1 -0
  40. package/dist/completion/review-exit-deps.d.ts +17 -2
  41. package/dist/completion/review-exit-deps.d.ts.map +1 -1
  42. package/dist/completion/review-exit-deps.js +19 -2
  43. package/dist/completion/review-exit-deps.js.map +1 -1
  44. package/dist/completion/review-exit-escalations.d.ts +45 -23
  45. package/dist/completion/review-exit-escalations.d.ts.map +1 -1
  46. package/dist/completion/review-exit-escalations.js +15 -74
  47. package/dist/completion/review-exit-escalations.js.map +1 -1
  48. package/dist/completion/review-exit-evidence.d.ts +9 -0
  49. package/dist/completion/review-exit-evidence.d.ts.map +1 -1
  50. package/dist/completion/review-exit-evidence.js +4 -1
  51. package/dist/completion/review-exit-evidence.js.map +1 -1
  52. package/dist/completion/review-exit-foreign-findings.d.ts +151 -0
  53. package/dist/completion/review-exit-foreign-findings.d.ts.map +1 -0
  54. package/dist/completion/review-exit-foreign-findings.js +474 -0
  55. package/dist/completion/review-exit-foreign-findings.js.map +1 -0
  56. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  57. package/dist/completion/review-exit-phase.js +71 -64
  58. package/dist/completion/review-exit-phase.js.map +1 -1
  59. package/dist/completion/review-exit-progress.d.ts +20 -0
  60. package/dist/completion/review-exit-progress.d.ts.map +1 -1
  61. package/dist/completion/review-exit-progress.js +28 -19
  62. package/dist/completion/review-exit-progress.js.map +1 -1
  63. package/dist/completion/review-exit-rehoming.d.ts +5 -0
  64. package/dist/completion/review-exit-rehoming.d.ts.map +1 -1
  65. package/dist/completion/review-exit-rehoming.js.map +1 -1
  66. package/dist/completion/review-exit-verdict-gate.d.ts +202 -0
  67. package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -0
  68. package/dist/completion/review-exit-verdict-gate.js +228 -0
  69. package/dist/completion/review-exit-verdict-gate.js.map +1 -0
  70. package/dist/completion/review-next-step.d.ts +62 -0
  71. package/dist/completion/review-next-step.d.ts.map +1 -0
  72. package/dist/completion/review-next-step.js +63 -0
  73. package/dist/completion/review-next-step.js.map +1 -0
  74. package/dist/completion/session-hold-sweep-deps.d.ts +17 -0
  75. package/dist/completion/session-hold-sweep-deps.d.ts.map +1 -0
  76. package/dist/completion/session-hold-sweep-deps.js +89 -0
  77. package/dist/completion/session-hold-sweep-deps.js.map +1 -0
  78. package/dist/completion/session-hold.d.ts +180 -0
  79. package/dist/completion/session-hold.d.ts.map +1 -0
  80. package/dist/completion/session-hold.js +238 -0
  81. package/dist/completion/session-hold.js.map +1 -0
  82. package/dist/completion/state-cascade.d.ts +19 -0
  83. package/dist/completion/state-cascade.d.ts.map +1 -1
  84. package/dist/completion/state-cascade.js +85 -31
  85. package/dist/completion/state-cascade.js.map +1 -1
  86. package/dist/completion/team-lifecycle.d.ts +35 -2
  87. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  88. package/dist/completion/team-lifecycle.js +165 -94
  89. package/dist/completion/team-lifecycle.js.map +1 -1
  90. package/dist/completion/team-phase.d.ts +27 -15
  91. package/dist/completion/team-phase.d.ts.map +1 -1
  92. package/dist/completion/team-phase.js +34 -15
  93. package/dist/completion/team-phase.js.map +1 -1
  94. package/dist/delivery/commit-verdict-hold.d.ts +55 -0
  95. package/dist/delivery/commit-verdict-hold.d.ts.map +1 -0
  96. package/dist/delivery/commit-verdict-hold.js +118 -0
  97. package/dist/delivery/commit-verdict-hold.js.map +1 -0
  98. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  99. package/dist/directive/directive-dispatch.js +10 -3
  100. package/dist/directive/directive-dispatch.js.map +1 -1
  101. package/dist/directive/directive-executor.d.ts.map +1 -1
  102. package/dist/directive/directive-executor.js +1 -0
  103. package/dist/directive/directive-executor.js.map +1 -1
  104. package/dist/directive/directive-queue.d.ts.map +1 -1
  105. package/dist/directive/directive-queue.js +6 -1
  106. package/dist/directive/directive-queue.js.map +1 -1
  107. package/dist/directive/phase-sync.d.ts +29 -2
  108. package/dist/directive/phase-sync.d.ts.map +1 -1
  109. package/dist/directive/phase-sync.js +30 -6
  110. package/dist/directive/phase-sync.js.map +1 -1
  111. package/dist/drift/artifact-ref-shape.d.ts +34 -0
  112. package/dist/drift/artifact-ref-shape.d.ts.map +1 -0
  113. package/dist/drift/artifact-ref-shape.js +94 -0
  114. package/dist/drift/artifact-ref-shape.js.map +1 -0
  115. package/dist/drift/drift-eval-loop.d.ts +7 -0
  116. package/dist/drift/drift-eval-loop.d.ts.map +1 -1
  117. package/dist/drift/drift-eval-loop.js +34 -5
  118. package/dist/drift/drift-eval-loop.js.map +1 -1
  119. package/dist/drift/drift-evaluator.d.ts.map +1 -1
  120. package/dist/drift/drift-evaluator.js +8 -3
  121. package/dist/drift/drift-evaluator.js.map +1 -1
  122. package/dist/focus/awaiting-slot.d.ts +34 -0
  123. package/dist/focus/awaiting-slot.d.ts.map +1 -0
  124. package/dist/focus/awaiting-slot.js +26 -0
  125. package/dist/focus/awaiting-slot.js.map +1 -0
  126. package/dist/focus/focus-lifecycle.js +2 -2
  127. package/dist/focus/focus-lifecycle.js.map +1 -1
  128. package/dist/focus/focus-phase.d.ts.map +1 -1
  129. package/dist/focus/focus-phase.js +3 -1
  130. package/dist/focus/focus-phase.js.map +1 -1
  131. package/dist/focus/focus-spawn-decision.d.ts +62 -0
  132. package/dist/focus/focus-spawn-decision.d.ts.map +1 -0
  133. package/dist/focus/focus-spawn-decision.js +41 -0
  134. package/dist/focus/focus-spawn-decision.js.map +1 -0
  135. package/dist/focus/focus-team-state.d.ts.map +1 -1
  136. package/dist/focus/focus-team-state.js +1 -13
  137. package/dist/focus/focus-team-state.js.map +1 -1
  138. package/dist/focus/listener-spawn.d.ts +16 -55
  139. package/dist/focus/listener-spawn.d.ts.map +1 -1
  140. package/dist/focus/listener-spawn.js +102 -64
  141. package/dist/focus/listener-spawn.js.map +1 -1
  142. package/dist/focus/listener-state.d.ts.map +1 -1
  143. package/dist/focus/listener-state.js +4 -1
  144. package/dist/focus/listener-state.js.map +1 -1
  145. package/dist/focus/listener.d.ts +41 -2
  146. package/dist/focus/listener.d.ts.map +1 -1
  147. package/dist/focus/listener.js +135 -83
  148. package/dist/focus/listener.js.map +1 -1
  149. package/dist/focus/pending-spawn-pass-deps.d.ts +69 -0
  150. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -0
  151. package/dist/focus/pending-spawn-pass-deps.js +34 -0
  152. package/dist/focus/pending-spawn-pass-deps.js.map +1 -0
  153. package/dist/focus/pending-spawn-review-next-step.d.ts +83 -0
  154. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -0
  155. package/dist/focus/pending-spawn-review-next-step.js +325 -0
  156. package/dist/focus/pending-spawn-review-next-step.js.map +1 -0
  157. package/dist/focus/review-cycle-cap-hold.d.ts +132 -0
  158. package/dist/focus/review-cycle-cap-hold.d.ts.map +1 -0
  159. package/dist/focus/review-cycle-cap-hold.js +178 -0
  160. package/dist/focus/review-cycle-cap-hold.js.map +1 -0
  161. package/dist/focus/team-actionable-work.js +2 -2
  162. package/dist/focus/verify-open-issues.d.ts +22 -0
  163. package/dist/focus/verify-open-issues.d.ts.map +1 -1
  164. package/dist/focus/verify-open-issues.js +118 -57
  165. package/dist/focus/verify-open-issues.js.map +1 -1
  166. package/dist/focus/verify-routing-passes.d.ts +32 -0
  167. package/dist/focus/verify-routing-passes.d.ts.map +1 -0
  168. package/dist/focus/verify-routing-passes.js +18 -0
  169. package/dist/focus/verify-routing-passes.js.map +1 -0
  170. package/dist/git/index.d.ts.map +1 -1
  171. package/dist/git/index.js +9 -5
  172. package/dist/git/index.js.map +1 -1
  173. package/dist/merge/focus-merge.d.ts +16 -2
  174. package/dist/merge/focus-merge.d.ts.map +1 -1
  175. package/dist/merge/focus-merge.js +53 -30
  176. package/dist/merge/focus-merge.js.map +1 -1
  177. package/dist/merge/merge-back-loop.d.ts +5 -0
  178. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  179. package/dist/merge/merge-back-loop.js +17 -8
  180. package/dist/merge/merge-back-loop.js.map +1 -1
  181. package/dist/merge/merge-gate-coverage.d.ts +94 -0
  182. package/dist/merge/merge-gate-coverage.d.ts.map +1 -0
  183. package/dist/merge/merge-gate-coverage.js +217 -0
  184. package/dist/merge/merge-gate-coverage.js.map +1 -0
  185. package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
  186. package/dist/prompt/focus-prompt-builder.js +6 -0
  187. package/dist/prompt/focus-prompt-builder.js.map +1 -1
  188. package/dist/prompt/prompt-listing.d.ts.map +1 -1
  189. package/dist/prompt/prompt-listing.js +8 -0
  190. package/dist/prompt/prompt-listing.js.map +1 -1
  191. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  192. package/dist/prompt/team-prompt-base.js +5 -1
  193. package/dist/prompt/team-prompt-base.js.map +1 -1
  194. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  195. package/dist/prompt-sections/execution-sections.js +14 -39
  196. package/dist/prompt-sections/execution-sections.js.map +1 -1
  197. package/dist/prompt-sections/gate-ownership.d.ts +36 -0
  198. package/dist/prompt-sections/gate-ownership.d.ts.map +1 -0
  199. package/dist/prompt-sections/gate-ownership.js +68 -0
  200. package/dist/prompt-sections/gate-ownership.js.map +1 -0
  201. package/dist/prompt-sections/gate-verdict-section.d.ts +58 -0
  202. package/dist/prompt-sections/gate-verdict-section.d.ts.map +1 -0
  203. package/dist/prompt-sections/gate-verdict-section.js +88 -0
  204. package/dist/prompt-sections/gate-verdict-section.js.map +1 -0
  205. package/dist/prompt-sections/persona-sections.d.ts +10 -0
  206. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  207. package/dist/prompt-sections/persona-sections.js +35 -11
  208. package/dist/prompt-sections/persona-sections.js.map +1 -1
  209. package/dist/prompt-sections/shared.js +1 -1
  210. package/dist/prompt-sections/shared.js.map +1 -1
  211. package/dist/queries/agent-resolvable-promotion.d.ts +6 -3
  212. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  213. package/dist/queries/agent-resolvable-promotion.js +20 -9
  214. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  215. package/dist/queries/deliveries.d.ts +46 -4
  216. package/dist/queries/deliveries.d.ts.map +1 -1
  217. package/dist/queries/deliveries.js +69 -16
  218. package/dist/queries/deliveries.js.map +1 -1
  219. package/dist/queries/delivery-gate-state.d.ts +151 -1
  220. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  221. package/dist/queries/delivery-gate-state.js +95 -14
  222. package/dist/queries/delivery-gate-state.js.map +1 -1
  223. package/dist/queries/delivery-write-discipline.d.ts +65 -0
  224. package/dist/queries/delivery-write-discipline.d.ts.map +1 -0
  225. package/dist/queries/delivery-write-discipline.js +101 -0
  226. package/dist/queries/delivery-write-discipline.js.map +1 -0
  227. package/dist/queries/escalation-consumption.d.ts +11 -0
  228. package/dist/queries/escalation-consumption.d.ts.map +1 -1
  229. package/dist/queries/escalation-consumption.js +22 -0
  230. package/dist/queries/escalation-consumption.js.map +1 -1
  231. package/dist/queries/escalation-spool.d.ts +75 -0
  232. package/dist/queries/escalation-spool.d.ts.map +1 -0
  233. package/dist/queries/escalation-spool.js +232 -0
  234. package/dist/queries/escalation-spool.js.map +1 -0
  235. package/dist/queries/escalation-suppression.d.ts.map +1 -1
  236. package/dist/queries/escalation-suppression.js +2 -0
  237. package/dist/queries/escalation-suppression.js.map +1 -1
  238. package/dist/queries/escalations.js +1 -1
  239. package/dist/queries/filing-observation.d.ts.map +1 -1
  240. package/dist/queries/filing-observation.js +2 -0
  241. package/dist/queries/filing-observation.js.map +1 -1
  242. package/dist/queries/focus-discovery.d.ts +4 -4
  243. package/dist/queries/focus-discovery.d.ts.map +1 -1
  244. package/dist/queries/focus-discovery.js +1 -0
  245. package/dist/queries/focus-discovery.js.map +1 -1
  246. package/dist/queries/focus-review-approval.d.ts +84 -0
  247. package/dist/queries/focus-review-approval.d.ts.map +1 -0
  248. package/dist/queries/focus-review-approval.js +158 -0
  249. package/dist/queries/focus-review-approval.js.map +1 -0
  250. package/dist/queries/focuses.d.ts +6 -5
  251. package/dist/queries/focuses.d.ts.map +1 -1
  252. package/dist/queries/focuses.js +9 -5
  253. package/dist/queries/focuses.js.map +1 -1
  254. package/dist/queries/incident-correlation.d.ts +5 -4
  255. package/dist/queries/incident-correlation.d.ts.map +1 -1
  256. package/dist/queries/incident-correlation.js +11 -5
  257. package/dist/queries/incident-correlation.js.map +1 -1
  258. package/dist/queries/issues.d.ts.map +1 -1
  259. package/dist/queries/issues.js +2 -1
  260. package/dist/queries/issues.js.map +1 -1
  261. package/dist/queries/loop-refusal-observation.d.ts +64 -0
  262. package/dist/queries/loop-refusal-observation.d.ts.map +1 -0
  263. package/dist/queries/loop-refusal-observation.js +137 -0
  264. package/dist/queries/loop-refusal-observation.js.map +1 -0
  265. package/dist/queries/schemas.d.ts +9 -0
  266. package/dist/queries/schemas.d.ts.map +1 -1
  267. package/dist/queries/schemas.js +11 -3
  268. package/dist/queries/schemas.js.map +1 -1
  269. package/dist/queries/shared.js +1 -1
  270. package/dist/queries/verification.d.ts.map +1 -1
  271. package/dist/queries/verification.js +1 -15
  272. package/dist/queries/verification.js.map +1 -1
  273. package/dist/queries/wire-contract.generated.d.ts +3 -0
  274. package/dist/queries/wire-contract.generated.d.ts.map +1 -1
  275. package/dist/queries/wire-contract.generated.js +3 -0
  276. package/dist/queries/wire-contract.generated.js.map +1 -1
  277. package/dist/resolvers/assembly-engine.d.ts.map +1 -1
  278. package/dist/resolvers/assembly-engine.js +3 -1
  279. package/dist/resolvers/assembly-engine.js.map +1 -1
  280. package/dist/resolvers/git-diff-against-base.d.ts +5 -2
  281. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
  282. package/dist/resolvers/git-diff-against-base.js +121 -39
  283. package/dist/resolvers/git-diff-against-base.js.map +1 -1
  284. package/dist/resolvers/shared/git-diff.d.ts +2 -0
  285. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  286. package/dist/resolvers/shared/git-diff.js +5 -1
  287. package/dist/resolvers/shared/git-diff.js.map +1 -1
  288. package/dist/resolvers/shared/review-window-commits.d.ts +96 -0
  289. package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -0
  290. package/dist/resolvers/shared/review-window-commits.js +262 -0
  291. package/dist/resolvers/shared/review-window-commits.js.map +1 -0
  292. package/dist/session/session-lineage.d.ts.map +1 -1
  293. package/dist/session/session-lineage.js +4 -1
  294. package/dist/session/session-lineage.js.map +1 -1
  295. package/dist/shell/fail-stop.d.ts +18 -0
  296. package/dist/shell/fail-stop.d.ts.map +1 -0
  297. package/dist/shell/fail-stop.js +53 -0
  298. package/dist/shell/fail-stop.js.map +1 -0
  299. package/dist/shell/graceful-shutdown.d.ts +48 -0
  300. package/dist/shell/graceful-shutdown.d.ts.map +1 -0
  301. package/dist/shell/graceful-shutdown.js +152 -0
  302. package/dist/shell/graceful-shutdown.js.map +1 -0
  303. package/dist/shell/heartbeat.d.ts.map +1 -1
  304. package/dist/shell/heartbeat.js +5 -4
  305. package/dist/shell/heartbeat.js.map +1 -1
  306. package/dist/shell/log.d.ts.map +1 -1
  307. package/dist/shell/log.js +4 -1
  308. package/dist/shell/log.js.map +1 -1
  309. package/dist/shell/stop-request.d.ts.map +1 -1
  310. package/dist/shell/stop-request.js +2 -1
  311. package/dist/shell/stop-request.js.map +1 -1
  312. package/dist/shell/unified-shell.d.ts.map +1 -1
  313. package/dist/shell/unified-shell.js +41 -114
  314. package/dist/shell/unified-shell.js.map +1 -1
  315. package/dist/spawn/lifecycle.d.ts +12 -0
  316. package/dist/spawn/lifecycle.d.ts.map +1 -1
  317. package/dist/spawn/lifecycle.js +25 -21
  318. package/dist/spawn/lifecycle.js.map +1 -1
  319. package/dist/spawn/prompt-assembly.d.ts +19 -1
  320. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  321. package/dist/spawn/prompt-assembly.js +70 -21
  322. package/dist/spawn/prompt-assembly.js.map +1 -1
  323. package/dist/spawn/review-hold-park.d.ts.map +1 -1
  324. package/dist/spawn/review-hold-park.js +18 -8
  325. package/dist/spawn/review-hold-park.js.map +1 -1
  326. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  327. package/dist/spawn/spawn-cooldown.js +4 -0
  328. package/dist/spawn/spawn-cooldown.js.map +1 -1
  329. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  330. package/dist/spawn/spawn-decision.js +2 -1
  331. package/dist/spawn/spawn-decision.js.map +1 -1
  332. package/dist/spawn/worktree-session.d.ts +6 -0
  333. package/dist/spawn/worktree-session.d.ts.map +1 -1
  334. package/dist/spawn/worktree-session.js +15 -2
  335. package/dist/spawn/worktree-session.js.map +1 -1
  336. package/dist/testing/fixtures/index.d.ts +10 -1
  337. package/dist/testing/fixtures/index.d.ts.map +1 -1
  338. package/dist/testing/fixtures/index.js +59 -1
  339. package/dist/testing/fixtures/index.js.map +1 -1
  340. package/dist/testing/fixtures/pending-spawn-world.d.ts +34 -0
  341. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -0
  342. package/dist/testing/fixtures/pending-spawn-world.js +92 -0
  343. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -0
  344. package/dist/types/index.js +1 -1
  345. package/dist/verify/commit-gate-configured.d.ts +86 -0
  346. package/dist/verify/commit-gate-configured.d.ts.map +1 -0
  347. package/dist/verify/commit-gate-configured.js +234 -0
  348. package/dist/verify/commit-gate-configured.js.map +1 -0
  349. package/dist/verify/commit-verdict-record.d.ts +98 -0
  350. package/dist/verify/commit-verdict-record.d.ts.map +1 -0
  351. package/dist/verify/commit-verdict-record.js +297 -0
  352. package/dist/verify/commit-verdict-record.js.map +1 -0
  353. package/dist/verify/explicit-gate-outcome.d.ts +161 -0
  354. package/dist/verify/explicit-gate-outcome.d.ts.map +1 -0
  355. package/dist/verify/explicit-gate-outcome.js +215 -0
  356. package/dist/verify/explicit-gate-outcome.js.map +1 -0
  357. package/dist/verify/explicit-rearm.d.ts +27 -0
  358. package/dist/verify/explicit-rearm.d.ts.map +1 -0
  359. package/dist/verify/explicit-rearm.js +161 -0
  360. package/dist/verify/explicit-rearm.js.map +1 -0
  361. package/dist/verify/explicit-run-ledger.d.ts +26 -0
  362. package/dist/verify/explicit-run-ledger.d.ts.map +1 -0
  363. package/dist/verify/explicit-run-ledger.js +93 -0
  364. package/dist/verify/explicit-run-ledger.js.map +1 -0
  365. package/dist/verify/failure-signature.d.ts.map +1 -1
  366. package/dist/verify/failure-signature.js +5 -1
  367. package/dist/verify/failure-signature.js.map +1 -1
  368. package/dist/verify/gate-run-registry.d.ts +105 -0
  369. package/dist/verify/gate-run-registry.d.ts.map +1 -0
  370. package/dist/verify/gate-run-registry.js +111 -0
  371. package/dist/verify/gate-run-registry.js.map +1 -0
  372. package/dist/verify/gate-verdict-source.d.ts +68 -0
  373. package/dist/verify/gate-verdict-source.d.ts.map +1 -0
  374. package/dist/verify/gate-verdict-source.js +143 -0
  375. package/dist/verify/gate-verdict-source.js.map +1 -0
  376. package/dist/verify/judged-commit-gate.d.ts +11 -0
  377. package/dist/verify/judged-commit-gate.d.ts.map +1 -0
  378. package/dist/verify/judged-commit-gate.js +48 -0
  379. package/dist/verify/judged-commit-gate.js.map +1 -0
  380. package/dist/verify/rework-judgment.d.ts +58 -0
  381. package/dist/verify/rework-judgment.d.ts.map +1 -0
  382. package/dist/verify/rework-judgment.js +54 -0
  383. package/dist/verify/rework-judgment.js.map +1 -0
  384. package/dist/verify/verification-attribution.d.ts +105 -0
  385. package/dist/verify/verification-attribution.d.ts.map +1 -0
  386. package/dist/verify/verification-attribution.js +322 -0
  387. package/dist/verify/verification-attribution.js.map +1 -0
  388. package/dist/verify/verification-baseline-run.d.ts +123 -0
  389. package/dist/verify/verification-baseline-run.d.ts.map +1 -0
  390. package/dist/verify/verification-baseline-run.js +386 -0
  391. package/dist/verify/verification-baseline-run.js.map +1 -0
  392. package/dist/verify/verification-baseline.d.ts +75 -33
  393. package/dist/verify/verification-baseline.d.ts.map +1 -1
  394. package/dist/verify/verification-baseline.js +92 -105
  395. package/dist/verify/verification-baseline.js.map +1 -1
  396. package/dist/verify/verification-checkout.d.ts +13 -0
  397. package/dist/verify/verification-checkout.d.ts.map +1 -1
  398. package/dist/verify/verification-checkout.js +39 -2
  399. package/dist/verify/verification-checkout.js.map +1 -1
  400. package/dist/verify/verification-commit-sharing.d.ts +84 -0
  401. package/dist/verify/verification-commit-sharing.d.ts.map +1 -0
  402. package/dist/verify/verification-commit-sharing.js +416 -0
  403. package/dist/verify/verification-commit-sharing.js.map +1 -0
  404. package/dist/verify/verification-config.d.ts.map +1 -1
  405. package/dist/verify/verification-config.js +12 -2
  406. package/dist/verify/verification-config.js.map +1 -1
  407. package/dist/verify/verification-default-on.d.ts +27 -11
  408. package/dist/verify/verification-default-on.d.ts.map +1 -1
  409. package/dist/verify/verification-default-on.js +155 -29
  410. package/dist/verify/verification-default-on.js.map +1 -1
  411. package/dist/verify/verification-deps-default.d.ts.map +1 -1
  412. package/dist/verify/verification-deps-default.js +49 -42
  413. package/dist/verify/verification-deps-default.js.map +1 -1
  414. package/dist/verify/verification-deps.d.ts +69 -4
  415. package/dist/verify/verification-deps.d.ts.map +1 -1
  416. package/dist/verify/verification-deterministic.d.ts +15 -2
  417. package/dist/verify/verification-deterministic.d.ts.map +1 -1
  418. package/dist/verify/verification-deterministic.js +12 -3
  419. package/dist/verify/verification-deterministic.js.map +1 -1
  420. package/dist/verify/verification-diagnostics.d.ts +16 -0
  421. package/dist/verify/verification-diagnostics.d.ts.map +1 -0
  422. package/dist/verify/verification-diagnostics.js +219 -0
  423. package/dist/verify/verification-diagnostics.js.map +1 -0
  424. package/dist/verify/verification-engine.d.ts +12 -8
  425. package/dist/verify/verification-engine.d.ts.map +1 -1
  426. package/dist/verify/verification-engine.js +110 -92
  427. package/dist/verify/verification-engine.js.map +1 -1
  428. package/dist/verify/verification-evidence-unavailable-feedback.d.ts +2 -1
  429. package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
  430. package/dist/verify/verification-evidence-unavailable-feedback.js +13 -4
  431. package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
  432. package/dist/verify/verification-feedback.d.ts +21 -34
  433. package/dist/verify/verification-feedback.d.ts.map +1 -1
  434. package/dist/verify/verification-feedback.js +37 -88
  435. package/dist/verify/verification-feedback.js.map +1 -1
  436. package/dist/verify/verification-gate-stages.d.ts +110 -0
  437. package/dist/verify/verification-gate-stages.d.ts.map +1 -0
  438. package/dist/verify/verification-gate-stages.js +179 -0
  439. package/dist/verify/verification-gate-stages.js.map +1 -0
  440. package/dist/verify/verification-history-reset.d.ts +61 -0
  441. package/dist/verify/verification-history-reset.d.ts.map +1 -0
  442. package/dist/verify/verification-history-reset.js +90 -0
  443. package/dist/verify/verification-history-reset.js.map +1 -0
  444. package/dist/verify/verification-manifest.d.ts.map +1 -1
  445. package/dist/verify/verification-manifest.js +2 -1
  446. package/dist/verify/verification-manifest.js.map +1 -1
  447. package/dist/verify/verification-rework-messages.d.ts +19 -0
  448. package/dist/verify/verification-rework-messages.d.ts.map +1 -0
  449. package/dist/verify/verification-rework-messages.js +52 -0
  450. package/dist/verify/verification-rework-messages.js.map +1 -0
  451. package/dist/worktree/install-inputs.d.ts +89 -0
  452. package/dist/worktree/install-inputs.d.ts.map +1 -0
  453. package/dist/worktree/install-inputs.js +625 -0
  454. package/dist/worktree/install-inputs.js.map +1 -0
  455. package/dist/worktree/install-script-effects.d.ts +30 -0
  456. package/dist/worktree/install-script-effects.d.ts.map +1 -0
  457. package/dist/worktree/install-script-effects.js +524 -0
  458. package/dist/worktree/install-script-effects.js.map +1 -0
  459. package/dist/worktree/install-script-tokens.d.ts +57 -0
  460. package/dist/worktree/install-script-tokens.d.ts.map +1 -0
  461. package/dist/worktree/install-script-tokens.js +299 -0
  462. package/dist/worktree/install-script-tokens.js.map +1 -0
  463. package/dist/worktree/provision.d.ts +27 -4
  464. package/dist/worktree/provision.d.ts.map +1 -1
  465. package/dist/worktree/provision.js +46 -7
  466. package/dist/worktree/provision.js.map +1 -1
  467. package/dist/worktree/safety.d.ts +11 -0
  468. package/dist/worktree/safety.d.ts.map +1 -1
  469. package/dist/worktree/safety.js +20 -3
  470. package/dist/worktree/safety.js.map +1 -1
  471. package/dist/worktree/verify-interlock.d.ts.map +1 -1
  472. package/dist/worktree/verify-interlock.js +3 -1
  473. package/dist/worktree/verify-interlock.js.map +1 -1
  474. package/dist/worktree/worktree-package-provisioning.d.ts +75 -0
  475. package/dist/worktree/worktree-package-provisioning.d.ts.map +1 -0
  476. package/dist/worktree/worktree-package-provisioning.js +362 -0
  477. package/dist/worktree/worktree-package-provisioning.js.map +1 -0
  478. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-inputs.js","sourceRoot":"","sources":["../../src/worktree/install-inputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /** A path a script reads, relative to its working directory (the package) or its own directory. */
2
+ export interface ScriptRead {
3
+ anchor: 'cwd' | 'script';
4
+ path: string;
5
+ }
6
+ /** Everything a script was followed to. */
7
+ export interface ResolvedScriptEffects {
8
+ reads: ScriptRead[];
9
+ /** Commands it spawns, as shell command strings (argv words single-quoted). */
10
+ commands: string[];
11
+ /** It reaches the environment, so it reads its package.json (module doc). */
12
+ readsManifest: boolean;
13
+ }
14
+ export type ScriptEffects = ResolvedScriptEffects | {
15
+ unresolvable: string;
16
+ };
17
+ /**
18
+ * The builtins a scanned script may import: those whose file access the scan
19
+ * follows (fs, child_process, process) and those with none an install reads
20
+ * (pure computation, streams over a handle opened elsewhere, the network). Any
21
+ * other builtin (module, vm, worker_threads, sqlite, ...) is unresolvable.
22
+ */
23
+ export declare const FOLLOWED_BUILTIN_MODULES: ReadonlySet<string>;
24
+ /**
25
+ * The reads, spawns and environment reach of one script's source (module doc),
26
+ * or why the scan cannot follow them. `fileName` is the script's basename (what
27
+ * `__filename` names under its directory).
28
+ */
29
+ export declare function readScriptEffects(source: string, fileName: string): ScriptEffects;
30
+ //# sourceMappingURL=install-script-effects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-script-effects.d.ts","sourceRoot":"","sources":["../../src/worktree/install-script-effects.ts"],"names":[],"mappings":"AA+DA,mGAAmG;AACnG,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,qBAAqB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAKvD,CAAC;AA+cH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAUjF"}
@@ -0,0 +1,524 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/worktree/install-inputs.test.ts
3
+ // PINNED-BY-END
4
+ /**
5
+ * What an install script's own code does with files, child processes and the
6
+ * environment: the effects the install-input model (worktree/install-inputs.ts)
7
+ * follows beyond a script's imports and literal tokens.
8
+ *
9
+ * Why. A literal token names a file only when the path is spelled out. A script
10
+ * that computes its path (`const name = ['config', '.json'].join('');
11
+ * fs.readFileSync(name)`) or reads package metadata through the environment
12
+ * (`process.env.npm_package_config_mode`) consumed an input the model never saw:
13
+ * the data file or manifest changed behind an unchanged script, the fingerprint
14
+ * stayed current and parity stayed comparable.
15
+ *
16
+ * The scan reads the script's tokens (worktree/install-script-tokens.ts) and
17
+ * follows, soundly or not at all:
18
+ * - READS: every call of a builtin that reads, lists, stats or copies a path
19
+ * (fs / fs/promises, process.loadEnvFile). The path argument must resolve
20
+ * statically -- string literals and templates, `+`, a `const` bound once,
21
+ * a parameter every call site of its named function passes a resolvable
22
+ * value, `path` join/resolve/dirname, `__dirname`/`__filename`,
23
+ * `import.meta` dirname/filename, `process.cwd()` -- to paths under the
24
+ * working directory or the script's directory. A path under `os.homedir()`,
25
+ * `os.tmpdir()` or an absolute literal is host state, not a tracked input;
26
+ * - SPAWNS: every child_process call. Its command and arguments must resolve
27
+ * to literal strings, which the model follows as lifecycle commands; a
28
+ * `cwd`, `shell` or node-flag option, or options it cannot see, do not;
29
+ * - THE ENVIRONMENT: any reach into it (`env`, `npm_package_*`, `process` as
30
+ * a value) consumes the package's whole package.json. npm exports the
31
+ * manifest to lifecycle scripts as npm_package_* (and its path as
32
+ * npm_package_json); every other variable npm derives from a tracked file
33
+ * comes from .npmrc, already a manifest input.
34
+ *
35
+ * Fail closed: anything else touching those capabilities is UNRESOLVABLE --
36
+ * a path or command that does not resolve, a builtin I/O function used other
37
+ * than in a direct call (aliased, passed as a value, bound), the fs or
38
+ * child_process module used other than through a member, a glob or symlink,
39
+ * `require` used as a value, the global object or `Function`, `process[...]`,
40
+ * or source the tokenizer does not read. The caller reports it, naming the
41
+ * script and this reason.
42
+ *
43
+ * @module worktree/install-script-effects
44
+ */
45
+ import { posix } from 'node:path';
46
+ import { VARIABLE_DECLARES, bindingsOf, expressionEnd, isBinding, isProperty, isPunct, isWord, itemsOf, readScript, wordIn, } from './install-script-tokens.js';
47
+ /**
48
+ * The builtins a scanned script may import: those whose file access the scan
49
+ * follows (fs, child_process, process) and those with none an install reads
50
+ * (pure computation, streams over a handle opened elsewhere, the network). Any
51
+ * other builtin (module, vm, worker_threads, sqlite, ...) is unresolvable.
52
+ */
53
+ export const FOLLOWED_BUILTIN_MODULES = new Set([
54
+ 'fs', 'fs/promises', 'child_process', 'process', 'path', 'path/posix', 'os', 'url', 'util', 'util/types',
55
+ 'crypto', 'events', 'assert', 'assert/strict', 'buffer', 'string_decoder', 'querystring', 'stream',
56
+ 'stream/promises', 'zlib', 'timers', 'timers/promises', 'console', 'perf_hooks', 'readline',
57
+ 'readline/promises', 'http', 'https', 'net', 'dns', 'dns/promises', 'tls', 'tty', 'diagnostics_channel',
58
+ ]);
59
+ /** The builtin modules whose functions the scan interprets, by specifier. */
60
+ const BOUND_MODULES = new Map([
61
+ ['fs', 'fs'], ['fs/promises', 'fs'], ['path', 'path'], ['path/posix', 'path'], ['os', 'os'],
62
+ ['child_process', 'child_process'], ['process', 'process'], ['url', 'url'],
63
+ ]);
64
+ const moduleOf = (token) => (token?.kind === 'string' ? BOUND_MODULES.get(token.value.replace(/^node:/, '')) : undefined);
65
+ /** The plain (`a`) and aliased (`a as b` / `a: b`) names of a `{...}` import or destructuring list, as [local, exported]. */
66
+ function specifiers(script, open, alias) {
67
+ const found = [];
68
+ for (const { start, end } of itemsOf(script, open)) {
69
+ const [name, word, local] = script.tokens.slice(start, end);
70
+ if (end - start === 1 && name.kind === 'ident')
71
+ found.push([name.value, name.value]);
72
+ else if (end - start === 3 && name.kind === 'ident' && word.value === alias && local.kind === 'ident')
73
+ found.push([local.value, name.value]);
74
+ }
75
+ return found;
76
+ }
77
+ function importBindings(script, index) {
78
+ const { tokens, close } = script;
79
+ const locals = [];
80
+ let at = index + 1;
81
+ if (tokens[at]?.kind === 'ident' && !isWord(tokens[at], 'from')) {
82
+ locals.push([tokens[at].value, 'default']);
83
+ at += isPunct(tokens[at + 1], ',') ? 2 : 1;
84
+ }
85
+ if (isPunct(tokens[at], '*') && isWord(tokens[at + 1], 'as') && tokens[at + 2]?.kind === 'ident') {
86
+ locals.push([tokens[at + 2].value, '*']);
87
+ at += 3;
88
+ }
89
+ else if (isPunct(tokens[at], '{')) {
90
+ locals.push(...specifiers(script, at, 'as'));
91
+ at = close[at] + 1;
92
+ }
93
+ const module = isWord(tokens[at], 'from') ? moduleOf(tokens[at + 1]) : undefined;
94
+ return module === undefined ? [] : locals.map(([local, name]) => [local, { module, name }]);
95
+ }
96
+ function requireBindings(script, index) {
97
+ const { tokens, open } = script;
98
+ const module = isPunct(tokens[index + 1], '(') && script.close[index + 1] === index + 3 ? moduleOf(tokens[index + 2]) : undefined;
99
+ if (module === undefined || !isPunct(tokens[index - 1], '='))
100
+ return [];
101
+ const member = isPunct(tokens[index + 4], '.') && tokens[index + 5]?.kind === 'ident' ? tokens[index + 5].value : '*';
102
+ const target = tokens[index - 2];
103
+ if (target?.kind === 'ident' && wordIn(tokens[index - 3], VARIABLE_DECLARES))
104
+ return [[target.value, { module, name: member }]];
105
+ if (!isPunct(target, '}') || member !== '*' || !wordIn(tokens[open[index - 2] - 1], VARIABLE_DECLARES))
106
+ return [];
107
+ return specifiers(script, open[index - 2], ':').map(([local, name]) => [local, { module, name }]);
108
+ }
109
+ /** Every variable bound exactly once to a followed builtin module or one of its exports. */
110
+ function readModuleBindings(script) {
111
+ const found = [];
112
+ for (const [word, read] of [['import', importBindings], ['require', requireBindings]]) {
113
+ for (const index of script.variables.get(word) ?? [])
114
+ found.push(...read(script, index));
115
+ }
116
+ return new Map(found.filter(([local]) => bindingsOf(script, local).length === 1));
117
+ }
118
+ /** `a` or `a.b` or `a.b.c` (`?.` too) between `start` and `end`, as names; null for any other shape. */
119
+ function memberChain(tokens, start, end) {
120
+ const parts = tokens.slice(start, end);
121
+ const chain = parts.length % 2 === 1 && parts.every((token, offset) => (offset % 2 === 0
122
+ ? token.kind === 'ident'
123
+ : isPunct(token, '.') || isPunct(token, '?.')));
124
+ return chain ? parts.filter((_, offset) => offset % 2 === 0).map((token) => token.value) : null;
125
+ }
126
+ const NAMESPACES = new Set(['promises', 'posix']);
127
+ /** The builtin export `names` (a member chain) denotes, or null. `process` counts while nothing rebinds it. */
128
+ function exportOf(context, names) {
129
+ const [head, ...members] = names;
130
+ const bound = context.modules.get(head)
131
+ ?? (head === 'process' && bindingsOf(context.script, 'process').length === 0 ? { module: 'process', name: '*' } : undefined);
132
+ if (bound === undefined)
133
+ return null;
134
+ const whole = bound.name === '*' || bound.name === 'default';
135
+ if (members.length === 0)
136
+ return whole ? null : bound;
137
+ if (members.length === 1 && (whole || NAMESPACES.has(bound.name)))
138
+ return { module: bound.module, name: members[0] };
139
+ if (members.length === 2 && whole && NAMESPACES.has(members[0]))
140
+ return { module: bound.module, name: members[1] };
141
+ return null;
142
+ }
143
+ /** Bounds on the alternatives one value carries and on nested evaluation. */
144
+ const MAX_VALUES = 32;
145
+ const MAX_DEPTH = 24;
146
+ const OUTSIDE = { anchor: 'outside', text: '' };
147
+ function normalizeRel(path) {
148
+ const normalized = posix.normalize(`./${path.replace(/^\/+/, '')}`).replace(/\/+$/, '');
149
+ return normalized === '.' ? '' : normalized;
150
+ }
151
+ /** A plain string used as a path: absolute is outside the tree, anything else is under the working directory. */
152
+ function asPath(part) {
153
+ if (part.anchor !== 'none')
154
+ return part;
155
+ return part.text.startsWith('/') ? OUTSIDE : { anchor: 'cwd', text: normalizeRel(part.text) };
156
+ }
157
+ /** `sub` under an anchored path; null when it climbs out of an outside path (it could re-enter the tree). */
158
+ function descend(base, sub) {
159
+ if (base.anchor === 'outside')
160
+ return sub.split('/').includes('..') ? null : base;
161
+ return { anchor: base.anchor, text: normalizeRel(`${base.text}/${sub}`) };
162
+ }
163
+ function product(values) {
164
+ let combos = [[]];
165
+ for (const value of values) {
166
+ combos = combos.flatMap((combo) => value.texts.map((text) => [...combo, { anchor: value.anchor, text }]));
167
+ if (combos.length > MAX_VALUES)
168
+ return null;
169
+ }
170
+ return combos;
171
+ }
172
+ /** Alternatives as one value: all known and sharing one anchor, else null. */
173
+ function collect(results) {
174
+ const known = results.filter((result) => result !== null);
175
+ if (known.length === 0 || known.length !== results.length || known.some((result) => result.anchor !== known[0].anchor))
176
+ return null;
177
+ return { anchor: known[0].anchor, texts: [...new Set(known.map((result) => result.text))] };
178
+ }
179
+ function concatSingles(left, right) {
180
+ if (right.anchor !== 'none')
181
+ return left.anchor === 'none' && left.text === '' ? right : null;
182
+ if (left.anchor === 'none')
183
+ return { anchor: 'none', text: left.text + right.text };
184
+ return right.text === '' || right.text.startsWith('/') ? descend(left, right.text) : null;
185
+ }
186
+ function concatValues(left, right) {
187
+ const combos = left && right ? product([left, right]) : null;
188
+ return combos && collect(combos.map(([head, tail]) => concatSingles(head, tail)));
189
+ }
190
+ function joinParts([first, ...rest]) {
191
+ if (first === undefined || rest.some((part) => part.anchor !== 'none'))
192
+ return null;
193
+ return rest.reduce((base, part) => base && descend(base, part.text), asPath(first));
194
+ }
195
+ function resolveParts(parts) {
196
+ return parts.reduce((base, part) => (part.anchor !== 'none' || part.text.startsWith('/')
197
+ ? asPath(part)
198
+ : base && descend(base, part.text)), { anchor: 'cwd', text: '' });
199
+ }
200
+ function dirnameOf(part) {
201
+ if (part.anchor === 'none')
202
+ return { anchor: 'none', text: posix.dirname(part.text) };
203
+ return part.anchor === 'outside' ? part : { anchor: part.anchor, text: normalizeRel(`${part.text}/..`) };
204
+ }
205
+ const PATH_FUNCTIONS = new Map([
206
+ ['join', joinParts],
207
+ ['resolve', resolveParts],
208
+ ['dirname', (parts) => (parts.length === 1 ? dirnameOf(parts[0]) : null)],
209
+ ]);
210
+ const textValue = (token) => (token.value.includes('\\') ? null : { anchor: 'none', texts: [token.value] });
211
+ /** `import.meta.<property>` exactly. */
212
+ const isImportMeta = (tokens, { start, end }, property) => memberChain(tokens, start, end)?.join('.') === `import.meta.${property}`;
213
+ function evaluateCall(context, callee, args) {
214
+ const key = `${callee.module}.${callee.name}`;
215
+ if (key === 'os.homedir' || key === 'os.tmpdir')
216
+ return args.length === 0 ? { anchor: 'outside', texts: [''] } : null;
217
+ if (key === 'process.cwd')
218
+ return args.length === 0 ? { anchor: 'cwd', texts: [''] } : null;
219
+ if (key === 'url.fileURLToPath') {
220
+ return args.length === 1 && isImportMeta(context.script.tokens, args[0], 'url') ? { anchor: 'script', texts: [context.fileName] } : null;
221
+ }
222
+ const combine = callee.module === 'path' ? PATH_FUNCTIONS.get(callee.name) : undefined;
223
+ const values = args.map((arg) => evaluate(context, arg.start, arg.end));
224
+ const combos = combine && values.length > 0 && values.every((value) => value !== null) ? product(values) : null;
225
+ return combine && combos ? collect(combos.map(combine)) : null;
226
+ }
227
+ function evaluateTemplate(context, head, end) {
228
+ const { tokens, close } = context.script;
229
+ let value = textValue(tokens[head]);
230
+ let segment = head;
231
+ while (value !== null && tokens[segment].kind !== 'tplTail') {
232
+ const next = close[segment];
233
+ value = concatValues(concatValues(value, evaluate(context, segment + 1, next)), textValue(tokens[next]));
234
+ segment = next;
235
+ }
236
+ return segment === end - 1 ? value : null;
237
+ }
238
+ function evaluateName(context, name) {
239
+ const unbound = bindingsOf(context.script, name).length === 0;
240
+ if (unbound && name === '__dirname')
241
+ return { anchor: 'script', texts: [''] };
242
+ if (unbound && name === '__filename')
243
+ return { anchor: 'script', texts: [context.fileName] };
244
+ return resolveIdentifier(context, name);
245
+ }
246
+ function evaluateTerm(context, start, end) {
247
+ const { tokens } = context.script;
248
+ const first = tokens[start];
249
+ if (end - start === 1 && (first.kind === 'string' || first.kind === 'template'))
250
+ return textValue(first);
251
+ if (end - start === 1 && first.kind === 'ident')
252
+ return evaluateName(context, first.value);
253
+ if (first.kind === 'tplHead')
254
+ return evaluateTemplate(context, start, end);
255
+ if (isImportMeta(tokens, { start, end }, 'dirname'))
256
+ return { anchor: 'script', texts: [''] };
257
+ if (isImportMeta(tokens, { start, end }, 'filename'))
258
+ return { anchor: 'script', texts: [context.fileName] };
259
+ const open = isPunct(tokens[end - 1], ')') ? context.script.open[end - 1] : -1;
260
+ const chain = open > start ? memberChain(tokens, start, open) : null;
261
+ const callee = chain && exportOf(context, chain);
262
+ return callee ? evaluateCall(context, callee, itemsOf(context.script, open)) : null;
263
+ }
264
+ /** The static value of the expression in [start, end), or null when it has none the scan can name. */
265
+ function evaluate(context, start, end) {
266
+ if (start >= end || context.depth > MAX_DEPTH)
267
+ return null;
268
+ const inner = { ...context, depth: context.depth + 1 };
269
+ const { tokens, close, parent } = context.script;
270
+ if (isPunct(tokens[start], '(') && close[start] === end - 1)
271
+ return evaluate(inner, start + 1, end - 1);
272
+ const terms = [];
273
+ let termStart = start;
274
+ for (let at = start; at < end; at++) {
275
+ if (parent[at] !== parent[start] || !isPunct(tokens[at], '+'))
276
+ continue;
277
+ terms.push({ start: termStart, end: at });
278
+ termStart = at + 1;
279
+ }
280
+ if (terms.length === 0)
281
+ return evaluateTerm(inner, start, end);
282
+ terms.push({ start: termStart, end });
283
+ return terms.reduce((sum, term) => concatValues(sum, evaluate(inner, term.start, term.end)), { anchor: 'none', texts: [''] });
284
+ }
285
+ /** The function a simple parameter list at `group` belongs to (`const F = (...) =>`, `function F(...)`), unless it is exported. */
286
+ function functionName(script, group) {
287
+ const { tokens, close } = script;
288
+ let nameAt = -1;
289
+ if (isPunct(tokens[close[group] + 1], '=>')) {
290
+ const assign = isWord(tokens[group - 1], 'async') ? group - 2 : group - 1;
291
+ if (isPunct(tokens[assign], '=') && isWord(tokens[assign - 2], 'const'))
292
+ nameAt = assign - 1;
293
+ }
294
+ else if (isWord(tokens[group - 2], 'function')) {
295
+ nameAt = group - 1;
296
+ }
297
+ const exported = tokens.slice(Math.max(0, nameAt - 4), Math.max(0, nameAt)).some((token) => isWord(token, 'export'));
298
+ return nameAt >= 0 && tokens[nameAt].kind === 'ident' && !exported ? tokens[nameAt].value : null;
299
+ }
300
+ /** A parameter's value: what every call of its named function passes in its position, when each call site resolves. */
301
+ function resolveParameter(context, at) {
302
+ const { tokens, parent } = context.script;
303
+ const group = parent[at];
304
+ const simple = group >= 0 && isPunct(tokens[group], '(')
305
+ && (isPunct(tokens[at - 1], '(') || isPunct(tokens[at - 1], ','))
306
+ && (isPunct(tokens[at + 1], ')') || isPunct(tokens[at + 1], ','));
307
+ const callee = simple ? functionName(context.script, group) : null;
308
+ if (callee === null)
309
+ return null;
310
+ const position = itemsOf(context.script, group).findIndex((item) => item.start === at);
311
+ const uses = (context.script.variables.get(callee) ?? []).filter((index) => !isBinding(context.script, index));
312
+ if (bindingsOf(context.script, callee).length !== 1 || uses.length === 0 || uses.some((index) => !isPunct(tokens[index + 1], '(')))
313
+ return null;
314
+ return collectValues(uses.map((index) => {
315
+ const argument = itemsOf(context.script, index + 1)[position];
316
+ return argument === undefined ? null : evaluate(context, argument.start, argument.end);
317
+ }));
318
+ }
319
+ function collectValues(values) {
320
+ const known = values.filter((value) => value !== null);
321
+ if (known.length !== values.length)
322
+ return null;
323
+ return collect(known.flatMap((value) => value.texts.map((text) => ({ anchor: value.anchor, text }))));
324
+ }
325
+ /** A variable's value: its one `const` initializer, or its function's call sites; null for anything else. */
326
+ function resolveIdentifier(context, name) {
327
+ const { script } = context;
328
+ const bindings = bindingsOf(script, name);
329
+ if (script.opaqueScope || bindings.length !== 1)
330
+ return null;
331
+ const [at] = bindings;
332
+ if (isWord(script.tokens[at - 1], 'const') && isPunct(script.tokens[at + 1], '=')) {
333
+ return evaluate(context, at + 2, expressionEnd(script, at + 2));
334
+ }
335
+ return resolveParameter(context, at);
336
+ }
337
+ // ---------------------------------------------------------------------------
338
+ // Effects
339
+ // ---------------------------------------------------------------------------
340
+ /** Builtin functions that read, list, stat or copy the path in their first argument. */
341
+ const PATH_READS = new Set([
342
+ 'readFile', 'readFileSync', 'readdir', 'readdirSync', 'opendir', 'opendirSync', 'createReadStream', 'exists',
343
+ 'existsSync', 'stat', 'statSync', 'lstat', 'lstatSync', 'statfs', 'statfsSync', 'access', 'accessSync', 'realpath',
344
+ 'realpathSync', 'readlink', 'readlinkSync', 'open', 'openSync', 'openAsBlob', 'watch', 'watchFile', 'cp', 'cpSync',
345
+ 'copyFile', 'copyFileSync', 'rename', 'renameSync', 'link', 'linkSync', 'loadEnvFile',
346
+ ]);
347
+ /** Builtin functions whose file access the scan does not enumerate: a pattern, a link target resolved later. */
348
+ const OPAQUE_ACCESS = new Set(['glob', 'globSync', 'symlink', 'symlinkSync']);
349
+ const SHELL_SPAWNS = new Set(['exec', 'execSync']);
350
+ const ARGV_SPAWNS = new Set(['execFile', 'execFileSync', 'spawn', 'spawnSync', 'fork']);
351
+ /** Spawn options that change what a command resolves against or how it runs. */
352
+ const UNFOLLOWED_SPAWN_OPTIONS = new Set(['cwd', 'shell', 'argv0', 'execPath', 'execArgv']);
353
+ /** Names that reach code or the environment around every declaration. */
354
+ const GLOBAL_REACH = new Set(['globalThis', 'global', 'Function']);
355
+ /** The builtin module an effect function must come from. */
356
+ function effectModule(name) {
357
+ if (name === 'loadEnvFile')
358
+ return 'process';
359
+ return SHELL_SPAWNS.has(name) || ARGV_SPAWNS.has(name) ? 'child_process' : 'fs';
360
+ }
361
+ /** The delimiters a token's raw value is rendered between. */
362
+ const DELIMITERS = {
363
+ string: ["'", "'"], template: ['`', '`'], tplHead: ['`', '${'], tplMiddle: ['}', '${'], tplTail: ['}', '`'],
364
+ };
365
+ /** Source text for a message, clipped. */
366
+ function render(tokens) {
367
+ const text = tokens.map((token, index) => {
368
+ const spaced = index > 0 && /^[\w$]/.test(token.value) && /[\w$]$/.test(tokens[index - 1].value) ? ' ' : '';
369
+ const [open, close] = DELIMITERS[token.kind] ?? ['', ''];
370
+ return `${spaced}${open}${token.value}${close}`;
371
+ }).join('');
372
+ return text.length > 120 ? `${text.slice(0, 117)}...` : text;
373
+ }
374
+ /** A plain-text value's alternatives, or null. */
375
+ const plainTexts = (value) => (value?.anchor === 'none' ? value.texts : null);
376
+ /** Options (and callbacks) a spawn passes after its command: object literals naming no unfollowed option, or functions. */
377
+ function followedSpawnOptions(script, slices) {
378
+ return slices.every(({ start, end }) => {
379
+ const tokens = script.tokens.slice(start, end);
380
+ if (isWord(tokens[0], 'function') || tokens.some((token) => isPunct(token, '=>')))
381
+ return true;
382
+ return isPunct(tokens[0], '{') && script.close[start] === end - 1 && !tokens.some((token) => wordIn(token, UNFOLLOWED_SPAWN_OPTIONS));
383
+ });
384
+ }
385
+ /** The commands a spawn runs, as shell strings; null when its program, arguments or options do not resolve. */
386
+ function spawnedCommands(context, name, args) {
387
+ const { script } = context;
388
+ const [first, second] = args;
389
+ if (first === undefined)
390
+ return null;
391
+ if (SHELL_SPAWNS.has(name))
392
+ return followedSpawnOptions(script, args.slice(1)) ? plainTexts(evaluate(context, first.start, first.end)) : null;
393
+ const listed = second !== undefined && isPunct(script.tokens[second.start], '[') && script.close[second.start] === second.end - 1;
394
+ if (!followedSpawnOptions(script, args.slice(listed ? 2 : 1)))
395
+ return null;
396
+ const words = [first, ...(listed ? itemsOf(script, second.start) : [])].map((slice) => evaluate(context, slice.start, slice.end));
397
+ if (words.some((word) => plainTexts(word) === null))
398
+ return null;
399
+ const argv = product([...(name === 'fork' ? [{ anchor: 'none', texts: ['node'] }] : []), ...words]);
400
+ if (argv === null || argv.some((combo) => combo.some((word) => word.text.includes("'"))))
401
+ return null;
402
+ return argv.map((combo) => combo.map((word) => `'${word.text}'`).join(' '));
403
+ }
404
+ /** The paths a read's first argument names; null when it does not resolve. */
405
+ function readPaths(context, name, args) {
406
+ const [first] = args;
407
+ const defaulted = name === 'loadEnvFile' ? { anchor: 'none', texts: ['.env'] } : null;
408
+ const value = first === undefined ? defaulted : evaluate(context, first.start, first.end);
409
+ if (value === null)
410
+ return null;
411
+ const reads = [];
412
+ for (const text of value.texts) {
413
+ const path = asPath({ anchor: value.anchor, text });
414
+ if (path.anchor === 'cwd' || path.anchor === 'script')
415
+ reads.push({ anchor: path.anchor, path: path.text });
416
+ }
417
+ return reads;
418
+ }
419
+ /** Whether the name at `index` is a specifier of an import or `require` destructuring list, and whether it is renamed there. */
420
+ function specifierForm(script, index) {
421
+ const { tokens, close } = script;
422
+ const group = script.parent[index];
423
+ if (group < 0 || !isPunct(tokens[group], '{') || !(isPunct(tokens[index - 1], '{') || isPunct(tokens[index - 1], ',')))
424
+ return null;
425
+ const importList = isWord(tokens[group - 1], 'import') || (isPunct(tokens[group - 1], ',') && isWord(tokens[group - 3], 'import'));
426
+ const requireList = wordIn(tokens[group - 1], VARIABLE_DECLARES) && isPunct(tokens[close[group] + 1], '=') && isWord(tokens[close[group] + 2], 'require');
427
+ if (!importList && !requireList)
428
+ return null;
429
+ if (isPunct(tokens[index + 1], ',') || isPunct(tokens[index + 1], '}'))
430
+ return 'plain';
431
+ return isWord(tokens[index + 1], 'as') || isPunct(tokens[index + 1], ':') ? 'aliased' : null;
432
+ }
433
+ /** A builtin file-access or spawn function's occurrence: followed into `effects`, or why it cannot be. */
434
+ function followEffect(context, index, effects) {
435
+ const { script } = context;
436
+ const { tokens } = script;
437
+ const name = tokens[index].value;
438
+ const form = specifierForm(script, index);
439
+ if (form === 'plain')
440
+ return null;
441
+ let start = index;
442
+ while (isProperty(tokens, start) && tokens[start - 2]?.kind === 'ident')
443
+ start -= 2;
444
+ const chain = isPunct(tokens[index + 1], '(') && !isProperty(tokens, start) ? memberChain(tokens, start, index + 1) : null;
445
+ if (form === 'aliased' || chain === null)
446
+ return `uses \`${name}\` other than in a direct call`;
447
+ const call = render(tokens.slice(start, script.close[index + 1] + 1));
448
+ const callee = exportOf(context, chain);
449
+ if (callee?.name !== name || callee.module !== effectModule(name))
450
+ return `calls \`${call}\`, which the scan does not identify as the builtin it follows`;
451
+ if (OPAQUE_ACCESS.has(name))
452
+ return `calls \`${call}\`, whose file access the scan does not enumerate`;
453
+ const args = itemsOf(script, index + 1);
454
+ if (PATH_READS.has(name)) {
455
+ const reads = readPaths(context, name, args);
456
+ if (reads === null)
457
+ return `reads a path the scan cannot resolve to tracked files (\`${call}\`)`;
458
+ effects.reads.push(...reads);
459
+ return null;
460
+ }
461
+ const commands = spawnedCommands(context, name, args);
462
+ if (commands === null)
463
+ return `spawns a command the scan cannot resolve (\`${call}\`)`;
464
+ effects.commands.push(...commands);
465
+ return null;
466
+ }
467
+ /** A module object (fs, child_process, fs.promises) used other than through a member: its functions escape the scan. */
468
+ function escapesModule(context, index) {
469
+ const { tokens } = context.script;
470
+ const token = tokens[index];
471
+ const next = tokens[index + 1];
472
+ if (isPunct(next, '.') || isPunct(next, '?.') || isBinding(context.script, index) || specifierForm(context.script, index) !== null)
473
+ return false;
474
+ if (token.value === 'promises')
475
+ return true;
476
+ const bound = !isProperty(tokens, index) ? context.modules.get(token.value) : undefined;
477
+ return bound !== undefined && (bound.module === 'fs' || bound.module === 'child_process') && ['*', 'default', 'promises'].includes(bound.name);
478
+ }
479
+ /** Follow one token: an environment reach marks the manifest read; returns why it cannot be followed, or null. */
480
+ function followToken(context, index, effects) {
481
+ const { tokens } = context.script;
482
+ const token = tokens[index];
483
+ if (token.value.includes('npm_package_') || (token.kind === 'ident' && token.value === 'env'))
484
+ effects.readsManifest = true;
485
+ if (token.kind !== 'ident')
486
+ return null;
487
+ const variable = !isProperty(tokens, index);
488
+ const next = tokens[index + 1];
489
+ if (variable && GLOBAL_REACH.has(token.value))
490
+ return `reaches the global scope dynamically (\`${token.value}\`)`;
491
+ if (variable && token.value === 'require' && !isPunct(next, '(') && !isPunct(next, '.'))
492
+ return 'uses `require` other than as a call';
493
+ if (variable && token.value === 'process' && bindingsOf(context.script, 'process').length === 0) {
494
+ if (isPunct(next, '['))
495
+ return 'reads `process` members dynamically (`process[...]`)';
496
+ if (!isPunct(next, '.') && !isPunct(next, '?.'))
497
+ effects.readsManifest = true;
498
+ }
499
+ if (escapesModule(context, index))
500
+ return `uses \`${token.value}\` other than through a member, so its functions escape the scan`;
501
+ if (PATH_READS.has(token.value) || OPAQUE_ACCESS.has(token.value) || SHELL_SPAWNS.has(token.value) || ARGV_SPAWNS.has(token.value)) {
502
+ return followEffect(context, index, effects);
503
+ }
504
+ return null;
505
+ }
506
+ /**
507
+ * The reads, spawns and environment reach of one script's source (module doc),
508
+ * or why the scan cannot follow them. `fileName` is the script's basename (what
509
+ * `__filename` names under its directory).
510
+ */
511
+ export function readScriptEffects(source, fileName) {
512
+ const script = readScript(source);
513
+ if (!script)
514
+ return { unresolvable: 'is not source the scan can tokenize' };
515
+ const context = { script, modules: readModuleBindings(script), fileName, depth: 0 };
516
+ const effects = { reads: [], commands: [], readsManifest: false };
517
+ for (let index = 0; index < script.tokens.length; index++) {
518
+ const reason = followToken(context, index, effects);
519
+ if (reason !== null)
520
+ return { unresolvable: reason };
521
+ }
522
+ return effects;
523
+ }
524
+ //# sourceMappingURL=install-script-effects.js.map