@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.
- package/dist/example/demo.js +25 -25
- package/dist/example/train_base.d.ts +21 -19
- package/dist/example/train_base.js +1952 -1684
- package/dist/src/alphabet.d.ts +3 -3
- package/dist/src/alphabet.js +27 -24
- package/dist/src/alu/src/alu.d.ts +194 -169
- package/dist/src/alu/src/alu.js +414 -374
- package/dist/src/alu/src/expr.d.ts +43 -36
- package/dist/src/alu/src/expr.js +278 -252
- package/dist/src/alu/src/index.d.ts +98 -9
- package/dist/src/alu/src/index.js +63 -9
- package/dist/src/alu/src/kernel-arith.d.ts +5 -1
- package/dist/src/alu/src/kernel-arith.js +285 -195
- package/dist/src/alu/src/kernel-bits.d.ts +5 -1
- package/dist/src/alu/src/kernel-bits.js +115 -81
- package/dist/src/alu/src/kernel-logic.js +63 -33
- package/dist/src/alu/src/kernel-nd.js +195 -155
- package/dist/src/alu/src/kernel-numeric.d.ts +80 -16
- package/dist/src/alu/src/kernel-numeric.js +331 -259
- package/dist/src/alu/src/operation.d.ts +132 -112
- package/dist/src/alu/src/operation.js +163 -149
- package/dist/src/alu/src/parser.d.ts +175 -168
- package/dist/src/alu/src/parser.js +421 -382
- package/dist/src/alu/src/resonance.d.ts +25 -16
- package/dist/src/alu/src/resonance.js +56 -49
- package/dist/src/alu/src/text.d.ts +7 -3
- package/dist/src/alu/src/text.js +37 -31
- package/dist/src/alu/src/value.d.ts +14 -14
- package/dist/src/alu/src/value.js +160 -150
- package/dist/src/alu/test/alu.test.js +656 -543
- package/dist/src/bytes.d.ts +5 -1
- package/dist/src/bytes.js +40 -33
- package/dist/src/config.d.ts +102 -102
- package/dist/src/config.js +83 -83
- package/dist/src/derive/src/deduction.d.ts +62 -60
- package/dist/src/derive/src/deduction.js +109 -103
- package/dist/src/derive/src/index.d.ts +7 -1
- package/dist/src/derive/src/priority-queue.d.ts +8 -8
- package/dist/src/derive/src/priority-queue.js +61 -57
- package/dist/src/derive/src/rewrite.d.ts +18 -15
- package/dist/src/derive/src/rewrite.js +67 -59
- package/dist/src/derive/src/trie.d.ts +56 -56
- package/dist/src/derive/src/trie.js +179 -175
- package/dist/src/derive/test/derive.test.js +100 -96
- package/dist/src/extension.d.ts +16 -13
- package/dist/src/geometry.d.ts +42 -17
- package/dist/src/geometry.js +266 -235
- package/dist/src/index.d.ts +17 -2
- package/dist/src/index.js +7 -1
- package/dist/src/ingest-cache.d.ts +30 -25
- package/dist/src/ingest-cache.js +127 -108
- package/dist/src/mind/articulation.d.ts +5 -1
- package/dist/src/mind/articulation.js +112 -77
- package/dist/src/mind/attention.d.ts +108 -40
- package/dist/src/mind/attention.js +871 -749
- package/dist/src/mind/canonical.d.ts +19 -4
- package/dist/src/mind/canonical.js +31 -27
- package/dist/src/mind/graph-search.d.ts +225 -201
- package/dist/src/mind/graph-search.js +821 -742
- package/dist/src/mind/index.d.ts +10 -2
- package/dist/src/mind/junction.d.ts +58 -31
- package/dist/src/mind/junction.js +237 -172
- package/dist/src/mind/learning.d.ts +52 -16
- package/dist/src/mind/learning.js +165 -143
- package/dist/src/mind/match.d.ts +69 -20
- package/dist/src/mind/match.js +318 -259
- package/dist/src/mind/mechanisms/alu.js +16 -16
- package/dist/src/mind/mechanisms/cast.d.ts +13 -9
- package/dist/src/mind/mechanisms/cast.js +456 -363
- package/dist/src/mind/mechanisms/confluence.d.ts +12 -8
- package/dist/src/mind/mechanisms/confluence.js +183 -152
- package/dist/src/mind/mechanisms/cover.d.ts +8 -2
- package/dist/src/mind/mechanisms/cover.js +210 -148
- package/dist/src/mind/mechanisms/extraction.d.ts +34 -8
- package/dist/src/mind/mechanisms/extraction.js +288 -234
- package/dist/src/mind/mechanisms/recall.d.ts +10 -6
- package/dist/src/mind/mechanisms/recall.js +185 -126
- package/dist/src/mind/mind.d.ts +154 -129
- package/dist/src/mind/mind.js +288 -258
- package/dist/src/mind/pipeline-mechanism.d.ts +124 -112
- package/dist/src/mind/pipeline-mechanism.js +172 -161
- package/dist/src/mind/pipeline.d.ts +14 -4
- package/dist/src/mind/pipeline.js +189 -125
- package/dist/src/mind/primitives.d.ts +32 -8
- package/dist/src/mind/primitives.js +117 -99
- package/dist/src/mind/rationale.d.ts +98 -86
- package/dist/src/mind/rationale.js +121 -113
- package/dist/src/mind/reasoning.d.ts +13 -2
- package/dist/src/mind/reasoning.js +166 -129
- package/dist/src/mind/recognition.d.ts +4 -1
- package/dist/src/mind/recognition.js +208 -183
- package/dist/src/mind/resonance.d.ts +22 -5
- package/dist/src/mind/resonance.js +0 -0
- package/dist/src/mind/trace.d.ts +25 -6
- package/dist/src/mind/trace.js +58 -50
- package/dist/src/mind/traverse.d.ts +58 -16
- package/dist/src/mind/traverse.js +357 -304
- package/dist/src/mind/types.d.ts +127 -120
- package/dist/src/mind/types.js +69 -60
- package/dist/src/rabitq-hnsw/src/database.d.ts +179 -177
- package/dist/src/rabitq-hnsw/src/database.js +359 -342
- package/dist/src/rabitq-hnsw/src/heap.d.ts +12 -12
- package/dist/src/rabitq-hnsw/src/heap.js +80 -75
- package/dist/src/rabitq-hnsw/src/hnsw.d.ts +103 -103
- package/dist/src/rabitq-hnsw/src/hnsw.js +454 -428
- package/dist/src/rabitq-hnsw/src/index.d.ts +6 -1
- package/dist/src/rabitq-hnsw/src/prng.d.ts +10 -10
- package/dist/src/rabitq-hnsw/src/prng.js +27 -25
- package/dist/src/rabitq-hnsw/src/rabitq.d.ts +69 -69
- package/dist/src/rabitq-hnsw/src/rabitq.js +262 -246
- package/dist/src/rabitq-hnsw/src/store.d.ts +132 -132
- package/dist/src/rabitq-hnsw/src/store.js +843 -752
- package/dist/src/rabitq-hnsw/test/hnsw.test.js +1054 -805
- package/dist/src/sema.d.ts +35 -0
- package/dist/src/sema.js +77 -0
- package/dist/src/store-sqlite.d.ts +166 -144
- package/dist/src/store-sqlite.js +660 -578
- package/dist/src/store.d.ts +630 -593
- package/dist/src/store.js +1581 -1440
- package/dist/src/vec.d.ts +9 -5
- package/dist/src/vec.js +73 -61
- package/package.json +2 -2
- package/src/sema.ts +102 -0
package/dist/example/demo.js
CHANGED
|
@@ -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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
3
|
-
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
50
|
-
|
|
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(
|
|
75
|
+
export declare function oasstConversationToItems(
|
|
76
|
+
turns: OasstTurn[],
|
|
77
|
+
): TrainingItem[];
|
|
76
78
|
/** One normalized General-Knowledge row. */
|
|
77
79
|
export interface GenKnowRow {
|
|
78
|
-
|
|
79
|
-
|
|
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). */
|