neoctl 0.2.46 → 0.2.47

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 (56) hide show
  1. package/dist/agents/agent-tool.js +2 -1
  2. package/dist/agents/agent-tool.js.map +1 -1
  3. package/dist/context/compaction.d.ts +1 -0
  4. package/dist/context/compaction.js +6 -2
  5. package/dist/context/compaction.js.map +1 -1
  6. package/dist/core/abortable-stream.d.ts +2 -0
  7. package/dist/core/abortable-stream.js +17 -0
  8. package/dist/core/abortable-stream.js.map +1 -1
  9. package/dist/core/compaction-progress.d.ts +1 -1
  10. package/dist/core/compaction-progress.js +7 -5
  11. package/dist/core/compaction-progress.js.map +1 -1
  12. package/dist/core/execution-state.d.ts +2 -0
  13. package/dist/core/execution-state.js +2 -1
  14. package/dist/core/execution-state.js.map +1 -1
  15. package/dist/core/query-engine.d.ts +6 -1
  16. package/dist/core/query-engine.js +65 -18
  17. package/dist/core/query-engine.js.map +1 -1
  18. package/dist/core/query.js +46 -6
  19. package/dist/core/query.js.map +1 -1
  20. package/dist/model/model-gateway.d.ts +4 -0
  21. package/dist/model/model-gateway.js.map +1 -1
  22. package/dist/model/openai-chat-mapper.js +2 -0
  23. package/dist/model/openai-chat-mapper.js.map +1 -1
  24. package/dist/model/openai-responses-mapper.js +3 -0
  25. package/dist/model/openai-responses-mapper.js.map +1 -1
  26. package/dist/model/tool-input-stream.d.ts +31 -0
  27. package/dist/model/tool-input-stream.js +226 -0
  28. package/dist/model/tool-input-stream.js.map +1 -0
  29. package/dist/session/session-store.js +2 -0
  30. package/dist/session/session-store.js.map +1 -1
  31. package/dist/tasks/subagent-tools.js +1 -1
  32. package/dist/tasks/subagent-tools.js.map +1 -1
  33. package/dist/tools/builtins/exec-process-manager.d.ts +2 -1
  34. package/dist/tools/builtins/exec-process-manager.js +2 -1
  35. package/dist/tools/builtins/exec-process-manager.js.map +1 -1
  36. package/dist/tools/builtins/exec-tool.js +1 -1
  37. package/dist/tools/builtins/exec-tool.js.map +1 -1
  38. package/dist/tools/run-tool-use.js +2 -1
  39. package/dist/tools/run-tool-use.js.map +1 -1
  40. package/dist/tools/terminal-output-store.d.ts +1 -0
  41. package/dist/tools/terminal-output-store.js +13 -1
  42. package/dist/tools/terminal-output-store.js.map +1 -1
  43. package/dist/types/events.d.ts +11 -0
  44. package/dist/web/image-result-metadata.d.ts +6 -0
  45. package/dist/web/image-result-metadata.js +3 -0
  46. package/dist/web/image-result-metadata.js.map +1 -1
  47. package/dist/web/index.d.ts +14 -1
  48. package/dist/web/index.js +119 -15
  49. package/dist/web/index.js.map +1 -1
  50. package/dist/web/tool-activity.d.ts +9 -0
  51. package/dist/web/tool-activity.js +19 -0
  52. package/dist/web/tool-activity.js.map +1 -0
  53. package/dist/web/tool-observation-result.d.ts +1 -0
  54. package/dist/web/tool-observation-result.js +35 -0
  55. package/dist/web/tool-observation-result.js.map +1 -0
  56. package/package.json +1 -1
@@ -0,0 +1,9 @@
1
+ export interface ToolActivity {
2
+ phase: 'generating' | 'queued' | 'running' | 'completed' | 'failed' | 'interrupted';
3
+ input: Record<string, unknown>;
4
+ truncated?: boolean;
5
+ }
6
+ export declare const ACTIVITY_ARGUMENT_LIMIT = 80000;
7
+ /** Bounded projection of already-complete validated input, also used by history restore. */
8
+ export declare function partialToolInput(raw: string): Record<string, unknown>;
9
+ export declare function toolActivity(input: unknown, phase: ToolActivity['phase']): ToolActivity;
@@ -0,0 +1,19 @@
1
+ import { ToolInputStream } from '../model/tool-input-stream.js';
2
+ export const ACTIVITY_ARGUMENT_LIMIT = 80_000;
3
+ /** Bounded projection of already-complete validated input, also used by history restore. */
4
+ export function partialToolInput(raw) {
5
+ const decoder = new ToolInputStream();
6
+ decoder.append(raw);
7
+ return decoder.snapshot();
8
+ }
9
+ export function toolActivity(input, phase) {
10
+ let raw;
11
+ try {
12
+ raw = JSON.stringify(input ?? {}) ?? '{}';
13
+ }
14
+ catch {
15
+ raw = '{}';
16
+ }
17
+ return { phase, input: partialToolInput(raw.slice(0, ACTIVITY_ARGUMENT_LIMIT)), truncated: raw.length > ACTIVITY_ARGUMENT_LIMIT || undefined };
18
+ }
19
+ //# sourceMappingURL=tool-activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-activity.js","sourceRoot":"","sources":["../../src/web/tool-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAO9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,GAAU;IACzC,MAAM,OAAO,GAAC,IAAI,eAAe,EAAE,CAAC;IAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAAA,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,KAA4B;IACvE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,GAAG,GAAG,IAAI,CAAC;IAAC,CAAC;IACxE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,GAAG,uBAAuB,IAAI,SAAS,EAAE,CAAC;AACjJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function toolObservationResult(name: string, output: unknown): Record<string, unknown> | undefined;
@@ -0,0 +1,35 @@
1
+ import { sanitizeAgentToolPayload } from './tool-call-detail.js';
2
+ // UI projections only. Full results remain in the existing tool detail/output infrastructure.
3
+ export function toolObservationResult(name, output) {
4
+ const data = sanitizeAgentToolPayload(name, output).value;
5
+ if (!data || typeof data !== 'object' || Array.isArray(data))
6
+ return undefined;
7
+ const record = data;
8
+ const keys = {
9
+ file_read: ['path', 'content', 'startLine', 'endLine', 'hasMoreAfter'],
10
+ file_list: ['path', 'type', 'entries', 'truncated'], file_search: ['query', 'matches', 'truncated'],
11
+ file_edit: ['path', 'patch', 'operation', 'replacements'], file_write: ['path', 'patch', 'operation'],
12
+ terminal_run: ['command', 'stdout', 'stderr', 'exit_code', 'status', 'session_id', 'owner_session_id', 'output_ref'],
13
+ terminal_control: ['command', 'stdout', 'stderr', 'exit_code', 'status', 'session_id', 'owner_session_id', 'output_ref'],
14
+ web_search: ['query', 'results'], plan_update: ['title', 'items'],
15
+ image_inspect: ['images', 'total', 'nextOffset'], image_note: ['recorded', 'failed'], framework_feedback: ['title', 'id'],
16
+ };
17
+ const fields = keys[name] || (name.startsWith('subagent_') ? ['tasks', 'status', 'task_id', 'agent_id', 'result', 'output', 'report', 'content', 'displaySource', 'run_generation', 'runGeneration', 'taskId', 'message'] : []);
18
+ let budget = 40_000;
19
+ const bound = (value, depth = 0) => {
20
+ if (budget <= 0 || depth > 12)
21
+ return undefined;
22
+ if (typeof value === 'string') {
23
+ const text = value.slice(0, Math.min(budget, 16000));
24
+ budget -= text.length;
25
+ return text;
26
+ }
27
+ if (Array.isArray(value))
28
+ return value.slice(0, 80).map(v => bound(v, depth + 1));
29
+ if (value && typeof value === 'object')
30
+ return Object.fromEntries(Object.entries(value).slice(0, 40).map(([k, v]) => [k, bound(v, depth + 1)]));
31
+ return value;
32
+ };
33
+ return Object.fromEntries(fields.filter(k => record[k] !== undefined).map(k => [k, bound(record[k])]));
34
+ }
35
+ //# sourceMappingURL=tool-observation-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-observation-result.js","sourceRoot":"","sources":["../../src/web/tool-observation-result.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neoctl",
3
- "version": "0.2.46",
3
+ "version": "0.2.47",
4
4
  "description": "TypeScript scaffold for a streaming agent runtime with a REPL UI layer.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",