micro-models-agent 0.2.17 → 0.2.19
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/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +4 -0
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +10 -3
- package/dist/repl/index.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +22 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/web-fetch.d.ts +9 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +75 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/tools/web-search.d.ts +9 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +82 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/updater.d.ts.map +1 -1
- package/dist/updater.js +3 -14
- package/dist/updater.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwD,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwD,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA6IvG,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AAED,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,CAoE/D"}
|
|
@@ -36,6 +36,10 @@ Search files: {"name":"glob_search","arguments":{"pattern":"**/*.ts"}}
|
|
|
36
36
|
Search content: {"name":"grep_search","arguments":{"pattern":"function","include":"*.ts"}}
|
|
37
37
|
Directory tree: {"name":"tree","arguments":{"depth":2}}
|
|
38
38
|
|
|
39
|
+
## Web tools (search & fetch):
|
|
40
|
+
{"name":"web_search","arguments":{"query":"weather in Minsk","maxResults":5}}
|
|
41
|
+
{"name":"web_fetch","arguments":{"url":"https://example.com"}}
|
|
42
|
+
|
|
39
43
|
## Bash (for non-file operations — npm, git, etc):
|
|
40
44
|
{"name":"bash","arguments":{"cmd":"npm test"}}
|
|
41
45
|
{"name":"bash","arguments":{"cmd":"git status"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAc,MAAM,qBAAqB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,WAAW,GAAG
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -88,7 +88,7 @@ export function createCli() {
|
|
|
88
88
|
const program = new Command();
|
|
89
89
|
program
|
|
90
90
|
.name('mma')
|
|
91
|
-
.version('0.2.
|
|
91
|
+
.version('0.2.18')
|
|
92
92
|
.description('Micro Models Agent (MMA) — LLM agent harness for small models');
|
|
93
93
|
program
|
|
94
94
|
.argument('[prompt]', 'prompt to execute')
|
package/dist/repl/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgBxD,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgBxD,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CA6If"}
|
package/dist/repl/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { join, dirname } from 'node:path';
|
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
import { loadAllMemory } from '../agent/memory.js';
|
|
6
6
|
import { createAutoSession, generateReadableId } from '../session/store.js';
|
|
7
|
-
import { getCurrentVersion } from '../updater.js';
|
|
7
|
+
import { getCurrentVersion, checkForUpdate, getUpdateCommand } from '../updater.js';
|
|
8
8
|
import { ConversationHistory } from './history.js';
|
|
9
9
|
import { getSlashCommands, parseSlashCommand, isWriteMode, handleWriteLine } from './commands.js';
|
|
10
10
|
import { logREPL, logInfo, logError, initSessionLog, getLogPath } from '../logger.js';
|
|
@@ -20,8 +20,15 @@ export async function runRepl(provider, registry, modelLabel, renderer, options)
|
|
|
20
20
|
const sessionId = generateReadableId();
|
|
21
21
|
initSessionLog(sessionId);
|
|
22
22
|
const memorySummary = loadAllMemory();
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const currentVer = getCurrentVersion();
|
|
24
|
+
logInfo('REPL', `Started MMA v${currentVer} — ${modelLabel} [${sessionId}]`);
|
|
25
|
+
const updateInfo = checkForUpdate();
|
|
26
|
+
if (updateInfo.available) {
|
|
27
|
+
renderer.writeWarning(` ⬆ Update available: v${currentVer} → v${updateInfo.latest}`);
|
|
28
|
+
renderer.write(` ${getUpdateCommand()}`);
|
|
29
|
+
renderer.writeNewline();
|
|
30
|
+
}
|
|
31
|
+
renderer.writeInfo(` ◉ MMA v${currentVer} — ${modelLabel}`);
|
|
25
32
|
renderer.writeDim(` session: ${sessionId}`);
|
|
26
33
|
if (memorySummary) {
|
|
27
34
|
renderer.writeLine(memorySummary);
|
package/dist/repl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repl/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAiCzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AA0BpC,qBAAa,YAAY;IACX,OAAO,CAAC,GAAG;gBAAH,GAAG,GAAE,MAAsB;IAEzC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IA+CtD,cAAc,IAAI,cAAc,EAAE;IA8BlC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIzC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGnC"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -14,6 +14,8 @@ import { grepSearchDefinition, handleGrepSearch } from './fs/grep-search.js';
|
|
|
14
14
|
import { treeDefinition, handleTree } from './fs/tree.js';
|
|
15
15
|
import { notifyFileChanged } from '../indexer/cache.js';
|
|
16
16
|
import { invalidateSystemPromptCache } from '../agent/system-prompt.js';
|
|
17
|
+
import { webSearchDefinition, handleWebSearch } from './web-search.js';
|
|
18
|
+
import { webFetchDefinition, handleWebFetch } from './web-fetch.js';
|
|
17
19
|
const MODIFYING_TOOLS = new Set(['write_file', 'edit_file', 'delete_file', 'copy_file', 'move_file']);
|
|
18
20
|
function getChangedFilePaths(toolName, args) {
|
|
19
21
|
const normalize = (p) => String(p ?? '').replace(/\\/g, '/');
|
|
@@ -40,7 +42,11 @@ const FS_HANDLERS = new Map([
|
|
|
40
42
|
['grep_search', { def: grepSearchDefinition, handler: handleGrepSearch }],
|
|
41
43
|
['tree', { def: treeDefinition, handler: handleTree }],
|
|
42
44
|
]);
|
|
43
|
-
const
|
|
45
|
+
const WEB_TOOLS = new Map([
|
|
46
|
+
['web_search', { def: webSearchDefinition, handler: handleWebSearch }],
|
|
47
|
+
['web_fetch', { def: webFetchDefinition, handler: handleWebFetch }],
|
|
48
|
+
]);
|
|
49
|
+
const VALID_TOOL_NAMES = new Set(['bash', ...FS_HANDLERS.keys(), ...WEB_TOOLS.keys()]);
|
|
44
50
|
export class ToolRegistry {
|
|
45
51
|
cwd;
|
|
46
52
|
constructor(cwd = process.cwd()) {
|
|
@@ -76,6 +82,18 @@ export class ToolRegistry {
|
|
|
76
82
|
logToolCall(toolCall.name, preview, `exit:${result.exitCode} ${result.stdout.length} bytes, ${elapsed}s`);
|
|
77
83
|
return result;
|
|
78
84
|
}
|
|
85
|
+
const webEntry = WEB_TOOLS.get(toolCall.name);
|
|
86
|
+
if (webEntry) {
|
|
87
|
+
try {
|
|
88
|
+
const result = await webEntry.handler(toolCall.arguments);
|
|
89
|
+
const elapsed = (performance.now() - start).toFixed(1);
|
|
90
|
+
logToolCall(toolCall.name, preview, `${result.stdout.length} bytes, ${elapsed}s`);
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
return { stdout: '', stderr: `Web tool error: ${e.message}`, exitCode: 1, truncated: false };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
79
97
|
logToolCall(toolCall.name, preview, 'unknown tool');
|
|
80
98
|
return { stdout: '', stderr: `Unknown tool: ${toolCall.name}`, exitCode: 1, truncated: false };
|
|
81
99
|
}
|
|
@@ -100,6 +118,9 @@ export class ToolRegistry {
|
|
|
100
118
|
for (const entry of FS_HANDLERS.values()) {
|
|
101
119
|
defs.push(entry.def);
|
|
102
120
|
}
|
|
121
|
+
for (const entry of WEB_TOOLS.values()) {
|
|
122
|
+
defs.push(entry.def);
|
|
123
|
+
}
|
|
103
124
|
return defs;
|
|
104
125
|
}
|
|
105
126
|
isToolCall(message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAmB,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolDefinition } from './registry.js';
|
|
2
|
+
export declare const webFetchDefinition: ToolDefinition;
|
|
3
|
+
export declare function handleWebFetch(args: Record<string, unknown>): Promise<{
|
|
4
|
+
stdout: string;
|
|
5
|
+
stderr: string;
|
|
6
|
+
exitCode: number;
|
|
7
|
+
truncated: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=web-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-fetch.d.ts","sourceRoot":"","sources":["../../src/tools/web-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,eAAO,MAAM,kBAAkB,EAAE,cAahC,CAAC;AAEF,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CA+CnF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { logInfo } from '../logger.js';
|
|
2
|
+
export const webFetchDefinition = {
|
|
3
|
+
type: 'function',
|
|
4
|
+
function: {
|
|
5
|
+
name: 'web_fetch',
|
|
6
|
+
description: 'Fetch a URL and return its contents as text. Strips HTML tags. Max 100KB.',
|
|
7
|
+
parameters: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {
|
|
10
|
+
url: { type: 'string', description: 'URL to fetch (http/https)' },
|
|
11
|
+
},
|
|
12
|
+
required: ['url'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
export async function handleWebFetch(args) {
|
|
17
|
+
const url = String(args.url ?? '').trim();
|
|
18
|
+
if (!url) {
|
|
19
|
+
return { stdout: '', stderr: 'url is required', exitCode: 1, truncated: false };
|
|
20
|
+
}
|
|
21
|
+
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
22
|
+
return { stdout: '', stderr: 'URL must start with http:// or https://', exitCode: 1, truncated: false };
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
logInfo('WEB', `Fetching: ${url}`);
|
|
26
|
+
const res = await fetch(url, {
|
|
27
|
+
signal: AbortSignal.timeout(15000),
|
|
28
|
+
headers: {
|
|
29
|
+
'User-Agent': 'Mozilla/5.0 (compatible; MMA/1.0)',
|
|
30
|
+
'Accept': 'text/html,text/plain,*/*',
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
if (!res.ok) {
|
|
34
|
+
return { stdout: '', stderr: `HTTP ${res.status}: ${res.statusText}`, exitCode: 1, truncated: false };
|
|
35
|
+
}
|
|
36
|
+
const contentType = res.headers.get('content-type') || '';
|
|
37
|
+
const isText = contentType.startsWith('text/') || contentType.includes('json') || contentType.includes('xml');
|
|
38
|
+
if (!isText) {
|
|
39
|
+
return { stdout: '', stderr: `Unsupported content type: ${contentType}`, exitCode: 1, truncated: false };
|
|
40
|
+
}
|
|
41
|
+
let text = await res.text();
|
|
42
|
+
if (contentType.includes('html')) {
|
|
43
|
+
text = stripHtml(text);
|
|
44
|
+
}
|
|
45
|
+
const maxLen = 100_000;
|
|
46
|
+
let truncated = false;
|
|
47
|
+
if (text.length > maxLen) {
|
|
48
|
+
text = text.slice(0, maxLen) + `\n... (truncated, ${text.length} total chars)`;
|
|
49
|
+
truncated = true;
|
|
50
|
+
}
|
|
51
|
+
return { stdout: text, stderr: '', exitCode: 0, truncated };
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
return { stdout: '', stderr: `Fetch error: ${e.message}`, exitCode: 1, truncated: false };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function stripHtml(html) {
|
|
58
|
+
return html
|
|
59
|
+
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '')
|
|
60
|
+
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, '')
|
|
61
|
+
.replace(/<nav[^>]*>[\s\S]*?<\/nav>/gi, '')
|
|
62
|
+
.replace(/<header[^>]*>[\s\S]*?<\/header>/gi, '')
|
|
63
|
+
.replace(/<footer[^>]*>[\s\S]*?<\/footer>/gi, '')
|
|
64
|
+
.replace(/<[^>]+>/g, '')
|
|
65
|
+
.replace(/&/g, '&')
|
|
66
|
+
.replace(/</g, '<')
|
|
67
|
+
.replace(/>/g, '>')
|
|
68
|
+
.replace(/"/g, '"')
|
|
69
|
+
.replace(/'/g, "'")
|
|
70
|
+
.replace(///g, '/')
|
|
71
|
+
.replace(/\n\s*\n\s*\n/g, '\n\n')
|
|
72
|
+
.replace(/^\s+|\s+$/gm, '')
|
|
73
|
+
.trim();
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=web-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-fetch.js","sourceRoot":"","sources":["../../src/tools/web-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolDefinition } from './registry.js';
|
|
2
|
+
export declare const webSearchDefinition: ToolDefinition;
|
|
3
|
+
export declare function handleWebSearch(args: Record<string, unknown>): Promise<{
|
|
4
|
+
stdout: string;
|
|
5
|
+
stderr: string;
|
|
6
|
+
exitCode: number;
|
|
7
|
+
truncated: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=web-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,mBAAmB,EAAE,cAcjC,CAAC;AAEF,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAsCnF"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export const webSearchDefinition = {
|
|
2
|
+
type: 'function',
|
|
3
|
+
function: {
|
|
4
|
+
name: 'web_search',
|
|
5
|
+
description: 'Search the web using DuckDuckGo. Returns results with title, URL, and snippet.',
|
|
6
|
+
parameters: {
|
|
7
|
+
type: 'object',
|
|
8
|
+
properties: {
|
|
9
|
+
query: { type: 'string', description: 'Search query' },
|
|
10
|
+
maxResults: { type: 'number', description: 'Max results (default 5, max 10)' },
|
|
11
|
+
},
|
|
12
|
+
required: ['query'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
export async function handleWebSearch(args) {
|
|
17
|
+
const query = String(args.query ?? '').trim();
|
|
18
|
+
if (!query) {
|
|
19
|
+
return { stdout: '', stderr: 'query is required', exitCode: 1, truncated: false };
|
|
20
|
+
}
|
|
21
|
+
const maxResults = Math.min(Math.max(Number(args.maxResults) || 5, 1), 10);
|
|
22
|
+
try {
|
|
23
|
+
const url = `https://lite.duckduckgo.com/lite/?q=${encodeURIComponent(query)}`;
|
|
24
|
+
const res = await fetch(url, {
|
|
25
|
+
signal: AbortSignal.timeout(10000),
|
|
26
|
+
headers: { 'User-Agent': 'Mozilla/5.0 (compatible; MMA/1.0)' },
|
|
27
|
+
});
|
|
28
|
+
if (!res.ok) {
|
|
29
|
+
return { stdout: '', stderr: `Search failed: HTTP ${res.status}`, exitCode: 1, truncated: false };
|
|
30
|
+
}
|
|
31
|
+
const html = await res.text();
|
|
32
|
+
const results = parseDuckDuckGoResults(html, maxResults);
|
|
33
|
+
if (results.length === 0) {
|
|
34
|
+
return { stdout: 'No results found.', stderr: '', exitCode: 0, truncated: false };
|
|
35
|
+
}
|
|
36
|
+
let output = `Web search results for "${query}":\n\n`;
|
|
37
|
+
for (let i = 0; i < results.length; i++) {
|
|
38
|
+
const r = results[i];
|
|
39
|
+
output += `${i + 1}. ${r.title}\n`;
|
|
40
|
+
output += ` URL: ${r.url}\n`;
|
|
41
|
+
if (r.snippet)
|
|
42
|
+
output += ` ${r.snippet}\n`;
|
|
43
|
+
output += '\n';
|
|
44
|
+
}
|
|
45
|
+
return { stdout: output.trim(), stderr: '', exitCode: 0, truncated: false };
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
return { stdout: '', stderr: `Search error: ${e.message}`, exitCode: 1, truncated: false };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function parseDuckDuckGoResults(html, max) {
|
|
52
|
+
const results = [];
|
|
53
|
+
const linkRegex = /<a[^>]*href="([^"]*)"[^>]*class="result-link"[^>]*>([\s\S]*?)<\/a>/g;
|
|
54
|
+
const snippetRegex = /<td[^>]*class="result-snippet"[^>]*>([\s\S]*?)<\/td>/g;
|
|
55
|
+
const links = [];
|
|
56
|
+
let match;
|
|
57
|
+
while ((match = linkRegex.exec(html)) !== null) {
|
|
58
|
+
let url = match[1];
|
|
59
|
+
const title = match[2].replace(/<[^>]+>/g, '').trim();
|
|
60
|
+
if (url.startsWith('//'))
|
|
61
|
+
url = 'https:' + url;
|
|
62
|
+
if (!url.startsWith('http'))
|
|
63
|
+
continue;
|
|
64
|
+
if (title)
|
|
65
|
+
links.push({ url, title });
|
|
66
|
+
if (links.length >= max)
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
const snippets = [];
|
|
70
|
+
while ((match = snippetRegex.exec(html)) !== null) {
|
|
71
|
+
snippets.push(match[1].replace(/<[^>]+>/g, '').trim());
|
|
72
|
+
}
|
|
73
|
+
for (let i = 0; i < links.length; i++) {
|
|
74
|
+
results.push({
|
|
75
|
+
title: links[i].title,
|
|
76
|
+
url: links[i].url,
|
|
77
|
+
snippet: snippets[i] || '',
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return results;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=web-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"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"}
|
package/dist/updater.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAmBA,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED,wBAAgB,cAAc,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA8BxF;AAaD,wBAAgB,mBAAmB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAmBA,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED,wBAAgB,cAAc,IAAI;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA8BxF;AAaD,wBAAgB,mBAAmB,IAAI,IAAI,CAqB1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
|
package/dist/updater.js
CHANGED
|
@@ -59,20 +59,14 @@ function isNewerVersion(a, b) {
|
|
|
59
59
|
return false;
|
|
60
60
|
}
|
|
61
61
|
export function checkForUpdateAsync() {
|
|
62
|
-
const current = getCurrentVersion();
|
|
63
62
|
const cached = readCache();
|
|
64
63
|
if (cached && Date.now() - cached.checkedAt < CACHE_TTL) {
|
|
65
|
-
if (isNewerVersion(current, cached.latestVersion)) {
|
|
66
|
-
console.log(`\n Update available: v${current} → v${cached.latestVersion}`);
|
|
67
|
-
console.log(` Run: ${getUpdateCommand()}\n`);
|
|
68
|
-
}
|
|
69
64
|
return;
|
|
70
65
|
}
|
|
71
|
-
|
|
66
|
+
const current = getCurrentVersion();
|
|
72
67
|
if (cached && !isNewerVersion(current, cached.latestVersion)) {
|
|
73
68
|
// stale cache, force re-check
|
|
74
69
|
}
|
|
75
|
-
// Фоновый вызов npm (блокирует только child_process, не основной поток)
|
|
76
70
|
setTimeout(() => {
|
|
77
71
|
try {
|
|
78
72
|
const stdout = execSync(`npm view ${PKG_NAME} version`, {
|
|
@@ -80,14 +74,9 @@ export function checkForUpdateAsync() {
|
|
|
80
74
|
encoding: 'utf-8',
|
|
81
75
|
windowsHide: true,
|
|
82
76
|
});
|
|
83
|
-
|
|
84
|
-
writeCache({ latestVersion: latest, checkedAt: Date.now() });
|
|
85
|
-
if (isNewerVersion(current, latest)) {
|
|
86
|
-
console.log(`\n Update available: v${current} → v${latest}`);
|
|
87
|
-
console.log(` Run: ${getUpdateCommand()}\n`);
|
|
88
|
-
}
|
|
77
|
+
writeCache({ latestVersion: stdout.trim(), checkedAt: Date.now() });
|
|
89
78
|
}
|
|
90
|
-
catch { /* ignore
|
|
79
|
+
catch { /* ignore */ }
|
|
91
80
|
}, 100);
|
|
92
81
|
}
|
|
93
82
|
export function getUpdateCommand() {
|
package/dist/updater.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"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"}
|