neoctl 0.2.31 → 0.2.32

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 (99) hide show
  1. package/dist/agents/agent-activity.d.ts +3 -0
  2. package/dist/agents/agent-activity.js +33 -6
  3. package/dist/agents/agent-activity.js.map +1 -1
  4. package/dist/agents/agent-definition.d.ts +2 -2
  5. package/dist/agents/agent-definition.js +6 -6
  6. package/dist/agents/agent-definition.js.map +1 -1
  7. package/dist/agents/agent-report-tool.d.ts +1 -1
  8. package/dist/agents/agent-report-tool.js +4 -4
  9. package/dist/agents/agent-report-tool.js.map +1 -1
  10. package/dist/agents/agent-tool.d.ts +1 -1
  11. package/dist/agents/agent-tool.js +97 -18
  12. package/dist/agents/agent-tool.js.map +1 -1
  13. package/dist/agents/local-agent-task.d.ts +12 -0
  14. package/dist/agents/local-agent-task.js +38 -1
  15. package/dist/agents/local-agent-task.js.map +1 -1
  16. package/dist/agents/smoke-agents.js +37 -26
  17. package/dist/agents/smoke-agents.js.map +1 -1
  18. package/dist/context/compaction.js +1 -1
  19. package/dist/context/compaction.js.map +1 -1
  20. package/dist/context/prompts.js +6 -6
  21. package/dist/context/prompts.js.map +1 -1
  22. package/dist/context/smoke-context.js +15 -15
  23. package/dist/context/smoke-context.js.map +1 -1
  24. package/dist/core/query-engine.js +2 -0
  25. package/dist/core/query-engine.js.map +1 -1
  26. package/dist/core/query.js +88 -6
  27. package/dist/core/query.js.map +1 -1
  28. package/dist/core/run-agent.d.ts +13 -2
  29. package/dist/core/run-agent.js +16 -13
  30. package/dist/core/run-agent.js.map +1 -1
  31. package/dist/core/smoke-core-loop.js +55 -2
  32. package/dist/core/smoke-core-loop.js.map +1 -1
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/plugins/smoke-plugin-system.js +14 -14
  37. package/dist/repl/index.js +14 -14
  38. package/dist/repl/index.js.map +1 -1
  39. package/dist/secrets/secret-redaction.d.ts +5 -0
  40. package/dist/secrets/secret-redaction.js +43 -0
  41. package/dist/secrets/secret-redaction.js.map +1 -1
  42. package/dist/secrets/secret-types.d.ts +4 -0
  43. package/dist/secrets/secret-types.js.map +1 -1
  44. package/dist/secrets/smoke-secrets.js +7 -3
  45. package/dist/secrets/smoke-secrets.js.map +1 -1
  46. package/dist/skills/smoke-skills.js +5 -5
  47. package/dist/skills/smoke-skills.js.map +1 -1
  48. package/dist/tasks/subagent-tools.d.ts +31 -0
  49. package/dist/tasks/{task-tools.js → subagent-tools.js} +26 -32
  50. package/dist/tasks/subagent-tools.js.map +1 -0
  51. package/dist/tools/builtins/edit-tool.js +24 -6
  52. package/dist/tools/builtins/edit-tool.js.map +1 -1
  53. package/dist/tools/builtins/exec-process-manager.d.ts +4 -0
  54. package/dist/tools/builtins/exec-process-manager.js +15 -6
  55. package/dist/tools/builtins/exec-process-manager.js.map +1 -1
  56. package/dist/tools/builtins/exec-tool.js +24 -8
  57. package/dist/tools/builtins/exec-tool.js.map +1 -1
  58. package/dist/tools/builtins/filesystem-tools.js +2 -4
  59. package/dist/tools/builtins/filesystem-tools.js.map +1 -1
  60. package/dist/tools/builtins/grep-tool.js +2 -3
  61. package/dist/tools/builtins/grep-tool.js.map +1 -1
  62. package/dist/tools/builtins/image-generation-tool.js +4 -4
  63. package/dist/tools/builtins/image-generation-tool.js.map +1 -1
  64. package/dist/tools/builtins/image-loader-tool.js +2 -3
  65. package/dist/tools/builtins/image-loader-tool.js.map +1 -1
  66. package/dist/tools/builtins/image-note-tool.js +0 -1
  67. package/dist/tools/builtins/image-note-tool.js.map +1 -1
  68. package/dist/tools/builtins/plan-tool.js +1 -1
  69. package/dist/tools/builtins/plan-tool.js.map +1 -1
  70. package/dist/tools/builtins/search-tool.js +3 -3
  71. package/dist/tools/builtins/search-tool.js.map +1 -1
  72. package/dist/tools/run-tool-use.js +3 -2
  73. package/dist/tools/run-tool-use.js.map +1 -1
  74. package/dist/tools/smoke-tool-system.js +44 -25
  75. package/dist/tools/smoke-tool-system.js.map +1 -1
  76. package/dist/tools/tool-catalog.d.ts +36 -0
  77. package/dist/tools/tool-catalog.js +64 -0
  78. package/dist/tools/tool-catalog.js.map +1 -0
  79. package/dist/tools/tool-orchestration.d.ts +20 -3
  80. package/dist/tools/tool-orchestration.js +29 -4
  81. package/dist/tools/tool-orchestration.js.map +1 -1
  82. package/dist/tools/tool.d.ts +13 -0
  83. package/dist/tools/tool.js.map +1 -1
  84. package/dist/types/events.d.ts +23 -0
  85. package/dist/web/index.d.ts +39 -0
  86. package/dist/web/index.js +293 -92
  87. package/dist/web/index.js.map +1 -1
  88. package/dist/web/runtime-context-protocol.d.ts +7 -0
  89. package/dist/web/runtime-context-protocol.js +3 -2
  90. package/dist/web/runtime-context-protocol.js.map +1 -1
  91. package/dist/web/smoke-runtime-context-protocol.js +10 -2
  92. package/dist/web/smoke-runtime-context-protocol.js.map +1 -1
  93. package/dist/web/smoke-web-history.js +59 -1
  94. package/dist/web/smoke-web-history.js.map +1 -1
  95. package/dist/web/smoke-web-terminal-tasks.js +1 -0
  96. package/dist/web/smoke-web-terminal-tasks.js.map +1 -1
  97. package/package.json +4 -4
  98. package/dist/tasks/task-tools.d.ts +0 -31
  99. package/dist/tasks/task-tools.js.map +0 -1
@@ -0,0 +1,64 @@
1
+ export const BUILTIN_TOOL_NAMES = {
2
+ fileEdit: "file_edit",
3
+ fileWrite: "file_write",
4
+ fileRead: "file_read",
5
+ fileList: "file_list",
6
+ fileSearch: "file_search",
7
+ terminalRun: "terminal_run",
8
+ terminalControl: "terminal_control",
9
+ webSearch: "web_search",
10
+ imageCreate: "image_create",
11
+ imageInspect: "image_inspect",
12
+ imageNote: "image_note",
13
+ planUpdate: "plan_update",
14
+ subagentRun: "subagent_run",
15
+ subagentOutput: "subagent_output",
16
+ subagentList: "subagent_list",
17
+ subagentGet: "subagent_get",
18
+ subagentStop: "subagent_stop",
19
+ subagentMessage: "subagent_message",
20
+ subagentResume: "subagent_resume",
21
+ subagentReport: "subagent_report",
22
+ secretList: "secret_list",
23
+ secretInfo: "secret_info",
24
+ secretRequest: "secret_request",
25
+ };
26
+ const BUILTIN_PRESENTATION = {
27
+ file_edit: { family: "filesystem", action: "edit", label: "编辑文件", visibility: "primary" },
28
+ file_write: { family: "filesystem", action: "write", label: "写入文件", visibility: "primary" },
29
+ file_read: { family: "filesystem", action: "read", label: "读取文件", visibility: "primary" },
30
+ file_list: { family: "filesystem", action: "list", label: "列出文件", visibility: "primary" },
31
+ file_search: { family: "filesystem", action: "search", label: "搜索文本", visibility: "primary" },
32
+ terminal_run: { family: "terminal", action: "run", label: "执行命令", visibility: "primary" },
33
+ terminal_control: { family: "terminal", action: "control", label: "终端交互", visibility: "nested" },
34
+ web_search: { family: "web", action: "search", label: "网络搜索", visibility: "primary" },
35
+ image_create: { family: "image", action: "create", label: "图片生成", visibility: "primary" },
36
+ image_inspect: { family: "image", action: "inspect", label: "读取图片", visibility: "primary" },
37
+ image_note: { family: "image", action: "note", label: "记录图片", visibility: "nested" },
38
+ plan_update: { family: "planning", action: "update", label: "任务计划", visibility: "primary" },
39
+ subagent_run: { family: "subagent", action: "run", label: "子任务", visibility: "primary" },
40
+ subagent_output: { family: "subagent", action: "output", label: "读取子任务输出", visibility: "nested" },
41
+ subagent_list: { family: "subagent", action: "list", label: "子任务列表", visibility: "hidden" },
42
+ subagent_get: { family: "subagent", action: "get", label: "查看子任务", visibility: "hidden" },
43
+ subagent_stop: { family: "subagent", action: "stop", label: "停止子任务", visibility: "nested" },
44
+ subagent_message: { family: "subagent", action: "message", label: "发送子任务消息", visibility: "nested" },
45
+ subagent_resume: { family: "subagent", action: "resume", label: "恢复子任务", visibility: "nested" },
46
+ subagent_report: { family: "subagent", action: "report", label: "子任务报告", visibility: "hidden" },
47
+ secret_list: { family: "secrets", action: "list", label: "密钥列表", visibility: "primary" },
48
+ secret_info: { family: "secrets", action: "info", label: "查看密钥", visibility: "primary" },
49
+ secret_request: { family: "secrets", action: "request", label: "申请密钥", visibility: "primary" },
50
+ };
51
+ export function builtinToolPresentation(name) {
52
+ return BUILTIN_PRESENTATION[name];
53
+ }
54
+ export function toolPresentationForSource(name, source = "unknown") {
55
+ const builtin = builtinToolPresentation(name);
56
+ if (builtin)
57
+ return builtin;
58
+ if (source === "plugin")
59
+ return { family: "plugin", action: name, label: name, visibility: "primary" };
60
+ if (source === "external")
61
+ return { family: "external", action: name, label: name, visibility: "primary" };
62
+ return { family: "other", action: name, label: name, visibility: "primary" };
63
+ }
64
+ //# sourceMappingURL=tool-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-catalog.js","sourceRoot":"","sources":["../../src/tools/tool-catalog.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,32 @@
1
1
  import type { Message, ToolUseRequest } from "../types/messages.js";
2
- import { type RunToolUseOptions } from "./run-tool-use.js";
3
- import type { Tool, ToolUseContext } from "./tool.js";
2
+ import { type RunToolUseOptions, type ToolMessageUpdate } from "./run-tool-use.js";
3
+ import type { Tool, ToolProgressEvent, ToolUseContext } from "./tool.js";
4
4
  export interface RunToolsResult {
5
5
  messages: Message[];
6
6
  context: ToolUseContext;
7
7
  }
8
+ export type RunToolsEvent = {
9
+ type: "progress";
10
+ index: number;
11
+ total: number;
12
+ request: ToolUseRequest;
13
+ progress: ToolProgressEvent;
14
+ } | {
15
+ type: "settled";
16
+ index: number;
17
+ total: number;
18
+ request: ToolUseRequest;
19
+ updates: ToolMessageUpdate[];
20
+ ok: boolean;
21
+ };
22
+ export interface RunToolsOptions extends RunToolUseOptions {
23
+ onEvent?: (event: RunToolsEvent) => void;
24
+ }
8
25
  interface ParsedToolCall {
9
26
  request: ToolUseRequest;
10
27
  tool?: Tool;
11
28
  concurrencySafe: boolean;
12
29
  }
13
- export declare function runTools(requests: readonly ToolUseRequest[], context: ToolUseContext, options?: RunToolUseOptions): Promise<RunToolsResult>;
30
+ export declare function runTools(requests: readonly ToolUseRequest[], context: ToolUseContext, options?: RunToolsOptions): Promise<RunToolsResult>;
14
31
  export declare function partitionToolCalls(requests: readonly ToolUseRequest[], context: ToolUseContext): ParsedToolCall[][];
15
32
  export {};
@@ -2,15 +2,18 @@ import { runToolUse } from "./run-tool-use.js";
2
2
  export async function runTools(requests, context, options = {}) {
3
3
  let currentContext = context;
4
4
  const messages = [];
5
+ const indexes = new Map(requests.map((request, index) => [request.id, index]));
5
6
  for (const batch of partitionToolCalls(requests, currentContext)) {
6
7
  if (batch.length === 1 && !batch[0].concurrencySafe) {
7
- const updates = await runToolUse(batch[0].request, currentContext, options);
8
+ const item = batch[0];
9
+ const updates = await runToolUseWithEvents(item, currentContext, options, indexes.get(item.request.id) ?? 0, requests.length);
10
+ options.onEvent?.({ type: "settled", index: indexes.get(item.request.id) ?? 0, total: requests.length, request: item.request, updates, ok: updatesOk(updates) });
8
11
  const applied = applyUpdates(updates, currentContext);
9
12
  currentContext = applied.context;
10
13
  messages.push(...applied.messages);
11
14
  continue;
12
15
  }
13
- const batchResults = await runToolsConcurrently(batch, currentContext, options);
16
+ const batchResults = await runToolsConcurrently(batch, currentContext, options, indexes, requests.length);
14
17
  for (const item of batch) {
15
18
  const updates = batchResults.get(item.request.id) ?? [];
16
19
  const applied = applyUpdates(updates, currentContext);
@@ -44,7 +47,7 @@ export function partitionToolCalls(requests, context) {
44
47
  batches.push(concurrentBatch);
45
48
  return batches;
46
49
  }
47
- async function runToolsConcurrently(batch, context, options) {
50
+ async function runToolsConcurrently(batch, context, options, indexes, total) {
48
51
  const maxConcurrency = maxToolConcurrency();
49
52
  const results = new Map();
50
53
  let cursor = 0;
@@ -52,12 +55,34 @@ async function runToolsConcurrently(batch, context, options) {
52
55
  while (cursor < batch.length) {
53
56
  const item = batch[cursor];
54
57
  cursor += 1;
55
- results.set(item.request.id, await runToolUse(item.request, context, options));
58
+ const index = indexes.get(item.request.id) ?? 0;
59
+ const updates = await runToolUseWithEvents(item, context, options, index, total);
60
+ results.set(item.request.id, updates);
61
+ options.onEvent?.({ type: "settled", index, total, request: item.request, updates, ok: updatesOk(updates) });
56
62
  }
57
63
  }
58
64
  await Promise.all(Array.from({ length: Math.min(maxConcurrency, batch.length) }, () => worker()));
59
65
  return results;
60
66
  }
67
+ async function runToolUseWithEvents(item, context, options, index, total) {
68
+ let sequence = 0;
69
+ const contextWithEvents = {
70
+ ...context,
71
+ emit(progress) {
72
+ if (progress.sequence !== undefined)
73
+ sequence = Math.max(sequence, progress.sequence);
74
+ else
75
+ sequence += 1;
76
+ const normalized = { ...progress, toolUseId: progress.toolUseId ?? item.request.id, sequence };
77
+ options.onEvent?.({ type: "progress", index, total, request: item.request, progress: normalized });
78
+ context.emit(normalized);
79
+ },
80
+ };
81
+ return runToolUse(item.request, contextWithEvents, options);
82
+ }
83
+ function updatesOk(updates) {
84
+ return updates.every((update) => update.message.blocks.every((block) => block.type !== "tool_result" || block.ok));
85
+ }
61
86
  function applyUpdates(updates, context) {
62
87
  let currentContext = context;
63
88
  const messages = [];
@@ -1 +1 @@
1
- {"version":3,"file":"tool-orchestration.js","sourceRoot":"","sources":["../../src/tools/tool-orchestration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-orchestration.js","sourceRoot":"","sources":["../../src/tools/tool-orchestration.ts"],"names":[],"mappings":"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"}
@@ -33,11 +33,24 @@ export interface ToolMetadata {
33
33
  /** Strip unknown top-level object fields before JSON schema validation. Use only for simple, non-destructive tools. */
34
34
  ignoreUnknownInputProperties?: boolean;
35
35
  }
36
+ export type ToolStreamChannel = "state" | "item" | "stdout" | "stderr" | "patch" | "artifact" | "metric";
37
+ export type ToolStreamOperation = "replace" | "append" | "upsert" | "remove";
36
38
  export interface ToolProgressEvent {
37
39
  toolName: string;
38
40
  toolUseId?: string;
39
41
  message: string;
40
42
  data?: unknown;
43
+ channel?: ToolStreamChannel;
44
+ operation?: ToolStreamOperation;
45
+ key?: string;
46
+ phase?: string;
47
+ sequence?: number;
48
+ progress?: {
49
+ current?: number;
50
+ total?: number;
51
+ unit?: string;
52
+ };
53
+ transient?: boolean;
41
54
  }
42
55
  export type ValidationResult<TInput> = {
43
56
  ok: true;
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tools/tool.ts"],"names":[],"mappings":"AA+JA,MAAM,UAAU,sBAAsB,CAAC,IAAU,EAAE,OAAwB;IACzE,OAAO,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AAC1G,CAAC"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tools/tool.ts"],"names":[],"mappings":"AA6KA,MAAM,UAAU,sBAAsB,CAAC,IAAU,EAAE,OAAwB;IACzE,OAAO,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;AAC1G,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { CompactionReport } from "../context/compaction.js";
2
2
  import type { TerminalReason } from "../core/state.js";
3
3
  import type { ModelUsage } from "../model/model-gateway.js";
4
+ import type { ToolProgressEvent } from "../tools/tool.js";
4
5
  import type { Message, ToolUseRequest } from "./messages.js";
5
6
  export interface PromptCacheSectionMetric {
6
7
  name: string;
@@ -73,10 +74,32 @@ export type AgentEvent = {
73
74
  } | {
74
75
  type: "tool.started";
75
76
  toolUse: ToolUseRequest;
77
+ index?: number;
78
+ total?: number;
79
+ } | {
80
+ type: "tool.progress";
81
+ toolUse: ToolUseRequest;
82
+ progress: ToolProgressEvent;
83
+ index?: number;
84
+ total?: number;
85
+ } | {
86
+ type: "tool.result.available";
87
+ toolUse: ToolUseRequest;
88
+ ok: boolean;
89
+ messages: Message[];
90
+ index?: number;
91
+ total?: number;
76
92
  } | {
77
93
  type: "tool.finished";
78
94
  toolUse: ToolUseRequest;
79
95
  ok: boolean;
96
+ index?: number;
97
+ total?: number;
98
+ } | {
99
+ type: "tool.batch.completed";
100
+ total: number;
101
+ succeeded: number;
102
+ failed: number;
80
103
  } | {
81
104
  type: "usage";
82
105
  usage: ModelUsage;
@@ -7,6 +7,7 @@ import { CommunicationLogger, LoggingModelGateway } from "../model/communication
7
7
  import type { ModelUsage, ReasoningConfig } from "../model/model-gateway.js";
8
8
  import { ToolRegistry } from "../tools/registry.js";
9
9
  import type { Tool } from "../tools/tool.js";
10
+ import { type ToolPresentation } from "../tools/tool-catalog.js";
10
11
  import { ExecProcessManager } from "../tools/builtins/exec-process-manager.js";
11
12
  import { type AgentToolRuntime } from "../agents/agent-tool.js";
12
13
  import { TaskStore } from "../tasks/task-store.js";
@@ -48,6 +49,7 @@ interface WebRuntimePluginSupport {
48
49
  interface WebRuntimeToolCatalogItem {
49
50
  name: string;
50
51
  source: "builtin" | "external" | "plugin";
52
+ presentation: ToolPresentation;
51
53
  pluginId?: string;
52
54
  pluginName?: string;
53
55
  }
@@ -116,12 +118,42 @@ interface UiToolDisplay {
116
118
  facts: UiToolFact[];
117
119
  previews: UiToolPreview[];
118
120
  }
121
+ interface UiToolStreamStep {
122
+ key: string;
123
+ message: string;
124
+ toolName?: string;
125
+ toolLabel?: string;
126
+ status: "running" | "completed" | "failed";
127
+ phase?: string;
128
+ sequence?: number;
129
+ }
130
+ interface UiToolStreamChunk {
131
+ sequence: number;
132
+ stream: "stdout" | "stderr" | "output";
133
+ text: string;
134
+ }
135
+ interface UiToolStream {
136
+ message?: string;
137
+ phase?: string;
138
+ channel?: string;
139
+ sequence?: number;
140
+ current?: number;
141
+ total?: number;
142
+ unit?: string;
143
+ stdout?: string;
144
+ stderr?: string;
145
+ output?: string;
146
+ chunks?: UiToolStreamChunk[];
147
+ steps?: UiToolStreamStep[];
148
+ expanded?: boolean;
149
+ }
119
150
  interface UiLine {
120
151
  id: number;
121
152
  kind: "system" | "user" | "assistant" | "thinking" | "tool" | "error" | "meta";
122
153
  text: string;
123
154
  messageId?: string;
124
155
  toolName?: string;
156
+ toolPresentation?: ToolPresentation;
125
157
  parentToolName?: string;
126
158
  toolUseId?: string;
127
159
  parentToolUseId?: string;
@@ -129,6 +161,7 @@ interface UiLine {
129
161
  bodyTitle?: string;
130
162
  titleStatus?: "success" | "failure";
131
163
  toolDisplay?: UiToolDisplay;
164
+ toolStream?: UiToolStream;
132
165
  format?: "markdown" | "ansi" | "plain" | "diff";
133
166
  previewStyle?: "summary";
134
167
  summaryMaxLines?: number;
@@ -411,6 +444,7 @@ export declare class WebRepl {
411
444
  configuredEnabled: boolean;
412
445
  name: string;
413
446
  source: "builtin" | "external" | "plugin";
447
+ presentation: ToolPresentation;
414
448
  pluginId?: string;
415
449
  pluginName?: string;
416
450
  }[];
@@ -425,6 +459,7 @@ export declare class WebRepl {
425
459
  effectiveEnabled: boolean;
426
460
  name: string;
427
461
  source: "builtin" | "external" | "plugin";
462
+ presentation: ToolPresentation;
428
463
  pluginId?: string;
429
464
  pluginName?: string;
430
465
  }[];
@@ -515,6 +550,10 @@ export declare class WebRepl {
515
550
  private finalizeLiveLine;
516
551
  private finalizeThinkingLine;
517
552
  private finalizeLiveToolLines;
553
+ private cancelLiveToolLines;
554
+ private patchLiveToolLine;
555
+ private applyToolProgress;
556
+ private applyAvailableToolResult;
518
557
  private handleEvent;
519
558
  private matchesPendingUserImageEcho;
520
559
  private handleCommandOrPrompt;