open-mem 0.7.0 → 0.7.1
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/CHANGELOG.md +23 -3
- package/README.md +77 -27
- package/dist/adapters/http/server.d.ts +15 -1
- package/dist/adapters/http/server.d.ts.map +1 -1
- package/dist/adapters/http/sse.d.ts +16 -1
- package/dist/adapters/http/sse.d.ts.map +1 -1
- package/dist/adapters/mcp/server.d.ts +25 -1
- package/dist/adapters/mcp/server.d.ts.map +1 -1
- package/dist/adapters/opencode/tools.d.ts.map +1 -1
- package/dist/adapters/platform/bridge-client.d.ts +32 -0
- package/dist/adapters/platform/bridge-client.d.ts.map +1 -0
- package/dist/adapters/platform/builtin.d.ts +6 -0
- package/dist/adapters/platform/builtin.d.ts.map +1 -0
- package/dist/adapters/platform/claude-code.d.ts +7 -0
- package/dist/adapters/platform/claude-code.d.ts.map +1 -0
- package/dist/adapters/platform/cursor.d.ts +7 -0
- package/dist/adapters/platform/cursor.d.ts.map +1 -0
- package/dist/adapters/platform/index.d.ts +9 -0
- package/dist/adapters/platform/index.d.ts.map +1 -0
- package/dist/adapters/platform/normalize.d.ts +14 -0
- package/dist/adapters/platform/normalize.d.ts.map +1 -0
- package/dist/adapters/platform/opencode.d.ts +7 -0
- package/dist/adapters/platform/opencode.d.ts.map +1 -0
- package/dist/adapters/platform/runtime.d.ts +27 -0
- package/dist/adapters/platform/runtime.d.ts.map +1 -0
- package/dist/adapters/platform/types.d.ts +53 -0
- package/dist/adapters/platform/types.d.ts.map +1 -0
- package/dist/ai/compressor.d.ts.map +1 -1
- package/dist/ai/conflict-evaluator.d.ts.map +1 -1
- package/dist/ai/entity-extractor.d.ts +2 -2
- package/dist/ai/entity-extractor.d.ts.map +1 -1
- package/dist/ai/parser.d.ts.map +1 -1
- package/dist/ai/prompts.d.ts.map +1 -1
- package/dist/ai/summarizer.d.ts.map +1 -1
- package/dist/claude-code.d.ts +3 -0
- package/dist/claude-code.d.ts.map +1 -0
- package/dist/claude-code.js +551 -0
- package/dist/config/store.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/context/builder.d.ts.map +1 -1
- package/dist/contracts/api.d.ts +129 -0
- package/dist/contracts/api.d.ts.map +1 -0
- package/dist/core/contracts.d.ts +67 -1
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/memory-engine.d.ts +33 -2
- package/dist/core/memory-engine.d.ts.map +1 -1
- package/dist/cursor.d.ts +3 -0
- package/dist/cursor.d.ts.map +1 -0
- package/dist/cursor.js +551 -0
- package/dist/daemon.js +146 -122
- package/dist/dashboard/assets/index-BTEnO15N.js +63 -0
- package/dist/dashboard/assets/index-o3hCx7_v.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/db/config-audit.d.ts +10 -0
- package/dist/db/config-audit.d.ts.map +1 -0
- package/dist/db/entities.d.ts.map +1 -1
- package/dist/db/maintenance-history.d.ts +9 -0
- package/dist/db/maintenance-history.d.ts.map +1 -0
- package/dist/db/observations.d.ts +12 -0
- package/dist/db/observations.d.ts.map +1 -1
- package/dist/db/schema.d.ts +3 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/user-memory.d.ts.map +1 -1
- package/dist/hooks/chat-capture.d.ts +11 -0
- package/dist/hooks/chat-capture.d.ts.map +1 -1
- package/dist/hooks/context-inject.d.ts.map +1 -1
- package/dist/hooks/session-events.d.ts +10 -0
- package/dist/hooks/session-events.d.ts.map +1 -1
- package/dist/hooks/tool-capture.d.ts +12 -0
- package/dist/hooks/tool-capture.d.ts.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +223 -225
- package/dist/maintenance.js +130 -106
- package/dist/mcp.js +184 -187
- package/dist/platform-worker.d.ts +3 -0
- package/dist/platform-worker.d.ts.map +1 -0
- package/dist/queue/processor.d.ts +26 -1
- package/dist/queue/processor.d.ts.map +1 -1
- package/dist/runtime/metrics.d.ts +43 -0
- package/dist/runtime/metrics.d.ts.map +1 -0
- package/dist/search/graph.d.ts.map +1 -1
- package/dist/search/orchestrator.d.ts +1 -0
- package/dist/search/orchestrator.d.ts.map +1 -1
- package/dist/search/reranker.d.ts +1 -1
- package/dist/search/reranker.d.ts.map +1 -1
- package/dist/store/ports.d.ts +9 -0
- package/dist/store/ports.d.ts.map +1 -1
- package/dist/store/sqlite/adapters.d.ts.map +1 -1
- package/dist/tools/recall.d.ts.map +1 -1
- package/dist/tools/save.d.ts +1 -1
- package/dist/tools/save.d.ts.map +1 -1
- package/dist/types.d.ts +64 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/agents-md.d.ts.map +1 -1
- package/dist/utils/folder-context-maintenance.d.ts.map +1 -1
- package/package.json +27 -6
- package/dist/dashboard/assets/index-9JxqY10c.css +0 -1
- package/dist/dashboard/assets/index-DWbZtwHB.js +0 -60
- package/dist/dashboard/dist/assets/index-9JxqY10c.css +0 -1
- package/dist/dashboard/dist/assets/index-CGCNZcwT.js +0 -60
- package/dist/dashboard/dist/assets/index-CI60x_dC.css +0 -1
- package/dist/dashboard/dist/assets/index-CTwrdVhA.js +0 -60
- package/dist/dashboard/dist/assets/index-DWbZtwHB.js +0 -60
- package/dist/dashboard/dist/index.html +0 -19
- package/dist/servers/http-server.d.ts +0 -22
- package/dist/servers/http-server.d.ts.map +0 -1
- package/dist/servers/mcp-server.d.ts +0 -27
- package/dist/servers/mcp-server.d.ts.map +0 -1
- package/dist/servers/sse-broadcaster.d.ts +0 -27
- 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
|
|
24
|
-
- `
|
|
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**:
|
|
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
|
-
│
|
|
114
|
-
│
|
|
115
|
-
│
|
|
116
|
-
│
|
|
117
|
-
│
|
|
118
|
-
│
|
|
119
|
-
│
|
|
120
|
-
│
|
|
121
|
-
│
|
|
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 `
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
220
|
+
### memory.get
|
|
221
221
|
|
|
222
|
-
Fetch full observation details by ID. Use after `
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
|
245
|
+
| `data` | string | yes | JSON string from a memory.transfer.export output |
|
|
246
246
|
|
|
247
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
270
|
+
### memory.help
|
|
271
271
|
|
|
272
272
|
Returns a short workflow guide for using memory tools effectively:
|
|
273
|
-
`
|
|
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: `
|
|
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
|
-
- `
|
|
306
|
-
- `
|
|
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 `
|
|
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
|
-
|
|
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":"
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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":"
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/ai/parser.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|