pi-ptc-subagents 0.1.0 → 0.1.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/CHANGELOG.md +61 -0
- package/dist/index.d.ts +187 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +672 -669
- package/dist/index.js.map +1 -1
- package/dist/protocol-DUnAP1Ro.js +117 -0
- package/dist/protocol-DUnAP1Ro.js.map +1 -0
- package/dist/worker.d.ts +1 -0
- package/dist/worker.js +759 -0
- package/dist/worker.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { MessagePort } from "node:worker_threads";
|
|
2
|
+
const HOST_FRAME_KIND = Object.freeze({
|
|
3
|
+
connect: "connect",
|
|
4
|
+
init: "init",
|
|
5
|
+
callResult: "call-result",
|
|
6
|
+
cancel: "cancel"
|
|
7
|
+
});
|
|
8
|
+
const WORKER_FRAME_KIND = Object.freeze({
|
|
9
|
+
ready: "ready",
|
|
10
|
+
call: "call",
|
|
11
|
+
log: "log",
|
|
12
|
+
narration: "narration",
|
|
13
|
+
phase: "phase",
|
|
14
|
+
result: "result",
|
|
15
|
+
error: "error"
|
|
16
|
+
});
|
|
17
|
+
const PTC_LOG_LEVEL = Object.freeze({
|
|
18
|
+
log: "log",
|
|
19
|
+
info: "info",
|
|
20
|
+
warn: "warn",
|
|
21
|
+
error: "error",
|
|
22
|
+
debug: "debug"
|
|
23
|
+
});
|
|
24
|
+
const PTC_ERROR_KIND = Object.freeze({
|
|
25
|
+
/** Program parse error or thrown exception (includes `ReferenceError` from a helper that does not exist on this surface). */
|
|
26
|
+
exception: "exception",
|
|
27
|
+
/** Elapsed deadline expiry. */
|
|
28
|
+
timeout: "timeout",
|
|
29
|
+
/** Caller cancellation. */
|
|
30
|
+
abort: "abort",
|
|
31
|
+
/** Malformed or excessive control traffic. */
|
|
32
|
+
protocol: "protocol",
|
|
33
|
+
/** Early worker exit or a worker-level crash. */
|
|
34
|
+
workerExit: "worker-exit",
|
|
35
|
+
/** Completion value could not be materialized as lossless JSON. */
|
|
36
|
+
invalidOutput: "invalid-output",
|
|
37
|
+
/** Oversized outer result; collected logs are retained. */
|
|
38
|
+
outputLimit: "output-limit"
|
|
39
|
+
});
|
|
40
|
+
function isRecord(value) {
|
|
41
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
42
|
+
}
|
|
43
|
+
function isPtcLogLevel(value) {
|
|
44
|
+
return typeof value === "string" && Object.values(PTC_LOG_LEVEL).some((level) => level === value);
|
|
45
|
+
}
|
|
46
|
+
function isPtcErrorKind(value) {
|
|
47
|
+
return typeof value === "string" && Object.values(PTC_ERROR_KIND).some((kind) => kind === value);
|
|
48
|
+
}
|
|
49
|
+
function isPtcCancelReason(value) {
|
|
50
|
+
return value === "timeout" || value === "abort";
|
|
51
|
+
}
|
|
52
|
+
function isPtcConnectFrame(value) {
|
|
53
|
+
return isRecord(value) && value.kind === HOST_FRAME_KIND.connect && value.port instanceof MessagePort;
|
|
54
|
+
}
|
|
55
|
+
function isPtcInitFrame(value) {
|
|
56
|
+
return isRecord(value) && value.kind === HOST_FRAME_KIND.init && typeof value.runId === "string" && (value.surface === "run_code" || value.surface === "workflow") && typeof value.code === "string" && Array.isArray(value.bindings) && value.bindings.every((name) => typeof name === "string") && Array.isArray(value.bindingCandidates) && value.bindingCandidates.every((name) => typeof name === "string") && typeof value.maxItemsPerCall === "number" && Number.isFinite(value.maxItemsPerCall) && typeof value.maxPendingCalls === "number" && Number.isFinite(value.maxPendingCalls);
|
|
57
|
+
}
|
|
58
|
+
function isPtcCallResultFrame(value) {
|
|
59
|
+
if (!isRecord(value) || value.kind !== HOST_FRAME_KIND.callResult) return false;
|
|
60
|
+
if (!Number.isInteger(value.callId) || typeof value.tool !== "string") return false;
|
|
61
|
+
if (value.ok === true) return "value" in value;
|
|
62
|
+
return value.ok === false && typeof value.message === "string";
|
|
63
|
+
}
|
|
64
|
+
function isPtcCancelFrame(value) {
|
|
65
|
+
return isRecord(value) && value.kind === HOST_FRAME_KIND.cancel && isPtcCancelReason(value.reason);
|
|
66
|
+
}
|
|
67
|
+
function isPtcHostFrame(value) {
|
|
68
|
+
return isPtcConnectFrame(value) || isPtcInitFrame(value) || isPtcCallResultFrame(value) || isPtcCancelFrame(value);
|
|
69
|
+
}
|
|
70
|
+
function isPtcReadyFrame(value) {
|
|
71
|
+
return isRecord(value) && value.kind === WORKER_FRAME_KIND.ready;
|
|
72
|
+
}
|
|
73
|
+
function isPtcCallFrame(value) {
|
|
74
|
+
return isRecord(value) && value.kind === WORKER_FRAME_KIND.call && Number.isInteger(value.callId) && typeof value.tool === "string" && value.tool.length > 0 && "args" in value;
|
|
75
|
+
}
|
|
76
|
+
function isPtcLogFrame(value) {
|
|
77
|
+
return isRecord(value) && value.kind === WORKER_FRAME_KIND.log && isPtcLogLevel(value.level) && typeof value.text === "string";
|
|
78
|
+
}
|
|
79
|
+
function isPtcNarrationFrame(value) {
|
|
80
|
+
return isRecord(value) && value.kind === WORKER_FRAME_KIND.narration && typeof value.message === "string";
|
|
81
|
+
}
|
|
82
|
+
function isPtcPhaseFrame(value) {
|
|
83
|
+
return isRecord(value) && value.kind === WORKER_FRAME_KIND.phase && typeof value.title === "string";
|
|
84
|
+
}
|
|
85
|
+
function isPtcResultFrame(value) {
|
|
86
|
+
return isRecord(value) && value.kind === WORKER_FRAME_KIND.result;
|
|
87
|
+
}
|
|
88
|
+
function isPtcErrorFrame(value) {
|
|
89
|
+
if (!isRecord(value) || value.kind !== WORKER_FRAME_KIND.error) return false;
|
|
90
|
+
const error = value.error;
|
|
91
|
+
return isRecord(error) && isPtcErrorKind(error.kind) && typeof error.message === "string" && (error.stack === void 0 || typeof error.stack === "string");
|
|
92
|
+
}
|
|
93
|
+
function isPtcWorkerFrame(value) {
|
|
94
|
+
return isPtcReadyFrame(value) || isPtcCallFrame(value) || isPtcLogFrame(value) || isPtcNarrationFrame(value) || isPtcPhaseFrame(value) || isPtcResultFrame(value) || isPtcErrorFrame(value);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* One-phrase description of an arbitrary value for error messages. Shared by the
|
|
98
|
+
* worker-side helpers (`log(message) expects a string, received …`) and the host-side
|
|
99
|
+
* workflow-args validator, so both ends word their rejection reasons identically.
|
|
100
|
+
*/
|
|
101
|
+
function describeValue(value) {
|
|
102
|
+
if (value === null) return "null";
|
|
103
|
+
if (Array.isArray(value)) return "an array";
|
|
104
|
+
return `a ${typeof value}`;
|
|
105
|
+
}
|
|
106
|
+
function workerProtocolSpec() {
|
|
107
|
+
return {
|
|
108
|
+
hostFrame: HOST_FRAME_KIND,
|
|
109
|
+
workerFrame: WORKER_FRAME_KIND,
|
|
110
|
+
logLevel: PTC_LOG_LEVEL,
|
|
111
|
+
errorKind: PTC_ERROR_KIND
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
//#endregion
|
|
115
|
+
export { describeValue as a, workerProtocolSpec as c, WORKER_FRAME_KIND as i, PTC_ERROR_KIND as n, isPtcHostFrame as o, PTC_LOG_LEVEL as r, isPtcWorkerFrame as s, HOST_FRAME_KIND as t };
|
|
116
|
+
|
|
117
|
+
//# sourceMappingURL=protocol-DUnAP1Ro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-DUnAP1Ro.js","names":[],"sources":["../src/runtime/protocol.ts"],"sourcesContent":["/**\n * The PTC wire protocol: every frame that crosses the host↔worker boundary, plus a\n * runtime guard for every arm of both closed unions.\n *\n * Shape rules:\n * - Frame kinds, log levels and error kinds live here once; the worker receives the\n * same tables as plain data at spawn (`workerProtocolSpec`), so the two ends cannot\n * drift on names.\n * - Guards validate *shape only*. They never walk payloads: a `log` frame may carry a\n * 64 MiB string and a `call` frame arbitrary tool arguments, so byte accounting is\n * the dispatcher's job (see `serializedBytes` usage there).\n * - Error kinds are R1 §3's taxonomy minus `sandbox-unavailable` (ADR-0007 ships no OS\n * sandbox) and minus any `agent`-related kind (there is no `agent()` helper).\n *\n * This module also carries the small message-formatting helpers both ends share\n * (`describeValue`), since both bundles (host `dist/index.js`, worker `dist/worker.js`)\n * import it statically and the wire strings must stay aligned anyway.\n */\nimport { MessagePort } from \"node:worker_threads\";\nimport type { PtcSurface } from \"./limits.ts\";\n\n/** host → worker */\nconst HOST_FRAME_KIND_VALUES = {\n connect: \"connect\",\n init: \"init\",\n callResult: \"call-result\",\n cancel: \"cancel\",\n} as const;\nexport const HOST_FRAME_KIND: typeof HOST_FRAME_KIND_VALUES = Object.freeze(HOST_FRAME_KIND_VALUES);\n\n/** worker → host */\nconst WORKER_FRAME_KIND_VALUES = {\n ready: \"ready\",\n call: \"call\",\n log: \"log\",\n narration: \"narration\",\n phase: \"phase\",\n result: \"result\",\n error: \"error\",\n} as const;\nexport const WORKER_FRAME_KIND: typeof WORKER_FRAME_KIND_VALUES =\n Object.freeze(WORKER_FRAME_KIND_VALUES);\n\nconst PTC_LOG_LEVEL_VALUES = {\n log: \"log\",\n info: \"info\",\n warn: \"warn\",\n error: \"error\",\n debug: \"debug\",\n} as const;\nexport const PTC_LOG_LEVEL: typeof PTC_LOG_LEVEL_VALUES = Object.freeze(PTC_LOG_LEVEL_VALUES);\nexport type PtcLogLevel = (typeof PTC_LOG_LEVEL)[keyof typeof PTC_LOG_LEVEL];\n\nconst PTC_ERROR_KIND_VALUES = {\n /** Program parse error or thrown exception (includes `ReferenceError` from a helper that does not exist on this surface). */\n exception: \"exception\",\n /** Elapsed deadline expiry. */\n timeout: \"timeout\",\n /** Caller cancellation. */\n abort: \"abort\",\n /** Malformed or excessive control traffic. */\n protocol: \"protocol\",\n /** Early worker exit or a worker-level crash. */\n workerExit: \"worker-exit\",\n /** Completion value could not be materialized as lossless JSON. */\n invalidOutput: \"invalid-output\",\n /** Oversized outer result; collected logs are retained. */\n outputLimit: \"output-limit\",\n} as const;\nexport const PTC_ERROR_KIND: typeof PTC_ERROR_KIND_VALUES = Object.freeze(PTC_ERROR_KIND_VALUES);\nexport type PtcErrorKind = (typeof PTC_ERROR_KIND)[keyof typeof PTC_ERROR_KIND];\n\nexport type PtcCancelReason = \"timeout\" | \"abort\";\n\n/** Lossless-JSON payloads, the only values that may cross the boundary as data. */\nexport interface PtcJsonObject {\n [key: string]: PtcJsonValue;\n}\nexport type PtcJsonValue = string | number | boolean | null | PtcJsonValue[] | PtcJsonObject;\n\nexport interface PtcErrorShape {\n kind: PtcErrorKind;\n message: string;\n stack?: string;\n}\n\n/* -------------------------------------------------------------------------- */\n/* host → worker */\n/* -------------------------------------------------------------------------- */\n\n/**\n * Handshake frame sent over `parentPort` right after spawn.\n *\n * The port must appear *in the payload*, not only in the transfer list: Node silently\n * drops a transfer-list-only entry (the worker receives the message without any port\n * and would wait forever), and it does not populate `msg.ports` for `worker_threads`\n * messages the way the browser `MessageEvent.ports` does. Both were verified against\n * Node v24.18.0 while writing this module.\n */\nexport interface PtcConnectFrame {\n kind: \"connect\";\n port: MessagePort;\n}\n\n/** First frame on the control port: installs the surface and starts the program. */\nexport interface PtcInitFrame {\n kind: \"init\";\n runId: string;\n surface: PtcSurface;\n code: string;\n /** Binding names the worker may expose as `tools.<name>`; the keys of the host table. */\n bindings: readonly string[];\n /**\n * Names the host could have bound (its built-in factory set). Candidates absent from\n * `bindings` get a throwing stub in the worker, so a disabled tool fails with an\n * actionable error instead of `tools.x is not a function` (T7, #21).\n */\n bindingCandidates: readonly string[];\n maxItemsPerCall: number;\n /**\n * In-flight call ceiling the worker must maintain itself (ADR-0004).\n *\n * The worker admits calls before posting them — a wide `Promise.all` / `parallel()`\n * burst then queues inside the worker instead of arriving at the host all at once,\n * which is what makes \"maximum simultaneous host binding calls\" a real invariant\n * rather than an arrival-counted tripwire. The host keeps its own counting as a\n * defense-in-depth backstop for a worker that ignores this field.\n */\n maxPendingCalls: number;\n /** Workflow surface only: value bound to the `args` global. */\n args?: unknown;\n}\n\nexport interface PtcCallResultOkFrame {\n kind: \"call-result\";\n callId: number;\n tool: string;\n ok: true;\n value: unknown;\n}\n\nexport interface PtcCallResultErrorFrame {\n kind: \"call-result\";\n callId: number;\n tool: string;\n ok: false;\n message: string;\n}\n\nexport type PtcCallResultFrame = PtcCallResultOkFrame | PtcCallResultErrorFrame;\n\nexport interface PtcCancelFrame {\n kind: \"cancel\";\n reason: PtcCancelReason;\n}\n\nexport type PtcHostFrame = PtcConnectFrame | PtcInitFrame | PtcCallResultFrame | PtcCancelFrame;\n\n/* -------------------------------------------------------------------------- */\n/* worker → host */\n/* -------------------------------------------------------------------------- */\n\n/** Control port is live and the surface may be installed. */\nexport interface PtcReadyFrame {\n kind: \"ready\";\n}\n\n/** `tools.<tool>(args)`: the worker is waiting for a `call-result` with the same id. */\nexport interface PtcCallFrame {\n kind: \"call\";\n callId: number;\n tool: string;\n args: unknown;\n}\n\nexport interface PtcLogFrame {\n kind: \"log\";\n level: PtcLogLevel;\n text: string;\n}\n\n/** Workflow `log(message)`: narration for the UI, not console output. */\nexport interface PtcNarrationFrame {\n kind: \"narration\";\n message: string;\n}\n\n/** Workflow `phase(title)`. */\nexport interface PtcPhaseFrame {\n kind: \"phase\";\n title: string;\n}\n\n/** Program completed. `value` is absent when the program returned nothing. */\nexport interface PtcResultFrame {\n kind: \"result\";\n value?: PtcJsonValue;\n}\n\nexport interface PtcErrorFrame {\n kind: \"error\";\n error: PtcErrorShape;\n}\n\nexport type PtcWorkerFrame =\n | PtcReadyFrame\n | PtcCallFrame\n | PtcLogFrame\n | PtcNarrationFrame\n | PtcPhaseFrame\n | PtcResultFrame\n | PtcErrorFrame;\n\n/* -------------------------------------------------------------------------- */\n/* guards */\n/* -------------------------------------------------------------------------- */\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function isPtcLogLevel(value: unknown): value is PtcLogLevel {\n return typeof value === \"string\" && Object.values(PTC_LOG_LEVEL).some((level) => level === value);\n}\n\nexport function isPtcErrorKind(value: unknown): value is PtcErrorKind {\n return typeof value === \"string\" && Object.values(PTC_ERROR_KIND).some((kind) => kind === value);\n}\n\nexport function isPtcCancelReason(value: unknown): value is PtcCancelReason {\n return value === \"timeout\" || value === \"abort\";\n}\n\nexport function isPtcConnectFrame(value: unknown): value is PtcConnectFrame {\n return (\n isRecord(value) && value.kind === HOST_FRAME_KIND.connect && value.port instanceof MessagePort\n );\n}\n\nexport function isPtcInitFrame(value: unknown): value is PtcInitFrame {\n return (\n isRecord(value) &&\n value.kind === HOST_FRAME_KIND.init &&\n typeof value.runId === \"string\" &&\n (value.surface === \"run_code\" || value.surface === \"workflow\") &&\n typeof value.code === \"string\" &&\n Array.isArray(value.bindings) &&\n value.bindings.every((name) => typeof name === \"string\") &&\n Array.isArray(value.bindingCandidates) &&\n value.bindingCandidates.every((name) => typeof name === \"string\") &&\n typeof value.maxItemsPerCall === \"number\" &&\n Number.isFinite(value.maxItemsPerCall) &&\n typeof value.maxPendingCalls === \"number\" &&\n Number.isFinite(value.maxPendingCalls)\n );\n}\n\nexport function isPtcCallResultFrame(value: unknown): value is PtcCallResultFrame {\n if (!isRecord(value) || value.kind !== HOST_FRAME_KIND.callResult) return false;\n if (!Number.isInteger(value.callId) || typeof value.tool !== \"string\") return false;\n if (value.ok === true) return \"value\" in value;\n return value.ok === false && typeof value.message === \"string\";\n}\n\nexport function isPtcCancelFrame(value: unknown): value is PtcCancelFrame {\n return (\n isRecord(value) && value.kind === HOST_FRAME_KIND.cancel && isPtcCancelReason(value.reason)\n );\n}\n\nexport function isPtcHostFrame(value: unknown): value is PtcHostFrame {\n return (\n isPtcConnectFrame(value) ||\n isPtcInitFrame(value) ||\n isPtcCallResultFrame(value) ||\n isPtcCancelFrame(value)\n );\n}\n\nexport function isPtcReadyFrame(value: unknown): value is PtcReadyFrame {\n return isRecord(value) && value.kind === WORKER_FRAME_KIND.ready;\n}\n\nexport function isPtcCallFrame(value: unknown): value is PtcCallFrame {\n return (\n isRecord(value) &&\n value.kind === WORKER_FRAME_KIND.call &&\n Number.isInteger(value.callId) &&\n typeof value.tool === \"string\" &&\n value.tool.length > 0 &&\n \"args\" in value\n );\n}\n\nexport function isPtcLogFrame(value: unknown): value is PtcLogFrame {\n return (\n isRecord(value) &&\n value.kind === WORKER_FRAME_KIND.log &&\n isPtcLogLevel(value.level) &&\n typeof value.text === \"string\"\n );\n}\n\nexport function isPtcNarrationFrame(value: unknown): value is PtcNarrationFrame {\n return (\n isRecord(value) &&\n value.kind === WORKER_FRAME_KIND.narration &&\n typeof value.message === \"string\"\n );\n}\n\nexport function isPtcPhaseFrame(value: unknown): value is PtcPhaseFrame {\n return (\n isRecord(value) && value.kind === WORKER_FRAME_KIND.phase && typeof value.title === \"string\"\n );\n}\n\nexport function isPtcResultFrame(value: unknown): value is PtcResultFrame {\n return isRecord(value) && value.kind === WORKER_FRAME_KIND.result;\n}\n\nexport function isPtcErrorFrame(value: unknown): value is PtcErrorFrame {\n if (!isRecord(value) || value.kind !== WORKER_FRAME_KIND.error) return false;\n const error = value.error;\n return (\n isRecord(error) &&\n isPtcErrorKind(error.kind) &&\n typeof error.message === \"string\" &&\n (error.stack === undefined || typeof error.stack === \"string\")\n );\n}\n\nexport function isPtcWorkerFrame(value: unknown): value is PtcWorkerFrame {\n return (\n isPtcReadyFrame(value) ||\n isPtcCallFrame(value) ||\n isPtcLogFrame(value) ||\n isPtcNarrationFrame(value) ||\n isPtcPhaseFrame(value) ||\n isPtcResultFrame(value) ||\n isPtcErrorFrame(value)\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* value description */\n/* -------------------------------------------------------------------------- */\n\n/**\n * One-phrase description of an arbitrary value for error messages. Shared by the\n * worker-side helpers (`log(message) expects a string, received …`) and the host-side\n * workflow-args validator, so both ends word their rejection reasons identically.\n */\nexport function describeValue(value: unknown): string {\n if (value === null) return \"null\";\n if (Array.isArray(value)) return \"an array\";\n return `a ${typeof value}`;\n}\n\n/* -------------------------------------------------------------------------- */\n/* worker-side spec */\n/* -------------------------------------------------------------------------- */\n\n/**\n * The protocol tables as plain data, injected into the worker at spawn.\n *\n * The worker bootstrap is self-contained (see `worker-main.ts`), so it cannot import\n * these constants — it receives them instead, which is what keeps both ends on the\n * same strings.\n */\nexport interface WorkerProtocolSpec {\n hostFrame: typeof HOST_FRAME_KIND;\n workerFrame: typeof WORKER_FRAME_KIND;\n logLevel: typeof PTC_LOG_LEVEL;\n errorKind: typeof PTC_ERROR_KIND;\n}\n\nexport function workerProtocolSpec(): WorkerProtocolSpec {\n return {\n hostFrame: HOST_FRAME_KIND,\n workerFrame: WORKER_FRAME_KIND,\n logLevel: PTC_LOG_LEVEL,\n errorKind: PTC_ERROR_KIND,\n };\n}\n"],"mappings":"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"}
|
package/dist/worker.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|