@pasko70/pibo 3.0.1 → 3.1.0

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 (122) hide show
  1. package/README.md +20 -6
  2. package/compute-image/Dockerfile +47 -0
  3. package/compute-image/Dockerfile.dockerignore +5 -0
  4. package/dist/agent-runtime/context-build.js +26 -2
  5. package/dist/agent-runtime/contract.js +78 -28
  6. package/dist/agent-runtime/portable-history.js +19 -9
  7. package/dist/agent-runtime/registry.js +8 -2
  8. package/dist/agent-runtime/routed-session.js +120 -15
  9. package/dist/agent-runtimes/codex-native/adapter.js +12 -0
  10. package/dist/agent-runtimes/codex-native/resource-delivery.js +35 -7
  11. package/dist/agent-runtimes/omp/adapter.js +3 -7
  12. package/dist/agent-runtimes/pi/adapter.js +5 -3
  13. package/dist/agent-runtimes/pi/routed-session.js +59 -12
  14. package/dist/agent-runtimes/pi/runtime.js +6 -0
  15. package/dist/apps/chat/agent-profiles.js +31 -2
  16. package/dist/apps/chat/agent-store.js +98 -6
  17. package/dist/apps/chat/chat-request-normalizers.js +31 -0
  18. package/dist/apps/chat/data/chat-data-mappers.js +61 -11
  19. package/dist/apps/chat/data/project-service.js +119 -15
  20. package/dist/apps/chat/data/room-service.js +21 -0
  21. package/dist/apps/chat/data/session-query-service.js +33 -10
  22. package/dist/apps/chat/data/timeline-query-service.js +60 -35
  23. package/dist/apps/chat/loop-api.js +10 -2
  24. package/dist/apps/chat/output-compactor.js +144 -21
  25. package/dist/apps/chat/output-event-policy.js +179 -2
  26. package/dist/apps/chat/stream.js +16 -7
  27. package/dist/apps/chat/trace-v2.js +1 -0
  28. package/dist/apps/chat/web-app.js +317 -86
  29. package/dist/apps/chat-ui/assets/{dist-BDIATCQt.js → dist-CUQJqggN.js} +1 -1
  30. package/dist/apps/chat-ui/assets/{dist-mqCviI-c.js → dist-ClUlQWYN.js} +1 -1
  31. package/dist/apps/chat-ui/assets/{dist-JnW4v8UE.js → dist-Djul9BmZ.js} +1 -1
  32. package/dist/apps/chat-ui/assets/{dist-lRiLP9rr.js → dist-GD0JGdCi.js} +1 -1
  33. package/dist/apps/chat-ui/assets/{dist-BBDMeU5-.js → dist-W5HOqHym.js} +1 -1
  34. package/dist/apps/chat-ui/assets/index-BcjkX-iP.js +228 -0
  35. package/dist/apps/chat-ui/assets/index-CmqRSbBU.css +1 -0
  36. package/dist/apps/chat-ui/index.html +2 -2
  37. package/dist/apps/chat-vscode-web/assets/index-JvrPUGvI.js +43 -0
  38. package/dist/apps/chat-vscode-web/index.html +1 -1
  39. package/dist/apps/cli-ui/InkSessionApp.js +111 -12
  40. package/dist/apps/cli-ui/cliSessionsCommand.js +34 -8
  41. package/dist/cli-session/localSessionSource.js +153 -161
  42. package/dist/cli.js +7 -11
  43. package/dist/compute/cli.js +35 -16
  44. package/dist/compute/docker.js +341 -94
  45. package/dist/config/config.js +3 -0
  46. package/dist/core/context-build.js +7 -16
  47. package/dist/core/output-persistence-retry.js +484 -0
  48. package/dist/core/output-render-sequence.js +331 -0
  49. package/dist/core/profiles.js +24 -0
  50. package/dist/core/provider-recovery.js +7 -1
  51. package/dist/core/session-model.js +37 -1
  52. package/dist/core/session-router.js +78 -110
  53. package/dist/data/ingest-service.js +91 -9
  54. package/dist/data/navigation-store.js +5 -5
  55. package/dist/data/pibo-store.js +8 -1
  56. package/dist/data/schema.js +243 -3
  57. package/dist/data/session-store.js +3 -3
  58. package/dist/debug/agents.js +91 -89
  59. package/dist/debug/index.js +46 -2
  60. package/dist/debug/pty.js +127 -48
  61. package/dist/gateway/cli.js +4 -0
  62. package/dist/gateway/web.js +8 -8
  63. package/dist/local/client.js +3 -2
  64. package/dist/loops/channel.js +3 -1
  65. package/dist/loops/cli.js +2 -1
  66. package/dist/loops/service.js +90 -11
  67. package/dist/loops/store.js +100 -74
  68. package/dist/mcp/agent-context.js +13 -26
  69. package/dist/mcp/commands/info.js +3 -1
  70. package/dist/mcp/config-command.js +46 -2
  71. package/dist/mcp/config.js +18 -4
  72. package/dist/plugins/context-files-store.js +36 -6
  73. package/dist/plugins/context-files.js +52 -1
  74. package/dist/plugins/registry.js +2 -0
  75. package/dist/plugins/user-profile-resources.js +22 -0
  76. package/dist/previews/base-url.js +34 -0
  77. package/dist/previews/config.js +2 -32
  78. package/dist/ralph/store.js +5 -0
  79. package/dist/reliability/store.js +378 -106
  80. package/dist/session-ui/terminalRows.js +8 -4
  81. package/dist/sessions/pibo-data-store.js +145 -0
  82. package/dist/sessions/store.js +42 -0
  83. package/dist/setup/cli.js +422 -6
  84. package/dist/setup/installation-profiles.js +464 -0
  85. package/dist/shared/deterministic-digest.js +94 -0
  86. package/dist/shared/trace-engine.js +54 -0
  87. package/dist/shared/trace-event-projection.js +124 -67
  88. package/dist/shared/trace-history.js +47 -12
  89. package/dist/shared/trace-live-reducer.js +23 -4
  90. package/dist/shared/trace-nodes.js +17 -28
  91. package/dist/shared/trace-order.js +41 -5
  92. package/dist/shared/trace-page-merge.js +44 -14
  93. package/dist/shared/trace-patch-nodes.js +2 -0
  94. package/dist/shared/trace-subagent-links.js +4 -1
  95. package/dist/shared/trace-tool-identity.js +15 -8
  96. package/dist/signals/projector.js +28 -6
  97. package/dist/subagents/observation-query.js +121 -0
  98. package/dist/subagents/tool.js +7 -3
  99. package/dist/tools/agent-browser-leases.js +58 -23
  100. package/dist/tools/agent-browser-wrapper.js +1 -1
  101. package/dist/tools/browser-use-leases.js +129 -16
  102. package/dist/tools/browser-use-wrapper.js +1 -1
  103. package/dist/tools/index.js +27 -11
  104. package/dist/tools/python-runtime.js +10 -3
  105. package/dist/tools/registry.js +1 -1
  106. package/dist/tools/runtime/node-backend.js +16 -5
  107. package/dist/tools/runtime/node-worker-source.js +112 -33
  108. package/dist/tools/runtime/python-backend.js +16 -5
  109. package/dist/tools/runtime/python-worker-source.js +167 -16
  110. package/dist/tools/runtime/registry.js +23 -10
  111. package/dist/user-skills/store.js +0 -1
  112. package/docs/ops/vscode-extension-release.md +9 -1
  113. package/npm-shrinkwrap.json +9 -2
  114. package/package.json +9 -2
  115. package/scripts/docker-entrypoint.sh +46 -0
  116. package/scripts/prepare-agent-browser-wrapper.sh +70 -0
  117. package/scripts/prepare-browser-use-wrapper.sh +255 -0
  118. package/dist/apps/chat-ui/assets/index-0XOOVxLP.js +0 -228
  119. package/dist/apps/chat-ui/assets/index-DV7_CgsC.css +0 -1
  120. package/dist/apps/chat-vscode-web/assets/index-Dtw2Z7jz.js +0 -43
  121. package/dist/apps/vscode-artifacts/latest.vsix +0 -0
  122. package/dist/apps/vscode-artifacts/pibo-vscode-ext-3.0.1.vsix +0 -0
@@ -58,7 +58,7 @@ export function chatStreamFramesFromOutputEvent(event, state, options = {}) {
58
58
  }
59
59
  break;
60
60
  case "tool_call":
61
- ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId);
61
+ ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId, event.toolInvocationOrdinal);
62
62
  frames.push({
63
63
  type: "TOOL_CALL_ARGS",
64
64
  toolCallId: event.toolCallId,
@@ -71,7 +71,7 @@ export function chatStreamFramesFromOutputEvent(event, state, options = {}) {
71
71
  });
72
72
  break;
73
73
  case "tool_execution_started": {
74
- const started = ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId);
74
+ const started = ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId, event.toolInvocationOrdinal);
75
75
  if (!started && event.intent) {
76
76
  frames.push({
77
77
  type: "TOOL_CALL_START",
@@ -85,7 +85,7 @@ export function chatStreamFramesFromOutputEvent(event, state, options = {}) {
85
85
  break;
86
86
  }
87
87
  case "tool_execution_updated":
88
- ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId);
88
+ ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, event.args, event.intent, eventId, event.toolInvocationOrdinal);
89
89
  frames.push({
90
90
  type: "TOOL_CALL_ARGS",
91
91
  toolCallId: event.toolCallId,
@@ -99,7 +99,7 @@ export function chatStreamFramesFromOutputEvent(event, state, options = {}) {
99
99
  });
100
100
  break;
101
101
  case "tool_execution_finished":
102
- ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, undefined, event.intent, eventId);
102
+ ensureToolCallStarted(frames, state, event.toolCallId, event.toolName, undefined, event.intent, eventId, event.toolInvocationOrdinal);
103
103
  frames.push({ type: "TOOL_CALL_RESULT", toolCallId: event.toolCallId, toolName: event.toolName, result: event.result, isError: event.isError, ...(event.intent ? { intent: event.intent } : {}), runId: eventId });
104
104
  break;
105
105
  case "subagent_session":
@@ -135,6 +135,14 @@ export function chatStreamFramesFromOutputEvent(event, state, options = {}) {
135
135
  }
136
136
  if (options.includeRawEvent ?? true)
137
137
  frames.push({ type: "RAW_EVENT", event });
138
+ if (event.renderSequence !== undefined) {
139
+ for (const frame of frames)
140
+ frame.renderSequence = event.renderSequence;
141
+ }
142
+ if (event.toolInvocationOrdinal !== undefined) {
143
+ for (const frame of frames)
144
+ frame.toolInvocationOrdinal = event.toolInvocationOrdinal;
145
+ }
138
146
  return frames;
139
147
  }
140
148
  function reasoningIdFromOutputEvent(event) {
@@ -162,10 +170,11 @@ function ensureReasoningStarted(frames, state, messageId, runId) {
162
170
  state.reasoningMessageIds.add(messageId);
163
171
  frames.push({ type: "REASONING_MESSAGE_START", messageId, runId });
164
172
  }
165
- function ensureToolCallStarted(frames, state, toolCallId, toolName, args, intent, runId) {
166
- if (state.toolCallIds.has(toolCallId))
173
+ function ensureToolCallStarted(frames, state, toolCallId, toolName, args, intent, runId, toolInvocationOrdinal) {
174
+ const invocationKey = JSON.stringify([runId ?? "", toolCallId, toolInvocationOrdinal ?? 0]);
175
+ if (state.toolCallIds.has(invocationKey))
167
176
  return false;
168
- state.toolCallIds.add(toolCallId);
177
+ state.toolCallIds.add(invocationKey);
169
178
  frames.push({ type: "TOOL_CALL_START", toolCallId, toolName, args, ...(intent ? { intent } : {}), runId });
170
179
  return true;
171
180
  }
@@ -255,6 +255,7 @@ function compactTraceNode(node, payloadStore, piboSessionId, depth) {
255
255
  payloadRefs: Object.keys(payloadRefs).length ? payloadRefs : undefined,
256
256
  linkedPiboSessionId: node.linkedPiboSessionId,
257
257
  toolCallId: node.toolCallId,
258
+ toolInvocationOrdinal: node.toolInvocationOrdinal,
258
259
  runId: node.runId,
259
260
  intent: node.intent,
260
261
  eventId: node.eventId,