@borgee/agents-host 0.2.84 → 0.2.97
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 +1 -1
- package/dist/agents-host.js +23 -5
- package/dist/background-runs.d.ts +6 -1
- package/dist/background-runs.js +56 -21
- package/dist/chat/chat-control-plane.d.ts +3 -1
- package/dist/chat/sdk-chat-control-plane.d.ts +6 -2
- package/dist/chat/sdk-chat-control-plane.js +18 -0
- package/dist/plugin-sdk.js +149 -21
- package/dist/plugin-sdk.js.map +3 -3
- package/dist/progress-to-activity.d.ts +3 -3
- package/dist/providers/claude/adapter.d.ts +3 -1
- package/dist/providers/claude/adapter.js +41 -3
- package/dist/providers/claude/background-run-observer.d.ts +32 -0
- package/dist/providers/claude/background-run-observer.js +381 -0
- package/dist/providers/claude/cli-client.d.ts +15 -1
- package/dist/providers/claude/cli-client.js +699 -69
- package/dist/providers/claude/foreground-handoff.d.ts +4 -0
- package/dist/providers/claude/foreground-handoff.js +45 -0
- package/dist/providers/claude/task-cancellation-protocol.d.ts +14 -0
- package/dist/providers/claude/task-cancellation-protocol.js +21 -0
- package/dist/providers/copilot/activity-metadata.d.ts +3 -0
- package/dist/providers/copilot/activity-metadata.js +19 -0
- package/dist/providers/copilot/cli-client.js +5 -0
- package/dist/providers/provider-adapter.d.ts +8 -0
- package/dist/providers/provider-adapter.js +4 -0
- package/dist/types.d.ts +8 -0
- package/dist/vendor/claude-agent-acp/LICENSE +191 -0
- package/dist/vendor/claude-agent-acp/NOTICE +8 -0
- package/dist/vendor/claude-agent-acp/dist/acp-agent.d.ts +1017 -0
- package/dist/vendor/claude-agent-acp/dist/acp-agent.d.ts.map +1 -0
- package/dist/vendor/claude-agent-acp/dist/acp-agent.js +6305 -0
- package/dist/vendor/claude-agent-acp/dist/borgee-foreground-handoff-bridge.js +322 -0
- package/dist/vendor/claude-agent-acp/dist/borgee-task-cancellation-bridge.js +101 -0
- package/dist/vendor/claude-agent-acp/dist/borgee-task-lifecycle-bridge.js +58 -0
- package/dist/vendor/claude-agent-acp/dist/elicitation.d.ts +130 -0
- package/dist/vendor/claude-agent-acp/dist/elicitation.d.ts.map +1 -0
- package/dist/vendor/claude-agent-acp/dist/elicitation.js +304 -0
- package/dist/vendor/claude-agent-acp/dist/index.d.ts +3 -0
- package/dist/vendor/claude-agent-acp/dist/index.d.ts.map +1 -0
- package/dist/vendor/claude-agent-acp/dist/index.js +75 -0
- package/dist/vendor/claude-agent-acp/dist/lib.d.ts +6 -0
- package/dist/vendor/claude-agent-acp/dist/lib.d.ts.map +1 -0
- package/dist/vendor/claude-agent-acp/dist/lib.js +5 -0
- package/dist/vendor/claude-agent-acp/dist/settings.d.ts +68 -0
- package/dist/vendor/claude-agent-acp/dist/settings.d.ts.map +1 -0
- package/dist/vendor/claude-agent-acp/dist/settings.js +185 -0
- package/dist/vendor/claude-agent-acp/dist/tools.d.ts +102 -0
- package/dist/vendor/claude-agent-acp/dist/tools.d.ts.map +1 -0
- package/dist/vendor/claude-agent-acp/dist/tools.js +1000 -0
- package/dist/vendor/claude-agent-acp/dist/utils.d.ts +16 -0
- package/dist/vendor/claude-agent-acp/dist/utils.d.ts.map +1 -0
- package/dist/vendor/claude-agent-acp/dist/utils.js +81 -0
- package/dist/vendor/claude-agent-acp/package.json +85 -0
- package/package.json +16 -12
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Readable, Writable } from "node:stream";
|
|
2
|
+
import { WritableStream, ReadableStream } from "node:stream/web";
|
|
3
|
+
import { Logger } from "./acp-agent.js";
|
|
4
|
+
export declare class Pushable<T> implements AsyncIterable<T> {
|
|
5
|
+
private queue;
|
|
6
|
+
private resolvers;
|
|
7
|
+
private done;
|
|
8
|
+
push(item: T): void;
|
|
9
|
+
end(): void;
|
|
10
|
+
[Symbol.asyncIterator](): AsyncIterator<T>;
|
|
11
|
+
}
|
|
12
|
+
export declare function nodeToWebWritable(nodeStream: Writable): WritableStream<Uint8Array>;
|
|
13
|
+
export declare function nodeToWebReadable(nodeStream: Readable): ReadableStream<Uint8Array>;
|
|
14
|
+
export declare function unreachable(value: never, logger?: Logger): void;
|
|
15
|
+
export declare function sleep(time: number): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,qBAAa,QAAQ,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,IAAI,CAAS;IAErB,IAAI,CAAC,IAAI,EAAE,CAAC;IASZ,GAAG;IAQH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;CAgB3C;AAGD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAclF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAUlF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,GAAE,MAAgB,QAQjE;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// A pushable async iterable: allows you to push items and consume them with for-await.
|
|
2
|
+
import { WritableStream, ReadableStream } from "node:stream/web";
|
|
3
|
+
// Useful for bridging push-based and async-iterator-based code.
|
|
4
|
+
export class Pushable {
|
|
5
|
+
queue = [];
|
|
6
|
+
resolvers = [];
|
|
7
|
+
done = false;
|
|
8
|
+
push(item) {
|
|
9
|
+
if (this.resolvers.length > 0) {
|
|
10
|
+
const resolve = this.resolvers.shift();
|
|
11
|
+
resolve({ value: item, done: false });
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
this.queue.push(item);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
end() {
|
|
18
|
+
this.done = true;
|
|
19
|
+
while (this.resolvers.length > 0) {
|
|
20
|
+
const resolve = this.resolvers.shift();
|
|
21
|
+
resolve({ value: undefined, done: true });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
[Symbol.asyncIterator]() {
|
|
25
|
+
return {
|
|
26
|
+
next: () => {
|
|
27
|
+
if (this.queue.length > 0) {
|
|
28
|
+
const value = this.queue.shift();
|
|
29
|
+
return Promise.resolve({ value, done: false });
|
|
30
|
+
}
|
|
31
|
+
if (this.done) {
|
|
32
|
+
return Promise.resolve({ value: undefined, done: true });
|
|
33
|
+
}
|
|
34
|
+
return new Promise((resolve) => {
|
|
35
|
+
this.resolvers.push(resolve);
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Helper to convert Node.js streams to Web Streams
|
|
42
|
+
export function nodeToWebWritable(nodeStream) {
|
|
43
|
+
return new WritableStream({
|
|
44
|
+
write(chunk) {
|
|
45
|
+
return new Promise((resolve, reject) => {
|
|
46
|
+
nodeStream.write(Buffer.from(chunk), (err) => {
|
|
47
|
+
if (err) {
|
|
48
|
+
reject(err);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
resolve();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
export function nodeToWebReadable(nodeStream) {
|
|
59
|
+
return new ReadableStream({
|
|
60
|
+
start(controller) {
|
|
61
|
+
nodeStream.on("data", (chunk) => {
|
|
62
|
+
controller.enqueue(new Uint8Array(chunk));
|
|
63
|
+
});
|
|
64
|
+
nodeStream.on("end", () => controller.close());
|
|
65
|
+
nodeStream.on("error", (err) => controller.error(err));
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export function unreachable(value, logger = console) {
|
|
70
|
+
let valueAsString;
|
|
71
|
+
try {
|
|
72
|
+
valueAsString = JSON.stringify(value);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
valueAsString = value;
|
|
76
|
+
}
|
|
77
|
+
logger.error(`Unexpected case: ${valueAsString}`);
|
|
78
|
+
}
|
|
79
|
+
export function sleep(time) {
|
|
80
|
+
return new Promise((resolve) => setTimeout(resolve, time));
|
|
81
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@agentclientprotocol/claude-agent-acp",
|
|
3
|
+
"publishConfig": {
|
|
4
|
+
"access": "public"
|
|
5
|
+
},
|
|
6
|
+
"version": "0.64.0",
|
|
7
|
+
"description": "An ACP-compatible coding agent powered by the Claude Agent SDK (TypeScript)",
|
|
8
|
+
"main": "dist/lib.js",
|
|
9
|
+
"types": "dist/lib.d.ts",
|
|
10
|
+
"bin": {
|
|
11
|
+
"claude-agent-acp": "dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"type": "module",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/lib.d.ts",
|
|
17
|
+
"import": "./dist/lib.js"
|
|
18
|
+
},
|
|
19
|
+
"./*": "./*"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist/",
|
|
23
|
+
"!dist/tests/",
|
|
24
|
+
"README.md",
|
|
25
|
+
"LICENSE",
|
|
26
|
+
"package.json"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc",
|
|
30
|
+
"start": "node dist/index.js",
|
|
31
|
+
"dev": "npm run build && npm run start",
|
|
32
|
+
"lint": "eslint src --ext .ts",
|
|
33
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
34
|
+
"format": "prettier --write .",
|
|
35
|
+
"format:check": "prettier --check .",
|
|
36
|
+
"check": "npm run lint && npm run format:check",
|
|
37
|
+
"test": "vitest",
|
|
38
|
+
"test:integration": "RUN_INTEGRATION_TESTS=true vitest run",
|
|
39
|
+
"test:run": "vitest run",
|
|
40
|
+
"test:coverage": "vitest run --coverage",
|
|
41
|
+
"prepublishOnly": "npm run build"
|
|
42
|
+
},
|
|
43
|
+
"keywords": [
|
|
44
|
+
"claude",
|
|
45
|
+
"acp",
|
|
46
|
+
"agent",
|
|
47
|
+
"anthropic",
|
|
48
|
+
"typescript",
|
|
49
|
+
"sdk",
|
|
50
|
+
"code"
|
|
51
|
+
],
|
|
52
|
+
"homepage": "https://github.com/agentclientprotocol/claude-agent-acp#readme",
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/agentclientprotocol/claude-agent-acp/issues"
|
|
55
|
+
},
|
|
56
|
+
"repository": {
|
|
57
|
+
"type": "git",
|
|
58
|
+
"url": "git+https://github.com/agentclientprotocol/claude-agent-acp.git"
|
|
59
|
+
},
|
|
60
|
+
"author": "Zed Industries",
|
|
61
|
+
"license": "Apache-2.0",
|
|
62
|
+
"engines": {
|
|
63
|
+
"node": ">=22"
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@agentclientprotocol/sdk": "1.3.0",
|
|
67
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.220",
|
|
68
|
+
"zod": "^3.25.0 || ^4.0.0"
|
|
69
|
+
},
|
|
70
|
+
"devDependencies": {
|
|
71
|
+
"@anthropic-ai/sdk": "0.115.0",
|
|
72
|
+
"@eslint/js": "10.0.1",
|
|
73
|
+
"@tsconfig/node22": "22.0.5",
|
|
74
|
+
"@types/node": "26.1.2",
|
|
75
|
+
"@typescript-eslint/eslint-plugin": "8.65.0",
|
|
76
|
+
"@typescript-eslint/parser": "8.65.0",
|
|
77
|
+
"eslint": "10.8.0",
|
|
78
|
+
"eslint-config-prettier": "10.1.8",
|
|
79
|
+
"globals": "17.8.0",
|
|
80
|
+
"prettier": "3.9.6",
|
|
81
|
+
"ts-node": "10.9.2",
|
|
82
|
+
"typescript": "6.0.3",
|
|
83
|
+
"vitest": "4.1.10"
|
|
84
|
+
}
|
|
85
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@borgee/agents-host",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.97",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -22,36 +22,40 @@
|
|
|
22
22
|
},
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@agentclientprotocol/claude-agent-acp": "0.64.0",
|
|
26
25
|
"@agentclientprotocol/codex-acp": "1.1.7",
|
|
27
26
|
"@agentclientprotocol/sdk": "1.3.0",
|
|
27
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.220",
|
|
28
28
|
"@github/copilot-sdk": "1.0.11",
|
|
29
29
|
"cross-spawn": "^7.0.6",
|
|
30
|
-
"yaml": "^2.8.1"
|
|
30
|
+
"yaml": "^2.8.1",
|
|
31
|
+
"zod": "4.4.3"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
34
|
+
"@agentclientprotocol/claude-agent-acp": "0.64.0",
|
|
33
35
|
"@types/cross-spawn": "^6.0.6",
|
|
34
36
|
"@types/node": "^24.3.0",
|
|
35
37
|
"esbuild": "^0.28.1",
|
|
36
38
|
"tsx": "^4.20.5",
|
|
37
39
|
"typescript": "^5.9.3",
|
|
38
40
|
"vitest": "^4.1.5",
|
|
39
|
-
"@borgee/plugin-sdk": "0.
|
|
41
|
+
"@borgee/plugin-sdk": "0.15.0"
|
|
40
42
|
},
|
|
41
43
|
"scripts": {
|
|
42
|
-
"predev": "pnpm --filter @borgee/plugin-sdk build",
|
|
44
|
+
"predev": "pnpm --filter @borgee/agent-remote-protocol build && pnpm --filter @borgee/plugin-sdk build && pnpm run vendor:claude",
|
|
43
45
|
"dev": "tsx src/index.ts",
|
|
44
|
-
"precli": "pnpm --filter @borgee/plugin-sdk build",
|
|
46
|
+
"precli": "pnpm --filter @borgee/agent-remote-protocol build && pnpm --filter @borgee/plugin-sdk build && pnpm run vendor:claude",
|
|
45
47
|
"cli": "tsx src/cli.ts",
|
|
46
|
-
"prestart": "pnpm --filter @borgee/plugin-sdk build",
|
|
48
|
+
"prestart": "pnpm --filter @borgee/agent-remote-protocol build && pnpm --filter @borgee/plugin-sdk build",
|
|
47
49
|
"start": "node dist/index.js",
|
|
48
|
-
"prebuild": "pnpm --filter @borgee/plugin-sdk build",
|
|
49
|
-
"build": "tsc && node scripts/bundle-plugin-sdk.mjs",
|
|
50
|
+
"prebuild": "pnpm --filter @borgee/agent-remote-protocol build && pnpm --filter @borgee/plugin-sdk build",
|
|
51
|
+
"build": "tsc && node scripts/bundle-plugin-sdk.mjs && node scripts/vendor-claude-acp.mjs",
|
|
52
|
+
"test:package": "node --test --test-timeout=10000 scripts/packed-package-descriptor.test.mjs && pnpm run build && node scripts/test-packed-claude-lifecycle.mjs",
|
|
50
53
|
"typecheck": "tsc --noEmit",
|
|
51
|
-
"pretest": "pnpm --filter @borgee/plugin-sdk build",
|
|
54
|
+
"pretest": "pnpm --filter @borgee/agent-remote-protocol build && pnpm --filter @borgee/plugin-sdk build && pnpm run vendor:claude",
|
|
52
55
|
"test": "vitest run --testTimeout=10000",
|
|
53
|
-
"pretest:e2e": "pnpm --filter @borgee/plugin-sdk build",
|
|
56
|
+
"pretest:e2e": "pnpm --filter @borgee/agent-remote-protocol build && pnpm --filter @borgee/plugin-sdk build && pnpm run vendor:claude",
|
|
54
57
|
"test:e2e": "vitest run --config vitest.e2e.config.ts --testTimeout=120000",
|
|
55
|
-
"pretypecheck": "pnpm --filter @borgee/plugin-sdk build"
|
|
58
|
+
"pretypecheck": "pnpm --filter @borgee/agent-remote-protocol build && pnpm --filter @borgee/plugin-sdk build",
|
|
59
|
+
"vendor:claude": "node scripts/vendor-claude-acp.mjs"
|
|
56
60
|
}
|
|
57
61
|
}
|