@agent-smith/cli 0.0.67 → 0.0.69

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.
@@ -1,4 +1,4 @@
1
- import { actionOptions, taskOptions, workflowOptions } from "../options.js";
1
+ import { allOptions } from "../options.js";
2
2
  import { executeTaskCmd } from "../lib/tasks/cmd.js";
3
3
  import { executeActionCmd } from "../lib/actions/cmd.js";
4
4
  import { executeWorkflowCmd } from "../lib/workflows/cmd.js";
@@ -11,7 +11,7 @@ function initCommandsFromAliases(program, aliases, features) {
11
11
  .action(async (...args) => {
12
12
  await executeTaskCmd(alias.name, args);
13
13
  });
14
- taskOptions.forEach(o => tcmd.addOption(o));
14
+ allOptions.forEach(o => tcmd.addOption(o));
15
15
  if (features.task[alias.name]?.variables) {
16
16
  features.task[alias.name].variables?.optional.forEach(v => {
17
17
  tcmd.option(`--${v} <value>`);
@@ -27,7 +27,7 @@ function initCommandsFromAliases(program, aliases, features) {
27
27
  .action(async (...args) => {
28
28
  await executeActionCmd(alias.name, args);
29
29
  });
30
- actionOptions.forEach(o => acmd.addOption(o));
30
+ allOptions.forEach(o => acmd.addOption(o));
31
31
  break;
32
32
  case "workflow":
33
33
  const wcmd = program.command(`${alias.name} [args...]`)
@@ -35,7 +35,7 @@ function initCommandsFromAliases(program, aliases, features) {
35
35
  .action(async (...args) => {
36
36
  executeWorkflowCmd(alias.name, args);
37
37
  });
38
- workflowOptions.forEach(o => wcmd.addOption(o));
38
+ allOptions.forEach(o => wcmd.addOption(o));
39
39
  }
40
40
  });
41
41
  return program;
package/dist/cmd/cmds.js CHANGED
@@ -38,6 +38,8 @@ async function buildCmds() {
38
38
  return program;
39
39
  }
40
40
  async function parseCmd(program) {
41
+ program.name('Agent Smith terminal client');
42
+ program.description('Terminal agents toolkit');
41
43
  await program.parseAsync();
42
44
  }
43
45
  export { program, buildCmds, chat, parseCmd, };
@@ -29,6 +29,9 @@ function parseTaskConfigOptions(options) {
29
29
  if (options?.repeat_penalty !== undefined) {
30
30
  optionsInferParams.repeat_penalty = options.repeat_penalty;
31
31
  }
32
+ if (options?.images) {
33
+ optionsInferParams.images = options.images;
34
+ }
32
35
  if (options?.model !== undefined) {
33
36
  conf.modelname = options.model;
34
37
  }
@@ -12,7 +12,7 @@ import { program } from "../../cmds.js";
12
12
  import { executeAction } from "../actions/cmd.js";
13
13
  import { parseCommandArgs, parseTaskConfigOptions } from "../options_parsers.js";
14
14
  import { runtimeDataError, runtimeWarning } from "../user_msgs.js";
15
- import { formatStats, readPromptFile } from "../utils.js";
15
+ import { formatStats, processOutput, readPromptFile } from "../utils.js";
16
16
  import { executeWorkflow } from "../workflows/cmd.js";
17
17
  import { configureTaskModel, mergeInferParams } from "./conf.js";
18
18
  import { McpServer } from "../mcp.js";
@@ -24,7 +24,8 @@ async function executeTask(name, payload, options, quiet, expert) {
24
24
  console.log("Task options:", options);
25
25
  }
26
26
  const taskFileSpec = openTaskSpec(name);
27
- const conf = parseTaskConfigOptions(options);
27
+ const opts = payload?.inferParams ? { ...options, ...payload.inferParams } : options;
28
+ const conf = parseTaskConfigOptions(opts);
28
29
  if (options.debug) {
29
30
  console.log("conf:", conf);
30
31
  }
@@ -212,6 +213,7 @@ async function executeTask(name, payload, options, quiet, expert) {
212
213
  throw new Error(`executing task: ${name} (${err})`);
213
214
  }
214
215
  mcpServers.forEach(async (s) => await s.stop());
216
+ await processOutput(out);
215
217
  if (isChatMode.value) {
216
218
  const data = { message: '>', default: "" };
217
219
  const prompt = await input(data);
@@ -1,6 +1,5 @@
1
1
  import { InferenceStats } from "@locallm/types";
2
2
  declare function readPromptFile(): string;
3
3
  declare function processOutput(res: any): Promise<void>;
4
- declare function parseInputOptions(options: any): Promise<string | null>;
5
4
  declare function formatStats(stats: InferenceStats): string;
6
- export { formatStats, parseInputOptions, processOutput, readPromptFile, };
5
+ export { formatStats, processOutput, readPromptFile, };
@@ -1,8 +1,9 @@
1
1
  import { marked } from "../../agent.js";
2
- import { formatMode, initFilepaths, inputMode, outputMode, promptfilePath } from "../../state/state.js";
3
- import { readClipboard, writeToClipboard } from "../sys/clipboard.js";
2
+ import { formatMode, initFilepaths, outputMode, promptfilePath } from "../../state/state.js";
3
+ import { writeToClipboard } from "../sys/clipboard.js";
4
4
  import { readFile } from "../sys/read.js";
5
5
  import { splitThinking } from "../../utils/text.js";
6
+ import { runtimeError } from "./user_msgs.js";
6
7
  function readPromptFile() {
7
8
  initFilepaths();
8
9
  return readFile(promptfilePath.value);
@@ -22,7 +23,12 @@ async function processOutput(res) {
22
23
  hasTextData = true;
23
24
  }
24
25
  else {
25
- data = JSON.stringify(res);
26
+ try {
27
+ data = JSON.stringify(res);
28
+ }
29
+ catch (e) {
30
+ runtimeError("Unable to parse json result");
31
+ }
26
32
  }
27
33
  }
28
34
  else {
@@ -38,16 +44,6 @@ async function processOutput(res) {
38
44
  }
39
45
  }
40
46
  }
41
- async function parseInputOptions(options) {
42
- let out = null;
43
- if (options?.Ic == true || inputMode.value == "clipboard") {
44
- out = await readClipboard();
45
- }
46
- else if (options.Pf || inputMode.value == "promptfile") {
47
- out = readPromptFile();
48
- }
49
- return out;
50
- }
51
47
  function formatStats(stats) {
52
48
  const buf = new Array();
53
49
  buf.push(`${stats.tokensPerSecond} tps`);
@@ -56,4 +52,4 @@ function formatStats(stats) {
56
52
  buf.push(`${stats.inferenceTimeSeconds}s inference)`);
57
53
  return buf.join(" ");
58
54
  }
59
- export { formatStats, parseInputOptions, processOutput, readPromptFile, };
55
+ export { formatStats, processOutput, readPromptFile, };
@@ -2,7 +2,5 @@ import { Option } from "commander";
2
2
  declare const displayOptions: Array<Option>;
3
3
  declare const inferenceOptions: Array<Option>;
4
4
  declare const ioOptions: Array<Option>;
5
- declare const taskOptions: Array<Option>;
6
- declare const actionOptions: Array<Option>;
7
- declare const workflowOptions: Array<Option>;
8
- export { displayOptions, ioOptions, inferenceOptions, taskOptions, actionOptions, workflowOptions, };
5
+ declare const allOptions: Array<Option>;
6
+ export { displayOptions, ioOptions, inferenceOptions, allOptions, };
@@ -22,20 +22,13 @@ const ioOptions = [
22
22
  new Option("--omd, --markdown-output", "use markdown output"),
23
23
  new Option("--otxt, --text-output", "use text output (default)"),
24
24
  ];
25
- const taskOptions = [
25
+ const allOptions = [
26
26
  ...displayOptions,
27
27
  ...ioOptions,
28
28
  ...inferenceOptions,
29
29
  new Option("--tokens", "toggle show tokens mode"),
30
30
  new Option("-c, --chat", "toggle chat mode for tasks"),
31
31
  ];
32
- const actionOptions = [
33
- ...displayOptions,
34
- ...ioOptions,
35
- ];
36
- const workflowOptions = [
37
- ...taskOptions
38
- ];
39
32
  function parseString(value) {
40
33
  if (typeof value !== 'string')
41
34
  throw new InvalidArgumentError('The value must be a string');
@@ -59,4 +52,4 @@ function parseFloatValue(value) {
59
52
  else
60
53
  throw new InvalidArgumentError(`Invalid float: ${value}`);
61
54
  }
62
- export { displayOptions, ioOptions, inferenceOptions, taskOptions, actionOptions, workflowOptions, };
55
+ export { displayOptions, ioOptions, inferenceOptions, allOptions, };
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { argv } from 'process';
3
3
  import { initAgent } from './agent.js';
4
4
  import { query } from "./cli.js";
5
5
  import { buildCmds, parseCmd } from './cmd/cmds.js';
6
- import { initState, isChatMode, runMode } from './state/state.js';
6
+ import { formatMode, initState, inputMode, isChatMode, outputMode, runMode } from './state/state.js';
7
7
  import { updateConfCmd } from './cmd/clicmds/update.js';
8
8
  async function main() {
9
9
  const nargs = argv.length;
@@ -24,6 +24,18 @@ async function main() {
24
24
  if (options?.chat === true) {
25
25
  isChatMode.value = true;
26
26
  }
27
+ if (options?.clipboardInput !== undefined) {
28
+ inputMode.value = "clipboard";
29
+ }
30
+ if (options?.inputFile !== undefined) {
31
+ inputMode.value = "promptfile";
32
+ }
33
+ if (options?.markdownOutput !== undefined) {
34
+ formatMode.value = "markdown";
35
+ }
36
+ if (options?.clipboardOutput !== undefined) {
37
+ outputMode.value = "clipboard";
38
+ }
27
39
  });
28
40
  switch (runMode.value) {
29
41
  case "cli":
package/dist/main.d.ts CHANGED
@@ -11,6 +11,6 @@ import { LmTaskConf } from "@agent-smith/lmtask/dist/interfaces.js";
11
11
  import { extractToolDoc } from "./cmd/lib/tools.js";
12
12
  import { openTaskSpec } from "./cmd/lib/tasks/utils.js";
13
13
  import { extractBetweenTags, splitThinking } from "./utils/text.js";
14
- import { displayOptions, ioOptions, inferenceOptions, taskOptions, actionOptions, workflowOptions } from "./cmd/options.js";
14
+ import { displayOptions, ioOptions, inferenceOptions, allOptions } from "./cmd/options.js";
15
15
  import { McpServer } from "./cmd/lib/mcp.js";
16
- export { execute, run, executeTask, executeAction, executeWorkflow, writeToClipboard, initAgent, initState, pluginDataDir, usePerfTimer, parseCommandArgs, extractToolDoc, LmTaskConf, openTaskSpec, extractBetweenTags, splitThinking, displayOptions, ioOptions, inferenceOptions, taskOptions, actionOptions, workflowOptions, McpServer, };
16
+ export { execute, run, executeTask, executeAction, executeWorkflow, writeToClipboard, initAgent, initState, pluginDataDir, usePerfTimer, parseCommandArgs, extractToolDoc, LmTaskConf, openTaskSpec, extractBetweenTags, splitThinking, displayOptions, ioOptions, inferenceOptions, allOptions, McpServer, };
package/dist/main.js CHANGED
@@ -10,6 +10,6 @@ import { parseCommandArgs } from "./cmd/lib/options_parsers.js";
10
10
  import { extractToolDoc } from "./cmd/lib/tools.js";
11
11
  import { openTaskSpec } from "./cmd/lib/tasks/utils.js";
12
12
  import { extractBetweenTags, splitThinking } from "./utils/text.js";
13
- import { displayOptions, ioOptions, inferenceOptions, taskOptions, actionOptions, workflowOptions } from "./cmd/options.js";
13
+ import { displayOptions, ioOptions, inferenceOptions, allOptions } from "./cmd/options.js";
14
14
  import { McpServer } from "./cmd/lib/mcp.js";
15
- export { execute, run, executeTask, executeAction, executeWorkflow, writeToClipboard, initAgent, initState, pluginDataDir, usePerfTimer, parseCommandArgs, extractToolDoc, openTaskSpec, extractBetweenTags, splitThinking, displayOptions, ioOptions, inferenceOptions, taskOptions, actionOptions, workflowOptions, McpServer, };
15
+ export { execute, run, executeTask, executeAction, executeWorkflow, writeToClipboard, initAgent, initState, pluginDataDir, usePerfTimer, parseCommandArgs, extractToolDoc, openTaskSpec, extractBetweenTags, splitThinking, displayOptions, ioOptions, inferenceOptions, allOptions, McpServer, };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@agent-smith/cli",
3
3
  "description": "Agent Smith: terminal client for language model agents",
4
4
  "repository": "https://github.com/synw/agent-smith",
5
- "version": "0.0.67",
5
+ "version": "0.0.69",
6
6
  "scripts": {
7
7
  "buildrl": "rm -rf dist/* && rollup -c",
8
8
  "build": "rm -rf dist/* && tsc",
@@ -16,7 +16,7 @@
16
16
  "@agent-smith/tfm": "^0.1.2",
17
17
  "@inquirer/prompts": "^7.5.3",
18
18
  "@inquirer/select": "^4.2.3",
19
- "@modelcontextprotocol/sdk": "^1.12.1",
19
+ "@modelcontextprotocol/sdk": "^1.12.3",
20
20
  "@vue/reactivity": "^3.5.16",
21
21
  "ansi-colors": "^4.1.3",
22
22
  "better-sqlite3": "^11.10.0",
@@ -37,9 +37,9 @@
37
37
  "@rollup/plugin-typescript": "^12.1.2",
38
38
  "@types/better-sqlite3": "^7.6.13",
39
39
  "@types/marked-terminal": "^6.1.1",
40
- "@types/node": "^22.15.27",
40
+ "@types/node": "^24.0.2",
41
41
  "restmix": "^0.5.0",
42
- "rollup": "^4.41.1",
42
+ "rollup": "^4.43.0",
43
43
  "ts-node": "^10.9.2",
44
44
  "tslib": "2.8.1",
45
45
  "typescript": "^5.8.3"