@lazyingart/agintiflow 0.20.19 → 0.20.21

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.19",
3
+ "version": "0.20.21",
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",
package/public/index.html CHANGED
@@ -234,7 +234,6 @@
234
234
  <p class="chat-shortcuts subtle" data-i18n="chatShortcutHelp">
235
235
  Enter sends · Shift+Enter adds a newline · use buttons for pipe/queue control
236
236
  </p>
237
- <div id="chat-pending" class="chat-pending" hidden></div>
238
237
  <div class="actions">
239
238
  <button type="submit" data-i18n="sendMessageButton">Send message</button>
240
239
  <button id="pipe-message" type="button" class="secondary" data-i18n="pipeMessageButton">Pipe to run</button>
@@ -247,6 +246,7 @@
247
246
  <div id="chat-thread" class="chat-thread">
248
247
  <div class="subtle" data-i18n="noConversationLoaded">No conversation loaded.</div>
249
248
  </div>
249
+ <div id="chat-pending" class="chat-pending" hidden></div>
250
250
  </section>
251
251
 
252
252
  <section class="panel output-panel">
@@ -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>")) {
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
  },
@@ -69,6 +69,13 @@ async function waitForRun(sessionId) {
69
69
  try {
70
70
  await waitForHealth();
71
71
 
72
+ const webAppHtml = await fs.readFile(path.join(repoRoot, "public", "index.html"), "utf8");
73
+ const chatThreadIndex = webAppHtml.indexOf('id="chat-thread"');
74
+ const chatPendingIndex = webAppHtml.indexOf('id="chat-pending"');
75
+ if (chatThreadIndex < 0 || chatPendingIndex < 0 || chatPendingIndex < chatThreadIndex) {
76
+ throw new Error("pending message panel must render below the chat thread");
77
+ }
78
+
72
79
  const config = await fetchJson("/api/config");
73
80
  if (!config.keyStatus?.mock) throw new Error("mock provider is not advertised by /api/config");
74
81
  if (!config.workspace?.enabled) throw new Error("workspace file tools are not advertised by /api/config");
@@ -1573,8 +1573,8 @@ async function latestSession() {
1573
1573
  }
1574
1574
 
1575
1575
  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;
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;
1578
1578
  const time = entry.at ? new Date(entry.at).toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) : "";
1579
1579
  printHistoryBlock(role, entry.content, { time, bg });
1580
1580
  }