@penclipai/adapter-utils 2026.704.0 → 2026.714.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 +1 -1
- package/dist/acpx-engine/cli.d.ts +2 -0
- package/dist/acpx-engine/cli.d.ts.map +1 -0
- package/dist/acpx-engine/cli.js +128 -0
- package/dist/acpx-engine/cli.js.map +1 -0
- package/dist/acpx-engine/constants.d.ts +16 -0
- package/dist/acpx-engine/constants.d.ts.map +1 -0
- package/dist/acpx-engine/constants.js +18 -0
- package/dist/acpx-engine/constants.js.map +1 -0
- package/dist/acpx-engine/execute.d.ts +57 -0
- package/dist/acpx-engine/execute.d.ts.map +1 -0
- package/dist/acpx-engine/execute.js +1849 -0
- package/dist/acpx-engine/execute.js.map +1 -0
- package/dist/acpx-engine/execute.test.d.ts +2 -0
- package/dist/acpx-engine/execute.test.d.ts.map +1 -0
- package/dist/acpx-engine/execute.test.js +1332 -0
- package/dist/acpx-engine/execute.test.js.map +1 -0
- package/dist/acpx-engine/index.d.ts +6 -0
- package/dist/acpx-engine/index.d.ts.map +1 -0
- package/dist/acpx-engine/index.js +6 -0
- package/dist/acpx-engine/index.js.map +1 -0
- package/dist/acpx-engine/session-codec.d.ts +3 -0
- package/dist/acpx-engine/session-codec.d.ts.map +1 -0
- package/dist/acpx-engine/session-codec.js +48 -0
- package/dist/acpx-engine/session-codec.js.map +1 -0
- package/dist/acpx-engine/ui.d.ts +3 -0
- package/dist/acpx-engine/ui.d.ts.map +1 -0
- package/dist/acpx-engine/ui.js +162 -0
- package/dist/acpx-engine/ui.js.map +1 -0
- package/dist/execution-target-sandbox.test.js +416 -5
- package/dist/execution-target-sandbox.test.js.map +1 -1
- package/dist/execution-target.d.ts +37 -1
- package/dist/execution-target.d.ts.map +1 -1
- package/dist/execution-target.js +488 -9
- package/dist/execution-target.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/sandbox-callback-bridge.d.ts.map +1 -1
- package/dist/sandbox-callback-bridge.js +9 -4
- package/dist/sandbox-callback-bridge.js.map +1 -1
- package/dist/sandbox-callback-bridge.test.js +4 -0
- package/dist/sandbox-callback-bridge.test.js.map +1 -1
- package/dist/server-utils.d.ts +18 -0
- package/dist/server-utils.d.ts.map +1 -1
- package/dist/server-utils.js +85 -19
- package/dist/server-utils.js.map +1 -1
- package/dist/server-utils.test.js +256 -8
- package/dist/server-utils.test.js.map +1 -1
- package/dist/session-compaction.d.ts.map +1 -1
- package/dist/session-compaction.js +0 -6
- package/dist/session-compaction.js.map +1 -1
- package/dist/types.d.ts +35 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/acpx-engine/cli.ts"],"names":[],"mappings":"AAkDA,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAsEtE"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import pc from "picocolors";
|
|
2
|
+
function parseJson(line) {
|
|
3
|
+
try {
|
|
4
|
+
const parsed = JSON.parse(line);
|
|
5
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
6
|
+
return null;
|
|
7
|
+
return parsed;
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function asString(value, fallback = "") {
|
|
14
|
+
return typeof value === "string" ? value : fallback;
|
|
15
|
+
}
|
|
16
|
+
function asNumber(value, fallback = 0) {
|
|
17
|
+
return typeof value === "number" && Number.isFinite(value) ? value : fallback;
|
|
18
|
+
}
|
|
19
|
+
function stringify(value) {
|
|
20
|
+
if (typeof value === "string")
|
|
21
|
+
return value;
|
|
22
|
+
if (value === null || value === undefined)
|
|
23
|
+
return "";
|
|
24
|
+
try {
|
|
25
|
+
return JSON.stringify(value, null, 2);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return String(value);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function pickToolUseId(parsed) {
|
|
32
|
+
return (asString(parsed.toolCallId) ||
|
|
33
|
+
asString(parsed.toolUseId) ||
|
|
34
|
+
asString(parsed.id));
|
|
35
|
+
}
|
|
36
|
+
function statusLine(parsed) {
|
|
37
|
+
const text = asString(parsed.text).trim();
|
|
38
|
+
const tag = asString(parsed.tag).trim();
|
|
39
|
+
const used = asNumber(parsed.used, -1);
|
|
40
|
+
const size = asNumber(parsed.size, -1);
|
|
41
|
+
const parts = [];
|
|
42
|
+
if (text)
|
|
43
|
+
parts.push(text);
|
|
44
|
+
if (tag && !text)
|
|
45
|
+
parts.push(tag);
|
|
46
|
+
if (used >= 0 && size > 0)
|
|
47
|
+
parts.push(`(${used}/${size} ctx)`);
|
|
48
|
+
return parts.join(" ") || tag || "status";
|
|
49
|
+
}
|
|
50
|
+
export function printAcpxStreamEvent(raw, debug) {
|
|
51
|
+
const line = raw.trim();
|
|
52
|
+
if (!line)
|
|
53
|
+
return;
|
|
54
|
+
const parsed = parseJson(line);
|
|
55
|
+
if (!parsed) {
|
|
56
|
+
if (debug)
|
|
57
|
+
console.log(pc.gray(line));
|
|
58
|
+
else
|
|
59
|
+
console.log(line);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const type = asString(parsed.type);
|
|
63
|
+
if (type === "acpx.session") {
|
|
64
|
+
const agent = asString(parsed.agent, "acpx");
|
|
65
|
+
const session = asString(parsed.acpSessionId) ||
|
|
66
|
+
asString(parsed.sessionId) ||
|
|
67
|
+
asString(parsed.runtimeSessionName);
|
|
68
|
+
const mode = asString(parsed.mode);
|
|
69
|
+
const permissionMode = asString(parsed.permissionMode);
|
|
70
|
+
const tail = [mode, permissionMode].filter(Boolean).join(" / ");
|
|
71
|
+
const suffix = tail ? ` [${tail}]` : "";
|
|
72
|
+
console.log(pc.blue(`${agent} session${session ? `: ${session}` : ""}${suffix}`));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (type === "acpx.text_delta") {
|
|
76
|
+
const text = asString(parsed.text);
|
|
77
|
+
if (!text)
|
|
78
|
+
return;
|
|
79
|
+
const channel = asString(parsed.channel) || asString(parsed.stream);
|
|
80
|
+
const isThought = channel === "thought" || channel === "thinking";
|
|
81
|
+
if (isThought)
|
|
82
|
+
console.log(pc.gray(text));
|
|
83
|
+
else
|
|
84
|
+
process.stdout.write(pc.green(text));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (type === "acpx.tool_call") {
|
|
88
|
+
const name = asString(parsed.name, "acp_tool");
|
|
89
|
+
const status = asString(parsed.status);
|
|
90
|
+
const id = pickToolUseId(parsed);
|
|
91
|
+
const header = status ? `tool_call: ${name} [${status}]` : `tool_call: ${name}`;
|
|
92
|
+
const idSuffix = id ? ` (${id})` : "";
|
|
93
|
+
const isError = status === "failed" || status === "cancelled";
|
|
94
|
+
console.log((isError ? pc.red : pc.yellow)(`${header}${idSuffix}`));
|
|
95
|
+
if (parsed.input !== undefined) {
|
|
96
|
+
console.log(pc.gray(stringify(parsed.input)));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
const text = asString(parsed.text).trim();
|
|
100
|
+
if (text)
|
|
101
|
+
console.log(pc.gray(text));
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (type === "acpx.tool_result") {
|
|
106
|
+
const isError = parsed.isError === true || parsed.error !== undefined;
|
|
107
|
+
console.log((isError ? pc.red : pc.cyan)(`tool_result: ${asString(parsed.name, "acp_tool")}`));
|
|
108
|
+
const content = stringify(parsed.content ?? parsed.output ?? parsed.error);
|
|
109
|
+
if (content)
|
|
110
|
+
console.log((isError ? pc.red : pc.gray)(content));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (type === "acpx.status") {
|
|
114
|
+
console.log(pc.gray(`status: ${statusLine(parsed)}`));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (type === "acpx.result") {
|
|
118
|
+
const summary = asString(parsed.summary, asString(parsed.stopReason, asString(parsed.subtype, "complete")));
|
|
119
|
+
console.log(pc.blue(`result: ${summary}`));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (type === "acpx.error") {
|
|
123
|
+
console.log(pc.red(`error: ${asString(parsed.message, line)}`));
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
console.log(debug ? pc.gray(line) : line);
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/acpx-engine/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACxF,OAAO,MAAiC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACtD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,QAAQ,GAAG,CAAC;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAA+B;IACpD,OAAO,CACL,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;QAC3B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAA+B;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,GAAG,IAAI,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAW,EAAE,KAAc;IAC9D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;YACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,OAAO,GACX,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;YAC7B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;YAC1B,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,UAAU,CAAC;QAClE,IAAI,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;YACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,gBAAgB,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/F,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const DEFAULT_ACP_ENGINE_AGENT = "claude";
|
|
2
|
+
export declare const DEFAULT_ACP_ENGINE_MODE = "persistent";
|
|
3
|
+
export declare const DEFAULT_ACP_ENGINE_PERMISSION_MODE = "approve-all";
|
|
4
|
+
export declare const DEFAULT_ACP_ENGINE_NON_INTERACTIVE_PERMISSIONS = "deny";
|
|
5
|
+
export declare const DEFAULT_ACP_ENGINE_TIMEOUT_SEC = 0;
|
|
6
|
+
export declare const DEFAULT_ACP_ENGINE_WARM_HANDLE_IDLE_MS = 0;
|
|
7
|
+
export declare const ACPX_ADAPTER_AGENT_IDS: {
|
|
8
|
+
readonly claude_local: "claude";
|
|
9
|
+
readonly codex_local: "codex";
|
|
10
|
+
readonly gemini_local: "gemini";
|
|
11
|
+
readonly custom_acp: "custom";
|
|
12
|
+
};
|
|
13
|
+
export type AcpxAdapterType = keyof typeof ACPX_ADAPTER_AGENT_IDS;
|
|
14
|
+
export type AcpxAgentId = (typeof ACPX_ADAPTER_AGENT_IDS)[AcpxAdapterType];
|
|
15
|
+
export declare function acpxAgentIdForAdapterType(adapterType: string | null | undefined): AcpxAgentId | null;
|
|
16
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/acpx-engine/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,WAAW,CAAC;AACjD,eAAO,MAAM,uBAAuB,eAAe,CAAC;AACpD,eAAO,MAAM,kCAAkC,gBAAgB,CAAC;AAChE,eAAO,MAAM,8CAA8C,SAAS,CAAC;AACrE,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,sCAAsC,IAAI,CAAC;AAExD,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,eAAe,CAAC,CAAC;AAE3E,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAGpG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const DEFAULT_ACP_ENGINE_AGENT = "claude";
|
|
2
|
+
export const DEFAULT_ACP_ENGINE_MODE = "persistent";
|
|
3
|
+
export const DEFAULT_ACP_ENGINE_PERMISSION_MODE = "approve-all";
|
|
4
|
+
export const DEFAULT_ACP_ENGINE_NON_INTERACTIVE_PERMISSIONS = "deny";
|
|
5
|
+
export const DEFAULT_ACP_ENGINE_TIMEOUT_SEC = 0;
|
|
6
|
+
export const DEFAULT_ACP_ENGINE_WARM_HANDLE_IDLE_MS = 0;
|
|
7
|
+
export const ACPX_ADAPTER_AGENT_IDS = {
|
|
8
|
+
claude_local: "claude",
|
|
9
|
+
codex_local: "codex",
|
|
10
|
+
gemini_local: "gemini",
|
|
11
|
+
custom_acp: "custom",
|
|
12
|
+
};
|
|
13
|
+
export function acpxAgentIdForAdapterType(adapterType) {
|
|
14
|
+
if (!adapterType)
|
|
15
|
+
return null;
|
|
16
|
+
return ACPX_ADAPTER_AGENT_IDS[adapterType] ?? null;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/acpx-engine/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AACpD,MAAM,CAAC,MAAM,kCAAkC,GAAG,aAAa,CAAC;AAChE,MAAM,CAAC,MAAM,8CAA8C,GAAG,MAAM,CAAC;AACrE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,QAAQ;IACtB,UAAU,EAAE,QAAQ;CACZ,CAAC;AAKX,MAAM,UAAU,yBAAyB,CAAC,WAAsC;IAC9E,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,sBAAsB,CAAC,WAA8B,CAAC,IAAI,IAAI,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { AdapterBillingType, AdapterExecutionContext, AdapterExecutionResult, UsageSummary } from "@penclipai/adapter-utils";
|
|
2
|
+
import { type AcpRuntime, type AcpRuntimeHandle, type AcpRuntimeOptions, type AcpRuntimeStatus, type AcpRuntimeUsageBreakdown } from "acpx/runtime";
|
|
3
|
+
type AcpxRuntimeFactory = (options: AcpRuntimeOptions) => AcpRuntime;
|
|
4
|
+
export interface RuntimeCacheEntry {
|
|
5
|
+
runtime: AcpRuntime;
|
|
6
|
+
handle: AcpRuntimeHandle;
|
|
7
|
+
fingerprint: string;
|
|
8
|
+
lastUsedAt: number;
|
|
9
|
+
cleanupTimer?: NodeJS.Timeout;
|
|
10
|
+
}
|
|
11
|
+
export interface AcpxEngineBillingIdentity {
|
|
12
|
+
provider?: string | null;
|
|
13
|
+
biller?: string | null;
|
|
14
|
+
billingType?: AdapterBillingType | null;
|
|
15
|
+
}
|
|
16
|
+
export interface AcpxEngineExecutorOptions {
|
|
17
|
+
createRuntime?: AcpxRuntimeFactory;
|
|
18
|
+
now?: () => number;
|
|
19
|
+
warmHandles?: Map<string, RuntimeCacheEntry>;
|
|
20
|
+
adapterType?: string;
|
|
21
|
+
moduleDir?: string;
|
|
22
|
+
packageRootDir?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Adapter-specific billing classification (provider/biller/billingType) for
|
|
25
|
+
* cost-ledger attribution. Without it, results fall back to the opaque
|
|
26
|
+
* "acpx" provider and an "unknown" billing type.
|
|
27
|
+
*/
|
|
28
|
+
resolveBillingIdentity?: (ctx: AdapterExecutionContext) => AcpxEngineBillingIdentity | null | Promise<AcpxEngineBillingIdentity | null>;
|
|
29
|
+
}
|
|
30
|
+
export declare function findAncestorBin(startDir: string, binName: string): Promise<string | null>;
|
|
31
|
+
export declare function parseGeminiVersionParts(output: string | null | undefined): number[] | null;
|
|
32
|
+
export declare function geminiVersionSupportsNativeAcpFlag(parts: number[] | null): boolean;
|
|
33
|
+
export declare function rewriteGeminiAcpFlagForVersion(commandShell: string, versionParts: number[] | null): string;
|
|
34
|
+
/**
|
|
35
|
+
* Fold the ACP runtime's post-turn usage into the adapter execution result
|
|
36
|
+
* shape. The runtime persists the latest turn's token breakdown (adapters like
|
|
37
|
+
* claude-agent-acp report per-turn accumulated usage in the prompt response),
|
|
38
|
+
* so tokens are per-run. Cost is reported by agents as a cumulative session
|
|
39
|
+
* amount, so the per-run cost is the delta against the pre-turn snapshot; a
|
|
40
|
+
* decrease means the agent process restarted and its counter reset, in which
|
|
41
|
+
* case the post-turn amount alone covers this run.
|
|
42
|
+
*/
|
|
43
|
+
export declare function summarizeAcpxTurnUsage(input: {
|
|
44
|
+
preStatus: AcpRuntimeStatus | null;
|
|
45
|
+
postStatus: AcpRuntimeStatus | null;
|
|
46
|
+
eventBreakdown: AcpRuntimeUsageBreakdown | null;
|
|
47
|
+
eventCostUsd: number | null;
|
|
48
|
+
}): {
|
|
49
|
+
usage: UsageSummary | null;
|
|
50
|
+
usageDetail: Record<string, number> | null;
|
|
51
|
+
costUsd: number | null;
|
|
52
|
+
cumulativeCostUsd: number | null;
|
|
53
|
+
};
|
|
54
|
+
export declare function createAcpxEngineExecutor(deps?: AcpxEngineExecutorOptions): (ctx: AdapterExecutionContext) => Promise<AdapterExecutionResult>;
|
|
55
|
+
export declare const execute: (ctx: AdapterExecutionContext) => Promise<AdapterExecutionResult>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/acpx-engine/execute.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAwClC,OAAO,EAML,KAAK,UAAU,EAEf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGrB,KAAK,wBAAwB,EAE9B,MAAM,cAAc,CAAC;AActB,KAAK,kBAAkB,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,UAAU,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CAC/B;AAQD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,CACvB,GAAG,EAAE,uBAAuB,KACzB,yBAAyB,GAAG,IAAI,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;CACnF;AA6ED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS/F;AA+BD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,CAI1F;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAOlF;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,MAAM,CAO1G;AAkwCD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAChD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,GAAG;IACF,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAyDA;AA4OD,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,yBAA8B,IAMnC,KAAK,uBAAuB,KAAG,OAAO,CAAC,sBAAsB,CAAC,CA0YvG;AAGD,eAAO,MAAM,OAAO,QA7Y2B,uBAAuB,KAAG,OAAO,CAAC,sBAAsB,CA6YtD,CAAC"}
|