@seanhogg/builderforce-memory-engine 2026.10.1 → 2026.10.2

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 (122) hide show
  1. package/dist/evermind/delta_wire.d.ts +16 -1
  2. package/dist/evermind/delta_wire.d.ts.map +1 -1
  3. package/dist/evermind/delta_wire.js +22 -2
  4. package/dist/evermind/delta_wire.js.map +1 -1
  5. package/dist/evermind/index.d.ts +2 -2
  6. package/dist/evermind/index.d.ts.map +1 -1
  7. package/dist/evermind/index.js +1 -1
  8. package/dist/evermind/index.js.map +1 -1
  9. package/dist/evermind/merge.d.ts +5 -2
  10. package/dist/evermind/merge.d.ts.map +1 -1
  11. package/dist/evermind/merge.js +5 -2
  12. package/dist/evermind/merge.js.map +1 -1
  13. package/dist/evermind/ml_head.d.ts +28 -0
  14. package/dist/evermind/ml_head.d.ts.map +1 -0
  15. package/dist/evermind/ml_head.js +47 -0
  16. package/dist/evermind/ml_head.js.map +1 -0
  17. package/dist/evermind/package.d.ts +2 -2
  18. package/dist/evermind/package.d.ts.map +1 -1
  19. package/dist/evermind/package.js +1 -1
  20. package/dist/evermind/package.js.map +1 -1
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/limbic/limbic_model.d.ts.map +1 -1
  26. package/dist/limbic/limbic_model.js +1 -3
  27. package/dist/limbic/limbic_model.js.map +1 -1
  28. package/dist/ml/classical/anomaly_composite.d.ts +32 -0
  29. package/dist/ml/classical/anomaly_composite.d.ts.map +1 -0
  30. package/dist/ml/classical/anomaly_composite.js +29 -0
  31. package/dist/ml/classical/anomaly_composite.js.map +1 -0
  32. package/dist/ml/classical/ewma.d.ts +6 -1
  33. package/dist/ml/classical/ewma.d.ts.map +1 -1
  34. package/dist/ml/classical/ewma.js +5 -3
  35. package/dist/ml/classical/ewma.js.map +1 -1
  36. package/dist/ml/classical/gbm.d.ts.map +1 -1
  37. package/dist/ml/classical/gbm.js +2 -1
  38. package/dist/ml/classical/gbm.js.map +1 -1
  39. package/dist/ml/classical/index.d.ts +4 -0
  40. package/dist/ml/classical/index.d.ts.map +1 -1
  41. package/dist/ml/classical/index.js +4 -0
  42. package/dist/ml/classical/index.js.map +1 -1
  43. package/dist/ml/classical/kmeans.d.ts.map +1 -1
  44. package/dist/ml/classical/kmeans.js +23 -4
  45. package/dist/ml/classical/kmeans.js.map +1 -1
  46. package/dist/ml/classical/knn.d.ts +4 -1
  47. package/dist/ml/classical/knn.d.ts.map +1 -1
  48. package/dist/ml/classical/knn.js +2 -1
  49. package/dist/ml/classical/knn.js.map +1 -1
  50. package/dist/ml/classical/logistic.d.ts +1 -9
  51. package/dist/ml/classical/logistic.d.ts.map +1 -1
  52. package/dist/ml/classical/logistic.js +17 -9
  53. package/dist/ml/classical/logistic.js.map +1 -1
  54. package/dist/ml/classical/naive_bayes.d.ts +5 -1
  55. package/dist/ml/classical/naive_bayes.d.ts.map +1 -1
  56. package/dist/ml/classical/naive_bayes.js +8 -3
  57. package/dist/ml/classical/naive_bayes.js.map +1 -1
  58. package/dist/ml/classical/robust_z.d.ts +9 -1
  59. package/dist/ml/classical/robust_z.d.ts.map +1 -1
  60. package/dist/ml/classical/robust_z.js +2 -1
  61. package/dist/ml/classical/robust_z.js.map +1 -1
  62. package/dist/ml/eval_loss.d.ts +15 -0
  63. package/dist/ml/eval_loss.d.ts.map +1 -0
  64. package/dist/ml/eval_loss.js +20 -0
  65. package/dist/ml/eval_loss.js.map +1 -0
  66. package/dist/ml/federate.d.ts +11 -25
  67. package/dist/ml/federate.d.ts.map +1 -1
  68. package/dist/ml/federate.js +15 -38
  69. package/dist/ml/federate.js.map +1 -1
  70. package/dist/ml/head_trainer.d.ts +4 -2
  71. package/dist/ml/head_trainer.d.ts.map +1 -1
  72. package/dist/ml/head_trainer.js +19 -19
  73. package/dist/ml/head_trainer.js.map +1 -1
  74. package/dist/ml/run.d.ts +11 -2
  75. package/dist/ml/run.d.ts.map +1 -1
  76. package/dist/ml/run.js +56 -17
  77. package/dist/ml/run.js.map +1 -1
  78. package/dist/ml/tasks/experience.d.ts +42 -5
  79. package/dist/ml/tasks/experience.d.ts.map +1 -1
  80. package/dist/ml/tasks/experience.js +76 -19
  81. package/dist/ml/tasks/experience.js.map +1 -1
  82. package/dist/ml/tasks/run_anomaly.d.ts +20 -19
  83. package/dist/ml/tasks/run_anomaly.d.ts.map +1 -1
  84. package/dist/ml/tasks/run_anomaly.js +20 -30
  85. package/dist/ml/tasks/run_anomaly.js.map +1 -1
  86. package/dist/ml/train.d.ts +2 -7
  87. package/dist/ml/train.d.ts.map +1 -1
  88. package/dist/ml/train.js +2 -19
  89. package/dist/ml/train.js.map +1 -1
  90. package/dist/ml/types.d.ts +6 -3
  91. package/dist/ml/types.d.ts.map +1 -1
  92. package/dist/ml/types.js +3 -2
  93. package/dist/ml/types.js.map +1 -1
  94. package/package.json +1 -1
  95. package/src/evermind/delta_wire.ts +173 -148
  96. package/src/evermind/index.ts +36 -35
  97. package/src/evermind/merge.ts +10 -4
  98. package/src/evermind/ml_head.ts +63 -0
  99. package/src/evermind/package.ts +488 -488
  100. package/src/index.ts +2 -0
  101. package/src/limbic/limbic_model.ts +1 -4
  102. package/src/limbic/limbic_trainer.ts +91 -91
  103. package/src/ml/classical/anomaly_composite.ts +46 -0
  104. package/src/ml/classical/ewma.ts +7 -1
  105. package/src/ml/classical/gbm.ts +144 -143
  106. package/src/ml/classical/index.ts +6 -0
  107. package/src/ml/classical/kmeans.ts +22 -4
  108. package/src/ml/classical/knn.ts +6 -2
  109. package/src/ml/classical/logistic.ts +9 -9
  110. package/src/ml/classical/math.ts +93 -93
  111. package/src/ml/classical/naive_bayes.ts +10 -3
  112. package/src/ml/classical/robust_z.ts +11 -2
  113. package/src/ml/eval_loss.ts +27 -0
  114. package/src/ml/federate.ts +22 -52
  115. package/src/ml/head_trainer.ts +21 -42
  116. package/src/ml/registry.ts +44 -44
  117. package/src/ml/run.ts +57 -13
  118. package/src/ml/tasks/experience.ts +98 -19
  119. package/src/ml/tasks/run_anomaly.ts +30 -36
  120. package/src/ml/train.ts +3 -19
  121. package/src/ml/types.ts +135 -132
  122. package/src/training/cpu_ops.ts +141 -141
@@ -0,0 +1,63 @@
1
+ /**
2
+ * evermind/ml_head.ts — what the `.evermind` artifact needs to know about a trained
3
+ * ML-catalog head: its manifest entry shape, its checkpoint format and its structural
4
+ * check, plus the task-id grammar the delta wire's `ml:<task>` target uses.
5
+ *
6
+ * A leaf: it imports only utils/. `evermind/package.ts` and `evermind/delta_wire.ts`
7
+ * import it, and so does `ml/` (which re-exports it) — so the dependency runs one way,
8
+ * ml → evermind, never back.
9
+ */
10
+ import { base64ToBytes } from "../utils/base64.js";
11
+ import { appendCrcTrailer, verifyCrcTrailer } from "../utils/crc32.js";
12
+
13
+ /** Task ids: lowercase dotted segments, e.g. `run.local-success`. */
14
+ export const ML_TASK_ID_RE = /^[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)+$/;
15
+
16
+ /**
17
+ * One trained ML-catalog head carried in a model's manifest (`mlHeads`): small, so
18
+ * it rides in the manifest, and versioned, so it federates — a delta against it is
19
+ * `target: "ml:<task>"`, `baseVersion: version` on the delta wire.
20
+ */
21
+ export interface EvermindMlHead {
22
+ /** Catalog task id, e.g. `run.local-success`. */
23
+ task: string;
24
+ /** Engine key, e.g. `local:classical:logistic`. */
25
+ engine: string;
26
+ /** Integer head version — what a federated delta for it is diffed against. */
27
+ version: number;
28
+ /** What a loader needs to rebuild the predictor (e.g. `{ dim, classes }`). */
29
+ shape: Record<string, number>;
30
+ /** base64 of the CRC-trailed f32 checkpoint of the head's flat parameters. */
31
+ params: string;
32
+ /** Held-out loss of this version, when measured. */
33
+ evalLoss?: number;
34
+ }
35
+
36
+ /** A head's flat parameters as a CRC-trailed f32 checkpoint. */
37
+ export function headCheckpoint(params: ArrayLike<number>): ArrayBuffer {
38
+ const body = new ArrayBuffer(params.length * 4);
39
+ new Float32Array(body).set(Array.from(params));
40
+ return appendCrcTrailer(body);
41
+ }
42
+
43
+ /** The flat parameters of a head checkpoint. Throws on a failed CRC. */
44
+ export function headParams(checkpoint: ArrayBuffer): Float32Array {
45
+ const crc = verifyCrcTrailer(checkpoint);
46
+ if (!crc.ok) throw new Error("headParams: checkpoint failed its CRC check");
47
+ if (crc.body.byteLength % 4 !== 0) throw new Error("headParams: checkpoint is not f32");
48
+ return new Float32Array(crc.body);
49
+ }
50
+
51
+ /** Why a manifest head entry is unusable, or null (the package's validate() calls this). */
52
+ export function mlHeadUnusableReason(h: EvermindMlHead): string | null {
53
+ if (!h || typeof h.task !== "string" || typeof h.engine !== "string") return "task and engine are required";
54
+ if (!Number.isInteger(h.version) || h.version < 0) return "version must be a non-negative integer";
55
+ try {
56
+ const crc = verifyCrcTrailer(base64ToBytes(h.params));
57
+ if (!crc.hasTrailer || !crc.ok) return "params checkpoint failed its CRC check";
58
+ if (crc.body.byteLength % 4 !== 0) return "params checkpoint is not f32";
59
+ } catch {
60
+ return "params is not base64";
61
+ }
62
+ return null;
63
+ }