@cat-factory/worker 0.15.0 → 0.16.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/dist/infrastructure/repositories/D1DocumentRepository.d.ts +1 -0
- package/dist/infrastructure/repositories/D1DocumentRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1DocumentRepository.js +14 -3
- package/dist/infrastructure/repositories/D1DocumentRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1TaskRepository.d.ts +1 -0
- package/dist/infrastructure/repositories/D1TaskRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1TaskRepository.js +9 -0
- package/dist/infrastructure/repositories/D1TaskRepository.js.map +1 -1
- package/migrations/0010_document_content_hash.sql +5 -0
- package/package.json +11 -11
|
@@ -10,6 +10,7 @@ export declare class D1DocumentRepository implements DocumentRepository {
|
|
|
10
10
|
get(workspaceId: string, source: DocumentSourceKind, externalId: string): Promise<DocumentRecord | null>;
|
|
11
11
|
listByWorkspace(workspaceId: string): Promise<DocumentRecord[]>;
|
|
12
12
|
listByBlock(workspaceId: string, blockId: string): Promise<DocumentRecord[]>;
|
|
13
|
+
getByUrl(workspaceId: string, url: string): Promise<DocumentRecord | null>;
|
|
13
14
|
linkBlock(workspaceId: string, source: DocumentSourceKind, externalId: string, blockId: string | null): Promise<void>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=D1DocumentRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1DocumentRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1DocumentRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"D1DocumentRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1DocumentRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAEjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAgC3D,yFAAyF;AACzF,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BlD;IAEK,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQhC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQpE;IAEK,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAQjF;IAEK,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAS/E;IAEK,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAOf;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { urlMatchCandidates } from '@cat-factory/kernel';
|
|
1
2
|
function rowToRecord(row) {
|
|
2
3
|
return {
|
|
3
4
|
workspaceId: row.workspace_id,
|
|
@@ -7,6 +8,7 @@ function rowToRecord(row) {
|
|
|
7
8
|
url: row.url,
|
|
8
9
|
excerpt: row.excerpt,
|
|
9
10
|
body: row.body,
|
|
11
|
+
contentHash: row.content_hash ?? '',
|
|
10
12
|
linkedBlockId: row.linked_block_id,
|
|
11
13
|
syncedAt: row.synced_at,
|
|
12
14
|
deletedAt: row.deleted_at,
|
|
@@ -22,17 +24,18 @@ export class D1DocumentRepository {
|
|
|
22
24
|
await this.db
|
|
23
25
|
.prepare(`INSERT INTO documents
|
|
24
26
|
(workspace_id, source, external_id, title, url, excerpt, body,
|
|
25
|
-
linked_block_id, synced_at, deleted_at)
|
|
26
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL)
|
|
27
|
+
content_hash, linked_block_id, synced_at, deleted_at)
|
|
28
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL)
|
|
27
29
|
ON CONFLICT (workspace_id, source, external_id) DO UPDATE SET
|
|
28
30
|
title = excluded.title,
|
|
29
31
|
url = excluded.url,
|
|
30
32
|
excerpt = excluded.excerpt,
|
|
31
33
|
body = excluded.body,
|
|
34
|
+
content_hash = excluded.content_hash,
|
|
32
35
|
linked_block_id = excluded.linked_block_id,
|
|
33
36
|
synced_at = excluded.synced_at,
|
|
34
37
|
deleted_at = NULL`)
|
|
35
|
-
.bind(record.workspaceId, record.source, record.externalId, record.title, record.url, record.excerpt, record.body, record.linkedBlockId, record.syncedAt)
|
|
38
|
+
.bind(record.workspaceId, record.source, record.externalId, record.title, record.url, record.excerpt, record.body, record.contentHash, record.linkedBlockId, record.syncedAt)
|
|
36
39
|
.run();
|
|
37
40
|
}
|
|
38
41
|
async get(workspaceId, source, externalId) {
|
|
@@ -56,6 +59,14 @@ export class D1DocumentRepository {
|
|
|
56
59
|
.all();
|
|
57
60
|
return results.map(rowToRecord);
|
|
58
61
|
}
|
|
62
|
+
async getByUrl(workspaceId, url) {
|
|
63
|
+
const [a, b] = urlMatchCandidates(url);
|
|
64
|
+
const row = await this.db
|
|
65
|
+
.prepare('SELECT * FROM documents WHERE workspace_id = ? AND url IN (?, ?) AND deleted_at IS NULL ORDER BY synced_at DESC LIMIT 1')
|
|
66
|
+
.bind(workspaceId, a, b)
|
|
67
|
+
.first();
|
|
68
|
+
return row ? rowToRecord(row) : null;
|
|
69
|
+
}
|
|
59
70
|
async linkBlock(workspaceId, source, externalId, blockId) {
|
|
60
71
|
await this.db
|
|
61
72
|
.prepare('UPDATE documents SET linked_block_id = ? WHERE workspace_id = ? AND source = ? AND external_id = ?')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1DocumentRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1DocumentRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"D1DocumentRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1DocumentRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare class D1TaskRepository implements TaskRepository {
|
|
|
10
10
|
get(workspaceId: string, source: TaskSourceKind, externalId: string): Promise<TaskRecord | null>;
|
|
11
11
|
listByWorkspace(workspaceId: string): Promise<TaskRecord[]>;
|
|
12
12
|
listByBlock(workspaceId: string, blockId: string): Promise<TaskRecord[]>;
|
|
13
|
+
getByUrl(workspaceId: string, url: string): Promise<TaskRecord | null>;
|
|
13
14
|
linkBlock(workspaceId: string, source: TaskSourceKind, externalId: string, blockId: string | null): Promise<void>;
|
|
14
15
|
}
|
|
15
16
|
//# sourceMappingURL=D1TaskRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1TaskRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1TaskRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"D1TaskRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1TaskRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAElG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAqD3D,sFAAsF;AACtF,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC9C;IAEK,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQ5B;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAQhE;IAEK,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAQ7E;IAEK,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAS3E;IAEK,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAOf;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { urlMatchCandidates } from '@cat-factory/kernel';
|
|
1
2
|
/** Parse a JSON column, falling back to an empty array on anything malformed. */
|
|
2
3
|
function parseJsonArray(json) {
|
|
3
4
|
try {
|
|
@@ -80,6 +81,14 @@ export class D1TaskRepository {
|
|
|
80
81
|
.all();
|
|
81
82
|
return results.map(rowToRecord);
|
|
82
83
|
}
|
|
84
|
+
async getByUrl(workspaceId, url) {
|
|
85
|
+
const [a, b] = urlMatchCandidates(url);
|
|
86
|
+
const row = await this.db
|
|
87
|
+
.prepare('SELECT * FROM tasks WHERE workspace_id = ? AND url IN (?, ?) AND deleted_at IS NULL ORDER BY synced_at DESC LIMIT 1')
|
|
88
|
+
.bind(workspaceId, a, b)
|
|
89
|
+
.first();
|
|
90
|
+
return row ? rowToRecord(row) : null;
|
|
91
|
+
}
|
|
83
92
|
async linkBlock(workspaceId, source, externalId, blockId) {
|
|
84
93
|
await this.db
|
|
85
94
|
.prepare('UPDATE tasks SET linked_block_id = ? WHERE workspace_id = ? AND source = ? AND external_id = ?')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1TaskRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1TaskRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"D1TaskRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1TaskRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
-- A cheap content-change digest (FNV-1a hex of the normalized Markdown `body`) on each
|
|
2
|
+
-- imported document projection, so a re-import whose body is byte-for-byte unchanged is a
|
|
3
|
+
-- no-op (the existing row, block link and synced time are preserved). Defaults to '' for
|
|
4
|
+
-- pre-existing rows; the next import recomputes it.
|
|
5
|
+
ALTER TABLE documents ADD COLUMN content_hash TEXT NOT NULL DEFAULT '';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Reusable Cloudflare Worker library (Hono + D1) exposing the Agent Architecture Board core: the `createApp()` Hono factory, the default fetch/scheduled/queue handler, and the Durable Object + Workflow classes. Deployments (see deploy/backend) supply the wrangler.toml + config and re-export these.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -39,17 +39,17 @@
|
|
|
39
39
|
"pino": "^10.3.1",
|
|
40
40
|
"valibot": "^1.4.1",
|
|
41
41
|
"workers-ai-provider": "^3.2.0",
|
|
42
|
-
"@cat-factory/agents": "0.
|
|
43
|
-
"@cat-factory/consensus": "0.7.
|
|
42
|
+
"@cat-factory/agents": "0.12.0",
|
|
43
|
+
"@cat-factory/consensus": "0.7.27",
|
|
44
44
|
"@cat-factory/contracts": "0.20.0",
|
|
45
|
-
"@cat-factory/integrations": "0.
|
|
46
|
-
"@cat-factory/kernel": "0.
|
|
47
|
-
"@cat-factory/observability-langfuse": "0.7.
|
|
48
|
-
"@cat-factory/orchestration": "0.
|
|
45
|
+
"@cat-factory/integrations": "0.16.0",
|
|
46
|
+
"@cat-factory/kernel": "0.20.0",
|
|
47
|
+
"@cat-factory/observability-langfuse": "0.7.25",
|
|
48
|
+
"@cat-factory/orchestration": "0.15.0",
|
|
49
49
|
"@cat-factory/prompt-fragments": "0.7.17",
|
|
50
|
-
"@cat-factory/provider-cloudflare": "0.7.
|
|
51
|
-
"@cat-factory/server": "0.
|
|
52
|
-
"@cat-factory/spend": "0.8.
|
|
50
|
+
"@cat-factory/provider-cloudflare": "0.7.27",
|
|
51
|
+
"@cat-factory/server": "0.21.0",
|
|
52
|
+
"@cat-factory/spend": "0.8.19"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@cloudflare/vitest-pool-workers": "^0.16.19",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"typescript": "7.0.1-rc",
|
|
58
58
|
"vitest": "^4.1.9",
|
|
59
59
|
"wrangler": "^4.104.0",
|
|
60
|
-
"@cat-factory/conformance": "0.7.
|
|
60
|
+
"@cat-factory/conformance": "0.7.27"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"build": "tsc -b tsconfig.build.json",
|