neoctl 0.2.40 → 0.2.42

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 (206) hide show
  1. package/README.md +43 -585
  2. package/dist/context/prompts.js +2 -1
  3. package/dist/context/prompts.js.map +1 -1
  4. package/dist/core/run-agent.js +2 -0
  5. package/dist/core/run-agent.js.map +1 -1
  6. package/dist/repl/index.js +13 -1
  7. package/dist/repl/index.js.map +1 -1
  8. package/dist/tools/builtins/image-capabilities.d.ts +21 -0
  9. package/dist/tools/builtins/image-capabilities.js +97 -0
  10. package/dist/tools/builtins/image-capabilities.js.map +1 -0
  11. package/dist/tools/builtins/image-generation-tool.d.ts +14 -7
  12. package/dist/tools/builtins/image-generation-tool.js +141 -143
  13. package/dist/tools/builtins/image-generation-tool.js.map +1 -1
  14. package/dist/tools/builtins/image-output-verification.d.ts +14 -0
  15. package/dist/tools/builtins/image-output-verification.js +183 -0
  16. package/dist/tools/builtins/image-output-verification.js.map +1 -0
  17. package/dist/tools/registry.d.ts +2 -0
  18. package/dist/tools/registry.js +6 -0
  19. package/dist/tools/registry.js.map +1 -1
  20. package/dist/tools/run-tool-use.js +5 -0
  21. package/dist/tools/run-tool-use.js.map +1 -1
  22. package/dist/web/image-result-metadata.d.ts +20 -0
  23. package/dist/web/image-result-metadata.js +20 -0
  24. package/dist/web/image-result-metadata.js.map +1 -0
  25. package/dist/web/index.d.ts +4 -1
  26. package/dist/web/index.js +20 -5
  27. package/dist/web/index.js.map +1 -1
  28. package/docs/prompt-config.md +1 -1
  29. package/package.json +22 -20
  30. package/dist/agents/agent-report-security.test.d.ts +0 -1
  31. package/dist/agents/agent-report-security.test.js +0 -301
  32. package/dist/agents/agent-report-security.test.js.map +0 -1
  33. package/dist/agents/agent-tool-persistence.test.d.ts +0 -1
  34. package/dist/agents/agent-tool-persistence.test.js +0 -319
  35. package/dist/agents/agent-tool-persistence.test.js.map +0 -1
  36. package/dist/agents/coordination-boundary.test.d.ts +0 -1
  37. package/dist/agents/coordination-boundary.test.js +0 -58
  38. package/dist/agents/coordination-boundary.test.js.map +0 -1
  39. package/dist/agents/live-preview-redaction-security.test.d.ts +0 -1
  40. package/dist/agents/live-preview-redaction-security.test.js +0 -286
  41. package/dist/agents/live-preview-redaction-security.test.js.map +0 -1
  42. package/dist/agents/no-nested-delegation.test.d.ts +0 -1
  43. package/dist/agents/no-nested-delegation.test.js +0 -38
  44. package/dist/agents/no-nested-delegation.test.js.map +0 -1
  45. package/dist/agents/obs07-11-run-facts.test.d.ts +0 -1
  46. package/dist/agents/obs07-11-run-facts.test.js +0 -459
  47. package/dist/agents/obs07-11-run-facts.test.js.map +0 -1
  48. package/dist/agents/smoke-agent-lifecycle.d.ts +0 -1
  49. package/dist/agents/smoke-agent-lifecycle.js +0 -192
  50. package/dist/agents/smoke-agent-lifecycle.js.map +0 -1
  51. package/dist/agents/smoke-agents.d.ts +0 -1
  52. package/dist/agents/smoke-agents.js +0 -362
  53. package/dist/agents/smoke-agents.js.map +0 -1
  54. package/dist/context/prompt-config.test.d.ts +0 -1
  55. package/dist/context/prompt-config.test.js +0 -128
  56. package/dist/context/prompt-config.test.js.map +0 -1
  57. package/dist/context/smoke-context.d.ts +0 -1
  58. package/dist/context/smoke-context.js +0 -502
  59. package/dist/context/smoke-context.js.map +0 -1
  60. package/dist/core/obs04-visible-data.test.d.ts +0 -1
  61. package/dist/core/obs04-visible-data.test.js +0 -147
  62. package/dist/core/obs04-visible-data.test.js.map +0 -1
  63. package/dist/core/query-session-settings.test.d.ts +0 -1
  64. package/dist/core/query-session-settings.test.js +0 -252
  65. package/dist/core/query-session-settings.test.js.map +0 -1
  66. package/dist/core/run-agent-pause.test.d.ts +0 -1
  67. package/dist/core/run-agent-pause.test.js +0 -52
  68. package/dist/core/run-agent-pause.test.js.map +0 -1
  69. package/dist/core/run-agent-persistence.test.d.ts +0 -1
  70. package/dist/core/run-agent-persistence.test.js +0 -222
  71. package/dist/core/run-agent-persistence.test.js.map +0 -1
  72. package/dist/core/session-prompt-inheritance.test.d.ts +0 -1
  73. package/dist/core/session-prompt-inheritance.test.js +0 -132
  74. package/dist/core/session-prompt-inheritance.test.js.map +0 -1
  75. package/dist/core/session-settings-prompt.test.d.ts +0 -1
  76. package/dist/core/session-settings-prompt.test.js +0 -266
  77. package/dist/core/session-settings-prompt.test.js.map +0 -1
  78. package/dist/core/smoke-core-loop.d.ts +0 -1
  79. package/dist/core/smoke-core-loop.js +0 -290
  80. package/dist/core/smoke-core-loop.js.map +0 -1
  81. package/dist/core/smoke-image-integrity.d.ts +0 -1
  82. package/dist/core/smoke-image-integrity.js +0 -67
  83. package/dist/core/smoke-image-integrity.js.map +0 -1
  84. package/dist/execution/docker.test.d.ts +0 -1
  85. package/dist/execution/docker.test.js +0 -57
  86. package/dist/execution/docker.test.js.map +0 -1
  87. package/dist/model/openai-native-image-guard.test.d.ts +0 -1
  88. package/dist/model/openai-native-image-guard.test.js +0 -101
  89. package/dist/model/openai-native-image-guard.test.js.map +0 -1
  90. package/dist/model/openai-responses-instructions.test.d.ts +0 -1
  91. package/dist/model/openai-responses-instructions.test.js +0 -64
  92. package/dist/model/openai-responses-instructions.test.js.map +0 -1
  93. package/dist/model/smoke-openai.d.ts +0 -1
  94. package/dist/model/smoke-openai.js +0 -44
  95. package/dist/model/smoke-openai.js.map +0 -1
  96. package/dist/model/smoke-responses-mapper.d.ts +0 -1
  97. package/dist/model/smoke-responses-mapper.js +0 -156
  98. package/dist/model/smoke-responses-mapper.js.map +0 -1
  99. package/dist/plugins/smoke-plugin-system.d.ts +0 -1
  100. package/dist/plugins/smoke-plugin-system.js +0 -63
  101. package/dist/plugins/smoke-plugin-system.js.map +0 -1
  102. package/dist/repl/smoke-run-command.d.ts +0 -1
  103. package/dist/repl/smoke-run-command.js +0 -43
  104. package/dist/repl/smoke-run-command.js.map +0 -1
  105. package/dist/secrets/smoke-secrets.d.ts +0 -1
  106. package/dist/secrets/smoke-secrets.js +0 -73
  107. package/dist/secrets/smoke-secrets.js.map +0 -1
  108. package/dist/session/session-store-safety.test.d.ts +0 -1
  109. package/dist/session/session-store-safety.test.js +0 -107
  110. package/dist/session/session-store-safety.test.js.map +0 -1
  111. package/dist/session/smoke-session.d.ts +0 -1
  112. package/dist/session/smoke-session.js +0 -233
  113. package/dist/session/smoke-session.js.map +0 -1
  114. package/dist/skills/smoke-skills.d.ts +0 -1
  115. package/dist/skills/smoke-skills.js +0 -109
  116. package/dist/skills/smoke-skills.js.map +0 -1
  117. package/dist/tasks/subagent-tools.test.d.ts +0 -1
  118. package/dist/tasks/subagent-tools.test.js +0 -159
  119. package/dist/tasks/subagent-tools.test.js.map +0 -1
  120. package/dist/tasks/task-ack-size.test.d.ts +0 -1
  121. package/dist/tasks/task-ack-size.test.js +0 -101
  122. package/dist/tasks/task-ack-size.test.js.map +0 -1
  123. package/dist/tasks/task-persistence.test.d.ts +0 -1
  124. package/dist/tasks/task-persistence.test.js +0 -331
  125. package/dist/tasks/task-persistence.test.js.map +0 -1
  126. package/dist/tools/smoke-exec-process.d.ts +0 -1
  127. package/dist/tools/smoke-exec-process.js +0 -127
  128. package/dist/tools/smoke-exec-process.js.map +0 -1
  129. package/dist/tools/smoke-terminal-output-chain.d.ts +0 -1
  130. package/dist/tools/smoke-terminal-output-chain.js +0 -245
  131. package/dist/tools/smoke-terminal-output-chain.js.map +0 -1
  132. package/dist/tools/smoke-tool-system.d.ts +0 -1
  133. package/dist/tools/smoke-tool-system.js +0 -412
  134. package/dist/tools/smoke-tool-system.js.map +0 -1
  135. package/dist/tools/terminal-background-history.test.d.ts +0 -1
  136. package/dist/tools/terminal-background-history.test.js +0 -77
  137. package/dist/tools/terminal-background-history.test.js.map +0 -1
  138. package/dist/tools/terminal-output-persistence.test.d.ts +0 -1
  139. package/dist/tools/terminal-output-persistence.test.js +0 -50
  140. package/dist/tools/terminal-output-persistence.test.js.map +0 -1
  141. package/dist/tools/terminal-output-store.test.d.ts +0 -1
  142. package/dist/tools/terminal-output-store.test.js +0 -364
  143. package/dist/tools/terminal-output-store.test.js.map +0 -1
  144. package/dist/web/agent-content-detail.test.d.ts +0 -1
  145. package/dist/web/agent-content-detail.test.js +0 -307
  146. package/dist/web/agent-content-detail.test.js.map +0 -1
  147. package/dist/web/agent-parent-messages.test.d.ts +0 -1
  148. package/dist/web/agent-parent-messages.test.js +0 -58
  149. package/dist/web/agent-parent-messages.test.js.map +0 -1
  150. package/dist/web/agent-tool-payload-security.test.d.ts +0 -1
  151. package/dist/web/agent-tool-payload-security.test.js +0 -120
  152. package/dist/web/agent-tool-payload-security.test.js.map +0 -1
  153. package/dist/web/prompt-config-protocol.test.d.ts +0 -1
  154. package/dist/web/prompt-config-protocol.test.js +0 -78
  155. package/dist/web/prompt-config-protocol.test.js.map +0 -1
  156. package/dist/web/session-prompt-integration.test.d.ts +0 -1
  157. package/dist/web/session-prompt-integration.test.js +0 -57
  158. package/dist/web/session-prompt-integration.test.js.map +0 -1
  159. package/dist/web/session-settings.test.d.ts +0 -1
  160. package/dist/web/session-settings.test.js +0 -254
  161. package/dist/web/session-settings.test.js.map +0 -1
  162. package/dist/web/smoke-agent-content-http.d.ts +0 -1
  163. package/dist/web/smoke-agent-content-http.js +0 -446
  164. package/dist/web/smoke-agent-content-http.js.map +0 -1
  165. package/dist/web/smoke-plan-payload.d.ts +0 -1
  166. package/dist/web/smoke-plan-payload.js +0 -30
  167. package/dist/web/smoke-plan-payload.js.map +0 -1
  168. package/dist/web/smoke-runtime-context-protocol.d.ts +0 -1
  169. package/dist/web/smoke-runtime-context-protocol.js +0 -42
  170. package/dist/web/smoke-runtime-context-protocol.js.map +0 -1
  171. package/dist/web/smoke-status-semantics.d.ts +0 -1
  172. package/dist/web/smoke-status-semantics.js +0 -90
  173. package/dist/web/smoke-status-semantics.js.map +0 -1
  174. package/dist/web/smoke-task-session-entrypoints.d.ts +0 -1
  175. package/dist/web/smoke-task-session-entrypoints.js +0 -96
  176. package/dist/web/smoke-task-session-entrypoints.js.map +0 -1
  177. package/dist/web/smoke-terminal-output-http.d.ts +0 -1
  178. package/dist/web/smoke-terminal-output-http.js +0 -377
  179. package/dist/web/smoke-terminal-output-http.js.map +0 -1
  180. package/dist/web/smoke-tool-call-detail.d.ts +0 -1
  181. package/dist/web/smoke-tool-call-detail.js +0 -106
  182. package/dist/web/smoke-tool-call-detail.js.map +0 -1
  183. package/dist/web/smoke-tool-call-http.d.ts +0 -1
  184. package/dist/web/smoke-tool-call-http.js +0 -100
  185. package/dist/web/smoke-tool-call-http.js.map +0 -1
  186. package/dist/web/smoke-tool-detail-fields-http.d.ts +0 -1
  187. package/dist/web/smoke-tool-detail-fields-http.js +0 -121
  188. package/dist/web/smoke-tool-detail-fields-http.js.map +0 -1
  189. package/dist/web/smoke-web-agent-tasks.d.ts +0 -1
  190. package/dist/web/smoke-web-agent-tasks.js +0 -50
  191. package/dist/web/smoke-web-agent-tasks.js.map +0 -1
  192. package/dist/web/smoke-web-history.d.ts +0 -1
  193. package/dist/web/smoke-web-history.js +0 -183
  194. package/dist/web/smoke-web-history.js.map +0 -1
  195. package/dist/web/smoke-web-queue.d.ts +0 -1
  196. package/dist/web/smoke-web-queue.js +0 -7
  197. package/dist/web/smoke-web-queue.js.map +0 -1
  198. package/dist/web/smoke-web-terminal-tasks.d.ts +0 -1
  199. package/dist/web/smoke-web-terminal-tasks.js +0 -238
  200. package/dist/web/smoke-web-terminal-tasks.js.map +0 -1
  201. package/dist/web/terminal-presentation.test.d.ts +0 -1
  202. package/dist/web/terminal-presentation.test.js +0 -33
  203. package/dist/web/terminal-presentation.test.js.map +0 -1
  204. package/dist/web/tool-detail-fields.test.d.ts +0 -1
  205. package/dist/web/tool-detail-fields.test.js +0 -121
  206. package/dist/web/tool-detail-fields.test.js.map +0 -1
@@ -1,128 +0,0 @@
1
- import assert from "node:assert/strict";
2
- import { execFile } from "node:child_process";
3
- import fs from "node:fs/promises";
4
- import os from "node:os";
5
- import path from "node:path";
6
- import test from "node:test";
7
- import { promisify } from "node:util";
8
- import { fileURLToPath } from "node:url";
9
- import { PromptConfigStore, PromptConfigError, MAX_SYSTEM_PROMPT_BYTES, readBundledSystemPrompt } from "./prompt-config.js";
10
- import { AdditionalPromptContextManager, AppPromptContextManager, DefaultContextManager } from "./context-manager.js";
11
- import { InMemoryAppPromptStore } from "../app/app-prompt.js";
12
- import { QueryEngine } from "../core/query-engine.js";
13
- import { ToolRegistry } from "../tools/registry.js";
14
- import { createTextMessage } from "../types/messages.js";
15
- async function fixture(t) {
16
- const root = await fs.mkdtemp(path.join(os.tmpdir(), "neo-prompt-config-"));
17
- t.after(() => fs.rm(root, { recursive: true, force: true }));
18
- const filePath = path.join(root, "prompts", "test-version", "system.md");
19
- const store = new PromptConfigStore({ filePath });
20
- return { root, filePath, store };
21
- }
22
- const fails = (status) => (error) => error instanceof PromptConfigError && error.status === status;
23
- test("initializes the real bundled Markdown exactly once; versions are isolated", async (t) => {
24
- const { root, store, filePath } = await fixture(t);
25
- const snapshots = await Promise.all(Array.from({ length: 8 }, () => new PromptConfigStore({ filePath }).read()));
26
- assert.equal(snapshots[0].content, readBundledSystemPrompt());
27
- assert.match(snapshots[0].content, /## Agent Scaffold/);
28
- assert.equal(new Set(snapshots.map((snapshot) => snapshot.revision)).size, 1);
29
- const updated = await store.save(" custom baseline\n", snapshots[0].revision);
30
- assert.equal((await new PromptConfigStore({ filePath }).read()).content, updated.content);
31
- assert.equal(await fs.readFile(filePath, "utf8"), updated.content);
32
- const next = new PromptConfigStore({ homeDir: root, version: "next-version" });
33
- // Ensure this test's explicit home is independent of the runner's path override.
34
- const versioned = new PromptConfigStore({ filePath: path.join(root, "prompts", "next-version", "system.md"), version: "next-version" });
35
- assert.equal((await versioned.read()).content, readBundledSystemPrompt());
36
- assert.notEqual(versioned.filePath, filePath);
37
- assert.equal(next.version, "next-version");
38
- });
39
- test("CAS serializes parallel writers, rejects stale and externally modified revisions", async (t) => {
40
- const { store, filePath } = await fixture(t);
41
- const initial = await store.read();
42
- const results = await Promise.allSettled([
43
- store.save("first", initial.revision),
44
- new PromptConfigStore({ filePath }).save("second", initial.revision),
45
- ]);
46
- assert.equal(results.filter((result) => result.status === "fulfilled").length, 1);
47
- const rejection = results.find((result) => result.status === "rejected");
48
- assert.ok(fails(409)(rejection.reason));
49
- const current = await store.read();
50
- await fs.writeFile(filePath, "external editor change");
51
- await assert.rejects(store.save("must not overwrite", current.revision), fails(409));
52
- assert.equal((await store.read()).content, "external editor change");
53
- assert.deepEqual((await fs.readdir(path.dirname(filePath))).sort(), ["system.md"]);
54
- });
55
- test("rejects illegal content/revisions and never overwrites existing invalid files", async (t) => {
56
- const { store, filePath } = await fixture(t);
57
- const initial = await store.read();
58
- for (const content of [null, undefined, 1, {}, [], "", " \r\n\t"]) {
59
- await assert.rejects(store.save(content, initial.revision), fails(400));
60
- }
61
- for (const revision of [undefined, null, 1, "", "stale"])
62
- await assert.rejects(store.save("ok", revision), fails(400));
63
- await assert.rejects(store.save("你".repeat(Math.ceil(MAX_SYSTEM_PROMPT_BYTES / 3)), initial.revision), fails(413));
64
- const exact = "a".repeat(MAX_SYSTEM_PROMPT_BYTES);
65
- assert.equal((await store.save(exact, initial.revision)).content.length, MAX_SYSTEM_PROMPT_BYTES);
66
- await fs.writeFile(filePath, "");
67
- await assert.rejects(store.read(), fails(400));
68
- assert.equal(await fs.readFile(filePath, "utf8"), "");
69
- await fs.writeFile(filePath, "a".repeat(MAX_SYSTEM_PROMPT_BYTES + 1));
70
- await assert.rejects(store.read(), fails(413));
71
- });
72
- test("atomic file survives a separate process and cross-process CAS admits only one writer", async (t) => {
73
- const { store, filePath } = await fixture(t);
74
- const initial = await store.read();
75
- const moduleUrl = new URL("./prompt-config.js", import.meta.url).href.replace(/\.js$/, import.meta.url.endsWith(".ts") ? ".ts" : ".js");
76
- const run = promisify(execFile);
77
- const script = `import { PromptConfigStore } from ${JSON.stringify(moduleUrl)}; const s = new PromptConfigStore({filePath: process.argv[1]}); try { const result = await s.save(process.argv[2], process.argv[3]); console.log(JSON.stringify(result)); } catch(e) { console.log(JSON.stringify({status:e.status})); }`;
78
- const results = await Promise.all(["process A", "process B"].map((content) => run(process.execPath, ["--import", "tsx", "--input-type=module", "-e", script, filePath, content, initial.revision], { cwd: fileURLToPath(new URL("../../", import.meta.url)) })));
79
- const parsed = results.map((result) => JSON.parse(result.stdout));
80
- assert.equal(parsed.filter((result) => result.status === 409).length, 1);
81
- const saved = parsed.find((result) => result.content);
82
- assert.deepEqual(await new PromptConfigStore({ filePath }).read(), saved);
83
- });
84
- test("every ContextManager build reloads the baseline and preserves tool/plugin/app/runtime sections", async (t) => {
85
- const { root, store, filePath } = await fixture(t);
86
- const app = new InMemoryAppPromptStore();
87
- app.setAppPrompt({ content: "APP_CONTRACT" });
88
- const create = () => new AppPromptContextManager(new AdditionalPromptContextManager(new DefaultContextManager({ cwd: root, promptConfigStore: new PromptConfigStore({ filePath }) }), [{ name: "Plugin", content: "PLUGIN_CONTRACT", cacheStable: true }]), app);
89
- const managers = [create(), create()];
90
- const input = { agentId: "session-A", messages: [], enabledTools: ["image_create", "image_inspect", "secret_request"] };
91
- const before = await managers[0].build(input);
92
- assert.match(before.systemPrompt, /engineering agent running inside neo/);
93
- await store.save("MY_EDITED_BASELINE", (await store.read()).revision);
94
- for (const manager of managers) {
95
- const after = await manager.build(input);
96
- assert.match(after.systemPrompt, /MY_EDITED_BASELINE/);
97
- assert.doesNotMatch(after.systemPrompt, /engineering agent running inside neo/);
98
- for (const text of ["PLUGIN_CONTRACT", "APP_CONTRACT", "agentId=session-A", "48000 serialized characters", "within 1-200000", "use the image_create tool", "use the image_inspect tool", "Secrets:"])
99
- assert.ok(after.systemPrompt.includes(text), text);
100
- }
101
- const noTools = await managers[0].build({ ...input, enabledTools: [] });
102
- assert.match(noTools.systemPrompt, /no drawing\/image generation\/editing tool/);
103
- assert.match(noTools.systemPrompt, /no image loading tool/);
104
- assert.doesNotMatch(noTools.systemPrompt, /Secrets:/);
105
- assert.doesNotMatch(noTools.systemPrompt, /call plan_update/);
106
- const listOnly = await managers[0].build({ ...input, enabledTools: ["secret_list"] });
107
- assert.match(listOnly.systemPrompt, /Secrets:/);
108
- assert.doesNotMatch(listOnly.systemPrompt, /Use secret_request/);
109
- });
110
- test("standard QueryEngine uses the file-backed DefaultContextManager on future requests", async (t) => {
111
- const { root, store, filePath } = await fixture(t);
112
- const previous = process.env.NEO_SYSTEM_PROMPT_PATH;
113
- process.env.NEO_SYSTEM_PROMPT_PATH = filePath;
114
- t.after(() => { if (previous === undefined)
115
- delete process.env.NEO_SYSTEM_PROMPT_PATH;
116
- else
117
- process.env.NEO_SYSTEM_PROMPT_PATH = previous; });
118
- const requests = [];
119
- const engine = new QueryEngine({ cwd: root, model: "test", tools: new ToolRegistry(), session: { enabled: false },
120
- modelGateway: { async *stream(request) { requests.push(request); yield { type: "assistant_message", message: createTextMessage("assistant", "ok") }; } },
121
- });
122
- for await (const _event of engine.sendUserText("first")) { /* drain */ }
123
- await store.save("NEXT_REQUEST_BASELINE", (await store.read()).revision);
124
- for await (const _event of engine.sendUserText("second")) { /* drain */ }
125
- assert.match(requests[0].systemPrompt, /engineering agent running inside neo/);
126
- assert.match(requests.at(-1).systemPrompt, /NEXT_REQUEST_BASELINE/);
127
- });
128
- //# sourceMappingURL=prompt-config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt-config.test.js","sourceRoot":"","sources":["../../src/context/prompt-config.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};