@aquiles-ai/ishikawa-toolkit 1.4.0 → 1.5.0
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/README.md +41 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/module.d.ts +1 -1
- package/dist/modules/module.d.ts.map +1 -1
- package/dist/modules/module.js +18 -1
- package/dist/modules/module.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -93,6 +93,46 @@ console.log(result2); // Output: 5
|
|
|
93
93
|
const tools = await manager.list();
|
|
94
94
|
console.log(tools); // Output: ['calculator', ...]
|
|
95
95
|
```
|
|
96
|
+
|
|
97
|
+
## Environment Variables (Optional)
|
|
98
|
+
|
|
99
|
+
If your tool requires environment variables, you can provide a `.env` file during registration. This parameter is optional and accepts either a file path or direct content.
|
|
100
|
+
|
|
101
|
+
### Using a .env file path
|
|
102
|
+
```typescript
|
|
103
|
+
await manager.createTool(
|
|
104
|
+
'api-client',
|
|
105
|
+
'./api-client.ts',
|
|
106
|
+
true,
|
|
107
|
+
'./api-metadata.json',
|
|
108
|
+
'./config/.env' // Path to .env file
|
|
109
|
+
);
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Using direct .env content
|
|
113
|
+
```typescript
|
|
114
|
+
await manager.createTool(
|
|
115
|
+
'api-client',
|
|
116
|
+
'./api-client.ts',
|
|
117
|
+
true,
|
|
118
|
+
'./api-metadata.json',
|
|
119
|
+
'API_KEY=your-key-here\nAPI_URL=https://api.example.com' // Direct content
|
|
120
|
+
);
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Without environment variables
|
|
124
|
+
```typescript
|
|
125
|
+
await manager.createTool(
|
|
126
|
+
'calculator',
|
|
127
|
+
'./calculator.ts',
|
|
128
|
+
true,
|
|
129
|
+
'./calculator-metadata.json'
|
|
130
|
+
// No .env parameter needed
|
|
131
|
+
);
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
The `.env` file will be copied to the tool's directory and will be available when the tool executes.
|
|
135
|
+
|
|
96
136
|
## Using with Local LLMs
|
|
97
137
|
|
|
98
138
|
Ishikawa-toolkit works seamlessly with local LLM servers like vLLM. Here's how to set up function calling with a local model:
|
|
@@ -155,7 +195,7 @@ let input = [
|
|
|
155
195
|
let response = await client.responses.create({
|
|
156
196
|
model: "gpt-oss-20b",
|
|
157
197
|
tools: toolsMetadata,
|
|
158
|
-
input,
|
|
198
|
+
input: input,
|
|
159
199
|
});
|
|
160
200
|
|
|
161
201
|
// console.log("Response 1:", response);
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { LoadedTool } from "./modules/module.js";
|
|
|
2
2
|
export declare class ToolManager {
|
|
3
3
|
private cache;
|
|
4
4
|
constructor();
|
|
5
|
-
createTool(name: string, code_path: string, auto_install: boolean, json_llm: string): Promise<void>;
|
|
5
|
+
createTool(name: string, code_path: string, auto_install: boolean, json_llm: string, env_file?: string): Promise<void>;
|
|
6
6
|
getTool(name: string, forceReload?: boolean): Promise<LoadedTool>;
|
|
7
7
|
listTools(): Promise<string[]>;
|
|
8
8
|
loadAll(): Promise<Map<string, LoadedTool>>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAErF,qBAAa,WAAW;IACpB,OAAO,CAAC,KAAK,CAAsC;;IAI7C,UAAU,CACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAErF,qBAAa,WAAW;IACpB,OAAO,CAAC,KAAK,CAAsC;;IAI7C,UAAU,CACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM;IAMf,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAW/D,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI9B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAY3C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAMvD,eAAe,CAAC,IAAI,EAAE,MAAM;IAKlC,UAAU,IAAI,IAAI;IAKlB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAOzC"}
|
package/dist/index.js
CHANGED
|
@@ -2,8 +2,8 @@ import { ToolRegister, ToolLoader, ToolList } from "./modules/module.js";
|
|
|
2
2
|
export class ToolManager {
|
|
3
3
|
cache = new Map();
|
|
4
4
|
constructor() { }
|
|
5
|
-
async createTool(name, code_path, auto_install, json_llm) {
|
|
6
|
-
await ToolRegister(name, code_path, auto_install, json_llm);
|
|
5
|
+
async createTool(name, code_path, auto_install, json_llm, env_file) {
|
|
6
|
+
await ToolRegister(name, code_path, auto_install, json_llm, env_file);
|
|
7
7
|
console.log(`Tool "${name}" registered`);
|
|
8
8
|
}
|
|
9
9
|
async getTool(name, forceReload = false) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAc,MAAM,qBAAqB,CAAC;AAErF,MAAM,OAAO,WAAW;IACZ,KAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEnD,gBAAe,CAAC;IAEhB,KAAK,CAAC,UAAU,CACZ,IAAY,EACZ,SAAiB,EACjB,YAAqB,EACrB,QAAgB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAc,MAAM,qBAAqB,CAAC;AAErF,MAAM,OAAO,WAAW;IACZ,KAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEnD,gBAAe,CAAC;IAEhB,KAAK,CAAC,UAAU,CACZ,IAAY,EACZ,SAAiB,EACjB,YAAqB,EACrB,QAAgB,EAChB,QAAiB;QAEjB,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,WAAW,GAAG,KAAK;QAC3C,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS;QACX,OAAO,MAAM,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEzC,MAAM,OAAO,CAAC,GAAG,CACb,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAC5C,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,GAAG,IAAW;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,eAAe,CAAC,IAAY;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,UAAU;QACN,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,IAAY;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,sBAAsB,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ"}
|
package/dist/modules/module.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface LoadedTool {
|
|
|
10
10
|
execute: (...args: any[]) => Promise<any>;
|
|
11
11
|
path: string;
|
|
12
12
|
}
|
|
13
|
-
export declare function ToolRegister(name: string, code_path: string, auto_install: boolean, json_llm: string): Promise<void>;
|
|
13
|
+
export declare function ToolRegister(name: string, code_path: string, auto_install: boolean, json_llm: string, env_file?: string): Promise<void>;
|
|
14
14
|
export declare function ToolLoader(name: string): Promise<LoadedTool>;
|
|
15
15
|
export declare function ToolList(): Promise<string[]>;
|
|
16
16
|
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/modules/module.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/modules/module.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,iBA4BpB;AAyDD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAyDlE;AAED,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAclD"}
|
package/dist/modules/module.js
CHANGED
|
@@ -9,7 +9,7 @@ const execAsync = promisify(exec);
|
|
|
9
9
|
const paths = envPaths('Ishikawa-Toolkit', { suffix: '' });
|
|
10
10
|
const TOOLS_BASE_DIR = paths.data;
|
|
11
11
|
await mkdir(TOOLS_BASE_DIR, { recursive: true });
|
|
12
|
-
export async function ToolRegister(name, code_path, auto_install, json_llm) {
|
|
12
|
+
export async function ToolRegister(name, code_path, auto_install, json_llm, env_file) {
|
|
13
13
|
const metadata = await parseJsonInput(json_llm);
|
|
14
14
|
const toolPath = join(TOOLS_BASE_DIR, 'tools', name);
|
|
15
15
|
await mkdir(toolPath, { recursive: true });
|
|
@@ -17,6 +17,11 @@ export async function ToolRegister(name, code_path, auto_install, json_llm) {
|
|
|
17
17
|
await copyFile(code_path, targetCodePath);
|
|
18
18
|
const metadataPath = join(toolPath, 'function.json');
|
|
19
19
|
await writeFile(metadataPath, JSON.stringify(metadata, null, 2));
|
|
20
|
+
if (env_file) {
|
|
21
|
+
const envContent = await parseEnvInput(env_file);
|
|
22
|
+
const targetEnvPath = join(toolPath, '.env');
|
|
23
|
+
await writeFile(targetEnvPath, envContent);
|
|
24
|
+
}
|
|
20
25
|
await createPackageJson(toolPath, name, metadata.dependencies || {});
|
|
21
26
|
if (auto_install) {
|
|
22
27
|
await installDependencies(toolPath);
|
|
@@ -38,6 +43,18 @@ async function parseJsonInput(input) {
|
|
|
38
43
|
}
|
|
39
44
|
}
|
|
40
45
|
}
|
|
46
|
+
async function parseEnvInput(input) {
|
|
47
|
+
if (input.includes('=') && !input.includes('/') && !input.includes('\\')) {
|
|
48
|
+
return input;
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const fileContent = await readFile(input, 'utf-8');
|
|
52
|
+
return fileContent;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return input;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
41
58
|
async function createPackageJson(toolPath, name, dependencies) {
|
|
42
59
|
const packageJson = {
|
|
43
60
|
name: `tool-${name}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/modules/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3D,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC;AAClC,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAgBjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,IAAY,EACZ,SAAiB,EACjB,YAAqB,EACrB,QAAgB;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/modules/module.ts"],"names":[],"mappings":"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"}
|