micro-models-agent 0.2.50 → 0.2.52
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/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +87 -303
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/modes/applier.d.ts +43 -0
- package/dist/agent/modes/applier.d.ts.map +1 -0
- package/dist/agent/modes/applier.js +30 -0
- package/dist/agent/modes/applier.js.map +1 -0
- package/dist/agent/modes/registry.d.ts +35 -0
- package/dist/agent/modes/registry.d.ts.map +1 -0
- package/dist/agent/modes/registry.js +169 -0
- package/dist/agent/modes/registry.js.map +1 -0
- package/dist/agent/modes/types.d.ts +54 -0
- package/dist/agent/modes/types.d.ts.map +1 -0
- package/dist/agent/modes/types.js +13 -0
- package/dist/agent/modes/types.js.map +1 -0
- package/dist/agent/react-loop.d.ts +61 -0
- package/dist/agent/react-loop.d.ts.map +1 -0
- package/dist/agent/react-loop.js +119 -0
- package/dist/agent/react-loop.js.map +1 -0
- package/dist/agent/tool-executor.d.ts +44 -0
- package/dist/agent/tool-executor.d.ts.map +1 -0
- package/dist/agent/tool-executor.js +186 -0
- package/dist/agent/tool-executor.js.map +1 -0
- package/dist/config/types.d.ts +5 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/plugins/adapters/hooks-adapter.d.ts +12 -0
- package/dist/plugins/adapters/hooks-adapter.d.ts.map +1 -0
- package/dist/plugins/adapters/hooks-adapter.js +23 -0
- package/dist/plugins/adapters/hooks-adapter.js.map +1 -0
- package/dist/plugins/loader.d.ts +13 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +145 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/manager.d.ts +52 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +183 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/types.d.ts +73 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +8 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/repl/commands.d.ts +1 -0
- package/dist/repl/commands.d.ts.map +1 -1
- package/dist/repl/commands.js.map +1 -1
- package/dist/repl/index.d.ts.map +1 -1
- package/dist/repl/index.js +3 -2
- package/dist/repl/index.js.map +1 -1
- package/dist/session/store.d.ts +4 -2
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +4 -2
- package/dist/session/store.js.map +1 -1
- package/dist/tools/bash.d.ts +4 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +24 -0
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/fs/copy-file.d.ts +2 -0
- package/dist/tools/fs/copy-file.d.ts.map +1 -1
- package/dist/tools/fs/copy-file.js +7 -0
- package/dist/tools/fs/copy-file.js.map +1 -1
- package/dist/tools/fs/create-dir.d.ts +2 -0
- package/dist/tools/fs/create-dir.d.ts.map +1 -1
- package/dist/tools/fs/create-dir.js +7 -0
- package/dist/tools/fs/create-dir.js.map +1 -1
- package/dist/tools/fs/delete-file.d.ts +2 -0
- package/dist/tools/fs/delete-file.d.ts.map +1 -1
- package/dist/tools/fs/delete-file.js +7 -0
- package/dist/tools/fs/delete-file.js.map +1 -1
- package/dist/tools/fs/edit-file.d.ts +2 -0
- package/dist/tools/fs/edit-file.d.ts.map +1 -1
- package/dist/tools/fs/edit-file.js +7 -0
- package/dist/tools/fs/edit-file.js.map +1 -1
- package/dist/tools/fs/file-info.d.ts +2 -0
- package/dist/tools/fs/file-info.d.ts.map +1 -1
- package/dist/tools/fs/file-info.js +7 -0
- package/dist/tools/fs/file-info.js.map +1 -1
- package/dist/tools/fs/glob-search.d.ts +2 -0
- package/dist/tools/fs/glob-search.d.ts.map +1 -1
- package/dist/tools/fs/glob-search.js +7 -0
- package/dist/tools/fs/glob-search.js.map +1 -1
- package/dist/tools/fs/grep-search.d.ts +2 -0
- package/dist/tools/fs/grep-search.d.ts.map +1 -1
- package/dist/tools/fs/grep-search.js +7 -0
- package/dist/tools/fs/grep-search.js.map +1 -1
- package/dist/tools/fs/list-dir.d.ts +2 -0
- package/dist/tools/fs/list-dir.d.ts.map +1 -1
- package/dist/tools/fs/list-dir.js +7 -0
- package/dist/tools/fs/list-dir.js.map +1 -1
- package/dist/tools/fs/move-file.d.ts +2 -0
- package/dist/tools/fs/move-file.d.ts.map +1 -1
- package/dist/tools/fs/move-file.js +7 -0
- package/dist/tools/fs/move-file.js.map +1 -1
- package/dist/tools/fs/read-file.d.ts +2 -0
- package/dist/tools/fs/read-file.d.ts.map +1 -1
- package/dist/tools/fs/read-file.js +7 -0
- package/dist/tools/fs/read-file.js.map +1 -1
- package/dist/tools/fs/tree.d.ts +2 -0
- package/dist/tools/fs/tree.d.ts.map +1 -1
- package/dist/tools/fs/tree.js +7 -0
- package/dist/tools/fs/tree.js.map +1 -1
- package/dist/tools/fs/write-file.d.ts +2 -0
- package/dist/tools/fs/write-file.d.ts.map +1 -1
- package/dist/tools/fs/write-file.js +7 -0
- package/dist/tools/fs/write-file.js.map +1 -1
- package/dist/tools/native/approve.d.ts +11 -0
- package/dist/tools/native/approve.d.ts.map +1 -0
- package/dist/tools/native/approve.js +39 -0
- package/dist/tools/native/approve.js.map +1 -0
- package/dist/tools/native/plan.d.ts +10 -0
- package/dist/tools/native/plan.d.ts.map +1 -0
- package/dist/tools/native/plan.js +46 -0
- package/dist/tools/native/plan.js.map +1 -0
- package/dist/tools/native/question.d.ts +11 -0
- package/dist/tools/native/question.d.ts.map +1 -0
- package/dist/tools/native/question.js +41 -0
- package/dist/tools/native/question.js.map +1 -0
- package/dist/tools/native/theme.d.ts +10 -0
- package/dist/tools/native/theme.d.ts.map +1 -0
- package/dist/tools/native/theme.js +106 -0
- package/dist/tools/native/theme.js.map +1 -0
- package/dist/tools/native/todo.d.ts +10 -0
- package/dist/tools/native/todo.d.ts.map +1 -0
- package/dist/tools/native/todo.js +58 -0
- package/dist/tools/native/todo.js.map +1 -0
- package/dist/tools/native/user-profile.d.ts +10 -0
- package/dist/tools/native/user-profile.d.ts.map +1 -0
- package/dist/tools/native/user-profile.js +58 -0
- package/dist/tools/native/user-profile.js.map +1 -0
- package/dist/tools/registry.d.ts +11 -10
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +40 -147
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/subagent.d.ts +2 -1
- package/dist/tools/subagent.d.ts.map +1 -1
- package/dist/tools/subagent.js +7 -4
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/types.d.ts +59 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +2 -0
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +7 -0
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/web-search.d.ts +2 -0
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +7 -0
- package/dist/tools/web-search.js.map +1 -1
- package/dist/updater.js +1 -1
- package/dist/updater.js.map +1 -1
- package/package.json +1 -1
|
@@ -54,4 +54,11 @@ export function handleReadFile(args, cwd) {
|
|
|
54
54
|
const { text, truncated } = truncateOutput(result, MAX_OUTPUT_CHARS);
|
|
55
55
|
return fsOk(text, truncated);
|
|
56
56
|
}
|
|
57
|
+
export const readFileHandler = {
|
|
58
|
+
name: 'read_file',
|
|
59
|
+
definition: readFileDefinition,
|
|
60
|
+
async execute(args, ctx) {
|
|
61
|
+
return handleReadFile(args, ctx.cwd);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
57
64
|
//# sourceMappingURL=read-file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../src/tools/fs/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../src/tools/fs/read-file.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/fs/tree.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ToolDefinition } from '../registry.js';
|
|
2
|
+
import type { ToolHandler } from '../types.js';
|
|
2
3
|
import { fsOk } from './types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Инструмент отображения дерева директорий.
|
|
@@ -8,4 +9,5 @@ import { fsOk } from './types.js';
|
|
|
8
9
|
*/
|
|
9
10
|
export declare const treeDefinition: ToolDefinition;
|
|
10
11
|
export declare function handleTree(args: Record<string, unknown>, cwd: string): ReturnType<typeof fsOk>;
|
|
12
|
+
export declare const treeHandler: ToolHandler;
|
|
11
13
|
//# sourceMappingURL=tree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/tree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAW,IAAI,EAAoB,MAAM,YAAY,CAAC;AAE7D;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,EAAE,cAc5B,CAAC;AAkDF,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,GACV,UAAU,CAAC,OAAO,IAAI,CAAC,CAwBzB;AAED,eAAO,MAAM,WAAW,EAAE,WAMzB,CAAC"}
|
package/dist/tools/fs/tree.js
CHANGED
|
@@ -79,4 +79,11 @@ export function handleTree(args, cwd) {
|
|
|
79
79
|
}
|
|
80
80
|
return fsOk(output, counter.count >= maxFiles);
|
|
81
81
|
}
|
|
82
|
+
export const treeHandler = {
|
|
83
|
+
name: 'tree',
|
|
84
|
+
definition: treeDefinition,
|
|
85
|
+
async execute(args, ctx) {
|
|
86
|
+
return handleTree(args, ctx.cwd);
|
|
87
|
+
},
|
|
88
|
+
};
|
|
82
89
|
//# sourceMappingURL=tree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/tools/fs/tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../src/tools/fs/tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ToolDefinition } from '../registry.js';
|
|
2
|
+
import type { ToolHandler } from '../types.js';
|
|
2
3
|
import { fsOk } from './types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Инструмент записи файла.
|
|
@@ -9,4 +10,5 @@ import { fsOk } from './types.js';
|
|
|
9
10
|
*/
|
|
10
11
|
export declare const writeFileDefinition: ToolDefinition;
|
|
11
12
|
export declare function handleWriteFile(args: Record<string, unknown>, cwd: string): ReturnType<typeof fsOk>;
|
|
13
|
+
export declare const writeFileHandler: ToolHandler;
|
|
12
14
|
//# sourceMappingURL=write-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/write-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/fs/write-file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAW,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;GAMG;AAEH,eAAO,MAAM,mBAAmB,EAAE,cAcjC,CAAC;AAEF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,GACV,UAAU,CAAC,OAAO,IAAI,CAAC,CAkCzB;AAED,eAAO,MAAM,gBAAgB,EAAE,WAM9B,CAAC"}
|
|
@@ -62,4 +62,11 @@ export function handleWriteFile(args, cwd) {
|
|
|
62
62
|
const lines = content.split('\n').length;
|
|
63
63
|
return fsOk(`Written ${content.length} bytes (${lines} lines) to ${normalizePath(path)}`);
|
|
64
64
|
}
|
|
65
|
+
export const writeFileHandler = {
|
|
66
|
+
name: 'write_file',
|
|
67
|
+
definition: writeFileDefinition,
|
|
68
|
+
async execute(args, ctx) {
|
|
69
|
+
return handleWriteFile(args, ctx.cwd);
|
|
70
|
+
},
|
|
71
|
+
};
|
|
65
72
|
//# sourceMappingURL=write-file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/fs/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/fs/write-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../registry.js';
|
|
2
|
+
import type { ToolHandler } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Нативный инструмент approve — запрос подтверждения у пользователя.
|
|
5
|
+
* Приостанавливает ReAct-цикл до получения ответа.
|
|
6
|
+
*
|
|
7
|
+
* @module tools/native/approve
|
|
8
|
+
*/
|
|
9
|
+
export declare const approveDefinition: ToolDefinition;
|
|
10
|
+
export declare const approveHandler: ToolHandler;
|
|
11
|
+
//# sourceMappingURL=approve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approve.d.ts","sourceRoot":"","sources":["../../../src/tools/native/approve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;GAKG;AAEH,eAAO,MAAM,iBAAiB,EAAE,cAa/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAmB5B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Нативный инструмент approve — запрос подтверждения у пользователя.
|
|
3
|
+
* Приостанавливает ReAct-цикл до получения ответа.
|
|
4
|
+
*
|
|
5
|
+
* @module tools/native/approve
|
|
6
|
+
*/
|
|
7
|
+
export const approveDefinition = {
|
|
8
|
+
type: 'function',
|
|
9
|
+
function: {
|
|
10
|
+
name: 'approve',
|
|
11
|
+
description: 'Request user approval for an action. Pauses the agent loop until approved.',
|
|
12
|
+
parameters: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
action: { type: 'string', description: 'Action to approve' },
|
|
16
|
+
},
|
|
17
|
+
required: ['action'],
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export const approveHandler = {
|
|
22
|
+
name: 'approve',
|
|
23
|
+
definition: approveDefinition,
|
|
24
|
+
async execute(args, ctx) {
|
|
25
|
+
const action = String(args.action || args.text || '');
|
|
26
|
+
if (!ctx.quiet) {
|
|
27
|
+
ctx.renderer?.writeBracketTag('approve', action);
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
stdout: `Approval requested: ${action}`,
|
|
31
|
+
stderr: '',
|
|
32
|
+
exitCode: 0,
|
|
33
|
+
truncated: false,
|
|
34
|
+
questionPending: true,
|
|
35
|
+
breakLoop: true,
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=approve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../src/tools/native/approve.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,4EAA4E;QACzF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;aAC7D;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,iBAAiB;IAC7B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAEtD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QAED,OAAO;YACL,MAAM,EAAE,uBAAuB,MAAM,EAAE;YACvC,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../registry.js';
|
|
2
|
+
import type { ToolHandler } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Нативный инструмент plan — управление планами задач.
|
|
5
|
+
*
|
|
6
|
+
* @module tools/native/plan
|
|
7
|
+
*/
|
|
8
|
+
export declare const planDefinition: ToolDefinition;
|
|
9
|
+
export declare const planHandler: ToolHandler;
|
|
10
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/tools/native/plan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AAG3D;;;;GAIG;AAEH,eAAO,MAAM,cAAc,EAAE,cAc5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WA4BzB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createPlan } from '../plan.js';
|
|
2
|
+
/**
|
|
3
|
+
* Нативный инструмент plan — управление планами задач.
|
|
4
|
+
*
|
|
5
|
+
* @module tools/native/plan
|
|
6
|
+
*/
|
|
7
|
+
export const planDefinition = {
|
|
8
|
+
type: 'function',
|
|
9
|
+
function: {
|
|
10
|
+
name: 'plan',
|
|
11
|
+
description: 'Create a task plan with named steps. Use before starting multi-step work.',
|
|
12
|
+
parameters: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
name: { type: 'string', description: 'Plan name' },
|
|
16
|
+
steps: { type: 'array', items: { type: 'string' }, description: 'List of steps' },
|
|
17
|
+
},
|
|
18
|
+
required: ['name', 'steps'],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
export const planHandler = {
|
|
23
|
+
name: 'plan',
|
|
24
|
+
definition: planDefinition,
|
|
25
|
+
async execute(args, ctx) {
|
|
26
|
+
const planName = String(args.name || 'Untitled');
|
|
27
|
+
const stepsRaw = args.steps || [];
|
|
28
|
+
const steps = Array.isArray(stepsRaw) ? stepsRaw.map(String) : String(stepsRaw).split('\n').filter((s) => s.trim());
|
|
29
|
+
if (!ctx.quiet) {
|
|
30
|
+
ctx.renderer?.writeBracketTag('plan', 'create');
|
|
31
|
+
}
|
|
32
|
+
let output = createPlan(planName, steps);
|
|
33
|
+
if (steps.length >= 3) {
|
|
34
|
+
output += `\n\nIMPORTANT: Plan has ${steps.length} steps. Use subagent tool for EACH step to work in isolation:\n`;
|
|
35
|
+
for (let i = 0; i < steps.length; i++) {
|
|
36
|
+
output += `subagent("Step ${i + 1}: ${steps[i]}. List existing files and packages.")\n`;
|
|
37
|
+
}
|
|
38
|
+
output += `This prevents context loss. Do NOT use write_file directly — delegate to subagents.`;
|
|
39
|
+
}
|
|
40
|
+
if (!ctx.quiet && output) {
|
|
41
|
+
ctx.renderer?.writeLine(output);
|
|
42
|
+
}
|
|
43
|
+
return { stdout: output, stderr: '', exitCode: 0, truncated: false };
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/tools/native/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;;;GAIG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,2EAA2E;QACxF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;gBAClD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;aAClF;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC5B;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,cAAc;IAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5H,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEzC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,2BAA2B,KAAK,CAAC,MAAM,iEAAiE,CAAC;YACnH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,yCAAyC,CAAC;YAC1F,CAAC;YACD,MAAM,IAAI,qFAAqF,CAAC;QAClG,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../registry.js';
|
|
2
|
+
import type { ToolHandler } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Нативный инструмент question — запрос вопроса пользователю.
|
|
5
|
+
* Приостанавливает ReAct-цикл до получения ответа.
|
|
6
|
+
*
|
|
7
|
+
* @module tools/native/question
|
|
8
|
+
*/
|
|
9
|
+
export declare const questionDefinition: ToolDefinition;
|
|
10
|
+
export declare const questionHandler: ToolHandler;
|
|
11
|
+
//# sourceMappingURL=question.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question.d.ts","sourceRoot":"","sources":["../../../src/tools/native/question.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;GAKG;AAEH,eAAO,MAAM,kBAAkB,EAAE,cAchC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAoB7B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Нативный инструмент question — запрос вопроса пользователю.
|
|
3
|
+
* Приостанавливает ReAct-цикл до получения ответа.
|
|
4
|
+
*
|
|
5
|
+
* @module tools/native/question
|
|
6
|
+
*/
|
|
7
|
+
export const questionDefinition = {
|
|
8
|
+
type: 'function',
|
|
9
|
+
function: {
|
|
10
|
+
name: 'question',
|
|
11
|
+
description: 'Ask the user a question. Pauses the agent loop until answered.',
|
|
12
|
+
parameters: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
question: { type: 'string', description: 'Question to ask' },
|
|
16
|
+
choices: { type: 'array', items: { type: 'string' }, description: 'Optional choice options' },
|
|
17
|
+
},
|
|
18
|
+
required: ['question'],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
export const questionHandler = {
|
|
23
|
+
name: 'question',
|
|
24
|
+
definition: questionDefinition,
|
|
25
|
+
async execute(args, ctx) {
|
|
26
|
+
const question = String(args.question || args.text || '');
|
|
27
|
+
const choicesArr = Array.isArray(args.choices) ? args.choices : [];
|
|
28
|
+
if (!ctx.quiet) {
|
|
29
|
+
ctx.renderer?.writeBracketTag('question', question);
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
stdout: `Question asked: ${question}`,
|
|
33
|
+
stderr: '',
|
|
34
|
+
exitCode: 0,
|
|
35
|
+
truncated: false,
|
|
36
|
+
questionPending: true,
|
|
37
|
+
breakLoop: true,
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=question.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question.js","sourceRoot":"","sources":["../../../src/tools/native/question.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IAChD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,gEAAgE;QAC7E,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBAC5D,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE;aAC9F;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,kBAAkB;IAC9B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,OAAO;YACL,MAAM,EAAE,mBAAmB,QAAQ,EAAE;YACrC,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../registry.js';
|
|
2
|
+
import type { ToolHandler } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Нативный инструмент theme — управление темами оформления.
|
|
5
|
+
*
|
|
6
|
+
* @module tools/native/theme
|
|
7
|
+
*/
|
|
8
|
+
export declare const themeDefinition: ToolDefinition;
|
|
9
|
+
export declare const themeHandler: ToolHandler;
|
|
10
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/tools/native/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAK/C;;;;GAIG;AAEH,eAAO,MAAM,eAAe,EAAE,cAe7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAkF1B,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { listThemes, switchTheme } from '../../styling/index.js';
|
|
2
|
+
import { loadThemeConfig, installTheme, removeTheme } from '../../styling/loader.js';
|
|
3
|
+
import { loadConfig, saveConfig } from '../../config/config.js';
|
|
4
|
+
/**
|
|
5
|
+
* Нативный инструмент theme — управление темами оформления.
|
|
6
|
+
*
|
|
7
|
+
* @module tools/native/theme
|
|
8
|
+
*/
|
|
9
|
+
export const themeDefinition = {
|
|
10
|
+
type: 'function',
|
|
11
|
+
function: {
|
|
12
|
+
name: 'theme',
|
|
13
|
+
description: 'Manage UI themes. Actions: list, show, switch, install, remove.',
|
|
14
|
+
parameters: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
action: { type: 'string', description: 'list, show, switch, install, remove' },
|
|
18
|
+
name: { type: 'string', description: 'Theme name (for switch/install/remove)' },
|
|
19
|
+
url: { type: 'string', description: 'Theme URL (for install)' },
|
|
20
|
+
},
|
|
21
|
+
required: ['action'],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
export const themeHandler = {
|
|
26
|
+
name: 'theme',
|
|
27
|
+
definition: themeDefinition,
|
|
28
|
+
async execute(args, ctx) {
|
|
29
|
+
const action = String(args.action || 'list');
|
|
30
|
+
const name = String(args.name || '');
|
|
31
|
+
const url = String(args.url || '');
|
|
32
|
+
if (!ctx.quiet) {
|
|
33
|
+
ctx.renderer?.writeBracketTag('theme', action);
|
|
34
|
+
}
|
|
35
|
+
let output = '';
|
|
36
|
+
let exitCode = 0;
|
|
37
|
+
switch (action) {
|
|
38
|
+
case 'list': {
|
|
39
|
+
const allThemes = listThemes();
|
|
40
|
+
const current = loadThemeConfig().name;
|
|
41
|
+
output = `Available themes (${allThemes.length}):\n`;
|
|
42
|
+
for (const t of allThemes) {
|
|
43
|
+
output += ` ${t}${t === current ? ' (active)' : ''}\n`;
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
case 'show': {
|
|
48
|
+
const config = loadThemeConfig();
|
|
49
|
+
output = `Theme: ${config.name}\nColors: ${JSON.stringify(config.colors, null, 2)}\nIcons: ${JSON.stringify(config.icons, null, 2)}`;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case 'switch': {
|
|
53
|
+
const allThemes = listThemes();
|
|
54
|
+
if (!allThemes.includes(name)) {
|
|
55
|
+
output = `Unknown theme "${name}". Available: ${allThemes.join(', ')}`;
|
|
56
|
+
exitCode = 1;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
const appConfig = loadConfig();
|
|
60
|
+
appConfig.theme = name;
|
|
61
|
+
saveConfig(appConfig);
|
|
62
|
+
switchTheme(name);
|
|
63
|
+
try {
|
|
64
|
+
const { resetInkTheme } = await import('../../ui/ink/theme.js');
|
|
65
|
+
resetInkTheme();
|
|
66
|
+
}
|
|
67
|
+
catch { /* not in ink mode */ }
|
|
68
|
+
output = `Theme switched to "${name}"`;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
case 'install': {
|
|
72
|
+
if (!name || !url) {
|
|
73
|
+
output = 'Usage: theme install <name> <url>';
|
|
74
|
+
exitCode = 1;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const resp = await fetch(url);
|
|
79
|
+
const text = await resp.text();
|
|
80
|
+
JSON.parse(text);
|
|
81
|
+
installTheme(name, text);
|
|
82
|
+
output = `Theme "${name}" installed from ${url}`;
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
output = `Failed to install theme: ${e.message}`;
|
|
86
|
+
exitCode = 1;
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
case 'remove': {
|
|
91
|
+
if (!removeTheme(name)) {
|
|
92
|
+
output = `Theme "${name}" not found`;
|
|
93
|
+
exitCode = 1;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
output = `Theme "${name}" removed`;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
default:
|
|
100
|
+
output = 'Unknown theme action. Use: list, show, switch, install, remove';
|
|
101
|
+
exitCode = 1;
|
|
102
|
+
}
|
|
103
|
+
return { stdout: output, stderr: '', exitCode, truncated: false };
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/tools/native/theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../registry.js';
|
|
2
|
+
import type { ToolHandler } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Нативный инструмент todo — управление списком задач.
|
|
5
|
+
*
|
|
6
|
+
* @module tools/native/todo
|
|
7
|
+
*/
|
|
8
|
+
export declare const todoDefinition: ToolDefinition;
|
|
9
|
+
export declare const todoHandler: ToolHandler;
|
|
10
|
+
//# sourceMappingURL=todo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.d.ts","sourceRoot":"","sources":["../../../src/tools/native/todo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C;;;;GAIG;AAEH,eAAO,MAAM,cAAc,EAAE,cAc5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WA4BzB,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { addTodo, doneTodo, removeTodo, listTodos } from '../todo.js';
|
|
2
|
+
/**
|
|
3
|
+
* Нативный инструмент todo — управление списком задач.
|
|
4
|
+
*
|
|
5
|
+
* @module tools/native/todo
|
|
6
|
+
*/
|
|
7
|
+
export const todoDefinition = {
|
|
8
|
+
type: 'function',
|
|
9
|
+
function: {
|
|
10
|
+
name: 'todo',
|
|
11
|
+
description: 'Manage a todo list. Actions: add, done, remove, list.',
|
|
12
|
+
parameters: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
action: { type: 'string', description: 'add, done, remove, list' },
|
|
16
|
+
text: { type: 'string', description: 'Todo text (for add/done/remove)' },
|
|
17
|
+
},
|
|
18
|
+
required: ['action'],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
export const todoHandler = {
|
|
23
|
+
name: 'todo',
|
|
24
|
+
definition: todoDefinition,
|
|
25
|
+
async execute(args, ctx) {
|
|
26
|
+
const action = String(args.action || 'list');
|
|
27
|
+
const text = String(args.text || '');
|
|
28
|
+
if (!ctx.quiet) {
|
|
29
|
+
ctx.renderer?.writeBracketTag('todo', action);
|
|
30
|
+
}
|
|
31
|
+
let output = '';
|
|
32
|
+
let exitCode = 0;
|
|
33
|
+
switch (action) {
|
|
34
|
+
case 'add':
|
|
35
|
+
output = addTodo(text);
|
|
36
|
+
break;
|
|
37
|
+
case 'done':
|
|
38
|
+
output = doneTodo(text);
|
|
39
|
+
break;
|
|
40
|
+
case 'remove':
|
|
41
|
+
case 'rm':
|
|
42
|
+
output = removeTodo(text);
|
|
43
|
+
break;
|
|
44
|
+
case 'list':
|
|
45
|
+
case 'ls':
|
|
46
|
+
output = listTodos();
|
|
47
|
+
break;
|
|
48
|
+
default:
|
|
49
|
+
output = 'Unknown todo action. Use: add, done, remove, list';
|
|
50
|
+
exitCode = 1;
|
|
51
|
+
}
|
|
52
|
+
if (!ctx.quiet && exitCode === 0 && output) {
|
|
53
|
+
ctx.renderer?.writeLine(output);
|
|
54
|
+
}
|
|
55
|
+
return { stdout: output, stderr: '', exitCode, truncated: false };
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=todo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo.js","sourceRoot":"","sources":["../../../src/tools/native/todo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;GAIG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,uDAAuD;QACpE,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;gBAClE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;aACzE;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,cAAc;IAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM;YAC1C,KAAK,MAAM;gBAAE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM;YAC5C,KAAK,QAAQ,CAAC;YAAC,KAAK,IAAI;gBAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM;YAC3D,KAAK,MAAM,CAAC;YAAC,KAAK,IAAI;gBAAE,MAAM,GAAG,SAAS,EAAE,CAAC;gBAAC,MAAM;YACpD;gBAAS,MAAM,GAAG,mDAAmD,CAAC;gBAAC,QAAQ,GAAG,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,QAAQ,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../registry.js';
|
|
2
|
+
import type { ToolHandler } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Нативный инструмент user_profile — управление профилем пользователя.
|
|
5
|
+
*
|
|
6
|
+
* @module tools/native/user-profile
|
|
7
|
+
*/
|
|
8
|
+
export declare const userProfileDefinition: ToolDefinition;
|
|
9
|
+
export declare const userProfileHandler: ToolHandler;
|
|
10
|
+
//# sourceMappingURL=user-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-profile.d.ts","sourceRoot":"","sources":["../../../src/tools/native/user-profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C;;;;GAIG;AAEH,eAAO,MAAM,qBAAqB,EAAE,cAenC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAsChC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { loadProfile, appendNote } from '../../agent/user-profile.js';
|
|
2
|
+
/**
|
|
3
|
+
* Нативный инструмент user_profile — управление профилем пользователя.
|
|
4
|
+
*
|
|
5
|
+
* @module tools/native/user-profile
|
|
6
|
+
*/
|
|
7
|
+
export const userProfileDefinition = {
|
|
8
|
+
type: 'function',
|
|
9
|
+
function: {
|
|
10
|
+
name: 'user_profile',
|
|
11
|
+
description: 'View or add notes to user profile. Actions: show, add_note.',
|
|
12
|
+
parameters: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
action: { type: 'string', description: 'show or add_note' },
|
|
16
|
+
note: { type: 'string', description: 'Note text (for add_note)' },
|
|
17
|
+
section: { type: 'string', description: 'Section name (for add_note, default: Notes)' },
|
|
18
|
+
},
|
|
19
|
+
required: ['action'],
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export const userProfileHandler = {
|
|
24
|
+
name: 'user_profile',
|
|
25
|
+
definition: userProfileDefinition,
|
|
26
|
+
async execute(args, ctx) {
|
|
27
|
+
const action = String(args.action || 'show');
|
|
28
|
+
if (!ctx.quiet) {
|
|
29
|
+
ctx.renderer?.writeBracketTag('user_profile', action);
|
|
30
|
+
}
|
|
31
|
+
let output = '';
|
|
32
|
+
let exitCode = 0;
|
|
33
|
+
switch (action) {
|
|
34
|
+
case 'show': {
|
|
35
|
+
const content = loadProfile();
|
|
36
|
+
output = content || 'User profile is empty.';
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case 'add_note': {
|
|
40
|
+
const note = String(args.note || args.text || '');
|
|
41
|
+
const section = String(args.section || 'Notes');
|
|
42
|
+
if (!note) {
|
|
43
|
+
output = 'Usage: user_profile action=add_note section=Notes note=...';
|
|
44
|
+
exitCode = 1;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
appendNote(note, section);
|
|
48
|
+
output = `Note added to "${section}" section.`;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
default:
|
|
52
|
+
output = 'Unknown user_profile action. Use: show, add_note';
|
|
53
|
+
exitCode = 1;
|
|
54
|
+
}
|
|
55
|
+
return { stdout: output, stderr: '', exitCode, truncated: false };
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=user-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-profile.js","sourceRoot":"","sources":["../../../src/tools/native/user-profile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;GAIG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,6DAA6D;QAC1E,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBAC3D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACjE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6CAA6C,EAAE;aACxF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,qBAAqB;IACjC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;QAE7C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC9B,MAAM,GAAG,OAAO,IAAI,wBAAwB,CAAC;gBAC7C,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;gBAChD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,GAAG,4DAA4D,CAAC;oBACtE,QAAQ,GAAG,CAAC,CAAC;oBACb,MAAM;gBACR,CAAC;gBACD,UAAU,CAAC,IAAI,EAAE,OAAc,CAAC,CAAC;gBACjC,MAAM,GAAG,kBAAkB,OAAO,YAAY,CAAC;gBAC/C,MAAM;YACR,CAAC;YACD;gBACE,MAAM,GAAG,kDAAkD,CAAC;gBAC5D,QAAQ,GAAG,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;CACF,CAAC"}
|