@lumenflow/core 4.24.0 → 5.0.1

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 (430) hide show
  1. package/dist/arg-parser.d.ts.map +1 -1
  2. package/dist/arg-parser.js +16 -0
  3. package/dist/arg-parser.js.map +1 -1
  4. package/dist/atomic-merge.d.ts.map +1 -1
  5. package/dist/atomic-merge.js +25 -18
  6. package/dist/atomic-merge.js.map +1 -1
  7. package/dist/client-ids.d.ts +1 -15
  8. package/dist/client-ids.d.ts.map +1 -1
  9. package/dist/client-ids.js +4 -13
  10. package/dist/client-ids.js.map +1 -1
  11. package/dist/code-path-validator.d.ts.map +1 -1
  12. package/dist/code-path-validator.js +6 -3
  13. package/dist/code-path-validator.js.map +1 -1
  14. package/dist/config-contract.d.ts +1 -30
  15. package/dist/config-contract.d.ts.map +1 -1
  16. package/dist/config-contract.js +4 -60
  17. package/dist/config-contract.js.map +1 -1
  18. package/dist/constants/backlog-patterns.d.ts +1 -20
  19. package/dist/constants/backlog-patterns.d.ts.map +1 -1
  20. package/dist/constants/backlog-patterns.js +2 -23
  21. package/dist/constants/backlog-patterns.js.map +1 -1
  22. package/dist/constants/duration-constants.d.ts +1 -28
  23. package/dist/constants/duration-constants.d.ts.map +1 -1
  24. package/dist/constants/duration-constants.js +4 -28
  25. package/dist/constants/duration-constants.js.map +1 -1
  26. package/dist/constants/gate-constants.d.ts +1 -23
  27. package/dist/constants/gate-constants.d.ts.map +1 -1
  28. package/dist/constants/gate-constants.js +4 -23
  29. package/dist/constants/gate-constants.js.map +1 -1
  30. package/dist/constants/lock-constants.d.ts +1 -28
  31. package/dist/constants/lock-constants.d.ts.map +1 -1
  32. package/dist/constants/lock-constants.js +2 -28
  33. package/dist/constants/lock-constants.js.map +1 -1
  34. package/dist/core/tool.schemas.d.ts +11 -11
  35. package/dist/core/worktree-guard.js +2 -2
  36. package/dist/core/worktree-guard.js.map +1 -1
  37. package/dist/cycle-detector.d.ts +4 -48
  38. package/dist/cycle-detector.d.ts.map +1 -1
  39. package/dist/cycle-detector.js +4 -78
  40. package/dist/cycle-detector.js.map +1 -1
  41. package/dist/date-utils.d.ts +1 -65
  42. package/dist/date-utils.d.ts.map +1 -1
  43. package/dist/date-utils.js +4 -140
  44. package/dist/date-utils.js.map +1 -1
  45. package/dist/delegation-monitor.d.ts +2 -0
  46. package/dist/delegation-monitor.d.ts.map +1 -1
  47. package/dist/delegation-monitor.js +29 -2
  48. package/dist/delegation-monitor.js.map +1 -1
  49. package/dist/delegation-recovery.d.ts +36 -17
  50. package/dist/delegation-recovery.d.ts.map +1 -1
  51. package/dist/delegation-recovery.js +285 -82
  52. package/dist/delegation-recovery.js.map +1 -1
  53. package/dist/delegation-registry-schema.d.ts +257 -31
  54. package/dist/delegation-registry-schema.d.ts.map +1 -1
  55. package/dist/delegation-registry-schema.js +43 -34
  56. package/dist/delegation-registry-schema.js.map +1 -1
  57. package/dist/delegation-registry-store.d.ts +4 -128
  58. package/dist/delegation-registry-store.d.ts.map +1 -1
  59. package/dist/delegation-registry-store.js +39 -178
  60. package/dist/delegation-registry-store.js.map +1 -1
  61. package/dist/delegation-tree.d.ts +12 -20
  62. package/dist/delegation-tree.d.ts.map +1 -1
  63. package/dist/delegation-tree.js +40 -29
  64. package/dist/delegation-tree.js.map +1 -1
  65. package/dist/delivery-review-contract.d.ts +1 -1
  66. package/dist/delivery-review-contract.d.ts.map +1 -1
  67. package/dist/docs-layout-presets.d.ts +1 -30
  68. package/dist/docs-layout-presets.d.ts.map +1 -1
  69. package/dist/docs-layout-presets.js +4 -38
  70. package/dist/docs-layout-presets.js.map +1 -1
  71. package/dist/domain/context.schemas.d.ts +3 -3
  72. package/dist/domain/orchestration.constants.d.ts +1 -110
  73. package/dist/domain/orchestration.constants.d.ts.map +1 -1
  74. package/dist/domain/orchestration.constants.js +2 -127
  75. package/dist/domain/orchestration.constants.js.map +1 -1
  76. package/dist/domain/orchestration.schemas.d.ts +1 -306
  77. package/dist/domain/orchestration.schemas.d.ts.map +1 -1
  78. package/dist/domain/orchestration.schemas.js +2 -211
  79. package/dist/domain/orchestration.schemas.js.map +1 -1
  80. package/dist/domain/orchestration.types.d.ts +1 -133
  81. package/dist/domain/orchestration.types.d.ts.map +1 -1
  82. package/dist/domain/orchestration.types.js +2 -2
  83. package/dist/domain/orchestration.types.js.map +1 -1
  84. package/dist/domain/recovery.schemas.d.ts +3 -3
  85. package/dist/domain/validation.schemas.d.ts +4 -4
  86. package/dist/error-handler.d.ts +4 -173
  87. package/dist/error-handler.d.ts.map +1 -1
  88. package/dist/error-handler.js +4 -244
  89. package/dist/error-handler.js.map +1 -1
  90. package/dist/file-classifiers.d.ts.map +1 -1
  91. package/dist/file-classifiers.js +26 -0
  92. package/dist/file-classifiers.js.map +1 -1
  93. package/dist/git-adapter.d.ts +4 -448
  94. package/dist/git-adapter.d.ts.map +1 -1
  95. package/dist/git-adapter.js +4 -772
  96. package/dist/git-adapter.js.map +1 -1
  97. package/dist/git-context-extractor.d.ts +4 -98
  98. package/dist/git-context-extractor.d.ts.map +1 -1
  99. package/dist/git-context-extractor.js +4 -563
  100. package/dist/git-context-extractor.js.map +1 -1
  101. package/dist/git-staged-validator.d.ts +4 -29
  102. package/dist/git-staged-validator.d.ts.map +1 -1
  103. package/dist/git-staged-validator.js +4 -46
  104. package/dist/git-staged-validator.js.map +1 -1
  105. package/dist/incremental-lint.d.ts.map +1 -1
  106. package/dist/incremental-lint.js +3 -2
  107. package/dist/incremental-lint.js.map +1 -1
  108. package/dist/incremental-test.d.ts +1 -32
  109. package/dist/incremental-test.d.ts.map +1 -1
  110. package/dist/incremental-test.js +4 -61
  111. package/dist/incremental-test.js.map +1 -1
  112. package/dist/index.d.ts +3 -2
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +10 -2
  115. package/dist/index.js.map +1 -1
  116. package/dist/integration-target.d.ts +30 -0
  117. package/dist/integration-target.d.ts.map +1 -0
  118. package/dist/integration-target.js +51 -0
  119. package/dist/integration-target.js.map +1 -0
  120. package/dist/lane-checker.d.ts.map +1 -1
  121. package/dist/lane-checker.js +8 -0
  122. package/dist/lane-checker.js.map +1 -1
  123. package/dist/lumenflow-config-schema.d.ts +73 -29
  124. package/dist/lumenflow-config-schema.d.ts.map +1 -1
  125. package/dist/lumenflow-config-schema.js +1 -1
  126. package/dist/lumenflow-config-schema.js.map +1 -1
  127. package/dist/lumenflow-config.d.ts +10 -34
  128. package/dist/lumenflow-config.d.ts.map +1 -1
  129. package/dist/lumenflow-config.js +32 -142
  130. package/dist/lumenflow-config.js.map +1 -1
  131. package/dist/manual-test-validator.d.ts +1 -96
  132. package/dist/manual-test-validator.d.ts.map +1 -1
  133. package/dist/manual-test-validator.js +4 -245
  134. package/dist/manual-test-validator.js.map +1 -1
  135. package/dist/micro-worktree-shared.d.ts.map +1 -1
  136. package/dist/micro-worktree-shared.js +10 -9
  137. package/dist/micro-worktree-shared.js.map +1 -1
  138. package/dist/micro-worktree.d.ts.map +1 -1
  139. package/dist/micro-worktree.js +26 -23
  140. package/dist/micro-worktree.js.map +1 -1
  141. package/dist/normalize-config-keys.d.ts +1 -10
  142. package/dist/normalize-config-keys.d.ts.map +1 -1
  143. package/dist/normalize-config-keys.js +7 -73
  144. package/dist/normalize-config-keys.js.map +1 -1
  145. package/dist/object-guards.d.ts +1 -10
  146. package/dist/object-guards.d.ts.map +1 -1
  147. package/dist/object-guards.js +7 -20
  148. package/dist/object-guards.js.map +1 -1
  149. package/dist/ports/config.ports.d.ts +1 -82
  150. package/dist/ports/config.ports.d.ts.map +1 -1
  151. package/dist/ports/config.ports.js +2 -1
  152. package/dist/ports/config.ports.js.map +1 -1
  153. package/dist/ports/dashboard-renderer.port.d.ts +1 -112
  154. package/dist/ports/dashboard-renderer.port.d.ts.map +1 -1
  155. package/dist/ports/dashboard-renderer.port.js +2 -1
  156. package/dist/ports/dashboard-renderer.port.js.map +1 -1
  157. package/dist/ports/git-validator.ports.d.ts +5 -110
  158. package/dist/ports/git-validator.ports.d.ts.map +1 -1
  159. package/dist/ports/git-validator.ports.js +8 -1
  160. package/dist/ports/git-validator.ports.js.map +1 -1
  161. package/dist/ports/sync-validator.ports.d.ts +1 -51
  162. package/dist/ports/sync-validator.ports.d.ts.map +1 -1
  163. package/dist/ports/sync-validator.ports.js +2 -1
  164. package/dist/ports/sync-validator.ports.js.map +1 -1
  165. package/dist/ports/wu-helpers.ports.d.ts +1 -156
  166. package/dist/ports/wu-helpers.ports.d.ts.map +1 -1
  167. package/dist/ports/wu-helpers.ports.js +2 -1
  168. package/dist/ports/wu-helpers.ports.js.map +1 -1
  169. package/dist/ports/wu-state.ports.d.ts +1 -208
  170. package/dist/ports/wu-state.ports.d.ts.map +1 -1
  171. package/dist/ports/wu-state.ports.js +2 -1
  172. package/dist/ports/wu-state.ports.js.map +1 -1
  173. package/dist/rebase-artifact-cleanup.d.ts.map +1 -1
  174. package/dist/rebase-artifact-cleanup.js +6 -3
  175. package/dist/rebase-artifact-cleanup.js.map +1 -1
  176. package/dist/sandbox-allowlist.d.ts +1 -15
  177. package/dist/sandbox-allowlist.d.ts.map +1 -1
  178. package/dist/sandbox-allowlist.js +4 -74
  179. package/dist/sandbox-allowlist.js.map +1 -1
  180. package/dist/sandbox-backend-linux.d.ts +1 -5
  181. package/dist/sandbox-backend-linux.d.ts.map +1 -1
  182. package/dist/sandbox-backend-linux.js +4 -64
  183. package/dist/sandbox-backend-linux.js.map +1 -1
  184. package/dist/sandbox-backend-macos.d.ts +1 -5
  185. package/dist/sandbox-backend-macos.d.ts.map +1 -1
  186. package/dist/sandbox-backend-macos.js +4 -109
  187. package/dist/sandbox-backend-macos.js.map +1 -1
  188. package/dist/sandbox-backend-windows.d.ts +1 -5
  189. package/dist/sandbox-backend-windows.d.ts.map +1 -1
  190. package/dist/sandbox-backend-windows.js +4 -27
  191. package/dist/sandbox-backend-windows.js.map +1 -1
  192. package/dist/sandbox-profile.d.ts +1 -57
  193. package/dist/sandbox-profile.d.ts.map +1 -1
  194. package/dist/sandbox-profile.js +4 -65
  195. package/dist/sandbox-profile.js.map +1 -1
  196. package/dist/schemas/agents-config.d.ts +47 -0
  197. package/dist/schemas/agents-config.d.ts.map +1 -1
  198. package/dist/schemas/agents-config.js +59 -0
  199. package/dist/schemas/agents-config.js.map +1 -1
  200. package/dist/schemas/command-schemas.d.ts +4 -4
  201. package/dist/schemas/flow-arg-validators.d.ts +2 -2
  202. package/dist/schemas/flow-schemas.d.ts +4 -4
  203. package/dist/schemas/gates-section-config.d.ts +32 -13
  204. package/dist/schemas/gates-section-config.d.ts.map +1 -1
  205. package/dist/schemas/gates-section-config.js +16 -1
  206. package/dist/schemas/gates-section-config.js.map +1 -1
  207. package/dist/schemas/initiative-arg-validators.d.ts +2 -2
  208. package/dist/schemas/initiative-schemas.d.ts +12 -12
  209. package/dist/schemas/lanes-config.d.ts +5 -5
  210. package/dist/schemas/memory-arg-validators.d.ts +6 -0
  211. package/dist/schemas/memory-arg-validators.d.ts.map +1 -1
  212. package/dist/schemas/memory-config.d.ts +4 -4
  213. package/dist/schemas/memory-schemas.d.ts +12 -0
  214. package/dist/schemas/memory-schemas.d.ts.map +1 -1
  215. package/dist/schemas/memory-schemas.js +12 -0
  216. package/dist/schemas/memory-schemas.js.map +1 -1
  217. package/dist/schemas/operational-config.d.ts +4 -4
  218. package/dist/schemas/setup-arg-validators.d.ts +3 -3
  219. package/dist/schemas/setup-schemas.d.ts +8 -8
  220. package/dist/schemas/wu-config.d.ts +3 -3
  221. package/dist/schemas/wu-lifecycle-arg-validators.d.ts +2 -2
  222. package/dist/schemas/wu-lifecycle-schemas.d.ts +4 -4
  223. package/dist/section-headings.d.ts +1 -34
  224. package/dist/section-headings.d.ts.map +1 -1
  225. package/dist/section-headings.js +2 -51
  226. package/dist/section-headings.js.map +1 -1
  227. package/dist/spawn-constraints-generator.js +3 -3
  228. package/dist/spawn-constraints-generator.js.map +1 -1
  229. package/dist/spawn-guidance-generators.d.ts +1 -1
  230. package/dist/spawn-guidance-generators.d.ts.map +1 -1
  231. package/dist/spawn-policy-resolver.d.ts +1 -1
  232. package/dist/spawn-policy-resolver.d.ts.map +1 -1
  233. package/dist/spawn-task-builder.d.ts +17 -1
  234. package/dist/spawn-task-builder.d.ts.map +1 -1
  235. package/dist/spawn-task-builder.js +63 -1
  236. package/dist/spawn-task-builder.js.map +1 -1
  237. package/dist/spawn-template-assembler.d.ts +1 -1
  238. package/dist/spawn-template-assembler.d.ts.map +1 -1
  239. package/dist/state-machine.d.ts +1 -9
  240. package/dist/state-machine.d.ts.map +1 -1
  241. package/dist/state-machine.js +2 -86
  242. package/dist/state-machine.js.map +1 -1
  243. package/dist/sync-validator.d.ts.map +1 -1
  244. package/dist/sync-validator.js +15 -12
  245. package/dist/sync-validator.js.map +1 -1
  246. package/dist/telemetry.d.ts.map +1 -1
  247. package/dist/telemetry.js +3 -2
  248. package/dist/telemetry.js.map +1 -1
  249. package/dist/work-classifier.d.ts +1 -102
  250. package/dist/work-classifier.d.ts.map +1 -1
  251. package/dist/work-classifier.js +2 -424
  252. package/dist/work-classifier.js.map +1 -1
  253. package/dist/worktree-symlink.d.ts +2 -2
  254. package/dist/worktree-symlink.d.ts.map +1 -1
  255. package/dist/worktree-symlink.js +37 -12
  256. package/dist/worktree-symlink.js.map +1 -1
  257. package/dist/wu-cli-constants.d.ts +1 -433
  258. package/dist/wu-cli-constants.d.ts.map +1 -1
  259. package/dist/wu-cli-constants.js +4 -436
  260. package/dist/wu-cli-constants.js.map +1 -1
  261. package/dist/wu-consistency-file-repairs.d.ts.map +1 -1
  262. package/dist/wu-consistency-file-repairs.js +5 -3
  263. package/dist/wu-consistency-file-repairs.js.map +1 -1
  264. package/dist/wu-context-constants.d.ts +22 -0
  265. package/dist/wu-context-constants.d.ts.map +1 -1
  266. package/dist/wu-context-constants.js +22 -0
  267. package/dist/wu-context-constants.js.map +1 -1
  268. package/dist/wu-doc-types.d.ts +1 -47
  269. package/dist/wu-doc-types.d.ts.map +1 -1
  270. package/dist/wu-domain-constants.d.ts +1 -295
  271. package/dist/wu-domain-constants.d.ts.map +1 -1
  272. package/dist/wu-domain-constants.js +4 -397
  273. package/dist/wu-domain-constants.js.map +1 -1
  274. package/dist/wu-done-branch-only.d.ts +1 -1
  275. package/dist/wu-done-branch-only.d.ts.map +1 -1
  276. package/dist/wu-done-branch-only.js +22 -13
  277. package/dist/wu-done-branch-only.js.map +1 -1
  278. package/dist/wu-done-branch-utils.d.ts.map +1 -1
  279. package/dist/wu-done-branch-utils.js +5 -3
  280. package/dist/wu-done-branch-utils.js.map +1 -1
  281. package/dist/wu-done-cleanup.d.ts.map +1 -1
  282. package/dist/wu-done-cleanup.js +66 -22
  283. package/dist/wu-done-cleanup.js.map +1 -1
  284. package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
  285. package/dist/wu-done-concurrent-merge.js +9 -6
  286. package/dist/wu-done-concurrent-merge.js.map +1 -1
  287. package/dist/wu-done-errors.d.ts +3 -3
  288. package/dist/wu-done-errors.d.ts.map +1 -1
  289. package/dist/wu-done-inputs.d.ts.map +1 -1
  290. package/dist/wu-done-inputs.js +3 -0
  291. package/dist/wu-done-inputs.js.map +1 -1
  292. package/dist/wu-done-merge-phase.d.ts.map +1 -1
  293. package/dist/wu-done-merge-phase.js +4 -2
  294. package/dist/wu-done-merge-phase.js.map +1 -1
  295. package/dist/wu-done-merge.d.ts.map +1 -1
  296. package/dist/wu-done-merge.js +16 -8
  297. package/dist/wu-done-merge.js.map +1 -1
  298. package/dist/wu-done-merged-worktree.d.ts.map +1 -1
  299. package/dist/wu-done-merged-worktree.js +7 -8
  300. package/dist/wu-done-merged-worktree.js.map +1 -1
  301. package/dist/wu-done-messages.d.ts.map +1 -1
  302. package/dist/wu-done-messages.js +12 -5
  303. package/dist/wu-done-messages.js.map +1 -1
  304. package/dist/wu-done-metadata.d.ts.map +1 -1
  305. package/dist/wu-done-metadata.js +3 -8
  306. package/dist/wu-done-metadata.js.map +1 -1
  307. package/dist/wu-done-preflight-checks.d.ts.map +1 -1
  308. package/dist/wu-done-preflight-checks.js +21 -15
  309. package/dist/wu-done-preflight-checks.js.map +1 -1
  310. package/dist/wu-done-rebase.d.ts.map +1 -1
  311. package/dist/wu-done-rebase.js +10 -8
  312. package/dist/wu-done-rebase.js.map +1 -1
  313. package/dist/wu-done-retry-helpers.d.ts.map +1 -1
  314. package/dist/wu-done-retry-helpers.js +13 -11
  315. package/dist/wu-done-retry-helpers.js.map +1 -1
  316. package/dist/wu-done-validation.d.ts.map +1 -1
  317. package/dist/wu-done-validation.js +4 -2
  318. package/dist/wu-done-validation.js.map +1 -1
  319. package/dist/wu-done-worktree-services.d.ts.map +1 -1
  320. package/dist/wu-done-worktree-services.js +4 -2
  321. package/dist/wu-done-worktree-services.js.map +1 -1
  322. package/dist/wu-done-worktree.d.ts.map +1 -1
  323. package/dist/wu-done-worktree.js +4 -2
  324. package/dist/wu-done-worktree.js.map +1 -1
  325. package/dist/wu-git-constants.d.ts +1 -175
  326. package/dist/wu-git-constants.d.ts.map +1 -1
  327. package/dist/wu-git-constants.js +4 -175
  328. package/dist/wu-git-constants.js.map +1 -1
  329. package/dist/wu-helpers.d.ts +24 -0
  330. package/dist/wu-helpers.d.ts.map +1 -1
  331. package/dist/wu-helpers.js +37 -4
  332. package/dist/wu-helpers.js.map +1 -1
  333. package/dist/wu-id-format.d.ts +1 -137
  334. package/dist/wu-id-format.d.ts.map +1 -1
  335. package/dist/wu-id-format.js +2 -249
  336. package/dist/wu-id-format.js.map +1 -1
  337. package/dist/wu-id-generator.d.ts.map +1 -1
  338. package/dist/wu-id-generator.js +8 -5
  339. package/dist/wu-id-generator.js.map +1 -1
  340. package/dist/wu-paths-constants.d.ts +1 -253
  341. package/dist/wu-paths-constants.d.ts.map +1 -1
  342. package/dist/wu-paths-constants.js +4 -273
  343. package/dist/wu-paths-constants.js.map +1 -1
  344. package/dist/wu-paths.d.ts +1 -274
  345. package/dist/wu-paths.d.ts.map +1 -1
  346. package/dist/wu-paths.js +4 -236
  347. package/dist/wu-paths.js.map +1 -1
  348. package/dist/wu-rules-resolvers.d.ts.map +1 -1
  349. package/dist/wu-rules-resolvers.js +11 -6
  350. package/dist/wu-rules-resolvers.js.map +1 -1
  351. package/dist/wu-schema.d.ts +1 -830
  352. package/dist/wu-schema.d.ts.map +1 -1
  353. package/dist/wu-schema.js +4 -929
  354. package/dist/wu-schema.js.map +1 -1
  355. package/dist/wu-spawn-helpers.d.ts.map +1 -1
  356. package/dist/wu-spawn-helpers.js +5 -2
  357. package/dist/wu-spawn-helpers.js.map +1 -1
  358. package/dist/wu-spawn.d.ts +2 -2
  359. package/dist/wu-spawn.d.ts.map +1 -1
  360. package/dist/wu-spawn.js +2 -2
  361. package/dist/wu-spawn.js.map +1 -1
  362. package/dist/wu-state-schema.d.ts +1 -291
  363. package/dist/wu-state-schema.d.ts.map +1 -1
  364. package/dist/wu-state-schema.js +4 -212
  365. package/dist/wu-state-schema.js.map +1 -1
  366. package/dist/wu-status-transition.d.ts +3 -1
  367. package/dist/wu-status-transition.d.ts.map +1 -1
  368. package/dist/wu-status-transition.js +9 -24
  369. package/dist/wu-status-transition.js.map +1 -1
  370. package/dist/wu-statuses.d.ts +1 -208
  371. package/dist/wu-statuses.d.ts.map +1 -1
  372. package/dist/wu-statuses.js +4 -242
  373. package/dist/wu-statuses.js.map +1 -1
  374. package/dist/wu-transaction-collectors.d.ts +1 -0
  375. package/dist/wu-transaction-collectors.d.ts.map +1 -1
  376. package/dist/wu-transaction-collectors.js +13 -8
  377. package/dist/wu-transaction-collectors.js.map +1 -1
  378. package/dist/wu-type-helpers.d.ts +1 -27
  379. package/dist/wu-type-helpers.d.ts.map +1 -1
  380. package/dist/wu-type-helpers.js +4 -46
  381. package/dist/wu-type-helpers.js.map +1 -1
  382. package/dist/wu-ui-constants.d.ts +1 -235
  383. package/dist/wu-ui-constants.d.ts.map +1 -1
  384. package/dist/wu-ui-constants.js +5 -235
  385. package/dist/wu-ui-constants.js.map +1 -1
  386. package/dist/wu-validation-constants.d.ts +1 -60
  387. package/dist/wu-validation-constants.d.ts.map +1 -1
  388. package/dist/wu-validation-constants.js +4 -66
  389. package/dist/wu-validation-constants.js.map +1 -1
  390. package/dist/wu-yaml.d.ts +1 -112
  391. package/dist/wu-yaml.d.ts.map +1 -1
  392. package/dist/wu-yaml.js +4 -304
  393. package/dist/wu-yaml.js.map +1 -1
  394. package/package.json +12 -9
  395. package/dist/coverage-gate.d.ts +0 -128
  396. package/dist/coverage-gate.d.ts.map +0 -1
  397. package/dist/coverage-gate.js +0 -211
  398. package/dist/coverage-gate.js.map +0 -1
  399. package/dist/gates-agent-mode.d.ts +0 -108
  400. package/dist/gates-agent-mode.d.ts.map +0 -1
  401. package/dist/gates-agent-mode.js +0 -138
  402. package/dist/gates-agent-mode.js.map +0 -1
  403. package/dist/gates-config-internal.d.ts +0 -54
  404. package/dist/gates-config-internal.d.ts.map +0 -1
  405. package/dist/gates-config-internal.js +0 -107
  406. package/dist/gates-config-internal.js.map +0 -1
  407. package/dist/gates-config.d.ts +0 -68
  408. package/dist/gates-config.d.ts.map +0 -1
  409. package/dist/gates-config.js +0 -193
  410. package/dist/gates-config.js.map +0 -1
  411. package/dist/gates-coverage.d.ts +0 -42
  412. package/dist/gates-coverage.d.ts.map +0 -1
  413. package/dist/gates-coverage.js +0 -162
  414. package/dist/gates-coverage.js.map +0 -1
  415. package/dist/gates-presets.d.ts +0 -52
  416. package/dist/gates-presets.d.ts.map +0 -1
  417. package/dist/gates-presets.js +0 -117
  418. package/dist/gates-presets.js.map +0 -1
  419. package/dist/gates-schemas.d.ts +0 -143
  420. package/dist/gates-schemas.d.ts.map +0 -1
  421. package/dist/gates-schemas.js +0 -67
  422. package/dist/gates-schemas.js.map +0 -1
  423. package/dist/package-manager-resolver.d.ts +0 -80
  424. package/dist/package-manager-resolver.d.ts.map +0 -1
  425. package/dist/package-manager-resolver.js +0 -245
  426. package/dist/package-manager-resolver.js.map +0 -1
  427. package/dist/resolve-policy.d.ts +0 -293
  428. package/dist/resolve-policy.d.ts.map +0 -1
  429. package/dist/resolve-policy.js +0 -303
  430. package/dist/resolve-policy.js.map +0 -1
@@ -1,104 +1,3 @@
1
1
  /// <reference path="./types.d.ts" />
2
- /**
3
- * Work domain enum-style constants
4
- */
5
- export declare const WORK_DOMAINS: {
6
- readonly UI: "ui";
7
- readonly BACKEND: "backend";
8
- readonly DOCS: "docs";
9
- readonly INFRA: "infra";
10
- readonly MIXED: "mixed";
11
- };
12
- export type WorkDomain = (typeof WORK_DOMAINS)[keyof typeof WORK_DOMAINS];
13
- /**
14
- * Classifier-produced methodology hints consumed by prompt guidance builders.
15
- */
16
- export declare const TEST_METHODOLOGY_HINTS: {
17
- readonly SMOKE_TEST: "smoke-test";
18
- readonly STRUCTURED_CONTENT: "structured-content";
19
- };
20
- export type TestMethodologyHint = (typeof TEST_METHODOLOGY_HINTS)[keyof typeof TEST_METHODOLOGY_HINTS];
21
- /**
22
- * Signal weights for each source type.
23
- * Confidence = max(matched_signal_weights), not sum.
24
- */
25
- export declare const SIGNAL_WEIGHTS: {
26
- readonly CODE_PATHS: 1;
27
- readonly LANE: 0.6;
28
- readonly TYPE: 0.3;
29
- readonly DESCRIPTION: 0.2;
30
- };
31
- /**
32
- * Built-in default UI code path patterns (minimatch glob patterns).
33
- * CSS/SCSS/LESS, components/pages directories, app page/layout files,
34
- * module CSS, styled components.
35
- */
36
- export declare const DEFAULT_UI_CODE_PATH_PATTERNS: readonly string[];
37
- /**
38
- * Built-in default UI lane hints.
39
- * Matched against the lane parent (part before the colon).
40
- */
41
- export declare const DEFAULT_UI_LANE_HINTS: readonly string[];
42
- /**
43
- * A signal that contributed to the classification.
44
- */
45
- export interface WorkSignal {
46
- /** Signal source: 'code_paths' | 'lane' | 'type' | 'description' */
47
- source: string;
48
- /** The domain this signal points to */
49
- domain: WorkDomain;
50
- /** The weight of this signal */
51
- weight: number;
52
- /** What matched (e.g., the pattern or keyword) */
53
- match: string;
54
- }
55
- /**
56
- * Result of classifyWork.
57
- */
58
- export interface WorkClassification {
59
- /** Detected work domain */
60
- domain: WorkDomain;
61
- /** Confidence score (max signal weight, 0 if no match) */
62
- confidence: number;
63
- /** Individual signals that contributed */
64
- signals: WorkSignal[];
65
- /** Abstract capability tags (NOT client skill names) */
66
- capabilities: string[];
67
- /** Test methodology hint, e.g. smoke-test (UI) or structured-content (non-code content) */
68
- testMethodologyHint?: TestMethodologyHint;
69
- }
70
- /**
71
- * Optional configuration to extend defaults.
72
- * Maps to methodology.work_classification in workspace.yaml.
73
- */
74
- export interface WorkClassificationConfig {
75
- ui?: {
76
- /** Additional code_path_patterns (extend defaults) */
77
- code_path_patterns?: string[];
78
- /** Additional lane_hints (extend defaults) */
79
- lane_hints?: string[];
80
- };
81
- }
82
- /**
83
- * Classify work domain from multiple weighted signals.
84
- *
85
- * Signal weights:
86
- * - code_paths patterns: 1.0
87
- * - lane hints: 0.6
88
- * - WU type: 0.3
89
- * - description keywords: 0.2
90
- *
91
- * Confidence = max(matched signal weights for winning domain).
92
- * Domain only assigned when confidence >= 0.3.
93
- *
94
- * @param doc - WU document (code_paths, lane, type, description)
95
- * @param config - Optional config to extend default patterns
96
- * @returns WorkClassification with domain, confidence, signals, capabilities, testMethodologyHint
97
- */
98
- export declare function classifyWork(doc: {
99
- code_paths?: string[];
100
- lane?: string;
101
- type?: string;
102
- description?: string;
103
- }, config?: WorkClassificationConfig): WorkClassification;
2
+ export * from '@lumenflow/packs-software-delivery/runtime/work-classifier';
104
3
  //# sourceMappingURL=work-classifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-classifier.d.ts","sourceRoot":"","sources":["../src/work-classifier.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAC7B,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AA8BX;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAezD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAKjD,CAAC;AA0FH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,MAAM,EAAE,UAAU,CAAC;IACnB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,wDAAwD;IACxD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2FAA2F;IAC3F,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,EAAE,CAAC,EAAE;QACH,sDAAsD;QACtD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9B,8CAA8C;QAC9C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AA0GD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,MAAM,CAAC,EAAE,wBAAwB,GAChC,kBAAkB,CAwLpB"}
1
+ {"version":3,"file":"work-classifier.d.ts","sourceRoot":"","sources":["../src/work-classifier.ts"],"names":[],"mappings":"AAGA,cAAc,4DAA4D,CAAC"}
@@ -1,427 +1,5 @@
1
1
  // Copyright (c) 2026 Hellmai Ltd
2
2
  // SPDX-License-Identifier: AGPL-3.0-only
3
- /**
4
- * Signal-Based Work Classifier
5
- *
6
- * WU-1899: Determines work domain (ui/backend/docs/infra/mixed) from
7
- * multiple weighted signals: code_paths patterns (weight 1.0), lane hints
8
- * (0.6), type (0.3), description keywords (0.2).
9
- *
10
- * Returns abstract capability tags (not client skill names) for
11
- * vendor-agnostic design. Configurable via methodology.work_classification
12
- * in workspace.yaml with sensible built-in defaults.
13
- *
14
- * @module work-classifier
15
- */
16
- import { minimatch } from 'minimatch';
17
- // ─── Constants ───────────────────────────────────────────────────────
18
- /**
19
- * Work domain enum-style constants
20
- */
21
- export const WORK_DOMAINS = {
22
- UI: 'ui',
23
- BACKEND: 'backend',
24
- DOCS: 'docs',
25
- INFRA: 'infra',
26
- MIXED: 'mixed',
27
- };
28
- /**
29
- * Classifier-produced methodology hints consumed by prompt guidance builders.
30
- */
31
- export const TEST_METHODOLOGY_HINTS = {
32
- SMOKE_TEST: 'smoke-test',
33
- STRUCTURED_CONTENT: 'structured-content',
34
- };
35
- /**
36
- * Signal weights for each source type.
37
- * Confidence = max(matched_signal_weights), not sum.
38
- */
39
- export const SIGNAL_WEIGHTS = {
40
- CODE_PATHS: 1.0,
41
- LANE: 0.6,
42
- TYPE: 0.3,
43
- DESCRIPTION: 0.2,
44
- };
45
- /**
46
- * Confidence threshold: domain only assigned when max signal weight >= this.
47
- */
48
- const CONFIDENCE_THRESHOLD = 0.3;
49
- /**
50
- * Smoke-test hint threshold: testMethodologyHint only assigned when
51
- * UI confidence >= this value.
52
- */
53
- const SMOKE_TEST_THRESHOLD = 0.5;
54
- /**
55
- * Structured-content patterns used to detect non-code work.
56
- *
57
- * When all code_paths match these patterns, classifier emits
58
- * testMethodologyHint: 'structured-content' to avoid forcing TDD
59
- * for content/config-only changes.
60
- */
61
- const STRUCTURED_CONTENT_CODE_PATH_PATTERNS = Object.freeze([
62
- '**/*.yaml',
63
- '**/*.yml',
64
- '**/*.json',
65
- '**/*.md',
66
- '**/*.mdx',
67
- ]);
68
- // ─── Default Patterns ────────────────────────────────────────────────
69
- /**
70
- * Built-in default UI code path patterns (minimatch glob patterns).
71
- * CSS/SCSS/LESS, components/pages directories, app page/layout files,
72
- * module CSS, styled components.
73
- */
74
- export const DEFAULT_UI_CODE_PATH_PATTERNS = Object.freeze([
75
- // Stylesheets
76
- '**/*.css',
77
- '**/*.scss',
78
- '**/*.less',
79
- '**/*.module.css',
80
- '**/*.module.scss',
81
- // Styled components
82
- '**/*.styled.ts',
83
- '**/*.styled.tsx',
84
- '**/*.styled.js',
85
- '**/*.styled.jsx',
86
- // Component / page directories
87
- '**/components/**',
88
- '**/pages/**',
89
- ]);
90
- /**
91
- * Built-in default UI lane hints.
92
- * Matched against the lane parent (part before the colon).
93
- */
94
- export const DEFAULT_UI_LANE_HINTS = Object.freeze([
95
- 'Experience',
96
- 'Frontend',
97
- 'UI',
98
- 'Design',
99
- ]);
100
- /**
101
- * Built-in docs code path patterns.
102
- */
103
- const DEFAULT_DOCS_CODE_PATH_PATTERNS = Object.freeze([
104
- 'docs/**',
105
- '**/*.md',
106
- '**/*.mdx',
107
- 'README*',
108
- 'CHANGELOG*',
109
- ]);
110
- /**
111
- * Built-in docs lane hints.
112
- */
113
- const DEFAULT_DOCS_LANE_HINTS = Object.freeze([
114
- 'Content',
115
- 'Documentation',
116
- 'Docs',
117
- ]);
118
- /**
119
- * Built-in infra code path patterns.
120
- */
121
- const DEFAULT_INFRA_CODE_PATH_PATTERNS = Object.freeze([
122
- '.github/**',
123
- 'Dockerfile*',
124
- 'docker-compose*',
125
- '**/terraform/**',
126
- '**/k8s/**',
127
- '**/kubernetes/**',
128
- 'infrastructure/**',
129
- ]);
130
- /**
131
- * Built-in infra lane hints.
132
- */
133
- const DEFAULT_INFRA_LANE_HINTS = Object.freeze([
134
- 'Operations',
135
- 'Infrastructure',
136
- 'DevOps',
137
- 'Platform',
138
- ]);
139
- /**
140
- * UI-related description keywords (case-insensitive).
141
- */
142
- const UI_DESCRIPTION_KEYWORDS = Object.freeze([
143
- 'css',
144
- 'scss',
145
- 'less',
146
- 'stylesheet',
147
- 'component',
148
- 'layout',
149
- 'responsive',
150
- 'ui',
151
- 'frontend',
152
- 'styled',
153
- 'animation',
154
- 'theme',
155
- ]);
156
- /**
157
- * Docs-related description keywords (case-insensitive).
158
- */
159
- const DOCS_DESCRIPTION_KEYWORDS = Object.freeze([
160
- 'documentation',
161
- 'readme',
162
- 'changelog',
163
- 'docs',
164
- 'guide',
165
- 'tutorial',
166
- ]);
167
- /**
168
- * Infra-related description keywords (case-insensitive).
169
- */
170
- const INFRA_DESCRIPTION_KEYWORDS = Object.freeze([
171
- 'docker',
172
- 'kubernetes',
173
- 'terraform',
174
- 'ci/cd',
175
- 'pipeline',
176
- 'deploy',
177
- 'infrastructure',
178
- ]);
179
- function createDomainSignals(domain) {
180
- return { domain, maxWeight: 0, signals: [] };
181
- }
182
- function addSignal(ds, signal) {
183
- ds.signals.push(signal);
184
- if (signal.weight > ds.maxWeight) {
185
- ds.maxWeight = signal.weight;
186
- }
187
- }
188
- /**
189
- * Check if any code_paths match a set of glob patterns.
190
- */
191
- function matchCodePaths(codePaths, patterns) {
192
- for (const path of codePaths) {
193
- for (const pattern of patterns) {
194
- if (minimatch(path, pattern)) {
195
- return pattern;
196
- }
197
- }
198
- }
199
- return undefined;
200
- }
201
- /**
202
- * Check whether all code_paths are structured content (yaml/json/markdown).
203
- */
204
- function isStructuredContentOnly(codePaths) {
205
- return (codePaths.length > 0 &&
206
- codePaths.every((path) => STRUCTURED_CONTENT_CODE_PATH_PATTERNS.some((pattern) => minimatch(path, pattern, { nocase: true }))));
207
- }
208
- /**
209
- * Check if the lane parent matches any hints (case-insensitive).
210
- */
211
- function matchLaneHint(lane, hints) {
212
- const parts = lane.split(':');
213
- const laneParent = (parts[0] ?? '').trim().toLowerCase();
214
- const laneSublane = parts.length > 1 ? (parts[1] ?? '').trim().toLowerCase() : '';
215
- for (const hint of hints) {
216
- const hintLower = hint.toLowerCase();
217
- if (laneParent === hintLower || laneSublane === hintLower) {
218
- return hint;
219
- }
220
- }
221
- return undefined;
222
- }
223
- /**
224
- * Check if description contains any keywords (case-insensitive, word boundary).
225
- */
226
- function matchDescriptionKeywords(description, keywords) {
227
- const descLower = description.toLowerCase();
228
- for (const keyword of keywords) {
229
- if (descLower.includes(keyword.toLowerCase())) {
230
- return keyword;
231
- }
232
- }
233
- return undefined;
234
- }
235
- /**
236
- * Domain-to-capabilities data map (OCP-compliant).
237
- * Add new domains by extending the record, no switch modification needed.
238
- */
239
- const DOMAIN_CAPABILITIES = {
240
- [WORK_DOMAINS.UI]: ['ui-design-awareness', 'component-reuse-check'],
241
- [WORK_DOMAINS.DOCS]: ['documentation-structure', 'link-validation'],
242
- [WORK_DOMAINS.INFRA]: ['infrastructure-review', 'security-check'],
243
- [WORK_DOMAINS.MIXED]: ['cross-domain-awareness'],
244
- [WORK_DOMAINS.BACKEND]: [],
245
- };
246
- /**
247
- * Map work domain to capabilities (abstract, vendor-agnostic).
248
- */
249
- function getCapabilities(domain) {
250
- return DOMAIN_CAPABILITIES[domain] ?? [];
251
- }
252
- // ─── Public API ──────────────────────────────────────────────────────
253
- /**
254
- * Classify work domain from multiple weighted signals.
255
- *
256
- * Signal weights:
257
- * - code_paths patterns: 1.0
258
- * - lane hints: 0.6
259
- * - WU type: 0.3
260
- * - description keywords: 0.2
261
- *
262
- * Confidence = max(matched signal weights for winning domain).
263
- * Domain only assigned when confidence >= 0.3.
264
- *
265
- * @param doc - WU document (code_paths, lane, type, description)
266
- * @param config - Optional config to extend default patterns
267
- * @returns WorkClassification with domain, confidence, signals, capabilities, testMethodologyHint
268
- */
269
- export function classifyWork(doc, config) {
270
- const codePaths = doc.code_paths ?? [];
271
- const lane = doc.lane ?? '';
272
- const type = doc.type ?? '';
273
- const description = doc.description ?? '';
274
- const structuredContentOnly = isStructuredContentOnly(codePaths);
275
- // Merge config patterns with defaults (config extends, not replaces)
276
- const uiCodePathPatterns = [
277
- ...DEFAULT_UI_CODE_PATH_PATTERNS,
278
- ...(config?.ui?.code_path_patterns ?? []),
279
- ];
280
- const uiLaneHints = [...DEFAULT_UI_LANE_HINTS, ...(config?.ui?.lane_hints ?? [])];
281
- // Collect signals per domain
282
- const ui = createDomainSignals(WORK_DOMAINS.UI);
283
- const docs = createDomainSignals(WORK_DOMAINS.DOCS);
284
- const infra = createDomainSignals(WORK_DOMAINS.INFRA);
285
- // ── Signal 1: code_paths (weight 1.0) ──
286
- if (codePaths.length > 0) {
287
- const uiMatch = matchCodePaths(codePaths, uiCodePathPatterns);
288
- if (uiMatch) {
289
- addSignal(ui, {
290
- source: 'code_paths',
291
- domain: WORK_DOMAINS.UI,
292
- weight: SIGNAL_WEIGHTS.CODE_PATHS,
293
- match: uiMatch,
294
- });
295
- }
296
- const docsMatch = matchCodePaths(codePaths, DEFAULT_DOCS_CODE_PATH_PATTERNS);
297
- if (docsMatch) {
298
- addSignal(docs, {
299
- source: 'code_paths',
300
- domain: WORK_DOMAINS.DOCS,
301
- weight: SIGNAL_WEIGHTS.CODE_PATHS,
302
- match: docsMatch,
303
- });
304
- }
305
- const infraMatch = matchCodePaths(codePaths, DEFAULT_INFRA_CODE_PATH_PATTERNS);
306
- if (infraMatch) {
307
- addSignal(infra, {
308
- source: 'code_paths',
309
- domain: WORK_DOMAINS.INFRA,
310
- weight: SIGNAL_WEIGHTS.CODE_PATHS,
311
- match: infraMatch,
312
- });
313
- }
314
- }
315
- // ── Signal 2: lane hints (weight 0.6) ──
316
- if (lane) {
317
- const uiLaneMatch = matchLaneHint(lane, uiLaneHints);
318
- if (uiLaneMatch) {
319
- addSignal(ui, {
320
- source: 'lane',
321
- domain: WORK_DOMAINS.UI,
322
- weight: SIGNAL_WEIGHTS.LANE,
323
- match: uiLaneMatch,
324
- });
325
- }
326
- const docsLaneMatch = matchLaneHint(lane, DEFAULT_DOCS_LANE_HINTS);
327
- if (docsLaneMatch) {
328
- addSignal(docs, {
329
- source: 'lane',
330
- domain: WORK_DOMAINS.DOCS,
331
- weight: SIGNAL_WEIGHTS.LANE,
332
- match: docsLaneMatch,
333
- });
334
- }
335
- const infraLaneMatch = matchLaneHint(lane, DEFAULT_INFRA_LANE_HINTS);
336
- if (infraLaneMatch) {
337
- addSignal(infra, {
338
- source: 'lane',
339
- domain: WORK_DOMAINS.INFRA,
340
- weight: SIGNAL_WEIGHTS.LANE,
341
- match: infraLaneMatch,
342
- });
343
- }
344
- }
345
- // ── Signal 3: WU type (weight 0.3) ──
346
- if (type === 'documentation') {
347
- addSignal(docs, {
348
- source: 'type',
349
- domain: WORK_DOMAINS.DOCS,
350
- weight: SIGNAL_WEIGHTS.TYPE,
351
- match: 'documentation',
352
- });
353
- }
354
- // ── Signal 4: description keywords (weight 0.2) ──
355
- if (description) {
356
- const uiKeywordMatch = matchDescriptionKeywords(description, UI_DESCRIPTION_KEYWORDS);
357
- if (uiKeywordMatch) {
358
- addSignal(ui, {
359
- source: 'description',
360
- domain: WORK_DOMAINS.UI,
361
- weight: SIGNAL_WEIGHTS.DESCRIPTION,
362
- match: uiKeywordMatch,
363
- });
364
- }
365
- const docsKeywordMatch = matchDescriptionKeywords(description, DOCS_DESCRIPTION_KEYWORDS);
366
- if (docsKeywordMatch) {
367
- addSignal(docs, {
368
- source: 'description',
369
- domain: WORK_DOMAINS.DOCS,
370
- weight: SIGNAL_WEIGHTS.DESCRIPTION,
371
- match: docsKeywordMatch,
372
- });
373
- }
374
- const infraKeywordMatch = matchDescriptionKeywords(description, INFRA_DESCRIPTION_KEYWORDS);
375
- if (infraKeywordMatch) {
376
- addSignal(infra, {
377
- source: 'description',
378
- domain: WORK_DOMAINS.INFRA,
379
- weight: SIGNAL_WEIGHTS.DESCRIPTION,
380
- match: infraKeywordMatch,
381
- });
382
- }
383
- }
384
- // ── Determine winning domain ──
385
- const candidates = [ui, docs, infra].filter((d) => d.maxWeight >= CONFIDENCE_THRESHOLD);
386
- // Check for mixed: multiple domains with strong code_paths signals
387
- const strongCodePathDomains = [ui, docs, infra].filter((d) => d.signals.some((s) => s.source === 'code_paths'));
388
- if (strongCodePathDomains.length > 1) {
389
- // Multiple code_paths domains detected - classify as mixed
390
- const allSignals = strongCodePathDomains.flatMap((d) => d.signals);
391
- return {
392
- domain: WORK_DOMAINS.MIXED,
393
- confidence: Math.max(...strongCodePathDomains.map((d) => d.maxWeight)),
394
- signals: allSignals,
395
- capabilities: getCapabilities(WORK_DOMAINS.MIXED),
396
- testMethodologyHint: undefined,
397
- };
398
- }
399
- if (candidates.length === 0) {
400
- // No signals above threshold - default to backend
401
- return {
402
- domain: WORK_DOMAINS.BACKEND,
403
- confidence: 0,
404
- signals: [],
405
- capabilities: [],
406
- testMethodologyHint: structuredContentOnly
407
- ? TEST_METHODOLOGY_HINTS.STRUCTURED_CONTENT
408
- : undefined,
409
- };
410
- }
411
- // Pick the domain with highest max weight
412
- candidates.sort((a, b) => b.maxWeight - a.maxWeight);
413
- const winner = candidates[0];
414
- const testMethodologyHint = winner.domain === WORK_DOMAINS.UI && winner.maxWeight >= SMOKE_TEST_THRESHOLD
415
- ? TEST_METHODOLOGY_HINTS.SMOKE_TEST
416
- : structuredContentOnly
417
- ? TEST_METHODOLOGY_HINTS.STRUCTURED_CONTENT
418
- : undefined;
419
- return {
420
- domain: winner.domain,
421
- confidence: winner.maxWeight,
422
- signals: winner.signals,
423
- capabilities: getCapabilities(winner.domain),
424
- testMethodologyHint,
425
- };
426
- }
3
+ // WU-2698 (INIT-058 L4-prep narrow): Shim.
4
+ export * from '@lumenflow/packs-software-delivery/runtime/work-classifier';
427
5
  //# sourceMappingURL=work-classifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-classifier.js","sourceRoot":"","sources":["../src/work-classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"work-classifier.js","sourceRoot":"","sources":["../src/work-classifier.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AACzC,2CAA2C;AAC3C,cAAc,4DAA4D,CAAC"}
@@ -49,10 +49,10 @@ interface WorkspaceBinArtifactSeedResult {
49
49
  */
50
50
  export declare function hasWorktreePathSymlinks(nodeModulesPath: string): WorktreePathSymlinkResult;
51
51
  /**
52
- * Pre-seed bin artifact roots (for example dist/) in a fresh worktree from main checkout.
52
+ * Pre-seed workspace artifact roots (for example dist/) in a fresh worktree from main checkout.
53
53
  *
54
54
  * This prevents pnpm install from emitting noisy ENOENT bin-link warnings for workspace packages
55
- * whose bin entries point at build artifacts that are not tracked in git.
55
+ * and gives worktree runtime/tests a local artifact snapshot for package exports that resolve via dist.
56
56
  */
57
57
  export declare function symlinkWorkspaceBinArtifactRoots(worktreePath: string, mainRepoPath: string, logger?: LoggerLike | null): WorkspaceBinArtifactSeedResult;
58
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-symlink.d.ts","sourceRoot":"","sources":["../src/worktree-symlink.ts"],"names":[],"mappings":"AAsGA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,UAahC,CAAC;AAQF,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,UAAU,8BAA8B;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAuED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,yBAAyB,CAwB1F;AAmJD;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,UAAU,GAAG,IAAW,GAC/B,8BAA8B,CAwDhC;AAmCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,UAAoB,EAC5B,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,aAAa,CAmCf;AA+ED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,UAAU,GAAG,IAAW,GAC/B,mBAAmB,CA0CrB"}
1
+ {"version":3,"file":"worktree-symlink.d.ts","sourceRoot":"","sources":["../src/worktree-symlink.ts"],"names":[],"mappings":"AAsGA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,UAahC,CAAC;AAQF,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,UAAU,8BAA8B;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AA6ED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,yBAAyB,CAwB1F;AAmLD;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,UAAU,GAAG,IAAW,GAC/B,8BAA8B,CAoDhC;AAmCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,UAAoB,EAC5B,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,aAAa,CAmCf;AA+ED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,UAAU,GAAG,IAAW,GAC/B,mBAAmB,CA0CrB"}
@@ -254,8 +254,8 @@ function collectWorkspaceManifestPaths(repoRoot) {
254
254
  /**
255
255
  * Normalize a package.json bin target into a safe relative path, or null when unsafe.
256
256
  */
257
- function normalizeBinTargetPath(binTargetPath) {
258
- const posixTargetPath = binTargetPath
257
+ function normalizeArtifactTargetPath(targetPath) {
258
+ const posixTargetPath = targetPath
259
259
  .split(WINDOWS_PATH_SEPARATOR)
260
260
  .join(POSIX_PATH_SEPARATOR)
261
261
  .trim();
@@ -274,6 +274,23 @@ function normalizeBinTargetPath(binTargetPath) {
274
274
  }
275
275
  return normalizedTargetPath;
276
276
  }
277
+ function collectExportTargetPaths(exportsField, targets) {
278
+ if (typeof exportsField === 'string') {
279
+ targets.push(exportsField);
280
+ return;
281
+ }
282
+ if (Array.isArray(exportsField)) {
283
+ for (const exportTarget of exportsField) {
284
+ collectExportTargetPaths(exportTarget, targets);
285
+ }
286
+ return;
287
+ }
288
+ if (exportsField && typeof exportsField === 'object') {
289
+ for (const exportTarget of Object.values(exportsField)) {
290
+ collectExportTargetPaths(exportTarget, targets);
291
+ }
292
+ }
293
+ }
277
294
  /**
278
295
  * Collect workspace package bin targets from main checkout package manifests.
279
296
  */
@@ -283,13 +300,22 @@ function collectWorkspaceBinTargets(mainRepoPath) {
283
300
  for (const manifestPath of manifests) {
284
301
  try {
285
302
  const packageJson = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
286
- if (!packageJson.bin) {
287
- continue;
288
- }
289
303
  const packageRelativeDir = path.dirname(path.relative(mainRepoPath, manifestPath));
290
- const normalizedTargets = typeof packageJson.bin === 'string'
291
- ? [normalizeBinTargetPath(packageJson.bin)]
292
- : Object.values(packageJson.bin).map((targetPath) => normalizeBinTargetPath(targetPath));
304
+ const artifactTargets = [];
305
+ if (typeof packageJson.bin === 'string') {
306
+ artifactTargets.push(packageJson.bin);
307
+ }
308
+ else if (packageJson.bin && typeof packageJson.bin === 'object') {
309
+ artifactTargets.push(...Object.values(packageJson.bin));
310
+ }
311
+ if (typeof packageJson.main === 'string') {
312
+ artifactTargets.push(packageJson.main);
313
+ }
314
+ if (typeof packageJson.types === 'string') {
315
+ artifactTargets.push(packageJson.types);
316
+ }
317
+ collectExportTargetPaths(packageJson.exports ?? null, artifactTargets);
318
+ const normalizedTargets = artifactTargets.map((targetPath) => normalizeArtifactTargetPath(targetPath));
293
319
  for (const normalizedTargetPath of normalizedTargets) {
294
320
  if (!normalizedTargetPath) {
295
321
  continue;
@@ -315,10 +341,10 @@ function resolveBinArtifactRoot(binTargetPath) {
315
341
  return artifactRoot;
316
342
  }
317
343
  /**
318
- * Pre-seed bin artifact roots (for example dist/) in a fresh worktree from main checkout.
344
+ * Pre-seed workspace artifact roots (for example dist/) in a fresh worktree from main checkout.
319
345
  *
320
346
  * This prevents pnpm install from emitting noisy ENOENT bin-link warnings for workspace packages
321
- * whose bin entries point at build artifacts that are not tracked in git.
347
+ * and gives worktree runtime/tests a local artifact snapshot for package exports that resolve via dist.
322
348
  */
323
349
  export function symlinkWorkspaceBinArtifactRoots(worktreePath, mainRepoPath, logger = null) {
324
350
  const result = { created: 0, skipped: 0, errors: [] };
@@ -344,8 +370,7 @@ export function symlinkWorkspaceBinArtifactRoots(worktreePath, mainRepoPath, log
344
370
  }
345
371
  try {
346
372
  fs.mkdirSync(path.dirname(worktreeArtifactPath), { recursive: true });
347
- const relativeTargetPath = path.relative(path.dirname(worktreeArtifactPath), sourceArtifactPath);
348
- fs.symlinkSync(relativeTargetPath, worktreeArtifactPath);
373
+ fs.cpSync(sourceArtifactPath, worktreeArtifactPath, { recursive: true });
349
374
  result.created += 1;
350
375
  if (logger?.info) {
351
376
  logger.info(`${LOG_PREFIX.CLAIM} Seeded ${binTarget.packageRelativeDir}/${artifactRoot} from main checkout`);