@limno/core 0.1.10 → 0.1.11

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/index.cjs CHANGED
@@ -314,6 +314,10 @@ async function commitFiles(root, files, message) {
314
314
  }
315
315
 
316
316
  // src/runner.ts
317
+ var fullMessage = (text) => {
318
+ const t = String(text).trim().replace(/\n{3,}/g, "\n\n");
319
+ return t.length > 4e3 ? `${t.slice(0, 3999).trimEnd()}\u2026` : t;
320
+ };
317
321
  var NAMES = { claude: "Claude Code", codex: "Codex" };
318
322
  var SIGN_IN = { claude: "claude auth login", codex: "codex login" };
319
323
  var PROMPT = [
@@ -321,7 +325,9 @@ var PROMPT = [
321
325
  "Call limno_get_changes to read the visual changes and comments waiting for you, then implement them in this project's source by following the rules it gives you.",
322
326
  "Report progress with limno_update_status, and answer comments with limno_reply.",
323
327
  "Only read and edit files inside this project. Don't run shell commands; Limno checks the result on the page itself.",
324
- "Finish with one short sentence summarising what you changed."
328
+ "Finish with a summary the designer reads in Limno, at most two short sentences and 45 words in total:",
329
+ "first what you changed (or why you changed nothing); then, only if needed, what they must know or decide, as a direct question when it is one.",
330
+ "No file paths, no lists, nothing they already know from the change itself."
325
331
  ].join(" ");
326
332
  var trustFile = () => import_node_path3.default.join(import_node_os.default.homedir(), ".limno", "trust.json");
327
333
  function projectKey(root) {
@@ -557,7 +563,7 @@ function createRunner(root, folder, onState) {
557
563
  else if (name === "Edit" || name === "MultiEdit" || name === "Write") log({ kind: "edit", text: `Editing ${rel(input.file_path)}`, file: rel(input.file_path) });
558
564
  else if (name === "Glob" || name === "Grep") log({ kind: "search", text: "Searching the project" });
559
565
  } else if (block.type === "text" && String(block.text).trim()) {
560
- log({ kind: "message", text: String(block.text).trim().split("\n")[0].slice(0, 220) });
566
+ log({ kind: "message", text: fullMessage(block.text) });
561
567
  }
562
568
  }
563
569
  return;
@@ -578,7 +584,7 @@ function createRunner(root, folder, onState) {
578
584
  else if (item.type === "file_change" && e.type === "item.completed") {
579
585
  for (const c of item.changes ?? []) log({ kind: "edit", text: `Editing ${rel(c.path)}`, file: rel(c.path) });
580
586
  } else if (item.type === "agent_message" && e.type === "item.completed" && item.text) {
581
- log({ kind: "message", text: String(item.text).trim().split("\n")[0].slice(0, 220) });
587
+ log({ kind: "message", text: fullMessage(item.text) });
582
588
  } else if (item.type === "command_execution" && e.type === "item.started") {
583
589
  log({ kind: "search", text: "Looking through the project" });
584
590
  }
package/dist/index.js CHANGED
@@ -265,6 +265,10 @@ async function commitFiles(root, files, message) {
265
265
  }
266
266
 
267
267
  // src/runner.ts
268
+ var fullMessage = (text) => {
269
+ const t = String(text).trim().replace(/\n{3,}/g, "\n\n");
270
+ return t.length > 4e3 ? `${t.slice(0, 3999).trimEnd()}\u2026` : t;
271
+ };
268
272
  var NAMES = { claude: "Claude Code", codex: "Codex" };
269
273
  var SIGN_IN = { claude: "claude auth login", codex: "codex login" };
270
274
  var PROMPT = [
@@ -272,7 +276,9 @@ var PROMPT = [
272
276
  "Call limno_get_changes to read the visual changes and comments waiting for you, then implement them in this project's source by following the rules it gives you.",
273
277
  "Report progress with limno_update_status, and answer comments with limno_reply.",
274
278
  "Only read and edit files inside this project. Don't run shell commands; Limno checks the result on the page itself.",
275
- "Finish with one short sentence summarising what you changed."
279
+ "Finish with a summary the designer reads in Limno, at most two short sentences and 45 words in total:",
280
+ "first what you changed (or why you changed nothing); then, only if needed, what they must know or decide, as a direct question when it is one.",
281
+ "No file paths, no lists, nothing they already know from the change itself."
276
282
  ].join(" ");
277
283
  var trustFile = () => path3.join(os.homedir(), ".limno", "trust.json");
278
284
  function projectKey(root) {
@@ -508,7 +514,7 @@ function createRunner(root, folder, onState) {
508
514
  else if (name === "Edit" || name === "MultiEdit" || name === "Write") log({ kind: "edit", text: `Editing ${rel(input.file_path)}`, file: rel(input.file_path) });
509
515
  else if (name === "Glob" || name === "Grep") log({ kind: "search", text: "Searching the project" });
510
516
  } else if (block.type === "text" && String(block.text).trim()) {
511
- log({ kind: "message", text: String(block.text).trim().split("\n")[0].slice(0, 220) });
517
+ log({ kind: "message", text: fullMessage(block.text) });
512
518
  }
513
519
  }
514
520
  return;
@@ -529,7 +535,7 @@ function createRunner(root, folder, onState) {
529
535
  else if (item.type === "file_change" && e.type === "item.completed") {
530
536
  for (const c of item.changes ?? []) log({ kind: "edit", text: `Editing ${rel(c.path)}`, file: rel(c.path) });
531
537
  } else if (item.type === "agent_message" && e.type === "item.completed" && item.text) {
532
- log({ kind: "message", text: String(item.text).trim().split("\n")[0].slice(0, 220) });
538
+ log({ kind: "message", text: fullMessage(item.text) });
533
539
  } else if (item.type === "command_execution" && e.type === "item.started") {
534
540
  log({ kind: "search", text: "Looking through the project" });
535
541
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limno/core",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Limno's framework-neutral dev tooling: JSX source stamping, the change-set store and the endpoints the editor talks to.",
5
5
  "license": "FSL-1.1-MIT",
6
6
  "type": "module",
@@ -42,9 +42,9 @@
42
42
  "dependencies": {
43
43
  "@babel/parser": "^7.29.0",
44
44
  "@babel/traverse": "^7.29.0",
45
- "@limno/mcp": "0.1.4",
46
- "@limno/overlay": "0.1.10",
47
- "@limno/spec": "0.1.4",
45
+ "@limno/mcp": "0.1.5",
46
+ "@limno/overlay": "0.1.11",
47
+ "@limno/spec": "0.1.5",
48
48
  "launch-editor": "^2.14.1",
49
49
  "magic-string": "^0.30.17"
50
50
  },