@gitgov/core 1.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 (469) hide show
  1. package/README.md +303 -0
  2. package/dist/scripts/compile-json-to-types.d.ts +11 -0
  3. package/dist/scripts/compile-json-to-types.d.ts.map +1 -0
  4. package/dist/scripts/compile-json-to-types.js +129 -0
  5. package/dist/scripts/compile-json-to-types.js.map +1 -0
  6. package/dist/scripts/diagnose-duplicates.d.ts +7 -0
  7. package/dist/scripts/diagnose-duplicates.d.ts.map +1 -0
  8. package/dist/scripts/diagnose-duplicates.js +72 -0
  9. package/dist/scripts/diagnose-duplicates.js.map +1 -0
  10. package/dist/scripts/generate-indexes.d.ts +22 -0
  11. package/dist/scripts/generate-indexes.d.ts.map +1 -0
  12. package/dist/scripts/generate-indexes.js +168 -0
  13. package/dist/scripts/generate-indexes.js.map +1 -0
  14. package/dist/scripts/sync-schemas.d.ts +10 -0
  15. package/dist/scripts/sync-schemas.d.ts.map +1 -0
  16. package/dist/scripts/sync-schemas.js +84 -0
  17. package/dist/scripts/sync-schemas.js.map +1 -0
  18. package/dist/scripts/sync-workflow-configs.d.ts +11 -0
  19. package/dist/scripts/sync-workflow-configs.d.ts.map +1 -0
  20. package/dist/scripts/sync-workflow-configs.js +61 -0
  21. package/dist/scripts/sync-workflow-configs.js.map +1 -0
  22. package/dist/scripts/update-diagram.d.ts +7 -0
  23. package/dist/scripts/update-diagram.d.ts.map +1 -0
  24. package/dist/scripts/update-diagram.js +47 -0
  25. package/dist/scripts/update-diagram.js.map +1 -0
  26. package/dist/scripts/validate-schemas.d.ts +18 -0
  27. package/dist/scripts/validate-schemas.d.ts.map +1 -0
  28. package/dist/scripts/validate-schemas.js +313 -0
  29. package/dist/scripts/validate-schemas.js.map +1 -0
  30. package/dist/src/adapters/backlog_adapter/backlog_adapter.integration.test.d.ts +2 -0
  31. package/dist/src/adapters/backlog_adapter/backlog_adapter.integration.test.d.ts.map +1 -0
  32. package/dist/src/adapters/backlog_adapter/backlog_adapter.integration.test.js +507 -0
  33. package/dist/src/adapters/backlog_adapter/backlog_adapter.integration.test.js.map +1 -0
  34. package/dist/src/adapters/backlog_adapter/backlog_adapter.test.d.ts +2 -0
  35. package/dist/src/adapters/backlog_adapter/backlog_adapter.test.d.ts.map +1 -0
  36. package/dist/src/adapters/backlog_adapter/backlog_adapter.test.js +1282 -0
  37. package/dist/src/adapters/backlog_adapter/backlog_adapter.test.js.map +1 -0
  38. package/dist/src/adapters/backlog_adapter/backlog_adapter_e2e.test.d.ts +10 -0
  39. package/dist/src/adapters/backlog_adapter/backlog_adapter_e2e.test.d.ts.map +1 -0
  40. package/dist/src/adapters/backlog_adapter/backlog_adapter_e2e.test.js +144 -0
  41. package/dist/src/adapters/backlog_adapter/backlog_adapter_e2e.test.js.map +1 -0
  42. package/dist/src/adapters/backlog_adapter/index.d.ts +213 -0
  43. package/dist/src/adapters/backlog_adapter/index.d.ts.map +1 -0
  44. package/dist/src/adapters/backlog_adapter/index.js +924 -0
  45. package/dist/src/adapters/backlog_adapter/index.js.map +1 -0
  46. package/dist/src/adapters/changelog_adapter/changelog_adapter.test.d.ts +2 -0
  47. package/dist/src/adapters/changelog_adapter/changelog_adapter.test.d.ts.map +1 -0
  48. package/dist/src/adapters/changelog_adapter/changelog_adapter.test.js +505 -0
  49. package/dist/src/adapters/changelog_adapter/changelog_adapter.test.js.map +1 -0
  50. package/dist/src/adapters/changelog_adapter/index.d.ts +101 -0
  51. package/dist/src/adapters/changelog_adapter/index.d.ts.map +1 -0
  52. package/dist/src/adapters/changelog_adapter/index.js +197 -0
  53. package/dist/src/adapters/changelog_adapter/index.js.map +1 -0
  54. package/dist/src/adapters/execution_adapter/execution_adapter.test.d.ts +2 -0
  55. package/dist/src/adapters/execution_adapter/execution_adapter.test.d.ts.map +1 -0
  56. package/dist/src/adapters/execution_adapter/execution_adapter.test.js +266 -0
  57. package/dist/src/adapters/execution_adapter/execution_adapter.test.js.map +1 -0
  58. package/dist/src/adapters/execution_adapter/index.d.ts +90 -0
  59. package/dist/src/adapters/execution_adapter/index.d.ts.map +1 -0
  60. package/dist/src/adapters/execution_adapter/index.js +150 -0
  61. package/dist/src/adapters/execution_adapter/index.js.map +1 -0
  62. package/dist/src/adapters/feedback_adapter/feedback_adapter.test.d.ts +2 -0
  63. package/dist/src/adapters/feedback_adapter/feedback_adapter.test.d.ts.map +1 -0
  64. package/dist/src/adapters/feedback_adapter/feedback_adapter.test.js +256 -0
  65. package/dist/src/adapters/feedback_adapter/feedback_adapter.test.js.map +1 -0
  66. package/dist/src/adapters/feedback_adapter/index.d.ts +95 -0
  67. package/dist/src/adapters/feedback_adapter/index.d.ts.map +1 -0
  68. package/dist/src/adapters/feedback_adapter/index.js +192 -0
  69. package/dist/src/adapters/feedback_adapter/index.js.map +1 -0
  70. package/dist/src/adapters/identity_adapter/identity_adapter.test.d.ts +2 -0
  71. package/dist/src/adapters/identity_adapter/identity_adapter.test.d.ts.map +1 -0
  72. package/dist/src/adapters/identity_adapter/identity_adapter.test.js +624 -0
  73. package/dist/src/adapters/identity_adapter/identity_adapter.test.js.map +1 -0
  74. package/dist/src/adapters/identity_adapter/index.d.ts +82 -0
  75. package/dist/src/adapters/identity_adapter/index.d.ts.map +1 -0
  76. package/dist/src/adapters/identity_adapter/index.js +336 -0
  77. package/dist/src/adapters/identity_adapter/index.js.map +1 -0
  78. package/dist/src/adapters/index.d.ts +10 -0
  79. package/dist/src/adapters/index.d.ts.map +1 -0
  80. package/dist/src/adapters/index.js +10 -0
  81. package/dist/src/adapters/index.js.map +1 -0
  82. package/dist/src/adapters/indexer_adapter/index.d.ts +214 -0
  83. package/dist/src/adapters/indexer_adapter/index.d.ts.map +1 -0
  84. package/dist/src/adapters/indexer_adapter/index.js +643 -0
  85. package/dist/src/adapters/indexer_adapter/index.js.map +1 -0
  86. package/dist/src/adapters/indexer_adapter/indexer_adapter.test.d.ts +2 -0
  87. package/dist/src/adapters/indexer_adapter/indexer_adapter.test.d.ts.map +1 -0
  88. package/dist/src/adapters/indexer_adapter/indexer_adapter.test.js +409 -0
  89. package/dist/src/adapters/indexer_adapter/indexer_adapter.test.js.map +1 -0
  90. package/dist/src/adapters/metrics_adapter/index.d.ts +189 -0
  91. package/dist/src/adapters/metrics_adapter/index.d.ts.map +1 -0
  92. package/dist/src/adapters/metrics_adapter/index.js +592 -0
  93. package/dist/src/adapters/metrics_adapter/index.js.map +1 -0
  94. package/dist/src/adapters/metrics_adapter/metrics_adapter.test.d.ts +2 -0
  95. package/dist/src/adapters/metrics_adapter/metrics_adapter.test.d.ts.map +1 -0
  96. package/dist/src/adapters/metrics_adapter/metrics_adapter.test.js +558 -0
  97. package/dist/src/adapters/metrics_adapter/metrics_adapter.test.js.map +1 -0
  98. package/dist/src/adapters/project_adapter/index.d.ts +164 -0
  99. package/dist/src/adapters/project_adapter/index.d.ts.map +1 -0
  100. package/dist/src/adapters/project_adapter/index.js +445 -0
  101. package/dist/src/adapters/project_adapter/index.js.map +1 -0
  102. package/dist/src/adapters/project_adapter/project_adapter.test.d.ts +2 -0
  103. package/dist/src/adapters/project_adapter/project_adapter.test.d.ts.map +1 -0
  104. package/dist/src/adapters/project_adapter/project_adapter.test.js +627 -0
  105. package/dist/src/adapters/project_adapter/project_adapter.test.js.map +1 -0
  106. package/dist/src/adapters/workflow_methodology_adapter/index.d.ts +75 -0
  107. package/dist/src/adapters/workflow_methodology_adapter/index.d.ts.map +1 -0
  108. package/dist/src/adapters/workflow_methodology_adapter/index.js +205 -0
  109. package/dist/src/adapters/workflow_methodology_adapter/index.js.map +1 -0
  110. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter.test.d.ts +2 -0
  111. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter.test.d.ts.map +1 -0
  112. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter.test.js +463 -0
  113. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter.test.js.map +1 -0
  114. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_integration.test.d.ts +2 -0
  115. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_integration.test.d.ts.map +1 -0
  116. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_integration.test.js +287 -0
  117. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_integration.test.js.map +1 -0
  118. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_scrum_integration.test.d.ts +2 -0
  119. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_scrum_integration.test.d.ts.map +1 -0
  120. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_scrum_integration.test.js +278 -0
  121. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_adapter_scrum_integration.test.js.map +1 -0
  122. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_default.json +188 -0
  123. package/dist/src/adapters/workflow_methodology_adapter/workflow_methodology_scrum.json +284 -0
  124. package/dist/src/config_manager/config_manager.test.d.ts +2 -0
  125. package/dist/src/config_manager/config_manager.test.d.ts.map +1 -0
  126. package/dist/src/config_manager/config_manager.test.js +321 -0
  127. package/dist/src/config_manager/config_manager.test.js.map +1 -0
  128. package/dist/src/config_manager/index.d.ts +107 -0
  129. package/dist/src/config_manager/index.d.ts.map +1 -0
  130. package/dist/src/config_manager/index.js +192 -0
  131. package/dist/src/config_manager/index.js.map +1 -0
  132. package/dist/src/crypto/checksum.d.ts +6 -0
  133. package/dist/src/crypto/checksum.d.ts.map +1 -0
  134. package/dist/src/crypto/checksum.js +38 -0
  135. package/dist/src/crypto/checksum.js.map +1 -0
  136. package/dist/src/crypto/checksum.test.d.ts +2 -0
  137. package/dist/src/crypto/checksum.test.d.ts.map +1 -0
  138. package/dist/src/crypto/checksum.test.js +167 -0
  139. package/dist/src/crypto/checksum.test.js.map +1 -0
  140. package/dist/src/crypto/index.d.ts +3 -0
  141. package/dist/src/crypto/index.d.ts.map +1 -0
  142. package/dist/src/crypto/index.js +3 -0
  143. package/dist/src/crypto/index.js.map +1 -0
  144. package/dist/src/crypto/signatures.d.ts +24 -0
  145. package/dist/src/crypto/signatures.d.ts.map +1 -0
  146. package/dist/src/crypto/signatures.js +67 -0
  147. package/dist/src/crypto/signatures.js.map +1 -0
  148. package/dist/src/crypto/signatures.test.d.ts +2 -0
  149. package/dist/src/crypto/signatures.test.d.ts.map +1 -0
  150. package/dist/src/crypto/signatures.test.js +378 -0
  151. package/dist/src/crypto/signatures.test.js.map +1 -0
  152. package/dist/src/diagram_generator/diagram_generator.d.ts +76 -0
  153. package/dist/src/diagram_generator/diagram_generator.d.ts.map +1 -0
  154. package/dist/src/diagram_generator/diagram_generator.js +233 -0
  155. package/dist/src/diagram_generator/diagram_generator.js.map +1 -0
  156. package/dist/src/diagram_generator/graph_validator.d.ts +19 -0
  157. package/dist/src/diagram_generator/graph_validator.d.ts.map +1 -0
  158. package/dist/src/diagram_generator/graph_validator.js +98 -0
  159. package/dist/src/diagram_generator/graph_validator.js.map +1 -0
  160. package/dist/src/diagram_generator/index.d.ts +4 -0
  161. package/dist/src/diagram_generator/index.d.ts.map +1 -0
  162. package/dist/src/diagram_generator/index.js +4 -0
  163. package/dist/src/diagram_generator/index.js.map +1 -0
  164. package/dist/src/diagram_generator/mermaid_renderer.d.ts +82 -0
  165. package/dist/src/diagram_generator/mermaid_renderer.d.ts.map +1 -0
  166. package/dist/src/diagram_generator/mermaid_renderer.js +306 -0
  167. package/dist/src/diagram_generator/mermaid_renderer.js.map +1 -0
  168. package/dist/src/diagram_generator/relationship_analyzer.d.ts +116 -0
  169. package/dist/src/diagram_generator/relationship_analyzer.d.ts.map +1 -0
  170. package/dist/src/diagram_generator/relationship_analyzer.js +381 -0
  171. package/dist/src/diagram_generator/relationship_analyzer.js.map +1 -0
  172. package/dist/src/event_bus/event_bus.d.ts +110 -0
  173. package/dist/src/event_bus/event_bus.d.ts.map +1 -0
  174. package/dist/src/event_bus/event_bus.js +161 -0
  175. package/dist/src/event_bus/event_bus.js.map +1 -0
  176. package/dist/src/event_bus/event_bus.test.d.ts +2 -0
  177. package/dist/src/event_bus/event_bus.test.d.ts.map +1 -0
  178. package/dist/src/event_bus/event_bus.test.js +332 -0
  179. package/dist/src/event_bus/event_bus.test.js.map +1 -0
  180. package/dist/src/event_bus/event_bus_integration.test.d.ts +2 -0
  181. package/dist/src/event_bus/event_bus_integration.test.d.ts.map +1 -0
  182. package/dist/src/event_bus/event_bus_integration.test.js +474 -0
  183. package/dist/src/event_bus/event_bus_integration.test.js.map +1 -0
  184. package/dist/src/event_bus/index.d.ts +3 -0
  185. package/dist/src/event_bus/index.d.ts.map +1 -0
  186. package/dist/src/event_bus/index.js +3 -0
  187. package/dist/src/event_bus/index.js.map +1 -0
  188. package/dist/src/event_bus/types.d.ts +203 -0
  189. package/dist/src/event_bus/types.d.ts.map +1 -0
  190. package/dist/src/event_bus/types.js +5 -0
  191. package/dist/src/event_bus/types.js.map +1 -0
  192. package/dist/src/factories/actor_factory.d.ts +6 -0
  193. package/dist/src/factories/actor_factory.d.ts.map +1 -0
  194. package/dist/src/factories/actor_factory.js +25 -0
  195. package/dist/src/factories/actor_factory.js.map +1 -0
  196. package/dist/src/factories/actor_factory.test.d.ts +2 -0
  197. package/dist/src/factories/actor_factory.test.d.ts.map +1 -0
  198. package/dist/src/factories/actor_factory.test.js +169 -0
  199. package/dist/src/factories/actor_factory.test.js.map +1 -0
  200. package/dist/src/factories/agent_factory.d.ts +6 -0
  201. package/dist/src/factories/agent_factory.d.ts.map +1 -0
  202. package/dist/src/factories/agent_factory.js +25 -0
  203. package/dist/src/factories/agent_factory.js.map +1 -0
  204. package/dist/src/factories/agent_factory.test.d.ts +2 -0
  205. package/dist/src/factories/agent_factory.test.d.ts.map +1 -0
  206. package/dist/src/factories/agent_factory.test.js +199 -0
  207. package/dist/src/factories/agent_factory.test.js.map +1 -0
  208. package/dist/src/factories/changelog_factory.d.ts +9 -0
  209. package/dist/src/factories/changelog_factory.d.ts.map +1 -0
  210. package/dist/src/factories/changelog_factory.js +46 -0
  211. package/dist/src/factories/changelog_factory.js.map +1 -0
  212. package/dist/src/factories/changelog_factory.test.d.ts +2 -0
  213. package/dist/src/factories/changelog_factory.test.d.ts.map +1 -0
  214. package/dist/src/factories/changelog_factory.test.js +368 -0
  215. package/dist/src/factories/changelog_factory.test.js.map +1 -0
  216. package/dist/src/factories/cycle_factory.d.ts +6 -0
  217. package/dist/src/factories/cycle_factory.d.ts.map +1 -0
  218. package/dist/src/factories/cycle_factory.js +28 -0
  219. package/dist/src/factories/cycle_factory.js.map +1 -0
  220. package/dist/src/factories/cycle_factory.test.d.ts +2 -0
  221. package/dist/src/factories/cycle_factory.test.d.ts.map +1 -0
  222. package/dist/src/factories/cycle_factory.test.js +175 -0
  223. package/dist/src/factories/cycle_factory.test.js.map +1 -0
  224. package/dist/src/factories/execution_factory.d.ts +9 -0
  225. package/dist/src/factories/execution_factory.d.ts.map +1 -0
  226. package/dist/src/factories/execution_factory.js +29 -0
  227. package/dist/src/factories/execution_factory.js.map +1 -0
  228. package/dist/src/factories/execution_factory.test.d.ts +2 -0
  229. package/dist/src/factories/execution_factory.test.d.ts.map +1 -0
  230. package/dist/src/factories/execution_factory.test.js +207 -0
  231. package/dist/src/factories/execution_factory.test.js.map +1 -0
  232. package/dist/src/factories/feedback_factory.d.ts +9 -0
  233. package/dist/src/factories/feedback_factory.d.ts.map +1 -0
  234. package/dist/src/factories/feedback_factory.js +30 -0
  235. package/dist/src/factories/feedback_factory.js.map +1 -0
  236. package/dist/src/factories/feedback_factory.test.d.ts +2 -0
  237. package/dist/src/factories/feedback_factory.test.d.ts.map +1 -0
  238. package/dist/src/factories/feedback_factory.test.js +256 -0
  239. package/dist/src/factories/feedback_factory.test.js.map +1 -0
  240. package/dist/src/factories/index.d.ts +9 -0
  241. package/dist/src/factories/index.d.ts.map +1 -0
  242. package/dist/src/factories/index.js +9 -0
  243. package/dist/src/factories/index.js.map +1 -0
  244. package/dist/src/factories/task_factory.d.ts +6 -0
  245. package/dist/src/factories/task_factory.d.ts.map +1 -0
  246. package/dist/src/factories/task_factory.js +30 -0
  247. package/dist/src/factories/task_factory.js.map +1 -0
  248. package/dist/src/factories/task_factory.test.d.ts +2 -0
  249. package/dist/src/factories/task_factory.test.d.ts.map +1 -0
  250. package/dist/src/factories/task_factory.test.js +197 -0
  251. package/dist/src/factories/task_factory.test.js.map +1 -0
  252. package/dist/src/factories/workflow_methodology_factory.d.ts +11 -0
  253. package/dist/src/factories/workflow_methodology_factory.d.ts.map +1 -0
  254. package/dist/src/factories/workflow_methodology_factory.js +173 -0
  255. package/dist/src/factories/workflow_methodology_factory.js.map +1 -0
  256. package/dist/src/factories/workflow_methodology_factory.test.d.ts +2 -0
  257. package/dist/src/factories/workflow_methodology_factory.test.d.ts.map +1 -0
  258. package/dist/src/factories/workflow_methodology_factory.test.js +244 -0
  259. package/dist/src/factories/workflow_methodology_factory.test.js.map +1 -0
  260. package/dist/src/index.d.ts +21 -0
  261. package/dist/src/index.d.ts.map +1 -0
  262. package/dist/src/index.js +23 -0
  263. package/dist/src/index.js.map +1 -0
  264. package/dist/src/integration/cycles_tasks_integration.test.d.ts +2 -0
  265. package/dist/src/integration/cycles_tasks_integration.test.d.ts.map +1 -0
  266. package/dist/src/integration/cycles_tasks_integration.test.js +258 -0
  267. package/dist/src/integration/cycles_tasks_integration.test.js.map +1 -0
  268. package/dist/src/integration/schema_integration.test.d.ts +8 -0
  269. package/dist/src/integration/schema_integration.test.d.ts.map +1 -0
  270. package/dist/src/integration/schema_integration.test.js +279 -0
  271. package/dist/src/integration/schema_integration.test.js.map +1 -0
  272. package/dist/src/logger/index.d.ts +2 -0
  273. package/dist/src/logger/index.d.ts.map +1 -0
  274. package/dist/src/logger/index.js +2 -0
  275. package/dist/src/logger/index.js.map +1 -0
  276. package/dist/src/logger/logger.d.ts +10 -0
  277. package/dist/src/logger/logger.d.ts.map +1 -0
  278. package/dist/src/logger/logger.js +48 -0
  279. package/dist/src/logger/logger.js.map +1 -0
  280. package/dist/src/schemas/errors.d.ts +28 -0
  281. package/dist/src/schemas/errors.d.ts.map +1 -0
  282. package/dist/src/schemas/errors.js +31 -0
  283. package/dist/src/schemas/errors.js.map +1 -0
  284. package/dist/src/schemas/generated/actor_record_schema.json +91 -0
  285. package/dist/src/schemas/generated/agent_record_schema.json +142 -0
  286. package/dist/src/schemas/generated/changelog_record_schema.json +227 -0
  287. package/dist/src/schemas/generated/cycle_record_schema.json +80 -0
  288. package/dist/src/schemas/generated/embedded_metadata_schema.json +318 -0
  289. package/dist/src/schemas/generated/execution_record_schema.json +89 -0
  290. package/dist/src/schemas/generated/feedback_record_schema.json +83 -0
  291. package/dist/src/schemas/generated/index.d.ts +2221 -0
  292. package/dist/src/schemas/generated/index.d.ts.map +1 -0
  293. package/dist/src/schemas/generated/index.js +48 -0
  294. package/dist/src/schemas/generated/index.js.map +1 -0
  295. package/dist/src/schemas/generated/task_record_schema.json +103 -0
  296. package/dist/src/schemas/generated/workflow_methodology_record_schema.json +393 -0
  297. package/dist/src/schemas/index.d.ts +4 -0
  298. package/dist/src/schemas/index.d.ts.map +1 -0
  299. package/dist/src/schemas/index.js +4 -0
  300. package/dist/src/schemas/index.js.map +1 -0
  301. package/dist/src/schemas/schema_cache.d.ts +39 -0
  302. package/dist/src/schemas/schema_cache.d.ts.map +1 -0
  303. package/dist/src/schemas/schema_cache.js +109 -0
  304. package/dist/src/schemas/schema_cache.js.map +1 -0
  305. package/dist/src/schemas/schema_cache.test.d.ts +2 -0
  306. package/dist/src/schemas/schema_cache.test.d.ts.map +1 -0
  307. package/dist/src/schemas/schema_cache.test.js +163 -0
  308. package/dist/src/schemas/schema_cache.test.js.map +1 -0
  309. package/dist/src/store/index.d.ts +2 -0
  310. package/dist/src/store/index.d.ts.map +1 -0
  311. package/dist/src/store/index.js +2 -0
  312. package/dist/src/store/index.js.map +1 -0
  313. package/dist/src/store/record_store.d.ts +30 -0
  314. package/dist/src/store/record_store.d.ts.map +1 -0
  315. package/dist/src/store/record_store.js +83 -0
  316. package/dist/src/store/record_store.js.map +1 -0
  317. package/dist/src/store/record_store.test.d.ts +2 -0
  318. package/dist/src/store/record_store.test.d.ts.map +1 -0
  319. package/dist/src/store/record_store.test.js +646 -0
  320. package/dist/src/store/record_store.test.js.map +1 -0
  321. package/dist/src/types/common.types.d.ts +43 -0
  322. package/dist/src/types/common.types.d.ts.map +1 -0
  323. package/dist/src/types/common.types.js +13 -0
  324. package/dist/src/types/common.types.js.map +1 -0
  325. package/dist/src/types/embedded.types.d.ts +17 -0
  326. package/dist/src/types/embedded.types.d.ts.map +1 -0
  327. package/dist/src/types/embedded.types.js +2 -0
  328. package/dist/src/types/embedded.types.js.map +1 -0
  329. package/dist/src/types/generated/actor_record.d.ts +45 -0
  330. package/dist/src/types/generated/actor_record.d.ts.map +1 -0
  331. package/dist/src/types/generated/actor_record.js +7 -0
  332. package/dist/src/types/generated/actor_record.js.map +1 -0
  333. package/dist/src/types/generated/agent_record.d.ts +40 -0
  334. package/dist/src/types/generated/agent_record.d.ts.map +1 -0
  335. package/dist/src/types/generated/agent_record.js +7 -0
  336. package/dist/src/types/generated/agent_record.js.map +1 -0
  337. package/dist/src/types/generated/changelog_record.d.ts +100 -0
  338. package/dist/src/types/generated/changelog_record.d.ts.map +1 -0
  339. package/dist/src/types/generated/changelog_record.js +7 -0
  340. package/dist/src/types/generated/changelog_record.js.map +1 -0
  341. package/dist/src/types/generated/cycle_record.d.ts +36 -0
  342. package/dist/src/types/generated/cycle_record.d.ts.map +1 -0
  343. package/dist/src/types/generated/cycle_record.js +7 -0
  344. package/dist/src/types/generated/cycle_record.js.map +1 -0
  345. package/dist/src/types/generated/embedded_metadata.d.ts +94 -0
  346. package/dist/src/types/generated/embedded_metadata.d.ts.map +1 -0
  347. package/dist/src/types/generated/embedded_metadata.js +7 -0
  348. package/dist/src/types/generated/embedded_metadata.js.map +1 -0
  349. package/dist/src/types/generated/execution_record.d.ts +39 -0
  350. package/dist/src/types/generated/execution_record.d.ts.map +1 -0
  351. package/dist/src/types/generated/execution_record.js +7 -0
  352. package/dist/src/types/generated/execution_record.js.map +1 -0
  353. package/dist/src/types/generated/feedback_record.d.ts +43 -0
  354. package/dist/src/types/generated/feedback_record.d.ts.map +1 -0
  355. package/dist/src/types/generated/feedback_record.js +7 -0
  356. package/dist/src/types/generated/feedback_record.js.map +1 -0
  357. package/dist/src/types/generated/index.d.ts +15 -0
  358. package/dist/src/types/generated/index.d.ts.map +1 -0
  359. package/dist/src/types/generated/index.js +15 -0
  360. package/dist/src/types/generated/index.js.map +1 -0
  361. package/dist/src/types/generated/task_record.d.ts +47 -0
  362. package/dist/src/types/generated/task_record.d.ts.map +1 -0
  363. package/dist/src/types/generated/task_record.js +7 -0
  364. package/dist/src/types/generated/task_record.js.map +1 -0
  365. package/dist/src/types/generated/workflow_methodology_record.d.ts +211 -0
  366. package/dist/src/types/generated/workflow_methodology_record.d.ts.map +1 -0
  367. package/dist/src/types/generated/workflow_methodology_record.js +7 -0
  368. package/dist/src/types/generated/workflow_methodology_record.js.map +1 -0
  369. package/dist/src/types/index.d.ts +4 -0
  370. package/dist/src/types/index.d.ts.map +1 -0
  371. package/dist/src/types/index.js +4 -0
  372. package/dist/src/types/index.js.map +1 -0
  373. package/dist/src/utils/id_generator.d.ts +44 -0
  374. package/dist/src/utils/id_generator.d.ts.map +1 -0
  375. package/dist/src/utils/id_generator.js +107 -0
  376. package/dist/src/utils/id_generator.js.map +1 -0
  377. package/dist/src/utils/id_generator.test.d.ts +2 -0
  378. package/dist/src/utils/id_generator.test.d.ts.map +1 -0
  379. package/dist/src/utils/id_generator.test.js +100 -0
  380. package/dist/src/utils/id_generator.test.js.map +1 -0
  381. package/dist/src/utils/index.d.ts +2 -0
  382. package/dist/src/utils/index.d.ts.map +1 -0
  383. package/dist/src/utils/index.js +3 -0
  384. package/dist/src/utils/index.js.map +1 -0
  385. package/dist/src/validation/actor_validator.d.ts +21 -0
  386. package/dist/src/validation/actor_validator.d.ts.map +1 -0
  387. package/dist/src/validation/actor_validator.js +48 -0
  388. package/dist/src/validation/actor_validator.js.map +1 -0
  389. package/dist/src/validation/actor_validator.test.d.ts +2 -0
  390. package/dist/src/validation/actor_validator.test.d.ts.map +1 -0
  391. package/dist/src/validation/actor_validator.test.js +83 -0
  392. package/dist/src/validation/actor_validator.test.js.map +1 -0
  393. package/dist/src/validation/agent_validator.d.ts +30 -0
  394. package/dist/src/validation/agent_validator.d.ts.map +1 -0
  395. package/dist/src/validation/agent_validator.js +66 -0
  396. package/dist/src/validation/agent_validator.js.map +1 -0
  397. package/dist/src/validation/agent_validator.test.d.ts +2 -0
  398. package/dist/src/validation/agent_validator.test.d.ts.map +1 -0
  399. package/dist/src/validation/agent_validator.test.js +73 -0
  400. package/dist/src/validation/agent_validator.test.js.map +1 -0
  401. package/dist/src/validation/changelog_validator.d.ts +23 -0
  402. package/dist/src/validation/changelog_validator.d.ts.map +1 -0
  403. package/dist/src/validation/changelog_validator.js +58 -0
  404. package/dist/src/validation/changelog_validator.js.map +1 -0
  405. package/dist/src/validation/changelog_validator.test.d.ts +2 -0
  406. package/dist/src/validation/changelog_validator.test.d.ts.map +1 -0
  407. package/dist/src/validation/changelog_validator.test.js +401 -0
  408. package/dist/src/validation/changelog_validator.test.js.map +1 -0
  409. package/dist/src/validation/common.d.ts +10 -0
  410. package/dist/src/validation/common.d.ts.map +1 -0
  411. package/dist/src/validation/common.js +12 -0
  412. package/dist/src/validation/common.js.map +1 -0
  413. package/dist/src/validation/cycle_validator.d.ts +24 -0
  414. package/dist/src/validation/cycle_validator.d.ts.map +1 -0
  415. package/dist/src/validation/cycle_validator.js +51 -0
  416. package/dist/src/validation/cycle_validator.js.map +1 -0
  417. package/dist/src/validation/cycle_validator.test.d.ts +2 -0
  418. package/dist/src/validation/cycle_validator.test.d.ts.map +1 -0
  419. package/dist/src/validation/cycle_validator.test.js +182 -0
  420. package/dist/src/validation/cycle_validator.test.js.map +1 -0
  421. package/dist/src/validation/embedded_metadata_validator.d.ts +26 -0
  422. package/dist/src/validation/embedded_metadata_validator.d.ts.map +1 -0
  423. package/dist/src/validation/embedded_metadata_validator.js +122 -0
  424. package/dist/src/validation/embedded_metadata_validator.js.map +1 -0
  425. package/dist/src/validation/embedded_metadata_validator.test.d.ts +2 -0
  426. package/dist/src/validation/embedded_metadata_validator.test.d.ts.map +1 -0
  427. package/dist/src/validation/embedded_metadata_validator.test.js +316 -0
  428. package/dist/src/validation/embedded_metadata_validator.test.js.map +1 -0
  429. package/dist/src/validation/errors.d.ts +67 -0
  430. package/dist/src/validation/errors.d.ts.map +1 -0
  431. package/dist/src/validation/errors.js +83 -0
  432. package/dist/src/validation/errors.js.map +1 -0
  433. package/dist/src/validation/execution_validator.d.ts +23 -0
  434. package/dist/src/validation/execution_validator.d.ts.map +1 -0
  435. package/dist/src/validation/execution_validator.js +58 -0
  436. package/dist/src/validation/execution_validator.js.map +1 -0
  437. package/dist/src/validation/execution_validator.test.d.ts +2 -0
  438. package/dist/src/validation/execution_validator.test.d.ts.map +1 -0
  439. package/dist/src/validation/execution_validator.test.js +167 -0
  440. package/dist/src/validation/execution_validator.test.js.map +1 -0
  441. package/dist/src/validation/feedback_validator.d.ts +23 -0
  442. package/dist/src/validation/feedback_validator.d.ts.map +1 -0
  443. package/dist/src/validation/feedback_validator.js +58 -0
  444. package/dist/src/validation/feedback_validator.js.map +1 -0
  445. package/dist/src/validation/feedback_validator.test.d.ts +2 -0
  446. package/dist/src/validation/feedback_validator.test.d.ts.map +1 -0
  447. package/dist/src/validation/feedback_validator.test.js +131 -0
  448. package/dist/src/validation/feedback_validator.test.js.map +1 -0
  449. package/dist/src/validation/index.d.ts +11 -0
  450. package/dist/src/validation/index.d.ts.map +1 -0
  451. package/dist/src/validation/index.js +10 -0
  452. package/dist/src/validation/index.js.map +1 -0
  453. package/dist/src/validation/task_validator.d.ts +24 -0
  454. package/dist/src/validation/task_validator.d.ts.map +1 -0
  455. package/dist/src/validation/task_validator.js +50 -0
  456. package/dist/src/validation/task_validator.js.map +1 -0
  457. package/dist/src/validation/task_validator.test.d.ts +2 -0
  458. package/dist/src/validation/task_validator.test.d.ts.map +1 -0
  459. package/dist/src/validation/task_validator.test.js +185 -0
  460. package/dist/src/validation/task_validator.test.js.map +1 -0
  461. package/dist/src/validation/workflow_methodology_validator.d.ts +32 -0
  462. package/dist/src/validation/workflow_methodology_validator.d.ts.map +1 -0
  463. package/dist/src/validation/workflow_methodology_validator.js +91 -0
  464. package/dist/src/validation/workflow_methodology_validator.js.map +1 -0
  465. package/dist/src/validation/workflow_methodology_validator.test.d.ts +2 -0
  466. package/dist/src/validation/workflow_methodology_validator.test.d.ts.map +1 -0
  467. package/dist/src/validation/workflow_methodology_validator.test.js +229 -0
  468. package/dist/src/validation/workflow_methodology_validator.test.js.map +1 -0
  469. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution_factory.d.ts","sourceRoot":"","sources":["../../../src/factories/execution_factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAqBvG"}
@@ -0,0 +1,29 @@
1
+ import { generateExecutionId } from '../utils/id_generator';
2
+ import { validateExecutionRecordDetailed } from '../validation/execution_validator';
3
+ import { DetailedValidationError } from '../validation/common';
4
+ /**
5
+ * Creates a complete ExecutionRecord with validation
6
+ *
7
+ * @param payload - Partial ExecutionRecord payload
8
+ * @returns Promise<ExecutionRecord> - The validated ExecutionRecord
9
+ */
10
+ export async function createExecutionRecord(payload) {
11
+ const timestamp = Math.floor(Date.now() / 1000);
12
+ const execution = {
13
+ id: payload.id || generateExecutionId(payload.title || 'execution', timestamp),
14
+ taskId: payload.taskId || '',
15
+ result: payload.result || '',
16
+ type: payload.type,
17
+ title: payload.title,
18
+ notes: payload.notes,
19
+ references: payload.references,
20
+ ...payload,
21
+ };
22
+ // Validate the complete execution record
23
+ const validation = validateExecutionRecordDetailed(execution);
24
+ if (!validation.isValid) {
25
+ throw new DetailedValidationError('ExecutionRecord', validation.errors);
26
+ }
27
+ return execution;
28
+ }
29
+ //# sourceMappingURL=execution_factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution_factory.js","sourceRoot":"","sources":["../../../src/factories/execution_factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAiC;IAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAoB;QACjC,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,KAAK,IAAI,WAAW,EAAE,SAAS,CAAC;QAC9E,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,GAAG,OAAO;KACQ,CAAC;IAErB,yCAAyC;IACzC,MAAM,UAAU,GAAG,+BAA+B,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,uBAAuB,CAAC,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=execution_factory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution_factory.test.d.ts","sourceRoot":"","sources":["../../../src/factories/execution_factory.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,207 @@
1
+ import { createExecutionRecord } from './execution_factory';
2
+ import { generateExecutionId } from '../utils/id_generator';
3
+ import { DetailedValidationError } from '../validation/common';
4
+ // Mock the validator
5
+ jest.mock('../validation/execution_validator', () => ({
6
+ validateExecutionRecordDetailed: jest.fn()
7
+ }));
8
+ // Mock ID generator
9
+ jest.mock('../utils/id_generator', () => ({
10
+ generateExecutionId: jest.fn()
11
+ }));
12
+ describe('ExecutionRecord Factory', () => {
13
+ const mockValidateExecutionRecordDetailed = require('../validation/execution_validator').validateExecutionRecordDetailed;
14
+ const mockGenerateExecutionId = generateExecutionId;
15
+ beforeEach(() => {
16
+ jest.clearAllMocks();
17
+ // Default successful validation
18
+ mockValidateExecutionRecordDetailed.mockReturnValue({
19
+ isValid: true,
20
+ errors: []
21
+ });
22
+ // Default ID generation
23
+ mockGenerateExecutionId.mockReturnValue('1752275500-exec-test-execution');
24
+ });
25
+ describe('createExecutionRecord', () => {
26
+ it('[EARS-1] should create a valid ExecutionRecord with all required fields', async () => {
27
+ const payload = {
28
+ taskId: '1752274500-task-test-task',
29
+ result: 'Successfully implemented the feature',
30
+ type: 'progress',
31
+ title: 'Test Execution',
32
+ notes: 'Additional context about the execution',
33
+ references: ['commit:abc123']
34
+ };
35
+ const result = await createExecutionRecord(payload);
36
+ expect(result).toEqual({
37
+ id: '1752275500-exec-test-execution',
38
+ taskId: '1752274500-task-test-task',
39
+ result: 'Successfully implemented the feature',
40
+ type: 'progress',
41
+ title: 'Test Execution',
42
+ notes: 'Additional context about the execution',
43
+ references: ['commit:abc123']
44
+ });
45
+ expect(mockValidateExecutionRecordDetailed).toHaveBeenCalledWith(result);
46
+ });
47
+ it('[EARS-2] should apply default values for missing optional fields', async () => {
48
+ const payload = {
49
+ taskId: '1752274500-task-test-task',
50
+ result: 'Successfully implemented the feature'
51
+ };
52
+ const result = await createExecutionRecord(payload);
53
+ expect(result).toEqual({
54
+ id: '1752275500-exec-test-execution',
55
+ taskId: '1752274500-task-test-task',
56
+ result: 'Successfully implemented the feature',
57
+ type: undefined,
58
+ title: undefined,
59
+ notes: undefined,
60
+ references: undefined
61
+ });
62
+ expect(mockGenerateExecutionId).toHaveBeenCalledWith('execution', expect.any(Number));
63
+ });
64
+ it('[EARS-3] should preserve provided ID when specified', async () => {
65
+ const payload = {
66
+ id: '1752275600-exec-custom-id',
67
+ taskId: '1752274500-task-test-task',
68
+ result: 'Successfully implemented the feature'
69
+ };
70
+ const result = await createExecutionRecord(payload);
71
+ expect(result.id).toBe('1752275600-exec-custom-id');
72
+ expect(mockGenerateExecutionId).not.toHaveBeenCalled();
73
+ });
74
+ it('[EARS-4] should generate ID from title when title is provided but ID is not', async () => {
75
+ const payload = {
76
+ taskId: '1752274500-task-test-task',
77
+ result: 'Successfully implemented the feature',
78
+ title: 'Custom Title Execution'
79
+ };
80
+ mockGenerateExecutionId.mockReturnValue('1752275500-exec-custom-title-execution');
81
+ const result = await createExecutionRecord(payload);
82
+ expect(result.id).toBe('1752275500-exec-custom-title-execution');
83
+ expect(mockGenerateExecutionId).toHaveBeenCalledWith('Custom Title Execution', expect.any(Number));
84
+ });
85
+ it('[EARS-5] should throw DetailedValidationError when validation fails', async () => {
86
+ const payload = {
87
+ taskId: '1752274500-task-test-task',
88
+ result: 'Successfully implemented the feature'
89
+ };
90
+ const validationErrors = [
91
+ { field: 'taskId', message: 'must match pattern', value: payload.taskId }
92
+ ];
93
+ mockValidateExecutionRecordDetailed.mockReturnValue({
94
+ isValid: false,
95
+ errors: validationErrors
96
+ });
97
+ await expect(createExecutionRecord(payload)).rejects.toThrow(DetailedValidationError);
98
+ await expect(createExecutionRecord(payload)).rejects.toThrow('ExecutionRecord');
99
+ });
100
+ it('[EARS-6] should preserve all provided fields in the output', async () => {
101
+ const payload = {
102
+ id: '1752275600-exec-preserve-fields',
103
+ taskId: '1752274500-task-test-task',
104
+ result: 'All fields preserved',
105
+ type: 'completion',
106
+ title: 'Preserve Fields Test',
107
+ notes: 'Testing field preservation',
108
+ references: ['commit:def456', 'file:test.ts']
109
+ };
110
+ const result = await createExecutionRecord(payload);
111
+ expect(result).toEqual(payload);
112
+ expect(mockValidateExecutionRecordDetailed).toHaveBeenCalledWith(payload);
113
+ });
114
+ it('[EARS-7] should handle empty references array', async () => {
115
+ const payload = {
116
+ taskId: '1752274500-task-test-task',
117
+ result: 'Successfully implemented the feature',
118
+ references: []
119
+ };
120
+ const result = await createExecutionRecord(payload);
121
+ expect(result.references).toEqual([]);
122
+ });
123
+ it('[EARS-8] should use current timestamp when none provided', async () => {
124
+ const payload = {
125
+ taskId: '1752274500-task-test-task',
126
+ result: 'Successfully implemented the feature',
127
+ title: 'Timestamp Test'
128
+ };
129
+ const beforeTime = Math.floor(Date.now() / 1000);
130
+ await createExecutionRecord(payload);
131
+ const afterTime = Math.floor(Date.now() / 1000);
132
+ expect(mockGenerateExecutionId).toHaveBeenCalledWith('Timestamp Test', expect.any(Number));
133
+ const calledTimestamp = mockGenerateExecutionId.mock.calls[0][1];
134
+ expect(calledTimestamp).toBeGreaterThanOrEqual(beforeTime);
135
+ expect(calledTimestamp).toBeLessThanOrEqual(afterTime);
136
+ });
137
+ describe('ExecutionRecord Specific Factory Operations (EARS 22-24)', () => {
138
+ it('[EARS-22] should throw DetailedValidationError when taskId is missing', async () => {
139
+ const validationErrors = [
140
+ { field: 'taskId', message: 'must have required property taskId', value: undefined }
141
+ ];
142
+ mockValidateExecutionRecordDetailed.mockReturnValue({
143
+ isValid: false,
144
+ errors: validationErrors
145
+ });
146
+ const payload = {
147
+ result: 'Test execution result'
148
+ // taskId missing - should trigger validation error
149
+ };
150
+ await expect(createExecutionRecord(payload)).rejects.toThrow(DetailedValidationError);
151
+ });
152
+ it('[EARS-23] should throw DetailedValidationError for invalid taskId pattern', async () => {
153
+ const validationErrors = [
154
+ { field: 'taskId', message: 'must match task ID pattern', value: 'invalid-task-id' }
155
+ ];
156
+ mockValidateExecutionRecordDetailed.mockReturnValue({
157
+ isValid: false,
158
+ errors: validationErrors
159
+ });
160
+ const payload = {
161
+ taskId: 'invalid-task-id',
162
+ result: 'Test execution result'
163
+ };
164
+ await expect(createExecutionRecord(payload)).rejects.toThrow(DetailedValidationError);
165
+ });
166
+ it('[EARS-24] should throw DetailedValidationError for result shorter than 10 characters', async () => {
167
+ const validationErrors = [
168
+ { field: 'result', message: 'must be at least 10 characters', value: 'short' }
169
+ ];
170
+ mockValidateExecutionRecordDetailed.mockReturnValue({
171
+ isValid: false,
172
+ errors: validationErrors
173
+ });
174
+ const payload = {
175
+ taskId: '1752274500-task-test-task',
176
+ result: 'short' // Too short
177
+ };
178
+ await expect(createExecutionRecord(payload)).rejects.toThrow(DetailedValidationError);
179
+ });
180
+ it('[EARS-22] should accept valid taskId', async () => {
181
+ const payload = {
182
+ taskId: '1752274500-task-valid-test-task',
183
+ result: 'Successfully completed execution with valid taskId'
184
+ };
185
+ const result = await createExecutionRecord(payload);
186
+ expect(result.taskId).toBe('1752274500-task-valid-test-task');
187
+ expect(result.result).toBe('Successfully completed execution with valid taskId');
188
+ });
189
+ it('[EARS-24] should accept result with 10 or more characters', async () => {
190
+ const validResults = [
191
+ 'Exactly 10', // Exactly 10 characters
192
+ 'This is a longer result description', // Much longer
193
+ 'Minimum length result for validation testing' // Even longer
194
+ ];
195
+ for (const result of validResults) {
196
+ const payload = {
197
+ taskId: '1752274500-task-test-task',
198
+ result: result
199
+ };
200
+ const execution = await createExecutionRecord(payload);
201
+ expect(execution.result).toBe(result);
202
+ }
203
+ });
204
+ });
205
+ });
206
+ });
207
+ //# sourceMappingURL=execution_factory.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution_factory.test.js","sourceRoot":"","sources":["../../../src/factories/execution_factory.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { FeedbackRecord } from '../types';
2
+ /**
3
+ * Creates a complete FeedbackRecord with validation
4
+ *
5
+ * @param payload - Partial FeedbackRecord payload
6
+ * @returns Promise<FeedbackRecord> - The validated FeedbackRecord
7
+ */
8
+ export declare function createFeedbackRecord(payload: Partial<FeedbackRecord>): Promise<FeedbackRecord>;
9
+ //# sourceMappingURL=feedback_factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback_factory.d.ts","sourceRoot":"","sources":["../../../src/factories/feedback_factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK/C;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAsBpG"}
@@ -0,0 +1,30 @@
1
+ import { generateFeedbackId } from '../utils/id_generator';
2
+ import { validateFeedbackRecordDetailed } from '../validation/feedback_validator';
3
+ import { DetailedValidationError } from '../validation/common';
4
+ /**
5
+ * Creates a complete FeedbackRecord with validation
6
+ *
7
+ * @param payload - Partial FeedbackRecord payload
8
+ * @returns Promise<FeedbackRecord> - The validated FeedbackRecord
9
+ */
10
+ export async function createFeedbackRecord(payload) {
11
+ const timestamp = Math.floor(Date.now() / 1000);
12
+ const feedback = {
13
+ id: payload.id || generateFeedbackId(payload.content || 'feedback', timestamp),
14
+ entityType: payload.entityType || 'task',
15
+ entityId: payload.entityId || '',
16
+ type: payload.type || 'question',
17
+ status: payload.status || (payload.type === 'assignment' ? 'resolved' : 'open'),
18
+ content: payload.content || '',
19
+ assignee: payload.assignee,
20
+ resolvesFeedbackId: payload.resolvesFeedbackId,
21
+ ...payload,
22
+ };
23
+ // Validate the complete feedback record
24
+ const validation = validateFeedbackRecordDetailed(feedback);
25
+ if (!validation.isValid) {
26
+ throw new DetailedValidationError('FeedbackRecord', validation.errors);
27
+ }
28
+ return feedback;
29
+ }
30
+ //# sourceMappingURL=feedback_factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback_factory.js","sourceRoot":"","sources":["../../../src/factories/feedback_factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAgC;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAmB;QAC/B,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,IAAI,UAAU,EAAE,SAAS,CAAC;QAC9E,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,MAAM;QACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,UAAU;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/E,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,GAAG,OAAO;KACO,CAAC;IAEpB,wCAAwC;IACxC,MAAM,UAAU,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=feedback_factory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback_factory.test.d.ts","sourceRoot":"","sources":["../../../src/factories/feedback_factory.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,256 @@
1
+ import { createFeedbackRecord } from './feedback_factory';
2
+ import { generateFeedbackId } from '../utils/id_generator';
3
+ import { DetailedValidationError } from '../validation/common';
4
+ // Mock the validator
5
+ jest.mock('../validation/feedback_validator', () => ({
6
+ validateFeedbackRecordDetailed: jest.fn()
7
+ }));
8
+ // Mock ID generator
9
+ jest.mock('../utils/id_generator', () => ({
10
+ generateFeedbackId: jest.fn()
11
+ }));
12
+ describe('FeedbackRecord Factory', () => {
13
+ const mockValidateFeedbackRecordDetailed = require('../validation/feedback_validator').validateFeedbackRecordDetailed;
14
+ const mockGenerateFeedbackId = generateFeedbackId;
15
+ beforeEach(() => {
16
+ jest.clearAllMocks();
17
+ // Default successful validation
18
+ mockValidateFeedbackRecordDetailed.mockReturnValue({
19
+ isValid: true,
20
+ errors: []
21
+ });
22
+ // Default ID generation
23
+ mockGenerateFeedbackId.mockReturnValue('1752788100-feedback-test-feedback');
24
+ });
25
+ describe('createFeedbackRecord', () => {
26
+ it('[EARS-1] should create a valid FeedbackRecord with all required fields', async () => {
27
+ const payload = {
28
+ entityType: 'task',
29
+ entityId: '1752274500-task-test-task',
30
+ type: 'blocking',
31
+ content: 'This task has a blocking issue that needs resolution',
32
+ assignee: 'human:qa-lead',
33
+ resolvesFeedbackId: '1752788000-feedback-original'
34
+ };
35
+ const result = await createFeedbackRecord(payload);
36
+ expect(result).toEqual({
37
+ id: '1752788100-feedback-test-feedback',
38
+ entityType: 'task',
39
+ entityId: '1752274500-task-test-task',
40
+ type: 'blocking',
41
+ status: 'open',
42
+ content: 'This task has a blocking issue that needs resolution',
43
+ assignee: 'human:qa-lead',
44
+ resolvesFeedbackId: '1752788000-feedback-original'
45
+ });
46
+ expect(mockValidateFeedbackRecordDetailed).toHaveBeenCalledWith(result);
47
+ });
48
+ it('[EARS-2] should apply default values for missing optional fields', async () => {
49
+ const payload = {
50
+ entityType: 'task',
51
+ entityId: '1752274500-task-test-task',
52
+ content: 'Test feedback content'
53
+ };
54
+ const result = await createFeedbackRecord(payload);
55
+ expect(result).toEqual({
56
+ id: '1752788100-feedback-test-feedback',
57
+ entityType: 'task',
58
+ entityId: '1752274500-task-test-task',
59
+ type: 'question',
60
+ status: 'open',
61
+ content: 'Test feedback content',
62
+ assignee: undefined,
63
+ resolvesFeedbackId: undefined
64
+ });
65
+ expect(mockGenerateFeedbackId).toHaveBeenCalledWith('Test feedback content', expect.any(Number));
66
+ });
67
+ it('[EARS-3] should preserve provided ID when specified', async () => {
68
+ const payload = {
69
+ id: '1752788200-feedback-custom-id',
70
+ entityType: 'execution',
71
+ entityId: '1752275500-exec-test-execution',
72
+ type: 'suggestion',
73
+ content: 'Custom feedback with provided ID'
74
+ };
75
+ const result = await createFeedbackRecord(payload);
76
+ expect(result.id).toBe('1752788200-feedback-custom-id');
77
+ expect(mockGenerateFeedbackId).not.toHaveBeenCalled();
78
+ });
79
+ it('[EARS-4] should set status to resolved for assignment type feedback', async () => {
80
+ const payload = {
81
+ entityType: 'task',
82
+ entityId: '1752274500-task-test-task',
83
+ type: 'assignment',
84
+ content: 'Assigning this task to development team',
85
+ assignee: 'human:developer'
86
+ };
87
+ const result = await createFeedbackRecord(payload);
88
+ expect(result.status).toBe('resolved');
89
+ expect(result.type).toBe('assignment');
90
+ });
91
+ it('[EARS-5] should throw DetailedValidationError when validation fails', async () => {
92
+ const payload = {
93
+ entityType: 'task',
94
+ entityId: '1752274500-task-test-task',
95
+ type: 'blocking',
96
+ content: 'Test feedback content'
97
+ };
98
+ const validationErrors = [
99
+ { field: 'entityId', message: 'must match pattern', value: payload.entityId }
100
+ ];
101
+ mockValidateFeedbackRecordDetailed.mockReturnValue({
102
+ isValid: false,
103
+ errors: validationErrors
104
+ });
105
+ await expect(createFeedbackRecord(payload)).rejects.toThrow(DetailedValidationError);
106
+ await expect(createFeedbackRecord(payload)).rejects.toThrow('FeedbackRecord');
107
+ });
108
+ it('[EARS-6] should preserve all provided fields in the output', async () => {
109
+ const payload = {
110
+ id: '1752788200-feedback-preserve-fields',
111
+ entityType: 'feedback',
112
+ entityId: '1752788000-feedback-original',
113
+ type: 'clarification',
114
+ status: 'acknowledged',
115
+ content: 'Providing clarification on the original feedback',
116
+ assignee: 'human:tech-lead',
117
+ resolvesFeedbackId: '1752788000-feedback-original'
118
+ };
119
+ const result = await createFeedbackRecord(payload);
120
+ expect(result).toEqual(payload);
121
+ expect(mockValidateFeedbackRecordDetailed).toHaveBeenCalledWith(payload);
122
+ });
123
+ it('[EARS-7] should generate ID from content when content is provided but ID is not', async () => {
124
+ const payload = {
125
+ entityType: 'task',
126
+ entityId: '1752274500-task-test-task',
127
+ type: 'question',
128
+ content: 'This is a specific question about implementation'
129
+ };
130
+ mockGenerateFeedbackId.mockReturnValue('1752788100-feedback-this-is-a-specific-question-about');
131
+ const result = await createFeedbackRecord(payload);
132
+ expect(result.id).toBe('1752788100-feedback-this-is-a-specific-question-about');
133
+ expect(mockGenerateFeedbackId).toHaveBeenCalledWith('This is a specific question about implementation', expect.any(Number));
134
+ });
135
+ it('[EARS-8] should use current timestamp when none provided', async () => {
136
+ const payload = {
137
+ entityType: 'task',
138
+ entityId: '1752274500-task-test-task',
139
+ type: 'suggestion',
140
+ content: 'Timestamp test feedback'
141
+ };
142
+ const beforeTime = Math.floor(Date.now() / 1000);
143
+ await createFeedbackRecord(payload);
144
+ const afterTime = Math.floor(Date.now() / 1000);
145
+ expect(mockGenerateFeedbackId).toHaveBeenCalledWith('Timestamp test feedback', expect.any(Number));
146
+ const calledTimestamp = mockGenerateFeedbackId.mock.calls[0][1];
147
+ expect(calledTimestamp).toBeGreaterThanOrEqual(beforeTime);
148
+ expect(calledTimestamp).toBeLessThanOrEqual(afterTime);
149
+ });
150
+ describe('FeedbackRecord Specific Factory Operations (EARS 25-28)', () => {
151
+ it('[EARS-25] should throw DetailedValidationError for invalid entityType', async () => {
152
+ const validationErrors = [
153
+ { field: 'entityType', message: 'must be one of task, execution, changelog, feedback', value: 'invalid-entity' }
154
+ ];
155
+ mockValidateFeedbackRecordDetailed.mockReturnValue({
156
+ isValid: false,
157
+ errors: validationErrors
158
+ });
159
+ const payload = {
160
+ entityType: 'invalid-entity',
161
+ entityId: '1752274500-task-test-task',
162
+ type: 'suggestion',
163
+ content: 'Test feedback'
164
+ };
165
+ await expect(createFeedbackRecord(payload)).rejects.toThrow(DetailedValidationError);
166
+ });
167
+ it('[EARS-26] should throw DetailedValidationError for invalid type', async () => {
168
+ const validationErrors = [
169
+ { field: 'type', message: 'must be one of blocking, suggestion, question, approval, clarification, assignment', value: 'invalid-type' }
170
+ ];
171
+ mockValidateFeedbackRecordDetailed.mockReturnValue({
172
+ isValid: false,
173
+ errors: validationErrors
174
+ });
175
+ const payload = {
176
+ entityType: 'task',
177
+ entityId: '1752274500-task-test-task',
178
+ type: 'invalid-type',
179
+ content: 'Test feedback'
180
+ };
181
+ await expect(createFeedbackRecord(payload)).rejects.toThrow(DetailedValidationError);
182
+ });
183
+ it('[EARS-27] should throw DetailedValidationError for invalid status', async () => {
184
+ const validationErrors = [
185
+ { field: 'status', message: 'must be one of open, acknowledged, resolved, wontfix', value: 'invalid-status' }
186
+ ];
187
+ mockValidateFeedbackRecordDetailed.mockReturnValue({
188
+ isValid: false,
189
+ errors: validationErrors
190
+ });
191
+ const payload = {
192
+ entityType: 'task',
193
+ entityId: '1752274500-task-test-task',
194
+ type: 'suggestion',
195
+ content: 'Test feedback',
196
+ status: 'invalid-status'
197
+ };
198
+ await expect(createFeedbackRecord(payload)).rejects.toThrow(DetailedValidationError);
199
+ });
200
+ it('[EARS-28] should apply status resolved for type assignment', async () => {
201
+ const payload = {
202
+ entityType: 'task',
203
+ entityId: '1752274500-task-test-task',
204
+ type: 'assignment',
205
+ content: 'Please assign this task to the backend team',
206
+ assignee: 'human:backend-lead'
207
+ };
208
+ const result = await createFeedbackRecord(payload);
209
+ expect(result.type).toBe('assignment');
210
+ expect(result.status).toBe('resolved'); // Special default for assignment
211
+ expect(result.assignee).toBe('human:backend-lead');
212
+ });
213
+ it('[EARS-25] should accept valid entityType values', async () => {
214
+ const validEntityTypes = ['task', 'execution', 'changelog', 'feedback'];
215
+ for (const entityType of validEntityTypes) {
216
+ const payload = {
217
+ entityType: entityType,
218
+ entityId: `1752274500-${entityType}-test-entity`,
219
+ type: 'suggestion',
220
+ content: `Test feedback for ${entityType}`
221
+ };
222
+ const feedback = await createFeedbackRecord(payload);
223
+ expect(feedback.entityType).toBe(entityType);
224
+ }
225
+ });
226
+ it('[EARS-26] should accept valid type values', async () => {
227
+ const validTypes = ['blocking', 'suggestion', 'question', 'approval', 'clarification', 'assignment'];
228
+ for (const type of validTypes) {
229
+ const payload = {
230
+ entityType: 'task',
231
+ entityId: '1752274500-task-test-task',
232
+ type: type,
233
+ content: `Test ${type} feedback`
234
+ };
235
+ const feedback = await createFeedbackRecord(payload);
236
+ expect(feedback.type).toBe(type);
237
+ }
238
+ });
239
+ it('[EARS-27] should accept valid status values', async () => {
240
+ const validStatuses = ['open', 'acknowledged', 'resolved', 'wontfix'];
241
+ for (const status of validStatuses) {
242
+ const payload = {
243
+ entityType: 'task',
244
+ entityId: '1752274500-task-test-task',
245
+ type: 'suggestion',
246
+ content: 'Test feedback for status validation',
247
+ status: status
248
+ };
249
+ const feedback = await createFeedbackRecord(payload);
250
+ expect(feedback.status).toBe(status);
251
+ }
252
+ });
253
+ });
254
+ });
255
+ });
256
+ //# sourceMappingURL=feedback_factory.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback_factory.test.js","sourceRoot":"","sources":["../../../src/factories/feedback_factory.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./actor_factory";
2
+ export * from "./agent_factory";
3
+ export * from "./task_factory";
4
+ export * from "./cycle_factory";
5
+ export * from "./execution_factory";
6
+ export * from "./changelog_factory";
7
+ export * from "./feedback_factory";
8
+ export * from "./workflow_methodology_factory";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export * from "./actor_factory";
2
+ export * from "./agent_factory";
3
+ export * from "./task_factory";
4
+ export * from "./cycle_factory";
5
+ export * from "./execution_factory";
6
+ export * from "./changelog_factory";
7
+ export * from "./feedback_factory";
8
+ export * from "./workflow_methodology_factory";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { TaskRecord } from "../types";
2
+ /**
3
+ * Creates a new, fully-formed TaskRecord with validation.
4
+ */
5
+ export declare function createTaskRecord(payload: Partial<TaskRecord>): Promise<TaskRecord>;
6
+ //# sourceMappingURL=task_factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task_factory.d.ts","sourceRoot":"","sources":["../../../src/factories/task_factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,CAyBrB"}