@weavelogic/knowledge-graph-agent 0.2.0 → 0.4.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 +972 -303
- 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/audit/config.d.ts +150 -0
- package/dist/audit/config.d.ts.map +1 -0
- package/dist/audit/config.js +111 -0
- package/dist/audit/config.js.map +1 -0
- package/dist/audit/index.d.ts +38 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/services/audit-chain.d.ts +276 -0
- package/dist/audit/services/audit-chain.d.ts.map +1 -0
- package/dist/audit/services/audit-chain.js +502 -0
- package/dist/audit/services/audit-chain.js.map +1 -0
- package/dist/audit/services/index.d.ts +11 -0
- package/dist/audit/services/index.d.ts.map +1 -0
- package/dist/audit/services/syndication.d.ts +334 -0
- package/dist/audit/services/syndication.d.ts.map +1 -0
- package/dist/audit/services/syndication.js +589 -0
- package/dist/audit/services/syndication.js.map +1 -0
- package/dist/audit/types.d.ts +453 -0
- package/dist/audit/types.d.ts.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/audit.d.ts +21 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +621 -0
- package/dist/cli/commands/audit.js.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/commands/vector.d.ts +14 -0
- package/dist/cli/commands/vector.d.ts.map +1 -0
- package/dist/cli/commands/vector.js +429 -0
- package/dist/cli/commands/vector.js.map +1 -0
- package/dist/cli/commands/workflow.d.ts +12 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +471 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +66 -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/database/schemas/index.d.ts +85 -0
- package/dist/database/schemas/index.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 +32 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +182 -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/audit/checkpoint.d.ts +58 -0
- package/dist/mcp-server/tools/audit/checkpoint.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/checkpoint.js +73 -0
- package/dist/mcp-server/tools/audit/checkpoint.js.map +1 -0
- package/dist/mcp-server/tools/audit/index.d.ts +53 -0
- package/dist/mcp-server/tools/audit/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/index.js +12 -0
- package/dist/mcp-server/tools/audit/index.js.map +1 -0
- package/dist/mcp-server/tools/audit/query.d.ts +58 -0
- package/dist/mcp-server/tools/audit/query.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/query.js +125 -0
- package/dist/mcp-server/tools/audit/query.js.map +1 -0
- package/dist/mcp-server/tools/audit/sync.d.ts +58 -0
- package/dist/mcp-server/tools/audit/sync.d.ts.map +1 -0
- package/dist/mcp-server/tools/audit/sync.js +126 -0
- package/dist/mcp-server/tools/audit/sync.js.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 +16 -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 +753 -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/tools/vector/index.d.ts +12 -0
- package/dist/mcp-server/tools/vector/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/index.js +12 -0
- package/dist/mcp-server/tools/vector/index.js.map +1 -0
- package/dist/mcp-server/tools/vector/search.d.ts +41 -0
- package/dist/mcp-server/tools/vector/search.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/search.js +224 -0
- package/dist/mcp-server/tools/vector/search.js.map +1 -0
- package/dist/mcp-server/tools/vector/trajectory.d.ts +39 -0
- package/dist/mcp-server/tools/vector/trajectory.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/trajectory.js +170 -0
- package/dist/mcp-server/tools/vector/trajectory.js.map +1 -0
- package/dist/mcp-server/tools/vector/upsert.d.ts +44 -0
- package/dist/mcp-server/tools/vector/upsert.d.ts.map +1 -0
- package/dist/mcp-server/tools/vector/upsert.js +175 -0
- package/dist/mcp-server/tools/vector/upsert.js.map +1 -0
- package/dist/mcp-server/tools/workflow/index.d.ts +29 -0
- package/dist/mcp-server/tools/workflow/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/index.js +12 -0
- package/dist/mcp-server/tools/workflow/index.js.map +1 -0
- package/dist/mcp-server/tools/workflow/list.d.ts +41 -0
- package/dist/mcp-server/tools/workflow/list.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/list.js +195 -0
- package/dist/mcp-server/tools/workflow/list.js.map +1 -0
- package/dist/mcp-server/tools/workflow/start.d.ts +40 -0
- package/dist/mcp-server/tools/workflow/start.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/start.js +165 -0
- package/dist/mcp-server/tools/workflow/start.js.map +1 -0
- package/dist/mcp-server/tools/workflow/status.d.ts +38 -0
- package/dist/mcp-server/tools/workflow/status.d.ts.map +1 -0
- package/dist/mcp-server/tools/workflow/status.js +97 -0
- package/dist/mcp-server/tools/workflow/status.js.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/vector/config.d.ts +300 -0
- package/dist/vector/config.d.ts.map +1 -0
- package/dist/vector/config.js +124 -0
- package/dist/vector/config.js.map +1 -0
- package/dist/vector/index.d.ts +50 -0
- package/dist/vector/index.d.ts.map +1 -0
- package/dist/vector/services/index.d.ts +13 -0
- package/dist/vector/services/index.d.ts.map +1 -0
- package/dist/vector/services/trajectory-tracker.d.ts +405 -0
- package/dist/vector/services/trajectory-tracker.d.ts.map +1 -0
- package/dist/vector/services/trajectory-tracker.js +445 -0
- package/dist/vector/services/trajectory-tracker.js.map +1 -0
- package/dist/vector/services/vector-store.d.ts +339 -0
- package/dist/vector/services/vector-store.d.ts.map +1 -0
- package/dist/vector/services/vector-store.js +748 -0
- package/dist/vector/services/vector-store.js.map +1 -0
- package/dist/vector/types.d.ts +677 -0
- package/dist/vector/types.d.ts.map +1 -0
- package/dist/workflow/adapters/goap-adapter.d.ts +196 -0
- package/dist/workflow/adapters/goap-adapter.d.ts.map +1 -0
- package/dist/workflow/adapters/goap-adapter.js +706 -0
- package/dist/workflow/adapters/goap-adapter.js.map +1 -0
- package/dist/workflow/adapters/index.d.ts +10 -0
- package/dist/workflow/adapters/index.d.ts.map +1 -0
- package/dist/workflow/config.d.ts +135 -0
- package/dist/workflow/config.d.ts.map +1 -0
- package/dist/workflow/config.js +92 -0
- package/dist/workflow/config.js.map +1 -0
- package/dist/workflow/handlers/index.d.ts +9 -0
- package/dist/workflow/handlers/index.d.ts.map +1 -0
- package/dist/workflow/handlers/webhook-handlers.d.ts +397 -0
- package/dist/workflow/handlers/webhook-handlers.d.ts.map +1 -0
- package/dist/workflow/handlers/webhook-handlers.js +454 -0
- package/dist/workflow/handlers/webhook-handlers.js.map +1 -0
- package/dist/workflow/index.d.ts +42 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/services/index.d.ts +9 -0
- package/dist/workflow/services/index.d.ts.map +1 -0
- package/dist/workflow/services/workflow-service.d.ts +318 -0
- package/dist/workflow/services/workflow-service.d.ts.map +1 -0
- package/dist/workflow/services/workflow-service.js +577 -0
- package/dist/workflow/services/workflow-service.js.map +1 -0
- package/dist/workflow/types.d.ts +470 -0
- package/dist/workflow/types.d.ts.map +1 -0
- package/dist/workflow/workflows/realtime-collab.d.ts +245 -0
- package/dist/workflow/workflows/realtime-collab.d.ts.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,502 @@
|
|
|
1
|
+
import { createAuditChainConfig, validateAuditChainConfig } from "../config.js";
|
|
2
|
+
import { createLogger } from "../../utils/logger.js";
|
|
3
|
+
const logger = createLogger("audit-chain");
|
|
4
|
+
function blake3Hash(data) {
|
|
5
|
+
let hash = 0;
|
|
6
|
+
for (let i = 0; i < data.length; i++) {
|
|
7
|
+
const char = data.charCodeAt(i);
|
|
8
|
+
hash = (hash << 5) - hash + char;
|
|
9
|
+
hash = hash & hash;
|
|
10
|
+
}
|
|
11
|
+
return Math.abs(hash).toString(16).padStart(64, "0");
|
|
12
|
+
}
|
|
13
|
+
function signData(data, _privateKey) {
|
|
14
|
+
const hash = blake3Hash(data + (_privateKey || "default-key"));
|
|
15
|
+
return hash + hash.split("").reverse().join("");
|
|
16
|
+
}
|
|
17
|
+
function verifySignature(_data, _signature, _publicKey) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
function canonicalSerialize(obj) {
|
|
21
|
+
return JSON.stringify(obj, Object.keys(obj).sort());
|
|
22
|
+
}
|
|
23
|
+
class AuditChain {
|
|
24
|
+
config;
|
|
25
|
+
events = /* @__PURE__ */ new Map();
|
|
26
|
+
tips = /* @__PURE__ */ new Set();
|
|
27
|
+
// Current DAG tips
|
|
28
|
+
hlc;
|
|
29
|
+
checkpoints = [];
|
|
30
|
+
eventsSinceCheckpoint = 0;
|
|
31
|
+
/**
|
|
32
|
+
* Create a new AuditChain instance
|
|
33
|
+
*
|
|
34
|
+
* @param config - Partial configuration (merged with defaults)
|
|
35
|
+
*/
|
|
36
|
+
constructor(config) {
|
|
37
|
+
const baseConfig = createAuditChainConfig();
|
|
38
|
+
this.config = { ...baseConfig, ...config };
|
|
39
|
+
const validation = validateAuditChainConfig(this.config);
|
|
40
|
+
if (!validation.valid) {
|
|
41
|
+
logger.warn("Invalid configuration", { errors: validation.errors });
|
|
42
|
+
}
|
|
43
|
+
this.hlc = {
|
|
44
|
+
physicalMs: Date.now(),
|
|
45
|
+
logical: 0
|
|
46
|
+
};
|
|
47
|
+
logger.info("Audit chain initialized", {
|
|
48
|
+
agentDid: this.config.agentDid,
|
|
49
|
+
backend: this.config.backend
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Tick the HLC and return new timestamp
|
|
54
|
+
*
|
|
55
|
+
* Implements the HLC tick algorithm:
|
|
56
|
+
* - If physical time has advanced, reset logical counter
|
|
57
|
+
* - Otherwise, increment logical counter
|
|
58
|
+
*
|
|
59
|
+
* @returns New HLC timestamp
|
|
60
|
+
*/
|
|
61
|
+
tickHLC() {
|
|
62
|
+
const now = Date.now();
|
|
63
|
+
if (now > this.hlc.physicalMs) {
|
|
64
|
+
this.hlc = { physicalMs: now, logical: 0 };
|
|
65
|
+
} else {
|
|
66
|
+
this.hlc = {
|
|
67
|
+
physicalMs: this.hlc.physicalMs,
|
|
68
|
+
logical: this.hlc.logical + 1
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return { ...this.hlc };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Update HLC based on received event
|
|
75
|
+
*
|
|
76
|
+
* Implements the HLC receive algorithm:
|
|
77
|
+
* - Take max of local, remote, and current time
|
|
78
|
+
* - Adjust logical counter appropriately
|
|
79
|
+
*
|
|
80
|
+
* @param received - HLC from received event
|
|
81
|
+
*/
|
|
82
|
+
updateHLC(received) {
|
|
83
|
+
const now = Date.now();
|
|
84
|
+
const maxPhysical = Math.max(
|
|
85
|
+
now,
|
|
86
|
+
this.hlc.physicalMs,
|
|
87
|
+
received.physicalMs
|
|
88
|
+
);
|
|
89
|
+
if (maxPhysical === this.hlc.physicalMs && maxPhysical === received.physicalMs) {
|
|
90
|
+
this.hlc = {
|
|
91
|
+
physicalMs: maxPhysical,
|
|
92
|
+
logical: Math.max(this.hlc.logical, received.logical) + 1
|
|
93
|
+
};
|
|
94
|
+
} else if (maxPhysical === this.hlc.physicalMs) {
|
|
95
|
+
this.hlc = { physicalMs: maxPhysical, logical: this.hlc.logical + 1 };
|
|
96
|
+
} else if (maxPhysical === received.physicalMs) {
|
|
97
|
+
this.hlc = { physicalMs: maxPhysical, logical: received.logical + 1 };
|
|
98
|
+
} else {
|
|
99
|
+
this.hlc = { physicalMs: maxPhysical, logical: 0 };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Compare two HLCs
|
|
104
|
+
*
|
|
105
|
+
* @param a - First HLC
|
|
106
|
+
* @param b - Second HLC
|
|
107
|
+
* @returns Negative if a < b, positive if a > b, zero if equal
|
|
108
|
+
*/
|
|
109
|
+
compareHLC(a, b) {
|
|
110
|
+
if (a.physicalMs !== b.physicalMs) {
|
|
111
|
+
return a.physicalMs - b.physicalMs;
|
|
112
|
+
}
|
|
113
|
+
return a.logical - b.logical;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get current DAG tips (events with no children)
|
|
117
|
+
*
|
|
118
|
+
* Tips are the "leaf" events in the DAG that have not been
|
|
119
|
+
* referenced as parents by any other event.
|
|
120
|
+
*
|
|
121
|
+
* @returns Array of tip event IDs
|
|
122
|
+
*/
|
|
123
|
+
getTips() {
|
|
124
|
+
return Array.from(this.tips);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Append an event to the chain
|
|
128
|
+
*
|
|
129
|
+
* Creates a new event with:
|
|
130
|
+
* - Current tips as parents (DAG structure)
|
|
131
|
+
* - New HLC timestamp
|
|
132
|
+
* - Signature for authenticity
|
|
133
|
+
*
|
|
134
|
+
* @param payload - Event payload to append
|
|
135
|
+
* @returns The created ledger event
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* const event = await chain.appendEvent({
|
|
140
|
+
* type: 'NodeCreated',
|
|
141
|
+
* nodeId: 'doc-1',
|
|
142
|
+
* nodeType: 'Document',
|
|
143
|
+
* properties: { title: 'README' }
|
|
144
|
+
* });
|
|
145
|
+
* console.log('Event ID:', event.id);
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
async appendEvent(payload) {
|
|
149
|
+
const parents = this.getTips();
|
|
150
|
+
const hlc = this.tickHLC();
|
|
151
|
+
const envelope = {
|
|
152
|
+
parents,
|
|
153
|
+
hlc,
|
|
154
|
+
author: this.config.agentDid,
|
|
155
|
+
payload
|
|
156
|
+
};
|
|
157
|
+
const serialized = canonicalSerialize(envelope);
|
|
158
|
+
const eventId = blake3Hash(serialized);
|
|
159
|
+
const signature = signData(eventId, this.config.privateKey);
|
|
160
|
+
const event = {
|
|
161
|
+
id: eventId,
|
|
162
|
+
envelope,
|
|
163
|
+
signature
|
|
164
|
+
};
|
|
165
|
+
this.events.set(eventId, event);
|
|
166
|
+
for (const parent of parents) {
|
|
167
|
+
this.tips.delete(parent);
|
|
168
|
+
}
|
|
169
|
+
this.tips.add(eventId);
|
|
170
|
+
this.eventsSinceCheckpoint++;
|
|
171
|
+
if (this.eventsSinceCheckpoint >= this.config.checkpointInterval) {
|
|
172
|
+
await this.createCheckpoint();
|
|
173
|
+
}
|
|
174
|
+
logger.debug("Appended event", {
|
|
175
|
+
eventId,
|
|
176
|
+
type: payload.type,
|
|
177
|
+
parents: parents.length
|
|
178
|
+
});
|
|
179
|
+
return event;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Validate and insert an external event
|
|
183
|
+
*
|
|
184
|
+
* Performs validation:
|
|
185
|
+
* - Signature verification
|
|
186
|
+
* - Parent existence check
|
|
187
|
+
* - Causality verification (HLC ordering)
|
|
188
|
+
* - Event ID recomputation
|
|
189
|
+
*
|
|
190
|
+
* @param event - External event to validate and insert
|
|
191
|
+
* @returns Validation result with details
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```typescript
|
|
195
|
+
* const validation = await chain.validateAndInsert(externalEvent);
|
|
196
|
+
* if (validation.valid) {
|
|
197
|
+
* console.log('Event inserted successfully');
|
|
198
|
+
* } else {
|
|
199
|
+
* console.error('Validation failed:', validation.errors);
|
|
200
|
+
* }
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
async validateAndInsert(event) {
|
|
204
|
+
const errors = [];
|
|
205
|
+
const signatureValid = verifySignature(event.id, event.signature);
|
|
206
|
+
let parentsExist = true;
|
|
207
|
+
for (const parentId of event.envelope.parents) {
|
|
208
|
+
if (!this.events.has(parentId)) {
|
|
209
|
+
parentsExist = false;
|
|
210
|
+
errors.push(`Parent not found: ${parentId}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
let causalityValid = true;
|
|
214
|
+
for (const parentId of event.envelope.parents) {
|
|
215
|
+
const parent = this.events.get(parentId);
|
|
216
|
+
if (parent && this.compareHLC(event.envelope.hlc, parent.envelope.hlc) <= 0) {
|
|
217
|
+
causalityValid = false;
|
|
218
|
+
errors.push("Causality violation: event HLC not greater than parent");
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
const serialized = canonicalSerialize(event.envelope);
|
|
222
|
+
const expectedId = blake3Hash(serialized);
|
|
223
|
+
if (event.id !== expectedId) {
|
|
224
|
+
errors.push("Event ID mismatch");
|
|
225
|
+
}
|
|
226
|
+
const validation = {
|
|
227
|
+
valid: errors.length === 0,
|
|
228
|
+
errors,
|
|
229
|
+
signatureValid,
|
|
230
|
+
causalityValid,
|
|
231
|
+
parentsExist
|
|
232
|
+
};
|
|
233
|
+
if (validation.valid) {
|
|
234
|
+
this.events.set(event.id, event);
|
|
235
|
+
this.updateHLC(event.envelope.hlc);
|
|
236
|
+
for (const parent of event.envelope.parents) {
|
|
237
|
+
this.tips.delete(parent);
|
|
238
|
+
}
|
|
239
|
+
this.tips.add(event.id);
|
|
240
|
+
this.eventsSinceCheckpoint++;
|
|
241
|
+
logger.debug("Inserted external event", { eventId: event.id });
|
|
242
|
+
} else {
|
|
243
|
+
logger.warn("Rejected invalid event", { eventId: event.id, errors });
|
|
244
|
+
}
|
|
245
|
+
return validation;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Create a checkpoint
|
|
249
|
+
*
|
|
250
|
+
* Checkpoints provide:
|
|
251
|
+
* - Periodic state snapshots
|
|
252
|
+
* - Efficient verification of chain integrity
|
|
253
|
+
* - Recovery points for sync
|
|
254
|
+
*
|
|
255
|
+
* @returns The created checkpoint
|
|
256
|
+
*/
|
|
257
|
+
async createCheckpoint() {
|
|
258
|
+
const height = this.checkpoints.length;
|
|
259
|
+
const eventIds = Array.from(this.events.keys()).sort();
|
|
260
|
+
const eventRoot = blake3Hash(eventIds.join(":"));
|
|
261
|
+
const stateRoot = blake3Hash(JSON.stringify(this.getStats()));
|
|
262
|
+
const checkpoint = {
|
|
263
|
+
height,
|
|
264
|
+
eventRoot,
|
|
265
|
+
stateRoot,
|
|
266
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
267
|
+
validatorSignatures: [
|
|
268
|
+
{
|
|
269
|
+
validatorDid: this.config.agentDid,
|
|
270
|
+
signature: signData(eventRoot + stateRoot, this.config.privateKey)
|
|
271
|
+
}
|
|
272
|
+
]
|
|
273
|
+
};
|
|
274
|
+
this.checkpoints.push(checkpoint);
|
|
275
|
+
this.eventsSinceCheckpoint = 0;
|
|
276
|
+
await this.appendEvent({
|
|
277
|
+
type: "CheckpointCreated",
|
|
278
|
+
height,
|
|
279
|
+
eventRoot,
|
|
280
|
+
stateRoot
|
|
281
|
+
});
|
|
282
|
+
logger.info("Created checkpoint", { height, eventCount: this.events.size });
|
|
283
|
+
return checkpoint;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get the latest checkpoint
|
|
287
|
+
*
|
|
288
|
+
* @returns The most recent checkpoint, or null if none exist
|
|
289
|
+
*/
|
|
290
|
+
getLatestCheckpoint() {
|
|
291
|
+
return this.checkpoints[this.checkpoints.length - 1] || null;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get an event by ID
|
|
295
|
+
*
|
|
296
|
+
* @param eventId - Event ID to look up
|
|
297
|
+
* @returns The event, or null if not found
|
|
298
|
+
*/
|
|
299
|
+
getEvent(eventId) {
|
|
300
|
+
return this.events.get(eventId) || null;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Query events
|
|
304
|
+
*
|
|
305
|
+
* Supports filtering by:
|
|
306
|
+
* - Event type
|
|
307
|
+
* - Author DID
|
|
308
|
+
* - Time range (HLC)
|
|
309
|
+
* - With optional Merkle proofs
|
|
310
|
+
*
|
|
311
|
+
* @param options - Query options
|
|
312
|
+
* @returns Query result with matching events
|
|
313
|
+
*
|
|
314
|
+
* @example
|
|
315
|
+
* ```typescript
|
|
316
|
+
* // Get all NodeCreated events
|
|
317
|
+
* const result = await chain.queryEvents({
|
|
318
|
+
* type: 'NodeCreated',
|
|
319
|
+
* limit: 50,
|
|
320
|
+
* includeProof: true
|
|
321
|
+
* });
|
|
322
|
+
*
|
|
323
|
+
* for (const event of result.events) {
|
|
324
|
+
* console.log(event.envelope.payload);
|
|
325
|
+
* }
|
|
326
|
+
* ```
|
|
327
|
+
*/
|
|
328
|
+
async queryEvents(options) {
|
|
329
|
+
let events = Array.from(this.events.values());
|
|
330
|
+
if (options.type) {
|
|
331
|
+
events = events.filter((e) => e.envelope.payload.type === options.type);
|
|
332
|
+
}
|
|
333
|
+
if (options.author) {
|
|
334
|
+
events = events.filter((e) => e.envelope.author === options.author);
|
|
335
|
+
}
|
|
336
|
+
if (options.since) {
|
|
337
|
+
events = events.filter(
|
|
338
|
+
(e) => this.compareHLC(e.envelope.hlc, options.since) > 0
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
if (options.until) {
|
|
342
|
+
events = events.filter(
|
|
343
|
+
(e) => this.compareHLC(e.envelope.hlc, options.until) < 0
|
|
344
|
+
);
|
|
345
|
+
}
|
|
346
|
+
events.sort((a, b) => this.compareHLC(a.envelope.hlc, b.envelope.hlc));
|
|
347
|
+
const totalCount = events.length;
|
|
348
|
+
const limit = options.limit || 100;
|
|
349
|
+
const hasMore = totalCount > limit;
|
|
350
|
+
events = events.slice(0, limit);
|
|
351
|
+
let proofs;
|
|
352
|
+
if (options.includeProof) {
|
|
353
|
+
proofs = /* @__PURE__ */ new Map();
|
|
354
|
+
for (const event of events) {
|
|
355
|
+
proofs.set(event.id, this.generateMerkleProof(event.id));
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return {
|
|
359
|
+
events,
|
|
360
|
+
proofs,
|
|
361
|
+
totalCount,
|
|
362
|
+
hasMore
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Generate a Merkle proof for an event
|
|
367
|
+
*
|
|
368
|
+
* @param eventId - Event ID to generate proof for
|
|
369
|
+
* @returns Merkle proof structure
|
|
370
|
+
*/
|
|
371
|
+
generateMerkleProof(eventId) {
|
|
372
|
+
const eventIds = Array.from(this.events.keys()).sort();
|
|
373
|
+
const index = eventIds.indexOf(eventId);
|
|
374
|
+
const path = [];
|
|
375
|
+
const directions = [];
|
|
376
|
+
if (index > 0) {
|
|
377
|
+
path.push(blake3Hash(eventIds[index - 1]));
|
|
378
|
+
directions.push("left");
|
|
379
|
+
}
|
|
380
|
+
if (index < eventIds.length - 1) {
|
|
381
|
+
path.push(blake3Hash(eventIds[index + 1]));
|
|
382
|
+
directions.push("right");
|
|
383
|
+
}
|
|
384
|
+
const root = blake3Hash(eventIds.join(":"));
|
|
385
|
+
return { eventId, path, directions, root };
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Verify a Merkle proof
|
|
389
|
+
*
|
|
390
|
+
* @param proof - Proof to verify
|
|
391
|
+
* @returns Whether the proof is valid
|
|
392
|
+
*/
|
|
393
|
+
verifyMerkleProof(proof) {
|
|
394
|
+
const checkpoint = this.getLatestCheckpoint();
|
|
395
|
+
return checkpoint ? proof.root === checkpoint.eventRoot : false;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Get chain statistics
|
|
399
|
+
*
|
|
400
|
+
* @returns Current chain statistics
|
|
401
|
+
*/
|
|
402
|
+
getStats() {
|
|
403
|
+
const eventsByType = {};
|
|
404
|
+
const authors = /* @__PURE__ */ new Set();
|
|
405
|
+
let lastEventTime;
|
|
406
|
+
for (const event of this.events.values()) {
|
|
407
|
+
const type = event.envelope.payload.type;
|
|
408
|
+
eventsByType[type] = (eventsByType[type] || 0) + 1;
|
|
409
|
+
authors.add(event.envelope.author);
|
|
410
|
+
const eventTime = new Date(event.envelope.hlc.physicalMs);
|
|
411
|
+
if (!lastEventTime || eventTime > lastEventTime) {
|
|
412
|
+
lastEventTime = eventTime;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return {
|
|
416
|
+
totalEvents: this.events.size,
|
|
417
|
+
checkpointHeight: this.checkpoints.length,
|
|
418
|
+
uniqueAuthors: authors.size,
|
|
419
|
+
eventsByType,
|
|
420
|
+
lastEventTime,
|
|
421
|
+
status: "healthy"
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Get configuration
|
|
426
|
+
*
|
|
427
|
+
* @returns Current configuration (copy)
|
|
428
|
+
*/
|
|
429
|
+
getConfig() {
|
|
430
|
+
return { ...this.config };
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Clear all events (for testing)
|
|
434
|
+
*
|
|
435
|
+
* Resets the chain to initial state.
|
|
436
|
+
*/
|
|
437
|
+
clear() {
|
|
438
|
+
this.events.clear();
|
|
439
|
+
this.tips.clear();
|
|
440
|
+
this.checkpoints = [];
|
|
441
|
+
this.eventsSinceCheckpoint = 0;
|
|
442
|
+
this.hlc = { physicalMs: Date.now(), logical: 0 };
|
|
443
|
+
logger.info("Audit chain cleared");
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Export chain data
|
|
447
|
+
*
|
|
448
|
+
* Exports all events, checkpoints, and tips for backup or sync.
|
|
449
|
+
*
|
|
450
|
+
* @returns Exported chain data
|
|
451
|
+
*/
|
|
452
|
+
export() {
|
|
453
|
+
return {
|
|
454
|
+
events: Array.from(this.events.values()),
|
|
455
|
+
checkpoints: [...this.checkpoints],
|
|
456
|
+
tips: this.getTips()
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Import chain data
|
|
461
|
+
*
|
|
462
|
+
* Imports events from external source, validating each.
|
|
463
|
+
*
|
|
464
|
+
* @param data - Data to import
|
|
465
|
+
* @returns Import statistics
|
|
466
|
+
*
|
|
467
|
+
* @example
|
|
468
|
+
* ```typescript
|
|
469
|
+
* const exported = sourceChain.export();
|
|
470
|
+
* const { imported, rejected } = await targetChain.import(exported);
|
|
471
|
+
* console.log(`Imported ${imported} events, rejected ${rejected}`);
|
|
472
|
+
* ```
|
|
473
|
+
*/
|
|
474
|
+
async import(data) {
|
|
475
|
+
let imported = 0;
|
|
476
|
+
let rejected = 0;
|
|
477
|
+
const sortedEvents = [...data.events].sort(
|
|
478
|
+
(a, b) => this.compareHLC(a.envelope.hlc, b.envelope.hlc)
|
|
479
|
+
);
|
|
480
|
+
for (const event of sortedEvents) {
|
|
481
|
+
const validation = await this.validateAndInsert(event);
|
|
482
|
+
if (validation.valid) {
|
|
483
|
+
imported++;
|
|
484
|
+
} else {
|
|
485
|
+
rejected++;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
if (data.checkpoints) {
|
|
489
|
+
this.checkpoints = data.checkpoints;
|
|
490
|
+
}
|
|
491
|
+
logger.info("Imported chain data", { imported, rejected });
|
|
492
|
+
return { imported, rejected };
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
function createAuditChain(config) {
|
|
496
|
+
return new AuditChain(config);
|
|
497
|
+
}
|
|
498
|
+
export {
|
|
499
|
+
AuditChain,
|
|
500
|
+
createAuditChain
|
|
501
|
+
};
|
|
502
|
+
//# sourceMappingURL=audit-chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-chain.js","sources":["../../../src/audit/services/audit-chain.ts"],"sourcesContent":["/**\n * Audit Chain Service\n *\n * Implements deterministic logging with:\n * - DAG (Directed Acyclic Graph) structure for event ordering\n * - Hybrid Logical Clocks (HLC) for distributed ordering\n * - BLAKE3 hashing for event IDs\n * - Ed25519 signatures for authenticity\n *\n * @module audit/services/audit-chain\n */\n\nimport type {\n Blake3Hash,\n Ed25519Signature,\n Did,\n HybridLogicalClock,\n KnowledgeGraphEventPayload,\n EventEnvelope,\n LedgerEvent,\n Checkpoint,\n MerkleProof,\n EventQueryOptions,\n EventQueryResult,\n ChainStats,\n EventValidation,\n} from '../types.js';\nimport type { AuditChainConfig } from '../config.js';\nimport {\n createAuditChainConfig,\n validateAuditChainConfig,\n} from '../config.js';\nimport { createLogger } from '../../utils/index.js';\n\nconst logger = createLogger('audit-chain');\n\n/**\n * Simple BLAKE3-like hash (in production, use actual BLAKE3)\n * This is a placeholder - real implementation would use @noble/hashes or similar\n *\n * @param data - Data to hash\n * @returns 64-character hex hash string\n */\nfunction blake3Hash(data: string): Blake3Hash {\n // Simplified hash for demo - use real BLAKE3 in production\n let hash = 0;\n for (let i = 0; i < data.length; i++) {\n const char = data.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return Math.abs(hash).toString(16).padStart(64, '0');\n}\n\n/**\n * Simple Ed25519-like signature (in production, use actual Ed25519)\n * This is a placeholder - real implementation would use @noble/ed25519\n *\n * @param data - Data to sign\n * @param _privateKey - Private key for signing\n * @returns 128-character hex signature string\n */\nfunction signData(data: string, _privateKey?: string): Ed25519Signature {\n // Simplified signature for demo - use real Ed25519 in production\n const hash = blake3Hash(data + (_privateKey || 'default-key'));\n return hash + hash.split('').reverse().join('');\n}\n\n/**\n * Verify signature (simplified)\n *\n * @param _data - Original data\n * @param _signature - Signature to verify\n * @param _publicKey - Public key for verification\n * @returns Whether signature is valid\n */\nfunction verifySignature(\n _data: string,\n _signature: Ed25519Signature,\n _publicKey?: string\n): boolean {\n // In production, use actual Ed25519 verification\n return true;\n}\n\n/**\n * Canonical CBOR-like serialization (simplified JSON for demo)\n *\n * @param obj - Object to serialize\n * @returns Canonical string representation\n */\nfunction canonicalSerialize(obj: unknown): string {\n return JSON.stringify(obj, Object.keys(obj as object).sort());\n}\n\n/**\n * Audit Chain class\n *\n * Provides:\n * - Event creation and signing\n * - DAG-based event storage\n * - HLC-based ordering\n * - Checkpoint creation\n * - Event querying with Merkle proofs\n *\n * @example\n * ```typescript\n * const chain = createAuditChain({ agentDid: 'did:key:abc123' });\n *\n * // Append an event\n * const event = await chain.appendEvent({\n * type: 'NodeCreated',\n * nodeId: 'node-1',\n * nodeType: 'Document',\n * properties: { title: 'My Doc' }\n * });\n *\n * // Query events\n * const result = await chain.queryEvents({ type: 'NodeCreated', limit: 10 });\n * ```\n */\nexport class AuditChain {\n private config: AuditChainConfig;\n private events: Map<Blake3Hash, LedgerEvent> = new Map();\n private tips: Set<Blake3Hash> = new Set(); // Current DAG tips\n private hlc: HybridLogicalClock;\n private checkpoints: Checkpoint[] = [];\n private eventsSinceCheckpoint: number = 0;\n\n /**\n * Create a new AuditChain instance\n *\n * @param config - Partial configuration (merged with defaults)\n */\n constructor(config?: Partial<AuditChainConfig>) {\n const baseConfig = createAuditChainConfig();\n this.config = { ...baseConfig, ...config };\n\n const validation = validateAuditChainConfig(this.config);\n if (!validation.valid) {\n logger.warn('Invalid configuration', { errors: validation.errors });\n }\n\n // Initialize HLC\n this.hlc = {\n physicalMs: Date.now(),\n logical: 0,\n };\n\n logger.info('Audit chain initialized', {\n agentDid: this.config.agentDid,\n backend: this.config.backend,\n });\n }\n\n /**\n * Tick the HLC and return new timestamp\n *\n * Implements the HLC tick algorithm:\n * - If physical time has advanced, reset logical counter\n * - Otherwise, increment logical counter\n *\n * @returns New HLC timestamp\n */\n private tickHLC(): HybridLogicalClock {\n const now = Date.now();\n\n if (now > this.hlc.physicalMs) {\n this.hlc = { physicalMs: now, logical: 0 };\n } else {\n this.hlc = {\n physicalMs: this.hlc.physicalMs,\n logical: this.hlc.logical + 1,\n };\n }\n\n return { ...this.hlc };\n }\n\n /**\n * Update HLC based on received event\n *\n * Implements the HLC receive algorithm:\n * - Take max of local, remote, and current time\n * - Adjust logical counter appropriately\n *\n * @param received - HLC from received event\n */\n private updateHLC(received: HybridLogicalClock): void {\n const now = Date.now();\n const maxPhysical = Math.max(\n now,\n this.hlc.physicalMs,\n received.physicalMs\n );\n\n if (\n maxPhysical === this.hlc.physicalMs &&\n maxPhysical === received.physicalMs\n ) {\n this.hlc = {\n physicalMs: maxPhysical,\n logical: Math.max(this.hlc.logical, received.logical) + 1,\n };\n } else if (maxPhysical === this.hlc.physicalMs) {\n this.hlc = { physicalMs: maxPhysical, logical: this.hlc.logical + 1 };\n } else if (maxPhysical === received.physicalMs) {\n this.hlc = { physicalMs: maxPhysical, logical: received.logical + 1 };\n } else {\n this.hlc = { physicalMs: maxPhysical, logical: 0 };\n }\n }\n\n /**\n * Compare two HLCs\n *\n * @param a - First HLC\n * @param b - Second HLC\n * @returns Negative if a < b, positive if a > b, zero if equal\n */\n private compareHLC(a: HybridLogicalClock, b: HybridLogicalClock): number {\n if (a.physicalMs !== b.physicalMs) {\n return a.physicalMs - b.physicalMs;\n }\n return a.logical - b.logical;\n }\n\n /**\n * Get current DAG tips (events with no children)\n *\n * Tips are the \"leaf\" events in the DAG that have not been\n * referenced as parents by any other event.\n *\n * @returns Array of tip event IDs\n */\n getTips(): Blake3Hash[] {\n return Array.from(this.tips);\n }\n\n /**\n * Append an event to the chain\n *\n * Creates a new event with:\n * - Current tips as parents (DAG structure)\n * - New HLC timestamp\n * - Signature for authenticity\n *\n * @param payload - Event payload to append\n * @returns The created ledger event\n *\n * @example\n * ```typescript\n * const event = await chain.appendEvent({\n * type: 'NodeCreated',\n * nodeId: 'doc-1',\n * nodeType: 'Document',\n * properties: { title: 'README' }\n * });\n * console.log('Event ID:', event.id);\n * ```\n */\n async appendEvent(\n payload: KnowledgeGraphEventPayload\n ): Promise<LedgerEvent> {\n // Get current tips as parents\n const parents = this.getTips();\n\n // Tick HLC\n const hlc = this.tickHLC();\n\n // Create envelope\n const envelope: EventEnvelope = {\n parents,\n hlc,\n author: this.config.agentDid,\n payload,\n };\n\n // Compute event ID (BLAKE3 hash of canonical envelope)\n const serialized = canonicalSerialize(envelope);\n const eventId = blake3Hash(serialized);\n\n // Sign event ID\n const signature = signData(eventId, this.config.privateKey);\n\n // Create event\n const event: LedgerEvent = {\n id: eventId,\n envelope,\n signature,\n };\n\n // Store event\n this.events.set(eventId, event);\n\n // Update tips: remove parents from tips, add new event\n for (const parent of parents) {\n this.tips.delete(parent);\n }\n this.tips.add(eventId);\n\n // Track events since checkpoint\n this.eventsSinceCheckpoint++;\n\n // Create checkpoint if needed\n if (this.eventsSinceCheckpoint >= this.config.checkpointInterval) {\n await this.createCheckpoint();\n }\n\n logger.debug('Appended event', {\n eventId,\n type: payload.type,\n parents: parents.length,\n });\n\n return event;\n }\n\n /**\n * Validate and insert an external event\n *\n * Performs validation:\n * - Signature verification\n * - Parent existence check\n * - Causality verification (HLC ordering)\n * - Event ID recomputation\n *\n * @param event - External event to validate and insert\n * @returns Validation result with details\n *\n * @example\n * ```typescript\n * const validation = await chain.validateAndInsert(externalEvent);\n * if (validation.valid) {\n * console.log('Event inserted successfully');\n * } else {\n * console.error('Validation failed:', validation.errors);\n * }\n * ```\n */\n async validateAndInsert(event: LedgerEvent): Promise<EventValidation> {\n const errors: string[] = [];\n\n // Verify signature\n const signatureValid = verifySignature(event.id, event.signature);\n if (!signatureValid) {\n errors.push('Invalid signature');\n }\n\n // Check parents exist\n let parentsExist = true;\n for (const parentId of event.envelope.parents) {\n if (!this.events.has(parentId)) {\n parentsExist = false;\n errors.push(`Parent not found: ${parentId}`);\n }\n }\n\n // Check causality (event HLC must be > all parent HLCs)\n let causalityValid = true;\n for (const parentId of event.envelope.parents) {\n const parent = this.events.get(parentId);\n if (\n parent &&\n this.compareHLC(event.envelope.hlc, parent.envelope.hlc) <= 0\n ) {\n causalityValid = false;\n errors.push('Causality violation: event HLC not greater than parent');\n }\n }\n\n // Recompute event ID\n const serialized = canonicalSerialize(event.envelope);\n const expectedId = blake3Hash(serialized);\n if (event.id !== expectedId) {\n errors.push('Event ID mismatch');\n }\n\n const validation: EventValidation = {\n valid: errors.length === 0,\n errors,\n signatureValid,\n causalityValid,\n parentsExist,\n };\n\n // Insert if valid\n if (validation.valid) {\n this.events.set(event.id, event);\n this.updateHLC(event.envelope.hlc);\n\n // Update tips\n for (const parent of event.envelope.parents) {\n this.tips.delete(parent);\n }\n this.tips.add(event.id);\n\n this.eventsSinceCheckpoint++;\n logger.debug('Inserted external event', { eventId: event.id });\n } else {\n logger.warn('Rejected invalid event', { eventId: event.id, errors });\n }\n\n return validation;\n }\n\n /**\n * Create a checkpoint\n *\n * Checkpoints provide:\n * - Periodic state snapshots\n * - Efficient verification of chain integrity\n * - Recovery points for sync\n *\n * @returns The created checkpoint\n */\n async createCheckpoint(): Promise<Checkpoint> {\n const height = this.checkpoints.length;\n\n // Compute event root (simplified - real impl would use MMR)\n const eventIds = Array.from(this.events.keys()).sort();\n const eventRoot = blake3Hash(eventIds.join(':'));\n\n // Compute state root (simplified)\n const stateRoot = blake3Hash(JSON.stringify(this.getStats()));\n\n const checkpoint: Checkpoint = {\n height,\n eventRoot,\n stateRoot,\n timestamp: new Date(),\n validatorSignatures: [\n {\n validatorDid: this.config.agentDid,\n signature: signData(eventRoot + stateRoot, this.config.privateKey),\n },\n ],\n };\n\n this.checkpoints.push(checkpoint);\n this.eventsSinceCheckpoint = 0;\n\n // Log checkpoint event\n await this.appendEvent({\n type: 'CheckpointCreated',\n height,\n eventRoot,\n stateRoot,\n });\n\n logger.info('Created checkpoint', { height, eventCount: this.events.size });\n return checkpoint;\n }\n\n /**\n * Get the latest checkpoint\n *\n * @returns The most recent checkpoint, or null if none exist\n */\n getLatestCheckpoint(): Checkpoint | null {\n return this.checkpoints[this.checkpoints.length - 1] || null;\n }\n\n /**\n * Get an event by ID\n *\n * @param eventId - Event ID to look up\n * @returns The event, or null if not found\n */\n getEvent(eventId: Blake3Hash): LedgerEvent | null {\n return this.events.get(eventId) || null;\n }\n\n /**\n * Query events\n *\n * Supports filtering by:\n * - Event type\n * - Author DID\n * - Time range (HLC)\n * - With optional Merkle proofs\n *\n * @param options - Query options\n * @returns Query result with matching events\n *\n * @example\n * ```typescript\n * // Get all NodeCreated events\n * const result = await chain.queryEvents({\n * type: 'NodeCreated',\n * limit: 50,\n * includeProof: true\n * });\n *\n * for (const event of result.events) {\n * console.log(event.envelope.payload);\n * }\n * ```\n */\n async queryEvents(options: EventQueryOptions): Promise<EventQueryResult> {\n let events = Array.from(this.events.values());\n\n // Filter by type\n if (options.type) {\n events = events.filter((e) => e.envelope.payload.type === options.type);\n }\n\n // Filter by author\n if (options.author) {\n events = events.filter((e) => e.envelope.author === options.author);\n }\n\n // Filter by time range\n if (options.since) {\n events = events.filter(\n (e) => this.compareHLC(e.envelope.hlc, options.since!) > 0\n );\n }\n if (options.until) {\n events = events.filter(\n (e) => this.compareHLC(e.envelope.hlc, options.until!) < 0\n );\n }\n\n // Sort by HLC\n events.sort((a, b) => this.compareHLC(a.envelope.hlc, b.envelope.hlc));\n\n const totalCount = events.length;\n const limit = options.limit || 100;\n const hasMore = totalCount > limit;\n events = events.slice(0, limit);\n\n // Generate proofs if requested\n let proofs: Map<Blake3Hash, MerkleProof> | undefined;\n if (options.includeProof) {\n proofs = new Map();\n for (const event of events) {\n proofs.set(event.id, this.generateMerkleProof(event.id));\n }\n }\n\n return {\n events,\n proofs,\n totalCount,\n hasMore,\n };\n }\n\n /**\n * Generate a Merkle proof for an event\n *\n * @param eventId - Event ID to generate proof for\n * @returns Merkle proof structure\n */\n private generateMerkleProof(eventId: Blake3Hash): MerkleProof {\n // Simplified proof - real impl would use proper Merkle tree\n const eventIds = Array.from(this.events.keys()).sort();\n const index = eventIds.indexOf(eventId);\n\n const path: Blake3Hash[] = [];\n const directions: ('left' | 'right')[] = [];\n\n // Generate sibling hashes (simplified)\n if (index > 0) {\n path.push(blake3Hash(eventIds[index - 1]));\n directions.push('left');\n }\n if (index < eventIds.length - 1) {\n path.push(blake3Hash(eventIds[index + 1]));\n directions.push('right');\n }\n\n const root = blake3Hash(eventIds.join(':'));\n\n return { eventId, path, directions, root };\n }\n\n /**\n * Verify a Merkle proof\n *\n * @param proof - Proof to verify\n * @returns Whether the proof is valid\n */\n verifyMerkleProof(proof: MerkleProof): boolean {\n // Simplified verification - real impl would recompute root\n const checkpoint = this.getLatestCheckpoint();\n return checkpoint ? proof.root === checkpoint.eventRoot : false;\n }\n\n /**\n * Get chain statistics\n *\n * @returns Current chain statistics\n */\n getStats(): ChainStats {\n const eventsByType: Record<string, number> = {};\n const authors = new Set<Did>();\n let lastEventTime: Date | undefined;\n\n for (const event of this.events.values()) {\n const type = event.envelope.payload.type;\n eventsByType[type] = (eventsByType[type] || 0) + 1;\n authors.add(event.envelope.author);\n\n const eventTime = new Date(event.envelope.hlc.physicalMs);\n if (!lastEventTime || eventTime > lastEventTime) {\n lastEventTime = eventTime;\n }\n }\n\n return {\n totalEvents: this.events.size,\n checkpointHeight: this.checkpoints.length,\n uniqueAuthors: authors.size,\n eventsByType,\n lastEventTime,\n status: 'healthy',\n };\n }\n\n /**\n * Get configuration\n *\n * @returns Current configuration (copy)\n */\n getConfig(): AuditChainConfig {\n return { ...this.config };\n }\n\n /**\n * Clear all events (for testing)\n *\n * Resets the chain to initial state.\n */\n clear(): void {\n this.events.clear();\n this.tips.clear();\n this.checkpoints = [];\n this.eventsSinceCheckpoint = 0;\n this.hlc = { physicalMs: Date.now(), logical: 0 };\n logger.info('Audit chain cleared');\n }\n\n /**\n * Export chain data\n *\n * Exports all events, checkpoints, and tips for backup or sync.\n *\n * @returns Exported chain data\n */\n export(): {\n events: LedgerEvent[];\n checkpoints: Checkpoint[];\n tips: Blake3Hash[];\n } {\n return {\n events: Array.from(this.events.values()),\n checkpoints: [...this.checkpoints],\n tips: this.getTips(),\n };\n }\n\n /**\n * Import chain data\n *\n * Imports events from external source, validating each.\n *\n * @param data - Data to import\n * @returns Import statistics\n *\n * @example\n * ```typescript\n * const exported = sourceChain.export();\n * const { imported, rejected } = await targetChain.import(exported);\n * console.log(`Imported ${imported} events, rejected ${rejected}`);\n * ```\n */\n async import(data: {\n events: LedgerEvent[];\n checkpoints?: Checkpoint[];\n }): Promise<{ imported: number; rejected: number }> {\n let imported = 0;\n let rejected = 0;\n\n // Sort events by HLC\n const sortedEvents = [...data.events].sort((a, b) =>\n this.compareHLC(a.envelope.hlc, b.envelope.hlc)\n );\n\n for (const event of sortedEvents) {\n const validation = await this.validateAndInsert(event);\n if (validation.valid) {\n imported++;\n } else {\n rejected++;\n }\n }\n\n if (data.checkpoints) {\n this.checkpoints = data.checkpoints;\n }\n\n logger.info('Imported chain data', { imported, rejected });\n return { imported, rejected };\n }\n}\n\n/**\n * Create an audit chain instance\n *\n * Factory function for creating AuditChain instances.\n *\n * @param config - Optional configuration overrides\n * @returns New AuditChain instance\n *\n * @example\n * ```typescript\n * // Create with defaults\n * const chain = createAuditChain();\n *\n * // Create with custom config\n * const chain = createAuditChain({\n * agentDid: 'did:key:myagent',\n * backend: 'sqlite',\n * sqlitePath: './audit.db'\n * });\n * ```\n */\nexport function createAuditChain(\n config?: Partial<AuditChainConfig>\n): AuditChain {\n return new AuditChain(config);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit Services
|
|
3
|
+
*
|
|
4
|
+
* Exports all audit service modules for the append-only
|
|
5
|
+
* cryptographic audit ledger system.
|
|
6
|
+
*
|
|
7
|
+
* @module audit/services
|
|
8
|
+
*/
|
|
9
|
+
export * from './audit-chain.js';
|
|
10
|
+
export * from './syndication.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audit/services/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
|