@lumenflow/packs-software-delivery 4.23.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/manifest-schema.d.ts +12 -0
  2. package/dist/manifest-schema.d.ts.map +1 -1
  3. package/dist/manifest-schema.js +10 -0
  4. package/dist/manifest-schema.js.map +1 -1
  5. package/dist/manifest.d.ts +21 -0
  6. package/dist/manifest.d.ts.map +1 -1
  7. package/dist/manifest.js +92 -1
  8. package/dist/manifest.js.map +1 -1
  9. package/dist/src/commands/index.d.ts +2 -0
  10. package/dist/src/commands/index.d.ts.map +1 -0
  11. package/dist/src/commands/index.js +5 -0
  12. package/dist/src/commands/index.js.map +1 -0
  13. package/dist/src/config/delivery-review-contract.d.ts +17 -0
  14. package/dist/src/config/delivery-review-contract.d.ts.map +1 -0
  15. package/dist/src/config/delivery-review-contract.js +19 -0
  16. package/dist/src/config/delivery-review-contract.js.map +1 -0
  17. package/dist/src/config/env-accessors.d.ts +16 -0
  18. package/dist/src/config/env-accessors.d.ts.map +1 -0
  19. package/dist/src/config/env-accessors.js +18 -0
  20. package/dist/src/config/env-accessors.js.map +1 -0
  21. package/dist/src/config/index.d.ts +3 -0
  22. package/dist/src/config/index.d.ts.map +1 -0
  23. package/dist/src/config/index.js +8 -0
  24. package/dist/src/config/index.js.map +1 -0
  25. package/dist/src/config/normalize-config-keys.d.ts +16 -0
  26. package/dist/src/config/normalize-config-keys.d.ts.map +1 -0
  27. package/dist/src/config/normalize-config-keys.js +18 -0
  28. package/dist/src/config/normalize-config-keys.js.map +1 -0
  29. package/dist/src/config/schemas/lumenflow-config-schema-types.d.ts +190 -0
  30. package/dist/src/config/schemas/lumenflow-config-schema-types.d.ts.map +1 -0
  31. package/dist/src/config/schemas/lumenflow-config-schema-types.js +182 -0
  32. package/dist/src/config/schemas/lumenflow-config-schema-types.js.map +1 -0
  33. package/dist/src/config/schemas/lumenflow-config-schema.d.ts +190 -0
  34. package/dist/src/config/schemas/lumenflow-config-schema.d.ts.map +1 -0
  35. package/dist/src/config/schemas/lumenflow-config-schema.js +182 -0
  36. package/dist/src/config/schemas/lumenflow-config-schema.js.map +1 -0
  37. package/dist/src/config/workspace-reader.d.ts +56 -0
  38. package/dist/src/config/workspace-reader.d.ts.map +1 -0
  39. package/dist/src/config/workspace-reader.js +209 -0
  40. package/dist/src/config/workspace-reader.js.map +1 -0
  41. package/dist/src/constants/backlog-patterns.d.ts +21 -0
  42. package/dist/src/constants/backlog-patterns.d.ts.map +1 -0
  43. package/dist/src/constants/backlog-patterns.js +26 -0
  44. package/dist/src/constants/backlog-patterns.js.map +1 -0
  45. package/dist/src/constants/client-ids.d.ts +16 -0
  46. package/dist/src/constants/client-ids.d.ts.map +1 -0
  47. package/dist/src/constants/client-ids.js +16 -0
  48. package/dist/src/constants/client-ids.js.map +1 -0
  49. package/dist/src/constants/config-contract.d.ts +2 -0
  50. package/dist/src/constants/config-contract.d.ts.map +1 -0
  51. package/dist/src/constants/config-contract.js +7 -0
  52. package/dist/src/constants/config-contract.js.map +1 -0
  53. package/dist/src/constants/docs-layout-presets.d.ts +31 -0
  54. package/dist/src/constants/docs-layout-presets.d.ts.map +1 -0
  55. package/dist/src/constants/docs-layout-presets.js +41 -0
  56. package/dist/src/constants/docs-layout-presets.js.map +1 -0
  57. package/dist/src/constants/duration-constants.d.ts +11 -0
  58. package/dist/src/constants/duration-constants.d.ts.map +1 -0
  59. package/dist/src/constants/duration-constants.js +13 -0
  60. package/dist/src/constants/duration-constants.js.map +1 -0
  61. package/dist/src/constants/gate-constants.d.ts +24 -0
  62. package/dist/src/constants/gate-constants.d.ts.map +1 -0
  63. package/dist/src/constants/gate-constants.js +26 -0
  64. package/dist/src/constants/gate-constants.js.map +1 -0
  65. package/dist/src/constants/index.d.ts +18 -0
  66. package/dist/src/constants/index.d.ts.map +1 -0
  67. package/dist/src/constants/index.js +29 -0
  68. package/dist/src/constants/index.js.map +1 -0
  69. package/dist/src/constants/lock-constants.d.ts +29 -0
  70. package/dist/src/constants/lock-constants.d.ts.map +1 -0
  71. package/dist/src/constants/lock-constants.js +31 -0
  72. package/dist/src/constants/lock-constants.js.map +1 -0
  73. package/dist/src/constants/object-guards.d.ts +9 -0
  74. package/dist/src/constants/object-guards.d.ts.map +1 -0
  75. package/dist/src/constants/object-guards.js +11 -0
  76. package/dist/src/constants/object-guards.js.map +1 -0
  77. package/dist/src/constants/section-headings.d.ts +35 -0
  78. package/dist/src/constants/section-headings.d.ts.map +1 -0
  79. package/dist/src/constants/section-headings.js +82 -0
  80. package/dist/src/constants/section-headings.js.map +1 -0
  81. package/dist/src/constants/wu-cli-constants.d.ts +434 -0
  82. package/dist/src/constants/wu-cli-constants.d.ts.map +1 -0
  83. package/dist/src/constants/wu-cli-constants.js +439 -0
  84. package/dist/src/constants/wu-cli-constants.js.map +1 -0
  85. package/dist/src/constants/wu-domain-constants.d.ts +296 -0
  86. package/dist/src/constants/wu-domain-constants.d.ts.map +1 -0
  87. package/dist/src/constants/wu-domain-constants.js +400 -0
  88. package/dist/src/constants/wu-domain-constants.js.map +1 -0
  89. package/dist/src/constants/wu-git-constants.d.ts +2 -0
  90. package/dist/src/constants/wu-git-constants.d.ts.map +1 -0
  91. package/dist/src/constants/wu-git-constants.js +7 -0
  92. package/dist/src/constants/wu-git-constants.js.map +1 -0
  93. package/dist/src/constants/wu-id-format.d.ts +138 -0
  94. package/dist/src/constants/wu-id-format.d.ts.map +1 -0
  95. package/dist/src/constants/wu-id-format.js +265 -0
  96. package/dist/src/constants/wu-id-format.js.map +1 -0
  97. package/dist/src/constants/wu-paths-constants.d.ts +254 -0
  98. package/dist/src/constants/wu-paths-constants.d.ts.map +1 -0
  99. package/dist/src/constants/wu-paths-constants.js +276 -0
  100. package/dist/src/constants/wu-paths-constants.js.map +1 -0
  101. package/dist/src/constants/wu-statuses.d.ts +209 -0
  102. package/dist/src/constants/wu-statuses.d.ts.map +1 -0
  103. package/dist/src/constants/wu-statuses.js +245 -0
  104. package/dist/src/constants/wu-statuses.js.map +1 -0
  105. package/dist/src/constants/wu-type-helpers.d.ts +28 -0
  106. package/dist/src/constants/wu-type-helpers.d.ts.map +1 -0
  107. package/dist/src/constants/wu-type-helpers.js +49 -0
  108. package/dist/src/constants/wu-type-helpers.js.map +1 -0
  109. package/dist/src/constants/wu-ui-constants.d.ts +236 -0
  110. package/dist/src/constants/wu-ui-constants.d.ts.map +1 -0
  111. package/dist/src/constants/wu-ui-constants.js +238 -0
  112. package/dist/src/constants/wu-ui-constants.js.map +1 -0
  113. package/dist/src/constants/wu-validation-constants.d.ts +61 -0
  114. package/dist/src/constants/wu-validation-constants.d.ts.map +1 -0
  115. package/dist/src/constants/wu-validation-constants.js +69 -0
  116. package/dist/src/constants/wu-validation-constants.js.map +1 -0
  117. package/dist/src/domain/index.d.ts +4 -0
  118. package/dist/src/domain/index.d.ts.map +1 -0
  119. package/dist/src/domain/index.js +6 -0
  120. package/dist/src/domain/index.js.map +1 -0
  121. package/dist/src/domain/orchestration.constants.d.ts +111 -0
  122. package/dist/src/domain/orchestration.constants.d.ts.map +1 -0
  123. package/dist/src/domain/orchestration.constants.js +130 -0
  124. package/dist/src/domain/orchestration.constants.js.map +1 -0
  125. package/dist/src/domain/orchestration.schemas.d.ts +307 -0
  126. package/dist/src/domain/orchestration.schemas.d.ts.map +1 -0
  127. package/dist/src/domain/orchestration.schemas.js +214 -0
  128. package/dist/src/domain/orchestration.schemas.js.map +1 -0
  129. package/dist/src/domain/orchestration.types.d.ts +134 -0
  130. package/dist/src/domain/orchestration.types.d.ts.map +1 -0
  131. package/dist/src/domain/orchestration.types.js +5 -0
  132. package/dist/src/domain/orchestration.types.js.map +1 -0
  133. package/dist/src/methodology/incremental-test.d.ts +33 -0
  134. package/dist/src/methodology/incremental-test.d.ts.map +1 -0
  135. package/dist/src/methodology/incremental-test.js +73 -0
  136. package/dist/src/methodology/incremental-test.js.map +1 -0
  137. package/dist/src/methodology/index.d.ts +3 -0
  138. package/dist/src/methodology/index.d.ts.map +1 -0
  139. package/dist/src/methodology/index.js +6 -0
  140. package/dist/src/methodology/index.js.map +1 -0
  141. package/dist/src/methodology/manual-test-validator.d.ts +97 -0
  142. package/dist/src/methodology/manual-test-validator.d.ts.map +1 -0
  143. package/dist/src/methodology/manual-test-validator.js +248 -0
  144. package/dist/src/methodology/manual-test-validator.js.map +1 -0
  145. package/dist/src/policy/coverage-gate.d.ts +127 -0
  146. package/dist/src/policy/coverage-gate.d.ts.map +1 -0
  147. package/dist/src/policy/coverage-gate.js +211 -0
  148. package/dist/src/policy/coverage-gate.js.map +1 -0
  149. package/dist/src/policy/gates-agent-mode.d.ts +107 -0
  150. package/dist/src/policy/gates-agent-mode.d.ts.map +1 -0
  151. package/dist/src/policy/gates-agent-mode.js +138 -0
  152. package/dist/src/policy/gates-agent-mode.js.map +1 -0
  153. package/dist/src/policy/gates-config-internal.d.ts +54 -0
  154. package/dist/src/policy/gates-config-internal.d.ts.map +1 -0
  155. package/dist/src/policy/gates-config-internal.js +108 -0
  156. package/dist/src/policy/gates-config-internal.js.map +1 -0
  157. package/dist/src/policy/gates-config.d.ts +67 -0
  158. package/dist/src/policy/gates-config.d.ts.map +1 -0
  159. package/dist/src/policy/gates-config.js +193 -0
  160. package/dist/src/policy/gates-config.js.map +1 -0
  161. package/dist/src/policy/gates-coverage.d.ts +48 -0
  162. package/dist/src/policy/gates-coverage.d.ts.map +1 -0
  163. package/dist/src/policy/gates-coverage.js +182 -0
  164. package/dist/src/policy/gates-coverage.js.map +1 -0
  165. package/dist/src/policy/gates-presets.d.ts +51 -0
  166. package/dist/src/policy/gates-presets.d.ts.map +1 -0
  167. package/dist/src/policy/gates-presets.js +117 -0
  168. package/dist/src/policy/gates-presets.js.map +1 -0
  169. package/dist/src/policy/gates-schemas.d.ts +142 -0
  170. package/dist/src/policy/gates-schemas.d.ts.map +1 -0
  171. package/dist/src/policy/gates-schemas.js +67 -0
  172. package/dist/src/policy/gates-schemas.js.map +1 -0
  173. package/dist/src/policy/index.d.ts +19 -0
  174. package/dist/src/policy/index.d.ts.map +1 -0
  175. package/dist/src/policy/index.js +21 -0
  176. package/dist/src/policy/index.js.map +1 -0
  177. package/dist/src/policy/package-manager-resolver.d.ts +79 -0
  178. package/dist/src/policy/package-manager-resolver.d.ts.map +1 -0
  179. package/dist/src/policy/package-manager-resolver.js +245 -0
  180. package/dist/src/policy/package-manager-resolver.js.map +1 -0
  181. package/dist/src/policy/resolve-policy.d.ts +337 -0
  182. package/dist/src/policy/resolve-policy.d.ts.map +1 -0
  183. package/dist/src/policy/resolve-policy.js +353 -0
  184. package/dist/src/policy/resolve-policy.js.map +1 -0
  185. package/dist/src/ports/config.ports.d.ts +83 -0
  186. package/dist/src/ports/config.ports.d.ts.map +1 -0
  187. package/dist/src/ports/config.ports.js +4 -0
  188. package/dist/src/ports/config.ports.js.map +1 -0
  189. package/dist/src/ports/dashboard-renderer.port.d.ts +113 -0
  190. package/dist/src/ports/dashboard-renderer.port.d.ts.map +1 -0
  191. package/dist/src/ports/dashboard-renderer.port.js +4 -0
  192. package/dist/src/ports/dashboard-renderer.port.js.map +1 -0
  193. package/dist/src/ports/index.d.ts +5 -0
  194. package/dist/src/ports/index.d.ts.map +1 -0
  195. package/dist/src/ports/index.js +10 -0
  196. package/dist/src/ports/index.js.map +1 -0
  197. package/dist/src/ports/sync-validator.ports.d.ts +52 -0
  198. package/dist/src/ports/sync-validator.ports.d.ts.map +1 -0
  199. package/dist/src/ports/sync-validator.ports.js +4 -0
  200. package/dist/src/ports/sync-validator.ports.js.map +1 -0
  201. package/dist/src/ports/wu-helpers.ports.d.ts +157 -0
  202. package/dist/src/ports/wu-helpers.ports.d.ts.map +1 -0
  203. package/dist/src/ports/wu-helpers.ports.js +4 -0
  204. package/dist/src/ports/wu-helpers.ports.js.map +1 -0
  205. package/dist/src/ports/wu-state.ports.d.ts +209 -0
  206. package/dist/src/ports/wu-state.ports.d.ts.map +1 -0
  207. package/dist/src/ports/wu-state.ports.js +4 -0
  208. package/dist/src/ports/wu-state.ports.js.map +1 -0
  209. package/dist/src/primitives/index.d.ts +2 -0
  210. package/dist/src/primitives/index.d.ts.map +1 -0
  211. package/dist/src/primitives/index.js +5 -0
  212. package/dist/src/primitives/index.js.map +1 -0
  213. package/dist/src/runtime/index.d.ts +2 -0
  214. package/dist/src/runtime/index.d.ts.map +1 -0
  215. package/dist/src/runtime/index.js +6 -0
  216. package/dist/src/runtime/index.js.map +1 -0
  217. package/dist/src/runtime/work-classifier.d.ts +103 -0
  218. package/dist/src/runtime/work-classifier.d.ts.map +1 -0
  219. package/dist/src/runtime/work-classifier.js +427 -0
  220. package/dist/src/runtime/work-classifier.js.map +1 -0
  221. package/dist/src/sandbox/index.d.ts +6 -0
  222. package/dist/src/sandbox/index.d.ts.map +1 -0
  223. package/dist/src/sandbox/index.js +10 -0
  224. package/dist/src/sandbox/index.js.map +1 -0
  225. package/dist/src/sandbox/sandbox-allowlist.d.ts +16 -0
  226. package/dist/src/sandbox/sandbox-allowlist.d.ts.map +1 -0
  227. package/dist/src/sandbox/sandbox-allowlist.js +77 -0
  228. package/dist/src/sandbox/sandbox-allowlist.js.map +1 -0
  229. package/dist/src/sandbox/sandbox-backend-linux.d.ts +6 -0
  230. package/dist/src/sandbox/sandbox-backend-linux.d.ts.map +1 -0
  231. package/dist/src/sandbox/sandbox-backend-linux.js +67 -0
  232. package/dist/src/sandbox/sandbox-backend-linux.js.map +1 -0
  233. package/dist/src/sandbox/sandbox-backend-macos.d.ts +6 -0
  234. package/dist/src/sandbox/sandbox-backend-macos.d.ts.map +1 -0
  235. package/dist/src/sandbox/sandbox-backend-macos.js +112 -0
  236. package/dist/src/sandbox/sandbox-backend-macos.js.map +1 -0
  237. package/dist/src/sandbox/sandbox-backend-windows.d.ts +6 -0
  238. package/dist/src/sandbox/sandbox-backend-windows.d.ts.map +1 -0
  239. package/dist/src/sandbox/sandbox-backend-windows.js +30 -0
  240. package/dist/src/sandbox/sandbox-backend-windows.js.map +1 -0
  241. package/dist/src/sandbox/sandbox-profile.d.ts +58 -0
  242. package/dist/src/sandbox/sandbox-profile.d.ts.map +1 -0
  243. package/dist/src/sandbox/sandbox-profile.js +69 -0
  244. package/dist/src/sandbox/sandbox-profile.js.map +1 -0
  245. package/dist/src/schemas/index.d.ts +2 -0
  246. package/dist/src/schemas/index.d.ts.map +1 -0
  247. package/dist/src/schemas/index.js +5 -0
  248. package/dist/src/schemas/index.js.map +1 -0
  249. package/dist/src/state/date-utils.d.ts +66 -0
  250. package/dist/src/state/date-utils.d.ts.map +1 -0
  251. package/dist/src/state/date-utils.js +143 -0
  252. package/dist/src/state/date-utils.js.map +1 -0
  253. package/dist/src/state/index.d.ts +8 -0
  254. package/dist/src/state/index.d.ts.map +1 -0
  255. package/dist/src/state/index.js +15 -0
  256. package/dist/src/state/index.js.map +1 -0
  257. package/dist/src/state/state-machine.d.ts +14 -0
  258. package/dist/src/state/state-machine.d.ts.map +1 -0
  259. package/dist/src/state/state-machine.js +92 -0
  260. package/dist/src/state/state-machine.js.map +1 -0
  261. package/dist/src/state/wu-doc-types.d.ts +48 -0
  262. package/dist/src/state/wu-doc-types.d.ts.map +1 -0
  263. package/dist/src/state/wu-doc-types.js +4 -0
  264. package/dist/src/state/wu-doc-types.js.map +1 -0
  265. package/dist/src/state/wu-paths.d.ts +275 -0
  266. package/dist/src/state/wu-paths.d.ts.map +1 -0
  267. package/dist/src/state/wu-paths.js +335 -0
  268. package/dist/src/state/wu-paths.js.map +1 -0
  269. package/dist/src/state/wu-schema.d.ts +831 -0
  270. package/dist/src/state/wu-schema.d.ts.map +1 -0
  271. package/dist/src/state/wu-schema.js +934 -0
  272. package/dist/src/state/wu-schema.js.map +1 -0
  273. package/dist/src/state/wu-state-schema.d.ts +292 -0
  274. package/dist/src/state/wu-state-schema.d.ts.map +1 -0
  275. package/dist/src/state/wu-state-schema.js +215 -0
  276. package/dist/src/state/wu-state-schema.js.map +1 -0
  277. package/dist/src/state/wu-yaml.d.ts +113 -0
  278. package/dist/src/state/wu-yaml.d.ts.map +1 -0
  279. package/dist/src/state/wu-yaml.js +307 -0
  280. package/dist/src/state/wu-yaml.js.map +1 -0
  281. package/dist/tool-impl/wu-lifecycle-tools.d.ts +11 -0
  282. package/dist/tool-impl/wu-lifecycle-tools.d.ts.map +1 -1
  283. package/dist/tool-impl/wu-lifecycle-tools.js +17 -0
  284. package/dist/tool-impl/wu-lifecycle-tools.js.map +1 -1
  285. package/manifest.yaml +46 -0
  286. package/package.json +88 -3
@@ -0,0 +1,214 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * Orchestration Domain Schemas
5
+ *
6
+ * Zod schemas for runtime validation of orchestration domain types.
7
+ * Single source of truth - types are inferred from these schemas.
8
+ *
9
+ * @module orchestration.schemas
10
+ * @see {@link ./orchestration.types.ts} - Types inferred from these schemas
11
+ * @see {@link ./orchestration.constants.ts} - Constants used in validation
12
+ */
13
+ import { z } from 'zod';
14
+ import { LANES, AGENT_NAMES, SEVERITY_LEVELS, AGENT_RESULT_STATUSES, TIMELINE_EVENT_TYPES, EVENT_SEVERITY_LEVELS, USER_CHOICE_OPTIONS, DOD_TOTAL, } from './orchestration.constants.js';
15
+ /**
16
+ * Schema for the longest running WU information.
17
+ */
18
+ const LongestRunningSchema = z.object({
19
+ wuId: z.string().min(1),
20
+ lane: z.enum(LANES),
21
+ durationMs: z.number().nonnegative(),
22
+ });
23
+ /**
24
+ * Schema for pending mandatory agent information.
25
+ */
26
+ const PendingMandatorySchema = z.object({
27
+ wuId: z.string().min(1),
28
+ agent: z.enum(AGENT_NAMES),
29
+ });
30
+ /**
31
+ * Schema for active agent session (WU-1438).
32
+ */
33
+ const ActiveSessionSchema = z.object({
34
+ sessionId: z.string().uuid(),
35
+ wuId: z.string().min(1),
36
+ started: z.string().datetime(),
37
+ contextTier: z.union([z.literal(1), z.literal(2), z.literal(3)]),
38
+ incidentsLogged: z.number().int().nonnegative(),
39
+ });
40
+ /**
41
+ * Schema for worktree with uncommitted changes (WU-1748).
42
+ * Used for cross-agent visibility of abandoned WU work.
43
+ */
44
+ const WorktreeWithUncommittedChangesSchema = z.object({
45
+ /** WU ID extracted from worktree branch name */
46
+ wuId: z.string().min(1),
47
+ /** Worktree directory path */
48
+ worktreePath: z.string().min(1),
49
+ /** Number of uncommitted files */
50
+ uncommittedFileCount: z.number().int().nonnegative(),
51
+ /** Last git activity timestamp (ISO 8601) */
52
+ lastActivityTimestamp: z.string(),
53
+ });
54
+ /**
55
+ * Schema for global orchestration status.
56
+ * Shows high-level dashboard metrics at a glance.
57
+ */
58
+ export const GlobalStatusSchema = z.object({
59
+ /** Number of WUs currently in progress */
60
+ activeWUs: z.number().int().nonnegative(),
61
+ /** Number of WUs completed in the last 24 hours */
62
+ completed24h: z.number().int().nonnegative(),
63
+ /** Number of currently blocked WUs */
64
+ blocked: z.number().int().nonnegative(),
65
+ /** Number of WUs with failing gates */
66
+ gatesFailing: z.number().int().nonnegative(),
67
+ /** Information about the longest running WU, or null if none active */
68
+ longestRunning: LongestRunningSchema.nullable(),
69
+ /** List of WUs with pending mandatory agents */
70
+ pendingMandatory: z.array(PendingMandatorySchema),
71
+ /** Current active agent session, or null if none (WU-1438) */
72
+ activeSession: ActiveSessionSchema.nullable(),
73
+ /** Worktrees with uncommitted changes for cross-agent visibility (WU-1748) */
74
+ worktreesWithUncommittedChanges: z.array(WorktreeWithUncommittedChangesSchema),
75
+ });
76
+ /**
77
+ * Schema for last run information within agent metrics.
78
+ */
79
+ const LastRunSchema = z.object({
80
+ wuId: z.string().min(1),
81
+ timestamp: z.string().datetime(),
82
+ result: z.enum(['pass', 'fail']),
83
+ });
84
+ /**
85
+ * Schema for per-agent metrics.
86
+ * Tracks invocation counts, pass rates, and timing.
87
+ */
88
+ export const AgentMetricSchema = z.object({
89
+ /** Total number of times this agent has been invoked */
90
+ invoked: z.number().int().nonnegative(),
91
+ /** Pass rate as percentage (0-100) */
92
+ passRate: z.number().min(0).max(100),
93
+ /** Average duration in milliseconds */
94
+ avgDurationMs: z.number().nonnegative(),
95
+ /** Information about the most recent run, or null if never run */
96
+ lastRun: LastRunSchema.nullable(),
97
+ });
98
+ /**
99
+ * Schema for WU progress tracking.
100
+ * Shows DoD progress and agent status per WU.
101
+ */
102
+ export const WUProgressSchema = z.object({
103
+ /** Work Unit ID (e.g., "WU-1234") */
104
+ wuId: z.string().min(1),
105
+ /** Lane the WU is assigned to */
106
+ lane: z.enum(LANES),
107
+ /** Human-readable title of the WU */
108
+ title: z.string().min(1),
109
+ /** Current DoD checkpoint progress (0 to DOD_TOTAL) */
110
+ dodProgress: z.number().int().min(0).max(DOD_TOTAL),
111
+ /** Total DoD checkpoints (always DOD_TOTAL) */
112
+ dodTotal: z.literal(DOD_TOTAL),
113
+ /** Status of each agent that has been or should be run */
114
+ agents: z.record(z.string(), z.enum(AGENT_RESULT_STATUSES)),
115
+ /** Tufte-style headline sentence describing current state */
116
+ headline: z.string(),
117
+ });
118
+ /**
119
+ * Schema for timeline events.
120
+ * Records orchestration history for dashboard display.
121
+ */
122
+ export const TimelineEventSchema = z.object({
123
+ /** ISO 8601 timestamp of the event */
124
+ timestamp: z.string().datetime(),
125
+ /** Type of orchestration event */
126
+ event: z.enum(TIMELINE_EVENT_TYPES),
127
+ /** Associated Work Unit ID */
128
+ wuId: z.string().min(1),
129
+ /** Human-readable event description */
130
+ detail: z.string(),
131
+ /** Visual severity for display */
132
+ severity: z.enum(EVENT_SEVERITY_LEVELS),
133
+ });
134
+ /**
135
+ * Schema for dashboard alerts.
136
+ * Highlights items requiring attention.
137
+ */
138
+ export const AlertSchema = z.object({
139
+ /** Alert severity level */
140
+ severity: z.enum(SEVERITY_LEVELS),
141
+ /** Human-readable alert message */
142
+ message: z.string().min(1),
143
+ /** Associated Work Unit ID */
144
+ wuId: z.string().min(1),
145
+ /** Suggested action or command */
146
+ action: z.string().min(1),
147
+ });
148
+ /**
149
+ * Schema for orchestration suggestions.
150
+ * Recommendations for next actions.
151
+ */
152
+ export const SuggestionSchema = z.object({
153
+ /** Unique suggestion identifier */
154
+ id: z.string().min(1),
155
+ /** Suggestion priority level */
156
+ priority: z.enum(SEVERITY_LEVELS),
157
+ /** Short action description */
158
+ action: z.string().min(1),
159
+ /** Reason for the suggestion */
160
+ reason: z.string().min(1),
161
+ /** CLI command to execute the suggestion */
162
+ command: z.string().min(1),
163
+ });
164
+ /**
165
+ * Schema for execution plan steps.
166
+ */
167
+ const ExecutionStepSchema = z.object({
168
+ /** Execution order (1-based) */
169
+ order: z.number().int().positive(),
170
+ /** Agent to run (if applicable) */
171
+ agent: z.string().optional(),
172
+ /** Action to perform (if not an agent) */
173
+ action: z.string().optional(),
174
+ /** Step execution status */
175
+ status: z.enum(AGENT_RESULT_STATUSES),
176
+ });
177
+ /**
178
+ * Schema for execution plans.
179
+ * Proposed sequence of orchestration actions.
180
+ */
181
+ export const ExecutionPlanSchema = z.object({
182
+ /** Work Unit ID this plan is for */
183
+ wuId: z.string().min(1),
184
+ /** Ordered list of steps to execute */
185
+ steps: z.array(ExecutionStepSchema),
186
+ /** Estimated token cost for the full plan */
187
+ estimatedTokens: z.number().int().nonnegative(),
188
+ });
189
+ /**
190
+ * Schema for user choices on execution plans.
191
+ */
192
+ export const UserChoiceSchema = z.object({
193
+ /** User's choice */
194
+ choice: z.enum(USER_CHOICE_OPTIONS),
195
+ /** Modifications if choice is 'edit' */
196
+ modifications: z.array(z.string()).optional(),
197
+ });
198
+ /**
199
+ * Schema for complete dashboard data.
200
+ * Aggregates all data needed for dashboard rendering.
201
+ */
202
+ export const DashboardDataSchema = z.object({
203
+ /** Global status metrics */
204
+ globalStatus: GlobalStatusSchema,
205
+ /** Per-agent metrics keyed by agent name */
206
+ agentMetrics: z.record(z.string(), AgentMetricSchema),
207
+ /** Progress for all active WUs */
208
+ wuProgress: z.array(WUProgressSchema),
209
+ /** Recent timeline events */
210
+ timeline: z.array(TimelineEventSchema),
211
+ /** Current alerts */
212
+ alerts: z.array(AlertSchema),
213
+ });
214
+ //# sourceMappingURL=orchestration.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration.schemas.js","sourceRoot":"","sources":["../../../src/domain/orchestration.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Orchestration Domain Types
3
+ *
4
+ * TypeScript types inferred from Zod schemas.
5
+ * Single source of truth - schemas validate at runtime, types at compile time.
6
+ *
7
+ * @module orchestration.types
8
+ * @see {@link ./orchestration.schemas.ts} - Schemas these types are inferred from
9
+ * @see {@link ./orchestration.constants.ts} - Constants and derived types
10
+ */
11
+ import type { z } from 'zod';
12
+ import type { GlobalStatusSchema, AgentMetricSchema, WUProgressSchema, TimelineEventSchema, AlertSchema, SuggestionSchema, ExecutionPlanSchema, UserChoiceSchema, DashboardDataSchema } from './orchestration.schemas.js';
13
+ export type { Lane, AgentName, SeverityLevel, AgentResultStatus, TimelineEventType, EventSeverityLevel, UserChoiceOption, MandatoryAgentName, } from './orchestration.constants.js';
14
+ export { LANES, AGENT_NAMES, SEVERITY_LEVELS, AGENT_RESULT_STATUSES, TIMELINE_EVENT_TYPES, EVENT_SEVERITY_LEVELS, USER_CHOICE_OPTIONS, MANDATORY_AGENT_NAMES, } from './orchestration.constants.js';
15
+ /**
16
+ * Global orchestration status.
17
+ * Shows high-level dashboard metrics at a glance.
18
+ *
19
+ * @example
20
+ * const status: GlobalStatus = {
21
+ * activeWUs: 2,
22
+ * completed24h: 5,
23
+ * blocked: 1,
24
+ * gatesFailing: 0,
25
+ * longestRunning: { wuId: 'WU-1234', lane: 'Intelligence', durationMs: 2700000 },
26
+ * pendingMandatory: [{ wuId: 'WU-1235', agent: 'security-auditor' }],
27
+ * };
28
+ */
29
+ export type GlobalStatus = z.infer<typeof GlobalStatusSchema>;
30
+ /**
31
+ * Per-agent metrics for dashboard display.
32
+ * Tracks invocation counts, pass rates, and timing.
33
+ *
34
+ * @example
35
+ * const metric: AgentMetric = {
36
+ * invoked: 3,
37
+ * passRate: 100,
38
+ * avgDurationMs: 120000,
39
+ * lastRun: { wuId: 'WU-1234', timestamp: '2025-01-15T10:00:00Z', result: 'pass' },
40
+ * };
41
+ */
42
+ export type AgentMetric = z.infer<typeof AgentMetricSchema>;
43
+ /**
44
+ * Work Unit progress for dashboard display.
45
+ * Shows DoD progress and agent status per WU.
46
+ *
47
+ * @example
48
+ * const progress: WUProgress = {
49
+ * wuId: 'WU-1234',
50
+ * lane: 'Intelligence',
51
+ * title: 'LLM Classification Feature',
52
+ * dodProgress: 8,
53
+ * dodTotal: 11,
54
+ * agents: { 'llm-reviewer': 'pass', 'code-reviewer': 'pending' },
55
+ * headline: 'Blocked on code-reviewer - awaiting approval',
56
+ * };
57
+ */
58
+ export type WUProgress = z.infer<typeof WUProgressSchema>;
59
+ /**
60
+ * Timeline event for orchestration history.
61
+ * Records key events for dashboard display.
62
+ *
63
+ * @example
64
+ * const event: TimelineEvent = {
65
+ * timestamp: '2025-01-15T09:00:00Z',
66
+ * event: 'claim',
67
+ * wuId: 'WU-1234',
68
+ * detail: 'Claimed for Intelligence lane',
69
+ * severity: 'info',
70
+ * };
71
+ */
72
+ export type TimelineEvent = z.infer<typeof TimelineEventSchema>;
73
+ /**
74
+ * Dashboard alert for items requiring attention.
75
+ *
76
+ * @example
77
+ * const alert: Alert = {
78
+ * severity: 'high',
79
+ * message: 'Mandatory agent not yet invoked',
80
+ * wuId: 'WU-1235',
81
+ * action: 'Run security-auditor before wu:done',
82
+ * };
83
+ */
84
+ export type Alert = z.infer<typeof AlertSchema>;
85
+ /**
86
+ * Orchestration suggestion for next actions.
87
+ *
88
+ * @example
89
+ * const suggestion: Suggestion = {
90
+ * id: 'sug-001',
91
+ * priority: 'high',
92
+ * action: 'Run security-auditor',
93
+ * reason: 'WU touches auth paths',
94
+ * command: 'pnpm orchestrate:run security-auditor',
95
+ * };
96
+ */
97
+ export type Suggestion = z.infer<typeof SuggestionSchema>;
98
+ /**
99
+ * Execution plan for proposed orchestration actions.
100
+ *
101
+ * @example
102
+ * const plan: ExecutionPlan = {
103
+ * wuId: 'WU-1234',
104
+ * steps: [
105
+ * { order: 1, agent: 'llm-reviewer', status: 'pending' },
106
+ * { order: 2, action: 'gates', status: 'pending' },
107
+ * ],
108
+ * estimatedTokens: 5000,
109
+ * };
110
+ */
111
+ export type ExecutionPlan = z.infer<typeof ExecutionPlanSchema>;
112
+ /**
113
+ * User choice on execution plan confirmation.
114
+ *
115
+ * @example
116
+ * const choice: UserChoice = { choice: 'approve' };
117
+ * const editChoice: UserChoice = { choice: 'edit', modifications: ['Skip step 2'] };
118
+ */
119
+ export type UserChoice = z.infer<typeof UserChoiceSchema>;
120
+ /**
121
+ * Complete dashboard data aggregating all metrics.
122
+ * This is the main data structure passed to renderers.
123
+ *
124
+ * @example
125
+ * const data: DashboardData = {
126
+ * globalStatus: { ... },
127
+ * agentMetrics: { 'security-auditor': { ... } },
128
+ * wuProgress: [{ ... }],
129
+ * timeline: [{ ... }],
130
+ * alerts: [{ ... }],
131
+ * };
132
+ */
133
+ export type DashboardData = z.infer<typeof DashboardDataSchema>;
134
+ //# sourceMappingURL=orchestration.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration.types.d.ts","sourceRoot":"","sources":["../../../src/domain/orchestration.types.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EACV,IAAI,EACJ,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ // Re-export const values as well
4
+ export { LANES, AGENT_NAMES, SEVERITY_LEVELS, AGENT_RESULT_STATUSES, TIMELINE_EVENT_TYPES, EVENT_SEVERITY_LEVELS, USER_CHOICE_OPTIONS, MANDATORY_AGENT_NAMES, } from './orchestration.constants.js';
5
+ //# sourceMappingURL=orchestration.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration.types.js","sourceRoot":"","sources":["../../../src/domain/orchestration.types.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAsCzC,iCAAiC;AACjC,OAAO,EACL,KAAK,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Glob patterns to exclude slow integration/golden tests from changed runs.
3
+ * @type {string[]}
4
+ */
5
+ export declare const VITEST_CHANGED_EXCLUDES: readonly string[];
6
+ /**
7
+ * File extensions considered executable code for test runs.
8
+ * @type {string[]}
9
+ */
10
+ export declare const CODE_FILE_EXTENSIONS: readonly string[];
11
+ /**
12
+ * Check if a path points to a code file that should trigger full tests.
13
+ *
14
+ * @param {string} filePath - Path to check
15
+ * @returns {boolean} True if the path has a code extension
16
+ */
17
+ export declare function isCodeFilePath(filePath: string): boolean;
18
+ /**
19
+ * Options for building Vitest changed args
20
+ */
21
+ interface BuildVitestChangedArgsOptions {
22
+ /** Base branch for diff */
23
+ baseBranch?: string;
24
+ }
25
+ /**
26
+ * Build Vitest CLI args for --changed runs.
27
+ *
28
+ * @param {BuildVitestChangedArgsOptions} [options]
29
+ * @returns {string[]} Vitest args for changed test runs
30
+ */
31
+ export declare function buildVitestChangedArgs(options?: BuildVitestChangedArgsOptions): string[];
32
+ export {};
33
+ //# sourceMappingURL=incremental-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental-test.d.ts","sourceRoot":"","sources":["../../../src/methodology/incremental-test.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mBAA8D,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,oBAAoB,mBAS/B,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,WAO9C;AAED;;GAEG;AACH,UAAU,6BAA6B;IACrC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,6BAAkC,YAgBjF"}
@@ -0,0 +1,73 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ /**
4
+ * @file incremental-test.ts
5
+ * @description Helpers for Vitest --changed execution
6
+ *
7
+ * WU-1920: Add incremental test execution to gates
8
+ * WU-2504: Use Vitest --changed instead of custom file diff logic
9
+ */
10
+ import { GIT_REFS } from '../constants/wu-git-constants.js';
11
+ // WU-2790 follow-up: the software-delivery pack cannot import from
12
+ // @lumenflow/core (pack import-boundary enforcement restricts packs to
13
+ // @lumenflow/kernel + Node built-ins). Vitest --changed's base branch
14
+ // therefore stays on the pack's own GIT_REFS constant. If the host
15
+ // workspace reconfigures software_delivery.git.mainBranch, incremental
16
+ // test selection here falls back to origin/main — slightly over-selects
17
+ // when running --changed, but preserves correctness. Proper fix requires
18
+ // relocating the integration-target resolver into kernel; tracked
19
+ // separately as a pack-boundary follow-up.
20
+ /**
21
+ * Glob patterns to exclude slow integration/golden tests from changed runs.
22
+ * @type {string[]}
23
+ */
24
+ export const VITEST_CHANGED_EXCLUDES = Object.freeze(['**/*.integration.*', '**/golden-*.test.*']);
25
+ /**
26
+ * File extensions considered executable code for test runs.
27
+ * @type {string[]}
28
+ */
29
+ export const CODE_FILE_EXTENSIONS = Object.freeze([
30
+ '.ts',
31
+ '.tsx',
32
+ '.js',
33
+ '.jsx',
34
+ '.js',
35
+ '.cjs',
36
+ '.mts',
37
+ '.cts',
38
+ ]);
39
+ /**
40
+ * Check if a path points to a code file that should trigger full tests.
41
+ *
42
+ * @param {string} filePath - Path to check
43
+ * @returns {boolean} True if the path has a code extension
44
+ */
45
+ export function isCodeFilePath(filePath) {
46
+ if (!filePath || typeof filePath !== 'string') {
47
+ return false;
48
+ }
49
+ const normalized = filePath.replace(/\\/g, '/').toLowerCase();
50
+ return CODE_FILE_EXTENSIONS.some((ext) => normalized.endsWith(ext));
51
+ }
52
+ /**
53
+ * Build Vitest CLI args for --changed runs.
54
+ *
55
+ * @param {BuildVitestChangedArgsOptions} [options]
56
+ * @returns {string[]} Vitest args for changed test runs
57
+ */
58
+ export function buildVitestChangedArgs(options = {}) {
59
+ const { baseBranch = GIT_REFS.ORIGIN_MAIN } = options;
60
+ const args = [
61
+ '--changed',
62
+ baseBranch,
63
+ '--run',
64
+ '--passWithNoTests',
65
+ '--maxWorkers=1',
66
+ '--teardownTimeout=30000',
67
+ ];
68
+ for (const pattern of VITEST_CHANGED_EXCLUDES) {
69
+ args.push(`--exclude='${pattern}'`);
70
+ }
71
+ return args;
72
+ }
73
+ //# sourceMappingURL=incremental-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incremental-test.js","sourceRoot":"","sources":["../../../src/methodology/incremental-test.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,mEAAmE;AACnE,uEAAuE;AACvE,sEAAsE;AACtE,mEAAmE;AACnE,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,kEAAkE;AAClE,2CAA2C;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAEnG;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAChD,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9D,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAUD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAyC,EAAE;IAChF,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG;QACX,WAAW;QACX,UAAU;QACV,OAAO;QACP,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;KAC1B,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,uBAAuB,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './manual-test-validator.js';
2
+ export * from './incremental-test.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/methodology/index.ts"],"names":[],"mappings":"AAIA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+ // WU-2683 (INIT-058 L4): Methodology cohort barrel — re-export relocated modules.
4
+ export * from './manual-test-validator.js';
5
+ export * from './incremental-test.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/methodology/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,yCAAyC;AAEzC,kFAAkF;AAClF,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Manual Test Escape Hatch Validator
4
+ *
5
+ * WU-1433: Restricts manual-only tests for WUs touching hex core code.
6
+ * WU-2332: Require automated tests for all code files, remove lane exemptions.
7
+ *
8
+ * Implementation WUs must have at least one automated test (unit/e2e/integration).
9
+ *
10
+ * Exemptions:
11
+ * - type: documentation only
12
+ * - code_paths containing only documentation/config files (no code files)
13
+ * - WU-2273: notes containing tdd-exception: marker (explicit opt-out)
14
+ *
15
+ * @see {@link packages/@lumenflow/cli/src/lib/wu-done-validators.ts} - Integration point
16
+ * @see {@link config.directories.completeGuidePath} - TDD requirements
17
+ */
18
+ /** Minimal WU document shape for test validation */
19
+ interface WuDocForTests {
20
+ type?: string;
21
+ code_paths?: unknown;
22
+ tests?: unknown;
23
+ test_paths?: unknown;
24
+ notes?: unknown;
25
+ }
26
+ /**
27
+ * Path prefixes for hex core code requiring automated tests.
28
+ * These are the critical application layer paths.
29
+ *
30
+ * WU-1068: Changed from @exampleapp to @lumenflow for framework reusability.
31
+ * Project-specific patterns should be configured in workspace.yaml.
32
+ *
33
+ * @constant {string[]}
34
+ */
35
+ export declare const HEX_CORE_CODE_PATTERNS: readonly string[];
36
+ /**
37
+ * @deprecated Lane-based exemptions removed in WU-2332.
38
+ * Test requirements are now based on file types, not lanes.
39
+ * Kept for backward compatibility but no longer used.
40
+ * @constant {string[]}
41
+ */
42
+ export declare const EXEMPT_LANES: readonly never[];
43
+ /**
44
+ * WU types exempt from automated test requirement.
45
+ * Only 'documentation' type is exempt - actual code changes require automated tests.
46
+ *
47
+ * @constant {string[]}
48
+ */
49
+ export declare const EXEMPT_TYPES: readonly import("../constants/wu-statuses.js").WUType[];
50
+ /**
51
+ * Determine if a file path represents a code file requiring automated tests.
52
+ *
53
+ * Code files are those with extensions like .ts, .ts, .tsx, .js
54
+ * EXCEPT config files (vitest.config.ts, .eslintrc.js, etc.)
55
+ *
56
+ * @param {string} filePath - File path to check
57
+ * @returns {boolean} True if the file is a code file requiring tests
58
+ */
59
+ export declare function isCodeFile(filePath: string): boolean;
60
+ /**
61
+ * Check if code_paths contains any hex core code.
62
+ *
63
+ * @param {string[]|null|undefined} codePaths - Array of file paths from WU YAML
64
+ * @returns {boolean} True if any path is in hex core layer
65
+ */
66
+ export declare function containsHexCoreCode(codePaths: unknown): boolean;
67
+ /**
68
+ * Check if a WU is exempt from automated test requirement.
69
+ *
70
+ * WU-2332: Only type: 'documentation' is exempt.
71
+ * WU-2273: Also exempt if notes contain tdd-exception: marker,
72
+ * aligning wu:done with wu:prep behavior.
73
+ *
74
+ * Lane-based exemptions have been removed - test requirements
75
+ * are now based on file types in code_paths.
76
+ *
77
+ * @param {object} doc - WU YAML document
78
+ * @returns {boolean} True if WU is exempt
79
+ */
80
+ export declare function isExemptFromAutomatedTests(doc: WuDocForTests | null | undefined): boolean;
81
+ /**
82
+ * Validate automated test requirement for WU.
83
+ *
84
+ * WU-2332: Requirements are based on file types, not lanes.
85
+ * - WUs with ANY code files in code_paths must have automated tests
86
+ * - WUs with only docs/config files can use manual-only tests
87
+ * - type: 'documentation' is always exempt
88
+ *
89
+ * @param {object} doc - WU YAML document
90
+ * @returns {{ valid: boolean, errors: string[] }} Validation result
91
+ */
92
+ export declare function validateAutomatedTestRequirement(doc: WuDocForTests | null | undefined): {
93
+ valid: boolean;
94
+ errors: string[];
95
+ };
96
+ export {};
97
+ //# sourceMappingURL=manual-test-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual-test-validator.d.ts","sourceRoot":"","sources":["../../../src/methodology/manual-test-validator.ts"],"names":[],"mappings":";AAGA;;;;;;;;;;;;;;;GAeG;AAMH,oDAAoD;AACpD,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyBD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,mBAIjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,kBAAoB,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,YAAY,yDAA0C,CAAC;AAYpE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,WA0B1C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,WASrD;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,WAe/E;AAuCD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS;;;EAuCrF"}