agent-working-memory 0.16.1 → 0.18.1

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 (170) hide show
  1. package/README.md +321 -318
  2. package/dist/adapters/common.d.ts +34 -0
  3. package/dist/adapters/common.d.ts.map +1 -1
  4. package/dist/adapters/common.js +528 -444
  5. package/dist/adapters/common.js.map +1 -1
  6. package/dist/api/routes.d.ts.map +1 -1
  7. package/dist/api/routes.js +19 -0
  8. package/dist/api/routes.js.map +1 -1
  9. package/dist/cli/migrate.d.ts.map +1 -1
  10. package/dist/cli/migrate.js +31 -29
  11. package/dist/cli/migrate.js.map +1 -1
  12. package/dist/core/asked-value.d.ts +37 -0
  13. package/dist/core/asked-value.d.ts.map +1 -0
  14. package/dist/core/asked-value.js +77 -0
  15. package/dist/core/asked-value.js.map +1 -0
  16. package/dist/core/conflicts.d.ts +89 -0
  17. package/dist/core/conflicts.d.ts.map +1 -0
  18. package/dist/core/conflicts.js +267 -0
  19. package/dist/core/conflicts.js.map +1 -0
  20. package/dist/core/embeddings.d.ts +14 -2
  21. package/dist/core/embeddings.d.ts.map +1 -1
  22. package/dist/core/embeddings.js +32 -10
  23. package/dist/core/embeddings.js.map +1 -1
  24. package/dist/core/format-recall.d.ts +21 -1
  25. package/dist/core/format-recall.d.ts.map +1 -1
  26. package/dist/core/format-recall.js +60 -5
  27. package/dist/core/format-recall.js.map +1 -1
  28. package/dist/core/ml-worker.d.ts +24 -1
  29. package/dist/core/ml-worker.d.ts.map +1 -1
  30. package/dist/core/ml-worker.js +165 -4
  31. package/dist/core/ml-worker.js.map +1 -1
  32. package/dist/core/model-daemon-client.d.ts +77 -0
  33. package/dist/core/model-daemon-client.d.ts.map +1 -0
  34. package/dist/core/model-daemon-client.js +383 -0
  35. package/dist/core/model-daemon-client.js.map +1 -0
  36. package/dist/core/model-daemon-server.d.ts +71 -0
  37. package/dist/core/model-daemon-server.d.ts.map +1 -0
  38. package/dist/core/model-daemon-server.js +363 -0
  39. package/dist/core/model-daemon-server.js.map +1 -0
  40. package/dist/core/model-daemon.d.ts +137 -0
  41. package/dist/core/model-daemon.d.ts.map +1 -0
  42. package/dist/core/model-daemon.js +231 -0
  43. package/dist/core/model-daemon.js.map +1 -0
  44. package/dist/core/query-expander.d.ts +5 -0
  45. package/dist/core/query-expander.d.ts.map +1 -1
  46. package/dist/core/query-expander.js +3 -2
  47. package/dist/core/query-expander.js.map +1 -1
  48. package/dist/core/recall-config.d.ts +1 -1
  49. package/dist/core/recall-config.d.ts.map +1 -1
  50. package/dist/core/recall-config.js +5 -0
  51. package/dist/core/recall-config.js.map +1 -1
  52. package/dist/core/rerank-window.d.ts +7 -2
  53. package/dist/core/rerank-window.d.ts.map +1 -1
  54. package/dist/core/rerank-window.js +9 -4
  55. package/dist/core/rerank-window.js.map +1 -1
  56. package/dist/core/rerank2.d.ts +52 -2
  57. package/dist/core/rerank2.d.ts.map +1 -1
  58. package/dist/core/rerank2.js +60 -3
  59. package/dist/core/rerank2.js.map +1 -1
  60. package/dist/core/reranker.d.ts +19 -0
  61. package/dist/core/reranker.d.ts.map +1 -1
  62. package/dist/core/reranker.js +76 -12
  63. package/dist/core/reranker.js.map +1 -1
  64. package/dist/core/salience.d.ts +2 -0
  65. package/dist/core/salience.d.ts.map +1 -1
  66. package/dist/core/salience.js +45 -18
  67. package/dist/core/salience.js.map +1 -1
  68. package/dist/core/trust.d.ts +32 -0
  69. package/dist/core/trust.d.ts.map +1 -0
  70. package/dist/core/trust.js +66 -0
  71. package/dist/core/trust.js.map +1 -0
  72. package/dist/core/validity.d.ts +21 -0
  73. package/dist/core/validity.d.ts.map +1 -0
  74. package/dist/core/validity.js +41 -0
  75. package/dist/core/validity.js.map +1 -0
  76. package/dist/core/whoami.d.ts +3 -0
  77. package/dist/core/whoami.d.ts.map +1 -1
  78. package/dist/core/whoami.js +14 -0
  79. package/dist/core/whoami.js.map +1 -1
  80. package/dist/core/write-pipeline.d.ts +48 -0
  81. package/dist/core/write-pipeline.d.ts.map +1 -1
  82. package/dist/core/write-pipeline.js +104 -4
  83. package/dist/core/write-pipeline.js.map +1 -1
  84. package/dist/engine/activation.d.ts.map +1 -1
  85. package/dist/engine/activation.js +27 -4
  86. package/dist/engine/activation.js.map +1 -1
  87. package/dist/engine/consolidation.d.ts.map +1 -1
  88. package/dist/engine/consolidation.js +67 -5
  89. package/dist/engine/consolidation.js.map +1 -1
  90. package/dist/hooks/prime-query.d.ts +57 -0
  91. package/dist/hooks/prime-query.d.ts.map +1 -0
  92. package/dist/hooks/prime-query.js +388 -0
  93. package/dist/hooks/prime-query.js.map +1 -0
  94. package/dist/hooks/prime.d.ts +8 -0
  95. package/dist/hooks/prime.d.ts.map +1 -1
  96. package/dist/hooks/prime.js +21 -2
  97. package/dist/hooks/prime.js.map +1 -1
  98. package/dist/hooks/sidecar.d.ts +7 -0
  99. package/dist/hooks/sidecar.d.ts.map +1 -1
  100. package/dist/hooks/sidecar.js +10 -2
  101. package/dist/hooks/sidecar.js.map +1 -1
  102. package/dist/index.js +11 -3
  103. package/dist/index.js.map +1 -1
  104. package/dist/mcp.js +148 -103
  105. package/dist/mcp.js.map +1 -1
  106. package/dist/model-daemon.d.ts +8 -0
  107. package/dist/model-daemon.d.ts.map +1 -0
  108. package/dist/model-daemon.js +45 -0
  109. package/dist/model-daemon.js.map +1 -0
  110. package/dist/storage/factory.d.ts.map +1 -1
  111. package/dist/storage/factory.js +5 -0
  112. package/dist/storage/factory.js.map +1 -1
  113. package/dist/storage/pglite-schema.d.ts.map +1 -1
  114. package/dist/storage/pglite-schema.js +176 -170
  115. package/dist/storage/pglite-schema.js.map +1 -1
  116. package/dist/storage/pglite.d.ts +5 -0
  117. package/dist/storage/pglite.d.ts.map +1 -1
  118. package/dist/storage/pglite.js +165 -153
  119. package/dist/storage/pglite.js.map +1 -1
  120. package/dist/storage/postgres.d.ts +5 -0
  121. package/dist/storage/postgres.d.ts.map +1 -1
  122. package/dist/storage/postgres.js +165 -153
  123. package/dist/storage/postgres.js.map +1 -1
  124. package/dist/storage/sqlite.d.ts +22 -0
  125. package/dist/storage/sqlite.d.ts.map +1 -1
  126. package/dist/storage/sqlite.js +400 -363
  127. package/dist/storage/sqlite.js.map +1 -1
  128. package/dist/types/engram.d.ts +33 -0
  129. package/dist/types/engram.d.ts.map +1 -1
  130. package/dist/types/engram.js.map +1 -1
  131. package/package.json +106 -106
  132. package/plugin/.claude-plugin/plugin.json +1 -1
  133. package/plugin/README.md +1 -1
  134. package/plugin/bin/awm-mcp-launcher.cjs +2 -2
  135. package/plugin/skills/awm-memory/SKILL.md +16 -5
  136. package/src/adapters/common.ts +881 -800
  137. package/src/api/routes.ts +20 -0
  138. package/src/cli/migrate.ts +309 -307
  139. package/src/core/asked-value.ts +74 -0
  140. package/src/core/conflicts.ts +280 -0
  141. package/src/core/embeddings.ts +35 -10
  142. package/src/core/format-recall.ts +83 -25
  143. package/src/core/ml-worker.ts +458 -281
  144. package/src/core/model-daemon-client.ts +374 -0
  145. package/src/core/model-daemon-server.ts +344 -0
  146. package/src/core/model-daemon.ts +243 -0
  147. package/src/core/query-expander.ts +127 -126
  148. package/src/core/recall-config.ts +5 -0
  149. package/src/core/rerank-window.ts +164 -159
  150. package/src/core/rerank2.ts +143 -82
  151. package/src/core/reranker.ts +78 -11
  152. package/src/core/salience.ts +45 -18
  153. package/src/core/trust.ts +65 -0
  154. package/src/core/validity.ts +47 -0
  155. package/src/core/whoami.ts +136 -120
  156. package/src/core/write-pipeline.ts +143 -4
  157. package/src/engine/activation.ts +27 -4
  158. package/src/engine/consolidation.ts +950 -887
  159. package/src/hooks/prime-query.ts +375 -0
  160. package/src/hooks/prime.ts +25 -2
  161. package/src/hooks/sidecar.ts +13 -3
  162. package/src/index.ts +255 -248
  163. package/src/mcp.ts +1521 -1475
  164. package/src/model-daemon.ts +48 -0
  165. package/src/storage/factory.ts +25 -19
  166. package/src/storage/pglite-schema.ts +199 -193
  167. package/src/storage/pglite.ts +1513 -1498
  168. package/src/storage/postgres.ts +1613 -1598
  169. package/src/storage/sqlite.ts +2056 -2019
  170. package/src/types/engram.ts +30 -0
@@ -1 +1 @@
1
- {"version":3,"file":"format-recall.js","sourceRoot":"","sources":["../../src/core/format-recall.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAmB,EAAE,KAAa;IACvE,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY;QACjC,CAAC,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,YAAY,4EAA4E;QACvH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;QAC/B,CAAC,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG;QACtC,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,QAAQ,KAAK,IAAI,GAAG,KAAK,EAAE,CAAC;AAC1H,CAAC"}
1
+ {"version":3,"file":"format-recall.js","sourceRoot":"","sources":["../../src/core/format-recall.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@
20
20
  * Test / dev mode: AWM_ML_INPROCESS=1 is honored but is now the default.
21
21
  * The env var remains as a no-op for backwards compatibility.
22
22
  */
23
+ import { type InferenceConfig, type Lane } from './model-daemon.js';
23
24
  declare let inProcessEmbed: ((args: any) => Promise<number[][]>) | null;
24
25
  declare let inProcessRerank: ((args: any) => Promise<Array<{
25
26
  index: number;
@@ -36,11 +37,33 @@ export declare function registerInProcessHandlers(handlers: {
36
37
  }): void;
37
38
  /** True if the pool is operating in in-process mode (no workers). */
38
39
  export declare function isInProcessMode(): boolean;
40
+ export declare function registerInferenceConfig(part: InferenceConfig): void;
41
+ export declare function registeredInferenceConfig(): InferenceConfig;
42
+ /**
43
+ * Eager warm through the daemon: it loads its models; this process loads none. On
44
+ * failure this process enters the fallback window (so the first recall does not pay
45
+ * the start timeout again) but loads nothing now: the first real request does that, if
46
+ * the daemon is still down by then.
47
+ */
48
+ export declare function warmModelDaemon(): Promise<void>;
49
+ export declare function modelDaemonStatus(): {
50
+ enabled: boolean;
51
+ mode: 'off' | 'daemon' | 'in-process-fallback' | 'not-connected';
52
+ fingerprint: string | null;
53
+ daemonPid: number | null;
54
+ requests: number;
55
+ queueTimeouts: number;
56
+ fallbacks: number;
57
+ lastFallbackReason: string | null;
58
+ lastFallbackAt: string | null;
59
+ };
60
+ /** Test-only: forget the client, the fallback window and the counters. */
61
+ export declare function __resetModelDaemonClient(): Promise<void>;
39
62
  export declare function dispatchEmbed(args: {
40
63
  texts: string[];
41
64
  pooling: 'cls' | 'mean';
42
65
  dimensions: number;
43
- }): Promise<number[][]>;
66
+ }, lane?: Lane): Promise<number[][]>;
44
67
  export declare function dispatchRerank(args: {
45
68
  query: string;
46
69
  passages: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"ml-worker.d.ts","sourceRoot":"","sources":["../../src/core/ml-worker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAgCH,QAAA,IAAI,cAAc,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,IAAW,CAAC;AACvE,QAAA,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC,GAAG,IAAW,CAAC;AACrG,QAAA,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAW,CAAC;AAkHpE,qEAAqE;AACrE,wBAAgB,UAAU,IAAI,IAAI,CAWjC;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE;IAClD,KAAK,CAAC,EAAE,OAAO,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,eAAe,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,eAAe,CAAC;CACjC,GAAG,IAAI,CAIP;AAED,qEAAqE;AACrE,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAmDD,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAE/H;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAElI;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/H;AAED,0EAA0E;AAC1E,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBpD"}
1
+ {"version":3,"file":"ml-worker.d.ts","sourceRoot":"","sources":["../../src/core/ml-worker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,OAAO,EAEL,KAAK,eAAe,EAAE,KAAK,IAAI,EAChC,MAAM,mBAAmB,CAAC;AA4B3B,QAAA,IAAI,cAAc,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,IAAW,CAAC;AACvE,QAAA,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC,GAAG,IAAW,CAAC;AACrG,QAAA,IAAI,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAW,CAAC;AAkHpE,qEAAqE;AACrE,wBAAgB,UAAU,IAAI,IAAI,CAWjC;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE;IAClD,KAAK,CAAC,EAAE,OAAO,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,eAAe,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,eAAe,CAAC;CACjC,GAAG,IAAI,CAIP;AAED,qEAAqE;AACrE,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AA0DD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAEnE;AACD,wBAAgB,yBAAyB,IAAI,eAAe,CAE3D;AAuGD;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAYrD;AAED,wBAAgB,iBAAiB,IAAI;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,qBAAqB,GAAG,eAAe,CAAC;IACjE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CASA;AAED,0EAA0E;AAC1E,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAW9D;AAID,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,GAAE,IAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAE3J;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAElI;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/H;AAED,0EAA0E;AAC1E,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBpD"}
@@ -26,6 +26,8 @@ import { Worker } from 'node:worker_threads';
26
26
  import { fileURLToPath } from 'node:url';
27
27
  import { dirname, join } from 'node:path';
28
28
  import { existsSync } from 'node:fs';
29
+ import { configEnv, envInt, isModelDaemonEnabled, modelDaemonFingerprint, REQUEST_TIMEOUT_MS as DAEMON_STEP_TIMEOUT_MS, WARM_TIMEOUT_MS, } from './model-daemon.js';
30
+ import { DaemonRemoteError, DaemonUnavailableError, ModelDaemonClient } from './model-daemon-client.js';
29
31
  let inProcessMode = false;
30
32
  let workers = null;
31
33
  let nextId = 1;
@@ -219,15 +221,174 @@ async function dispatchInProcess(role, args) {
219
221
  return inProcessExpand(args);
220
222
  }
221
223
  }
224
+ // --- Shared model daemon (AWM_MODEL_DAEMON=1, see model-daemon.ts) ---
225
+ /**
226
+ * The config each model module captured at import, registered by the module itself.
227
+ * The daemon's fingerprint is built from these values, not from the env strings, and a
228
+ * spawned daemon is given them as env: a .env file applied after the modules loaded
229
+ * would otherwise make the daemon run a different model than the fallback here.
230
+ */
231
+ const inferenceConfig = {};
232
+ export function registerInferenceConfig(part) {
233
+ Object.assign(inferenceConfig, part);
234
+ }
235
+ export function registeredInferenceConfig() {
236
+ return { ...inferenceConfig };
237
+ }
238
+ /**
239
+ * When the daemon fails, inference runs in-process and the daemon is probed again in
240
+ * the background, after 60 s, then 2, 4, 8 and at most 15 min. Requests never wait on a
241
+ * probe. In-process is the pre-daemon behaviour, bounded by the same shape caps, so a
242
+ * daemon outage costs memory, never recall. A BUSY daemon is not a failure: only an
243
+ * unreachable one, one that will not start, or one that stops making progress.
244
+ */
245
+ const RETRY_FIRST_MS = 60_000;
246
+ const RETRY_MAX_MS = 15 * 60_000;
247
+ let daemon = null;
248
+ let fallbackActive = false;
249
+ let retryMs = RETRY_FIRST_MS;
250
+ let retryAt = 0;
251
+ let probing = false;
252
+ let connectedPid = null;
253
+ let clientFingerprint = null;
254
+ const daemonState = {
255
+ requests: 0,
256
+ queueTimeouts: 0,
257
+ fallbacks: 0,
258
+ lastFallbackReason: null,
259
+ lastFallbackAt: null,
260
+ };
261
+ function daemonClient() {
262
+ return (daemon ??= (async () => {
263
+ // All three modules register their config on import. Load any not loaded yet, so
264
+ // the fingerprint is the daemon's (which loads all three).
265
+ await Promise.all([import('./embeddings.js'), import('./reranker.js'), import('./query-expander.js')]);
266
+ const config = registeredInferenceConfig();
267
+ clientFingerprint = modelDaemonFingerprint(config);
268
+ return new ModelDaemonClient({ fingerprint: clientFingerprint, spawnEnv: configEnv(config) });
269
+ })());
270
+ }
271
+ function reasonOf(err) {
272
+ return err instanceof DaemonUnavailableError ? err.reason : 'error';
273
+ }
274
+ function noteFallback(reason, err) {
275
+ daemonState.fallbacks++;
276
+ daemonState.lastFallbackReason = reason;
277
+ daemonState.lastFallbackAt = new Date().toISOString();
278
+ retryAt = Date.now() + retryMs;
279
+ console.error(`[awm] model daemon unavailable (${reason}): ${err?.message ?? err} — running inference in this process; next try in ${Math.round(retryMs / 1000)}s`);
280
+ retryMs = Math.min(retryMs * 2, RETRY_MAX_MS);
281
+ fallbackActive = true;
282
+ }
283
+ function noteConnected(client) {
284
+ connectedPid = client.daemonPid;
285
+ if (fallbackActive)
286
+ console.error(`[awm] model daemon back (pid ${client.daemonPid}); inference leaves this process`);
287
+ fallbackActive = false;
288
+ retryMs = RETRY_FIRST_MS;
289
+ }
290
+ function probeInBackground() {
291
+ if (probing || Date.now() < retryAt)
292
+ return;
293
+ probing = true;
294
+ void daemonClient()
295
+ .then(async (c) => {
296
+ const st = await c.request('stats');
297
+ // Answering stats is not health: a daemon stuck on a step answers it too.
298
+ const limit = st.current?.op === 'warm' ? WARM_TIMEOUT_MS : envInt('AWM_MODEL_DAEMON_TIMEOUT_MS', DAEMON_STEP_TIMEOUT_MS);
299
+ if (st.current && st.current.runningMs > limit) {
300
+ throw new DaemonUnavailableError(`daemon has been running ${st.current.op} for ${st.current.runningMs} ms`, 'wedged');
301
+ }
302
+ noteConnected(c);
303
+ })
304
+ .catch(err => noteFallback(reasonOf(err), err))
305
+ .finally(() => { probing = false; });
306
+ }
307
+ async function dispatch(role, args, lane = 'interactive') {
308
+ if (!isModelDaemonEnabled())
309
+ return dispatchToWorker(role, args);
310
+ if (fallbackActive) {
311
+ probeInBackground();
312
+ return dispatchToWorker(role, args);
313
+ }
314
+ // One retry on a dropped connection: the daemon may have exited on its idle lease
315
+ // just as this request went out, and the retry starts a new one.
316
+ for (let attempt = 0;; attempt++) {
317
+ try {
318
+ const client = await daemonClient();
319
+ const result = await client.request(role, args, lane);
320
+ daemonState.requests++;
321
+ connectedPid = client.daemonPid;
322
+ return result;
323
+ }
324
+ catch (err) {
325
+ if (err instanceof DaemonRemoteError)
326
+ throw err;
327
+ if (attempt === 0 && reasonOf(err) === 'disconnected')
328
+ continue;
329
+ // Queued too long is busy, not down: this one request runs here, and the next one
330
+ // goes to the daemon again.
331
+ if (reasonOf(err) === 'queue-timeout') {
332
+ daemonState.queueTimeouts++;
333
+ return dispatchToWorker(role, args);
334
+ }
335
+ noteFallback(reasonOf(err), err);
336
+ return dispatchToWorker(role, args);
337
+ }
338
+ }
339
+ }
340
+ /**
341
+ * Eager warm through the daemon: it loads its models; this process loads none. On
342
+ * failure this process enters the fallback window (so the first recall does not pay
343
+ * the start timeout again) but loads nothing now: the first real request does that, if
344
+ * the daemon is still down by then.
345
+ */
346
+ export async function warmModelDaemon() {
347
+ try {
348
+ const client = await daemonClient();
349
+ await client.request('warm');
350
+ noteConnected(client);
351
+ }
352
+ catch (err) {
353
+ if (err instanceof DaemonRemoteError) {
354
+ console.error(`[awm] model daemon could not load its models: ${err.message}`);
355
+ return;
356
+ }
357
+ noteFallback(reasonOf(err), err);
358
+ }
359
+ }
360
+ export function modelDaemonStatus() {
361
+ const enabled = isModelDaemonEnabled();
362
+ const mode = !enabled ? 'off' : fallbackActive ? 'in-process-fallback' : connectedPid ? 'daemon' : 'not-connected';
363
+ return {
364
+ enabled, mode,
365
+ fingerprint: enabled ? clientFingerprint : null,
366
+ daemonPid: enabled ? connectedPid : null,
367
+ ...daemonState,
368
+ };
369
+ }
370
+ /** Test-only: forget the client, the fallback window and the counters. */
371
+ export async function __resetModelDaemonClient() {
372
+ const c = daemon;
373
+ daemon = null;
374
+ (await c?.catch(() => null))?.close();
375
+ fallbackActive = false;
376
+ retryMs = RETRY_FIRST_MS;
377
+ retryAt = 0;
378
+ probing = false;
379
+ connectedPid = null;
380
+ clientFingerprint = null;
381
+ Object.assign(daemonState, { requests: 0, queueTimeouts: 0, fallbacks: 0, lastFallbackReason: null, lastFallbackAt: null });
382
+ }
222
383
  // --- Public API used by the consumer modules ---
223
- export async function dispatchEmbed(args) {
224
- return dispatchToWorker('embed', args);
384
+ export async function dispatchEmbed(args, lane = 'interactive') {
385
+ return dispatch('embed', args, lane);
225
386
  }
226
387
  export async function dispatchRerank(args) {
227
- return dispatchToWorker('rerank', args);
388
+ return dispatch('rerank', args);
228
389
  }
229
390
  export async function dispatchExpand(args) {
230
- return dispatchToWorker('expand', args);
391
+ return dispatch('expand', args);
231
392
  }
232
393
  /** Graceful shutdown. Waits up to 2s for queue drain, then terminates. */
233
394
  export async function shutdownMLPool() {
@@ -1 +1 @@
1
- {"version":3,"file":"ml-worker.js","sourceRoot":"","sources":["../../src/core/ml-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ml-worker.js","sourceRoot":"","sources":["../../src/core/ml-worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Client side of the shared model daemon (see model-daemon.ts).
3
+ *
4
+ * Connecting: try the daemon's address. If nothing answers, take the lockfile (O_EXCL,
5
+ * holding this pid) and spawn the daemon detached, through a launcher so that it is not
6
+ * this process's child (see LAUNCHER); every other process starting at the
7
+ * same moment finds the lock taken and just keeps trying to connect. A lock whose pid is
8
+ * dead, or that is older than the start timeout, is stale and is taken over, so a
9
+ * spawner that crashed mid-start blocks nobody. A daemon this client spawned that exits
10
+ * with an error ends the wait at once instead of at the start timeout.
11
+ *
12
+ * Timeouts: a request waits in the daemon's queue for up to AWM_MODEL_DAEMON_QUEUE_MS
13
+ * (10 min) without failing, because a busy daemon is not a broken one; when it gives up
14
+ * it tells the daemon to drop the job. While the daemon reports a step `started` (and
15
+ * until it reports the job `requeued` between chunks), the step must finish within
16
+ * AWM_MODEL_DAEMON_TIMEOUT_MS (2 min); a daemon that does not is stuck, and the
17
+ * connection is dropped.
18
+ *
19
+ * The client never falls back to in-process inference itself; ml-worker.ts decides that.
20
+ */
21
+ import { type DaemonPaths, type Lane, type ModelOp } from './model-daemon.js';
22
+ /** The daemon ran the request and it failed there. In-process would fail the same way. */
23
+ export declare class DaemonRemoteError extends Error {
24
+ }
25
+ /** The daemon could not be reached or stopped answering. */
26
+ export declare class DaemonUnavailableError extends Error {
27
+ readonly reason: string;
28
+ constructor(message: string, reason: string);
29
+ }
30
+ export interface DaemonEntry {
31
+ command: string;
32
+ args: string[];
33
+ }
34
+ export interface ClientOptions {
35
+ fingerprint: string;
36
+ runDir?: string;
37
+ /** How to start the daemon. Defaults to this package's model-daemon entry. */
38
+ entry?: DaemonEntry;
39
+ /** Extra env for a spawned daemon: the client's captured inference config. */
40
+ spawnEnv?: Record<string, string>;
41
+ startTimeoutMs?: number;
42
+ requestTimeoutMs?: number;
43
+ queueTimeoutMs?: number;
44
+ }
45
+ export declare function defaultDaemonEntry(): DaemonEntry;
46
+ export declare class ModelDaemonClient {
47
+ readonly fingerprint: string;
48
+ readonly paths: DaemonPaths;
49
+ private readonly entry;
50
+ private readonly spawnEnv;
51
+ private readonly startTimeoutMs;
52
+ private readonly requestTimeoutMs;
53
+ private readonly queueTimeoutMs;
54
+ private socket;
55
+ private connecting;
56
+ private pending;
57
+ private nextId;
58
+ daemonPid: number | null;
59
+ spawned: number;
60
+ constructor(opts: ClientOptions);
61
+ get connected(): boolean;
62
+ request<T>(op: ModelOp, args?: unknown, lane?: Lane): Promise<T>;
63
+ close(): void;
64
+ /** Waiting in the queue: fail this request only, the daemon is busy, not gone. */
65
+ private queueTimer;
66
+ /** Running: no answer and no progress in time means the daemon is stuck. */
67
+ private runTimer;
68
+ private ensureConnected;
69
+ private connectOrSpawn;
70
+ private tryConnect;
71
+ private attach;
72
+ private onResponse;
73
+ private takeLock;
74
+ private releaseLock;
75
+ private spawnDaemon;
76
+ }
77
+ //# sourceMappingURL=model-daemon-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-daemon-client.d.ts","sourceRoot":"","sources":["../../src/core/model-daemon-client.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAGL,KAAK,WAAW,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAC1C,MAAM,mBAAmB,CAAC;AAE3B,0FAA0F;AAC1F,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,4DAA4D;AAC5D,qBAAa,sBAAuB,SAAQ,KAAK;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAxC,OAAO,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CACrD;AAED,MAAM,WAAW,WAAW;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE;AAEhE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA6BD,wBAAgB,kBAAkB,IAAI,WAAW,CAOhD;AASD,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAK;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,OAAO,SAAK;gBAEA,IAAI,EAAE,aAAa;IAU/B,IAAI,SAAS,IAAI,OAAO,CAAoD;IAEtE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,IAAoB,GAAG,OAAO,CAAC,CAAC,CAAC;IAUrF,KAAK,IAAI,IAAI;IAKb,kFAAkF;IAClF,OAAO,CAAC,UAAU;IAUlB,4EAA4E;IAC5E,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,eAAe;YAMT,cAAc;IAyC5B,OAAO,CAAC,UAAU;IAiElB,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;CA2BpB"}