@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,130 @@
1
+ /**
2
+ * Services Module
3
+ *
4
+ * Provides service management, lifecycle control, and file watching capabilities.
5
+ */
6
+ /**
7
+ * Status of a service
8
+ */
9
+ export type ServiceStatus = 'stopped' | 'starting' | 'running' | 'stopping' | 'error';
10
+ /**
11
+ * Type of service
12
+ */
13
+ export type ServiceType = 'watcher' | 'sync' | 'health' | 'cache' | 'background';
14
+ /**
15
+ * Service configuration
16
+ */
17
+ export interface ServiceConfig {
18
+ /** Service identifier */
19
+ id: string;
20
+ /** Service type */
21
+ type: ServiceType;
22
+ /** Whether service should auto-start */
23
+ autoStart?: boolean;
24
+ /** Restart on failure */
25
+ restartOnFailure?: boolean;
26
+ /** Maximum restart attempts */
27
+ maxRestarts?: number;
28
+ /** Restart delay in milliseconds */
29
+ restartDelay?: number;
30
+ }
31
+ /**
32
+ * Service state
33
+ */
34
+ export interface ServiceState {
35
+ /** Current status */
36
+ status: ServiceStatus;
37
+ /** Start time */
38
+ startedAt?: Date;
39
+ /** Last error */
40
+ lastError?: Error;
41
+ /** Restart count */
42
+ restartCount: number;
43
+ }
44
+ /**
45
+ * Service metrics
46
+ */
47
+ export interface ServiceMetrics {
48
+ /** Total uptime in milliseconds */
49
+ uptime: number;
50
+ /** Number of operations performed */
51
+ operationCount: number;
52
+ /** Number of errors */
53
+ errorCount: number;
54
+ /** Last operation time */
55
+ lastOperationAt?: Date;
56
+ }
57
+ /**
58
+ * Service handler interface
59
+ */
60
+ export interface ServiceHandler {
61
+ /** Start the service */
62
+ start(): Promise<void>;
63
+ /** Stop the service */
64
+ stop(): Promise<void>;
65
+ /** Get service status */
66
+ getStatus(): ServiceStatus;
67
+ /** Get service metrics */
68
+ getMetrics(): ServiceMetrics;
69
+ }
70
+ /**
71
+ * Service Manager for managing multiple services
72
+ */
73
+ export declare class ServiceManager {
74
+ private services;
75
+ private configs;
76
+ private states;
77
+ /**
78
+ * Register a service
79
+ */
80
+ register(config: ServiceConfig, handler: ServiceHandler): void;
81
+ /**
82
+ * Start a service
83
+ */
84
+ start(id: string): Promise<void>;
85
+ /**
86
+ * Stop a service
87
+ */
88
+ stop(id: string): Promise<void>;
89
+ /**
90
+ * Start all services
91
+ */
92
+ startAll(): Promise<void>;
93
+ /**
94
+ * Stop all services
95
+ */
96
+ stopAll(): Promise<void>;
97
+ /**
98
+ * Get service state
99
+ */
100
+ getState(id: string): ServiceState | undefined;
101
+ /**
102
+ * Get all service states
103
+ */
104
+ getAllStates(): Map<string, ServiceState>;
105
+ /**
106
+ * Get service metrics
107
+ */
108
+ getMetrics(id: string): ServiceMetrics | undefined;
109
+ }
110
+ /**
111
+ * Create a new ServiceManager instance
112
+ */
113
+ export declare function createServiceManager(): ServiceManager;
114
+ /**
115
+ * File watcher service for monitoring file changes
116
+ */
117
+ export declare class FileWatcherService implements ServiceHandler {
118
+ private watchPaths;
119
+ private onChange?;
120
+ private status;
121
+ private metrics;
122
+ private startTime?;
123
+ private watcher;
124
+ constructor(watchPaths: string[], onChange?: ((path: string, event: string) => void) | undefined);
125
+ start(): Promise<void>;
126
+ stop(): Promise<void>;
127
+ getStatus(): ServiceStatus;
128
+ getMetrics(): ServiceMetrics;
129
+ }
130
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ class ServiceManager {
2
+ services = /* @__PURE__ */ new Map();
3
+ configs = /* @__PURE__ */ new Map();
4
+ states = /* @__PURE__ */ new Map();
5
+ /**
6
+ * Register a service
7
+ */
8
+ register(config, handler) {
9
+ this.services.set(config.id, handler);
10
+ this.configs.set(config.id, config);
11
+ this.states.set(config.id, {
12
+ status: "stopped",
13
+ restartCount: 0
14
+ });
15
+ }
16
+ /**
17
+ * Start a service
18
+ */
19
+ async start(id) {
20
+ const handler = this.services.get(id);
21
+ const state = this.states.get(id);
22
+ if (!handler || !state) {
23
+ throw new Error(`Service not found: ${id}`);
24
+ }
25
+ state.status = "starting";
26
+ try {
27
+ await handler.start();
28
+ state.status = "running";
29
+ state.startedAt = /* @__PURE__ */ new Date();
30
+ } catch (error) {
31
+ state.status = "error";
32
+ state.lastError = error instanceof Error ? error : new Error(String(error));
33
+ throw error;
34
+ }
35
+ }
36
+ /**
37
+ * Stop a service
38
+ */
39
+ async stop(id) {
40
+ const handler = this.services.get(id);
41
+ const state = this.states.get(id);
42
+ if (!handler || !state) {
43
+ throw new Error(`Service not found: ${id}`);
44
+ }
45
+ state.status = "stopping";
46
+ try {
47
+ await handler.stop();
48
+ state.status = "stopped";
49
+ } catch (error) {
50
+ state.status = "error";
51
+ state.lastError = error instanceof Error ? error : new Error(String(error));
52
+ throw error;
53
+ }
54
+ }
55
+ /**
56
+ * Start all services
57
+ */
58
+ async startAll() {
59
+ for (const [id, config] of this.configs) {
60
+ if (config.autoStart !== false) {
61
+ await this.start(id);
62
+ }
63
+ }
64
+ }
65
+ /**
66
+ * Stop all services
67
+ */
68
+ async stopAll() {
69
+ for (const id of this.services.keys()) {
70
+ const state = this.states.get(id);
71
+ if (state?.status === "running") {
72
+ await this.stop(id);
73
+ }
74
+ }
75
+ }
76
+ /**
77
+ * Get service state
78
+ */
79
+ getState(id) {
80
+ return this.states.get(id);
81
+ }
82
+ /**
83
+ * Get all service states
84
+ */
85
+ getAllStates() {
86
+ return new Map(this.states);
87
+ }
88
+ /**
89
+ * Get service metrics
90
+ */
91
+ getMetrics(id) {
92
+ return this.services.get(id)?.getMetrics();
93
+ }
94
+ }
95
+ function createServiceManager() {
96
+ return new ServiceManager();
97
+ }
98
+ class FileWatcherService {
99
+ constructor(watchPaths, onChange) {
100
+ this.watchPaths = watchPaths;
101
+ this.onChange = onChange;
102
+ }
103
+ status = "stopped";
104
+ metrics = {
105
+ uptime: 0,
106
+ operationCount: 0,
107
+ errorCount: 0
108
+ };
109
+ startTime;
110
+ watcher = null;
111
+ async start() {
112
+ this.status = "running";
113
+ this.startTime = /* @__PURE__ */ new Date();
114
+ }
115
+ async stop() {
116
+ this.status = "stopped";
117
+ this.watcher = null;
118
+ }
119
+ getStatus() {
120
+ return this.status;
121
+ }
122
+ getMetrics() {
123
+ if (this.startTime && this.status === "running") {
124
+ this.metrics.uptime = Date.now() - this.startTime.getTime();
125
+ }
126
+ return { ...this.metrics };
127
+ }
128
+ }
129
+ export {
130
+ FileWatcherService,
131
+ ServiceManager,
132
+ createServiceManager
133
+ };
134
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/services/index.ts"],"sourcesContent":["/**\n * Services Module\n *\n * Provides service management, lifecycle control, and file watching capabilities.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Status of a service\n */\nexport type ServiceStatus = 'stopped' | 'starting' | 'running' | 'stopping' | 'error';\n\n/**\n * Type of service\n */\nexport type ServiceType = 'watcher' | 'sync' | 'health' | 'cache' | 'background';\n\n/**\n * Service configuration\n */\nexport interface ServiceConfig {\n /** Service identifier */\n id: string;\n /** Service type */\n type: ServiceType;\n /** Whether service should auto-start */\n autoStart?: boolean;\n /** Restart on failure */\n restartOnFailure?: boolean;\n /** Maximum restart attempts */\n maxRestarts?: number;\n /** Restart delay in milliseconds */\n restartDelay?: number;\n}\n\n/**\n * Service state\n */\nexport interface ServiceState {\n /** Current status */\n status: ServiceStatus;\n /** Start time */\n startedAt?: Date;\n /** Last error */\n lastError?: Error;\n /** Restart count */\n restartCount: number;\n}\n\n/**\n * Service metrics\n */\nexport interface ServiceMetrics {\n /** Total uptime in milliseconds */\n uptime: number;\n /** Number of operations performed */\n operationCount: number;\n /** Number of errors */\n errorCount: number;\n /** Last operation time */\n lastOperationAt?: Date;\n}\n\n/**\n * Service handler interface\n */\nexport interface ServiceHandler {\n /** Start the service */\n start(): Promise<void>;\n /** Stop the service */\n stop(): Promise<void>;\n /** Get service status */\n getStatus(): ServiceStatus;\n /** Get service metrics */\n getMetrics(): ServiceMetrics;\n}\n\n// ============================================================================\n// Service Manager\n// ============================================================================\n\n/**\n * Service Manager for managing multiple services\n */\nexport class ServiceManager {\n private services: Map<string, ServiceHandler> = new Map();\n private configs: Map<string, ServiceConfig> = new Map();\n private states: Map<string, ServiceState> = new Map();\n\n /**\n * Register a service\n */\n register(config: ServiceConfig, handler: ServiceHandler): void {\n this.services.set(config.id, handler);\n this.configs.set(config.id, config);\n this.states.set(config.id, {\n status: 'stopped',\n restartCount: 0,\n });\n }\n\n /**\n * Start a service\n */\n async start(id: string): Promise<void> {\n const handler = this.services.get(id);\n const state = this.states.get(id);\n if (!handler || !state) {\n throw new Error(`Service not found: ${id}`);\n }\n\n state.status = 'starting';\n try {\n await handler.start();\n state.status = 'running';\n state.startedAt = new Date();\n } catch (error) {\n state.status = 'error';\n state.lastError = error instanceof Error ? error : new Error(String(error));\n throw error;\n }\n }\n\n /**\n * Stop a service\n */\n async stop(id: string): Promise<void> {\n const handler = this.services.get(id);\n const state = this.states.get(id);\n if (!handler || !state) {\n throw new Error(`Service not found: ${id}`);\n }\n\n state.status = 'stopping';\n try {\n await handler.stop();\n state.status = 'stopped';\n } catch (error) {\n state.status = 'error';\n state.lastError = error instanceof Error ? error : new Error(String(error));\n throw error;\n }\n }\n\n /**\n * Start all services\n */\n async startAll(): Promise<void> {\n for (const [id, config] of this.configs) {\n if (config.autoStart !== false) {\n await this.start(id);\n }\n }\n }\n\n /**\n * Stop all services\n */\n async stopAll(): Promise<void> {\n for (const id of this.services.keys()) {\n const state = this.states.get(id);\n if (state?.status === 'running') {\n await this.stop(id);\n }\n }\n }\n\n /**\n * Get service state\n */\n getState(id: string): ServiceState | undefined {\n return this.states.get(id);\n }\n\n /**\n * Get all service states\n */\n getAllStates(): Map<string, ServiceState> {\n return new Map(this.states);\n }\n\n /**\n * Get service metrics\n */\n getMetrics(id: string): ServiceMetrics | undefined {\n return this.services.get(id)?.getMetrics();\n }\n}\n\n/**\n * Create a new ServiceManager instance\n */\nexport function createServiceManager(): ServiceManager {\n return new ServiceManager();\n}\n\n// ============================================================================\n// File Watcher Service\n// ============================================================================\n\n/**\n * File watcher service for monitoring file changes\n */\nexport class FileWatcherService implements ServiceHandler {\n private status: ServiceStatus = 'stopped';\n private metrics: ServiceMetrics = {\n uptime: 0,\n operationCount: 0,\n errorCount: 0,\n };\n private startTime?: Date;\n private watcher: unknown = null;\n\n constructor(\n private watchPaths: string[],\n private onChange?: (path: string, event: string) => void\n ) {}\n\n async start(): Promise<void> {\n this.status = 'running';\n this.startTime = new Date();\n // File watcher implementation would go here\n // Using chokidar or fs.watch\n }\n\n async stop(): Promise<void> {\n this.status = 'stopped';\n this.watcher = null;\n }\n\n getStatus(): ServiceStatus {\n return this.status;\n }\n\n getMetrics(): ServiceMetrics {\n if (this.startTime && this.status === 'running') {\n this.metrics.uptime = Date.now() - this.startTime.getTime();\n }\n return { ...this.metrics };\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Service Manager - Background process management
3
+ *
4
+ * Provides centralized management for background services including:
5
+ * - Service registration and lifecycle management
6
+ * - Health monitoring with configurable intervals
7
+ * - Automatic restart on failure
8
+ * - Graceful shutdown coordination
9
+ *
10
+ * @module services/manager
11
+ */
12
+ import { EventEmitter } from 'events';
13
+ import type { ServiceConfig, ServiceState, ServiceHandler } from './types.js';
14
+ /**
15
+ * Manages background services with lifecycle control and health monitoring.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const manager = createServiceManager();
20
+ *
21
+ * await manager.register(
22
+ * { id: 'watcher', name: 'File Watcher', type: 'watcher', autoStart: true },
23
+ * new FileWatcherService(['/path/to/watch'])
24
+ * );
25
+ *
26
+ * manager.on('started', (state) => console.log(`${state.name} started`));
27
+ *
28
+ * // Graceful shutdown
29
+ * process.on('SIGTERM', () => manager.shutdown());
30
+ * ```
31
+ */
32
+ export declare class ServiceManager extends EventEmitter {
33
+ private services;
34
+ private handlers;
35
+ private configs;
36
+ private healthCheckTimers;
37
+ private isShuttingDown;
38
+ constructor();
39
+ /**
40
+ * Register a new service with the manager.
41
+ *
42
+ * @param config - Service configuration
43
+ * @param handler - Service implementation
44
+ * @throws Error if service ID is already registered
45
+ */
46
+ register(config: ServiceConfig, handler: ServiceHandler): Promise<void>;
47
+ /**
48
+ * Start a registered service.
49
+ *
50
+ * @param id - Service identifier
51
+ * @throws Error if service is not found
52
+ */
53
+ start(id: string): Promise<void>;
54
+ /**
55
+ * Stop a running service.
56
+ *
57
+ * @param id - Service identifier
58
+ * @throws Error if service is not found
59
+ */
60
+ stop(id: string): Promise<void>;
61
+ /**
62
+ * Restart a service.
63
+ *
64
+ * @param id - Service identifier
65
+ * @throws Error if service is not found
66
+ */
67
+ restart(id: string): Promise<void>;
68
+ /**
69
+ * Handle service failure with optional auto-restart.
70
+ */
71
+ private handleFailure;
72
+ /**
73
+ * Get the current state of a service.
74
+ *
75
+ * @param id - Service identifier
76
+ * @returns Service state or undefined if not found
77
+ */
78
+ getStatus(id: string): ServiceState | undefined;
79
+ /**
80
+ * List all registered services.
81
+ *
82
+ * @returns Array of service states
83
+ */
84
+ listServices(): ServiceState[];
85
+ /**
86
+ * Get services by type.
87
+ *
88
+ * @param type - Service type to filter by
89
+ * @returns Array of matching service states
90
+ */
91
+ getServicesByType(type: string): ServiceState[];
92
+ /**
93
+ * Get services by status.
94
+ *
95
+ * @param status - Service status to filter by
96
+ * @returns Array of matching service states
97
+ */
98
+ getServicesByStatus(status: string): ServiceState[];
99
+ /**
100
+ * Start periodic health checks for a service.
101
+ */
102
+ private startHealthCheck;
103
+ /**
104
+ * Stop health checks for a service.
105
+ */
106
+ private stopHealthCheck;
107
+ /**
108
+ * Unregister a service.
109
+ *
110
+ * @param id - Service identifier
111
+ */
112
+ unregister(id: string): Promise<void>;
113
+ /**
114
+ * Check if manager is shutting down.
115
+ */
116
+ get shuttingDown(): boolean;
117
+ /**
118
+ * Gracefully shutdown all services.
119
+ */
120
+ shutdown(): Promise<void>;
121
+ /**
122
+ * Get aggregate metrics for all services.
123
+ */
124
+ getAggregateMetrics(): {
125
+ totalServices: number;
126
+ running: number;
127
+ stopped: number;
128
+ failed: number;
129
+ totalRequests: number;
130
+ totalErrors: number;
131
+ healthyCount: number;
132
+ };
133
+ }
134
+ /**
135
+ * Create a new ServiceManager instance.
136
+ *
137
+ * @returns Configured ServiceManager
138
+ */
139
+ export declare function createServiceManager(): ServiceManager;
140
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/services/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EAEf,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,cAAc,CAAS;;IAO/B;;;;;;OAMG;IACG,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC7E;;;;;OAKG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCtC;;;;;OAKG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCrC;;;;;OAKG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC;;OAEG;YACW,aAAa;IAyB3B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAc/C;;;;OAIG;IACH,YAAY,IAAI,YAAY,EAAE;IAI9B;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE;IAI/C;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAInD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0CxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;OAIG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C;;OAEG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC/B;;OAEG;IACH,mBAAmB,IAAI;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB;CAaF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAErD"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Service Manager Types
3
+ *
4
+ * Defines types for background service management including
5
+ * configuration, state, metrics, and handlers.
6
+ *
7
+ * @module services/types
8
+ */
9
+ /**
10
+ * Current operational status of a service.
11
+ */
12
+ export type ServiceStatus = 'stopped' | 'starting' | 'running' | 'stopping' | 'failed';
13
+ /**
14
+ * Classification of service functionality.
15
+ */
16
+ export type ServiceType = 'watcher' | 'scheduler' | 'sync' | 'analyzer' | 'server';
17
+ /**
18
+ * Configuration options for registering a service.
19
+ */
20
+ export interface ServiceConfig {
21
+ /** Unique identifier for the service */
22
+ id: string;
23
+ /** Human-readable name */
24
+ name: string;
25
+ /** Type of service for categorization */
26
+ type: ServiceType;
27
+ /** Whether to start automatically on registration */
28
+ autoStart?: boolean;
29
+ /** Whether to restart on failure */
30
+ restartOnFailure?: boolean;
31
+ /** Maximum number of restart attempts */
32
+ maxRestarts?: number;
33
+ /** Delay in milliseconds between restart attempts */
34
+ restartDelay?: number;
35
+ /** Interval in milliseconds for health checks */
36
+ healthCheckInterval?: number;
37
+ }
38
+ /**
39
+ * Runtime state of a registered service.
40
+ */
41
+ export interface ServiceState {
42
+ /** Unique identifier */
43
+ id: string;
44
+ /** Human-readable name */
45
+ name: string;
46
+ /** Service type */
47
+ type: ServiceType;
48
+ /** Current operational status */
49
+ status: ServiceStatus;
50
+ /** Process ID if applicable */
51
+ pid?: number;
52
+ /** When the service was started */
53
+ startTime?: Date;
54
+ /** Number of times the service has been restarted */
55
+ restarts: number;
56
+ /** Last error message if status is 'failed' */
57
+ lastError?: string;
58
+ /** Performance and health metrics */
59
+ metrics: ServiceMetrics;
60
+ }
61
+ /**
62
+ * Performance and health metrics for a service.
63
+ */
64
+ export interface ServiceMetrics {
65
+ /** Total uptime in milliseconds */
66
+ uptime: number;
67
+ /** Number of requests/events processed */
68
+ requests: number;
69
+ /** Number of errors encountered */
70
+ errors: number;
71
+ /** Last health check timestamp */
72
+ lastHealthCheck?: Date;
73
+ /** Current health status */
74
+ healthStatus: 'healthy' | 'degraded' | 'unhealthy';
75
+ }
76
+ /**
77
+ * Interface that service implementations must fulfill.
78
+ */
79
+ export interface ServiceHandler {
80
+ /** Start the service */
81
+ start(): Promise<void>;
82
+ /** Stop the service gracefully */
83
+ stop(): Promise<void>;
84
+ /** Check if the service is healthy */
85
+ healthCheck(): Promise<boolean>;
86
+ /** Get current metrics */
87
+ getMetrics(): ServiceMetrics;
88
+ }
89
+ /**
90
+ * Event types emitted by the service manager.
91
+ */
92
+ export interface ServiceManagerEvents {
93
+ registered: ServiceState;
94
+ starting: ServiceState;
95
+ started: ServiceState;
96
+ stopping: ServiceState;
97
+ stopped: ServiceState;
98
+ failed: ServiceState;
99
+ restarted: ServiceState;
100
+ healthCheck: {
101
+ id: string;
102
+ healthy: boolean;
103
+ };
104
+ shutdown: void;
105
+ }
106
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,WAAW,CAAC;IAClB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,iCAAiC;IACjC,MAAM,EAAE,aAAa,CAAC;IACtB,+BAA+B;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,4BAA4B;IAC5B,YAAY,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,kCAAkC;IAClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,sCAAsC;IACtC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,0BAA0B;IAC1B,UAAU,IAAI,cAAc,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,YAAY,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE,IAAI,CAAC;CAChB"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * File Watcher Service
3
+ *
4
+ * Provides file system watching capabilities using chokidar.
5
+ * Monitors files and directories for changes and emits events.
6
+ *
7
+ * @module services/watchers
8
+ */
9
+ import { EventEmitter } from 'events';
10
+ import type { ServiceHandler, ServiceMetrics } from './types.js';
11
+ /**
12
+ * Configuration options for the file watcher.
13
+ */
14
+ export interface FileWatcherOptions {
15
+ /** Paths to watch (files or directories) */
16
+ paths: string[];
17
+ /** File patterns to ignore */
18
+ ignored?: string | RegExp | (string | RegExp)[];
19
+ /** Whether to emit events for initial files */
20
+ ignoreInitial?: boolean;
21
+ /** Stability threshold in ms before emitting file change */
22
+ stabilityThreshold?: number;
23
+ /** Poll interval for write finish detection */
24
+ pollInterval?: number;
25
+ /** Use polling instead of native events */
26
+ usePolling?: boolean;
27
+ /** Depth to traverse directories */
28
+ depth?: number;
29
+ }
30
+ /**
31
+ * File watcher service that monitors file system changes.
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const watcher = new FileWatcherService({
36
+ * paths: ['/path/to/watch'],
37
+ * ignored: /node_modules/,
38
+ * ignoreInitial: true,
39
+ * });
40
+ *
41
+ * watcher.on('change', (path) => console.log(`Changed: ${path}`));
42
+ * watcher.on('add', (path) => console.log(`Added: ${path}`));
43
+ * watcher.on('unlink', (path) => console.log(`Removed: ${path}`));
44
+ *
45
+ * await watcher.start();
46
+ * ```
47
+ */
48
+ export declare class FileWatcherService extends EventEmitter implements ServiceHandler {
49
+ private watcher?;
50
+ private options;
51
+ private metrics;
52
+ private startTime?;
53
+ private isRunning;
54
+ constructor(options: FileWatcherOptions | string[]);
55
+ /**
56
+ * Start watching for file changes.
57
+ */
58
+ start(): Promise<void>;
59
+ /**
60
+ * Stop watching for file changes.
61
+ */
62
+ stop(): Promise<void>;
63
+ /**
64
+ * Check if the watcher is healthy.
65
+ */
66
+ healthCheck(): Promise<boolean>;
67
+ /**
68
+ * Get current metrics.
69
+ */
70
+ getMetrics(): ServiceMetrics;
71
+ /**
72
+ * Add paths to watch.
73
+ *
74
+ * @param paths - Paths to add
75
+ */
76
+ add(paths: string | string[]): void;
77
+ /**
78
+ * Remove paths from watching.
79
+ *
80
+ * @param paths - Paths to unwatch
81
+ */
82
+ unwatch(paths: string | string[]): void;
83
+ /**
84
+ * Get list of watched paths.
85
+ */
86
+ getWatched(): Record<string, string[]>;
87
+ }
88
+ /**
89
+ * Create a file watcher service.
90
+ *
91
+ * @param options - Watcher options or array of paths
92
+ * @returns Configured FileWatcherService
93
+ */
94
+ export declare function createFileWatcher(options: FileWatcherOptions | string[]): FileWatcherService;
95
+ //# sourceMappingURL=watchers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchers.d.ts","sourceRoot":"","sources":["../../src/services/watchers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAmBjE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,kBAAmB,SAAQ,YAAa,YAAW,cAAc;IAC5E,OAAO,CAAC,OAAO,CAAC,CAAY;IAC5B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAKb;IACF,OAAO,CAAC,SAAS,CAAC,CAAO;IACzB,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,kBAAkB,GAAG,MAAM,EAAE;IAUlD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;OAEG;IACH,UAAU,IAAI,cAAc;IAW5B;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAOnC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAOvC;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAMvC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,EAAE,GAAG,kBAAkB,CAE5F"}