@polycode-projects/the-mechanical-code-talker 2.7.5 → 2.7.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polycode-projects/the-mechanical-code-talker",
3
- "version": "2.7.5",
3
+ "version": "2.7.7",
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.",
@@ -474,7 +474,12 @@ async function runWorldCommand(cmd, { world, memoryDir, env, graph, cache }) {
474
474
 
475
475
  if (cmd.verb === "examine" || cmd.verb === "talk") {
476
476
  const object = cmd.object;
477
- if (visibleRoomOf(object, { rows, state }) !== here) {
477
+ // A carried object has no room to be "visible in" (visibleRoomOf returns
478
+ // null for anything held by the player) — examine still applies to it,
479
+ // the same way "what am I carrying" already reads inventory contents.
480
+ // talk has no carried exception: NPCs are never portable.
481
+ const carried = cmd.verb === "examine" && carriedByPlayer(state, object);
482
+ if (!carried && visibleRoomOf(object, { rows, state }) !== here) {
478
483
  return answer(
479
484
  `I don't see a ${object} here.`,
480
485
  noteFor(`${cmd.verb} — ${object} isn't visible in the ${here}; declined, hidden things stay hidden`),