neoctl 0.1.12 → 0.1.14

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 (42) hide show
  1. package/README.md +172 -10
  2. package/dist/context/prompts.js +4 -0
  3. package/dist/context/prompts.js.map +1 -1
  4. package/dist/core/query.js +23 -4
  5. package/dist/core/query.js.map +1 -1
  6. package/dist/core/smoke-core-loop.js +43 -1
  7. package/dist/core/smoke-core-loop.js.map +1 -1
  8. package/dist/index.d.ts +23 -0
  9. package/dist/index.js +23 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/repl/index.js +11 -0
  12. package/dist/repl/index.js.map +1 -1
  13. package/dist/session/simple-session-runtime.d.ts +74 -0
  14. package/dist/session/simple-session-runtime.js +171 -0
  15. package/dist/session/simple-session-runtime.js.map +1 -0
  16. package/dist/skills/skill-filesystem.d.ts +32 -0
  17. package/dist/skills/skill-filesystem.js +371 -0
  18. package/dist/skills/skill-filesystem.js.map +1 -0
  19. package/dist/skills/skill-management-tools.d.ts +36 -0
  20. package/dist/skills/skill-management-tools.js +188 -0
  21. package/dist/skills/skill-management-tools.js.map +1 -0
  22. package/dist/skills/skill-tool.d.ts +85 -5
  23. package/dist/skills/skill-tool.js +173 -14
  24. package/dist/skills/skill-tool.js.map +1 -1
  25. package/dist/skills/smoke-skills.js +53 -4
  26. package/dist/skills/smoke-skills.js.map +1 -1
  27. package/dist/tools/builtins/image-generation-tool.d.ts +51 -0
  28. package/dist/tools/builtins/image-generation-tool.js +298 -0
  29. package/dist/tools/builtins/image-generation-tool.js.map +1 -0
  30. package/dist/tools/registry.d.ts +1 -0
  31. package/dist/tools/registry.js +11 -0
  32. package/dist/tools/registry.js.map +1 -1
  33. package/dist/tools/run-tool-use.js +1 -1
  34. package/dist/tools/run-tool-use.js.map +1 -1
  35. package/dist/tools/tool.d.ts +9 -1
  36. package/dist/tools/tool.js.map +1 -1
  37. package/dist/ui/display-message.d.ts +101 -0
  38. package/dist/ui/display-message.js +113 -0
  39. package/dist/ui/display-message.js.map +1 -0
  40. package/dist/web/index.js +11 -0
  41. package/dist/web/index.js.map +1 -1
  42. package/package.json +19 -1
@@ -20,6 +20,7 @@ import { listDirectoryTool, readFileTool } from "../tools/builtins/filesystem-to
20
20
  import { grepTool } from "../tools/builtins/grep-tool.js";
21
21
  import { searchTool } from "../tools/builtins/search-tool.js";
22
22
  import { planTool } from "../tools/builtins/plan-tool.js";
23
+ import { createOpenAIImageGenerationTool } from "../tools/builtins/image-generation-tool.js";
23
24
  import { createAgentTool, resumeAgentTask } from "../agents/agent-tool.js";
24
25
  import { createTaskTools } from "../tasks/task-tools.js";
25
26
  import { TaskStore } from "../tasks/task-store.js";
@@ -156,6 +157,8 @@ async function createRuntime() {
156
157
  tools.register(readFileTool);
157
158
  tools.register(grepTool);
158
159
  tools.register(searchTool);
160
+ if (modelConfig?.provider === "openai")
161
+ tools.register(createOpenAIImageGenerationTool());
159
162
  tools.register(planTool);
160
163
  const agentRuntime = { modelGateway, tools, taskStore };
161
164
  tools.register(createAgentTool(agentRuntime));
@@ -199,12 +202,18 @@ async function createRuntime() {
199
202
  agentRuntime,
200
203
  usage: new SessionUsageTracker(),
201
204
  taskStore,
205
+ tools,
202
206
  initialMetrics,
203
207
  defaultReasoning: modelConfig?.defaultReasoning,
204
208
  envPath: process.env.NEO_ENV_FILE?.trim() ? path.resolve(process.env.NEO_ENV_FILE.trim()) : envLoad.userDotEnvPath,
205
209
  envNotice: envLoad.createdUserDotEnv ? formatCreatedEnvNotice(envLoad.userDotEnvPath) : undefined,
206
210
  };
207
211
  }
212
+ function syncImageGenerationTool(runtime, provider) {
213
+ runtime.tools.unregister("image2");
214
+ if (provider === "openai")
215
+ runtime.tools.register(createOpenAIImageGenerationTool());
216
+ }
208
217
  function formatCreatedEnvNotice(path) {
209
218
  return `Created default config file: ${path}\nSet MODEL_PROVIDER and the matching provider section (for example OPENAI_API_KEY or KIMI_API_KEY), then restart neo.`;
210
219
  }
@@ -1979,6 +1988,7 @@ async function handleModelCommand(command, runtime) {
1979
1988
  fallbackModel: config.fallbackModel,
1980
1989
  reasoning: config.defaultReasoning,
1981
1990
  });
1991
+ syncImageGenerationTool(runtime, config.provider);
1982
1992
  runtime.defaultReasoning = config.defaultReasoning;
1983
1993
  }
1984
1994
  }
@@ -2605,6 +2615,7 @@ async function submitLoginForm(state, runtime, append, setLoginFormState, setSta
2605
2615
  fallbackModel: config.fallbackModel,
2606
2616
  reasoning: config.defaultReasoning,
2607
2617
  });
2618
+ syncImageGenerationTool(runtime, config.provider);
2608
2619
  runtime.defaultReasoning = config.defaultReasoning;
2609
2620
  const metrics = await runtime.engine.contextMetrics();
2610
2621
  setStatus((current) => ({