@plurnk/plurnk-service 1.0.4 → 1.0.6

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.
Files changed (215) hide show
  1. package/.env.defaults +55 -31
  2. package/INSTALL.md +3 -3
  3. package/README.md +4 -4
  4. package/SPEC.md +205 -193
  5. package/dist/Paths.js +1 -1
  6. package/dist/Paths.js.map +1 -1
  7. package/dist/core/ChannelWrite.d.ts +18 -18
  8. package/dist/core/ChannelWrite.d.ts.map +1 -1
  9. package/dist/core/ChannelWrite.js +17 -17
  10. package/dist/core/ChannelWrite.js.map +1 -1
  11. package/dist/core/ChannelWrite.sql +11 -11
  12. package/dist/core/Dispatcher.d.ts +11 -16
  13. package/dist/core/Dispatcher.d.ts.map +1 -1
  14. package/dist/core/Dispatcher.js +122 -125
  15. package/dist/core/Dispatcher.js.map +1 -1
  16. package/dist/core/Engine.d.ts +20 -23
  17. package/dist/core/Engine.d.ts.map +1 -1
  18. package/dist/core/Engine.js +213 -210
  19. package/dist/core/Engine.js.map +1 -1
  20. package/dist/core/Engine.sql +108 -130
  21. package/dist/core/PacketBuilder.d.ts +10 -11
  22. package/dist/core/PacketBuilder.d.ts.map +1 -1
  23. package/dist/core/PacketBuilder.js +204 -128
  24. package/dist/core/PacketBuilder.js.map +1 -1
  25. package/dist/core/ProposalLifecycle.d.ts +8 -8
  26. package/dist/core/ProposalLifecycle.d.ts.map +1 -1
  27. package/dist/core/ProposalLifecycle.js +10 -10
  28. package/dist/core/ProposalLifecycle.js.map +1 -1
  29. package/dist/core/ProviderInstantiate.d.ts +1 -0
  30. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  31. package/dist/core/ProviderInstantiate.js +9 -3
  32. package/dist/core/ProviderInstantiate.js.map +1 -1
  33. package/dist/core/SchemeRegistry.d.ts +4 -1
  34. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  35. package/dist/core/SchemeRegistry.js +18 -9
  36. package/dist/core/SchemeRegistry.js.map +1 -1
  37. package/dist/core/TelemetryChannel.d.ts +5 -5
  38. package/dist/core/TelemetryChannel.d.ts.map +1 -1
  39. package/dist/core/TelemetryChannel.js +9 -9
  40. package/dist/core/TelemetryChannel.js.map +1 -1
  41. package/dist/core/caps/CapsResolve.js +2 -2
  42. package/dist/core/caps/CapsResolve.js.map +1 -1
  43. package/dist/core/caps/DbNotifyCaps.js +2 -2
  44. package/dist/core/caps/DbNotifyCaps.js.map +1 -1
  45. package/dist/core/caps/DbSubscriptionCaps.js +7 -7
  46. package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
  47. package/dist/core/caps/SchemeCtxImpl.d.ts +2 -2
  48. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  49. package/dist/core/caps/SchemeCtxImpl.js +4 -4
  50. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  51. package/dist/core/content-hash.d.ts +2 -0
  52. package/dist/core/content-hash.d.ts.map +1 -0
  53. package/dist/core/content-hash.js +6 -0
  54. package/dist/core/content-hash.js.map +1 -0
  55. package/dist/core/fork.d.ts +1 -1
  56. package/dist/core/fork.d.ts.map +1 -1
  57. package/dist/core/fork.js +31 -26
  58. package/dist/core/fork.js.map +1 -1
  59. package/dist/core/fork.sql +41 -32
  60. package/dist/core/git-env.d.ts.map +1 -1
  61. package/dist/core/git-env.js +23 -7
  62. package/dist/core/git-env.js.map +1 -1
  63. package/dist/core/git-iso.d.ts +9 -0
  64. package/dist/core/git-iso.d.ts.map +1 -0
  65. package/dist/core/git-iso.js +227 -0
  66. package/dist/core/git-iso.js.map +1 -0
  67. package/dist/core/git-membership.d.ts +2 -2
  68. package/dist/core/git-membership.d.ts.map +1 -1
  69. package/dist/core/git-membership.js +70 -50
  70. package/dist/core/git-membership.js.map +1 -1
  71. package/dist/core/git-state.d.ts +1 -1
  72. package/dist/core/git-state.d.ts.map +1 -1
  73. package/dist/core/git-state.js +21 -11
  74. package/dist/core/git-state.js.map +1 -1
  75. package/dist/core/packet-wire.d.ts.map +1 -1
  76. package/dist/core/packet-wire.js +81 -22
  77. package/dist/core/packet-wire.js.map +1 -1
  78. package/dist/core/plurnk-uri.d.ts +2 -2
  79. package/dist/core/plurnk-uri.d.ts.map +1 -1
  80. package/dist/core/plurnk-uri.js +19 -12
  81. package/dist/core/plurnk-uri.js.map +1 -1
  82. package/dist/core/run-ops.sql +26 -26
  83. package/dist/core/scheme-types.d.ts +6 -11
  84. package/dist/core/scheme-types.d.ts.map +1 -1
  85. package/dist/core/search-gate.js +0 -0
  86. package/dist/core/search-gate.js.map +1 -1
  87. package/dist/core/token-ruler.d.ts +2 -0
  88. package/dist/core/token-ruler.d.ts.map +1 -0
  89. package/dist/core/token-ruler.js +18 -0
  90. package/dist/core/token-ruler.js.map +1 -0
  91. package/dist/core/worker-cap.d.ts +8 -0
  92. package/dist/core/worker-cap.d.ts.map +1 -0
  93. package/dist/core/worker-cap.js +20 -0
  94. package/dist/core/worker-cap.js.map +1 -0
  95. package/dist/core/{session-settings.d.ts → workspace-settings.d.ts} +5 -5
  96. package/dist/core/workspace-settings.d.ts.map +1 -0
  97. package/dist/core/{session-settings.js → workspace-settings.js} +13 -13
  98. package/dist/core/workspace-settings.js.map +1 -0
  99. package/dist/digest/Digest.d.ts +3 -3
  100. package/dist/digest/Digest.d.ts.map +1 -1
  101. package/dist/digest/Digest.js +79 -73
  102. package/dist/digest/Digest.js.map +1 -1
  103. package/dist/digest/digest.sql +18 -18
  104. package/dist/schemes/Exec.d.ts +9 -2
  105. package/dist/schemes/Exec.d.ts.map +1 -1
  106. package/dist/schemes/Exec.js +121 -68
  107. package/dist/schemes/Exec.js.map +1 -1
  108. package/dist/schemes/ExecOutputScheme.js +3 -3
  109. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  110. package/dist/schemes/File.js +23 -23
  111. package/dist/schemes/File.js.map +1 -1
  112. package/dist/schemes/Known.js +5 -5
  113. package/dist/schemes/Known.js.map +1 -1
  114. package/dist/schemes/Log.d.ts.map +1 -1
  115. package/dist/schemes/Log.js +63 -14
  116. package/dist/schemes/Log.js.map +1 -1
  117. package/dist/schemes/Log.sql +49 -8
  118. package/dist/schemes/Plurnk.js +5 -5
  119. package/dist/schemes/Plurnk.js.map +1 -1
  120. package/dist/schemes/Skill.js +5 -5
  121. package/dist/schemes/Skill.js.map +1 -1
  122. package/dist/schemes/Unknown.js +5 -5
  123. package/dist/schemes/Unknown.js.map +1 -1
  124. package/dist/schemes/{Run.d.ts → Worker.d.ts} +2 -2
  125. package/dist/schemes/Worker.d.ts.map +1 -0
  126. package/dist/schemes/{Run.js → Worker.js} +67 -67
  127. package/dist/schemes/Worker.js.map +1 -0
  128. package/dist/schemes/_entry-crud.js +11 -11
  129. package/dist/schemes/_entry-crud.js.map +1 -1
  130. package/dist/schemes/_entry-crud.sql +29 -29
  131. package/dist/schemes/_entry-find.d.ts +2 -1
  132. package/dist/schemes/_entry-find.d.ts.map +1 -1
  133. package/dist/schemes/_entry-find.js +31 -19
  134. package/dist/schemes/_entry-find.js.map +1 -1
  135. package/dist/schemes/_entry-find.sql +9 -9
  136. package/dist/schemes/_entry-graph.d.ts +2 -2
  137. package/dist/schemes/_entry-graph.d.ts.map +1 -1
  138. package/dist/schemes/_entry-graph.js +18 -18
  139. package/dist/schemes/_entry-graph.js.map +1 -1
  140. package/dist/schemes/_entry-graph.sql +8 -8
  141. package/dist/schemes/_entry-manifest.d.ts +1 -1
  142. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  143. package/dist/schemes/_entry-manifest.js +74 -50
  144. package/dist/schemes/_entry-manifest.js.map +1 -1
  145. package/dist/schemes/_entry-ops.d.ts +4 -4
  146. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  147. package/dist/schemes/_entry-ops.js +25 -25
  148. package/dist/schemes/_entry-ops.js.map +1 -1
  149. package/dist/schemes/_entry-ops.sql +9 -9
  150. package/dist/schemes/_entry-semantic.d.ts +2 -1
  151. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  152. package/dist/schemes/_entry-semantic.js +23 -4
  153. package/dist/schemes/_entry-semantic.js.map +1 -1
  154. package/dist/schemes/_entry-semantic.sql +18 -4
  155. package/dist/schemes/_entry-send.d.ts +1 -1
  156. package/dist/schemes/_entry-send.d.ts.map +1 -1
  157. package/dist/schemes/_entry-send.js +6 -6
  158. package/dist/schemes/_entry-send.js.map +1 -1
  159. package/dist/schemes/exec-abort.js +1 -1
  160. package/dist/schemes/exec-abort.js.map +1 -1
  161. package/dist/server/Daemon.d.ts +50 -48
  162. package/dist/server/Daemon.d.ts.map +1 -1
  163. package/dist/server/Daemon.js +307 -297
  164. package/dist/server/Daemon.js.map +1 -1
  165. package/dist/server/client-input.js +20 -20
  166. package/dist/server/client-input.js.map +1 -1
  167. package/dist/server/dispatch-as-plurnk.d.ts +1 -1
  168. package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
  169. package/dist/server/dispatch-as-plurnk.js +7 -7
  170. package/dist/server/dispatch-as-plurnk.js.map +1 -1
  171. package/dist/server/drain.sql +27 -27
  172. package/dist/server/envelope.d.ts +20 -20
  173. package/dist/server/envelope.d.ts.map +1 -1
  174. package/dist/server/envelope.js +86 -86
  175. package/dist/server/envelope.js.map +1 -1
  176. package/dist/server/envelope.sql +39 -39
  177. package/dist/server/logEntry.d.ts +1 -1
  178. package/dist/server/logEntry.d.ts.map +1 -1
  179. package/dist/server/logEntry.js +1 -1
  180. package/dist/server/logEntry.js.map +1 -1
  181. package/dist/server/loop-model.d.ts +3 -0
  182. package/dist/server/loop-model.d.ts.map +1 -0
  183. package/dist/server/loop-model.js +26 -0
  184. package/dist/server/loop-model.js.map +1 -0
  185. package/dist/server/loopDocs.d.ts +1 -1
  186. package/dist/server/loopDocs.d.ts.map +1 -1
  187. package/dist/server/loopDocs.js +6 -6
  188. package/dist/server/loopDocs.js.map +1 -1
  189. package/dist/server/seam-entry-read.sql +2 -2
  190. package/dist/server/seam-log-read.sql +3 -3
  191. package/dist/server/seam-loop.sql +3 -3
  192. package/dist/server/seam-proposal-list.sql +4 -4
  193. package/dist/server/yolo.js +2 -2
  194. package/dist/server/yolo.js.map +1 -1
  195. package/dist/service.d.ts.map +1 -1
  196. package/dist/service.js +21 -6
  197. package/dist/service.js.map +1 -1
  198. package/migrations/0000-00-00.01_schema.sql +84 -85
  199. package/package.json +17 -14
  200. package/dist/core/TokenGauge.d.ts +0 -16
  201. package/dist/core/TokenGauge.d.ts.map +0 -1
  202. package/dist/core/TokenGauge.js +0 -58
  203. package/dist/core/TokenGauge.js.map +0 -1
  204. package/dist/core/run-cap.d.ts +0 -8
  205. package/dist/core/run-cap.d.ts.map +0 -1
  206. package/dist/core/run-cap.js +0 -20
  207. package/dist/core/run-cap.js.map +0 -1
  208. package/dist/core/search-prefetch.d.ts +0 -17
  209. package/dist/core/search-prefetch.d.ts.map +0 -1
  210. package/dist/core/search-prefetch.js +0 -164
  211. package/dist/core/search-prefetch.js.map +0 -1
  212. package/dist/core/session-settings.d.ts.map +0 -1
  213. package/dist/core/session-settings.js.map +0 -1
  214. package/dist/schemes/Run.d.ts.map +0 -1
  215. package/dist/schemes/Run.js.map +0 -1
@@ -1,16 +0,0 @@
1
- import type { Mimetypes } from "@plurnk/plurnk-mimetypes";
2
- import type { Provider } from "@plurnk/plurnk-providers";
3
- import type { Db } from "./Db.ts";
4
- import type { TelemetryEvent } from "@plurnk/plurnk-grammar";
5
- export interface GaugeResolution {
6
- tokenizerId: string;
7
- exact: boolean;
8
- count: (text: string) => Promise<number>;
9
- }
10
- export default class TokenGauge {
11
- #private;
12
- static contentHash(content: string): string;
13
- static resolve(mimetypes: Mimetypes | undefined, provider: Provider, pushTelemetry?: (e: TelemetryEvent) => void): Promise<GaugeResolution>;
14
- static tokensFor(db: Db, gauge: GaugeResolution, contentHash: string, content: string): Promise<number>;
15
- }
16
- //# sourceMappingURL=TokenGauge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenGauge.d.ts","sourceRoot":"","sources":["../../src/core/TokenGauge.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,CAAC,OAAO,OAAO,UAAU;;IAI3B,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1C;IAQD,OAAa,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAsBhJ;IAID,OAAa,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM5G;CACJ"}
@@ -1,58 +0,0 @@
1
- // #312 — the token gauge: derived token counts keyed on (content_hash, tokenizer_id), the
2
- // deep_hash discipline applied to token arithmetic. The mimetypes Tokenizers seam (mimetypes#44)
3
- // supplies the identity (tokenizer.json sha — NEVER the model id: deepseek pro↔flash share a
4
- // vocab, so that swap recounts nothing; gemma↔deepseek recounts all) and the exact counter.
5
- // When the seam resolves nothing exact for the active model, the provider's chars/2 upper bound
6
- // is used AND SURFACED (`tokenizer_unavailable`, once per model) — an error-class signal, never
7
- // a silent number. Resolutions are cached per model ref; derivation rows are shared session-wide.
8
- import { createHash } from "node:crypto";
9
- export default class TokenGauge {
10
- static #resolutions = new Map();
11
- static #warned = new Set();
12
- static contentHash(content) {
13
- return createHash("sha256").update(content).digest("hex");
14
- }
15
- // Resolve the active model's gauge: the seam's exact tokenizer, or the provider's surfaced
16
- // upper bound labeled with a heuristic identity (so its rows never masquerade as exact ones).
17
- // providers#37 (delivered, 0.35.0): Provider.servedModel is the backend's self-reported
18
- // identity from the boot probe — an alias-fronted local backend ('turboderp' → the gguf name)
19
- // resolves its exact tokenizer from turn 1. Absent (hosted/no-probe), the alias model tries;
20
- // inexact runs as a SURFACED upper bound (#312 ask 3) — never a silent number.
21
- static async resolve(mimetypes, provider, pushTelemetry) {
22
- const key = provider.model;
23
- const cached = TokenGauge.#resolutions.get(key);
24
- if (cached !== undefined)
25
- return cached;
26
- let resolution;
27
- try {
28
- if (mimetypes === undefined)
29
- throw new Error("no mimetypes seam");
30
- const r = await mimetypes.tokenizer(provider.servedModel ?? provider.model);
31
- resolution = { tokenizerId: r.exact ? r.tokenizerId : `heuristic:${r.tokenizerId}`, exact: r.exact, count: (text) => r.countTokens(text) };
32
- if (!r.exact && !TokenGauge.#warned.has(key)) {
33
- TokenGauge.#warned.add(key);
34
- pushTelemetry?.({ source: "engine:tokens", kind: "tokenizer_unavailable", message: `no exact tokenizer for '${provider.model}' — counts are an upper bound (chars/2 class); budget refusals run conservative`, level: "warn" });
35
- }
36
- }
37
- catch {
38
- resolution = { tokenizerId: "heuristic:provider", exact: false, count: async (text) => provider.countTokens(text) };
39
- if (!TokenGauge.#warned.has(key)) {
40
- TokenGauge.#warned.add(key);
41
- pushTelemetry?.({ source: "engine:tokens", kind: "tokenizer_unavailable", message: `tokenizer seam resolved nothing for '${provider.model}' — provider upper bound in use`, level: "warn" });
42
- }
43
- }
44
- TokenGauge.#resolutions.set(key, resolution);
45
- return resolution;
46
- }
47
- // The keyed lookup: (content_hash, tokenizer_id) → tokens; miss → count + upsert. The row is
48
- // shared by every entry carrying identical content, across models sharing a vocabulary.
49
- static async tokensFor(db, gauge, contentHash, content) {
50
- const hit = await db.token_count_get.get({ content_hash: contentHash, tokenizer_id: gauge.tokenizerId });
51
- if (hit !== undefined)
52
- return hit.tokens;
53
- const tokens = await gauge.count(content);
54
- await db.token_count_upsert.run({ content_hash: contentHash, tokenizer_id: gauge.tokenizerId, tokens });
55
- return tokens;
56
- }
57
- }
58
- //# sourceMappingURL=TokenGauge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenGauge.js","sourceRoot":"","sources":["../../src/core/TokenGauge.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { Db } from "./Db.ts";
2
- export default class RunCap {
3
- static deny(db: Db, sessionId: number): Promise<{
4
- status: number;
5
- error: string;
6
- } | null>;
7
- }
8
- //# sourceMappingURL=run-cap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-cap.d.ts","sourceRoot":"","sources":["../../src/core/run-cap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,SAAS,CAAC;AAS9C,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAO9F;CACJ"}
@@ -1,20 +0,0 @@
1
- // Session-tier ceiling on CONCURRENT active runs (a run with a non-terminal loop)
2
- // — the fork-bomb / destabilization brake. `PLURNK_SERVICE_SESSION_RUNS_MAX_ACTIVE` is the
3
- // knob; -1 / unset / invalid = no cap. Only concurrency is bounded, never lifetime:
4
- // sessions persist for months, so a total-created cap would punish longevity. A
5
- // spawn/fork past the ceiling fails hard (508) — no queue, no retry. Checked at the
6
- // single run-creation site (Dispatcher.#handleRunCopy, which both spawns and forks); irc is
7
- // exempt — it targets an existing run and creates nothing.
8
- export default class RunCap {
9
- static async deny(db, sessionId) {
10
- const raw = process.env.PLURNK_SERVICE_SESSION_RUNS_MAX_ACTIVE;
11
- const cap = raw === undefined || raw.length === 0 ? -1 : Number.parseInt(raw, 10);
12
- if (!Number.isFinite(cap) || cap < 0)
13
- return null; // no cap
14
- const row = await db.run_count_active.get({ session_id: sessionId });
15
- if ((row?.n ?? 0) >= cap)
16
- return { status: 508, error: `session active-run ceiling reached (PLURNK_SERVICE_SESSION_RUNS_MAX_ACTIVE=${cap})` };
17
- return null;
18
- }
19
- }
20
- //# sourceMappingURL=run-cap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-cap.js","sourceRoot":"","sources":["../../src/core/run-cap.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,2FAA2F;AAC3F,oFAAoF;AACpF,gFAAgF;AAChF,oFAAoF;AACpF,4FAA4F;AAC5F,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,SAAiB;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;QAC/D,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,SAAS;QAC5D,MAAM,GAAG,GAAG,MAAO,EAAE,CAAC,gBAA+B,CAAC,GAAG,CAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACpG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG;YAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,8EAA8E,GAAG,GAAG,EAAE,CAAC;QAC9I,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -1,17 +0,0 @@
1
- import type { Db } from "./Db.ts";
2
- import type { PlurnkSchemeContext } from "./scheme-types.ts";
3
- import type { WakeRunPayload } from "./ChannelWrite.ts";
4
- import type SchemeRegistry from "./SchemeRegistry.ts";
5
- export default class SearchPrefetch {
6
- #private;
7
- constructor(args: {
8
- db: Db;
9
- schemes: SchemeRegistry;
10
- tokenize: (text: string) => number;
11
- });
12
- holds(runId: number): boolean;
13
- isSearchConclusion(payload: WakeRunPayload): boolean;
14
- ownsConclusion(payload: WakeRunPayload): boolean;
15
- onSearchConcluded(payload: WakeRunPayload, mkCtx: (sessionId: number, runId: number) => Promise<PlurnkSchemeContext>): Promise<void>;
16
- }
17
- //# sourceMappingURL=search-prefetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-prefetch.d.ts","sourceRoot":"","sources":["../../src/core/search-prefetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAwBtD,MAAM,CAAC,OAAO,OAAO,cAAc;;IAY/B,YAAY,IAAI,EAAE;QAAE,EAAE,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,EAIxF;IAED,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAqC;IAIlE,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAInD;IAGD,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAO/C;IAIK,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzI;CA+FJ"}
@@ -1,164 +0,0 @@
1
- var _a;
2
- import EntryCrud from "../schemes/_entry-crud.js";
3
- import SchemeCtxImpl from "./caps/SchemeCtxImpl.js";
4
- const RESULTS = "#results";
5
- const readKnob = (name) => {
6
- const v = process.env[name];
7
- if (v === undefined)
8
- throw new Error(`${name} is unset — the .env.defaults floor must declare it`);
9
- return v;
10
- };
11
- class SearchPrefetch {
12
- #db;
13
- #schemes;
14
- #tokenize;
15
- // The hold leg: runs with a pass in flight. Set SYNCHRONOUSLY on the conclusion event
16
- // (same tick as the spawn's deregistration), so the Engine hold loop can never observe
17
- // the gap between "search stream closed" and "prefetch registered".
18
- #pending = new Map();
19
- // Page-read conclusions this pass owns, keyed by storage pathname — their wakes are
20
- // swallowed (a prefetched page is a sync write, not a wake edge).
21
- #waiters = new Map();
22
- constructor(args) {
23
- this.#db = args.db;
24
- this.#schemes = args.schemes;
25
- this.#tokenize = args.tokenize;
26
- }
27
- holds(runId) { return this.#pending.has(runId); }
28
- // A search-runtime exec stream concluded — the trigger. The runtime set is a knob
29
- // (reader-declares: declared in this package's .env.defaults).
30
- isSearchConclusion(payload) {
31
- if (payload.closeStatus !== 200)
32
- return false;
33
- const runtimes = new Set(readKnob("PLURNK_SERVICE_SEARCH_PREFETCH_RUNTIMES").split(",").map((s) => s.trim()).filter((s) => s.length > 0));
34
- return runtimes.has(payload.scheme);
35
- }
36
- // A page conclusion from our own fan-out: resolve its waiter, tell the caller to swallow.
37
- ownsConclusion(payload) {
38
- const key = payload.target;
39
- const waiter = this.#waiters.get(key);
40
- if (waiter === undefined)
41
- return false;
42
- this.#waiters.delete(key);
43
- waiter(payload.closeStatus);
44
- return true;
45
- }
46
- // The sync pass. Called by the daemon's wake handler BEFORE the wake proceeds; awaited, so
47
- // the fold-back the model reads is post-prefetch truth. Idempotent per run.
48
- async onSearchConcluded(payload, mkCtx) {
49
- if (this.#pending.has(payload.runId))
50
- return this.#pending.get(payload.runId);
51
- const pass = this.#run(payload, mkCtx).finally(() => this.#pending.delete(payload.runId));
52
- this.#pending.set(payload.runId, pass);
53
- return pass;
54
- }
55
- async #run(payload, mkCtx) {
56
- const ctx = await mkCtx(payload.sessionId, payload.runId);
57
- const execPathname = payload.target.replace(/^[a-z+.-]+:\/\//, "/").replace(/^\/+/, "/");
58
- const execEntry = await EntryCrud.readEntry(execPathname, ctx, payload.scheme);
59
- const raw = execEntry.entry?.channels[RESULTS]?.content;
60
- if (raw === undefined || raw.length === 0)
61
- return; // no digest — nothing declared
62
- let candidates;
63
- try {
64
- candidates = JSON.parse(raw);
65
- }
66
- catch {
67
- return;
68
- } // a non-JSON #results is not a digest; leave it untouched
69
- if (!Array.isArray(candidates))
70
- return;
71
- const http = this.#schemes.get("http");
72
- if (http === undefined)
73
- throw new Error("search-prefetch: http scheme absent — the bundle guarantees it");
74
- const concurrency = Number.parseInt(readKnob("PLURNK_SERVICE_SEARCH_PREFETCH_CONCURRENCY"), 10);
75
- const pageTimeoutMs = Number.parseInt(readKnob("PLURNK_SERVICE_SEARCH_PREFETCH_TIMEOUT_MS"), 10);
76
- const survivors = [];
77
- const queue = candidates.filter((r) => typeof r.url === "string" && r.url.length > 0);
78
- let next = 0;
79
- const worker = async () => {
80
- while (next < queue.length) {
81
- const row = queue[next++];
82
- const target = _a.#urlPath(row.url);
83
- // The wake payload's target is the literal `scheme://pathname` concatenation
84
- // (ChannelWrite #179) — match it exactly, not the model-facing render.
85
- const key = `${target.scheme}://${target.pathname}`;
86
- const concluded = new Promise((resolve) => this.#waiters.set(key, resolve));
87
- const stmt = { op: "READ", suffix: "", signal: null, target, lineMarker: null, body: null, position: { line: 1, column: 1 } };
88
- let opened;
89
- // A fresh caps wrapper per page: the subscription cap is stateful (its bound
90
- // pathname), so concurrent reads must not share one — mirrors dispatch (one
91
- // SchemeCtxImpl per op).
92
- const httpCtx = new SchemeCtxImpl(ctx, "http");
93
- try {
94
- opened = await http.read(stmt, httpCtx);
95
- }
96
- catch {
97
- this.#waiters.delete(key);
98
- continue;
99
- } // a page that fails to open is not a member
100
- if (opened.status >= 400) {
101
- this.#waiters.delete(key);
102
- continue;
103
- }
104
- const timeout = new Promise((resolve) => setTimeout(() => resolve(504), pageTimeoutMs).unref());
105
- const status = await Promise.race([concluded, timeout]);
106
- if (status !== 200) {
107
- this.#waiters.delete(key);
108
- continue;
109
- }
110
- const page = await EntryCrud.readEntry(target.pathname, ctx, "http");
111
- const body = page.entry?.channels.body;
112
- if (body === undefined || body.content.length === 0)
113
- continue; // rendered to nothing — dead
114
- const httpStatus = _a.#headerStatus(page.entry?.channels.header?.content ?? "");
115
- if (httpStatus === null || httpStatus < 200 || httpStatus >= 300)
116
- continue; // not a 2xx page — the server declined, not a member
117
- survivors.push({ row, pathname: target.pathname });
118
- // Chooser context lives ON the entry (owner ruling): title/snippet/date as attributes.
119
- await this.#db.search_stamp_entry_attributes.run({
120
- session_id: payload.sessionId, scheme: "http", pathname: target.pathname,
121
- patch: JSON.stringify({ title: row.title ?? null, snippet: row.snippet ?? null, publishedDate: row.publishedDate ?? null }),
122
- });
123
- }
124
- };
125
- await Promise.all(Array.from({ length: Math.max(1, concurrency) }, () => worker()));
126
- // The survivor render — the ONE listing: chooser context + live costs, rebuilt from the
127
- // entries that exist. Rewrites #results in place so the OPEN fold-back carries it.
128
- const rendered = [];
129
- for (const { row, pathname } of survivors) {
130
- const page = await EntryCrud.readEntry(pathname, ctx, "http");
131
- const content = page.entry?.channels.body?.content ?? "";
132
- rendered.push({
133
- title: row.title, url: row.url, snippet: row.snippet,
134
- ...(row.publishedDate !== undefined ? { publishedDate: row.publishedDate } : {}),
135
- tokens: this.#tokenize(content), lines: content.length === 0 ? 0 : content.split("\n").length,
136
- });
137
- }
138
- if (execEntry.entry !== null && execEntry.entry !== undefined) {
139
- const channels = { ...execEntry.entry.channels, [RESULTS]: { content: JSON.stringify(rendered), mimetype: "application/json" } };
140
- await EntryCrud.writeEntry(execPathname, { channels, tags: execEntry.entry.tags ?? [] }, ctx, payload.scheme);
141
- }
142
- }
143
- // The FOLDED storage form (authority in the pathname) — the shape the engine's
144
- // authority-fold hands the scheme and renderAddress reconstructs; `raw` stays the
145
- // verbatim URL because Http fetches from raw.
146
- // The HEADER channel's first line is `HTTP <status> <text>` (schemes-http #writeHeader).
147
- static #headerStatus(header) {
148
- const m = /^HTTP (\d{3})\b/.exec(header);
149
- return m === null ? null : Number(m[1]);
150
- }
151
- static #urlPath(url) {
152
- const u = new URL(url);
153
- const scheme = u.protocol.replace(":", "");
154
- return {
155
- kind: "url", raw: url, scheme,
156
- username: null, password: null, hostname: null, port: null,
157
- pathname: `/${u.hostname}${u.port.length > 0 ? `:${u.port}` : ""}${u.pathname}${u.search}`,
158
- params: {}, fragment: null,
159
- };
160
- }
161
- }
162
- _a = SearchPrefetch;
163
- export default SearchPrefetch;
164
- //# sourceMappingURL=search-prefetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-prefetch.js","sourceRoot":"","sources":["../../src/core/search-prefetch.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-settings.d.ts","sourceRoot":"","sources":["../../src/core/session-settings.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,eAAe;IAGhC,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAaxE;IAKD,OAAa,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzE;IAOD,OAAa,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAOvH;CACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-settings.js","sourceRoot":"","sources":["../../src/core/session-settings.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Run.d.ts","sourceRoot":"","sources":["../../src/schemes/Run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAa,MAAM,yBAAyB,CAAC;AAI9F,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAc,MAAM,wBAAwB,CAAC;AAOpI,eAAO,MAAM,YAAY,iBAAkB,MAAM,GAAG,IAAI,WAAW,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IAI3F,CAAC;AAWF,MAAM,CAAC,OAAO,OAAO,GAAG;;IACpB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAU7B;IAgCI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAetI;IAKK,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAQjH;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAsBlF;IAQK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAUlF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAoB1G;CACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Run.js","sourceRoot":"","sources":["../../src/schemes/Run.ts"],"names":[],"mappings":"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"}