@agent-smith/cli 0.0.113 → 0.0.115
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.
- package/dist/cmd/clicmds/updateconf.js +1 -1
- package/dist/cmd/lib/mcp.d.ts +1 -1
- package/dist/cmd/lib/tasks/cmd.js +29 -17
- package/dist/conf.d.ts +4 -2
- package/dist/conf.js +25 -10
- package/dist/main.d.ts +22 -19
- package/dist/main.js +21 -18
- package/dist/state/backends.d.ts +1 -1
- package/dist/state/backends.js +5 -2
- package/package.json +13 -13
|
@@ -59,8 +59,8 @@ async function updateConfCmd(args) {
|
|
|
59
59
|
else {
|
|
60
60
|
confPath = path;
|
|
61
61
|
}
|
|
62
|
-
console.log("Using", confPath, "to update features");
|
|
63
62
|
const { paths, pf, dd } = await processConfPath(confPath);
|
|
63
|
+
console.log("Using", confPath, "to update features at", paths);
|
|
64
64
|
if (pf.length > 0) {
|
|
65
65
|
updatePromptfilePath(pf);
|
|
66
66
|
promptfilePath.value = pf;
|
package/dist/cmd/lib/mcp.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
2
2
|
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
3
|
-
import { ToolSpec } from "@locallm/types
|
|
3
|
+
import { ToolSpec } from "@locallm/types";
|
|
4
4
|
declare class McpClient {
|
|
5
5
|
name: string;
|
|
6
6
|
transport: StdioClientTransport;
|
|
@@ -98,21 +98,21 @@ async function executeTask(name, payload, options) {
|
|
|
98
98
|
}
|
|
99
99
|
//let i = 0;
|
|
100
100
|
let c = false;
|
|
101
|
-
const useTemplates = agent.lm.providerType !== "openai";
|
|
101
|
+
//const useTemplates = agent.lm.providerType !== "openai";
|
|
102
102
|
let hasThink = false;
|
|
103
103
|
let tpl = null;
|
|
104
104
|
//console.log("Use templates:", useTemplates);
|
|
105
|
-
if (useTemplates) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
//console.log("TPL:", tpl.id);
|
|
113
|
-
hasThink = tpl.tags?.think ? true : false;
|
|
114
|
-
//console.log("HT", hasThink);
|
|
105
|
+
//if (useTemplates) {
|
|
106
|
+
try {
|
|
107
|
+
tpl = new PromptTemplate(model.template ?? "none");
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
throw new Error(`Can not load template ${model.template}\nAvailable templates: ${Object.keys(templates)}\n`);
|
|
115
111
|
}
|
|
112
|
+
//console.log("TPL:", tpl.id);
|
|
113
|
+
hasThink = tpl.tags?.think ? true : false;
|
|
114
|
+
//console.log("HT", hasThink);
|
|
115
|
+
//}
|
|
116
116
|
if (options?.debug) {
|
|
117
117
|
console.log("Task model:", model);
|
|
118
118
|
console.log("Task vars:", vars);
|
|
@@ -246,7 +246,7 @@ async function executeTask(name, payload, options) {
|
|
|
246
246
|
const onToolCall = options?.onToolCall ?? _onToolCall;
|
|
247
247
|
const _onToolCallEnd = (tr) => {
|
|
248
248
|
if (options?.debug) {
|
|
249
|
-
console.log(tr);
|
|
249
|
+
console.log("TOOL RESULT", tr);
|
|
250
250
|
}
|
|
251
251
|
};
|
|
252
252
|
const onToolCallEnd = options?.onToolCallEnd ?? _onToolCallEnd;
|
|
@@ -299,32 +299,46 @@ async function executeTask(name, payload, options) {
|
|
|
299
299
|
//console.log("ERR CATCH", e);
|
|
300
300
|
const errMsg = `${e}`;
|
|
301
301
|
if (errMsg.includes("502 Bad Gateway")) {
|
|
302
|
+
clearInterval(abortTicker);
|
|
302
303
|
runtimeError("The server answered with a 502 Bad Gateway error. It might be down or misconfigured. Check your inference server.");
|
|
303
|
-
if (options?.
|
|
304
|
+
if (options?.nocli) {
|
|
304
305
|
throw new Error(errMsg);
|
|
305
306
|
}
|
|
306
307
|
//@ts-ignore
|
|
307
308
|
return;
|
|
308
309
|
}
|
|
309
310
|
else if (errMsg.includes("404 Not Found")) {
|
|
311
|
+
clearInterval(abortTicker);
|
|
310
312
|
runtimeError("The server answered with a 404 Not Found error. That might mean that the model you are requesting does not exist on the server.");
|
|
313
|
+
if (options?.nocli) {
|
|
314
|
+
throw new Error(errMsg);
|
|
315
|
+
}
|
|
311
316
|
//@ts-ignore
|
|
312
317
|
return;
|
|
313
318
|
}
|
|
314
319
|
else if (errMsg.includes("400 Bad Request")) {
|
|
320
|
+
clearInterval(abortTicker);
|
|
315
321
|
runtimeError("The server answered with a 400 Bad Request error. That might mean that the model you are requesting does not exist on the server, a parameter is wrong or missing in your request.");
|
|
322
|
+
if (options?.nocli) {
|
|
323
|
+
throw new Error(errMsg);
|
|
324
|
+
}
|
|
316
325
|
//@ts-ignore
|
|
317
326
|
return;
|
|
318
327
|
}
|
|
319
328
|
else if (errMsg.includes("fetch failed")) {
|
|
329
|
+
clearInterval(abortTicker);
|
|
320
330
|
runtimeError("The server is not responding. Check if your inference backend is running.");
|
|
331
|
+
if (options?.nocli) {
|
|
332
|
+
throw new Error(errMsg);
|
|
333
|
+
}
|
|
321
334
|
//@ts-ignore
|
|
322
335
|
return;
|
|
323
336
|
}
|
|
324
337
|
else if (e instanceof DOMException && e.name === 'AbortError') {
|
|
325
338
|
if (options?.debug || options?.verbose) {
|
|
326
|
-
console.
|
|
339
|
+
console.warn("\n*** The request was canceled by the user ***");
|
|
327
340
|
}
|
|
341
|
+
clearInterval(abortTicker);
|
|
328
342
|
return {};
|
|
329
343
|
}
|
|
330
344
|
else {
|
|
@@ -355,9 +369,7 @@ async function executeTask(name, payload, options) {
|
|
|
355
369
|
// chat mode
|
|
356
370
|
//console.log("CLI CONF IP", initialInferParams);
|
|
357
371
|
if (!options?.isToolCall && isChatMode.value) {
|
|
358
|
-
|
|
359
|
-
setChatTemplate(tpl);
|
|
360
|
-
}
|
|
372
|
+
setChatTemplate(tpl);
|
|
361
373
|
if (task.def.tools) {
|
|
362
374
|
options.tools = task.def.tools;
|
|
363
375
|
}
|
package/dist/conf.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { type ConfigFile } from "./interfaces.js";
|
|
1
2
|
declare function getConfigPath(appName: string, filename: string): {
|
|
2
3
|
confDir: string;
|
|
3
4
|
dbPath: string;
|
|
4
5
|
};
|
|
5
6
|
declare const confDir: string, dbPath: string;
|
|
6
|
-
declare function
|
|
7
|
+
declare function updateConfigFile(conf: ConfigFile, cfp?: string): string;
|
|
8
|
+
declare function createConfigFile(cfp?: string, local?: Array<"llamacpp" | "koboldcpp" | "ollama">): string;
|
|
7
9
|
declare function processConfPath(confPath: string): Promise<{
|
|
8
10
|
paths: Array<string>;
|
|
9
11
|
pf: string;
|
|
10
12
|
dd: string;
|
|
11
13
|
}>;
|
|
12
|
-
export { confDir, dbPath, processConfPath, getConfigPath, createConfigFile, };
|
|
14
|
+
export { confDir, dbPath, processConfPath, getConfigPath, createConfigFile, updateConfigFile, };
|
package/dist/conf.js
CHANGED
|
@@ -28,27 +28,42 @@ function getConfigPath(appName, filename) {
|
|
|
28
28
|
return { confDir: confDir, dbPath: dbPath };
|
|
29
29
|
}
|
|
30
30
|
const { confDir, dbPath } = getConfigPath("agent-smith", "config.db");
|
|
31
|
-
function
|
|
31
|
+
function updateConfigFile(conf, cfp) {
|
|
32
|
+
const fp = cfp ? cfp : path.join(confDir, "config.yml");
|
|
33
|
+
const txt = yaml.stringify(conf);
|
|
34
|
+
if (!fs.existsSync(fp)) {
|
|
35
|
+
const err = `Config file ${fp} does not exist`;
|
|
36
|
+
throw new Error(err);
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
fs.writeFileSync(fp, txt, { encoding: 'utf8' });
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
throw new Error(`Error creating config file at ${fp}: ${e}`);
|
|
43
|
+
}
|
|
44
|
+
return fp;
|
|
45
|
+
}
|
|
46
|
+
function createConfigFile(cfp, local = ["llamacpp", "koboldcpp", "ollama"]) {
|
|
32
47
|
createDirectoryIfNotExists(confDir);
|
|
33
48
|
const fp = cfp ? cfp : path.join(confDir, "config.yml");
|
|
34
49
|
const fc = {
|
|
35
|
-
promptfile: "",
|
|
36
50
|
backends: {
|
|
37
51
|
default: "llamacpp",
|
|
38
|
-
local:
|
|
52
|
+
local: local,
|
|
39
53
|
llamacpp_oai: {
|
|
40
54
|
type: "openai",
|
|
41
55
|
url: "http://localhost:8080/v1"
|
|
42
56
|
}
|
|
43
|
-
}
|
|
57
|
+
},
|
|
58
|
+
promptfile: "",
|
|
44
59
|
};
|
|
45
60
|
const txt = yaml.stringify(fc);
|
|
61
|
+
if (fs.existsSync(fp)) {
|
|
62
|
+
const err = `Config file ${fp} already exists`;
|
|
63
|
+
throw new Error(err);
|
|
64
|
+
}
|
|
46
65
|
try {
|
|
47
|
-
|
|
48
|
-
const err = `Config file ${fp} already exists`;
|
|
49
|
-
throw new Error(err);
|
|
50
|
-
}
|
|
51
|
-
fs.writeFileSync(fp, txt);
|
|
66
|
+
fs.writeFileSync(fp, txt, { encoding: 'utf8' });
|
|
52
67
|
}
|
|
53
68
|
catch (e) {
|
|
54
69
|
throw new Error(`Error creating config file at ${fp}: ${e}`);
|
|
@@ -148,4 +163,4 @@ async function processConfPath(confPath) {
|
|
|
148
163
|
}
|
|
149
164
|
return { paths: allPaths, pf: pf, dd: dd };
|
|
150
165
|
}
|
|
151
|
-
export { confDir, dbPath, processConfPath, getConfigPath, createConfigFile, };
|
|
166
|
+
export { confDir, dbPath, processConfPath, getConfigPath, createConfigFile, updateConfigFile, };
|
package/dist/main.d.ts
CHANGED
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { executeTask } from "./cmd/lib/tasks/cmd.js";
|
|
1
|
+
import { updateConfCmd } from "./cmd/clicmds/updateconf.js";
|
|
3
2
|
import { executeAction } from "./cmd/lib/actions/cmd.js";
|
|
4
|
-
import { executeWorkflow } from "./cmd/lib/workflows/cmd.js";
|
|
5
|
-
import { writeToClipboard } from "./cmd/sys/clipboard.js";
|
|
6
|
-
import { initState, pluginDataDir, init, isStateReady } from "./state/state.js";
|
|
7
|
-
import { usePerfTimer } from "./utils/perf.js";
|
|
8
|
-
import { parseCommandArgs } from "./cmd/lib/options_parsers.js";
|
|
9
|
-
import { extractToolDoc } from "./cmd/lib/tools.js";
|
|
10
|
-
import { openTaskSpec } from "./cmd/lib/tasks/utils.js";
|
|
11
|
-
import { extractBetweenTags, splitThinking } from "./utils/text.js";
|
|
12
|
-
import { displayOptions, ioOptions, inferenceOptions, allOptions } from "./cmd/options.js";
|
|
13
3
|
import { McpClient } from "./cmd/lib/mcp.js";
|
|
4
|
+
import { parseCommandArgs } from "./cmd/lib/options_parsers.js";
|
|
5
|
+
import { executeTask } from "./cmd/lib/tasks/cmd.js";
|
|
14
6
|
import { readTask } from "./cmd/lib/tasks/read.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
7
|
+
import { openTaskSpec } from "./cmd/lib/tasks/utils.js";
|
|
8
|
+
import { extractToolDoc } from "./cmd/lib/tools.js";
|
|
9
|
+
import { executeWorkflow } from "./cmd/lib/workflows/cmd.js";
|
|
10
|
+
import { readWorkflow } from "./cmd/lib/workflows/read.js";
|
|
11
|
+
import { allOptions, displayOptions, inferenceOptions, ioOptions } from "./cmd/options.js";
|
|
12
|
+
import { writeToClipboard } from "./cmd/sys/clipboard.js";
|
|
13
|
+
import { execute, run } from "./cmd/sys/execute.js";
|
|
18
14
|
import { readConf } from "./cmd/sys/read_conf.js";
|
|
19
|
-
import {
|
|
20
|
-
import { getTaskSettings } from "./state/tasks.js";
|
|
21
|
-
import { upsertTaskSettings } from "./db/write.js";
|
|
15
|
+
import { createConfigFile, getConfigPath, processConfPath, updateConfigFile } from "./conf.js";
|
|
22
16
|
import { initDb } from "./db/db.js";
|
|
23
|
-
import {
|
|
17
|
+
import { readBackends, readFeaturesType, readFilePaths, readTool } from "./db/read.js";
|
|
18
|
+
import { upsertTaskSettings } from "./db/write.js";
|
|
19
|
+
import { FeatureType, TaskSettings } from "./interfaces.js";
|
|
20
|
+
import { backend, setBackend } from "./state/backends.js";
|
|
21
|
+
import { init, initState, isStateReady, pluginDataDir } from "./state/state.js";
|
|
22
|
+
import { getTaskSettings } from "./state/tasks.js";
|
|
23
|
+
import { usePerfTimer } from "./utils/perf.js";
|
|
24
|
+
import { extractBetweenTags, splitThinking } from "./utils/text.js";
|
|
24
25
|
declare const db: {
|
|
25
26
|
init: typeof initDb;
|
|
26
27
|
readFilePaths: typeof readFilePaths;
|
|
@@ -28,8 +29,10 @@ declare const db: {
|
|
|
28
29
|
readTool: typeof readTool;
|
|
29
30
|
getTaskSettings: typeof getTaskSettings;
|
|
30
31
|
upsertTaskSettings: typeof upsertTaskSettings;
|
|
32
|
+
readBackends: typeof readBackends;
|
|
31
33
|
};
|
|
32
34
|
declare const fs: {
|
|
33
35
|
openTaskSpec: typeof openTaskSpec;
|
|
36
|
+
readWorkflow: typeof readWorkflow;
|
|
34
37
|
};
|
|
35
|
-
export {
|
|
38
|
+
export { allOptions, backend, createConfigFile, db, displayOptions, execute, executeAction, executeTask, executeWorkflow, extractBetweenTags, extractToolDoc, FeatureType, fs, getConfigPath, inferenceOptions, init, initState, ioOptions, isStateReady, McpClient, openTaskSpec, parseCommandArgs, pluginDataDir, processConfPath, readConf, readTask, run, setBackend, splitThinking, TaskSettings, updateConfCmd, updateConfigFile, usePerfTimer, writeToClipboard, };
|
package/dist/main.js
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { executeTask } from "./cmd/lib/tasks/cmd.js";
|
|
1
|
+
import { updateConfCmd } from "./cmd/clicmds/updateconf.js";
|
|
3
2
|
import { executeAction } from "./cmd/lib/actions/cmd.js";
|
|
4
|
-
import { executeWorkflow } from "./cmd/lib/workflows/cmd.js";
|
|
5
|
-
import { writeToClipboard } from "./cmd/sys/clipboard.js";
|
|
6
|
-
import { initState, pluginDataDir, init, isStateReady } from "./state/state.js";
|
|
7
|
-
import { usePerfTimer } from "./utils/perf.js";
|
|
8
|
-
import { parseCommandArgs } from "./cmd/lib/options_parsers.js";
|
|
9
|
-
import { extractToolDoc } from "./cmd/lib/tools.js";
|
|
10
|
-
import { openTaskSpec } from "./cmd/lib/tasks/utils.js";
|
|
11
|
-
import { extractBetweenTags, splitThinking } from "./utils/text.js";
|
|
12
|
-
import { displayOptions, ioOptions, inferenceOptions, allOptions } from "./cmd/options.js";
|
|
13
3
|
import { McpClient } from "./cmd/lib/mcp.js";
|
|
4
|
+
import { parseCommandArgs } from "./cmd/lib/options_parsers.js";
|
|
5
|
+
import { executeTask } from "./cmd/lib/tasks/cmd.js";
|
|
14
6
|
import { readTask } from "./cmd/lib/tasks/read.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
7
|
+
import { openTaskSpec } from "./cmd/lib/tasks/utils.js";
|
|
8
|
+
import { extractToolDoc } from "./cmd/lib/tools.js";
|
|
9
|
+
import { executeWorkflow } from "./cmd/lib/workflows/cmd.js";
|
|
10
|
+
import { readWorkflow } from "./cmd/lib/workflows/read.js";
|
|
11
|
+
import { allOptions, displayOptions, inferenceOptions, ioOptions } from "./cmd/options.js";
|
|
12
|
+
import { writeToClipboard } from "./cmd/sys/clipboard.js";
|
|
13
|
+
import { execute, run } from "./cmd/sys/execute.js";
|
|
17
14
|
import { readConf } from "./cmd/sys/read_conf.js";
|
|
18
|
-
import {
|
|
19
|
-
import { getTaskSettings } from "./state/tasks.js";
|
|
20
|
-
import { upsertTaskSettings } from "./db/write.js";
|
|
15
|
+
import { createConfigFile, getConfigPath, processConfPath, updateConfigFile } from "./conf.js";
|
|
21
16
|
import { initDb } from "./db/db.js";
|
|
22
|
-
import {
|
|
17
|
+
import { readBackends, readFeaturesType, readFilePaths, readTool } from "./db/read.js";
|
|
18
|
+
import { upsertTaskSettings } from "./db/write.js";
|
|
19
|
+
import { backend, setBackend } from "./state/backends.js";
|
|
20
|
+
import { init, initState, isStateReady, pluginDataDir } from "./state/state.js";
|
|
21
|
+
import { getTaskSettings } from "./state/tasks.js";
|
|
22
|
+
import { usePerfTimer } from "./utils/perf.js";
|
|
23
|
+
import { extractBetweenTags, splitThinking } from "./utils/text.js";
|
|
23
24
|
const db = {
|
|
24
25
|
init: initDb,
|
|
25
26
|
readFilePaths,
|
|
@@ -27,8 +28,10 @@ const db = {
|
|
|
27
28
|
readTool,
|
|
28
29
|
getTaskSettings,
|
|
29
30
|
upsertTaskSettings,
|
|
31
|
+
readBackends,
|
|
30
32
|
};
|
|
31
33
|
const fs = {
|
|
32
34
|
openTaskSpec,
|
|
35
|
+
readWorkflow,
|
|
33
36
|
};
|
|
34
|
-
export {
|
|
37
|
+
export { allOptions, backend, createConfigFile, db, displayOptions, execute, executeAction, executeTask, executeWorkflow, extractBetweenTags, extractToolDoc, fs, getConfigPath, inferenceOptions, init, initState, ioOptions, isStateReady, McpClient, openTaskSpec, parseCommandArgs, pluginDataDir, processConfPath, readConf, readTask, run, setBackend, splitThinking, updateConfCmd, updateConfigFile, usePerfTimer, writeToClipboard, };
|
package/dist/state/backends.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import { Lm } from "@locallm/api";
|
|
|
2
2
|
declare const backend: import("@vue/reactivity").Ref<Lm | undefined, Lm | undefined>;
|
|
3
3
|
declare const backends: Record<string, Lm>;
|
|
4
4
|
declare function initBackends(): Promise<void>;
|
|
5
|
-
declare function setBackend(name: string, isVerbose?: boolean): Promise<
|
|
5
|
+
declare function setBackend(name: string, isVerbose?: boolean): Promise<boolean>;
|
|
6
6
|
declare function listBackends(printResult?: boolean): Promise<string>;
|
|
7
7
|
export { backend, backends, initBackends, listBackends, setBackend };
|
package/dist/state/backends.js
CHANGED
|
@@ -34,6 +34,8 @@ async function initBackends() {
|
|
|
34
34
|
serverUrl: bk.url,
|
|
35
35
|
apiKey: apiKey.length > 0 ? apiKey : undefined,
|
|
36
36
|
});
|
|
37
|
+
lm.name = bk.name;
|
|
38
|
+
//console.log("ADD BK", lm);
|
|
37
39
|
backends[name] = lm;
|
|
38
40
|
if (bk.isDefault) {
|
|
39
41
|
defaultBackendName = bk.name;
|
|
@@ -52,18 +54,19 @@ async function initBackends() {
|
|
|
52
54
|
async function setBackend(name, isVerbose = false) {
|
|
53
55
|
if (!(Object.keys(backends).includes(name))) {
|
|
54
56
|
runtimeDataError(`Backend ${name} not found. Available backends: ${Object.keys(backends)}`);
|
|
55
|
-
return;
|
|
57
|
+
return false;
|
|
56
58
|
}
|
|
57
59
|
backend.value = backends[name];
|
|
58
60
|
setDefaultBackend(name);
|
|
59
61
|
console.log("Default backend set to", name);
|
|
60
62
|
isBackendUp.value = await probeBackend(backend.value, isVerbose);
|
|
63
|
+
return isBackendUp.value;
|
|
61
64
|
}
|
|
62
65
|
async function listBackends(printResult = true) {
|
|
63
66
|
//console.log("DEFB", backend.value?.name);
|
|
64
67
|
const allBk = new Array();
|
|
65
68
|
for (const [name, lm] of Object.entries(backends)) {
|
|
66
|
-
const bcn = name == backend.value?.name ? colors.bold(name) : name;
|
|
69
|
+
const bcn = (name == backend.value?.name) ? colors.bold(name) : name;
|
|
67
70
|
//const isUp = await probeBackend(lm, false);
|
|
68
71
|
const buf = new Array("-", bcn, colors.dim("(" + lm.providerType + ") " + lm.serverUrl));
|
|
69
72
|
const str = buf.join(" ");
|
package/package.json
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-smith/cli",
|
|
3
3
|
"description": "Agent Smith: terminal client for language model agents",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.115",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "rm -rf dist/* && tsc",
|
|
7
7
|
"cli": "node --loader ts-node/esm bin/index.ts",
|
|
8
8
|
"watch": "tsc --noCheck -p . -w"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@agent-smith/agent": "^0.
|
|
12
|
-
"@agent-smith/nodetask": "^0.
|
|
13
|
-
"@agent-smith/task": "^0.
|
|
14
|
-
"@agent-smith/tfm": "^0.
|
|
15
|
-
"@inquirer/prompts": "^8.3.
|
|
11
|
+
"@agent-smith/agent": "^0.4.0",
|
|
12
|
+
"@agent-smith/nodetask": "^0.3.0",
|
|
13
|
+
"@agent-smith/task": "^0.4.0",
|
|
14
|
+
"@agent-smith/tfm": "^0.3.0",
|
|
15
|
+
"@inquirer/prompts": "^8.3.2",
|
|
16
16
|
"@intrinsicai/gbnfgen": "^0.12.0",
|
|
17
|
-
"@locallm/api": "^0.
|
|
18
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
19
|
-
"@vue/reactivity": "^3.5.
|
|
17
|
+
"@locallm/api": "^0.8.0",
|
|
18
|
+
"@modelcontextprotocol/sdk": "^1.28.0",
|
|
19
|
+
"@vue/reactivity": "^3.5.31",
|
|
20
20
|
"ansi-colors": "^4.1.3",
|
|
21
|
-
"better-sqlite3": "^12.
|
|
21
|
+
"better-sqlite3": "^12.8.0",
|
|
22
22
|
"clipboardy": "^5.3.1",
|
|
23
23
|
"commander": "^14.0.3",
|
|
24
24
|
"marked-terminal": "^7.3.0",
|
|
25
25
|
"modprompt": "^0.14.2",
|
|
26
26
|
"ora": "^9.3.0",
|
|
27
27
|
"python-shell": "^5.0.0",
|
|
28
|
-
"yaml": "^2.8.
|
|
28
|
+
"yaml": "^2.8.3"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@cfworker/json-schema": "^4.1.1",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
36
36
|
"@types/better-sqlite3": "^7.6.13",
|
|
37
37
|
"@types/marked-terminal": "^6.1.1",
|
|
38
|
-
"@types/node": "^25.
|
|
39
|
-
"openai": "^6.
|
|
38
|
+
"@types/node": "^25.5.0",
|
|
39
|
+
"openai": "^6.33.0",
|
|
40
40
|
"restmix": "^0.6.1",
|
|
41
41
|
"tslib": "2.8.1",
|
|
42
42
|
"typescript": "^5.9.3"
|