@lazyingart/agintiflow 0.20.20 → 0.20.22

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": "@lazyingart/agintiflow",
3
- "version": "0.20.20",
3
+ "version": "0.20.22",
4
4
  "type": "module",
5
5
  "description": "AgInTiFlow is a web-first coding agent and CLI with DeepSeek routing, sandboxed tools, model providers, canvas artifacts, and optional wrappers.",
6
6
  "license": "Apache-2.0",
@@ -141,8 +141,8 @@ try {
141
141
  if (!promptText.includes("user>")) {
142
142
  throw new Error("terminal prompt layout did not render the user> label");
143
143
  }
144
- if (!promptText.includes("user> ")) {
145
- throw new Error("terminal prompt layout did not pad user> to the aginti> label width");
144
+ if (!promptText.includes(" user> ") || promptText.includes("user> ")) {
145
+ throw new Error("terminal prompt layout did not right-align user> to the aginti> label width");
146
146
  }
147
147
  const visibleLengths = promptLayout.renderedRows.map((line) =>
148
148
  line.replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g, "").length
@@ -168,7 +168,7 @@ try {
168
168
  if (
169
169
  paddedPromptLayout.cursorRow !== 1 ||
170
170
  paddedRows[0].trim() !== "" ||
171
- !paddedRows[1].includes("user> hello") ||
171
+ !paddedRows[1].includes(" user> hello") ||
172
172
  paddedRows[2].trim() !== "" ||
173
173
  !paddedRows[3].includes("cwd /tmp/aginti-project")
174
174
  ) {
@@ -177,7 +177,7 @@ try {
177
177
  const committedUserText = formatCommittedUserPromptLines("list files", 90)
178
178
  .map((line) => line.replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g, ""))
179
179
  .join("\n");
180
- if (!committedUserText.includes("user> list files") || committedUserText.includes("cwd")) {
180
+ if (!committedUserText.includes(" user> list files") || committedUserText.includes("cwd")) {
181
181
  throw new Error("committed user history should not include the live cwd footer");
182
182
  }
183
183
  const zhPromptLayout = buildPromptLayout("", 0, 90, 24, { language: "zh-Hans", commandCwd: "/tmp/aginti-project" });
@@ -214,7 +214,7 @@ try {
214
214
  const hintText = hintPromptLayout.renderedRows
215
215
  .map((line) => line.replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g, ""))
216
216
  .join("\n");
217
- if (!hintText.includes("user> /mo") || !hintText.includes("hint /models >/model")) {
217
+ if (!hintText.includes(" user> /mo") || !hintText.includes("hint /models >/model")) {
218
218
  throw new Error("terminal prompt layout did not align user and hint text columns");
219
219
  }
220
220
  const exactHintLayout = buildPromptLayout("/model", 6, 90, 24);
@@ -306,6 +306,9 @@ try {
306
306
  if (!latest.stdout.includes("resume history") || !latest.stdout.includes("chat=") || !latest.stdout.includes("Mock run complete")) {
307
307
  throw new Error("bare aginti resume did not preview saved chat history");
308
308
  }
309
+ if (!latest.stdout.includes(" user>") || !latest.stdout.includes("aginti>") || latest.stdout.includes("user> ")) {
310
+ throw new Error("resume history should use prompt-style user>/aginti> labels");
311
+ }
309
312
  if (!latest.stdout.includes("resume note=showing chat transcript only")) {
310
313
  throw new Error("bare aginti resume did not clarify that tool/run events are separate from chat history");
311
314
  }
@@ -345,6 +348,7 @@ try {
345
348
  "run-status",
346
349
  "resume-latest",
347
350
  "resume-history-metadata",
351
+ "resume-history-prompt-labels",
348
352
  "resume-history-full",
349
353
  ],
350
354
  },
@@ -113,7 +113,8 @@ const PROMPT_LABEL_WIDTH = "aginti>".length;
113
113
  function labelText(name, { prompt = false } = {}) {
114
114
  const raw = String(name || "");
115
115
  const width = prompt || raw.endsWith(">") ? PROMPT_LABEL_WIDTH : ROLE_LABEL_WIDTH;
116
- return ` ${raw.padEnd(width, " ")} `;
116
+ const aligned = raw.endsWith(">") ? raw.padStart(width, " ") : raw.padEnd(width, " ");
117
+ return ` ${aligned} `;
117
118
  }
118
119
 
119
120
  function label(name, bgCode) {
@@ -1573,8 +1574,8 @@ async function latestSession() {
1573
1574
  }
1574
1575
 
1575
1576
  function printHistoryEntry(entry) {
1576
- const role = entry.role === "assistant" ? "aginti" : entry.role === "user" ? "user" : String(entry.role || "note");
1577
- const bg = role === "aginti" ? ansi.agentBg : role === "user" ? ansi.userBg : ansi.systemBg;
1577
+ const role = entry.role === "assistant" ? "aginti>" : entry.role === "user" ? "user>" : String(entry.role || "note");
1578
+ const bg = role === "aginti>" ? ansi.agentBg : role === "user>" ? ansi.userBg : ansi.systemBg;
1578
1579
  const time = entry.at ? new Date(entry.at).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) : "";
1579
1580
  printHistoryBlock(role, entry.content, { time, bg });
1580
1581
  }