@polycode-projects/the-mechanical-code-talker 3.2.0 → 3.3.0

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.
@@ -8,6 +8,7 @@
8
8
  {"subject":"audience sprite","predicate":"rdf:type","object":"sprite class"}
9
9
  {"subject":"autumn sprite","predicate":"rdf:type","object":"sprite class"}
10
10
  {"subject":"baby sprite","predicate":"rdf:type","object":"sprite class"}
11
+ {"subject":"badger sprite","predicate":"rdf:type","object":"sprite class"}
11
12
  {"subject":"bathroom sprite","predicate":"rdf:type","object":"sprite class"}
12
13
  {"subject":"beach sprite","predicate":"rdf:type","object":"sprite class"}
13
14
  {"subject":"bear sprite","predicate":"rdf:type","object":"sprite class"}
@@ -85,6 +86,7 @@
85
86
  {"subject":"grandfather sprite","predicate":"rdf:type","object":"sprite class"}
86
87
  {"subject":"grandmother sprite","predicate":"rdf:type","object":"sprite class"}
87
88
  {"subject":"grass sprite","predicate":"rdf:type","object":"sprite class"}
89
+ {"subject":"groundhog sprite","predicate":"rdf:type","object":"sprite class"}
88
90
  {"subject":"guest sprite","predicate":"rdf:type","object":"sprite class"}
89
91
  {"subject":"hat sprite","predicate":"rdf:type","object":"sprite class"}
90
92
  {"subject":"hate sprite","predicate":"rdf:type","object":"sprite class"}
@@ -118,8 +120,10 @@
118
120
  {"subject":"market sprite","predicate":"rdf:type","object":"sprite class"}
119
121
  {"subject":"meal sprite","predicate":"rdf:type","object":"sprite class"}
120
122
  {"subject":"meat sprite","predicate":"rdf:type","object":"sprite class"}
123
+ {"subject":"meerkat sprite","predicate":"rdf:type","object":"sprite class"}
121
124
  {"subject":"meeting sprite","predicate":"rdf:type","object":"sprite class"}
122
125
  {"subject":"metal sprite","predicate":"rdf:type","object":"sprite class"}
126
+ {"subject":"mole sprite","predicate":"rdf:type","object":"sprite class"}
123
127
  {"subject":"money sprite","predicate":"rdf:type","object":"sprite class"}
124
128
  {"subject":"mother sprite","predicate":"rdf:type","object":"sprite class"}
125
129
  {"subject":"mountain sprite","predicate":"rdf:type","object":"sprite class"}
@@ -190,6 +194,7 @@
190
194
  {"subject":"vehicle sprite","predicate":"rdf:type","object":"sprite class"}
191
195
  {"subject":"village sprite","predicate":"rdf:type","object":"sprite class"}
192
196
  {"subject":"visitor sprite","predicate":"rdf:type","object":"sprite class"}
197
+ {"subject":"vole sprite","predicate":"rdf:type","object":"sprite class"}
193
198
  {"subject":"volunteer sprite","predicate":"rdf:type","object":"sprite class"}
194
199
  {"subject":"water sprite","predicate":"rdf:type","object":"sprite class"}
195
200
  {"subject":"waterway sprite","predicate":"rdf:type","object":"sprite class"}
@@ -241,6 +246,7 @@
241
246
  {"subject":"audience sprite","predicate":"mgx:render-at","object":"sprite tier"}
242
247
  {"subject":"autumn sprite","predicate":"mgx:render-at","object":"sprite tier"}
243
248
  {"subject":"baby sprite","predicate":"mgx:render-at","object":"sprite tier"}
249
+ {"subject":"badger sprite","predicate":"mgx:render-at","object":"sprite tier"}
244
250
  {"subject":"bathroom sprite","predicate":"mgx:render-at","object":"sprite tier"}
245
251
  {"subject":"beach sprite","predicate":"mgx:render-at","object":"sprite tier"}
246
252
  {"subject":"bear sprite","predicate":"mgx:render-at","object":"sprite tier"}
@@ -318,6 +324,7 @@
318
324
  {"subject":"grandfather sprite","predicate":"mgx:render-at","object":"sprite tier"}
319
325
  {"subject":"grandmother sprite","predicate":"mgx:render-at","object":"sprite tier"}
320
326
  {"subject":"grass sprite","predicate":"mgx:render-at","object":"sprite tier"}
327
+ {"subject":"groundhog sprite","predicate":"mgx:render-at","object":"sprite tier"}
321
328
  {"subject":"guest sprite","predicate":"mgx:render-at","object":"sprite tier"}
322
329
  {"subject":"hat sprite","predicate":"mgx:render-at","object":"sprite tier"}
323
330
  {"subject":"hate sprite","predicate":"mgx:render-at","object":"sprite tier"}
@@ -351,8 +358,10 @@
351
358
  {"subject":"market sprite","predicate":"mgx:render-at","object":"sprite tier"}
352
359
  {"subject":"meal sprite","predicate":"mgx:render-at","object":"sprite tier"}
353
360
  {"subject":"meat sprite","predicate":"mgx:render-at","object":"sprite tier"}
361
+ {"subject":"meerkat sprite","predicate":"mgx:render-at","object":"sprite tier"}
354
362
  {"subject":"meeting sprite","predicate":"mgx:render-at","object":"sprite tier"}
355
363
  {"subject":"metal sprite","predicate":"mgx:render-at","object":"sprite tier"}
364
+ {"subject":"mole sprite","predicate":"mgx:render-at","object":"sprite tier"}
356
365
  {"subject":"money sprite","predicate":"mgx:render-at","object":"sprite tier"}
357
366
  {"subject":"mother sprite","predicate":"mgx:render-at","object":"sprite tier"}
358
367
  {"subject":"mountain sprite","predicate":"mgx:render-at","object":"sprite tier"}
@@ -423,6 +432,7 @@
423
432
  {"subject":"vehicle sprite","predicate":"mgx:render-at","object":"sprite tier"}
424
433
  {"subject":"village sprite","predicate":"mgx:render-at","object":"sprite tier"}
425
434
  {"subject":"visitor sprite","predicate":"mgx:render-at","object":"sprite tier"}
435
+ {"subject":"vole sprite","predicate":"mgx:render-at","object":"sprite tier"}
426
436
  {"subject":"volunteer sprite","predicate":"mgx:render-at","object":"sprite tier"}
427
437
  {"subject":"water sprite","predicate":"mgx:render-at","object":"sprite tier"}
428
438
  {"subject":"waterway sprite","predicate":"mgx:render-at","object":"sprite tier"}
@@ -297,6 +297,7 @@ export const CORPUSES = {
297
297
  // human-nature
298
298
  "dog", "cat", "horse", "cow", "pig", "sheep", "bird", "fish",
299
299
  "mouse", "rabbit", "bear", "lion", "tiger", "elephant", "snake",
300
+ "mole", "vole", "badger", "groundhog", "meerkat",
300
301
  "tree", "flower", "grass", "leaf", "root", "seed", "fruit", "water",
301
302
  "air", "fire", "earth", "stone", "sand", "gold", "iron", "rain",
302
303
  "snow", "wind", "cloud", "sun", "moon", "star", "owl", "wolf",
@@ -313,7 +314,7 @@ export const CORPUSES = {
313
314
  "bread", "meat", "milk", "egg", "cheese", "vegetable", "meal",
314
315
  "breakfast", "dinner", "drink", "wine", "tea", "coffee", "tongue",
315
316
  "tooth", "finger", "toe", "shoulder", "knee", "brain", "lung",
316
- "sugar", "salt",
317
+ "sugar", "salt", "carrot", "lettuce", "tomato",
317
318
  // human-mind
318
319
  "word", "story", "news", "idea", "thought", "mind", "memory",
319
320
  "dream", "belief", "love", "hate", "fear", "joy", "anger", "hope",
@@ -568,6 +569,11 @@ export const CORPUSES = {
568
569
  ["ant", "/r/IsA", "insect"],
569
570
  ["butterfly", "/r/IsA", "insect"], ["butterfly", "/r/HasProperty", "colorful"],
570
571
  ["spider", "/r/IsA", "animal"], ["spider", "/r/HasA", "leg"],
572
+ ["mole", "/r/IsA", "mammal"], ["mole", "/r/HasProperty", "small"], ["mole", "/r/CapableOf", "dig"],
573
+ ["vole", "/r/IsA", "rodent"], ["vole", "/r/HasProperty", "small"], ["vole", "/r/CapableOf", "burrow"],
574
+ ["badger", "/r/IsA", "mammal"], ["badger", "/r/HasProperty", "large"], ["badger", "/r/CapableOf", "dig"],
575
+ ["groundhog", "/r/IsA", "rodent"], ["groundhog", "/r/HasProperty", "burrowing"], ["groundhog", "/r/CapableOf", "hibernate"],
576
+ ["meerkat", "/r/IsA", "mammal"], ["meerkat", "/r/HasProperty", "social"], ["meerkat", "/r/CapableOf", "stand_upright"],
571
577
  ["river", "/r/IsA", "waterway"], ["river", "/r/CapableOf", "flow"],
572
578
  ["ocean", "/r/IsA", "body_of_water"], ["ocean", "/r/HasProperty", "salty"],
573
579
 
@@ -643,6 +649,9 @@ export const CORPUSES = {
643
649
  ["lung", "/r/PartOf", "body"], ["lung", "/r/UsedFor", "breathing"],
644
650
  ["sugar", "/r/IsA", "food"], ["sugar", "/r/HasProperty", "sweet"],
645
651
  ["salt", "/r/IsA", "food"], ["salt", "/r/HasProperty", "salty"],
652
+ ["carrot", "/r/IsA", "vegetable"], ["carrot", "/r/AtLocation", "garden"], ["carrot", "/r/HasProperty", "orange"],
653
+ ["lettuce", "/r/IsA", "vegetable"], ["lettuce", "/r/AtLocation", "garden"],
654
+ ["tomato", "/r/IsA", "vegetable"], ["tomato", "/r/AtLocation", "garden"], ["tomato", "/r/HasProperty", "red"],
646
655
 
647
656
  // ---- human-mind (~70 facts) ----
648
657
  ["word", "/r/PartOf", "language"], ["word", "/r/UsedFor", "communicating"],
@@ -440,6 +440,21 @@
440
440
  {"start":"/c/en/butterfly","rel":"/r/HasProperty","end":"/c/en/colorful","weight":1,"surfaceText":"[[butterfly]] HasProperty [[colorful]]"}
441
441
  {"start":"/c/en/spider","rel":"/r/IsA","end":"/c/en/animal","weight":1,"surfaceText":"[[spider]] IsA [[animal]]"}
442
442
  {"start":"/c/en/spider","rel":"/r/HasA","end":"/c/en/leg","weight":1,"surfaceText":"[[spider]] HasA [[leg]]"}
443
+ {"start":"/c/en/mole","rel":"/r/IsA","end":"/c/en/mammal","weight":1,"surfaceText":"[[mole]] IsA [[mammal]]"}
444
+ {"start":"/c/en/mole","rel":"/r/HasProperty","end":"/c/en/small","weight":1,"surfaceText":"[[mole]] HasProperty [[small]]"}
445
+ {"start":"/c/en/mole","rel":"/r/CapableOf","end":"/c/en/dig","weight":1,"surfaceText":"[[mole]] CapableOf [[dig]]"}
446
+ {"start":"/c/en/vole","rel":"/r/IsA","end":"/c/en/rodent","weight":1,"surfaceText":"[[vole]] IsA [[rodent]]"}
447
+ {"start":"/c/en/vole","rel":"/r/HasProperty","end":"/c/en/small","weight":1,"surfaceText":"[[vole]] HasProperty [[small]]"}
448
+ {"start":"/c/en/vole","rel":"/r/CapableOf","end":"/c/en/burrow","weight":1,"surfaceText":"[[vole]] CapableOf [[burrow]]"}
449
+ {"start":"/c/en/badger","rel":"/r/IsA","end":"/c/en/mammal","weight":1,"surfaceText":"[[badger]] IsA [[mammal]]"}
450
+ {"start":"/c/en/badger","rel":"/r/HasProperty","end":"/c/en/large","weight":1,"surfaceText":"[[badger]] HasProperty [[large]]"}
451
+ {"start":"/c/en/badger","rel":"/r/CapableOf","end":"/c/en/dig","weight":1,"surfaceText":"[[badger]] CapableOf [[dig]]"}
452
+ {"start":"/c/en/groundhog","rel":"/r/IsA","end":"/c/en/rodent","weight":1,"surfaceText":"[[groundhog]] IsA [[rodent]]"}
453
+ {"start":"/c/en/groundhog","rel":"/r/HasProperty","end":"/c/en/burrowing","weight":1,"surfaceText":"[[groundhog]] HasProperty [[burrowing]]"}
454
+ {"start":"/c/en/groundhog","rel":"/r/CapableOf","end":"/c/en/hibernate","weight":1,"surfaceText":"[[groundhog]] CapableOf [[hibernate]]"}
455
+ {"start":"/c/en/meerkat","rel":"/r/IsA","end":"/c/en/mammal","weight":1,"surfaceText":"[[meerkat]] IsA [[mammal]]"}
456
+ {"start":"/c/en/meerkat","rel":"/r/HasProperty","end":"/c/en/social","weight":1,"surfaceText":"[[meerkat]] HasProperty [[social]]"}
457
+ {"start":"/c/en/meerkat","rel":"/r/CapableOf","end":"/c/en/stand_upright","weight":1,"surfaceText":"[[meerkat]] CapableOf [[stand upright]]"}
443
458
  {"start":"/c/en/river","rel":"/r/IsA","end":"/c/en/waterway","weight":1,"surfaceText":"[[river]] IsA [[waterway]]"}
444
459
  {"start":"/c/en/river","rel":"/r/CapableOf","end":"/c/en/flow","weight":1,"surfaceText":"[[river]] CapableOf [[flow]]"}
445
460
  {"start":"/c/en/ocean","rel":"/r/IsA","end":"/c/en/body_of_water","weight":1,"surfaceText":"[[ocean]] IsA [[body of water]]"}
@@ -582,6 +597,14 @@
582
597
  {"start":"/c/en/sugar","rel":"/r/HasProperty","end":"/c/en/sweet","weight":1,"surfaceText":"[[sugar]] HasProperty [[sweet]]"}
583
598
  {"start":"/c/en/salt","rel":"/r/IsA","end":"/c/en/food","weight":1,"surfaceText":"[[salt]] IsA [[food]]"}
584
599
  {"start":"/c/en/salt","rel":"/r/HasProperty","end":"/c/en/salty","weight":1,"surfaceText":"[[salt]] HasProperty [[salty]]"}
600
+ {"start":"/c/en/carrot","rel":"/r/IsA","end":"/c/en/vegetable","weight":1,"surfaceText":"[[carrot]] IsA [[vegetable]]"}
601
+ {"start":"/c/en/carrot","rel":"/r/AtLocation","end":"/c/en/garden","weight":1,"surfaceText":"[[carrot]] AtLocation [[garden]]"}
602
+ {"start":"/c/en/carrot","rel":"/r/HasProperty","end":"/c/en/orange","weight":1,"surfaceText":"[[carrot]] HasProperty [[orange]]"}
603
+ {"start":"/c/en/lettuce","rel":"/r/IsA","end":"/c/en/vegetable","weight":1,"surfaceText":"[[lettuce]] IsA [[vegetable]]"}
604
+ {"start":"/c/en/lettuce","rel":"/r/AtLocation","end":"/c/en/garden","weight":1,"surfaceText":"[[lettuce]] AtLocation [[garden]]"}
605
+ {"start":"/c/en/tomato","rel":"/r/IsA","end":"/c/en/vegetable","weight":1,"surfaceText":"[[tomato]] IsA [[vegetable]]"}
606
+ {"start":"/c/en/tomato","rel":"/r/AtLocation","end":"/c/en/garden","weight":1,"surfaceText":"[[tomato]] AtLocation [[garden]]"}
607
+ {"start":"/c/en/tomato","rel":"/r/HasProperty","end":"/c/en/red","weight":1,"surfaceText":"[[tomato]] HasProperty [[red]]"}
585
608
  {"start":"/c/en/word","rel":"/r/PartOf","end":"/c/en/language","weight":1,"surfaceText":"[[word]] PartOf [[language]]"}
586
609
  {"start":"/c/en/word","rel":"/r/UsedFor","end":"/c/en/communicating","weight":1,"surfaceText":"[[word]] UsedFor [[communicating]]"}
587
610
  {"start":"/c/en/language","rel":"/r/UsedFor","end":"/c/en/communicating","weight":1,"surfaceText":"[[language]] UsedFor [[communicating]]"}
@@ -67,9 +67,9 @@
67
67
  "tool": "corpus/tier2/generate.mjs"
68
68
  },
69
69
  "file": "human.jsonl",
70
- "facts": 665,
71
- "bytes": 81540,
72
- "sha256": "7710c88c4c96a73fbbae19fe1989b0be40fed5ed40205016e90cc221bcb79607",
70
+ "facts": 688,
71
+ "bytes": 84400,
72
+ "sha256": "8aaf9f8300d63c5ef94e9ca06452a4be152872bda720ad810586fdb77b06f785",
73
73
  "license": "MPL-2.0"
74
74
  },
75
75
  {
Binary file
@@ -2,9 +2,9 @@
2
2
  "version": 1,
3
3
  "generated": "by scripts/build-worlds-pack.mjs from corpus/worlds/src/",
4
4
  "counts": {
5
- "worlds": 2,
6
- "facts": 575,
7
- "rules": 19
5
+ "worlds": 3,
6
+ "facts": 621,
7
+ "rules": 40
8
8
  },
9
9
  "budgets": {
10
10
  "sourceBytesPerWorld": 131072,
@@ -17,6 +17,11 @@
17
17
  "bytes": 11754,
18
18
  "sha256": "18e58700a59ae3876dd4f949ede7fa17e19f3a8c2dc8ae4644dbddf98c138524"
19
19
  },
20
+ {
21
+ "file": "src/mud-garden.jsonl",
22
+ "bytes": 8153,
23
+ "sha256": "fe60529dc755ee4318c8852448d8b8073bf10bc162c2dcf0ea16d87c83246443"
24
+ },
20
25
  {
21
26
  "file": "src/spider-fly.jsonl",
22
27
  "bytes": 53693,
@@ -26,14 +31,19 @@
26
31
  "files": [
27
32
  {
28
33
  "file": "index.json.gz",
29
- "bytes": 63,
30
- "sha256": "507cce433933fcd95c19e6616985006d247f8cb448b3b8a6c9136c9c859e0c08"
34
+ "bytes": 80,
35
+ "sha256": "7778b3a2652c20a9c12176ccdba95953eb271b99d1218e20898be17ed0317a71"
31
36
  },
32
37
  {
33
38
  "file": "shards/ashcombe-hall.jsonl.gz",
34
39
  "bytes": 1292,
35
40
  "sha256": "a8e61a93ebf992a8b87221c5a9a9f53bf92b7798cee86fb9d6915a1844d960dd"
36
41
  },
42
+ {
43
+ "file": "shards/mud-garden.jsonl.gz",
44
+ "bytes": 907,
45
+ "sha256": "7e7f176deda2bbf4e4d91d0885779467bc3c37a4bb61fb117fa27108ecc20380"
46
+ },
37
47
  {
38
48
  "file": "shards/spider-fly.jsonl.gz",
39
49
  "bytes": 3156,
@@ -0,0 +1,68 @@
1
+ {"world":"mud-garden","kind":"meta","opening":"a vegetable garden on a wet morning, with a burrow already running under it. Say \"look\" to look around, \"go down\" to follow the burrow, and \"dig north\" (or south, east, west, up, down) to open a new room."}
2
+ {"world":"mud-garden","kind":"fact","subject":"garden","predicate":"rdf:type","object":"room"}
3
+ {"world":"mud-garden","kind":"fact","subject":"burrow-1","predicate":"rdf:type","object":"room"}
4
+ {"world":"mud-garden","kind":"fact","subject":"sett-1","predicate":"rdf:type","object":"room"}
5
+ {"world":"mud-garden","kind":"fact","subject":"garden","predicate":"mgx:has-exit-down","object":"burrow-1"}
6
+ {"world":"mud-garden","kind":"fact","subject":"burrow-1","predicate":"mgx:has-exit-up","object":"garden"}
7
+ {"world":"mud-garden","kind":"fact","subject":"burrow-1","predicate":"mgx:has-exit-east","object":"sett-1"}
8
+ {"world":"mud-garden","kind":"fact","subject":"sett-1","predicate":"mgx:has-exit-west","object":"burrow-1"}
9
+ {"world":"mud-garden","kind":"fact","subject":"mole-1","predicate":"rdf:type","object":"adventurer"}
10
+ {"world":"mud-garden","kind":"fact","subject":"vole-1","predicate":"rdf:type","object":"adventurer"}
11
+ {"world":"mud-garden","kind":"fact","subject":"badger-2","predicate":"rdf:type","object":"adventurer"}
12
+ {"world":"mud-garden","kind":"fact","subject":"groundhog-1","predicate":"rdf:type","object":"adventurer"}
13
+ {"world":"mud-garden","kind":"fact","subject":"mole-1","predicate":"mgx:currently-in","object":"garden"}
14
+ {"world":"mud-garden","kind":"fact","subject":"vole-1","predicate":"mgx:currently-in","object":"garden"}
15
+ {"world":"mud-garden","kind":"fact","subject":"badger-2","predicate":"mgx:currently-in","object":"sett-1"}
16
+ {"world":"mud-garden","kind":"fact","subject":"groundhog-1","predicate":"mgx:currently-in","object":"sett-1"}
17
+ {"world":"mud-garden","kind":"fact","subject":"mole-1","predicate":"mgx:hasMass","object":"8"}
18
+ {"world":"mud-garden","kind":"fact","subject":"vole-1","predicate":"mgx:hasMass","object":"6"}
19
+ {"world":"mud-garden","kind":"fact","subject":"badger-2","predicate":"mgx:hasMass","object":"9"}
20
+ {"world":"mud-garden","kind":"fact","subject":"groundhog-1","predicate":"mgx:hasMass","object":"7"}
21
+ {"world":"mud-garden","kind":"fact","subject":"food","predicate":"rdfs:subClassOf","object":"portable"}
22
+ {"world":"mud-garden","kind":"fact","subject":"carrot","predicate":"rdfs:subClassOf","object":"food"}
23
+ {"world":"mud-garden","kind":"fact","subject":"lettuce","predicate":"rdfs:subClassOf","object":"food"}
24
+ {"world":"mud-garden","kind":"fact","subject":"tomato","predicate":"rdfs:subClassOf","object":"food"}
25
+ {"world":"mud-garden","kind":"fact","subject":"carrot","predicate":"rdf:type","object":"carrot"}
26
+ {"world":"mud-garden","kind":"fact","subject":"carrot","predicate":"mgx:located-in","object":"garden"}
27
+ {"world":"mud-garden","kind":"fact","subject":"carrot","predicate":"mgx:hasMass","object":"3"}
28
+ {"world":"mud-garden","kind":"fact","subject":"lettuce","predicate":"rdf:type","object":"lettuce"}
29
+ {"world":"mud-garden","kind":"fact","subject":"lettuce","predicate":"mgx:located-in","object":"sett-1"}
30
+ {"world":"mud-garden","kind":"fact","subject":"lettuce","predicate":"mgx:hasMass","object":"2"}
31
+ {"world":"mud-garden","kind":"fact","subject":"tomato","predicate":"rdf:type","object":"tomato"}
32
+ {"world":"mud-garden","kind":"fact","subject":"tomato","predicate":"mgx:located-in","object":"sett-1"}
33
+ {"world":"mud-garden","kind":"fact","subject":"tomato","predicate":"mgx:hasMass","object":"2"}
34
+ {"world":"mud-garden","kind":"fact","subject":"stone","predicate":"rdf:type","object":"portable"}
35
+ {"world":"mud-garden","kind":"fact","subject":"stone","predicate":"mgx:located-in","object":"garden"}
36
+ {"world":"mud-garden","kind":"fact","subject":"seed","predicate":"rdf:type","object":"portable"}
37
+ {"world":"mud-garden","kind":"fact","subject":"seed","predicate":"mgx:located-in","object":"burrow-1"}
38
+ {"world":"mud-garden","kind":"fact","subject":"basket","predicate":"rdf:type","object":"furniture"}
39
+ {"world":"mud-garden","kind":"fact","subject":"basket","predicate":"mgx:fixed-in","object":"garden"}
40
+ {"world":"mud-garden","kind":"fact","subject":"basket","predicate":"mgx:is-container","object":"true"}
41
+ {"world":"mud-garden","kind":"fact","subject":"basket","predicate":"mgx:is-open","object":"true"}
42
+ {"world":"mud-garden","kind":"fact","subject":"room","predicate":"rdfs:subClassOf","object":"space"}
43
+ {"world":"mud-garden","kind":"fact","subject":"garden","predicate":"rdf:type","object":"outdoor-space"}
44
+ {"world":"mud-garden","kind":"fact","subject":"burrow-1","predicate":"rdf:type","object":"underground-space"}
45
+ {"world":"mud-garden","kind":"fact","subject":"sett-1","predicate":"rdf:type","object":"underground-space"}
46
+ {"world":"mud-garden","kind":"fact","subject":"outdoor-space","predicate":"rdfs:subClassOf","object":"space"}
47
+ {"world":"mud-garden","kind":"fact","subject":"underground-space","predicate":"rdfs:subClassOf","object":"space"}
48
+ {"world":"mud-garden","kind":"rule","name":"go","ruleKind":"action-signature","slots":{"subjectClass":"adventurer","targetClass":"room"}}
49
+ {"world":"mud-garden","kind":"rule","name":"go","ruleKind":"action-signature","slots":{"subjectClass":"person","targetClass":"room"}}
50
+ {"world":"mud-garden","kind":"rule","name":"go","ruleKind":"action-effect","slots":{"predicate":"currently-in","subjectRole":"subject","objectRole":"target"}}
51
+ {"world":"mud-garden","kind":"rule","name":"take","ruleKind":"action-signature","slots":{"subjectClass":"portable","targetClass":"adventurer"}}
52
+ {"world":"mud-garden","kind":"rule","name":"take","ruleKind":"action-effect","slots":{"predicate":"located-in","subjectRole":"subject","objectRole":"target"}}
53
+ {"world":"mud-garden","kind":"rule","name":"drop","ruleKind":"action-signature","slots":{"subjectClass":"portable","targetClass":"room"}}
54
+ {"world":"mud-garden","kind":"rule","name":"drop","ruleKind":"action-effect","slots":{"predicate":"located-in","subjectRole":"subject","objectRole":"target"}}
55
+ {"world":"mud-garden","kind":"rule","name":"give","ruleKind":"action-signature","slots":{"subjectClass":"portable","targetClass":"person"}}
56
+ {"world":"mud-garden","kind":"rule","name":"give","ruleKind":"action-effect","slots":{"predicate":"located-in","subjectRole":"subject","objectRole":"target"}}
57
+ {"world":"mud-garden","kind":"rule","name":"open","ruleKind":"action-signature","slots":{"subjectClass":"adventurer","targetClass":"furniture"}}
58
+ {"world":"mud-garden","kind":"rule","name":"open","ruleKind":"action-precond","slots":{"shape":"fact-value","predicate":"stands-locked-in","role":"target","scope":"any","negate":"true"}}
59
+ {"world":"mud-garden","kind":"rule","name":"open","ruleKind":"action-precond","slots":{"shape":"fact-value","predicate":"is-open","role":"target","scope":"any","value":"true","negate":"true"}}
60
+ {"world":"mud-garden","kind":"rule","name":"open","ruleKind":"action-effect","slots":{"predicate":"is-open","subjectRole":"target","value":"true"}}
61
+ {"world":"mud-garden","kind":"rule","name":"close","ruleKind":"action-signature","slots":{"subjectClass":"adventurer","targetClass":"furniture"}}
62
+ {"world":"mud-garden","kind":"rule","name":"close","ruleKind":"action-precond","slots":{"shape":"fact-value","predicate":"is-open","role":"target","scope":"any","value":"true"}}
63
+ {"world":"mud-garden","kind":"rule","name":"close","ruleKind":"action-effect","slots":{"predicate":"is-open","subjectRole":"target","value":"false"}}
64
+ {"world":"mud-garden","kind":"rule","name":"unlock","ruleKind":"action-signature","slots":{"subjectClass":"adventurer","targetClass":"furniture"}}
65
+ {"world":"mud-garden","kind":"rule","name":"dig","ruleKind":"action-signature","slots":{"subjectClass":"adventurer","targetClass":"room"}}
66
+ {"world":"mud-garden","kind":"rule","name":"eat","ruleKind":"action-signature","slots":{"subjectClass":"adventurer","targetClass":"food"}}
67
+ {"world":"mud-garden","kind":"rule","name":"put","ruleKind":"action-signature","slots":{"subjectClass":"portable","targetClass":"furniture"}}
68
+ {"world":"mud-garden","kind":"rule","name":"put","ruleKind":"action-effect","slots":{"predicate":"located-in","subjectRole":"subject","objectRole":"target"}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polycode-projects/the-mechanical-code-talker",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "The Mechanical Code Talker (tmct) — a tolerant, offline, $0 chat surface that guides you toward precision queries about a software repository. ELIZA/PARRY-style but domain-obsessed with code. No model calls; indexes a repo on request (tmct index) or reads any producer's graph.",
@@ -159,6 +159,7 @@
159
159
  "build:ingest-bundle": "node scripts/build-ingest-bundle.mjs",
160
160
  "build:research-bundle": "node scripts/build-research-bundle.mjs",
161
161
  "build:code-explorer-bundle": "node scripts/build-code-explorer-bundle.mjs",
162
+ "build:mud-bundle": "node scripts/build-mud-bundle.mjs",
162
163
  "build:electron": "node scripts/build-electron-app.mjs",
163
164
  "electron": "electron electron/main.mjs",
164
165
  "test:electron": "node --test electron/smoke.test.mjs",
@@ -27,6 +27,28 @@ export const DEFAULT_GAME_CONFIG = Object.freeze({
27
27
  minHatchlingMass: 3,
28
28
  webDurationTurns: 10,
29
29
  }),
30
+ mud: Object.freeze({
31
+ moleInitialMass: 8,
32
+ moleMassDecrementPerTurn: 0.3,
33
+ moleSpeed: 1,
34
+ moleDigReach: 1,
35
+ voleInitialMass: 6,
36
+ voleMassDecrementPerTurn: 0.25,
37
+ voleSpeed: 1,
38
+ voleDigReach: 1,
39
+ badgerInitialMass: 20,
40
+ badgerMassDecrementPerTurn: 0.5,
41
+ badgerSpeed: 2,
42
+ badgerDigReach: 2,
43
+ groundhogInitialMass: 12,
44
+ groundhogMassDecrementPerTurn: 0.4,
45
+ groundhogSpeed: 2,
46
+ groundhogDigReach: 2,
47
+ meerkatInitialMass: 9,
48
+ meerkatMassDecrementPerTurn: 0.35,
49
+ meerkatSpeed: 1,
50
+ meerkatDigReach: 1,
51
+ }),
30
52
  guessNumber: Object.freeze({
31
53
  defaultLo: 1,
32
54
  defaultHi: 100,
@@ -55,6 +77,29 @@ const SPIDER_FLY_KEY_MAP = Object.freeze({
55
77
  web_duration_turns: "webDurationTurns",
56
78
  });
57
79
 
80
+ const MUD_KEY_MAP = Object.freeze({
81
+ mole_initial_mass: "moleInitialMass",
82
+ mole_mass_decrement_per_turn: "moleMassDecrementPerTurn",
83
+ mole_speed: "moleSpeed",
84
+ mole_dig_reach: "moleDigReach",
85
+ vole_initial_mass: "voleInitialMass",
86
+ vole_mass_decrement_per_turn: "voleMassDecrementPerTurn",
87
+ vole_speed: "voleSpeed",
88
+ vole_dig_reach: "voleDigReach",
89
+ badger_initial_mass: "badgerInitialMass",
90
+ badger_mass_decrement_per_turn: "badgerMassDecrementPerTurn",
91
+ badger_speed: "badgerSpeed",
92
+ badger_dig_reach: "badgerDigReach",
93
+ groundhog_initial_mass: "groundhogInitialMass",
94
+ groundhog_mass_decrement_per_turn: "groundhogMassDecrementPerTurn",
95
+ groundhog_speed: "groundhogSpeed",
96
+ groundhog_dig_reach: "groundhogDigReach",
97
+ meerkat_initial_mass: "meerkatInitialMass",
98
+ meerkat_mass_decrement_per_turn: "meerkatMassDecrementPerTurn",
99
+ meerkat_speed: "meerkatSpeed",
100
+ meerkat_dig_reach: "meerkatDigReach",
101
+ });
102
+
58
103
  const GUESS_NUMBER_KEY_MAP = Object.freeze({
59
104
  default_lo: "defaultLo",
60
105
  default_hi: "defaultHi",
@@ -90,6 +135,7 @@ export function resolveGameConfig(toml) {
90
135
  const games = toml?.games ?? {};
91
136
  return {
92
137
  spiderFly: mergeSection(DEFAULT_GAME_CONFIG.spiderFly, games["spider-fly"], SPIDER_FLY_KEY_MAP),
138
+ mud: mergeSection(DEFAULT_GAME_CONFIG.mud, games.mud, MUD_KEY_MAP),
93
139
  guessNumber: mergeSection(DEFAULT_GAME_CONFIG.guessNumber, games["guess-number"], GUESS_NUMBER_KEY_MAP),
94
140
  planning: mergeSection(DEFAULT_GAME_CONFIG.planning, toml?.planning, PLANNING_KEY_MAP),
95
141
  };
@@ -525,7 +525,7 @@ export function parseAce(sentence, lexicon = loadLexicon()) {
525
525
  // it is reported back on the command (`corrected`) for the caller to name in
526
526
  // its response — a synonym executes silently, a typo fix does not.
527
527
 
528
- const IMPERATIVE_VERBS = new Set(["go", "take", "drop", "open", "unlock", "close", "give", "look", "talk", "examine"]);
528
+ const IMPERATIVE_VERBS = new Set(["go", "take", "drop", "open", "unlock", "close", "give", "look", "talk", "examine", "dig", "eat", "put"]);
529
529
  const IMPERATIVE_DIRECTIONS = new Set(["north", "south", "east", "west", "up", "down"]);
530
530
 
531
531
  // The object pronouns an imperative object slot may carry ("examine it", "take
@@ -665,13 +665,13 @@ export function parseImperative(sentence, lexicon = loadLexicon()) {
665
665
  if (object.term == null) return miss(object.unknown);
666
666
  return command({ object: object.term });
667
667
  }
668
- if (verb === "examine" || verb === "talk") {
668
+ if (verb === "examine" || verb === "talk" || verb === "eat") {
669
669
  if (!rest.length) return null;
670
670
  const object = imperativeNP(lexicon, rest);
671
671
  if (object.term == null) return miss(object.unknown);
672
672
  return command({ object: object.term });
673
673
  }
674
- if (verb === "go") {
674
+ if (verb === "go" || verb === "dig") {
675
675
  if (rest.length === 1) {
676
676
  if (IMPERATIVE_DIRECTIONS.has(lower[0])) return command({ direction: lower[0] });
677
677
  const fuzzyDir = fuzzyMatchInSet(lower[0], [...IMPERATIVE_DIRECTIONS], IMPERATIVE_FUZZY_BOUND);
@@ -690,6 +690,14 @@ export function parseImperative(sentence, lexicon = loadLexicon()) {
690
690
  if (object.term == null || indirect.term == null) return miss([...object.unknown, ...indirect.unknown]);
691
691
  return command({ object: object.term, indirectObject: indirect.term });
692
692
  }
693
+ if (verb === "put") {
694
+ const inIdx = lower.indexOf("in");
695
+ if (inIdx < 1 || inIdx === rest.length - 1) return null;
696
+ const object = imperativeNP(lexicon, rest.slice(0, inIdx));
697
+ const container = imperativeNP(lexicon, rest.slice(inIdx + 1));
698
+ if (object.term == null || container.term == null) return miss([...object.unknown, ...container.unknown]);
699
+ return command({ object: object.term, indirectObject: container.term });
700
+ }
693
701
  if (verb === "unlock") {
694
702
  const withIdx = lower.indexOf("with");
695
703
  if (withIdx !== -1) {
@@ -394,6 +394,9 @@
394
394
  "tiger": {},
395
395
  "elephant": {},
396
396
  "snake": {},
397
+ "mole": {},
398
+ "groundhog": {},
399
+ "meerkat": {},
397
400
  "tree": {},
398
401
  "flower": {},
399
402
  "grass": {},
@@ -40,6 +40,11 @@ function parseChatTagRest(rest) {
40
40
  * same tier the hand-written tier2 corpus already scores at; the :turnN
41
41
  * segment a snapshot write carries records when, not who, and is not
42
42
  * part of the Source identity)
43
+ * mud:<character>[:turnN] -> { kind:"corpus", name:"mud:<character>" }
44
+ * (one character's own testimony in a multi-character world — what it told
45
+ * someone, what it examined for itself. Same tier as the world, but one
46
+ * Source per character; the `mud:` prefix in the name keeps that Source
47
+ * apart from a world of the same literal name)
43
48
  * ace:chat:<session>@<ts> -> { kind:"operator", createdAt:<ts>, sessionId:<session> }
44
49
  * teach:chat:<session>@<ts> -> { kind:"teach", createdAt:<ts>, sessionId:<session> }
45
50
  * web:<url> | url:<url> -> { kind:"web", url:<url> }
@@ -98,6 +103,14 @@ export function provenanceTagToSource(tag) {
98
103
  // authored shipped content scored at the corpus tier; the per-turn tail is
99
104
  // dropped from the id so every write of one world corroborates one Source.
100
105
  if (head.startsWith("world:")) return { kind: "corpus", name: head.slice("world:".length).split(":")[0] || "unknown" };
106
+ // mud:<character>[:turnN] — one character's own testimony inside a multi-
107
+ // character world: what it told another character, and what it saw for
108
+ // itself. Same corpus tier as the world it stands in, but a Source per
109
+ // CHARACTER, so every claim an animal makes over a whole game accumulates on
110
+ // that animal's own track record rather than the world's. The name keeps the
111
+ // `mud:` prefix so `src:corpus:mud:<character>` can never collide with a
112
+ // `world:<name>` Source that happens to share the literal name.
113
+ if (head.startsWith("mud:")) return { kind: "corpus", name: `mud:${head.slice("mud:".length).split(":")[0] || "unknown"}` };
101
114
  if (head.startsWith("ace:")) return { kind: "operator", ...parseChatTagRest(head.slice("ace:".length)) };
102
115
  if (head.startsWith("teach:")) {
103
116
  // the chat teach lane's natural frames — chat.mjs's teachProvenanceTag