@amsterdamdatalabs/enact-factory 0.1.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 (644) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +566 -0
  3. package/dist/adapters/agenticLoop.d.ts +90 -0
  4. package/dist/adapters/agenticLoop.d.ts.map +1 -0
  5. package/dist/adapters/agenticLoop.js +219 -0
  6. package/dist/adapters/agenticLoop.js.map +1 -0
  7. package/dist/adapters/base.d.ts +16 -0
  8. package/dist/adapters/base.d.ts.map +1 -0
  9. package/dist/adapters/base.js +135 -0
  10. package/dist/adapters/base.js.map +1 -0
  11. package/dist/adapters/claude.d.ts +13 -0
  12. package/dist/adapters/claude.d.ts.map +1 -0
  13. package/dist/adapters/claude.js +318 -0
  14. package/dist/adapters/claude.js.map +1 -0
  15. package/dist/adapters/codex.d.ts +14 -0
  16. package/dist/adapters/codex.d.ts.map +1 -0
  17. package/dist/adapters/codex.js +366 -0
  18. package/dist/adapters/codex.js.map +1 -0
  19. package/dist/adapters/cryptoQuantAdapter.d.ts +85 -0
  20. package/dist/adapters/cryptoQuantAdapter.d.ts.map +1 -0
  21. package/dist/adapters/cryptoQuantAdapter.js +238 -0
  22. package/dist/adapters/cryptoQuantAdapter.js.map +1 -0
  23. package/dist/adapters/cursor.d.ts +13 -0
  24. package/dist/adapters/cursor.d.ts.map +1 -0
  25. package/dist/adapters/cursor.js +300 -0
  26. package/dist/adapters/cursor.js.map +1 -0
  27. package/dist/adapters/envPath.d.ts +20 -0
  28. package/dist/adapters/envPath.d.ts.map +1 -0
  29. package/dist/adapters/envPath.js +49 -0
  30. package/dist/adapters/envPath.js.map +1 -0
  31. package/dist/adapters/hermes.d.ts +13 -0
  32. package/dist/adapters/hermes.d.ts.map +1 -0
  33. package/dist/adapters/hermes.js +283 -0
  34. package/dist/adapters/hermes.js.map +1 -0
  35. package/dist/adapters/index.d.ts +18 -0
  36. package/dist/adapters/index.d.ts.map +1 -0
  37. package/dist/adapters/index.js +56 -0
  38. package/dist/adapters/index.js.map +1 -0
  39. package/dist/adapters/opencode.d.ts +13 -0
  40. package/dist/adapters/opencode.d.ts.map +1 -0
  41. package/dist/adapters/opencode.js +282 -0
  42. package/dist/adapters/opencode.js.map +1 -0
  43. package/dist/adapters/processRegistry.d.ts +38 -0
  44. package/dist/adapters/processRegistry.d.ts.map +1 -0
  45. package/dist/adapters/processRegistry.js +147 -0
  46. package/dist/adapters/processRegistry.js.map +1 -0
  47. package/dist/adapters/responses.d.ts +16 -0
  48. package/dist/adapters/responses.d.ts.map +1 -0
  49. package/dist/adapters/responses.js +244 -0
  50. package/dist/adapters/responses.js.map +1 -0
  51. package/dist/adapters/streamBuffer.d.ts +59 -0
  52. package/dist/adapters/streamBuffer.d.ts.map +1 -0
  53. package/dist/adapters/streamBuffer.js +123 -0
  54. package/dist/adapters/streamBuffer.js.map +1 -0
  55. package/dist/adapters/tools.d.ts +30 -0
  56. package/dist/adapters/tools.d.ts.map +1 -0
  57. package/dist/adapters/tools.js +219 -0
  58. package/dist/adapters/tools.js.map +1 -0
  59. package/dist/adapters/types.d.ts +82 -0
  60. package/dist/adapters/types.d.ts.map +1 -0
  61. package/dist/adapters/types.js +6 -0
  62. package/dist/adapters/types.js.map +1 -0
  63. package/dist/agents/agentBus.d.ts +160 -0
  64. package/dist/agents/agentBus.d.ts.map +1 -0
  65. package/dist/agents/agentBus.js +350 -0
  66. package/dist/agents/agentBus.js.map +1 -0
  67. package/dist/agents/agentPair.d.ts +215 -0
  68. package/dist/agents/agentPair.d.ts.map +1 -0
  69. package/dist/agents/agentPair.js +456 -0
  70. package/dist/agents/agentPair.js.map +1 -0
  71. package/dist/agents/auditor.d.ts +27 -0
  72. package/dist/agents/auditor.d.ts.map +1 -0
  73. package/dist/agents/auditor.js +238 -0
  74. package/dist/agents/auditor.js.map +1 -0
  75. package/dist/agents/cliStreamParser.d.ts +18 -0
  76. package/dist/agents/cliStreamParser.d.ts.map +1 -0
  77. package/dist/agents/cliStreamParser.js +156 -0
  78. package/dist/agents/cliStreamParser.js.map +1 -0
  79. package/dist/agents/documenter.d.ts +31 -0
  80. package/dist/agents/documenter.d.ts.map +1 -0
  81. package/dist/agents/documenter.js +286 -0
  82. package/dist/agents/documenter.js.map +1 -0
  83. package/dist/agents/draftAnalyzer.d.ts +50 -0
  84. package/dist/agents/draftAnalyzer.d.ts.map +1 -0
  85. package/dist/agents/draftAnalyzer.js +289 -0
  86. package/dist/agents/draftAnalyzer.js.map +1 -0
  87. package/dist/agents/evaluator.d.ts +61 -0
  88. package/dist/agents/evaluator.d.ts.map +1 -0
  89. package/dist/agents/evaluator.js +338 -0
  90. package/dist/agents/evaluator.js.map +1 -0
  91. package/dist/agents/executor.d.ts +33 -0
  92. package/dist/agents/executor.d.ts.map +1 -0
  93. package/dist/agents/executor.js +130 -0
  94. package/dist/agents/executor.js.map +1 -0
  95. package/dist/agents/index.d.ts +10 -0
  96. package/dist/agents/index.d.ts.map +1 -0
  97. package/dist/agents/index.js +10 -0
  98. package/dist/agents/index.js.map +1 -0
  99. package/dist/agents/pairMetrics.d.ts +63 -0
  100. package/dist/agents/pairMetrics.d.ts.map +1 -0
  101. package/dist/agents/pairMetrics.js +232 -0
  102. package/dist/agents/pairMetrics.js.map +1 -0
  103. package/dist/agents/pairPipeline.d.ts +184 -0
  104. package/dist/agents/pairPipeline.d.ts.map +1 -0
  105. package/dist/agents/pairPipeline.js +934 -0
  106. package/dist/agents/pairPipeline.js.map +1 -0
  107. package/dist/agents/pairWebhook.d.ts +59 -0
  108. package/dist/agents/pairWebhook.d.ts.map +1 -0
  109. package/dist/agents/pairWebhook.js +242 -0
  110. package/dist/agents/pairWebhook.js.map +1 -0
  111. package/dist/agents/pipelineFormat.d.ts +8 -0
  112. package/dist/agents/pipelineFormat.d.ts.map +1 -0
  113. package/dist/agents/pipelineFormat.js +65 -0
  114. package/dist/agents/pipelineFormat.js.map +1 -0
  115. package/dist/agents/pipelineGuards.d.ts +23 -0
  116. package/dist/agents/pipelineGuards.d.ts.map +1 -0
  117. package/dist/agents/pipelineGuards.js +257 -0
  118. package/dist/agents/pipelineGuards.js.map +1 -0
  119. package/dist/agents/reviewer.d.ts +37 -0
  120. package/dist/agents/reviewer.d.ts.map +1 -0
  121. package/dist/agents/reviewer.js +214 -0
  122. package/dist/agents/reviewer.js.map +1 -0
  123. package/dist/agents/skillDocumenter.d.ts +23 -0
  124. package/dist/agents/skillDocumenter.d.ts.map +1 -0
  125. package/dist/agents/skillDocumenter.js +219 -0
  126. package/dist/agents/skillDocumenter.js.map +1 -0
  127. package/dist/agents/tester.d.ts +37 -0
  128. package/dist/agents/tester.d.ts.map +1 -0
  129. package/dist/agents/tester.js +309 -0
  130. package/dist/agents/tester.js.map +1 -0
  131. package/dist/automation/autonomousRunner.d.ts +145 -0
  132. package/dist/automation/autonomousRunner.d.ts.map +1 -0
  133. package/dist/automation/autonomousRunner.js +1272 -0
  134. package/dist/automation/autonomousRunner.js.map +1 -0
  135. package/dist/automation/dailyReporter.d.ts +26 -0
  136. package/dist/automation/dailyReporter.d.ts.map +1 -0
  137. package/dist/automation/dailyReporter.js +130 -0
  138. package/dist/automation/dailyReporter.js.map +1 -0
  139. package/dist/automation/index.d.ts +5 -0
  140. package/dist/automation/index.d.ts.map +1 -0
  141. package/dist/automation/index.js +5 -0
  142. package/dist/automation/index.js.map +1 -0
  143. package/dist/automation/longRunningMonitor.d.ts +26 -0
  144. package/dist/automation/longRunningMonitor.d.ts.map +1 -0
  145. package/dist/automation/longRunningMonitor.js +356 -0
  146. package/dist/automation/longRunningMonitor.js.map +1 -0
  147. package/dist/automation/prOwnership.d.ts +18 -0
  148. package/dist/automation/prOwnership.d.ts.map +1 -0
  149. package/dist/automation/prOwnership.js +61 -0
  150. package/dist/automation/prOwnership.js.map +1 -0
  151. package/dist/automation/runnerExecution.d.ts +57 -0
  152. package/dist/automation/runnerExecution.d.ts.map +1 -0
  153. package/dist/automation/runnerExecution.js +701 -0
  154. package/dist/automation/runnerExecution.js.map +1 -0
  155. package/dist/automation/runnerState.d.ts +170 -0
  156. package/dist/automation/runnerState.d.ts.map +1 -0
  157. package/dist/automation/runnerState.js +496 -0
  158. package/dist/automation/runnerState.js.map +1 -0
  159. package/dist/automation/runnerTypes.d.ts +57 -0
  160. package/dist/automation/runnerTypes.d.ts.map +1 -0
  161. package/dist/automation/runnerTypes.js +5 -0
  162. package/dist/automation/runnerTypes.js.map +1 -0
  163. package/dist/automation/scheduler.d.ts +75 -0
  164. package/dist/automation/scheduler.d.ts.map +1 -0
  165. package/dist/automation/scheduler.js +402 -0
  166. package/dist/automation/scheduler.js.map +1 -0
  167. package/dist/azdo/azdo.d.ts +70 -0
  168. package/dist/azdo/azdo.d.ts.map +1 -0
  169. package/dist/azdo/azdo.js +328 -0
  170. package/dist/azdo/azdo.js.map +1 -0
  171. package/dist/azdo/index.d.ts +3 -0
  172. package/dist/azdo/index.d.ts.map +1 -0
  173. package/dist/azdo/index.js +3 -0
  174. package/dist/azdo/index.js.map +1 -0
  175. package/dist/azdo/projectUpdater.d.ts +13 -0
  176. package/dist/azdo/projectUpdater.d.ts.map +1 -0
  177. package/dist/azdo/projectUpdater.js +155 -0
  178. package/dist/azdo/projectUpdater.js.map +1 -0
  179. package/dist/azureDevOps/client.d.ts +75 -0
  180. package/dist/azureDevOps/client.d.ts.map +1 -0
  181. package/dist/azureDevOps/client.js +150 -0
  182. package/dist/azureDevOps/client.js.map +1 -0
  183. package/dist/azureDevOps/hierarchy.d.ts +119 -0
  184. package/dist/azureDevOps/hierarchy.d.ts.map +1 -0
  185. package/dist/azureDevOps/hierarchy.js +470 -0
  186. package/dist/azureDevOps/hierarchy.js.map +1 -0
  187. package/dist/azureDevOps/mapper.d.ts +101 -0
  188. package/dist/azureDevOps/mapper.d.ts.map +1 -0
  189. package/dist/azureDevOps/mapper.js +438 -0
  190. package/dist/azureDevOps/mapper.js.map +1 -0
  191. package/dist/azureDevOps/stateMapping.d.ts +15 -0
  192. package/dist/azureDevOps/stateMapping.d.ts.map +1 -0
  193. package/dist/azureDevOps/stateMapping.js +141 -0
  194. package/dist/azureDevOps/stateMapping.js.map +1 -0
  195. package/dist/cli/authHandler.d.ts +13 -0
  196. package/dist/cli/authHandler.d.ts.map +1 -0
  197. package/dist/cli/authHandler.js +70 -0
  198. package/dist/cli/authHandler.js.map +1 -0
  199. package/dist/cli/checkHandler.d.ts +27 -0
  200. package/dist/cli/checkHandler.d.ts.map +1 -0
  201. package/dist/cli/checkHandler.js +560 -0
  202. package/dist/cli/checkHandler.js.map +1 -0
  203. package/dist/cli/daemon.d.ts +30 -0
  204. package/dist/cli/daemon.d.ts.map +1 -0
  205. package/dist/cli/daemon.js +141 -0
  206. package/dist/cli/daemon.js.map +1 -0
  207. package/dist/cli/factoryCommands.d.ts +3 -0
  208. package/dist/cli/factoryCommands.d.ts.map +1 -0
  209. package/dist/cli/factoryCommands.js +165 -0
  210. package/dist/cli/factoryCommands.js.map +1 -0
  211. package/dist/cli/promptHandler.d.ts +13 -0
  212. package/dist/cli/promptHandler.d.ts.map +1 -0
  213. package/dist/cli/promptHandler.js +193 -0
  214. package/dist/cli/promptHandler.js.map +1 -0
  215. package/dist/cli.d.ts +3 -0
  216. package/dist/cli.d.ts.map +1 -0
  217. package/dist/cli.js +320 -0
  218. package/dist/cli.js.map +1 -0
  219. package/dist/core/agentLifecycle.d.ts +322 -0
  220. package/dist/core/agentLifecycle.d.ts.map +1 -0
  221. package/dist/core/agentLifecycle.js +230 -0
  222. package/dist/core/agentLifecycle.js.map +1 -0
  223. package/dist/core/areaMapping.d.ts +9 -0
  224. package/dist/core/areaMapping.d.ts.map +1 -0
  225. package/dist/core/areaMapping.js +37 -0
  226. package/dist/core/areaMapping.js.map +1 -0
  227. package/dist/core/config.d.ts +469 -0
  228. package/dist/core/config.d.ts.map +1 -0
  229. package/dist/core/config.js +780 -0
  230. package/dist/core/config.js.map +1 -0
  231. package/dist/core/dashboardContract.d.ts +204 -0
  232. package/dist/core/dashboardContract.d.ts.map +1 -0
  233. package/dist/core/dashboardContract.js +205 -0
  234. package/dist/core/dashboardContract.js.map +1 -0
  235. package/dist/core/devopsModel.d.ts +138 -0
  236. package/dist/core/devopsModel.d.ts.map +1 -0
  237. package/dist/core/devopsModel.js +137 -0
  238. package/dist/core/devopsModel.js.map +1 -0
  239. package/dist/core/envFile.d.ts +11 -0
  240. package/dist/core/envFile.d.ts.map +1 -0
  241. package/dist/core/envFile.js +104 -0
  242. package/dist/core/envFile.js.map +1 -0
  243. package/dist/core/eventHub.d.ts +220 -0
  244. package/dist/core/eventHub.d.ts.map +1 -0
  245. package/dist/core/eventHub.js +136 -0
  246. package/dist/core/eventHub.js.map +1 -0
  247. package/dist/core/index.d.ts +8 -0
  248. package/dist/core/index.d.ts.map +1 -0
  249. package/dist/core/index.js +7 -0
  250. package/dist/core/index.js.map +1 -0
  251. package/dist/core/laneExecutionState.d.ts +29 -0
  252. package/dist/core/laneExecutionState.d.ts.map +1 -0
  253. package/dist/core/laneExecutionState.js +18 -0
  254. package/dist/core/laneExecutionState.js.map +1 -0
  255. package/dist/core/laneStatus.d.ts +49 -0
  256. package/dist/core/laneStatus.d.ts.map +1 -0
  257. package/dist/core/laneStatus.js +153 -0
  258. package/dist/core/laneStatus.js.map +1 -0
  259. package/dist/core/prSidecar.d.ts +96 -0
  260. package/dist/core/prSidecar.d.ts.map +1 -0
  261. package/dist/core/prSidecar.js +33 -0
  262. package/dist/core/prSidecar.js.map +1 -0
  263. package/dist/core/runtimeConfig.d.ts +6 -0
  264. package/dist/core/runtimeConfig.d.ts.map +1 -0
  265. package/dist/core/runtimeConfig.js +24 -0
  266. package/dist/core/runtimeConfig.js.map +1 -0
  267. package/dist/core/scmProvider.d.ts +19 -0
  268. package/dist/core/scmProvider.d.ts.map +1 -0
  269. package/dist/core/scmProvider.js +38 -0
  270. package/dist/core/scmProvider.js.map +1 -0
  271. package/dist/core/service.d.ts +10 -0
  272. package/dist/core/service.d.ts.map +1 -0
  273. package/dist/core/service.js +297 -0
  274. package/dist/core/service.js.map +1 -0
  275. package/dist/core/traceCollector.d.ts +105 -0
  276. package/dist/core/traceCollector.d.ts.map +1 -0
  277. package/dist/core/traceCollector.js +141 -0
  278. package/dist/core/traceCollector.js.map +1 -0
  279. package/dist/core/types.d.ts +432 -0
  280. package/dist/core/types.d.ts.map +1 -0
  281. package/dist/core/types.js +2 -0
  282. package/dist/core/types.js.map +1 -0
  283. package/dist/core/workItemMapper.d.ts +39 -0
  284. package/dist/core/workItemMapper.d.ts.map +1 -0
  285. package/dist/core/workItemMapper.js +427 -0
  286. package/dist/core/workItemMapper.js.map +1 -0
  287. package/dist/core/workItemModel.d.ts +120 -0
  288. package/dist/core/workItemModel.d.ts.map +1 -0
  289. package/dist/core/workItemModel.js +104 -0
  290. package/dist/core/workItemModel.js.map +1 -0
  291. package/dist/core/workItemPayload.d.ts +195 -0
  292. package/dist/core/workItemPayload.d.ts.map +1 -0
  293. package/dist/core/workItemPayload.js +24 -0
  294. package/dist/core/workItemPayload.js.map +1 -0
  295. package/dist/core/workspaceConfig.d.ts +57 -0
  296. package/dist/core/workspaceConfig.d.ts.map +1 -0
  297. package/dist/core/workspaceConfig.js +184 -0
  298. package/dist/core/workspaceConfig.js.map +1 -0
  299. package/dist/doctor.d.ts +18 -0
  300. package/dist/doctor.d.ts.map +1 -0
  301. package/dist/doctor.js +34 -0
  302. package/dist/doctor.js.map +1 -0
  303. package/dist/factory/activeSkill.d.ts +11 -0
  304. package/dist/factory/activeSkill.d.ts.map +1 -0
  305. package/dist/factory/activeSkill.js +44 -0
  306. package/dist/factory/activeSkill.js.map +1 -0
  307. package/dist/factory/assignment.d.ts +54 -0
  308. package/dist/factory/assignment.d.ts.map +1 -0
  309. package/dist/factory/assignment.js +94 -0
  310. package/dist/factory/assignment.js.map +1 -0
  311. package/dist/factory/auditLog.d.ts +10 -0
  312. package/dist/factory/auditLog.d.ts.map +1 -0
  313. package/dist/factory/auditLog.js +38 -0
  314. package/dist/factory/auditLog.js.map +1 -0
  315. package/dist/factory/closureRequirements.d.ts +12 -0
  316. package/dist/factory/closureRequirements.d.ts.map +1 -0
  317. package/dist/factory/closureRequirements.js +30 -0
  318. package/dist/factory/closureRequirements.js.map +1 -0
  319. package/dist/factory/delegationPrompt.d.ts +3 -0
  320. package/dist/factory/delegationPrompt.d.ts.map +1 -0
  321. package/dist/factory/delegationPrompt.js +16 -0
  322. package/dist/factory/delegationPrompt.js.map +1 -0
  323. package/dist/factory/http.d.ts +3 -0
  324. package/dist/factory/http.d.ts.map +1 -0
  325. package/dist/factory/http.js +555 -0
  326. package/dist/factory/http.js.map +1 -0
  327. package/dist/factory/lifecyclePushMap.d.ts +4 -0
  328. package/dist/factory/lifecyclePushMap.d.ts.map +1 -0
  329. package/dist/factory/lifecyclePushMap.js +7 -0
  330. package/dist/factory/lifecyclePushMap.js.map +1 -0
  331. package/dist/factory/missions.d.ts +125 -0
  332. package/dist/factory/missions.d.ts.map +1 -0
  333. package/dist/factory/missions.js +304 -0
  334. package/dist/factory/missions.js.map +1 -0
  335. package/dist/factory/mode.d.ts +9 -0
  336. package/dist/factory/mode.d.ts.map +1 -0
  337. package/dist/factory/mode.js +30 -0
  338. package/dist/factory/mode.js.map +1 -0
  339. package/dist/factory/operatorActiveSkill.d.ts +15 -0
  340. package/dist/factory/operatorActiveSkill.d.ts.map +1 -0
  341. package/dist/factory/operatorActiveSkill.js +95 -0
  342. package/dist/factory/operatorActiveSkill.js.map +1 -0
  343. package/dist/factory/paseoDispatcher.d.ts +52 -0
  344. package/dist/factory/paseoDispatcher.d.ts.map +1 -0
  345. package/dist/factory/paseoDispatcher.js +122 -0
  346. package/dist/factory/paseoDispatcher.js.map +1 -0
  347. package/dist/factory/paseoLifecycle.d.ts +32 -0
  348. package/dist/factory/paseoLifecycle.d.ts.map +1 -0
  349. package/dist/factory/paseoLifecycle.js +260 -0
  350. package/dist/factory/paseoLifecycle.js.map +1 -0
  351. package/dist/factory/paths.d.ts +31 -0
  352. package/dist/factory/paths.d.ts.map +1 -0
  353. package/dist/factory/paths.js +139 -0
  354. package/dist/factory/paths.js.map +1 -0
  355. package/dist/factory/progressWatchdog.d.ts +58 -0
  356. package/dist/factory/progressWatchdog.d.ts.map +1 -0
  357. package/dist/factory/progressWatchdog.js +160 -0
  358. package/dist/factory/progressWatchdog.js.map +1 -0
  359. package/dist/factory/roster.d.ts +59 -0
  360. package/dist/factory/roster.d.ts.map +1 -0
  361. package/dist/factory/roster.js +116 -0
  362. package/dist/factory/roster.js.map +1 -0
  363. package/dist/factory/runtime.d.ts +44 -0
  364. package/dist/factory/runtime.d.ts.map +1 -0
  365. package/dist/factory/runtime.js +238 -0
  366. package/dist/factory/runtime.js.map +1 -0
  367. package/dist/factory/sync.d.ts +29 -0
  368. package/dist/factory/sync.d.ts.map +1 -0
  369. package/dist/factory/sync.js +77 -0
  370. package/dist/factory/sync.js.map +1 -0
  371. package/dist/factory/workitemQueues.d.ts +37 -0
  372. package/dist/factory/workitemQueues.d.ts.map +1 -0
  373. package/dist/factory/workitemQueues.js +99 -0
  374. package/dist/factory/workitemQueues.js.map +1 -0
  375. package/dist/factory/workitemTriage.d.ts +9 -0
  376. package/dist/factory/workitemTriage.d.ts.map +1 -0
  377. package/dist/factory/workitemTriage.js +81 -0
  378. package/dist/factory/workitemTriage.js.map +1 -0
  379. package/dist/hooks.d.ts +18 -0
  380. package/dist/hooks.d.ts.map +1 -0
  381. package/dist/hooks.js +96 -0
  382. package/dist/hooks.js.map +1 -0
  383. package/dist/index.d.ts +3 -0
  384. package/dist/index.d.ts.map +1 -0
  385. package/dist/index.js +90 -0
  386. package/dist/index.js.map +1 -0
  387. package/dist/install/agentCatalog.d.ts +7 -0
  388. package/dist/install/agentCatalog.d.ts.map +1 -0
  389. package/dist/install/agentCatalog.js +28 -0
  390. package/dist/install/agentCatalog.js.map +1 -0
  391. package/dist/install/bundlePaths.d.ts +10 -0
  392. package/dist/install/bundlePaths.d.ts.map +1 -0
  393. package/dist/install/bundlePaths.js +30 -0
  394. package/dist/install/bundlePaths.js.map +1 -0
  395. package/dist/install/codex.d.ts +43 -0
  396. package/dist/install/codex.d.ts.map +1 -0
  397. package/dist/install/codex.js +207 -0
  398. package/dist/install/codex.js.map +1 -0
  399. package/dist/install/enactHome.d.ts +37 -0
  400. package/dist/install/enactHome.d.ts.map +1 -0
  401. package/dist/install/enactHome.js +152 -0
  402. package/dist/install/enactHome.js.map +1 -0
  403. package/dist/install/plugins.d.ts +115 -0
  404. package/dist/install/plugins.d.ts.map +1 -0
  405. package/dist/install/plugins.js +259 -0
  406. package/dist/install/plugins.js.map +1 -0
  407. package/dist/install/setup.d.ts +33 -0
  408. package/dist/install/setup.d.ts.map +1 -0
  409. package/dist/install/setup.js +167 -0
  410. package/dist/install/setup.js.map +1 -0
  411. package/dist/locale/en.d.ts +3 -0
  412. package/dist/locale/en.d.ts.map +1 -0
  413. package/dist/locale/en.js +435 -0
  414. package/dist/locale/en.js.map +1 -0
  415. package/dist/locale/index.d.ts +28 -0
  416. package/dist/locale/index.d.ts.map +1 -0
  417. package/dist/locale/index.js +84 -0
  418. package/dist/locale/index.js.map +1 -0
  419. package/dist/locale/prompts/en.d.ts +3 -0
  420. package/dist/locale/prompts/en.d.ts.map +1 -0
  421. package/dist/locale/prompts/en.js +254 -0
  422. package/dist/locale/prompts/en.js.map +1 -0
  423. package/dist/locale/types.d.ts +433 -0
  424. package/dist/locale/types.d.ts.map +1 -0
  425. package/dist/locale/types.js +5 -0
  426. package/dist/locale/types.js.map +1 -0
  427. package/dist/mcp/server.d.ts +489 -0
  428. package/dist/mcp/server.d.ts.map +1 -0
  429. package/dist/mcp/server.js +597 -0
  430. package/dist/mcp/server.js.map +1 -0
  431. package/dist/orchestration/decisionEngine.d.ts +175 -0
  432. package/dist/orchestration/decisionEngine.d.ts.map +1 -0
  433. package/dist/orchestration/decisionEngine.js +471 -0
  434. package/dist/orchestration/decisionEngine.js.map +1 -0
  435. package/dist/orchestration/index.d.ts +5 -0
  436. package/dist/orchestration/index.d.ts.map +1 -0
  437. package/dist/orchestration/index.js +5 -0
  438. package/dist/orchestration/index.js.map +1 -0
  439. package/dist/orchestration/workItemParser.d.ts +67 -0
  440. package/dist/orchestration/workItemParser.d.ts.map +1 -0
  441. package/dist/orchestration/workItemParser.js +560 -0
  442. package/dist/orchestration/workItemParser.js.map +1 -0
  443. package/dist/orchestration/workItemScheduler.d.ts +141 -0
  444. package/dist/orchestration/workItemScheduler.d.ts.map +1 -0
  445. package/dist/orchestration/workItemScheduler.js +317 -0
  446. package/dist/orchestration/workItemScheduler.js.map +1 -0
  447. package/dist/orchestration/workflow.d.ts +145 -0
  448. package/dist/orchestration/workflow.d.ts.map +1 -0
  449. package/dist/orchestration/workflow.js +301 -0
  450. package/dist/orchestration/workflow.js.map +1 -0
  451. package/dist/providers/codexSessions.d.ts +93 -0
  452. package/dist/providers/codexSessions.d.ts.map +1 -0
  453. package/dist/providers/codexSessions.js +366 -0
  454. package/dist/providers/codexSessions.js.map +1 -0
  455. package/dist/registry/bsDetector.d.ts +24 -0
  456. package/dist/registry/bsDetector.d.ts.map +1 -0
  457. package/dist/registry/bsDetector.js +276 -0
  458. package/dist/registry/bsDetector.js.map +1 -0
  459. package/dist/registry/entityScanner.d.ts +36 -0
  460. package/dist/registry/entityScanner.d.ts.map +1 -0
  461. package/dist/registry/entityScanner.js +693 -0
  462. package/dist/registry/entityScanner.js.map +1 -0
  463. package/dist/registry/index.d.ts +9 -0
  464. package/dist/registry/index.d.ts.map +1 -0
  465. package/dist/registry/index.js +13 -0
  466. package/dist/registry/index.js.map +1 -0
  467. package/dist/registry/schema.d.ts +307 -0
  468. package/dist/registry/schema.d.ts.map +1 -0
  469. package/dist/registry/schema.js +139 -0
  470. package/dist/registry/schema.js.map +1 -0
  471. package/dist/registry/sqliteStore.d.ts +101 -0
  472. package/dist/registry/sqliteStore.d.ts.map +1 -0
  473. package/dist/registry/sqliteStore.js +688 -0
  474. package/dist/registry/sqliteStore.js.map +1 -0
  475. package/dist/registry/workItemBridge.d.ts +8 -0
  476. package/dist/registry/workItemBridge.d.ts.map +1 -0
  477. package/dist/registry/workItemBridge.js +30 -0
  478. package/dist/registry/workItemBridge.js.map +1 -0
  479. package/dist/runners/cliRunner.d.ts +11 -0
  480. package/dist/runners/cliRunner.d.ts.map +1 -0
  481. package/dist/runners/cliRunner.js +193 -0
  482. package/dist/runners/cliRunner.js.map +1 -0
  483. package/dist/support/apiCache.d.ts +85 -0
  484. package/dist/support/apiCache.d.ts.map +1 -0
  485. package/dist/support/apiCache.js +163 -0
  486. package/dist/support/apiCache.js.map +1 -0
  487. package/dist/support/chat.d.ts +3 -0
  488. package/dist/support/chat.d.ts.map +1 -0
  489. package/dist/support/chat.js +305 -0
  490. package/dist/support/chat.js.map +1 -0
  491. package/dist/support/chatBackend.d.ts +25 -0
  492. package/dist/support/chatBackend.d.ts.map +1 -0
  493. package/dist/support/chatBackend.js +289 -0
  494. package/dist/support/chatBackend.js.map +1 -0
  495. package/dist/support/chatTui.d.ts +3 -0
  496. package/dist/support/chatTui.d.ts.map +1 -0
  497. package/dist/support/chatTui.js +1082 -0
  498. package/dist/support/chatTui.js.map +1 -0
  499. package/dist/support/costTracker.d.ts +29 -0
  500. package/dist/support/costTracker.d.ts.map +1 -0
  501. package/dist/support/costTracker.js +113 -0
  502. package/dist/support/costTracker.js.map +1 -0
  503. package/dist/support/dashboardHtml.d.ts +5 -0
  504. package/dist/support/dashboardHtml.d.ts.map +1 -0
  505. package/dist/support/dashboardHtml.js +2629 -0
  506. package/dist/support/dashboardHtml.js.map +1 -0
  507. package/dist/support/dev.d.ts +55 -0
  508. package/dist/support/dev.d.ts.map +1 -0
  509. package/dist/support/dev.js +298 -0
  510. package/dist/support/dev.js.map +1 -0
  511. package/dist/support/editParser.d.ts +37 -0
  512. package/dist/support/editParser.d.ts.map +1 -0
  513. package/dist/support/editParser.js +365 -0
  514. package/dist/support/editParser.js.map +1 -0
  515. package/dist/support/ghosttyThemeCatalog.generated.d.ts +2 -0
  516. package/dist/support/ghosttyThemeCatalog.generated.d.ts.map +1 -0
  517. package/dist/support/ghosttyThemeCatalog.generated.js +11116 -0
  518. package/dist/support/ghosttyThemeCatalog.generated.js.map +1 -0
  519. package/dist/support/gitStatus.d.ts +21 -0
  520. package/dist/support/gitStatus.d.ts.map +1 -0
  521. package/dist/support/gitStatus.js +108 -0
  522. package/dist/support/gitStatus.js.map +1 -0
  523. package/dist/support/gitTracker.d.ts +30 -0
  524. package/dist/support/gitTracker.d.ts.map +1 -0
  525. package/dist/support/gitTracker.js +143 -0
  526. package/dist/support/gitTracker.js.map +1 -0
  527. package/dist/support/index.d.ts +12 -0
  528. package/dist/support/index.d.ts.map +1 -0
  529. package/dist/support/index.js +12 -0
  530. package/dist/support/index.js.map +1 -0
  531. package/dist/support/planner.d.ts +64 -0
  532. package/dist/support/planner.d.ts.map +1 -0
  533. package/dist/support/planner.js +396 -0
  534. package/dist/support/planner.js.map +1 -0
  535. package/dist/support/projectMapper.d.ts +46 -0
  536. package/dist/support/projectMapper.d.ts.map +1 -0
  537. package/dist/support/projectMapper.js +273 -0
  538. package/dist/support/projectMapper.js.map +1 -0
  539. package/dist/support/pty-helper.py +117 -0
  540. package/dist/support/quotaTracker.d.ts +29 -0
  541. package/dist/support/quotaTracker.d.ts.map +1 -0
  542. package/dist/support/quotaTracker.js +89 -0
  543. package/dist/support/quotaTracker.js.map +1 -0
  544. package/dist/support/rateLimiter.d.ts +101 -0
  545. package/dist/support/rateLimiter.d.ts.map +1 -0
  546. package/dist/support/rateLimiter.js +219 -0
  547. package/dist/support/rateLimiter.js.map +1 -0
  548. package/dist/support/rollback.d.ts +61 -0
  549. package/dist/support/rollback.d.ts.map +1 -0
  550. package/dist/support/rollback.js +329 -0
  551. package/dist/support/rollback.js.map +1 -0
  552. package/dist/support/sharedShell.d.ts +17 -0
  553. package/dist/support/sharedShell.d.ts.map +1 -0
  554. package/dist/support/sharedShell.js +439 -0
  555. package/dist/support/sharedShell.js.map +1 -0
  556. package/dist/support/stuckDetector.d.ts +68 -0
  557. package/dist/support/stuckDetector.d.ts.map +1 -0
  558. package/dist/support/stuckDetector.js +174 -0
  559. package/dist/support/stuckDetector.js.map +1 -0
  560. package/dist/support/terminalBridge.d.ts +18 -0
  561. package/dist/support/terminalBridge.d.ts.map +1 -0
  562. package/dist/support/terminalBridge.js +553 -0
  563. package/dist/support/terminalBridge.js.map +1 -0
  564. package/dist/support/timeWindow.d.ts +60 -0
  565. package/dist/support/timeWindow.d.ts.map +1 -0
  566. package/dist/support/timeWindow.js +236 -0
  567. package/dist/support/timeWindow.js.map +1 -0
  568. package/dist/support/uiThemes.d.ts +44 -0
  569. package/dist/support/uiThemes.d.ts.map +1 -0
  570. package/dist/support/uiThemes.js +290 -0
  571. package/dist/support/uiThemes.js.map +1 -0
  572. package/dist/support/web.d.ts +29 -0
  573. package/dist/support/web.d.ts.map +1 -0
  574. package/dist/support/web.js +1097 -0
  575. package/dist/support/web.js.map +1 -0
  576. package/dist/support/worktreeManager.d.ts +20 -0
  577. package/dist/support/worktreeManager.d.ts.map +1 -0
  578. package/dist/support/worktreeManager.js +140 -0
  579. package/dist/support/worktreeManager.js.map +1 -0
  580. package/dist/task_state_model.py +55 -0
  581. package/dist/workItemState/store.d.ts +122 -0
  582. package/dist/workItemState/store.d.ts.map +1 -0
  583. package/dist/workItemState/store.js +438 -0
  584. package/dist/workItemState/store.js.map +1 -0
  585. package/dist/workItems/azdoBridge.d.ts +42 -0
  586. package/dist/workItems/azdoBridge.d.ts.map +1 -0
  587. package/dist/workItems/azdoBridge.js +143 -0
  588. package/dist/workItems/azdoBridge.js.map +1 -0
  589. package/dist/workItems/azdoSyncRuntime.d.ts +28 -0
  590. package/dist/workItems/azdoSyncRuntime.d.ts.map +1 -0
  591. package/dist/workItems/azdoSyncRuntime.js +158 -0
  592. package/dist/workItems/azdoSyncRuntime.js.map +1 -0
  593. package/dist/workItems/azureDevOpsSync.d.ts +128 -0
  594. package/dist/workItems/azureDevOpsSync.d.ts.map +1 -0
  595. package/dist/workItems/azureDevOpsSync.js +748 -0
  596. package/dist/workItems/azureDevOpsSync.js.map +1 -0
  597. package/dist/workItems/helpers.d.ts +11 -0
  598. package/dist/workItems/helpers.d.ts.map +1 -0
  599. package/dist/workItems/helpers.js +17 -0
  600. package/dist/workItems/helpers.js.map +1 -0
  601. package/dist/workItems/index.d.ts +21 -0
  602. package/dist/workItems/index.d.ts.map +1 -0
  603. package/dist/workItems/index.js +89 -0
  604. package/dist/workItems/index.js.map +1 -0
  605. package/dist/workItems/localWorkItemFetcher.d.ts +55 -0
  606. package/dist/workItems/localWorkItemFetcher.d.ts.map +1 -0
  607. package/dist/workItems/localWorkItemFetcher.js +209 -0
  608. package/dist/workItems/localWorkItemFetcher.js.map +1 -0
  609. package/dist/workItems/migrations/001_rename_workItem_to_work_item.sql +10 -0
  610. package/dist/workItems/postgresStore.d.ts +78 -0
  611. package/dist/workItems/postgresStore.d.ts.map +1 -0
  612. package/dist/workItems/postgresStore.js +937 -0
  613. package/dist/workItems/postgresStore.js.map +1 -0
  614. package/dist/workItems/schema.d.ts +257 -0
  615. package/dist/workItems/schema.d.ts.map +1 -0
  616. package/dist/workItems/schema.js +176 -0
  617. package/dist/workItems/schema.js.map +1 -0
  618. package/dist/workItems/sqliteStore.d.ts +124 -0
  619. package/dist/workItems/sqliteStore.d.ts.map +1 -0
  620. package/dist/workItems/sqliteStore.js +713 -0
  621. package/dist/workItems/sqliteStore.js.map +1 -0
  622. package/dist/workItems/workItemBoardHtml.d.ts +5 -0
  623. package/dist/workItems/workItemBoardHtml.d.ts.map +1 -0
  624. package/dist/workItems/workItemBoardHtml.js +2192 -0
  625. package/dist/workItems/workItemBoardHtml.js.map +1 -0
  626. package/package.json +99 -0
  627. package/templates/AGENTS.md +432 -0
  628. package/templates/BOOT.md +25 -0
  629. package/templates/BOOTSTRAP.md +50 -0
  630. package/templates/CHANGELOG_AUDIT.md +74 -0
  631. package/templates/HEARTBEAT.md +86 -0
  632. package/templates/IDENTITY.md +27 -0
  633. package/templates/PR_LAND.md +75 -0
  634. package/templates/PR_REVIEW.md +97 -0
  635. package/templates/SOUL.dev.md +52 -0
  636. package/templates/SOUL.md +81 -0
  637. package/templates/TOOLS.md +52 -0
  638. package/templates/USER.md +22 -0
  639. package/templates/WORKITEM_ANALYSIS.md +31 -0
  640. package/templates/agents/executor.md +26 -0
  641. package/templates/agents/plan.md +22 -0
  642. package/templates/agents/ralph.md +37 -0
  643. package/templates/agents/review.md +22 -0
  644. package/templates/agents/team.md +39 -0
@@ -0,0 +1,427 @@
1
+ // ============================================
2
+ // EnactFactory - Work-Item Mapper (Wave 4)
3
+ // Pure function: WorkItem + optional sources → WorkItemPayload
4
+ // No I/O, no side effects, import-only from existing types.
5
+ // ============================================
6
+ // ---------------------------------------------------------------------------
7
+ // 1. COMPATIBILITY MAPPINGS
8
+ // ---------------------------------------------------------------------------
9
+ /**
10
+ * Map `WorkItemStatus` → business WorkItemState tier + state.
11
+ *
12
+ * Compatibility table (from WAVE_4_COMPATIBILITY_MAPPING.md):
13
+ *
14
+ * | WorkItemStatus | tier | state |
15
+ * |--------------|------------|-------------|
16
+ * | backlog | executable | New |
17
+ * | todo | executable | Approved |
18
+ * | in_progress | executable | In Progress |
19
+ * | blocked | executable | Committed |
20
+ * | in_review | executable | In Testing |
21
+ * | done | executable | Done |
22
+ * | duplicate | executable | Removed |
23
+ * | cancelled | executable | Removed |
24
+ */
25
+ function workItemStatusToBusinessState(status) {
26
+ switch (status) {
27
+ case 'todo':
28
+ return { tier: 'executable', state: 'Approved' };
29
+ case 'in_progress':
30
+ return { tier: 'executable', state: 'In Progress' };
31
+ case 'blocked':
32
+ return { tier: 'executable', state: 'Committed' };
33
+ case 'in_review':
34
+ return { tier: 'executable', state: 'In Testing' };
35
+ case 'done':
36
+ return { tier: 'executable', state: 'Done' };
37
+ case 'duplicate':
38
+ case 'cancelled':
39
+ return { tier: 'executable', state: 'Removed' };
40
+ case 'backlog':
41
+ default:
42
+ return { tier: 'executable', state: 'New' };
43
+ }
44
+ }
45
+ /**
46
+ * Map `WorkItemExecutionStatus` → ExecutionPhase.
47
+ *
48
+ * Compatibility table (from WAVE_4_COMPATIBILITY_MAPPING.md):
49
+ *
50
+ * | WorkItemExecutionStatus | ExecutionPhase |
51
+ * |---------------------|----------------|
52
+ * | backlog | idle |
53
+ * | todo | idle |
54
+ * | ready | idle |
55
+ * | dispatched | dispatching |
56
+ * | blocked | halted |
57
+ * | in_progress | implementing |
58
+ * | in_review | reviewing |
59
+ * | needs_input | awaiting_input |
60
+ * | decomposed | planning |
61
+ * | done | done |
62
+ * | failed | failed |
63
+ * | halted | halted |
64
+ */
65
+ function workItemExecutionStatusToPhase(status) {
66
+ switch (status) {
67
+ case 'dispatched':
68
+ return 'dispatching';
69
+ case 'in_progress':
70
+ return 'implementing';
71
+ case 'in_review':
72
+ return 'reviewing';
73
+ case 'decomposed':
74
+ return 'planning';
75
+ case 'done':
76
+ return 'done';
77
+ case 'failed':
78
+ return 'failed';
79
+ case 'blocked':
80
+ case 'halted':
81
+ return 'halted';
82
+ case 'needs_input':
83
+ return 'awaiting_input';
84
+ case 'backlog':
85
+ case 'todo':
86
+ case 'ready':
87
+ default:
88
+ return 'idle';
89
+ }
90
+ }
91
+ /**
92
+ * Map `PairSessionStatus` → ExecutionPhase + ReviewState.
93
+ *
94
+ * Compatibility table (from WAVE_4_COMPATIBILITY_MAPPING.md):
95
+ *
96
+ * | PairSessionStatus | ExecutionPhase | ReviewState |
97
+ * |-------------------|----------------|-------------|
98
+ * | pending | idle | none |
99
+ * | working | implementing | none |
100
+ * | reviewing | reviewing | pending |
101
+ * | revising | revising | rejected |
102
+ * | approved | done | approved |
103
+ * | rejected | failed | rejected |
104
+ * | failed | failed | none |
105
+ * | cancelled | halted | none |
106
+ */
107
+ function pairSessionStatusToPhaseAndReview(status) {
108
+ switch (status) {
109
+ case 'working':
110
+ return { phase: 'implementing', review: 'none' };
111
+ case 'reviewing':
112
+ return { phase: 'reviewing', review: 'pending' };
113
+ case 'revising':
114
+ return { phase: 'revising', review: 'rejected' };
115
+ case 'approved':
116
+ return { phase: 'done', review: 'approved' };
117
+ case 'rejected':
118
+ return { phase: 'failed', review: 'rejected' };
119
+ case 'failed':
120
+ return { phase: 'failed', review: 'none' };
121
+ case 'cancelled':
122
+ return { phase: 'halted', review: 'none' };
123
+ case 'pending':
124
+ default:
125
+ return { phase: 'idle', review: 'none' };
126
+ }
127
+ }
128
+ /**
129
+ * Map `PipelineResult.finalStatus` → Resolution + ReviewState.
130
+ *
131
+ * Compatibility table (from WAVE_4_COMPATIBILITY_MAPPING.md):
132
+ *
133
+ * | PipelineResult.finalStatus | Resolution | ReviewState |
134
+ * |----------------------------|-------------|-------------|
135
+ * | approved | succeeded | approved |
136
+ * | rejected | failed | rejected |
137
+ * | failed | failed | none |
138
+ * | cancelled | cancelled | none |
139
+ * | decomposed | unresolved | none |
140
+ * | dispatched | unresolved | none |
141
+ */
142
+ function pipelineFinalStatusToResolutionAndReview(finalStatus) {
143
+ switch (finalStatus) {
144
+ case 'approved':
145
+ return { resolution: 'succeeded', review: 'approved' };
146
+ case 'rejected':
147
+ return { resolution: 'failed', review: 'rejected' };
148
+ case 'failed':
149
+ return { resolution: 'failed', review: 'none' };
150
+ case 'cancelled':
151
+ return { resolution: 'cancelled', review: 'none' };
152
+ case 'decomposed':
153
+ case 'dispatched':
154
+ return { resolution: 'unresolved', review: 'none' };
155
+ default:
156
+ return { resolution: 'unresolved', review: 'none' };
157
+ }
158
+ }
159
+ /**
160
+ * Map `WorkItemStatus` → Resolution (fallback when no PipelineResult available).
161
+ */
162
+ function workItemStatusToResolution(status) {
163
+ switch (status) {
164
+ case 'done':
165
+ return 'succeeded';
166
+ case 'duplicate':
167
+ return 'duplicate';
168
+ case 'cancelled':
169
+ return 'cancelled';
170
+ default:
171
+ return 'unresolved';
172
+ }
173
+ }
174
+ // ---------------------------------------------------------------------------
175
+ // 2. WORKTREE LIFECYCLE DERIVATION
176
+ // ---------------------------------------------------------------------------
177
+ /**
178
+ * Derive a `WorktreeLifecycle` from the workItem state worktree sub-record.
179
+ * Returns null if no worktree data is available.
180
+ */
181
+ function deriveWorktreeLifecycle(workItemState, executionPhase) {
182
+ if (!workItemState)
183
+ return null;
184
+ const { worktree } = workItemState;
185
+ if (!worktree.branchName && !worktree.worktreePath)
186
+ return null;
187
+ // Derive worktree status from execution phase
188
+ let status;
189
+ switch (executionPhase) {
190
+ case 'idle':
191
+ case 'planning':
192
+ status = 'idle';
193
+ break;
194
+ case 'implementing':
195
+ case 'reviewing':
196
+ case 'revising':
197
+ case 'testing':
198
+ case 'documenting':
199
+ status = 'active';
200
+ break;
201
+ case 'done':
202
+ status = 'merged';
203
+ break;
204
+ case 'halted':
205
+ case 'failed':
206
+ status = 'torn-down';
207
+ break;
208
+ default:
209
+ status = 'idle';
210
+ }
211
+ return { phase: executionPhase, status };
212
+ }
213
+ // ---------------------------------------------------------------------------
214
+ // 3. MAIN MAPPER
215
+ // ---------------------------------------------------------------------------
216
+ /**
217
+ * Map an `WorkItem` + optional runtime sources to the canonical `WorkItemPayload`.
218
+ *
219
+ * This is a **pure function**: no I/O, no mutations, no side effects.
220
+ * All sources are read-only inputs; nothing is written.
221
+ *
222
+ * Priority order for execution phase / review state resolution:
223
+ * 1. `pipelineResult` — most authoritative (final pipeline outcome)
224
+ * 2. `pair` — active pair session (in-progress)
225
+ * 3. `workItemState` — persisted workItem execution status
226
+ * 4. `workItem.status` — fallback business-state derivation
227
+ *
228
+ * @param workItem - The WorkItem record from the WorkItem store (required).
229
+ * @param workItemState - Optional: persisted execution + worktree state.
230
+ * @param pair - Optional: active or recently completed PairSession.
231
+ * @param pipelineResult - Optional: final PipelineResult for the last run.
232
+ * @param prState - Optional: PR sidecar state from Wave 3.
233
+ */
234
+ export function recordToWorkItemPayload(workItem, workItemState, pair, pipelineResult, prState) {
235
+ // --- Business state from WorkItemStatus (Wave 1 mapping) ---
236
+ const businessState = workItemStatusToBusinessState(workItem.status);
237
+ // --- Resolve execution phase + review state (priority cascade) ---
238
+ let executionPhase = 'idle';
239
+ let reviewState = workItem.reviewState ?? 'none';
240
+ let resolution = workItem.resolution ?? workItemStatusToResolution(workItem.status);
241
+ if (pipelineResult) {
242
+ // PipelineResult is most authoritative — it reflects the final outcome
243
+ const mapped = pipelineFinalStatusToResolutionAndReview(pipelineResult.finalStatus);
244
+ resolution = mapped.resolution;
245
+ reviewState = mapped.review;
246
+ // Derive phase from final status
247
+ executionPhase =
248
+ pipelineResult.finalStatus === 'approved'
249
+ ? 'done'
250
+ : pipelineResult.finalStatus === 'cancelled'
251
+ ? 'halted'
252
+ : pipelineResult.finalStatus === 'failed' || pipelineResult.finalStatus === 'rejected'
253
+ ? 'failed'
254
+ : 'planning';
255
+ }
256
+ else if (pair) {
257
+ // Active or recently completed PairSession
258
+ const mapped = pairSessionStatusToPhaseAndReview(pair.status);
259
+ executionPhase = mapped.phase;
260
+ reviewState = mapped.review;
261
+ }
262
+ else if (workItemState) {
263
+ // Persisted workItem execution status
264
+ executionPhase = workItemExecutionStatusToPhase(workItemState.execution.status);
265
+ if (!resolution) {
266
+ resolution =
267
+ workItemState.execution.status === 'done'
268
+ ? 'succeeded'
269
+ : workItemState.execution.status === 'failed'
270
+ ? 'failed'
271
+ : 'unresolved';
272
+ }
273
+ }
274
+ // --- Build execution snapshot (null if truly idle with no agent context) ---
275
+ let execution = null;
276
+ if (executionPhase !== 'idle' || pair || workItemState) {
277
+ const artifacts = [];
278
+ // Attach executor artifact if available from pair session
279
+ if (pair?.executor.result) {
280
+ const executorResult = pair.executor.result;
281
+ artifacts.push({
282
+ phase: 'implementing',
283
+ summary: executorResult.summary,
284
+ filesChanged: executorResult.filesChanged,
285
+ commands: executorResult.commands,
286
+ diffSummary: executorResult.output,
287
+ selfReviewPassed: executorResult.success,
288
+ confidencePercent: executorResult.confidencePercent ?? 0,
289
+ });
290
+ }
291
+ // Attach reviewer artifact if available from pair session
292
+ if (pair?.reviewer.feedback) {
293
+ const feedback = pair.reviewer.feedback;
294
+ artifacts.push({
295
+ phase: 'reviewing',
296
+ approved: feedback.decision === 'approve',
297
+ comments: feedback.feedback,
298
+ iteration: pair.executor.attempts,
299
+ });
300
+ }
301
+ const currentRole = executionPhase === 'reviewing'
302
+ ? 'critic'
303
+ : executionPhase === 'testing'
304
+ ? 'tester'
305
+ : executionPhase === 'documenting'
306
+ ? 'documenter'
307
+ : executionPhase === 'planning'
308
+ ? 'planner'
309
+ : 'coder';
310
+ execution = {
311
+ currentRole,
312
+ currentPhase: executionPhase,
313
+ artifacts,
314
+ };
315
+ }
316
+ // --- Worktree lifecycle (Wave 3, executable items only) ---
317
+ const worktreeLifecycle = deriveWorktreeLifecycle(workItemState, executionPhase);
318
+ // --- PR sidecar (Wave 3, optional) ---
319
+ const prSidecar = prState ?? null;
320
+ // --- Assemble LayeredState ---
321
+ const layeredState = {
322
+ business: businessState,
323
+ execution,
324
+ review: reviewState,
325
+ prSidecar,
326
+ resolution,
327
+ };
328
+ // --- Kind + Area inference from workItem labels / projectId ---
329
+ // WorkItems don't carry a WorkItemKind directly; derive from labels or default.
330
+ const kind = workItem.kind ?? deriveKind(workItem);
331
+ const area = workItem.area ?? deriveArea(workItem);
332
+ // --- Operator lane hint: deterministic AzDo intake → lane routing ---
333
+ const operatorLane = deriveOperatorLaneHint(kind, workItem.labels);
334
+ return {
335
+ id: workItem.id,
336
+ kind,
337
+ title: workItem.title,
338
+ area,
339
+ parentId: workItem.parentId ?? null,
340
+ layeredState,
341
+ worktreeLifecycle,
342
+ createdAt: workItem.createdAt,
343
+ updatedAt: workItem.updatedAt,
344
+ ...(operatorLane !== undefined ? { operatorLane } : {}),
345
+ };
346
+ }
347
+ // ---------------------------------------------------------------------------
348
+ // 4. OPERATOR LANE HINT DERIVATION
349
+ // ---------------------------------------------------------------------------
350
+ /**
351
+ * Schedulable lanes — must stay in sync with SCHEDULABLE_LANES in server.ts.
352
+ * Only values in this set may be emitted as an operatorLaneHint.
353
+ */
354
+ const SCHEDULABLE_LANES = new Set(['ralph']);
355
+ /**
356
+ * Deterministic mapping of AzDo work-item kind + tags → operator lane hint.
357
+ *
358
+ * Derivation rules (Phase 1 consolidation):
359
+ * 1. kind === 'Bug' | 'Backlog item' → `'ralph'`
360
+ * 2. All other kinds → `undefined` (no hint)
361
+ *
362
+ * The returned value is always validated against SCHEDULABLE_LANES; if the
363
+ * derived lane is not schedulable the function returns undefined. The project
364
+ * operators allowlist is enforced downstream by pickNextOperator.
365
+ */
366
+ export function deriveOperatorLaneHint(kind, _tags) {
367
+ let lane;
368
+ // Route executable delivery items through ralph during Phase 1.
369
+ if (kind === 'Bug' || kind === 'Backlog item') {
370
+ lane = 'ralph';
371
+ }
372
+ // Validate against SCHEDULABLE_LANES — never emit an unschedulable hint
373
+ if (lane !== undefined && !SCHEDULABLE_LANES.has(lane)) {
374
+ return undefined;
375
+ }
376
+ return lane;
377
+ }
378
+ // ---------------------------------------------------------------------------
379
+ // 5. KIND + AREA DERIVATION HELPERS
380
+ // ---------------------------------------------------------------------------
381
+ /**
382
+ * Derive a `WorkItemKind` from the workItem.
383
+ *
384
+ * Resolution order:
385
+ * 1. `labels` array — first label matching a kind wins (case-insensitive).
386
+ * 2. Default: `'Backlog item'` (most common executable kind).
387
+ */
388
+ function deriveKind(workItem) {
389
+ const KIND_LABELS = {
390
+ epic: 'Epic',
391
+ feature: 'Feature',
392
+ bug: 'Bug',
393
+ 'backlog item': 'Backlog item',
394
+ backlog: 'Backlog item',
395
+ };
396
+ for (const label of workItem.labels) {
397
+ const key = label.toLowerCase();
398
+ if (key in KIND_LABELS)
399
+ return KIND_LABELS[key];
400
+ }
401
+ return 'Backlog item';
402
+ }
403
+ /**
404
+ * Derive an `Area` from the workItem's projectId.
405
+ *
406
+ * Falls back to `'Enact/Factory'` when no match is found, since all workItems
407
+ * in this store belong to the Factory system.
408
+ */
409
+ function deriveArea(workItem) {
410
+ const AREA_MAP = {
411
+ cli: 'Enact/CLI',
412
+ context: 'Enact/Context',
413
+ factory: 'Enact/Factory',
414
+ wiki: 'Enact/Wiki',
415
+ 'mission-control': 'Enact/Mission Control',
416
+ 'proc-tap': 'Enact/Proc Tap',
417
+ runtime: 'Enact/Runtime',
418
+ watchdog: 'Enact/Watchdog',
419
+ };
420
+ const projectLower = (workItem.projectId ?? '').toLowerCase();
421
+ for (const [key, area] of Object.entries(AREA_MAP)) {
422
+ if (projectLower.includes(key))
423
+ return area;
424
+ }
425
+ return 'Enact/Factory';
426
+ }
427
+ //# sourceMappingURL=workItemMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workItemMapper.js","sourceRoot":"","sources":["../../src/core/workItemMapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Operator-facing kind labels that map directly to Azure DevOps work-item types.
3
+ * External UI surfaces must use these labels verbatim.
4
+ */
5
+ export type WorkItemKind = 'Epic' | 'Feature' | 'Backlog item' | 'Bug';
6
+ /**
7
+ * Tuple of all WorkItemKind values (useful for iteration and validation).
8
+ */
9
+ export declare const WORK_ITEM_KINDS: readonly WorkItemKind[];
10
+ /**
11
+ * The two broad tier groups used to pick the correct state machine.
12
+ *
13
+ * - `planning` → Epic | Feature (simpler 4-state machine)
14
+ * - `executable` → Backlog item | Bug (richer 7-state machine)
15
+ */
16
+ export type WorkItemTier = 'planning' | 'executable';
17
+ /** Derive the tier from a kind value. */
18
+ export declare function tierOf(kind: WorkItemKind): WorkItemTier;
19
+ /**
20
+ * Allowed parent kinds for each item kind.
21
+ *
22
+ * - Epic → no parent (root)
23
+ * - Feature → Epic
24
+ * - Backlog item | Bug → Feature (or Epic as a direct parent if needed)
25
+ */
26
+ export type ParentKindMap = {
27
+ Epic: null;
28
+ Feature: 'Epic';
29
+ 'Backlog item': 'Feature' | 'Epic';
30
+ Bug: 'Feature' | 'Epic';
31
+ };
32
+ /**
33
+ * Type-safe parent constraint: given Kind K, ParentKind<K> is the union of
34
+ * allowed parent kinds (or null for roots).
35
+ */
36
+ export type ParentKind<K extends WorkItemKind> = ParentKindMap[K];
37
+ /**
38
+ * Canonical area paths — must match Azure DevOps area configuration exactly.
39
+ * Format: `Enact/<sub-area>`
40
+ */
41
+ export type Area = 'Enact/CLI' | 'Enact/Context' | 'Enact/Factory' | 'Enact/Gateway' | 'Enact/Wiki' | 'Enact/Mission Control' | 'Enact/Proc Tap' | 'Enact/Runtime' | 'Enact/Watchdog';
42
+ /** Ordered list of all canonical areas. */
43
+ export declare const AREAS: readonly Area[];
44
+ /**
45
+ * 1 repo = 1 area mapping type.
46
+ * Maps a repository name (as it appears in Azure DevOps / GitHub) to its
47
+ * single owning Area. This is the authoritative ownership table; any Epic
48
+ * created from work in that repo inherits the mapped area by default.
49
+ */
50
+ export type RepoAreaMap = Record<string, Area>;
51
+ /**
52
+ * Canonical mapping for the ten known Enact repositories.
53
+ */
54
+ export declare const REPO_AREA_MAP: RepoAreaMap;
55
+ /**
56
+ * Business-lifecycle states for Epic and Feature (planning tier).
57
+ * Matches the Azure DevOps "Scrum" state set for planning-level items.
58
+ */
59
+ export type EpicFeatureState = 'New' | 'In Progress' | 'Done' | 'Removed';
60
+ /** Ordered tuple of Epic/Feature states. */
61
+ export declare const EPIC_FEATURE_STATES: readonly EpicFeatureState[];
62
+ /**
63
+ * Business-lifecycle states for executable work items (Backlog item | Bug).
64
+ * Matches the Azure DevOps "Scrum" state set for requirement-level items.
65
+ */
66
+ export type ExecutableState = 'New' | 'Approved' | 'Committed' | 'In Progress' | 'In Testing' | 'Done' | 'Removed';
67
+ /** Ordered tuple of executable item states. */
68
+ export declare const EXECUTABLE_STATES: readonly ExecutableState[];
69
+ /**
70
+ * Discriminated union that ties a WorkItemKind to its correct state type.
71
+ */
72
+ export type WorkItemState = {
73
+ tier: 'planning';
74
+ state: EpicFeatureState;
75
+ } | {
76
+ tier: 'executable';
77
+ state: ExecutableState;
78
+ };
79
+ /**
80
+ * Canonical internal work-item type.
81
+ *
82
+ * - `kind` drives the hierarchy and state-machine selection.
83
+ * - `area` is mandatory on every item; Epic must have exactly one area.
84
+ * - `parentKind` is `null` for Epics and the parent's kind for all others.
85
+ * - `state` is the business-lifecycle state appropriate for this item's tier.
86
+ */
87
+ export type WorkItem = {
88
+ /** Azure DevOps / UI-facing kind label. */
89
+ kind: WorkItemKind;
90
+ /** Owning area — mandatory; Epic carries exactly one. */
91
+ area: Area;
92
+ /**
93
+ * Parent item kind. Null for Epics.
94
+ * Feature → 'Epic'. Backlog item | Bug → 'Feature' | 'Epic'.
95
+ */
96
+ parentKind: ParentKind<WorkItemKind>;
97
+ /** Business-lifecycle state, discriminated by tier. */
98
+ lifecycle: WorkItemState;
99
+ };
100
+ /**
101
+ * Return the valid next states from `current` for a given `tier`.
102
+ *
103
+ * - `'planning'` → operates on the EpicFeatureState machine.
104
+ * - `'executable'` → operates on the ExecutableState machine.
105
+ *
106
+ * Returns an empty array when `current` is a terminal state (e.g. `Removed`).
107
+ *
108
+ * @throws {Error} if `current` is not a valid state for the given tier.
109
+ *
110
+ * @example
111
+ * nextStates('planning', 'New') // ['In Progress', 'Removed']
112
+ * nextStates('executable', 'In Testing') // ['Done', 'In Progress', 'Removed']
113
+ */
114
+ export declare function nextStates(tier: 'planning', current: EpicFeatureState): readonly EpicFeatureState[];
115
+ export declare function nextStates(tier: 'executable', current: ExecutableState): readonly ExecutableState[];
116
+ /**
117
+ * Return true if transitioning from `from` → `to` is valid for the given tier.
118
+ */
119
+ export declare function isValidTransition(tier: WorkItemTier, from: EpicFeatureState | ExecutableState, to: EpicFeatureState | ExecutableState): boolean;
120
+ //# sourceMappingURL=workItemModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workItemModel.d.ts","sourceRoot":"","sources":["../../src/core/workItemModel.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,KAAK,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EAKzC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;AAErD,yCAAyC;AACzC,wBAAgB,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAEvD;AAMD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,SAAS,GAAG,MAAM,CAAC;IACnC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAMlE;;;GAGG;AACH,MAAM,MAAM,IAAI,GACZ,WAAW,GACX,eAAe,GACf,eAAe,GACf,eAAe,GACf,YAAY,GACZ,uBAAuB,GACvB,gBAAgB,GAChB,eAAe,GACf,gBAAgB,CAAC;AAErB,2CAA2C;AAC3C,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAUvB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,WAWI,CAAC;AAMjC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1E,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAKjD,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,KAAK,GACL,UAAU,GACV,WAAW,GACX,aAAa,GACb,YAAY,GACZ,MAAM,GACN,SAAS,CAAC;AAEd,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EAQ9C,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,CAAC;AAMnD;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,2CAA2C;IAC3C,IAAI,EAAE,YAAY,CAAC;IACnB,yDAAyD;IACzD,IAAI,EAAE,IAAI,CAAC;IACX;;;OAGG;IACH,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,uDAAuD;IACvD,SAAS,EAAE,aAAa,CAAC;CAC1B,CAAC;AA6BF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAAC;AACrG,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,CAAC;AAoBrG;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,gBAAgB,GAAG,eAAe,EACxC,EAAE,EAAE,gBAAgB,GAAG,eAAe,GACrC,OAAO,CAGT"}
@@ -0,0 +1,104 @@
1
+ // ============================================
2
+ // EnactFactory - Work Item Domain Model (Wave 1)
3
+ // Canonical hierarchy, area taxonomy, and state machines
4
+ // for the Enact / Azure DevOps work-item foundation.
5
+ // ============================================
6
+ /**
7
+ * Tuple of all WorkItemKind values (useful for iteration and validation).
8
+ */
9
+ export const WORK_ITEM_KINDS = [
10
+ 'Epic',
11
+ 'Feature',
12
+ 'Backlog item',
13
+ 'Bug',
14
+ ];
15
+ /** Derive the tier from a kind value. */
16
+ export function tierOf(kind) {
17
+ return kind === 'Epic' || kind === 'Feature' ? 'planning' : 'executable';
18
+ }
19
+ /** Ordered list of all canonical areas. */
20
+ export const AREAS = [
21
+ 'Enact/CLI',
22
+ 'Enact/Context',
23
+ 'Enact/Factory',
24
+ 'Enact/Gateway',
25
+ 'Enact/Wiki',
26
+ 'Enact/Mission Control',
27
+ 'Enact/Proc Tap',
28
+ 'Enact/Runtime',
29
+ 'Enact/Watchdog',
30
+ ];
31
+ /**
32
+ * Canonical mapping for the ten known Enact repositories.
33
+ */
34
+ export const REPO_AREA_MAP = {
35
+ 'enact-cli': 'Enact/CLI',
36
+ 'enact-context': 'Enact/Context',
37
+ 'enact-factory': 'Enact/Factory',
38
+ 'enact-gateway': 'Enact/Gateway',
39
+ 'enact-wiki': 'Enact/Wiki',
40
+ 'enact-mission-control': 'Enact/Mission Control',
41
+ 'enact-os': 'Enact/Factory',
42
+ 'enact-proc-tap': 'Enact/Proc Tap',
43
+ 'enact-runtime': 'Enact/Runtime',
44
+ 'enact-watchdog': 'Enact/Watchdog',
45
+ };
46
+ /** Ordered tuple of Epic/Feature states. */
47
+ export const EPIC_FEATURE_STATES = [
48
+ 'New',
49
+ 'In Progress',
50
+ 'Done',
51
+ 'Removed',
52
+ ];
53
+ /** Ordered tuple of executable item states. */
54
+ export const EXECUTABLE_STATES = [
55
+ 'New',
56
+ 'Approved',
57
+ 'Committed',
58
+ 'In Progress',
59
+ 'In Testing',
60
+ 'Done',
61
+ 'Removed',
62
+ ];
63
+ // ---------------------------------------------------------------------------
64
+ // 6. TRANSITION TABLES
65
+ // ---------------------------------------------------------------------------
66
+ /** Valid forward/backward transitions for Epic/Feature. */
67
+ const EPIC_FEATURE_TRANSITIONS = {
68
+ New: ['In Progress', 'Removed'],
69
+ 'In Progress': ['Done', 'New', 'Removed'],
70
+ Done: ['In Progress', 'Removed'],
71
+ Removed: [],
72
+ };
73
+ /** Valid forward/backward transitions for executable items. */
74
+ const EXECUTABLE_TRANSITIONS = {
75
+ New: ['Approved', 'Removed'],
76
+ Approved: ['Committed', 'New', 'Removed'],
77
+ Committed: ['In Progress', 'Approved', 'Removed'],
78
+ 'In Progress': ['In Testing', 'Committed', 'Removed'],
79
+ 'In Testing': ['Done', 'In Progress', 'Removed'],
80
+ Done: ['In Progress', 'Removed'],
81
+ Removed: [],
82
+ };
83
+ export function nextStates(tier, current) {
84
+ if (tier === 'planning') {
85
+ const table = EPIC_FEATURE_TRANSITIONS;
86
+ if (!(current in table)) {
87
+ throw new Error(`Unknown EpicFeatureState: "${current}"`);
88
+ }
89
+ return table[current];
90
+ }
91
+ const table = EXECUTABLE_TRANSITIONS;
92
+ if (!(current in table)) {
93
+ throw new Error(`Unknown ExecutableState: "${current}"`);
94
+ }
95
+ return table[current];
96
+ }
97
+ /**
98
+ * Return true if transitioning from `from` → `to` is valid for the given tier.
99
+ */
100
+ export function isValidTransition(tier, from, to) {
101
+ const allowed = nextStates(tier, from);
102
+ return allowed.includes(to);
103
+ }
104
+ //# sourceMappingURL=workItemModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workItemModel.js","sourceRoot":"","sources":["../../src/core/workItemModel.ts"],"names":[],"mappings":"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"}