@pasko70/pibo 1.11.0 → 1.11.1

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.
Files changed (28) hide show
  1. package/dist/apps/chat/static-assets.js +10 -2
  2. package/dist/apps/chat/web-app.js +18 -2
  3. package/dist/apps/chat/workflow-manual-trigger-runtime.js +46 -149
  4. package/dist/apps/chat-ui/assets/{dist-CuCZ-3_K.js → dist-BBVpFHAq.js} +1 -1
  5. package/dist/apps/chat-ui/assets/{dist-C2BRHNXr.js → dist-BXyVMdHv.js} +1 -1
  6. package/dist/apps/chat-ui/assets/{dist-CBL8UXjd.js → dist-BiGfVaXN.js} +1 -1
  7. package/dist/apps/chat-ui/assets/{dist-BvqC0hRM.js → dist-CCGKu-Wj.js} +1 -1
  8. package/dist/apps/chat-ui/assets/{dist-CI-LPHjw.js → dist-CE0MvPLM.js} +1 -1
  9. package/dist/apps/chat-ui/assets/{dist-CpZPhD2y.js → dist-CuGiEm5l.js} +1 -1
  10. package/dist/apps/chat-ui/assets/{dist-CzC5kPWJ.js → dist-DBnh8gXR.js} +1 -1
  11. package/dist/apps/chat-ui/assets/{dist-D9hLnn1T.js → dist-DeOnZ-pw.js} +1 -1
  12. package/dist/apps/chat-ui/assets/{dist-0E9FVJ6k.js → dist-DnQYnLQS.js} +1 -1
  13. package/dist/apps/chat-ui/assets/{dist-C57jNmjf.js → dist-VT4x40uL.js} +1 -1
  14. package/dist/apps/chat-ui/assets/{dist-CMRFkfl5.js → dist-xtnVygdr.js} +1 -1
  15. package/dist/apps/chat-ui/assets/{index-BEvjPUor.js → index-vcg8JNj9.js} +69 -69
  16. package/dist/apps/chat-ui/favicon.svg +4 -0
  17. package/dist/apps/chat-ui/index.html +3 -1
  18. package/dist/apps/chat-ui/sw.js +12 -1
  19. package/dist/apps/chat-vscode-web/assets/index-DVlCO7v_.js +41 -0
  20. package/dist/apps/chat-vscode-web/index.html +1 -1
  21. package/dist/apps/vscode-artifacts/latest.vsix +0 -0
  22. package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.11.1.vsix +0 -0
  23. package/dist/session-ui/terminalRows.js +10 -0
  24. package/dist/shared/trace-event-projection.js +20 -3
  25. package/dist/shared/trace-transcript.js +4 -0
  26. package/package.json +3 -5
  27. package/dist/apps/chat-vscode-web/assets/index-BLZRi4Ka.js +0 -41
  28. package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.11.0.vsix +0 -0
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="theme-color" content="#101d22" />
7
7
  <title>Pibo</title>
8
- <script type="module" crossorigin src="/apps/chat-vscode/assets/index-BLZRi4Ka.js"></script>
8
+ <script type="module" crossorigin src="/apps/chat-vscode/assets/index-DVlCO7v_.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/apps/chat-vscode/assets/index-Bf2JvJ9z.css">
10
10
  </head>
11
11
  <body>
@@ -205,6 +205,7 @@ function createUserMessageRow(node) {
205
205
  lines: [{ prefix: "prompt", tokens: [token(text)] }],
206
206
  sourceNodeIds: [node.id],
207
207
  forkEntryId: node.entryId,
208
+ pendingMessageDelivery: pendingUserMessageDelivery(node),
208
209
  startedAt: node.startedAt,
209
210
  output: text,
210
211
  payloadRefs: node.payloadRefs,
@@ -1193,6 +1194,15 @@ function delegationVerb(status) {
1193
1194
  return "Spawn failed";
1194
1195
  return "Spawned";
1195
1196
  }
1197
+ function pendingUserMessageDelivery(node) {
1198
+ if (node.status !== "running")
1199
+ return undefined;
1200
+ if (node.id.startsWith("event:message_steered:"))
1201
+ return "steer";
1202
+ if (node.id.startsWith("event:message_queued:"))
1203
+ return "queue";
1204
+ return undefined;
1205
+ }
1196
1206
  function asyncVerb(status) {
1197
1207
  if (status === "running")
1198
1208
  return "Waiting for";
@@ -42,6 +42,14 @@ export function applySingleEventToNodes(nodes, byId, piboSessionId, storedEvent,
42
42
  const node = traceNodeFromEvent(piboSessionId, payload, childByParent, linkedChildByToolCallId, sessionStatus, storedEvent.createdAt, storedEvent.eventSequence, storedEvent.streamId, storedEvent.streamFrameIndex);
43
43
  if (!node)
44
44
  return;
45
+ if (node.type === "user.message" &&
46
+ node.status === "running" &&
47
+ !node.parentId &&
48
+ payload.type === "message_steered") {
49
+ const activeTurn = [...byId.values()].reverse().find((candidate) => candidate.type === "agent.turn" && candidate.status === "running");
50
+ if (activeTurn)
51
+ node.parentId = activeTurn.id;
52
+ }
45
53
  if (node.type === "agent.turn" && node.eventId) {
46
54
  const existingTurn = [...byId.values()].find((candidate) => candidate.type === "agent.turn" && candidate.eventId === node.eventId);
47
55
  if (existingTurn) {
@@ -94,8 +102,12 @@ export function applySingleEventToNodes(nodes, byId, piboSessionId, storedEvent,
94
102
  if (node.eventId) {
95
103
  const existing = byId.get(node.id);
96
104
  if (existing) {
97
- if (node.type === "user.message" && node.parentId)
98
- existing.parentId = node.parentId;
105
+ if (node.type === "user.message") {
106
+ existing.status = node.status;
107
+ existing.parentId = node.parentId ?? existing.parentId;
108
+ existing.summary = node.summary ?? existing.summary;
109
+ existing.output = node.output ?? existing.output;
110
+ }
99
111
  return;
100
112
  }
101
113
  }
@@ -297,7 +309,7 @@ function traceNodeFromEvent(piboSessionId, event, childByParent, linkedChildByTo
297
309
  ...(event.type === "message_steered" && event.activeEventId ? { parentId: messageTurnNodeId(event.activeEventId) } : {}),
298
310
  type: "user.message",
299
311
  title: "User Message",
300
- status: "done",
312
+ status: isOptimisticUserMessageEvent(event) ? "running" : "done",
301
313
  summary: event.text,
302
314
  output: event.text,
303
315
  };
@@ -538,6 +550,11 @@ function mergeReasoningEvent(target, update) {
538
550
  target.output = update.output ?? target.output;
539
551
  target.completedAt = update.completedAt ?? target.completedAt;
540
552
  }
553
+ function isOptimisticUserMessageEvent(event) {
554
+ return ((event.type === "message_queued" || event.type === "message_steered") &&
555
+ "clientTxnId" in event &&
556
+ typeof event.clientTxnId === "string");
557
+ }
541
558
  function isInternalSessionOperation(action) {
542
559
  return action === "session.fork" || action === "session.clone" || action === "session.switch";
543
560
  }
@@ -181,6 +181,7 @@ function createAssistantTurnNodes(piboSessionId, entries, timing) {
181
181
  return [];
182
182
  const orderedNodes = [];
183
183
  const toolsByCallId = new Map();
184
+ let assistantIndex = 0;
184
185
  for (const { entry, index: entryIndex } of entries) {
185
186
  if (messageRole(entry) === "toolResult") {
186
187
  mergePersistedToolResult(toolsByCallId, orderedNodes, entry, piboSessionId, entryIndex);
@@ -224,6 +225,9 @@ function createAssistantTurnNodes(piboSessionId, entries, timing) {
224
225
  if (responseNode) {
225
226
  responseNode.status = responseStatus;
226
227
  responseNode.error = responseError;
228
+ if (timing?.eventId)
229
+ responseNode.stableKey = `assistant:${timing.eventId}:assistant:${assistantIndex}`;
230
+ assistantIndex += 1;
227
231
  }
228
232
  }
229
233
  const finalNode = orderedNodes.at(-1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pasko70/pibo",
3
- "version": "1.11.0",
3
+ "version": "1.11.1",
4
4
  "type": "module",
5
5
  "imports": {
6
6
  "vscode": "./src/apps/chat-vscode/extension/src/vscode-shim.js"
@@ -57,8 +57,6 @@
57
57
  "@earendil-works/pi-ai": "0.80.6",
58
58
  "@earendil-works/pi-coding-agent": "0.80.6",
59
59
  "@earendil-works/pi-tui": "0.80.6",
60
- "@langchain/core": "^1.2.3",
61
- "@langchain/langgraph": "^1.4.8",
62
60
  "@mdxeditor/editor": "^3.55.0",
63
61
  "@modelcontextprotocol/sdk": "^1.29.0",
64
62
  "@tailwindcss/vite": "^4.2.4",
@@ -79,8 +77,7 @@
79
77
  "react-markdown": "^10.1.0",
80
78
  "react-virtuoso": "^4.18.6",
81
79
  "remark-gfm": "^4.0.1",
82
- "tailwindcss": "^4.2.4",
83
- "zod": "4.4.1"
80
+ "tailwindcss": "^4.2.4"
84
81
  },
85
82
  "devDependencies": {
86
83
  "@tanstack/router-plugin": "^1.167.28",
@@ -91,6 +88,7 @@
91
88
  "@vitejs/plugin-react": "^6.0.1",
92
89
  "@vscode/vsce": "^3.6.0",
93
90
  "esbuild": "^0.27.7",
91
+ "react-test-renderer": "19.2.5",
94
92
  "tsx": "^4.21.0",
95
93
  "typescript": "^6.0.3",
96
94
  "vite": "^8.0.10",