@plurnk/plurnk-service 0.44.0 → 0.46.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/.env.example +41 -24
- package/README.md +37 -18
- package/SPEC.md +34 -10
- package/dist/core/ChannelWrite.d.ts +4 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +9 -0
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +69 -0
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +146 -103
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +307 -0
- package/dist/core/ExecutorRegistry.d.ts +4 -2
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +20 -5
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +3 -0
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +37 -0
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +8 -1
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +50 -0
- package/dist/core/packet-wire.d.ts +1 -0
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +11 -0
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plugin-attribution.d.ts +5 -0
- package/dist/core/plugin-attribution.d.ts.map +1 -0
- package/dist/core/plugin-attribution.js +39 -0
- package/dist/core/plugin-attribution.js.map +1 -0
- package/dist/core/run-ops.sql +16 -0
- package/dist/core/scheme-types.d.ts +1 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/session-settings.d.ts +1 -0
- package/dist/core/session-settings.d.ts.map +1 -1
- package/dist/core/session-settings.js +2 -1
- package/dist/core/session-settings.js.map +1 -1
- package/dist/schemes/Exec.d.ts +2 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +39 -22
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +27 -3
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.sql +37 -0
- package/dist/schemes/_entry-crud.sql +88 -0
- package/dist/schemes/_entry-find.sql +31 -0
- package/dist/schemes/_entry-graph.sql +60 -0
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +11 -3
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +20 -0
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +14 -7
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +80 -0
- package/dist/schemes/exec-abort.d.ts +11 -0
- package/dist/schemes/exec-abort.d.ts.map +1 -0
- package/dist/schemes/exec-abort.js +23 -0
- package/dist/schemes/exec-abort.js.map +1 -0
- package/dist/schemes/exec-env.js +1 -1
- package/dist/schemes/exec-env.js.map +1 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +162 -76
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/clientTurn.sql +10 -0
- package/dist/server/drain.sql +92 -0
- package/dist/server/dsl.d.ts.map +1 -1
- package/dist/server/dsl.js +11 -4
- package/dist/server/dsl.js.map +1 -1
- package/dist/server/envelope.sql +75 -0
- package/dist/server/logEntry.sql +10 -0
- package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -1
- package/dist/server/methods/_dispatchAsClient.js +11 -6
- package/dist/server/methods/_dispatchAsClient.js.map +1 -1
- package/dist/server/methods/entry_read.sql +21 -0
- package/dist/server/methods/log_read.sql +11 -0
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +31 -11
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/loop_run.sql +9 -0
- package/dist/server/methods/session_create.d.ts.map +1 -1
- package/dist/server/methods/session_create.js +10 -3
- package/dist/server/methods/session_create.js.map +1 -1
- package/dist/service.d.ts +6 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +221 -0
- package/dist/service.js.map +1 -0
- package/migrations/0000-00-00.01_schema.sql +2 -2
- package/package.json +27 -13
- package/bin/plurnk-service.ts +0 -176
- package/dist/core/ProviderRegistry.d.ts +0 -42
- package/dist/core/ProviderRegistry.d.ts.map +0 -1
- package/dist/core/ProviderRegistry.js +0 -72
- package/dist/core/ProviderRegistry.js.map +0 -1
- package/dist/core/line-marker.d.ts +0 -23
- package/dist/core/line-marker.d.ts.map +0 -1
- package/dist/core/line-marker.js +0 -321
- package/dist/core/line-marker.js.map +0 -1
- package/dist/core/matcher.d.ts +0 -12
- package/dist/core/matcher.d.ts.map +0 -1
- package/dist/core/matcher.js +0 -72
- package/dist/core/matcher.js.map +0 -1
- package/dist/core/mimetype-binary.d.ts +0 -6
- package/dist/core/mimetype-binary.d.ts.map +0 -1
- package/dist/core/mimetype-binary.js +0 -82
- package/dist/core/mimetype-binary.js.map +0 -1
- package/dist/core/path-mimetype.d.ts +0 -3
- package/dist/core/path-mimetype.d.ts.map +0 -1
- package/dist/core/path-mimetype.js +0 -47
- package/dist/core/path-mimetype.js.map +0 -1
- package/dist/core/plugin-trust.d.ts +0 -4
- package/dist/core/plugin-trust.d.ts.map +0 -1
- package/dist/core/plugin-trust.js +0 -23
- package/dist/core/plugin-trust.js.map +0 -1
- package/dist/providers/Mock.d.ts +0 -43
- package/dist/providers/Mock.d.ts.map +0 -1
- package/dist/providers/Mock.js +0 -36
- package/dist/providers/Mock.js.map +0 -1
- package/dist/server/methods/op_hide.d.ts +0 -5
- package/dist/server/methods/op_hide.d.ts.map +0 -1
- package/dist/server/methods/op_hide.js +0 -24
- package/dist/server/methods/op_hide.js.map +0 -1
- package/dist/server/methods/op_show.d.ts +0 -5
- package/dist/server/methods/op_show.d.ts.map +0 -1
- package/dist/server/methods/op_show.js +0 -24
- package/dist/server/methods/op_show.js.map +0 -1
- package/dist/server/methods/session_set_persona.d.ts +0 -5
- package/dist/server/methods/session_set_persona.d.ts.map +0 -1
- package/dist/server/methods/session_set_persona.js +0 -29
- package/dist/server/methods/session_set_persona.js.map +0 -1
package/dist/server/Daemon.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
// SPEC §rpc.
|
|
4
4
|
import { WebSocketServer } from "ws";
|
|
5
5
|
import { readFile } from "node:fs/promises";
|
|
6
|
-
import { resolve } from "node:path";
|
|
6
|
+
import { resolve, dirname } from "node:path";
|
|
7
|
+
import ChannelWrite from "../core/ChannelWrite.js";
|
|
7
8
|
import { Paths } from "../index.js";
|
|
8
9
|
import Engine from "../core/Engine.js";
|
|
9
10
|
import ExecutorRegistry from "../core/ExecutorRegistry.js";
|
|
@@ -54,6 +55,7 @@ export default class Daemon {
|
|
|
54
55
|
#provider;
|
|
55
56
|
#registry;
|
|
56
57
|
#nodeModulesPath;
|
|
58
|
+
#discoveryCwd;
|
|
57
59
|
#wss = null;
|
|
58
60
|
#connections = new Set();
|
|
59
61
|
// Run-level drain registry. At most one drain per run. The stored object
|
|
@@ -71,19 +73,23 @@ export default class Daemon {
|
|
|
71
73
|
// any single (ephemeral) drain; replaced with a fresh controller once
|
|
72
74
|
// aborted so a later loop.run isn't born cancelled.
|
|
73
75
|
#runAborts = new Map();
|
|
76
|
+
// Per-run drain-transition lock — see #withDrainLock (R4 / §run-lifecycle-single-drain).
|
|
77
|
+
#drainLocks = new Map();
|
|
74
78
|
constructor({ db, schemes, mimetypes, provider, nodeModulesPath, }) {
|
|
75
79
|
this.#db = db;
|
|
76
80
|
this.#schemes = schemes ?? new SchemeRegistry();
|
|
77
81
|
this.#provider = provider ?? null;
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
//
|
|
82
|
+
// Plugin discovery resolves from the SERVICE's node_modules (its exec/scheme/mimetype
|
|
83
|
+
// deps), NOT process.cwd() — else a globally-installed daemon started from a project dir
|
|
84
|
+
// finds no plugins. The bin passes the package-relative path; cwd default holds for
|
|
85
|
+
// in-repo tests. discover() takes a cwd and joins node_modules, so derive the parent.
|
|
86
|
+
this.#nodeModulesPath = nodeModulesPath ?? resolve(process.cwd(), "node_modules");
|
|
87
|
+
this.#discoveryCwd = dirname(this.#nodeModulesPath);
|
|
88
|
+
// Mimetypes owns discovery + detection; we inject the tokenize fn (from the provider's
|
|
89
|
+
// countTokens) and default to text/markdown.
|
|
85
90
|
this.#mimetypes = mimetypes ?? new Mimetypes({
|
|
86
91
|
defaultMimetype: "text/markdown",
|
|
92
|
+
discoverOptions: { cwd: this.#discoveryCwd },
|
|
87
93
|
});
|
|
88
94
|
this.#engine = new Engine({
|
|
89
95
|
db, schemes: this.#schemes, mimetypes: this.#mimetypes,
|
|
@@ -112,7 +118,6 @@ export default class Daemon {
|
|
|
112
118
|
cancelRun: (runId) => this.cancelDrain(runId, "killed via run:// KILL"),
|
|
113
119
|
telemetryEventNotify: (sessionId, payload) => this.notifyTelemetryEvent(sessionId, payload),
|
|
114
120
|
});
|
|
115
|
-
this.#nodeModulesPath = nodeModulesPath ?? resolve(process.cwd(), "node_modules");
|
|
116
121
|
this.#registry = new MethodRegistry();
|
|
117
122
|
this.#registerBuiltins();
|
|
118
123
|
this.#registerNotifications();
|
|
@@ -157,12 +162,15 @@ export default class Daemon {
|
|
|
157
162
|
// Discover + probe the installed executor siblings, then hand the
|
|
158
163
|
// registry to the engine for exec dispatch (plurnk-service#181). The
|
|
159
164
|
// shell is the default runtime, so its executor must boot usable.
|
|
160
|
-
const executors = await ExecutorRegistry.build({ defaultRuntime: "sh" });
|
|
165
|
+
const executors = await ExecutorRegistry.build({ defaultRuntime: "sh", cwd: this.#discoveryCwd });
|
|
161
166
|
this.#engine.setExecutors(executors);
|
|
167
|
+
// §exec — mint a scheme per runtime tag so exec output entries address by tag
|
|
168
|
+
// authority (sh:///l/t/s). The "exec" scheme stays for the EXEC op dispatch.
|
|
169
|
+
this.#schemes.registerRuntimeSchemes(executors.availableRuntimes());
|
|
162
170
|
// Discover external @plurnk/plurnk-schemes-* siblings + register them
|
|
163
171
|
// (agnostic, by plurnk.kind:"scheme"). They light up http://, etc. with
|
|
164
172
|
// no further engine change — #run wraps their ctx in SchemeCtxImpl (#195).
|
|
165
|
-
await this.#schemes.discoverExternal();
|
|
173
|
+
await this.#schemes.discoverExternal(this.#discoveryCwd);
|
|
166
174
|
return new Promise((resolve, reject) => {
|
|
167
175
|
const wss = new WebSocketServer({ host, port });
|
|
168
176
|
wss.on("listening", () => {
|
|
@@ -377,14 +385,14 @@ export default class Daemon {
|
|
|
377
385
|
loop_id: loopId, flags: JSON.stringify(merged),
|
|
378
386
|
});
|
|
379
387
|
}
|
|
380
|
-
// Guarantee a drain claims the loop we just enqueued.
|
|
381
|
-
// check-and-start
|
|
382
|
-
//
|
|
383
|
-
//
|
|
384
|
-
//
|
|
385
|
-
// present only when THIS call started the drain — loop.run
|
|
386
|
-
// fast-path response on that.
|
|
387
|
-
const started = this.#ensureDrain({
|
|
388
|
+
// Guarantee a drain claims the loop we just enqueued. #ensureDrain runs its
|
|
389
|
+
// check-and-start UNDER the per-run drain lock (§run-lifecycle-single-drain),
|
|
390
|
+
// serialized against a draining sibling's teardown relinquish so the two can't
|
|
391
|
+
// both register a drain (R4). A live drain re-claims the loop in its own
|
|
392
|
+
// iteration or its lock-held exit re-claim, so it's never stranded.
|
|
393
|
+
// firstLoopPromise is present only when THIS call started the drain — loop.run
|
|
394
|
+
// keys its fast-path response on that.
|
|
395
|
+
const started = await this.#ensureDrain({
|
|
388
396
|
sessionId, runId, provider: args.provider,
|
|
389
397
|
systemPrompt: args.systemPrompt,
|
|
390
398
|
maxTurns: args.maxTurns ?? Number(process.env.PLURNK_MAX_TURNS ?? "50"),
|
|
@@ -429,17 +437,21 @@ export default class Daemon {
|
|
|
429
437
|
controller.signal.throwIfAborted();
|
|
430
438
|
let loopRow = await claim();
|
|
431
439
|
if (loopRow === undefined) {
|
|
432
|
-
// Queue empty →
|
|
433
|
-
//
|
|
434
|
-
//
|
|
435
|
-
//
|
|
436
|
-
//
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
+
// Queue empty → teardown UNDER the per-run drain lock (R4 / I1),
|
|
441
|
+
// serialized against #ensureDrain so a concurrent inject can't
|
|
442
|
+
// start a 2nd drain in the gap. Re-claim while holding the lock;
|
|
443
|
+
// relinquish the registry slot only if it's empty too. A loop
|
|
444
|
+
// that raced in is returned and run — we stay registered, so
|
|
445
|
+
// there's no transient delete for #ensureDrain to catch.
|
|
446
|
+
loopRow = await this.#withDrainLock(runId, async () => {
|
|
447
|
+
const claimed = await claim();
|
|
448
|
+
if (claimed === undefined && this.#activeDrains.get(runId) === handle) {
|
|
449
|
+
this.#activeDrains.delete(runId);
|
|
450
|
+
}
|
|
451
|
+
return claimed;
|
|
452
|
+
});
|
|
440
453
|
if (loopRow === undefined)
|
|
441
454
|
break;
|
|
442
|
-
this.#activeDrains.set(runId, handle);
|
|
443
455
|
}
|
|
444
456
|
currentLoopId = loopRow.id;
|
|
445
457
|
const onDispatch = (logEntryId) => {
|
|
@@ -458,11 +470,18 @@ export default class Daemon {
|
|
|
458
470
|
onDispatch,
|
|
459
471
|
signal: controller.signal,
|
|
460
472
|
});
|
|
473
|
+
if (result.finalStatus === 202) {
|
|
474
|
+
// The loop SLEPT (SEND[202]) — suspended, not terminated. Leave it at 202
|
|
475
|
+
// (resumable); no loop/terminated, no orphan-reconcile. An OPEN event
|
|
476
|
+
// (#handleWakeRun) re-queues it to resume in place. §run-lifecycle-wake-liveness.
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
461
479
|
const usage = await this.#engine.loopUsage(loopRow.id);
|
|
462
480
|
this.#broadcast({ sessionId }, null, "loop/terminated", {
|
|
463
481
|
loopId: loopRow.id,
|
|
464
482
|
finalStatus: result.finalStatus,
|
|
465
483
|
hitMaxTurns: result.hitMaxTurns,
|
|
484
|
+
turnIds: result.turnIds,
|
|
466
485
|
usage,
|
|
467
486
|
});
|
|
468
487
|
loopsDrained++;
|
|
@@ -485,27 +504,27 @@ export default class Daemon {
|
|
|
485
504
|
}
|
|
486
505
|
}
|
|
487
506
|
catch (err) {
|
|
488
|
-
if (
|
|
489
|
-
|
|
490
|
-
//
|
|
491
|
-
//
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
turnIds: [],
|
|
498
|
-
finalStatus: 499,
|
|
499
|
-
hitMaxTurns: false,
|
|
500
|
-
usage: currentLoopId === null
|
|
501
|
-
? { promptTokens: 0, completionTokens: 0, costPico: 0 }
|
|
502
|
-
: await this.#engine.loopUsage(currentLoopId),
|
|
507
|
+
if (controller.signal.aborted) {
|
|
508
|
+
// #204 / Model 3 — loop.cancel / shutdown aborted the live drain. A cancellation
|
|
509
|
+
// is the loop's TERMINAL state (499), delivered via loop/terminated (loop.run no
|
|
510
|
+
// longer blocks to return it). A genuine error rejects firstLoopPromise.
|
|
511
|
+
const usage = currentLoopId === null
|
|
512
|
+
? { promptTokens: 0, completionTokens: 0, costPico: 0 }
|
|
513
|
+
: await this.#engine.loopUsage(currentLoopId);
|
|
514
|
+
if (currentLoopId !== null) {
|
|
515
|
+
this.#broadcast({ sessionId }, null, "loop/terminated", {
|
|
516
|
+
loopId: currentLoopId, finalStatus: 499, hitMaxTurns: false, turnIds: [], usage,
|
|
503
517
|
});
|
|
504
518
|
}
|
|
505
|
-
|
|
506
|
-
|
|
519
|
+
if (!firstSettled) {
|
|
520
|
+
firstSettled = true;
|
|
521
|
+
resolveFirst({ loopId: currentLoopId ?? 0, turnIds: [], finalStatus: 499, hitMaxTurns: false, usage });
|
|
507
522
|
}
|
|
508
523
|
}
|
|
524
|
+
else if (!firstSettled) {
|
|
525
|
+
firstSettled = true;
|
|
526
|
+
rejectFirst(err);
|
|
527
|
+
}
|
|
509
528
|
throw err;
|
|
510
529
|
}
|
|
511
530
|
finally {
|
|
@@ -526,16 +545,34 @@ export default class Daemon {
|
|
|
526
545
|
firstLoopPromise.catch(() => { });
|
|
527
546
|
return { firstLoopPromise, drainPromise };
|
|
528
547
|
}
|
|
529
|
-
//
|
|
530
|
-
//
|
|
531
|
-
//
|
|
532
|
-
//
|
|
533
|
-
//
|
|
534
|
-
//
|
|
548
|
+
// Per-run drain-transition lock (R4 / §run-lifecycle-single-drain). #ensureDrain's
|
|
549
|
+
// start and a drain's teardown relinquish both run under it, serialized, so the two
|
|
550
|
+
// can't interleave and register two drains for one run. The critical section is the
|
|
551
|
+
// registry decision only (never a loop's work) — a sub-ms hop at drain boundaries.
|
|
552
|
+
// A promise-chain mutex: each caller awaits the prior holder; the tail self-prunes
|
|
553
|
+
// when idle so the Map stays bounded to runs mid-transition.
|
|
554
|
+
#withDrainLock(runId, fn) {
|
|
555
|
+
const prev = this.#drainLocks.get(runId) ?? Promise.resolve();
|
|
556
|
+
const run = prev.then(fn, fn);
|
|
557
|
+
const tail = run.catch(() => { });
|
|
558
|
+
this.#drainLocks.set(runId, tail);
|
|
559
|
+
void tail.then(() => { if (this.#drainLocks.get(runId) === tail)
|
|
560
|
+
this.#drainLocks.delete(runId); });
|
|
561
|
+
return run;
|
|
562
|
+
}
|
|
563
|
+
// The drain guarantee, serialized per run via #withDrainLock so it can't race a
|
|
564
|
+
// sibling drain's teardown relinquish into a double-drain (R4). A live drain
|
|
565
|
+
// (registered, NOT aborting) will claim the just-enqueued loop in its own iteration
|
|
566
|
+
// or its lock-held exit re-claim → return null. A registered-but-ABORTING drain is
|
|
567
|
+
// in teardown and won't claim, so we don't defer to it — start fresh, or the loop
|
|
568
|
+
// strands on a cancel/resume race (I6 no-lost-loop). Otherwise start one.
|
|
535
569
|
#ensureDrain(opts) {
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
570
|
+
return this.#withDrainLock(opts.runId, async () => {
|
|
571
|
+
const existing = this.#activeDrains.get(opts.runId);
|
|
572
|
+
if (existing !== undefined && !existing.controller.signal.aborted)
|
|
573
|
+
return null;
|
|
574
|
+
return this.#startDrain(opts);
|
|
575
|
+
});
|
|
539
576
|
}
|
|
540
577
|
// After a loop terminates, promote any next-turn prompt it never consumed —
|
|
541
578
|
// an injected wake (stream conclusion) or a loop.run-while-active prompt
|
|
@@ -579,9 +616,21 @@ export default class Daemon {
|
|
|
579
616
|
*/
|
|
580
617
|
cancelDrain(runId, reason = "user_cancelled") {
|
|
581
618
|
const hadWork = this.#activeDrains.has(runId) || this.#runHasActiveStreams(runId);
|
|
619
|
+
// Stop the active drain's turn-generation (its loop closes 499). The run
|
|
620
|
+
// signal is the optimization path — the fast, listener-driven reap.
|
|
582
621
|
const scope = this.#runAborts.get(runId);
|
|
583
622
|
if (scope !== undefined && !scope.signal.aborted)
|
|
584
623
|
scope.abort(reason);
|
|
624
|
+
// Total reap by the REGISTRY (§run-lifecycle-total-reap): the durable source
|
|
625
|
+
// of truth. Every open subscription the run holds, aborted via its owning
|
|
626
|
+
// scheme — independent of the signal-listener timing, so an exec mid-spawn
|
|
627
|
+
// (registry row written before it is killable) is reaped too. A late spawn
|
|
628
|
+
// (registering after this) self-aborts against its captured, now-aborted
|
|
629
|
+
// epoch (§run-lifecycle-exec-loop-bound). Idempotent; fire-and-forget (the
|
|
630
|
+
// abort is sync, the registry read async; the 499 conclusion surfaces async).
|
|
631
|
+
void this.#reapRunStreams(runId).catch((err) => {
|
|
632
|
+
console.error(`reapRunStreams(${runId}) failed:`, err);
|
|
633
|
+
});
|
|
585
634
|
return hadWork;
|
|
586
635
|
}
|
|
587
636
|
// Does the run have an in-flight stream (a background exec)? Used only for
|
|
@@ -591,6 +640,19 @@ export default class Daemon {
|
|
|
591
640
|
const exec = this.#schemes.get("exec");
|
|
592
641
|
return exec?.hasActiveSpawns?.(runId) ?? false;
|
|
593
642
|
}
|
|
643
|
+
// The registry-routed reap (§run-lifecycle-total-reap): every open subscription
|
|
644
|
+
// the run holds, aborted via its owning scheme. The durable answer to "reap
|
|
645
|
+
// everything" — the in-process AbortSignal listener is the optimization, this is
|
|
646
|
+
// the source of truth: an exec mid-spawn (registry row written before it is
|
|
647
|
+
// killable) or a background exec from any past loop is caught regardless of
|
|
648
|
+
// listener timing. Idempotent — a stream the signal already reaped is a no-op.
|
|
649
|
+
async #reapRunStreams(runId) {
|
|
650
|
+
const open = await ChannelWrite.findOpenSubscriptionsForRun(this.#db, runId);
|
|
651
|
+
for (const { id, scheme } of open) {
|
|
652
|
+
const handler = this.#schemes.get(scheme);
|
|
653
|
+
handler?.abortSubscription?.(id);
|
|
654
|
+
}
|
|
655
|
+
}
|
|
594
656
|
/**
|
|
595
657
|
* Wake-on-completion handler. Streaming schemes call this when a
|
|
596
658
|
* subscription closes. If the run has an active loop, the channel
|
|
@@ -612,6 +674,20 @@ export default class Daemon {
|
|
|
612
674
|
});
|
|
613
675
|
return;
|
|
614
676
|
}
|
|
677
|
+
// No resurrection (§run-lifecycle-no-resurrection): a non-499 completion whose
|
|
678
|
+
// run was CANCELLED (idle + its scope aborted) must not start a fresh drain —
|
|
679
|
+
// the cancel was deliberate. The deliverable is already in the channel/log and
|
|
680
|
+
// surfaces as a `collect` environment delta (§env-delta) if the run is read or
|
|
681
|
+
// resumed; we just don't inject a turn. (An active run folds the wake into its
|
|
682
|
+
// next turn via inject below; a resumed run is active, never aborted, so it is
|
|
683
|
+
// unaffected.)
|
|
684
|
+
const scope = this.#runAborts.get(payload.runId);
|
|
685
|
+
if (scope?.signal.aborted === true && !this.#activeDrains.has(payload.runId)) {
|
|
686
|
+
this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
|
|
687
|
+
...payload, wakeAction: "skipped-cancelled",
|
|
688
|
+
});
|
|
689
|
+
return;
|
|
690
|
+
}
|
|
615
691
|
if (this.#provider === null) {
|
|
616
692
|
this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
|
|
617
693
|
...payload, wakeAction: "skipped-no-provider",
|
|
@@ -620,34 +696,44 @@ export default class Daemon {
|
|
|
620
696
|
}
|
|
621
697
|
try {
|
|
622
698
|
const systemPrompt = await readFile(Paths.instructionsSystem, "utf8");
|
|
623
|
-
//
|
|
624
|
-
//
|
|
625
|
-
//
|
|
626
|
-
//
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
699
|
+
// A slept (202) loop means the run PARKED (SEND[202]) → RESUME it IN PLACE: re-queue
|
|
700
|
+
// it (202→100) so the drain re-claims and CONTINUES it (seq>1 → no re-foist). Checked
|
|
701
|
+
// FIRST: the slept status is the run's true disposition regardless of a draining
|
|
702
|
+
// sibling mid-teardown (the #ensureDrain lock serializes the re-claim). No fresh loop,
|
|
703
|
+
// no summary-as-prompt — the resumed loop reads the concluded stream's own state from
|
|
704
|
+
// the manifest. §run-lifecycle-wake-liveness.
|
|
705
|
+
const slept = await this.#db.drain_find_slept_loop.get({ run_id: payload.runId });
|
|
706
|
+
if (slept !== undefined) {
|
|
707
|
+
await this.#db.drain_resume_slept_loop.run({ loop_id: slept.id });
|
|
708
|
+
const started = await this.#ensureDrain({
|
|
709
|
+
sessionId: payload.sessionId, runId: payload.runId, provider: this.#provider,
|
|
710
|
+
systemPrompt, maxTurns: Number(process.env.PLURNK_MAX_TURNS ?? "50"),
|
|
711
|
+
});
|
|
712
|
+
this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
|
|
713
|
+
...payload, wakeAction: "resumed-loop", wakeLoopId: slept.id,
|
|
714
|
+
});
|
|
715
|
+
started?.drainPromise?.catch((err) => {
|
|
716
|
+
console.error("wake resume drain failed:", err instanceof Error ? err.message : String(err));
|
|
717
|
+
});
|
|
718
|
+
return;
|
|
719
|
+
}
|
|
720
|
+
// No slept loop. An active drain folds the conclusion into the live loop's next turn
|
|
721
|
+
// (the model reads the concluded stream from the manifest) — no new loop.
|
|
722
|
+
if (this.#activeDrains.has(payload.runId)) {
|
|
723
|
+
const result = await this.inject({
|
|
724
|
+
sessionId: payload.sessionId, runId: payload.runId,
|
|
725
|
+
prompt: `${payload.summary}\n\nAutomated environment update; response optional.`,
|
|
726
|
+
provider: this.#provider, systemPrompt,
|
|
727
|
+
});
|
|
635
728
|
this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
|
|
636
729
|
...payload, wakeAction: "no-op-active-loop", wakeLoopId: result.loopId,
|
|
637
730
|
});
|
|
638
731
|
return;
|
|
639
732
|
}
|
|
640
|
-
//
|
|
641
|
-
//
|
|
642
|
-
// failures bubble to the catch block below.
|
|
733
|
+
// No slept loop, no active drain — nothing to resume (e.g. a SEND[200]-done run whose
|
|
734
|
+
// streams were swept). Surface the conclusion without opening a loop.
|
|
643
735
|
this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
|
|
644
|
-
...payload, wakeAction: "
|
|
645
|
-
});
|
|
646
|
-
// Drain runs in background; loop/terminated broadcasts come
|
|
647
|
-
// from #startDrain as each loop finishes. Don't await — the
|
|
648
|
-
// wake-notify path should return quickly.
|
|
649
|
-
result.drainPromise?.catch((err) => {
|
|
650
|
-
console.error("wake-on-completion drain failed:", err instanceof Error ? err.message : String(err));
|
|
736
|
+
...payload, wakeAction: "no-loop",
|
|
651
737
|
});
|
|
652
738
|
}
|
|
653
739
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
-- Client-origin turn helpers. Each client RPC op creates a synthetic turn
|
|
2
|
+
-- inside the connection's client loop with an empty packet shape.
|
|
3
|
+
|
|
4
|
+
-- PREP: client_turn_next_sequence
|
|
5
|
+
SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
|
|
6
|
+
|
|
7
|
+
-- PREP: client_turn_insert
|
|
8
|
+
INSERT INTO turns (loop_id, sequence, status, packet)
|
|
9
|
+
VALUES ($loop_id, $sequence, 200, $packet)
|
|
10
|
+
RETURNING id;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
-- Drain queries for the run-level loop queue (SPEC §_run_drain — TBD).
|
|
2
|
+
-- Mirrors rummy's AgentLoop drain pattern: enqueue loop at status=100,
|
|
3
|
+
-- claim atomically (100 → 102), execute, repeat.
|
|
4
|
+
|
|
5
|
+
-- PREP: drain_enqueue_loop
|
|
6
|
+
-- Insert a loop at queued state. Sequence is per-run, 1-based.
|
|
7
|
+
INSERT INTO loops (run_id, sequence, status, prompt)
|
|
8
|
+
VALUES ($run_id, $sequence, 100, $prompt)
|
|
9
|
+
RETURNING id;
|
|
10
|
+
|
|
11
|
+
-- PREP: drain_claim_next_loop
|
|
12
|
+
-- Atomic claim: flip the oldest queued loop in this run from 100 → 102 and
|
|
13
|
+
-- return it. Returns no row when the queue is empty. The ORDER BY sequence
|
|
14
|
+
-- + LIMIT 1 inside the subquery is the FIFO discipline.
|
|
15
|
+
UPDATE loops
|
|
16
|
+
SET status = 102
|
|
17
|
+
WHERE id = (
|
|
18
|
+
SELECT id FROM loops
|
|
19
|
+
WHERE run_id = $run_id AND status = 100
|
|
20
|
+
ORDER BY sequence ASC
|
|
21
|
+
LIMIT 1
|
|
22
|
+
)
|
|
23
|
+
RETURNING id, sequence, prompt, flags;
|
|
24
|
+
|
|
25
|
+
-- PREP: drain_current_loop_for_run
|
|
26
|
+
-- The currently-executing loop for a run (status=102). At most one per run
|
|
27
|
+
-- under drain semantics. Engine.inject uses this to write the prompt entry
|
|
28
|
+
-- for the right loop's next turn.
|
|
29
|
+
SELECT id, sequence FROM loops
|
|
30
|
+
WHERE run_id = $run_id AND status = 102
|
|
31
|
+
ORDER BY sequence ASC
|
|
32
|
+
LIMIT 1;
|
|
33
|
+
|
|
34
|
+
-- PREP: drain_next_turn_seq_for_loop
|
|
35
|
+
-- Next turn sequence for the given loop. Used by Engine.inject to compute
|
|
36
|
+
-- the path of the prompt entry it should write (plurnk:///prompt/<loop>/<N>).
|
|
37
|
+
SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
|
|
38
|
+
|
|
39
|
+
-- PREP: drain_get_run_session
|
|
40
|
+
-- Resolve runId → sessionId. Needed when wake/inject paths only have the
|
|
41
|
+
-- runId (e.g., a stream concluded in run X; daemon needs the session
|
|
42
|
+
-- context to write entries under the run's session scope).
|
|
43
|
+
SELECT session_id FROM runs WHERE id = $run_id;
|
|
44
|
+
|
|
45
|
+
-- PREP: drain_get_latest_prompt_body_for_loop
|
|
46
|
+
-- Sources packet.user.prompt at packet-build time. plurnk:///prompt/<loop>/<N>
|
|
47
|
+
-- entries accumulate per turn; the latest one (highest entries.id) is the
|
|
48
|
+
-- "current" prompt the model sees in user.prompt. Falls back to NULL when
|
|
49
|
+
-- no prompt entry exists for the loop (caller substitutes runLoop's
|
|
50
|
+
-- messages parameter for backward compat with tests that bypass inject).
|
|
51
|
+
-- Pattern is built JS-side as `/prompt/<loop_id>/%` (canonical leading-slash storage form,
|
|
52
|
+
-- matching the foist's #pathnameOf and the inject) — SqlRite's parameter
|
|
53
|
+
-- binding doesn't reliably coerce integers for `LIKE` with `||`.
|
|
54
|
+
SELECT c.content, e.pathname
|
|
55
|
+
FROM entries e
|
|
56
|
+
JOIN entry_channels c ON c.entry_id = e.id
|
|
57
|
+
WHERE e.scheme = 'plurnk'
|
|
58
|
+
AND e.pathname LIKE $pattern
|
|
59
|
+
AND c.name = 'body'
|
|
60
|
+
ORDER BY e.id DESC
|
|
61
|
+
LIMIT 1;
|
|
62
|
+
|
|
63
|
+
-- PREP: drain_orphaned_prompt_for_loop
|
|
64
|
+
-- A loop can terminate before consuming a next-turn prompt injected into it
|
|
65
|
+
-- (a wake-on-completion, or a loop.run-while-active that landed on a turn the
|
|
66
|
+
-- loop never reached). Engine.inject writes prompt/<loop>/<N> at MAX(turn)+1;
|
|
67
|
+
-- if the loop ended at turn K, an injected prompt at turn > K never ran.
|
|
68
|
+
-- Returns the latest such orphan's body + the ended loop's flags so
|
|
69
|
+
-- the drain can promote it to a fresh loop — no wake silently lost.
|
|
70
|
+
-- $pattern = `prompt/<loop_id>/%`, $prefix_len = length of `prompt/<loop_id>/`
|
|
71
|
+
-- built JS-side (per the SqlRite LIKE-binding note above).
|
|
72
|
+
SELECT c.content AS body, l.flags AS flags
|
|
73
|
+
FROM entries e
|
|
74
|
+
JOIN entry_channels c ON c.entry_id = e.id
|
|
75
|
+
JOIN loops l ON l.id = $loop_id
|
|
76
|
+
WHERE e.scheme = 'plurnk'
|
|
77
|
+
AND e.pathname LIKE $pattern
|
|
78
|
+
AND c.name = 'body'
|
|
79
|
+
AND CAST(substr(e.pathname, $prefix_len + 1) AS INTEGER) >
|
|
80
|
+
(SELECT COALESCE(MAX(sequence), 0) FROM turns WHERE loop_id = $loop_id)
|
|
81
|
+
ORDER BY e.id DESC
|
|
82
|
+
LIMIT 1;
|
|
83
|
+
|
|
84
|
+
-- PREP: drain_find_slept_loop
|
|
85
|
+
-- A run's parked (slept) loop — SEND[202] suspends it at status 202, resumable by a wake
|
|
86
|
+
-- (§run-lifecycle-wake-liveness). A run parks one at a time; take the most recent.
|
|
87
|
+
SELECT id FROM loops WHERE run_id = $run_id AND status = 202 ORDER BY sequence DESC LIMIT 1;
|
|
88
|
+
|
|
89
|
+
-- PREP: drain_resume_slept_loop
|
|
90
|
+
-- Re-queue a slept (202) loop to status 100 so the drain re-claims and CONTINUES it. The
|
|
91
|
+
-- engine's next-turn-sequence is DB-derived, so the resumed loop foists no prompt (seq > 1).
|
|
92
|
+
UPDATE loops SET status = 100 WHERE id = $loop_id AND status = 202;
|
package/dist/server/dsl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../src/server/dsl.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1E,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;;
|
|
1
|
+
{"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../src/server/dsl.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1E,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;;IA+CpB,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAQ1D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAQ1D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;IAUlD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe;IAUlH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,GAAG,eAAe;IAWtD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,GAAG,eAAe;IAUtD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;IAUlD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;CASrD"}
|
package/dist/server/dsl.js
CHANGED
|
@@ -40,19 +40,26 @@ export default class Dsl {
|
|
|
40
40
|
static #buildHeredoc({ op, suffix, signal, target, lineMarker, body, }) {
|
|
41
41
|
return `<<${op}${suffix}${signal}${target}${lineMarker}:${body}:${op}${suffix}`;
|
|
42
42
|
}
|
|
43
|
+
// grammar 0.70: a turn must lead with PLAN (plurnk.md §Imperatives), so the
|
|
44
|
+
// canonical parse of an op.*-built HEREDOC needs a PLAN prefix; we add it (when
|
|
45
|
+
// absent) and strip the PLAN back out, returning only the real op(s).
|
|
46
|
+
static #planPrefixed(text) {
|
|
47
|
+
return text.startsWith("<<PLAN") ? text : `<<PLAN::PLAN\n${text}`;
|
|
48
|
+
}
|
|
43
49
|
static parseSingleStatement(text) {
|
|
44
|
-
const result = PlurnkParser.parse(text);
|
|
50
|
+
const result = PlurnkParser.parse(Dsl.#planPrefixed(text));
|
|
45
51
|
for (const item of result.items) {
|
|
46
|
-
if (item.kind === "statement")
|
|
52
|
+
if (item.kind === "statement" && item.statement.op !== "PLAN")
|
|
47
53
|
return item.statement;
|
|
48
54
|
}
|
|
49
55
|
throw new Error(`expected a parsed statement, got none from: ${text}`);
|
|
50
56
|
}
|
|
51
57
|
static parseAllStatements(text) {
|
|
52
|
-
const result = PlurnkParser.parse(text);
|
|
58
|
+
const result = PlurnkParser.parse(Dsl.#planPrefixed(text));
|
|
53
59
|
return result.items
|
|
54
60
|
.filter((i) => i.kind === "statement")
|
|
55
|
-
.map((i) => i.statement)
|
|
61
|
+
.map((i) => i.statement)
|
|
62
|
+
.filter((s) => s.op !== "PLAN");
|
|
56
63
|
}
|
|
57
64
|
static buildEdit(p) {
|
|
58
65
|
return Dsl.parseSingleStatement(Dsl.#buildHeredoc({
|