symbiote-cli 0.1.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/LICENSE +21 -0
- package/dist/bin/symbiote.d.ts +3 -0
- package/dist/bin/symbiote.d.ts.map +1 -0
- package/dist/bin/symbiote.js +202 -0
- package/dist/bin/symbiote.js.map +1 -0
- package/dist/bin/synapse.d.ts +3 -0
- package/dist/bin/synapse.d.ts.map +1 -0
- package/dist/bin/synapse.js +369 -0
- package/dist/bin/synapse.js.map +1 -0
- package/dist/src/brain/embeddings.d.ts +9 -0
- package/dist/src/brain/embeddings.d.ts.map +1 -0
- package/dist/src/brain/embeddings.js +24 -0
- package/dist/src/brain/embeddings.js.map +1 -0
- package/dist/src/brain/health/constraint-checker.d.ts +16 -0
- package/dist/src/brain/health/constraint-checker.d.ts.map +1 -0
- package/dist/src/brain/health/constraint-checker.js +93 -0
- package/dist/src/brain/health/constraint-checker.js.map +1 -0
- package/dist/src/brain/health/coupling-analyzer.d.ts +9 -0
- package/dist/src/brain/health/coupling-analyzer.d.ts.map +1 -0
- package/dist/src/brain/health/coupling-analyzer.js +105 -0
- package/dist/src/brain/health/coupling-analyzer.js.map +1 -0
- package/dist/src/brain/health/cycle-detector.d.ts +12 -0
- package/dist/src/brain/health/cycle-detector.d.ts.map +1 -0
- package/dist/src/brain/health/cycle-detector.js +79 -0
- package/dist/src/brain/health/cycle-detector.js.map +1 -0
- package/dist/src/brain/health/dead-code-detector.d.ts +9 -0
- package/dist/src/brain/health/dead-code-detector.d.ts.map +1 -0
- package/dist/src/brain/health/dead-code-detector.js +72 -0
- package/dist/src/brain/health/dead-code-detector.js.map +1 -0
- package/dist/src/brain/health/history.d.ts +21 -0
- package/dist/src/brain/health/history.d.ts.map +1 -0
- package/dist/src/brain/health/history.js +35 -0
- package/dist/src/brain/health/history.js.map +1 -0
- package/dist/src/brain/health/index.d.ts +25 -0
- package/dist/src/brain/health/index.d.ts.map +1 -0
- package/dist/src/brain/health/index.js +76 -0
- package/dist/src/brain/health/index.js.map +1 -0
- package/dist/src/brain/health/scorer.d.ts +19 -0
- package/dist/src/brain/health/scorer.d.ts.map +1 -0
- package/dist/src/brain/health/scorer.js +47 -0
- package/dist/src/brain/health/scorer.js.map +1 -0
- package/dist/src/brain/health/types.d.ts +67 -0
- package/dist/src/brain/health/types.d.ts.map +1 -0
- package/dist/src/brain/health/types.js +2 -0
- package/dist/src/brain/health/types.js.map +1 -0
- package/dist/src/brain/health.d.ts +30 -0
- package/dist/src/brain/health.d.ts.map +1 -0
- package/dist/src/brain/health.js +147 -0
- package/dist/src/brain/health.js.map +1 -0
- package/dist/src/brain/index.d.ts +3 -0
- package/dist/src/brain/index.d.ts.map +1 -0
- package/dist/src/brain/index.js +3 -0
- package/dist/src/brain/index.js.map +1 -0
- package/dist/src/brain/intent.d.ts +31 -0
- package/dist/src/brain/intent.d.ts.map +1 -0
- package/dist/src/brain/intent.js +120 -0
- package/dist/src/brain/intent.js.map +1 -0
- package/dist/src/commands/dna.d.ts +2 -0
- package/dist/src/commands/dna.d.ts.map +1 -0
- package/dist/src/commands/dna.js +128 -0
- package/dist/src/commands/dna.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +6 -0
- package/dist/src/commands/hooks.d.ts.map +1 -0
- package/dist/src/commands/hooks.js +210 -0
- package/dist/src/commands/hooks.js.map +1 -0
- package/dist/src/commands/impact.d.ts +2 -0
- package/dist/src/commands/impact.d.ts.map +1 -0
- package/dist/src/commands/impact.js +50 -0
- package/dist/src/commands/impact.js.map +1 -0
- package/dist/src/commands/index.d.ts +9 -0
- package/dist/src/commands/index.d.ts.map +1 -0
- package/dist/src/commands/index.js +9 -0
- package/dist/src/commands/index.js.map +1 -0
- package/dist/src/commands/init.d.ts +2 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +132 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/install.d.ts +2 -0
- package/dist/src/commands/install.d.ts.map +1 -0
- package/dist/src/commands/install.js +67 -0
- package/dist/src/commands/install.js.map +1 -0
- package/dist/src/commands/mcp.d.ts +2 -0
- package/dist/src/commands/mcp.d.ts.map +1 -0
- package/dist/src/commands/mcp.js +51 -0
- package/dist/src/commands/mcp.js.map +1 -0
- package/dist/src/commands/scan.d.ts +2 -0
- package/dist/src/commands/scan.d.ts.map +1 -0
- package/dist/src/commands/scan.js +46 -0
- package/dist/src/commands/scan.js.map +1 -0
- package/dist/src/commands/serve.d.ts +2 -0
- package/dist/src/commands/serve.d.ts.map +1 -0
- package/dist/src/commands/serve.js +93 -0
- package/dist/src/commands/serve.js.map +1 -0
- package/dist/src/commands/shared.d.ts +11 -0
- package/dist/src/commands/shared.d.ts.map +1 -0
- package/dist/src/commands/shared.js +137 -0
- package/dist/src/commands/shared.js.map +1 -0
- package/dist/src/commands/unbond.d.ts +2 -0
- package/dist/src/commands/unbond.d.ts.map +1 -0
- package/dist/src/commands/unbond.js +29 -0
- package/dist/src/commands/unbond.js.map +1 -0
- package/dist/src/core/algorithms.d.ts +19 -0
- package/dist/src/core/algorithms.d.ts.map +1 -0
- package/dist/src/core/algorithms.js +98 -0
- package/dist/src/core/algorithms.js.map +1 -0
- package/dist/src/core/embeddings.d.ts +12 -0
- package/dist/src/core/embeddings.d.ts.map +1 -0
- package/dist/src/core/embeddings.js +64 -0
- package/dist/src/core/embeddings.js.map +1 -0
- package/dist/src/core/git-impact.d.ts +25 -0
- package/dist/src/core/git-impact.d.ts.map +1 -0
- package/dist/src/core/git-impact.js +97 -0
- package/dist/src/core/git-impact.js.map +1 -0
- package/dist/src/core/graph-builder.d.ts +5 -0
- package/dist/src/core/graph-builder.d.ts.map +1 -0
- package/dist/src/core/graph-builder.js +88 -0
- package/dist/src/core/graph-builder.js.map +1 -0
- package/dist/src/core/graph.d.ts +34 -0
- package/dist/src/core/graph.d.ts.map +1 -0
- package/dist/src/core/graph.js +95 -0
- package/dist/src/core/graph.js.map +1 -0
- package/dist/src/core/impact.d.ts +22 -0
- package/dist/src/core/impact.d.ts.map +1 -0
- package/dist/src/core/impact.js +68 -0
- package/dist/src/core/impact.js.map +1 -0
- package/dist/src/core/languages.d.ts +4 -0
- package/dist/src/core/languages.d.ts.map +1 -0
- package/dist/src/core/languages.js +59 -0
- package/dist/src/core/languages.js.map +1 -0
- package/dist/src/core/parser.d.ts +16 -0
- package/dist/src/core/parser.d.ts.map +1 -0
- package/dist/src/core/parser.js +689 -0
- package/dist/src/core/parser.js.map +1 -0
- package/dist/src/core/scanner.d.ts +26 -0
- package/dist/src/core/scanner.d.ts.map +1 -0
- package/dist/src/core/scanner.js +87 -0
- package/dist/src/core/scanner.js.map +1 -0
- package/dist/src/core/search.d.ts +34 -0
- package/dist/src/core/search.d.ts.map +1 -0
- package/dist/src/core/search.js +146 -0
- package/dist/src/core/search.js.map +1 -0
- package/dist/src/core/types.d.ts +29 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +12 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/cortex/engine.d.ts +10 -0
- package/dist/src/cortex/engine.d.ts.map +1 -0
- package/dist/src/cortex/engine.js +93 -0
- package/dist/src/cortex/engine.js.map +1 -0
- package/dist/src/cortex/index.d.ts +13 -0
- package/dist/src/cortex/index.d.ts.map +1 -0
- package/dist/src/cortex/index.js +12 -0
- package/dist/src/cortex/index.js.map +1 -0
- package/dist/src/cortex/patterns.d.ts +63 -0
- package/dist/src/cortex/patterns.d.ts.map +1 -0
- package/dist/src/cortex/patterns.js +242 -0
- package/dist/src/cortex/patterns.js.map +1 -0
- package/dist/src/cortex/pgq-queries.d.ts +11 -0
- package/dist/src/cortex/pgq-queries.d.ts.map +1 -0
- package/dist/src/cortex/pgq-queries.js +23 -0
- package/dist/src/cortex/pgq-queries.js.map +1 -0
- package/dist/src/cortex/pgq.d.ts +5 -0
- package/dist/src/cortex/pgq.d.ts.map +1 -0
- package/dist/src/cortex/pgq.js +54 -0
- package/dist/src/cortex/pgq.js.map +1 -0
- package/dist/src/cortex/real-time-enrichment.d.ts +20 -0
- package/dist/src/cortex/real-time-enrichment.d.ts.map +1 -0
- package/dist/src/cortex/real-time-enrichment.js +96 -0
- package/dist/src/cortex/real-time-enrichment.js.map +1 -0
- package/dist/src/cortex/repository.d.ts +231 -0
- package/dist/src/cortex/repository.d.ts.map +1 -0
- package/dist/src/cortex/repository.js +1078 -0
- package/dist/src/cortex/repository.js.map +1 -0
- package/dist/src/cortex/schema.d.ts +9 -0
- package/dist/src/cortex/schema.d.ts.map +1 -0
- package/dist/src/cortex/schema.js +364 -0
- package/dist/src/cortex/schema.js.map +1 -0
- package/dist/src/cortex/stage-0-structure.d.ts +7 -0
- package/dist/src/cortex/stage-0-structure.d.ts.map +1 -0
- package/dist/src/cortex/stage-0-structure.js +119 -0
- package/dist/src/cortex/stage-0-structure.js.map +1 -0
- package/dist/src/cortex/stage-1-symbols.d.ts +7 -0
- package/dist/src/cortex/stage-1-symbols.d.ts.map +1 -0
- package/dist/src/cortex/stage-1-symbols.js +605 -0
- package/dist/src/cortex/stage-1-symbols.js.map +1 -0
- package/dist/src/cortex/stage-2-resolution.d.ts +7 -0
- package/dist/src/cortex/stage-2-resolution.d.ts.map +1 -0
- package/dist/src/cortex/stage-2-resolution.js +469 -0
- package/dist/src/cortex/stage-2-resolution.js.map +1 -0
- package/dist/src/cortex/stage-3-callgraph.d.ts +7 -0
- package/dist/src/cortex/stage-3-callgraph.d.ts.map +1 -0
- package/dist/src/cortex/stage-3-callgraph.js +323 -0
- package/dist/src/cortex/stage-3-callgraph.js.map +1 -0
- package/dist/src/cortex/stage-4-types.d.ts +7 -0
- package/dist/src/cortex/stage-4-types.d.ts.map +1 -0
- package/dist/src/cortex/stage-4-types.js +462 -0
- package/dist/src/cortex/stage-4-types.js.map +1 -0
- package/dist/src/cortex/stage-5-flow.d.ts +7 -0
- package/dist/src/cortex/stage-5-flow.d.ts.map +1 -0
- package/dist/src/cortex/stage-5-flow.js +702 -0
- package/dist/src/cortex/stage-5-flow.js.map +1 -0
- package/dist/src/cortex/stage-6-topology.d.ts +15 -0
- package/dist/src/cortex/stage-6-topology.d.ts.map +1 -0
- package/dist/src/cortex/stage-6-topology.js +382 -0
- package/dist/src/cortex/stage-6-topology.js.map +1 -0
- package/dist/src/cortex/stage-7-intelligence.d.ts +34 -0
- package/dist/src/cortex/stage-7-intelligence.d.ts.map +1 -0
- package/dist/src/cortex/stage-7-intelligence.js +258 -0
- package/dist/src/cortex/stage-7-intelligence.js.map +1 -0
- package/dist/src/cortex/topology-types.d.ts +78 -0
- package/dist/src/cortex/topology-types.d.ts.map +1 -0
- package/dist/src/cortex/topology-types.js +2 -0
- package/dist/src/cortex/topology-types.js.map +1 -0
- package/dist/src/cortex/types.d.ts +250 -0
- package/dist/src/cortex/types.d.ts.map +1 -0
- package/dist/src/cortex/types.js +2 -0
- package/dist/src/cortex/types.js.map +1 -0
- package/dist/src/dna/embeddings.d.ts +10 -0
- package/dist/src/dna/embeddings.d.ts.map +1 -0
- package/dist/src/dna/embeddings.js +46 -0
- package/dist/src/dna/embeddings.js.map +1 -0
- package/dist/src/dna/engine.d.ts +30 -0
- package/dist/src/dna/engine.d.ts.map +1 -0
- package/dist/src/dna/engine.js +254 -0
- package/dist/src/dna/engine.js.map +1 -0
- package/dist/src/dna/index.d.ts +5 -0
- package/dist/src/dna/index.d.ts.map +1 -0
- package/dist/src/dna/index.js +5 -0
- package/dist/src/dna/index.js.map +1 -0
- package/dist/src/dna/storage.d.ts +19 -0
- package/dist/src/dna/storage.d.ts.map +1 -0
- package/dist/src/dna/storage.js +112 -0
- package/dist/src/dna/storage.js.map +1 -0
- package/dist/src/dna/types.d.ts +38 -0
- package/dist/src/dna/types.d.ts.map +1 -0
- package/dist/src/dna/types.js +114 -0
- package/dist/src/dna/types.js.map +1 -0
- package/dist/src/events/bus.d.ts +10 -0
- package/dist/src/events/bus.d.ts.map +1 -0
- package/dist/src/events/bus.js +36 -0
- package/dist/src/events/bus.js.map +1 -0
- package/dist/src/events/ipc.d.ts +3 -0
- package/dist/src/events/ipc.d.ts.map +1 -0
- package/dist/src/events/ipc.js +25 -0
- package/dist/src/events/ipc.js.map +1 -0
- package/dist/src/events/session.d.ts +21 -0
- package/dist/src/events/session.d.ts.map +1 -0
- package/dist/src/events/session.js +39 -0
- package/dist/src/events/session.js.map +1 -0
- package/dist/src/events/types.d.ts +15 -0
- package/dist/src/events/types.d.ts.map +1 -0
- package/dist/src/events/types.js +26 -0
- package/dist/src/events/types.js.map +1 -0
- package/dist/src/hooks/attention.d.ts +26 -0
- package/dist/src/hooks/attention.d.ts.map +1 -0
- package/dist/src/hooks/attention.js +90 -0
- package/dist/src/hooks/attention.js.map +1 -0
- package/dist/src/hooks/handlers/post-tool-use-failure.d.ts +20 -0
- package/dist/src/hooks/handlers/post-tool-use-failure.d.ts.map +1 -0
- package/dist/src/hooks/handlers/post-tool-use-failure.js +60 -0
- package/dist/src/hooks/handlers/post-tool-use-failure.js.map +1 -0
- package/dist/src/hooks/handlers/post-tool-use.d.ts +22 -0
- package/dist/src/hooks/handlers/post-tool-use.d.ts.map +1 -0
- package/dist/src/hooks/handlers/post-tool-use.js +96 -0
- package/dist/src/hooks/handlers/post-tool-use.js.map +1 -0
- package/dist/src/hooks/handlers/pre-compact.d.ts +17 -0
- package/dist/src/hooks/handlers/pre-compact.d.ts.map +1 -0
- package/dist/src/hooks/handlers/pre-compact.js +28 -0
- package/dist/src/hooks/handlers/pre-compact.js.map +1 -0
- package/dist/src/hooks/handlers/pre-tool-use.d.ts +32 -0
- package/dist/src/hooks/handlers/pre-tool-use.d.ts.map +1 -0
- package/dist/src/hooks/handlers/pre-tool-use.js +219 -0
- package/dist/src/hooks/handlers/pre-tool-use.js.map +1 -0
- package/dist/src/hooks/handlers/session-end.d.ts +18 -0
- package/dist/src/hooks/handlers/session-end.d.ts.map +1 -0
- package/dist/src/hooks/handlers/session-end.js +42 -0
- package/dist/src/hooks/handlers/session-end.js.map +1 -0
- package/dist/src/hooks/handlers/session-start.d.ts +25 -0
- package/dist/src/hooks/handlers/session-start.d.ts.map +1 -0
- package/dist/src/hooks/handlers/session-start.js +61 -0
- package/dist/src/hooks/handlers/session-start.js.map +1 -0
- package/dist/src/hooks/handlers/stop.d.ts +21 -0
- package/dist/src/hooks/handlers/stop.d.ts.map +1 -0
- package/dist/src/hooks/handlers/stop.js +40 -0
- package/dist/src/hooks/handlers/stop.js.map +1 -0
- package/dist/src/hooks/handlers/subagent-start.d.ts +17 -0
- package/dist/src/hooks/handlers/subagent-start.d.ts.map +1 -0
- package/dist/src/hooks/handlers/subagent-start.js +48 -0
- package/dist/src/hooks/handlers/subagent-start.js.map +1 -0
- package/dist/src/hooks/handlers/user-prompt-submit.d.ts +12 -0
- package/dist/src/hooks/handlers/user-prompt-submit.d.ts.map +1 -0
- package/dist/src/hooks/handlers/user-prompt-submit.js +31 -0
- package/dist/src/hooks/handlers/user-prompt-submit.js.map +1 -0
- package/dist/src/hooks/index.d.ts +14 -0
- package/dist/src/hooks/index.d.ts.map +1 -0
- package/dist/src/hooks/index.js +13 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/post-tool-use.d.ts +12 -0
- package/dist/src/hooks/post-tool-use.d.ts.map +1 -0
- package/dist/src/hooks/post-tool-use.js +33 -0
- package/dist/src/hooks/post-tool-use.js.map +1 -0
- package/dist/src/hooks/pre-tool-use.d.ts +24 -0
- package/dist/src/hooks/pre-tool-use.d.ts.map +1 -0
- package/dist/src/hooks/pre-tool-use.js +117 -0
- package/dist/src/hooks/pre-tool-use.js.map +1 -0
- package/dist/src/hooks/session-store.d.ts +55 -0
- package/dist/src/hooks/session-store.d.ts.map +1 -0
- package/dist/src/hooks/session-store.js +69 -0
- package/dist/src/hooks/session-store.js.map +1 -0
- package/dist/src/hooks/types.d.ts +67 -0
- package/dist/src/hooks/types.d.ts.map +1 -0
- package/dist/src/hooks/types.js +28 -0
- package/dist/src/hooks/types.js.map +1 -0
- package/dist/src/index.d.ts +16 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +16 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/init/agent-connector.d.ts +43 -0
- package/dist/src/init/agent-connector.d.ts.map +1 -0
- package/dist/src/init/agent-connector.js +338 -0
- package/dist/src/init/agent-connector.js.map +1 -0
- package/dist/src/init/dna-bootstrap.d.ts +10 -0
- package/dist/src/init/dna-bootstrap.d.ts.map +1 -0
- package/dist/src/init/dna-bootstrap.js +32 -0
- package/dist/src/init/dna-bootstrap.js.map +1 -0
- package/dist/src/init/index.d.ts +29 -0
- package/dist/src/init/index.d.ts.map +1 -0
- package/dist/src/init/index.js +81 -0
- package/dist/src/init/index.js.map +1 -0
- package/dist/src/init/overview-generator.d.ts +5 -0
- package/dist/src/init/overview-generator.d.ts.map +1 -0
- package/dist/src/init/overview-generator.js +85 -0
- package/dist/src/init/overview-generator.js.map +1 -0
- package/dist/src/init/parsers/eslint-config.d.ts +10 -0
- package/dist/src/init/parsers/eslint-config.d.ts.map +1 -0
- package/dist/src/init/parsers/eslint-config.js +50 -0
- package/dist/src/init/parsers/eslint-config.js.map +1 -0
- package/dist/src/init/parsers/markdown-rules.d.ts +3 -0
- package/dist/src/init/parsers/markdown-rules.d.ts.map +1 -0
- package/dist/src/init/parsers/markdown-rules.js +90 -0
- package/dist/src/init/parsers/markdown-rules.js.map +1 -0
- package/dist/src/init/parsers/package-json.d.ts +17 -0
- package/dist/src/init/parsers/package-json.d.ts.map +1 -0
- package/dist/src/init/parsers/package-json.js +75 -0
- package/dist/src/init/parsers/package-json.js.map +1 -0
- package/dist/src/init/parsers/prettier-config.d.ts +16 -0
- package/dist/src/init/parsers/prettier-config.d.ts.map +1 -0
- package/dist/src/init/parsers/prettier-config.js +30 -0
- package/dist/src/init/parsers/prettier-config.js.map +1 -0
- package/dist/src/init/parsers/tsconfig.d.ts +32 -0
- package/dist/src/init/parsers/tsconfig.d.ts.map +1 -0
- package/dist/src/init/parsers/tsconfig.js +64 -0
- package/dist/src/init/parsers/tsconfig.js.map +1 -0
- package/dist/src/init/parsers/types.d.ts +27 -0
- package/dist/src/init/parsers/types.d.ts.map +1 -0
- package/dist/src/init/parsers/types.js +2 -0
- package/dist/src/init/parsers/types.js.map +1 -0
- package/dist/src/init/project-analyzer.d.ts +3 -0
- package/dist/src/init/project-analyzer.d.ts.map +1 -0
- package/dist/src/init/project-analyzer.js +102 -0
- package/dist/src/init/project-analyzer.js.map +1 -0
- package/dist/src/init/rule-importer.d.ts +3 -0
- package/dist/src/init/rule-importer.d.ts.map +1 -0
- package/dist/src/init/rule-importer.js +101 -0
- package/dist/src/init/rule-importer.js.map +1 -0
- package/dist/src/mcp/context.d.ts +43 -0
- package/dist/src/mcp/context.d.ts.map +1 -0
- package/dist/src/mcp/context.js +167 -0
- package/dist/src/mcp/context.js.map +1 -0
- package/dist/src/mcp/http-api.d.ts +10 -0
- package/dist/src/mcp/http-api.d.ts.map +1 -0
- package/dist/src/mcp/http-api.js +580 -0
- package/dist/src/mcp/http-api.js.map +1 -0
- package/dist/src/mcp/index.d.ts +8 -0
- package/dist/src/mcp/index.d.ts.map +1 -0
- package/dist/src/mcp/index.js +8 -0
- package/dist/src/mcp/index.js.map +1 -0
- package/dist/src/mcp/resources.d.ts +5 -0
- package/dist/src/mcp/resources.d.ts.map +1 -0
- package/dist/src/mcp/resources.js +78 -0
- package/dist/src/mcp/resources.js.map +1 -0
- package/dist/src/mcp/server.d.ts +6 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +265 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/tool-response.d.ts +6 -0
- package/dist/src/mcp/tool-response.d.ts.map +1 -0
- package/dist/src/mcp/tool-response.js +19 -0
- package/dist/src/mcp/tool-response.js.map +1 -0
- package/dist/src/mcp/tools/architecture-tools.d.ts +15 -0
- package/dist/src/mcp/tools/architecture-tools.d.ts.map +1 -0
- package/dist/src/mcp/tools/architecture-tools.js +56 -0
- package/dist/src/mcp/tools/architecture-tools.js.map +1 -0
- package/dist/src/mcp/tools/dna-tools.d.ts +21 -0
- package/dist/src/mcp/tools/dna-tools.d.ts.map +1 -0
- package/dist/src/mcp/tools/dna-tools.js +15 -0
- package/dist/src/mcp/tools/dna-tools.js.map +1 -0
- package/dist/src/mcp/tools/graph-tools.d.ts +49 -0
- package/dist/src/mcp/tools/graph-tools.d.ts.map +1 -0
- package/dist/src/mcp/tools/graph-tools.js +45 -0
- package/dist/src/mcp/tools/graph-tools.js.map +1 -0
- package/dist/src/mcp/tools/health-tools.d.ts +5 -0
- package/dist/src/mcp/tools/health-tools.d.ts.map +1 -0
- package/dist/src/mcp/tools/health-tools.js +7 -0
- package/dist/src/mcp/tools/health-tools.js.map +1 -0
- package/dist/src/mcp/tools/impact-tools.d.ts +21 -0
- package/dist/src/mcp/tools/impact-tools.d.ts.map +1 -0
- package/dist/src/mcp/tools/impact-tools.js +23 -0
- package/dist/src/mcp/tools/impact-tools.js.map +1 -0
- package/dist/src/mcp/tools/intent-tools.d.ts +32 -0
- package/dist/src/mcp/tools/intent-tools.d.ts.map +1 -0
- package/dist/src/mcp/tools/intent-tools.js +77 -0
- package/dist/src/mcp/tools/intent-tools.js.map +1 -0
- package/dist/src/mcp/tools/project-tools.d.ts +53 -0
- package/dist/src/mcp/tools/project-tools.d.ts.map +1 -0
- package/dist/src/mcp/tools/project-tools.js +91 -0
- package/dist/src/mcp/tools/project-tools.js.map +1 -0
- package/dist/src/mcp/tools/rename-tool.d.ts +25 -0
- package/dist/src/mcp/tools/rename-tool.d.ts.map +1 -0
- package/dist/src/mcp/tools/rename-tool.js +106 -0
- package/dist/src/mcp/tools/rename-tool.js.map +1 -0
- package/dist/src/mcp/tools/trace-tools.d.ts +4 -0
- package/dist/src/mcp/tools/trace-tools.d.ts.map +1 -0
- package/dist/src/mcp/tools/trace-tools.js +268 -0
- package/dist/src/mcp/tools/trace-tools.js.map +1 -0
- package/dist/src/storage/db.d.ts +13 -0
- package/dist/src/storage/db.d.ts.map +1 -0
- package/dist/src/storage/db.js +230 -0
- package/dist/src/storage/db.js.map +1 -0
- package/dist/src/storage/repository.d.ts +54 -0
- package/dist/src/storage/repository.d.ts.map +1 -0
- package/dist/src/storage/repository.js +257 -0
- package/dist/src/storage/repository.js.map +1 -0
- package/dist/src/utils/config.d.ts +18 -0
- package/dist/src/utils/config.d.ts.map +1 -0
- package/dist/src/utils/config.js +93 -0
- package/dist/src/utils/config.js.map +1 -0
- package/dist/src/utils/files.d.ts +3 -0
- package/dist/src/utils/files.d.ts.map +1 -0
- package/dist/src/utils/files.js +52 -0
- package/dist/src/utils/files.js.map +1 -0
- package/dist/src/utils/strings.d.ts +2 -0
- package/dist/src/utils/strings.d.ts.map +1 -0
- package/dist/src/utils/strings.js +11 -0
- package/dist/src/utils/strings.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/hooks/post-tool-use.sh +37 -0
- package/hooks/pre-tool-use.sh +43 -0
- package/hooks/session-start.sh +67 -0
- package/package.json +103 -0
- package/skills/symbiote-init/SKILL.md +104 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
export const DNA_CATEGORIES = ['style', 'preferences', 'anti-patterns', 'decisions'];
|
|
2
|
+
export const DNA_STATUSES = ['suggested', 'approved', 'rejected'];
|
|
3
|
+
export function parseFrontmatter(raw) {
|
|
4
|
+
if (!raw || !raw.startsWith('---'))
|
|
5
|
+
return null;
|
|
6
|
+
const endIndex = raw.indexOf('---', 3);
|
|
7
|
+
if (endIndex === -1)
|
|
8
|
+
return null;
|
|
9
|
+
const frontmatterBlock = raw.slice(3, endIndex).trim();
|
|
10
|
+
const content = raw.slice(endIndex + 3).trim();
|
|
11
|
+
const frontmatter = parseYamlBlock(frontmatterBlock);
|
|
12
|
+
if (!frontmatter || !frontmatter.id)
|
|
13
|
+
return null;
|
|
14
|
+
return {
|
|
15
|
+
frontmatter: {
|
|
16
|
+
id: String(frontmatter.id),
|
|
17
|
+
confidence: Number(frontmatter.confidence ?? 0.3),
|
|
18
|
+
source: frontmatter.source ?? 'correction',
|
|
19
|
+
status: frontmatter.status ?? 'suggested',
|
|
20
|
+
category: frontmatter.category ?? 'style',
|
|
21
|
+
firstSeen: stripQuotes(String(frontmatter.firstSeen ?? new Date().toISOString().split('T')[0])),
|
|
22
|
+
lastSeen: stripQuotes(String(frontmatter.lastSeen ?? new Date().toISOString().split('T')[0])),
|
|
23
|
+
occurrences: Number(frontmatter.occurrences ?? 1),
|
|
24
|
+
sessionIds: frontmatter.sessionIds ?? [],
|
|
25
|
+
},
|
|
26
|
+
content,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export function serializeEntry(entry) {
|
|
30
|
+
const fm = entry.frontmatter;
|
|
31
|
+
const lines = [
|
|
32
|
+
'---',
|
|
33
|
+
`id: ${fm.id}`,
|
|
34
|
+
`confidence: ${fm.confidence}`,
|
|
35
|
+
`source: ${fm.source}`,
|
|
36
|
+
`status: ${fm.status}`,
|
|
37
|
+
`category: ${fm.category}`,
|
|
38
|
+
`firstSeen: "${fm.firstSeen}"`,
|
|
39
|
+
`lastSeen: "${fm.lastSeen}"`,
|
|
40
|
+
`occurrences: ${fm.occurrences}`,
|
|
41
|
+
];
|
|
42
|
+
if (fm.sessionIds.length > 0) {
|
|
43
|
+
lines.push('sessionIds:');
|
|
44
|
+
for (const sid of fm.sessionIds) {
|
|
45
|
+
lines.push(` - "${sid}"`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
lines.push('sessionIds: []');
|
|
50
|
+
}
|
|
51
|
+
lines.push('---', '', entry.content, '');
|
|
52
|
+
return lines.join('\n');
|
|
53
|
+
}
|
|
54
|
+
function stripQuotes(s) {
|
|
55
|
+
if ((s.startsWith('"') && s.endsWith('"')) || (s.startsWith("'") && s.endsWith("'"))) {
|
|
56
|
+
return s.slice(1, -1);
|
|
57
|
+
}
|
|
58
|
+
return s;
|
|
59
|
+
}
|
|
60
|
+
export function parseYamlBlock(block) {
|
|
61
|
+
const result = {};
|
|
62
|
+
const lines = block.split('\n');
|
|
63
|
+
let currentArrayKey = null;
|
|
64
|
+
let currentArray = [];
|
|
65
|
+
for (const line of lines) {
|
|
66
|
+
const trimmed = line.trim();
|
|
67
|
+
if (!trimmed)
|
|
68
|
+
continue;
|
|
69
|
+
if (trimmed.startsWith('- ')) {
|
|
70
|
+
if (currentArrayKey) {
|
|
71
|
+
currentArray.push(stripQuotes(trimmed.slice(2).trim()));
|
|
72
|
+
}
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (currentArrayKey) {
|
|
76
|
+
result[currentArrayKey] = currentArray;
|
|
77
|
+
currentArrayKey = null;
|
|
78
|
+
currentArray = [];
|
|
79
|
+
}
|
|
80
|
+
const colonIndex = trimmed.indexOf(':');
|
|
81
|
+
if (colonIndex === -1)
|
|
82
|
+
continue;
|
|
83
|
+
const key = trimmed.slice(0, colonIndex).trim();
|
|
84
|
+
const value = trimmed.slice(colonIndex + 1).trim();
|
|
85
|
+
if (value === '' || value === '[]') {
|
|
86
|
+
if (value === '[]') {
|
|
87
|
+
result[key] = [];
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
currentArrayKey = key;
|
|
91
|
+
currentArray = [];
|
|
92
|
+
}
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const stripped = stripQuotes(value);
|
|
96
|
+
if (/^\d{4}-\d{2}-\d{2}/.test(stripped)) {
|
|
97
|
+
result[key] = stripped;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const num = Number(value);
|
|
101
|
+
if (!isNaN(num) && value !== '') {
|
|
102
|
+
result[key] = num;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
result[key] = stripped;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (currentArrayKey) {
|
|
110
|
+
result[currentArrayKey] = currentArray;
|
|
111
|
+
}
|
|
112
|
+
return Object.keys(result).length > 0 ? result : null;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dna/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SymbioteEvent, EventType } from './types.js';
|
|
2
|
+
type EventHandler = (event: SymbioteEvent) => void;
|
|
3
|
+
export declare class EventBus {
|
|
4
|
+
private handlers;
|
|
5
|
+
on(type: EventType | '*', handler: EventHandler): void;
|
|
6
|
+
off(type: EventType | '*', handler: EventHandler): void;
|
|
7
|
+
emit(event: SymbioteEvent): void;
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../../src/events/bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE3D,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAEnD,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAwC;IAExD,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAMtD,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIvD,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAwBnC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export class EventBus {
|
|
2
|
+
handlers = new Map();
|
|
3
|
+
on(type, handler) {
|
|
4
|
+
const set = this.handlers.get(type) ?? new Set();
|
|
5
|
+
set.add(handler);
|
|
6
|
+
this.handlers.set(type, set);
|
|
7
|
+
}
|
|
8
|
+
off(type, handler) {
|
|
9
|
+
this.handlers.get(type)?.delete(handler);
|
|
10
|
+
}
|
|
11
|
+
emit(event) {
|
|
12
|
+
const typed = this.handlers.get(event.type);
|
|
13
|
+
const wildcard = this.handlers.get('*');
|
|
14
|
+
if (typed) {
|
|
15
|
+
for (const handler of [...typed]) {
|
|
16
|
+
try {
|
|
17
|
+
handler(event);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
console.error('[symbiote] EventBus handler error:', err);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (wildcard) {
|
|
25
|
+
for (const handler of [...wildcard]) {
|
|
26
|
+
try {
|
|
27
|
+
handler(event);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error('[symbiote] EventBus handler error:', err);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../../../src/events/bus.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,QAAQ;IACT,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAExD,EAAE,CAAC,IAAqB,EAAE,OAAqB;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,IAAqB,EAAE,OAAqB;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,KAAoB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACX,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../../src/events/ipc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B3E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import http from 'node:http';
|
|
2
|
+
export function sendEvent(event, port) {
|
|
3
|
+
return new Promise((resolve) => {
|
|
4
|
+
const body = JSON.stringify(event);
|
|
5
|
+
const req = http.request({
|
|
6
|
+
hostname: '127.0.0.1',
|
|
7
|
+
port,
|
|
8
|
+
path: '/internal/events',
|
|
9
|
+
method: 'POST',
|
|
10
|
+
headers: {
|
|
11
|
+
'Content-Type': 'application/json',
|
|
12
|
+
'Content-Length': Buffer.byteLength(body),
|
|
13
|
+
},
|
|
14
|
+
timeout: 1000,
|
|
15
|
+
}, () => resolve());
|
|
16
|
+
req.on('error', () => resolve());
|
|
17
|
+
req.on('timeout', () => {
|
|
18
|
+
req.destroy();
|
|
19
|
+
resolve();
|
|
20
|
+
});
|
|
21
|
+
req.write(body);
|
|
22
|
+
req.end();
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ipc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc.js","sourceRoot":"","sources":["../../../src/events/ipc.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,MAAM,UAAU,SAAS,CAAC,KAAoB,EAAE,IAAY;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACpB;YACI,QAAQ,EAAE,WAAW;YACrB,IAAI;YACJ,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;aAC5C;YACD,OAAO,EAAE,IAAI;SAChB,EACD,GAAG,EAAE,CAAC,OAAO,EAAE,CAClB,CAAC;QAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACjC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACnB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SymbioteEvent } from './types.js';
|
|
2
|
+
export interface Session {
|
|
3
|
+
id: string;
|
|
4
|
+
startedAt: number;
|
|
5
|
+
lastEventAt: number;
|
|
6
|
+
filesTouched: Set<string>;
|
|
7
|
+
eventCount: number;
|
|
8
|
+
}
|
|
9
|
+
export interface SessionSummary {
|
|
10
|
+
sessionId: string | null;
|
|
11
|
+
filesTouched: string[];
|
|
12
|
+
eventCount: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class SessionTracker {
|
|
15
|
+
private session;
|
|
16
|
+
processEvent(event: SymbioteEvent): void;
|
|
17
|
+
currentSession(): Session | null;
|
|
18
|
+
summary(): SessionSummary;
|
|
19
|
+
currentSessionId(): string | null;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/events/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACtB;AAID,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAwB;IAEvC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAsBxC,cAAc,IAAI,OAAO,GAAG,IAAI;IAIhC,OAAO,IAAI,cAAc;IAWzB,gBAAgB,IAAI,MAAM,GAAG,IAAI;CAGpC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
const SESSION_TIMEOUT_MS = 30 * 60 * 1000;
|
|
2
|
+
export class SessionTracker {
|
|
3
|
+
session = null;
|
|
4
|
+
processEvent(event) {
|
|
5
|
+
const now = event.timestamp;
|
|
6
|
+
if (!this.session || now - this.session.lastEventAt > SESSION_TIMEOUT_MS) {
|
|
7
|
+
this.session = {
|
|
8
|
+
id: `session-${now}`,
|
|
9
|
+
startedAt: now,
|
|
10
|
+
lastEventAt: now,
|
|
11
|
+
filesTouched: new Set(),
|
|
12
|
+
eventCount: 0,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
this.session.lastEventAt = now;
|
|
16
|
+
this.session.eventCount++;
|
|
17
|
+
const filePath = event.data.filePath;
|
|
18
|
+
if (filePath) {
|
|
19
|
+
this.session.filesTouched.add(filePath);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
currentSession() {
|
|
23
|
+
return this.session;
|
|
24
|
+
}
|
|
25
|
+
summary() {
|
|
26
|
+
if (!this.session) {
|
|
27
|
+
return { sessionId: null, filesTouched: [], eventCount: 0 };
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
sessionId: this.session.id,
|
|
31
|
+
filesTouched: [...this.session.filesTouched],
|
|
32
|
+
eventCount: this.session.eventCount,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
currentSessionId() {
|
|
36
|
+
return this.session?.id ?? null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/events/session.ts"],"names":[],"mappings":"AAgBA,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1C,MAAM,OAAO,cAAc;IACf,OAAO,GAAmB,IAAI,CAAC;IAEvC,YAAY,CAAC,KAAoB;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,kBAAkB,EAAE,CAAC;YACvE,IAAI,CAAC,OAAO,GAAG;gBACX,EAAE,EAAE,WAAW,GAAG,EAAE;gBACpB,SAAS,EAAE,GAAG;gBACd,WAAW,EAAE,GAAG;gBAChB,YAAY,EAAE,IAAI,GAAG,EAAE;gBACvB,UAAU,EAAE,CAAC;aAChB,CAAC;QACN,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QAChE,CAAC;QACD,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC5C,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;SACtC,CAAC;IACN,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC;IACpC,CAAC;CACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const EVENT_TYPES: readonly ["file:read", "file:edit", "file:create", "node:reindexed", "scan:complete", "correction:detected", "dna:recorded", "dna:promoted", "context:cluster", "constraint:violated", "impact:ripple", "connection:restored", "topology:complete", "intelligence:finding", "intelligence:snapshot", "attention:updated"];
|
|
2
|
+
export type EventType = (typeof EVENT_TYPES)[number];
|
|
3
|
+
export interface EventData {
|
|
4
|
+
filePath?: string;
|
|
5
|
+
nodeIds?: string[];
|
|
6
|
+
toolName?: string;
|
|
7
|
+
metadata?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface SymbioteEvent {
|
|
10
|
+
type: EventType;
|
|
11
|
+
timestamp: number;
|
|
12
|
+
data: EventData;
|
|
13
|
+
}
|
|
14
|
+
export declare function createEvent(type: EventType, data: EventData): SymbioteEvent;
|
|
15
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,2TAiBd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,aAAa,CAM3E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const EVENT_TYPES = [
|
|
2
|
+
'file:read',
|
|
3
|
+
'file:edit',
|
|
4
|
+
'file:create',
|
|
5
|
+
'node:reindexed',
|
|
6
|
+
'scan:complete',
|
|
7
|
+
'correction:detected',
|
|
8
|
+
'dna:recorded',
|
|
9
|
+
'dna:promoted',
|
|
10
|
+
'context:cluster',
|
|
11
|
+
'constraint:violated',
|
|
12
|
+
'impact:ripple',
|
|
13
|
+
'connection:restored',
|
|
14
|
+
'topology:complete',
|
|
15
|
+
'intelligence:finding',
|
|
16
|
+
'intelligence:snapshot',
|
|
17
|
+
'attention:updated',
|
|
18
|
+
];
|
|
19
|
+
export function createEvent(type, data) {
|
|
20
|
+
return {
|
|
21
|
+
type,
|
|
22
|
+
timestamp: Date.now(),
|
|
23
|
+
data,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/events/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,WAAW;IACX,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,qBAAqB;IACrB,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,qBAAqB;IACrB,eAAe;IACf,qBAAqB;IACrB,mBAAmB;IACnB,sBAAsB;IACtB,uBAAuB;IACvB,mBAAmB;CACb,CAAC;AAiBX,MAAM,UAAU,WAAW,CAAC,IAAe,EAAE,IAAe;IACxD,OAAO;QACH,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,IAAI;KACP,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface AttentionEntry {
|
|
2
|
+
lastAccess: number;
|
|
3
|
+
accessCount: number;
|
|
4
|
+
}
|
|
5
|
+
export interface AttentionSnapshot {
|
|
6
|
+
filesModified: string[];
|
|
7
|
+
symbolsChanged: string[];
|
|
8
|
+
activeAttention: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class AttentionSet {
|
|
11
|
+
private files;
|
|
12
|
+
private symbols;
|
|
13
|
+
private tickCount;
|
|
14
|
+
touchFile(filePath: string): void;
|
|
15
|
+
touchSymbol(symbolId: string): void;
|
|
16
|
+
getFile(filePath: string): AttentionEntry | undefined;
|
|
17
|
+
getSymbol(symbolId: string): AttentionEntry | undefined;
|
|
18
|
+
tick(): void;
|
|
19
|
+
topFiles(n: number): string[];
|
|
20
|
+
activeDirectory(): string;
|
|
21
|
+
allFiles(): string[];
|
|
22
|
+
allSymbols(): string[];
|
|
23
|
+
toSnapshot(): AttentionSnapshot;
|
|
24
|
+
clear(): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=attention.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attention.d.ts","sourceRoot":"","sources":["../../../src/hooks/attention.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAID,qBAAa,YAAY;IACrB,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,SAAS,CAAa;IAE9B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUjC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUnC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIrD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIvD,IAAI,IAAI,IAAI;IAcZ,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAO7B,eAAe,IAAI,MAAM;IAoBzB,QAAQ,IAAI,MAAM,EAAE;IAIpB,UAAU,IAAI,MAAM,EAAE;IAItB,UAAU,IAAI,iBAAiB;IAQ/B,KAAK,IAAI,IAAI;CAKhB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
const DECAY_THRESHOLD = 50;
|
|
3
|
+
export class AttentionSet {
|
|
4
|
+
files = new Map();
|
|
5
|
+
symbols = new Map();
|
|
6
|
+
tickCount = 0;
|
|
7
|
+
touchFile(filePath) {
|
|
8
|
+
const entry = this.files.get(filePath);
|
|
9
|
+
if (entry) {
|
|
10
|
+
entry.lastAccess = this.tickCount;
|
|
11
|
+
entry.accessCount += 1;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
this.files.set(filePath, { lastAccess: this.tickCount, accessCount: 1 });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
touchSymbol(symbolId) {
|
|
18
|
+
const entry = this.symbols.get(symbolId);
|
|
19
|
+
if (entry) {
|
|
20
|
+
entry.lastAccess = this.tickCount;
|
|
21
|
+
entry.accessCount += 1;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
this.symbols.set(symbolId, { lastAccess: this.tickCount, accessCount: 1 });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
getFile(filePath) {
|
|
28
|
+
return this.files.get(filePath);
|
|
29
|
+
}
|
|
30
|
+
getSymbol(symbolId) {
|
|
31
|
+
return this.symbols.get(symbolId);
|
|
32
|
+
}
|
|
33
|
+
tick() {
|
|
34
|
+
this.tickCount += 1;
|
|
35
|
+
for (const [key, entry] of this.files) {
|
|
36
|
+
if (this.tickCount - entry.lastAccess > DECAY_THRESHOLD) {
|
|
37
|
+
this.files.delete(key);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
for (const [key, entry] of this.symbols) {
|
|
41
|
+
if (this.tickCount - entry.lastAccess > DECAY_THRESHOLD) {
|
|
42
|
+
this.symbols.delete(key);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
topFiles(n) {
|
|
47
|
+
return Array.from(this.files.entries())
|
|
48
|
+
.sort((a, b) => b[1].accessCount - a[1].accessCount)
|
|
49
|
+
.slice(0, n)
|
|
50
|
+
.map(([filePath]) => filePath);
|
|
51
|
+
}
|
|
52
|
+
activeDirectory() {
|
|
53
|
+
if (this.files.size === 0) {
|
|
54
|
+
return '';
|
|
55
|
+
}
|
|
56
|
+
const counts = new Map();
|
|
57
|
+
for (const filePath of this.files.keys()) {
|
|
58
|
+
const dir = path.dirname(filePath) + '/';
|
|
59
|
+
counts.set(dir, (counts.get(dir) ?? 0) + 1);
|
|
60
|
+
}
|
|
61
|
+
let best = '';
|
|
62
|
+
let bestCount = 0;
|
|
63
|
+
for (const [dir, count] of counts) {
|
|
64
|
+
if (count > bestCount) {
|
|
65
|
+
bestCount = count;
|
|
66
|
+
best = dir;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return best;
|
|
70
|
+
}
|
|
71
|
+
allFiles() {
|
|
72
|
+
return Array.from(this.files.keys());
|
|
73
|
+
}
|
|
74
|
+
allSymbols() {
|
|
75
|
+
return Array.from(this.symbols.keys());
|
|
76
|
+
}
|
|
77
|
+
toSnapshot() {
|
|
78
|
+
return {
|
|
79
|
+
filesModified: this.allFiles(),
|
|
80
|
+
symbolsChanged: this.allSymbols(),
|
|
81
|
+
activeAttention: this.activeDirectory(),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
clear() {
|
|
85
|
+
this.files.clear();
|
|
86
|
+
this.symbols.clear();
|
|
87
|
+
this.tickCount = 0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=attention.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attention.js","sourceRoot":"","sources":["../../../src/hooks/attention.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PostToolUseFailurePayload, HttpHookResponse } from '#hooks/types.js';
|
|
2
|
+
import type { SessionStore } from '#hooks/session-store.js';
|
|
3
|
+
import type { AttentionSet } from '#hooks/attention.js';
|
|
4
|
+
import type { GraphInstance } from '#core/types.js';
|
|
5
|
+
import { EventBus } from '#events/bus.js';
|
|
6
|
+
export interface PostToolUseFailureHandlerConfig {
|
|
7
|
+
sessionStore: SessionStore;
|
|
8
|
+
attention: AttentionSet;
|
|
9
|
+
eventBus: EventBus;
|
|
10
|
+
graph: GraphInstance;
|
|
11
|
+
projectRoot: string;
|
|
12
|
+
sessionId: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class PostToolUseFailureHandler {
|
|
15
|
+
private config;
|
|
16
|
+
constructor(config: PostToolUseFailureHandlerConfig);
|
|
17
|
+
handle(payload: PostToolUseFailurePayload): Promise<HttpHookResponse>;
|
|
18
|
+
private processPayload;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=post-tool-use-failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-tool-use-failure.d.ts","sourceRoot":"","sources":["../../../../src/hooks/handlers/post-tool-use-failure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,WAAW,+BAA+B;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,YAAY,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAsBD,qBAAa,yBAAyB;IAClC,OAAO,CAAC,MAAM,CAAkC;gBAEpC,MAAM,EAAE,+BAA+B;IAI7C,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAU7D,cAAc;CAkC/B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { createEvent } from '#events/types.js';
|
|
3
|
+
function toRelative(projectRoot, filePath) {
|
|
4
|
+
return path.isAbsolute(filePath) ? path.relative(projectRoot, filePath) : filePath;
|
|
5
|
+
}
|
|
6
|
+
function collectSymbolIds(graph, fileNodeId) {
|
|
7
|
+
if (!graph.hasNode(fileNodeId)) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
const symbols = [];
|
|
11
|
+
graph.forEachOutEdge(fileNodeId, (_edge, attrs, _source, target) => {
|
|
12
|
+
if (attrs.type === 'contains') {
|
|
13
|
+
symbols.push(target);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
return symbols;
|
|
17
|
+
}
|
|
18
|
+
export class PostToolUseFailureHandler {
|
|
19
|
+
config;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.config = config;
|
|
22
|
+
}
|
|
23
|
+
async handle(payload) {
|
|
24
|
+
try {
|
|
25
|
+
await this.processPayload(payload);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Hooks must never fail
|
|
29
|
+
}
|
|
30
|
+
return {};
|
|
31
|
+
}
|
|
32
|
+
async processPayload(payload) {
|
|
33
|
+
const rawPath = typeof payload.tool_input.file_path === 'string'
|
|
34
|
+
? payload.tool_input.file_path
|
|
35
|
+
: undefined;
|
|
36
|
+
let relativePath;
|
|
37
|
+
let symbolIds = [];
|
|
38
|
+
if (rawPath) {
|
|
39
|
+
relativePath = toRelative(this.config.projectRoot, rawPath);
|
|
40
|
+
symbolIds = collectSymbolIds(this.config.graph, `file:${relativePath}`);
|
|
41
|
+
this.config.attention.touchFile(relativePath);
|
|
42
|
+
}
|
|
43
|
+
await this.config.sessionStore.recordObservation({
|
|
44
|
+
sessionId: this.config.sessionId,
|
|
45
|
+
timestamp: Date.now(),
|
|
46
|
+
toolName: payload.tool_name,
|
|
47
|
+
event: 'tool_failure',
|
|
48
|
+
filePath: relativePath,
|
|
49
|
+
symbolsAffected: symbolIds.length > 0 ? symbolIds : undefined,
|
|
50
|
+
metadata: { error: payload.error },
|
|
51
|
+
});
|
|
52
|
+
this.config.eventBus.emit(createEvent('intelligence:finding', {
|
|
53
|
+
filePath: relativePath,
|
|
54
|
+
nodeIds: symbolIds.length > 0 ? symbolIds : undefined,
|
|
55
|
+
toolName: payload.tool_name,
|
|
56
|
+
metadata: { error: payload.error },
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=post-tool-use-failure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-tool-use-failure.js","sourceRoot":"","sources":["../../../../src/hooks/handlers/post-tool-use-failure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PostToolUsePayload, HttpHookResponse } from '#hooks/types.js';
|
|
2
|
+
import type { SessionStore } from '#hooks/session-store.js';
|
|
3
|
+
import type { AttentionSet } from '#hooks/attention.js';
|
|
4
|
+
import type { GraphInstance } from '#core/types.js';
|
|
5
|
+
import { EventBus } from '#events/bus.js';
|
|
6
|
+
export interface PostToolUseHandlerConfig {
|
|
7
|
+
projectRoot: string;
|
|
8
|
+
onReindexFile: (relativePath: string) => Promise<void>;
|
|
9
|
+
onFullRescan: () => Promise<void>;
|
|
10
|
+
sessionStore: SessionStore;
|
|
11
|
+
attention: AttentionSet;
|
|
12
|
+
eventBus: EventBus;
|
|
13
|
+
graph: GraphInstance;
|
|
14
|
+
sessionId: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class PostToolUseHandler {
|
|
17
|
+
private config;
|
|
18
|
+
constructor(config: PostToolUseHandlerConfig);
|
|
19
|
+
handle(payload: PostToolUsePayload): Promise<HttpHookResponse>;
|
|
20
|
+
private processPayload;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=post-tool-use.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-tool-use.d.ts","sourceRoot":"","sources":["../../../../src/hooks/handlers/post-tool-use.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,WAAW,wBAAwB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,YAAY,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAyBD,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,EAAE,wBAAwB;IAItC,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAUtD,cAAc;CAwE/B"}
|