@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
@@ -10,30 +10,30 @@
10
10
  import { Mind } from "../src/index.js";
11
11
  import { SQliteStore } from "../src/store-sqlite.js";
12
12
  async function main() {
13
- const mind = new Mind({ store: new SQliteStore({ path: ":memory:" }) });
14
- const ask = async (q) => (await mind.respondText(q)).trim();
15
- // ── Jot down what we know. Each line is just (context → what follows). ──
16
- await mind.ingest([
17
- // One relation, shown three times — a pattern taught purely by example:
18
- ["The Mona Lisa was painted by Leonardo da Vinci.", "Leonardo da Vinci"],
19
- ["The Starry Night was painted by Vincent van Gogh.", "Vincent van Gogh"],
20
- [
21
- "The Night Watch was painted by Rembrandt van Rijn.",
22
- "Rembrandt van Rijn",
23
- ],
24
- // One stray fact, keyed on a name none of the examples mention:
25
- ["Pablo Picasso", "Pablo Picasso co-founded the Cubist movement"],
26
- ]);
27
- // 1) GENERALIZE — apply the learned pattern to an unseen sentence and read out
28
- // the painter. "Pablo Picasso" was never given as an answer; Sema locates it
29
- // by analogy to the three examples.
30
- console.log(await ask("The Weeping Woman was painted by Pablo Picasso."));
31
- // → "Pablo Picasso co-founded the Cubist movement"
32
- // …and, having found the painter, it KEEPS GOING: the name bridges into the
33
- // one fact it holds about him. The answer appears in no word of the question.
34
- // 2) COMPUTE — exact arithmetic, grounded right where the notes go silent.
35
- console.log(await ask("a museum charges 12*4 for a family ticket"));
36
- // → "48"
37
- await mind.store.close();
13
+ const mind = new Mind({ store: new SQliteStore({ path: ":memory:" }) });
14
+ const ask = async (q) => (await mind.respondText(q)).trim();
15
+ // ── Jot down what we know. Each line is just (context → what follows). ──
16
+ await mind.ingest([
17
+ // One relation, shown three times — a pattern taught purely by example:
18
+ ["The Mona Lisa was painted by Leonardo da Vinci.", "Leonardo da Vinci"],
19
+ ["The Starry Night was painted by Vincent van Gogh.", "Vincent van Gogh"],
20
+ [
21
+ "The Night Watch was painted by Rembrandt van Rijn.",
22
+ "Rembrandt van Rijn",
23
+ ],
24
+ // One stray fact, keyed on a name none of the examples mention:
25
+ ["Pablo Picasso", "Pablo Picasso co-founded the Cubist movement"],
26
+ ]);
27
+ // 1) GENERALIZE — apply the learned pattern to an unseen sentence and read out
28
+ // the painter. "Pablo Picasso" was never given as an answer; Sema locates it
29
+ // by analogy to the three examples.
30
+ console.log(await ask("The Weeping Woman was painted by Pablo Picasso."));
31
+ // → "Pablo Picasso co-founded the Cubist movement"
32
+ // …and, having found the painter, it KEEPS GOING: the name bridges into the
33
+ // one fact it holds about him. The answer appears in no word of the question.
34
+ // 2) COMPUTE — exact arithmetic, grounded right where the notes go silent.
35
+ console.log(await ask("a museum charges 12*4 for a family ticket"));
36
+ // → "48"
37
+ await mind.store.close();
38
38
  }
39
39
  main();
@@ -1,6 +1,6 @@
1
1
  export interface Episode {
2
- context: string;
3
- continuation: string;
2
+ context: string;
3
+ continuation: string;
4
4
  }
5
5
  export type TrainingItem = string | Episode;
6
6
  /** Dedup + trim a concept's items: drop empty/degenerate pairs and exact
@@ -8,10 +8,10 @@ export type TrainingItem = string | Episode;
8
8
  export declare function refineItems(items: TrainingItem[]): TrainingItem[];
9
9
  /** One normalized SmolSent row. */
10
10
  export interface SmolSentRow {
11
- src: string;
12
- trg: string;
13
- sl: string;
14
- tl: string;
11
+ src: string;
12
+ trg: string;
13
+ sl: string;
14
+ tl: string;
15
15
  }
16
16
  /** Normalize a raw datasets-server row into a SmolSentRow, or null when it lacks
17
17
  * both sides or a side is implausibly large (a dump, not a sentence). */
@@ -22,9 +22,9 @@ export declare function toSmolSentRow(row: unknown): SmolSentRow | null;
22
22
  export declare function smolSentRowToItems(row: SmolSentRow): TrainingItem[];
23
23
  /** One normalized Aya row. */
24
24
  export interface AyaRow {
25
- inputs: string;
26
- targets: string;
27
- language: string;
25
+ inputs: string;
26
+ targets: string;
27
+ language: string;
28
28
  }
29
29
  /** Normalize a raw datasets-server row object into an AyaRow, or null when it
30
30
  * lacks a usable prompt/answer or a field is implausibly large (a dump, not a
@@ -38,16 +38,16 @@ export declare function toAyaRow(row: unknown): AyaRow | null;
38
38
  export declare function ayaRowToItems(row: AyaRow): TrainingItem[];
39
39
  /** A single oasst2 message node (the fields we use; the tree nests via replies). */
40
40
  interface OasstNode {
41
- role?: string;
42
- text?: string;
43
- rank?: number | null;
44
- deleted?: boolean;
45
- replies?: OasstNode[];
41
+ role?: string;
42
+ text?: string;
43
+ rank?: number | null;
44
+ deleted?: boolean;
45
+ replies?: OasstNode[];
46
46
  }
47
47
  /** One conversational turn extracted from a tree. */
48
48
  export interface OasstTurn {
49
- role: string;
50
- text: string;
49
+ role: string;
50
+ text: string;
51
51
  }
52
52
  /** Collapse a conversation tree to ONE linear path: at each node, descend into
53
53
  * its best-ranked, non-deleted reply (rank 0 preferred; unranked sorts last).
@@ -72,11 +72,13 @@ export declare function bestOasstPath(root: OasstNode): OasstTurn[];
72
72
  *
73
73
  * Returns [] for a conversation below the multi-turn threshold, so callers can
74
74
  * simply skip empties. */
75
- export declare function oasstConversationToItems(turns: OasstTurn[]): TrainingItem[];
75
+ export declare function oasstConversationToItems(
76
+ turns: OasstTurn[],
77
+ ): TrainingItem[];
76
78
  /** One normalized General-Knowledge row. */
77
79
  export interface GenKnowRow {
78
- question: string;
79
- answer: string;
80
+ question: string;
81
+ answer: string;
80
82
  }
81
83
  /** Normalize a raw datasets-server row into a GenKnowRow, or null when it lacks
82
84
  * a usable question/answer or a side is implausibly large (corruption). */