@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":"architect-agent.js","sources":["../../src/agents/architect-agent.ts"],"sourcesContent":["/**\n * Architect Agent\n *\n * Specialized agent for architecture analysis, design decisions, and dependency analysis.\n * Extends BaseAgent with system design capabilities and knowledge graph integration.\n *\n * @module agents/architect-agent\n */\n\nimport * as fs from 'fs/promises';\nimport * as path from 'path';\nimport { BaseAgent } from './base-agent.js';\nimport {\n AgentType,\n type AgentTask,\n type AgentResult,\n type ArchitectAgentConfig,\n type ResultArtifact,\n} from './types.js';\nimport { KnowledgeGraphManager } from '../core/graph.js';\nimport type { KnowledgeNode } from '../core/types.js';\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Architecture pattern\n */\nexport type ArchitecturePattern =\n | 'mvc'\n | 'mvvm'\n | 'clean-architecture'\n | 'hexagonal'\n | 'microservices'\n | 'monolith'\n | 'serverless'\n | 'event-driven'\n | 'layered'\n | 'modular';\n\n/**\n * Component type\n */\nexport type ComponentType =\n | 'service'\n | 'controller'\n | 'repository'\n | 'model'\n | 'view'\n | 'utility'\n | 'middleware'\n | 'handler'\n | 'factory'\n | 'adapter';\n\n/**\n * Architecture component\n */\nexport interface ArchitectureComponent {\n /** Component name */\n name: string;\n /** Component type */\n type: ComponentType;\n /** File path */\n path: string;\n /** Component description */\n description?: string;\n /** Dependencies (other components) */\n dependencies: string[];\n /** Dependents (components that depend on this) */\n dependents: string[];\n /** Exports provided */\n exports: string[];\n /** Lines of code */\n linesOfCode: number;\n /** Complexity score */\n complexity: number;\n}\n\n/**\n * Architecture layer\n */\nexport interface ArchitectureLayer {\n /** Layer name */\n name: string;\n /** Layer level (0 = highest, like UI) */\n level: number;\n /** Components in this layer */\n components: string[];\n /** Allowed dependencies (layer names) */\n allowedDependencies: string[];\n /** Actual dependencies found */\n actualDependencies: string[];\n /** Violations (dependencies to wrong layers) */\n violations: string[];\n}\n\n/**\n * Dependency graph node\n */\nexport interface DependencyNode {\n /** Node identifier */\n id: string;\n /** Node label */\n label: string;\n /** Node type */\n type: ComponentType;\n /** Outgoing edges (dependencies) */\n outgoing: string[];\n /** Incoming edges (dependents) */\n incoming: string[];\n /** Metrics */\n metrics: {\n fanIn: number;\n fanOut: number;\n instability: number;\n abstractness: number;\n };\n}\n\n/**\n * Dependency analysis result\n */\nexport interface DependencyAnalysis {\n /** Dependency graph */\n graph: DependencyNode[];\n /** Circular dependencies */\n cycles: string[][];\n /** Orphan modules (no deps or dependents) */\n orphans: string[];\n /** Hub modules (many dependencies) */\n hubs: Array<{ module: string; connections: number }>;\n /** Recommendations */\n recommendations: string[];\n}\n\n/**\n * Design decision\n */\nexport interface DesignDecision {\n /** Decision title */\n title: string;\n /** Decision category */\n category: 'structure' | 'pattern' | 'technology' | 'integration' | 'security';\n /** Decision description */\n description: string;\n /** Rationale */\n rationale: string;\n /** Pros */\n pros: string[];\n /** Cons */\n cons: string[];\n /** Alternatives considered */\n alternatives?: string[];\n /** Priority */\n priority: 'low' | 'medium' | 'high';\n}\n\n/**\n * Architecture analysis result\n */\nexport interface ArchitectureAnalysis {\n /** Project name */\n projectName: string;\n /** Detected patterns */\n patterns: ArchitecturePattern[];\n /** Architecture layers */\n layers: ArchitectureLayer[];\n /** Components */\n components: ArchitectureComponent[];\n /** Dependency analysis */\n dependencies: DependencyAnalysis;\n /** Design decisions/recommendations */\n decisions: DesignDecision[];\n /** Overall health score (0-100) */\n healthScore: number;\n /** Analysis timestamp */\n timestamp: Date;\n}\n\n/**\n * Design suggestion\n */\nexport interface DesignSuggestion {\n /** Suggestion type */\n type: 'refactor' | 'extract' | 'merge' | 'introduce' | 'remove';\n /** Target component/module */\n target: string;\n /** Description */\n description: string;\n /** Priority */\n priority: 'low' | 'medium' | 'high';\n /** Expected benefit */\n benefit: string;\n /** Effort estimate */\n effort: 'low' | 'medium' | 'high';\n}\n\n/**\n * Architect task type\n */\nexport type ArchitectTaskType = 'analyze' | 'design' | 'dependencies' | 'suggest';\n\n// ============================================================================\n// Architect Agent\n// ============================================================================\n\n/**\n * Architect Agent\n *\n * Capabilities:\n * - Architecture analysis and pattern detection\n * - Design decision recommendations\n * - Dependency analysis and visualization\n * - Layer validation\n *\n * @example\n * ```typescript\n * const architect = new ArchitectAgent({\n * name: 'architect-agent',\n * type: AgentType.ARCHITECT,\n * });\n *\n * const result = await architect.execute({\n * id: 'task-1',\n * description: 'Analyze project architecture',\n * priority: TaskPriority.MEDIUM,\n * input: {\n * data: {\n * projectRoot: '/path/to/project'\n * }\n * },\n * createdAt: new Date()\n * });\n * ```\n */\nexport class ArchitectAgent extends BaseAgent {\n /** File patterns to analyze */\n private readonly codePatterns = ['.ts', '.tsx', '.js', '.jsx', '.mts', '.mjs'];\n\n /** Knowledge graph reference */\n private knowledgeGraph: KnowledgeGraphManager | null = null;\n\n /** Layer definitions for common architectures */\n private readonly layerDefinitions: Record<string, string[]> = {\n presentation: ['components', 'views', 'pages', 'ui'],\n application: ['services', 'usecases', 'handlers', 'controllers'],\n domain: ['models', 'entities', 'domain', 'core'],\n infrastructure: ['repositories', 'adapters', 'database', 'api'],\n shared: ['utils', 'helpers', 'common', 'shared', 'lib'],\n };\n\n constructor(config: Partial<ArchitectAgentConfig> & { name: string }) {\n super({\n type: AgentType.ARCHITECT,\n taskTimeout: 300000, // 5 minutes for large projects\n capabilities: ['architecture-analysis', 'design', 'dependency-analysis'],\n ...config,\n });\n }\n\n // ==========================================================================\n // Knowledge Graph Integration\n // ==========================================================================\n\n /**\n * Set knowledge graph for context-aware analysis\n */\n setKnowledgeGraph(graph: KnowledgeGraphManager): void {\n this.knowledgeGraph = graph;\n this.logger.debug('Knowledge graph attached', {\n nodeCount: graph.getMetadata().nodeCount,\n });\n }\n\n // ==========================================================================\n // Task Execution\n // ==========================================================================\n\n /**\n * Execute architect task\n */\n protected async executeTask(task: AgentTask): Promise<AgentResult> {\n const startTime = new Date();\n const taskType = (task.input?.parameters?.taskType as ArchitectTaskType) || 'analyze';\n\n switch (taskType) {\n case 'analyze':\n return this.handleAnalyzeTask(task, startTime);\n case 'design':\n return this.handleDesignTask(task, startTime);\n case 'dependencies':\n return this.handleDependenciesTask(task, startTime);\n case 'suggest':\n return this.handleSuggestTask(task, startTime);\n default:\n return this.createErrorResult(\n 'INVALID_TASK_TYPE',\n `Unknown task type: ${taskType}`,\n startTime\n );\n }\n }\n\n // ==========================================================================\n // Public Methods\n // ==========================================================================\n\n /**\n * Analyze project architecture\n */\n async analyzeArchitecture(projectRoot: string): Promise<ArchitectureAnalysis> {\n this.logger.info('Analyzing architecture', { root: projectRoot });\n\n // Discover components\n const components = await this.discoverComponents(projectRoot);\n\n // Detect patterns\n const patterns = this.detectPatterns(components, projectRoot);\n\n // Identify layers\n const layers = this.identifyLayers(components);\n\n // Analyze dependencies\n const dependencies = this.analyzeDependencies(components);\n\n // Generate design decisions\n const decisions = this.generateDesignDecisions(components, layers, dependencies);\n\n // Calculate health score\n const healthScore = this.calculateHealthScore(components, layers, dependencies);\n\n return {\n projectName: path.basename(projectRoot),\n patterns,\n layers,\n components,\n dependencies,\n decisions,\n healthScore,\n timestamp: new Date(),\n };\n }\n\n /**\n * Suggest design improvements\n */\n async suggestDesign(projectRoot: string): Promise<DesignSuggestion[]> {\n this.logger.info('Generating design suggestions', { root: projectRoot });\n\n const analysis = await this.analyzeArchitecture(projectRoot);\n const suggestions: DesignSuggestion[] = [];\n\n // Check for circular dependencies\n for (const cycle of analysis.dependencies.cycles) {\n suggestions.push({\n type: 'refactor',\n target: cycle.join(' -> '),\n description: 'Break circular dependency',\n priority: 'high',\n benefit: 'Improves testability and maintainability',\n effort: 'medium',\n });\n }\n\n // Check for hub components (too many dependencies)\n for (const hub of analysis.dependencies.hubs) {\n if (hub.connections > 10) {\n suggestions.push({\n type: 'extract',\n target: hub.module,\n description: `Split ${hub.module} - too many connections (${hub.connections})`,\n priority: hub.connections > 20 ? 'high' : 'medium',\n benefit: 'Reduces coupling and improves modularity',\n effort: 'high',\n });\n }\n }\n\n // Check for layer violations\n for (const layer of analysis.layers) {\n if (layer.violations.length > 0) {\n suggestions.push({\n type: 'refactor',\n target: layer.name,\n description: `Fix ${layer.violations.length} layer violation(s) in ${layer.name}`,\n priority: 'high',\n benefit: 'Enforces clean architecture boundaries',\n effort: 'medium',\n });\n }\n }\n\n // Check for orphan components\n for (const orphan of analysis.dependencies.orphans) {\n suggestions.push({\n type: 'remove',\n target: orphan,\n description: `Consider removing unused module: ${orphan}`,\n priority: 'low',\n benefit: 'Reduces codebase size and maintenance burden',\n effort: 'low',\n });\n }\n\n // Check component complexity\n for (const component of analysis.components) {\n if (component.complexity > 30) {\n suggestions.push({\n type: 'extract',\n target: component.name,\n description: `Reduce complexity of ${component.name} (${component.complexity})`,\n priority: component.complexity > 50 ? 'high' : 'medium',\n benefit: 'Improves readability and testability',\n effort: 'medium',\n });\n }\n }\n\n return suggestions.sort((a, b) => {\n const priorityOrder = { high: 0, medium: 1, low: 2 };\n return priorityOrder[a.priority] - priorityOrder[b.priority];\n });\n }\n\n /**\n * Map dependencies between modules\n */\n async mapDependencies(projectRoot: string): Promise<DependencyAnalysis> {\n this.logger.info('Mapping dependencies', { root: projectRoot });\n\n const components = await this.discoverComponents(projectRoot);\n return this.analyzeDependencies(components);\n }\n\n // ==========================================================================\n // Private Task Handlers\n // ==========================================================================\n\n private async handleAnalyzeTask(\n task: AgentTask,\n startTime: Date\n ): Promise<AgentResult<ArchitectureAnalysis>> {\n const input = task.input?.data as { projectRoot: string } | undefined;\n\n if (!input?.projectRoot) {\n return this.createErrorResult(\n 'VALIDATION_ERROR',\n 'Project root is required for architecture analysis',\n startTime\n ) as AgentResult<ArchitectureAnalysis>;\n }\n\n try {\n const analysis = await this.analyzeArchitecture(input.projectRoot);\n const artifacts: ResultArtifact[] = [{\n type: 'report',\n name: 'architecture-analysis',\n content: JSON.stringify(analysis, null, 2),\n mimeType: 'application/json',\n }];\n\n return this.createSuccessResult(analysis, startTime, artifacts);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return this.createErrorResult('ANALYSIS_ERROR', `Architecture analysis failed: ${message}`, startTime) as AgentResult<ArchitectureAnalysis>;\n }\n }\n\n private async handleDesignTask(\n task: AgentTask,\n startTime: Date\n ): Promise<AgentResult<DesignDecision[]>> {\n const input = task.input?.data as { projectRoot: string } | undefined;\n\n if (!input?.projectRoot) {\n return this.createErrorResult(\n 'VALIDATION_ERROR',\n 'Project root is required for design analysis',\n startTime\n ) as AgentResult<DesignDecision[]>;\n }\n\n try {\n const analysis = await this.analyzeArchitecture(input.projectRoot);\n return this.createSuccessResult(analysis.decisions, startTime);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return this.createErrorResult('DESIGN_ERROR', `Design analysis failed: ${message}`, startTime) as AgentResult<DesignDecision[]>;\n }\n }\n\n private async handleDependenciesTask(\n task: AgentTask,\n startTime: Date\n ): Promise<AgentResult<DependencyAnalysis>> {\n const input = task.input?.data as { projectRoot: string } | undefined;\n\n if (!input?.projectRoot) {\n return this.createErrorResult(\n 'VALIDATION_ERROR',\n 'Project root is required for dependency analysis',\n startTime\n ) as AgentResult<DependencyAnalysis>;\n }\n\n try {\n const analysis = await this.mapDependencies(input.projectRoot);\n return this.createSuccessResult(analysis, startTime);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return this.createErrorResult('DEPENDENCY_ERROR', `Dependency analysis failed: ${message}`, startTime) as AgentResult<DependencyAnalysis>;\n }\n }\n\n private async handleSuggestTask(\n task: AgentTask,\n startTime: Date\n ): Promise<AgentResult<DesignSuggestion[]>> {\n const input = task.input?.data as { projectRoot: string } | undefined;\n\n if (!input?.projectRoot) {\n return this.createErrorResult(\n 'VALIDATION_ERROR',\n 'Project root is required for design suggestions',\n startTime\n ) as AgentResult<DesignSuggestion[]>;\n }\n\n try {\n const suggestions = await this.suggestDesign(input.projectRoot);\n return this.createSuccessResult(suggestions, startTime);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return this.createErrorResult('SUGGEST_ERROR', `Design suggestion failed: ${message}`, startTime) as AgentResult<DesignSuggestion[]>;\n }\n }\n\n // ==========================================================================\n // Component Discovery\n // ==========================================================================\n\n private async discoverComponents(projectRoot: string): Promise<ArchitectureComponent[]> {\n const components: ArchitectureComponent[] = [];\n const files = await this.findFiles(projectRoot);\n\n for (const file of files) {\n try {\n const content = await fs.readFile(file, 'utf-8');\n const relativePath = path.relative(projectRoot, file);\n const component = this.analyzeComponent(content, relativePath);\n components.push(component);\n } catch (error) {\n this.logger.warn(`Failed to analyze ${file}`, { error });\n }\n }\n\n // Resolve dependencies to component names\n this.resolveDependencies(components);\n\n return components;\n }\n\n private analyzeComponent(content: string, filePath: string): ArchitectureComponent {\n const name = path.basename(filePath, path.extname(filePath));\n const type = this.inferComponentType(filePath, content);\n const dependencies = this.extractDependencies(content);\n const exports = this.extractExports(content);\n const linesOfCode = content.split('\\n').filter(l => l.trim().length > 0).length;\n const complexity = this.calculateComplexity(content);\n\n return {\n name,\n type,\n path: filePath,\n dependencies,\n dependents: [], // Filled later\n exports,\n linesOfCode,\n complexity,\n };\n }\n\n private inferComponentType(filePath: string, content: string): ComponentType {\n const lowerPath = filePath.toLowerCase();\n const lowerContent = content.toLowerCase();\n\n if (lowerPath.includes('service') || lowerPath.includes('services')) return 'service';\n if (lowerPath.includes('controller') || lowerPath.includes('controllers')) return 'controller';\n if (lowerPath.includes('repository') || lowerPath.includes('repositories')) return 'repository';\n if (lowerPath.includes('model') || lowerPath.includes('models')) return 'model';\n if (lowerPath.includes('view') || lowerPath.includes('component')) return 'view';\n if (lowerPath.includes('util') || lowerPath.includes('helper')) return 'utility';\n if (lowerPath.includes('middleware')) return 'middleware';\n if (lowerPath.includes('handler')) return 'handler';\n if (lowerPath.includes('factory')) return 'factory';\n if (lowerPath.includes('adapter')) return 'adapter';\n\n // Infer from content\n if (lowerContent.includes('class') && lowerContent.includes('service')) return 'service';\n if (lowerContent.includes('@controller') || lowerContent.includes('router')) return 'controller';\n if (lowerContent.includes('repository') || lowerContent.includes('findby')) return 'repository';\n if (lowerContent.includes('interface') && lowerContent.includes('model')) return 'model';\n\n return 'utility';\n }\n\n private resolveDependencies(components: ArchitectureComponent[]): void {\n const componentMap = new Map(components.map(c => [c.path, c]));\n const nameMap = new Map(components.map(c => [c.name, c]));\n\n for (const component of components) {\n for (const dep of component.dependencies) {\n // Try to find the dependency by path or name\n const depPath = this.resolveDependencyPath(component.path, dep);\n const depComponent = componentMap.get(depPath) || nameMap.get(dep);\n\n if (depComponent && depComponent !== component) {\n // Add to dependents list\n if (!depComponent.dependents.includes(component.name)) {\n depComponent.dependents.push(component.name);\n }\n }\n }\n }\n }\n\n private resolveDependencyPath(fromPath: string, dep: string): string {\n if (dep.startsWith('.')) {\n const dir = path.dirname(fromPath);\n const resolved = path.normalize(path.join(dir, dep));\n // Add extension if missing\n for (const ext of this.codePatterns) {\n if (resolved.endsWith(ext)) return resolved;\n }\n return resolved + '.ts';\n }\n return dep;\n }\n\n // ==========================================================================\n // Pattern Detection\n // ==========================================================================\n\n private detectPatterns(\n components: ArchitectureComponent[],\n projectRoot: string\n ): ArchitecturePattern[] {\n const patterns: ArchitecturePattern[] = [];\n\n // Check for MVC\n const hasControllers = components.some(c => c.type === 'controller');\n const hasModels = components.some(c => c.type === 'model');\n const hasViews = components.some(c => c.type === 'view');\n\n if (hasControllers && hasModels && hasViews) {\n patterns.push('mvc');\n }\n\n // Check for layered architecture\n const layers = this.identifyLayers(components);\n if (layers.length >= 3) {\n patterns.push('layered');\n }\n\n // Check for clean/hexagonal architecture\n const hasAdapters = components.some(c => c.type === 'adapter');\n const hasRepositories = components.some(c => c.type === 'repository');\n if (hasAdapters && hasRepositories && layers.length >= 3) {\n patterns.push('clean-architecture');\n }\n\n // Check for modular architecture\n const directories = new Set(components.map(c => path.dirname(c.path)));\n if (directories.size > 5) {\n patterns.push('modular');\n }\n\n // Check for event-driven patterns\n const hasEvents = components.some(c =>\n c.exports.some(e => e.toLowerCase().includes('event') || e.toLowerCase().includes('emit'))\n );\n if (hasEvents) {\n patterns.push('event-driven');\n }\n\n return patterns.length > 0 ? patterns : ['monolith'];\n }\n\n // ==========================================================================\n // Layer Analysis\n // ==========================================================================\n\n private identifyLayers(components: ArchitectureComponent[]): ArchitectureLayer[] {\n const layers: ArchitectureLayer[] = [];\n const layerComponents: Record<string, string[]> = {};\n\n // Categorize components into layers\n for (const component of components) {\n const layer = this.inferLayer(component.path);\n if (!layerComponents[layer]) {\n layerComponents[layer] = [];\n }\n layerComponents[layer].push(component.name);\n }\n\n // Create layer objects\n const layerOrder = ['presentation', 'application', 'domain', 'infrastructure', 'shared'];\n\n for (let i = 0; i < layerOrder.length; i++) {\n const layerName = layerOrder[i];\n if (layerComponents[layerName] && layerComponents[layerName].length > 0) {\n const allowedDeps = layerOrder.slice(i + 1);\n const actualDeps = this.findLayerDependencies(\n components,\n layerComponents[layerName],\n layerComponents\n );\n const violations = actualDeps.filter(\n d => !allowedDeps.includes(d) && d !== layerName\n );\n\n layers.push({\n name: layerName,\n level: i,\n components: layerComponents[layerName],\n allowedDependencies: allowedDeps,\n actualDependencies: actualDeps,\n violations,\n });\n }\n }\n\n return layers;\n }\n\n private inferLayer(filePath: string): string {\n const lowerPath = filePath.toLowerCase();\n\n for (const [layer, patterns] of Object.entries(this.layerDefinitions)) {\n for (const pattern of patterns) {\n if (lowerPath.includes(pattern)) {\n return layer;\n }\n }\n }\n\n return 'shared';\n }\n\n private findLayerDependencies(\n components: ArchitectureComponent[],\n layerComponentNames: string[],\n allLayerComponents: Record<string, string[]>\n ): string[] {\n const dependencies = new Set<string>();\n\n for (const componentName of layerComponentNames) {\n const component = components.find(c => c.name === componentName);\n if (!component) continue;\n\n for (const dep of component.dependencies) {\n // Find which layer this dependency belongs to\n for (const [layer, componentNames] of Object.entries(allLayerComponents)) {\n if (componentNames.includes(dep)) {\n dependencies.add(layer);\n }\n }\n }\n }\n\n return [...dependencies];\n }\n\n // ==========================================================================\n // Dependency Analysis\n // ==========================================================================\n\n private analyzeDependencies(components: ArchitectureComponent[]): DependencyAnalysis {\n const graph = this.buildDependencyGraph(components);\n const cycles = this.findCycles(components);\n const orphans = this.findOrphans(components);\n const hubs = this.findHubs(components);\n const recommendations = this.generateDependencyRecommendations(cycles, orphans, hubs);\n\n return {\n graph,\n cycles,\n orphans,\n hubs,\n recommendations,\n };\n }\n\n private buildDependencyGraph(components: ArchitectureComponent[]): DependencyNode[] {\n return components.map(c => {\n const fanIn = c.dependents.length;\n const fanOut = c.dependencies.length;\n const instability = fanOut / (fanIn + fanOut) || 0;\n\n return {\n id: c.name,\n label: c.name,\n type: c.type,\n outgoing: c.dependencies,\n incoming: c.dependents,\n metrics: {\n fanIn,\n fanOut,\n instability: Math.round(instability * 100) / 100,\n abstractness: 0, // Would require interface detection\n },\n };\n });\n }\n\n private findCycles(components: ArchitectureComponent[]): string[][] {\n const cycles: string[][] = [];\n const visited = new Set<string>();\n const recursionStack = new Set<string>();\n const path: string[] = [];\n\n const dfs = (componentName: string): void => {\n visited.add(componentName);\n recursionStack.add(componentName);\n path.push(componentName);\n\n const component = components.find(c => c.name === componentName);\n if (component) {\n for (const dep of component.dependencies) {\n const depComponent = components.find(c => c.name === dep);\n if (!depComponent) continue;\n\n if (!visited.has(dep)) {\n dfs(dep);\n } else if (recursionStack.has(dep)) {\n // Found a cycle\n const cycleStart = path.indexOf(dep);\n if (cycleStart !== -1) {\n cycles.push([...path.slice(cycleStart), dep]);\n }\n }\n }\n }\n\n path.pop();\n recursionStack.delete(componentName);\n };\n\n for (const component of components) {\n if (!visited.has(component.name)) {\n dfs(component.name);\n }\n }\n\n return cycles;\n }\n\n private findOrphans(components: ArchitectureComponent[]): string[] {\n return components\n .filter(c => c.dependencies.length === 0 && c.dependents.length === 0)\n .map(c => c.name);\n }\n\n private findHubs(components: ArchitectureComponent[]): Array<{ module: string; connections: number }> {\n return components\n .map(c => ({\n module: c.name,\n connections: c.dependencies.length + c.dependents.length,\n }))\n .filter(h => h.connections > 5)\n .sort((a, b) => b.connections - a.connections);\n }\n\n private generateDependencyRecommendations(\n cycles: string[][],\n orphans: string[],\n hubs: Array<{ module: string; connections: number }>\n ): string[] {\n const recommendations: string[] = [];\n\n if (cycles.length > 0) {\n recommendations.push(\n `Found ${cycles.length} circular dependency(s) - consider using dependency inversion`\n );\n }\n\n if (orphans.length > 0) {\n recommendations.push(\n `${orphans.length} orphan module(s) detected - consider removing or integrating`\n );\n }\n\n const majorHubs = hubs.filter(h => h.connections > 10);\n if (majorHubs.length > 0) {\n recommendations.push(\n `${majorHubs.length} highly-connected module(s) - consider splitting into smaller modules`\n );\n }\n\n if (recommendations.length === 0) {\n recommendations.push('Dependency structure looks healthy');\n }\n\n return recommendations;\n }\n\n // ==========================================================================\n // Design Decisions\n // ==========================================================================\n\n private generateDesignDecisions(\n components: ArchitectureComponent[],\n layers: ArchitectureLayer[],\n dependencies: DependencyAnalysis\n ): DesignDecision[] {\n const decisions: DesignDecision[] = [];\n\n // Check layer violations\n const violatingLayers = layers.filter(l => l.violations.length > 0);\n if (violatingLayers.length > 0) {\n decisions.push({\n title: 'Enforce Layer Boundaries',\n category: 'structure',\n description: 'Some layers have dependencies that violate the intended architecture',\n rationale: 'Clean separation of concerns improves maintainability and testability',\n pros: ['Better modularity', 'Easier testing', 'Clearer responsibilities'],\n cons: ['Initial refactoring effort', 'May require interface introduction'],\n priority: 'high',\n });\n }\n\n // Check for circular dependencies\n if (dependencies.cycles.length > 0) {\n decisions.push({\n title: 'Break Circular Dependencies',\n category: 'structure',\n description: `Found ${dependencies.cycles.length} circular dependency chain(s)`,\n rationale: 'Circular dependencies make code harder to understand and test',\n pros: ['Improved testability', 'Clearer module boundaries', 'Easier refactoring'],\n cons: ['May require interface extraction', 'Some restructuring needed'],\n alternatives: ['Dependency injection', 'Event-driven communication'],\n priority: 'high',\n });\n }\n\n // Check component complexity\n const complexComponents = components.filter(c => c.complexity > 30);\n if (complexComponents.length > 0) {\n decisions.push({\n title: 'Reduce Component Complexity',\n category: 'pattern',\n description: `${complexComponents.length} component(s) have high complexity`,\n rationale: 'Lower complexity improves readability and reduces bug risk',\n pros: ['Better maintainability', 'Easier testing', 'Reduced cognitive load'],\n cons: ['May increase number of files', 'Refactoring effort'],\n alternatives: ['Extract methods', 'Apply design patterns', 'Split responsibilities'],\n priority: 'medium',\n });\n }\n\n // Check for proper service layer\n const services = components.filter(c => c.type === 'service');\n if (services.length === 0 && components.length > 10) {\n decisions.push({\n title: 'Introduce Service Layer',\n category: 'pattern',\n description: 'Consider introducing a service layer for business logic',\n rationale: 'Service layer provides clean separation between UI and business logic',\n pros: ['Reusable business logic', 'Better testability', 'Cleaner controllers'],\n cons: ['Additional abstraction layer', 'More files to manage'],\n priority: 'medium',\n });\n }\n\n return decisions;\n }\n\n // ==========================================================================\n // Health Score\n // ==========================================================================\n\n private calculateHealthScore(\n components: ArchitectureComponent[],\n layers: ArchitectureLayer[],\n dependencies: DependencyAnalysis\n ): number {\n let score = 100;\n\n // Deduct for circular dependencies\n score -= dependencies.cycles.length * 10;\n\n // Deduct for layer violations\n const totalViolations = layers.reduce((sum, l) => sum + l.violations.length, 0);\n score -= totalViolations * 5;\n\n // Deduct for high complexity\n const complexComponents = components.filter(c => c.complexity > 30);\n score -= complexComponents.length * 3;\n\n // Deduct for too many orphans (might indicate dead code)\n if (dependencies.orphans.length > 5) {\n score -= (dependencies.orphans.length - 5) * 2;\n }\n\n // Deduct for hub components\n const majorHubs = dependencies.hubs.filter(h => h.connections > 15);\n score -= majorHubs.length * 5;\n\n return Math.max(0, Math.min(100, Math.round(score)));\n }\n\n // ==========================================================================\n // Helper Methods\n // ==========================================================================\n\n private extractDependencies(content: string): string[] {\n const dependencies: string[] = [];\n\n const importRegex = /import\\s+(?:.*?\\s+from\\s+)?['\"]([^'\"]+)['\"]/g;\n let match;\n while ((match = importRegex.exec(content)) !== null) {\n const dep = match[1];\n if (dep.startsWith('.')) {\n // Extract just the module name\n const name = path.basename(dep, path.extname(dep));\n dependencies.push(name);\n }\n }\n\n const requireRegex = /require\\s*\\(['\"]([^'\"]+)['\"]\\)/g;\n while ((match = requireRegex.exec(content)) !== null) {\n const dep = match[1];\n if (dep.startsWith('.')) {\n const name = path.basename(dep, path.extname(dep));\n dependencies.push(name);\n }\n }\n\n return [...new Set(dependencies)];\n }\n\n private extractExports(content: string): string[] {\n const exports: string[] = [];\n\n const namedExportRegex = /export\\s+(?:const|let|var|function|class)\\s+(\\w+)/g;\n let match;\n while ((match = namedExportRegex.exec(content)) !== null) {\n exports.push(match[1]);\n }\n\n const exportDeclRegex = /export\\s*\\{([^}]+)\\}/g;\n while ((match = exportDeclRegex.exec(content)) !== null) {\n const names = match[1].split(',').map(n => n.trim().split(/\\s+as\\s+/)[0]);\n exports.push(...names);\n }\n\n return [...new Set(exports.filter(e => e))];\n }\n\n private calculateComplexity(content: string): number {\n let complexity = 1;\n\n const patterns = [\n /\\bif\\s*\\(/g,\n /\\belse\\s+if\\s*\\(/g,\n /\\bfor\\s*\\(/g,\n /\\bwhile\\s*\\(/g,\n /\\bcase\\s+/g,\n /\\bcatch\\s*\\(/g,\n /\\?\\s*[^:]+\\s*:/g,\n /&&/g,\n /\\|\\|/g,\n ];\n\n for (const pattern of patterns) {\n const matches = content.match(pattern);\n if (matches) {\n complexity += matches.length;\n }\n }\n\n return complexity;\n }\n\n private async findFiles(dir: string): Promise<string[]> {\n const files: string[] = [];\n\n try {\n const entries = await fs.readdir(dir, { withFileTypes: true });\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n\n if (\n entry.name === 'node_modules' ||\n entry.name === '.git' ||\n entry.name === 'dist' ||\n entry.name === 'build' ||\n entry.name.startsWith('.')\n ) {\n continue;\n }\n\n if (entry.isDirectory()) {\n const subFiles = await this.findFiles(fullPath);\n files.push(...subFiles);\n } else if (entry.isFile()) {\n const ext = path.extname(entry.name);\n if (this.codePatterns.includes(ext)) {\n files.push(fullPath);\n }\n }\n }\n } catch {\n // Directory doesn't exist or can't be read\n }\n\n return files;\n }\n}\n\n"],"names":["exports","path"],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Base Agent Implementation
3
+ *
4
+ * Abstract base class for all agents providing common functionality
5
+ * including task execution, input validation, output formatting,
6
+ * error handling, and optional claude-flow integration.
7
+ *
8
+ * @module agents/base-agent
9
+ */
10
+ import { type Logger } from '../utils/index.js';
11
+ import { AgentStatus, MessageType, type AgentConfig, type AgentInstance, type AgentState, type AgentTask, type AgentResult, type AgentError, type AgentMessage, type ResultArtifact } from './types.js';
12
+ /**
13
+ * Abstract base class for all agents
14
+ *
15
+ * Provides common functionality that all agents share, including:
16
+ * - Task execution with timeout and retry handling
17
+ * - Input validation
18
+ * - Output formatting
19
+ * - Error handling and logging
20
+ * - Optional claude-flow hooks integration
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * class ResearchAgent extends BaseAgent {
25
+ * protected async executeTask(task: AgentTask): Promise<AgentResult> {
26
+ * // Implementation specific to researcher agent
27
+ * const results = await this.searchSources(task.input);
28
+ * return this.formatOutput(results);
29
+ * }
30
+ * }
31
+ * ```
32
+ */
33
+ export declare abstract class BaseAgent implements AgentInstance {
34
+ /** Agent configuration */
35
+ readonly config: AgentConfig;
36
+ /** Agent runtime state */
37
+ private _state;
38
+ /** Logger instance */
39
+ protected readonly logger: Logger;
40
+ /** Message handlers for different message types */
41
+ private messageHandlers;
42
+ constructor(config: AgentConfig);
43
+ /**
44
+ * Get current agent state
45
+ */
46
+ get state(): AgentState;
47
+ /**
48
+ * Get current agent status
49
+ */
50
+ getStatus(): AgentStatus;
51
+ /**
52
+ * Update agent status
53
+ */
54
+ protected setStatus(status: AgentStatus): void;
55
+ /**
56
+ * Execute a task
57
+ *
58
+ * This is the main entry point for task execution. It handles:
59
+ * - Pre-task hooks (if enabled)
60
+ * - Input validation
61
+ * - Retry logic
62
+ * - Timeout handling
63
+ * - Post-task hooks (if enabled)
64
+ * - Error handling and logging
65
+ */
66
+ execute(task: AgentTask): Promise<AgentResult>;
67
+ /**
68
+ * Execute task with timeout
69
+ */
70
+ private executeWithTimeout;
71
+ /**
72
+ * Abstract method for actual task execution
73
+ *
74
+ * Subclasses must implement this method with their specific logic.
75
+ */
76
+ protected abstract executeTask(task: AgentTask): Promise<AgentResult>;
77
+ /**
78
+ * Validate task input
79
+ *
80
+ * Override this method to implement custom validation logic.
81
+ */
82
+ validateInput(task: AgentTask): Promise<{
83
+ valid: boolean;
84
+ error?: string;
85
+ }>;
86
+ /**
87
+ * Format successful output
88
+ */
89
+ formatOutput<T>(data: T, artifacts?: ResultArtifact[]): AgentResult<T>;
90
+ /**
91
+ * Create a success result
92
+ */
93
+ protected createSuccessResult<T>(data: T, startTime: Date, artifacts?: ResultArtifact[]): AgentResult<T>;
94
+ /**
95
+ * Create an error result
96
+ */
97
+ protected createErrorResult(code: string, message: string, startTime: Date, details?: Partial<AgentError>): AgentResult;
98
+ /**
99
+ * Calculate execution metrics
100
+ */
101
+ private calculateMetrics;
102
+ /**
103
+ * Normalize error to AgentError format
104
+ */
105
+ private normalizeError;
106
+ /**
107
+ * Check if an error is retryable
108
+ */
109
+ protected isRetryableError(error: unknown): boolean;
110
+ /**
111
+ * Pause the agent
112
+ */
113
+ pause(): Promise<void>;
114
+ /**
115
+ * Resume the agent
116
+ */
117
+ resume(): Promise<void>;
118
+ /**
119
+ * Terminate the agent
120
+ */
121
+ terminate(): Promise<void>;
122
+ /**
123
+ * Cleanup resources
124
+ *
125
+ * Override to implement custom cleanup logic.
126
+ */
127
+ protected cleanup(): Promise<void>;
128
+ /**
129
+ * Send a message to another agent
130
+ */
131
+ sendMessage(message: AgentMessage): Promise<void>;
132
+ /**
133
+ * Receive and process a message
134
+ */
135
+ receiveMessage(message: AgentMessage): Promise<void>;
136
+ /**
137
+ * Register a message handler
138
+ */
139
+ protected registerMessageHandler(type: MessageType, handler: (message: AgentMessage) => Promise<void>): void;
140
+ /**
141
+ * Register default message handlers
142
+ */
143
+ private registerDefaultMessageHandlers;
144
+ /**
145
+ * Run a claude-flow hook
146
+ */
147
+ protected runClaudeFlowHook(hookType: 'pre-task' | 'post-task' | 'post-edit', task: AgentTask, result?: AgentResult): Promise<void>;
148
+ /**
149
+ * Generate claude-flow hook command
150
+ */
151
+ private generateHookCommand;
152
+ /**
153
+ * Store result in claude-flow memory
154
+ */
155
+ protected storeInMemory(key: string, value: unknown): Promise<void>;
156
+ }
157
+ /**
158
+ * Create a task with defaults
159
+ */
160
+ export declare function createTask(description: string, options?: Partial<Omit<AgentTask, 'id' | 'description' | 'createdAt'>>): AgentTask;
161
+ /**
162
+ * Type guard for checking if an object is an AgentResult
163
+ */
164
+ export declare function isAgentResult(obj: unknown): obj is AgentResult;
165
+ /**
166
+ * Type guard for checking if an object is an AgentError
167
+ */
168
+ export declare function isAgentError(obj: unknown): obj is AgentError;
169
+ //# sourceMappingURL=base-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../src/agents/base-agent.ts"],"names":[],"mappings":"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"}