@pcircle/memesh 4.8.2 → 4.8.5
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +2 -1
- package/.codex-plugin/mcp.json +7 -0
- package/.codex-plugin/plugin.json +6 -0
- package/AGENTS.md +18 -8
- package/README.de.md +13 -11
- package/README.md +25 -12
- package/README.zh-TW.md +25 -12
- package/dashboard/dist/index.html +3 -3
- package/dist/core/agent-message-inbox.d.ts +3 -2
- package/dist/core/agent-message-inbox.d.ts.map +1 -1
- package/dist/core/agent-message-inbox.js +30 -6
- package/dist/core/agent-message-inbox.js.map +1 -1
- package/dist/core/agent-messaging.d.ts +7 -0
- package/dist/core/agent-messaging.d.ts.map +1 -1
- package/dist/core/agent-messaging.js +51 -24
- package/dist/core/agent-messaging.js.map +1 -1
- package/dist/core/agent-router.d.ts +27 -20
- package/dist/core/agent-router.d.ts.map +1 -1
- package/dist/core/agent-router.js +114 -43
- package/dist/core/agent-router.js.map +1 -1
- package/dist/core/agent-scope-id.d.ts +11 -0
- package/dist/core/agent-scope-id.d.ts.map +1 -0
- package/dist/core/agent-scope-id.js +40 -0
- package/dist/core/agent-scope-id.js.map +1 -0
- package/dist/core/briefing.d.ts +1 -1
- package/dist/core/briefing.d.ts.map +1 -1
- package/dist/core/briefing.js +25 -7
- package/dist/core/briefing.js.map +1 -1
- package/dist/core/citation-rule.d.ts.map +1 -1
- package/dist/core/citation-rule.js +5 -2
- package/dist/core/citation-rule.js.map +1 -1
- package/dist/core/doctor.d.ts +9 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +461 -24
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/dreamer.d.ts.map +1 -1
- package/dist/core/dreamer.js +3 -1
- package/dist/core/dreamer.js.map +1 -1
- package/dist/core/embedder.d.ts.map +1 -1
- package/dist/core/embedder.js +4 -1
- package/dist/core/embedder.js.map +1 -1
- package/dist/core/install-channel.d.ts +3 -0
- package/dist/core/install-channel.d.ts.map +1 -1
- package/dist/core/install-channel.js +79 -2
- package/dist/core/install-channel.js.map +1 -1
- package/dist/core/install-hooks.d.ts.map +1 -1
- package/dist/core/install-hooks.js +10 -6
- package/dist/core/install-hooks.js.map +1 -1
- package/dist/core/lesson-slug.d.ts.map +1 -1
- package/dist/core/lesson-slug.js +6 -4
- package/dist/core/lesson-slug.js.map +1 -1
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +8 -5
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/llm-client.d.ts.map +1 -1
- package/dist/core/llm-client.js +4 -1
- package/dist/core/llm-client.js.map +1 -1
- package/dist/core/llm-validator.d.ts.map +1 -1
- package/dist/core/llm-validator.js +6 -15
- package/dist/core/llm-validator.js.map +1 -1
- package/dist/core/memory-tool.d.ts.map +1 -1
- package/dist/core/memory-tool.js +3 -1
- package/dist/core/memory-tool.js.map +1 -1
- package/dist/core/ollama-host.d.ts +6 -0
- package/dist/core/ollama-host.d.ts.map +1 -0
- package/dist/core/ollama-host.js +62 -0
- package/dist/core/ollama-host.js.map +1 -0
- package/dist/core/operations.d.ts +1 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +1 -1
- package/dist/core/operations.js.map +1 -1
- package/dist/core/project-tags.d.ts +2 -0
- package/dist/core/project-tags.d.ts.map +1 -1
- package/dist/core/project-tags.js +29 -1
- package/dist/core/project-tags.js.map +1 -1
- package/dist/core/schema-export.d.ts.map +1 -1
- package/dist/core/schema-export.js +10 -8
- package/dist/core/schema-export.js.map +1 -1
- package/dist/core/version-check.d.ts +1 -0
- package/dist/core/version-check.d.ts.map +1 -1
- package/dist/core/version-check.js +35 -0
- package/dist/core/version-check.js.map +1 -1
- package/dist/core/work-topology.d.ts +3 -0
- package/dist/core/work-topology.d.ts.map +1 -1
- package/dist/core/work-topology.js +24 -2
- package/dist/core/work-topology.js.map +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +5 -2
- package/dist/db.js.map +1 -1
- package/dist/host-adapters/claude-channel.d.ts +0 -58
- package/dist/host-adapters/claude-channel.d.ts.map +1 -1
- package/dist/host-adapters/claude-channel.js +0 -242
- package/dist/host-adapters/claude-channel.js.map +1 -1
- package/dist/host-adapters/codex-cli-queue.d.ts.map +1 -1
- package/dist/host-adapters/codex-cli-queue.js +15 -12
- package/dist/host-adapters/codex-cli-queue.js.map +1 -1
- package/dist/host-runtime/acp.d.ts +2 -0
- package/dist/host-runtime/acp.d.ts.map +1 -1
- package/dist/host-runtime/acp.js +6 -1
- package/dist/host-runtime/acp.js.map +1 -1
- package/dist/host-runtime/claude.d.ts +2 -0
- package/dist/host-runtime/claude.d.ts.map +1 -1
- package/dist/host-runtime/claude.js +12 -13
- package/dist/host-runtime/claude.js.map +1 -1
- package/dist/host-runtime/codex-session.d.ts +3 -1
- package/dist/host-runtime/codex-session.d.ts.map +1 -1
- package/dist/host-runtime/codex-session.js +7 -5
- package/dist/host-runtime/codex-session.js.map +1 -1
- package/dist/host-runtime/codex.d.ts +2 -0
- package/dist/host-runtime/codex.d.ts.map +1 -1
- package/dist/host-runtime/codex.js +6 -1
- package/dist/host-runtime/codex.js.map +1 -1
- package/dist/host-runtime/entry.d.ts +5 -0
- package/dist/host-runtime/entry.d.ts.map +1 -0
- package/dist/host-runtime/entry.js +11 -0
- package/dist/host-runtime/entry.js.map +1 -0
- package/dist/host-runtime/router-client.d.ts +2 -0
- package/dist/host-runtime/router-client.d.ts.map +1 -1
- package/dist/host-runtime/router-client.js.map +1 -1
- package/dist/knowledge-graph.d.ts +0 -1
- package/dist/knowledge-graph.d.ts.map +1 -1
- package/dist/knowledge-graph.js +27 -19
- package/dist/knowledge-graph.js.map +1 -1
- package/dist/skills-manifest.json +40 -25
- package/dist/storage/entity-index.d.ts +4 -0
- package/dist/storage/entity-index.d.ts.map +1 -0
- package/dist/storage/entity-index.js +15 -0
- package/dist/storage/entity-index.js.map +1 -0
- package/dist/storage/fts-index.d.ts.map +1 -1
- package/dist/storage/fts-index.js +5 -0
- package/dist/storage/fts-index.js.map +1 -1
- package/dist/storage/graph-repairs.d.ts +11 -1
- package/dist/storage/graph-repairs.d.ts.map +1 -1
- package/dist/storage/graph-repairs.js +241 -30
- package/dist/storage/graph-repairs.js.map +1 -1
- package/dist/transports/agent-messaging.d.ts +10 -1
- package/dist/transports/agent-messaging.d.ts.map +1 -1
- package/dist/transports/agent-messaging.js +92 -9
- package/dist/transports/agent-messaging.js.map +1 -1
- package/dist/transports/cli/cli.d.ts +4 -0
- package/dist/transports/cli/cli.d.ts.map +1 -1
- package/dist/transports/cli/cli.js +88 -38
- package/dist/transports/cli/cli.js.map +1 -1
- package/dist/transports/mcp/handlers.d.ts +12 -8
- package/dist/transports/mcp/handlers.d.ts.map +1 -1
- package/dist/transports/mcp/handlers.js +23 -11
- package/dist/transports/mcp/handlers.js.map +1 -1
- package/dist/transports/schemas.d.ts +22 -17
- package/dist/transports/schemas.d.ts.map +1 -1
- package/dist/transports/schemas.js +25 -11
- package/dist/transports/schemas.js.map +1 -1
- package/docs/platforms/README.md +2 -2
- package/docs/platforms/agent-messaging.md +246 -36
- package/hooks/hooks.json +10 -0
- package/llms-install.md +29 -6
- package/package.json +13 -5
- package/scripts/hooks/_generated/agent-message-inbox.js +30 -6
- package/scripts/hooks/_generated/citation-rule.js +5 -2
- package/scripts/hooks/_generated/fts-index.js +5 -0
- package/scripts/hooks/_generated/work-topology.js +24 -2
- package/scripts/hooks/_shared.js +52 -4
- package/scripts/hooks/decision-nudge.js +152 -0
- package/scripts/hooks/post-commit.js +11 -0
- package/scripts/hooks/pre-compact.js +12 -4
- package/scripts/hooks/session-start.js +61 -26
- package/scripts/upgrade-plugin.sh +600 -81
- package/skills/memesh/SKILL.md +24 -5
- /package/{.mcp.json → .claude-plugin/mcp.json} +0 -0
|
@@ -1,25 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "memesh.skills-manifest/v1",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"path": ".claude-plugin/mcp.json",
|
|
6
|
+
"sha256": "b3f72e0ed3ca2d34267f25f5f478d6f9e087f4058fcbf2e72a89759a3e324aad",
|
|
7
|
+
"bytes": 132
|
|
8
|
+
},
|
|
4
9
|
{
|
|
5
10
|
"path": ".claude-plugin/plugin.json",
|
|
6
|
-
"sha256": "
|
|
7
|
-
"bytes":
|
|
11
|
+
"sha256": "e44629d387537f864f2bb637b752078d4701dacbc1ef893b41f60e812c98b2b4",
|
|
12
|
+
"bytes": 572
|
|
8
13
|
},
|
|
9
14
|
{
|
|
10
|
-
"path": ".mcp.json",
|
|
11
|
-
"sha256": "
|
|
12
|
-
"bytes":
|
|
15
|
+
"path": ".codex-plugin/mcp.json",
|
|
16
|
+
"sha256": "a6c6dd58b6ab5a3dd16fd776bdadb43e94f8140d970f1eca2d2294812321c80f",
|
|
17
|
+
"bytes": 98
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"path": ".codex-plugin/plugin.json",
|
|
21
|
+
"sha256": "b6c3d5f56425f81c131c52f708f6ef128244d6ccd37ac7361c8c5db3f1bc897d",
|
|
22
|
+
"bytes": 154
|
|
13
23
|
},
|
|
14
24
|
{
|
|
15
25
|
"path": "hooks/hooks.json",
|
|
16
|
-
"sha256": "
|
|
17
|
-
"bytes":
|
|
26
|
+
"sha256": "fbbaaeeafc11d799223bf0d8bb11f433354146787b38716af6bc31afb81d4755",
|
|
27
|
+
"bytes": 2340
|
|
18
28
|
},
|
|
19
29
|
{
|
|
20
30
|
"path": "scripts/hooks/_generated/agent-message-inbox.js",
|
|
21
|
-
"sha256": "
|
|
22
|
-
"bytes":
|
|
31
|
+
"sha256": "1b604e42353272175697fc02964f7ca477388616842a6cbdf13566293d8336aa",
|
|
32
|
+
"bytes": 2596
|
|
23
33
|
},
|
|
24
34
|
{
|
|
25
35
|
"path": "scripts/hooks/_generated/capture-flag.js",
|
|
@@ -28,8 +38,8 @@
|
|
|
28
38
|
},
|
|
29
39
|
{
|
|
30
40
|
"path": "scripts/hooks/_generated/citation-rule.js",
|
|
31
|
-
"sha256": "
|
|
32
|
-
"bytes":
|
|
41
|
+
"sha256": "754903707c63a2c9ad0e8307055a1c3abee2fccbd122c973d8177b22552b8fff",
|
|
42
|
+
"bytes": 3743
|
|
33
43
|
},
|
|
34
44
|
{
|
|
35
45
|
"path": "scripts/hooks/_generated/core-paths.js",
|
|
@@ -38,8 +48,8 @@
|
|
|
38
48
|
},
|
|
39
49
|
{
|
|
40
50
|
"path": "scripts/hooks/_generated/fts-index.js",
|
|
41
|
-
"sha256": "
|
|
42
|
-
"bytes":
|
|
51
|
+
"sha256": "a5700dca90523758cbd5ea00ea5f9a6ea6a0e33fc340de87246c6f67cccc1811",
|
|
52
|
+
"bytes": 4232
|
|
43
53
|
},
|
|
44
54
|
{
|
|
45
55
|
"path": "scripts/hooks/_generated/guards.js",
|
|
@@ -78,13 +88,18 @@
|
|
|
78
88
|
},
|
|
79
89
|
{
|
|
80
90
|
"path": "scripts/hooks/_generated/work-topology.js",
|
|
81
|
-
"sha256": "
|
|
82
|
-
"bytes":
|
|
91
|
+
"sha256": "3196a80c0d039d77ef5fef4911be54ec600035595e69e6915cfe237447fca526",
|
|
92
|
+
"bytes": 7891
|
|
83
93
|
},
|
|
84
94
|
{
|
|
85
95
|
"path": "scripts/hooks/_shared.js",
|
|
86
|
-
"sha256": "
|
|
87
|
-
"bytes":
|
|
96
|
+
"sha256": "0b5d4b4fe8521b9588153d0c6f6fd368d78e26653868648f17cbd0fa54c47691",
|
|
97
|
+
"bytes": 43559
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"path": "scripts/hooks/decision-nudge.js",
|
|
101
|
+
"sha256": "424bf5cd4f68cb55e441a5aed1db78b262df2a5ef4a7e60a56db2f9d3f103d5d",
|
|
102
|
+
"bytes": 7391
|
|
88
103
|
},
|
|
89
104
|
{
|
|
90
105
|
"path": "scripts/hooks/guard-check.js",
|
|
@@ -93,13 +108,13 @@
|
|
|
93
108
|
},
|
|
94
109
|
{
|
|
95
110
|
"path": "scripts/hooks/post-commit.js",
|
|
96
|
-
"sha256": "
|
|
97
|
-
"bytes":
|
|
111
|
+
"sha256": "9b7daa927105f238165724b29a024dfdfb8f4a6d2a61994f9dd97a06ffb3a421",
|
|
112
|
+
"bytes": 11099
|
|
98
113
|
},
|
|
99
114
|
{
|
|
100
115
|
"path": "scripts/hooks/pre-compact.js",
|
|
101
|
-
"sha256": "
|
|
102
|
-
"bytes":
|
|
116
|
+
"sha256": "78eb3c2b417ac33c8ff3c45c29b7c3afbae54a48fae15697cf1cb68c828b5e8e",
|
|
117
|
+
"bytes": 9283
|
|
103
118
|
},
|
|
104
119
|
{
|
|
105
120
|
"path": "scripts/hooks/pre-edit-recall.js",
|
|
@@ -108,8 +123,8 @@
|
|
|
108
123
|
},
|
|
109
124
|
{
|
|
110
125
|
"path": "scripts/hooks/session-start.js",
|
|
111
|
-
"sha256": "
|
|
112
|
-
"bytes":
|
|
126
|
+
"sha256": "9883ce003e9fa4326cfd71699d56365d6ec72e9f866b27566067c9d0c871b9b0",
|
|
127
|
+
"bytes": 62069
|
|
113
128
|
},
|
|
114
129
|
{
|
|
115
130
|
"path": "scripts/hooks/session-summary.js",
|
|
@@ -128,8 +143,8 @@
|
|
|
128
143
|
},
|
|
129
144
|
{
|
|
130
145
|
"path": "skills/memesh/SKILL.md",
|
|
131
|
-
"sha256": "
|
|
132
|
-
"bytes":
|
|
146
|
+
"sha256": "dac7e111c6db4ccb0a0b74dd9e330853988d40629ab8ff98f3ca8f9932cb526e",
|
|
147
|
+
"bytes": 17731
|
|
133
148
|
}
|
|
134
149
|
]
|
|
135
150
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MemeshDatabase } from './sqlite.js';
|
|
2
|
+
export declare function removeVectorRow(db: MemeshDatabase, entityId: number): void;
|
|
3
|
+
export declare function dropEntityFromIndexes(db: MemeshDatabase, entityId: number, name: string): void;
|
|
4
|
+
//# sourceMappingURL=entity-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-index.d.ts","sourceRoot":"","sources":["../../src/storage/entity-index.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkBlD,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAG1E;AAgBD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,IAAI,CAMN"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { hasVectorIndex } from './vector-index.js';
|
|
2
|
+
import { indexedObservationText, removeFromFts } from './fts-index.js';
|
|
3
|
+
export function removeVectorRow(db, entityId) {
|
|
4
|
+
if (!hasVectorIndex(db))
|
|
5
|
+
return;
|
|
6
|
+
db.prepare('DELETE FROM entities_vec WHERE rowid = ?').run(BigInt(entityId));
|
|
7
|
+
}
|
|
8
|
+
export function dropEntityFromIndexes(db, entityId, name) {
|
|
9
|
+
const titleRow = db
|
|
10
|
+
.prepare('SELECT title FROM entities WHERE id = ?')
|
|
11
|
+
.get(entityId);
|
|
12
|
+
removeFromFts(db, entityId, name, indexedObservationText(db, entityId), titleRow?.title ?? null);
|
|
13
|
+
removeVectorRow(db, entityId);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=entity-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-index.js","sourceRoot":"","sources":["../../src/storage/entity-index.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAgBvE,MAAM,UAAU,eAAe,CAAC,EAAkB,EAAE,QAAgB;IAClE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAAE,OAAO;IAChC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC;AAgBD,MAAM,UAAU,qBAAqB,CACnC,EAAkB,EAClB,QAAgB,EAChB,IAAY;IAEZ,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CAAC,yCAAyC,CAAC;SAClD,GAAG,CAAC,QAAQ,CAAyC,CAAC;IACzD,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;IACjG,eAAe,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fts-index.d.ts","sourceRoot":"","sources":["../../src/storage/fts-index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAwClE,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAW3E,CAAC;AAWF,eAAO,MAAM,qBAAqB,QAExB,CAAC;AA4BX,eAAO,MAAM,yBAAyB,QAC8C,CAAC;AA2BrF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa3D;AAwBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AA4BD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpD;AAmBD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAa7C,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAM5D;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAqBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CASpE;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAwCD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,IAAI,
|
|
1
|
+
{"version":3,"file":"fts-index.d.ts","sourceRoot":"","sources":["../../src/storage/fts-index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,aAAa,CAAC;AAwClE,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAW3E,CAAC;AAWF,eAAO,MAAM,qBAAqB,QAExB,CAAC;AA4BX,eAAO,MAAM,yBAAyB,QAC8C,CAAC;AA2BrF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAa3D;AAwBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AA4BD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpD;AAmBD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAa7C,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAM5D;AAiBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAqBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CASpE;AAKD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAwCD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,IAAI,CA8CN;AA4CD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAElE;AAcD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKnF;AAQD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,IAAI,CAQN"}
|
|
@@ -59,6 +59,11 @@ function foldTitleIntoObservations(title, observationsText) {
|
|
|
59
59
|
}
|
|
60
60
|
export function removeFromFts(db, entityId, name, prevObsText, prevTitle) {
|
|
61
61
|
try {
|
|
62
|
+
const indexed = db
|
|
63
|
+
.prepare('SELECT COUNT(*) AS c FROM entities_fts WHERE rowid = ?')
|
|
64
|
+
.get(entityId);
|
|
65
|
+
if (!indexed || indexed.c === 0)
|
|
66
|
+
return;
|
|
62
67
|
db.prepare("INSERT INTO entities_fts (entities_fts, rowid, name, observations) VALUES('delete', ?, ?, ?)").run(entityId, toIndexForm(name), toIndexForm(foldTitleIntoObservations(prevTitle, prevObsText)));
|
|
63
68
|
}
|
|
64
69
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fts-index.js","sourceRoot":"","sources":["../../src/storage/fts-index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fts-index.js","sourceRoot":"","sources":["../../src/storage/fts-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,21 @@ import type { MemeshDatabase } from './sqlite.js';
|
|
|
2
2
|
export declare const SESSION_DEDUPE_KEY = "session_observation_dedupe";
|
|
3
3
|
export declare const ZERO_EDIT_RETRACT_KEY = "session_zero_edit_retract";
|
|
4
4
|
export declare const FUSED_LESSON_SPLIT_KEY = "fused_lesson_split";
|
|
5
|
-
export declare
|
|
5
|
+
export declare const ARCHIVED_FTS_ROWS_KEY = "archived_fts_rows";
|
|
6
|
+
export declare const ARCHIVED_VECTOR_ROWS_KEY = "archived_vector_rows";
|
|
7
|
+
export declare const FUSED_LESSON_SHELL_HISTORY_RESET_KEY = "fused_lesson_shell_history_reset";
|
|
8
|
+
export declare function dedupeObservations(db: MemeshDatabase): number;
|
|
6
9
|
export declare function bashWritesFiles(command: string): boolean;
|
|
7
10
|
export declare function retractZeroEditClaims(db: MemeshDatabase): number;
|
|
8
11
|
export declare function splitFusedLessons(db: MemeshDatabase, deps: {
|
|
9
12
|
deriveTitle: (type: string, observations: string[]) => string | null;
|
|
10
13
|
markReindexOwed: (conn: MemeshDatabase) => void;
|
|
11
14
|
}): number;
|
|
15
|
+
export declare function dropArchivedIndexRows(db: MemeshDatabase): {
|
|
16
|
+
ftsRows: number;
|
|
17
|
+
vectorRows: number;
|
|
18
|
+
};
|
|
19
|
+
export declare function repairFusedLessonShellHistory(db: MemeshDatabase): number;
|
|
20
|
+
export declare const AGENT_SCOPE_PATH_KEY = "agent_scope_path_identity";
|
|
21
|
+
export declare function normalizeAgentScopePaths(db: MemeshDatabase): number;
|
|
12
22
|
//# sourceMappingURL=graph-repairs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-repairs.d.ts","sourceRoot":"","sources":["../../src/storage/graph-repairs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph-repairs.d.ts","sourceRoot":"","sources":["../../src/storage/graph-repairs.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWlD,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AACjE,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,oCAAoC,qCAAqC,CAAC;AAgIvF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CA4B7D;AAoBD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUxD;AAgBD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAgChE;AAiED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IACJ,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD,GACA,MAAM,CA8JR;AA6CD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,cAAc,GAAG;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CA0EA;AAsBD,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CA8BxE;AAED,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AA6EhE,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CA4EnE"}
|
|
@@ -1,25 +1,53 @@
|
|
|
1
1
|
import { rebuildFtsIndex, runOnceMigration } from './schema.js';
|
|
2
|
+
import { hasVectorIndex } from './vector-index.js';
|
|
2
3
|
import { lessonSlug } from '../core/lesson-slug.js';
|
|
4
|
+
import { AGENT_MESSAGE_SCOPE_COLUMNS, isFilesystemPathScopeId, lastPathSegment, } from '../core/agent-scope-id.js';
|
|
3
5
|
import { computeSignalScore } from '../core/signal-scorer.js';
|
|
4
6
|
export const SESSION_DEDUPE_KEY = 'session_observation_dedupe';
|
|
5
7
|
export const ZERO_EDIT_RETRACT_KEY = 'session_zero_edit_retract';
|
|
6
8
|
export const FUSED_LESSON_SPLIT_KEY = 'fused_lesson_split';
|
|
9
|
+
export const ARCHIVED_FTS_ROWS_KEY = 'archived_fts_rows';
|
|
10
|
+
export const ARCHIVED_VECTOR_ROWS_KEY = 'archived_vector_rows';
|
|
11
|
+
export const FUSED_LESSON_SHELL_HISTORY_RESET_KEY = 'fused_lesson_shell_history_reset';
|
|
7
12
|
const ZERO_EDITS = ', 0 files edited';
|
|
8
13
|
const ZERO_EDITS_RETRACTED = ', files edited through Bash (count not recorded before 4.8.2)';
|
|
9
14
|
function note(line) {
|
|
10
15
|
process.stderr.write(`MeMesh: ${line}\n`);
|
|
11
16
|
}
|
|
12
|
-
|
|
17
|
+
function retireRecallHistory(conn, id) {
|
|
18
|
+
const row = conn
|
|
19
|
+
.prepare('SELECT metadata, recall_hits, recall_misses FROM entities WHERE id = ?')
|
|
20
|
+
.get(id);
|
|
21
|
+
if (!row)
|
|
22
|
+
return;
|
|
23
|
+
const hits = row.recall_hits ?? 0;
|
|
24
|
+
const misses = row.recall_misses ?? 0;
|
|
25
|
+
if (hits === 0 && misses === 0)
|
|
26
|
+
return;
|
|
27
|
+
let metadata = {};
|
|
28
|
+
try {
|
|
29
|
+
const parsed = row.metadata ? JSON.parse(row.metadata) : {};
|
|
30
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
|
|
31
|
+
metadata = parsed;
|
|
32
|
+
}
|
|
33
|
+
catch { }
|
|
34
|
+
metadata.retired_recall = { hits, misses };
|
|
35
|
+
conn
|
|
36
|
+
.prepare('UPDATE entities SET metadata = ?, recall_hits = 0, recall_misses = 0 WHERE id = ?')
|
|
37
|
+
.run(JSON.stringify(metadata), id);
|
|
38
|
+
}
|
|
39
|
+
export function dedupeObservations(db) {
|
|
13
40
|
let removed = -1;
|
|
14
41
|
runOnceMigration(db, {
|
|
15
42
|
key: SESSION_DEDUPE_KEY,
|
|
16
|
-
version:
|
|
17
|
-
describe: '
|
|
43
|
+
version: 2,
|
|
44
|
+
describe: 'observation dedupe',
|
|
18
45
|
migrate: (conn) => {
|
|
19
46
|
const affected = conn
|
|
20
|
-
.prepare(`SELECT DISTINCT
|
|
21
|
-
|
|
22
|
-
|
|
47
|
+
.prepare(`SELECT DISTINCT o.entity_id AS id FROM observations o
|
|
48
|
+
JOIN entities e ON e.id = o.entity_id
|
|
49
|
+
WHERE e.type NOT IN ('lesson_learned', 'lesson', 'mistake')
|
|
50
|
+
GROUP BY o.entity_id, o.content HAVING COUNT(o.id) > 1`)
|
|
23
51
|
.all();
|
|
24
52
|
removed = 0;
|
|
25
53
|
const del = conn.prepare(`DELETE FROM observations WHERE entity_id = ? AND id NOT IN (
|
|
@@ -28,7 +56,7 @@ export function dedupeSessionObservations(db) {
|
|
|
28
56
|
removed += Number(del.run(row.id, row.id).changes);
|
|
29
57
|
if (removed > 0) {
|
|
30
58
|
rebuildFtsIndex(conn);
|
|
31
|
-
note(`removed ${removed} duplicate observation(s) from ${affected.length}
|
|
59
|
+
note(`removed ${removed} duplicate observation(s) from ${affected.length} entit${affected.length === 1 ? 'y' : 'ies'} (written by hooks up to 4.8.3).`);
|
|
32
60
|
}
|
|
33
61
|
},
|
|
34
62
|
});
|
|
@@ -93,11 +121,22 @@ function groupLessons(rows) {
|
|
|
93
121
|
}
|
|
94
122
|
return groups;
|
|
95
123
|
}
|
|
124
|
+
function legacyReadableLessonSlug(error) {
|
|
125
|
+
const words = error
|
|
126
|
+
.toLowerCase()
|
|
127
|
+
.replace(/[^a-z0-9\u4e00-\u9fff]+/g, ' ')
|
|
128
|
+
.trim()
|
|
129
|
+
.split(/\s+/)
|
|
130
|
+
.filter((w) => w.length > 1)
|
|
131
|
+
.slice(0, 8);
|
|
132
|
+
const slug = words.join('-');
|
|
133
|
+
return slug.length > 0 ? slug.slice(0, 80) : 'unspecified';
|
|
134
|
+
}
|
|
96
135
|
export function splitFusedLessons(db, deps) {
|
|
97
136
|
let moved = -1;
|
|
98
137
|
runOnceMigration(db, {
|
|
99
138
|
key: FUSED_LESSON_SPLIT_KEY,
|
|
100
|
-
version:
|
|
139
|
+
version: 2,
|
|
101
140
|
describe: 'fused lesson split',
|
|
102
141
|
migrate: (conn) => {
|
|
103
142
|
const buckets = conn
|
|
@@ -119,16 +158,11 @@ export function splitFusedLessons(db, deps) {
|
|
|
119
158
|
const archive = conn.prepare(`UPDATE entities SET status = 'archived' WHERE id = ? AND ${emptied}`);
|
|
120
159
|
moved = 0;
|
|
121
160
|
let bucketsTouched = 0;
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
if (groups.length === 0)
|
|
125
|
-
continue;
|
|
126
|
-
const tags = tagsOf.all(bucket.id).map((t) => t.tag);
|
|
127
|
-
const project = tags.find((t) => t.startsWith('project:'))?.slice('project:'.length) ??
|
|
128
|
-
bucket.name.slice('lesson-'.length, -'-other'.length);
|
|
161
|
+
let legacyReadableMoved = 0;
|
|
162
|
+
const moveLessonGroups = (source, project, groups, tags) => {
|
|
129
163
|
let inherited = {};
|
|
130
164
|
try {
|
|
131
|
-
const parsed =
|
|
165
|
+
const parsed = source.metadata ? JSON.parse(source.metadata) : {};
|
|
132
166
|
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
|
|
133
167
|
inherited = parsed;
|
|
134
168
|
}
|
|
@@ -139,14 +173,9 @@ export function splitFusedLessons(db, deps) {
|
|
|
139
173
|
carried.push(severities[0]);
|
|
140
174
|
if (!tags.includes('source:auto-learned'))
|
|
141
175
|
carried.push('source:explicit');
|
|
142
|
-
let
|
|
176
|
+
let movedFromSource = 0;
|
|
143
177
|
for (const group of groups) {
|
|
144
|
-
const
|
|
145
|
-
if (slug === 'other')
|
|
146
|
-
continue;
|
|
147
|
-
const name = `lesson-${project}-${slug}`;
|
|
148
|
-
if (name === bucket.name)
|
|
149
|
-
continue;
|
|
178
|
+
const name = `lesson-${project}-${lessonSlug(group.error)}`;
|
|
150
179
|
let target = findTarget.get(name);
|
|
151
180
|
if (target) {
|
|
152
181
|
if (target.status !== 'active')
|
|
@@ -154,11 +183,11 @@ export function splitFusedLessons(db, deps) {
|
|
|
154
183
|
}
|
|
155
184
|
else {
|
|
156
185
|
const contents = group.rows.map((o) => o.content);
|
|
157
|
-
const title = deps.deriveTitle(
|
|
186
|
+
const title = deps.deriveTitle(source.type, contents);
|
|
158
187
|
const metadata = {
|
|
159
188
|
...inherited,
|
|
160
|
-
split_from:
|
|
161
|
-
signal_score: computeSignalScore({ type:
|
|
189
|
+
split_from: source.name,
|
|
190
|
+
signal_score: computeSignalScore({ type: source.type, name, observations: contents, tags: carried }),
|
|
162
191
|
};
|
|
163
192
|
if (title)
|
|
164
193
|
metadata.title_source = 'heuristic';
|
|
@@ -167,7 +196,7 @@ export function splitFusedLessons(db, deps) {
|
|
|
167
196
|
delete metadata.guard;
|
|
168
197
|
delete metadata.evidence_for;
|
|
169
198
|
delete metadata.previous_namespace;
|
|
170
|
-
const inserted = insertEntity.run(name,
|
|
199
|
+
const inserted = insertEntity.run(name, source.type, group.rows[0].created_at, JSON.stringify(metadata), source.confidence, source.namespace, title);
|
|
171
200
|
target = { id: Number(inserted.lastInsertRowid), status: 'active' };
|
|
172
201
|
for (const tag of carried)
|
|
173
202
|
insertTag.run(target.id, tag);
|
|
@@ -175,20 +204,202 @@ export function splitFusedLessons(db, deps) {
|
|
|
175
204
|
for (const row of group.rows)
|
|
176
205
|
moveRow.run(target.id, row.id);
|
|
177
206
|
moved += 1;
|
|
178
|
-
|
|
207
|
+
movedFromSource += 1;
|
|
179
208
|
}
|
|
209
|
+
return movedFromSource;
|
|
210
|
+
};
|
|
211
|
+
for (const bucket of buckets) {
|
|
212
|
+
const groups = groupLessons(obsOf.all(bucket.id));
|
|
213
|
+
if (groups.length === 0)
|
|
214
|
+
continue;
|
|
215
|
+
const tags = tagsOf.all(bucket.id).map((t) => t.tag);
|
|
216
|
+
const project = tags.find((t) => t.startsWith('project:'))?.slice('project:'.length) ??
|
|
217
|
+
bucket.name.slice('lesson-'.length, -'-other'.length);
|
|
218
|
+
const movedFromBucket = moveLessonGroups(bucket, project, groups, tags);
|
|
180
219
|
dropExplicit.run(bucket.id, bucket.id);
|
|
181
|
-
archive.run(bucket.id, bucket.id)
|
|
220
|
+
if (archive.run(bucket.id, bucket.id).changes > 0)
|
|
221
|
+
retireRecallHistory(conn, bucket.id);
|
|
182
222
|
if (movedFromBucket > 0)
|
|
183
223
|
bucketsTouched += 1;
|
|
184
224
|
}
|
|
225
|
+
const legacyReadable = conn
|
|
226
|
+
.prepare(`SELECT e.id, e.name, e.type, e.namespace, e.confidence, e.metadata
|
|
227
|
+
FROM entities e
|
|
228
|
+
WHERE e.status = 'active'
|
|
229
|
+
AND e.type = 'lesson_learned'
|
|
230
|
+
AND e.name LIKE 'lesson-%'
|
|
231
|
+
AND e.name NOT LIKE 'lesson-%-other'
|
|
232
|
+
AND EXISTS (SELECT 1 FROM tags t WHERE t.entity_id = e.id AND t.tag = 'source:explicit')`)
|
|
233
|
+
.all();
|
|
234
|
+
for (const entity of legacyReadable) {
|
|
235
|
+
const rows = obsOf.all(entity.id);
|
|
236
|
+
const groups = groupLessons(rows);
|
|
237
|
+
if (groups.length === 0)
|
|
238
|
+
continue;
|
|
239
|
+
if (groups.reduce((n, group) => n + group.rows.length, 0) !== rows.length)
|
|
240
|
+
continue;
|
|
241
|
+
const tags = tagsOf.all(entity.id).map((t) => t.tag);
|
|
242
|
+
const project = tags.find((t) => t.startsWith('project:'))?.slice('project:'.length);
|
|
243
|
+
if (!project)
|
|
244
|
+
continue;
|
|
245
|
+
const suffix = entity.name.slice(`lesson-${project}-`.length);
|
|
246
|
+
if (tags.includes(`error-pattern:${suffix}`))
|
|
247
|
+
continue;
|
|
248
|
+
if (!groups.every((group) => `lesson-${project}-${legacyReadableLessonSlug(group.error)}` === entity.name))
|
|
249
|
+
continue;
|
|
250
|
+
const movedFromEntity = moveLessonGroups(entity, project, groups, tags);
|
|
251
|
+
if (archive.run(entity.id, entity.id).changes > 0)
|
|
252
|
+
retireRecallHistory(conn, entity.id);
|
|
253
|
+
legacyReadableMoved += movedFromEntity;
|
|
254
|
+
}
|
|
185
255
|
if (moved > 0) {
|
|
186
256
|
rebuildFtsIndex(conn);
|
|
187
257
|
deps.markReindexOwed(conn);
|
|
188
|
-
|
|
258
|
+
if (legacyReadableMoved === 0) {
|
|
259
|
+
note(`moved ${moved} lesson(s) out of ${bucketsTouched} "-other" bucket(s) into their own entities; run 'memesh reindex' to refresh their vectors.`);
|
|
260
|
+
}
|
|
261
|
+
else if (bucketsTouched === 0) {
|
|
262
|
+
note(`moved ${legacyReadableMoved} legacy readable-only lesson(s) into their canonical digest entities; run 'memesh reindex' to refresh their vectors.`);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
note(`moved ${moved - legacyReadableMoved} lesson(s) out of ${bucketsTouched} "-other" bucket(s) and ${legacyReadableMoved} legacy readable-only lesson(s) into their canonical digest entities; run 'memesh reindex' to refresh their vectors.`);
|
|
266
|
+
}
|
|
189
267
|
}
|
|
190
268
|
},
|
|
191
269
|
});
|
|
192
270
|
return moved;
|
|
193
271
|
}
|
|
272
|
+
export function dropArchivedIndexRows(db) {
|
|
273
|
+
const result = { ftsRows: -1, vectorRows: -1 };
|
|
274
|
+
runOnceMigration(db, {
|
|
275
|
+
key: ARCHIVED_FTS_ROWS_KEY,
|
|
276
|
+
version: 1,
|
|
277
|
+
describe: 'archived rows removed from the keyword index',
|
|
278
|
+
migrate: (conn) => {
|
|
279
|
+
const stale = conn
|
|
280
|
+
.prepare(`SELECT COUNT(*) AS n FROM entities_fts f
|
|
281
|
+
JOIN entities e ON e.id = f.rowid
|
|
282
|
+
WHERE e.status = 'archived'`)
|
|
283
|
+
.get();
|
|
284
|
+
result.ftsRows = stale.n;
|
|
285
|
+
rebuildFtsIndex(conn);
|
|
286
|
+
if (stale.n > 0) {
|
|
287
|
+
note(`removed ${stale.n} archived entit${stale.n === 1 ? 'y' : 'ies'} from the keyword index (archived before 4.8.4 by a path that left the index behind).`);
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
});
|
|
291
|
+
if (!hasVectorIndex(db))
|
|
292
|
+
return result;
|
|
293
|
+
runOnceMigration(db, {
|
|
294
|
+
key: ARCHIVED_VECTOR_ROWS_KEY,
|
|
295
|
+
version: 1,
|
|
296
|
+
describe: 'archived rows removed from the vector index',
|
|
297
|
+
migrate: (conn) => {
|
|
298
|
+
const removed = conn
|
|
299
|
+
.prepare(`DELETE FROM entities_vec WHERE rowid IN
|
|
300
|
+
(SELECT e.id FROM entities e WHERE e.status = 'archived')`)
|
|
301
|
+
.run();
|
|
302
|
+
result.vectorRows = Number(removed.changes);
|
|
303
|
+
if (result.vectorRows > 0) {
|
|
304
|
+
note(`removed ${result.vectorRows} archived entit${result.vectorRows === 1 ? 'y' : 'ies'} from the vector index; they were taking recall slots from live memories.`);
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
});
|
|
308
|
+
return result;
|
|
309
|
+
}
|
|
310
|
+
export function repairFusedLessonShellHistory(db) {
|
|
311
|
+
let retired = -1;
|
|
312
|
+
runOnceMigration(db, {
|
|
313
|
+
key: FUSED_LESSON_SHELL_HISTORY_RESET_KEY,
|
|
314
|
+
version: 1,
|
|
315
|
+
describe: 'fused lesson shell history reset',
|
|
316
|
+
migrate: (conn) => {
|
|
317
|
+
const shells = conn
|
|
318
|
+
.prepare(`SELECT e.id, e.name FROM entities e
|
|
319
|
+
WHERE e.type = 'lesson_learned' AND e.status = 'archived'
|
|
320
|
+
AND (COALESCE(e.recall_hits, 0) > 0 OR COALESCE(e.recall_misses, 0) > 0)
|
|
321
|
+
AND NOT EXISTS (SELECT 1 FROM observations o WHERE o.entity_id = e.id)
|
|
322
|
+
AND EXISTS (
|
|
323
|
+
SELECT 1 FROM entities s
|
|
324
|
+
WHERE json_extract(s.metadata, '$.split_from') = e.name
|
|
325
|
+
)`)
|
|
326
|
+
.all();
|
|
327
|
+
retired = 0;
|
|
328
|
+
for (const shell of shells) {
|
|
329
|
+
retireRecallHistory(conn, shell.id);
|
|
330
|
+
retired += 1;
|
|
331
|
+
}
|
|
332
|
+
if (retired > 0) {
|
|
333
|
+
note(`retired stale recall history on ${retired} archived lesson shell(s) split before this fix existed.`);
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
});
|
|
337
|
+
return retired;
|
|
338
|
+
}
|
|
339
|
+
export const AGENT_SCOPE_PATH_KEY = 'agent_scope_path_identity';
|
|
340
|
+
export function normalizeAgentScopePaths(db) {
|
|
341
|
+
let rewritten = -1;
|
|
342
|
+
runOnceMigration(db, {
|
|
343
|
+
key: AGENT_SCOPE_PATH_KEY,
|
|
344
|
+
version: 1,
|
|
345
|
+
describe: 'agent message scope path identities',
|
|
346
|
+
migrate: (conn) => {
|
|
347
|
+
rewritten = 0;
|
|
348
|
+
let merged = 0;
|
|
349
|
+
let blocked = 0;
|
|
350
|
+
let discarded = 0;
|
|
351
|
+
const pairs = new Set();
|
|
352
|
+
for (const { table, columns } of AGENT_MESSAGE_SCOPE_COLUMNS) {
|
|
353
|
+
for (const column of columns) {
|
|
354
|
+
let values;
|
|
355
|
+
try {
|
|
356
|
+
values = conn.prepare(`SELECT DISTINCT ${column} AS v FROM ${table}`).all();
|
|
357
|
+
}
|
|
358
|
+
catch {
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
361
|
+
const update = conn.prepare(`UPDATE ${table} SET ${column} = ? WHERE rowid = ?`);
|
|
362
|
+
const drop = conn.prepare(`DELETE FROM ${table} WHERE rowid = ?`);
|
|
363
|
+
const ids = conn.prepare(`SELECT rowid AS rid FROM ${table} WHERE ${column} = ?`);
|
|
364
|
+
const exists = conn.prepare(`SELECT 1 AS hit FROM ${table} WHERE ${column} = ? LIMIT 1`);
|
|
365
|
+
for (const { v } of values) {
|
|
366
|
+
if (typeof v !== 'string' || !isFilesystemPathScopeId(v))
|
|
367
|
+
continue;
|
|
368
|
+
const target = lastPathSegment(v);
|
|
369
|
+
if (target === null)
|
|
370
|
+
continue;
|
|
371
|
+
const isMerge = exists.get(target) !== undefined;
|
|
372
|
+
const rows = ids.all(v);
|
|
373
|
+
for (const { rid } of rows) {
|
|
374
|
+
try {
|
|
375
|
+
const changed = Number(update.run(target, rid).changes);
|
|
376
|
+
rewritten += changed;
|
|
377
|
+
if (changed > 0 && isMerge)
|
|
378
|
+
merged += changed;
|
|
379
|
+
}
|
|
380
|
+
catch {
|
|
381
|
+
if (table === 'agent_message_cursors') {
|
|
382
|
+
discarded += Number(drop.run(rid).changes);
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
blocked += 1;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
if (rows.length > 0)
|
|
390
|
+
pairs.add(`${v} → ${target}`);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
if (rewritten > 0 || discarded > 0) {
|
|
395
|
+
const detail = [...pairs].join(', ');
|
|
396
|
+
note(`rewrote ${rewritten} filesystem-path message scope value(s) to their identity name (${detail})`
|
|
397
|
+
+ `${merged > 0 ? `; ${merged} joined an identity that already existed` : ''}`
|
|
398
|
+
+ `${discarded > 0 ? `; ${discarded} duplicate poll cursor(s) dropped` : ''}`
|
|
399
|
+
+ `${blocked > 0 ? `; ${blocked} left in place because the canonical spelling already holds an equivalent row` : ''}.`);
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
});
|
|
403
|
+
return rewritten;
|
|
404
|
+
}
|
|
194
405
|
//# sourceMappingURL=graph-repairs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-repairs.js","sourceRoot":"","sources":["../../src/storage/graph-repairs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph-repairs.js","sourceRoot":"","sources":["../../src/storage/graph-repairs.ts"],"names":[],"mappings":"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"}
|