@agentworkforce/mcp-workforce 0.0.0 → 3.0.2
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/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +7 -0
- package/dist/bin.js.map +1 -0
- package/dist/config.d.ts +42 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +39 -0
- package/dist/config.js.map +1 -0
- package/dist/config.test.d.ts +2 -0
- package/dist/config.test.d.ts.map +1 -0
- package/dist/config.test.js +47 -0
- package/dist/config.test.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +32 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +167 -0
- package/dist/server.js.map +1 -0
- package/dist/server.test.d.ts +2 -0
- package/dist/server.test.d.ts.map +1 -0
- package/dist/server.test.js +48 -0
- package/dist/server.test.js.map +1 -0
- package/dist/tools/integrations.d.ts +30 -0
- package/dist/tools/integrations.d.ts.map +1 -0
- package/dist/tools/integrations.js +133 -0
- package/dist/tools/integrations.js.map +1 -0
- package/dist/tools/integrations.test.d.ts +2 -0
- package/dist/tools/integrations.test.d.ts.map +1 -0
- package/dist/tools/integrations.test.js +77 -0
- package/dist/tools/integrations.test.js.map +1 -0
- package/dist/tools/memory.d.ts +36 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +129 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/memory.test.d.ts +2 -0
- package/dist/tools/memory.test.d.ts.map +1 -0
- package/dist/tools/memory.test.js +100 -0
- package/dist/tools/memory.test.js.map +1 -0
- package/dist/tools/workflow.d.ts +31 -0
- package/dist/tools/workflow.d.ts.map +1 -0
- package/dist/tools/workflow.js +58 -0
- package/dist/tools/workflow.js.map +1 -0
- package/dist/tools/workflow.test.d.ts +2 -0
- package/dist/tools/workflow.test.d.ts.map +1 -0
- package/dist/tools/workflow.test.js +74 -0
- package/dist/tools/workflow.test.js.map +1 -0
- package/package.json +8 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.test.d.ts","sourceRoot":"","sources":["../../src/tools/workflow.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { workflowRun, workflowStatus } from './workflow.js';
|
|
4
|
+
function fakeFetch(handlers) {
|
|
5
|
+
const calls = [];
|
|
6
|
+
let i = 0;
|
|
7
|
+
const impl = (async (input, init) => {
|
|
8
|
+
const url = typeof input === 'string' ? input : input.toString();
|
|
9
|
+
const headers = {};
|
|
10
|
+
if (init?.headers) {
|
|
11
|
+
const entries = init.headers instanceof Headers
|
|
12
|
+
? Array.from(init.headers.entries())
|
|
13
|
+
: Array.isArray(init.headers)
|
|
14
|
+
? init.headers
|
|
15
|
+
: Object.entries(init.headers);
|
|
16
|
+
for (const [k, v] of entries)
|
|
17
|
+
headers[k.toLowerCase()] = String(v);
|
|
18
|
+
}
|
|
19
|
+
const body = init?.body ? JSON.parse(init.body.toString()) : undefined;
|
|
20
|
+
const call = { url, method: init?.method ?? 'GET', headers, ...(body !== undefined ? { body } : {}) };
|
|
21
|
+
calls.push(call);
|
|
22
|
+
const handler = handlers[i];
|
|
23
|
+
if (!handler)
|
|
24
|
+
throw new Error(`fakeFetch: no handler at call index ${i}`);
|
|
25
|
+
i += 1;
|
|
26
|
+
return handler(call);
|
|
27
|
+
});
|
|
28
|
+
return { fetch: impl, calls };
|
|
29
|
+
}
|
|
30
|
+
function config(over = {}) {
|
|
31
|
+
return {
|
|
32
|
+
workspaceId: 'ws-demo',
|
|
33
|
+
cloudUrl: 'https://cloud.example.com',
|
|
34
|
+
runtimeToken: 'tok-secret',
|
|
35
|
+
writebackTimeoutMs: 0,
|
|
36
|
+
...over
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
test('workflow.run POSTs to /workflows/run with the workspace token', async () => {
|
|
40
|
+
const { fetch: impl, calls } = fakeFetch([
|
|
41
|
+
() => new Response(JSON.stringify({ runId: 'run-1', status: 'pending' }), { status: 202 })
|
|
42
|
+
]);
|
|
43
|
+
const result = await workflowRun({ name: 'pr-review', args: { prNumber: 5 } }, { config: config(), fetchImpl: impl });
|
|
44
|
+
assert.equal(result.runId, 'run-1');
|
|
45
|
+
assert.equal(result.status, 'pending');
|
|
46
|
+
assert.equal(calls[0].url, 'https://cloud.example.com/api/v1/workspaces/ws-demo/workflows/run');
|
|
47
|
+
assert.equal(calls[0].method, 'POST');
|
|
48
|
+
assert.equal(calls[0].headers.authorization, 'Bearer tok-secret');
|
|
49
|
+
assert.deepEqual(calls[0].body, { name: 'pr-review', args: { prNumber: 5 } });
|
|
50
|
+
});
|
|
51
|
+
test('workflow.run rejects when name is empty', async () => {
|
|
52
|
+
await assert.rejects(() => workflowRun({ name: '' }, { config: config() }), /"name" is required/);
|
|
53
|
+
});
|
|
54
|
+
test('workflow.run surfaces non-2xx with the status + excerpt in the message', async () => {
|
|
55
|
+
const { fetch: impl } = fakeFetch([
|
|
56
|
+
() => new Response('rate limited', { status: 429, statusText: 'Too Many Requests' })
|
|
57
|
+
]);
|
|
58
|
+
await assert.rejects(() => workflowRun({ name: 'pr-review' }, { config: config(), fetchImpl: impl }), /workflow\.run\("pr-review"\): 429 Too Many Requests/);
|
|
59
|
+
});
|
|
60
|
+
test('workflow.status GETs /workflows/runs/:id and forwards the response', async () => {
|
|
61
|
+
const { fetch: impl, calls } = fakeFetch([
|
|
62
|
+
() => new Response(JSON.stringify({ status: 'success', output: { ok: true } }), { status: 200 })
|
|
63
|
+
]);
|
|
64
|
+
const result = await workflowStatus({ runId: 'run-7' }, { config: config(), fetchImpl: impl });
|
|
65
|
+
assert.equal(result.status, 'success');
|
|
66
|
+
assert.deepEqual(result.output, { ok: true });
|
|
67
|
+
assert.equal(calls[0].method, 'GET');
|
|
68
|
+
assert.equal(calls[0].url, 'https://cloud.example.com/api/v1/workspaces/ws-demo/workflows/runs/run-7');
|
|
69
|
+
});
|
|
70
|
+
test('workflow tools require WORKFORCE_RUNTIME_TOKEN', async () => {
|
|
71
|
+
const { fetch: impl } = fakeFetch([]);
|
|
72
|
+
await assert.rejects(() => workflowRun({ name: 'x' }, { config: config({ runtimeToken: undefined }), fetchImpl: impl }), /WORKFORCE_RUNTIME_TOKEN/);
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=workflow.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.test.js","sourceRoot":"","sources":["../../src/tools/workflow.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentworkforce/mcp-workforce",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,17 +28,17 @@
|
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|
|
30
30
|
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@modelcontextprotocol/sdk": "^1.21.0",
|
|
33
|
+
"zod": "^3.23.8",
|
|
34
|
+
"@agentworkforce/persona-kit": "3.0.2",
|
|
35
|
+
"@agentworkforce/runtime": "3.0.2"
|
|
36
|
+
},
|
|
31
37
|
"scripts": {
|
|
32
38
|
"build": "tsc -p tsconfig.json && chmod +x dist/bin.js",
|
|
33
39
|
"dev": "tsc -p tsconfig.json --watch --preserveWatchOutput",
|
|
34
40
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
35
41
|
"test": "tsc -p tsconfig.json && node --test dist/**/*.test.js dist/*.test.js",
|
|
36
42
|
"lint": "tsc -p tsconfig.json --noEmit"
|
|
37
|
-
},
|
|
38
|
-
"dependencies": {
|
|
39
|
-
"@agentworkforce/persona-kit": "workspace:*",
|
|
40
|
-
"@agentworkforce/runtime": "workspace:*",
|
|
41
|
-
"@modelcontextprotocol/sdk": "^1.21.0",
|
|
42
|
-
"zod": "^3.23.8"
|
|
43
43
|
}
|
|
44
|
-
}
|
|
44
|
+
}
|