theokit 0.74.5 → 0.75.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/dist/{actions-virtual-module-MIQJEHKJ.js → actions-virtual-module-MIQPBAZW.js} +5 -5
- package/dist/{actions-virtual-module-4J7Z37Y4.js → actions-virtual-module-QEI6QPK4.js} +5 -5
- package/dist/adapters/agent-mount.js +1 -1
- package/dist/{agent-XPZUWTHR.js → agent-IIF6JUWX.js} +3 -3
- package/dist/{app-typed-client-AZMUYIYV.js → app-typed-client-CHSITA46.js} +5 -5
- package/dist/{app-typed-client-DSS23KDC.js → app-typed-client-XQJXF646.js} +5 -5
- package/dist/{build-F3O5LJHY.js → build-QIO4VAW2.js} +22 -87
- package/dist/build-QIO4VAW2.js.map +1 -0
- package/dist/{chunk-PZLH4WGU.js → chunk-2BMJQMTH.js} +5 -5
- package/dist/{chunk-44E7XIZC.js → chunk-3MKRDJQ2.js} +2 -2
- package/dist/{chunk-4ERYQBL6.js → chunk-4Z5XO4O4.js} +2 -2
- package/dist/{chunk-FPC6ZEEU.js → chunk-6RVWPEKK.js} +10 -10
- package/dist/{chunk-V7ISZGNS.js → chunk-7HGZ3CKL.js} +2 -2
- package/dist/{chunk-6R5F5YF2.js → chunk-A6UFN6QQ.js} +16 -11
- package/dist/{chunk-6R5F5YF2.js.map → chunk-A6UFN6QQ.js.map} +1 -1
- package/dist/{chunk-5KRMDP46.js → chunk-AHYOVVJ7.js} +13 -3
- package/dist/chunk-AHYOVVJ7.js.map +1 -0
- package/dist/{chunk-WR5B2XNT.js → chunk-FNAEKJHO.js} +2 -2
- package/dist/{chunk-HKF6YNY4.js → chunk-FU3LEX2I.js} +26 -12
- package/dist/chunk-FU3LEX2I.js.map +1 -0
- package/dist/{chunk-VD3BCME6.js → chunk-I5PDEWZZ.js} +2 -2
- package/dist/chunk-IWIRHUNV.js +96 -0
- package/dist/chunk-IWIRHUNV.js.map +1 -0
- package/dist/{chunk-U5PWXS3J.js → chunk-O5JZ6ROY.js} +13 -3
- package/dist/chunk-O5JZ6ROY.js.map +1 -0
- package/dist/{chunk-VOXLI66L.js → chunk-OZB2TKGJ.js} +2 -2
- package/dist/{chunk-ET2TAY3Z.js → chunk-RAUYMVUO.js} +279 -15
- package/dist/chunk-RAUYMVUO.js.map +1 -0
- package/dist/{chunk-XUAWD5HK.js → chunk-RKRFJRJ3.js} +10 -10
- package/dist/{chunk-DA3GGICE.js → chunk-RQKMY3JW.js} +2 -2
- package/dist/{chunk-D5KBBTVD.js → chunk-RY6D4EXL.js} +20 -13
- package/dist/chunk-RY6D4EXL.js.map +1 -0
- package/dist/cli/index.js +10 -10
- package/dist/{dev-TW6QD7F3.js → dev-J2XZIENF.js} +8 -8
- package/dist/{dev-emit-T3X6RR7M.js → dev-emit-AXTJK56H.js} +3 -3
- package/dist/{dev-emit-ZK5GCHXN.js → dev-emit-XAPVJBM4.js} +3 -3
- package/dist/{generate-EN6EDITF.js → generate-RW3NO3NR.js} +239 -141
- package/dist/generate-RW3NO3NR.js.map +1 -0
- package/dist/index.js +5 -5
- package/dist/{info-XURFOBRF.js → info-6NAUW5XY.js} +3 -3
- package/dist/{internal-api-XPT4GLYX.js → internal-api-A5HA7TYF.js} +5 -5
- package/dist/{internal-api-ATSPOXI2.js → internal-api-R7TTYMCY.js} +5 -5
- package/dist/{load-config-2DXLI7NW.js → load-config-CLFWJOXN.js} +3 -3
- package/dist/{mcp-LMV3NQEP.js → mcp-MWTG3LRA.js} +4 -4
- package/dist/{openapi-UJSUQPNT.js → openapi-RVFUXXCR.js} +5 -5
- package/dist/{preview-AMNBV2DP.js → preview-ML4CFUD6.js} +3 -3
- package/dist/{routes-ENMU4GAN.js → routes-SMNSI2ZX.js} +3 -3
- package/dist/server/agent/index.d.ts +99 -6
- package/dist/server/agent/index.js +9 -1
- package/dist/server/cron/index.js +2 -2
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +15 -7
- package/dist/server/index.js.map +1 -1
- package/dist/server/jobs/index.js +2 -2
- package/dist/server/scan/index.js +4 -4
- package/dist/{server-boundary-K4YQXDQT.js → server-boundary-HYLYGFZY.js} +5 -5
- package/dist/{server-boundary-JM72DQLA.js → server-boundary-ZT6HN7ON.js} +5 -5
- package/dist/{start-GAULIE5E.js → start-L5TGWGLU.js} +7 -7
- package/dist/vite-plugin/index.js +5 -5
- package/dist/{vite-plugin-4ZMBW3KV.js → vite-plugin-OJND2LU5.js} +8 -8
- package/package.json +2 -2
- package/dist/build-F3O5LJHY.js.map +0 -1
- package/dist/chunk-5KRMDP46.js.map +0 -1
- package/dist/chunk-D5KBBTVD.js.map +0 -1
- package/dist/chunk-ET2TAY3Z.js.map +0 -1
- package/dist/chunk-HKF6YNY4.js.map +0 -1
- package/dist/chunk-U5PWXS3J.js.map +0 -1
- package/dist/generate-EN6EDITF.js.map +0 -1
- /package/dist/{actions-virtual-module-MIQJEHKJ.js.map → actions-virtual-module-MIQPBAZW.js.map} +0 -0
- /package/dist/{actions-virtual-module-4J7Z37Y4.js.map → actions-virtual-module-QEI6QPK4.js.map} +0 -0
- /package/dist/{agent-XPZUWTHR.js.map → agent-IIF6JUWX.js.map} +0 -0
- /package/dist/{app-typed-client-AZMUYIYV.js.map → app-typed-client-CHSITA46.js.map} +0 -0
- /package/dist/{app-typed-client-DSS23KDC.js.map → app-typed-client-XQJXF646.js.map} +0 -0
- /package/dist/{chunk-PZLH4WGU.js.map → chunk-2BMJQMTH.js.map} +0 -0
- /package/dist/{chunk-44E7XIZC.js.map → chunk-3MKRDJQ2.js.map} +0 -0
- /package/dist/{chunk-4ERYQBL6.js.map → chunk-4Z5XO4O4.js.map} +0 -0
- /package/dist/{chunk-FPC6ZEEU.js.map → chunk-6RVWPEKK.js.map} +0 -0
- /package/dist/{chunk-V7ISZGNS.js.map → chunk-7HGZ3CKL.js.map} +0 -0
- /package/dist/{chunk-WR5B2XNT.js.map → chunk-FNAEKJHO.js.map} +0 -0
- /package/dist/{chunk-VD3BCME6.js.map → chunk-I5PDEWZZ.js.map} +0 -0
- /package/dist/{chunk-VOXLI66L.js.map → chunk-OZB2TKGJ.js.map} +0 -0
- /package/dist/{chunk-XUAWD5HK.js.map → chunk-RKRFJRJ3.js.map} +0 -0
- /package/dist/{chunk-DA3GGICE.js.map → chunk-RQKMY3JW.js.map} +0 -0
- /package/dist/{dev-TW6QD7F3.js.map → dev-J2XZIENF.js.map} +0 -0
- /package/dist/{dev-emit-T3X6RR7M.js.map → dev-emit-AXTJK56H.js.map} +0 -0
- /package/dist/{dev-emit-ZK5GCHXN.js.map → dev-emit-XAPVJBM4.js.map} +0 -0
- /package/dist/{info-XURFOBRF.js.map → info-6NAUW5XY.js.map} +0 -0
- /package/dist/{internal-api-XPT4GLYX.js.map → internal-api-A5HA7TYF.js.map} +0 -0
- /package/dist/{internal-api-ATSPOXI2.js.map → internal-api-R7TTYMCY.js.map} +0 -0
- /package/dist/{load-config-2DXLI7NW.js.map → load-config-CLFWJOXN.js.map} +0 -0
- /package/dist/{mcp-LMV3NQEP.js.map → mcp-MWTG3LRA.js.map} +0 -0
- /package/dist/{openapi-UJSUQPNT.js.map → openapi-RVFUXXCR.js.map} +0 -0
- /package/dist/{preview-AMNBV2DP.js.map → preview-ML4CFUD6.js.map} +0 -0
- /package/dist/{routes-ENMU4GAN.js.map → routes-SMNSI2ZX.js.map} +0 -0
- /package/dist/{server-boundary-K4YQXDQT.js.map → server-boundary-HYLYGFZY.js.map} +0 -0
- /package/dist/{server-boundary-JM72DQLA.js.map → server-boundary-ZT6HN7ON.js.map} +0 -0
- /package/dist/{start-GAULIE5E.js.map → start-L5TGWGLU.js.map} +0 -0
- /package/dist/{vite-plugin-4ZMBW3KV.js.map → vite-plugin-OJND2LU5.js.map} +0 -0
|
@@ -33,35 +33,277 @@ function createWorkflowTool(workflow, config) {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
// src/server/agent/acp-tool.ts
|
|
36
|
+
import { resolve } from "node:path";
|
|
37
|
+
import { AcpClient, AcpConnectionClosedError, AcpProtocolError } from "@theokit/agents";
|
|
38
|
+
|
|
39
|
+
// src/server/agent/node-acp-transport.ts
|
|
36
40
|
import { spawn } from "node:child_process";
|
|
37
|
-
|
|
41
|
+
var AcpTransportClosedError = class extends Error {
|
|
42
|
+
constructor(command, reason, options) {
|
|
43
|
+
super(`[theokit] createACPTool: the agent process "${command}" ${reason}`, options);
|
|
44
|
+
this.command = command;
|
|
45
|
+
this.reason = reason;
|
|
46
|
+
}
|
|
47
|
+
command;
|
|
48
|
+
reason;
|
|
49
|
+
name = "AcpTransportClosedError";
|
|
50
|
+
};
|
|
51
|
+
var SIGTERM_GRACE_MS = 2e3;
|
|
52
|
+
var SIGKILL_WAIT_MS = 2e3;
|
|
53
|
+
var GROUP_POLL_MS = 20;
|
|
54
|
+
var OWN_PROCESS_GROUP = process.platform !== "win32";
|
|
38
55
|
var NodeAcpTransport = class {
|
|
39
|
-
// stdin=pipe, stdout=pipe, stderr=inherit → the third stream is null.
|
|
40
|
-
proc;
|
|
41
56
|
constructor(command, args = [], cwd) {
|
|
42
|
-
this.
|
|
57
|
+
this.command = command;
|
|
58
|
+
this.proc = spawn(command, args, {
|
|
59
|
+
cwd,
|
|
60
|
+
stdio: ["pipe", "pipe", "inherit"],
|
|
61
|
+
detached: OWN_PROCESS_GROUP
|
|
62
|
+
});
|
|
63
|
+
this.proc.stdout.setEncoding("utf8");
|
|
64
|
+
this.exited = new Promise((resolve2) => {
|
|
65
|
+
this.proc.once("exit", () => {
|
|
66
|
+
resolve2();
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
this.proc.on("error", (err) => {
|
|
70
|
+
this.end(`failed: ${err.message}`, err);
|
|
71
|
+
});
|
|
72
|
+
this.proc.stdin.on("error", (err) => {
|
|
73
|
+
this.end(`closed its stdin: ${err.message}`, err);
|
|
74
|
+
});
|
|
75
|
+
this.proc.on("close", (code, signal) => {
|
|
76
|
+
this.end(code === null ? `exited on signal ${String(signal)}` : `exited with code ${code}`);
|
|
77
|
+
});
|
|
43
78
|
}
|
|
79
|
+
command;
|
|
80
|
+
// stdin=pipe, stdout=pipe, stderr=inherit → the third stream is null.
|
|
81
|
+
proc;
|
|
82
|
+
closed;
|
|
83
|
+
listeners = [];
|
|
84
|
+
/** Settles when the process has exited (or never started). */
|
|
85
|
+
exited;
|
|
44
86
|
send(line) {
|
|
45
|
-
this.proc.stdin.write(line);
|
|
87
|
+
if (this.closed === void 0) this.proc.stdin.write(line);
|
|
46
88
|
}
|
|
47
89
|
subscribe(onData) {
|
|
48
|
-
this.proc.stdout.on("data",
|
|
49
|
-
|
|
90
|
+
this.proc.stdout.on("data", onData);
|
|
91
|
+
}
|
|
92
|
+
onClose(listener) {
|
|
93
|
+
if (this.closed !== void 0) listener(this.closed);
|
|
94
|
+
else this.listeners.push(listener);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* End the channel and the process, and settle once the process and its group have exited:
|
|
98
|
+
* SIGTERM first, then SIGKILL for anything still running after {@link SIGTERM_GRACE_MS}.
|
|
99
|
+
*/
|
|
100
|
+
async close() {
|
|
101
|
+
this.end("was closed by the caller");
|
|
102
|
+
try {
|
|
103
|
+
if (!this.running() && !this.groupAlive()) return;
|
|
104
|
+
this.signal("SIGTERM");
|
|
105
|
+
if (await this.goneWithin(SIGTERM_GRACE_MS)) return;
|
|
106
|
+
this.signal("SIGKILL");
|
|
107
|
+
await this.goneWithin(SIGKILL_WAIT_MS);
|
|
108
|
+
} finally {
|
|
109
|
+
this.proc.stdin.destroy();
|
|
110
|
+
this.proc.stdout.destroy();
|
|
111
|
+
this.proc.unref();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/** Whether the process started and has not exited yet. */
|
|
115
|
+
running() {
|
|
116
|
+
return this.proc.pid !== void 0 && this.proc.exitCode === null && this.proc.signalCode === null;
|
|
117
|
+
}
|
|
118
|
+
/** Whether a process of the agent's group is still running (always `false` without a group). */
|
|
119
|
+
groupAlive() {
|
|
120
|
+
const pid = this.proc.pid;
|
|
121
|
+
if (!OWN_PROCESS_GROUP || pid === void 0) return false;
|
|
122
|
+
try {
|
|
123
|
+
process.kill(-pid, 0);
|
|
124
|
+
return true;
|
|
125
|
+
} catch (err) {
|
|
126
|
+
return err.code === "EPERM";
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/** Send `signal` to the agent's process group, or to the spawned process without one. */
|
|
130
|
+
signal(signal) {
|
|
131
|
+
const pid = this.proc.pid;
|
|
132
|
+
if (!OWN_PROCESS_GROUP || pid === void 0) {
|
|
133
|
+
this.proc.kill(signal);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
process.kill(-pid, signal);
|
|
138
|
+
} catch (err) {
|
|
139
|
+
if (err.code !== "ESRCH") throw err;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/** Wait up to `ms` for the process and every process of its group to exit; `true` when they did. */
|
|
143
|
+
async goneWithin(ms) {
|
|
144
|
+
const deadline = Date.now() + ms;
|
|
145
|
+
if (!await this.exitsWithin(ms)) return false;
|
|
146
|
+
while (this.groupAlive()) {
|
|
147
|
+
if (Date.now() >= deadline) return false;
|
|
148
|
+
await new Promise((resolve2) => setTimeout(resolve2, GROUP_POLL_MS));
|
|
149
|
+
}
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
/** Wait up to `ms` for the process to exit; `true` when it did. */
|
|
153
|
+
async exitsWithin(ms) {
|
|
154
|
+
let timer;
|
|
155
|
+
const elapsed = new Promise((resolve2) => {
|
|
156
|
+
timer = setTimeout(() => {
|
|
157
|
+
resolve2(false);
|
|
158
|
+
}, ms);
|
|
50
159
|
});
|
|
160
|
+
try {
|
|
161
|
+
return await Promise.race([this.exited.then(() => true), elapsed]);
|
|
162
|
+
} finally {
|
|
163
|
+
clearTimeout(timer);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/** Record the first way the channel ended and tell every listener; later endings are ignored. */
|
|
167
|
+
end(reason, cause) {
|
|
168
|
+
if (this.closed !== void 0) return;
|
|
169
|
+
const error = new AcpTransportClosedError(this.command, reason, { cause });
|
|
170
|
+
this.closed = error;
|
|
171
|
+
for (const listener of this.listeners.splice(0)) listener(error);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
// src/server/agent/acp-tool.ts
|
|
176
|
+
var AcpRequestTimeoutError = class extends Error {
|
|
177
|
+
constructor(command, method, timeoutMs) {
|
|
178
|
+
super(
|
|
179
|
+
`[theokit] createACPTool: the agent "${command}" did not answer ${method} within ${String(timeoutMs)}ms`
|
|
180
|
+
);
|
|
181
|
+
this.command = command;
|
|
182
|
+
this.method = method;
|
|
183
|
+
this.timeoutMs = timeoutMs;
|
|
51
184
|
}
|
|
52
|
-
|
|
53
|
-
|
|
185
|
+
command;
|
|
186
|
+
method;
|
|
187
|
+
timeoutMs;
|
|
188
|
+
name = "AcpRequestTimeoutError";
|
|
189
|
+
};
|
|
190
|
+
var STOP_REASON_MEANING = {
|
|
191
|
+
max_tokens: "it reached its token limit",
|
|
192
|
+
max_turn_requests: "it reached its limit of model requests in one turn",
|
|
193
|
+
refusal: "it refused to continue",
|
|
194
|
+
cancelled: "it cancelled the turn"
|
|
195
|
+
};
|
|
196
|
+
var AcpTurnStoppedError = class extends Error {
|
|
197
|
+
constructor(command, stopReason, partialText) {
|
|
198
|
+
const meaning = STOP_REASON_MEANING[stopReason] ?? "a stop reason this client does not know";
|
|
199
|
+
super(
|
|
200
|
+
`[theokit] createACPTool: the agent "${command}" stopped the turn before finishing it, with stopReason "${stopReason}" (${meaning}); the ${String(partialText.length)} characters it streamed are on the error's partialText`
|
|
201
|
+
);
|
|
202
|
+
this.command = command;
|
|
203
|
+
this.stopReason = stopReason;
|
|
204
|
+
this.partialText = partialText;
|
|
54
205
|
}
|
|
206
|
+
command;
|
|
207
|
+
stopReason;
|
|
208
|
+
partialText;
|
|
209
|
+
name = "AcpTurnStoppedError";
|
|
55
210
|
};
|
|
211
|
+
var DEFAULT_ACP_TIMEOUT_MS = 6e5;
|
|
56
212
|
function defaultTransport(config) {
|
|
57
213
|
return new NodeAcpTransport(config.command, config.args, config.cwd);
|
|
58
214
|
}
|
|
215
|
+
var ACP_PROTOCOL_VERSION = 1;
|
|
216
|
+
function isRecord(value) {
|
|
217
|
+
return typeof value === "object" && value !== null;
|
|
218
|
+
}
|
|
219
|
+
function toAcpPermissionResponse(params, decision) {
|
|
220
|
+
const options = isRecord(params) && Array.isArray(params.options) ? params.options : [];
|
|
221
|
+
const wanted = decision.granted ? ["allow_once"] : ["reject_once", "reject_always"];
|
|
222
|
+
for (const kind of wanted) {
|
|
223
|
+
const option = options.find((o) => isRecord(o) && o.kind === kind);
|
|
224
|
+
if (isRecord(option) && typeof option.optionId === "string") {
|
|
225
|
+
return { outcome: { outcome: "selected", optionId: option.optionId } };
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return { outcome: { outcome: "cancelled" } };
|
|
229
|
+
}
|
|
230
|
+
function agentTextChunk(params, sessionId) {
|
|
231
|
+
if (!isRecord(params) || params.sessionId !== sessionId || !isRecord(params.update))
|
|
232
|
+
return void 0;
|
|
233
|
+
const { sessionUpdate, content } = params.update;
|
|
234
|
+
if (sessionUpdate !== "agent_message_chunk" || !isRecord(content)) return void 0;
|
|
235
|
+
return content.type === "text" && typeof content.text === "string" ? content.text : void 0;
|
|
236
|
+
}
|
|
237
|
+
function stepFailure(method, cause) {
|
|
238
|
+
if (cause instanceof AcpConnectionClosedError) {
|
|
239
|
+
return cause.cause instanceof Error ? cause.cause : cause;
|
|
240
|
+
}
|
|
241
|
+
if (cause instanceof AcpProtocolError) return cause;
|
|
242
|
+
const reason = cause instanceof Error ? cause.message : String(cause);
|
|
243
|
+
return new Error(`[theokit] createACPTool: the agent refused ${method}: ${reason}`, { cause });
|
|
244
|
+
}
|
|
245
|
+
async function step(turn, method, params) {
|
|
246
|
+
turn.signal?.throwIfAborted();
|
|
247
|
+
let timer;
|
|
248
|
+
try {
|
|
249
|
+
return await new Promise((resolve2, reject) => {
|
|
250
|
+
turn.abort = reject;
|
|
251
|
+
timer = setTimeout(() => {
|
|
252
|
+
reject(new AcpRequestTimeoutError(turn.command, method, turn.timeoutMs));
|
|
253
|
+
}, turn.timeoutMs);
|
|
254
|
+
turn.client.request(method, params).then(resolve2).catch((cause) => {
|
|
255
|
+
reject(stepFailure(method, cause));
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
} finally {
|
|
259
|
+
clearTimeout(timer);
|
|
260
|
+
turn.abort = void 0;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function sessionIdOf(created) {
|
|
264
|
+
if (isRecord(created) && typeof created.sessionId === "string") return created.sessionId;
|
|
265
|
+
throw new Error(
|
|
266
|
+
`[theokit] createACPTool: the agent refused session/new: returned no sessionId (got ${JSON.stringify(created)})`
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
function stopReasonOf(result) {
|
|
270
|
+
if (isRecord(result) && typeof result.stopReason === "string") return result.stopReason;
|
|
271
|
+
throw new Error(
|
|
272
|
+
`[theokit] createACPTool: the agent refused session/prompt: returned no stopReason (got ${JSON.stringify(result)})`
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
async function runTurn(turn, cwd, message) {
|
|
276
|
+
const updates = [];
|
|
277
|
+
turn.client.onNotification("session/update", (params) => {
|
|
278
|
+
updates.push(params);
|
|
279
|
+
});
|
|
280
|
+
await step(turn, "initialize", {
|
|
281
|
+
protocolVersion: ACP_PROTOCOL_VERSION,
|
|
282
|
+
clientCapabilities: {}
|
|
283
|
+
});
|
|
284
|
+
const sessionId = sessionIdOf(await step(turn, "session/new", { cwd, mcpServers: [] }));
|
|
285
|
+
const result = await step(turn, "session/prompt", {
|
|
286
|
+
sessionId,
|
|
287
|
+
prompt: [{ type: "text", text: message }]
|
|
288
|
+
});
|
|
289
|
+
const stopReason = stopReasonOf(result);
|
|
290
|
+
const texts = updates.map((params) => agentTextChunk(params, sessionId));
|
|
291
|
+
const reply = texts.filter((text) => text !== void 0).join("");
|
|
292
|
+
if (stopReason !== "end_turn") throw new AcpTurnStoppedError(turn.command, stopReason, reply);
|
|
293
|
+
return reply;
|
|
294
|
+
}
|
|
59
295
|
function createACPTool(config) {
|
|
60
296
|
if (typeof config.onPermissionRequest !== "function") {
|
|
61
297
|
throw new Error(
|
|
62
298
|
"[theokit] createACPTool requires onPermissionRequest (security by default \u2014 no default-allow)"
|
|
63
299
|
);
|
|
64
300
|
}
|
|
301
|
+
const timeoutMs = config.timeoutMs ?? DEFAULT_ACP_TIMEOUT_MS;
|
|
302
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
303
|
+
throw new RangeError(
|
|
304
|
+
`[theokit] createACPTool: timeoutMs must be a positive finite number of milliseconds (got ${String(timeoutMs)})`
|
|
305
|
+
);
|
|
306
|
+
}
|
|
65
307
|
const makeTransport = config.transportFactory ?? defaultTransport;
|
|
66
308
|
return {
|
|
67
309
|
name: config.name,
|
|
@@ -73,12 +315,30 @@ function createACPTool(config) {
|
|
|
73
315
|
},
|
|
74
316
|
required: ["message"]
|
|
75
317
|
},
|
|
76
|
-
handler: async (input) => {
|
|
318
|
+
handler: async (input, ctx) => {
|
|
77
319
|
const message = typeof input.message === "string" ? input.message : "";
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
320
|
+
const signal = ctx?.signal;
|
|
321
|
+
signal?.throwIfAborted();
|
|
322
|
+
const transport = makeTransport(config);
|
|
323
|
+
let onAbort;
|
|
324
|
+
try {
|
|
325
|
+
const turn = {
|
|
326
|
+
client: new AcpClient(transport),
|
|
327
|
+
command: config.command,
|
|
328
|
+
timeoutMs,
|
|
329
|
+
signal
|
|
330
|
+
};
|
|
331
|
+
onAbort = () => turn.abort?.(signal?.reason);
|
|
332
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
333
|
+
turn.client.onRequest(
|
|
334
|
+
"session/request_permission",
|
|
335
|
+
async (params) => toAcpPermissionResponse(params, await config.onPermissionRequest(params))
|
|
336
|
+
);
|
|
337
|
+
return await runTurn(turn, resolve(config.cwd ?? process.cwd()), message);
|
|
338
|
+
} finally {
|
|
339
|
+
if (onAbort !== void 0) signal?.removeEventListener("abort", onAbort);
|
|
340
|
+
await transport.close?.();
|
|
341
|
+
}
|
|
82
342
|
}
|
|
83
343
|
};
|
|
84
344
|
}
|
|
@@ -295,7 +555,11 @@ async function serveMcpStdio(mod, name, appResources, streams) {
|
|
|
295
555
|
|
|
296
556
|
export {
|
|
297
557
|
createWorkflowTool,
|
|
558
|
+
AcpTransportClosedError,
|
|
298
559
|
NodeAcpTransport,
|
|
560
|
+
AcpRequestTimeoutError,
|
|
561
|
+
AcpTurnStoppedError,
|
|
562
|
+
DEFAULT_ACP_TIMEOUT_MS,
|
|
299
563
|
createACPTool,
|
|
300
564
|
createVendorAgentTool,
|
|
301
565
|
CodeModePermissionDeniedError,
|
|
@@ -308,4 +572,4 @@ export {
|
|
|
308
572
|
streamAgentTurnInProcess,
|
|
309
573
|
InProcessApprovalRequiredError
|
|
310
574
|
};
|
|
311
|
-
//# sourceMappingURL=chunk-
|
|
575
|
+
//# sourceMappingURL=chunk-RAUYMVUO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/agent/workflow-tool.ts","../src/server/agent/acp-tool.ts","../src/server/agent/node-acp-transport.ts","../src/server/agent/vendor-agent-tool.ts","../src/server/agent/code-mode.ts","../src/server/agent/channel-webhook.ts","../src/server/agent/index.ts","../src/server/agent/mcp-stdio.ts"],"mappings":"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","names":["resolve","resolve","tool"]}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
serveMatchedAuxRoute,
|
|
13
13
|
serveThroughPluginLifecycle,
|
|
14
14
|
setupSsrDevMiddleware
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-I5PDEWZZ.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveTheoRootDir
|
|
18
18
|
} from "./chunk-FDOOBTXJ.js";
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
mountAgent,
|
|
35
35
|
readAgentPolicy,
|
|
36
36
|
writeWebResponseToServerResponse
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-RQKMY3JW.js";
|
|
38
38
|
import {
|
|
39
39
|
getApprovalRegistry,
|
|
40
40
|
resolveProvider
|
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
} from "./chunk-47MM2JUK.js";
|
|
60
60
|
import {
|
|
61
61
|
scanAgents
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-FU3LEX2I.js";
|
|
63
63
|
import {
|
|
64
64
|
matchRoute,
|
|
65
65
|
scanServerActions,
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
} from "./chunk-4WP7A7RX.js";
|
|
69
69
|
import {
|
|
70
70
|
loadConfig
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-OZB2TKGJ.js";
|
|
72
72
|
import {
|
|
73
73
|
buildServicesProxyConfig
|
|
74
74
|
} from "./chunk-L4V5V2TI.js";
|
|
@@ -1042,7 +1042,7 @@ async function runConfigureServer(server, ctx) {
|
|
|
1042
1042
|
server.watcher.on("unlink", handleRouteChange);
|
|
1043
1043
|
if (ctx.resolvedOpenApi !== void 0) {
|
|
1044
1044
|
const openApiCfg = ctx.resolvedOpenApi;
|
|
1045
|
-
const { reEmitOpenApi } = await import("./dev-emit-
|
|
1045
|
+
const { reEmitOpenApi } = await import("./dev-emit-XAPVJBM4.js");
|
|
1046
1046
|
const openApiServerDir = ctx.serverDir;
|
|
1047
1047
|
const openApiDistDir = resolve3(ctx.projectRoot, ctx.resolvedDistDir);
|
|
1048
1048
|
const isRouteFileForOpenApi = (file) => file.startsWith(openApiServerDir) && /\.(ts|tsx|js|mjs)$/.test(file);
|
|
@@ -2243,7 +2243,7 @@ async function theoPluginAsync(rootOrOptions) {
|
|
|
2243
2243
|
}
|
|
2244
2244
|
const { assetsMapPlugin } = await import("./assets-map-BMQASQHW.js");
|
|
2245
2245
|
const assetsMap = assetsMapPlugin({ appDir: resolve5(projectRoot, options.appDir ?? "app") });
|
|
2246
|
-
const { appTypedClientPlugin } = await import("./app-typed-client-
|
|
2246
|
+
const { appTypedClientPlugin } = await import("./app-typed-client-CHSITA46.js");
|
|
2247
2247
|
const appClientPlugin = appTypedClientPlugin({
|
|
2248
2248
|
cwd: projectRoot,
|
|
2249
2249
|
serverDir: serverDirAbs,
|
|
@@ -2251,13 +2251,13 @@ async function theoPluginAsync(rootOrOptions) {
|
|
|
2251
2251
|
// B-313 — the same name line 226 already passes. This call passed neither it nor the root.
|
|
2252
2252
|
agentsDir: agentsDirName
|
|
2253
2253
|
});
|
|
2254
|
-
const { actionsVirtualModule } = await import("./actions-virtual-module-
|
|
2254
|
+
const { actionsVirtualModule } = await import("./actions-virtual-module-QEI6QPK4.js");
|
|
2255
2255
|
const actionsPlugin = actionsVirtualModule({
|
|
2256
2256
|
serverDir: serverDirAbs,
|
|
2257
2257
|
distDir: resolve5(projectRoot, ".theokit")
|
|
2258
2258
|
});
|
|
2259
2259
|
const { agentsTypedClientPlugin } = await import("./agents-typed-client-D4OA2TXB.js");
|
|
2260
|
-
const { generateManifest } = await import("./internal-api-
|
|
2260
|
+
const { generateManifest } = await import("./internal-api-R7TTYMCY.js");
|
|
2261
2261
|
const agentsClientPlugin = agentsTypedClientPlugin({
|
|
2262
2262
|
projectRoot,
|
|
2263
2263
|
agentsDir: agentsDirName,
|
|
@@ -2274,7 +2274,7 @@ async function theoPluginAsync(rootOrOptions) {
|
|
|
2274
2274
|
const controllerTransformPlugin = controllerSwcTransformPlugin({
|
|
2275
2275
|
serverDir: serverDirAbs
|
|
2276
2276
|
});
|
|
2277
|
-
const { serverOnlyImportBoundary } = await import("./server-boundary-
|
|
2277
|
+
const { serverOnlyImportBoundary } = await import("./server-boundary-ZT6HN7ON.js");
|
|
2278
2278
|
const serverBoundaryPlugin = serverOnlyImportBoundary({
|
|
2279
2279
|
projectRoot,
|
|
2280
2280
|
serverDir: serverDirAbs
|
|
@@ -2451,4 +2451,4 @@ export {
|
|
|
2451
2451
|
buildOptimizeDepsInclude,
|
|
2452
2452
|
theoPlugin
|
|
2453
2453
|
};
|
|
2454
|
-
//# sourceMappingURL=chunk-
|
|
2454
|
+
//# sourceMappingURL=chunk-RKRFJRJ3.js.map
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
} from "./chunk-Z7CJHDLS.js";
|
|
34
34
|
import {
|
|
35
35
|
importUserModule
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-O5JZ6ROY.js";
|
|
37
37
|
import {
|
|
38
38
|
TheoError,
|
|
39
39
|
serverErrorToEnvelope
|
|
@@ -2784,4 +2784,4 @@ export {
|
|
|
2784
2784
|
CsrfReadinessStore,
|
|
2785
2785
|
applySecurityHeaders
|
|
2786
2786
|
};
|
|
2787
|
-
//# sourceMappingURL=chunk-
|
|
2787
|
+
//# sourceMappingURL=chunk-RQKMY3JW.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-UMNXCU3K.js";
|
|
7
7
|
import {
|
|
8
8
|
importUserModule
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AHYOVVJ7.js";
|
|
10
10
|
import {
|
|
11
11
|
walkSourceFiles
|
|
12
12
|
} from "./chunk-SOYOYGWY.js";
|
|
@@ -47,11 +47,13 @@ function validateCronSchedule(schedule) {
|
|
|
47
47
|
|
|
48
48
|
// src/server/cron/define-cron.ts
|
|
49
49
|
var NAME_RE = /^[a-z0-9][a-z0-9-]{0,63}$/;
|
|
50
|
+
var CRON_NAME_RULE = "Must be 1-64 chars, lowercase alphanumeric + hyphen, starting with [a-z0-9].";
|
|
51
|
+
function isValidCronName(name) {
|
|
52
|
+
return typeof name === "string" && NAME_RE.test(name);
|
|
53
|
+
}
|
|
50
54
|
function validateName(name) {
|
|
51
|
-
if (
|
|
52
|
-
throw new Error(
|
|
53
|
-
`defineCron: invalid name "${name}". Must be 1-64 chars, lowercase alphanumeric + hyphen, starting with [a-z0-9].`
|
|
54
|
-
);
|
|
55
|
+
if (!isValidCronName(name)) {
|
|
56
|
+
throw new Error(`defineCron: invalid name "${name}". ${CRON_NAME_RULE}`);
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
function defineCron(name, options) {
|
|
@@ -309,7 +311,7 @@ function createCronScheduler(definitions) {
|
|
|
309
311
|
|
|
310
312
|
// src/server/cron/cron-scan.ts
|
|
311
313
|
import { existsSync as existsSync2 } from "node:fs";
|
|
312
|
-
import { basename } from "node:path";
|
|
314
|
+
import { basename, resolve } from "node:path";
|
|
313
315
|
var DuplicateCronNameError = class extends Error {
|
|
314
316
|
constructor(cronName, filePaths) {
|
|
315
317
|
super(
|
|
@@ -329,19 +331,24 @@ function isCronDefinition(value) {
|
|
|
329
331
|
const def = value;
|
|
330
332
|
return typeof def.name === "string" && typeof def.schedule === "string" && typeof def.handler === "function" && (def.concurrency === "forbid" || def.concurrency === "allow");
|
|
331
333
|
}
|
|
332
|
-
|
|
333
|
-
return
|
|
334
|
+
function isDiscoverableCronFile(fileName) {
|
|
335
|
+
return !fileName.startsWith("_") && !fileName.startsWith(".");
|
|
334
336
|
}
|
|
335
|
-
|
|
337
|
+
function listCronFiles(dirs) {
|
|
336
338
|
const filePaths = [];
|
|
337
339
|
for (const dir of dirs) {
|
|
338
340
|
if (!existsSync2(dir)) continue;
|
|
339
341
|
walkSourceFiles(dir, { extensions: CRON_EXTENSIONS }, (p) => {
|
|
340
|
-
|
|
341
|
-
if (base.startsWith("_") || base.startsWith(".")) return;
|
|
342
|
-
filePaths.push(p);
|
|
342
|
+
if (isDiscoverableCronFile(basename(p))) filePaths.push(p);
|
|
343
343
|
});
|
|
344
344
|
}
|
|
345
|
+
return filePaths;
|
|
346
|
+
}
|
|
347
|
+
async function scanCrons(cronsDir) {
|
|
348
|
+
return scanCronDirs([cronsDir]);
|
|
349
|
+
}
|
|
350
|
+
async function scanCronDirs(dirs) {
|
|
351
|
+
const filePaths = listCronFiles(dirs);
|
|
345
352
|
const nodes = [];
|
|
346
353
|
for (const filePath of filePaths) {
|
|
347
354
|
let mod;
|
|
@@ -395,4 +402,4 @@ export {
|
|
|
395
402
|
scanCrons,
|
|
396
403
|
scanCronDirs
|
|
397
404
|
};
|
|
398
|
-
//# sourceMappingURL=chunk-
|
|
405
|
+
//# sourceMappingURL=chunk-RY6D4EXL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/cron/cron-validate.ts","../src/server/cron/define-cron.ts","../src/server/cron/cron-manifest.ts","../src/server/cron/adapter-translators.ts","../src/server/cron/cron-runtime-node.ts","../src/server/cron/cron-scan.ts"],"mappings":"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","names":["CronExpressionParser","CronExpressionParser","existsSync","existsSync"]}
|
package/dist/cli/index.js
CHANGED
|
@@ -15,12 +15,12 @@ function cliVersion() {
|
|
|
15
15
|
// src/cli/index.ts
|
|
16
16
|
var cli = cac("theokit");
|
|
17
17
|
cli.command("dev", "Start development server").option("--port <port>", "Port number").action(async (options) => {
|
|
18
|
-
const { devCommand } = await import("../dev-
|
|
18
|
+
const { devCommand } = await import("../dev-J2XZIENF.js");
|
|
19
19
|
await devCommand({ port: options.port ? Number(options.port) : void 0 });
|
|
20
20
|
});
|
|
21
21
|
cli.command("build", "Build for production").option("--target <target>", "Deploy target (node, vercel, cloudflare)").action(async (options) => {
|
|
22
22
|
try {
|
|
23
|
-
const { buildCommand } = await import("../build-
|
|
23
|
+
const { buildCommand } = await import("../build-QIO4VAW2.js");
|
|
24
24
|
await buildCommand({ target: options.target });
|
|
25
25
|
} catch (err) {
|
|
26
26
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -32,7 +32,7 @@ cli.command("build", "Build for production").option("--target <target>", "Deploy
|
|
|
32
32
|
});
|
|
33
33
|
cli.command("start", "Start production server").option("--port <port>", "Port number").action(async (options) => {
|
|
34
34
|
try {
|
|
35
|
-
const { startCommand } = await import("../start-
|
|
35
|
+
const { startCommand } = await import("../start-L5TGWGLU.js");
|
|
36
36
|
await startCommand({ port: options.port ? Number(options.port) : void 0 });
|
|
37
37
|
} catch (err) {
|
|
38
38
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -44,7 +44,7 @@ cli.command("start", "Start production server").option("--port <port>", "Port nu
|
|
|
44
44
|
});
|
|
45
45
|
cli.command("preview", "Build for production, then serve it \u2014 one step (B-030)").option("--port <port>", "Port number").option("--target <target>", "Deploy target (node, vercel, cloudflare)").action(async (options) => {
|
|
46
46
|
try {
|
|
47
|
-
const { previewCommand } = await import("../preview-
|
|
47
|
+
const { previewCommand } = await import("../preview-ML4CFUD6.js");
|
|
48
48
|
await previewCommand({
|
|
49
49
|
port: options.port ? Number(options.port) : void 0,
|
|
50
50
|
target: options.target
|
|
@@ -62,7 +62,7 @@ cli.command(
|
|
|
62
62
|
"Scaffold a route, action, page, ws, controller, agent, toolbox, workflow, eval, sandbox, schedule, memory, or resource (resource accepts field:type args)"
|
|
63
63
|
).action(async (type, name, fields) => {
|
|
64
64
|
try {
|
|
65
|
-
const { generateCommand } = await import("../generate-
|
|
65
|
+
const { generateCommand } = await import("../generate-RW3NO3NR.js");
|
|
66
66
|
await generateCommand(type, name, fields.length > 0 ? fields : void 0);
|
|
67
67
|
} catch (err) {
|
|
68
68
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -77,7 +77,7 @@ cli.command(
|
|
|
77
77
|
"Run an agent in the terminal (stream + tool calls + approval)"
|
|
78
78
|
).action(async (name, message) => {
|
|
79
79
|
try {
|
|
80
|
-
const { agentCommand } = await import("../agent-
|
|
80
|
+
const { agentCommand } = await import("../agent-IIF6JUWX.js");
|
|
81
81
|
const { sawError } = await agentCommand(name, message);
|
|
82
82
|
if (sawError) process.exit(1);
|
|
83
83
|
} catch (err) {
|
|
@@ -108,7 +108,7 @@ cli.command("agent sessions gc", "Collect old transcripts for this project (dry
|
|
|
108
108
|
});
|
|
109
109
|
cli.command("mcp <agent>", "Serve an agent as an MCP server over stdio (for desktop MCP clients)").action(async (agent) => {
|
|
110
110
|
try {
|
|
111
|
-
const { mcpCommand } = await import("../mcp-
|
|
111
|
+
const { mcpCommand } = await import("../mcp-MWTG3LRA.js");
|
|
112
112
|
await mcpCommand(agent);
|
|
113
113
|
} catch (err) {
|
|
114
114
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -120,7 +120,7 @@ cli.command("mcp <agent>", "Serve an agent as an MCP server over stdio (for desk
|
|
|
120
120
|
});
|
|
121
121
|
cli.command("routes", "List all routes, actions, and WebSocket endpoints").action(async () => {
|
|
122
122
|
try {
|
|
123
|
-
const { routesCommand } = await import("../routes-
|
|
123
|
+
const { routesCommand } = await import("../routes-SMNSI2ZX.js");
|
|
124
124
|
await routesCommand();
|
|
125
125
|
} catch (err) {
|
|
126
126
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -161,7 +161,7 @@ cli.command("add <package>", "Install a known TheoKit adapter or plugin (whiteli
|
|
|
161
161
|
await addCommand(pkg);
|
|
162
162
|
});
|
|
163
163
|
cli.command("info", "Print environment info (runtime, config, routes)").action(async () => {
|
|
164
|
-
const { infoCommand } = await import("../info-
|
|
164
|
+
const { infoCommand } = await import("../info-6NAUW5XY.js");
|
|
165
165
|
await infoCommand();
|
|
166
166
|
});
|
|
167
167
|
cli.command("doctor", "Report the RESOLVED state of this installation (never prints a secret)").action(async () => {
|
|
@@ -173,7 +173,7 @@ cli.command(
|
|
|
173
173
|
"Generate <distDir>/openapi.json from route schemas (opt-in via config.openapi)"
|
|
174
174
|
).option("--dry-run", "Print the document to stdout without writing to disk (EC-3)").action(async (options) => {
|
|
175
175
|
try {
|
|
176
|
-
const { openapiCommand } = await import("../openapi-
|
|
176
|
+
const { openapiCommand } = await import("../openapi-RVFUXXCR.js");
|
|
177
177
|
await openapiCommand({ dryRun: Boolean(options.dryRun) });
|
|
178
178
|
} catch (err) {
|
|
179
179
|
const msg = err instanceof Error ? err.message : String(err);
|