@hviana/sema 0.1.3 → 0.1.5

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 (123) hide show
  1. package/dist/example/demo.js +25 -25
  2. package/dist/example/train_base.d.ts +21 -19
  3. package/dist/example/train_base.js +1952 -1684
  4. package/dist/src/alphabet.d.ts +3 -3
  5. package/dist/src/alphabet.js +27 -24
  6. package/dist/src/alu/src/alu.d.ts +194 -169
  7. package/dist/src/alu/src/alu.js +414 -374
  8. package/dist/src/alu/src/expr.d.ts +43 -36
  9. package/dist/src/alu/src/expr.js +278 -252
  10. package/dist/src/alu/src/index.d.ts +98 -9
  11. package/dist/src/alu/src/index.js +63 -9
  12. package/dist/src/alu/src/kernel-arith.d.ts +5 -1
  13. package/dist/src/alu/src/kernel-arith.js +285 -195
  14. package/dist/src/alu/src/kernel-bits.d.ts +5 -1
  15. package/dist/src/alu/src/kernel-bits.js +115 -81
  16. package/dist/src/alu/src/kernel-logic.js +63 -33
  17. package/dist/src/alu/src/kernel-nd.js +195 -155
  18. package/dist/src/alu/src/kernel-numeric.d.ts +80 -16
  19. package/dist/src/alu/src/kernel-numeric.js +331 -259
  20. package/dist/src/alu/src/operation.d.ts +132 -112
  21. package/dist/src/alu/src/operation.js +163 -149
  22. package/dist/src/alu/src/parser.d.ts +175 -168
  23. package/dist/src/alu/src/parser.js +421 -382
  24. package/dist/src/alu/src/resonance.d.ts +25 -16
  25. package/dist/src/alu/src/resonance.js +56 -49
  26. package/dist/src/alu/src/text.d.ts +7 -3
  27. package/dist/src/alu/src/text.js +37 -31
  28. package/dist/src/alu/src/value.d.ts +14 -14
  29. package/dist/src/alu/src/value.js +160 -150
  30. package/dist/src/alu/test/alu.test.js +656 -543
  31. package/dist/src/bytes.d.ts +5 -1
  32. package/dist/src/bytes.js +40 -33
  33. package/dist/src/config.d.ts +102 -102
  34. package/dist/src/config.js +83 -83
  35. package/dist/src/derive/src/deduction.d.ts +62 -60
  36. package/dist/src/derive/src/deduction.js +109 -103
  37. package/dist/src/derive/src/index.d.ts +7 -1
  38. package/dist/src/derive/src/priority-queue.d.ts +8 -8
  39. package/dist/src/derive/src/priority-queue.js +61 -57
  40. package/dist/src/derive/src/rewrite.d.ts +18 -15
  41. package/dist/src/derive/src/rewrite.js +67 -59
  42. package/dist/src/derive/src/trie.d.ts +56 -56
  43. package/dist/src/derive/src/trie.js +179 -175
  44. package/dist/src/derive/test/derive.test.js +100 -96
  45. package/dist/src/extension.d.ts +16 -13
  46. package/dist/src/geometry.d.ts +42 -17
  47. package/dist/src/geometry.js +266 -235
  48. package/dist/src/index.d.ts +17 -2
  49. package/dist/src/index.js +7 -1
  50. package/dist/src/ingest-cache.d.ts +30 -25
  51. package/dist/src/ingest-cache.js +127 -108
  52. package/dist/src/mind/articulation.d.ts +5 -1
  53. package/dist/src/mind/articulation.js +112 -77
  54. package/dist/src/mind/attention.d.ts +108 -40
  55. package/dist/src/mind/attention.js +871 -749
  56. package/dist/src/mind/canonical.d.ts +19 -4
  57. package/dist/src/mind/canonical.js +31 -27
  58. package/dist/src/mind/graph-search.d.ts +225 -201
  59. package/dist/src/mind/graph-search.js +821 -742
  60. package/dist/src/mind/index.d.ts +10 -2
  61. package/dist/src/mind/junction.d.ts +58 -31
  62. package/dist/src/mind/junction.js +237 -172
  63. package/dist/src/mind/learning.d.ts +52 -16
  64. package/dist/src/mind/learning.js +165 -143
  65. package/dist/src/mind/match.d.ts +69 -20
  66. package/dist/src/mind/match.js +318 -259
  67. package/dist/src/mind/mechanisms/alu.js +16 -16
  68. package/dist/src/mind/mechanisms/cast.d.ts +13 -9
  69. package/dist/src/mind/mechanisms/cast.js +456 -363
  70. package/dist/src/mind/mechanisms/confluence.d.ts +12 -8
  71. package/dist/src/mind/mechanisms/confluence.js +183 -152
  72. package/dist/src/mind/mechanisms/cover.d.ts +8 -2
  73. package/dist/src/mind/mechanisms/cover.js +210 -148
  74. package/dist/src/mind/mechanisms/extraction.d.ts +34 -8
  75. package/dist/src/mind/mechanisms/extraction.js +288 -234
  76. package/dist/src/mind/mechanisms/recall.d.ts +10 -6
  77. package/dist/src/mind/mechanisms/recall.js +185 -126
  78. package/dist/src/mind/mind.d.ts +154 -129
  79. package/dist/src/mind/mind.js +288 -258
  80. package/dist/src/mind/pipeline-mechanism.d.ts +124 -112
  81. package/dist/src/mind/pipeline-mechanism.js +172 -161
  82. package/dist/src/mind/pipeline.d.ts +14 -4
  83. package/dist/src/mind/pipeline.js +189 -125
  84. package/dist/src/mind/primitives.d.ts +32 -8
  85. package/dist/src/mind/primitives.js +117 -99
  86. package/dist/src/mind/rationale.d.ts +98 -86
  87. package/dist/src/mind/rationale.js +121 -113
  88. package/dist/src/mind/reasoning.d.ts +13 -2
  89. package/dist/src/mind/reasoning.js +166 -129
  90. package/dist/src/mind/recognition.d.ts +4 -1
  91. package/dist/src/mind/recognition.js +208 -183
  92. package/dist/src/mind/resonance.d.ts +22 -5
  93. package/dist/src/mind/resonance.js +0 -0
  94. package/dist/src/mind/trace.d.ts +25 -6
  95. package/dist/src/mind/trace.js +58 -50
  96. package/dist/src/mind/traverse.d.ts +58 -16
  97. package/dist/src/mind/traverse.js +357 -304
  98. package/dist/src/mind/types.d.ts +127 -120
  99. package/dist/src/mind/types.js +69 -60
  100. package/dist/src/rabitq-hnsw/src/database.d.ts +179 -177
  101. package/dist/src/rabitq-hnsw/src/database.js +359 -342
  102. package/dist/src/rabitq-hnsw/src/heap.d.ts +12 -12
  103. package/dist/src/rabitq-hnsw/src/heap.js +80 -75
  104. package/dist/src/rabitq-hnsw/src/hnsw.d.ts +103 -103
  105. package/dist/src/rabitq-hnsw/src/hnsw.js +454 -428
  106. package/dist/src/rabitq-hnsw/src/index.d.ts +6 -1
  107. package/dist/src/rabitq-hnsw/src/prng.d.ts +10 -10
  108. package/dist/src/rabitq-hnsw/src/prng.js +27 -25
  109. package/dist/src/rabitq-hnsw/src/rabitq.d.ts +69 -69
  110. package/dist/src/rabitq-hnsw/src/rabitq.js +262 -246
  111. package/dist/src/rabitq-hnsw/src/store.d.ts +132 -132
  112. package/dist/src/rabitq-hnsw/src/store.js +843 -752
  113. package/dist/src/rabitq-hnsw/test/hnsw.test.js +1054 -805
  114. package/dist/src/sema.d.ts +35 -0
  115. package/dist/src/sema.js +77 -0
  116. package/dist/src/store-sqlite.d.ts +166 -144
  117. package/dist/src/store-sqlite.js +660 -578
  118. package/dist/src/store.d.ts +630 -593
  119. package/dist/src/store.js +1581 -1440
  120. package/dist/src/vec.d.ts +9 -5
  121. package/dist/src/vec.js +73 -61
  122. package/package.json +2 -2
  123. package/src/sema.ts +102 -0
@@ -9,15 +9,27 @@ export declare function canonicalWindows(W: number): [number, number];
9
9
  export declare function chainReach(W: number): number;
10
10
  /** The id of the single-byte leaf at position `p`, or null when that byte was
11
11
  * never interned. */
12
- export declare function leafIdAt(ctx: MindContext, bytes: Uint8Array, p: number): number | null;
12
+ export declare function leafIdAt(
13
+ ctx: MindContext,
14
+ bytes: Uint8Array,
15
+ p: number,
16
+ ): number | null;
13
17
  /** The leaf ids of the window `[from, to)`, or null the moment ANY byte in it
14
18
  * is unknown — the all-or-nothing read {@link canonicalChunkId} anchors on. */
15
- export declare function leafIdRun(ctx: MindContext, bytes: Uint8Array, from: number, to: number): number[] | null;
19
+ export declare function leafIdRun(
20
+ ctx: MindContext,
21
+ bytes: Uint8Array,
22
+ from: number,
23
+ to: number,
24
+ ): number[] | null;
16
25
  /** The leaf ids of the LONGEST KNOWN PREFIX of `bytes` — stops at the first
17
26
  * unknown byte and returns what it has (possibly empty). The caller decides
18
27
  * what a partial prefix means (deposit only interns the whole-stream flat
19
28
  * branch when the prefix covers everything). */
20
- export declare function leafIdPrefix(ctx: MindContext, bytes: Uint8Array): number[];
29
+ export declare function leafIdPrefix(
30
+ ctx: MindContext,
31
+ bytes: Uint8Array,
32
+ ): number[];
21
33
  /** The canonical W-window node ids of a byte stream, offset → id — the
22
34
  * CONTENT-ADDRESSED IDENTITY of every W-sized slice, under which any content
23
35
  * two deposits share IS the same node (hash-consing paid the comparison at
@@ -26,4 +38,7 @@ export declare function leafIdPrefix(ctx: MindContext, bytes: Uint8Array): numbe
26
38
  * flat branch, has no identity and is skipped. Confluence's meet and CAST's
27
39
  * frame detection both read shared/common content through this — never
28
40
  * through a byte scan. */
29
- export declare function windowIds(ctx: MindContext, bytes: Uint8Array): Map<number, number>;
41
+ export declare function windowIds(
42
+ ctx: MindContext,
43
+ bytes: Uint8Array,
44
+ ): Map<number, number>;
@@ -26,44 +26,46 @@
26
26
  * ids: W−1 and W (the river's grouping quantum and its off-by-one neighbour,
27
27
  * so a form straddling a group boundary is reachable from either cut). */
28
28
  export function canonicalWindows(W) {
29
- return [W - 1, W];
29
+ return [W - 1, W];
30
30
  }
31
31
  /** The READ side's chain reach: how many leaf ids a canonical chain may grow
32
32
  * to from one position — W², the deepest two-level composite the write side's
33
33
  * windows can spell. */
34
34
  export function chainReach(W) {
35
- return W * W;
35
+ return W * W;
36
36
  }
37
37
  /** The id of the single-byte leaf at position `p`, or null when that byte was
38
38
  * never interned. */
39
39
  export function leafIdAt(ctx, bytes, p) {
40
- return ctx.store.findLeaf(bytes.subarray(p, p + 1));
40
+ return ctx.store.findLeaf(bytes.subarray(p, p + 1));
41
41
  }
42
42
  /** The leaf ids of the window `[from, to)`, or null the moment ANY byte in it
43
43
  * is unknown — the all-or-nothing read {@link canonicalChunkId} anchors on. */
44
44
  export function leafIdRun(ctx, bytes, from, to) {
45
- const ids = [];
46
- for (let i = from; i < to; i++) {
47
- const lid = leafIdAt(ctx, bytes, i);
48
- if (lid === null)
49
- return null;
50
- ids.push(lid);
45
+ const ids = [];
46
+ for (let i = from; i < to; i++) {
47
+ const lid = leafIdAt(ctx, bytes, i);
48
+ if (lid === null) {
49
+ return null;
51
50
  }
52
- return ids;
51
+ ids.push(lid);
52
+ }
53
+ return ids;
53
54
  }
54
55
  /** The leaf ids of the LONGEST KNOWN PREFIX of `bytes` — stops at the first
55
56
  * unknown byte and returns what it has (possibly empty). The caller decides
56
57
  * what a partial prefix means (deposit only interns the whole-stream flat
57
58
  * branch when the prefix covers everything). */
58
59
  export function leafIdPrefix(ctx, bytes) {
59
- const ids = [];
60
- for (let i = 0; i < bytes.length; i++) {
61
- const lid = leafIdAt(ctx, bytes, i);
62
- if (lid === null)
63
- break;
64
- ids.push(lid);
60
+ const ids = [];
61
+ for (let i = 0; i < bytes.length; i++) {
62
+ const lid = leafIdAt(ctx, bytes, i);
63
+ if (lid === null) {
64
+ break;
65
65
  }
66
- return ids;
66
+ ids.push(lid);
67
+ }
68
+ return ids;
67
69
  }
68
70
  /** The canonical W-window node ids of a byte stream, offset → id — the
69
71
  * CONTENT-ADDRESSED IDENTITY of every W-sized slice, under which any content
@@ -74,15 +76,17 @@ export function leafIdPrefix(ctx, bytes) {
74
76
  * frame detection both read shared/common content through this — never
75
77
  * through a byte scan. */
76
78
  export function windowIds(ctx, bytes) {
77
- const W = ctx.space.maxGroup;
78
- const out = new Map();
79
- for (let off = 0; off + W <= bytes.length; off++) {
80
- const ids = leafIdRun(ctx, bytes, off, off + W);
81
- if (ids === null)
82
- continue;
83
- const wid = ctx.store.findBranch(ids);
84
- if (wid !== null)
85
- out.set(off, wid);
79
+ const W = ctx.space.maxGroup;
80
+ const out = new Map();
81
+ for (let off = 0; off + W <= bytes.length; off++) {
82
+ const ids = leafIdRun(ctx, bytes, off, off + W);
83
+ if (ids === null) {
84
+ continue;
86
85
  }
87
- return out;
86
+ const wid = ctx.store.findBranch(ids);
87
+ if (wid !== null) {
88
+ out.set(off, wid);
89
+ }
90
+ }
91
+ return out;
88
92
  }