@anchrd/intel-api 0.6.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -3
- package/dist/adapters/cloudflare/cloudflare.js +50 -16
- package/dist/adapters/cloudflare/cloudflare.types.d.ts +11 -0
- package/dist/adapters/content/content.d.ts +1 -1
- package/dist/adapters/db/db-flows.js +161 -20
- package/dist/adapters/db/db-grants.d.ts +13 -2
- package/dist/adapters/db/db-grants.js +25 -8
- package/dist/adapters/db/db-indexing.d.ts +2 -2
- package/dist/adapters/db/db-indexing.js +26 -19
- package/dist/adapters/db/db.d.ts +3 -3
- package/dist/adapters/db/db.js +448 -119
- package/dist/adapters/gate-applications/gate-applications.d.ts +23 -0
- package/dist/adapters/gate-applications/gate-applications.js +66 -0
- package/dist/adapters/index-queue/index-queue.d.ts +1 -1
- package/dist/adapters/index-queue/index-queue.js +2 -2
- package/dist/adapters/semantic-index/semantic-index.types.d.ts +2 -2
- package/dist/agent-runtime/agent-runtime.d.ts +16 -0
- package/dist/agent-runtime/agent-runtime.js +76 -0
- package/dist/agent-runtime/agent-runtime.types.d.ts +57 -0
- package/dist/bundle/bundle.d.ts +4 -0
- package/dist/bundle/bundle.js +1035 -0
- package/dist/bundle/bundle.types.d.ts +33 -0
- package/dist/bundle/bundle.types.js +1 -0
- package/dist/cli/cli.js +10 -1
- package/dist/flows/flows.d.ts +8 -8
- package/dist/flows/flows.js +158 -42
- package/dist/flows/flows.types.d.ts +40 -7
- package/dist/http/http.d.ts +1 -0
- package/dist/http/http.js +329 -63
- package/dist/http/http.types.d.ts +6 -2
- package/dist/indexing/indexing.js +14 -2
- package/dist/indexing/indexing.types.d.ts +2 -2
- package/dist/intel/intel.js +12 -3
- package/dist/intel/intel.types.d.ts +6 -2
- package/dist/mcp/mcp.js +483 -124
- package/dist/mcp/mcp.types.d.ts +11 -2
- package/dist/nodes/nodes.d.ts +2 -0
- package/dist/nodes/nodes.js +1337 -0
- package/dist/nodes/nodes.types.d.ts +314 -0
- package/dist/nodes/nodes.types.js +1 -0
- package/migrations/0011_one_name_for_the_tree.sql +53 -0
- package/migrations/0012_table_snapshots.sql +29 -0
- package/migrations/0013_agents_in_the_tree.sql +76 -0
- package/migrations/0014_agent_applications.sql +25 -0
- package/package.json +3 -2
- package/dist/knowledge/knowledge.d.ts +0 -2
- package/dist/knowledge/knowledge.js +0 -761
- package/dist/knowledge/knowledge.types.d.ts +0 -198
- /package/dist/{knowledge/knowledge.types.js → agent-runtime/agent-runtime.types.js} +0 -0
- /package/dist/{knowledge → nodes}/document-links/document-links.d.ts +0 -0
- /package/dist/{knowledge → nodes}/document-links/document-links.js +0 -0
|
@@ -3,20 +3,21 @@ function mapTarget(row, contentKeys) {
|
|
|
3
3
|
nodeId: row.node_id,
|
|
4
4
|
versionId: row.version_id,
|
|
5
5
|
title: row.title,
|
|
6
|
+
description: row.description,
|
|
6
7
|
contentKeys,
|
|
7
8
|
mediaType: row.media_type,
|
|
8
9
|
kind: row.kind,
|
|
9
10
|
updatedAt: row.updated_at,
|
|
10
11
|
};
|
|
11
12
|
}
|
|
12
|
-
export function
|
|
13
|
+
export function createNodeIndexRepository(db) {
|
|
13
14
|
return {
|
|
14
15
|
async getTarget(versionId) {
|
|
15
16
|
const row = await db
|
|
16
|
-
.prepare(`SELECT n.id AS node_id, v.id AS version_id, n.title, v.content_key,
|
|
17
|
+
.prepare(`SELECT n.id AS node_id, v.id AS version_id, n.title, n.description, v.content_key,
|
|
17
18
|
v.media_type, n.kind, n.updated_at
|
|
18
|
-
FROM
|
|
19
|
-
JOIN
|
|
19
|
+
FROM node_versions v
|
|
20
|
+
JOIN nodes n ON n.id = v.node_id
|
|
20
21
|
WHERE v.id = ? AND n.current_version_id = v.id AND n.archived_at IS NULL`)
|
|
21
22
|
.bind(versionId)
|
|
22
23
|
.first();
|
|
@@ -24,27 +25,33 @@ export function createKnowledgeIndexRepository(db) {
|
|
|
24
25
|
return null;
|
|
25
26
|
if (row.kind !== "table")
|
|
26
27
|
return mapTarget(row, [row.content_key]);
|
|
27
|
-
// A table's rows live in every
|
|
28
|
-
// find only what the last append added (#40)
|
|
28
|
+
// A table's rows live in every segment since the newest snapshot, so indexing the newest one
|
|
29
|
+
// alone would make a search find only what the last append added (#40) — and indexing the
|
|
30
|
+
// segments before a snapshot would make it find rows a mutation removed (#135). The same
|
|
31
|
+
// reading rule as `listVersionContentKeys`, because the index must describe what a read sees.
|
|
29
32
|
const segments = await db
|
|
30
|
-
.prepare(`SELECT content_key FROM
|
|
31
|
-
WHERE node_id = ?
|
|
32
|
-
|
|
33
|
+
.prepare(`SELECT content_key FROM node_versions
|
|
34
|
+
WHERE node_id = ? AND sequence >= COALESCE((
|
|
35
|
+
SELECT MAX(sequence) FROM node_versions
|
|
36
|
+
WHERE node_id = ? AND segment = 'snapshot'
|
|
37
|
+
), 0)
|
|
38
|
+
ORDER BY sequence`)
|
|
39
|
+
.bind(row.node_id, row.node_id)
|
|
33
40
|
.all();
|
|
34
41
|
return mapTarget(row, (segments.results ?? []).map((segment) => segment.content_key));
|
|
35
42
|
},
|
|
36
43
|
async replace(target, content) {
|
|
37
44
|
await db.batch([
|
|
38
45
|
db
|
|
39
|
-
.prepare(`DELETE FROM
|
|
40
|
-
SELECT 1 FROM
|
|
46
|
+
.prepare(`DELETE FROM node_fts WHERE node_id = ? AND EXISTS (
|
|
47
|
+
SELECT 1 FROM nodes
|
|
41
48
|
WHERE id = ? AND current_version_id = ? AND archived_at IS NULL
|
|
42
49
|
)`)
|
|
43
50
|
.bind(target.nodeId, target.nodeId, target.versionId),
|
|
44
51
|
db
|
|
45
|
-
.prepare(`INSERT INTO
|
|
52
|
+
.prepare(`INSERT INTO node_fts (version_id, node_id, title, content)
|
|
46
53
|
SELECT ?, ?, ?, ? WHERE EXISTS (
|
|
47
|
-
SELECT 1 FROM
|
|
54
|
+
SELECT 1 FROM nodes
|
|
48
55
|
WHERE id = ? AND current_version_id = ? AND archived_at IS NULL
|
|
49
56
|
)`)
|
|
50
57
|
.bind(target.versionId, target.nodeId, target.title, content, target.nodeId, target.versionId),
|
|
@@ -52,12 +59,12 @@ export function createKnowledgeIndexRepository(db) {
|
|
|
52
59
|
},
|
|
53
60
|
async markIndexed(versionId, occurredAt) {
|
|
54
61
|
await db
|
|
55
|
-
.prepare(`UPDATE
|
|
62
|
+
.prepare(`UPDATE node_index_state
|
|
56
63
|
SET status = 'indexed', attempt_count = attempt_count + 1,
|
|
57
64
|
last_error = NULL, updated_at = ?
|
|
58
65
|
WHERE version_id = ? AND EXISTS (
|
|
59
|
-
SELECT 1 FROM
|
|
60
|
-
JOIN
|
|
66
|
+
SELECT 1 FROM node_versions version
|
|
67
|
+
JOIN nodes node ON node.id = version.node_id
|
|
61
68
|
WHERE version.id = ? AND node.current_version_id = version.id
|
|
62
69
|
AND node.archived_at IS NULL
|
|
63
70
|
)`)
|
|
@@ -66,11 +73,11 @@ export function createKnowledgeIndexRepository(db) {
|
|
|
66
73
|
},
|
|
67
74
|
async markError(versionId, message, occurredAt) {
|
|
68
75
|
await db
|
|
69
|
-
.prepare(`UPDATE
|
|
76
|
+
.prepare(`UPDATE node_index_state
|
|
70
77
|
SET status = 'error', attempt_count = attempt_count + 1,
|
|
71
78
|
last_error = ?, updated_at = ? WHERE version_id = ? AND EXISTS (
|
|
72
|
-
SELECT 1 FROM
|
|
73
|
-
JOIN
|
|
79
|
+
SELECT 1 FROM node_versions version
|
|
80
|
+
JOIN nodes node ON node.id = version.node_id
|
|
74
81
|
WHERE version.id = ? AND node.current_version_id = version.id
|
|
75
82
|
AND node.archived_at IS NULL
|
|
76
83
|
)`)
|
package/dist/adapters/db/db.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NodeRepository } from "../../nodes/nodes.types.js";
|
|
2
2
|
import type { D1Database } from "./db.types.js";
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function createNodeRepository(deps: {
|
|
4
4
|
db: D1Database;
|
|
5
5
|
now(): Date;
|
|
6
|
-
}):
|
|
6
|
+
}): NodeRepository;
|