@alpacakit/agents 0.1.0-beta.20 → 0.1.0-beta.21
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 +60 -0
- package/dist/agents/claude.d.ts.map +1 -1
- package/dist/agents/claude.js +3 -0
- package/dist/agents/codex.d.ts.map +1 -1
- package/dist/agents/codex.js +4 -0
- package/dist/agents/openai-compatible/config.d.ts.map +1 -1
- package/dist/agents/openai-compatible/config.js +5 -0
- package/dist/agents/openai-compatible/fetch-engine.d.ts.map +1 -1
- package/dist/agents/openai-compatible/fetch-engine.js +6 -0
- package/dist/agents/openai-compatible/pi/module.d.ts.map +1 -1
- package/dist/agents/openai-compatible/pi/module.js +1 -0
- package/dist/agents/openai-compatible/pi/sandbox.js +2 -0
- package/dist/agents/openai-compatible/response.js +1 -0
- package/dist/auth/profile-store.d.ts.map +1 -1
- package/dist/auth/profile-store.js +1 -0
- package/dist/auth/secrets.d.ts.map +1 -1
- package/dist/auth/secrets.js +2 -0
- package/dist/codex/app-server.js +6 -0
- package/dist/core/controlled-process.d.ts +98 -0
- package/dist/core/controlled-process.d.ts.map +1 -0
- package/dist/core/controlled-process.js +29 -0
- package/dist/core/error.d.ts +25 -0
- package/dist/core/error.d.ts.map +1 -1
- package/dist/core/error.js +32 -0
- package/dist/core/node-controlled-exec.d.ts +3 -0
- package/dist/core/node-controlled-exec.d.ts.map +1 -0
- package/dist/core/node-controlled-exec.js +32 -0
- package/dist/core/node-ports.d.ts +1 -0
- package/dist/core/node-ports.d.ts.map +1 -1
- package/dist/core/node-ports.js +9 -1
- package/dist/core/ports.d.ts +5 -0
- package/dist/core/ports.d.ts.map +1 -1
- package/dist/fleet/fleet.d.ts.map +1 -1
- package/dist/fleet/fleet.js +5 -2
- package/dist/fleet/store.d.ts.map +1 -1
- package/dist/fleet/store.js +3 -0
- package/dist/host/github-dir.d.ts.map +1 -1
- package/dist/host/github-dir.js +5 -0
- package/dist/host/mcp-list.d.ts.map +1 -1
- package/dist/host/mcp-list.js +1 -0
- package/dist/host/run-command.d.ts.map +1 -1
- package/dist/host/run-command.js +2 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/internal/controlled-process/authentication.d.ts +13 -0
- package/dist/internal/controlled-process/authentication.d.ts.map +1 -0
- package/dist/internal/controlled-process/authentication.js +112 -0
- package/dist/internal/controlled-process/child-fd.d.ts +5 -0
- package/dist/internal/controlled-process/child-fd.d.ts.map +1 -0
- package/dist/internal/controlled-process/child-fd.js +47 -0
- package/dist/internal/controlled-process/framed-transport.d.ts +6 -0
- package/dist/internal/controlled-process/framed-transport.d.ts.map +1 -0
- package/dist/internal/controlled-process/framed-transport.js +117 -0
- package/dist/internal/controlled-process/host-controller.d.ts +23 -0
- package/dist/internal/controlled-process/host-controller.d.ts.map +1 -0
- package/dist/internal/controlled-process/host-controller.js +908 -0
- package/dist/internal/controlled-process/lifecycle.d.ts +5 -0
- package/dist/internal/controlled-process/lifecycle.d.ts.map +1 -0
- package/dist/internal/controlled-process/lifecycle.js +22 -0
- package/dist/internal/controlled-process/model.d.ts +99 -0
- package/dist/internal/controlled-process/model.d.ts.map +1 -0
- package/dist/internal/controlled-process/model.js +1 -0
- package/dist/internal/controlled-process/record-store.d.ts +17 -0
- package/dist/internal/controlled-process/record-store.d.ts.map +1 -0
- package/dist/internal/controlled-process/record-store.js +170 -0
- package/dist/internal/controlled-process/record.d.ts +12 -0
- package/dist/internal/controlled-process/record.d.ts.map +1 -0
- package/dist/internal/controlled-process/record.js +87 -0
- package/dist/internal/controlled-process/schema.d.ts +133 -0
- package/dist/internal/controlled-process/schema.d.ts.map +1 -0
- package/dist/internal/controlled-process/schema.js +99 -0
- package/dist/internal/controlled-process/shim-entry.d.ts +2 -0
- package/dist/internal/controlled-process/shim-entry.d.ts.map +1 -0
- package/dist/internal/controlled-process/shim-entry.js +2 -0
- package/dist/internal/controlled-process/shim-runtime.d.ts +2 -0
- package/dist/internal/controlled-process/shim-runtime.d.ts.map +1 -0
- package/dist/internal/controlled-process/shim-runtime.js +57 -0
- package/dist/internal/controlled-process/supervisor-coordinator.d.ts +67 -0
- package/dist/internal/controlled-process/supervisor-coordinator.d.ts.map +1 -0
- package/dist/internal/controlled-process/supervisor-coordinator.js +325 -0
- package/dist/internal/controlled-process/supervisor-entry.d.ts +2 -0
- package/dist/internal/controlled-process/supervisor-entry.d.ts.map +1 -0
- package/dist/internal/controlled-process/supervisor-entry.js +2 -0
- package/dist/internal/controlled-process/supervisor-model.d.ts +92 -0
- package/dist/internal/controlled-process/supervisor-model.d.ts.map +1 -0
- package/dist/internal/controlled-process/supervisor-model.js +1 -0
- package/dist/internal/controlled-process/supervisor-platform.d.ts +16 -0
- package/dist/internal/controlled-process/supervisor-platform.d.ts.map +1 -0
- package/dist/internal/controlled-process/supervisor-platform.js +104 -0
- package/dist/internal/controlled-process/supervisor-runtime.d.ts +11 -0
- package/dist/internal/controlled-process/supervisor-runtime.d.ts.map +1 -0
- package/dist/internal/controlled-process/supervisor-runtime.js +773 -0
- package/dist/internal/controlled-process/supervisor-schema.d.ts +100 -0
- package/dist/internal/controlled-process/supervisor-schema.d.ts.map +1 -0
- package/dist/internal/controlled-process/supervisor-schema.js +73 -0
- package/dist/internal/controlled-process/supervisor-transport.d.ts +46 -0
- package/dist/internal/controlled-process/supervisor-transport.d.ts.map +1 -0
- package/dist/internal/controlled-process/supervisor-transport.js +368 -0
- package/dist/internal/controlled-process/supervisor-values.d.ts +39 -0
- package/dist/internal/controlled-process/supervisor-values.d.ts.map +1 -0
- package/dist/internal/controlled-process/supervisor-values.js +38 -0
- package/dist/internal/controlled-process/token.d.ts +4 -0
- package/dist/internal/controlled-process/token.d.ts.map +1 -0
- package/dist/internal/controlled-process/token.js +38 -0
- package/dist/internal/controlled-process/values.d.ts +39 -0
- package/dist/internal/controlled-process/values.d.ts.map +1 -0
- package/dist/internal/controlled-process/values.js +38 -0
- package/dist/kernel/cli-agent.d.ts.map +1 -1
- package/dist/kernel/cli-agent.js +330 -34
- package/dist/kernel/cli-login.d.ts.map +1 -1
- package/dist/kernel/cli-login.js +5 -0
- package/dist/kernel/env-template.js +1 -0
- package/dist/kernel/facets.d.ts.map +1 -1
- package/dist/kernel/facets.js +1 -0
- package/dist/kernel/keyed.d.ts.map +1 -1
- package/dist/kernel/keyed.js +1 -0
- package/dist/kernel/login.js +2 -0
- package/dist/kernel/options.d.ts +14 -0
- package/dist/kernel/options.d.ts.map +1 -1
- package/dist/kernel/options.js +3 -0
- package/dist/kernel/process-lifecycle-failure.d.ts +5 -0
- package/dist/kernel/process-lifecycle-failure.d.ts.map +1 -0
- package/dist/kernel/process-lifecycle-failure.js +5 -0
- package/dist/kernel/run.d.ts.map +1 -1
- package/dist/kernel/run.js +11 -0
- package/dist/kernel/runtime.d.ts.map +1 -1
- package/dist/kernel/runtime.js +2 -0
- package/dist/keyring/resolver.d.ts.map +1 -1
- package/dist/keyring/resolver.js +2 -0
- package/dist/structured/run-structured.js +1 -0
- package/dist/testing/fake-controlled-exec.d.ts +21 -0
- package/dist/testing/fake-controlled-exec.d.ts.map +1 -0
- package/dist/testing/fake-controlled-exec.js +172 -0
- package/dist/testing/fake-exec.d.ts.map +1 -1
- package/dist/testing/fake-exec.js +64 -54
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { readJsonRecord } from "../../core/json.js";
|
|
2
|
+
const FRAME_HEADER_BYTES = 4;
|
|
3
|
+
const MAX_FRAME_BYTES = 64 * 1024;
|
|
4
|
+
const EMPTY_BUFFER = Buffer.alloc(0);
|
|
5
|
+
export async function writeFramedRecord(writable, record) {
|
|
6
|
+
const payload = Buffer.from(JSON.stringify(record), "utf8");
|
|
7
|
+
if (payload.byteLength === 0 || payload.byteLength > MAX_FRAME_BYTES) {
|
|
8
|
+
throw new Error("Framed record payload length is invalid.");
|
|
9
|
+
}
|
|
10
|
+
const header = Buffer.allocUnsafe(FRAME_HEADER_BYTES);
|
|
11
|
+
header.writeUInt32BE(payload.byteLength);
|
|
12
|
+
await writeWithSettlement(writable, Buffer.concat([header, payload]));
|
|
13
|
+
}
|
|
14
|
+
function writeWithSettlement(writable, frame) {
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
16
|
+
let settled = false;
|
|
17
|
+
let writeReturned = false;
|
|
18
|
+
let drainRequired = false;
|
|
19
|
+
let drainComplete = false;
|
|
20
|
+
let callbackComplete = false;
|
|
21
|
+
let callbackFailure = null;
|
|
22
|
+
const cleanup = () => {
|
|
23
|
+
writable.off("drain", drained);
|
|
24
|
+
writable.off("error", failed);
|
|
25
|
+
writable.off("close", closed);
|
|
26
|
+
};
|
|
27
|
+
const complete = () => {
|
|
28
|
+
if (!settled &&
|
|
29
|
+
writeReturned &&
|
|
30
|
+
callbackComplete &&
|
|
31
|
+
(!drainRequired || drainComplete)) {
|
|
32
|
+
settled = true;
|
|
33
|
+
cleanup();
|
|
34
|
+
resolve();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const settleFailure = (error) => {
|
|
38
|
+
if (!settled) {
|
|
39
|
+
settled = true;
|
|
40
|
+
cleanup();
|
|
41
|
+
reject(error);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const drained = () => {
|
|
45
|
+
drainComplete = true;
|
|
46
|
+
complete();
|
|
47
|
+
};
|
|
48
|
+
const failed = (error) => {
|
|
49
|
+
settleFailure(callbackFailure ?? error);
|
|
50
|
+
};
|
|
51
|
+
const closed = () => {
|
|
52
|
+
settleFailure(callbackFailure ??
|
|
53
|
+
new Error("Framed transport closed before write settlement."));
|
|
54
|
+
};
|
|
55
|
+
writable.once("drain", drained);
|
|
56
|
+
writable.once("error", failed);
|
|
57
|
+
writable.once("close", closed);
|
|
58
|
+
if (writable.destroyed || writable.closed || writable.writableEnded) {
|
|
59
|
+
closed();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
drainRequired = !writable.write(frame, (error) => {
|
|
64
|
+
if (error !== undefined && error !== null) {
|
|
65
|
+
callbackFailure = error;
|
|
66
|
+
setImmediate(() => settleFailure(error));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
callbackComplete = true;
|
|
70
|
+
complete();
|
|
71
|
+
});
|
|
72
|
+
writeReturned = true;
|
|
73
|
+
complete();
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
settleFailure(error instanceof Error
|
|
77
|
+
? error
|
|
78
|
+
: new Error("Framed transport write failed."));
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
export async function* readFramedRecords(readable) {
|
|
83
|
+
let buffered = EMPTY_BUFFER;
|
|
84
|
+
for await (const rawChunk of readable) {
|
|
85
|
+
const chunk = Buffer.isBuffer(rawChunk)
|
|
86
|
+
? rawChunk
|
|
87
|
+
: Buffer.from(String(rawChunk), "utf8");
|
|
88
|
+
buffered = Buffer.concat([buffered, chunk]);
|
|
89
|
+
while (buffered.byteLength >= FRAME_HEADER_BYTES) {
|
|
90
|
+
const payloadLength = buffered.readUInt32BE(0);
|
|
91
|
+
if (payloadLength === 0 || payloadLength > MAX_FRAME_BYTES) {
|
|
92
|
+
throw new Error("Framed record payload length is invalid.");
|
|
93
|
+
}
|
|
94
|
+
const frameLength = FRAME_HEADER_BYTES + payloadLength;
|
|
95
|
+
if (buffered.byteLength < frameLength) {
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
const payload = buffered.subarray(FRAME_HEADER_BYTES, frameLength);
|
|
99
|
+
buffered = buffered.subarray(frameLength);
|
|
100
|
+
const record = readJsonRecord(payload.toString("utf8"));
|
|
101
|
+
if (record === null) {
|
|
102
|
+
throw new Error("Framed payload must be one JSON object.");
|
|
103
|
+
}
|
|
104
|
+
yield record;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (buffered.byteLength !== 0) {
|
|
108
|
+
throw new Error("Framed transport ended with a partial frame.");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
export async function readRequiredFrame(frames) {
|
|
112
|
+
const next = await frames.next();
|
|
113
|
+
if (next.done) {
|
|
114
|
+
throw new Error("Framed transport ended before the required frame.");
|
|
115
|
+
}
|
|
116
|
+
return next.value;
|
|
117
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ChildProcessCompletion, ChildProcessIdentity, ChildProcessLifecycle, ChildProcessTerminationResult } from "../../core/controlled-process.js";
|
|
2
|
+
import type { ControlledProcessOutput, SupervisorTimingOptions, SupervisorWorkerOptions } from "./supervisor-model.js";
|
|
3
|
+
export type ControlledProcessLaunchInput = {
|
|
4
|
+
readonly supervisorEntryPath: string;
|
|
5
|
+
readonly shimEntryPath: string;
|
|
6
|
+
readonly runtimeDirectory: string;
|
|
7
|
+
readonly worker: SupervisorWorkerOptions;
|
|
8
|
+
readonly timing: SupervisorTimingOptions;
|
|
9
|
+
readonly lifecycle: ChildProcessLifecycle;
|
|
10
|
+
};
|
|
11
|
+
export interface ControlledProcessHostHandle {
|
|
12
|
+
readonly identity: ChildProcessIdentity;
|
|
13
|
+
readonly chunks: AsyncIterable<ControlledProcessOutput>;
|
|
14
|
+
readonly completion: Promise<ChildProcessCompletion>;
|
|
15
|
+
requestTermination(): Promise<ChildProcessCompletion>;
|
|
16
|
+
}
|
|
17
|
+
export declare function launchControlledProcess(input: ControlledProcessLaunchInput): Promise<ControlledProcessHostHandle>;
|
|
18
|
+
export declare function recoverControlledProcess(input: {
|
|
19
|
+
readonly identity: ChildProcessIdentity;
|
|
20
|
+
readonly runtimeDirectory: string;
|
|
21
|
+
readonly lifecycle: Pick<ChildProcessLifecycle, "afterTermination">;
|
|
22
|
+
}): Promise<ChildProcessTerminationResult>;
|
|
23
|
+
//# sourceMappingURL=host-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-controller.d.ts","sourceRoot":"","sources":["../../../src/internal/controlled-process/host-controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EAErB,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AA+B1C,OAAO,KAAK,EACV,uBAAuB,EAEvB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAoC/B,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrD,kBAAkB,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACvD;AAqED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,2BAA2B,CAAC,CA2GtC;AAymBD,wBAAsB,wBAAwB,CAAC,KAAK,EAAE;IACpD,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;CACrE,GAAG,OAAO,CAAC,6BAA6B,CAAC,CA4BzC"}
|