@cogitator-ai/wasm-tools 0.3.7 → 0.4.1
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 +77 -0
- package/dist/__tests__/file-watcher.test.d.ts +2 -0
- package/dist/__tests__/file-watcher.test.d.ts.map +1 -0
- package/dist/__tests__/file-watcher.test.js +99 -0
- package/dist/__tests__/file-watcher.test.js.map +1 -0
- package/dist/__tests__/wasm-loader.test.d.ts +2 -0
- package/dist/__tests__/wasm-loader.test.d.ts.map +1 -0
- package/dist/__tests__/wasm-loader.test.js +69 -0
- package/dist/__tests__/wasm-loader.test.js.map +1 -0
- package/dist/__tests__/wasm-tool-manager.test.d.ts +2 -0
- package/dist/__tests__/wasm-tool-manager.test.d.ts.map +1 -0
- package/dist/__tests__/wasm-tool-manager.test.js +171 -0
- package/dist/__tests__/wasm-tool-manager.test.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/manager/file-watcher.d.ts +12 -0
- package/dist/manager/file-watcher.d.ts.map +1 -0
- package/dist/manager/file-watcher.js +59 -0
- package/dist/manager/file-watcher.js.map +1 -0
- package/dist/manager/index.d.ts +5 -0
- package/dist/manager/index.d.ts.map +1 -0
- package/dist/manager/index.js +4 -0
- package/dist/manager/index.js.map +1 -0
- package/dist/manager/types.d.ts +40 -0
- package/dist/manager/types.d.ts.map +1 -0
- package/dist/manager/types.js +2 -0
- package/dist/manager/types.js.map +1 -0
- package/dist/manager/wasm-loader.d.ts +8 -0
- package/dist/manager/wasm-loader.d.ts.map +1 -0
- package/dist/manager/wasm-loader.js +27 -0
- package/dist/manager/wasm-loader.js.map +1 -0
- package/dist/manager/wasm-tool-manager.d.ts +26 -0
- package/dist/manager/wasm-tool-manager.d.ts.map +1 -0
- package/dist/manager/wasm-tool-manager.js +154 -0
- package/dist/manager/wasm-tool-manager.js.map +1 -0
- package/dist/plugins/base64.d.ts.map +1 -1
- package/dist/plugins/base64.js +1 -2
- package/dist/plugins/base64.js.map +1 -1
- package/dist/temp/base64.js +1 -2
- package/dist/wasm/base64.wasm +0 -0
- package/dist/wasm/calc.wasm +0 -0
- package/dist/wasm/hash.wasm +0 -0
- package/dist/wasm/json.wasm +0 -0
- package/package.json +9 -4
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@ WASM-based tools for Cogitator agents. Secure, sandboxed tool execution using We
|
|
|
8
8
|
- 🔒 **Memory-safe execution** in isolated Extism sandbox
|
|
9
9
|
- 📦 **~20x lower memory footprint** compared to containers
|
|
10
10
|
- 🛠️ **Custom tool framework** - create your own WASM tools
|
|
11
|
+
- 🔄 **Hot-reload support** - update WASM modules without restart
|
|
11
12
|
|
|
12
13
|
## Installation
|
|
13
14
|
|
|
@@ -75,6 +76,41 @@ const agent = new Agent({
|
|
|
75
76
|
});
|
|
76
77
|
```
|
|
77
78
|
|
|
79
|
+
### Hot-Reload with WasmToolManager
|
|
80
|
+
|
|
81
|
+
Watch WASM files and automatically reload on changes:
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
import { WasmToolManager } from '@cogitator-ai/wasm-tools';
|
|
85
|
+
import { Cogitator, Agent } from '@cogitator-ai/core';
|
|
86
|
+
|
|
87
|
+
const manager = new WasmToolManager({ debounceMs: 200 });
|
|
88
|
+
|
|
89
|
+
// Watch directory for WASM plugins
|
|
90
|
+
await manager.watch('./plugins/*.wasm', {
|
|
91
|
+
onLoad: (name) => console.log(`✓ Loaded: ${name}`),
|
|
92
|
+
onReload: (name) => console.log(`↻ Reloaded: ${name}`),
|
|
93
|
+
onUnload: (name) => console.log(`✗ Unloaded: ${name}`),
|
|
94
|
+
onError: (name, _, err) => console.error(`Error ${name}: ${err.message}`),
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// Or load a single module
|
|
98
|
+
const calcTool = await manager.load('./plugins/calc.wasm');
|
|
99
|
+
|
|
100
|
+
// Get all tools for agent
|
|
101
|
+
const agent = new Agent({
|
|
102
|
+
name: 'wasm-agent',
|
|
103
|
+
tools: manager.getTools(),
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Tools automatically use the latest plugin version after reload
|
|
107
|
+
const cogitator = new Cogitator({ llm: { defaultProvider: 'openai' } });
|
|
108
|
+
await cogitator.run(agent, 'Calculate 2 + 2');
|
|
109
|
+
|
|
110
|
+
// Cleanup when done
|
|
111
|
+
await manager.close();
|
|
112
|
+
```
|
|
113
|
+
|
|
78
114
|
## API Reference
|
|
79
115
|
|
|
80
116
|
### defineWasmTool(config)
|
|
@@ -151,6 +187,47 @@ const calcPath = getWasmPath('calc'); // Path to calc.wasm
|
|
|
151
187
|
const jsonPath = getWasmPath('json'); // Path to json.wasm
|
|
152
188
|
```
|
|
153
189
|
|
|
190
|
+
### WasmToolManager
|
|
191
|
+
|
|
192
|
+
Manage WASM tools with hot-reload support.
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
interface WasmToolManagerOptions {
|
|
196
|
+
debounceMs?: number; // File change debounce delay (default: 100ms)
|
|
197
|
+
useWasi?: boolean; // Enable WASI for all modules
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
interface WasmToolCallbacks {
|
|
201
|
+
onLoad?: (name: string, path: string) => void;
|
|
202
|
+
onReload?: (name: string, path: string) => void;
|
|
203
|
+
onUnload?: (name: string, path: string) => void;
|
|
204
|
+
onError?: (name: string, path: string, error: Error) => void;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
class WasmToolManager {
|
|
208
|
+
constructor(options?: WasmToolManagerOptions);
|
|
209
|
+
|
|
210
|
+
// Watch a glob pattern for WASM files
|
|
211
|
+
watch(pattern: string, callbacks?: WasmToolCallbacks): Promise<void>;
|
|
212
|
+
|
|
213
|
+
// Load a single WASM module
|
|
214
|
+
load(wasmPath: string): Promise<Tool>;
|
|
215
|
+
|
|
216
|
+
// Get all loaded tools
|
|
217
|
+
getTools(): Tool[];
|
|
218
|
+
|
|
219
|
+
// Get a tool by module name
|
|
220
|
+
getTool(name: string): Tool | undefined;
|
|
221
|
+
|
|
222
|
+
// Get module metadata
|
|
223
|
+
getModule(name: string): LoadedModule | undefined;
|
|
224
|
+
getModules(): LoadedModule[];
|
|
225
|
+
|
|
226
|
+
// Close watcher and all plugins
|
|
227
|
+
close(): Promise<void>;
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
154
231
|
### Legacy Exports
|
|
155
232
|
|
|
156
233
|
For direct sandbox usage:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-watcher.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/file-watcher.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { FileWatcher } from '../manager/file-watcher.js';
|
|
3
|
+
vi.mock('chokidar', () => {
|
|
4
|
+
const mockWatcher = {
|
|
5
|
+
on: vi.fn().mockReturnThis(),
|
|
6
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
7
|
+
};
|
|
8
|
+
return {
|
|
9
|
+
default: {
|
|
10
|
+
watch: vi.fn().mockReturnValue(mockWatcher),
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
});
|
|
14
|
+
describe('FileWatcher', () => {
|
|
15
|
+
let watcher;
|
|
16
|
+
let chokidarMock;
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
vi.useFakeTimers();
|
|
19
|
+
chokidarMock = await import('chokidar');
|
|
20
|
+
watcher = new FileWatcher(100);
|
|
21
|
+
});
|
|
22
|
+
afterEach(async () => {
|
|
23
|
+
await watcher.close();
|
|
24
|
+
vi.useRealTimers();
|
|
25
|
+
vi.clearAllMocks();
|
|
26
|
+
});
|
|
27
|
+
it('creates a watcher with chokidar', () => {
|
|
28
|
+
const callbacks = {
|
|
29
|
+
onAdd: vi.fn(),
|
|
30
|
+
onChange: vi.fn(),
|
|
31
|
+
onUnlink: vi.fn(),
|
|
32
|
+
};
|
|
33
|
+
watcher.watch('./test/*.wasm', callbacks);
|
|
34
|
+
expect(chokidarMock.default.watch).toHaveBeenCalledWith('./test/*.wasm', expect.objectContaining({
|
|
35
|
+
persistent: true,
|
|
36
|
+
ignoreInitial: false,
|
|
37
|
+
}));
|
|
38
|
+
});
|
|
39
|
+
it('throws if watch is called twice without close', () => {
|
|
40
|
+
const callbacks = {
|
|
41
|
+
onAdd: vi.fn(),
|
|
42
|
+
onChange: vi.fn(),
|
|
43
|
+
onUnlink: vi.fn(),
|
|
44
|
+
};
|
|
45
|
+
watcher.watch('./test/*.wasm', callbacks);
|
|
46
|
+
expect(() => watcher.watch('./other/*.wasm', callbacks)).toThrow('Watcher already started');
|
|
47
|
+
});
|
|
48
|
+
it('debounces add events', async () => {
|
|
49
|
+
const onAdd = vi.fn();
|
|
50
|
+
const callbacks = { onAdd, onChange: vi.fn(), onUnlink: vi.fn() };
|
|
51
|
+
watcher.watch('./test/*.wasm', callbacks);
|
|
52
|
+
const mockWatcher = chokidarMock.default.watch.mock.results[0]
|
|
53
|
+
.value;
|
|
54
|
+
const addHandler = mockWatcher.on.mock.calls.find((c) => c[0] === 'add')?.[1];
|
|
55
|
+
addHandler('/path/test.wasm');
|
|
56
|
+
addHandler('/path/test.wasm');
|
|
57
|
+
addHandler('/path/test.wasm');
|
|
58
|
+
expect(onAdd).not.toHaveBeenCalled();
|
|
59
|
+
vi.advanceTimersByTime(100);
|
|
60
|
+
expect(onAdd).toHaveBeenCalledTimes(1);
|
|
61
|
+
expect(onAdd).toHaveBeenCalledWith('/path/test.wasm');
|
|
62
|
+
});
|
|
63
|
+
it('debounces change events', async () => {
|
|
64
|
+
const onChange = vi.fn();
|
|
65
|
+
const callbacks = { onAdd: vi.fn(), onChange, onUnlink: vi.fn() };
|
|
66
|
+
watcher.watch('./test/*.wasm', callbacks);
|
|
67
|
+
const mockWatcher = chokidarMock.default.watch.mock.results[0]
|
|
68
|
+
.value;
|
|
69
|
+
const changeHandler = mockWatcher.on.mock.calls.find((c) => c[0] === 'change')?.[1];
|
|
70
|
+
changeHandler('/path/test.wasm');
|
|
71
|
+
vi.advanceTimersByTime(50);
|
|
72
|
+
changeHandler('/path/test.wasm');
|
|
73
|
+
vi.advanceTimersByTime(50);
|
|
74
|
+
changeHandler('/path/test.wasm');
|
|
75
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
76
|
+
vi.advanceTimersByTime(100);
|
|
77
|
+
expect(onChange).toHaveBeenCalledTimes(1);
|
|
78
|
+
});
|
|
79
|
+
it('calls onUnlink immediately without debounce', () => {
|
|
80
|
+
const onUnlink = vi.fn();
|
|
81
|
+
const callbacks = { onAdd: vi.fn(), onChange: vi.fn(), onUnlink };
|
|
82
|
+
watcher.watch('./test/*.wasm', callbacks);
|
|
83
|
+
const mockWatcher = chokidarMock.default.watch.mock.results[0]
|
|
84
|
+
.value;
|
|
85
|
+
const unlinkHandler = mockWatcher.on.mock.calls.find((c) => c[0] === 'unlink')?.[1];
|
|
86
|
+
unlinkHandler('/path/test.wasm');
|
|
87
|
+
expect(onUnlink).toHaveBeenCalledTimes(1);
|
|
88
|
+
expect(onUnlink).toHaveBeenCalledWith('/path/test.wasm');
|
|
89
|
+
});
|
|
90
|
+
it('closes chokidar watcher on close()', async () => {
|
|
91
|
+
const callbacks = { onAdd: vi.fn(), onChange: vi.fn(), onUnlink: vi.fn() };
|
|
92
|
+
watcher.watch('./test/*.wasm', callbacks);
|
|
93
|
+
const mockWatcher = chokidarMock.default.watch.mock.results[0]
|
|
94
|
+
.value;
|
|
95
|
+
await watcher.close();
|
|
96
|
+
expect(mockWatcher.close).toHaveBeenCalled();
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=file-watcher.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-watcher.test.js","sourceRoot":"","sources":["../../src/__tests__/file-watcher.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-loader.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/wasm-loader.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { WasmLoader } from '../manager/wasm-loader.js';
|
|
3
|
+
import * as fs from 'node:fs/promises';
|
|
4
|
+
vi.mock('node:fs/promises', () => ({
|
|
5
|
+
readFile: vi.fn().mockResolvedValue(new Uint8Array([0, 97, 115, 109])),
|
|
6
|
+
}));
|
|
7
|
+
vi.mock('@extism/extism', () => ({
|
|
8
|
+
default: vi.fn().mockImplementation((source, _options) => {
|
|
9
|
+
return Promise.resolve({
|
|
10
|
+
call: vi.fn().mockResolvedValue({
|
|
11
|
+
text: () => JSON.stringify({ result: 'mock' }),
|
|
12
|
+
bytes: () => new Uint8Array(),
|
|
13
|
+
}),
|
|
14
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
15
|
+
source,
|
|
16
|
+
});
|
|
17
|
+
}),
|
|
18
|
+
}));
|
|
19
|
+
describe('WasmLoader', () => {
|
|
20
|
+
let loader;
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
loader = new WasmLoader();
|
|
23
|
+
vi.clearAllMocks();
|
|
24
|
+
});
|
|
25
|
+
afterEach(() => {
|
|
26
|
+
vi.resetModules();
|
|
27
|
+
});
|
|
28
|
+
it('throws if not initialized', async () => {
|
|
29
|
+
await expect(loader.load('./test.wasm', false)).rejects.toThrow('WasmLoader not initialized');
|
|
30
|
+
});
|
|
31
|
+
it('initializes extism on first call', async () => {
|
|
32
|
+
await loader.initialize();
|
|
33
|
+
await loader.initialize();
|
|
34
|
+
const extism = await import('@extism/extism');
|
|
35
|
+
expect(extism.default).toBeDefined();
|
|
36
|
+
});
|
|
37
|
+
it('loads a local WASM file', async () => {
|
|
38
|
+
await loader.initialize();
|
|
39
|
+
const plugin = await loader.load('./test.wasm', false);
|
|
40
|
+
expect(fs.readFile).toHaveBeenCalled();
|
|
41
|
+
expect(plugin).toBeDefined();
|
|
42
|
+
expect(plugin.call).toBeDefined();
|
|
43
|
+
});
|
|
44
|
+
it('loads from URL without reading file', async () => {
|
|
45
|
+
await loader.initialize();
|
|
46
|
+
const plugin = await loader.load('https://example.com/test.wasm', false);
|
|
47
|
+
expect(fs.readFile).not.toHaveBeenCalled();
|
|
48
|
+
expect(plugin).toBeDefined();
|
|
49
|
+
expect(plugin.source).toEqual({
|
|
50
|
+
url: 'https://example.com/test.wasm',
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
it('resolves relative paths to absolute', async () => {
|
|
54
|
+
await loader.initialize();
|
|
55
|
+
await loader.load('./plugins/test.wasm', false);
|
|
56
|
+
const readFileMock = fs.readFile;
|
|
57
|
+
const calledPath = readFileMock.mock.calls[0][0];
|
|
58
|
+
expect(calledPath).toMatch(/\/plugins\/test\.wasm$/);
|
|
59
|
+
expect(calledPath.startsWith('/')).toBe(true);
|
|
60
|
+
});
|
|
61
|
+
it('passes useWasi option to extism', async () => {
|
|
62
|
+
await loader.initialize();
|
|
63
|
+
await loader.load('./test.wasm', true);
|
|
64
|
+
const extism = await import('@extism/extism');
|
|
65
|
+
const createPlugin = extism.default;
|
|
66
|
+
expect(createPlugin).toHaveBeenCalledWith(expect.any(Object), expect.objectContaining({ useWasi: true }));
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=wasm-loader.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-loader.test.js","sourceRoot":"","sources":["../../src/__tests__/wasm-loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-tool-manager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/wasm-tool-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { WasmToolManager } from '../manager/wasm-tool-manager.js';
|
|
3
|
+
vi.mock('../manager/wasm-loader.js', () => ({
|
|
4
|
+
WasmLoader: vi.fn().mockImplementation(() => ({
|
|
5
|
+
initialize: vi.fn().mockResolvedValue(undefined),
|
|
6
|
+
load: vi.fn().mockImplementation((path) => {
|
|
7
|
+
return Promise.resolve({
|
|
8
|
+
call: vi.fn().mockResolvedValue({
|
|
9
|
+
text: () => JSON.stringify({ result: `executed-${path}` }),
|
|
10
|
+
bytes: () => new Uint8Array(),
|
|
11
|
+
}),
|
|
12
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
13
|
+
});
|
|
14
|
+
}),
|
|
15
|
+
})),
|
|
16
|
+
}));
|
|
17
|
+
vi.mock('../manager/file-watcher.js', () => ({
|
|
18
|
+
FileWatcher: vi.fn().mockImplementation(() => {
|
|
19
|
+
const instance = {
|
|
20
|
+
watch: vi.fn(),
|
|
21
|
+
close: vi.fn().mockResolvedValue(undefined),
|
|
22
|
+
_callbacks: null,
|
|
23
|
+
};
|
|
24
|
+
instance.watch = vi.fn().mockImplementation((_pattern, callbacks) => {
|
|
25
|
+
instance._callbacks = callbacks;
|
|
26
|
+
});
|
|
27
|
+
return instance;
|
|
28
|
+
}),
|
|
29
|
+
}));
|
|
30
|
+
describe('WasmToolManager', () => {
|
|
31
|
+
let manager;
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
manager = new WasmToolManager({ debounceMs: 50 });
|
|
34
|
+
vi.clearAllMocks();
|
|
35
|
+
});
|
|
36
|
+
afterEach(async () => {
|
|
37
|
+
await manager.close();
|
|
38
|
+
});
|
|
39
|
+
describe('load()', () => {
|
|
40
|
+
it('loads a single WASM module', async () => {
|
|
41
|
+
const tool = await manager.load('./calc.wasm');
|
|
42
|
+
expect(tool.name).toBe('calc');
|
|
43
|
+
expect(tool.description).toBe('WASM tool: calc');
|
|
44
|
+
expect(tool.execute).toBeDefined();
|
|
45
|
+
});
|
|
46
|
+
it('returns the same tool for same path', async () => {
|
|
47
|
+
const tool1 = await manager.load('./calc.wasm');
|
|
48
|
+
const tool2 = await manager.load('./calc.wasm');
|
|
49
|
+
expect(tool1.name).toBe(tool2.name);
|
|
50
|
+
});
|
|
51
|
+
it('loads multiple different modules', async () => {
|
|
52
|
+
const calc = await manager.load('./calc.wasm');
|
|
53
|
+
const hash = await manager.load('./hash.wasm');
|
|
54
|
+
expect(calc.name).toBe('calc');
|
|
55
|
+
expect(hash.name).toBe('hash');
|
|
56
|
+
expect(manager.getTools()).toHaveLength(2);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
describe('getTools()', () => {
|
|
60
|
+
it('returns empty array when no modules loaded', () => {
|
|
61
|
+
expect(manager.getTools()).toEqual([]);
|
|
62
|
+
});
|
|
63
|
+
it('returns all loaded tools', async () => {
|
|
64
|
+
await manager.load('./calc.wasm');
|
|
65
|
+
await manager.load('./hash.wasm');
|
|
66
|
+
const tools = manager.getTools();
|
|
67
|
+
expect(tools).toHaveLength(2);
|
|
68
|
+
expect(tools.map((t) => t.name).sort()).toEqual(['calc', 'hash']);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('getTool()', () => {
|
|
72
|
+
it('returns undefined for non-existent tool', () => {
|
|
73
|
+
expect(manager.getTool('nonexistent')).toBeUndefined();
|
|
74
|
+
});
|
|
75
|
+
it('returns the tool by name', async () => {
|
|
76
|
+
await manager.load('./calc.wasm');
|
|
77
|
+
const tool = manager.getTool('calc');
|
|
78
|
+
expect(tool?.name).toBe('calc');
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('getModule()', () => {
|
|
82
|
+
it('returns module info with metadata', async () => {
|
|
83
|
+
await manager.load('./calc.wasm');
|
|
84
|
+
const mod = manager.getModule('calc');
|
|
85
|
+
expect(mod).toBeDefined();
|
|
86
|
+
expect(mod?.name).toBe('calc');
|
|
87
|
+
expect(mod?.path).toBe('./calc.wasm');
|
|
88
|
+
expect(mod?.loadedAt).toBeInstanceOf(Date);
|
|
89
|
+
expect(mod?.plugin).toBeDefined();
|
|
90
|
+
expect(mod?.tool).toBeDefined();
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
describe('watch()', () => {
|
|
94
|
+
it('starts watching for WASM files', async () => {
|
|
95
|
+
const callbacks = {
|
|
96
|
+
onLoad: vi.fn(),
|
|
97
|
+
onReload: vi.fn(),
|
|
98
|
+
onError: vi.fn(),
|
|
99
|
+
};
|
|
100
|
+
await manager.watch('./plugins/*.wasm', callbacks);
|
|
101
|
+
const { FileWatcher } = await import('../manager/file-watcher.js');
|
|
102
|
+
const watcherInstance = FileWatcher.mock.results[0].value;
|
|
103
|
+
expect(watcherInstance.watch).toHaveBeenCalledWith('./plugins/*.wasm', expect.any(Object));
|
|
104
|
+
});
|
|
105
|
+
it('throws if watch called twice', async () => {
|
|
106
|
+
await manager.watch('./plugins/*.wasm');
|
|
107
|
+
await expect(manager.watch('./other/*.wasm')).rejects.toThrow('Already watching');
|
|
108
|
+
});
|
|
109
|
+
it('calls onLoad when file is added', async () => {
|
|
110
|
+
const onLoad = vi.fn();
|
|
111
|
+
await manager.watch('./plugins/*.wasm', { onLoad });
|
|
112
|
+
const { FileWatcher } = await import('../manager/file-watcher.js');
|
|
113
|
+
const watcherInstance = FileWatcher.mock.results[0].value;
|
|
114
|
+
watcherInstance._callbacks?.onAdd('./plugins/calc.wasm');
|
|
115
|
+
await vi.waitFor(() => {
|
|
116
|
+
expect(onLoad).toHaveBeenCalledWith('calc', './plugins/calc.wasm');
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
it('calls onReload when file changes', async () => {
|
|
120
|
+
const onReload = vi.fn();
|
|
121
|
+
await manager.watch('./plugins/*.wasm', { onReload });
|
|
122
|
+
const { FileWatcher } = await import('../manager/file-watcher.js');
|
|
123
|
+
const watcherInstance = FileWatcher.mock.results[0].value;
|
|
124
|
+
watcherInstance._callbacks?.onAdd('./plugins/calc.wasm');
|
|
125
|
+
await vi.waitFor(() => {
|
|
126
|
+
expect(manager.getTool('calc')).toBeDefined();
|
|
127
|
+
});
|
|
128
|
+
watcherInstance._callbacks?.onChange('./plugins/calc.wasm');
|
|
129
|
+
await vi.waitFor(() => {
|
|
130
|
+
expect(onReload).toHaveBeenCalledWith('calc', './plugins/calc.wasm');
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
it('calls onUnload when file is deleted', async () => {
|
|
134
|
+
const onUnload = vi.fn();
|
|
135
|
+
await manager.watch('./plugins/*.wasm', { onUnload });
|
|
136
|
+
const { FileWatcher } = await import('../manager/file-watcher.js');
|
|
137
|
+
const watcherInstance = FileWatcher.mock.results[0].value;
|
|
138
|
+
await watcherInstance._callbacks?.onAdd('./plugins/calc.wasm');
|
|
139
|
+
await watcherInstance._callbacks?.onUnlink('./plugins/calc.wasm');
|
|
140
|
+
expect(onUnload).toHaveBeenCalledWith('calc', './plugins/calc.wasm');
|
|
141
|
+
expect(manager.getTool('calc')).toBeUndefined();
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
describe('tool execution', () => {
|
|
145
|
+
it('executes the tool and returns result', async () => {
|
|
146
|
+
const tool = await manager.load('./calc.wasm');
|
|
147
|
+
const result = await tool.execute({ expression: '2+2' }, { agentId: 'test', runId: 'run', signal: new AbortController().signal });
|
|
148
|
+
expect(result).toEqual({ result: 'executed-./calc.wasm' });
|
|
149
|
+
});
|
|
150
|
+
it('tool.toJSON() returns valid schema', async () => {
|
|
151
|
+
const tool = await manager.load('./calc.wasm');
|
|
152
|
+
const schema = tool.toJSON();
|
|
153
|
+
expect(schema.name).toBe('calc');
|
|
154
|
+
expect(schema.description).toBe('WASM tool: calc');
|
|
155
|
+
expect(schema.parameters.type).toBe('object');
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
describe('close()', () => {
|
|
159
|
+
it('closes watcher and all plugins', async () => {
|
|
160
|
+
await manager.load('./calc.wasm');
|
|
161
|
+
await manager.load('./hash.wasm');
|
|
162
|
+
await manager.watch('./plugins/*.wasm');
|
|
163
|
+
const { FileWatcher } = await import('../manager/file-watcher.js');
|
|
164
|
+
const watcherInstance = FileWatcher.mock.results[0].value;
|
|
165
|
+
await manager.close();
|
|
166
|
+
expect(watcherInstance.close).toHaveBeenCalled();
|
|
167
|
+
expect(manager.getTools()).toHaveLength(0);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
//# sourceMappingURL=wasm-tool-manager.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-tool-manager.test.js","sourceRoot":"","sources":["../../src/__tests__/wasm-tool-manager.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -209,4 +209,5 @@ export type CalcToolInput = z.infer<typeof calcToolSchema>;
|
|
|
209
209
|
export type JsonToolInput = z.infer<typeof jsonToolSchema>;
|
|
210
210
|
export type HashToolInput = z.infer<typeof hashToolSchema>;
|
|
211
211
|
export type Base64ToolInput = z.infer<typeof base64ToolSchema>;
|
|
212
|
+
export * from './manager/index.js';
|
|
212
213
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAe,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAO1F;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,OAAO;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAuB/F;AAuBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,eAAO,MAAM,cAAc;;;;;;EAEzB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;EAGzB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;EAGzB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAY3F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAY3F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAW3F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAW/F;AAED,eAAO,MAAM,cAAc,EAAE,aAK5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAK5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAK5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,aAK9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAe,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAO1F;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,OAAO;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAuB/F;AAuBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,eAAO,MAAM,cAAc;;;;;;EAEzB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;EAGzB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;EAGzB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAY3F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAY3F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAW3F;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAW/F;AAED,eAAO,MAAM,cAAc,EAAE,aAK5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAK5B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAK5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,aAK9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FileWatcherCallbacks } from './types.js';
|
|
2
|
+
export declare class FileWatcher {
|
|
3
|
+
private watcher;
|
|
4
|
+
private debounceTimers;
|
|
5
|
+
private debounceMs;
|
|
6
|
+
constructor(debounceMs?: number);
|
|
7
|
+
watch(pattern: string, callbacks: FileWatcherCallbacks): void;
|
|
8
|
+
private debounce;
|
|
9
|
+
private clearDebounce;
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=file-watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../../src/manager/file-watcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,GAAE,MAA4B;IAIpD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,IAAI;IA4B7D,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,aAAa;IAQf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import chokidar from 'chokidar';
|
|
2
|
+
const DEFAULT_DEBOUNCE_MS = 100;
|
|
3
|
+
export class FileWatcher {
|
|
4
|
+
watcher = null;
|
|
5
|
+
debounceTimers = new Map();
|
|
6
|
+
debounceMs;
|
|
7
|
+
constructor(debounceMs = DEFAULT_DEBOUNCE_MS) {
|
|
8
|
+
this.debounceMs = debounceMs;
|
|
9
|
+
}
|
|
10
|
+
watch(pattern, callbacks) {
|
|
11
|
+
if (this.watcher) {
|
|
12
|
+
throw new Error('Watcher already started. Call close() first.');
|
|
13
|
+
}
|
|
14
|
+
this.watcher = chokidar.watch(pattern, {
|
|
15
|
+
persistent: true,
|
|
16
|
+
ignoreInitial: false,
|
|
17
|
+
awaitWriteFinish: {
|
|
18
|
+
stabilityThreshold: 100,
|
|
19
|
+
pollInterval: 50,
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
this.watcher.on('add', (path) => {
|
|
23
|
+
this.debounce(path, () => callbacks.onAdd(path));
|
|
24
|
+
});
|
|
25
|
+
this.watcher.on('change', (path) => {
|
|
26
|
+
this.debounce(path, () => callbacks.onChange(path));
|
|
27
|
+
});
|
|
28
|
+
this.watcher.on('unlink', (path) => {
|
|
29
|
+
this.clearDebounce(path);
|
|
30
|
+
callbacks.onUnlink(path);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
debounce(path, fn) {
|
|
34
|
+
this.clearDebounce(path);
|
|
35
|
+
const timer = setTimeout(() => {
|
|
36
|
+
this.debounceTimers.delete(path);
|
|
37
|
+
fn();
|
|
38
|
+
}, this.debounceMs);
|
|
39
|
+
this.debounceTimers.set(path, timer);
|
|
40
|
+
}
|
|
41
|
+
clearDebounce(path) {
|
|
42
|
+
const existing = this.debounceTimers.get(path);
|
|
43
|
+
if (existing) {
|
|
44
|
+
clearTimeout(existing);
|
|
45
|
+
this.debounceTimers.delete(path);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async close() {
|
|
49
|
+
for (const timer of this.debounceTimers.values()) {
|
|
50
|
+
clearTimeout(timer);
|
|
51
|
+
}
|
|
52
|
+
this.debounceTimers.clear();
|
|
53
|
+
if (this.watcher) {
|
|
54
|
+
await this.watcher.close();
|
|
55
|
+
this.watcher = null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=file-watcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/manager/file-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,QAA4B,MAAM,UAAU,CAAC;AAGpD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,OAAO,WAAW;IACd,OAAO,GAAqB,IAAI,CAAC;IACjC,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,UAAU,CAAS;IAE3B,YAAY,aAAqB,mBAAmB;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,SAA+B;QACpD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,KAAK;YACpB,gBAAgB,EAAE;gBAChB,kBAAkB,EAAE,GAAG;gBACvB,YAAY,EAAE,EAAE;aACjB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,IAAY,EAAE,EAAc;QAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,EAAE,EAAE,CAAC;QACP,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { WasmToolManager } from './wasm-tool-manager.js';
|
|
2
|
+
export { WasmLoader } from './wasm-loader.js';
|
|
3
|
+
export { FileWatcher } from './file-watcher.js';
|
|
4
|
+
export type { WasmToolManagerOptions, WasmToolCallbacks, LoadedModule, ExtismPlugin, PluginOutput, WasmSource, CreatePluginFn, FileWatcherCallbacks, } from './types.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Tool } from '@cogitator-ai/types';
|
|
2
|
+
export interface ExtismPlugin {
|
|
3
|
+
call(functionName: string, input: string | Uint8Array): Promise<PluginOutput>;
|
|
4
|
+
close?(): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export interface PluginOutput {
|
|
7
|
+
text(): string;
|
|
8
|
+
bytes(): Uint8Array;
|
|
9
|
+
}
|
|
10
|
+
export type WasmSource = {
|
|
11
|
+
wasm: Uint8Array;
|
|
12
|
+
} | {
|
|
13
|
+
url: string;
|
|
14
|
+
};
|
|
15
|
+
export type CreatePluginFn = (source: WasmSource, options: {
|
|
16
|
+
useWasi: boolean;
|
|
17
|
+
}) => Promise<ExtismPlugin>;
|
|
18
|
+
export interface WasmToolManagerOptions {
|
|
19
|
+
debounceMs?: number;
|
|
20
|
+
useWasi?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface WasmToolCallbacks {
|
|
23
|
+
onLoad?: (name: string, path: string) => void;
|
|
24
|
+
onReload?: (name: string, path: string) => void;
|
|
25
|
+
onUnload?: (name: string, path: string) => void;
|
|
26
|
+
onError?: (name: string, path: string, error: Error) => void;
|
|
27
|
+
}
|
|
28
|
+
export interface LoadedModule {
|
|
29
|
+
name: string;
|
|
30
|
+
path: string;
|
|
31
|
+
plugin: ExtismPlugin;
|
|
32
|
+
tool: Tool<unknown, unknown>;
|
|
33
|
+
loadedAt: Date;
|
|
34
|
+
}
|
|
35
|
+
export interface FileWatcherCallbacks {
|
|
36
|
+
onAdd: (path: string) => void;
|
|
37
|
+
onChange: (path: string) => void;
|
|
38
|
+
onUnlink: (path: string) => void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,IAAI,MAAM,CAAC;IACf,KAAK,IAAI,UAAU,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAC1B,OAAO,CAAC,YAAY,CAAC,CAAC;AAE3B,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC9D;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/manager/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ExtismPlugin } from './types.js';
|
|
2
|
+
export declare class WasmLoader {
|
|
3
|
+
private createPlugin?;
|
|
4
|
+
initialize(): Promise<void>;
|
|
5
|
+
load(wasmPath: string, useWasi: boolean): Promise<ExtismPlugin>;
|
|
6
|
+
private loadSource;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=wasm-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-loader.d.ts","sourceRoot":"","sources":["../../src/manager/wasm-loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkB,YAAY,EAAc,MAAM,YAAY,CAAC;AAE3E,qBAAa,UAAU;IACrB,OAAO,CAAC,YAAY,CAAC,CAAiB;IAEhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;YASvD,UAAU;CASzB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { isAbsolute, resolve } from 'node:path';
|
|
3
|
+
export class WasmLoader {
|
|
4
|
+
createPlugin;
|
|
5
|
+
async initialize() {
|
|
6
|
+
if (this.createPlugin)
|
|
7
|
+
return;
|
|
8
|
+
const extism = await import('@extism/extism');
|
|
9
|
+
this.createPlugin = extism.default;
|
|
10
|
+
}
|
|
11
|
+
async load(wasmPath, useWasi) {
|
|
12
|
+
if (!this.createPlugin) {
|
|
13
|
+
throw new Error('WasmLoader not initialized. Call initialize() first.');
|
|
14
|
+
}
|
|
15
|
+
const source = await this.loadSource(wasmPath);
|
|
16
|
+
return this.createPlugin(source, { useWasi });
|
|
17
|
+
}
|
|
18
|
+
async loadSource(wasmPath) {
|
|
19
|
+
if (wasmPath.startsWith('http://') || wasmPath.startsWith('https://')) {
|
|
20
|
+
return { url: wasmPath };
|
|
21
|
+
}
|
|
22
|
+
const absolutePath = isAbsolute(wasmPath) ? wasmPath : resolve(process.cwd(), wasmPath);
|
|
23
|
+
const wasm = await readFile(absolutePath);
|
|
24
|
+
return { wasm };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=wasm-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-loader.js","sourceRoot":"","sources":["../../src/manager/wasm-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGhD,MAAM,OAAO,UAAU;IACb,YAAY,CAAkB;IAEtC,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAoC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,OAAgB;QAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,QAAgB;QACvC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QAC3B,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QACxF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Tool } from '@cogitator-ai/types';
|
|
2
|
+
import type { LoadedModule, WasmToolCallbacks, WasmToolManagerOptions } from './types.js';
|
|
3
|
+
export declare class WasmToolManager {
|
|
4
|
+
private loader;
|
|
5
|
+
private watcher;
|
|
6
|
+
private modules;
|
|
7
|
+
private initialized;
|
|
8
|
+
private callbacks;
|
|
9
|
+
private options;
|
|
10
|
+
constructor(options?: WasmToolManagerOptions);
|
|
11
|
+
watch(pattern: string, callbacks?: WasmToolCallbacks): Promise<void>;
|
|
12
|
+
load(wasmPath: string): Promise<Tool<unknown, unknown>>;
|
|
13
|
+
getTools(): Tool<unknown, unknown>[];
|
|
14
|
+
getTool(name: string): Tool<unknown, unknown> | undefined;
|
|
15
|
+
getModule(name: string): LoadedModule | undefined;
|
|
16
|
+
getModules(): LoadedModule[];
|
|
17
|
+
close(): Promise<void>;
|
|
18
|
+
private ensureInitialized;
|
|
19
|
+
private handleAdd;
|
|
20
|
+
private handleReload;
|
|
21
|
+
private handleUnlink;
|
|
22
|
+
private loadModule;
|
|
23
|
+
private createProxyTool;
|
|
24
|
+
private getModuleName;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=wasm-tool-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-tool-manager.d.ts","sourceRoot":"","sources":["../../src/manager/wasm-tool-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,qBAAqB,CAAC;AAIzE,OAAO,KAAK,EAEV,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAIpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,OAAO,CAAmC;gBAEtC,OAAO,GAAE,sBAA2B;IAO1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAK7D,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;IAIpC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS;IAIzD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD,UAAU,IAAI,YAAY,EAAE;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAYd,iBAAiB;YAOjB,SAAS;YAUT,YAAY;YAcZ,YAAY;YAUZ,UAAU;IAgBxB,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { basename } from 'node:path';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
4
|
+
import { FileWatcher } from './file-watcher.js';
|
|
5
|
+
import { WasmLoader } from './wasm-loader.js';
|
|
6
|
+
const DEFAULT_DEBOUNCE_MS = 100;
|
|
7
|
+
export class WasmToolManager {
|
|
8
|
+
loader = new WasmLoader();
|
|
9
|
+
watcher = null;
|
|
10
|
+
modules = new Map();
|
|
11
|
+
initialized = false;
|
|
12
|
+
callbacks = {};
|
|
13
|
+
options;
|
|
14
|
+
constructor(options = {}) {
|
|
15
|
+
this.options = {
|
|
16
|
+
debounceMs: options.debounceMs ?? DEFAULT_DEBOUNCE_MS,
|
|
17
|
+
useWasi: options.useWasi ?? false,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
async watch(pattern, callbacks) {
|
|
21
|
+
await this.ensureInitialized();
|
|
22
|
+
if (this.watcher) {
|
|
23
|
+
throw new Error('Already watching. Call close() first.');
|
|
24
|
+
}
|
|
25
|
+
this.callbacks = callbacks ?? {};
|
|
26
|
+
this.watcher = new FileWatcher(this.options.debounceMs);
|
|
27
|
+
this.watcher.watch(pattern, {
|
|
28
|
+
onAdd: (path) => void this.handleAdd(path),
|
|
29
|
+
onChange: (path) => void this.handleReload(path),
|
|
30
|
+
onUnlink: (path) => void this.handleUnlink(path),
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
async load(wasmPath) {
|
|
34
|
+
await this.ensureInitialized();
|
|
35
|
+
return this.loadModule(wasmPath);
|
|
36
|
+
}
|
|
37
|
+
getTools() {
|
|
38
|
+
return Array.from(this.modules.values()).map((m) => m.tool);
|
|
39
|
+
}
|
|
40
|
+
getTool(name) {
|
|
41
|
+
return this.modules.get(name)?.tool;
|
|
42
|
+
}
|
|
43
|
+
getModule(name) {
|
|
44
|
+
return this.modules.get(name);
|
|
45
|
+
}
|
|
46
|
+
getModules() {
|
|
47
|
+
return Array.from(this.modules.values());
|
|
48
|
+
}
|
|
49
|
+
async close() {
|
|
50
|
+
if (this.watcher) {
|
|
51
|
+
await this.watcher.close();
|
|
52
|
+
this.watcher = null;
|
|
53
|
+
}
|
|
54
|
+
for (const mod of this.modules.values()) {
|
|
55
|
+
await mod.plugin.close?.();
|
|
56
|
+
}
|
|
57
|
+
this.modules.clear();
|
|
58
|
+
}
|
|
59
|
+
async ensureInitialized() {
|
|
60
|
+
if (!this.initialized) {
|
|
61
|
+
await this.loader.initialize();
|
|
62
|
+
this.initialized = true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async handleAdd(wasmPath) {
|
|
66
|
+
const name = this.getModuleName(wasmPath);
|
|
67
|
+
try {
|
|
68
|
+
await this.loadModule(wasmPath);
|
|
69
|
+
this.callbacks.onLoad?.(name, wasmPath);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
this.callbacks.onError?.(name, wasmPath, error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async handleReload(wasmPath) {
|
|
76
|
+
const name = this.getModuleName(wasmPath);
|
|
77
|
+
try {
|
|
78
|
+
const existing = this.modules.get(name);
|
|
79
|
+
if (existing) {
|
|
80
|
+
await existing.plugin.close?.();
|
|
81
|
+
}
|
|
82
|
+
await this.loadModule(wasmPath);
|
|
83
|
+
this.callbacks.onReload?.(name, wasmPath);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.callbacks.onError?.(name, wasmPath, error);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async handleUnlink(wasmPath) {
|
|
90
|
+
const name = this.getModuleName(wasmPath);
|
|
91
|
+
const existing = this.modules.get(name);
|
|
92
|
+
if (existing) {
|
|
93
|
+
await existing.plugin.close?.();
|
|
94
|
+
this.modules.delete(name);
|
|
95
|
+
this.callbacks.onUnload?.(name, wasmPath);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async loadModule(wasmPath) {
|
|
99
|
+
const name = this.getModuleName(wasmPath);
|
|
100
|
+
const plugin = await this.loader.load(wasmPath, this.options.useWasi);
|
|
101
|
+
const tool = this.createProxyTool(name, plugin);
|
|
102
|
+
this.modules.set(name, {
|
|
103
|
+
name,
|
|
104
|
+
path: wasmPath,
|
|
105
|
+
plugin,
|
|
106
|
+
tool,
|
|
107
|
+
loadedAt: new Date(),
|
|
108
|
+
});
|
|
109
|
+
return tool;
|
|
110
|
+
}
|
|
111
|
+
createProxyTool(name, _plugin) {
|
|
112
|
+
const parameters = z.record(z.unknown());
|
|
113
|
+
const tool = {
|
|
114
|
+
name,
|
|
115
|
+
description: `WASM tool: ${name}`,
|
|
116
|
+
parameters,
|
|
117
|
+
execute: async (params, _context) => {
|
|
118
|
+
const mod = this.modules.get(name);
|
|
119
|
+
if (!mod) {
|
|
120
|
+
throw new Error(`Module ${name} not loaded`);
|
|
121
|
+
}
|
|
122
|
+
const input = JSON.stringify(params);
|
|
123
|
+
const output = await mod.plugin.call('run', input);
|
|
124
|
+
try {
|
|
125
|
+
return JSON.parse(output.text());
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return output.text();
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
toJSON: () => {
|
|
132
|
+
const jsonSchema = zodToJsonSchema(parameters, {
|
|
133
|
+
target: 'openApi3',
|
|
134
|
+
$refStrategy: 'none',
|
|
135
|
+
});
|
|
136
|
+
const schema = jsonSchema;
|
|
137
|
+
return {
|
|
138
|
+
name,
|
|
139
|
+
description: `WASM tool: ${name}`,
|
|
140
|
+
parameters: {
|
|
141
|
+
type: 'object',
|
|
142
|
+
properties: (schema.properties ?? {}),
|
|
143
|
+
required: schema.required,
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
return tool;
|
|
149
|
+
}
|
|
150
|
+
getModuleName(wasmPath) {
|
|
151
|
+
return basename(wasmPath, '.wasm');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=wasm-tool-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-tool-manager.js","sourceRoot":"","sources":["../../src/manager/wasm-tool-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/plugins/base64.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/plugins/base64.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoFH,wBAAgB,MAAM,IAAI,MAAM,CA6B/B"}
|
package/dist/plugins/base64.js
CHANGED
|
@@ -49,8 +49,7 @@ function decodeBase64(input, urlSafe) {
|
|
|
49
49
|
let result = '';
|
|
50
50
|
let buffer = 0;
|
|
51
51
|
let bits = 0;
|
|
52
|
-
for (
|
|
53
|
-
const char = normalized[i];
|
|
52
|
+
for (const char of normalized) {
|
|
54
53
|
const value = lookup[char];
|
|
55
54
|
if (value === undefined) {
|
|
56
55
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/plugins/base64.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,MAAM,cAAc,GAAG,kEAAkE,CAAC;AAC1F,MAAM,cAAc,GAAG,kEAAkE,CAAC;AAE1F,SAAS,YAAY,CAAC,KAAa,EAAE,OAAgB;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IACxD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAExC,MAAM;YACJ,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;gBACjC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;gBACjC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,OAAgB;IACnD,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IACtD,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,GAAG,cAAc,CAAC;QACvB,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE5C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,KAAK,
|
|
1
|
+
{"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/plugins/base64.ts"],"names":[],"mappings":"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"}
|
package/dist/temp/base64.js
CHANGED
|
@@ -59,8 +59,7 @@ function decodeBase64(input, urlSafe) {
|
|
|
59
59
|
let result = "";
|
|
60
60
|
let buffer = 0;
|
|
61
61
|
let bits = 0;
|
|
62
|
-
for (
|
|
63
|
-
const char = normalized[i];
|
|
62
|
+
for (const char of normalized) {
|
|
64
63
|
const value = lookup[char];
|
|
65
64
|
if (value === void 0) {
|
|
66
65
|
continue;
|
package/dist/wasm/base64.wasm
CHANGED
|
Binary file
|
package/dist/wasm/calc.wasm
CHANGED
|
Binary file
|
package/dist/wasm/hash.wasm
CHANGED
|
Binary file
|
package/dist/wasm/json.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cogitator-ai/wasm-tools",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "WASM-based tools for Cogitator agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -16,14 +16,17 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
+
"chokidar": "^5.0.0",
|
|
19
20
|
"zod": "^3.22.0",
|
|
20
21
|
"zod-to-json-schema": "^3.22.0",
|
|
21
|
-
"@cogitator-ai/types": "0.
|
|
22
|
+
"@cogitator-ai/types": "0.17.0"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|
|
25
|
+
"@extism/extism": "^1.0.3",
|
|
24
26
|
"@extism/js-pdk": "^1.0.0",
|
|
25
27
|
"esbuild": "^0.27.2",
|
|
26
|
-
"typescript": "^5.3.0"
|
|
28
|
+
"typescript": "^5.3.0",
|
|
29
|
+
"vitest": "^3.1.3"
|
|
27
30
|
},
|
|
28
31
|
"repository": {
|
|
29
32
|
"type": "git",
|
|
@@ -39,6 +42,8 @@
|
|
|
39
42
|
"build:wasm": "node scripts/build-wasm.js",
|
|
40
43
|
"dev": "tsc --watch",
|
|
41
44
|
"clean": "rm -rf dist",
|
|
42
|
-
"typecheck": "tsc --noEmit"
|
|
45
|
+
"typecheck": "tsc --noEmit",
|
|
46
|
+
"test": "vitest run",
|
|
47
|
+
"test:watch": "vitest"
|
|
43
48
|
}
|
|
44
49
|
}
|