@positronic/cli 0.0.77 → 0.0.78

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 (49) hide show
  1. package/dist/src/cli.js +298 -196
  2. package/dist/src/commands/server.js +2 -2
  3. package/dist/src/components/event-detail.js +139 -139
  4. package/dist/src/components/events-view.js +60 -63
  5. package/dist/src/components/watch-keyboard.js +1 -1
  6. package/dist/src/components/watch-machine.js +344 -286
  7. package/dist/src/components/watch.js +17 -84
  8. package/dist/types/cli.d.ts.map +1 -1
  9. package/dist/types/components/event-detail.d.ts.map +1 -1
  10. package/dist/types/components/events-view.d.ts.map +1 -1
  11. package/dist/types/components/watch-machine.d.ts +90 -146
  12. package/dist/types/components/watch-machine.d.ts.map +1 -1
  13. package/dist/types/components/watch.d.ts.map +1 -1
  14. package/dist/types/hooks/useBrainMachine.d.ts +0 -3
  15. package/dist/types/hooks/useBrainMachine.d.ts.map +1 -1
  16. package/package.json +4 -4
  17. package/dist/src/commands/auth.js +0 -91
  18. package/dist/src/commands/brain.js +0 -139
  19. package/dist/src/commands/pages.js +0 -47
  20. package/dist/src/commands/project.js +0 -130
  21. package/dist/src/commands/resources.js +0 -272
  22. package/dist/src/commands/schedule.js +0 -91
  23. package/dist/src/commands/secrets.js +0 -67
  24. package/dist/src/commands/store.js +0 -36
  25. package/dist/src/commands/users.js +0 -92
  26. package/dist/src/components/agent-chat-view.js +0 -125
  27. package/dist/src/utils/agent-utils.js +0 -107
  28. package/dist/types/commands/auth.d.ts +0 -32
  29. package/dist/types/commands/auth.d.ts.map +0 -1
  30. package/dist/types/commands/brain.d.ts +0 -46
  31. package/dist/types/commands/brain.d.ts.map +0 -1
  32. package/dist/types/commands/pages.d.ts +0 -15
  33. package/dist/types/commands/pages.d.ts.map +0 -1
  34. package/dist/types/commands/project.d.ts +0 -55
  35. package/dist/types/commands/project.d.ts.map +0 -1
  36. package/dist/types/commands/resources.d.ts +0 -13
  37. package/dist/types/commands/resources.d.ts.map +0 -1
  38. package/dist/types/commands/schedule.d.ts +0 -33
  39. package/dist/types/commands/schedule.d.ts.map +0 -1
  40. package/dist/types/commands/secrets.d.ts +0 -20
  41. package/dist/types/commands/secrets.d.ts.map +0 -1
  42. package/dist/types/commands/store.d.ts +0 -5
  43. package/dist/types/commands/store.d.ts.map +0 -1
  44. package/dist/types/commands/users.d.ts +0 -34
  45. package/dist/types/commands/users.d.ts.map +0 -1
  46. package/dist/types/components/agent-chat-view.d.ts +0 -12
  47. package/dist/types/components/agent-chat-view.d.ts.map +0 -1
  48. package/dist/types/utils/agent-utils.d.ts +0 -20
  49. package/dist/types/utils/agent-utils.d.ts.map +0 -1
@@ -274,7 +274,7 @@ export var ServerCommand = /*#__PURE__*/ function() {
274
274
  }
275
275
  // Write PID file for foreground process too
276
276
  fs.writeFileSync(pidFile, String(process.pid));
277
- brainsDir = path.join(this.server.projectRootDir, 'brains');
277
+ brainsDir = path.join(this.server.projectRootDir, 'src', 'brains');
278
278
  resourcesDir = path.join(this.server.projectRootDir, 'resources');
279
279
  serverHandle = null;
280
280
  watcher = null;
@@ -443,7 +443,7 @@ export var ServerCommand = /*#__PURE__*/ function() {
443
443
  // Watcher setup - target the user's brains, resources directories, and .env file
444
444
  envFilePath = path.join(this.server.projectRootDir, '.env');
445
445
  watchPaths = [
446
- path.join(brainsDir, '*.ts'),
446
+ path.join(brainsDir, '**/*.{ts,tsx}'),
447
447
  path.join(resourcesDir, '**/*'),
448
448
  envFilePath
449
449
  ];
@@ -34,10 +34,6 @@ function formatFullTimestamp(timestamp) {
34
34
  hour12: false
35
35
  });
36
36
  }
37
- function formatValue(value) {
38
- if (typeof value === 'string') return value;
39
- return JSON.stringify(value, null, 2);
40
- }
41
37
  function getStatusIcon(status) {
42
38
  switch(status){
43
39
  case 'complete':
@@ -99,74 +95,79 @@ function getEventSymbol(event) {
99
95
  symbol: '[<]',
100
96
  color: 'cyan'
101
97
  };
102
- case BRAIN_EVENTS.AGENT_START:
98
+ case BRAIN_EVENTS.PAUSED:
103
99
  return {
104
- symbol: '[A]',
105
- color: 'yellow'
100
+ symbol: '[||]',
101
+ color: 'cyan'
102
+ };
103
+ case BRAIN_EVENTS.RESUMED:
104
+ return {
105
+ symbol: '[>]',
106
+ color: 'green'
107
+ };
108
+ case BRAIN_EVENTS.ITERATE_ITEM_COMPLETE:
109
+ return {
110
+ symbol: '[i]',
111
+ color: 'green'
112
+ };
113
+ case BRAIN_EVENTS.FILE_WRITE_START:
114
+ return {
115
+ symbol: '[↑]',
116
+ color: 'blue'
117
+ };
118
+ case BRAIN_EVENTS.FILE_WRITE_COMPLETE:
119
+ return {
120
+ symbol: '[✓]',
121
+ color: 'green'
106
122
  };
107
- case BRAIN_EVENTS.AGENT_ITERATION:
123
+ case BRAIN_EVENTS.PROMPT_START:
124
+ return {
125
+ symbol: '[P]',
126
+ color: 'magenta'
127
+ };
128
+ case BRAIN_EVENTS.PROMPT_ITERATION:
108
129
  return {
109
130
  symbol: '[#]',
110
131
  color: 'gray'
111
132
  };
112
- case BRAIN_EVENTS.AGENT_TOOL_CALL:
133
+ case BRAIN_EVENTS.PROMPT_TOOL_CALL:
113
134
  return {
114
- symbol: '[T]',
115
- color: 'white'
135
+ symbol: '[]',
136
+ color: 'yellow'
116
137
  };
117
- case BRAIN_EVENTS.AGENT_TOOL_RESULT:
138
+ case BRAIN_EVENTS.PROMPT_TOOL_RESULT:
118
139
  return {
119
- symbol: '[R]',
120
- color: 'white'
140
+ symbol: '[]',
141
+ color: 'green'
121
142
  };
122
- case BRAIN_EVENTS.AGENT_ASSISTANT_MESSAGE:
143
+ case BRAIN_EVENTS.PROMPT_ASSISTANT_MESSAGE:
123
144
  return {
124
145
  symbol: '[M]',
125
146
  color: 'white'
126
147
  };
127
- case BRAIN_EVENTS.AGENT_COMPLETE:
148
+ case BRAIN_EVENTS.PROMPT_COMPLETE:
128
149
  return {
129
- symbol: '[A]',
150
+ symbol: '[P]',
130
151
  color: 'green'
131
152
  };
132
- case BRAIN_EVENTS.AGENT_TOKEN_LIMIT:
153
+ case BRAIN_EVENTS.PROMPT_TOKEN_LIMIT:
133
154
  return {
134
155
  symbol: '[!]',
135
156
  color: 'red'
136
157
  };
137
- case BRAIN_EVENTS.AGENT_ITERATION_LIMIT:
158
+ case BRAIN_EVENTS.PROMPT_ITERATION_LIMIT:
138
159
  return {
139
160
  symbol: '[!]',
140
161
  color: 'red'
141
162
  };
142
- case BRAIN_EVENTS.AGENT_WEBHOOK:
143
- return {
144
- symbol: '[W]',
145
- color: 'cyan'
146
- };
147
- case BRAIN_EVENTS.AGENT_RAW_RESPONSE_MESSAGE:
163
+ case BRAIN_EVENTS.PROMPT_RAW_RESPONSE_MESSAGE:
148
164
  return {
149
165
  symbol: '[~]',
150
166
  color: 'gray'
151
167
  };
152
- case BRAIN_EVENTS.PAUSED:
153
- return {
154
- symbol: '[||]',
155
- color: 'cyan'
156
- };
157
- case BRAIN_EVENTS.RESUMED:
158
- return {
159
- symbol: '[>]',
160
- color: 'green'
161
- };
162
- case BRAIN_EVENTS.ITERATE_ITEM_COMPLETE:
163
- return {
164
- symbol: '[i]',
165
- color: 'green'
166
- };
167
- case BRAIN_EVENTS.AGENT_USER_MESSAGE:
168
+ case BRAIN_EVENTS.PROMPT_WEBHOOK:
168
169
  return {
169
- symbol: '[U]',
170
+ symbol: '[W]',
170
171
  color: 'cyan'
171
172
  };
172
173
  default:
@@ -178,24 +179,6 @@ function getEventSymbol(event) {
178
179
  }
179
180
  function getEventDetailContent(event) {
180
181
  switch(event.type){
181
- case BRAIN_EVENTS.AGENT_TOOL_CALL:
182
- return [
183
- "Tool: ".concat(event.toolName),
184
- "Tool Call ID: ".concat(event.toolCallId),
185
- "Step: ".concat(event.stepTitle),
186
- '',
187
- 'Input:',
188
- JSON.stringify(event.input, null, 2)
189
- ].join('\n');
190
- case BRAIN_EVENTS.AGENT_TOOL_RESULT:
191
- return [
192
- "Tool: ".concat(event.toolName),
193
- "Tool Call ID: ".concat(event.toolCallId),
194
- "Step: ".concat(event.stepTitle),
195
- '',
196
- 'Result:',
197
- formatValue(event.result)
198
- ].join('\n');
199
182
  case BRAIN_EVENTS.ERROR:
200
183
  return [
201
184
  "Brain: ".concat(event.brainTitle),
@@ -206,23 +189,6 @@ function getEventDetailContent(event) {
206
189
  'Stack Trace:',
207
190
  event.error.stack || '(no stack trace)'
208
191
  ].join('\n');
209
- case BRAIN_EVENTS.AGENT_COMPLETE:
210
- return [
211
- "Step: ".concat(event.stepTitle),
212
- "Terminal Tool: ".concat(event.terminalToolName),
213
- "Total Iterations: ".concat(event.totalIterations),
214
- "Total Tokens: ".concat(event.totalTokens.toLocaleString()),
215
- '',
216
- 'Result:',
217
- JSON.stringify(event.result, null, 2)
218
- ].join('\n');
219
- case BRAIN_EVENTS.AGENT_ITERATION:
220
- return [
221
- "Step: ".concat(event.stepTitle),
222
- "Iteration: ".concat(event.iteration),
223
- "Tokens This Iteration: ".concat(event.tokensThisIteration.toLocaleString()),
224
- "Total Tokens So Far: ".concat(event.totalTokens.toLocaleString())
225
- ].join('\n');
226
192
  case BRAIN_EVENTS.STEP_COMPLETE:
227
193
  return [
228
194
  "Step: ".concat(event.stepTitle),
@@ -231,25 +197,6 @@ function getEventDetailContent(event) {
231
197
  'State Patch:',
232
198
  JSON.stringify(event.patch, null, 2)
233
199
  ].join('\n');
234
- case BRAIN_EVENTS.AGENT_START:
235
- return [
236
- "Step: ".concat(event.stepTitle),
237
- "Step ID: ".concat(event.stepId),
238
- '',
239
- 'Tools:'
240
- ].concat(_to_consumable_array(event.tools && event.tools.length > 0 ? event.tools.map(function(t) {
241
- return " • ".concat(t);
242
- }) : [
243
- ' (none)'
244
- ]), [
245
- '',
246
- 'Prompt:',
247
- event.prompt
248
- ], _to_consumable_array(event.system ? [
249
- '',
250
- 'System Prompt:',
251
- event.system
252
- ] : [])).join('\n');
253
200
  case BRAIN_EVENTS.START:
254
201
  return [
255
202
  "Brain: ".concat(event.brainTitle)
@@ -261,36 +208,12 @@ function getEventDetailContent(event) {
261
208
  'Options:',
262
209
  JSON.stringify(event.options, null, 2)
263
210
  ]).join('\n');
264
- case BRAIN_EVENTS.AGENT_TOKEN_LIMIT:
265
- return [
266
- "Step: ".concat(event.stepTitle),
267
- "Total Tokens: ".concat(event.totalTokens.toLocaleString()),
268
- "Max Tokens: ".concat(event.maxTokens.toLocaleString()),
269
- '',
270
- 'Token limit exceeded. Agent stopped.'
271
- ].join('\n');
272
- case BRAIN_EVENTS.AGENT_ITERATION_LIMIT:
273
- return [
274
- "Step: ".concat(event.stepTitle),
275
- "Iteration: ".concat(event.iteration),
276
- "Max Iterations: ".concat(event.maxIterations),
277
- "Total Tokens: ".concat(event.totalTokens.toLocaleString()),
278
- '',
279
- 'Iteration limit reached. Agent stopped.'
280
- ].join('\n');
281
211
  case BRAIN_EVENTS.STEP_STATUS:
282
212
  return [
283
213
  'Steps:'
284
214
  ].concat(_to_consumable_array(event.steps.map(function(s) {
285
215
  return " ".concat(getStatusIcon(s.status), " ").concat(s.title);
286
216
  }))).join('\n');
287
- case BRAIN_EVENTS.AGENT_ASSISTANT_MESSAGE:
288
- return [
289
- "Step: ".concat(event.stepTitle),
290
- '',
291
- 'Message:',
292
- event.content
293
- ].join('\n');
294
217
  case BRAIN_EVENTS.STEP_START:
295
218
  return [
296
219
  "Step: ".concat(event.stepTitle),
@@ -320,22 +243,6 @@ function getEventDetailContent(event) {
320
243
  'Webhook Response:',
321
244
  JSON.stringify(event.response, null, 2)
322
245
  ].join('\n');
323
- case BRAIN_EVENTS.AGENT_WEBHOOK:
324
- return [
325
- "Step: ".concat(event.stepTitle),
326
- "Tool: ".concat(event.toolName),
327
- "Tool Call ID: ".concat(event.toolCallId),
328
- '',
329
- 'Agent waiting for webhook response...'
330
- ].join('\n');
331
- case BRAIN_EVENTS.AGENT_RAW_RESPONSE_MESSAGE:
332
- return [
333
- "Step: ".concat(event.stepTitle),
334
- "Iteration: ".concat(event.iteration),
335
- '',
336
- 'Raw Response Message:',
337
- JSON.stringify(event.message, null, 2)
338
- ].join('\n');
339
246
  case BRAIN_EVENTS.PAUSED:
340
247
  return [
341
248
  "Brain: ".concat(event.brainTitle),
@@ -353,7 +260,7 @@ function getEventDetailContent(event) {
353
260
  "Step: ".concat(event.stepTitle),
354
261
  "Progress: ".concat(event.processedCount, "/").concat(event.totalItems),
355
262
  "Item Index: ".concat(event.itemIndex),
356
- "Schema: ".concat(event.schemaName),
263
+ "State Key: ".concat(event.stateKey),
357
264
  '',
358
265
  'Item:',
359
266
  JSON.stringify(event.item, null, 2),
@@ -361,13 +268,106 @@ function getEventDetailContent(event) {
361
268
  'Result:',
362
269
  JSON.stringify(event.result, null, 2)
363
270
  ].join('\n');
364
- case BRAIN_EVENTS.AGENT_USER_MESSAGE:
271
+ case BRAIN_EVENTS.FILE_WRITE_START:
272
+ return [
273
+ "File: ".concat(event.fileName),
274
+ "Step: ".concat(event.stepTitle)
275
+ ].join('\n');
276
+ case BRAIN_EVENTS.FILE_WRITE_COMPLETE:
277
+ return [
278
+ "File: ".concat(event.fileName),
279
+ "Step: ".concat(event.stepTitle)
280
+ ].join('\n');
281
+ case BRAIN_EVENTS.PROMPT_START:
365
282
  return [
366
283
  "Step: ".concat(event.stepTitle),
367
284
  "Step ID: ".concat(event.stepId),
368
285
  '',
286
+ "Prompt: ".concat(event.prompt)
287
+ ].concat(_to_consumable_array(event.system ? [
288
+ "System: ".concat(event.system)
289
+ ] : []), [
290
+ '',
291
+ "Tools: ".concat(event.tools.join(', '))
292
+ ]).join('\n');
293
+ case BRAIN_EVENTS.PROMPT_ITERATION:
294
+ return [
295
+ "Step: ".concat(event.stepTitle),
296
+ "Iteration: ".concat(event.iteration),
297
+ "Tokens this iteration: ".concat(event.tokensThisIteration),
298
+ "Total tokens: ".concat(event.totalTokens)
299
+ ].join('\n');
300
+ case BRAIN_EVENTS.PROMPT_TOOL_CALL:
301
+ return [
302
+ "Step: ".concat(event.stepTitle),
303
+ "Tool: ".concat(event.toolName),
304
+ "Call ID: ".concat(event.toolCallId),
305
+ "Iteration: ".concat(event.iteration),
306
+ '',
307
+ 'Input:',
308
+ JSON.stringify(event.input, null, 2)
309
+ ].join('\n');
310
+ case BRAIN_EVENTS.PROMPT_TOOL_RESULT:
311
+ return [
312
+ "Step: ".concat(event.stepTitle),
313
+ "Tool: ".concat(event.toolName),
314
+ "Call ID: ".concat(event.toolCallId),
315
+ "Iteration: ".concat(event.iteration)
316
+ ].concat(_to_consumable_array(event.status ? [
317
+ "Status: ".concat(event.status)
318
+ ] : []), [
319
+ '',
320
+ 'Result:',
321
+ JSON.stringify(event.result, null, 2)
322
+ ]).join('\n');
323
+ case BRAIN_EVENTS.PROMPT_ASSISTANT_MESSAGE:
324
+ return [
325
+ "Step: ".concat(event.stepTitle),
326
+ "Iteration: ".concat(event.iteration),
327
+ '',
369
328
  'Message:',
370
- event.content
329
+ event.text
330
+ ].join('\n');
331
+ case BRAIN_EVENTS.PROMPT_COMPLETE:
332
+ return [
333
+ "Step: ".concat(event.stepTitle)
334
+ ].concat(_to_consumable_array(event.terminalTool ? [
335
+ "Terminal tool: ".concat(event.terminalTool)
336
+ ] : []), [
337
+ "Total iterations: ".concat(event.totalIterations),
338
+ "Total tokens: ".concat(event.totalTokens),
339
+ '',
340
+ 'Result:',
341
+ JSON.stringify(event.result, null, 2)
342
+ ]).join('\n');
343
+ case BRAIN_EVENTS.PROMPT_TOKEN_LIMIT:
344
+ return [
345
+ "Step: ".concat(event.stepTitle),
346
+ "Total tokens: ".concat(event.totalTokens),
347
+ "Max tokens: ".concat(event.maxTokens)
348
+ ].join('\n');
349
+ case BRAIN_EVENTS.PROMPT_ITERATION_LIMIT:
350
+ return [
351
+ "Step: ".concat(event.stepTitle),
352
+ "Total iterations: ".concat(event.totalIterations),
353
+ "Max iterations: ".concat(event.maxIterations)
354
+ ].join('\n');
355
+ case BRAIN_EVENTS.PROMPT_RAW_RESPONSE_MESSAGE:
356
+ return [
357
+ "Step: ".concat(event.stepTitle),
358
+ "Iteration: ".concat(event.iteration),
359
+ '',
360
+ 'Raw Response:',
361
+ JSON.stringify(event.message, null, 2)
362
+ ].join('\n');
363
+ case BRAIN_EVENTS.PROMPT_WEBHOOK:
364
+ return [
365
+ "Step: ".concat(event.stepTitle),
366
+ "Tool: ".concat(event.toolName),
367
+ "Call ID: ".concat(event.toolCallId),
368
+ '',
369
+ 'Input:',
370
+ JSON.stringify(event.input, null, 2)
371
371
  ].join('\n');
372
372
  default:
373
373
  // Show all fields for any event type
@@ -65,11 +65,6 @@ function formatTimestamp(timestamp) {
65
65
  var mins = minutes % 60;
66
66
  return mins > 0 ? "".concat(hours, "h ").concat(mins, "m ago") : "".concat(hours, "h ago");
67
67
  }
68
- // Truncate text to a max length
69
- function truncate(text, maxLength) {
70
- if (text.length <= maxLength) return text;
71
- return text.slice(0, maxLength - 3) + '...';
72
- }
73
68
  // Format event for display
74
69
  function formatEvent(event) {
75
70
  switch(event.type){
@@ -127,92 +122,94 @@ function formatEvent(event) {
127
122
  text: "Webhook response received",
128
123
  color: 'cyan'
129
124
  };
130
- case BRAIN_EVENTS.AGENT_START:
125
+ case BRAIN_EVENTS.PAUSED:
131
126
  return {
132
- symbol: '[A]',
133
- text: 'Agent started: "'.concat(event.stepTitle, '"'),
134
- color: 'yellow'
127
+ symbol: '[||]',
128
+ text: 'Brain paused: "'.concat(event.brainTitle, '"'),
129
+ color: 'cyan'
130
+ };
131
+ case BRAIN_EVENTS.RESUMED:
132
+ return {
133
+ symbol: '[>]',
134
+ text: 'Brain resumed: "'.concat(event.brainTitle, '"'),
135
+ color: 'green'
136
+ };
137
+ case BRAIN_EVENTS.ITERATE_ITEM_COMPLETE:
138
+ return {
139
+ symbol: '[i]',
140
+ text: "Item ".concat(event.processedCount, "/").concat(event.totalItems, ' complete: "').concat(event.stepTitle, '"'),
141
+ color: 'green'
142
+ };
143
+ case BRAIN_EVENTS.FILE_WRITE_START:
144
+ return {
145
+ symbol: '[↑]',
146
+ text: "Writing: ".concat(event.fileName),
147
+ color: 'blue'
148
+ };
149
+ case BRAIN_EVENTS.FILE_WRITE_COMPLETE:
150
+ return {
151
+ symbol: '[✓]',
152
+ text: "Written: ".concat(event.fileName),
153
+ color: 'green'
154
+ };
155
+ case BRAIN_EVENTS.PROMPT_START:
156
+ return {
157
+ symbol: '[P]',
158
+ text: 'Prompt loop started: "'.concat(event.stepTitle, '"'),
159
+ color: 'magenta'
135
160
  };
136
- case BRAIN_EVENTS.AGENT_ITERATION:
161
+ case BRAIN_EVENTS.PROMPT_ITERATION:
137
162
  return {
138
163
  symbol: '[#]',
139
- text: "Agent iteration ".concat(event.iteration),
140
- color: 'gray',
141
- tokens: event.tokensThisIteration
164
+ text: "Iteration ".concat(event.iteration, " (").concat(event.totalTokens, " tokens)"),
165
+ color: 'gray'
142
166
  };
143
- case BRAIN_EVENTS.AGENT_TOOL_CALL:
167
+ case BRAIN_EVENTS.PROMPT_TOOL_CALL:
144
168
  return {
145
- symbol: '[T]',
169
+ symbol: '[]',
146
170
  text: "Tool call: ".concat(event.toolName),
147
- color: 'white'
171
+ color: 'yellow'
148
172
  };
149
- case BRAIN_EVENTS.AGENT_TOOL_RESULT:
173
+ case BRAIN_EVENTS.PROMPT_TOOL_RESULT:
150
174
  return {
151
- symbol: '[R]',
175
+ symbol: '[]',
152
176
  text: "Tool result: ".concat(event.toolName),
153
- color: 'white'
177
+ color: 'green'
154
178
  };
155
- case BRAIN_EVENTS.AGENT_ASSISTANT_MESSAGE:
179
+ case BRAIN_EVENTS.PROMPT_ASSISTANT_MESSAGE:
156
180
  return {
157
181
  symbol: '[M]',
158
- text: "Assistant: ".concat(truncate(event.content, 50)),
182
+ text: "Assistant: ".concat(event.text.slice(0, 80)).concat(event.text.length > 80 ? '...' : ''),
159
183
  color: 'white'
160
184
  };
161
- case BRAIN_EVENTS.AGENT_COMPLETE:
185
+ case BRAIN_EVENTS.PROMPT_COMPLETE:
162
186
  return {
163
- symbol: '[A]',
164
- text: 'Agent completed: "'.concat(event.terminalToolName, '" (').concat(event.totalIterations, " iter)"),
165
- color: 'green',
166
- tokens: event.totalTokens
187
+ symbol: '[P]',
188
+ text: "Prompt complete (".concat(event.totalIterations, " iterations, ").concat(event.totalTokens, " tokens)"),
189
+ color: 'green'
167
190
  };
168
- case BRAIN_EVENTS.AGENT_TOKEN_LIMIT:
191
+ case BRAIN_EVENTS.PROMPT_TOKEN_LIMIT:
169
192
  return {
170
193
  symbol: '[!]',
171
- text: "Token limit reached: ".concat(event.totalTokens, "/").concat(event.maxTokens),
172
- color: 'red',
173
- tokens: event.totalTokens
194
+ text: "Token limit reached (".concat(event.totalTokens, "/").concat(event.maxTokens, ")"),
195
+ color: 'red'
174
196
  };
175
- case BRAIN_EVENTS.AGENT_ITERATION_LIMIT:
197
+ case BRAIN_EVENTS.PROMPT_ITERATION_LIMIT:
176
198
  return {
177
199
  symbol: '[!]',
178
- text: "Iteration limit reached: ".concat(event.iteration, "/").concat(event.maxIterations),
179
- color: 'red',
180
- tokens: event.totalTokens
181
- };
182
- case BRAIN_EVENTS.AGENT_WEBHOOK:
183
- return {
184
- symbol: '[W]',
185
- text: "Agent webhook: ".concat(event.toolName),
186
- color: 'cyan'
200
+ text: "Iteration limit reached (".concat(event.totalIterations, "/").concat(event.maxIterations, ")"),
201
+ color: 'red'
187
202
  };
188
- case BRAIN_EVENTS.AGENT_RAW_RESPONSE_MESSAGE:
203
+ case BRAIN_EVENTS.PROMPT_RAW_RESPONSE_MESSAGE:
189
204
  return {
190
205
  symbol: '[~]',
191
- text: "Agent response (iteration ".concat(event.iteration, ")"),
206
+ text: "Raw response (iteration ".concat(event.iteration, ")"),
192
207
  color: 'gray'
193
208
  };
194
- case BRAIN_EVENTS.PAUSED:
195
- return {
196
- symbol: '[||]',
197
- text: 'Brain paused: "'.concat(event.brainTitle, '"'),
198
- color: 'cyan'
199
- };
200
- case BRAIN_EVENTS.RESUMED:
201
- return {
202
- symbol: '[>]',
203
- text: 'Brain resumed: "'.concat(event.brainTitle, '"'),
204
- color: 'green'
205
- };
206
- case BRAIN_EVENTS.ITERATE_ITEM_COMPLETE:
209
+ case BRAIN_EVENTS.PROMPT_WEBHOOK:
207
210
  return {
208
- symbol: '[i]',
209
- text: "Item ".concat(event.processedCount, "/").concat(event.totalItems, ' complete: "').concat(event.stepTitle, '"'),
210
- color: 'green'
211
- };
212
- case BRAIN_EVENTS.AGENT_USER_MESSAGE:
213
- return {
214
- symbol: '[U]',
215
- text: 'User message: "'.concat(truncate(event.content, 50), '"'),
211
+ symbol: '[W]',
212
+ text: 'Tool "'.concat(event.toolName, '" waiting for webhook'),
216
213
  color: 'cyan'
217
214
  };
218
215
  default:
@@ -36,7 +36,7 @@
36
36
  return null;
37
37
  case 'agent-chat':
38
38
  // Agent chat view: 'b' or escape goes back to previous view
39
- // j/k scrolling is handled by AgentChatView component
39
+ // j/k scrolling is handled by the chat view component
40
40
  if (input === 'b' || key.escape) {
41
41
  return {
42
42
  type: 'GO_BACK'