@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.
- package/README.md +686 -304
- package/dist/_virtual/_commonjsHelpers.js +7 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/additionalItems.js +5 -0
- package/dist/_virtual/additionalItems.js.map +1 -0
- package/dist/_virtual/additionalProperties.js +5 -0
- package/dist/_virtual/additionalProperties.js.map +1 -0
- package/dist/_virtual/ajv.js +6 -0
- package/dist/_virtual/ajv.js.map +1 -0
- package/dist/_virtual/ajv2.js +5 -0
- package/dist/_virtual/ajv2.js.map +1 -0
- package/dist/_virtual/allOf.js +5 -0
- package/dist/_virtual/allOf.js.map +1 -0
- package/dist/_virtual/anyOf.js +5 -0
- package/dist/_virtual/anyOf.js.map +1 -0
- package/dist/_virtual/applicability.js +5 -0
- package/dist/_virtual/applicability.js.map +1 -0
- package/dist/_virtual/boolSchema.js +5 -0
- package/dist/_virtual/boolSchema.js.map +1 -0
- package/dist/_virtual/code.js +5 -0
- package/dist/_virtual/code.js.map +1 -0
- package/dist/_virtual/code2.js +5 -0
- package/dist/_virtual/code2.js.map +1 -0
- package/dist/_virtual/const.js +5 -0
- package/dist/_virtual/const.js.map +1 -0
- package/dist/_virtual/contains.js +5 -0
- package/dist/_virtual/contains.js.map +1 -0
- package/dist/_virtual/core.js +5 -0
- package/dist/_virtual/core.js.map +1 -0
- package/dist/_virtual/dataType.js +5 -0
- package/dist/_virtual/dataType.js.map +1 -0
- package/dist/_virtual/defaults.js +5 -0
- package/dist/_virtual/defaults.js.map +1 -0
- package/dist/_virtual/dependencies.js +5 -0
- package/dist/_virtual/dependencies.js.map +1 -0
- package/dist/_virtual/draft7.js +5 -0
- package/dist/_virtual/draft7.js.map +1 -0
- package/dist/_virtual/enum.js +5 -0
- package/dist/_virtual/enum.js.map +1 -0
- package/dist/_virtual/equal.js +5 -0
- package/dist/_virtual/equal.js.map +1 -0
- package/dist/_virtual/errors.js +5 -0
- package/dist/_virtual/errors.js.map +1 -0
- package/dist/_virtual/format.js +5 -0
- package/dist/_virtual/format.js.map +1 -0
- package/dist/_virtual/formats.js +5 -0
- package/dist/_virtual/formats.js.map +1 -0
- package/dist/_virtual/id.js +5 -0
- package/dist/_virtual/id.js.map +1 -0
- package/dist/_virtual/if.js +5 -0
- package/dist/_virtual/if.js.map +1 -0
- package/dist/_virtual/index.js +8 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index10.js +5 -0
- package/dist/_virtual/index10.js.map +1 -0
- package/dist/_virtual/index11.js +5 -0
- package/dist/_virtual/index11.js.map +1 -0
- package/dist/_virtual/index12.js +5 -0
- package/dist/_virtual/index12.js.map +1 -0
- package/dist/_virtual/index2.js +5 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/_virtual/index3.js +5 -0
- package/dist/_virtual/index3.js.map +1 -0
- package/dist/_virtual/index4.js +5 -0
- package/dist/_virtual/index4.js.map +1 -0
- package/dist/_virtual/index5.js +5 -0
- package/dist/_virtual/index5.js.map +1 -0
- package/dist/_virtual/index6.js +5 -0
- package/dist/_virtual/index6.js.map +1 -0
- package/dist/_virtual/index7.js +5 -0
- package/dist/_virtual/index7.js.map +1 -0
- package/dist/_virtual/index8.js +5 -0
- package/dist/_virtual/index8.js.map +1 -0
- package/dist/_virtual/index9.js +5 -0
- package/dist/_virtual/index9.js.map +1 -0
- package/dist/_virtual/items.js +5 -0
- package/dist/_virtual/items.js.map +1 -0
- package/dist/_virtual/items2020.js +5 -0
- package/dist/_virtual/items2020.js.map +1 -0
- package/dist/_virtual/keyword.js +5 -0
- package/dist/_virtual/keyword.js.map +1 -0
- package/dist/_virtual/limit.js +5 -0
- package/dist/_virtual/limit.js.map +1 -0
- package/dist/_virtual/limitItems.js +5 -0
- package/dist/_virtual/limitItems.js.map +1 -0
- package/dist/_virtual/limitLength.js +5 -0
- package/dist/_virtual/limitLength.js.map +1 -0
- package/dist/_virtual/limitNumber.js +5 -0
- package/dist/_virtual/limitNumber.js.map +1 -0
- package/dist/_virtual/limitProperties.js +5 -0
- package/dist/_virtual/limitProperties.js.map +1 -0
- package/dist/_virtual/metadata.js +5 -0
- package/dist/_virtual/metadata.js.map +1 -0
- package/dist/_virtual/multipleOf.js +5 -0
- package/dist/_virtual/multipleOf.js.map +1 -0
- package/dist/_virtual/names.js +5 -0
- package/dist/_virtual/names.js.map +1 -0
- package/dist/_virtual/not.js +5 -0
- package/dist/_virtual/not.js.map +1 -0
- package/dist/_virtual/oneOf.js +5 -0
- package/dist/_virtual/oneOf.js.map +1 -0
- package/dist/_virtual/pattern.js +5 -0
- package/dist/_virtual/pattern.js.map +1 -0
- package/dist/_virtual/patternProperties.js +5 -0
- package/dist/_virtual/patternProperties.js.map +1 -0
- package/dist/_virtual/prefixItems.js +5 -0
- package/dist/_virtual/prefixItems.js.map +1 -0
- package/dist/_virtual/properties.js +5 -0
- package/dist/_virtual/properties.js.map +1 -0
- package/dist/_virtual/propertyNames.js +5 -0
- package/dist/_virtual/propertyNames.js.map +1 -0
- package/dist/_virtual/ref.js +5 -0
- package/dist/_virtual/ref.js.map +1 -0
- package/dist/_virtual/ref_error.js +5 -0
- package/dist/_virtual/ref_error.js.map +1 -0
- package/dist/_virtual/required.js +5 -0
- package/dist/_virtual/required.js.map +1 -0
- package/dist/_virtual/resolve.js +5 -0
- package/dist/_virtual/resolve.js.map +1 -0
- package/dist/_virtual/rules.js +5 -0
- package/dist/_virtual/rules.js.map +1 -0
- package/dist/_virtual/scope.js +5 -0
- package/dist/_virtual/scope.js.map +1 -0
- package/dist/_virtual/subschema.js +5 -0
- package/dist/_virtual/subschema.js.map +1 -0
- package/dist/_virtual/thenElse.js +5 -0
- package/dist/_virtual/thenElse.js.map +1 -0
- package/dist/_virtual/types.js +5 -0
- package/dist/_virtual/types.js.map +1 -0
- package/dist/_virtual/ucs2length.js +5 -0
- package/dist/_virtual/ucs2length.js.map +1 -0
- package/dist/_virtual/uniqueItems.js +5 -0
- package/dist/_virtual/uniqueItems.js.map +1 -0
- package/dist/_virtual/uri.js +5 -0
- package/dist/_virtual/uri.js.map +1 -0
- package/dist/_virtual/util.js +5 -0
- package/dist/_virtual/util.js.map +1 -0
- package/dist/_virtual/validation_error.js +5 -0
- package/dist/_virtual/validation_error.js.map +1 -0
- package/dist/agents/analyst-agent.d.ts +230 -0
- package/dist/agents/analyst-agent.d.ts.map +1 -0
- package/dist/agents/analyst-agent.js +793 -0
- package/dist/agents/analyst-agent.js.map +1 -0
- package/dist/agents/architect-agent.d.ts +248 -0
- package/dist/agents/architect-agent.d.ts.map +1 -0
- package/dist/agents/architect-agent.js +685 -0
- package/dist/agents/architect-agent.js.map +1 -0
- package/dist/agents/base-agent.d.ts +169 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +441 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/coder-agent.d.ts +191 -0
- package/dist/agents/coder-agent.d.ts.map +1 -0
- package/dist/agents/coder-agent.js +1008 -0
- package/dist/agents/coder-agent.js.map +1 -0
- package/dist/agents/index.d.ts +18 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +40 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/registry.d.ts +213 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +419 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/researcher-agent.d.ts +226 -0
- package/dist/agents/researcher-agent.d.ts.map +1 -0
- package/dist/agents/researcher-agent.js +572 -0
- package/dist/agents/researcher-agent.js.map +1 -0
- package/dist/agents/rules-engine.d.ts +320 -0
- package/dist/agents/rules-engine.d.ts.map +1 -0
- package/dist/agents/rules-engine.js +552 -0
- package/dist/agents/rules-engine.js.map +1 -0
- package/dist/agents/tester-agent.d.ts +219 -0
- package/dist/agents/tester-agent.d.ts.map +1 -0
- package/dist/agents/tester-agent.js +683 -0
- package/dist/agents/tester-agent.js.map +1 -0
- package/dist/agents/types.d.ts +425 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +57 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/caching/index.d.ts +55 -0
- package/dist/caching/index.d.ts.map +1 -0
- package/dist/caching/index.js +206 -0
- package/dist/caching/index.js.map +1 -0
- package/dist/caching/lru-cache.d.ts +254 -0
- package/dist/caching/lru-cache.d.ts.map +1 -0
- package/dist/caching/types.d.ts +95 -0
- package/dist/caching/types.d.ts.map +1 -0
- package/dist/chunking/chunker.d.ts +94 -0
- package/dist/chunking/chunker.d.ts.map +1 -0
- package/dist/chunking/index.d.ts +125 -0
- package/dist/chunking/index.d.ts.map +1 -0
- package/dist/chunking/index.js +283 -0
- package/dist/chunking/index.js.map +1 -0
- package/dist/chunking/types.d.ts +92 -0
- package/dist/chunking/types.d.ts.map +1 -0
- package/dist/cli/commands/commit.d.ts +11 -0
- package/dist/cli/commands/commit.d.ts.map +1 -0
- package/dist/cli/commands/commit.js +379 -0
- package/dist/cli/commands/commit.js.map +1 -0
- package/dist/cli/commands/config.d.ts +8 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +107 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/cultivate.d.ts +16 -0
- package/dist/cli/commands/cultivate.d.ts.map +1 -0
- package/dist/cli/commands/cultivate.js +254 -0
- package/dist/cli/commands/cultivate.js.map +1 -0
- package/dist/cli/commands/diagnostics.d.ts +8 -0
- package/dist/cli/commands/diagnostics.d.ts.map +1 -0
- package/dist/cli/commands/diagnostics.js +140 -0
- package/dist/cli/commands/diagnostics.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +13 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/init-primitives.d.ts +19 -0
- package/dist/cli/commands/init-primitives.d.ts.map +1 -0
- package/dist/cli/commands/init-primitives.js +208 -0
- package/dist/cli/commands/init-primitives.js.map +1 -0
- package/dist/cli/commands/sop.d.ts +14 -0
- package/dist/cli/commands/sop.d.ts.map +1 -0
- package/dist/cli/commands/sop.js +598 -0
- package/dist/cli/commands/sop.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +40 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/index.d.ts +153 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +141 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/manager.d.ts +136 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/types.d.ts +127 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/core/cache.d.ts +185 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +435 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/cultivation/deep-analyzer.d.ts +129 -0
- package/dist/cultivation/deep-analyzer.d.ts.map +1 -0
- package/dist/cultivation/deep-analyzer.js +322 -0
- package/dist/cultivation/deep-analyzer.js.map +1 -0
- package/dist/cultivation/index.d.ts +13 -0
- package/dist/cultivation/index.d.ts.map +1 -0
- package/dist/cultivation/seed-generator.d.ts +92 -0
- package/dist/cultivation/seed-generator.d.ts.map +1 -0
- package/dist/cultivation/seed-generator.js +1033 -0
- package/dist/cultivation/seed-generator.js.map +1 -0
- package/dist/cultivation/types.d.ts +230 -0
- package/dist/cultivation/types.d.ts.map +1 -0
- package/dist/generators/claude-md.d.ts +7 -0
- package/dist/generators/claude-md.d.ts.map +1 -1
- package/dist/generators/claude-md.js.map +1 -1
- package/dist/generators/docs-init.d.ts +6 -0
- package/dist/generators/docs-init.d.ts.map +1 -1
- package/dist/generators/docs-init.js.map +1 -1
- package/dist/health/checks.d.ts +135 -0
- package/dist/health/checks.d.ts.map +1 -0
- package/dist/health/index.d.ts +119 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +191 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/monitor.d.ts +146 -0
- package/dist/health/monitor.d.ts.map +1 -0
- package/dist/health/types.d.ts +135 -0
- package/dist/health/types.d.ts.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +173 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/auto-commit.d.ts +175 -0
- package/dist/integrations/auto-commit.d.ts.map +1 -0
- package/dist/integrations/auto-commit.js +399 -0
- package/dist/integrations/auto-commit.js.map +1 -0
- package/dist/integrations/git.d.ts +299 -0
- package/dist/integrations/git.d.ts.map +1 -0
- package/dist/integrations/git.js +465 -0
- package/dist/integrations/git.js.map +1 -0
- package/dist/mcp-server/bin.d.ts +11 -0
- package/dist/mcp-server/bin.d.ts.map +1 -0
- package/dist/mcp-server/handlers/index.d.ts +57 -0
- package/dist/mcp-server/handlers/index.d.ts.map +1 -0
- package/dist/mcp-server/handlers/index.js +235 -0
- package/dist/mcp-server/handlers/index.js.map +1 -0
- package/dist/mcp-server/index.d.ts +28 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/server.d.ts +133 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +280 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/agents/index.d.ts +10 -0
- package/dist/mcp-server/tools/agents/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/agents/list.d.ts +19 -0
- package/dist/mcp-server/tools/agents/list.d.ts.map +1 -0
- package/dist/mcp-server/tools/agents/spawn.d.ts +19 -0
- package/dist/mcp-server/tools/agents/spawn.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/generate.d.ts +21 -0
- package/dist/mcp-server/tools/graph/generate.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/index.d.ts +11 -0
- package/dist/mcp-server/tools/graph/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/query.d.ts +22 -0
- package/dist/mcp-server/tools/graph/query.d.ts.map +1 -0
- package/dist/mcp-server/tools/graph/stats.d.ts +22 -0
- package/dist/mcp-server/tools/graph/stats.d.ts.map +1 -0
- package/dist/mcp-server/tools/health.d.ts +21 -0
- package/dist/mcp-server/tools/health.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +13 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/registry.d.ts +90 -0
- package/dist/mcp-server/tools/registry.d.ts.map +1 -0
- package/dist/mcp-server/tools/registry.js +663 -0
- package/dist/mcp-server/tools/registry.js.map +1 -0
- package/dist/mcp-server/tools/search/index.d.ts +10 -0
- package/dist/mcp-server/tools/search/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/search/nodes.d.ts +22 -0
- package/dist/mcp-server/tools/search/nodes.d.ts.map +1 -0
- package/dist/mcp-server/tools/search/tags.d.ts +22 -0
- package/dist/mcp-server/tools/search/tags.d.ts.map +1 -0
- package/dist/mcp-server/types/index.d.ts +286 -0
- package/dist/mcp-server/types/index.d.ts.map +1 -0
- package/dist/memory/index.d.ts +10 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/vault-sync.d.ts +212 -0
- package/dist/memory/vault-sync.d.ts.map +1 -0
- package/dist/memory/vault-sync.js +463 -0
- package/dist/memory/vault-sync.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +296 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +71 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +26 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +407 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1332 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +71 -0
- package/dist/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js.map +1 -0
- package/dist/node_modules/ajv/dist/ajv.js +84 -0
- package/dist/node_modules/ajv/dist/ajv.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/code.js +160 -0
- package/dist/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/index.js +728 -0
- package/dist/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js +152 -0
- package/dist/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/errors.js +131 -0
- package/dist/node_modules/ajv/dist/compile/errors.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/index.js +234 -0
- package/dist/node_modules/ajv/dist/compile/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/names.js +44 -0
- package/dist/node_modules/ajv/dist/compile/names.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/ref_error.js +22 -0
- package/dist/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/resolve.js +163 -0
- package/dist/node_modules/ajv/dist/compile/resolve.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/rules.js +35 -0
- package/dist/node_modules/ajv/dist/compile/rules.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/util.js +173 -0
- package/dist/node_modules/ajv/dist/compile/util.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js +27 -0
- package/dist/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js +58 -0
- package/dist/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js +193 -0
- package/dist/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js +43 -0
- package/dist/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/index.js +522 -0
- package/dist/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js +126 -0
- package/dist/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js +89 -0
- package/dist/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
- package/dist/node_modules/ajv/dist/core.js +628 -0
- package/dist/node_modules/ajv/dist/core.js.map +1 -0
- package/dist/node_modules/ajv/dist/refs/data.json.js +24 -0
- package/dist/node_modules/ajv/dist/refs/data.json.js.map +1 -0
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js +25 -0
- package/dist/node_modules/ajv/dist/refs/json-schema-draft-07.json.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/equal.js +16 -0
- package/dist/node_modules/ajv/dist/runtime/equal.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js +30 -0
- package/dist/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/uri.js +16 -0
- package/dist/node_modules/ajv/dist/runtime/uri.js.map +1 -0
- package/dist/node_modules/ajv/dist/runtime/validation_error.js +20 -0
- package/dist/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +114 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js +32 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +22 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js +100 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +103 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js +75 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +68 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js +64 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js +43 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js +36 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +64 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +81 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +22 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js +66 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +49 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +23 -0
- package/dist/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/code.js +140 -0
- package/dist/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js +19 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js +27 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js +132 -0
- package/dist/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js +114 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js +18 -0
- package/dist/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js +31 -0
- package/dist/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js +95 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js +16 -0
- package/dist/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js +27 -0
- package/dist/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js +36 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js +56 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +52 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js +39 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +37 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +33 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js +34 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js +89 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +75 -0
- package/dist/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/formats.js +209 -0
- package/dist/node_modules/ajv-formats/dist/formats.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/index.js +51 -0
- package/dist/node_modules/ajv-formats/dist/index.js.map +1 -0
- package/dist/node_modules/ajv-formats/dist/limit.js +80 -0
- package/dist/node_modules/ajv-formats/dist/limit.js.map +1 -0
- package/dist/node_modules/fast-deep-equal/index.js +39 -0
- package/dist/node_modules/fast-deep-equal/index.js.map +1 -0
- package/dist/node_modules/fast-uri/index.js +261 -0
- package/dist/node_modules/fast-uri/index.js.map +1 -0
- package/dist/node_modules/fast-uri/lib/schemes.js +215 -0
- package/dist/node_modules/fast-uri/lib/schemes.js.map +1 -0
- package/dist/node_modules/fast-uri/lib/utils.js +261 -0
- package/dist/node_modules/fast-uri/lib/utils.js.map +1 -0
- package/dist/node_modules/json-schema-traverse/index.js +92 -0
- package/dist/node_modules/json-schema-traverse/index.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.js +37 -0
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.js +43 -0
- package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +13 -0
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +688 -0
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/api.js +492 -0
- package/dist/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +405 -0
- package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/zod/v4/core/core.js +58 -0
- package/dist/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +38 -0
- package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.js +82 -0
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +60 -0
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +87 -0
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +52 -0
- package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +1283 -0
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/util.js +341 -0
- package/dist/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +9 -0
- package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +2 -0
- package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
- package/dist/reasoning/index.d.ts +74 -0
- package/dist/reasoning/index.d.ts.map +1 -0
- package/dist/reasoning/index.js +124 -0
- package/dist/reasoning/index.js.map +1 -0
- package/dist/reasoning/tracker.d.ts +210 -0
- package/dist/reasoning/tracker.d.ts.map +1 -0
- package/dist/reasoning/types.d.ts +146 -0
- package/dist/reasoning/types.d.ts.map +1 -0
- package/dist/recovery/backup.d.ts +110 -0
- package/dist/recovery/backup.d.ts.map +1 -0
- package/dist/recovery/index.d.ts +70 -0
- package/dist/recovery/index.d.ts.map +1 -0
- package/dist/recovery/index.js +186 -0
- package/dist/recovery/index.js.map +1 -0
- package/dist/recovery/integrity.d.ts +74 -0
- package/dist/recovery/integrity.d.ts.map +1 -0
- package/dist/recovery/types.d.ts +94 -0
- package/dist/recovery/types.d.ts.map +1 -0
- package/dist/services/index.d.ts +130 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +134 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/manager.d.ts +140 -0
- package/dist/services/manager.d.ts.map +1 -0
- package/dist/services/types.d.ts +106 -0
- package/dist/services/types.d.ts.map +1 -0
- package/dist/services/watchers.d.ts +95 -0
- package/dist/services/watchers.d.ts.map +1 -0
- package/dist/sops/compliance-checker.d.ts +83 -0
- package/dist/sops/compliance-checker.d.ts.map +1 -0
- package/dist/sops/compliance-checker.js +399 -0
- package/dist/sops/compliance-checker.js.map +1 -0
- package/dist/sops/gap-analyzer.d.ts +124 -0
- package/dist/sops/gap-analyzer.d.ts.map +1 -0
- package/dist/sops/gap-analyzer.js +313 -0
- package/dist/sops/gap-analyzer.js.map +1 -0
- package/dist/sops/index.d.ts +14 -0
- package/dist/sops/index.d.ts.map +1 -0
- package/dist/sops/overlay-manager.d.ts +115 -0
- package/dist/sops/overlay-manager.d.ts.map +1 -0
- package/dist/sops/overlay-manager.js +394 -0
- package/dist/sops/overlay-manager.js.map +1 -0
- package/dist/sops/registry.d.ts +73 -0
- package/dist/sops/registry.d.ts.map +1 -0
- package/dist/sops/registry.js +919 -0
- package/dist/sops/registry.js.map +1 -0
- package/dist/sops/types.d.ts +377 -0
- package/dist/sops/types.d.ts.map +1 -0
- package/dist/sops/types.js +46 -0
- package/dist/sops/types.js.map +1 -0
- package/dist/utils/error-recovery.d.ts +230 -0
- package/dist/utils/error-recovery.d.ts.map +1 -0
- package/dist/utils/error-recovery.js +228 -0
- package/dist/utils/error-recovery.js.map +1 -0
- package/dist/utils/error-taxonomy.d.ts +149 -0
- package/dist/utils/error-taxonomy.d.ts.map +1 -0
- package/dist/utils/error-taxonomy.js +260 -0
- package/dist/utils/error-taxonomy.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +139 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +311 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/workflows/index.d.ts +11 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/registry.d.ts +118 -0
- package/dist/workflows/registry.d.ts.map +1 -0
- package/dist/workflows/registry.js +575 -0
- package/dist/workflows/registry.js.map +1 -0
- package/dist/workflows/types.d.ts +322 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +16 -0
- package/dist/workflows/types.js.map +1 -0
- 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"}
|