@weavelogic/knowledge-graph-agent 0.2.0 → 0.3.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 (585) hide show
  1. package/README.md +686 -304
  2. package/dist/_virtual/_commonjsHelpers.js +7 -0
  3. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/_virtual/additionalItems.js +5 -0
  5. package/dist/_virtual/additionalItems.js.map +1 -0
  6. package/dist/_virtual/additionalProperties.js +5 -0
  7. package/dist/_virtual/additionalProperties.js.map +1 -0
  8. package/dist/_virtual/ajv.js +6 -0
  9. package/dist/_virtual/ajv.js.map +1 -0
  10. package/dist/_virtual/ajv2.js +5 -0
  11. package/dist/_virtual/ajv2.js.map +1 -0
  12. package/dist/_virtual/allOf.js +5 -0
  13. package/dist/_virtual/allOf.js.map +1 -0
  14. package/dist/_virtual/anyOf.js +5 -0
  15. package/dist/_virtual/anyOf.js.map +1 -0
  16. package/dist/_virtual/applicability.js +5 -0
  17. package/dist/_virtual/applicability.js.map +1 -0
  18. package/dist/_virtual/boolSchema.js +5 -0
  19. package/dist/_virtual/boolSchema.js.map +1 -0
  20. package/dist/_virtual/code.js +5 -0
  21. package/dist/_virtual/code.js.map +1 -0
  22. package/dist/_virtual/code2.js +5 -0
  23. package/dist/_virtual/code2.js.map +1 -0
  24. package/dist/_virtual/const.js +5 -0
  25. package/dist/_virtual/const.js.map +1 -0
  26. package/dist/_virtual/contains.js +5 -0
  27. package/dist/_virtual/contains.js.map +1 -0
  28. package/dist/_virtual/core.js +5 -0
  29. package/dist/_virtual/core.js.map +1 -0
  30. package/dist/_virtual/dataType.js +5 -0
  31. package/dist/_virtual/dataType.js.map +1 -0
  32. package/dist/_virtual/defaults.js +5 -0
  33. package/dist/_virtual/defaults.js.map +1 -0
  34. package/dist/_virtual/dependencies.js +5 -0
  35. package/dist/_virtual/dependencies.js.map +1 -0
  36. package/dist/_virtual/draft7.js +5 -0
  37. package/dist/_virtual/draft7.js.map +1 -0
  38. package/dist/_virtual/enum.js +5 -0
  39. package/dist/_virtual/enum.js.map +1 -0
  40. package/dist/_virtual/equal.js +5 -0
  41. package/dist/_virtual/equal.js.map +1 -0
  42. package/dist/_virtual/errors.js +5 -0
  43. package/dist/_virtual/errors.js.map +1 -0
  44. package/dist/_virtual/format.js +5 -0
  45. package/dist/_virtual/format.js.map +1 -0
  46. package/dist/_virtual/formats.js +5 -0
  47. package/dist/_virtual/formats.js.map +1 -0
  48. package/dist/_virtual/id.js +5 -0
  49. package/dist/_virtual/id.js.map +1 -0
  50. package/dist/_virtual/if.js +5 -0
  51. package/dist/_virtual/if.js.map +1 -0
  52. package/dist/_virtual/index.js +8 -0
  53. package/dist/_virtual/index.js.map +1 -0
  54. package/dist/_virtual/index10.js +5 -0
  55. package/dist/_virtual/index10.js.map +1 -0
  56. package/dist/_virtual/index11.js +5 -0
  57. package/dist/_virtual/index11.js.map +1 -0
  58. package/dist/_virtual/index12.js +5 -0
  59. package/dist/_virtual/index12.js.map +1 -0
  60. package/dist/_virtual/index2.js +5 -0
  61. package/dist/_virtual/index2.js.map +1 -0
  62. package/dist/_virtual/index3.js +5 -0
  63. package/dist/_virtual/index3.js.map +1 -0
  64. package/dist/_virtual/index4.js +5 -0
  65. package/dist/_virtual/index4.js.map +1 -0
  66. package/dist/_virtual/index5.js +5 -0
  67. package/dist/_virtual/index5.js.map +1 -0
  68. package/dist/_virtual/index6.js +5 -0
  69. package/dist/_virtual/index6.js.map +1 -0
  70. package/dist/_virtual/index7.js +5 -0
  71. package/dist/_virtual/index7.js.map +1 -0
  72. package/dist/_virtual/index8.js +5 -0
  73. package/dist/_virtual/index8.js.map +1 -0
  74. package/dist/_virtual/index9.js +5 -0
  75. package/dist/_virtual/index9.js.map +1 -0
  76. package/dist/_virtual/items.js +5 -0
  77. package/dist/_virtual/items.js.map +1 -0
  78. package/dist/_virtual/items2020.js +5 -0
  79. package/dist/_virtual/items2020.js.map +1 -0
  80. package/dist/_virtual/keyword.js +5 -0
  81. package/dist/_virtual/keyword.js.map +1 -0
  82. package/dist/_virtual/limit.js +5 -0
  83. package/dist/_virtual/limit.js.map +1 -0
  84. package/dist/_virtual/limitItems.js +5 -0
  85. package/dist/_virtual/limitItems.js.map +1 -0
  86. package/dist/_virtual/limitLength.js +5 -0
  87. package/dist/_virtual/limitLength.js.map +1 -0
  88. package/dist/_virtual/limitNumber.js +5 -0
  89. package/dist/_virtual/limitNumber.js.map +1 -0
  90. package/dist/_virtual/limitProperties.js +5 -0
  91. package/dist/_virtual/limitProperties.js.map +1 -0
  92. package/dist/_virtual/metadata.js +5 -0
  93. package/dist/_virtual/metadata.js.map +1 -0
  94. package/dist/_virtual/multipleOf.js +5 -0
  95. package/dist/_virtual/multipleOf.js.map +1 -0
  96. package/dist/_virtual/names.js +5 -0
  97. package/dist/_virtual/names.js.map +1 -0
  98. package/dist/_virtual/not.js +5 -0
  99. package/dist/_virtual/not.js.map +1 -0
  100. package/dist/_virtual/oneOf.js +5 -0
  101. package/dist/_virtual/oneOf.js.map +1 -0
  102. package/dist/_virtual/pattern.js +5 -0
  103. package/dist/_virtual/pattern.js.map +1 -0
  104. package/dist/_virtual/patternProperties.js +5 -0
  105. package/dist/_virtual/patternProperties.js.map +1 -0
  106. package/dist/_virtual/prefixItems.js +5 -0
  107. package/dist/_virtual/prefixItems.js.map +1 -0
  108. package/dist/_virtual/properties.js +5 -0
  109. package/dist/_virtual/properties.js.map +1 -0
  110. package/dist/_virtual/propertyNames.js +5 -0
  111. package/dist/_virtual/propertyNames.js.map +1 -0
  112. package/dist/_virtual/ref.js +5 -0
  113. package/dist/_virtual/ref.js.map +1 -0
  114. package/dist/_virtual/ref_error.js +5 -0
  115. package/dist/_virtual/ref_error.js.map +1 -0
  116. package/dist/_virtual/required.js +5 -0
  117. package/dist/_virtual/required.js.map +1 -0
  118. package/dist/_virtual/resolve.js +5 -0
  119. package/dist/_virtual/resolve.js.map +1 -0
  120. package/dist/_virtual/rules.js +5 -0
  121. package/dist/_virtual/rules.js.map +1 -0
  122. package/dist/_virtual/scope.js +5 -0
  123. package/dist/_virtual/scope.js.map +1 -0
  124. package/dist/_virtual/subschema.js +5 -0
  125. package/dist/_virtual/subschema.js.map +1 -0
  126. package/dist/_virtual/thenElse.js +5 -0
  127. package/dist/_virtual/thenElse.js.map +1 -0
  128. package/dist/_virtual/types.js +5 -0
  129. package/dist/_virtual/types.js.map +1 -0
  130. package/dist/_virtual/ucs2length.js +5 -0
  131. package/dist/_virtual/ucs2length.js.map +1 -0
  132. package/dist/_virtual/uniqueItems.js +5 -0
  133. package/dist/_virtual/uniqueItems.js.map +1 -0
  134. package/dist/_virtual/uri.js +5 -0
  135. package/dist/_virtual/uri.js.map +1 -0
  136. package/dist/_virtual/util.js +5 -0
  137. package/dist/_virtual/util.js.map +1 -0
  138. package/dist/_virtual/validation_error.js +5 -0
  139. package/dist/_virtual/validation_error.js.map +1 -0
  140. package/dist/agents/analyst-agent.d.ts +230 -0
  141. package/dist/agents/analyst-agent.d.ts.map +1 -0
  142. package/dist/agents/analyst-agent.js +793 -0
  143. package/dist/agents/analyst-agent.js.map +1 -0
  144. package/dist/agents/architect-agent.d.ts +248 -0
  145. package/dist/agents/architect-agent.d.ts.map +1 -0
  146. package/dist/agents/architect-agent.js +685 -0
  147. package/dist/agents/architect-agent.js.map +1 -0
  148. package/dist/agents/base-agent.d.ts +169 -0
  149. package/dist/agents/base-agent.d.ts.map +1 -0
  150. package/dist/agents/base-agent.js +441 -0
  151. package/dist/agents/base-agent.js.map +1 -0
  152. package/dist/agents/coder-agent.d.ts +191 -0
  153. package/dist/agents/coder-agent.d.ts.map +1 -0
  154. package/dist/agents/coder-agent.js +1008 -0
  155. package/dist/agents/coder-agent.js.map +1 -0
  156. package/dist/agents/index.d.ts +18 -0
  157. package/dist/agents/index.d.ts.map +1 -0
  158. package/dist/agents/index.js +40 -0
  159. package/dist/agents/index.js.map +1 -0
  160. package/dist/agents/registry.d.ts +213 -0
  161. package/dist/agents/registry.d.ts.map +1 -0
  162. package/dist/agents/registry.js +419 -0
  163. package/dist/agents/registry.js.map +1 -0
  164. package/dist/agents/researcher-agent.d.ts +226 -0
  165. package/dist/agents/researcher-agent.d.ts.map +1 -0
  166. package/dist/agents/researcher-agent.js +572 -0
  167. package/dist/agents/researcher-agent.js.map +1 -0
  168. package/dist/agents/rules-engine.d.ts +320 -0
  169. package/dist/agents/rules-engine.d.ts.map +1 -0
  170. package/dist/agents/rules-engine.js +552 -0
  171. package/dist/agents/rules-engine.js.map +1 -0
  172. package/dist/agents/tester-agent.d.ts +219 -0
  173. package/dist/agents/tester-agent.d.ts.map +1 -0
  174. package/dist/agents/tester-agent.js +683 -0
  175. package/dist/agents/tester-agent.js.map +1 -0
  176. package/dist/agents/types.d.ts +425 -0
  177. package/dist/agents/types.d.ts.map +1 -0
  178. package/dist/agents/types.js +57 -0
  179. package/dist/agents/types.js.map +1 -0
  180. package/dist/caching/index.d.ts +55 -0
  181. package/dist/caching/index.d.ts.map +1 -0
  182. package/dist/caching/index.js +206 -0
  183. package/dist/caching/index.js.map +1 -0
  184. package/dist/caching/lru-cache.d.ts +254 -0
  185. package/dist/caching/lru-cache.d.ts.map +1 -0
  186. package/dist/caching/types.d.ts +95 -0
  187. package/dist/caching/types.d.ts.map +1 -0
  188. package/dist/chunking/chunker.d.ts +94 -0
  189. package/dist/chunking/chunker.d.ts.map +1 -0
  190. package/dist/chunking/index.d.ts +125 -0
  191. package/dist/chunking/index.d.ts.map +1 -0
  192. package/dist/chunking/index.js +283 -0
  193. package/dist/chunking/index.js.map +1 -0
  194. package/dist/chunking/types.d.ts +92 -0
  195. package/dist/chunking/types.d.ts.map +1 -0
  196. package/dist/cli/commands/commit.d.ts +11 -0
  197. package/dist/cli/commands/commit.d.ts.map +1 -0
  198. package/dist/cli/commands/commit.js +379 -0
  199. package/dist/cli/commands/commit.js.map +1 -0
  200. package/dist/cli/commands/config.d.ts +8 -0
  201. package/dist/cli/commands/config.d.ts.map +1 -0
  202. package/dist/cli/commands/config.js +107 -0
  203. package/dist/cli/commands/config.js.map +1 -0
  204. package/dist/cli/commands/cultivate.d.ts +16 -0
  205. package/dist/cli/commands/cultivate.d.ts.map +1 -0
  206. package/dist/cli/commands/cultivate.js +254 -0
  207. package/dist/cli/commands/cultivate.js.map +1 -0
  208. package/dist/cli/commands/diagnostics.d.ts +8 -0
  209. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  210. package/dist/cli/commands/diagnostics.js +140 -0
  211. package/dist/cli/commands/diagnostics.js.map +1 -0
  212. package/dist/cli/commands/generate.d.ts +13 -0
  213. package/dist/cli/commands/generate.d.ts.map +1 -0
  214. package/dist/cli/commands/init-primitives.d.ts +19 -0
  215. package/dist/cli/commands/init-primitives.d.ts.map +1 -0
  216. package/dist/cli/commands/init-primitives.js +208 -0
  217. package/dist/cli/commands/init-primitives.js.map +1 -0
  218. package/dist/cli/commands/sop.d.ts +14 -0
  219. package/dist/cli/commands/sop.d.ts.map +1 -0
  220. package/dist/cli/commands/sop.js +598 -0
  221. package/dist/cli/commands/sop.js.map +1 -0
  222. package/dist/cli/index.d.ts.map +1 -1
  223. package/dist/cli/index.js +40 -1
  224. package/dist/cli/index.js.map +1 -1
  225. package/dist/config/index.d.ts +153 -0
  226. package/dist/config/index.d.ts.map +1 -0
  227. package/dist/config/index.js +141 -0
  228. package/dist/config/index.js.map +1 -0
  229. package/dist/config/manager.d.ts +136 -0
  230. package/dist/config/manager.d.ts.map +1 -0
  231. package/dist/config/types.d.ts +127 -0
  232. package/dist/config/types.d.ts.map +1 -0
  233. package/dist/core/cache.d.ts +185 -0
  234. package/dist/core/cache.d.ts.map +1 -0
  235. package/dist/core/cache.js +435 -0
  236. package/dist/core/cache.js.map +1 -0
  237. package/dist/cultivation/deep-analyzer.d.ts +129 -0
  238. package/dist/cultivation/deep-analyzer.d.ts.map +1 -0
  239. package/dist/cultivation/deep-analyzer.js +322 -0
  240. package/dist/cultivation/deep-analyzer.js.map +1 -0
  241. package/dist/cultivation/index.d.ts +13 -0
  242. package/dist/cultivation/index.d.ts.map +1 -0
  243. package/dist/cultivation/seed-generator.d.ts +92 -0
  244. package/dist/cultivation/seed-generator.d.ts.map +1 -0
  245. package/dist/cultivation/seed-generator.js +1033 -0
  246. package/dist/cultivation/seed-generator.js.map +1 -0
  247. package/dist/cultivation/types.d.ts +230 -0
  248. package/dist/cultivation/types.d.ts.map +1 -0
  249. package/dist/generators/claude-md.d.ts +7 -0
  250. package/dist/generators/claude-md.d.ts.map +1 -1
  251. package/dist/generators/claude-md.js.map +1 -1
  252. package/dist/generators/docs-init.d.ts +6 -0
  253. package/dist/generators/docs-init.d.ts.map +1 -1
  254. package/dist/generators/docs-init.js.map +1 -1
  255. package/dist/health/checks.d.ts +135 -0
  256. package/dist/health/checks.d.ts.map +1 -0
  257. package/dist/health/index.d.ts +119 -0
  258. package/dist/health/index.d.ts.map +1 -0
  259. package/dist/health/index.js +191 -0
  260. package/dist/health/index.js.map +1 -0
  261. package/dist/health/monitor.d.ts +146 -0
  262. package/dist/health/monitor.d.ts.map +1 -0
  263. package/dist/health/types.d.ts +135 -0
  264. package/dist/health/types.d.ts.map +1 -0
  265. package/dist/index.d.ts +30 -0
  266. package/dist/index.d.ts.map +1 -1
  267. package/dist/index.js +173 -1
  268. package/dist/index.js.map +1 -1
  269. package/dist/integrations/auto-commit.d.ts +175 -0
  270. package/dist/integrations/auto-commit.d.ts.map +1 -0
  271. package/dist/integrations/auto-commit.js +399 -0
  272. package/dist/integrations/auto-commit.js.map +1 -0
  273. package/dist/integrations/git.d.ts +299 -0
  274. package/dist/integrations/git.d.ts.map +1 -0
  275. package/dist/integrations/git.js +465 -0
  276. package/dist/integrations/git.js.map +1 -0
  277. package/dist/mcp-server/bin.d.ts +11 -0
  278. package/dist/mcp-server/bin.d.ts.map +1 -0
  279. package/dist/mcp-server/handlers/index.d.ts +57 -0
  280. package/dist/mcp-server/handlers/index.d.ts.map +1 -0
  281. package/dist/mcp-server/handlers/index.js +235 -0
  282. package/dist/mcp-server/handlers/index.js.map +1 -0
  283. package/dist/mcp-server/index.d.ts +28 -0
  284. package/dist/mcp-server/index.d.ts.map +1 -0
  285. package/dist/mcp-server/server.d.ts +133 -0
  286. package/dist/mcp-server/server.d.ts.map +1 -0
  287. package/dist/mcp-server/server.js +280 -0
  288. package/dist/mcp-server/server.js.map +1 -0
  289. package/dist/mcp-server/tools/agents/index.d.ts +10 -0
  290. package/dist/mcp-server/tools/agents/index.d.ts.map +1 -0
  291. package/dist/mcp-server/tools/agents/list.d.ts +19 -0
  292. package/dist/mcp-server/tools/agents/list.d.ts.map +1 -0
  293. package/dist/mcp-server/tools/agents/spawn.d.ts +19 -0
  294. package/dist/mcp-server/tools/agents/spawn.d.ts.map +1 -0
  295. package/dist/mcp-server/tools/graph/generate.d.ts +21 -0
  296. package/dist/mcp-server/tools/graph/generate.d.ts.map +1 -0
  297. package/dist/mcp-server/tools/graph/index.d.ts +11 -0
  298. package/dist/mcp-server/tools/graph/index.d.ts.map +1 -0
  299. package/dist/mcp-server/tools/graph/query.d.ts +22 -0
  300. package/dist/mcp-server/tools/graph/query.d.ts.map +1 -0
  301. package/dist/mcp-server/tools/graph/stats.d.ts +22 -0
  302. package/dist/mcp-server/tools/graph/stats.d.ts.map +1 -0
  303. package/dist/mcp-server/tools/health.d.ts +21 -0
  304. package/dist/mcp-server/tools/health.d.ts.map +1 -0
  305. package/dist/mcp-server/tools/index.d.ts +13 -0
  306. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  307. package/dist/mcp-server/tools/registry.d.ts +90 -0
  308. package/dist/mcp-server/tools/registry.d.ts.map +1 -0
  309. package/dist/mcp-server/tools/registry.js +663 -0
  310. package/dist/mcp-server/tools/registry.js.map +1 -0
  311. package/dist/mcp-server/tools/search/index.d.ts +10 -0
  312. package/dist/mcp-server/tools/search/index.d.ts.map +1 -0
  313. package/dist/mcp-server/tools/search/nodes.d.ts +22 -0
  314. package/dist/mcp-server/tools/search/nodes.d.ts.map +1 -0
  315. package/dist/mcp-server/tools/search/tags.d.ts +22 -0
  316. package/dist/mcp-server/tools/search/tags.d.ts.map +1 -0
  317. package/dist/mcp-server/types/index.d.ts +286 -0
  318. package/dist/mcp-server/types/index.d.ts.map +1 -0
  319. package/dist/memory/index.d.ts +10 -0
  320. package/dist/memory/index.d.ts.map +1 -0
  321. package/dist/memory/vault-sync.d.ts +212 -0
  322. package/dist/memory/vault-sync.d.ts.map +1 -0
  323. package/dist/memory/vault-sync.js +463 -0
  324. package/dist/memory/vault-sync.js.map +1 -0
  325. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +296 -0
  326. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  327. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +71 -0
  328. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
  329. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +26 -0
  330. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
  331. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +407 -0
  332. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  333. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1332 -0
  334. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  335. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +71 -0
  336. package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
  337. package/dist/node_modules/ajv/dist/ajv.js +84 -0
  338. package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
  339. package/dist/node_modules/ajv/dist/compile/codegen/code.js +160 -0
  340. package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
  341. package/dist/node_modules/ajv/dist/compile/codegen/index.js +728 -0
  342. package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
  343. package/dist/node_modules/ajv/dist/compile/codegen/scope.js +152 -0
  344. package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
  345. package/dist/node_modules/ajv/dist/compile/errors.js +131 -0
  346. package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
  347. package/dist/node_modules/ajv/dist/compile/index.js +234 -0
  348. package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
  349. package/dist/node_modules/ajv/dist/compile/names.js +44 -0
  350. package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
  351. package/dist/node_modules/ajv/dist/compile/ref_error.js +22 -0
  352. package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
  353. package/dist/node_modules/ajv/dist/compile/resolve.js +163 -0
  354. package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
  355. package/dist/node_modules/ajv/dist/compile/rules.js +35 -0
  356. package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
  357. package/dist/node_modules/ajv/dist/compile/util.js +173 -0
  358. package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
  359. package/dist/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
  360. package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
  361. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +58 -0
  362. package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
  363. package/dist/node_modules/ajv/dist/compile/validate/dataType.js +193 -0
  364. package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
  365. package/dist/node_modules/ajv/dist/compile/validate/defaults.js +43 -0
  366. package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
  367. package/dist/node_modules/ajv/dist/compile/validate/index.js +522 -0
  368. package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
  369. package/dist/node_modules/ajv/dist/compile/validate/keyword.js +126 -0
  370. package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
  371. package/dist/node_modules/ajv/dist/compile/validate/subschema.js +89 -0
  372. package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
  373. package/dist/node_modules/ajv/dist/core.js +628 -0
  374. package/dist/node_modules/ajv/dist/core.js.map +1 -0
  375. package/dist/node_modules/ajv/dist/refs/data.json.js +24 -0
  376. package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
  377. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +25 -0
  378. package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
  379. package/dist/node_modules/ajv/dist/runtime/equal.js +16 -0
  380. package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
  381. package/dist/node_modules/ajv/dist/runtime/ucs2length.js +30 -0
  382. package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
  383. package/dist/node_modules/ajv/dist/runtime/uri.js +16 -0
  384. package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
  385. package/dist/node_modules/ajv/dist/runtime/validation_error.js +20 -0
  386. package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
  387. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
  388. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
  389. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +114 -0
  390. package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
  391. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +32 -0
  392. package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
  393. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +22 -0
  394. package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
  395. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +100 -0
  396. package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
  397. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +103 -0
  398. package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
  399. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +75 -0
  400. package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
  401. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +68 -0
  402. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
  403. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +64 -0
  404. package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
  405. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +43 -0
  406. package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
  407. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
  408. package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
  409. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
  410. package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
  411. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +81 -0
  412. package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
  413. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
  414. package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
  415. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +66 -0
  416. package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
  417. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +49 -0
  418. package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
  419. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +23 -0
  420. package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
  421. package/dist/node_modules/ajv/dist/vocabularies/code.js +140 -0
  422. package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
  423. package/dist/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
  424. package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
  425. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
  426. package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
  427. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +132 -0
  428. package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
  429. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +114 -0
  430. package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
  431. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
  432. package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
  433. package/dist/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
  434. package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
  435. package/dist/node_modules/ajv/dist/vocabularies/format/format.js +95 -0
  436. package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
  437. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +16 -0
  438. package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
  439. package/dist/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
  440. package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
  441. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +36 -0
  442. package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
  443. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +56 -0
  444. package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
  445. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +52 -0
  446. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
  447. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +34 -0
  448. package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
  449. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +39 -0
  450. package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
  451. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +37 -0
  452. package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
  453. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +34 -0
  454. package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
  455. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +33 -0
  456. package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
  457. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +34 -0
  458. package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
  459. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +89 -0
  460. package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
  461. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
  462. package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
  463. package/dist/node_modules/ajv-formats/dist/formats.js +209 -0
  464. package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
  465. package/dist/node_modules/ajv-formats/dist/index.js +51 -0
  466. package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
  467. package/dist/node_modules/ajv-formats/dist/limit.js +80 -0
  468. package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
  469. package/dist/node_modules/fast-deep-equal/index.js +39 -0
  470. package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
  471. package/dist/node_modules/fast-uri/index.js +261 -0
  472. package/dist/node_modules/fast-uri/index.js.map +1 -0
  473. package/dist/node_modules/fast-uri/lib/schemes.js +215 -0
  474. package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
  475. package/dist/node_modules/fast-uri/lib/utils.js +261 -0
  476. package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
  477. package/dist/node_modules/json-schema-traverse/index.js +92 -0
  478. package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
  479. package/dist/node_modules/zod/v4/classic/errors.js +37 -0
  480. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  481. package/dist/node_modules/zod/v4/classic/iso.js +43 -0
  482. package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
  483. package/dist/node_modules/zod/v4/classic/parse.js +13 -0
  484. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  485. package/dist/node_modules/zod/v4/classic/schemas.js +688 -0
  486. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  487. package/dist/node_modules/zod/v4/core/api.js +492 -0
  488. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  489. package/dist/node_modules/zod/v4/core/checks.js +405 -0
  490. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  491. package/dist/node_modules/zod/v4/core/core.js +58 -0
  492. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  493. package/dist/node_modules/zod/v4/core/doc.js +38 -0
  494. package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
  495. package/dist/node_modules/zod/v4/core/errors.js +82 -0
  496. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  497. package/dist/node_modules/zod/v4/core/parse.js +60 -0
  498. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  499. package/dist/node_modules/zod/v4/core/regexes.js +87 -0
  500. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  501. package/dist/node_modules/zod/v4/core/registries.js +52 -0
  502. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  503. package/dist/node_modules/zod/v4/core/schemas.js +1283 -0
  504. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  505. package/dist/node_modules/zod/v4/core/util.js +341 -0
  506. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  507. package/dist/node_modules/zod/v4/core/versions.js +9 -0
  508. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  509. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
  510. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  511. package/dist/reasoning/index.d.ts +74 -0
  512. package/dist/reasoning/index.d.ts.map +1 -0
  513. package/dist/reasoning/index.js +124 -0
  514. package/dist/reasoning/index.js.map +1 -0
  515. package/dist/reasoning/tracker.d.ts +210 -0
  516. package/dist/reasoning/tracker.d.ts.map +1 -0
  517. package/dist/reasoning/types.d.ts +146 -0
  518. package/dist/reasoning/types.d.ts.map +1 -0
  519. package/dist/recovery/backup.d.ts +110 -0
  520. package/dist/recovery/backup.d.ts.map +1 -0
  521. package/dist/recovery/index.d.ts +70 -0
  522. package/dist/recovery/index.d.ts.map +1 -0
  523. package/dist/recovery/index.js +186 -0
  524. package/dist/recovery/index.js.map +1 -0
  525. package/dist/recovery/integrity.d.ts +74 -0
  526. package/dist/recovery/integrity.d.ts.map +1 -0
  527. package/dist/recovery/types.d.ts +94 -0
  528. package/dist/recovery/types.d.ts.map +1 -0
  529. package/dist/services/index.d.ts +130 -0
  530. package/dist/services/index.d.ts.map +1 -0
  531. package/dist/services/index.js +134 -0
  532. package/dist/services/index.js.map +1 -0
  533. package/dist/services/manager.d.ts +140 -0
  534. package/dist/services/manager.d.ts.map +1 -0
  535. package/dist/services/types.d.ts +106 -0
  536. package/dist/services/types.d.ts.map +1 -0
  537. package/dist/services/watchers.d.ts +95 -0
  538. package/dist/services/watchers.d.ts.map +1 -0
  539. package/dist/sops/compliance-checker.d.ts +83 -0
  540. package/dist/sops/compliance-checker.d.ts.map +1 -0
  541. package/dist/sops/compliance-checker.js +399 -0
  542. package/dist/sops/compliance-checker.js.map +1 -0
  543. package/dist/sops/gap-analyzer.d.ts +124 -0
  544. package/dist/sops/gap-analyzer.d.ts.map +1 -0
  545. package/dist/sops/gap-analyzer.js +313 -0
  546. package/dist/sops/gap-analyzer.js.map +1 -0
  547. package/dist/sops/index.d.ts +14 -0
  548. package/dist/sops/index.d.ts.map +1 -0
  549. package/dist/sops/overlay-manager.d.ts +115 -0
  550. package/dist/sops/overlay-manager.d.ts.map +1 -0
  551. package/dist/sops/overlay-manager.js +394 -0
  552. package/dist/sops/overlay-manager.js.map +1 -0
  553. package/dist/sops/registry.d.ts +73 -0
  554. package/dist/sops/registry.d.ts.map +1 -0
  555. package/dist/sops/registry.js +919 -0
  556. package/dist/sops/registry.js.map +1 -0
  557. package/dist/sops/types.d.ts +377 -0
  558. package/dist/sops/types.d.ts.map +1 -0
  559. package/dist/sops/types.js +46 -0
  560. package/dist/sops/types.js.map +1 -0
  561. package/dist/utils/error-recovery.d.ts +230 -0
  562. package/dist/utils/error-recovery.d.ts.map +1 -0
  563. package/dist/utils/error-recovery.js +228 -0
  564. package/dist/utils/error-recovery.js.map +1 -0
  565. package/dist/utils/error-taxonomy.d.ts +149 -0
  566. package/dist/utils/error-taxonomy.d.ts.map +1 -0
  567. package/dist/utils/error-taxonomy.js +260 -0
  568. package/dist/utils/error-taxonomy.js.map +1 -0
  569. package/dist/utils/index.d.ts +11 -0
  570. package/dist/utils/index.d.ts.map +1 -0
  571. package/dist/utils/logger.d.ts +139 -0
  572. package/dist/utils/logger.d.ts.map +1 -0
  573. package/dist/utils/logger.js +311 -0
  574. package/dist/utils/logger.js.map +1 -0
  575. package/dist/workflows/index.d.ts +11 -0
  576. package/dist/workflows/index.d.ts.map +1 -0
  577. package/dist/workflows/registry.d.ts +118 -0
  578. package/dist/workflows/registry.d.ts.map +1 -0
  579. package/dist/workflows/registry.js +575 -0
  580. package/dist/workflows/registry.js.map +1 -0
  581. package/dist/workflows/types.d.ts +322 -0
  582. package/dist/workflows/types.d.ts.map +1 -0
  583. package/dist/workflows/types.js +16 -0
  584. package/dist/workflows/types.js.map +1 -0
  585. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gap-analyzer.d.ts","sourceRoot":"","sources":["../../src/sops/gap-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,aAAa,EAEb,WAAW,EACX,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKhE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,yBAAyB;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,yBAAyB;IACzB,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAE3B,iCAAiC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,IAAI,EAAE,aAAa,EAAE,CAAC;IAEtB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IAEjD,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;IAEjD,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,YAAY,EAAE,aAAa,EAAE,CAAC;IAE9B,yBAAyB;IACzB,OAAO,EAAE,UAAU,CAAC;IAEpB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IAExB,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,4BAA4B;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAE7B,8BAA8B;IAC9B,WAAW,EAAE;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,uCAAuC;IACvC,iBAAiB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAE3B,2CAA2C;IAC3C,SAAS,EAAE,aAAa,EAAE,CAAC;IAE3B,gCAAgC;IAChC,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IAEd,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,oCAAoC;IACpC,IAAI,EAAE,aAAa,EAAE,CAAC;IAEtB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,sBAAsB;IACtB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IAEd,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AA+BD;;GAEG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,qBAAqB,EAClC,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAgFnB;AA6SD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,iBAAiB,EACjC,KAAK,EAAE,MAAM,GACZ,aAAa,EAAE,CAEjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,iBAAiB,GAAG,aAAa,EAAE,CAE/E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAQA"}
@@ -0,0 +1,313 @@
1
+ import { ComplianceStatus, SOPPriority, SOPCategory } from "./types.js";
2
+ import { getSOPById } from "./registry.js";
3
+ import { createLogger } from "../utils/logger.js";
4
+ const logger = createLogger("gap-analyzer");
5
+ const REMEDIATION_TEMPLATES = {
6
+ "requirements-definition": "Create a requirements document using the provided template. Include functional requirements, non-functional requirements, and acceptance criteria for each feature.",
7
+ "architecture-documentation": "Document the system architecture using C4 diagrams or similar notation. Include system context, containers, components, and deployment views.",
8
+ "testing-infrastructure": "Set up a comprehensive test suite including unit tests, integration tests, and end-to-end tests. Aim for at least 80% code coverage.",
9
+ "security-assessment": "Conduct a security assessment including threat modeling, vulnerability scanning, and penetration testing. Document findings and remediation steps.",
10
+ "bias-fairness-assessment": "Perform a bias and fairness assessment of AI/ML models. Document potential biases, mitigation strategies, and ongoing monitoring plans.",
11
+ "monitoring-setup": "Implement comprehensive monitoring including metrics collection, alerting, and dashboards. Cover application health, performance, and business metrics.",
12
+ "documentation": "Create or update documentation including README, API documentation, deployment guides, and operational runbooks.",
13
+ "ci-cd-pipeline": "Set up CI/CD pipelines including automated testing, security scanning, and deployment automation.",
14
+ "data-governance": "Establish data governance policies including data classification, retention, access controls, and privacy compliance.",
15
+ "change-management": "Implement change management processes including code review, approval workflows, and rollback procedures.",
16
+ "incident-response": "Create incident response procedures including escalation paths, communication templates, and post-mortem processes.",
17
+ "risk-management": "Conduct risk assessment and create risk register with mitigation strategies and ownership assignments."
18
+ };
19
+ const EFFORT_FACTORS = {
20
+ "document": "low",
21
+ "test": "medium",
22
+ "review": "medium",
23
+ "audit": "high",
24
+ "automated": "high"
25
+ };
26
+ function analyzeGaps(checkResult, options = {}) {
27
+ const {
28
+ complianceThreshold = 90,
29
+ includePartial = true,
30
+ minPriority,
31
+ categories,
32
+ generateRemediation: generateRemediation2 = true
33
+ } = options;
34
+ logger.info("Analyzing compliance gaps", {
35
+ assessments: checkResult.assessments.length,
36
+ threshold: complianceThreshold
37
+ });
38
+ const gaps = [];
39
+ let gapIdCounter = 1;
40
+ for (const assessment of checkResult.assessments) {
41
+ if (assessment.score >= complianceThreshold) continue;
42
+ if (!includePartial && assessment.status === ComplianceStatus.PARTIAL) continue;
43
+ const sop = getSOPById(assessment.sopId);
44
+ if (!sop) continue;
45
+ if (minPriority && !isPriorityAtLeast(sop.priority, minPriority)) continue;
46
+ if (categories && !categories.includes(sop.category)) continue;
47
+ for (const reqId of assessment.requirementsGaps) {
48
+ const requirement = sop.requirements.find((r) => r.id === reqId);
49
+ if (!requirement) continue;
50
+ const gap = createGap(
51
+ `gap-${gapIdCounter++}`,
52
+ sop,
53
+ requirement
54
+ );
55
+ gaps.push(gap);
56
+ }
57
+ }
58
+ const byPriority = groupByPriority(gaps);
59
+ const byCategory = groupByCategory(gaps);
60
+ const criticalGaps = gaps.filter((g) => g.priority === SOPPriority.CRITICAL);
61
+ const summary = calculateSummary(checkResult, gaps);
62
+ let roadmap;
63
+ if (generateRemediation2) {
64
+ roadmap = generateRemediationRoadmap(gaps, byPriority);
65
+ }
66
+ logger.info("Gap analysis complete", {
67
+ totalGaps: gaps.length,
68
+ criticalGaps: criticalGaps.length,
69
+ compliancePercentage: summary.compliancePercentage
70
+ });
71
+ return {
72
+ gaps,
73
+ byPriority,
74
+ byCategory,
75
+ totalGaps: gaps.length,
76
+ criticalGaps,
77
+ summary,
78
+ roadmap
79
+ };
80
+ }
81
+ function createGap(id, sop, requirement, assessment) {
82
+ const effort = EFFORT_FACTORS[requirement.verification] || "medium";
83
+ const remediation = generateRemediation(sop, requirement);
84
+ return {
85
+ id,
86
+ sopId: sop.id,
87
+ requirementId: requirement.id,
88
+ description: `${sop.title}: ${requirement.description}`,
89
+ priority: requirement.mandatory ? sop.priority : lowerPriority(sop.priority),
90
+ impact: generateImpactDescription(sop, requirement),
91
+ remediation,
92
+ effort,
93
+ status: "open",
94
+ createdAt: /* @__PURE__ */ new Date()
95
+ };
96
+ }
97
+ function generateRemediation(sop, requirement) {
98
+ for (const [key, template] of Object.entries(REMEDIATION_TEMPLATES)) {
99
+ if (sop.id.toLowerCase().includes(key) || requirement.description.toLowerCase().includes(key)) {
100
+ return template;
101
+ }
102
+ }
103
+ switch (requirement.verification) {
104
+ case "document":
105
+ return `Create documentation to address: ${requirement.description}. Required evidence: ${requirement.evidence.join(", ")}.`;
106
+ case "test":
107
+ return `Implement tests to verify: ${requirement.description}. Ensure tests cover the specified acceptance criteria.`;
108
+ case "review":
109
+ return `Schedule a review meeting to assess: ${requirement.description}. Document findings and action items.`;
110
+ case "audit":
111
+ return `Conduct an audit to verify: ${requirement.description}. Create audit trail and compliance report.`;
112
+ case "automated":
113
+ return `Implement automated checks for: ${requirement.description}. Integrate into CI/CD pipeline.`;
114
+ default:
115
+ return `Address requirement: ${requirement.description}`;
116
+ }
117
+ }
118
+ function generateImpactDescription(sop, requirement) {
119
+ const impacts = [];
120
+ if (requirement.mandatory) {
121
+ impacts.push("This is a mandatory requirement");
122
+ }
123
+ switch (sop.category) {
124
+ case SOPCategory.GOVERNANCE:
125
+ impacts.push("May affect regulatory compliance and audit readiness");
126
+ break;
127
+ case SOPCategory.DEVELOPMENT:
128
+ impacts.push("May impact code quality and maintainability");
129
+ break;
130
+ case SOPCategory.OPERATIONS:
131
+ impacts.push("May affect system reliability and operations");
132
+ break;
133
+ case SOPCategory.QUALITY:
134
+ impacts.push("May impact overall quality assurance");
135
+ break;
136
+ case SOPCategory.PROGRAM_MANAGEMENT:
137
+ impacts.push("May affect project governance and tracking");
138
+ break;
139
+ }
140
+ if (sop.irbTypicallyRequired) {
141
+ impacts.push("AI-IRB review may be required");
142
+ }
143
+ return impacts.join(". ");
144
+ }
145
+ function groupByPriority(gaps) {
146
+ const result = {
147
+ [SOPPriority.CRITICAL]: [],
148
+ [SOPPriority.HIGH]: [],
149
+ [SOPPriority.MEDIUM]: [],
150
+ [SOPPriority.LOW]: []
151
+ };
152
+ for (const gap of gaps) {
153
+ result[gap.priority].push(gap);
154
+ }
155
+ return result;
156
+ }
157
+ function groupByCategory(gaps) {
158
+ const result = {
159
+ [SOPCategory.PROGRAM_MANAGEMENT]: [],
160
+ [SOPCategory.OPERATIONS]: [],
161
+ [SOPCategory.DEVELOPMENT]: [],
162
+ [SOPCategory.GOVERNANCE]: [],
163
+ [SOPCategory.QUALITY]: []
164
+ };
165
+ for (const gap of gaps) {
166
+ const sop = getSOPById(gap.sopId);
167
+ if (sop) {
168
+ result[sop.category].push(gap);
169
+ }
170
+ }
171
+ return result;
172
+ }
173
+ function calculateSummary(checkResult, gaps) {
174
+ let totalRequirements = 0;
175
+ let requirementsMet = 0;
176
+ for (const assessment of checkResult.assessments) {
177
+ totalRequirements += assessment.requirementsMet.length + assessment.requirementsGaps.length;
178
+ requirementsMet += assessment.requirementsMet.length;
179
+ }
180
+ const requirementsGaps = totalRequirements - requirementsMet;
181
+ const compliancePercentage = totalRequirements > 0 ? Math.round(requirementsMet / totalRequirements * 100) : 0;
182
+ const totalEffort = {
183
+ low: gaps.filter((g) => g.effort === "low").length,
184
+ medium: gaps.filter((g) => g.effort === "medium").length,
185
+ high: gaps.filter((g) => g.effort === "high").length
186
+ };
187
+ let overallComplexity;
188
+ if (totalEffort.high > gaps.length * 0.3 || gaps.length > 20) {
189
+ overallComplexity = "high";
190
+ } else if (totalEffort.medium > gaps.length * 0.5 || gaps.length > 10) {
191
+ overallComplexity = "medium";
192
+ } else {
193
+ overallComplexity = "low";
194
+ }
195
+ return {
196
+ totalRequirements,
197
+ requirementsMet,
198
+ requirementsGaps,
199
+ compliancePercentage,
200
+ totalEffort,
201
+ overallComplexity
202
+ };
203
+ }
204
+ function generateRemediationRoadmap(gaps, byPriority) {
205
+ const phases = [];
206
+ const dependencies = [];
207
+ if (byPriority[SOPPriority.CRITICAL].length > 0) {
208
+ phases.push({
209
+ phase: 1,
210
+ name: "Critical Remediation",
211
+ gaps: byPriority[SOPPriority.CRITICAL],
212
+ focus: "Address critical compliance gaps immediately",
213
+ effort: "high"
214
+ });
215
+ }
216
+ if (byPriority[SOPPriority.HIGH].length > 0) {
217
+ phases.push({
218
+ phase: phases.length + 1,
219
+ name: "High Priority Remediation",
220
+ gaps: byPriority[SOPPriority.HIGH],
221
+ focus: "Address high-priority gaps to improve compliance posture",
222
+ effort: "high"
223
+ });
224
+ }
225
+ if (byPriority[SOPPriority.MEDIUM].length > 0) {
226
+ phases.push({
227
+ phase: phases.length + 1,
228
+ name: "Standard Remediation",
229
+ gaps: byPriority[SOPPriority.MEDIUM],
230
+ focus: "Address medium-priority gaps for comprehensive compliance",
231
+ effort: "medium"
232
+ });
233
+ }
234
+ if (byPriority[SOPPriority.LOW].length > 0) {
235
+ phases.push({
236
+ phase: phases.length + 1,
237
+ name: "Enhancement",
238
+ gaps: byPriority[SOPPriority.LOW],
239
+ focus: "Address remaining gaps for full compliance",
240
+ effort: "low"
241
+ });
242
+ }
243
+ const quickWins = gaps.filter(
244
+ (g) => g.effort === "low" && (g.priority === SOPPriority.HIGH || g.priority === SOPPriority.CRITICAL)
245
+ );
246
+ const governanceGaps = gaps.filter((g) => {
247
+ const sop = getSOPById(g.sopId);
248
+ return sop?.category === SOPCategory.GOVERNANCE;
249
+ });
250
+ const developmentGaps = gaps.filter((g) => {
251
+ const sop = getSOPById(g.sopId);
252
+ return sop?.category === SOPCategory.DEVELOPMENT;
253
+ });
254
+ for (const devGap of developmentGaps) {
255
+ for (const govGap of governanceGaps) {
256
+ if (govGap.priority === SOPPriority.CRITICAL || govGap.priority === SOPPriority.HIGH) {
257
+ dependencies.push({
258
+ gapId: devGap.id,
259
+ dependsOn: govGap.id,
260
+ reason: "Governance requirements should be established before development practices"
261
+ });
262
+ break;
263
+ }
264
+ }
265
+ }
266
+ return {
267
+ phases,
268
+ quickWins,
269
+ dependencies
270
+ };
271
+ }
272
+ function isPriorityAtLeast(priority, minimum) {
273
+ const levels = {
274
+ [SOPPriority.LOW]: 1,
275
+ [SOPPriority.MEDIUM]: 2,
276
+ [SOPPriority.HIGH]: 3,
277
+ [SOPPriority.CRITICAL]: 4
278
+ };
279
+ return levels[priority] >= levels[minimum];
280
+ }
281
+ function lowerPriority(priority) {
282
+ switch (priority) {
283
+ case SOPPriority.CRITICAL:
284
+ return SOPPriority.HIGH;
285
+ case SOPPriority.HIGH:
286
+ return SOPPriority.MEDIUM;
287
+ case SOPPriority.MEDIUM:
288
+ return SOPPriority.LOW;
289
+ case SOPPriority.LOW:
290
+ return SOPPriority.LOW;
291
+ }
292
+ }
293
+ function getGapsForSOP(analysisResult, sopId) {
294
+ return analysisResult.gaps.filter((g) => g.sopId === sopId);
295
+ }
296
+ function getQuickWins(analysisResult) {
297
+ return analysisResult.roadmap?.quickWins || [];
298
+ }
299
+ function calculateProgress(gaps) {
300
+ const total = gaps.length;
301
+ const resolved = gaps.filter((g) => g.status === "resolved").length;
302
+ const inProgress = gaps.filter((g) => g.status === "in-progress").length;
303
+ const open = gaps.filter((g) => g.status === "open").length;
304
+ const percentage = total > 0 ? Math.round(resolved / total * 100) : 100;
305
+ return { total, resolved, inProgress, open, percentage };
306
+ }
307
+ export {
308
+ analyzeGaps,
309
+ calculateProgress,
310
+ getGapsForSOP,
311
+ getQuickWins
312
+ };
313
+ //# sourceMappingURL=gap-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gap-analyzer.js","sources":["../../src/sops/gap-analyzer.ts"],"sourcesContent":["/**\n * SOP Gap Analyzer\n *\n * Analyzes compliance gaps and generates remediation recommendations.\n *\n * @module sops/gap-analyzer\n */\n\nimport {\n SOPDefinition,\n SOPRequirement,\n SOPAssessment,\n ComplianceGap,\n ComplianceStatus,\n SOPPriority,\n SOPCategory,\n} from './types.js';\nimport { getSOPById, getAllSOPs, getSOPsByCategory } from './registry.js';\nimport { ComplianceCheckResult } from './compliance-checker.js';\nimport { createLogger } from '../utils/logger.js';\n\nconst logger = createLogger('gap-analyzer');\n\n/**\n * Gap analysis options\n */\nexport interface GapAnalysisOptions {\n /** Minimum score threshold to consider compliant */\n complianceThreshold?: number;\n\n /** Include SOPs with partial compliance */\n includePartial?: boolean;\n\n /** Filter by priority */\n minPriority?: SOPPriority;\n\n /** Filter by category */\n categories?: SOPCategory[];\n\n /** Generate remediation plans */\n generateRemediation?: boolean;\n}\n\n/**\n * Gap analysis result\n */\nexport interface GapAnalysisResult {\n /** All identified gaps */\n gaps: ComplianceGap[];\n\n /** Gaps grouped by priority */\n byPriority: Record<SOPPriority, ComplianceGap[]>;\n\n /** Gaps grouped by category */\n byCategory: Record<SOPCategory, ComplianceGap[]>;\n\n /** Total gap count */\n totalGaps: number;\n\n /** Critical gaps that need immediate attention */\n criticalGaps: ComplianceGap[];\n\n /** Summary statistics */\n summary: GapSummary;\n\n /** Remediation roadmap */\n roadmap?: RemediationRoadmap;\n}\n\n/**\n * Gap summary statistics\n */\nexport interface GapSummary {\n /** Total requirements checked */\n totalRequirements: number;\n\n /** Requirements met */\n requirementsMet: number;\n\n /** Requirements with gaps */\n requirementsGaps: number;\n\n /** Compliance percentage */\n compliancePercentage: number;\n\n /** Effort estimate (total) */\n totalEffort: {\n low: number;\n medium: number;\n high: number;\n };\n\n /** Estimated remediation complexity */\n overallComplexity: 'low' | 'medium' | 'high';\n}\n\n/**\n * Remediation roadmap\n */\nexport interface RemediationRoadmap {\n /** Phases of remediation */\n phases: RemediationPhase[];\n\n /** Quick wins (low effort, high impact) */\n quickWins: ComplianceGap[];\n\n /** Dependencies between gaps */\n dependencies: GapDependency[];\n}\n\n/**\n * Remediation phase\n */\nexport interface RemediationPhase {\n /** Phase number */\n phase: number;\n\n /** Phase name */\n name: string;\n\n /** Gaps to address in this phase */\n gaps: ComplianceGap[];\n\n /** Focus area */\n focus: string;\n\n /** Expected effort */\n effort: 'low' | 'medium' | 'high';\n}\n\n/**\n * Gap dependency\n */\nexport interface GapDependency {\n /** Gap that depends on another */\n gapId: string;\n\n /** Gap that must be addressed first */\n dependsOn: string;\n\n /** Reason for dependency */\n reason: string;\n}\n\n/**\n * Remediation templates for common gaps\n */\nconst REMEDIATION_TEMPLATES: Record<string, string> = {\n 'requirements-definition': 'Create a requirements document using the provided template. Include functional requirements, non-functional requirements, and acceptance criteria for each feature.',\n 'architecture-documentation': 'Document the system architecture using C4 diagrams or similar notation. Include system context, containers, components, and deployment views.',\n 'testing-infrastructure': 'Set up a comprehensive test suite including unit tests, integration tests, and end-to-end tests. Aim for at least 80% code coverage.',\n 'security-assessment': 'Conduct a security assessment including threat modeling, vulnerability scanning, and penetration testing. Document findings and remediation steps.',\n 'bias-fairness-assessment': 'Perform a bias and fairness assessment of AI/ML models. Document potential biases, mitigation strategies, and ongoing monitoring plans.',\n 'monitoring-setup': 'Implement comprehensive monitoring including metrics collection, alerting, and dashboards. Cover application health, performance, and business metrics.',\n 'documentation': 'Create or update documentation including README, API documentation, deployment guides, and operational runbooks.',\n 'ci-cd-pipeline': 'Set up CI/CD pipelines including automated testing, security scanning, and deployment automation.',\n 'data-governance': 'Establish data governance policies including data classification, retention, access controls, and privacy compliance.',\n 'change-management': 'Implement change management processes including code review, approval workflows, and rollback procedures.',\n 'incident-response': 'Create incident response procedures including escalation paths, communication templates, and post-mortem processes.',\n 'risk-management': 'Conduct risk assessment and create risk register with mitigation strategies and ownership assignments.',\n};\n\n/**\n * Effort estimation factors\n */\nconst EFFORT_FACTORS: Record<string, 'low' | 'medium' | 'high'> = {\n 'document': 'low',\n 'test': 'medium',\n 'review': 'medium',\n 'audit': 'high',\n 'automated': 'high',\n};\n\n/**\n * Analyze compliance gaps from check results\n */\nexport function analyzeGaps(\n checkResult: ComplianceCheckResult,\n options: GapAnalysisOptions = {}\n): GapAnalysisResult {\n const {\n complianceThreshold = 90,\n includePartial = true,\n minPriority,\n categories,\n generateRemediation = true,\n } = options;\n\n logger.info('Analyzing compliance gaps', {\n assessments: checkResult.assessments.length,\n threshold: complianceThreshold,\n });\n\n const gaps: ComplianceGap[] = [];\n let gapIdCounter = 1;\n\n // Process each assessment\n for (const assessment of checkResult.assessments) {\n // Skip if above threshold\n if (assessment.score >= complianceThreshold) continue;\n\n // Skip partial if not included\n if (!includePartial && assessment.status === ComplianceStatus.PARTIAL) continue;\n\n const sop = getSOPById(assessment.sopId);\n if (!sop) continue;\n\n // Filter by priority\n if (minPriority && !isPriorityAtLeast(sop.priority, minPriority)) continue;\n\n // Filter by category\n if (categories && !categories.includes(sop.category)) continue;\n\n // Create gap for each unmet requirement\n for (const reqId of assessment.requirementsGaps) {\n const requirement = sop.requirements.find(r => r.id === reqId);\n if (!requirement) continue;\n\n const gap = createGap(\n `gap-${gapIdCounter++}`,\n sop,\n requirement,\n assessment\n );\n gaps.push(gap);\n }\n }\n\n // Group by priority and category\n const byPriority = groupByPriority(gaps);\n const byCategory = groupByCategory(gaps);\n\n // Identify critical gaps\n const criticalGaps = gaps.filter(g => g.priority === SOPPriority.CRITICAL);\n\n // Calculate summary\n const summary = calculateSummary(checkResult, gaps);\n\n // Generate roadmap if requested\n let roadmap: RemediationRoadmap | undefined;\n if (generateRemediation) {\n roadmap = generateRemediationRoadmap(gaps, byPriority);\n }\n\n logger.info('Gap analysis complete', {\n totalGaps: gaps.length,\n criticalGaps: criticalGaps.length,\n compliancePercentage: summary.compliancePercentage,\n });\n\n return {\n gaps,\n byPriority,\n byCategory,\n totalGaps: gaps.length,\n criticalGaps,\n summary,\n roadmap,\n };\n}\n\n/**\n * Create a compliance gap object\n */\nfunction createGap(\n id: string,\n sop: SOPDefinition,\n requirement: SOPRequirement,\n assessment: SOPAssessment\n): ComplianceGap {\n const effort = EFFORT_FACTORS[requirement.verification] || 'medium';\n const remediation = generateRemediation(sop, requirement);\n\n return {\n id,\n sopId: sop.id,\n requirementId: requirement.id,\n description: `${sop.title}: ${requirement.description}`,\n priority: requirement.mandatory ? sop.priority : lowerPriority(sop.priority),\n impact: generateImpactDescription(sop, requirement),\n remediation,\n effort,\n status: 'open',\n createdAt: new Date(),\n };\n}\n\n/**\n * Generate remediation recommendation\n */\nfunction generateRemediation(sop: SOPDefinition, requirement: SOPRequirement): string {\n // Check for template match\n for (const [key, template] of Object.entries(REMEDIATION_TEMPLATES)) {\n if (sop.id.toLowerCase().includes(key) ||\n requirement.description.toLowerCase().includes(key)) {\n return template;\n }\n }\n\n // Generate based on verification method\n switch (requirement.verification) {\n case 'document':\n return `Create documentation to address: ${requirement.description}. Required evidence: ${requirement.evidence.join(', ')}.`;\n case 'test':\n return `Implement tests to verify: ${requirement.description}. Ensure tests cover the specified acceptance criteria.`;\n case 'review':\n return `Schedule a review meeting to assess: ${requirement.description}. Document findings and action items.`;\n case 'audit':\n return `Conduct an audit to verify: ${requirement.description}. Create audit trail and compliance report.`;\n case 'automated':\n return `Implement automated checks for: ${requirement.description}. Integrate into CI/CD pipeline.`;\n default:\n return `Address requirement: ${requirement.description}`;\n }\n}\n\n/**\n * Generate impact description\n */\nfunction generateImpactDescription(sop: SOPDefinition, requirement: SOPRequirement): string {\n const impacts: string[] = [];\n\n if (requirement.mandatory) {\n impacts.push('This is a mandatory requirement');\n }\n\n switch (sop.category) {\n case SOPCategory.GOVERNANCE:\n impacts.push('May affect regulatory compliance and audit readiness');\n break;\n case SOPCategory.DEVELOPMENT:\n impacts.push('May impact code quality and maintainability');\n break;\n case SOPCategory.OPERATIONS:\n impacts.push('May affect system reliability and operations');\n break;\n case SOPCategory.QUALITY:\n impacts.push('May impact overall quality assurance');\n break;\n case SOPCategory.PROGRAM_MANAGEMENT:\n impacts.push('May affect project governance and tracking');\n break;\n }\n\n if (sop.irbTypicallyRequired) {\n impacts.push('AI-IRB review may be required');\n }\n\n return impacts.join('. ');\n}\n\n/**\n * Group gaps by priority\n */\nfunction groupByPriority(gaps: ComplianceGap[]): Record<SOPPriority, ComplianceGap[]> {\n const result: Record<SOPPriority, ComplianceGap[]> = {\n [SOPPriority.CRITICAL]: [],\n [SOPPriority.HIGH]: [],\n [SOPPriority.MEDIUM]: [],\n [SOPPriority.LOW]: [],\n };\n\n for (const gap of gaps) {\n result[gap.priority].push(gap);\n }\n\n return result;\n}\n\n/**\n * Group gaps by category\n */\nfunction groupByCategory(gaps: ComplianceGap[]): Record<SOPCategory, ComplianceGap[]> {\n const result: Record<SOPCategory, ComplianceGap[]> = {\n [SOPCategory.PROGRAM_MANAGEMENT]: [],\n [SOPCategory.OPERATIONS]: [],\n [SOPCategory.DEVELOPMENT]: [],\n [SOPCategory.GOVERNANCE]: [],\n [SOPCategory.QUALITY]: [],\n };\n\n for (const gap of gaps) {\n const sop = getSOPById(gap.sopId);\n if (sop) {\n result[sop.category].push(gap);\n }\n }\n\n return result;\n}\n\n/**\n * Calculate gap summary\n */\nfunction calculateSummary(\n checkResult: ComplianceCheckResult,\n gaps: ComplianceGap[]\n): GapSummary {\n let totalRequirements = 0;\n let requirementsMet = 0;\n\n for (const assessment of checkResult.assessments) {\n totalRequirements += assessment.requirementsMet.length + assessment.requirementsGaps.length;\n requirementsMet += assessment.requirementsMet.length;\n }\n\n const requirementsGaps = totalRequirements - requirementsMet;\n const compliancePercentage = totalRequirements > 0\n ? Math.round((requirementsMet / totalRequirements) * 100)\n : 0;\n\n // Count effort levels\n const totalEffort = {\n low: gaps.filter(g => g.effort === 'low').length,\n medium: gaps.filter(g => g.effort === 'medium').length,\n high: gaps.filter(g => g.effort === 'high').length,\n };\n\n // Determine overall complexity\n let overallComplexity: 'low' | 'medium' | 'high';\n if (totalEffort.high > gaps.length * 0.3 || gaps.length > 20) {\n overallComplexity = 'high';\n } else if (totalEffort.medium > gaps.length * 0.5 || gaps.length > 10) {\n overallComplexity = 'medium';\n } else {\n overallComplexity = 'low';\n }\n\n return {\n totalRequirements,\n requirementsMet,\n requirementsGaps,\n compliancePercentage,\n totalEffort,\n overallComplexity,\n };\n}\n\n/**\n * Generate remediation roadmap\n */\nfunction generateRemediationRoadmap(\n gaps: ComplianceGap[],\n byPriority: Record<SOPPriority, ComplianceGap[]>\n): RemediationRoadmap {\n const phases: RemediationPhase[] = [];\n const dependencies: GapDependency[] = [];\n\n // Phase 1: Critical gaps\n if (byPriority[SOPPriority.CRITICAL].length > 0) {\n phases.push({\n phase: 1,\n name: 'Critical Remediation',\n gaps: byPriority[SOPPriority.CRITICAL],\n focus: 'Address critical compliance gaps immediately',\n effort: 'high',\n });\n }\n\n // Phase 2: High priority gaps\n if (byPriority[SOPPriority.HIGH].length > 0) {\n phases.push({\n phase: phases.length + 1,\n name: 'High Priority Remediation',\n gaps: byPriority[SOPPriority.HIGH],\n focus: 'Address high-priority gaps to improve compliance posture',\n effort: 'high',\n });\n }\n\n // Phase 3: Medium priority gaps\n if (byPriority[SOPPriority.MEDIUM].length > 0) {\n phases.push({\n phase: phases.length + 1,\n name: 'Standard Remediation',\n gaps: byPriority[SOPPriority.MEDIUM],\n focus: 'Address medium-priority gaps for comprehensive compliance',\n effort: 'medium',\n });\n }\n\n // Phase 4: Low priority gaps\n if (byPriority[SOPPriority.LOW].length > 0) {\n phases.push({\n phase: phases.length + 1,\n name: 'Enhancement',\n gaps: byPriority[SOPPriority.LOW],\n focus: 'Address remaining gaps for full compliance',\n effort: 'low',\n });\n }\n\n // Identify quick wins (low effort from any priority)\n const quickWins = gaps.filter(g =>\n g.effort === 'low' &&\n (g.priority === SOPPriority.HIGH || g.priority === SOPPriority.CRITICAL)\n );\n\n // Identify dependencies\n // Governance gaps should be addressed before development gaps\n const governanceGaps = gaps.filter(g => {\n const sop = getSOPById(g.sopId);\n return sop?.category === SOPCategory.GOVERNANCE;\n });\n\n const developmentGaps = gaps.filter(g => {\n const sop = getSOPById(g.sopId);\n return sop?.category === SOPCategory.DEVELOPMENT;\n });\n\n for (const devGap of developmentGaps) {\n for (const govGap of governanceGaps) {\n if (govGap.priority === SOPPriority.CRITICAL || govGap.priority === SOPPriority.HIGH) {\n dependencies.push({\n gapId: devGap.id,\n dependsOn: govGap.id,\n reason: 'Governance requirements should be established before development practices',\n });\n break; // Only add one dependency per dev gap\n }\n }\n }\n\n return {\n phases,\n quickWins,\n dependencies,\n };\n}\n\n/**\n * Check if priority is at least a certain level\n */\nfunction isPriorityAtLeast(priority: SOPPriority, minimum: SOPPriority): boolean {\n const levels = {\n [SOPPriority.LOW]: 1,\n [SOPPriority.MEDIUM]: 2,\n [SOPPriority.HIGH]: 3,\n [SOPPriority.CRITICAL]: 4,\n };\n\n return levels[priority] >= levels[minimum];\n}\n\n/**\n * Lower priority by one level\n */\nfunction lowerPriority(priority: SOPPriority): SOPPriority {\n switch (priority) {\n case SOPPriority.CRITICAL:\n return SOPPriority.HIGH;\n case SOPPriority.HIGH:\n return SOPPriority.MEDIUM;\n case SOPPriority.MEDIUM:\n return SOPPriority.LOW;\n case SOPPriority.LOW:\n return SOPPriority.LOW;\n }\n}\n\n/**\n * Get gaps for a specific SOP\n */\nexport function getGapsForSOP(\n analysisResult: GapAnalysisResult,\n sopId: string\n): ComplianceGap[] {\n return analysisResult.gaps.filter(g => g.sopId === sopId);\n}\n\n/**\n * Get high-impact quick wins\n */\nexport function getQuickWins(analysisResult: GapAnalysisResult): ComplianceGap[] {\n return analysisResult.roadmap?.quickWins || [];\n}\n\n/**\n * Calculate remediation progress\n */\nexport function calculateProgress(gaps: ComplianceGap[]): {\n total: number;\n resolved: number;\n inProgress: number;\n open: number;\n percentage: number;\n} {\n const total = gaps.length;\n const resolved = gaps.filter(g => g.status === 'resolved').length;\n const inProgress = gaps.filter(g => g.status === 'in-progress').length;\n const open = gaps.filter(g => g.status === 'open').length;\n const percentage = total > 0 ? Math.round((resolved / total) * 100) : 100;\n\n return { total, resolved, inProgress, open, percentage };\n}\n"],"names":["generateRemediation"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * AI-SDLC SOP Integration Module
3
+ *
4
+ * Provides multi-layer knowledge graph support for AI-SDLC Standard Operating Procedures.
5
+ * Enables compliance checking, gap analysis, and overlay visualization.
6
+ *
7
+ * @module sops
8
+ */
9
+ export { SOPCategory, ComplianceStatus, SOPPriority, IRBStatus, GraphLayer, type SOPRequirement, type SOPCheckpoint, type SOPDefinition, type SOPAssessment, type ComplianceGap, type LayerDefinition, type LayerNode, type LayerEdge, type MultiLayerGraph, type ComplianceReport, type SOPFrontmatter, type SOPConfig, } from './types.js';
10
+ export { getSOPById, getSOPsByCategory, getSOPsRequiringIRB, searchSOPs, getAllSOPs, getSopCount, getCategories, } from './registry.js';
11
+ export { checkCompliance, checkSOPCompliance, meetsMinimumCompliance, type ComplianceCheckOptions, type ComplianceCheckResult, type EvidenceItem, } from './compliance-checker.js';
12
+ export { analyzeGaps, getGapsForSOP, getQuickWins, calculateProgress, type GapAnalysisOptions, type GapAnalysisResult, type GapSummary, type RemediationRoadmap, type RemediationPhase, type GapDependency, } from './gap-analyzer.js';
13
+ export { createMultiLayerGraph, addProjectLayer, addComplianceOverlay, filterByLayer, filterByComplianceStatus, getComplianceSummary, getGapNodes, toggleLayerVisibility, exportToVisualizationFormat, createSOPFocusedSubgraph, type OverlayManagerOptions, type NodeStyleConfig, } from './overlay-manager.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sops/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAEL,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,SAAS,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,oBAAoB,EACpB,WAAW,EACX,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * SOP Overlay Manager
3
+ *
4
+ * Manages multi-layer knowledge graph overlays for SOP compliance visualization.
5
+ * Supports standards layer, project layer, and compliance overlay.
6
+ *
7
+ * @module sops/overlay-manager
8
+ */
9
+ import { GraphLayer, LayerNode, LayerEdge, MultiLayerGraph, ComplianceStatus, SOPCategory } from './types.js';
10
+ import { ComplianceCheckResult } from './compliance-checker.js';
11
+ import { GapAnalysisResult } from './gap-analyzer.js';
12
+ /**
13
+ * Overlay manager options
14
+ */
15
+ export interface OverlayManagerOptions {
16
+ /** Graph ID */
17
+ graphId?: string;
18
+ /** Graph name */
19
+ graphName?: string;
20
+ /** Include all SOPs in standards layer */
21
+ includeAllSOPs?: boolean;
22
+ /** SOP categories to include */
23
+ categories?: SOPCategory[];
24
+ /** Custom node styling */
25
+ nodeStyles?: NodeStyleConfig;
26
+ }
27
+ /**
28
+ * Node style configuration
29
+ */
30
+ export interface NodeStyleConfig {
31
+ /** Colors by compliance status */
32
+ statusColors?: Record<ComplianceStatus, string>;
33
+ /** Colors by layer */
34
+ layerColors?: Record<GraphLayer, string>;
35
+ /** Node size by type */
36
+ nodeSizes?: Record<string, number>;
37
+ }
38
+ /**
39
+ * Create a multi-layer graph with SOP standards overlay
40
+ */
41
+ export declare function createMultiLayerGraph(options?: OverlayManagerOptions): MultiLayerGraph;
42
+ /**
43
+ * Add project layer to graph from knowledge graph data
44
+ */
45
+ export declare function addProjectLayer(graph: MultiLayerGraph, projectNodes: Array<{
46
+ id: string;
47
+ title: string;
48
+ type: string;
49
+ tags?: string[];
50
+ }>, projectEdges: Array<{
51
+ source: string;
52
+ target: string;
53
+ type?: string;
54
+ }>): MultiLayerGraph;
55
+ /**
56
+ * Add compliance overlay from check results
57
+ */
58
+ export declare function addComplianceOverlay(graph: MultiLayerGraph, checkResult: ComplianceCheckResult, gapResult?: GapAnalysisResult): MultiLayerGraph;
59
+ /**
60
+ * Filter graph by layer
61
+ */
62
+ export declare function filterByLayer(graph: MultiLayerGraph, layer: GraphLayer): {
63
+ nodes: LayerNode[];
64
+ edges: LayerEdge[];
65
+ };
66
+ /**
67
+ * Filter graph by compliance status
68
+ */
69
+ export declare function filterByComplianceStatus(graph: MultiLayerGraph, status: ComplianceStatus): {
70
+ nodes: LayerNode[];
71
+ edges: LayerEdge[];
72
+ };
73
+ /**
74
+ * Get compliance summary from graph
75
+ */
76
+ export declare function getComplianceSummary(graph: MultiLayerGraph): {
77
+ totalSOPs: number;
78
+ compliant: number;
79
+ partial: number;
80
+ nonCompliant: number;
81
+ pending: number;
82
+ overallScore: number;
83
+ };
84
+ /**
85
+ * Get gap nodes from graph
86
+ */
87
+ export declare function getGapNodes(graph: MultiLayerGraph): LayerNode[];
88
+ /**
89
+ * Toggle layer visibility
90
+ */
91
+ export declare function toggleLayerVisibility(graph: MultiLayerGraph, layerType: GraphLayer, visible: boolean): MultiLayerGraph;
92
+ /**
93
+ * Export graph to visualization format (Obsidian/D3 compatible)
94
+ */
95
+ export declare function exportToVisualizationFormat(graph: MultiLayerGraph, styles?: NodeStyleConfig): {
96
+ nodes: Array<{
97
+ id: string;
98
+ label: string;
99
+ group: string;
100
+ color: string;
101
+ size: number;
102
+ metadata: Record<string, unknown>;
103
+ }>;
104
+ edges: Array<{
105
+ source: string;
106
+ target: string;
107
+ type: string;
108
+ weight: number;
109
+ }>;
110
+ };
111
+ /**
112
+ * Create a focused subgraph around a specific SOP
113
+ */
114
+ export declare function createSOPFocusedSubgraph(graph: MultiLayerGraph, sopId: string, depth?: number): MultiLayerGraph;
115
+ //# sourceMappingURL=overlay-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-manager.d.ts","sourceRoot":"","sources":["../../src/sops/overlay-manager.ts"],"names":[],"mappings":"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"}