@nexagent-cli/cli 0.3.0 → 0.4.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 (81) hide show
  1. package/dist/agent/loop.d.ts +2 -0
  2. package/dist/agent/loop.d.ts.map +1 -1
  3. package/dist/agent/loop.js +59 -27
  4. package/dist/agent/loop.js.map +1 -1
  5. package/dist/commands/chat.d.ts.map +1 -1
  6. package/dist/commands/chat.js +3 -1
  7. package/dist/commands/chat.js.map +1 -1
  8. package/dist/commands/dashboard.d.ts.map +1 -1
  9. package/dist/commands/dashboard.js +19 -6
  10. package/dist/commands/dashboard.js.map +1 -1
  11. package/dist/commands/run.d.ts.map +1 -1
  12. package/dist/commands/run.js +1 -0
  13. package/dist/commands/run.js.map +1 -1
  14. package/dist/commands/server.d.ts.map +1 -1
  15. package/dist/commands/server.js +3 -2
  16. package/dist/commands/server.js.map +1 -1
  17. package/dist/commands/session.d.ts +1 -0
  18. package/dist/commands/session.d.ts.map +1 -1
  19. package/dist/commands/session.js +72 -1
  20. package/dist/commands/session.js.map +1 -1
  21. package/dist/config/loader.js +1 -1
  22. package/dist/config/loader.js.map +1 -1
  23. package/dist/config/wizard.js +1 -1
  24. package/dist/config/wizard.js.map +1 -1
  25. package/dist/index.js +8 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/llm/providers/anthropic.d.ts +1 -1
  28. package/dist/llm/providers/anthropic.d.ts.map +1 -1
  29. package/dist/llm/providers/anthropic.js.map +1 -1
  30. package/dist/llm/providers/google.d.ts +1 -0
  31. package/dist/llm/providers/google.d.ts.map +1 -1
  32. package/dist/llm/providers/google.js +3 -0
  33. package/dist/llm/providers/google.js.map +1 -1
  34. package/dist/llm/providers/ollama.d.ts +1 -0
  35. package/dist/llm/providers/ollama.d.ts.map +1 -1
  36. package/dist/llm/providers/ollama.js +3 -0
  37. package/dist/llm/providers/ollama.js.map +1 -1
  38. package/dist/llm/providers/openai.d.ts +1 -1
  39. package/dist/llm/providers/openai.d.ts.map +1 -1
  40. package/dist/llm/providers/openai.js.map +1 -1
  41. package/dist/llm/router.d.ts +1 -0
  42. package/dist/llm/router.d.ts.map +1 -1
  43. package/dist/llm/router.js +6 -0
  44. package/dist/llm/router.js.map +1 -1
  45. package/dist/memory/manager.d.ts +5 -1
  46. package/dist/memory/manager.d.ts.map +1 -1
  47. package/dist/memory/manager.js +50 -7
  48. package/dist/memory/manager.js.map +1 -1
  49. package/dist/tools/custom-loader.d.ts +3 -0
  50. package/dist/tools/custom-loader.d.ts.map +1 -0
  51. package/dist/tools/custom-loader.js +119 -0
  52. package/dist/tools/custom-loader.js.map +1 -0
  53. package/dist/tools/file-write.d.ts +1 -0
  54. package/dist/tools/file-write.d.ts.map +1 -1
  55. package/dist/tools/file-write.js +1 -0
  56. package/dist/tools/file-write.js.map +1 -1
  57. package/dist/tools/registry.d.ts +8 -1
  58. package/dist/tools/registry.d.ts.map +1 -1
  59. package/dist/tools/registry.js +40 -0
  60. package/dist/tools/registry.js.map +1 -1
  61. package/dist/tools/shell-exec.d.ts +1 -0
  62. package/dist/tools/shell-exec.d.ts.map +1 -1
  63. package/dist/tools/shell-exec.js +1 -0
  64. package/dist/tools/shell-exec.js.map +1 -1
  65. package/dist/ui/ChatApp.d.ts +1 -0
  66. package/dist/ui/ChatApp.d.ts.map +1 -1
  67. package/dist/ui/ChatApp.js +34 -10
  68. package/dist/ui/ChatApp.js.map +1 -1
  69. package/dist/ui/InputBar.d.ts +2 -1
  70. package/dist/ui/InputBar.d.ts.map +1 -1
  71. package/dist/ui/InputBar.js +71 -11
  72. package/dist/ui/InputBar.js.map +1 -1
  73. package/dist/ui/StatusBar.d.ts +2 -1
  74. package/dist/ui/StatusBar.d.ts.map +1 -1
  75. package/dist/ui/StatusBar.js +3 -3
  76. package/dist/ui/StatusBar.js.map +1 -1
  77. package/dist/ui/SubagentPanel.d.ts +21 -0
  78. package/dist/ui/SubagentPanel.d.ts.map +1 -0
  79. package/dist/ui/SubagentPanel.js +21 -0
  80. package/dist/ui/SubagentPanel.js.map +1 -0
  81. package/package.json +2 -2
@@ -0,0 +1,119 @@
1
+ // ============================================================
2
+ // Custom Tool Loader — load user-defined tools from .nxagent/tools
3
+ // ============================================================
4
+ import { readdir, readFile } from 'node:fs/promises';
5
+ import { join, resolve } from 'node:path';
6
+ import { spawn } from 'node:child_process';
7
+ import { z } from 'zod';
8
+ import { parse as parseYaml } from 'yaml';
9
+ import { generateId } from '@nexagent-cli/shared';
10
+ const CustomToolSchema = z.object({
11
+ id: z.string(),
12
+ name: z.string(),
13
+ description: z.string(),
14
+ version: z.string(),
15
+ parameters: z.custom((val) => typeof val === 'object' && val !== null && 'type' in val && val.type === 'object'),
16
+ permissions: z.array(z.string()),
17
+ riskLevel: z.enum(['low', 'medium', 'high', 'critical']),
18
+ scriptPath: z.string(),
19
+ enabled: z.boolean(),
20
+ });
21
+ class CustomTool {
22
+ name;
23
+ version;
24
+ description;
25
+ parameters;
26
+ permissions;
27
+ riskLevel;
28
+ enabled;
29
+ cacheable = true;
30
+ scriptPath;
31
+ workspaceDir;
32
+ constructor(def, workspaceDir) {
33
+ this.name = def.name;
34
+ this.version = def.version;
35
+ this.description = def.description;
36
+ this.parameters = def.parameters;
37
+ this.permissions = def.permissions;
38
+ this.riskLevel = def.riskLevel;
39
+ this.enabled = def.enabled;
40
+ this.scriptPath = resolve(workspaceDir, def.scriptPath);
41
+ this.workspaceDir = workspaceDir;
42
+ }
43
+ async execute(args, _ctx) {
44
+ const executionId = generateId();
45
+ const start = Date.now();
46
+ return new Promise((resolve, reject) => {
47
+ const child = spawn(process.execPath, [this.scriptPath], {
48
+ cwd: this.workspaceDir,
49
+ stdio: ['pipe', 'pipe', 'pipe'],
50
+ });
51
+ let stdout = '';
52
+ let stderr = '';
53
+ child.stdout?.on('data', (d) => { stdout += d.toString(); });
54
+ child.stderr?.on('data', (d) => { stderr += d.toString(); });
55
+ child.stdin?.write(JSON.stringify(args));
56
+ child.stdin?.end();
57
+ child.on('close', (code) => {
58
+ const durationMs = Date.now() - start;
59
+ if (code !== 0) {
60
+ resolve({
61
+ success: false,
62
+ output: `Custom tool exited with code ${code}: ${stderr || stdout}`,
63
+ executionId,
64
+ durationMs,
65
+ });
66
+ return;
67
+ }
68
+ try {
69
+ const parsed = JSON.parse(stdout);
70
+ resolve({
71
+ success: parsed.success ?? true,
72
+ output: parsed.output ?? stdout,
73
+ data: parsed.data,
74
+ executionId,
75
+ durationMs,
76
+ });
77
+ }
78
+ catch {
79
+ resolve({
80
+ success: true,
81
+ output: stdout.trim(),
82
+ executionId,
83
+ durationMs,
84
+ });
85
+ }
86
+ });
87
+ child.on('error', (err) => {
88
+ reject(new Error(`Failed to spawn custom tool: ${err.message}`));
89
+ });
90
+ });
91
+ }
92
+ }
93
+ export async function loadCustomTools(workspaceDir) {
94
+ const toolsDir = join(workspaceDir, '.nxagent', 'tools');
95
+ const tools = [];
96
+ try {
97
+ const entries = await readdir(toolsDir, { withFileTypes: true });
98
+ const files = entries.filter(e => e.isFile() && (e.name.endsWith('.json') || e.name.endsWith('.yaml') || e.name.endsWith('.yml')));
99
+ for (const file of files) {
100
+ const raw = await readFile(join(toolsDir, file.name), 'utf-8');
101
+ const parsed = file.name.endsWith('.json') ? JSON.parse(raw) : parseYaml(raw);
102
+ const validated = CustomToolSchema.safeParse(parsed);
103
+ if (!validated.success) {
104
+ console.warn(`[custom-loader] Skipping invalid tool definition ${file.name}:`, validated.error.format());
105
+ continue;
106
+ }
107
+ tools.push(new CustomTool(validated.data, workspaceDir));
108
+ }
109
+ }
110
+ catch (err) {
111
+ if (err.code === 'ENOENT') {
112
+ // No custom tools directory — that's fine
113
+ return [];
114
+ }
115
+ throw err;
116
+ }
117
+ return tools;
118
+ }
119
+ //# sourceMappingURL=custom-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-loader.js","sourceRoot":"","sources":["../../src/tools/custom-loader.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare class FileWriteTool implements Tool {
4
4
  version: string;
5
5
  description: string;
6
6
  enabled: boolean;
7
+ cacheable: boolean;
7
8
  riskLevel: "medium";
8
9
  permissions: readonly ["fs:write"];
9
10
  parameters: JSONSchemaObject;
@@ -1 +1 @@
1
- {"version":3,"file":"file-write.d.ts","sourceRoot":"","sources":["../../src/tools/file-write.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG5F,qBAAa,aAAc,YAAW,IAAI;IACxC,IAAI,SAAuB;IAC3B,OAAO,SAAe;IACtB,WAAW,SAA0G;IACrH,OAAO,UAAY;IACnB,SAAS,EAAK,QAAQ,CAAU;IAChC,WAAW,wBAAyB;IAEpC,UAAU,EAAE,gBAAgB,CAkB1B;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAwC7D,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,OAAO,CAAC,WAAW;CAQpB"}
1
+ {"version":3,"file":"file-write.d.ts","sourceRoot":"","sources":["../../src/tools/file-write.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG5F,qBAAa,aAAc,YAAW,IAAI;IACxC,IAAI,SAAuB;IAC3B,OAAO,SAAe;IACtB,WAAW,SAA0G;IACrH,OAAO,UAAY;IACnB,SAAS,UAAW;IACpB,SAAS,EAAK,QAAQ,CAAU;IAChC,WAAW,wBAAyB;IAEpC,UAAU,EAAE,gBAAgB,CAkB1B;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAwC7D,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,OAAO,CAAC,WAAW;CAQpB"}
@@ -12,6 +12,7 @@ export class FileWriteTool {
12
12
  version = '1.0.0';
13
13
  description = 'Write content to a file atomically. Creates parent directories as needed. Overwrites existing files.';
14
14
  enabled = true;
15
+ cacheable = false;
15
16
  riskLevel = 'medium';
16
17
  permissions = ['fs:write'];
17
18
  parameters = {
@@ -1 +1 @@
1
- {"version":3,"file":"file-write.js","sourceRoot":"","sources":["../../src/tools/file-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-write.js","sourceRoot":"","sources":["../../src/tools/file-write.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,mDAAmD;AACnD,oDAAoD;AACpD,+DAA+D;AAE/D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAQ,WAAW,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,OAAO,aAAa;IACxB,IAAI,GAAU,YAAY,CAAC;IAC3B,OAAO,GAAO,OAAO,CAAC;IACtB,WAAW,GAAG,sGAAsG,CAAC;IACrH,OAAO,GAAO,IAAI,CAAC;IACnB,SAAS,GAAK,KAAK,CAAC;IACpB,SAAS,GAAK,QAAiB,CAAC;IAChC,WAAW,GAAG,CAAC,UAAU,CAAU,CAAC;IAEpC,UAAU,GAAqB;QAC7B,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAS,QAAQ;gBACrB,WAAW,EAAE,gDAAgD;aAC9D;YACD,OAAO,EAAE;gBACP,IAAI,EAAS,QAAQ;gBACrB,WAAW,EAAE,4BAA4B;aAC1C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAS,QAAQ;gBACrB,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;aACjC;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;KAC9B,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAa,EAAE,GAAgB;QAC3C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,EAAE,GAAG,IAE7C,CAAC;QACF,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAEzD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAM,IAAI;gBACjB,MAAM,EAAO,yBAAyB,OAAO,CAAC,MAAM,aAAa,IAAI,EAAE;gBACvE,IAAI,EAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC1D,WAAW;gBACX,UAAU,EAAG,CAAC;aACf,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnD,mCAAmC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,WAAW,EAAE,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAO,QAAQ,KAAK,QAAQ;YACnC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAChC,CAAC,CAAC,OAAO,CAAC;QAEZ,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzF,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/B,OAAO;YACL,OAAO,EAAQ,IAAI;YACnB,MAAM,EAAS,SAAS,OAAO,CAAC,MAAM,aAAa,IAAI,EAAE;YACzD,IAAI,EAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;YAC9C,WAAW;YACX,UAAU,EAAK,CAAC;YAChB,YAAY,EAAG,OAAO,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAa,EAAE,IAAiB;QAC3C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAyC,CAAC;QACpE,OAAO,eAAe,OAAO,CAAC,MAAM,cAAc,IAAI,GAAG,CAAC;IAC5D,CAAC;IAEO,WAAW,CAAC,QAAgB,EAAE,YAAoB;QACxD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,4BAA4B,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -1,11 +1,18 @@
1
- import type { Tool, LLMToolDefinition } from '@nexagent-cli/shared';
1
+ import type { Tool, LLMToolDefinition, ToolContext, ToolResult } from '@nexagent-cli/shared';
2
2
  export declare class ToolRegistry {
3
3
  private tools;
4
+ private cache;
4
5
  register(tool: Tool): void;
5
6
  get(name: string): Tool | undefined;
6
7
  list(): Tool[];
7
8
  /** Convert registered tools to LLM function-call format */
8
9
  toToolDefinitions(allowList: string[], blockList: string[]): LLMToolDefinition[];
10
+ /** Execute a tool with result caching */
11
+ executeWithCache(toolName: string, args: unknown, context: ToolContext): Promise<ToolResult>;
12
+ /** Clear the entire tool result cache */
13
+ clearCache(): void;
14
+ /** Invalidate cached results for a specific tool */
15
+ invalidateCache(toolName: string): void;
9
16
  }
10
17
  /** Create a pre-loaded registry with all default tools */
11
18
  export declare function createDefaultRegistry(): Promise<ToolRegistry>;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA2B;IAExC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC,IAAI,IAAI,IAAI,EAAE;IAId,2DAA2D;IAC3D,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE;CAiBjF;AAED,0DAA0D;AAC1D,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,YAAY,CAAC,CAyCnE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAkB,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAK7G,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,KAAK,CAAqC;IAElD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI1B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC,IAAI,IAAI,IAAI,EAAE;IAId,2DAA2D;IAC3D,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE;IAkBhF,yCAAyC;IACnC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA8BlG,yCAAyC;IACzC,UAAU,IAAI,IAAI;IAIlB,oDAAoD;IACpD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAOxC;AAED,0DAA0D;AAC1D,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,YAAY,CAAC,CAyCnE"}
@@ -1,8 +1,11 @@
1
1
  // ============================================================
2
2
  // Tool Registry — central registration and lookup
3
3
  // ============================================================
4
+ const DEFAULT_CACHE_TTL_MS = 60_000;
5
+ const NEVER_CACHE_TOOLS = new Set(['shell_exec', 'file_write']);
4
6
  export class ToolRegistry {
5
7
  tools = new Map();
8
+ cache = new Map();
6
9
  register(tool) {
7
10
  this.tools.set(tool.name, tool);
8
11
  }
@@ -33,6 +36,43 @@ export class ToolRegistry {
33
36
  },
34
37
  }));
35
38
  }
39
+ /** Execute a tool with result caching */
40
+ async executeWithCache(toolName, args, context) {
41
+ const tool = this.tools.get(toolName);
42
+ if (!tool) {
43
+ throw new Error(`Unknown tool: "${toolName}"`);
44
+ }
45
+ const cacheable = tool.cacheable !== false && !NEVER_CACHE_TOOLS.has(toolName);
46
+ const cacheKey = `${toolName}::${JSON.stringify(args)}`;
47
+ if (cacheable) {
48
+ const cached = this.cache.get(cacheKey);
49
+ if (cached && Date.now() - cached.cachedAt < cached.ttlMs) {
50
+ return cached.result;
51
+ }
52
+ }
53
+ const result = await tool.execute(args, context);
54
+ if (cacheable) {
55
+ this.cache.set(cacheKey, {
56
+ key: cacheKey,
57
+ result,
58
+ cachedAt: Date.now(),
59
+ ttlMs: DEFAULT_CACHE_TTL_MS,
60
+ });
61
+ }
62
+ return result;
63
+ }
64
+ /** Clear the entire tool result cache */
65
+ clearCache() {
66
+ this.cache.clear();
67
+ }
68
+ /** Invalidate cached results for a specific tool */
69
+ invalidateCache(toolName) {
70
+ for (const [key, entry] of this.cache) {
71
+ if (entry.key.startsWith(`${toolName}::`)) {
72
+ this.cache.delete(key);
73
+ }
74
+ }
75
+ }
36
76
  }
37
77
  /** Create a pre-loaded registry with all default tools */
38
78
  export async function createDefaultRegistry() {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare class ShellExecTool implements Tool {
4
4
  version: string;
5
5
  description: string;
6
6
  enabled: boolean;
7
+ cacheable: boolean;
7
8
  riskLevel: "high";
8
9
  permissions: readonly ["shell:exec"];
9
10
  parameters: JSONSchemaObject;
@@ -1 +1 @@
1
- {"version":3,"file":"shell-exec.d.ts","sourceRoot":"","sources":["../../src/tools/shell-exec.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG5F,qBAAa,aAAc,YAAW,IAAI;IACxC,IAAI,SAAuB;IAC3B,OAAO,SAAe;IACtB,WAAW,SAA4L;IACvM,OAAO,UAAY;IACnB,SAAS,EAAK,MAAM,CAAU;IAC9B,WAAW,0BAA2B;IAEtC,UAAU,EAAE,gBAAgB,CAqB1B;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAiF7D,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,OAAO,CAAC,WAAW;CASpB"}
1
+ {"version":3,"file":"shell-exec.d.ts","sourceRoot":"","sources":["../../src/tools/shell-exec.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG5F,qBAAa,aAAc,YAAW,IAAI;IACxC,IAAI,SAAuB;IAC3B,OAAO,SAAe;IACtB,WAAW,SAA4L;IACvM,OAAO,UAAY;IACnB,SAAS,UAAW;IACpB,SAAS,EAAK,MAAM,CAAU;IAC9B,WAAW,0BAA2B;IAEtC,UAAU,EAAE,gBAAgB,CAqB1B;IAEI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAiF7D,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/D,OAAO,CAAC,WAAW;CASpB"}
@@ -10,6 +10,7 @@ export class ShellExecTool {
10
10
  version = '1.0.0';
11
11
  description = 'Execute a shell command in the workspace directory. Output is captured and returned. Long-running commands time out after timeout_ms. Dangerous commands are blocked by safety checks.';
12
12
  enabled = true;
13
+ cacheable = false;
13
14
  riskLevel = 'high';
14
15
  permissions = ['shell:exec'];
15
16
  parameters = {
@@ -1 +1 @@
1
- {"version":3,"file":"shell-exec.js","sourceRoot":"","sources":["../../src/tools/shell-exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-exec.js","sourceRoot":"","sources":["../../src/tools/shell-exec.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,6DAA6D;AAC7D,iDAAiD;AACjD,+DAA+D;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,OAAO,aAAa;IACxB,IAAI,GAAU,YAAY,CAAC;IAC3B,OAAO,GAAO,OAAO,CAAC;IACtB,WAAW,GAAG,wLAAwL,CAAC;IACvM,OAAO,GAAO,IAAI,CAAC;IACnB,SAAS,GAAK,KAAK,CAAC;IACpB,SAAS,GAAK,MAAe,CAAC;IAC9B,WAAW,GAAG,CAAC,YAAY,CAAU,CAAC;IAEtC,UAAU,GAAqB;QAC7B,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAS,QAAQ;gBACrB,WAAW,EAAE,8BAA8B;aAC5C;YACD,GAAG,EAAE;gBACH,IAAI,EAAS,QAAQ;gBACrB,WAAW,EAAE,oFAAoF;aAClG;YACD,UAAU,EAAE;gBACV,IAAI,EAAS,QAAQ;gBACrB,WAAW,EAAE,uDAAuD;aACrE;YACD,GAAG,EAAE;gBACH,IAAI,EAAS,QAAQ;gBACrB,WAAW,EAAE,qDAAqD;aACnE;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAa,EAAE,GAAgB;QAC3C,MAAM,EACJ,OAAO,EACP,GAAG,EAAS,MAAM,GAAM,GAAG,EAC3B,UAAU,EAAE,OAAO,GAAK,MAAM,EAC9B,GAAG,EAAS,QAAQ,GAAI,EAAE,GAC3B,GAAG,IAEH,CAAC;QAEF,8DAA8D;QAC9D,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAM,IAAI;gBACjB,MAAM,EAAO,4BAA4B,OAAO,EAAE;gBAClD,IAAI,EAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBACtC,WAAW,EAAE,UAAU,EAAE;gBACzB,UAAU,EAAG,CAAC;aACf,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAQ,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QACjC,MAAM,KAAK,GAAS,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEjD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhD,OAAO,IAAI,OAAO,CAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;YACnD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;gBAC9C,GAAG,EAAI,MAAM;gBACb,GAAG,EAAI,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;gBACtC,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,aAAa,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC,EAAE,aAAa,CAAC,CAAC;YAElB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBACtC,MAAM,QAAQ,GAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC/E,MAAM,SAAS,GAAI,QAAQ,CAAC,MAAM,GAAG,MAAM;oBACzC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,yCAAyC;oBACvE,CAAC,CAAC,QAAQ,CAAC;gBAEb,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,IAAI,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC;oBACpE,OAAO;gBACT,CAAC;gBAED,SAAS,CAAC;oBACR,OAAO,EAAM,IAAI,KAAK,CAAC;oBACvB,MAAM,EAAO,SAAS,IAAI,yBAAyB,IAAI,GAAG;oBAC1D,IAAI,EAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;oBACpE,WAAW;oBACX,UAAU;iBACX,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAa,EAAE,IAAiB;QAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,IAA2B,CAAC;QAChD,OAAO,iCAAiC,OAAO,GAAG,CAAC;IACrD,CAAC;IAEO,WAAW;QACjB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,wCAAwC;YACxC,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;gBAChC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAG,SAAS,EAAE,UAAU,EAAE;gBAC/C,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAI,SAAS,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACvE,CAAC;CACF"}
@@ -22,6 +22,7 @@ interface ChatAppProps {
22
22
  contextWindow: number;
23
23
  };
24
24
  countTokens(t: string, m: string): number;
25
+ estimateCost?(model: string, promptTokens: number, completionTokens: number): number;
25
26
  };
26
27
  }
27
28
  export declare function ChatApp({ agentName, model, sessionId, events, onUserInput, onQuickCommand, onExit, theme, llm, }: ChatAppProps): React.ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatApp.d.ts","sourceRoot":"","sources":["../../src/ui/ChatApp.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAU1D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAS,MAAM,CAAC;IAClB,IAAI,EAAO,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,OAAO,EAAI,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AA8BD,UAAU,YAAY;IACpB,SAAS,EAAO,MAAM,CAAC;IACvB,KAAK,EAAW,MAAM,CAAC;IACvB,SAAS,EAAO,MAAM,CAAC;IACvB,MAAM,EAAU,iBAAiB,CAAC;IAClC,WAAW,EAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,EAAU,MAAM,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAU,MAAM,GAAG,OAAO,CAAC;IACjC,GAAG,CAAC,EAAY;QAAE,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACtH;AAED,wBAAgB,OAAO,CAAC,EACtB,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,KAAc,EAAE,GAAG,GAC9F,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAqMnC"}
1
+ {"version":3,"file":"ChatApp.d.ts","sourceRoot":"","sources":["../../src/ui/ChatApp.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAW1D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAS,MAAM,CAAC;IAClB,IAAI,EAAO,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,OAAO,EAAI,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AA8BD,UAAU,YAAY;IACpB,SAAS,EAAO,MAAM,CAAC;IACvB,KAAK,EAAW,MAAM,CAAC;IACvB,SAAS,EAAO,MAAM,CAAC;IACvB,MAAM,EAAU,iBAAiB,CAAC;IAClC,WAAW,EAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,EAAU,MAAM,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAU,MAAM,GAAG,OAAO,CAAC;IACjC,GAAG,CAAC,EAAY;QAAE,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC5M;AAED,wBAAgB,OAAO,CAAC,EACtB,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,KAAc,EAAE,GAAG,GAC9F,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAoOnC"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  // ============================================================
3
- // ChatApp Root Ink TUI component for interactive chat
3
+ // ChatApp -- Root Ink TUI component for interactive chat
4
4
  // ============================================================
5
5
  import { useState, useEffect, useCallback, useRef } from 'react';
6
6
  import { Box, Text, useInput, useApp } from 'ink';
@@ -10,6 +10,7 @@ import { InputBar } from './InputBar.js';
10
10
  import { StatusBar } from './StatusBar.js';
11
11
  import { ToolPanel } from './ToolPanel.js';
12
12
  import { ConfirmDialog } from './ConfirmDialog.js';
13
+ import { SubagentPanel } from './SubagentPanel.js';
13
14
  function estimateContextTokens(messages, latestText, llm, model) {
14
15
  let total = 0;
15
16
  for (const m of messages) {
@@ -28,13 +29,16 @@ export function ChatApp({ agentName, model, sessionId, events, onUserInput, onQu
28
29
  const [confirmReq, setConfirmReq] = useState(null);
29
30
  const [sessionCost, setCost] = useState(0);
30
31
  const [contextTokens, setContextTokens] = useState(0);
32
+ const [subagentJobs, setSubagentJobs] = useState([]);
33
+ const [inputCostHint, setInputCostHint] = useState('');
34
+ const [currentInput, setCurrentInput] = useState('');
31
35
  const msgIdCounter = useRef(0);
32
36
  const isStreaming = agentStatus === 'streaming';
33
37
  const contextWindow = llm?.getCapabilities(model).contextWindow ?? 128_000;
34
38
  const contextPercent = Math.min(100, (contextTokens / contextWindow) * 100);
35
39
  const compactHint = contextPercent > 85;
36
40
  const nextId = () => `msg-${++msgIdCounter.current}`;
37
- // ── Subscribe to agent events ─────────────────────────────
41
+ // -- Subscribe to agent events --
38
42
  useEffect(() => {
39
43
  const addMsg = (msg) => setMessages(prev => [...prev, { ...msg, id: nextId(), timestamp: Date.now() }]);
40
44
  events.on('status:change', ({ status }) => setStatus(status));
@@ -75,16 +79,18 @@ export function ChatApp({ agentName, model, sessionId, events, onUserInput, onQu
75
79
  setStatus('error');
76
80
  });
77
81
  events.on('confirmation:request', ({ prompt, toolName, riskLevel }) => {
78
- // surfaced as a dialog resolved by user keypress
82
+ // surfaced as a dialog -- resolved by user keypress
79
83
  // The promise resolve is wired via the confirmFn below
80
84
  });
81
85
  events.on('subagent:spawn', ({ jobId, task }) => {
82
- addMsg({ role: 'system', content: `◈ Subagent [${String(jobId).slice(0, 8)}] spawned: ${task}` });
86
+ addMsg({ role: 'system', content: `Subagent [${String(jobId).slice(0, 8)}] spawned: ${task}` });
87
+ setSubagentJobs(prev => [...prev, { jobId, task, status: 'running', startTime: Date.now() }]);
83
88
  });
84
89
  events.on('subagent:progress', ({ jobId, chunk }) => {
85
90
  if (chunk) {
86
91
  setStreamBuf(prev => prev + chunk);
87
92
  }
93
+ setSubagentJobs(prev => prev.map(j => j.jobId === jobId ? { ...j, chunk: (j.chunk ?? '') + (chunk ?? '') } : j));
88
94
  });
89
95
  events.on('subagent:done', ({ jobId, status, output, artifacts, costUsd, durationMs }) => {
90
96
  setStreamBuf('');
@@ -93,21 +99,39 @@ export function ChatApp({ agentName, model, sessionId, events, onUserInput, onQu
93
99
  : '';
94
100
  addMsg({
95
101
  role: 'system',
96
- content: `◈ Subagent [${String(jobId).slice(0, 8)}] ${status} in ${(durationMs / 1000).toFixed(1)}s | $${costUsd.toFixed(5)}${artifactList}\n\n${output.slice(0, 800)}${output.length > 800 ? '' : ''}`,
102
+ content: `Subagent [${String(jobId).slice(0, 8)}] ${status} in ${(durationMs / 1000).toFixed(1)}s | $${costUsd.toFixed(5)}${artifactList}\n\n${output.slice(0, 800)}${output.length > 800 ? '...' : ''}`,
97
103
  });
104
+ setSubagentJobs(prev => prev.filter(j => j.jobId !== jobId));
98
105
  });
99
106
  events.on('subagent:error', ({ jobId, error }) => {
100
107
  addMsg({ role: 'system', content: `${SYM.ERROR} Subagent [${String(jobId).slice(0, 8)}] failed: ${error}` });
108
+ setSubagentJobs(prev => prev.filter(j => j.jobId !== jobId));
101
109
  });
102
110
  return () => { events.removeAllListeners(); };
103
111
  }, [events]);
104
- // ── Confirmation function passed to agent loop ────────────
112
+ // -- Cost hint derived from current input --
113
+ useEffect(() => {
114
+ if (!currentInput.trim() || !llm) {
115
+ setInputCostHint('');
116
+ return;
117
+ }
118
+ const tokens = llm.countTokens(currentInput, model);
119
+ let hint = `~${tokens} tokens`;
120
+ if (llm.estimateCost) {
121
+ const cost = llm.estimateCost(model, tokens, 0);
122
+ if (cost > 0) {
123
+ hint += ` · ~$${cost.toFixed(4)}`;
124
+ }
125
+ }
126
+ setInputCostHint(hint);
127
+ }, [currentInput, llm, model]);
128
+ // -- Confirmation function passed to agent loop --
105
129
  const confirmFn = useCallback((prompt) => {
106
130
  return new Promise(resolve => {
107
131
  setConfirmReq({ prompt, toolName: '', riskLevel: 'high', resolve });
108
132
  });
109
133
  }, []);
110
- // ── Handle user text submission ───────────────────────────
134
+ // -- Handle user text submission --
111
135
  const handleSubmit = useCallback(async (text) => {
112
136
  if (!text.trim())
113
137
  return;
@@ -136,16 +160,16 @@ export function ChatApp({ agentName, model, sessionId, events, onUserInput, onQu
136
160
  }]);
137
161
  await onUserInput(text, confirmFn);
138
162
  }, [onUserInput, onQuickCommand, confirmFn]);
139
- // ── Keyboard shortcuts ────────────────────────────────────
163
+ // -- Keyboard shortcuts --
140
164
  useInput((input, key) => {
141
165
  if (key.ctrl && input === 'c') {
142
166
  onExit();
143
167
  exit();
144
168
  }
145
169
  });
146
- return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsxs(Box, { borderStyle: "round", borderColor: colors.primary, paddingX: 1, marginBottom: 0, children: [_jsxs(Text, { color: colors.primary, bold: true, children: [SYM.AGENT, " NexAgent"] }), _jsxs(Text, { color: colors.muted, children: [" ", agentName] }), _jsxs(Text, { color: colors.muted, children: [" \u00B7 ", model] }), _jsxs(Text, { color: colors.muted, children: [" \u00B7 ", sessionId.slice(0, 8)] })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflowY: "hidden", children: [_jsx(MessageList, { messages: messages, colors: colors }), isStreaming && streamBuffer && (_jsxs(Box, { paddingLeft: 2, children: [_jsx(Text, { color: colors.text, children: streamBuffer }), _jsx(Text, { color: colors.primary, children: SYM.SPIN[0] })] }))] }), toolActivity.length > 0 && (_jsx(ToolPanel, { activities: toolActivity, colors: colors })), confirmReq && (_jsx(ConfirmDialog, { prompt: confirmReq.prompt, riskLevel: confirmReq.riskLevel, colors: colors, onConfirm: (approved) => {
170
+ return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsxs(Box, { borderStyle: "round", borderColor: colors.primary, paddingX: 1, marginBottom: 0, children: [_jsxs(Text, { color: colors.primary, bold: true, children: [SYM.AGENT, " NexAgent"] }), _jsxs(Text, { color: colors.muted, children: [" ", agentName] }), _jsxs(Text, { color: colors.muted, children: [" \u26A1 ", model] }), _jsxs(Text, { color: colors.muted, children: [" \uD83D\uDD11 ", sessionId.slice(0, 8)] })] }), _jsxs(Box, { flexDirection: "column", flexGrow: 1, overflowY: "hidden", children: [_jsx(MessageList, { messages: messages, colors: colors }), isStreaming && streamBuffer && (_jsxs(Box, { paddingLeft: 2, children: [_jsx(Text, { color: colors.text, children: streamBuffer }), _jsx(Text, { color: colors.primary, children: SYM.SPIN[0] })] }))] }), toolActivity.length > 0 && (_jsx(ToolPanel, { activities: toolActivity, colors: colors })), subagentJobs.length > 0 && (_jsx(SubagentPanel, { jobs: subagentJobs, colors: colors })), confirmReq && (_jsx(ConfirmDialog, { prompt: confirmReq.prompt, riskLevel: confirmReq.riskLevel, colors: colors, onConfirm: (approved) => {
147
171
  confirmReq.resolve(approved);
148
172
  setConfirmReq(null);
149
- } })), _jsx(StatusBar, { status: agentStatus, cost: sessionCost, colors: colors, contextPercent: contextPercent, compactHint: compactHint }), agentStatus === 'idle' || agentStatus === 'done' ? (_jsx(InputBar, { onSubmit: handleSubmit, colors: colors })) : null] }));
173
+ } })), _jsx(StatusBar, { status: agentStatus, cost: sessionCost, colors: colors, contextPercent: contextPercent, compactHint: compactHint, costHint: inputCostHint }), agentStatus === 'idle' || agentStatus === 'done' ? (_jsx(InputBar, { onSubmit: handleSubmit, onChange: setCurrentInput, colors: colors })) : null] }));
150
174
  }
151
175
  //# sourceMappingURL=ChatApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatApp.js","sourceRoot":"","sources":["../../src/ui/ChatApp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatApp.js","sourceRoot":"","sources":["../../src/ui/ChatApp.tsx"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAE/D,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAU,MAAM,KAAK,CAAC;AAG1D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAkB,sBAAsB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAQ,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAO,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAO,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAoB,MAAM,oBAAoB,CAAC;AAWrE,SAAS,qBAAqB,CAC5B,QAAuB,EACvB,UAAkB,EAClB,GAAwB,EACxB,KAAa;IAEb,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrF,OAAO,KAAK,CAAC;AACf,CAAC;AA4BD,MAAM,UAAU,OAAO,CAAC,EACtB,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,GAChF;IACb,MAAM,EAAE,IAAI,EAAE,GAAwB,MAAM,EAAE,CAAC;IAC/C,MAAM,MAAM,GAA0B,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAS,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAQ,QAAQ,CAAc,MAAM,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAM,QAAQ,CAAiB,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAK,QAAQ,CAAwB,IAAI,CAAC,CAAC;IAC5E,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAU,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,YAAY,GAAoB,MAAM,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,WAAW,GAAqB,WAAW,KAAK,WAAW,CAAC;IAElE,MAAM,aAAa,GAAG,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC;IAC3E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,cAAc,GAAG,EAAE,CAAC;IAExC,MAAM,MAAM,GAAG,GAAW,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;IAE7D,kCAAkC;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,CAAC,GAA0C,EAAE,EAAE,CAC5D,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAElF,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9D,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YACpC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxC,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjD,6BAA6B;YAC7B,UAAU,CAAC,GAAG,EAAE;gBACd,gBAAgB,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1E,CAAC,EAAE,CAAC,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE;YAC3C,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;YAC1F,UAAU,CAAC,IAAI,CAAC,EAAE,CAChB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU;gBAC/B,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE;gBACrE,CAAC,CAAC,CAAC,CACJ,CACF,CAAC;YACF,MAAM,CAAC;gBACL,IAAI,EAAM,MAAM;gBAChB,OAAO,EAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC1D,QAAQ;gBACR,SAAS;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;YACjD,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,QAAQ,aAAa,MAAM,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACvC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YAC9C,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrG,IAAI,CAAC,WAAW;gBAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;YACpE,oDAAoD;YACpD,uDAAuD;QACzD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9C,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,CAAC;YAChG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,EAAE,CACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACxF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;YACvF,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;gBACvC,CAAC,CAAC,gBAAgB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7E,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,CAAC;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;aACzM,CAAC,CAAC;YACH,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;YAC/C,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,cAAc,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7G,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,6CAA6C;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,CAAC;QAC/B,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACb,IAAI,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QACD,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/B,mDAAmD;IACnD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,MAAc,EAAoB,EAAE;QACjE,OAAO,IAAI,OAAO,CAAU,OAAO,CAAC,EAAE;YACpC,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,oCAAoC;IACpC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QACtD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;QAEzB,wBAAwB;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACvD,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;wBAC5B,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,KAAK,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACpF,CAAC,CAAC,CAAC;YACN,CAAC;YACD,OAAO;QACT,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;gBAC5B,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACjE,CAAC,CAAC,CAAC;QACJ,MAAM,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7C,2BAA2B;IAC3B,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,aAEvC,MAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,aAChF,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,mBAAE,GAAG,CAAC,KAAK,iBAAiB,EAC7D,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,mBAAK,SAAS,IAAQ,EAC/C,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,0BAAO,KAAK,IAAQ,EAC7C,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,gCAAQ,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAQ,IAC1D,EAGN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,QAAQ,aACzD,KAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAI,EAElD,WAAW,IAAI,YAAY,IAAI,CAC9B,MAAC,GAAG,IAAC,WAAW,EAAE,CAAC,aACjB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,YAAG,YAAY,GAAQ,EAC/C,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAQ,IAC7C,CACP,IACG,EAGL,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,KAAC,SAAS,IAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,CACxD,EAGA,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1B,KAAC,aAAa,IAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,CACtD,EAGA,UAAU,IAAI,CACb,KAAC,aAAa,IACZ,MAAM,EAAE,UAAU,CAAC,MAAM,EACzB,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACtB,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC7B,aAAa,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC,GACD,CACH,EAGD,KAAC,SAAS,IAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,GAAI,EACvJ,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAClD,KAAC,QAAQ,IAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAI,CAChF,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -8,9 +8,10 @@ interface Colors {
8
8
  }
9
9
  interface InputBarProps {
10
10
  onSubmit: (text: string) => void;
11
+ onChange?: (text: string) => void;
11
12
  colors: Colors;
12
13
  placeholder?: string;
13
14
  }
14
- export declare function InputBar({ onSubmit, colors, placeholder }: InputBarProps): React.ReactElement;
15
+ export declare function InputBar({ onSubmit, onChange, colors, placeholder }: InputBarProps): React.ReactElement;
15
16
  export {};
16
17
  //# sourceMappingURL=InputBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputBar.d.ts","sourceRoot":"","sources":["../../src/ui/InputBar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,UAAU,MAAM;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;CAAE;AAElG,UAAU,aAAa;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAI,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAkD,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAgHpI"}
1
+ {"version":3,"file":"InputBar.d.ts","sourceRoot":"","sources":["../../src/ui/InputBar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAK9D,UAAU,MAAM;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;CAAE;AAElG,UAAU,aAAa;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAI,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAoD,EAAE,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAiLhJ"}