pilotswarm-sdk 0.2.2 → 0.3.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/agent-loader.d.ts +8 -6
- package/dist/agent-loader.d.ts.map +1 -1
- package/dist/agent-loader.js +5 -1
- package/dist/agent-loader.js.map +1 -1
- package/dist/facts-migrations.d.ts.map +1 -1
- package/dist/facts-migrations.js +176 -0
- package/dist/facts-migrations.js.map +1 -1
- package/dist/facts-store.d.ts +39 -12
- package/dist/facts-store.d.ts.map +1 -1
- package/dist/facts-store.js +76 -22
- package/dist/facts-store.js.map +1 -1
- package/dist/facts-tools.d.ts +4 -0
- package/dist/facts-tools.d.ts.map +1 -1
- package/dist/facts-tools.js +24 -16
- package/dist/facts-tools.js.map +1 -1
- package/dist/graph-tools.d.ts +8 -6
- package/dist/graph-tools.d.ts.map +1 -1
- package/dist/graph-tools.js +37 -26
- package/dist/graph-tools.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/orchestration/index.d.ts +2 -2
- package/dist/orchestration/index.js +1 -1
- package/dist/orchestration/lifecycle.d.ts.map +1 -1
- package/dist/orchestration/lifecycle.js +1 -0
- package/dist/orchestration/lifecycle.js.map +1 -1
- package/dist/orchestration/runtime.d.ts +1 -1
- package/dist/orchestration/runtime.d.ts.map +1 -1
- package/dist/orchestration/runtime.js +4 -0
- package/dist/orchestration/runtime.js.map +1 -1
- package/dist/orchestration-registry.d.ts.map +1 -1
- package/dist/orchestration-registry.js +4 -2
- package/dist/orchestration-registry.js.map +1 -1
- package/dist/orchestration-version.d.ts +1 -1
- package/dist/orchestration-version.js +1 -1
- package/dist/orchestration.d.ts +2 -2
- package/dist/orchestration.js +1 -1
- package/dist/orchestration_1_0_46.d.ts +1 -1
- package/dist/orchestration_1_0_47.d.ts +1 -1
- package/dist/orchestration_1_0_48.d.ts +1 -1
- package/dist/orchestration_1_0_49.d.ts +1 -1
- package/dist/orchestration_1_0_50.d.ts +1 -1
- package/dist/orchestration_1_0_53/agents.d.ts +41 -0
- package/dist/orchestration_1_0_53/agents.d.ts.map +1 -0
- package/dist/orchestration_1_0_53/agents.js +758 -0
- package/dist/orchestration_1_0_53/agents.js.map +1 -0
- package/dist/orchestration_1_0_53/index.d.ts +24 -0
- package/dist/orchestration_1_0_53/index.d.ts.map +1 -0
- package/dist/orchestration_1_0_53/index.js +13 -0
- package/dist/orchestration_1_0_53/index.js.map +1 -0
- package/dist/orchestration_1_0_53/lifecycle.d.ts +41 -0
- package/dist/orchestration_1_0_53/lifecycle.d.ts.map +1 -0
- package/dist/orchestration_1_0_53/lifecycle.js +509 -0
- package/dist/orchestration_1_0_53/lifecycle.js.map +1 -0
- package/dist/orchestration_1_0_53/queue.d.ts +7 -0
- package/dist/orchestration_1_0_53/queue.d.ts.map +1 -0
- package/dist/orchestration_1_0_53/queue.js +644 -0
- package/dist/orchestration_1_0_53/queue.js.map +1 -0
- package/dist/orchestration_1_0_53/runtime.d.ts +29 -0
- package/dist/orchestration_1_0_53/runtime.d.ts.map +1 -0
- package/dist/orchestration_1_0_53/runtime.js +190 -0
- package/dist/orchestration_1_0_53/runtime.js.map +1 -0
- package/dist/orchestration_1_0_53/state.d.ts +125 -0
- package/dist/orchestration_1_0_53/state.d.ts.map +1 -0
- package/dist/orchestration_1_0_53/state.js +105 -0
- package/dist/orchestration_1_0_53/state.js.map +1 -0
- package/dist/orchestration_1_0_53/turn.d.ts +6 -0
- package/dist/orchestration_1_0_53/turn.d.ts.map +1 -0
- package/dist/orchestration_1_0_53/turn.js +864 -0
- package/dist/orchestration_1_0_53/turn.js.map +1 -0
- package/dist/orchestration_1_0_53/utils.d.ts +22 -0
- package/dist/orchestration_1_0_53/utils.d.ts.map +1 -0
- package/dist/orchestration_1_0_53/utils.js +226 -0
- package/dist/orchestration_1_0_53/utils.js.map +1 -0
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +3 -2
- package/dist/session-manager.js.map +1 -1
- package/dist/session-proxy.d.ts +22 -17
- package/dist/session-proxy.d.ts.map +1 -1
- package/dist/session-proxy.js +27 -23
- package/dist/session-proxy.js.map +1 -1
- package/dist/types.d.ts +10 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/worker.d.ts +8 -3
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +75 -5
- package/dist/worker.js.map +1 -1
- package/package.json +10 -1
- package/plugins/default-agents/agents/generic-crawler.agent.md +162 -0
- package/plugins/mgmt/agents/facts-manager.agent.md +2 -1
package/dist/agent-loader.d.ts
CHANGED
|
@@ -51,13 +51,15 @@ export interface AgentConfig {
|
|
|
51
51
|
/** Internal: identifies which prompt layering path this agent should use. */
|
|
52
52
|
promptLayerKind?: "app-agent" | "app-system-agent" | "pilotswarm-system-agent";
|
|
53
53
|
/**
|
|
54
|
-
* App-assigned
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
*
|
|
59
|
-
*
|
|
54
|
+
* App-assigned CRAWLER role. When `true`, a session bound to this agent
|
|
55
|
+
* receives the privileged crawl queue when a graph store is configured.
|
|
56
|
+
* Graph extraction/fill is app-specific, so the app sets `crawler: true` in
|
|
57
|
+
* its own crawler agent's frontmatter. The role is derived from this
|
|
58
|
+
* definition on the worker every turn — never inherited from a parent
|
|
59
|
+
* session.
|
|
60
60
|
*/
|
|
61
|
+
crawler?: boolean;
|
|
62
|
+
/** @deprecated Use `crawler: true`; accepted as a compatibility alias. */
|
|
61
63
|
harvester?: boolean;
|
|
62
64
|
/**
|
|
63
65
|
* Frontmatter schema version. Defaults to 1 when the file omits it. Higher integers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loader.d.ts","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAclF;AAID,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qGAAqG;IACrG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;IAC/E;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"agent-loader.d.ts","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAclF;AAID,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qGAAqG;IACrG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;IAC/E;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAsHD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAgE/D"}
|
package/dist/agent-loader.js
CHANGED
|
@@ -131,6 +131,8 @@ function parseAgentFrontmatter(content) {
|
|
|
131
131
|
meta.description = value;
|
|
132
132
|
else if (key === "system")
|
|
133
133
|
meta.system = value === "true";
|
|
134
|
+
else if (key === "crawler")
|
|
135
|
+
meta.crawler = value === "true";
|
|
134
136
|
else if (key === "harvester")
|
|
135
137
|
meta.harvester = value === "true";
|
|
136
138
|
else if (key === "id")
|
|
@@ -203,6 +205,7 @@ export function loadAgentFiles(agentsDir) {
|
|
|
203
205
|
console.warn(`[agent-loader] Skipping ${entry.name}: unsupported schemaVersion ${meta.schemaVersion}; expected schemaVersion: 1`);
|
|
204
206
|
continue;
|
|
205
207
|
}
|
|
208
|
+
const crawler = meta.crawler === true || meta.harvester === true;
|
|
206
209
|
agents.push({
|
|
207
210
|
name: meta.name,
|
|
208
211
|
description: meta.description,
|
|
@@ -214,7 +217,8 @@ export function loadAgentFiles(agentsDir) {
|
|
|
214
217
|
parent: meta.parent,
|
|
215
218
|
splash: meta.splash,
|
|
216
219
|
initialPrompt: meta.initialPrompt,
|
|
217
|
-
|
|
220
|
+
crawler,
|
|
221
|
+
harvester: crawler,
|
|
218
222
|
schemaVersion: meta.schemaVersion,
|
|
219
223
|
version: meta.version,
|
|
220
224
|
sourcePath: filePath,
|
package/dist/agent-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loader.js","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,0BAA0B,CAAC;SAClC,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,eAAuB,EAAE,IAAY;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,gCAAgC,CAAC;SACxC,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-loader.js","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,0BAA0B,CAAC;SAClC,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,eAAuB,EAAE,IAAY;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,gCAAgC,CAAC;SACxC,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAkDD,mEAAmE;AAEnE;;;GAGG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAI1C,MAAM,IAAI,GAAyP,EAAE,CAAC;IAEtQ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,uBAAuB;IACnE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,cAAc,GAAoB,IAAI,CAAC;IAC3C,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAE5C,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,IAAI,cAAc,KAAK,IAAI,IAAI,UAAU,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,UAAU,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;iBAC1C,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;gBACtC,sDAAsD;gBACtD,IAAI,CAAC,aAAa,GAAG,iBAAiB,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1F,CAAC;YACD,cAAc,GAAG,IAAI,CAAC;YACtB,iBAAiB,GAAG,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,0DAA0D;QAC1D,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC1B,qCAAqC;YACrC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,cAAc,EAAE,CAAC;gBACjB,0CAA0C;YAC9C,CAAC;iBAAM,CAAC;gBACJ,oDAAoD;gBACpD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClE,SAAS;YACb,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,SAAS;QACb,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,SAAS;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5C,2BAA2B;QAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,UAAU,GAAG,GAAG,CAAC;QAEjB,IAAI,GAAG,KAAK,MAAM;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aACjC,IAAI,GAAG,KAAK,aAAa;YAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aACpD,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC;aACrD,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;aACvD,IAAI,GAAG,KAAK,WAAW;YAAE,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,MAAM,CAAC;aAC3D,IAAI,GAAG,KAAK,IAAI;YAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;aAClC,IAAI,GAAG,KAAK,OAAO;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACxC,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aAC1C,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;aACI,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aAC5C,IAAI,GAAG,KAAK,OAAO,IAAI,KAAK,EAAE,CAAC;YAChC,oCAAoC;YACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5F,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,iCAAiC;YACjC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,eAAe,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3F,0CAA0C;YAC1C,iBAAiB,GAAG,KAAK,CAAC;YAC1B,cAAc,GAAG,EAAE,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,cAAc,EAAE,CAAC;IAEjB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,uBAAuB;IAC3E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,mEAAmE;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,SAAS;QAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAEtD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACb,wDAAwD;gBACxD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;gBACzE,SAAS;YACb,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,IAAI,+BAA+B,IAAI,CAAC,aAAa,6BAA6B,CAAC,CAAC;gBAClI,SAAS;YACb,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBAC9D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,OAAO;gBACP,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU,EAAE,QAAQ;aACvB,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,yGAAyG,CAAC,CAAC;YACxJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,+GAA+G,CAAC,CAAC;YAC9J,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facts-migrations.d.ts","sourceRoot":"","sources":["../src/facts-migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"facts-migrations.d.ts","sourceRoot":"","sources":["../src/facts-migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CA0DjE"}
|
package/dist/facts-migrations.js
CHANGED
|
@@ -61,6 +61,11 @@ export function FACTS_MIGRATIONS(schema) {
|
|
|
61
61
|
name: "soft_delete_etag",
|
|
62
62
|
sql: migration_0010_soft_delete_etag(schema),
|
|
63
63
|
},
|
|
64
|
+
{
|
|
65
|
+
version: "0011",
|
|
66
|
+
name: "prefix_crawl_flag",
|
|
67
|
+
sql: migration_0011_prefix_crawl_flag(schema),
|
|
68
|
+
},
|
|
64
69
|
];
|
|
65
70
|
}
|
|
66
71
|
// ─── Migration 0001: Baseline ────────────────────────────────────
|
|
@@ -1360,4 +1365,175 @@ END;
|
|
|
1360
1365
|
$$ LANGUAGE plpgsql;
|
|
1361
1366
|
`;
|
|
1362
1367
|
}
|
|
1368
|
+
// ─── Migration 0011: Prefix-scoped crawl flag (multi-crawler Phase 1) ─────────
|
|
1369
|
+
function migration_0011_prefix_crawl_flag(schema) {
|
|
1370
|
+
const s = `"${schema}"`;
|
|
1371
|
+
const t = `${s}.facts`;
|
|
1372
|
+
return `
|
|
1373
|
+
-- 0011_prefix_crawl_flag: generalize the single-crawler queue into N crawlers
|
|
1374
|
+
-- over DISJOINT key prefixes. No registry / lock / per-crawler state (Phase 2).
|
|
1375
|
+
-- Because each fact lives under exactly one crawler's prefix, no two crawlers
|
|
1376
|
+
-- touch the same row, so the single last_crawled_at column never contends.
|
|
1377
|
+
--
|
|
1378
|
+
-- - facts_like_prefix(text) : escape % _ \\ in a literal prefix so LIKE
|
|
1379
|
+
-- matches it literally while still letting the
|
|
1380
|
+
-- planner use a text_pattern_ops index range.
|
|
1381
|
+
-- - facts_read_uncrawled : param p_ns_prefix -> p_key_prefix, escaped
|
|
1382
|
+
-- literal-prefix LIKE, ORDER BY key,id.
|
|
1383
|
+
-- - facts_set_crawled_by_prefix : flip last_crawled_at for a whole literal prefix.
|
|
1384
|
+
-- - facts_set_crawled_by_keys : flip last_crawled_at for an explicit batch of
|
|
1385
|
+
-- {scopeKey, etag?} receipts (1..500).
|
|
1386
|
+
-- - facts_mark_crawled : DROPPED — replaced by facts_set_crawled_by_keys.
|
|
1387
|
+
-- - idx_${schema}_facts_uncrawled_key : (key text_pattern_ops, id) WHERE last_crawled_at IS NULL.
|
|
1388
|
+
-- Supersedes the id-only idx_${schema}_facts_uncrawled.
|
|
1389
|
+
--
|
|
1390
|
+
-- Crawl writes only touch last_crawled_at; facts_touch never bumps etag for a
|
|
1391
|
+
-- last_crawled_at-only write, so a {scopeKey, etag} receipt survives a recrawl.
|
|
1392
|
+
|
|
1393
|
+
-- Escape a literal key prefix into a LIKE pattern (escape \\ % _, append %).
|
|
1394
|
+
-- Pair with \`ESCAPE chr(92)\` at the call site. chr(92) is a literal backslash;
|
|
1395
|
+
-- using it avoids backslash-quoting ambiguity across SQL string forms.
|
|
1396
|
+
CREATE OR REPLACE FUNCTION ${s}.facts_like_prefix(p_prefix TEXT)
|
|
1397
|
+
RETURNS TEXT LANGUAGE sql IMMUTABLE STRICT AS $$
|
|
1398
|
+
SELECT replace(replace(replace(p_prefix, chr(92), chr(92) || chr(92)),
|
|
1399
|
+
'%', chr(92) || '%'), '_', chr(92) || '_') || '%';
|
|
1400
|
+
$$;
|
|
1401
|
+
|
|
1402
|
+
-- Queue-prefix index: pending rows keyed by key for prefix range scans. The
|
|
1403
|
+
-- text_pattern_ops opclass is required because the database collation is not C.
|
|
1404
|
+
-- This supersedes the id-only uncrawled index (ORDER BY key,id uses this one).
|
|
1405
|
+
DROP INDEX IF EXISTS ${s}.idx_${schema}_facts_uncrawled;
|
|
1406
|
+
CREATE INDEX IF NOT EXISTS idx_${schema}_facts_uncrawled_key
|
|
1407
|
+
ON ${t} (key text_pattern_ops, id) WHERE last_crawled_at IS NULL;
|
|
1408
|
+
|
|
1409
|
+
-- Read: pending facts (last_crawled_at IS NULL) across ALL scopes, narrowed by a
|
|
1410
|
+
-- literal key prefix, oldest-first within the prefix. The param is renamed
|
|
1411
|
+
-- (p_ns_prefix -> p_key_prefix), which requires DROP before re-create.
|
|
1412
|
+
DROP FUNCTION IF EXISTS ${s}.facts_read_uncrawled(TEXT, INT);
|
|
1413
|
+
CREATE OR REPLACE FUNCTION ${s}.facts_read_uncrawled(
|
|
1414
|
+
p_key_prefix TEXT,
|
|
1415
|
+
p_limit INT
|
|
1416
|
+
) RETURNS TABLE (
|
|
1417
|
+
scope_key TEXT,
|
|
1418
|
+
key TEXT,
|
|
1419
|
+
value JSONB,
|
|
1420
|
+
agent_id TEXT,
|
|
1421
|
+
session_id TEXT,
|
|
1422
|
+
shared BOOLEAN,
|
|
1423
|
+
tags TEXT[],
|
|
1424
|
+
created_at TIMESTAMPTZ,
|
|
1425
|
+
updated_at TIMESTAMPTZ,
|
|
1426
|
+
deleted_at TIMESTAMPTZ,
|
|
1427
|
+
etag BIGINT
|
|
1428
|
+
) LANGUAGE sql STABLE AS $$
|
|
1429
|
+
SELECT f.scope_key, f.key, f.value, f.agent_id, f.session_id, f.shared,
|
|
1430
|
+
f.tags, f.created_at, f.updated_at, f.deleted_at, f.etag
|
|
1431
|
+
FROM ${t} f
|
|
1432
|
+
WHERE f.last_crawled_at IS NULL
|
|
1433
|
+
AND (p_key_prefix IS NULL
|
|
1434
|
+
OR f.key LIKE ${s}.facts_like_prefix(p_key_prefix) ESCAPE chr(92))
|
|
1435
|
+
ORDER BY f.key, f.id
|
|
1436
|
+
LIMIT p_limit;
|
|
1437
|
+
$$;
|
|
1438
|
+
|
|
1439
|
+
-- Prefix writer: flip last_crawled_at for a whole literal prefix.
|
|
1440
|
+
-- crawled=true : queued (NULL) -> now(); NEVER a tombstone (a blind flush
|
|
1441
|
+
-- must not turn unreconciled deletes into purgeable rows).
|
|
1442
|
+
-- crawled=false : crawled -> NULL (recrawl); tombstones included.
|
|
1443
|
+
-- affected = rows that changed state. skipped = rows that matched the prefix
|
|
1444
|
+
-- selector but were already in the requested state. An empty prefix is a no-op.
|
|
1445
|
+
CREATE OR REPLACE FUNCTION ${s}.facts_set_crawled_by_prefix(
|
|
1446
|
+
p_key_prefix TEXT,
|
|
1447
|
+
p_crawled BOOLEAN
|
|
1448
|
+
) RETURNS TABLE (affected INT, skipped INT)
|
|
1449
|
+
LANGUAGE sql AS $$
|
|
1450
|
+
WITH matched AS (
|
|
1451
|
+
SELECT f.id
|
|
1452
|
+
FROM ${t} f
|
|
1453
|
+
WHERE p_key_prefix IS NOT NULL
|
|
1454
|
+
AND p_key_prefix <> ''
|
|
1455
|
+
AND f.key LIKE ${s}.facts_like_prefix(p_key_prefix) ESCAPE chr(92)
|
|
1456
|
+
AND (NOT p_crawled OR f.deleted_at IS NULL)
|
|
1457
|
+
), upd AS (
|
|
1458
|
+
UPDATE ${t} f
|
|
1459
|
+
SET last_crawled_at = CASE WHEN p_crawled THEN now() ELSE NULL END
|
|
1460
|
+
FROM matched m
|
|
1461
|
+
WHERE f.id = m.id
|
|
1462
|
+
AND ( (p_crawled AND f.last_crawled_at IS NULL)
|
|
1463
|
+
OR (NOT p_crawled AND f.last_crawled_at IS NOT NULL) )
|
|
1464
|
+
RETURNING f.id
|
|
1465
|
+
)
|
|
1466
|
+
SELECT (SELECT count(*) FROM upd)::int AS affected,
|
|
1467
|
+
((SELECT count(*) FROM matched) - (SELECT count(*) FROM upd))::int AS skipped;
|
|
1468
|
+
$$;
|
|
1469
|
+
|
|
1470
|
+
-- Explicit-batch writer: 1..500 {scopeKey, etag?} receipts.
|
|
1471
|
+
-- with etag : conditional — facts.etag must match, else skipped.
|
|
1472
|
+
-- without etag : unconditional stomp of that key's crawl flag.
|
|
1473
|
+
-- affected = rows that changed state. skipped = an existing fact matched the
|
|
1474
|
+
-- scopeKey but did not change (etag mismatch, or already in the requested
|
|
1475
|
+
-- state). A non-existent scopeKey is neither affected nor skipped.
|
|
1476
|
+
CREATE OR REPLACE FUNCTION ${s}.facts_set_crawled_by_keys(
|
|
1477
|
+
p_keys JSONB,
|
|
1478
|
+
p_crawled BOOLEAN
|
|
1479
|
+
) RETURNS TABLE (affected INT, skipped INT)
|
|
1480
|
+
LANGUAGE plpgsql AS $$
|
|
1481
|
+
DECLARE
|
|
1482
|
+
v_count INT;
|
|
1483
|
+
v_bad BOOLEAN;
|
|
1484
|
+
v_dup BOOLEAN;
|
|
1485
|
+
BEGIN
|
|
1486
|
+
IF jsonb_typeof(p_keys) IS DISTINCT FROM 'array' THEN
|
|
1487
|
+
RAISE EXCEPTION 'facts_set_crawled_by_keys requires a JSON array';
|
|
1488
|
+
END IF;
|
|
1489
|
+
v_count := jsonb_array_length(p_keys);
|
|
1490
|
+
IF v_count = 0 OR v_count > 500 THEN
|
|
1491
|
+
RAISE EXCEPTION 'facts_set_crawled_by_keys requires 1..500 entries';
|
|
1492
|
+
END IF;
|
|
1493
|
+
|
|
1494
|
+
SELECT
|
|
1495
|
+
bool_or(scope_key IS NULL OR scope_key = '' OR (has_etag AND (etag IS NULL OR etag <= 0))),
|
|
1496
|
+
count(*) <> count(DISTINCT scope_key)
|
|
1497
|
+
INTO v_bad, v_dup
|
|
1498
|
+
FROM (
|
|
1499
|
+
SELECT e->>'scopeKey' AS scope_key,
|
|
1500
|
+
(e ? 'etag') AS has_etag,
|
|
1501
|
+
CASE WHEN (e ? 'etag') AND (e->>'etag') ~ '^[0-9]+$'
|
|
1502
|
+
THEN (e->>'etag')::BIGINT ELSE NULL END AS etag
|
|
1503
|
+
FROM jsonb_array_elements(p_keys) e
|
|
1504
|
+
) q;
|
|
1505
|
+
IF v_bad OR v_dup THEN
|
|
1506
|
+
RAISE EXCEPTION 'facts_set_crawled_by_keys entries require unique scopeKey values and optional numeric etags';
|
|
1507
|
+
END IF;
|
|
1508
|
+
|
|
1509
|
+
RETURN QUERY
|
|
1510
|
+
WITH input AS (
|
|
1511
|
+
SELECT e->>'scopeKey' AS scope_key,
|
|
1512
|
+
(e ? 'etag') AS has_etag,
|
|
1513
|
+
CASE WHEN (e ? 'etag') AND (e->>'etag') ~ '^[0-9]+$'
|
|
1514
|
+
THEN (e->>'etag')::BIGINT ELSE NULL END AS etag
|
|
1515
|
+
FROM jsonb_array_elements(p_keys) e
|
|
1516
|
+
), matched AS (
|
|
1517
|
+
SELECT f.id, i.has_etag, i.etag AS input_etag
|
|
1518
|
+
FROM ${t} f
|
|
1519
|
+
JOIN input i ON i.scope_key = f.scope_key
|
|
1520
|
+
), upd AS (
|
|
1521
|
+
UPDATE ${t} f
|
|
1522
|
+
SET last_crawled_at = CASE WHEN p_crawled THEN now() ELSE NULL END
|
|
1523
|
+
FROM matched m
|
|
1524
|
+
WHERE f.id = m.id
|
|
1525
|
+
AND (NOT m.has_etag OR f.etag = m.input_etag)
|
|
1526
|
+
AND ( (p_crawled AND f.last_crawled_at IS NULL)
|
|
1527
|
+
OR (NOT p_crawled AND f.last_crawled_at IS NOT NULL) )
|
|
1528
|
+
RETURNING f.id
|
|
1529
|
+
)
|
|
1530
|
+
SELECT (SELECT count(*) FROM upd)::int AS affected,
|
|
1531
|
+
((SELECT count(*) FROM matched) - (SELECT count(*) FROM upd))::int AS skipped;
|
|
1532
|
+
END;
|
|
1533
|
+
$$;
|
|
1534
|
+
|
|
1535
|
+
-- The legacy single-shape receipt mark is replaced by facts_set_crawled_by_keys.
|
|
1536
|
+
DROP FUNCTION IF EXISTS ${s}.facts_mark_crawled(JSONB);
|
|
1537
|
+
`;
|
|
1538
|
+
}
|
|
1363
1539
|
//# sourceMappingURL=facts-migrations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facts-migrations.js","sourceRoot":"","sources":["../src/facts-migrations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"facts-migrations.js","sourceRoot":"","sources":["../src/facts-migrations.ts"],"names":[],"mappings":"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"}
|
package/dist/facts-store.d.ts
CHANGED
|
@@ -78,10 +78,27 @@ export interface AccessContext {
|
|
|
78
78
|
grantedSessionIds?: string[];
|
|
79
79
|
unrestricted?: boolean;
|
|
80
80
|
}
|
|
81
|
-
/**
|
|
82
|
-
|
|
81
|
+
/**
|
|
82
|
+
* One scope-key receipt for {@link FactStore.setFactsCrawled}. `etag` (optional)
|
|
83
|
+
* makes the entry a conditional compare-and-set against `facts.etag` — the
|
|
84
|
+
* receipt returned by `readUncrawledFacts`; omitting it stomps the crawl flag
|
|
85
|
+
* regardless of source version.
|
|
86
|
+
*/
|
|
87
|
+
export interface SetFactsCrawledScopeKey {
|
|
83
88
|
scopeKey: string;
|
|
84
|
-
etag
|
|
89
|
+
etag?: number;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Input to {@link FactStore.setFactsCrawled}. Provide EXACTLY one selection of
|
|
93
|
+
* `scopeKeys` (explicit batch) or `keyPrefix` (coarse prefix flush).
|
|
94
|
+
*/
|
|
95
|
+
export interface SetFactsCrawledInput {
|
|
96
|
+
/** Explicit batch of 1..500 receipts. Each entry's etag, when present, is a conditional CAS. */
|
|
97
|
+
scopeKeys?: SetFactsCrawledScopeKey[];
|
|
98
|
+
/** Literal key prefix flipped in one shot (no per-row etag). Must be non-empty. */
|
|
99
|
+
keyPrefix?: string;
|
|
100
|
+
/** Default true. false clears `last_crawled_at` to trigger a recrawl (includes tombstones). */
|
|
101
|
+
crawled?: boolean;
|
|
85
102
|
}
|
|
86
103
|
export interface FactsTombstoneStats {
|
|
87
104
|
pendingTotal: number;
|
|
@@ -134,10 +151,11 @@ export interface FactStore {
|
|
|
134
151
|
/**
|
|
135
152
|
* PRIVILEGED crawl-queue read (base-store bookkeeping, enhancedfactstore 07 D3):
|
|
136
153
|
* facts not yet incorporated into a graph (`last_crawled_at IS NULL`), across
|
|
137
|
-
* ALL scopes. Each returned fact carries its `scopeKey` — the
|
|
138
|
-
* `
|
|
154
|
+
* ALL scopes. Each returned fact carries its `scopeKey` (and `etag`) — the
|
|
155
|
+
* receipt for `setFactsCrawled`. Only useful when a graph harvester is running; inert otherwise.
|
|
139
156
|
*/
|
|
140
157
|
readUncrawledFacts(opts?: {
|
|
158
|
+
keyPrefix?: string;
|
|
141
159
|
namespace?: string;
|
|
142
160
|
limit?: number;
|
|
143
161
|
}): Promise<{
|
|
@@ -145,12 +163,20 @@ export interface FactStore {
|
|
|
145
163
|
facts: FactRecord[];
|
|
146
164
|
}>;
|
|
147
165
|
/**
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
166
|
+
* PRIVILEGED crawl-queue write: set the crawled flag on a selection. Provide
|
|
167
|
+
* EXACTLY one of:
|
|
168
|
+
* - `scopeKeys`: up to 500 `{ scopeKey, etag? }` receipts. An entry with
|
|
169
|
+
* `etag` is a conditional CAS (skipped on mismatch); without `etag` it
|
|
170
|
+
* stomps. The `crawled: true` path is the per-fact receipt mark.
|
|
171
|
+
* - `keyPrefix`: a non-empty literal key prefix flipped in one shot (coarse,
|
|
172
|
+
* no per-row etag).
|
|
173
|
+
* `crawled` defaults to true; `crawled: false` clears `last_crawled_at` to
|
|
174
|
+
* requeue for recrawl (includes tombstones). Returns `affected` (rows that
|
|
175
|
+
* changed state) and `skipped` (matched the selector but already in the
|
|
176
|
+
* requested state, or etag mismatch).
|
|
151
177
|
*/
|
|
152
|
-
|
|
153
|
-
|
|
178
|
+
setFactsCrawled(input: SetFactsCrawledInput): Promise<{
|
|
179
|
+
affected: number;
|
|
154
180
|
skipped: number;
|
|
155
181
|
}>;
|
|
156
182
|
purgeExpiredFacts(ttlSeconds: number, limit?: number): Promise<number>;
|
|
@@ -350,14 +376,15 @@ export declare class PgFactStore implements FactStore {
|
|
|
350
376
|
getFactsStatsForSessions(sessionIds: string[]): Promise<FactsStatsRow[]>;
|
|
351
377
|
getSharedFactsStats(): Promise<FactsStatsRow[]>;
|
|
352
378
|
readUncrawledFacts(opts?: {
|
|
379
|
+
keyPrefix?: string;
|
|
353
380
|
namespace?: string;
|
|
354
381
|
limit?: number;
|
|
355
382
|
}): Promise<{
|
|
356
383
|
count: number;
|
|
357
384
|
facts: FactRecord[];
|
|
358
385
|
}>;
|
|
359
|
-
|
|
360
|
-
|
|
386
|
+
setFactsCrawled(input: SetFactsCrawledInput): Promise<{
|
|
387
|
+
affected: number;
|
|
361
388
|
skipped: number;
|
|
362
389
|
}>;
|
|
363
390
|
purgeExpiredFacts(ttlSeconds: number, limit?: number): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facts-store.d.ts","sourceRoot":"","sources":["../src/facts-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,UAAU;IACvB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;CAC/D;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iEAAiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC1B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED
|
|
1
|
+
{"version":3,"file":"facts-store.d.ts","sourceRoot":"","sources":["../src/facts-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,UAAU;IACvB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;CAC/D;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iEAAiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC1B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC,gGAAgG;IAChG,SAAS,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACtC,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAgED,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,IAAI,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,mEAAmE;AACnE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjF,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5D,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC,CAAC;IAC3F,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;QAC9D,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,UAAU,EAAE,CAAC;KACvB,CAAC,CAAC;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpF,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjG,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAC;IACpF,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,2DAA2D;IAC3D,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAClE,oFAAoF;IACpF,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACzE,0DAA0D;IAC1D,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAChD;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC3F,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,UAAU,EAAE,CAAC;KACvB,CAAC,CAAC;IACH;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7F,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1E,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAQD;gEACgE;AAChE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3D,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;mDAC+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IACxB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,mCAAmC;AACnC,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC1C,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8EAA8E;AAC9E,MAAM,WAAW,uBAAuB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;4EAC4E;AAC5E,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAChD,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAEzC,+EAA+E;IAC/E,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE7F;yEACqE;IACrE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAElG,sEAAsE;IACtE,iBAAiB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACrH,sEAAsE;IACtE,aAAa,CAAC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5F,sEAAsE;IACtE,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,+BAA+B;IAC/B,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;CAC7C;AAED;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;gBACxC,MAAM,EAAE,MAAM;CAO7B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,iBAAiB,CAYhF;AAgDD,wBAAsB,qBAAqB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,GAAE;IACF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;2EACuE;IACvE,QAAQ,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IAC5B,sEAAsE;IACtE,SAAS,CAAC,EAAE,uBAAuB,CAAC;CAClC,GACP,OAAO,CAAC,SAAS,CAAC,CAmDpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAO,GACrH,OAAO,CAAC,OAAO,kBAAkB,EAAE,UAAU,GAAG,SAAS,CAAC,CAsC5D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,aAAa,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAQ/D;AAED,qBAAa,WAAY,YAAW,SAAS;IACzC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,GAAG,CAAkC;IAE7C,OAAO;IAKP,MAAM,CAAC,QAAQ,CAAC,gBAAgB,KAAK;WAExB,MAAM,CACf,gBAAgB,EAAE,MAAM,EACxB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9D,OAAO,CAAC,WAAW,CAAC;IAyBjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC3D,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IA6B1F,SAAS,CACX,KAAK,EAAE,cAAc,EACrB,MAAM,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAkC5C,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACnF,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAChG,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,GAAG,kBAAkB,CAAC;IAyBnF,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhE,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQjE,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IASxE,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAO/C,kBAAkB,CACpB,IAAI,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACtE,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAiB5C,eAAe,CACjB,KAAK,EAAE,oBAAoB,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAa3C,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAQpE,sBAAsB,CAAC,UAAU,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQzE,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAc7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK/B"}
|
package/dist/facts-store.js
CHANGED
|
@@ -7,6 +7,65 @@
|
|
|
7
7
|
* - session cleanup when a session is deleted
|
|
8
8
|
*/
|
|
9
9
|
import { runFactsMigrations } from "./facts-migrator.js";
|
|
10
|
+
/**
|
|
11
|
+
* Validate + normalize {@link SetFactsCrawledInput} into a single proc call.
|
|
12
|
+
* Mirrors the SQL guards in `facts_set_crawled_by_keys` so misuse fails fast at
|
|
13
|
+
* the provider boundary with a clear message.
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
function normalizeSetFactsCrawled(input) {
|
|
17
|
+
let crawled = true;
|
|
18
|
+
if (input?.crawled !== undefined && input?.crawled !== null) {
|
|
19
|
+
if (typeof input.crawled !== "boolean") {
|
|
20
|
+
throw new Error("setFactsCrawled: crawled must be a boolean.");
|
|
21
|
+
}
|
|
22
|
+
crawled = input.crawled;
|
|
23
|
+
}
|
|
24
|
+
const hasKeys = input?.scopeKeys !== undefined && input?.scopeKeys !== null;
|
|
25
|
+
const hasPrefix = input?.keyPrefix !== undefined && input?.keyPrefix !== null;
|
|
26
|
+
if (hasKeys === hasPrefix) {
|
|
27
|
+
throw new Error("setFactsCrawled: provide exactly one of { scopeKeys } or { keyPrefix }.");
|
|
28
|
+
}
|
|
29
|
+
if (hasPrefix) {
|
|
30
|
+
const prefix = input.keyPrefix;
|
|
31
|
+
if (typeof prefix !== "string" || prefix === "") {
|
|
32
|
+
throw new Error("setFactsCrawled: keyPrefix must be a non-empty string (it would otherwise select every fact).");
|
|
33
|
+
}
|
|
34
|
+
return { mode: "prefix", prefix, crawled };
|
|
35
|
+
}
|
|
36
|
+
const entries = input.scopeKeys;
|
|
37
|
+
if (!Array.isArray(entries) || entries.length === 0) {
|
|
38
|
+
throw new Error("setFactsCrawled: scopeKeys must be a non-empty array.");
|
|
39
|
+
}
|
|
40
|
+
if (entries.length > 500) {
|
|
41
|
+
throw new Error("setFactsCrawled: scopeKeys is capped at 500 entries; page larger batches.");
|
|
42
|
+
}
|
|
43
|
+
const seen = new Set();
|
|
44
|
+
const keys = entries.map((e) => {
|
|
45
|
+
if (!e || typeof e.scopeKey !== "string" || e.scopeKey === "") {
|
|
46
|
+
throw new Error("setFactsCrawled: each scopeKeys entry needs a non-empty scopeKey.");
|
|
47
|
+
}
|
|
48
|
+
if (seen.has(e.scopeKey)) {
|
|
49
|
+
throw new Error(`setFactsCrawled: duplicate scopeKey "${e.scopeKey}" in batch.`);
|
|
50
|
+
}
|
|
51
|
+
seen.add(e.scopeKey);
|
|
52
|
+
// A present etag (even null) makes the entry a conditional CAS and MUST
|
|
53
|
+
// be a positive integer (number or clean digit-string, mirroring the SQL
|
|
54
|
+
// guard). To force/stomp, OMIT the field entirely — do NOT pass null,
|
|
55
|
+
// which would otherwise silently mark the wrong source version crawled.
|
|
56
|
+
if (e.etag === undefined) {
|
|
57
|
+
return { scopeKey: e.scopeKey };
|
|
58
|
+
}
|
|
59
|
+
const etag = typeof e.etag === "string" && /^[1-9][0-9]*$/.test(e.etag)
|
|
60
|
+
? Number(e.etag)
|
|
61
|
+
: e.etag;
|
|
62
|
+
if (typeof etag !== "number" || !Number.isInteger(etag) || etag <= 0) {
|
|
63
|
+
throw new Error("setFactsCrawled: etag must be a positive integer when provided (omit it to force a stomp).");
|
|
64
|
+
}
|
|
65
|
+
return { scopeKey: e.scopeKey, etag };
|
|
66
|
+
});
|
|
67
|
+
return { mode: "keys", keys, crawled };
|
|
68
|
+
}
|
|
10
69
|
/**
|
|
11
70
|
* Thrown when an enhanced/graph method is called on a store that does not
|
|
12
71
|
* support it. Providers don't grow throwing stubs (Liskov / ISP — 07 D1); this
|
|
@@ -52,7 +111,8 @@ function sqlForSchema(schema) {
|
|
|
52
111
|
getFactsStatsForSessions: `${schema}.facts_get_facts_stats_for_sessions`,
|
|
53
112
|
getSharedFactsStats: `${schema}.facts_get_shared_facts_stats`,
|
|
54
113
|
readUncrawledFacts: `${schema}.facts_read_uncrawled`,
|
|
55
|
-
|
|
114
|
+
setCrawledByKeys: `${schema}.facts_set_crawled_by_keys`,
|
|
115
|
+
setCrawledByPrefix: `${schema}.facts_set_crawled_by_prefix`,
|
|
56
116
|
purgeExpiredFacts: `${schema}.facts_purge_expired`,
|
|
57
117
|
factsTombstoneStats: `${schema}.facts_tombstone_stats`,
|
|
58
118
|
forcePurgeFacts: `${schema}.facts_force_purge`,
|
|
@@ -314,33 +374,27 @@ export class PgFactStore {
|
|
|
314
374
|
return rows.map(rowToFactsStatsRow);
|
|
315
375
|
}
|
|
316
376
|
async readUncrawledFacts(opts = {}) {
|
|
317
|
-
// Literal key prefix (NOT a LIKE pattern) — the proc
|
|
318
|
-
//
|
|
319
|
-
|
|
320
|
-
const
|
|
321
|
-
const
|
|
377
|
+
// Literal key prefix (NOT a LIKE pattern) — the proc escapes %/_/\ so any
|
|
378
|
+
// metacharacters match literally. `namespace` is a deprecated alias for
|
|
379
|
+
// `keyPrefix`. An empty prefix means "all scopes" (NULL to the proc).
|
|
380
|
+
const raw = opts.keyPrefix ?? opts.namespace ?? null;
|
|
381
|
+
const keyPrefix = typeof raw === "string" && raw !== "" ? raw : null;
|
|
382
|
+
const limit = Math.min(opts.limit ?? 20, 500);
|
|
383
|
+
const { rows } = await this.pool.query(`SELECT * FROM ${this.sql.fn.readUncrawledFacts}($1, $2)`, [keyPrefix, limit]);
|
|
322
384
|
return {
|
|
323
385
|
count: rows.length,
|
|
324
386
|
facts: rows.map(mapFactRow),
|
|
325
387
|
};
|
|
326
388
|
}
|
|
327
|
-
async
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
throw new Error("markFactsCrawled: every stamp requires { scopeKey, etag } " +
|
|
335
|
-
"(the receipt returned by readUncrawledFacts).");
|
|
336
|
-
}
|
|
337
|
-
return { scopeKey: s.scopeKey, etag };
|
|
338
|
-
});
|
|
339
|
-
if (normalized.length === 0)
|
|
340
|
-
return { marked: 0, skipped: 0 };
|
|
341
|
-
const { rows } = await this.pool.query(`SELECT * FROM ${this.sql.fn.markFactsCrawled}($1::jsonb)`, [JSON.stringify(normalized)]);
|
|
389
|
+
async setFactsCrawled(input) {
|
|
390
|
+
const norm = normalizeSetFactsCrawled(input);
|
|
391
|
+
const sql = norm.mode === "prefix"
|
|
392
|
+
? `SELECT * FROM ${this.sql.fn.setCrawledByPrefix}($1, $2)`
|
|
393
|
+
: `SELECT * FROM ${this.sql.fn.setCrawledByKeys}($1::jsonb, $2)`;
|
|
394
|
+
const arg = norm.mode === "prefix" ? norm.prefix : JSON.stringify(norm.keys);
|
|
395
|
+
const { rows } = await this.pool.query(sql, [arg, norm.crawled]);
|
|
342
396
|
return {
|
|
343
|
-
|
|
397
|
+
affected: Number(rows[0]?.affected) || 0,
|
|
344
398
|
skipped: Number(rows[0]?.skipped) || 0,
|
|
345
399
|
};
|
|
346
400
|
}
|