open-mem 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/CHANGELOG.md +23 -3
  2. package/README.md +77 -27
  3. package/dist/adapters/http/server.d.ts +15 -1
  4. package/dist/adapters/http/server.d.ts.map +1 -1
  5. package/dist/adapters/http/sse.d.ts +16 -1
  6. package/dist/adapters/http/sse.d.ts.map +1 -1
  7. package/dist/adapters/mcp/server.d.ts +25 -1
  8. package/dist/adapters/mcp/server.d.ts.map +1 -1
  9. package/dist/adapters/opencode/tools.d.ts.map +1 -1
  10. package/dist/adapters/platform/bridge-client.d.ts +32 -0
  11. package/dist/adapters/platform/bridge-client.d.ts.map +1 -0
  12. package/dist/adapters/platform/builtin.d.ts +6 -0
  13. package/dist/adapters/platform/builtin.d.ts.map +1 -0
  14. package/dist/adapters/platform/claude-code.d.ts +7 -0
  15. package/dist/adapters/platform/claude-code.d.ts.map +1 -0
  16. package/dist/adapters/platform/cursor.d.ts +7 -0
  17. package/dist/adapters/platform/cursor.d.ts.map +1 -0
  18. package/dist/adapters/platform/index.d.ts +9 -0
  19. package/dist/adapters/platform/index.d.ts.map +1 -0
  20. package/dist/adapters/platform/normalize.d.ts +14 -0
  21. package/dist/adapters/platform/normalize.d.ts.map +1 -0
  22. package/dist/adapters/platform/opencode.d.ts +7 -0
  23. package/dist/adapters/platform/opencode.d.ts.map +1 -0
  24. package/dist/adapters/platform/runtime.d.ts +27 -0
  25. package/dist/adapters/platform/runtime.d.ts.map +1 -0
  26. package/dist/adapters/platform/types.d.ts +53 -0
  27. package/dist/adapters/platform/types.d.ts.map +1 -0
  28. package/dist/ai/compressor.d.ts.map +1 -1
  29. package/dist/ai/conflict-evaluator.d.ts.map +1 -1
  30. package/dist/ai/entity-extractor.d.ts +2 -2
  31. package/dist/ai/entity-extractor.d.ts.map +1 -1
  32. package/dist/ai/parser.d.ts.map +1 -1
  33. package/dist/ai/prompts.d.ts.map +1 -1
  34. package/dist/ai/summarizer.d.ts.map +1 -1
  35. package/dist/claude-code.d.ts +3 -0
  36. package/dist/claude-code.d.ts.map +1 -0
  37. package/dist/claude-code.js +551 -0
  38. package/dist/config/store.d.ts.map +1 -1
  39. package/dist/config.d.ts.map +1 -1
  40. package/dist/context/builder.d.ts.map +1 -1
  41. package/dist/contracts/api.d.ts +129 -0
  42. package/dist/contracts/api.d.ts.map +1 -0
  43. package/dist/core/contracts.d.ts +67 -1
  44. package/dist/core/contracts.d.ts.map +1 -1
  45. package/dist/core/memory-engine.d.ts +33 -2
  46. package/dist/core/memory-engine.d.ts.map +1 -1
  47. package/dist/cursor.d.ts +3 -0
  48. package/dist/cursor.d.ts.map +1 -0
  49. package/dist/cursor.js +551 -0
  50. package/dist/daemon.js +146 -122
  51. package/dist/dashboard/assets/index-BTEnO15N.js +63 -0
  52. package/dist/dashboard/assets/index-o3hCx7_v.css +1 -0
  53. package/dist/dashboard/index.html +2 -2
  54. package/dist/db/config-audit.d.ts +10 -0
  55. package/dist/db/config-audit.d.ts.map +1 -0
  56. package/dist/db/entities.d.ts.map +1 -1
  57. package/dist/db/maintenance-history.d.ts +9 -0
  58. package/dist/db/maintenance-history.d.ts.map +1 -0
  59. package/dist/db/observations.d.ts +12 -0
  60. package/dist/db/observations.d.ts.map +1 -1
  61. package/dist/db/schema.d.ts +3 -1
  62. package/dist/db/schema.d.ts.map +1 -1
  63. package/dist/db/user-memory.d.ts.map +1 -1
  64. package/dist/hooks/chat-capture.d.ts +11 -0
  65. package/dist/hooks/chat-capture.d.ts.map +1 -1
  66. package/dist/hooks/context-inject.d.ts.map +1 -1
  67. package/dist/hooks/session-events.d.ts +10 -0
  68. package/dist/hooks/session-events.d.ts.map +1 -1
  69. package/dist/hooks/tool-capture.d.ts +12 -0
  70. package/dist/hooks/tool-capture.d.ts.map +1 -1
  71. package/dist/index.d.ts +5 -3
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +226 -225
  74. package/dist/maintenance.js +159 -132
  75. package/dist/mcp.js +187 -187
  76. package/dist/platform-worker.d.ts +3 -0
  77. package/dist/platform-worker.d.ts.map +1 -0
  78. package/dist/queue/processor.d.ts +26 -1
  79. package/dist/queue/processor.d.ts.map +1 -1
  80. package/dist/runtime/metrics.d.ts +43 -0
  81. package/dist/runtime/metrics.d.ts.map +1 -0
  82. package/dist/search/graph.d.ts.map +1 -1
  83. package/dist/search/orchestrator.d.ts +1 -0
  84. package/dist/search/orchestrator.d.ts.map +1 -1
  85. package/dist/search/reranker.d.ts +1 -1
  86. package/dist/search/reranker.d.ts.map +1 -1
  87. package/dist/store/ports.d.ts +9 -0
  88. package/dist/store/ports.d.ts.map +1 -1
  89. package/dist/store/sqlite/adapters.d.ts.map +1 -1
  90. package/dist/tools/recall.d.ts.map +1 -1
  91. package/dist/tools/save.d.ts +1 -1
  92. package/dist/tools/save.d.ts.map +1 -1
  93. package/dist/types.d.ts +64 -0
  94. package/dist/types.d.ts.map +1 -1
  95. package/dist/utils/agents-md.d.ts.map +1 -1
  96. package/dist/utils/folder-context-maintenance.d.ts.map +1 -1
  97. package/package.json +27 -6
  98. package/dist/dashboard/assets/index-9JxqY10c.css +0 -1
  99. package/dist/dashboard/assets/index-DWbZtwHB.js +0 -60
  100. package/dist/dashboard/dist/assets/index-9JxqY10c.css +0 -1
  101. package/dist/dashboard/dist/assets/index-CGCNZcwT.js +0 -60
  102. package/dist/dashboard/dist/assets/index-CI60x_dC.css +0 -1
  103. package/dist/dashboard/dist/assets/index-CTwrdVhA.js +0 -60
  104. package/dist/dashboard/dist/assets/index-DWbZtwHB.js +0 -60
  105. package/dist/dashboard/dist/index.html +0 -19
  106. package/dist/servers/http-server.d.ts +0 -22
  107. package/dist/servers/http-server.d.ts.map +0 -1
  108. package/dist/servers/mcp-server.d.ts +0 -27
  109. package/dist/servers/mcp-server.d.ts.map +0 -1
  110. package/dist/servers/sse-broadcaster.d.ts +0 -27
  111. package/dist/servers/sse-broadcaster.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,8 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [0.7.0] - 2026-02-08
9
9
 
10
- ### Added
10
+ ### Added (Interop & Ops)
11
+ - MCP strict lifecycle support and protocol negotiation (`initialize`, `notifications/initialized`, strict pre-init gating)
12
+ - Deterministic MCP validation errors and JSON-schema tool metadata generation
13
+ - Runtime ops APIs: `GET /v1/health` and `GET /v1/metrics`
14
+ - Platform adapter foundation (`adapters/platform`) with normalized event schema and capability descriptors for OpenCode, Claude Code, and Cursor
15
+ - Dashboard Operations page showing runtime health, queue state, and throughput counters
16
+ - Benchmark scripts:
17
+ - `bun run bench:search`
18
+ - `bun run bench:platform`
19
+ - MCP compatibility matrix documentation (`docs/mcp-compatibility-matrix.md`)
20
+ - External compatibility GA scaffolding:
21
+ - verification harness (`scripts/verify-external-clients.ts`)
22
+ - worker bridge smoke checks (`scripts/smoke-platform-workers.ts`)
23
+ - matrix renderer + release gate scripts (`scripts/render-compat-matrix.ts`, `scripts/check-external-compat-gate.ts`)
24
+ - CI workflows for nightly compatibility evidence and release blocking (`.github/workflows/external-compat.yml`, `.github/workflows/release-gate.yml`)
25
+
26
+ ### Added (Core 0.7.0)
11
27
  - Modular architecture boundaries: `core`, `store`, `runtime`, and `adapters` layers
28
+ - `MemoryEngine` interface as single orchestration surface for all transports
29
+ - Shared API contracts with Zod schemas and `ok()`/`fail()` envelope (`contracts/api.ts`)
12
30
  - Config control-plane APIs: `GET /api/config/schema`, `GET /api/config/effective`, `POST /api/config/preview`, `PATCH /api/config`
13
31
  - Folder-context maintenance endpoints:
14
32
  - `POST /api/maintenance/folder-context/dry-run`
@@ -20,8 +38,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
20
38
  - Import-boundary validation script (`bun run check:boundaries`)
21
39
 
22
40
  ### Changed
23
- - `mem-update` now uses immutable revision semantics (creates a successor revision)
24
- - `mem-delete` now uses tombstone semantics (soft-delete active observation)
41
+ - Tool names renamed from `mem-*` prefix to `memory.*` namespace (e.g. `mem-search` `memory.find`, `mem-save` `memory.create`)
42
+ - `memory.revise` now uses immutable revision semantics (creates a successor revision)
43
+ - `memory.remove` now uses tombstone semantics (soft-delete active observation)
25
44
  - Active retrieval/search now returns only non-superseded, non-tombstoned observations
26
45
  - Schema baseline extended to v10 (`scope`, `revision_of`, `deleted_at` + indexes)
27
46
  - Dashboard Settings now includes editable config with preview/apply and folder-context maintenance controls
@@ -29,6 +48,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
29
48
  ### Removed
30
49
  - Internal backward-compatibility guarantees with pre-`0.7.0` schema internals
31
50
  - Package self-dependency (`open-mem` depending on itself)
51
+ - Legacy `servers/http-server.ts`, `servers/mcp-server.ts`, `servers/sse-broadcaster.ts` — replaced by `adapters/http/`, `adapters/mcp/`, `adapters/http/sse.ts`
32
52
 
33
53
  ### Notes
34
54
  - Local-first storage remains in project `.open-mem/` (plus optional user-level DB)
package/README.md CHANGED
@@ -75,7 +75,7 @@ Without any provider configured, open-mem still works — it falls back to a bas
75
75
  - 🔍 **Hybrid search** — FTS5 full-text search + vector embeddings with Reciprocal Rank Fusion
76
76
  - 💡 **Progressive disclosure** with token-cost-aware context injection and ROI tracking
77
77
  - 🔒 **Privacy controls** with `<private>` tag support
78
- - 🛠️ **Nine custom tools**: mem-search, mem-save, mem-timeline, mem-recall, mem-export, mem-import, mem-update, mem-delete, mem-guide
78
+ - 🛠️ **Nine custom tools**: memory.find, memory.create, memory.history, memory.get, memory.transfer.export, memory.transfer.import, memory.revise, memory.remove, memory.help
79
79
  - 🌐 **MCP server mode** — expose memory tools to any MCP-compatible AI client
80
80
  - 🌳 **Git worktree support** — shared memory across all worktrees
81
81
  - 📂 **AGENTS.md generation** — auto-generated folder-level context on session end
@@ -110,15 +110,15 @@ open-mem runs in the background as an OpenCode plugin. When you use tools (readi
110
110
  │ │
111
111
  │ session.end ──────────> [AGENTS.md Generation] │
112
112
  │ │
113
- mem-search ─────────> [Hybrid Search (FTS5 + Vector/RRF)] │
114
- mem-save ───────────> [Direct Save] │
115
- mem-timeline ───────> [Session Query] │
116
- mem-recall ─────────> [Full Observation Fetch] │
117
- mem-export ─────────> [JSON Export] │
118
- mem-import ─────────> [JSON Import] │
119
- mem-update ─────────> [Create Revision] │
120
- mem-delete ─────────> [Tombstone Observation] │
121
- mem-guide ──────────> [Workflow Guidance] │
113
+ memory.find ─────────> [Hybrid Search (FTS5 + Vector/RRF)] │
114
+ memory.create ───────────> [Direct Save] │
115
+ memory.history ───────> [Session Query] │
116
+ memory.get ─────────> [Full Observation Fetch] │
117
+ memory.transfer.export ─────────> [JSON Export] │
118
+ memory.transfer.import ─────────> [JSON Import] │
119
+ memory.revise ─────────> [Create Revision] │
120
+ memory.remove ─────────> [Tombstone Observation] │
121
+ memory.help ──────────> [Workflow Guidance] │
122
122
  │ │
123
123
  │ ┌──────────────────────────────────────────┐ │
124
124
  │ │ MCP Server (stdin/stdout, JSON-RPC 2.0) │ │
@@ -147,7 +147,7 @@ If no API key is set, a fallback compressor extracts basic metadata without AI.
147
147
 
148
148
  open-mem injects a compact index into the system prompt at session start. Each entry shows a type icon, title, token cost, and related files — giving the agent a map of what's in memory without consuming the full context window.
149
149
 
150
- The agent sees *what* exists and decides *what to fetch* using `mem-search` and `mem-recall`. This minimizes context window usage while providing full access to all stored observations.
150
+ The agent sees *what* exists and decides *what to fetch* using `memory.find` and `memory.get`. This minimizes context window usage while providing full access to all stored observations.
151
151
 
152
152
  Example of an injected index entry:
153
153
 
@@ -186,7 +186,7 @@ The context injector includes a "Memory Economics" footer showing how much conte
186
186
 
187
187
  ## Custom Tools
188
188
 
189
- ### mem-search
189
+ ### memory.find
190
190
 
191
191
  Search through past observations and session summaries. Uses hybrid search (FTS5 + vector embeddings) when an embedding-capable provider is configured, or FTS5-only otherwise.
192
192
 
@@ -196,7 +196,7 @@ Search through past observations and session summaries. Uses hybrid search (FTS5
196
196
  | `type` | enum | no | Filter by type: `decision`, `bugfix`, `feature`, `refactor`, `discovery`, `change` |
197
197
  | `limit` | number | no | Max results (1–50, default: 10) |
198
198
 
199
- ### mem-save
199
+ ### memory.create
200
200
 
201
201
  Manually save an important observation to memory.
202
202
 
@@ -208,7 +208,7 @@ Manually save an important observation to memory.
208
208
  | `concepts` | string[] | no | Related concepts/tags |
209
209
  | `files` | string[] | no | Related file paths |
210
210
 
211
- ### mem-timeline
211
+ ### memory.history
212
212
 
213
213
  View a timeline of past coding sessions for the current project.
214
214
 
@@ -217,16 +217,16 @@ View a timeline of past coding sessions for the current project.
217
217
  | `limit` | number | no | Number of recent sessions (1–20, default: 5) |
218
218
  | `sessionId` | string | no | Show details for a specific session |
219
219
 
220
- ### mem-recall
220
+ ### memory.get
221
221
 
222
- Fetch full observation details by ID. Use after `mem-search` to get complete narratives, facts, concepts, and file lists for specific observations.
222
+ Fetch full observation details by ID. Use after `memory.find` to get complete narratives, facts, concepts, and file lists for specific observations.
223
223
 
224
224
  | Argument | Type | Required | Description |
225
225
  |----------|------|----------|-------------|
226
226
  | `ids` | string[] | yes | Observation IDs to fetch |
227
227
  | `limit` | number | no | Maximum number of results (1–50, default: 10) |
228
228
 
229
- ### mem-export
229
+ ### memory.transfer.export
230
230
 
231
231
  Export project memories (observations and session summaries) as portable JSON for backup or transfer between machines.
232
232
 
@@ -236,15 +236,15 @@ Export project memories (observations and session summaries) as portable JSON fo
236
236
  | `type` | enum | no | Filter by observation type |
237
237
  | `limit` | number | no | Maximum observations to export |
238
238
 
239
- ### mem-import
239
+ ### memory.transfer.import
240
240
 
241
241
  Import observations and summaries from a JSON export. Skips duplicates by ID.
242
242
 
243
243
  | Argument | Type | Required | Description |
244
244
  |----------|------|----------|-------------|
245
- | `data` | string | yes | JSON string from a mem-export output |
245
+ | `data` | string | yes | JSON string from a memory.transfer.export output |
246
246
 
247
- ### mem-update
247
+ ### memory.revise
248
248
 
249
249
  Update an existing project observation by ID.
250
250
  This is immutable: the update creates a new revision and supersedes the previous active revision.
@@ -258,7 +258,7 @@ This is immutable: the update creates a new revision and supersedes the previous
258
258
  | `concepts` | string[] | no | Updated concepts/tags |
259
259
  | `importance` | number | no | Updated importance (1-5) |
260
260
 
261
- ### mem-delete
261
+ ### memory.remove
262
262
 
263
263
  Tombstone an existing project observation by ID.
264
264
  This is a soft delete: the observation is hidden from default recall/search but retained for lineage.
@@ -267,10 +267,10 @@ This is a soft delete: the observation is hidden from default recall/search but
267
267
  |----------|------|----------|-------------|
268
268
  | `id` | string | yes | Observation ID to delete |
269
269
 
270
- ### mem-guide
270
+ ### memory.help
271
271
 
272
272
  Returns a short workflow guide for using memory tools effectively:
273
- `mem-search` -> `mem-timeline` -> `mem-recall`, plus write/edit/import/export patterns.
273
+ `memory.find` -> `memory.history` -> `memory.get`, plus write/edit/import/export patterns.
274
274
 
275
275
  ## MCP Server Mode
276
276
 
@@ -297,13 +297,55 @@ Or add it to your MCP client config:
297
297
  }
298
298
  ```
299
299
 
300
- The server communicates over stdin/stdout using JSON-RPC 2.0 and exposes: `mem-search`, `mem-save`, `mem-timeline`, `mem-recall`, `mem-export`, `mem-import`, `mem-update`, `mem-delete`, `mem-guide`.
300
+ The server communicates over stdin/stdout using JSON-RPC 2.0 and exposes: `memory.find`, `memory.create`, `memory.history`, `memory.get`, `memory.transfer.export`, `memory.transfer.import`, `memory.revise`, `memory.remove`, `memory.help`.
301
+
302
+ Lifecycle behavior:
303
+ - `initialize` negotiates protocol version (default `2024-11-05`)
304
+ - `notifications/initialized` is supported
305
+ - strict mode requires initialize before `tools/list`/`tools/call`
306
+
307
+ ## Platform Adapter Workers (Claude Code / Cursor)
308
+
309
+ open-mem now includes dedicated adapter workers that ingest JSON events over stdin:
310
+
311
+ ```bash
312
+ # Claude Code adapter worker
313
+ bunx open-mem-claude-code --project /path/to/project
314
+
315
+ # Cursor adapter worker
316
+ bunx open-mem-cursor --project /path/to/project
317
+ ```
318
+
319
+ Each line on stdin must be one JSON event. The workers normalize events into open-mem's shared platform schema and reuse the same capture/lifecycle pipeline used by OpenCode hooks.
320
+ Each line receives a JSON response on stdout:
321
+ - success: `{"ok":true,"code":"OK","ingested":true}`
322
+ - parse error: `{"ok":false,"code":"INVALID_JSON",...}`
323
+ - schema mismatch: `{"ok":false,"code":"UNSUPPORTED_EVENT",...}`
324
+
325
+ Optional worker commands:
326
+ - `{"command":"flush"}` to force queue processing
327
+ - `{"command":"health"}` to get worker queue status
328
+ - `{"command":"shutdown"}` to request graceful shutdown
329
+
330
+ Optional HTTP bridge mode:
331
+
332
+ ```bash
333
+ bunx open-mem-claude-code --project /path/to/project --http-port 37877
334
+ ```
335
+
336
+ Endpoints:
337
+ - `POST /v1/events` (same envelope/response semantics as stdio)
338
+ - `GET /v1/health`
339
+
340
+ Enable these adapters via env vars:
341
+ - `OPEN_MEM_PLATFORM_CLAUDE_CODE=true`
342
+ - `OPEN_MEM_PLATFORM_CURSOR=true`
301
343
 
302
344
  ## Data Model Notes
303
345
 
304
346
  - Local-first storage remains project-local in `.open-mem/` (plus optional user-level DB).
305
- - `mem-update` uses revision lineage, not in-place mutation.
306
- - `mem-delete` uses tombstones, not hard delete, for safer auditability and conflict handling.
347
+ - `memory.revise` uses revision lineage, not in-place mutation.
348
+ - `memory.remove` uses tombstones, not hard delete, for safer auditability and conflict handling.
307
349
  - Pre-`0.7.0` databases are not auto-migrated to lineage semantics. Use:
308
350
 
309
351
  ```bash
@@ -327,6 +369,8 @@ Dashboard config APIs:
327
369
  - `PATCH /api/config`
328
370
  - `GET /api/modes`
329
371
  - `POST /api/modes/:id/apply`
372
+ - `GET /api/health`
373
+ - `GET /api/metrics`
330
374
 
331
375
  ## Configuration
332
376
 
@@ -353,6 +397,12 @@ open-mem works out of the box with zero configuration. All settings can be custo
353
397
  | `OPEN_MEM_MAX_OBSERVATIONS` | `50` | Maximum observations to consider for context |
354
398
  | `OPEN_MEM_FOLDER_CONTEXT` | `true` | Set to `false` to disable AGENTS.md generation |
355
399
  | `OPEN_MEM_FOLDER_CONTEXT_MAX_DEPTH` | `5` | Max folder depth for AGENTS.md generation |
400
+ | `OPEN_MEM_PLATFORM_OPENCODE` | `true` | Set to `false` to disable OpenCode adapter |
401
+ | `OPEN_MEM_PLATFORM_CLAUDE_CODE` | `false` | Set to `true` to enable Claude Code adapter surface |
402
+ | `OPEN_MEM_PLATFORM_CURSOR` | `false` | Set to `true` to enable Cursor adapter surface |
403
+ | `OPEN_MEM_MCP_COMPAT_MODE` | `strict` | MCP mode: `strict` or `legacy` |
404
+ | `OPEN_MEM_MCP_PROTOCOL_VERSION` | `2024-11-05` | Preferred MCP protocol version |
405
+ | `OPEN_MEM_MCP_SUPPORTED_PROTOCOLS` | `2024-11-05` | Comma-separated supported protocol versions |
356
406
 
357
407
  <details>
358
408
  <summary><strong>Programmatic Configuration Reference</strong></summary>
@@ -452,7 +502,7 @@ rm -rf .open-mem/
452
502
 
453
503
  1. Verify the plugin is loaded: check OpenCode logs for `[open-mem]` messages
454
504
  2. Ensure `OPEN_MEM_CONTEXT_INJECTION` is not set to `false`
455
- 3. Check that observations exist: use the `mem-timeline` tool
505
+ 3. Check that observations exist: use the `memory.history` tool
456
506
  4. The first session won't have context — observations must be captured first
457
507
 
458
508
  ### High memory usage
@@ -1,2 +1,16 @@
1
- export { createDashboardApp, type DashboardDeps } from "../../servers/http-server";
1
+ import type { EmbeddingModel } from "ai";
2
+ import type { Context } from "hono";
3
+ import { Hono } from "hono";
4
+ import type { MemoryEngine, RuntimeStatusSnapshot } from "../../core/contracts";
5
+ import type { OpenMemConfig } from "../../types";
6
+ export interface DashboardDeps {
7
+ config: OpenMemConfig;
8
+ projectPath: string;
9
+ embeddingModel: EmbeddingModel | null;
10
+ memoryEngine: MemoryEngine;
11
+ runtimeStatusProvider?: () => RuntimeStatusSnapshot;
12
+ sseHandler?: (c: Context) => Response | Promise<Response>;
13
+ dashboardDir?: string;
14
+ }
15
+ export declare function createDashboardApp(deps: DashboardDeps): Hono;
2
16
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/adapters/http/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/adapters/http/server.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAS5B,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,qBAAqB,CAAC;IACpD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAoCD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CA0e5D"}
@@ -1,2 +1,17 @@
1
- export { SSEBroadcaster, createSSERoute } from "../../servers/sse-broadcaster";
1
+ import type { Context } from "hono";
2
+ import type { MemoryEventBus } from "../../events/bus";
3
+ export type SSEWriter = (event: string, data: string) => void | Promise<void>;
4
+ export declare class SSEBroadcaster {
5
+ private eventBus;
6
+ private clients;
7
+ private cleanups;
8
+ constructor(eventBus: MemoryEventBus);
9
+ addClient(writer: SSEWriter): void;
10
+ removeClient(writer: SSEWriter): void;
11
+ get clientCount(): number;
12
+ destroy(): void;
13
+ private subscribeToAll;
14
+ private broadcast;
15
+ }
16
+ export declare function createSSERoute(broadcaster: SSEBroadcaster): (c: Context) => Response;
2
17
  //# sourceMappingURL=sse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/adapters/http/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/adapters/http/sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,KAAK,EAAE,cAAc,EAAmC,MAAM,kBAAkB,CAAC;AAExF,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE9E,qBAAa,cAAc;IAId,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAyB;gBAErB,QAAQ,EAAE,cAAc;IAI5C,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIlC,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAIrC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,SAAS;CAajB;AAID,wBAAgB,cAAc,CAAC,WAAW,EAAE,cAAc,IACjD,GAAG,OAAO,cAqBlB"}
@@ -1,2 +1,26 @@
1
- export { McpServer, type McpServerDeps } from "../../servers/mcp-server";
1
+ import type { MemoryEngine } from "../../core/contracts";
2
+ export interface McpServerDeps {
3
+ memoryEngine: MemoryEngine;
4
+ version: string;
5
+ compatibilityMode?: "strict" | "legacy";
6
+ protocolVersion?: string;
7
+ supportedProtocolVersions?: string[];
8
+ }
9
+ export declare class McpServer {
10
+ private readonly memoryEngine;
11
+ private readonly version;
12
+ private readonly compatibilityMode;
13
+ private readonly protocolVersion;
14
+ private readonly supportedProtocolVersions;
15
+ private initialized;
16
+ private pendingOps;
17
+ constructor(deps: McpServerDeps);
18
+ start(): void;
19
+ private handle;
20
+ private handleInitialize;
21
+ private getToolDefinitions;
22
+ private handleToolCall;
23
+ private executeTool;
24
+ private send;
25
+ }
2
26
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/server.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAgCzD,MAAM,WAAW,aAAa;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC;AAkCD,qBAAa,SAAS;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAW;IACrD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAuB;gBAE7B,IAAI,EAAE,aAAa;IAW/B,KAAK,IAAI,IAAI;IA0Bb,OAAO,CAAC,MAAM;IA8Cd,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,kBAAkB;YAuDZ,cAAc;YA8Cd,WAAW;IAuIzB,OAAO,CAAC,IAAI;CAGZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAA6B,cAAc,EAAE,MAAM,aAAa,CAAC;AAoG7E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAmKxF"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/adapters/opencode/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,aAAa,CAAC;AAuBhE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA+IxF"}
@@ -0,0 +1,32 @@
1
+ export type BridgeCommand = "event" | "flush" | "health" | "shutdown";
2
+ export interface BridgeEnvelope {
3
+ id?: string | number;
4
+ command?: BridgeCommand;
5
+ payload?: unknown;
6
+ }
7
+ export interface BridgeStatus {
8
+ platform: "opencode" | "claude-code" | "cursor";
9
+ projectPath: string;
10
+ queue: {
11
+ mode: string;
12
+ running: boolean;
13
+ processing: boolean;
14
+ pending: number;
15
+ };
16
+ }
17
+ export interface BridgeResponse {
18
+ id?: string | number;
19
+ ok: boolean;
20
+ code: string;
21
+ message?: string;
22
+ ingested?: boolean;
23
+ processed?: number;
24
+ status?: BridgeStatus;
25
+ }
26
+ export declare function createEventEnvelope(payload: unknown, id?: string | number): BridgeEnvelope;
27
+ export declare function createCommandEnvelope(command: Exclude<BridgeCommand, "event">, id?: string | number, payload?: unknown): BridgeEnvelope;
28
+ export declare function parseBridgeResponse(input: string | unknown): BridgeResponse;
29
+ export declare function isBridgeSuccess(response: BridgeResponse, allowedCodes?: string[]): boolean;
30
+ export declare function sendBridgeHttpEvent(baseUrl: string, envelope: BridgeEnvelope, fetchImpl?: typeof fetch): Promise<BridgeResponse>;
31
+ export declare function getBridgeHealth(baseUrl: string, fetchImpl?: typeof fetch): Promise<BridgeResponse>;
32
+ //# sourceMappingURL=bridge-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-client.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/bridge-client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAED,MAAM,WAAW,cAAc;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAE1F;AAED,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,EACxC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EACpB,OAAO,CAAC,EAAE,OAAO,GACf,cAAc,CAEhB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,CAwB3E;AAED,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,cAAc,EACxB,YAAY,GAAE,MAAM,EAAW,GAC7B,OAAO,CAET;AAED,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,EACxB,SAAS,GAAE,OAAO,KAAa,GAC7B,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAED,wBAAsB,eAAe,CACpC,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,OAAO,KAAa,GAC7B,OAAO,CAAC,cAAc,CAAC,CAczB"}
@@ -0,0 +1,6 @@
1
+ import type { PlatformAdapterDescriptor } from "./types";
2
+ export declare const OPEN_CODE_ADAPTER: PlatformAdapterDescriptor;
3
+ export declare const CLAUDE_CODE_ADAPTER: PlatformAdapterDescriptor;
4
+ export declare const CURSOR_ADAPTER: PlatformAdapterDescriptor;
5
+ export declare const BUILTIN_PLATFORM_ADAPTERS: PlatformAdapterDescriptor[];
6
+ //# sourceMappingURL=builtin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/builtin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD,eAAO,MAAM,iBAAiB,EAAE,yBAS/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,yBASjC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,yBAS5B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,yBAAyB,EAIhE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { NormalizedPlatformEvent, PlatformAdapter } from "./types";
2
+ export declare class ClaudeCodeAdapter implements PlatformAdapter {
3
+ readonly descriptor: import("./types").PlatformAdapterDescriptor;
4
+ normalize(rawEvent: unknown): NormalizedPlatformEvent | null;
5
+ }
6
+ export declare function createClaudeCodeAdapter(): PlatformAdapter;
7
+ //# sourceMappingURL=claude-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/claude-code.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0BxE,qBAAa,iBAAkB,YAAW,eAAe;IACxD,QAAQ,CAAC,UAAU,8CAAuB;IAE1C,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;CAiB5D;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD"}
@@ -0,0 +1,7 @@
1
+ import type { NormalizedPlatformEvent, PlatformAdapter } from "./types";
2
+ export declare class CursorAdapter implements PlatformAdapter {
3
+ readonly descriptor: import("./types").PlatformAdapterDescriptor;
4
+ normalize(rawEvent: unknown): NormalizedPlatformEvent | null;
5
+ }
6
+ export declare function createCursorAdapter(): PlatformAdapter;
7
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/cursor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAgCxE,qBAAa,aAAc,YAAW,eAAe;IACpD,QAAQ,CAAC,UAAU,8CAAkB;IAErC,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;CAkB5D;AAED,wBAAgB,mBAAmB,IAAI,eAAe,CAErD"}
@@ -0,0 +1,9 @@
1
+ export * from "./bridge-client";
2
+ export * from "./builtin";
3
+ export * from "./claude-code";
4
+ export * from "./cursor";
5
+ export * from "./normalize";
6
+ export * from "./opencode";
7
+ export * from "./runtime";
8
+ export * from "./types";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { NormalizedPlatformEvent, PlatformName } from "./types";
2
+ /**
3
+ * Normalize OpenCode hook payloads into a platform-agnostic event shape.
4
+ */
5
+ export declare function normalizeOpenCodeEvent(input: {
6
+ eventType: "tool.execute.after" | "chat.message" | "event";
7
+ payload: unknown;
8
+ output?: unknown;
9
+ }): NormalizedPlatformEvent | null;
10
+ /**
11
+ * Normalize external adapter events (Claude Code / Cursor) to common schema.
12
+ */
13
+ export declare function normalizeExternalEvent(platform: Exclude<PlatformName, "opencode">, raw: unknown): NormalizedPlatformEvent | null;
14
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAerE;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,SAAS,EAAE,oBAAoB,GAAG,cAAc,GAAG,OAAO,CAAC;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,uBAAuB,GAAG,IAAI,CAmGjC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,EAC3C,GAAG,EAAE,OAAO,GACV,uBAAuB,GAAG,IAAI,CAiDhC"}
@@ -0,0 +1,7 @@
1
+ import type { NormalizedPlatformEvent, PlatformAdapter } from "./types";
2
+ export declare class OpenCodeAdapter implements PlatformAdapter {
3
+ readonly descriptor: import("./types").PlatformAdapterDescriptor;
4
+ normalize(rawEvent: unknown): NormalizedPlatformEvent | null;
5
+ }
6
+ export declare function createOpenCodePlatformAdapter(): PlatformAdapter;
7
+ //# sourceMappingURL=opencode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/opencode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQxE,qBAAa,eAAgB,YAAW,eAAe;IACtD,QAAQ,CAAC,UAAU,8CAAqB;IAExC,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;CAU5D;AAED,wBAAgB,6BAA6B,IAAI,eAAe,CAE/D"}
@@ -0,0 +1,27 @@
1
+ import { type SessionLifecycleDeps } from "../../hooks/session-events";
2
+ import type { OpenMemConfig } from "../../types";
3
+ import type { NormalizedPlatformEvent, PlatformAdapter, PlatformName } from "./types";
4
+ export interface PlatformIngestionRuntimeDeps {
5
+ adapter: PlatformAdapter;
6
+ queue: SessionLifecycleDeps["queue"];
7
+ sessions: SessionLifecycleDeps["sessions"];
8
+ observations: SessionLifecycleDeps["observations"];
9
+ pendingMessages: SessionLifecycleDeps["pendingMessages"];
10
+ projectPath: string;
11
+ config: OpenMemConfig;
12
+ }
13
+ export declare class PlatformIngestionRuntime {
14
+ private readonly adapter;
15
+ private readonly lifecycleDeps;
16
+ private readonly queue;
17
+ private readonly sessions;
18
+ private readonly observations;
19
+ private readonly projectPath;
20
+ private readonly config;
21
+ constructor(deps: PlatformIngestionRuntimeDeps);
22
+ platform(): PlatformName;
23
+ normalize(rawEvent: unknown): NormalizedPlatformEvent | null;
24
+ ingestRaw(rawEvent: unknown): Promise<boolean>;
25
+ ingestNormalized(event: NormalizedPlatformEvent): Promise<void>;
26
+ }
27
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtF,MAAM,WAAW,4BAA4B;IAC5C,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACrC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC3C,YAAY,EAAE,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACnD,eAAe,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;CACtB;AAED,qBAAa,wBAAwB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,IAAI,EAAE,4BAA4B;IAiB9C,QAAQ,IAAI,YAAY;IAIxB,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAItD,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAO9C,gBAAgB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoCrE"}
@@ -0,0 +1,53 @@
1
+ export type PlatformName = "opencode" | "claude-code" | "cursor";
2
+ export interface PlatformCapabilities {
3
+ nativeSessionLifecycle: boolean;
4
+ nativeToolCapture: boolean;
5
+ nativeChatCapture: boolean;
6
+ emulatedIdleFlush: boolean;
7
+ }
8
+ export interface PlatformAdapterDescriptor {
9
+ name: PlatformName;
10
+ version: string;
11
+ capabilities: PlatformCapabilities;
12
+ }
13
+ export type NormalizedPlatformEvent = {
14
+ kind: "session.start";
15
+ platform: PlatformName;
16
+ sessionId: string;
17
+ occurredAt: string;
18
+ metadata?: Record<string, unknown>;
19
+ } | {
20
+ kind: "session.end";
21
+ platform: PlatformName;
22
+ sessionId: string;
23
+ occurredAt: string;
24
+ metadata?: Record<string, unknown>;
25
+ } | {
26
+ kind: "chat.message";
27
+ platform: PlatformName;
28
+ sessionId: string;
29
+ occurredAt: string;
30
+ role: "user" | "assistant" | "system";
31
+ text: string;
32
+ metadata?: Record<string, unknown>;
33
+ } | {
34
+ kind: "tool.execute";
35
+ platform: PlatformName;
36
+ sessionId: string;
37
+ occurredAt: string;
38
+ callId: string;
39
+ toolName: string;
40
+ output: string;
41
+ metadata?: Record<string, unknown>;
42
+ } | {
43
+ kind: "idle.flush";
44
+ platform: PlatformName;
45
+ sessionId: string;
46
+ occurredAt: string;
47
+ metadata?: Record<string, unknown>;
48
+ };
49
+ export interface PlatformAdapter {
50
+ readonly descriptor: PlatformAdapterDescriptor;
51
+ normalize(rawEvent: unknown): NormalizedPlatformEvent | null;
52
+ }
53
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/platform/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACpC,sBAAsB,EAAE,OAAO,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,MAAM,uBAAuB,GAChC;IACA,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,GACD;IACA,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,GACD;IACA,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,GACD;IACA,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,GACD;IACA,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEL,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAAC;CAC7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../../src/ai/compressor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,YAAY,EAAE,MAAM,IAAI,CAAC;AAEtD,OAAO,EAAE,KAAK,iBAAiB,EAA4B,MAAM,UAAU,CAAC;AAU5E,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAMD;;;;GAIG;AACH,qBAAa,qBAAqB;IACjC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAmB;IAGjC,SAAS,sBAAgB;gBAEb,MAAM,EAAE,gBAAgB;IAsBpC,+DAA+D;IAC/D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAAU;IAE1C;;;;OAIG;IACG,QAAQ,CACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAqDpC;;;OAGG;IACG,aAAa,CAClB,KAAK,EAAE,aAAa,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,GACA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAqBjD;;;OAGG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAuB5E,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAarC"}
1
+ {"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../../src/ai/compressor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAsB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAkB,KAAK,iBAAiB,EAA4B,MAAM,UAAU,CAAC;AAS5F,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAMD;;;;GAIG;AACH,qBAAa,qBAAqB;IACjC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAmB;IAGjC,SAAS,sBAAgB;gBAEb,MAAM,EAAE,gBAAgB;IAsBpC,+DAA+D;IAC/D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAAU;IAE1C;;;;OAIG;IACG,QAAQ,CACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAqDpC;;;OAGG;IACG,aAAa,CAClB,KAAK,EAAE,aAAa,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC,GACA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAqBjD;;;OAGG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAuB5E,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAarC"}
@@ -1 +1 @@
1
- {"version":3,"file":"conflict-evaluator.d.ts","sourceRoot":"","sources":["../../src/ai/conflict-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EACN,KAAK,kBAAkB,EAEvB,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAE3B,MAAM,WAAW,CAAC;AAInB,6CAA6C;AAC7C,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC;AAC9E,yCAAyC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAA0B;IAExC,SAAS,sBAAgB;gBAEb,MAAM,EAAE,uBAAuB;IAkB3C;;;OAGG;IACG,QAAQ,CACb,MAAM,EAAE,sBAAsB,EAC9B,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAC1C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAgCrC"}
1
+ {"version":3,"file":"conflict-evaluator.d.ts","sourceRoot":"","sources":["../../src/ai/conflict-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,KAAK,kBAAkB,EAAmC,MAAM,UAAU,CAAC;AACpF,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,MAAM,WAAW,CAAC;AAInB,6CAA6C;AAC7C,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC;AAC9E,yCAAyC;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAA0B;IAExC,SAAS,sBAAgB;gBAEb,MAAM,EAAE,uBAAuB;IAkB3C;;;OAGG;IACG,QAAQ,CACb,MAAM,EAAE,sBAAsB,EAC9B,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAC1C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAgCrC"}
@@ -2,9 +2,9 @@ import { generateText } from "ai";
2
2
  import { type ParsedEntityExtraction } from "./parser";
3
3
  import { type EntityExtractionObservation } from "./prompts";
4
4
  /** Re-exported entity extraction result types. */
5
- export type { ParsedEntityExtraction as EntityExtractionResult, EntityExtractionObservation, };
5
+ export type { ParsedEntityExtraction as EntityExtractionResult, EntityExtractionObservation };
6
6
  /** Re-exported entity and relation types. */
7
- export type { ParsedEntity as ExtractedEntity, ParsedRelation as ExtractedRelation, EntityType, RelationshipType, } from "./parser";
7
+ export type { EntityType, ParsedEntity as ExtractedEntity, ParsedRelation as ExtractedRelation, RelationshipType, } from "./parser";
8
8
  /** Configuration for the AI-powered entity extractor. */
9
9
  export interface EntityExtractorConfig {
10
10
  provider: string;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-extractor.d.ts","sourceRoot":"","sources":["../../src/ai/entity-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EACN,KAAK,sBAAsB,EAE3B,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,KAAK,2BAA2B,EAEhC,MAAM,WAAW,CAAC;AAInB,kDAAkD;AAClD,YAAY,EACX,sBAAsB,IAAI,sBAAsB,EAChD,2BAA2B,GAC3B,CAAC;AACF,6CAA6C;AAC7C,YAAY,EACX,YAAY,IAAI,eAAe,EAC/B,cAAc,IAAI,iBAAiB,EACnC,UAAU,EACV,gBAAgB,GAChB,MAAM,UAAU,CAAC;AAElB,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAwB;IAEtC,SAAS,sBAAgB;gBAEb,MAAM,EAAE,qBAAqB;IAkBzC;;;OAGG;IACG,OAAO,CACZ,WAAW,EAAE,2BAA2B,GACtC,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CAmCzC"}
1
+ {"version":3,"file":"entity-extractor.d.ts","sourceRoot":"","sources":["../../src/ai/entity-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,KAAK,sBAAsB,EAAiC,MAAM,UAAU,CAAC;AACtF,OAAO,EAA+B,KAAK,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAI1F,kDAAkD;AAClD,YAAY,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,2BAA2B,EAAE,CAAC;AAC9F,6CAA6C;AAC7C,YAAY,EACX,UAAU,EACV,YAAY,IAAI,eAAe,EAC/B,cAAc,IAAI,iBAAiB,EACnC,gBAAgB,GAChB,MAAM,UAAU,CAAC;AAElB,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,MAAM,CAAwB;IAEtC,SAAS,sBAAgB;gBAEb,MAAM,EAAE,qBAAqB;IAkBzC;;;OAGG;IACG,OAAO,CAAC,WAAW,EAAE,2BAA2B,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CAgC/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/ai/parser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAMhD,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAyCD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAmCnF;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA0B3E;AAMD,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAexE;AAMD,kDAAkD;AAClD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElE,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CACf;AAID,0EAA0E;AAC1E,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAwB3F;AAMD,kEAAkE;AAClE,MAAM,MAAM,UAAU,GACnB,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,CAAC;AAEX,yDAAyD;AACzD,MAAM,MAAM,gBAAgB,GACzB,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,UAAU,GACV,YAAY,CAAC;AAEhB,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,gBAAgB,CAAC;CAC/B;AAED,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC5B;AAuBD,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,MAAM,GACd,sBAAsB,GAAG,IAAI,CAmC/B;AAMD,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/ai/parser.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAMhD,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAyCD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAmCnF;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA0B3E;AAMD,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAexE;AAMD,kDAAkD;AAClD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElE,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CACf;AAID,0EAA0E;AAC1E,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAwB3F;AAMD,kEAAkE;AAClE,MAAM,MAAM,UAAU,GACnB,YAAY,GACZ,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,CAAC;AAEX,yDAAyD;AACzD,MAAM,MAAM,gBAAgB,GACzB,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,UAAU,GACV,YAAY,CAAC;AAEhB,iDAAiD;AACjD,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,gBAAgB,CAAC;CAC/B;AAED,gEAAgE;AAChE,MAAM,WAAW,sBAAsB;IACtC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC5B;AAuBD,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAmC7F;AAMD,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}