@polycode-projects/the-mechanical-code-talker 6.0.19 → 6.0.21
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/README.md +20 -23
- package/bin/tmct.mjs +16 -33
- package/corpus/LICENSES.json +0 -21
- package/corpus/README.md +10 -13
- package/corpus/reference/manifest.json +19 -19
- package/corpus/reference/shards/ref-01.jsonl.gz +0 -0
- package/corpus/reference/shards/ref-04.jsonl.gz +0 -0
- package/corpus/reference/shards/ref-08.jsonl.gz +0 -0
- package/corpus/reference/shards/ref-10.jsonl.gz +0 -0
- package/corpus/reference/shards/ref-11.jsonl.gz +0 -0
- package/corpus/reference/shards/ref-17.jsonl.gz +0 -0
- package/corpus/reference/shards/ref-20.jsonl.gz +0 -0
- package/corpus/reference/shards/ref-25.jsonl.gz +0 -0
- package/corpus/reference/shards/ref-2c.jsonl.gz +0 -0
- package/corpus/tier2/generate.mjs +6 -142
- package/corpus/tier2/manifest.json +0 -42
- package/package.json +4 -4
- package/src/adapters/corpus/child-seed.mjs +74 -0
- package/src/adapters/corpus/conceptnet.mjs +45 -26
- package/src/adapters/memory/blocks.mjs +7 -1
- package/src/adapters/memory/core.mjs +453 -103
- package/src/adapters/memory/corpus-bands.mjs +33 -10
- package/src/adapters/memory/inspect.mjs +24 -5
- package/src/adapters/memory/rows.mjs +106 -9
- package/src/adapters/memory/shacl.mjs +10 -3
- package/src/domain/ask.mjs +27 -10
- package/src/domain/cli-verbs.mjs +3 -4
- package/src/domain/completions/group.mjs +8 -3
- package/src/domain/completions/infer.mjs +7 -2
- package/src/domain/completions/prune.mjs +5 -1
- package/src/domain/completions/rank.mjs +7 -2
- package/src/domain/digest/compose.mjs +5 -1
- package/src/domain/digest/select.mjs +12 -6
- package/src/domain/domain.mjs +15 -8
- package/src/domain/el-classify.mjs +11 -2
- package/src/domain/fact-phrase.mjs +86 -4
- package/src/domain/hash.mjs +9 -0
- package/src/domain/memory/bias.mjs +8 -4
- package/src/domain/memory/capability.mjs +12 -6
- package/src/domain/memory/fact-order.mjs +29 -0
- package/src/domain/memory/resolution.mjs +3 -0
- package/src/domain/news-feed.mjs +422 -56
- package/src/domain/reference-pack.mjs +5 -0
- package/src/domain/sense-scope.mjs +116 -0
- package/src/domain/sense-split.mjs +1 -1
- package/src/domain/syllogise.mjs +21 -13
- package/src/domain/tableau.mjs +23 -14
- package/src/domain/worlds-pack.mjs +5 -1
- package/src/services/adventure-autoplay.mjs +6 -1
- package/src/services/adventure-editor.mjs +43 -21
- package/src/services/adventure-viz.mjs +26 -9
- package/src/services/adventure.mjs +40 -10
- package/src/services/chat.mjs +253 -113
- package/src/services/extensions.mjs +51 -58
- package/src/services/extract-facts.mjs +670 -95
- package/src/services/init.mjs +4 -4
- package/src/services/ledger-viz.mjs +9 -4
- package/src/services/memory-panel-viz.mjs +4 -5
- package/src/services/mud-editor.mjs +40 -16
- package/src/services/mud-viz.mjs +8 -2
- package/src/services/mudiii-turn.mjs +5 -3
- package/src/services/mudiii-viz.mjs +8 -2
- package/src/services/news.mjs +277 -11
- package/src/services/research-viz.mjs +1 -1
- package/src/services/sprite-catalog-viz.mjs +10 -5
- package/src/surfaces/web/adventure-browser-entry.mjs +6 -12
- package/src/surfaces/web/memory-ask-browser.bundle.js +152 -151
- package/src/surfaces/web/mud-browser-entry.mjs +7 -11
- package/src/surfaces/web/research-browser-entry.mjs +5 -2
- package/corpus/tier2/aws.jsonl +0 -39
- package/corpus/tier2/java.jsonl +0 -31
- package/corpus/tier2/python.jsonl +0 -30
|
@@ -64,6 +64,11 @@ import { splitSceneBackdrop } from "../domain/scene-compose.mjs";
|
|
|
64
64
|
const DEFAULT_TITLE = "tmct — the sprite library";
|
|
65
65
|
const MAX_CHAIN_DISPLAY = 6;
|
|
66
66
|
|
|
67
|
+
// Codepoint order, never localeCompare — an ancestor/class term walks the
|
|
68
|
+
// same rdfs:subClassOf fact rows the cards' ancestry pills print, and two
|
|
69
|
+
// readers must render the same ontology-tree order regardless of locale.
|
|
70
|
+
const byCodepoint = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
|
|
71
|
+
|
|
67
72
|
/** A curated gap-fill for classes wordnet-xl's own prioritized subset
|
|
68
73
|
* happens to carry NO rdfs:subClassOf row for at all (115 of 198 catalog
|
|
69
74
|
* classes, checked directly against a build of this page) — every pair
|
|
@@ -244,8 +249,8 @@ export function clusterEntriesByAncestor(entries, spritedClasses) {
|
|
|
244
249
|
if (key && list.length >= 2) clusters.push({ ancestor: key, entries: list });
|
|
245
250
|
else rest.push(...list);
|
|
246
251
|
}
|
|
247
|
-
clusters.sort((a, b) => b.entries.length - a.entries.length || a.ancestor
|
|
248
|
-
if (rest.length) clusters.push({ ancestor: null, entries: [...rest].sort((a, b) => a.className
|
|
252
|
+
clusters.sort((a, b) => b.entries.length - a.entries.length || byCodepoint(a.ancestor, b.ancestor));
|
|
253
|
+
if (rest.length) clusters.push({ ancestor: null, entries: [...rest].sort((a, b) => byCodepoint(a.className, b.className)) });
|
|
249
254
|
return clusters;
|
|
250
255
|
}
|
|
251
256
|
|
|
@@ -463,12 +468,12 @@ export function buildOntologyTree(section, { index, spritedClasses, entriesByCla
|
|
|
463
468
|
levels[level].push(nodeFor(term));
|
|
464
469
|
}
|
|
465
470
|
for (let i = 0; i < levels.length; i += 1) {
|
|
466
|
-
levels[i] = (levels[i] || []).sort((a, b) => a.term
|
|
471
|
+
levels[i] = (levels[i] || []).sort((a, b) => byCodepoint(a.term, b.term));
|
|
467
472
|
}
|
|
468
473
|
branches.push({ size: terms.length, key: terms.slice().sort()[0], levels });
|
|
469
474
|
}
|
|
470
|
-
branches.sort((a, b) => b.size - a.size || a.key
|
|
471
|
-
apart.sort((a, b) => a.term
|
|
475
|
+
branches.sort((a, b) => b.size - a.size || byCodepoint(a.key, b.key));
|
|
476
|
+
apart.sort((a, b) => byCodepoint(a.term, b.term));
|
|
472
477
|
return { branches, apart, termCount: allTerms.size, truncated };
|
|
473
478
|
}
|
|
474
479
|
|
|
@@ -44,7 +44,7 @@ import { parseEntities } from "../../domain/codegraph.mjs";
|
|
|
44
44
|
import { memoryFactGraphPayload } from "../../domain/memory-facts.mjs";
|
|
45
45
|
import { loadLexicon } from "../../domain/grammar/lexicon.mjs";
|
|
46
46
|
import { DEFAULT_GAME_CONFIG } from "../../domain/game-config.mjs";
|
|
47
|
-
import { foldWorldState, worldDigestRows, roomAffordances, worldActionRows
|
|
47
|
+
import { foldWorldState, worldDigestRows, roomAffordances, worldActionRows } from "../../services/adventure.mjs";
|
|
48
48
|
import { runAdventureAutoplayTick, exposedFacts } from "../../services/adventure-autoplay.mjs";
|
|
49
49
|
import { parseWorldEditorText, planWorldEditorSync } from "../../services/adventure-editor.mjs";
|
|
50
50
|
import { resolveSpriteForClass, SPRITE_REGISTRY, classAncestorChain } from "../../domain/sprite-map.mjs";
|
|
@@ -209,24 +209,18 @@ export async function createAdventureSession(worldPayload, { restoredPayload = n
|
|
|
209
209
|
* see adventure-editor.mjs's own header for why a typo must never be
|
|
210
210
|
* read as "this fact is gone". Returns `{ unrecognized, added, removed }`.
|
|
211
211
|
*
|
|
212
|
-
* A placement or openness edit
|
|
213
|
-
* every played turn writes one
|
|
214
|
-
*
|
|
215
|
-
* turn 4, then moved back to the desk in the editor — would be outranked
|
|
216
|
-
* by the very move it was meant to correct, and the edit would land in
|
|
217
|
-
* the store and change nothing anyone can see. Type/exit/puzzle rows are
|
|
218
|
-
* read raw and keep their bare subject: a stamped one names a subject no
|
|
219
|
-
* verb resolves. */
|
|
212
|
+
* A placement or openness edit arrives from the planner already written
|
|
213
|
+
* as a TURN SNAPSHOT, the way every played turn writes one, so all this
|
|
214
|
+
* has to add is the matching provenance tag. */
|
|
220
215
|
async applyEdit(text) {
|
|
221
216
|
const allRows = readFactRows(await loadMemory(memoryDir));
|
|
222
217
|
const worldRows = allRows.filter((r) => typeof r.provenance === "string" && r.provenance.indexOf(tag) === 0);
|
|
223
218
|
const state = foldWorldState(worldRows);
|
|
224
219
|
const { triples, unrecognized } = parseWorldEditorText(text, worldRows);
|
|
225
|
-
const { toAppend, toRemoveIds } = planWorldEditorSync(worldRows, state, triples);
|
|
226
|
-
const editTurn = state.turnCount + 1;
|
|
220
|
+
const { toAppend, toRemoveIds, editTurn } = planWorldEditorSync(worldRows, state, triples);
|
|
227
221
|
if (toAppend.length) {
|
|
228
222
|
await appendFacts(memoryDir, toAppend.map((f) => ({
|
|
229
|
-
subject: f.
|
|
223
|
+
subject: f.subject,
|
|
230
224
|
predicate: f.predicate,
|
|
231
225
|
object: f.object,
|
|
232
226
|
provenance: f.kind === "other" ? tag : `${tag}:turn${editTurn}`,
|