@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
package/README.md ADDED
@@ -0,0 +1,303 @@
1
+ # @gitgov/core: The Governance Engine
2
+
3
+ [![NPM Version](https://img.shields.io/npm/v/@gitgov/core)](https://www.npmjs.com/package/@gitgov/core)
4
+ [![License: MPL-2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)
5
+ [![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue.svg)](./tsconfig.json)
6
+
7
+ `@gitgov/core` is the **universal SDK** for the GitGovernance ecosystem. It provides a type-safe, local-first, and schema-driven API to manage identities, agents, and workflows in software projects.
8
+
9
+ ## šŸš€ Quick Start
10
+
11
+ This example initializes a complete GitGovernance project in a new directory, creating the necessary configuration, the first user actor, and a root cycle for tasks.
12
+
13
+ ```typescript
14
+ import {
15
+ ProjectAdapter,
16
+ ConfigManager,
17
+ RecordStore,
18
+ IdentityAdapter,
19
+ BacklogAdapter,
20
+ WorkflowMethodologyAdapter,
21
+ } from "@gitgov/core";
22
+ import path from "path";
23
+ import fs from "fs/promises";
24
+
25
+ // 1. Instantiate all core adapters and their dependencies
26
+ const identityAdapter = new IdentityAdapter();
27
+ const backlogAdapter = new BacklogAdapter({
28
+ taskStore: new RecordStore("tasks"),
29
+ cycleStore: new RecordStore("cycles"),
30
+ workflowMethodology: new WorkflowMethodologyAdapter(),
31
+ identity: identityAdapter,
32
+ });
33
+ const projectAdapter = new ProjectAdapter({
34
+ identityAdapter,
35
+ backlogAdapter,
36
+ workflowMethodologyAdapter: new WorkflowMethodologyAdapter(),
37
+ configManager: new ConfigManager(),
38
+ taskStore: new RecordStore("tasks"),
39
+ cycleStore: new RecordStore("cycles"),
40
+ });
41
+
42
+ // 2. Validate environment and initialize the project
43
+ const validation = await projectAdapter.validateEnvironment();
44
+ if (!validation.isValid) {
45
+ console.error("Environment issues:", validation.warnings);
46
+ process.exit(1);
47
+ }
48
+
49
+ const result = await projectAdapter.initializeProject({
50
+ name: "My GitGovernance Project",
51
+ actorName: "Project Owner",
52
+ });
53
+
54
+ // 3. Project is now ready!
55
+ console.log(`āœ… Project initialized: ${result.projectId}`);
56
+ console.log(`šŸ”— Root cycle: ${result.rootCycle}`);
57
+ console.log(
58
+ `šŸ‘¤ Actor created: ${result.actor.displayName} (${result.actor.id})`
59
+ );
60
+
61
+ // Expected output:
62
+ // āœ… Project initialized: my-gitgovernance-project
63
+ // šŸ”— Root cycle: cycle:my-gitgovernance-project.root
64
+ // šŸ‘¤ Actor created: Project Owner (human:project-owner)
65
+ ```
66
+
67
+ ## āœ… What's Implemented (v1.0)
68
+
69
+ ### Identity Management (Complete)
70
+
71
+ - **ActorRecord**: Cryptographic identities with Ed25519 keys
72
+ - **AgentRecord**: AI agent operational manifests
73
+ - **Full CRUD**: Create, read, list, revoke operations
74
+ - **Schema Validation**: JSON Schema-driven with detailed errors
75
+ - **Performance**: Schema validation caching
76
+
77
+ ### Complete Adapter Ecosystem (7/7 Adapters)
78
+
79
+ - **ProjectAdapter**: Project initialization engine with 3-adapter orchestration (āœ… Implemented)
80
+ - **BacklogAdapter**: Task and cycle lifecycle management with workflow validation (āœ… Implemented)
81
+ - **MetricsAdapter**: Pure calculation engine for system analytics (āœ… Implemented)
82
+ - **ChangelogAdapter**: System historian for change documentation (āœ… Implemented)
83
+ - **ExecutionAdapter**: Immutable audit log for work execution (āœ… Implemented)
84
+ - **FeedbackAdapter**: Structured communication and blocking management (āœ… Implemented)
85
+ - **IdentityAdapter**: Cryptographic identity and agent management (āœ… Implemented)
86
+
87
+ ### Complete Record System (7/7 Records)
88
+
89
+ - **TaskRecord**: Factory and validation for task management
90
+ - **CycleRecord**: Factory and validation for cycle organization
91
+ - **ExecutionRecord**: Factory and validation for execution logging
92
+ - **ChangelogRecord**: Factory and validation for changelog generation
93
+ - **FeedbackRecord**: Factory and validation for feedback management
94
+ - **ActorRecord**: Factory and validation for identity management
95
+ - **AgentRecord**: Factory and validation for agent manifests
96
+
97
+ ### Infrastructure Modules
98
+
99
+ - **Generic Store**: CRUD operations for all record types
100
+ - **Integration Testing**: Cross-module validation framework
101
+ - **WorkflowMethodologyAdapter**: Configurable workflow validation engine (āœ… Implemented)
102
+ - **EventBusModule**: Event-driven architecture foundation with 9 event types (āœ… Implemented)
103
+
104
+ ```typescript
105
+ // Complete project initialization workflow
106
+ const projectAdapter = new ProjectAdapter({
107
+ identityAdapter: new IdentityAdapter(),
108
+ backlogAdapter: new BacklogAdapter(/* dependencies */),
109
+ workflowMethodologyAdapter: new WorkflowMethodologyAdapter(),
110
+ configManager: new ConfigManager(),
111
+ taskStore: new RecordStore("tasks"),
112
+ cycleStore: new RecordStore("cycles"),
113
+ });
114
+
115
+ // 1. Validate environment
116
+ const validation = await projectAdapter.validateEnvironment();
117
+ if (!validation.isValid) {
118
+ console.error("Environment issues:", validation.warnings);
119
+ process.exit(1);
120
+ }
121
+
122
+ // 2. Initialize complete project
123
+ const result = await projectAdapter.initializeProject({
124
+ name: "My GitGovernance Project",
125
+ actorName: "Project Owner",
126
+ template: "./templates/basic.json",
127
+ methodology: "scrum",
128
+ });
129
+
130
+ // 3. Project is now ready
131
+ console.log(`āœ… Project initialized: ${result.projectId}`);
132
+ console.log(`šŸ”— Root cycle: ${result.rootCycle}`);
133
+ console.log(`šŸ‘¤ Actor: ${result.actor.displayName}`);
134
+
135
+ // 4. Get project information
136
+ const projectInfo = await projectAdapter.getProjectInfo();
137
+ console.log(`šŸ“Š Project: ${projectInfo?.name}`);
138
+ ```
139
+
140
+ ## šŸ—ļø Architecture
141
+
142
+ The package is built with a domain-driven architecture to separate responsibilities. The public API is exposed through `Adapters`.
143
+
144
+ ```mermaid
145
+ graph TD
146
+ subgraph "@gitgov/core"
147
+ PA[ProjectAdapter] --> IA[IdentityAdapter];
148
+ PA --> BA[BacklogAdapter];
149
+ PA --> WMA[WorkflowMethodologyAdapter];
150
+ PA --> CM[ConfigManager];
151
+ PA --> F((Factories));
152
+ IA --> F;
153
+ IA --> V((Validation));
154
+ IA --> S((Store));
155
+ IA --> CR((Crypto));
156
+ end
157
+
158
+ subgraph "Consumidores"
159
+ CLI["@gitgov/cli"]
160
+ SAAS["@gitgov/saas"]
161
+ end
162
+
163
+ CLI --> PA;
164
+ SAAS --> PA;
165
+
166
+ style PA fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
167
+ style IA fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
168
+ style BA fill:#e8f5e8,stroke:#4caf50,stroke-width:2px
169
+ ```
170
+
171
+ ### Core Principles
172
+
173
+ 1. **Protocol-Driven**: The canonical JSON Schemas that define the governance protocol are bundled with the package and are the single source of truth for all data validation.
174
+ 2. **Type Safety**: Strict TypeScript with no `any` to prevent compile-time errors.
175
+ 3. **Event Coherence Guarantee**: Event payloads are derived from canonical records using TypeScript Utility Types, ensuring 100% consistency between system state and system events.
176
+ 4. **Rich Errors**: Detailed, field-level validation errors to make debugging easier.
177
+ 5. **Performance**: A compiled schema cache (`SchemaValidationCache`) minimizes I/O and accelerates repetitive validations.
178
+ 6. **Local-First**: Designed to operate directly on a Git repository as its database.
179
+
180
+ ## šŸ”§ Advanced Usage
181
+
182
+ ### Schema Validation
183
+
184
+ ```typescript
185
+ import {
186
+ validateActorRecordDetailed,
187
+ DetailedValidationError,
188
+ } from "@gitgov/core";
189
+
190
+ const result = validateActorRecordDetailed(userData);
191
+ if (!result.isValid) {
192
+ result.errors.forEach((error) => {
193
+ console.log(`āŒ ${error.field}: ${error.message}`);
194
+ console.log(` Got: ${JSON.stringify(error.value)}`);
195
+ });
196
+ }
197
+ ```
198
+
199
+ ### Custom Error Handling
200
+
201
+ ```typescript
202
+ import {
203
+ DetailedValidationError,
204
+ RecordNotFoundError,
205
+ ProjectRootError,
206
+ } from "@gitgov/core";
207
+
208
+ function handleCoreErrors(error: unknown) {
209
+ if (error instanceof DetailedValidationError) {
210
+ return { type: "validation", fields: error.ajvErrors };
211
+ } else if (error instanceof RecordNotFoundError) {
212
+ return { type: "not_found", code: error.code };
213
+ } else if (error instanceof ProjectRootError) {
214
+ return { type: "setup", message: "Initialize Git repository first" };
215
+ }
216
+ return { type: "unknown", error };
217
+ }
218
+ ```
219
+
220
+ ### Performance Monitoring
221
+
222
+ ```typescript
223
+ import { SchemaValidationCache } from "@gitgov/core";
224
+
225
+ // Monitor cache efficiency
226
+ const stats = SchemaValidationCache.getCacheStats();
227
+ console.log(`Cache hit ratio: ${stats.cachedSchemas} schemas loaded`);
228
+
229
+ // Clear cache when schemas are updated
230
+ SchemaValidationCache.clearCache();
231
+ ```
232
+
233
+ ## 🧪 Testing & Development
234
+
235
+ ```bash
236
+ # Run all tests (500+ passing)
237
+ npm test
238
+
239
+ # Type checking
240
+ npx tsc --noEmit
241
+
242
+ # Watch mode for development
243
+ npm test -- --watch
244
+ ```
245
+
246
+ ### Test Coverage
247
+
248
+ - **711 tests total** with EARS methodology
249
+ - **ProjectAdapter**: 18 tests (complete project initialization + template processing + error recovery)
250
+ - **BacklogAdapter**: 43 tests (complete workflow lifecycle + event handlers + E2E simulation)
251
+ - **MetricsAdapter**: 32 tests (Tier 1+2 calculations + performance validation)
252
+ - **ChangelogAdapter**: 31 tests (multi-entity changelog + conditional validation)
253
+ - **EventBusModule**: 32 tests (20 unit + 12 integration tests with cross-adapter scenarios)
254
+ - **FeedbackAdapter**: 15 tests (complete EARS coverage with dual event emission)
255
+ - **ExecutionAdapter**: 13 tests (complete EARS coverage with performance validation)
256
+ - **WorkflowMethodologyAdapter**: 51 tests (29 unit + 22 integration tests)
257
+ - **Identity Domain**: 66 tests (Adapter + ActorRecord/AgentRecord factories & validators)
258
+ - **Validation**: 62 tests (for Task, Cycle, Exec, CL, Feedback records + schema caching)
259
+ - **Factories**: 40 tests (for Task, Cycle, Exec, CL, Feedback records)
260
+ - **Store**: 26 tests (generic CRUD for all record types)
261
+ - **Crypto**: 23 tests (signatures + checksums for all 7 record types)
262
+ - **ConfigManager**: 20 tests (configuration + session state + project utilities)
263
+ - **Utils**: 10 tests (ID generation utilities)
264
+ - **Integration**: 18 tests (cross-module validation)
265
+
266
+ ## šŸ”® Roadmap
267
+
268
+ ### Next: CLI Integration & Polish
269
+
270
+ - CLI init command integration with ProjectAdapter
271
+ - Real adapter integration tests (replace mocks with actual adapters)
272
+ - IndexerModule for local cache optimization
273
+ - Performance benchmarking with enterprise datasets
274
+ - ConfigManager write methods (architectural improvement)
275
+
276
+ ### Recently Completed
277
+
278
+ - āœ… **ProjectAdapter**: Complete implementation with 3-adapter orchestration
279
+ - āœ… **BacklogAdapter**: Complete implementation with event-driven coordination
280
+ - āœ… **MetricsAdapter**: Complete calculation engine with Tier 1+2 functions
281
+ - āœ… **ChangelogAdapter**: Complete implementation with conditional validation
282
+ - āœ… **ExecutionAdapter**: Complete implementation with traceability
283
+ - āœ… **FeedbackAdapter**: Complete implementation with dual event emission
284
+
285
+ ## šŸ“š Documentation
286
+
287
+ - **[Protocol Specs](./src/schemas/)**: Canonical schemas and rules
288
+
289
+ ## šŸ¤ Contributing
290
+
291
+ This package follows **a protocol-first approach**. Every feature must:
292
+
293
+ 1. Have a corresponding specification (blueprint) in `specs/`
294
+ 2. Include comprehensive tests with EARS references
295
+ 3. Follow the established architectural patterns
296
+ 4. Pass TypeScript strict compilation
297
+ 5. Update relevant documentation
298
+
299
+ See [CONTRIBUTING.md](../../CONTRIBUTING.md) for detailed guidelines.
300
+
301
+ ---
302
+
303
+ **Built with ā¤ļø by the GitGovernance Team**
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * Compile JSON schemas to TypeScript types
4
+ *
5
+ * This script reads the JSON schemas from src/schemas/ (with $ref references)
6
+ * and generates TypeScript types using json-schema-to-typescript.
7
+ * It handles $ref resolution automatically.
8
+ */
9
+ declare function compileSchemas(): Promise<void>;
10
+ export { compileSchemas };
11
+ //# sourceMappingURL=compile-json-to-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-json-to-types.d.ts","sourceRoot":"","sources":["../../scripts/compile-json-to-types.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AA+DH,iBAAe,cAAc,kBA0E5B;AAOD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * Compile JSON schemas to TypeScript types
4
+ *
5
+ * This script reads the JSON schemas from src/schemas/ (with $ref references)
6
+ * and generates TypeScript types using json-schema-to-typescript.
7
+ * It handles $ref resolution automatically.
8
+ */
9
+ import * as fs from 'fs';
10
+ import * as path from 'path';
11
+ import { compile } from 'json-schema-to-typescript';
12
+ import { fileURLToPath } from 'url';
13
+ // ESM equivalent of __dirname
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = path.dirname(__filename);
16
+ // Paths
17
+ const SCHEMAS_DIR = path.join(__dirname, '../src/schemas/generated');
18
+ const OUTPUT_DIR = path.join(__dirname, '../src/types/generated');
19
+ /**
20
+ * Generate schema mappings by reading all JSON files in the schemas directory
21
+ */
22
+ function generateSchemaMappings(schemasDir) {
23
+ const mappings = {};
24
+ if (!fs.existsSync(schemasDir)) {
25
+ console.warn(`āš ļø Schemas directory not found: ${schemasDir}`);
26
+ return mappings;
27
+ }
28
+ const files = fs.readdirSync(schemasDir)
29
+ .filter(file => file.endsWith('.json'))
30
+ .sort();
31
+ for (const jsonFile of files) {
32
+ // Convert all schemas consistently: "actor_record_schema.json" → "actor_record.ts"
33
+ const tsFileName = jsonFile.replace('_schema.json', '.ts');
34
+ mappings[jsonFile] = tsFileName;
35
+ }
36
+ return mappings;
37
+ }
38
+ /**
39
+ * Custom resolver for $ref references within our schemas directory
40
+ */
41
+ function createRefResolver(schemasDir) {
42
+ return {
43
+ order: 1,
44
+ canRead: (file) => {
45
+ return typeof file.url === 'string' && file.url.startsWith('ref:');
46
+ },
47
+ read: (file) => {
48
+ const schemaName = file.url.replace('ref:', '');
49
+ const jsonPath = path.join(schemasDir, `${schemaName}.json`);
50
+ if (fs.existsSync(jsonPath)) {
51
+ const content = fs.readFileSync(jsonPath, 'utf8');
52
+ return JSON.parse(content);
53
+ }
54
+ else {
55
+ console.warn(`āš ļø Referenced schema not found: ${jsonPath}`);
56
+ return {}; // Return empty schema as fallback
57
+ }
58
+ }
59
+ };
60
+ }
61
+ async function compileSchemas() {
62
+ console.log('šŸ”„ Compiling JSON schemas to TypeScript types...');
63
+ // Create output directory if it doesn't exist
64
+ fs.mkdirSync(OUTPUT_DIR, { recursive: true });
65
+ const compiledTypes = [];
66
+ // Generate schema mappings dynamically
67
+ const schemaMappings = generateSchemaMappings(SCHEMAS_DIR);
68
+ // Process each schema mapping
69
+ for (const [jsonFile, tsFile] of Object.entries(schemaMappings)) {
70
+ const jsonPath = path.join(SCHEMAS_DIR, jsonFile);
71
+ const tsPath = path.join(OUTPUT_DIR, tsFile);
72
+ if (!fs.existsSync(jsonPath)) {
73
+ console.warn(`āš ļø Schema not found: ${jsonPath}`);
74
+ continue;
75
+ }
76
+ try {
77
+ // Read JSON schema
78
+ const schemaContent = fs.readFileSync(jsonPath, 'utf8');
79
+ const schema = JSON.parse(schemaContent);
80
+ // Generate TypeScript type name
81
+ const typeName = path.basename(tsFile, '.ts')
82
+ .split('_')
83
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
84
+ .join('');
85
+ // Compile to TypeScript with custom options
86
+ const tsContent = await compile(schema, typeName, {
87
+ bannerComment: `/**
88
+ * This file was automatically generated from ${jsonFile}.
89
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source schema,
90
+ * and run 'pnpm compile:types' to regenerate this file.
91
+ */`,
92
+ style: {
93
+ singleQuote: true,
94
+ },
95
+ // Custom resolver for handling $ref to other schemas
96
+ $refOptions: {
97
+ resolve: {
98
+ // Custom resolver for our schema references
99
+ file: createRefResolver(SCHEMAS_DIR)
100
+ }
101
+ },
102
+ // Additional options for better type generation
103
+ additionalProperties: false,
104
+ enableConstEnums: true,
105
+ strictIndexSignatures: true,
106
+ });
107
+ // Write TypeScript file
108
+ fs.writeFileSync(tsPath, tsContent);
109
+ console.log(`āœ… ${jsonFile} → types/${tsFile}`);
110
+ compiledTypes.push(path.basename(tsFile, '.ts'));
111
+ }
112
+ catch (error) {
113
+ console.error(`āŒ Failed to compile ${jsonFile}:`, error);
114
+ // Don't exit on error, continue with other schemas
115
+ console.log(` Continuing with other schemas...`);
116
+ }
117
+ }
118
+ console.log(`šŸŽ‰ Successfully compiled ${compiledTypes.length} schema types!`);
119
+ if (compiledTypes.length > 0) {
120
+ console.log(`šŸ“ Types generated in: ${OUTPUT_DIR}`);
121
+ console.log(`šŸ”— Available types: ${compiledTypes.join(', ')}`);
122
+ }
123
+ }
124
+ // Run if called directly
125
+ if (import.meta.url === `file://${process.argv[1]}`) {
126
+ compileSchemas().catch(console.error);
127
+ }
128
+ export { compileSchemas };
129
+ //# sourceMappingURL=compile-json-to-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-json-to-types.js","sourceRoot":"","sources":["../../scripts/compile-json-to-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * Diagnostic script to detect duplicate nodes and edges in GitGovernance data
4
+ * Usage: npx tsx packages/core/scripts/diagnose-duplicates.ts
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=diagnose-duplicates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose-duplicates.d.ts","sourceRoot":"","sources":["../../scripts/diagnose-duplicates.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * Diagnostic script to detect duplicate nodes and edges in GitGovernance data
4
+ * Usage: npx tsx packages/core/scripts/diagnose-duplicates.ts
5
+ */
6
+ import { DiagramGenerator } from '../src/diagram_generator/index.js';
7
+ import { ConfigManager } from '../src/config_manager/index.js';
8
+ import * as path from 'path';
9
+ async function diagnoseDuplicates() {
10
+ console.log('šŸ” Diagnosing duplicates in GitGovernance data...');
11
+ try {
12
+ // Find project root
13
+ const projectRoot = ConfigManager.findProjectRoot();
14
+ if (!projectRoot) {
15
+ throw new Error("Could not find project root.");
16
+ }
17
+ // Initialize generator
18
+ const generator = new DiagramGenerator({
19
+ layout: 'LR',
20
+ includeEpicTasks: true,
21
+ maxDepth: 4,
22
+ colorScheme: 'default',
23
+ showAssignments: false,
24
+ });
25
+ // Load records
26
+ const gitgovPath = path.join(projectRoot, '.gitgov');
27
+ const cycles = await generator.loadCycleRecords(gitgovPath);
28
+ const tasks = await generator.loadTaskRecords(gitgovPath);
29
+ console.log(`šŸ“Š Loaded ${cycles.length} cycles and ${tasks.length} tasks`);
30
+ // Detect duplicates using our new method
31
+ const duplicates = generator.analyzer.detectDuplicates(cycles, tasks);
32
+ if (duplicates.duplicateNodes.length === 0 && duplicates.duplicateEdges.length === 0) {
33
+ console.log('āœ… No duplicates found!');
34
+ }
35
+ else {
36
+ console.log('\nšŸ”“ Duplicates detected:');
37
+ if (duplicates.duplicateNodes.length > 0) {
38
+ console.log('\nšŸ“¦ Duplicate Nodes:');
39
+ duplicates.duplicateNodes.forEach(dup => {
40
+ console.log(` • ${dup.id} (appears ${dup.count} times)`);
41
+ console.log(` Sources: ${dup.sources.join(', ')}`);
42
+ });
43
+ }
44
+ if (duplicates.duplicateEdges.length > 0) {
45
+ console.log('\nšŸ”— Duplicate Edges:');
46
+ duplicates.duplicateEdges.forEach(dup => {
47
+ console.log(` • ${dup.edge} (appears ${dup.count} times)`);
48
+ });
49
+ }
50
+ }
51
+ // Generate graph with deduplication
52
+ console.log('\nšŸ”„ Generating deduplicated graph...');
53
+ const graph = generator.analyzer.analyzeRelationships(cycles, tasks);
54
+ if (graph.metadata.duplicatesRemoved) {
55
+ const { nodes: nodesDup, edges: edgesDup } = graph.metadata.duplicatesRemoved;
56
+ if (nodesDup > 0 || edgesDup > 0) {
57
+ console.log(`āœ‚ļø Removed ${nodesDup} duplicate nodes and ${edgesDup} duplicate edges`);
58
+ }
59
+ else {
60
+ console.log('āœ… No duplicates were removed (clean data)');
61
+ }
62
+ }
63
+ console.log(`šŸ“ˆ Final graph: ${graph.metadata.nodeCount} nodes, ${graph.metadata.edgeCount} edges`);
64
+ }
65
+ catch (error) {
66
+ console.error('āŒ Error during diagnosis:', error);
67
+ process.exit(1);
68
+ }
69
+ }
70
+ // Run the diagnostic
71
+ diagnoseDuplicates();
72
+ //# sourceMappingURL=diagnose-duplicates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose-duplicates.js","sourceRoot":"","sources":["../../scripts/diagnose-duplicates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * Generate index.ts files for schemas and types directories
4
+ *
5
+ * This script creates appropriate index files for both:
6
+ * - schemas/: Complex object exports with JSON imports
7
+ * - types/: Simple re-exports of TypeScript types
8
+ */
9
+ /**
10
+ * Generate schemas/index.ts with JSON imports and object exports
11
+ */
12
+ declare function generateSchemasIndex(): void;
13
+ /**
14
+ * Generate types/index.ts with simple re-exports
15
+ */
16
+ declare function generateTypesIndex(): void;
17
+ /**
18
+ * Generate both index files
19
+ */
20
+ declare function generateIndexes(): Promise<void>;
21
+ export { generateIndexes, generateSchemasIndex, generateTypesIndex };
22
+ //# sourceMappingURL=generate-indexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-indexes.d.ts","sourceRoot":"","sources":["../../scripts/generate-indexes.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AA4BH;;GAEG;AACH,iBAAS,oBAAoB,SAwF5B;AAED;;GAEG;AACH,iBAAS,kBAAkB,SAsC1B;AAED;;GAEG;AACH,iBAAe,eAAe,kBAW7B;AAOD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,CAAC"}