@hviana/sema 0.5.3 → 0.5.4

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 (143) hide show
  1. package/AGENTS.md +6 -6
  2. package/HOW_IT_WORKS.md +16 -0
  3. package/jsr.json +1 -1
  4. package/package.json +1 -1
  5. package/src/mind/match.ts +81 -0
  6. package/src/mind/mechanisms/recall.ts +29 -3
  7. package/test/76-reference-binding.test.mjs +72 -0
  8. package/dist/example/demo.d.ts +0 -1
  9. package/dist/example/demo.js +0 -39
  10. package/dist/example/train_base.d.ts +0 -93
  11. package/dist/example/train_base.js +0 -2269
  12. package/dist/src/alphabet.d.ts +0 -7
  13. package/dist/src/alphabet.js +0 -33
  14. package/dist/src/alu/src/alu.d.ts +0 -185
  15. package/dist/src/alu/src/alu.js +0 -440
  16. package/dist/src/alu/src/expr.d.ts +0 -61
  17. package/dist/src/alu/src/expr.js +0 -318
  18. package/dist/src/alu/src/index.d.ts +0 -11
  19. package/dist/src/alu/src/index.js +0 -19
  20. package/dist/src/alu/src/kernel-arith.d.ts +0 -16
  21. package/dist/src/alu/src/kernel-arith.js +0 -264
  22. package/dist/src/alu/src/kernel-bits.d.ts +0 -19
  23. package/dist/src/alu/src/kernel-bits.js +0 -152
  24. package/dist/src/alu/src/kernel-logic.d.ts +0 -4
  25. package/dist/src/alu/src/kernel-logic.js +0 -60
  26. package/dist/src/alu/src/kernel-nd.d.ts +0 -3
  27. package/dist/src/alu/src/kernel-nd.js +0 -208
  28. package/dist/src/alu/src/kernel-numeric.d.ts +0 -54
  29. package/dist/src/alu/src/kernel-numeric.js +0 -366
  30. package/dist/src/alu/src/operation.d.ts +0 -168
  31. package/dist/src/alu/src/operation.js +0 -189
  32. package/dist/src/alu/src/parser.d.ts +0 -221
  33. package/dist/src/alu/src/parser.js +0 -577
  34. package/dist/src/alu/src/resonance.d.ts +0 -55
  35. package/dist/src/alu/src/resonance.js +0 -126
  36. package/dist/src/alu/src/text.d.ts +0 -31
  37. package/dist/src/alu/src/text.js +0 -73
  38. package/dist/src/alu/src/value.d.ts +0 -109
  39. package/dist/src/alu/src/value.js +0 -300
  40. package/dist/src/alu/test/alu.test.d.ts +0 -1
  41. package/dist/src/alu/test/alu.test.js +0 -764
  42. package/dist/src/bytes.d.ts +0 -14
  43. package/dist/src/bytes.js +0 -59
  44. package/dist/src/canon.d.ts +0 -45
  45. package/dist/src/canon.js +0 -85
  46. package/dist/src/config.d.ts +0 -111
  47. package/dist/src/config.js +0 -91
  48. package/dist/src/derive/src/deduction.d.ts +0 -136
  49. package/dist/src/derive/src/deduction.js +0 -159
  50. package/dist/src/derive/src/index.d.ts +0 -8
  51. package/dist/src/derive/src/index.js +0 -11
  52. package/dist/src/derive/src/priority-queue.d.ts +0 -20
  53. package/dist/src/derive/src/priority-queue.js +0 -73
  54. package/dist/src/derive/src/rewrite.d.ts +0 -56
  55. package/dist/src/derive/src/rewrite.js +0 -100
  56. package/dist/src/derive/src/trie.d.ts +0 -90
  57. package/dist/src/derive/src/trie.js +0 -217
  58. package/dist/src/derive/test/derive.test.d.ts +0 -1
  59. package/dist/src/derive/test/derive.test.js +0 -122
  60. package/dist/src/extension.d.ts +0 -37
  61. package/dist/src/extension.js +0 -7
  62. package/dist/src/geometry.d.ts +0 -233
  63. package/dist/src/geometry.js +0 -1089
  64. package/dist/src/index.d.ts +0 -17
  65. package/dist/src/index.js +0 -19
  66. package/dist/src/ingest-cache.d.ts +0 -41
  67. package/dist/src/ingest-cache.js +0 -165
  68. package/dist/src/meter.d.ts +0 -176
  69. package/dist/src/meter.js +0 -274
  70. package/dist/src/mind/articulation.d.ts +0 -6
  71. package/dist/src/mind/articulation.js +0 -99
  72. package/dist/src/mind/attention.d.ts +0 -430
  73. package/dist/src/mind/attention.js +0 -2418
  74. package/dist/src/mind/bridge.d.ts +0 -37
  75. package/dist/src/mind/bridge.js +0 -907
  76. package/dist/src/mind/canonical.d.ts +0 -34
  77. package/dist/src/mind/canonical.js +0 -93
  78. package/dist/src/mind/graph-search.d.ts +0 -294
  79. package/dist/src/mind/graph-search.js +0 -996
  80. package/dist/src/mind/index.d.ts +0 -9
  81. package/dist/src/mind/index.js +0 -5
  82. package/dist/src/mind/junction.d.ts +0 -137
  83. package/dist/src/mind/junction.js +0 -358
  84. package/dist/src/mind/learning.d.ts +0 -75
  85. package/dist/src/mind/learning.js +0 -265
  86. package/dist/src/mind/match.d.ts +0 -351
  87. package/dist/src/mind/match.js +0 -959
  88. package/dist/src/mind/mechanisms/alu.d.ts +0 -4
  89. package/dist/src/mind/mechanisms/alu.js +0 -36
  90. package/dist/src/mind/mechanisms/cast.d.ts +0 -89
  91. package/dist/src/mind/mechanisms/cast.js +0 -1186
  92. package/dist/src/mind/mechanisms/confluence.d.ts +0 -24
  93. package/dist/src/mind/mechanisms/confluence.js +0 -271
  94. package/dist/src/mind/mechanisms/cover.d.ts +0 -6
  95. package/dist/src/mind/mechanisms/cover.js +0 -232
  96. package/dist/src/mind/mechanisms/extraction.d.ts +0 -33
  97. package/dist/src/mind/mechanisms/extraction.js +0 -327
  98. package/dist/src/mind/mechanisms/prefix-completion.d.ts +0 -22
  99. package/dist/src/mind/mechanisms/prefix-completion.js +0 -243
  100. package/dist/src/mind/mechanisms/recall.d.ts +0 -16
  101. package/dist/src/mind/mechanisms/recall.js +0 -460
  102. package/dist/src/mind/mechanisms/reference.d.ts +0 -6
  103. package/dist/src/mind/mechanisms/reference.js +0 -296
  104. package/dist/src/mind/mind.d.ts +0 -386
  105. package/dist/src/mind/mind.js +0 -754
  106. package/dist/src/mind/pipeline-mechanism.d.ts +0 -238
  107. package/dist/src/mind/pipeline-mechanism.js +0 -622
  108. package/dist/src/mind/pipeline.d.ts +0 -49
  109. package/dist/src/mind/pipeline.js +0 -343
  110. package/dist/src/mind/primitives.d.ts +0 -85
  111. package/dist/src/mind/primitives.js +0 -333
  112. package/dist/src/mind/rationale.d.ts +0 -139
  113. package/dist/src/mind/rationale.js +0 -163
  114. package/dist/src/mind/reasoning.d.ts +0 -42
  115. package/dist/src/mind/reasoning.js +0 -305
  116. package/dist/src/mind/recognition.d.ts +0 -20
  117. package/dist/src/mind/recognition.js +0 -696
  118. package/dist/src/mind/resonance.d.ts +0 -35
  119. package/dist/src/mind/resonance.js +0 -365
  120. package/dist/src/mind/trace.d.ts +0 -15
  121. package/dist/src/mind/trace.js +0 -73
  122. package/dist/src/mind/traverse.d.ts +0 -196
  123. package/dist/src/mind/traverse.js +0 -806
  124. package/dist/src/mind/types.d.ts +0 -418
  125. package/dist/src/mind/types.js +0 -179
  126. package/dist/src/rabitq-ivf/src/database.d.ts +0 -113
  127. package/dist/src/rabitq-ivf/src/database.js +0 -201
  128. package/dist/src/rabitq-ivf/src/index.d.ts +0 -7
  129. package/dist/src/rabitq-ivf/src/index.js +0 -4
  130. package/dist/src/rabitq-ivf/src/ivf.d.ts +0 -200
  131. package/dist/src/rabitq-ivf/src/ivf.js +0 -1165
  132. package/dist/src/rabitq-ivf/src/prng.d.ts +0 -19
  133. package/dist/src/rabitq-ivf/src/prng.js +0 -36
  134. package/dist/src/rabitq-ivf/src/rabitq.d.ts +0 -95
  135. package/dist/src/rabitq-ivf/src/rabitq.js +0 -313
  136. package/dist/src/sema.d.ts +0 -41
  137. package/dist/src/sema.js +0 -77
  138. package/dist/src/store-sqlite.d.ts +0 -184
  139. package/dist/src/store-sqlite.js +0 -942
  140. package/dist/src/store.d.ts +0 -762
  141. package/dist/src/store.js +0 -1823
  142. package/dist/src/vec.d.ts +0 -31
  143. package/dist/src/vec.js +0 -109
package/dist/src/vec.d.ts DELETED
@@ -1,31 +0,0 @@
1
- export type Vec = Float32Array;
2
- /** Deterministic PRNG (32-bit mixer). */
3
- export declare function rng(seed: number): () => number;
4
- export declare const zeros: (D: number) => Vec;
5
- export declare const copy: (v: Vec) => Vec;
6
- /** Random point on the unit sphere. */
7
- export declare function randomUnit(D: number, rand: () => number): Vec;
8
- /** target += src * scale (in place). */
9
- export declare function addInto(target: Vec, src: Vec, scale?: number): Vec;
10
- export declare function dot(a: Vec, b: Vec): number;
11
- /** In-place normalization. */
12
- export declare function normalize(v: Vec): Vec;
13
- /** Resonance: 1 = same, 0 = unrelated. */
14
- export declare function cosine(a: Vec, b: Vec): number;
15
- /** Set vector epsilon thresholds. Called once by Mind at construction. */
16
- export declare function setVecConfig(cfg: {
17
- normalizeEpsilon?: number;
18
- cosineEpsilon?: number;
19
- }): void;
20
- export interface Permutation {
21
- fwd: Uint32Array;
22
- inv: Uint32Array;
23
- }
24
- /** The keyring: one independent permutation per seat.
25
- * Independent keys do not commute, so an address in a tree is the
26
- * path itself — "seat 2 inside seat 1" ≠ "seat 1 inside seat 2". */
27
- export declare function makeKeyring(D: number, seats: number, rand: () => number): Permutation[];
28
- /** Apply permutation: out[i] = v[table[i]]. */
29
- export declare function permute(v: Vec, table: Uint32Array): Vec;
30
- /** Permute into existing buffer — zero allocation. */
31
- export declare function permuteInto(out: Vec, v: Vec, table: Uint32Array): Vec;
package/dist/src/vec.js DELETED
@@ -1,109 +0,0 @@
1
- // vec.ts — vector primitives.
2
- // Superposition (add), normalization (stay on the sphere),
3
- // resonance (cosine), and seat binding (a keyring of fixed permutations).
4
- // No weights. No gradients.
5
- /** Deterministic PRNG (32-bit mixer). */
6
- export function rng(seed) {
7
- let s = seed >>> 0;
8
- return () => {
9
- s = (s + 0x6d2b79f5) >>> 0;
10
- let t = s;
11
- t = Math.imul(t ^ (t >>> 15), t | 1);
12
- t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
13
- return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
14
- };
15
- }
16
- /** Standard normal sample (Box–Muller). */
17
- function gaussian(rand) {
18
- let u = 0, v = 0;
19
- while (u === 0)
20
- u = rand();
21
- while (v === 0)
22
- v = rand();
23
- return Math.sqrt(-2 * Math.log(u)) * Math.cos(2 * Math.PI * v);
24
- }
25
- export const zeros = (D) => new Float32Array(D);
26
- export const copy = (v) => new Float32Array(v);
27
- /** Random point on the unit sphere. */
28
- export function randomUnit(D, rand) {
29
- const v = zeros(D);
30
- for (let i = 0; i < D; i++)
31
- v[i] = gaussian(rand);
32
- return normalize(v);
33
- }
34
- /** target += src * scale (in place). */
35
- export function addInto(target, src, scale = 1) {
36
- for (let i = 0; i < target.length; i++)
37
- target[i] += src[i] * scale;
38
- return target;
39
- }
40
- export function dot(a, b) {
41
- let s = 0;
42
- for (let i = 0; i < a.length; i++)
43
- s += a[i] * b[i];
44
- return s;
45
- }
46
- const norm = (v) => Math.sqrt(dot(v, v));
47
- // Epsilon thresholds (settable once via setVecConfig).
48
- let _normalizeEpsilon = 1e-12;
49
- let _cosineEpsilon = 1e-12;
50
- /** In-place normalization. */
51
- export function normalize(v) {
52
- const n = norm(v);
53
- if (n > _normalizeEpsilon) {
54
- for (let i = 0; i < v.length; i++)
55
- v[i] /= n;
56
- }
57
- return v;
58
- }
59
- /** Resonance: 1 = same, 0 = unrelated. */
60
- export function cosine(a, b) {
61
- const na = norm(a), nb = norm(b);
62
- return na > _cosineEpsilon && nb > _cosineEpsilon ? dot(a, b) / (na * nb) : 0;
63
- }
64
- /** Set vector epsilon thresholds. Called once by Mind at construction. */
65
- export function setVecConfig(cfg) {
66
- if (cfg.normalizeEpsilon !== undefined) {
67
- _normalizeEpsilon = cfg.normalizeEpsilon;
68
- }
69
- if (cfg.cosineEpsilon !== undefined)
70
- _cosineEpsilon = cfg.cosineEpsilon;
71
- }
72
- /** One fixed random permutation (Fisher–Yates). */
73
- function makePermutation(D, rand) {
74
- const fwd = new Uint32Array(D);
75
- for (let i = 0; i < D; i++)
76
- fwd[i] = i;
77
- for (let i = D - 1; i > 0; i--) {
78
- const j = Math.floor(rand() * (i + 1));
79
- const t = fwd[i];
80
- fwd[i] = fwd[j];
81
- fwd[j] = t;
82
- }
83
- const inv = new Uint32Array(D);
84
- for (let i = 0; i < D; i++)
85
- inv[fwd[i]] = i;
86
- return { fwd, inv };
87
- }
88
- /** The keyring: one independent permutation per seat.
89
- * Independent keys do not commute, so an address in a tree is the
90
- * path itself — "seat 2 inside seat 1" ≠ "seat 1 inside seat 2". */
91
- export function makeKeyring(D, seats, rand) {
92
- const ring = [];
93
- for (let s = 0; s < seats; s++)
94
- ring.push(makePermutation(D, rand));
95
- return ring;
96
- }
97
- /** Apply permutation: out[i] = v[table[i]]. */
98
- export function permute(v, table) {
99
- const out = new Float32Array(v.length);
100
- for (let i = 0; i < v.length; i++)
101
- out[i] = v[table[i]];
102
- return out;
103
- }
104
- /** Permute into existing buffer — zero allocation. */
105
- export function permuteInto(out, v, table) {
106
- for (let i = 0; i < v.length; i++)
107
- out[i] = v[table[i]];
108
- return out;
109
- }