joonecli 0.2.3 → 0.2.5

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 (58) hide show
  1. package/README.md +20 -2
  2. package/dist/cli/index.js +12 -62
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/desktop/cliEntry.d.ts +1 -0
  5. package/dist/desktop/cliEntry.js +18 -0
  6. package/dist/desktop/cliEntry.js.map +1 -0
  7. package/dist/desktop/devServer.d.ts +1 -0
  8. package/dist/desktop/devServer.js +12 -0
  9. package/dist/desktop/devServer.js.map +1 -0
  10. package/dist/desktop/ipc.d.ts +14 -0
  11. package/dist/desktop/ipc.js +46 -0
  12. package/dist/desktop/ipc.js.map +1 -0
  13. package/dist/desktop/npmCli.d.ts +1 -0
  14. package/dist/desktop/npmCli.js +18 -0
  15. package/dist/desktop/npmCli.js.map +1 -0
  16. package/dist/desktop/providerCatalog.d.ts +11 -0
  17. package/dist/desktop/providerCatalog.js +64 -0
  18. package/dist/desktop/providerCatalog.js.map +1 -0
  19. package/dist/desktop/pruneReleaseAssets.d.ts +10 -0
  20. package/dist/desktop/pruneReleaseAssets.js +48 -0
  21. package/dist/desktop/pruneReleaseAssets.js.map +1 -0
  22. package/dist/desktop/publishReleaseAssets.d.ts +12 -0
  23. package/dist/desktop/publishReleaseAssets.js +49 -0
  24. package/dist/desktop/publishReleaseAssets.js.map +1 -0
  25. package/dist/desktop/releaseMetadata.d.ts +12 -0
  26. package/dist/desktop/releaseMetadata.js +54 -0
  27. package/dist/desktop/releaseMetadata.js.map +1 -0
  28. package/dist/desktop/server.d.ts +22 -0
  29. package/dist/desktop/server.js +100 -0
  30. package/dist/desktop/server.js.map +1 -0
  31. package/dist/desktop/smokeTestBundles.d.ts +10 -0
  32. package/dist/desktop/smokeTestBundles.js +108 -0
  33. package/dist/desktop/smokeTestBundles.js.map +1 -0
  34. package/dist/desktop/validateBundles.d.ts +8 -0
  35. package/dist/desktop/validateBundles.js +52 -0
  36. package/dist/desktop/validateBundles.js.map +1 -0
  37. package/dist/desktop/webDev.d.ts +1 -0
  38. package/dist/desktop/webDev.js +32 -0
  39. package/dist/desktop/webDev.js.map +1 -0
  40. package/dist/runtime/service.d.ts +44 -0
  41. package/dist/runtime/service.js +416 -0
  42. package/dist/runtime/service.js.map +1 -0
  43. package/dist/runtime/types.d.ts +110 -0
  44. package/dist/runtime/types.js +2 -0
  45. package/dist/runtime/types.js.map +1 -0
  46. package/dist/ui/App.d.ts +4 -2
  47. package/dist/ui/App.js +178 -33
  48. package/dist/ui/App.js.map +1 -1
  49. package/dist/ui/components/HITLPrompt.d.ts +1 -0
  50. package/dist/ui/components/HITLPrompt.js +3 -3
  51. package/dist/ui/components/HITLPrompt.js.map +1 -1
  52. package/dist/ui/components/ToolCallPanel.d.ts +0 -5
  53. package/dist/ui/components/ToolCallPanel.js +33 -11
  54. package/dist/ui/components/ToolCallPanel.js.map +1 -1
  55. package/dist/ui/components/WorkflowTodoPanel.d.ts +13 -0
  56. package/dist/ui/components/WorkflowTodoPanel.js +35 -0
  57. package/dist/ui/components/WorkflowTodoPanel.js.map +1 -0
  58. package/package.json +12 -1
package/dist/ui/App.js CHANGED
@@ -9,13 +9,12 @@ import { StreamingText } from "./components/StreamingText.js";
9
9
  import { ToolCallPanel } from "./components/ToolCallPanel.js";
10
10
  import { HITLPrompt } from "./components/HITLPrompt.js";
11
11
  import { FileBrowser } from "./components/FileBrowser.js";
12
+ import { WorkflowTodoPanel, } from "./components/WorkflowTodoPanel.js";
12
13
  import { countMessageTokens } from "../core/tokenCounter.js";
13
14
  import { getProviderContextLimit } from "../core/contextGuard.js";
14
- import { HumanMessage } from "@langchain/core/messages";
15
- import { Command } from "@langchain/langgraph";
16
15
  import { HITLBridge, } from "../hitl/bridge.js";
17
16
  import { createDefaultRegistry } from "../commands/builtinCommands.js";
18
- export const App = ({ provider, model, streaming, createHarness, initialState, maxTokens, benchmarkStartup = false, onStartupBenchmarkMark, onStartupBenchmarkComplete, }) => {
17
+ export const App = ({ provider, model, streaming, createHarness, initialState, maxTokens, onStateChange, benchmarkStartup = false, onStartupBenchmarkMark, onStartupBenchmarkComplete, }) => {
19
18
  const { exit } = useApp();
20
19
  const contextTokensLimit = useMemo(() => getProviderContextLimit(provider, model), [provider, model]);
21
20
  // Slash Command Registry — initialized once, stable across renders
@@ -30,27 +29,41 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
30
29
  const [streamingTokens, setStreamingTokens] = useState([]);
31
30
  const [isStreaming, setIsStreaming] = useState(false);
32
31
  const [activeToolCall, setActiveToolCall] = useState(null);
32
+ const [recentToolCalls, setRecentToolCalls] = useState([]);
33
+ const [workflowTodos, setWorkflowTodos] = useState([]);
34
+ const toolRunCounterRef = React.useRef(0);
33
35
  // Core Engine State
34
36
  const [contextState, setContextState] = useState(initialState);
35
37
  const [harness, setHarness] = useState(null);
36
38
  const [isInitializingHarness, setIsInitializingHarness] = useState(false);
37
39
  const harnessPromiseRef = React.useRef(null);
38
40
  // HITL State
39
- const [hitlQuestion, setHitlQuestion] = useState(undefined);
40
- const [hitlPermission, setHitlPermission] = useState(undefined);
41
+ const [pendingHitlPrompts, setPendingHitlPrompts] = useState([]);
41
42
  // Listen for HITL events from the bridge
42
43
  useEffect(() => {
43
44
  const bridge = HITLBridge.getInstance();
44
- const onQuestion = (q) => setHitlQuestion(q);
45
- const onPermission = (p) => setHitlPermission(p);
45
+ const onQuestion = (question) => {
46
+ setPendingHitlPrompts((prev) => [
47
+ ...prev,
48
+ { id: question.id, type: "question", question },
49
+ ]);
50
+ setWorkflowTodos((prev) => updateWorkflowTodo(prev, "tools", "blocked", "Waiting for your answer before continuing."));
51
+ };
52
+ const onPermission = (permission) => {
53
+ setPendingHitlPrompts((prev) => [
54
+ ...prev,
55
+ { id: permission.id, type: "permission", permission },
56
+ ]);
57
+ setWorkflowTodos((prev) => updateWorkflowTodo(prev, "tools", "blocked", `Waiting for approval to run ${permission.toolName}.`));
58
+ };
46
59
  bridge.on("question", onQuestion);
47
60
  bridge.on("permission", onPermission);
48
61
  // Clear prompts when resolved
49
62
  const origResolve = bridge.resolveAnswer.bind(bridge);
50
63
  bridge.resolveAnswer = (id, answer) => {
51
64
  origResolve(id, answer);
52
- setHitlQuestion(undefined);
53
- setHitlPermission(undefined);
65
+ setPendingHitlPrompts((prev) => prev.filter((prompt) => prompt.id !== id));
66
+ setWorkflowTodos((prev) => updateWorkflowTodo(prev, "tools", "active", "Continuing after your input."));
54
67
  };
55
68
  return () => {
56
69
  bridge.off("question", onQuestion);
@@ -63,17 +76,14 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
63
76
  return;
64
77
  }
65
78
  const handleEvent = (event) => {
66
- // Ignore text streams so we don't spam the action log
67
- if (event.type === "agent:stream")
79
+ // Streaming tokens and tool calls have dedicated UI panels.
80
+ if (event.type === "agent:stream" ||
81
+ event.type === "tool:start" ||
82
+ event.type === "tool:end") {
68
83
  return;
84
+ }
69
85
  let content = "";
70
86
  switch (event.type) {
71
- case "tool:start":
72
- content = `[Tool] Starting ${event.toolName}`;
73
- break;
74
- case "tool:end":
75
- content = `[Tool] ${event.toolName} completed in ${event.durationMs}ms`;
76
- break;
77
87
  case "subagent:spawn":
78
88
  content = `[SubAgent] Spawning '${event.agentName}'`;
79
89
  break;
@@ -121,7 +131,8 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
121
131
  const stateRef = React.useRef(contextState);
122
132
  useEffect(() => {
123
133
  stateRef.current = contextState;
124
- }, [contextState]);
134
+ onStateChange?.(contextState);
135
+ }, [contextState, onStateChange]);
125
136
  const performGracefulExit = async () => {
126
137
  try {
127
138
  if (harness) {
@@ -136,7 +147,6 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
136
147
  }
137
148
  finally {
138
149
  exit();
139
- process.exit(0);
140
150
  }
141
151
  };
142
152
  useEffect(() => {
@@ -219,6 +229,7 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
219
229
  if (event.event === "on_chat_model_stream" &&
220
230
  event.data?.chunk?.content) {
221
231
  setStreamingTokens((prev) => [...prev, event.data.chunk.content]);
232
+ setWorkflowTodos((prev) => updateWorkflowTodo(prev, "response", "active", "Drafting the reply."));
222
233
  }
223
234
  else if (event.event === "on_chat_model_end") {
224
235
  const content = event.data.output?.content;
@@ -228,20 +239,27 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
228
239
  }
229
240
  }
230
241
  else if (event.event === "on_tool_start") {
231
- setActiveToolCall({
242
+ const toolCall = {
243
+ id: `${event.name}-${toolRunCounterRef.current++}`,
232
244
  name: event.name,
233
245
  args: event.data.input,
234
246
  status: "running",
235
- });
247
+ };
248
+ setActiveToolCall(toolCall);
249
+ setRecentToolCalls((prev) => [toolCall, ...prev].slice(0, 4));
250
+ setWorkflowTodos((prev) => updateWorkflowTodo(prev, "tools", "active", `Running ${event.name}.`));
236
251
  }
237
252
  else if (event.event === "on_tool_end") {
238
- // Note: we don't display the full tool output as result since it can be massive.
239
- setActiveToolCall({
240
- name: event.name,
241
- args: event.data.input,
242
- status: "success",
243
- result: "Tool execution completed.",
244
- });
253
+ const toolResult = summarizeToolResult(event.data.output);
254
+ setActiveToolCall((prev) => prev
255
+ ? {
256
+ ...prev,
257
+ status: "success",
258
+ result: toolResult,
259
+ }
260
+ : null);
261
+ setRecentToolCalls((prev) => finalizeRecentToolCalls(prev, event.name, event.data.input, toolResult));
262
+ setWorkflowTodos((prev) => updateWorkflowTodo(prev, "tools", "done", `${event.name} completed.`));
245
263
  await new Promise((resolve) => setTimeout(resolve, 800));
246
264
  setActiveToolCall(null);
247
265
  }
@@ -269,6 +287,7 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
269
287
  const resumePayload = approved
270
288
  ? { action: "approve" }
271
289
  : { action: "reject" };
290
+ const { Command } = await import("@langchain/langgraph");
272
291
  const command = new Command({ resume: resumePayload });
273
292
  // Recurse to resume the graph
274
293
  await runAgentLoop(currentState, activeHarness, command);
@@ -280,12 +299,23 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
280
299
  nextHistory = finalState.messages;
281
300
  }
282
301
  setContextState({ ...currentState, conversationHistory: nextHistory });
302
+ setWorkflowTodos((prev) => completeWorkflowTodos(prev));
283
303
  setIsProcessing(false);
284
304
  setIsStreaming(false);
285
305
  }
286
306
  catch (error) {
287
307
  setIsStreaming(false);
288
- setActiveToolCall(null);
308
+ setActiveToolCall((prev) => prev
309
+ ? {
310
+ ...prev,
311
+ status: "error",
312
+ result: error.message,
313
+ }
314
+ : null);
315
+ setRecentToolCalls((prev) => failRecentToolCalls(prev, error.message));
316
+ setWorkflowTodos((prev) => prev.map((todo) => todo.state === "done"
317
+ ? todo
318
+ : { ...todo, state: "blocked", note: error.message }));
289
319
  setIsProcessing(false);
290
320
  setMessages((prev) => [
291
321
  ...prev,
@@ -333,7 +363,6 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
333
363
  ]);
334
364
  setTimeout(() => {
335
365
  requestSoftExit();
336
- process.exit(0);
337
366
  }, 500);
338
367
  return;
339
368
  }
@@ -353,7 +382,9 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
353
382
  setIsProcessing(true);
354
383
  // 1. Update UI
355
384
  setMessages((prev) => [...prev, { role: "user", content: userText }]);
385
+ setWorkflowTodos(createWorkflowTodos(userText));
356
386
  // 2. Update Engine State
387
+ const { HumanMessage } = await import("@langchain/core/messages");
357
388
  const humanMsg = new HumanMessage(userText);
358
389
  const updatedState = {
359
390
  ...contextState,
@@ -388,10 +419,124 @@ export const App = ({ provider, model, streaming, createHarness, initialState, m
388
419
  totalCost: 0,
389
420
  };
390
421
  const contextTokens = countMessageTokens(contextState.conversationHistory);
391
- return (_jsxs(Box, { flexDirection: "column", minHeight: 15, children: [_jsx(Header, { provider: provider, model: model, streaming: streaming }), _jsxs(Box, { flexDirection: "row", flexGrow: 1, width: "100%", children: [_jsxs(Box, { flexDirection: "column", width: "65%", paddingRight: 1, children: [_jsx(Box, { flexDirection: "column", paddingY: 1, children: _jsx(Static, { items: messages, children: (msg, i) => (_jsx(MessageBubble, { role: msg.role, content: msg.content }, i)) }) }), isStreaming && (_jsx(Box, { paddingX: 1, marginBottom: 1, children: _jsx(Box, { marginLeft: 2, children: _jsx(StreamingText, { tokens: streamingTokens, isStreaming: isStreaming }) }) })), activeToolCall && (_jsx(Box, { paddingX: 1, marginBottom: 1, children: _jsx(ToolCallPanel, { toolName: activeToolCall.name, args: activeToolCall.args, status: activeToolCall.status, result: activeToolCall.result }) })), (hitlQuestion || hitlPermission) && (_jsx(HITLPrompt, { question: hitlQuestion, permission: hitlPermission })), !benchmarkStartup && !isProcessing && !hitlQuestion && !hitlPermission && (_jsxs(Box, { paddingX: 1, marginBottom: 1, children: [_jsx(Box, { marginRight: 1, children: _jsx(Text, { color: "green", bold: true, children: "\u276F" }) }), _jsx(TextInput, { value: inputValue, onChange: setInputValue, onSubmit: handleSubmit, placeholder: "What should we build today?" })] })), isProcessing &&
422
+ const activeHitlPrompt = pendingHitlPrompts[0];
423
+ const activeHitlQuestion = activeHitlPrompt?.type === "question" ? activeHitlPrompt.question : undefined;
424
+ const activeHitlPermission = activeHitlPrompt?.type === "permission"
425
+ ? activeHitlPrompt.permission
426
+ : undefined;
427
+ const hasActiveHitlPrompt = Boolean(activeHitlPrompt);
428
+ return (_jsxs(Box, { flexDirection: "column", minHeight: 15, children: [_jsx(Header, { provider: provider, model: model, streaming: streaming }), _jsxs(Box, { flexDirection: "row", flexGrow: 1, width: "100%", children: [_jsxs(Box, { flexDirection: "column", width: "65%", paddingRight: 1, children: [_jsx(Box, { flexDirection: "column", paddingY: 1, children: _jsx(Static, { items: messages, children: (msg, i) => (_jsx(MessageBubble, { role: msg.role, content: msg.content }, i)) }) }), workflowTodos.length > 0 && (_jsx(Box, { paddingX: 1, children: _jsx(WorkflowTodoPanel, { todos: workflowTodos }) })), isStreaming && (_jsx(Box, { paddingX: 1, marginBottom: 1, children: _jsx(Box, { marginLeft: 2, children: _jsx(StreamingText, { tokens: streamingTokens, isStreaming: isStreaming }) }) })), activeToolCall && (_jsx(Box, { paddingX: 1, marginBottom: 1, children: _jsx(ToolCallPanel, { toolName: activeToolCall.name, args: activeToolCall.args, status: activeToolCall.status, result: activeToolCall.result }) })), !activeToolCall && recentToolCalls.length > 0 && (_jsx(Box, { flexDirection: "column", paddingX: 1, marginBottom: 1, children: recentToolCalls.map((toolCall) => (_jsx(ToolCallPanel, { toolName: toolCall.name, args: toolCall.args, status: toolCall.status, result: toolCall.result }, toolCall.id))) })), hasActiveHitlPrompt && (_jsx(HITLPrompt, { question: activeHitlQuestion, permission: activeHitlPermission, pendingCount: Math.max(pendingHitlPrompts.length - 1, 0) })), !benchmarkStartup && !isProcessing && !hasActiveHitlPrompt && (_jsxs(Box, { paddingX: 1, marginBottom: 1, children: [_jsx(Box, { marginRight: 1, children: _jsx(Text, { color: "green", bold: true, children: "\u276F" }) }), _jsx(TextInput, { value: inputValue, onChange: setInputValue, onSubmit: handleSubmit, placeholder: "What should we build today?" })] })), isProcessing &&
392
429
  !isStreaming &&
393
430
  !activeToolCall &&
394
- !hitlQuestion &&
395
- !hitlPermission && (_jsx(Box, { paddingX: 1, marginBottom: 1, children: _jsx(Text, { dimColor: true, children: isInitializingHarness ? "Initializing agent..." : "Thinking..." }) }))] }), _jsxs(Box, { flexDirection: "column", width: "35%", paddingLeft: 1, children: [_jsx(StatusBar, { contextTokens: contextTokens, maxContextTokens: contextTokensLimit, totalTokens: summary.totalTokens, cacheHitRate: summary.cacheHitRate, toolCalls: summary.toolCallCount, turns: summary.turnCount, cost: summary.totalCost, elapsed: elapsed }), _jsx(Box, { marginTop: 1, children: _jsx(FileBrowser, {}) })] })] })] }));
431
+ !hasActiveHitlPrompt && (_jsx(Box, { paddingX: 1, marginBottom: 1, children: _jsx(Text, { dimColor: true, children: isInitializingHarness ? "Initializing agent..." : "Thinking..." }) }))] }), _jsxs(Box, { flexDirection: "column", width: "35%", paddingLeft: 1, children: [_jsx(StatusBar, { contextTokens: contextTokens, maxContextTokens: contextTokensLimit, totalTokens: summary.totalTokens, cacheHitRate: summary.cacheHitRate, toolCalls: summary.toolCallCount, turns: summary.turnCount, cost: summary.totalCost, elapsed: elapsed }), _jsx(Box, { marginTop: 1, children: _jsx(FileBrowser, {}) })] })] })] }));
396
432
  };
433
+ function createWorkflowTodos(query) {
434
+ return [
435
+ {
436
+ id: "request",
437
+ label: "Understand the request",
438
+ note: summarizeText(query, 88),
439
+ state: "done",
440
+ },
441
+ {
442
+ id: "tools",
443
+ label: "Inspect files and run tools",
444
+ note: "Waiting for the next action.",
445
+ state: "active",
446
+ },
447
+ {
448
+ id: "response",
449
+ label: "Draft the response",
450
+ note: "Will start once enough context is gathered.",
451
+ state: "pending",
452
+ },
453
+ ];
454
+ }
455
+ function updateWorkflowTodo(todos, id, state, note) {
456
+ return todos.map((todo) => (todo.id === id ? { ...todo, state, note } : todo));
457
+ }
458
+ function completeWorkflowTodos(todos) {
459
+ const hadToolActivity = todos.some((todo) => todo.id === "tools" && todo.note !== "Waiting for the next action.");
460
+ return todos.map((todo) => {
461
+ if (todo.id === "tools") {
462
+ return {
463
+ ...todo,
464
+ state: "done",
465
+ note: hadToolActivity
466
+ ? "Tool work finished successfully."
467
+ : "No tool calls were needed for this reply.",
468
+ };
469
+ }
470
+ if (todo.id === "response") {
471
+ return {
472
+ ...todo,
473
+ state: "done",
474
+ note: "Reply delivered to the conversation.",
475
+ };
476
+ }
477
+ return { ...todo, state: "done" };
478
+ });
479
+ }
480
+ function finalizeRecentToolCalls(toolCalls, toolName, args, result) {
481
+ let updated = false;
482
+ const next = toolCalls.map((toolCall) => {
483
+ if (!updated && toolCall.name === toolName && toolCall.status === "running") {
484
+ updated = true;
485
+ const nextToolCall = {
486
+ ...toolCall,
487
+ args,
488
+ status: "success",
489
+ result,
490
+ };
491
+ return nextToolCall;
492
+ }
493
+ return toolCall;
494
+ });
495
+ if (updated) {
496
+ return next;
497
+ }
498
+ const completedTool = {
499
+ id: `${toolName}-${Date.now()}`,
500
+ name: toolName,
501
+ args,
502
+ status: "success",
503
+ result,
504
+ };
505
+ return [completedTool, ...toolCalls].slice(0, 4);
506
+ }
507
+ function failRecentToolCalls(toolCalls, errorMessage) {
508
+ let updated = false;
509
+ return toolCalls.map((toolCall) => {
510
+ if (!updated && toolCall.status === "running") {
511
+ updated = true;
512
+ return {
513
+ ...toolCall,
514
+ status: "error",
515
+ result: errorMessage,
516
+ };
517
+ }
518
+ return toolCall;
519
+ });
520
+ }
521
+ function summarizeToolResult(value) {
522
+ if (typeof value === "string") {
523
+ return summarizeText(value, 180);
524
+ }
525
+ if (value == null) {
526
+ return "Tool execution completed.";
527
+ }
528
+ try {
529
+ return summarizeText(JSON.stringify(value), 180);
530
+ }
531
+ catch {
532
+ return summarizeText(String(value), 180);
533
+ }
534
+ }
535
+ function summarizeText(value, limit) {
536
+ const normalized = value.replace(/\s+/g, " ").trim();
537
+ if (normalized.length <= limit) {
538
+ return normalized;
539
+ }
540
+ return `${normalized.slice(0, limit - 3)}...`;
541
+ }
397
542
  //# sourceMappingURL=App.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ interface HITLPromptProps {
4
4
  /** The active HITL question or permission request. */
5
5
  question?: HITLQuestion;
6
6
  permission?: HITLPermissionRequest;
7
+ pendingCount?: number;
7
8
  }
8
9
  /**
9
10
  * HITLPrompt — renders a blocking question/permission prompt in the TUI.
@@ -9,7 +9,7 @@ import { HITLBridge, } from "../../hitl/bridge.js";
9
9
  * When a tool calls `ask_user_question` or the PermissionMiddleware fires,
10
10
  * this component takes over the input area to capture the user's response.
11
11
  */
12
- export const HITLPrompt = ({ question, permission, }) => {
12
+ export const HITLPrompt = ({ question, permission, pendingCount = 0, }) => {
13
13
  const [inputValue, setInputValue] = useState("");
14
14
  const handleSubmit = (value) => {
15
15
  const bridge = HITLBridge.getInstance();
@@ -22,13 +22,13 @@ export const HITLPrompt = ({ question, permission, }) => {
22
22
  setInputValue("");
23
23
  };
24
24
  if (question) {
25
- return (_jsxs(Box, { flexDirection: "column", paddingX: 1, marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "yellow", bold: true, children: "\u2753 Agent is asking:" }) }), _jsx(Box, { marginLeft: 2, marginBottom: 1, children: _jsx(Text, { children: question.question }) }), question.options && question.options.length > 0 && (_jsx(Box, { flexDirection: "column", marginLeft: 2, marginBottom: 1, children: question.options.map((opt, i) => (_jsx(Text, { dimColor: true, children: ` ${i + 1}. ${opt}` }, i))) })), _jsxs(Box, { children: [_jsx(Box, { marginRight: 1, children: _jsx(Text, { color: "yellow", bold: true, children: "\u2192" }) }), _jsx(TextInput, { value: inputValue, onChange: setInputValue, onSubmit: handleSubmit, placeholder: "Type your answer..." })] })] }));
25
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "yellow", bold: true, children: "\u2753 Agent is asking:" }) }), _jsx(Box, { marginLeft: 2, marginBottom: 1, children: _jsx(Text, { children: question.question }) }), pendingCount > 0 && (_jsx(Box, { marginLeft: 2, marginBottom: 1, children: _jsx(Text, { dimColor: true, children: `Pending prompts: ${pendingCount}` }) })), question.options && question.options.length > 0 && (_jsx(Box, { flexDirection: "column", marginLeft: 2, marginBottom: 1, children: question.options.map((opt, i) => (_jsx(Text, { dimColor: true, children: ` ${i + 1}. ${opt}` }, i))) })), _jsxs(Box, { children: [_jsx(Box, { marginRight: 1, children: _jsx(Text, { color: "yellow", bold: true, children: "\u2192" }) }), _jsx(TextInput, { value: inputValue, onChange: setInputValue, onSubmit: handleSubmit, placeholder: "Type your answer..." })] })] }));
26
26
  }
27
27
  if (permission) {
28
28
  const argsSummary = Object.entries(permission.args)
29
29
  .map(([k, v]) => `${k}: ${typeof v === "string" ? v.substring(0, 60) : JSON.stringify(v)}`)
30
30
  .join(", ");
31
- return (_jsxs(Box, { flexDirection: "column", paddingX: 1, marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "red", bold: true, children: "\u26A0 Permission Required:" }) }), _jsx(Box, { marginLeft: 2, marginBottom: 1, children: _jsxs(Text, { children: ["The agent wants to execute", " ", _jsx(Text, { bold: true, color: "white", children: permission.toolName })] }) }), _jsx(Box, { marginLeft: 2, marginBottom: 1, children: _jsx(Text, { dimColor: true, children: argsSummary }) }), _jsxs(Box, { children: [_jsx(Box, { marginRight: 1, children: _jsx(Text, { color: "red", bold: true, children: "Allow? (y/n):" }) }), _jsx(TextInput, { value: inputValue, onChange: setInputValue, onSubmit: handleSubmit, placeholder: "y or n" })] })] }));
31
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: "red", bold: true, children: "\u26A0 Permission Required:" }) }), _jsx(Box, { marginLeft: 2, marginBottom: 1, children: _jsxs(Text, { children: ["The agent wants to execute", " ", _jsx(Text, { bold: true, color: "white", children: permission.toolName })] }) }), _jsx(Box, { marginLeft: 2, marginBottom: 1, children: _jsx(Text, { dimColor: true, children: argsSummary }) }), pendingCount > 0 && (_jsx(Box, { marginLeft: 2, marginBottom: 1, children: _jsx(Text, { dimColor: true, children: `Pending prompts: ${pendingCount}` }) })), _jsxs(Box, { children: [_jsx(Box, { marginRight: 1, children: _jsx(Text, { color: "red", bold: true, children: "Allow? (y/n):" }) }), _jsx(TextInput, { value: inputValue, onChange: setInputValue, onSubmit: handleSubmit, placeholder: "y or n" })] })] }));
32
32
  }
33
33
  return null;
34
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"HITLPrompt.js","sourceRoot":"","sources":["../../../src/ui/components/HITLPrompt.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HITLPrompt.js","sourceRoot":"","sources":["../../../src/ui/components/HITLPrompt.tsx"],"names":[],"mappings":"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"}
@@ -6,10 +6,5 @@ interface ToolCallPanelProps {
6
6
  status: ToolCallStatus;
7
7
  result?: string;
8
8
  }
9
- /**
10
- * Styled panel that appears when the agent invokes a tool.
11
- * Shows the tool name, arguments, a spinner while executing,
12
- * and the result once complete.
13
- */
14
9
  export declare const ToolCallPanel: React.FC<ToolCallPanelProps>;
15
10
  export {};
@@ -1,18 +1,40 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
3
  import Spinner from "ink-spinner";
4
- /**
5
- * Styled panel that appears when the agent invokes a tool.
6
- * Shows the tool name, arguments, a spinner while executing,
7
- * and the result once complete.
8
- */
9
4
  export const ToolCallPanel = ({ toolName, args, status, result, }) => {
10
5
  const borderColor = status === "running" ? "yellow" : status === "success" ? "green" : "red";
11
- const statusIcon = status === "running" ? (_jsx(Text, { color: "yellow", children: _jsx(Spinner, { type: "dots" }) })) : status === "success" ? (_jsx(Text, { color: "green", children: "\u2713" })) : (_jsx(Text, { color: "red", children: "\u2717" }));
12
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: borderColor, paddingX: 1, marginY: 0, children: [_jsxs(Box, { gap: 1, children: [statusIcon, _jsx(Text, { bold: true, color: borderColor, children: toolName })] }), args && Object.keys(args).length > 0 && (_jsx(Box, { marginLeft: 2, flexDirection: "column", children: Object.entries(args).map(([key, value]) => (_jsxs(Text, { children: [_jsxs(Text, { dimColor: true, children: [key, ":"] }), " ", _jsx(Text, { color: "white", children: typeof value === "string"
13
- ? value.length > 80
14
- ? value.slice(0, 77) + "..."
15
- : value
16
- : JSON.stringify(value) })] }, key))) })), result && (_jsx(Box, { marginTop: 0, marginLeft: 2, children: _jsx(Text, { dimColor: true, children: result.length > 120 ? result.slice(0, 117) + "..." : result }) }))] }));
6
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: borderColor, paddingX: 1, marginBottom: 1, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "TOOL CALL" }), _jsx(Text, { bold: true, color: borderColor, children: toolName })] }), _jsx(StatusBadge, { status: status })] }), args && Object.keys(args).length > 0 ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "arguments" }), _jsx(Box, { flexDirection: "column", marginLeft: 1, children: Object.entries(args)
7
+ .slice(0, 4)
8
+ .map(([key, value]) => (_jsxs(Text, { wrap: "wrap", children: [_jsxs(Text, { color: "gray", children: [key, ":"] }), " ", formatValue(value)] }, key))) })] })) : null, result ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "result" }), _jsx(Box, { marginLeft: 1, children: _jsx(Text, { wrap: "wrap", children: summarizeText(result, 180) }) })] })) : null] }));
17
9
  };
10
+ const StatusBadge = ({ status }) => {
11
+ if (status === "running") {
12
+ return (_jsxs(Text, { color: "yellow", children: [_jsx(Spinner, { type: "dots" }), " running"] }));
13
+ }
14
+ if (status === "success") {
15
+ return _jsx(Text, { color: "green", children: "done" });
16
+ }
17
+ return _jsx(Text, { color: "red", children: "error" });
18
+ };
19
+ function formatValue(value) {
20
+ if (typeof value === "string") {
21
+ return summarizeText(value, 72);
22
+ }
23
+ if (value == null) {
24
+ return "null";
25
+ }
26
+ try {
27
+ return summarizeText(JSON.stringify(value), 72);
28
+ }
29
+ catch {
30
+ return summarizeText(String(value), 72);
31
+ }
32
+ }
33
+ function summarizeText(value, limit) {
34
+ const normalized = value.replace(/\s+/g, " ").trim();
35
+ if (normalized.length <= limit) {
36
+ return normalized;
37
+ }
38
+ return `${normalized.slice(0, limit - 3)}...`;
39
+ }
18
40
  //# sourceMappingURL=ToolCallPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallPanel.js","sourceRoot":"","sources":["../../../src/ui/components/ToolCallPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AAWlC;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,MAAM,GACP,EAAE,EAAE;IACH,MAAM,WAAW,GACf,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAE3E,MAAM,UAAU,GACd,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CACrB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAClB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,CACR,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CACzB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,uBAAS,CAC7B,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,uBAAS,CAC3B,CAAC;IAEJ,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,aAEV,MAAC,GAAG,IAAC,GAAG,EAAE,CAAC,aACR,UAAU,EACX,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,WAAW,YAC1B,QAAQ,GACJ,IACH,EAEL,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CACvC,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,YACvC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC1C,MAAC,IAAI,eACH,MAAC,IAAI,IAAC,QAAQ,mBAAE,GAAG,SAAS,EAAC,GAAG,EAChC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAChB,OAAO,KAAK,KAAK,QAAQ;gCACxB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;oCACjB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;oCAC5B,CAAC,CAAC,KAAK;gCACT,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GACpB,KARE,GAAG,CASP,CACR,CAAC,GACE,CACP,EAEA,MAAM,IAAI,CACT,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAC9B,KAAC,IAAI,IAAC,QAAQ,kBACX,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,GACvD,GACH,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ToolCallPanel.js","sourceRoot":"","sources":["../../../src/ui/components/ToolCallPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ export type WorkflowTodoState = "done" | "active" | "pending" | "blocked";
3
+ export interface WorkflowTodoItem {
4
+ id: "request" | "tools" | "response";
5
+ label: string;
6
+ note: string;
7
+ state: WorkflowTodoState;
8
+ }
9
+ interface WorkflowTodoPanelProps {
10
+ todos: WorkflowTodoItem[];
11
+ }
12
+ export declare const WorkflowTodoPanel: React.FC<WorkflowTodoPanelProps>;
13
+ export {};
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ export const WorkflowTodoPanel = ({ todos, }) => {
4
+ if (todos.length === 0) {
5
+ return null;
6
+ }
7
+ const doneCount = todos.filter((todo) => todo.state === "done").length;
8
+ const progress = Math.round((doneCount / todos.length) * 100);
9
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: "blue", paddingX: 1, marginBottom: 1, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { dimColor: true, children: "LIVE PROGRESS" }), _jsx(Text, { bold: true, color: "blue", children: "Agent workstream" })] }), _jsxs(Text, { color: "blue", children: [progress, "% complete"] })] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: todos.map((todo) => (_jsxs(Box, { marginBottom: 1, children: [_jsx(Box, { width: 8, children: _jsx(Text, { color: colorForState(todo.state), children: labelForState(todo.state) }) }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsx(Text, { bold: true, children: todo.label }), _jsx(Text, { dimColor: true, wrap: "wrap", children: todo.note })] })] }, todo.id))) })] }));
10
+ };
11
+ function labelForState(state) {
12
+ switch (state) {
13
+ case "done":
14
+ return "[done]";
15
+ case "active":
16
+ return "[now ]";
17
+ case "blocked":
18
+ return "[hold]";
19
+ default:
20
+ return "[next]";
21
+ }
22
+ }
23
+ function colorForState(state) {
24
+ switch (state) {
25
+ case "done":
26
+ return "green";
27
+ case "active":
28
+ return "yellow";
29
+ case "blocked":
30
+ return "red";
31
+ default:
32
+ return "gray";
33
+ }
34
+ }
35
+ //# sourceMappingURL=WorkflowTodoPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowTodoPanel.js","sourceRoot":"","sources":["../../../src/ui/components/WorkflowTodoPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAehC,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,KAAK,GACN,EAAE,EAAE;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;IAE9D,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,MAAM,EAClB,QAAQ,EAAE,CAAC,EACX,YAAY,EAAE,CAAC,aAEf,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,aACjC,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,QAAQ,oCAAqB,EACnC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,iCAEhB,IACH,EACN,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aAAE,QAAQ,kBAAkB,IAC1C,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,MAAC,GAAG,IAAe,YAAY,EAAE,CAAC,aAChC,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,IAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,YAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,GACtE,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACrC,KAAC,IAAI,IAAC,IAAI,kBAAE,IAAI,CAAC,KAAK,GAAQ,EAC9B,KAAC,IAAI,IAAC,QAAQ,QAAC,IAAI,EAAC,MAAM,YACvB,IAAI,CAAC,IAAI,GACL,IACH,KATE,IAAI,CAAC,EAAE,CAUX,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,aAAa,CAAC,KAAwB;IAC7C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM;YACT,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC;QACf;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC"}