@multiplayer-app/agent 0.1.6 → 0.1.7
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/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/protocol.d.ts +8 -4
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/research/filingramp-contract.d.ts +45 -0
- package/dist/research/filingramp-contract.d.ts.map +1 -0
- package/dist/research/filingramp-contract.js +277 -0
- package/dist/research/filingramp-contract.js.map +1 -0
- package/dist/research/filingramp-contract.test.d.ts +2 -0
- package/dist/research/filingramp-contract.test.d.ts.map +1 -0
- package/dist/research/filingramp-contract.test.js +76 -0
- package/dist/research/filingramp-contract.test.js.map +1 -0
- package/dist/research/filingramp-tools.d.ts.map +1 -1
- package/dist/research/filingramp-tools.js +159 -59
- package/dist/research/filingramp-tools.js.map +1 -1
- package/dist/research/filingramp-tools.test.d.ts +2 -0
- package/dist/research/filingramp-tools.test.d.ts.map +1 -0
- package/dist/research/filingramp-tools.test.js +99 -0
- package/dist/research/filingramp-tools.test.js.map +1 -0
- package/dist/research/prompt.d.ts +4 -0
- package/dist/research/prompt.d.ts.map +1 -1
- package/dist/research/prompt.js +15 -4
- package/dist/research/prompt.js.map +1 -1
- package/dist/research/scope.d.ts +22 -8
- package/dist/research/scope.d.ts.map +1 -1
- package/dist/research/scope.js +49 -15
- package/dist/research/scope.js.map +1 -1
- package/dist/research/scope.test.js +47 -6
- package/dist/research/scope.test.js.map +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +44 -16
- package/dist/session.js.map +1 -1
- package/dist/tools/fs-tools.d.ts +1 -0
- package/dist/tools/fs-tools.d.ts.map +1 -1
- package/dist/tools/fs-tools.js +11 -2
- package/dist/tools/fs-tools.js.map +1 -1
- package/dist/tools/fs-tools.test.d.ts +2 -0
- package/dist/tools/fs-tools.test.d.ts.map +1 -0
- package/dist/tools/fs-tools.test.js +41 -0
- package/dist/tools/fs-tools.test.js.map +1 -0
- package/package.json +1 -1
package/dist/tools/fs-tools.js
CHANGED
|
@@ -59,15 +59,24 @@ function createFsTools(workspaceDir) {
|
|
|
59
59
|
},
|
|
60
60
|
});
|
|
61
61
|
const listFilesTool = (0, ai_1.tool)({
|
|
62
|
-
description: "List files under a directory in the session's workspace (non-recursive).",
|
|
62
|
+
description: "List files under a directory in the session's workspace (non-recursive). A directory that does not exist yet is reported as exists=false with no entries, not as an error.",
|
|
63
63
|
inputSchema: zod_1.z.object({
|
|
64
64
|
path: zod_1.z.string().max(500).optional().describe('Workspace-relative directory; omit for the workspace root'),
|
|
65
65
|
}),
|
|
66
66
|
execute: async (input) => {
|
|
67
67
|
var _a;
|
|
68
68
|
const target = resolveWorkspacePath(workspaceDir, (_a = input.path) !== null && _a !== void 0 ? _a : '.');
|
|
69
|
-
|
|
69
|
+
let entries;
|
|
70
|
+
try {
|
|
71
|
+
entries = await fs_1.promises.readdir(target, { withFileTypes: true });
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
if (error.code === 'ENOENT')
|
|
75
|
+
return { exists: false, entries: [] };
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
70
78
|
return {
|
|
79
|
+
exists: true,
|
|
71
80
|
entries: entries.map((entry) => ({
|
|
72
81
|
name: entry.name,
|
|
73
82
|
type: entry.isDirectory() ? 'directory' : 'file',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-tools.js","sourceRoot":"","sources":["../../src/tools/fs-tools.ts"],"names":[],"mappings":";;;;;AAmBA,
|
|
1
|
+
{"version":3,"file":"fs-tools.js","sourceRoot":"","sources":["../../src/tools/fs-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-tools.test.d.ts","sourceRoot":"","sources":["../../src/tools/fs-tools.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
10
|
+
const node_test_1 = require("node:test");
|
|
11
|
+
const fs_tools_1 = require("./fs-tools");
|
|
12
|
+
(0, node_test_1.describe)('fs tools', () => {
|
|
13
|
+
let workspace;
|
|
14
|
+
(0, node_test_1.beforeEach)(async () => {
|
|
15
|
+
workspace = await node_fs_1.promises.mkdtemp(node_path_1.default.join(node_os_1.default.tmpdir(), 'fs-tools-'));
|
|
16
|
+
});
|
|
17
|
+
(0, node_test_1.afterEach)(async () => {
|
|
18
|
+
await node_fs_1.promises.rm(workspace, { recursive: true, force: true });
|
|
19
|
+
});
|
|
20
|
+
(0, node_test_1.it)('reports a missing directory as an empty listing instead of failing', async () => {
|
|
21
|
+
const tools = (0, fs_tools_1.createFsTools)(workspace);
|
|
22
|
+
const result = (await tools.list_files.execute({ path: 'research' }, callOptions()));
|
|
23
|
+
strict_1.default.deepEqual(result, { exists: false, entries: [] });
|
|
24
|
+
});
|
|
25
|
+
(0, node_test_1.it)('lists files and directories under an existing path', async () => {
|
|
26
|
+
await node_fs_1.promises.mkdir(node_path_1.default.join(workspace, 'research'));
|
|
27
|
+
await node_fs_1.promises.writeFile(node_path_1.default.join(workspace, 'research', 'notes.md'), '# plan');
|
|
28
|
+
const tools = (0, fs_tools_1.createFsTools)(workspace);
|
|
29
|
+
const result = (await tools.list_files.execute({ path: 'research' }, callOptions()));
|
|
30
|
+
strict_1.default.equal(result.exists, true);
|
|
31
|
+
strict_1.default.deepEqual(result.entries, [{ name: 'notes.md', type: 'file' }]);
|
|
32
|
+
});
|
|
33
|
+
(0, node_test_1.it)('rejects paths that escape the workspace', async () => {
|
|
34
|
+
const tools = (0, fs_tools_1.createFsTools)(workspace);
|
|
35
|
+
await strict_1.default.rejects(() => Promise.resolve(tools.read_file.execute({ path: '/etc/passwd' }, callOptions())), /escapes the workspace/);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
function callOptions() {
|
|
39
|
+
return { toolCallId: 'call-1', messages: [] };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=fs-tools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-tools.test.js","sourceRoot":"","sources":["../../src/tools/fs-tools.test.ts"],"names":[],"mappings":";;;;;AAAA,qCAAwC;AACxC,sDAAwB;AACxB,0DAA4B;AAC5B,gEAAuC;AACvC,yCAA+D;AAC/D,yCAA0C;AAI1C,IAAA,oBAAQ,EAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,SAAiB,CAAA;IAErB,IAAA,sBAAU,EAAC,KAAK,IAAI,EAAE;QACpB,SAAS,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,IAAA,qBAAS,EAAC,KAAK,IAAI,EAAE;QACnB,MAAM,kBAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,OAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,CAAe,CAAA;QACnG,gBAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,kBAAE,CAAC,KAAK,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;QAChD,MAAM,kBAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;QAC1E,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,OAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,CAAC,CAAe,CAAA;QACnG,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACjC,gBAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,IAAA,cAAE,EAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAA;QACtC,MAAM,gBAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAA;IACxI,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,SAAS,WAAW;IAClB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplayer-app/agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Agent that runs inside a session VM — one-shot coding tasks or long-lived research sessions driven over the gateway socket; local file/exec tools, FilingRamp research tools, MCP over env-var config",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|