@synoikia/core 0.20.0 → 0.21.1
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/app.d.ts +4 -0
- package/dist/app.js +17 -4
- package/dist/app.js.map +1 -1
- package/dist/catalog/rules.js +5 -1
- package/dist/catalog/rules.js.map +1 -1
- package/dist/gate/match.d.ts +2 -0
- package/dist/gate/match.js +40 -1
- package/dist/gate/match.js.map +1 -1
- package/dist/gate/pipeline.d.ts +4 -0
- package/dist/gate/pipeline.js.map +1 -1
- package/dist/http/admin/instances.js +1 -0
- package/dist/http/admin/instances.js.map +1 -1
- package/dist/http/admin/me.js +1 -0
- package/dist/http/admin/me.js.map +1 -1
- package/dist/http/admin/system.js +1 -0
- package/dist/http/admin/system.js.map +1 -1
- package/dist/instances/manager.d.ts +15 -4
- package/dist/instances/manager.js +39 -11
- package/dist/instances/manager.js.map +1 -1
- package/dist/instances/settings.d.ts +4 -2
- package/dist/instances/settings.js +10 -4
- package/dist/instances/settings.js.map +1 -1
- package/dist/runtime/executions.d.ts +2 -0
- package/dist/runtime/executions.js +7 -0
- package/dist/runtime/executions.js.map +1 -1
- package/dist/runtime/index.d.ts +4 -3
- package/dist/runtime/index.js +13 -5
- package/dist/runtime/index.js.map +1 -1
- package/dist/settings.d.ts +4 -0
- package/dist/settings.js +12 -0
- package/dist/settings.js.map +1 -1
- package/package.json +3 -3
|
@@ -36,6 +36,10 @@ export interface ManagerOptions {
|
|
|
36
36
|
/** How often core looks for idle instances (ADR-0022). */
|
|
37
37
|
idleSweepMs?: number;
|
|
38
38
|
};
|
|
39
|
+
/** The total of sandbox runs at once (ADR-0003); without it, 16. */
|
|
40
|
+
runTotal?: () => number;
|
|
41
|
+
/** Whether a parked execution of the instance has not ended yet (ADR-0022). */
|
|
42
|
+
parkedIn?: (instanceId: string) => boolean;
|
|
39
43
|
/** How often a live session may trigger the cheap upstream version check. */
|
|
40
44
|
versionCheckIntervalMs?: number;
|
|
41
45
|
}
|
|
@@ -60,6 +64,7 @@ export declare class InstanceManager {
|
|
|
60
64
|
private readonly db;
|
|
61
65
|
private readonly now;
|
|
62
66
|
constructor(opts: ManagerOptions);
|
|
67
|
+
private runTotal;
|
|
63
68
|
private row;
|
|
64
69
|
private plugin;
|
|
65
70
|
/** Resolves a plugin by row id or by manifest id (`acme`). */
|
|
@@ -110,8 +115,8 @@ export declare class InstanceManager {
|
|
|
110
115
|
};
|
|
111
116
|
extraRedactKeys: string[];
|
|
112
117
|
syncMaxAgeMs: number;
|
|
113
|
-
idleStopMs: number | null;
|
|
114
118
|
memoryMb: number;
|
|
119
|
+
idleStopMs?: number | null | undefined;
|
|
115
120
|
};
|
|
116
121
|
plugin: {
|
|
117
122
|
id: string;
|
|
@@ -124,6 +129,7 @@ export declare class InstanceManager {
|
|
|
124
129
|
operations: string;
|
|
125
130
|
} | undefined;
|
|
126
131
|
attestation: boolean;
|
|
132
|
+
lifecycle: "always" | "on-demand";
|
|
127
133
|
};
|
|
128
134
|
}[];
|
|
129
135
|
/** The role's endpoints at `mcpBase`, each with the role's switches on it and live status only where
|
|
@@ -190,8 +196,8 @@ export declare class InstanceManager {
|
|
|
190
196
|
};
|
|
191
197
|
extraRedactKeys: string[];
|
|
192
198
|
syncMaxAgeMs: number;
|
|
193
|
-
idleStopMs: number | null;
|
|
194
199
|
memoryMb: number;
|
|
200
|
+
idleStopMs?: number | null | undefined;
|
|
195
201
|
};
|
|
196
202
|
plugin: {
|
|
197
203
|
id: string;
|
|
@@ -204,6 +210,7 @@ export declare class InstanceManager {
|
|
|
204
210
|
operations: string;
|
|
205
211
|
} | undefined;
|
|
206
212
|
attestation: boolean;
|
|
213
|
+
lifecycle: "always" | "on-demand";
|
|
207
214
|
};
|
|
208
215
|
};
|
|
209
216
|
bySlug(slug: string): {
|
|
@@ -213,6 +220,8 @@ export declare class InstanceManager {
|
|
|
213
220
|
private describe;
|
|
214
221
|
/** Whether the instance's endpoint should serve: instance and plugin enabled, plugin healthy. */
|
|
215
222
|
isServing(instance: InstanceRow, plugin: PluginRow): boolean;
|
|
223
|
+
/** The settings as the instance runs them: the idle time follows the plugin (ADR-0022). */
|
|
224
|
+
private effectiveSettings;
|
|
216
225
|
settingsOf(instance: InstanceRow): InstanceSettings;
|
|
217
226
|
/** Scrubs an instance's secret values out of plugin/upstream error text before it is stored or sent. */
|
|
218
227
|
private scrubError;
|
|
@@ -257,8 +266,8 @@ export declare class InstanceManager {
|
|
|
257
266
|
};
|
|
258
267
|
extraRedactKeys: string[];
|
|
259
268
|
syncMaxAgeMs: number;
|
|
260
|
-
idleStopMs: number | null;
|
|
261
269
|
memoryMb: number;
|
|
270
|
+
idleStopMs?: number | null | undefined;
|
|
262
271
|
};
|
|
263
272
|
plugin: {
|
|
264
273
|
id: string;
|
|
@@ -271,6 +280,7 @@ export declare class InstanceManager {
|
|
|
271
280
|
operations: string;
|
|
272
281
|
} | undefined;
|
|
273
282
|
attestation: boolean;
|
|
283
|
+
lifecycle: "always" | "on-demand";
|
|
274
284
|
};
|
|
275
285
|
}>;
|
|
276
286
|
update(id: string, patch: {
|
|
@@ -305,8 +315,8 @@ export declare class InstanceManager {
|
|
|
305
315
|
};
|
|
306
316
|
extraRedactKeys: string[];
|
|
307
317
|
syncMaxAgeMs: number;
|
|
308
|
-
idleStopMs: number | null;
|
|
309
318
|
memoryMb: number;
|
|
319
|
+
idleStopMs?: number | null | undefined;
|
|
310
320
|
};
|
|
311
321
|
plugin: {
|
|
312
322
|
id: string;
|
|
@@ -319,6 +329,7 @@ export declare class InstanceManager {
|
|
|
319
329
|
operations: string;
|
|
320
330
|
} | undefined;
|
|
321
331
|
attestation: boolean;
|
|
332
|
+
lifecycle: "always" | "on-demand";
|
|
322
333
|
};
|
|
323
334
|
}>;
|
|
324
335
|
remove(id: string, confirmSlug: string, actor?: Actor): Promise<void>;
|
|
@@ -2,7 +2,7 @@ import { randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { parseManifest, SDK_VERSION } from '@synoikia/plugin-sdk';
|
|
5
|
-
import { asc, count, eq } from 'drizzle-orm';
|
|
5
|
+
import { and, asc, count, eq } from 'drizzle-orm';
|
|
6
6
|
import { writeAudit } from '../audit.js';
|
|
7
7
|
import { applyRegistrySync } from '../catalog/registry.js';
|
|
8
8
|
import { roleEndpointSwitches } from '../catalog/role-levels.js';
|
|
@@ -18,8 +18,8 @@ import { PluginProcess, PluginTimeoutError, PluginUnavailableError } from '../pl
|
|
|
18
18
|
import { getSettings } from '../settings.js';
|
|
19
19
|
import { PluginSupervisor } from '../plugins/supervisor.js';
|
|
20
20
|
import { mergeSecrets, secretFieldNames, storedSecretsFor, summarizeSecrets, validateConnection, } from './connection.js';
|
|
21
|
-
import { cleanInstanceSettings, parseInstanceSettings, readInstanceSettings } from './settings.js';
|
|
22
|
-
import {
|
|
21
|
+
import { cleanInstanceSettings, idleStopMs, parseInstanceSettings, readInstanceSettings } from './settings.js';
|
|
22
|
+
import { RUNS_PER_CPU, runsOf } from '../runtime/index.js';
|
|
23
23
|
/** Instance lifecycle (ADR-0013, @id:catalog-sync-schedule): connection config, one supervised plugin child per enabled
|
|
24
24
|
* instance, and sync scheduling. */
|
|
25
25
|
export const AUTH_METHODS = ['bearer', 'oauth', 'external'];
|
|
@@ -59,12 +59,17 @@ const instanceBySlug = tableCache([pluginInstances, plugins], (db, slug) => db
|
|
|
59
59
|
.where(eq(pluginInstances.slug, slug))
|
|
60
60
|
.get());
|
|
61
61
|
/** ADR-0003: one instance never takes every place, so another instance can always run. */
|
|
62
|
-
function checkRunsAtOnce(slug, settings) {
|
|
63
|
-
const total = SANDBOX_CONCURRENCY.total;
|
|
62
|
+
function checkRunsAtOnce(slug, settings, total) {
|
|
64
63
|
if (settings.runsAtOnce > total - 1)
|
|
65
64
|
throw new ValidationError('invalid_settings', `"${slug}" may have at most ${total - 1} runs at once, one less than the ${total} runs in total`);
|
|
66
65
|
return settings;
|
|
67
66
|
}
|
|
67
|
+
/** ADR-0022: an idle time only for a plugin that may stop. */
|
|
68
|
+
function checkIdleStop(given, manifest) {
|
|
69
|
+
const asked = given?.idleStopMs;
|
|
70
|
+
if (asked !== undefined && asked !== null && manifest.lifecycle !== 'on-demand')
|
|
71
|
+
throw new ValidationError('invalid_settings', `${manifest.name} must stay running, so it has no idle time`);
|
|
72
|
+
}
|
|
68
73
|
export class InstanceManager {
|
|
69
74
|
opts;
|
|
70
75
|
live = new Map();
|
|
@@ -77,6 +82,9 @@ export class InstanceManager {
|
|
|
77
82
|
this.db = opts.db;
|
|
78
83
|
this.now = opts.now ?? (() => new Date());
|
|
79
84
|
}
|
|
85
|
+
runTotal() {
|
|
86
|
+
return this.opts.runTotal?.() ?? RUNS_PER_CPU;
|
|
87
|
+
}
|
|
80
88
|
// ── lookups ────────────────────────────────────────────────────────────────────────────────────
|
|
81
89
|
row(id) {
|
|
82
90
|
const row = instanceRow(this.db, id);
|
|
@@ -212,7 +220,7 @@ export class InstanceManager {
|
|
|
212
220
|
sourceRef: instance.sourceRef,
|
|
213
221
|
lastSyncedAt: instance.lastSyncedAt,
|
|
214
222
|
lastSyncStatus: instance.lastSyncStatus,
|
|
215
|
-
settings:
|
|
223
|
+
settings: this.effectiveSettings(instance, manifest),
|
|
216
224
|
plugin: {
|
|
217
225
|
id: plugin.id,
|
|
218
226
|
pluginId: plugin.pluginId,
|
|
@@ -221,6 +229,7 @@ export class InstanceManager {
|
|
|
221
229
|
status: plugin.status,
|
|
222
230
|
labels: manifest?.labels,
|
|
223
231
|
attestation: manifest?.capabilities.attestation ?? false,
|
|
232
|
+
lifecycle: manifest?.lifecycle ?? 'always',
|
|
224
233
|
},
|
|
225
234
|
};
|
|
226
235
|
}
|
|
@@ -228,6 +237,11 @@ export class InstanceManager {
|
|
|
228
237
|
isServing(instance, plugin) {
|
|
229
238
|
return instance.enabled && plugin.enabled && plugin.status === 'ok';
|
|
230
239
|
}
|
|
240
|
+
/** The settings as the instance runs them: the idle time follows the plugin (ADR-0022). */
|
|
241
|
+
effectiveSettings(instance, manifest) {
|
|
242
|
+
const settings = this.settingsOf(instance);
|
|
243
|
+
return { ...settings, idleStopMs: idleStopMs(settings, manifest?.lifecycle) };
|
|
244
|
+
}
|
|
231
245
|
settingsOf(instance) {
|
|
232
246
|
return readInstanceSettings(instance.settings, `/${instance.slug} settings`);
|
|
233
247
|
}
|
|
@@ -286,8 +300,11 @@ export class InstanceManager {
|
|
|
286
300
|
const live = this.live.get(instanceId);
|
|
287
301
|
if (!live)
|
|
288
302
|
throw new PluginUnavailableError();
|
|
303
|
+
// ADR-0022: each call through the gate, such as a run resumed after its approval, counts as use.
|
|
304
|
+
live.lastCall = this.now().getTime();
|
|
289
305
|
return live.supervisor.client;
|
|
290
306
|
},
|
|
307
|
+
start: () => this.ensureFresh(instanceId, { start: true }),
|
|
291
308
|
catalogVersion: () => {
|
|
292
309
|
const version = this.live.get(instanceId)?.version;
|
|
293
310
|
const synced = instanceRow(this.db, instanceId)?.catalogPluginVersion;
|
|
@@ -339,7 +356,8 @@ export class InstanceManager {
|
|
|
339
356
|
if (input.authMethods?.some((m) => !AUTH_METHODS.includes(m))) {
|
|
340
357
|
throw new ValidationError('invalid_auth_method', 'Unknown client auth method');
|
|
341
358
|
}
|
|
342
|
-
const settings = checkRunsAtOnce(slug, parseInstanceSettings(input.settings));
|
|
359
|
+
const settings = checkRunsAtOnce(slug, parseInstanceSettings(input.settings), this.runTotal());
|
|
360
|
+
checkIdleStop(input.settings, manifest);
|
|
343
361
|
const { config, secrets } = validateConnection(manifest, input.connection);
|
|
344
362
|
const id = randomUUID();
|
|
345
363
|
this.db.transaction((tx) => {
|
|
@@ -399,7 +417,11 @@ export class InstanceManager {
|
|
|
399
417
|
// rejects doesn't block saving an unrelated change.
|
|
400
418
|
const stored = cleanInstanceSettings(before.settings, `/${before.slug} settings`).cleaned;
|
|
401
419
|
const merged = { ...stored, ...patch.settings };
|
|
402
|
-
|
|
420
|
+
const parsed = parseInstanceSettings(merged);
|
|
421
|
+
// A lowered total caps a stored limit at run time; only a new limit is checked against it.
|
|
422
|
+
const asked = patch.settings?.runsAtOnce;
|
|
423
|
+
set.settings = asked === undefined ? parsed : checkRunsAtOnce(before.slug, parsed, this.runTotal());
|
|
424
|
+
checkIdleStop(patch.settings, this.plugin(before.pluginId).parsed);
|
|
403
425
|
}
|
|
404
426
|
if (Object.keys(set).length === 0)
|
|
405
427
|
return this.get(id);
|
|
@@ -668,13 +690,19 @@ export class InstanceManager {
|
|
|
668
690
|
if (live.supervisor.status !== 'ready')
|
|
669
691
|
continue;
|
|
670
692
|
const row = instanceRow(this.db, id);
|
|
671
|
-
const
|
|
672
|
-
if (!
|
|
693
|
+
const after = row && idleStopMs(this.settingsOf(row), pluginRow(this.db, row.pluginId)?.parsed?.lifecycle);
|
|
694
|
+
if (!after)
|
|
673
695
|
continue;
|
|
674
696
|
const unused = () => !live.syncing &&
|
|
675
697
|
!live.catalogChangedTimer &&
|
|
676
698
|
runsOf(id) === 0 &&
|
|
677
|
-
this.now().getTime() - live.lastCall >=
|
|
699
|
+
this.now().getTime() - live.lastCall >= after &&
|
|
700
|
+
!this.opts.parkedIn?.(id) &&
|
|
701
|
+
!this.db
|
|
702
|
+
.select({ id: pendingApprovals.id })
|
|
703
|
+
.from(pendingApprovals)
|
|
704
|
+
.where(and(eq(pendingApprovals.instanceId, id), eq(pendingApprovals.status, 'pending')))
|
|
705
|
+
.get();
|
|
678
706
|
if (unused())
|
|
679
707
|
void live.supervisor.idle(unused);
|
|
680
708
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/instances/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/instances/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,12 @@ export declare const InstanceSettingsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
17
17
|
}, z.core.$strip>>;
|
|
18
18
|
extraRedactKeys: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
19
19
|
syncMaxAgeMs: z.ZodDefault<z.ZodNumber>;
|
|
20
|
-
idleStopMs: z.
|
|
20
|
+
idleStopMs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
21
21
|
memoryMb: z.ZodDefault<z.ZodNumber>;
|
|
22
22
|
}, z.core.$strip>>;
|
|
23
23
|
export type InstanceSettings = z.infer<typeof InstanceSettingsSchema>;
|
|
24
|
+
/** ADR-0022: only an `on-demand` plugin stops, after 10 minutes unless the admin chose another time. */
|
|
25
|
+
export declare function idleStopMs(settings: InstanceSettings, lifecycle: 'always' | 'on-demand' | undefined): number | null;
|
|
24
26
|
export declare function parseInstanceSettings(raw: unknown): InstanceSettings;
|
|
25
27
|
/** Stored instance settings, read leniently (a field a newer schema rejects falls back to its default). */
|
|
26
28
|
export declare function readInstanceSettings(raw: unknown, label?: string): InstanceSettings;
|
|
@@ -40,8 +42,8 @@ export declare function cleanInstanceSettings(raw: unknown, label: string): {
|
|
|
40
42
|
};
|
|
41
43
|
extraRedactKeys: string[];
|
|
42
44
|
syncMaxAgeMs: number;
|
|
43
|
-
idleStopMs: number | null;
|
|
44
45
|
memoryMb: number;
|
|
46
|
+
idleStopMs?: number | null | undefined;
|
|
45
47
|
};
|
|
46
48
|
cleaned: unknown;
|
|
47
49
|
dropped: string[];
|
|
@@ -19,7 +19,7 @@ export const InstanceSettingsSchema = z
|
|
|
19
19
|
executePerMinute: z.number().int().min(1).max(10_000).default(30),
|
|
20
20
|
writesPerMinute: z.number().int().min(1).max(10_000).default(10),
|
|
21
21
|
/** Runs that go at once on this instance; more wait for a place (ADR-0003). */
|
|
22
|
-
runsAtOnce: z.number().int().min(1).max(256).default(4),
|
|
22
|
+
runsAtOnce: z.number().int().min(1, 'must be at least 1').max(256).default(4),
|
|
23
23
|
sandbox: z
|
|
24
24
|
.object({
|
|
25
25
|
timeoutMs: z.number().int().min(100).max(120_000).default(10_000),
|
|
@@ -40,18 +40,24 @@ export const InstanceSettingsSchema = z
|
|
|
40
40
|
.min(60_000)
|
|
41
41
|
.max(7 * 24 * 60 * 60_000)
|
|
42
42
|
.default(60 * 60_000),
|
|
43
|
-
/** How long nobody calls an `on-demand` plugin before its child stops; null keeps it running (ADR-0022). */
|
|
43
|
+
/** How long nobody calls an `on-demand` plugin before its child stops; null keeps it running, unset is 10 minutes (ADR-0022). */
|
|
44
44
|
idleStopMs: z
|
|
45
45
|
.number()
|
|
46
46
|
.int()
|
|
47
|
-
.min(5 * 60_000)
|
|
47
|
+
.min(5 * 60_000, 'an instance stops after 5 minutes at the least')
|
|
48
48
|
.max(24 * 60 * 60_000)
|
|
49
49
|
.nullable()
|
|
50
|
-
.
|
|
50
|
+
.optional(),
|
|
51
51
|
/** Plugin child heap limit (ADR-0014). */
|
|
52
52
|
memoryMb: z.number().int().min(64).max(4096).default(256),
|
|
53
53
|
})
|
|
54
54
|
.prefault({});
|
|
55
|
+
/** ADR-0022: only an `on-demand` plugin stops, after 10 minutes unless the admin chose another time. */
|
|
56
|
+
export function idleStopMs(settings, lifecycle) {
|
|
57
|
+
if (lifecycle !== 'on-demand')
|
|
58
|
+
return null;
|
|
59
|
+
return settings.idleStopMs === undefined ? 10 * 60_000 : settings.idleStopMs;
|
|
60
|
+
}
|
|
55
61
|
export function parseInstanceSettings(raw) {
|
|
56
62
|
return InstanceSettingsSchema.parse(raw ?? {});
|
|
57
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/instances/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5D,oFAAoF;AACpF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,4DAA4D;IAC5D,iBAAiB,EAAE,CAAC;SACjB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,MAAM,CAAC;SACX,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;SACrB,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC;IACvB;sHACkH;IAClH,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/D,qGAAqG;IACrG,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,wEAAwE;IACxE,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,+EAA+E;IAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/instances/settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,6 +73,8 @@ export declare class ExecutionRegistry {
|
|
|
73
73
|
private state;
|
|
74
74
|
/** Waits for the result or a new approval, up to `waitMs`. A collected result removes the entry. */
|
|
75
75
|
wait(id: string, owner: string, instanceId: string, waitMs: number, signal?: AbortSignal): Promise<ExecuteResult | 'not_found' | 'busy'>;
|
|
76
|
+
/** Whether a parked execution of the instance has not ended yet (ADR-0022). */
|
|
77
|
+
parkedIn(instanceId: string): boolean;
|
|
76
78
|
/** Ends the parked runs of one endpoint, or all of them. Their approvals are cancelled by the gate. */
|
|
77
79
|
abort(instanceId?: string): void;
|
|
78
80
|
private changed;
|
|
@@ -135,6 +135,13 @@ export class ExecutionRegistry {
|
|
|
135
135
|
e.attached = false;
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
+
/** Whether a parked execution of the instance has not ended yet (ADR-0022). */
|
|
139
|
+
parkedIn(instanceId) {
|
|
140
|
+
for (const e of this.entries.values())
|
|
141
|
+
if (!e.result && e.instanceId === instanceId)
|
|
142
|
+
return true;
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
138
145
|
/** Ends the parked runs of one endpoint, or all of them. Their approvals are cancelled by the gate. */
|
|
139
146
|
abort(instanceId) {
|
|
140
147
|
for (const e of this.entries.values())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executions.js","sourceRoot":"","sources":["../../src/runtime/executions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executions.js","sourceRoot":"","sources":["../../src/runtime/executions.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
import type { Db } from '../db/index.js';
|
|
1
2
|
import type { CallerContext, GateDeps, InstanceRuntime } from '../gate/pipeline.js';
|
|
2
3
|
import type { ExecuteResult } from './executions.js';
|
|
3
4
|
import type { SandboxResult } from '../sandbox/index.js';
|
|
4
5
|
/** The engines behind the `search` and `execute` tools (ADR-0003). */
|
|
5
6
|
/** Sandbox caps (ADR-0003): runs per minute per principal and instance, and concurrent isolates per
|
|
6
7
|
* instance (an instance setting) and in total. Over a cap a run waits for a place, first come first served. */
|
|
7
|
-
export declare const
|
|
8
|
-
total: number;
|
|
9
|
-
};
|
|
8
|
+
export declare const RUNS_PER_CPU = 16;
|
|
10
9
|
/** How long a run waits for a place before core answers `BUSY`; the wait is not sandbox time. */
|
|
11
10
|
export declare const ADMISSION_WAIT_MS = 2000;
|
|
12
11
|
/** Runs of the instance that hold or wait for a place. */
|
|
13
12
|
export declare const runsOf: (instanceId: string) => number;
|
|
14
13
|
/** Scripts running now, across all instances (shutdown waits for cancelled ones to return). */
|
|
15
14
|
export declare const sandboxesRunning: () => number;
|
|
15
|
+
/** The total of runs at once: the admin's, or 16 for each CPU, from 2 to 256. */
|
|
16
|
+
export declare function sandboxTotal(db: Db, cpus: number): number;
|
|
16
17
|
export declare function executeCode(deps: GateDeps, rt: InstanceRuntime, caller: CallerContext, code: string, signal?: AbortSignal): Promise<ExecuteResult>;
|
|
17
18
|
/** `resume(executionId)` (ADR-0006): the parked run's result, or that it still waits. */
|
|
18
19
|
export declare function resumeExecution(deps: GateDeps, rt: InstanceRuntime, caller: CallerContext, executionId: string, signal?: AbortSignal): Promise<ExecuteResult>;
|
package/dist/runtime/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { accessInput, catalogOf, listGroups } from '../catalog/groups.js';
|
|
|
5
5
|
import { loadCaps } from '../catalog/role-levels.js';
|
|
6
6
|
import { findRegistryEntries } from '../catalog/registry.js';
|
|
7
7
|
import { guides, operationGroups, operations } from '../db/schema.js';
|
|
8
|
+
import { getSettings } from '../settings.js';
|
|
8
9
|
import { effectiveAccess } from '../gate/access.js';
|
|
9
10
|
import { currentGuide, issueAttestationKey } from '../gate/attestation.js';
|
|
10
11
|
import { createGateBindings, principalKey } from '../gate/pipeline.js';
|
|
@@ -13,7 +14,7 @@ import { BindingError, runInSandbox } from '../sandbox/index.js';
|
|
|
13
14
|
/** The engines behind the `search` and `execute` tools (ADR-0003). */
|
|
14
15
|
/** Sandbox caps (ADR-0003): runs per minute per principal and instance, and concurrent isolates per
|
|
15
16
|
* instance (an instance setting) and in total. Over a cap a run waits for a place, first come first served. */
|
|
16
|
-
export const
|
|
17
|
+
export const RUNS_PER_CPU = 16;
|
|
17
18
|
/** How long a run waits for a place before core answers `BUSY`; the wait is not sandbox time. */
|
|
18
19
|
export const ADMISSION_WAIT_MS = 2_000;
|
|
19
20
|
const running = new Map();
|
|
@@ -30,7 +31,11 @@ const BUSY = {
|
|
|
30
31
|
error: { code: 'BUSY', message: 'Too many scripts are running; try again shortly' },
|
|
31
32
|
logs: [],
|
|
32
33
|
};
|
|
33
|
-
const fits = (instanceId, cap) => (running.get(instanceId) ?? 0) < cap && runningTotal <
|
|
34
|
+
const fits = (instanceId, cap, total) => (running.get(instanceId) ?? 0) < cap && runningTotal < total;
|
|
35
|
+
/** The total of runs at once: the admin's, or 16 for each CPU, from 2 to 256. */
|
|
36
|
+
export function sandboxTotal(db, cpus) {
|
|
37
|
+
return getSettings(db, 'runtime').runsAtOnce ?? Math.min(256, Math.max(2, RUNS_PER_CPU * cpus));
|
|
38
|
+
}
|
|
34
39
|
/** Takes a place; the returned release hands it to the oldest waiting run that fits. */
|
|
35
40
|
function take(instanceId) {
|
|
36
41
|
running.set(instanceId, (running.get(instanceId) ?? 0) + 1);
|
|
@@ -42,7 +47,7 @@ function take(instanceId) {
|
|
|
42
47
|
released = true;
|
|
43
48
|
running.set(instanceId, (running.get(instanceId) ?? 1) - 1);
|
|
44
49
|
runningTotal--;
|
|
45
|
-
const next = waiting.findIndex((w) => fits(w.instanceId, w.cap));
|
|
50
|
+
const next = waiting.findIndex((w) => fits(w.instanceId, w.cap, w.total));
|
|
46
51
|
if (next >= 0)
|
|
47
52
|
waiting.splice(next, 1)[0].admit();
|
|
48
53
|
};
|
|
@@ -60,9 +65,10 @@ async function admit(deps, rt, caller, signal) {
|
|
|
60
65
|
};
|
|
61
66
|
}
|
|
62
67
|
// Also capped here, in case the total is lowered below a stored limit (ADR-0003).
|
|
63
|
-
const
|
|
68
|
+
const total = deps.runTotal?.() ?? RUNS_PER_CPU;
|
|
69
|
+
const cap = Math.min(rt.settings.runsAtOnce, total - 1);
|
|
64
70
|
// A free place never waits beside a run that fits it: a release hands it over at once.
|
|
65
|
-
if (fits(rt.instanceId, cap))
|
|
71
|
+
if (fits(rt.instanceId, cap, total))
|
|
66
72
|
return take(rt.instanceId);
|
|
67
73
|
return new Promise((resolve) => {
|
|
68
74
|
const leave = () => {
|
|
@@ -79,6 +85,7 @@ async function admit(deps, rt, caller, signal) {
|
|
|
79
85
|
const entry = {
|
|
80
86
|
instanceId: rt.instanceId,
|
|
81
87
|
cap,
|
|
88
|
+
total,
|
|
82
89
|
admit: () => {
|
|
83
90
|
leave();
|
|
84
91
|
resolve(take(rt.instanceId));
|
|
@@ -301,6 +308,7 @@ function guideBindings(deps, rt, caller) {
|
|
|
301
308
|
return { key: op.key, required: false };
|
|
302
309
|
let guide;
|
|
303
310
|
try {
|
|
311
|
+
await rt.start?.();
|
|
304
312
|
guide = await rt.plugin().call('getGuide', { key: op.key });
|
|
305
313
|
}
|
|
306
314
|
catch {
|