@zackbart/connecta 0.7.5 → 0.7.7
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 +108 -0
- package/README.md +1 -0
- package/dist/activity.d.ts +17 -0
- package/dist/activity.d.ts.map +1 -1
- package/dist/activity.js.map +1 -1
- package/dist/auth/clerk.d.ts.map +1 -1
- package/dist/auth/clerk.js +101 -0
- package/dist/auth/clerk.js.map +1 -1
- package/dist/auth/downstream-oauth.d.ts +57 -20
- package/dist/auth/downstream-oauth.d.ts.map +1 -1
- package/dist/auth/downstream-oauth.js +275 -67
- package/dist/auth/downstream-oauth.js.map +1 -1
- package/dist/connectors/remote-mcp.d.ts.map +1 -1
- package/dist/connectors/remote-mcp.js +165 -103
- package/dist/connectors/remote-mcp.js.map +1 -1
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +11 -0
- package/dist/execute.js.map +1 -1
- package/dist/executor-admission.d.ts +18 -1
- package/dist/executor-admission.d.ts.map +1 -1
- package/dist/executor-admission.js +82 -3
- package/dist/executor-admission.js.map +1 -1
- package/dist/executors/quickjs-protocol.d.ts +1 -0
- package/dist/executors/quickjs-protocol.d.ts.map +1 -1
- package/dist/executors/quickjs-protocol.js +7 -4
- package/dist/executors/quickjs-protocol.js.map +1 -1
- package/dist/executors/quickjs-runtime.d.ts.map +1 -1
- package/dist/executors/quickjs-runtime.js +22 -9
- package/dist/executors/quickjs-runtime.js.map +1 -1
- package/dist/executors/quickjs.d.ts.map +1 -1
- package/dist/executors/quickjs.js +44 -10
- package/dist/executors/quickjs.js.map +1 -1
- package/dist/index.d.ts +31 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -1
- package/dist/index.js.map +1 -1
- package/dist/registry.d.ts +12 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +70 -15
- package/dist/registry.js.map +1 -1
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +413 -35
- package/dist/server.js.map +1 -1
- package/dist/storage/file.d.ts.map +1 -1
- package/dist/storage/file.js +8 -0
- package/dist/storage/file.js.map +1 -1
- package/dist/types.d.ts +47 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +7 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +118 -4
- package/dist/ui.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -1
- package/src/activity.ts +20 -0
- package/src/auth/clerk.ts +124 -0
- package/src/auth/downstream-oauth.ts +359 -68
- package/src/connectors/remote-mcp.ts +172 -104
- package/src/execute.ts +11 -0
- package/src/executor-admission.ts +90 -3
- package/src/executors/quickjs-protocol.ts +7 -4
- package/src/executors/quickjs-runtime.ts +31 -9
- package/src/executors/quickjs.ts +61 -12
- package/src/index.ts +90 -1
- package/src/registry.ts +79 -19
- package/src/server.ts +523 -45
- package/src/storage/file.ts +7 -0
- package/src/types.ts +50 -0
- package/src/ui.ts +124 -3
- package/src/version.ts +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AdmittingExecutor, Executor } from "./types.js";
|
|
1
|
+
import type { AdmittingExecutor, AdmissionSnapshot, Executor } from "./types.js";
|
|
2
2
|
export type ExecutorAdmissionErrorCode = "executor_overloaded" | "executor_cancelled" | "executor_closed";
|
|
3
3
|
/**
|
|
4
4
|
* A stable, machine-readable admission failure. Overload is retryable; caller
|
|
@@ -13,6 +13,8 @@ export declare class ExecutorAdmissionError extends Error {
|
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
export interface AdmissionLease {
|
|
16
|
+
/** Time spent waiting behind active work. Zero for immediate admission. */
|
|
17
|
+
readonly waitMs: number;
|
|
16
18
|
release(): void;
|
|
17
19
|
}
|
|
18
20
|
export interface AdmissionControllerOptions {
|
|
@@ -35,9 +37,18 @@ export declare class AdmissionController {
|
|
|
35
37
|
private active;
|
|
36
38
|
private closed;
|
|
37
39
|
private readonly waiters;
|
|
40
|
+
private admittedTotal;
|
|
41
|
+
private queuedTotal;
|
|
42
|
+
private rejectedTotal;
|
|
43
|
+
private cancelledTotal;
|
|
44
|
+
private closedTotal;
|
|
45
|
+
private queueWaitCount;
|
|
46
|
+
private queueWaitTotalMs;
|
|
47
|
+
private queueWaitMaxMs;
|
|
38
48
|
constructor(options: AdmissionControllerOptions);
|
|
39
49
|
get activeCount(): number;
|
|
40
50
|
get queuedCount(): number;
|
|
51
|
+
snapshot(): AdmissionSnapshot;
|
|
41
52
|
acquire(options?: {
|
|
42
53
|
signal?: AbortSignal;
|
|
43
54
|
}): Promise<AdmissionLease>;
|
|
@@ -50,4 +61,10 @@ export declare class AdmissionController {
|
|
|
50
61
|
}
|
|
51
62
|
/** Preserve the one-method Workers seam while recognizing richer Node executors. */
|
|
52
63
|
export declare function isAdmittingExecutor(executor: Executor): executor is AdmittingExecutor;
|
|
64
|
+
/**
|
|
65
|
+
* Give a structurally-compatible but otherwise unbounded executor the same
|
|
66
|
+
* admission contract as the built-in Node executor. The wrapper owns only the
|
|
67
|
+
* queue; closing the underlying runtime remains the Connecta lifecycle's job.
|
|
68
|
+
*/
|
|
69
|
+
export declare function withExecutorAdmission(executor: Executor, admission: AdmissionController): AdmittingExecutor;
|
|
53
70
|
//# sourceMappingURL=executor-admission.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-admission.d.ts","sourceRoot":"","sources":["../src/executor-admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,
|
|
1
|
+
{"version":3,"file":"executor-admission.d.ts","sourceRoot":"","sources":["../src/executor-admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EAET,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,0BAA0B,GAClC,qBAAqB,GACrB,oBAAoB,GACpB,iBAAiB,CAAC;AAEtB;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAK7C,QAAQ,CAAC,IAAI,EAAE,0BAA0B;IAJ3C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAGpB,IAAI,EAAE,0BAA0B,EACzC,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO;CAavC;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,IAAI,IAAI,CAAC;CACjB;AAWD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAgBD;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,EAAE,0BAA0B;IAgB/C,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,QAAQ,IAAI,iBAAiB;IAwB7B,OAAO,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IA+DxE,KAAK,IAAI,IAAI;IAeb,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,OAAO;IAef,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,OAAO;CAMhB;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,GACjB,QAAQ,IAAI,iBAAiB,CAK/B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,mBAAmB,GAC7B,iBAAiB,CAyBnB"}
|
|
@@ -43,6 +43,14 @@ export class AdmissionController {
|
|
|
43
43
|
active = 0;
|
|
44
44
|
closed = false;
|
|
45
45
|
waiters = [];
|
|
46
|
+
admittedTotal = 0;
|
|
47
|
+
queuedTotal = 0;
|
|
48
|
+
rejectedTotal = 0;
|
|
49
|
+
cancelledTotal = 0;
|
|
50
|
+
closedTotal = 0;
|
|
51
|
+
queueWaitCount = 0;
|
|
52
|
+
queueWaitTotalMs = 0;
|
|
53
|
+
queueWaitMaxMs = 0;
|
|
46
54
|
constructor(options) {
|
|
47
55
|
this.concurrency = positiveWhole(options.concurrency, "concurrency");
|
|
48
56
|
this.maxQueueSize = nonNegativeWhole(options.maxQueueSize, "maxQueueSize");
|
|
@@ -55,22 +63,50 @@ export class AdmissionController {
|
|
|
55
63
|
get queuedCount() {
|
|
56
64
|
return this.waiters.length;
|
|
57
65
|
}
|
|
66
|
+
snapshot() {
|
|
67
|
+
return {
|
|
68
|
+
concurrency: this.concurrency,
|
|
69
|
+
maxQueueSize: this.maxQueueSize,
|
|
70
|
+
queueTimeoutMs: this.queueTimeoutMs,
|
|
71
|
+
retryAfterMs: this.retryAfterMs,
|
|
72
|
+
active: this.active,
|
|
73
|
+
queued: this.waiters.length,
|
|
74
|
+
closed: this.closed,
|
|
75
|
+
totals: {
|
|
76
|
+
admitted: this.admittedTotal,
|
|
77
|
+
queued: this.queuedTotal,
|
|
78
|
+
rejected: this.rejectedTotal,
|
|
79
|
+
cancelled: this.cancelledTotal,
|
|
80
|
+
closed: this.closedTotal,
|
|
81
|
+
},
|
|
82
|
+
queueWaitMs: {
|
|
83
|
+
count: this.queueWaitCount,
|
|
84
|
+
total: this.queueWaitTotalMs,
|
|
85
|
+
max: this.queueWaitMaxMs,
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
58
89
|
acquire(options = {}) {
|
|
59
90
|
if (this.closed) {
|
|
91
|
+
this.closedTotal++;
|
|
60
92
|
return Promise.reject(new ExecutorAdmissionError("executor_closed", "Executor is shutting down."));
|
|
61
93
|
}
|
|
62
94
|
if (options.signal?.aborted) {
|
|
95
|
+
this.cancelledTotal++;
|
|
63
96
|
return Promise.reject(new ExecutorAdmissionError("executor_cancelled", "Execution was cancelled before admission."));
|
|
64
97
|
}
|
|
65
98
|
if (this.active < this.concurrency) {
|
|
66
99
|
this.active++;
|
|
67
|
-
|
|
100
|
+
this.admittedTotal++;
|
|
101
|
+
return Promise.resolve(this.makeLease(0));
|
|
68
102
|
}
|
|
69
103
|
if (this.waiters.length >= this.maxQueueSize) {
|
|
104
|
+
this.rejectedTotal++;
|
|
70
105
|
return Promise.reject(this.overloaded("Executor queue is full."));
|
|
71
106
|
}
|
|
72
107
|
return new Promise((resolve, reject) => {
|
|
73
108
|
const waiter = {
|
|
109
|
+
queuedAt: Date.now(),
|
|
74
110
|
resolve,
|
|
75
111
|
reject,
|
|
76
112
|
...(options.signal ? { signal: options.signal } : {}),
|
|
@@ -79,6 +115,7 @@ export class AdmissionController {
|
|
|
79
115
|
if (!this.remove(waiter))
|
|
80
116
|
return;
|
|
81
117
|
this.cleanup(waiter);
|
|
118
|
+
this.cancelledTotal++;
|
|
82
119
|
reject(new ExecutorAdmissionError("executor_cancelled", "Execution was cancelled while queued."));
|
|
83
120
|
};
|
|
84
121
|
options.signal?.addEventListener("abort", waiter.onAbort, { once: true });
|
|
@@ -86,9 +123,11 @@ export class AdmissionController {
|
|
|
86
123
|
if (!this.remove(waiter))
|
|
87
124
|
return;
|
|
88
125
|
this.cleanup(waiter);
|
|
126
|
+
this.rejectedTotal++;
|
|
89
127
|
reject(this.overloaded(`Executor admission timed out after ${this.queueTimeoutMs}ms.`));
|
|
90
128
|
}, this.queueTimeoutMs);
|
|
91
129
|
this.waiters.push(waiter);
|
|
130
|
+
this.queuedTotal++;
|
|
92
131
|
});
|
|
93
132
|
}
|
|
94
133
|
close() {
|
|
@@ -97,6 +136,7 @@ export class AdmissionController {
|
|
|
97
136
|
this.closed = true;
|
|
98
137
|
for (const waiter of this.waiters.splice(0)) {
|
|
99
138
|
this.cleanup(waiter);
|
|
139
|
+
this.closedTotal++;
|
|
100
140
|
waiter.reject(new ExecutorAdmissionError("executor_closed", "Executor is shutting down."));
|
|
101
141
|
}
|
|
102
142
|
}
|
|
@@ -105,9 +145,10 @@ export class AdmissionController {
|
|
|
105
145
|
retryAfterMs: this.retryAfterMs,
|
|
106
146
|
});
|
|
107
147
|
}
|
|
108
|
-
makeLease() {
|
|
148
|
+
makeLease(waitMs) {
|
|
109
149
|
let released = false;
|
|
110
150
|
return {
|
|
151
|
+
waitMs,
|
|
111
152
|
release: () => {
|
|
112
153
|
if (released)
|
|
113
154
|
return;
|
|
@@ -125,8 +166,13 @@ export class AdmissionController {
|
|
|
125
166
|
if (!waiter)
|
|
126
167
|
return;
|
|
127
168
|
this.cleanup(waiter);
|
|
169
|
+
const waitMs = Math.max(0, Date.now() - waiter.queuedAt);
|
|
170
|
+
this.admittedTotal++;
|
|
171
|
+
this.queueWaitCount++;
|
|
172
|
+
this.queueWaitTotalMs += waitMs;
|
|
173
|
+
this.queueWaitMaxMs = Math.max(this.queueWaitMaxMs, waitMs);
|
|
128
174
|
this.active++;
|
|
129
|
-
waiter.resolve(this.makeLease());
|
|
175
|
+
waiter.resolve(this.makeLease(waitMs));
|
|
130
176
|
}
|
|
131
177
|
remove(waiter) {
|
|
132
178
|
const index = this.waiters.indexOf(waiter);
|
|
@@ -148,4 +194,37 @@ export function isAdmittingExecutor(executor) {
|
|
|
148
194
|
return ("acquire" in executor &&
|
|
149
195
|
typeof executor.acquire === "function");
|
|
150
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Give a structurally-compatible but otherwise unbounded executor the same
|
|
199
|
+
* admission contract as the built-in Node executor. The wrapper owns only the
|
|
200
|
+
* queue; closing the underlying runtime remains the Connecta lifecycle's job.
|
|
201
|
+
*/
|
|
202
|
+
export function withExecutorAdmission(executor, admission) {
|
|
203
|
+
return {
|
|
204
|
+
async acquire(options = {}) {
|
|
205
|
+
const token = await admission.acquire(options);
|
|
206
|
+
let released = false;
|
|
207
|
+
return {
|
|
208
|
+
waitMs: token.waitMs,
|
|
209
|
+
execute: (code, providers) => executor.execute(code, providers),
|
|
210
|
+
release: () => {
|
|
211
|
+
if (released)
|
|
212
|
+
return;
|
|
213
|
+
released = true;
|
|
214
|
+
token.release();
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
},
|
|
218
|
+
async execute(code, providers) {
|
|
219
|
+
const lease = await this.acquire();
|
|
220
|
+
try {
|
|
221
|
+
return await lease.execute(code, providers);
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
lease.release();
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
admissionSnapshot: () => admission.snapshot(),
|
|
228
|
+
};
|
|
229
|
+
}
|
|
151
230
|
//# sourceMappingURL=executor-admission.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor-admission.js","sourceRoot":"","sources":["../src/executor-admission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executor-admission.js","sourceRoot":"","sources":["../src/executor-admission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ExecuteResult } from "../types.js";
|
|
2
2
|
import type { QuickJsRuntimeOptions } from "./quickjs-runtime.js";
|
|
3
3
|
export declare const MAX_QUICKJS_IPC_BYTES: number;
|
|
4
|
+
export declare const MAX_QUICKJS_LOG_TRANSPORT_BYTES: number;
|
|
4
5
|
/** Preserve #84's stopgap before a host value enters the child/WASM process. */
|
|
5
6
|
export declare const MAX_QUICKJS_HOST_RPC_BYTES: number;
|
|
6
7
|
export interface RunPayload {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickjs-protocol.d.ts","sourceRoot":"","sources":["../../src/executors/quickjs-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"quickjs-protocol.d.ts","sourceRoot":"","sources":["../../src/executors/quickjs-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAQlE,eAAO,MAAM,qBAAqB,QAAc,CAAC;AACjD,eAAO,MAAM,+BAA+B,QAAa,CAAC;AAC1D,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,QAAa,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACpC;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEN,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC5B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,KAAK,SAAwB,GAC5B,MAAM,CAYR"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
1
|
+
// An execution result is serialized once into payloadJson and again as that
|
|
2
|
+
// string is embedded in ChildToParentMessage. Captured logs therefore get a
|
|
3
|
+
// separate 512 KiB budget measured after both JSON encodings. The final result
|
|
4
|
+
// is shaped to 24k characters; even if every character takes its worst-case
|
|
5
|
+
// seven transport bytes, that leaves ample structural overhead below this hard
|
|
6
|
+
// process.send ceiling.
|
|
5
7
|
export const MAX_QUICKJS_IPC_BYTES = 1024 * 1024;
|
|
8
|
+
export const MAX_QUICKJS_LOG_TRANSPORT_BYTES = 512 * 1024;
|
|
6
9
|
/** Preserve #84's stopgap before a host value enters the child/WASM process. */
|
|
7
10
|
export const MAX_QUICKJS_HOST_RPC_BYTES = 256 * 1024;
|
|
8
11
|
export function serializedBytes(text) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickjs-protocol.js","sourceRoot":"","sources":["../../src/executors/quickjs-protocol.ts"],"names":[],"mappings":"AAGA,4EAA4E;AAC5E,4EAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"quickjs-protocol.js","sourceRoot":"","sources":["../../src/executors/quickjs-protocol.ts"],"names":[],"mappings":"AAGA,4EAA4E;AAC5E,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,wBAAwB;AACxB,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,GAAG,IAAI,CAAC;AAC1D,gFAAgF;AAChF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,GAAG,IAAI,CAAC;AA+CrD,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAc,EACd,KAAa,EACb,KAAK,GAAG,qBAAqB;IAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAClB,GAAG,KAAK,OAAO,KAAK,0BAA0B,KAAK,kBAAkB,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickjs-runtime.d.ts","sourceRoot":"","sources":["../../src/executors/quickjs-runtime.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"quickjs-runtime.d.ts","sourceRoot":"","sources":["../../src/executors/quickjs-runtime.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMnE,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,kFAAkF;AAClF,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAEpD;AAuDD,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUlD;AAgMD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,gBAAgB,EAAE,EAC7B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CA0JjC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
// continuations from a host-side loop. Values cross the boundary as JSON, so
|
|
9
9
|
// provider args/results must be JSON-serializable.
|
|
10
10
|
import { getQuickJS, } from "quickjs-emscripten";
|
|
11
|
+
import { MAX_QUICKJS_LOG_TRANSPORT_BYTES, serializedBytes, } from "./quickjs-protocol.js";
|
|
11
12
|
/** Load and compile the shared QuickJS WASM module before a run budget starts. */
|
|
12
13
|
export async function prepareQuickJs() {
|
|
13
14
|
await getQuickJS();
|
|
@@ -16,11 +17,13 @@ const MAX_LOG_ENTRIES = 200;
|
|
|
16
17
|
// Cap each entry AND the cumulative buffer at capture time so untrusted guest
|
|
17
18
|
// code can't retain unbounded host memory: a single `console.log("x".repeat(N))`
|
|
18
19
|
// otherwise copies the whole N-char guest string into a host array we hold for
|
|
19
|
-
// the entire execution.
|
|
20
|
-
//
|
|
21
|
-
// keeps the worst case — 200 maxed-out entries — bounded well under a MiB.
|
|
20
|
+
// the entire execution. The separate transport-byte budget below accounts for
|
|
21
|
+
// JSON escaping and is what keeps the result envelope below its IPC ceiling.
|
|
22
22
|
const MAX_LOG_ENTRY_CHARS = 8_000;
|
|
23
23
|
const MAX_LOG_TOTAL_CHARS = 256_000;
|
|
24
|
+
const LOG_ENTRY_LIMIT_MARKER = `[log truncated after ${MAX_LOG_ENTRIES} entries]`;
|
|
25
|
+
const LOG_SIZE_LIMIT_MARKER = "[log truncated: size budget exceeded]";
|
|
26
|
+
const MAX_LOG_MARKER_TRANSPORT_BYTES = Math.max(logTransportBytes(LOG_ENTRY_LIMIT_MARKER), logTransportBytes(LOG_SIZE_LIMIT_MARKER));
|
|
24
27
|
// Keep one host result below the range where quickjs-emscripten@0.32.0 can
|
|
25
28
|
// nondeterministically fail during runtime disposal under concurrent load.
|
|
26
29
|
// This still lets guest code reduce data more than ten times larger than
|
|
@@ -29,6 +32,11 @@ const MAX_HOST_RESULT_BYTES = 256 * 1024;
|
|
|
29
32
|
function msg(err) {
|
|
30
33
|
return err instanceof Error ? err.message : String(err);
|
|
31
34
|
}
|
|
35
|
+
function logTransportBytes(entry) {
|
|
36
|
+
// The log is encoded into ExecutionPayload, then that payloadJson string is
|
|
37
|
+
// encoded into ChildToParentMessage. Measure the units the IPC cap sees.
|
|
38
|
+
return serializedBytes(JSON.stringify(JSON.stringify(entry)));
|
|
39
|
+
}
|
|
32
40
|
function exceedsUtf8ByteLimit(value, limit) {
|
|
33
41
|
let bytes = 0;
|
|
34
42
|
for (let index = 0; index < value.length; index += 1) {
|
|
@@ -142,15 +150,16 @@ function installBridge(ctx, providers, logs) {
|
|
|
142
150
|
waitForSettle: Promise.resolve(),
|
|
143
151
|
};
|
|
144
152
|
armWake(bridge);
|
|
145
|
-
//
|
|
146
|
-
// budget
|
|
147
|
-
//
|
|
153
|
+
// Keep both the in-memory character budget and the twice-JSON-encoded
|
|
154
|
+
// transport budget. Reserve enough byte budget for whichever truncation
|
|
155
|
+
// marker ends the stream.
|
|
148
156
|
let logTotalChars = 0;
|
|
157
|
+
let logTotalTransportBytes = 0;
|
|
149
158
|
let logBudgetSpent = false;
|
|
150
159
|
const logFn = ctx.newFunction("__log", (h) => {
|
|
151
160
|
if (logs.length >= MAX_LOG_ENTRIES) {
|
|
152
161
|
if (logs.length === MAX_LOG_ENTRIES) {
|
|
153
|
-
logs.push(
|
|
162
|
+
logs.push(LOG_ENTRY_LIMIT_MARKER);
|
|
154
163
|
}
|
|
155
164
|
return;
|
|
156
165
|
}
|
|
@@ -162,13 +171,17 @@ function installBridge(ctx, providers, logs) {
|
|
|
162
171
|
if (entry.length > MAX_LOG_ENTRY_CHARS) {
|
|
163
172
|
entry = `${entry.slice(0, MAX_LOG_ENTRY_CHARS)}…[entry truncated]`;
|
|
164
173
|
}
|
|
165
|
-
|
|
166
|
-
|
|
174
|
+
const entryTransportBytes = logTransportBytes(entry);
|
|
175
|
+
if (logTotalChars + entry.length > MAX_LOG_TOTAL_CHARS ||
|
|
176
|
+
logTotalTransportBytes + entryTransportBytes >
|
|
177
|
+
MAX_QUICKJS_LOG_TRANSPORT_BYTES - MAX_LOG_MARKER_TRANSPORT_BYTES) {
|
|
178
|
+
logs.push(LOG_SIZE_LIMIT_MARKER);
|
|
167
179
|
logBudgetSpent = true;
|
|
168
180
|
return;
|
|
169
181
|
}
|
|
170
182
|
logs.push(entry);
|
|
171
183
|
logTotalChars += entry.length;
|
|
184
|
+
logTotalTransportBytes += entryTransportBytes;
|
|
172
185
|
});
|
|
173
186
|
ctx.setProp(ctx.global, "__log", logFn);
|
|
174
187
|
logFn.dispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickjs-runtime.js","sourceRoot":"","sources":["../../src/executors/quickjs-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quickjs-runtime.js","sourceRoot":"","sources":["../../src/executors/quickjs-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickjs.d.ts","sourceRoot":"","sources":["../../src/executors/quickjs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quickjs.d.ts","sourceRoot":"","sources":["../../src/executors/quickjs.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,iBAAiB,EAKlB,MAAM,aAAa,CAAC;AAerB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA2rBD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,iBAAiB,CAEnB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// Node's built-in code-mode executor. QuickJS itself lives in a disposable
|
|
2
2
|
// child process: guest CPU, WASM aborts, and interpreter OOMs cannot block or
|
|
3
3
|
// terminate the HTTP-serving process.
|
|
4
|
+
import { Buffer } from "node:buffer";
|
|
4
5
|
import { fork } from "node:child_process";
|
|
6
|
+
import { existsSync } from "node:fs";
|
|
5
7
|
import { fileURLToPath } from "node:url";
|
|
6
8
|
import { AdmissionController, ExecutorAdmissionError, } from "../executor-admission.js";
|
|
7
9
|
import { MAX_QUICKJS_IPC_BYTES, MAX_QUICKJS_HOST_RPC_BYTES, serializedBytes, stringifyBounded, } from "./quickjs-protocol.js";
|
|
@@ -15,10 +17,27 @@ const DEFAULT_MAX_QUEUE_SIZE = 32;
|
|
|
15
17
|
const DEFAULT_QUEUE_TIMEOUT_MS = 5_000;
|
|
16
18
|
const CHILD_EXIT_GRACE_MS = 250;
|
|
17
19
|
const CHILD_STARTUP_TIMEOUT_MS = 10_000;
|
|
20
|
+
const MAX_CHILD_STDERR_BYTES = 8 * 1024;
|
|
18
21
|
const MAX_ERROR_CHARS = 4_000;
|
|
19
22
|
function msg(err) {
|
|
20
23
|
return err instanceof Error ? err.message : String(err);
|
|
21
24
|
}
|
|
25
|
+
function retainStderrTail(current, chunk) {
|
|
26
|
+
const incoming = typeof chunk === "string" ? Buffer.from(chunk) : chunk;
|
|
27
|
+
if (incoming.length >= MAX_CHILD_STDERR_BYTES) {
|
|
28
|
+
return Buffer.from(incoming.subarray(incoming.length - MAX_CHILD_STDERR_BYTES));
|
|
29
|
+
}
|
|
30
|
+
const combined = Buffer.concat([current, incoming]);
|
|
31
|
+
if (combined.length <= MAX_CHILD_STDERR_BYTES)
|
|
32
|
+
return combined;
|
|
33
|
+
return Buffer.from(combined.subarray(combined.length - MAX_CHILD_STDERR_BYTES));
|
|
34
|
+
}
|
|
35
|
+
function childExitError(message, stderrTail) {
|
|
36
|
+
if (stderrTail.length === 0)
|
|
37
|
+
return new Error(message);
|
|
38
|
+
return new Error(`${message}\nRecent child stderr (last ${stderrTail.length} bytes):\n` +
|
|
39
|
+
stderrTail.toString("utf8"));
|
|
40
|
+
}
|
|
22
41
|
function positiveWhole(value, fallback, name) {
|
|
23
42
|
const resolved = value ?? fallback;
|
|
24
43
|
if (!Number.isFinite(resolved) ||
|
|
@@ -120,6 +139,7 @@ class QuickJsChildPool {
|
|
|
120
139
|
let released = false;
|
|
121
140
|
let executed = false;
|
|
122
141
|
return {
|
|
142
|
+
waitMs: admission.waitMs,
|
|
123
143
|
execute: async (code, providers) => {
|
|
124
144
|
if (released)
|
|
125
145
|
throw new Error("Executor lease was already released.");
|
|
@@ -141,6 +161,9 @@ class QuickJsChildPool {
|
|
|
141
161
|
},
|
|
142
162
|
};
|
|
143
163
|
}
|
|
164
|
+
admissionSnapshot() {
|
|
165
|
+
return this.admission.snapshot();
|
|
166
|
+
}
|
|
144
167
|
async execute(code, providers) {
|
|
145
168
|
const lease = await this.acquire();
|
|
146
169
|
try {
|
|
@@ -244,10 +267,22 @@ class QuickJsChildPool {
|
|
|
244
267
|
}
|
|
245
268
|
const sourceMode = import.meta.url.endsWith(".ts");
|
|
246
269
|
const childUrl = new URL(sourceMode ? "./quickjs-child.ts" : "./quickjs-child.js", import.meta.url);
|
|
247
|
-
const
|
|
270
|
+
const childPath = fileURLToPath(childUrl);
|
|
271
|
+
if (!existsSync(childPath)) {
|
|
272
|
+
throw new Error(`QuickJS child entry is missing at ${childPath}. ` +
|
|
273
|
+
"The @zackbart/connecta/quickjs subpath requires the package file " +
|
|
274
|
+
"layout on disk; externalize @zackbart/connecta (or at least " +
|
|
275
|
+
"@zackbart/connecta/quickjs) when bundling the server.");
|
|
276
|
+
}
|
|
277
|
+
const child = fork(childPath, [], {
|
|
248
278
|
execArgv: sourceMode ? ["--import", "tsx"] : [],
|
|
249
|
-
stdio: ["ignore", "ignore", "
|
|
279
|
+
stdio: ["ignore", "ignore", "pipe", "ipc"],
|
|
250
280
|
});
|
|
281
|
+
let stderrTail = Buffer.alloc(0);
|
|
282
|
+
child.stderr?.on("data", (chunk) => {
|
|
283
|
+
stderrTail = retainStderrTail(stderrTail, chunk);
|
|
284
|
+
});
|
|
285
|
+
child.stderr?.unref?.();
|
|
251
286
|
slot.child = child;
|
|
252
287
|
slot.ready = new Promise((resolve, reject) => {
|
|
253
288
|
slot.resolveReady = resolve;
|
|
@@ -272,22 +307,21 @@ class QuickJsChildPool {
|
|
|
272
307
|
this.rejectActive(slot, error);
|
|
273
308
|
this.recycle(slot);
|
|
274
309
|
});
|
|
275
|
-
|
|
310
|
+
// `close`, unlike `exit`, runs after the stdio streams have closed, so the
|
|
311
|
+
// diagnostic includes stderr bytes flushed immediately before a crash.
|
|
312
|
+
child.on("close", (code, exitSignal) => {
|
|
276
313
|
const expected = slot.expectedExit === child;
|
|
277
314
|
if (slot.expectedExit === child)
|
|
278
315
|
slot.expectedExit = undefined;
|
|
279
|
-
|
|
280
|
-
|
|
316
|
+
const exitDescription = `${exitSignal ? `signal ${exitSignal}` : `code ${String(code)}`}`;
|
|
317
|
+
this.rejectChildReady(slot, child, childExitError(`QuickJS child exited before becoming ready (${exitDescription}).`, stderrTail));
|
|
281
318
|
if (slot.child === child)
|
|
282
319
|
slot.child = undefined;
|
|
283
320
|
if (expected)
|
|
284
321
|
return;
|
|
285
322
|
this.recordCrash(slot);
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
error: `QuickJS child exited unexpectedly` +
|
|
289
|
-
` (${exitSignal ? `signal ${exitSignal}` : `code ${String(code)}`}).`,
|
|
290
|
-
});
|
|
323
|
+
const error = childExitError(`QuickJS child exited unexpectedly (${exitDescription}).`, stderrTail);
|
|
324
|
+
this.resolveActive(slot, { result: undefined, error: error.message });
|
|
291
325
|
});
|
|
292
326
|
child.unref();
|
|
293
327
|
child.channel?.unref();
|