@polycode-projects/the-mechanical-code-talker 0.8.1 → 0.9.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.
- package/README.md +14 -0
- package/ROADMAP.md +113 -38
- package/corpus/seon/concepts.jsonl +42 -0
- package/data/templates/responses.jsonl +1 -1
- package/package.json +2 -1
- package/src/ask.mjs +574 -31
- package/src/chat.mjs +864 -43
- package/src/codegraph.mjs +109 -1
- package/src/grammar/lexicon-core.json +7 -0
- package/src/interpret/merge.mjs +16 -1
- package/src/interpret/normalize.mjs +245 -4
- package/src/memory/core.mjs +8 -1
- package/src/memory/fold.mjs +0 -0
- package/src/memory/trust.mjs +8 -4
- package/src/router/call-validator.mjs +45 -0
- package/src/router/goal-reasoner.mjs +148 -50
- package/src/router/guardrail.mjs +1 -1
- package/src/router/planner.mjs +22 -1
- package/src/router/resolver.mjs +1 -1
- package/src/router/set-algebra.mjs +31 -0
package/README.md
CHANGED
|
@@ -42,6 +42,20 @@ is refused outright). Reversible-passive questions traverse the right direction:
|
|
|
42
42
|
"what is imported by Y" and "what does Y import" are understood as opposite
|
|
43
43
|
edges, not the same one.
|
|
44
44
|
|
|
45
|
+
**Finding by description.** "find me the payment class" searches by type and a
|
|
46
|
+
fuzzy match against the entity's own properties, instead of making you name it
|
|
47
|
+
exactly. It checks the type itself and its subclasses first. Only if nothing
|
|
48
|
+
matches there does it widen to a related type, and when it does, it says so
|
|
49
|
+
plainly rather than presenting the looser match as exact.
|
|
50
|
+
|
|
51
|
+
**Synonyms and everyday phrasing.** tmct matches many of the words people
|
|
52
|
+
actually use for the same idea, from a curated synonym list plus a filtered
|
|
53
|
+
ConceptNet slice. A slightly different word for the same concept still
|
|
54
|
+
resolves. It also follows a few common sentence shapes: clauses starting with
|
|
55
|
+
*because/although/while*, and conditionals ("if X were removed, what
|
|
56
|
+
breaks"). It flags a question whose premise doesn't hold, too: "why does X
|
|
57
|
+
still import Y" when it no longer does.
|
|
58
|
+
|
|
45
59
|
**Response finishing.** Before an answer is printed it is segmented into typed
|
|
46
60
|
spans — prose versus *protected* entities, paths, numbers, code, provenance, and
|
|
47
61
|
receipts — and a small data-driven grammar pass runs on the prose spans only,
|
package/ROADMAP.md
CHANGED
|
@@ -12,43 +12,98 @@ mapped into them (item numbers retained for traceability); the seven sketches
|
|
|
12
12
|
formerly held in `code-talker-ideas.txt` are folded into items 8–11 below and
|
|
13
13
|
the file has been deleted.
|
|
14
14
|
|
|
15
|
-
## Where we are now (2026-07-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
`
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
15
|
+
## Where we are now (2026-07-07)
|
|
16
|
+
|
|
17
|
+
`npm test` green (**1033**). A version bump to reflect this session's wave is imminent; see
|
|
18
|
+
`HANDOVER.md` for the exact release status.
|
|
19
|
+
|
|
20
|
+
### Now: shipped this session
|
|
21
|
+
|
|
22
|
+
- **5 bugs fixed.** Recall half-match replay + staple-onto-wall; 4 wall-kindness gaps (orientation
|
|
23
|
+
blurb repeat, "thanks, `<clause>`" walls, a reexports vocabulary leak, `/describe` not surfacing
|
|
24
|
+
taught facts); grain-aware entity resolution (fixes the fuzzy-entity false-empty and a
|
|
25
|
+
function/module coverage contradiction); module-grain overview gap. Full list in `HANDOVER.md`.
|
|
26
|
+
- **A new feature: predicate-based "find" queries.** "find me the payment class" now works:
|
|
27
|
+
type-filtered, fuzzy property-surface matching, with a narrow-then-broaden inheritance-aware
|
|
28
|
+
cascade and a boolean-fold generalization for compositional predicate queries. Design:
|
|
29
|
+
`PLAN_PREDICATE_QUERIES.md`.
|
|
30
|
+
- **Two research tracks landed as code.** The ontology plan's two inert synonym resources
|
|
31
|
+
(ConceptNet synonym/similar-to rows, phrasebook synonym families) are now wired into query-time
|
|
32
|
+
matching, and the disjointness premise set plus numeric vocabulary grew
|
|
33
|
+
(`PLAN_ontology-hierarchies.md`). The advanced-grammar plan's closed-frame subordination and
|
|
34
|
+
conditional support, plus presupposition honest-nudges, landed (`PLAN_ADVANCED_GRAMMAR.md`); the
|
|
35
|
+
graded pool grew 925 to 1075 cases across 6 new construction families (`chatbench/GRADED.md`).
|
|
36
|
+
- **A new benchmark: infbench.** A 6-band classical-logic ladder (INF-A1..C2), mechanically
|
|
37
|
+
generated, first baseline in `INFBENCH_0.8.2.md`. Kernel A1/A2 clean; chat A1 100%, A2 exactly
|
|
38
|
+
50% (the cax-sco gap, now measured). The ladder gates at B1 (33%) because the disjointness proof
|
|
39
|
+
rule doesn't exist yet.
|
|
40
|
+
- **A new demo** (`demo/agentic-loop-demo.mjs`) shows the zero-LLM deduce-plan-execute-compose loop
|
|
41
|
+
end to end, and surfaced a real goal-reasoner honesty gap (Bug 8, below).
|
|
42
|
+
- **A session-loop fix.** A throwing turn no longer aborts a piped/non-interactive session.
|
|
43
|
+
- **4 new plan docs.** `PLAN_ontology-hierarchies.md`, `PLAN_INFERENCE_TESTING.md` (revised so
|
|
44
|
+
infbench generation is mechanical, not hand-authored), `PLAN_PREDICATE_QUERIES.md`, and
|
|
45
|
+
`PLAN_CODE.md` (new, program synthesis over tmct's closed DSLs, gated on explicit operator
|
|
46
|
+
sign-off per track, not built yet).
|
|
47
|
+
|
|
48
|
+
### Next: the open follow-ups
|
|
49
|
+
|
|
50
|
+
In priority order (full detail and measured targets in `HANDOVER.md`):
|
|
51
|
+
|
|
52
|
+
1. **Bug 8.** The goal-reasoner's global-mode deduction answers requests unrelated to any deduced
|
|
53
|
+
goal with false confidence, once no focus entity binds (`src/router/goal-reasoner.mjs:226`).
|
|
54
|
+
The most serious open issue: a genuine confident-wrong failure in the flagship
|
|
55
|
+
zero-hallucination capability. Needs a real semantic gate.
|
|
56
|
+
2. **Bug 6.** Scoped listing false-empty: "list modules in `<pkg>`" returns empty though the
|
|
57
|
+
unscoped lister shows matches. Found dogfooding a 191k-entity monorepo graph.
|
|
58
|
+
3. **Bug 7.** A modal auxiliary ("should") survives the fuzzy-correction cascade and misreads as
|
|
59
|
+
"hold". The diagnosed fix is adding modals to `STOPWORDS`.
|
|
60
|
+
4. **`PLAN_TMCT_ECOSYSTEM_INTEGRATION.md`.** A separate concurrent session is drafting this
|
|
61
|
+
3-part tmct/bedrock-meter/marginalia integration plan. Check for completion and finalize.
|
|
62
|
+
5. **`PLAN_CODE.md`'s sign-off decision.** Track 1 (rule/frame synthesis) is the lowest-risk
|
|
63
|
+
candidate; decide with the operator whether to greenlight it.
|
|
64
|
+
6. Smaller chat-feel residuals from the 0.8.2 confirmation playtest, the Track-1 trio (pronoun,
|
|
65
|
+
temporal, discourse-count, measured red sets), `edgesOfKind` memoization for monorepo-scale
|
|
66
|
+
latency, and the version bump plus push.
|
|
67
|
+
|
|
68
|
+
### Later: deferred by design, staged inside each plan
|
|
69
|
+
|
|
70
|
+
Each plan doc stages its own later phases; this list just points to them rather than repeating
|
|
71
|
+
their tables.
|
|
72
|
+
|
|
73
|
+
- **infbench stages 1-5** (`PLAN_INFERENCE_TESTING.md` §4). The disjointness proof rule (unlocks
|
|
74
|
+
B1), proof-chain materialization, cardinality entailment, consistency checking.
|
|
75
|
+
- **Advanced-grammar tracks b/d/e** (`PLAN_ADVANCED_GRAMMAR.md`). The constructions not landed
|
|
76
|
+
this wave: stacked modality/passive, implicit arguments, and the rest of the CEFR inventory
|
|
77
|
+
audit table.
|
|
78
|
+
- **Ontology stage 3+** (`PLAN_ontology-hierarchies.md`). Beyond the synonym-wiring and
|
|
79
|
+
disjointness growth landed this wave.
|
|
80
|
+
- **`PLAN_CODE.md` tracks 2/3.** Small JS-function synthesis and HTML/CSS-fragment synthesis, both
|
|
81
|
+
via a Playwright-sandboxed headless browser. Explicitly staged well behind Track 1, each gated
|
|
82
|
+
on its own operator sign-off.
|
|
83
|
+
|
|
84
|
+
### History — what shipped in earlier releases
|
|
85
|
+
|
|
86
|
+
**v0.8.2** (the chat-feel wave + rule-general C2): tier-1 CHATBENCH 334/334 (draw A) + 285/285
|
|
87
|
+
(draw B), zero regressions; the cycle-1 hard-fail `gq-functions-call-fnalpha` flipped green.
|
|
88
|
+
Landed recall hygiene, preamble/politeness frames, calls∪callsSymbol + grain/meta fallbacks, the
|
|
89
|
+
author lane, wall kindness + honest capability nudges, teach-lane widening, receipt tails
|
|
90
|
+
prose→detail, plus a live-found scale hotfix (`edgesOfKind` argument-spread overflow past ~100k
|
|
91
|
+
edges). AGENTBENCH ladder grew 43→56 cases; goal driver 100% plan / 98% result / 0% hallucination,
|
|
92
|
+
all rungs gate-PASS; resolver floor clean A0–C1 100/100; C2 became rule-general (two declared
|
|
93
|
+
goal-rules, pure `applicableRules` selection). Full detail: `CHATBENCH_0.8.2.md`,
|
|
94
|
+
`AGENTBENCH_0.8.2.md`.
|
|
95
|
+
|
|
96
|
+
**v0.8.1** (published): AGENTBENCH grades the executed composed result, not just the call-plan.
|
|
97
|
+
Resolver 97% plan / 91% result / 0% hallucination. Stage 5 (the C2 goal-reasoner, BDI + Goal-Driven
|
|
98
|
+
Autonomy) lifted result-completion +10pp on a like-for-like driver swap. Stage 2 (imperative intent
|
|
99
|
+
frames + ACE reach) shipped at 100% plan / 95% result / 0% hallucination, `tmct_calls` genuinely
|
|
100
|
+
NL-reachable. Chat surface: quick wins + two frozen playtest transcripts, no tier-1 regression vs
|
|
101
|
+
0.7.1. Full detail: `CHATBENCH_0.8.1.md`, `AGENTBENCH_0.8.1.md`.
|
|
102
|
+
|
|
103
|
+
**v0.8.0** (published): all five Phase-11 tracks. The `/v1/messages` shim + Stage-0 registry +
|
|
104
|
+
resolver/guardrail/planner (96% plan completion, 0% hallucination, closed-world C1); three chat
|
|
105
|
+
levers; the `../bedrock-meter` $0 rung; the playtest; Stage-2/Stage-5 research notes. Full detail:
|
|
106
|
+
`CHATBENCH_0.8.0.md`, `AGENTBENCH_0.8.0.md`.
|
|
52
107
|
|
|
53
108
|
## The umbrella product definition (item 1)
|
|
54
109
|
|
|
@@ -635,7 +690,7 @@ you toward precision" promise on the conversational surface.
|
|
|
635
690
|
with new graded cells for the miss / empty-graph / concept-touch surfaces so these become
|
|
636
691
|
regression-protected levers, not one-off polish.
|
|
637
692
|
|
|
638
|
-
## Phase 11 — The capability router & the agentic bench (0.8.0 shipped · 0.8.1 deepened)
|
|
693
|
+
## Phase 11 — The capability router & the agentic bench (0.8.0 shipped · 0.8.1 deepened · 0.8.2 feel + rule-general C2)
|
|
639
694
|
|
|
640
695
|
*(Operator-directed 2026-07-06; built the same day across five concurrent tracks.)* tmct as a **deterministic, no-LLM
|
|
641
696
|
tool router** behind an Anthropic-compatible API — the workstream specified in
|
|
@@ -657,6 +712,14 @@ real deliverable. The five tracks below are all built; the two research-agent st
|
|
|
657
712
|
remain designed-not-built by intent.
|
|
658
713
|
|
|
659
714
|
### Track 1 — chat-surface levers (next CHATBENCH; all three)
|
|
715
|
+
|
|
716
|
+
> **STATUS (0.8.2):** the surrounding feel surface landed — PLAN_CHAT_FEEL items **1–5, 7, 8**
|
|
717
|
+
> (recall hygiene, preamble frames, call-relation self-consistency, author lane, wall kindness,
|
|
718
|
+
> teach-lane widening, honest nudges) shipped and gate-verified deterministically. **The trio
|
|
719
|
+
> below is DEFERRED post-release with measured targets** (advisor tick-4): pronoun red set = 18
|
|
720
|
+
> g-b1-pron ids; temporal = g-b1-temp ×5 + g-c1-temp ×9; discourse-count re-measure first — it
|
|
721
|
+
> sampled 0/5 red and is likely already green. See HANDOVER follow-up #3.
|
|
722
|
+
|
|
660
723
|
The three levers `CHATBENCH_0.7.1` measured + ranked — which **double as router prerequisites** (they
|
|
661
724
|
gate the A2→B1→C1 rungs, per Phase B of the router plan):
|
|
662
725
|
1. **Pronoun / focus binding** — the "it → Commit" mis-bind (`B1 pron 1.24`); biggest movable mass.
|
|
@@ -666,6 +729,12 @@ gate the A2→B1→C1 rungs, per Phase B of the router plan):
|
|
|
666
729
|
Land all three (not just #1); they raise the chat floor *and* the router's floor at once.
|
|
667
730
|
|
|
668
731
|
### Track 2 — the router build (the within-horizon slice, in order)
|
|
732
|
+
|
|
733
|
+
> **STATUS (0.8.2):** the C1 composition gap closed — the **member-filter HTN method + per-member
|
|
734
|
+
> callees hop** flips the standing C1 red in both drivers (resolver floor A0–C1 all 100/100); the
|
|
735
|
+
> ladder grew 43→56 fixture-linted cases; the bench-import smell is inverted
|
|
736
|
+
> (`src/router/call-validator.mjs` + `set-algebra.mjs`).
|
|
737
|
+
|
|
669
738
|
Buildable now with a frontier model as co-author (see PLAN §"solved vs unsolved"):
|
|
670
739
|
- **Phase A — the shim.** An Anthropic Messages API endpoint (`/v1/messages`, `tool_use`/`tool_result`
|
|
671
740
|
blocks). **Extended:** also present as a **`bedrock-meter`-compatible routing target** (see below).
|
|
@@ -704,6 +773,12 @@ critical build path:
|
|
|
704
773
|
- **Stage 5 — goal-reasoner, closed-world C2** — BDI + Goal-Driven Autonomy: deduce-goals (long-chain
|
|
705
774
|
deduction) → plan-each (C1) → threat-aware, *persistent* first-step arbitration.
|
|
706
775
|
|
|
776
|
+
> **STATUS (0.8.2):** both research stages are now BUILT and measured. Stage 2 landed in 0.8.1_002;
|
|
777
|
+
> Stage 5's 0.8.1 "one thin rule" caveat is retired — **C2 is rule-general**: two declared
|
|
778
|
+
> goal-rules (`coverage-invariant`, `cochange-risk-invariant`) selected by pure `applicableRules`
|
|
779
|
+
> deduction with honest refusals at both failure modes (0 applicable = open-world, >1 = ambiguous),
|
|
780
|
+
> zero request keywords. Goal driver: 100% plan / 98% result / 0% hallucination over 56 cases.
|
|
781
|
+
|
|
707
782
|
## Phase LATER — recognized, deferred, not now
|
|
708
783
|
|
|
709
784
|
Features we have deliberately shaped seams for but will not build until the phases above have
|
|
@@ -236,3 +236,45 @@
|
|
|
236
236
|
{"start":"/c/en/memory_graph","rel":"/r/HasA","end":"/c/en/fact","weight":2}
|
|
237
237
|
{"start":"/c/en/fact","rel":"/r/PartOf","end":"/c/en/memory_graph","weight":2}
|
|
238
238
|
{"start":"/c/en/seon","rel":"/r/IsA","end":"/c/en/ontology","weight":2}
|
|
239
|
+
{"start":"/c/en/class","rel":"/r/DistinctFrom","end":"/c/en/interface","weight":2}
|
|
240
|
+
{"start":"/c/en/class","rel":"/r/DistinctFrom","end":"/c/en/enum","weight":2}
|
|
241
|
+
{"start":"/c/en/interface","rel":"/r/DistinctFrom","end":"/c/en/enum","weight":2}
|
|
242
|
+
{"start":"/c/en/structure","rel":"/r/DistinctFrom","end":"/c/en/interface","weight":2}
|
|
243
|
+
{"start":"/c/en/structure","rel":"/r/DistinctFrom","end":"/c/en/enum","weight":2}
|
|
244
|
+
{"start":"/c/en/class","rel":"/r/DistinctFrom","end":"/c/en/structure","weight":2}
|
|
245
|
+
{"start":"/c/en/constructor","rel":"/r/DistinctFrom","end":"/c/en/destructor","weight":2}
|
|
246
|
+
{"start":"/c/en/constructor","rel":"/r/DistinctFrom","end":"/c/en/getter","weight":2}
|
|
247
|
+
{"start":"/c/en/constructor","rel":"/r/DistinctFrom","end":"/c/en/setter","weight":2}
|
|
248
|
+
{"start":"/c/en/destructor","rel":"/r/DistinctFrom","end":"/c/en/getter","weight":2}
|
|
249
|
+
{"start":"/c/en/destructor","rel":"/r/DistinctFrom","end":"/c/en/setter","weight":2}
|
|
250
|
+
{"start":"/c/en/getter","rel":"/r/DistinctFrom","end":"/c/en/setter","weight":2}
|
|
251
|
+
{"start":"/c/en/controller","rel":"/r/DistinctFrom","end":"/c/en/model","weight":2}
|
|
252
|
+
{"start":"/c/en/controller","rel":"/r/DistinctFrom","end":"/c/en/view","weight":2}
|
|
253
|
+
{"start":"/c/en/model","rel":"/r/DistinctFrom","end":"/c/en/view","weight":2}
|
|
254
|
+
{"start":"/c/en/string","rel":"/r/DistinctFrom","end":"/c/en/number","weight":2}
|
|
255
|
+
{"start":"/c/en/string","rel":"/r/DistinctFrom","end":"/c/en/object","weight":2}
|
|
256
|
+
{"start":"/c/en/string","rel":"/r/DistinctFrom","end":"/c/en/list","weight":2}
|
|
257
|
+
{"start":"/c/en/string","rel":"/r/DistinctFrom","end":"/c/en/array","weight":2}
|
|
258
|
+
{"start":"/c/en/number","rel":"/r/DistinctFrom","end":"/c/en/object","weight":2}
|
|
259
|
+
{"start":"/c/en/number","rel":"/r/DistinctFrom","end":"/c/en/list","weight":2}
|
|
260
|
+
{"start":"/c/en/number","rel":"/r/DistinctFrom","end":"/c/en/array","weight":2}
|
|
261
|
+
{"start":"/c/en/object","rel":"/r/DistinctFrom","end":"/c/en/list","weight":2}
|
|
262
|
+
{"start":"/c/en/object","rel":"/r/DistinctFrom","end":"/c/en/array","weight":2}
|
|
263
|
+
{"start":"/c/en/compiler","rel":"/r/DistinctFrom","end":"/c/en/linter","weight":2}
|
|
264
|
+
{"start":"/c/en/compiler","rel":"/r/DistinctFrom","end":"/c/en/formatter","weight":2}
|
|
265
|
+
{"start":"/c/en/compiler","rel":"/r/DistinctFrom","end":"/c/en/parser","weight":2}
|
|
266
|
+
{"start":"/c/en/linter","rel":"/r/DistinctFrom","end":"/c/en/formatter","weight":2}
|
|
267
|
+
{"start":"/c/en/linter","rel":"/r/DistinctFrom","end":"/c/en/parser","weight":2}
|
|
268
|
+
{"start":"/c/en/formatter","rel":"/r/DistinctFrom","end":"/c/en/parser","weight":2}
|
|
269
|
+
{"start":"/c/en/constant","rel":"/r/DistinctFrom","end":"/c/en/attribute","weight":2}
|
|
270
|
+
{"start":"/c/en/constant","rel":"/r/DistinctFrom","end":"/c/en/parameter","weight":2}
|
|
271
|
+
{"start":"/c/en/attribute","rel":"/r/DistinctFrom","end":"/c/en/parameter","weight":2}
|
|
272
|
+
{"start":"/c/en/field","rel":"/r/DistinctFrom","end":"/c/en/property","weight":2}
|
|
273
|
+
{"start":"/c/en/loop","rel":"/r/DistinctFrom","end":"/c/en/expression","weight":2}
|
|
274
|
+
{"start":"/c/en/assertion","rel":"/r/DistinctFrom","end":"/c/en/loop","weight":2}
|
|
275
|
+
{"start":"/c/en/header","rel":"/r/DistinctFrom","end":"/c/en/script","weight":2}
|
|
276
|
+
{"start":"/c/en/client","rel":"/r/DistinctFrom","end":"/c/en/server","weight":2}
|
|
277
|
+
{"start":"/c/en/request","rel":"/r/DistinctFrom","end":"/c/en/response","weight":2}
|
|
278
|
+
{"start":"/c/en/question","rel":"/r/DistinctFrom","end":"/c/en/answer","weight":2}
|
|
279
|
+
{"start":"/c/en/bug","rel":"/r/DistinctFrom","end":"/c/en/feature","weight":2}
|
|
280
|
+
{"start":"/c/en/issue","rel":"/r/DistinctFrom","end":"/c/en/requirement","weight":2}
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
{"id":"conversational-greeting-good-evening","class":"conversational","register":"friendly","template":"Good evening. Ask me about this codebase, or /help."}
|
|
61
61
|
{"id":"conversational-thanks","class":"conversational","register":"friendly","template":"Any time. Ask another, or /help for what I can do."}
|
|
62
62
|
{"id":"conversational-farewell","class":"conversational","register":"friendly","template":"Bye — flushing the session log. Come back with a question any time."}
|
|
63
|
-
{"id":"orientation-friendly","class":"orientation","register":"friendly","template":"I answer questions about THIS codebase's structure — imports, calls, definitions,\nhistory and counts. For example:\n which modules import
|
|
63
|
+
{"id":"orientation-friendly","class":"orientation","register":"friendly","template":"I answer questions about THIS codebase's structure — imports, calls, definitions,\nhistory and counts. For example:\n which modules import {example1}\n what calls {example2}\n how many classes are there\n/help for commands, /stats for an overview of the graph."}
|
|
64
64
|
{"id":"miss-no-previous-answer","class":"miss","register":"friendly","template":"No previous answer to expand yet — ask me a question first, then say \"why\" or \"say more\"."}
|
|
65
65
|
{"id":"conversational-greeting-empty","class":"conversational","register":"friendly","template":"Hi. There's no code graph loaded here — for code structure (imports, calls, definitions) I need a `.tmct/graph.json`: point me at one with `--repo <path>`, or try the shipped example `npm run example:mini`. (tmct reads graphs; it doesn't index code itself.) For general vocabulary, `tmct init` seeds concepts — try \"what is a cache\". /help for commands."}
|
|
66
66
|
{"id":"orientation-empty","class":"orientation","register":"friendly","template":"There's no code graph loaded here, so I can't answer structure questions (imports, calls, definitions) yet.\nFor those I need a `.tmct/graph.json` produced by a graph producer — point me at one with `--repo <path>`, or try the shipped example `npm run example:mini`. tmct reads graphs; it doesn't index code itself.\nFor general vocabulary, `tmct init` seeds concepts — try \"what is a cache\". /help for commands, /memory for what I remember."}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polycode-projects/the-mechanical-code-talker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.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; no codebase index of its own.",
|
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
"chatbench:judge": "node chatbench/judge.mjs",
|
|
88
88
|
"serve": "node bin/tmct.mjs serve",
|
|
89
89
|
"agentbench:run": "node agentbench/run.mjs",
|
|
90
|
+
"infbench": "node infbench/generate-cases.mjs && node infbench/run.mjs",
|
|
90
91
|
"audit": "npm audit --audit-level=high",
|
|
91
92
|
"audit:fix": "npm audit fix"
|
|
92
93
|
},
|