@plurnk/plurnk-service 0.7.0 → 0.8.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/SPEC.md +104 -74
- package/bin/plurnk-service.ts +132 -0
- package/dist/Paths.d.ts +8 -0
- package/dist/Paths.d.ts.map +1 -0
- package/dist/Paths.js +47 -0
- package/dist/Paths.js.map +1 -0
- package/dist/content/index.d.ts +9 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +10 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/line-marker.d.ts +26 -0
- package/dist/content/line-marker.d.ts.map +1 -0
- package/dist/content/line-marker.js +323 -0
- package/dist/content/line-marker.js.map +1 -0
- package/dist/content/matcher.d.ts +15 -0
- package/dist/content/matcher.d.ts.map +1 -0
- package/dist/content/matcher.js +112 -0
- package/dist/content/matcher.js.map +1 -0
- package/dist/content/mimetype-binary.d.ts +9 -0
- package/dist/content/mimetype-binary.d.ts.map +1 -0
- package/dist/content/mimetype-binary.js +86 -0
- package/dist/content/mimetype-binary.js.map +1 -0
- package/dist/content/path-mimetype.d.ts +6 -0
- package/dist/content/path-mimetype.d.ts.map +1 -0
- package/dist/content/path-mimetype.js +49 -0
- package/dist/content/path-mimetype.js.map +1 -0
- package/dist/content/read-resolve.d.ts +20 -0
- package/dist/content/read-resolve.d.ts.map +1 -0
- package/dist/content/read-resolve.js +60 -0
- package/dist/content/read-resolve.js.map +1 -0
- package/dist/core/ChannelWrite.d.ts +33 -30
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +43 -41
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +14 -10
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +269 -94
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/EnvFlags.d.ts +6 -3
- package/dist/core/EnvFlags.d.ts.map +1 -1
- package/dist/core/EnvFlags.js +62 -60
- package/dist/core/EnvFlags.js.map +1 -1
- package/dist/core/PluginLoader.d.ts +6 -3
- package/dist/core/PluginLoader.d.ts.map +1 -1
- package/dist/core/PluginLoader.js +77 -73
- package/dist/core/PluginLoader.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts +4 -2
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +23 -22
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +1 -1
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +3 -3
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/git-membership.d.ts +8 -0
- package/dist/core/git-membership.d.ts.map +1 -0
- package/dist/core/git-membership.js +125 -0
- package/dist/core/git-membership.js.map +1 -0
- package/dist/core/packet-wire.d.ts +47 -6
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +376 -312
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/resolveForLoop.d.ts +14 -0
- package/dist/core/resolveForLoop.d.ts.map +1 -0
- package/dist/core/resolveForLoop.js +34 -0
- package/dist/core/resolveForLoop.js.map +1 -0
- package/dist/core/results.d.ts +40 -0
- package/dist/core/results.d.ts.map +1 -0
- package/dist/core/results.js +52 -0
- package/dist/core/results.js.map +1 -0
- package/dist/core/scheme-types.d.ts +5 -4
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/scheme-types.js +4 -4
- package/dist/core/scheme-types.js.map +1 -1
- package/dist/core/types.d.ts +27 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +17 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -43
- package/dist/index.js.map +1 -1
- package/dist/schemes/Exec.d.ts +1 -0
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +37 -21
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts +0 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +32 -66
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Known.d.ts.map +1 -1
- package/dist/schemes/Known.js +13 -13
- package/dist/schemes/Known.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +8 -52
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Plurnk.d.ts.map +1 -1
- package/dist/schemes/Plurnk.js +13 -13
- package/dist/schemes/Plurnk.js.map +1 -1
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +13 -13
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Unknown.d.ts.map +1 -1
- package/dist/schemes/Unknown.js +13 -13
- package/dist/schemes/Unknown.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +5 -3
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +55 -50
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts +10 -3
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +99 -77
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts +6 -0
- package/dist/schemes/_entry-manifest.d.ts.map +1 -0
- package/dist/schemes/_entry-manifest.js +45 -0
- package/dist/schemes/_entry-manifest.js.map +1 -0
- package/dist/schemes/_entry-ops.d.ts +7 -4
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +198 -316
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-send.d.ts +4 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +57 -55
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/ClientConnection.js +3 -3
- package/dist/server/ClientConnection.js.map +1 -1
- package/dist/server/Daemon.d.ts +5 -5
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +221 -176
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/clientTurn.d.ts +4 -1
- package/dist/server/clientTurn.d.ts.map +1 -1
- package/dist/server/clientTurn.js +19 -17
- package/dist/server/clientTurn.js.map +1 -1
- package/dist/server/dsl.d.ts +19 -16
- package/dist/server/dsl.d.ts.map +1 -1
- package/dist/server/dsl.js +127 -105
- package/dist/server/dsl.js.map +1 -1
- package/dist/server/envelope.d.ts +22 -19
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +116 -102
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/logEntry.d.ts +4 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +41 -39
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/methods/_dispatchAsClient.d.ts +3 -1
- package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -1
- package/dist/server/methods/_dispatchAsClient.js +31 -29
- package/dist/server/methods/_dispatchAsClient.js.map +1 -1
- package/dist/server/methods/discover.d.ts +3 -1
- package/dist/server/methods/discover.d.ts.map +1 -1
- package/dist/server/methods/discover.js +8 -6
- package/dist/server/methods/discover.js.map +1 -1
- package/dist/server/methods/entry_read.d.ts +4 -1
- package/dist/server/methods/entry_read.d.ts.map +1 -1
- package/dist/server/methods/entry_read.js +54 -52
- package/dist/server/methods/entry_read.js.map +1 -1
- package/dist/server/methods/log_read.d.ts +4 -1
- package/dist/server/methods/log_read.d.ts.map +1 -1
- package/dist/server/methods/log_read.js +38 -36
- package/dist/server/methods/log_read.js.map +1 -1
- package/dist/server/methods/loop_cancel.d.ts +3 -1
- package/dist/server/methods/loop_cancel.d.ts.map +1 -1
- package/dist/server/methods/loop_cancel.js +19 -17
- package/dist/server/methods/loop_cancel.js.map +1 -1
- package/dist/server/methods/loop_resolve.d.ts +3 -1
- package/dist/server/methods/loop_resolve.d.ts.map +1 -1
- package/dist/server/methods/loop_resolve.js +42 -40
- package/dist/server/methods/loop_resolve.js.map +1 -1
- package/dist/server/methods/loop_run.d.ts +3 -1
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +104 -102
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/op_copy.d.ts +3 -1
- package/dist/server/methods/op_copy.d.ts.map +1 -1
- package/dist/server/methods/op_copy.js +25 -23
- package/dist/server/methods/op_copy.js.map +1 -1
- package/dist/server/methods/op_dispatch.d.ts +3 -1
- package/dist/server/methods/op_dispatch.d.ts.map +1 -1
- package/dist/server/methods/op_dispatch.js +18 -16
- package/dist/server/methods/op_dispatch.js.map +1 -1
- package/dist/server/methods/op_edit.d.ts +3 -1
- package/dist/server/methods/op_edit.d.ts.map +1 -1
- package/dist/server/methods/op_edit.js +23 -21
- package/dist/server/methods/op_edit.js.map +1 -1
- package/dist/server/methods/op_exec.d.ts +3 -1
- package/dist/server/methods/op_exec.d.ts.map +1 -1
- package/dist/server/methods/op_exec.js +20 -18
- package/dist/server/methods/op_exec.js.map +1 -1
- package/dist/server/methods/op_find.d.ts +3 -1
- package/dist/server/methods/op_find.d.ts.map +1 -1
- package/dist/server/methods/op_find.js +23 -21
- package/dist/server/methods/op_find.js.map +1 -1
- package/dist/server/methods/op_hide.d.ts +3 -1
- package/dist/server/methods/op_hide.d.ts.map +1 -1
- package/dist/server/methods/op_hide.js +23 -21
- package/dist/server/methods/op_hide.js.map +1 -1
- package/dist/server/methods/op_move.d.ts +3 -1
- package/dist/server/methods/op_move.d.ts.map +1 -1
- package/dist/server/methods/op_move.js +23 -21
- package/dist/server/methods/op_move.js.map +1 -1
- package/dist/server/methods/op_parse.d.ts +3 -1
- package/dist/server/methods/op_parse.d.ts.map +1 -1
- package/dist/server/methods/op_parse.js +24 -22
- package/dist/server/methods/op_parse.js.map +1 -1
- package/dist/server/methods/op_read.d.ts +3 -1
- package/dist/server/methods/op_read.d.ts.map +1 -1
- package/dist/server/methods/op_read.js +23 -21
- package/dist/server/methods/op_read.js.map +1 -1
- package/dist/server/methods/op_send.d.ts +3 -1
- package/dist/server/methods/op_send.d.ts.map +1 -1
- package/dist/server/methods/op_send.js +22 -20
- package/dist/server/methods/op_send.js.map +1 -1
- package/dist/server/methods/op_show.d.ts +3 -1
- package/dist/server/methods/op_show.d.ts.map +1 -1
- package/dist/server/methods/op_show.js +23 -21
- package/dist/server/methods/op_show.js.map +1 -1
- package/dist/server/methods/ping.d.ts +3 -1
- package/dist/server/methods/ping.d.ts.map +1 -1
- package/dist/server/methods/ping.js +8 -6
- package/dist/server/methods/ping.js.map +1 -1
- package/dist/server/methods/providers_list.d.ts +3 -1
- package/dist/server/methods/providers_list.d.ts.map +1 -1
- package/dist/server/methods/providers_list.js +19 -17
- package/dist/server/methods/providers_list.js.map +1 -1
- package/dist/server/methods/session_attach.d.ts +3 -1
- package/dist/server/methods/session_attach.d.ts.map +1 -1
- package/dist/server/methods/session_attach.js +43 -41
- package/dist/server/methods/session_attach.js.map +1 -1
- package/dist/server/methods/session_create.d.ts +3 -1
- package/dist/server/methods/session_create.d.ts.map +1 -1
- package/dist/server/methods/session_create.js +51 -49
- package/dist/server/methods/session_create.js.map +1 -1
- package/dist/server/methods/session_list.d.ts +3 -1
- package/dist/server/methods/session_list.d.ts.map +1 -1
- package/dist/server/methods/session_list.js +9 -7
- package/dist/server/methods/session_list.js.map +1 -1
- package/dist/server/methods/session_runs.d.ts +3 -1
- package/dist/server/methods/session_runs.d.ts.map +1 -1
- package/dist/server/methods/session_runs.js +19 -17
- package/dist/server/methods/session_runs.js.map +1 -1
- package/dist/server/methods/session_set_persona.d.ts +3 -1
- package/dist/server/methods/session_set_persona.d.ts.map +1 -1
- package/dist/server/methods/session_set_persona.js +28 -26
- package/dist/server/methods/session_set_persona.js.map +1 -1
- package/dist/server/methods/session_set_root.d.ts +3 -1
- package/dist/server/methods/session_set_root.d.ts.map +1 -1
- package/dist/server/methods/session_set_root.js +31 -29
- package/dist/server/methods/session_set_root.js.map +1 -1
- package/dist/server/yolo.d.ts +3 -1
- package/dist/server/yolo.d.ts.map +1 -1
- package/dist/server/yolo.js +15 -13
- package/dist/server/yolo.js.map +1 -1
- package/package.json +74 -30
- package/bin/plurnk-service.js +0 -112
- /package/migrations/{001_schema.sql → 0000-00-00.01_schema.sql} +0 -0
package/dist/server/Daemon.js
CHANGED
|
@@ -4,41 +4,41 @@
|
|
|
4
4
|
import { WebSocketServer } from "ws";
|
|
5
5
|
import { readFile } from "node:fs/promises";
|
|
6
6
|
import { resolve } from "node:path";
|
|
7
|
-
import {
|
|
7
|
+
import { Paths } from "../index.js";
|
|
8
8
|
import Engine from "../core/Engine.js";
|
|
9
9
|
import SchemeRegistry from "../core/SchemeRegistry.js";
|
|
10
10
|
import { Mimetypes } from "@plurnk/plurnk-mimetypes";
|
|
11
|
-
import
|
|
11
|
+
import PluginLoader from "../core/PluginLoader.js";
|
|
12
12
|
import MethodRegistry from "./MethodRegistry.js";
|
|
13
13
|
import ClientConnection from "./ClientConnection.js";
|
|
14
|
-
import
|
|
14
|
+
import LogEntry from "./logEntry.js";
|
|
15
|
+
import Yolo from "./yolo.js";
|
|
15
16
|
import { DEFAULT_LOOP_FLAGS } from "../core/scheme-types.js";
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
import
|
|
29
|
-
import
|
|
30
|
-
import
|
|
31
|
-
import
|
|
32
|
-
import
|
|
33
|
-
import
|
|
34
|
-
import
|
|
35
|
-
import
|
|
36
|
-
import
|
|
37
|
-
import
|
|
38
|
-
import
|
|
39
|
-
import
|
|
40
|
-
import
|
|
41
|
-
import { attachYolo } from "./yolo.js";
|
|
17
|
+
import PingMethod from "./methods/ping.js";
|
|
18
|
+
import DiscoverMethod from "./methods/discover.js";
|
|
19
|
+
import SessionCreateMethod from "./methods/session_create.js";
|
|
20
|
+
import SessionListMethod from "./methods/session_list.js";
|
|
21
|
+
import SessionAttachMethod from "./methods/session_attach.js";
|
|
22
|
+
import SessionRunsMethod from "./methods/session_runs.js";
|
|
23
|
+
import SessionSetRootMethod from "./methods/session_set_root.js";
|
|
24
|
+
import SessionSetPersonaMethod from "./methods/session_set_persona.js";
|
|
25
|
+
import OpEditMethod from "./methods/op_edit.js";
|
|
26
|
+
import OpReadMethod from "./methods/op_read.js";
|
|
27
|
+
import OpFindMethod from "./methods/op_find.js";
|
|
28
|
+
import OpShowMethod from "./methods/op_show.js";
|
|
29
|
+
import OpHideMethod from "./methods/op_hide.js";
|
|
30
|
+
import OpCopyMethod from "./methods/op_copy.js";
|
|
31
|
+
import OpMoveMethod from "./methods/op_move.js";
|
|
32
|
+
import OpSendMethod from "./methods/op_send.js";
|
|
33
|
+
import OpExecMethod from "./methods/op_exec.js";
|
|
34
|
+
import OpDispatchMethod from "./methods/op_dispatch.js";
|
|
35
|
+
import OpParseMethod from "./methods/op_parse.js";
|
|
36
|
+
import LoopRunMethod from "./methods/loop_run.js";
|
|
37
|
+
import LoopCancelMethod from "./methods/loop_cancel.js";
|
|
38
|
+
import EntryReadMethod from "./methods/entry_read.js";
|
|
39
|
+
import LogReadMethod from "./methods/log_read.js";
|
|
40
|
+
import ProvidersListMethod from "./methods/providers_list.js";
|
|
41
|
+
import LoopResolveMethod from "./methods/loop_resolve.js";
|
|
42
42
|
export default class Daemon {
|
|
43
43
|
#db;
|
|
44
44
|
#engine;
|
|
@@ -49,14 +49,21 @@ export default class Daemon {
|
|
|
49
49
|
#nodeModulesPath;
|
|
50
50
|
#wss = null;
|
|
51
51
|
#connections = new Set();
|
|
52
|
-
// Run-level drain registry
|
|
53
|
-
// drain
|
|
54
|
-
// drain
|
|
52
|
+
// Run-level drain registry. At most one drain per run. The stored object
|
|
53
|
+
// is the drain's identity handle: start/exit compare it by reference so a
|
|
54
|
+
// drain exiting never clobbers a successor that raced in, and a loop
|
|
55
|
+
// enqueued during teardown is never stranded. A drain is a pure queue
|
|
56
|
+
// consumer (claim → run → exit on empty queue); streams live independently
|
|
57
|
+
// (subscriptions + Exec.idle), and a concluding stream routes through
|
|
58
|
+
// inject() like any other loop source.
|
|
55
59
|
#activeDrains = new Map();
|
|
56
|
-
//
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
|
|
60
|
+
// Per-run cancellation scope. Loops AND the streams they spawn (execs)
|
|
61
|
+
// share this signal, so loop.cancel / shutdown abort it once and every
|
|
62
|
+
// in-flight subscription tears down — even a spawn that registers AFTER the
|
|
63
|
+
// cancel self-aborts against the already-aborted signal (no race). Outlives
|
|
64
|
+
// any single (ephemeral) drain; replaced with a fresh controller once
|
|
65
|
+
// aborted so a later loop.run isn't born cancelled.
|
|
66
|
+
#runAborts = new Map();
|
|
60
67
|
constructor({ db, schemes, mimetypes, provider, nodeModulesPath, }) {
|
|
61
68
|
this.#db = db;
|
|
62
69
|
this.#schemes = schemes ?? new SchemeRegistry();
|
|
@@ -74,6 +81,11 @@ export default class Daemon {
|
|
|
74
81
|
});
|
|
75
82
|
this.#engine = new Engine({
|
|
76
83
|
db, schemes: this.#schemes, mimetypes: this.#mimetypes,
|
|
84
|
+
// Same provider-backed source as the Mimetypes tokenize lambda
|
|
85
|
+
// above; sync here because countTokens is sync (§2.1) and the
|
|
86
|
+
// write helpers store the count inline. Divisor tripwire only
|
|
87
|
+
// until a provider is resolved.
|
|
88
|
+
tokenize: (text) => this.#provider?.countTokens(text) ?? Math.ceil(text.length / 4),
|
|
77
89
|
streamEventNotify: (sessionId, event) => this.notifyStreamEvent(sessionId, event),
|
|
78
90
|
wakeRunNotify: (payload) => { void this.#handleWakeRun(payload); },
|
|
79
91
|
telemetryEventNotify: (sessionId, payload) => this.notifyTelemetryEvent(sessionId, payload),
|
|
@@ -102,7 +114,7 @@ export default class Daemon {
|
|
|
102
114
|
});
|
|
103
115
|
// In-tree YOLO listener — auto-accepts proposals when the loop's
|
|
104
116
|
// persisted flags.yolo === true. Skips client roundtrip entirely.
|
|
105
|
-
attachYolo(this.#engine, this.#db);
|
|
117
|
+
Yolo.attachYolo(this.#engine, this.#db);
|
|
106
118
|
}
|
|
107
119
|
get registry() { return this.#registry; }
|
|
108
120
|
get engine() { return this.#engine; }
|
|
@@ -154,8 +166,14 @@ export default class Daemon {
|
|
|
154
166
|
// to completion, (3) drain streaming schemes' background work
|
|
155
167
|
// (exec spawn cleanup, channel writes). Only THEN close the DB
|
|
156
168
|
// upstream — drain queries hit the DB right up until they exit.
|
|
157
|
-
|
|
158
|
-
|
|
169
|
+
// Abort every run's cancellation scope — stops in-flight loops AND the
|
|
170
|
+
// streams (background execs) linked to them, so idle() doesn't block on
|
|
171
|
+
// a long-running command. Covers runs whose drain already exited but
|
|
172
|
+
// whose exec is still in flight.
|
|
173
|
+
for (const scope of this.#runAborts.values()) {
|
|
174
|
+
if (!scope.signal.aborted)
|
|
175
|
+
scope.abort("daemon_stopping");
|
|
176
|
+
}
|
|
159
177
|
const drainPromises = [...this.#activeDrains.values()].map((d) => d.promise);
|
|
160
178
|
await Promise.allSettled(drainPromises);
|
|
161
179
|
await this.#drainStreamingSchemes();
|
|
@@ -168,31 +186,31 @@ export default class Daemon {
|
|
|
168
186
|
await exec.idle();
|
|
169
187
|
}
|
|
170
188
|
#registerBuiltins() {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
189
|
+
PingMethod.register(this.#registry);
|
|
190
|
+
DiscoverMethod.register(this.#registry);
|
|
191
|
+
SessionCreateMethod.register(this.#registry);
|
|
192
|
+
SessionListMethod.register(this.#registry);
|
|
193
|
+
SessionAttachMethod.register(this.#registry);
|
|
194
|
+
SessionRunsMethod.register(this.#registry);
|
|
195
|
+
SessionSetRootMethod.register(this.#registry);
|
|
196
|
+
SessionSetPersonaMethod.register(this.#registry);
|
|
197
|
+
OpEditMethod.register(this.#registry);
|
|
198
|
+
OpReadMethod.register(this.#registry);
|
|
199
|
+
OpFindMethod.register(this.#registry);
|
|
200
|
+
OpShowMethod.register(this.#registry);
|
|
201
|
+
OpHideMethod.register(this.#registry);
|
|
202
|
+
OpCopyMethod.register(this.#registry);
|
|
203
|
+
OpMoveMethod.register(this.#registry);
|
|
204
|
+
OpSendMethod.register(this.#registry);
|
|
205
|
+
OpExecMethod.register(this.#registry);
|
|
206
|
+
OpDispatchMethod.register(this.#registry);
|
|
207
|
+
OpParseMethod.register(this.#registry);
|
|
208
|
+
LoopRunMethod.register(this.#registry);
|
|
209
|
+
LoopCancelMethod.register(this.#registry);
|
|
210
|
+
LoopResolveMethod.register(this.#registry);
|
|
211
|
+
EntryReadMethod.register(this.#registry);
|
|
212
|
+
LogReadMethod.register(this.#registry);
|
|
213
|
+
ProvidersListMethod.register(this.#registry);
|
|
196
214
|
}
|
|
197
215
|
#registerNotifications() {
|
|
198
216
|
this.#registry.registerNotification("log/entry", {
|
|
@@ -281,21 +299,14 @@ export default class Daemon {
|
|
|
281
299
|
*/
|
|
282
300
|
async inject(args) {
|
|
283
301
|
const { sessionId, runId, prompt } = args;
|
|
284
|
-
//
|
|
285
|
-
//
|
|
286
|
-
//
|
|
287
|
-
|
|
288
|
-
this.#pokeDrain(runId);
|
|
289
|
-
const drainActive = this.#activeDrains.has(runId);
|
|
290
|
-
if (drainActive) {
|
|
302
|
+
// Active loop (status=102)? Fold the wake/prompt into its next turn.
|
|
303
|
+
// engine.inject returns null when no loop is currently executing, so
|
|
304
|
+
// we enqueue a fresh loop below and ensure a drain claims it.
|
|
305
|
+
if (this.#activeDrains.has(runId)) {
|
|
291
306
|
const result = await this.#engine.inject(runId, prompt);
|
|
292
307
|
if (result !== null) {
|
|
293
308
|
return { action: "injected_next_turn", loopId: result.loopId, turnSeq: result.turnSeq };
|
|
294
309
|
}
|
|
295
|
-
// Race: #activeDrains exists but drain hasn't yet claimed a
|
|
296
|
-
// loop (status=102). Fall through to the enqueue path — but
|
|
297
|
-
// we must NOT start a parallel drain. The existing drain
|
|
298
|
-
// will claim this loop on a subsequent iteration.
|
|
299
310
|
}
|
|
300
311
|
// Enqueue a fresh loop. Persist flags + persona override on the row.
|
|
301
312
|
const seqRow = await this.#db.loop_run_next_sequence.get({ run_id: runId });
|
|
@@ -313,18 +324,19 @@ export default class Daemon {
|
|
|
313
324
|
loop_id: loopId, flags: JSON.stringify(merged),
|
|
314
325
|
});
|
|
315
326
|
}
|
|
316
|
-
//
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
327
|
+
// Guarantee a drain claims the loop we just enqueued. Synchronous
|
|
328
|
+
// check-and-start (no await between the membership test and the
|
|
329
|
+
// registry write): a live drain re-claims it; otherwise we start one.
|
|
330
|
+
// The drain's exit coordinates via an identity-checked re-claim so the
|
|
331
|
+
// loop is never stranded (the lost-loop hang). firstLoopPromise is
|
|
332
|
+
// present only when THIS call started the drain — loop.run keys its
|
|
333
|
+
// fast-path response on that.
|
|
334
|
+
const started = this.#ensureDrain({
|
|
323
335
|
sessionId, runId, provider: args.provider,
|
|
324
336
|
systemPrompt: args.systemPrompt, personaDefault: args.persona,
|
|
325
337
|
maxTurns: args.maxTurns ?? Number(process.env.PLURNK_MAX_TURNS ?? "50"),
|
|
326
338
|
});
|
|
327
|
-
return { action: "enqueued_new_loop", loopId,
|
|
339
|
+
return { action: "enqueued_new_loop", loopId, ...(started ?? {}) };
|
|
328
340
|
}
|
|
329
341
|
/**
|
|
330
342
|
* Start a drain for the given run. The drain claims queued loops via
|
|
@@ -341,7 +353,12 @@ export default class Daemon {
|
|
|
341
353
|
*/
|
|
342
354
|
#startDrain(opts) {
|
|
343
355
|
const { sessionId, runId, provider, systemPrompt, personaDefault, maxTurns } = opts;
|
|
344
|
-
|
|
356
|
+
// The drain runs under the run's cancellation scope (shared with the
|
|
357
|
+
// execs its loops spawn), so loop.cancel/shutdown abort it as a unit.
|
|
358
|
+
const controller = this.#runSignal(runId);
|
|
359
|
+
const handle = {
|
|
360
|
+
controller, promise: Promise.resolve(),
|
|
361
|
+
};
|
|
345
362
|
let resolveFirst = () => { };
|
|
346
363
|
let rejectFirst = () => { };
|
|
347
364
|
const firstLoopPromise = new Promise((res, rej) => {
|
|
@@ -349,55 +366,65 @@ export default class Daemon {
|
|
|
349
366
|
rejectFirst = rej;
|
|
350
367
|
});
|
|
351
368
|
let firstSettled = false;
|
|
369
|
+
const claim = () => this.#db.drain_claim_next_loop.get({ run_id: runId });
|
|
352
370
|
const drainPromise = (async () => {
|
|
353
371
|
let loopsDrained = 0;
|
|
354
372
|
let lastResult = null;
|
|
355
373
|
try {
|
|
356
374
|
while (true) {
|
|
357
375
|
controller.signal.throwIfAborted();
|
|
358
|
-
|
|
359
|
-
if (loopRow
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
],
|
|
372
|
-
persona: personaDefault,
|
|
373
|
-
origin: "model",
|
|
374
|
-
onDispatch,
|
|
375
|
-
signal: controller.signal,
|
|
376
|
-
});
|
|
377
|
-
this.#broadcast({ sessionId }, null, "loop/terminated", {
|
|
378
|
-
loopId: loopRow.id,
|
|
379
|
-
finalStatus: result.finalStatus,
|
|
380
|
-
hitMaxTurns: result.hitMaxTurns,
|
|
381
|
-
});
|
|
382
|
-
loopsDrained++;
|
|
383
|
-
const loopResult = {
|
|
384
|
-
loopId: loopRow.id,
|
|
385
|
-
turnIds: result.turnIds,
|
|
386
|
-
finalStatus: result.finalStatus,
|
|
387
|
-
hitMaxTurns: result.hitMaxTurns,
|
|
388
|
-
};
|
|
389
|
-
lastResult = loopResult;
|
|
390
|
-
if (!firstSettled) {
|
|
391
|
-
firstSettled = true;
|
|
392
|
-
resolveFirst(loopResult);
|
|
393
|
-
}
|
|
394
|
-
continue;
|
|
376
|
+
let loopRow = await claim();
|
|
377
|
+
if (loopRow === undefined) {
|
|
378
|
+
// Queue empty → exit. Coordinate with a concurrent
|
|
379
|
+
// inject + #ensureDrain: relinquish ownership, then
|
|
380
|
+
// re-claim once. A loop that raced in during teardown
|
|
381
|
+
// is caught here (re-acquire + run it); otherwise exit.
|
|
382
|
+
// Identity-checked so we never delete a successor entry.
|
|
383
|
+
if (this.#activeDrains.get(runId) === handle)
|
|
384
|
+
this.#activeDrains.delete(runId);
|
|
385
|
+
loopRow = await claim();
|
|
386
|
+
if (loopRow === undefined)
|
|
387
|
+
break;
|
|
388
|
+
this.#activeDrains.set(runId, handle);
|
|
395
389
|
}
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
390
|
+
const onDispatch = (logEntryId) => {
|
|
391
|
+
void (async () => {
|
|
392
|
+
const entry = await LogEntry.fetchLogEntry(this.#db, logEntryId);
|
|
393
|
+
this.#broadcast({ sessionId }, null, "log/entry", { entry });
|
|
394
|
+
})();
|
|
395
|
+
};
|
|
396
|
+
const result = await this.#engine.runLoop({
|
|
397
|
+
provider, sessionId, runId, loopId: loopRow.id, maxTurns,
|
|
398
|
+
messages: [
|
|
399
|
+
{ role: "system", content: systemPrompt },
|
|
400
|
+
{ role: "user", content: loopRow.prompt },
|
|
401
|
+
],
|
|
402
|
+
persona: personaDefault,
|
|
403
|
+
origin: "model",
|
|
404
|
+
onDispatch,
|
|
405
|
+
signal: controller.signal,
|
|
406
|
+
});
|
|
407
|
+
this.#broadcast({ sessionId }, null, "loop/terminated", {
|
|
408
|
+
loopId: loopRow.id,
|
|
409
|
+
finalStatus: result.finalStatus,
|
|
410
|
+
hitMaxTurns: result.hitMaxTurns,
|
|
411
|
+
});
|
|
412
|
+
loopsDrained++;
|
|
413
|
+
const loopResult = {
|
|
414
|
+
loopId: loopRow.id,
|
|
415
|
+
turnIds: result.turnIds,
|
|
416
|
+
finalStatus: result.finalStatus,
|
|
417
|
+
hitMaxTurns: result.hitMaxTurns,
|
|
418
|
+
};
|
|
419
|
+
lastResult = loopResult;
|
|
420
|
+
if (!firstSettled) {
|
|
421
|
+
firstSettled = true;
|
|
422
|
+
resolveFirst(loopResult);
|
|
423
|
+
}
|
|
424
|
+
// A next-turn prompt this loop ended before consuming (a
|
|
425
|
+
// wake conclusion or a loop.run-while-active) is promoted to
|
|
426
|
+
// a fresh queued loop so it's never silently dropped.
|
|
427
|
+
await this.#reconcileOrphanedWake(runId, loopRow.id);
|
|
401
428
|
}
|
|
402
429
|
}
|
|
403
430
|
catch (err) {
|
|
@@ -412,59 +439,83 @@ export default class Daemon {
|
|
|
412
439
|
firstSettled = true;
|
|
413
440
|
rejectFirst(new Error("drain exited without producing a result"));
|
|
414
441
|
}
|
|
415
|
-
this.#activeDrains.
|
|
416
|
-
|
|
442
|
+
if (this.#activeDrains.get(runId) === handle)
|
|
443
|
+
this.#activeDrains.delete(runId);
|
|
417
444
|
}
|
|
418
445
|
return { loopsDrained, lastResult };
|
|
419
446
|
})();
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
//
|
|
423
|
-
//
|
|
424
|
-
// if relevant, or was already logged inside the drain body.
|
|
447
|
+
handle.promise = drainPromise;
|
|
448
|
+
this.#activeDrains.set(runId, handle);
|
|
449
|
+
// Swallow unhandled rejections (drain aborts with no awaiter); the
|
|
450
|
+
// error already surfaced via firstLoopPromise or was logged inside.
|
|
425
451
|
drainPromise.catch(() => { });
|
|
426
|
-
// firstLoopPromise also needs a handler in case nobody awaits it
|
|
427
|
-
// (e.g. wake-on-completion enqueue path doesn't always read it).
|
|
428
452
|
firstLoopPromise.catch(() => { });
|
|
429
453
|
return { firstLoopPromise, drainPromise };
|
|
430
454
|
}
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
455
|
+
// Idempotent, synchronous drain guarantee. A live drain will claim the
|
|
456
|
+
// just-enqueued loop in its own iteration (or its exit re-claim) → return
|
|
457
|
+
// null. Otherwise start one. MUST be called synchronously after the
|
|
458
|
+
// enqueue (no await between) so the membership test and #startDrain's
|
|
459
|
+
// registry write are one tick — two concurrent injects can't both start a
|
|
460
|
+
// drain for the same run.
|
|
461
|
+
#ensureDrain(opts) {
|
|
462
|
+
if (this.#activeDrains.has(opts.runId))
|
|
463
|
+
return null;
|
|
464
|
+
return this.#startDrain(opts);
|
|
437
465
|
}
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
466
|
+
// After a loop terminates, promote any next-turn prompt it never consumed —
|
|
467
|
+
// an injected wake (stream conclusion) or a loop.run-while-active prompt
|
|
468
|
+
// that landed on a turn the loop didn't reach — into a fresh queued loop.
|
|
469
|
+
// The drain claims it on its next iteration, so a conclusion or client
|
|
470
|
+
// prompt is never silently dropped. Inherits the ended loop's flags + persona.
|
|
471
|
+
async #reconcileOrphanedWake(runId, endedLoopId) {
|
|
472
|
+
const prefix = `prompt/${endedLoopId}/`;
|
|
473
|
+
const orphan = await this.#db.drain_orphaned_prompt_for_loop.get({ loop_id: endedLoopId, pattern: `${prefix}%`, prefix_len: prefix.length });
|
|
474
|
+
if (orphan === undefined)
|
|
475
|
+
return;
|
|
476
|
+
const seqRow = await this.#db.loop_run_next_sequence.get({ run_id: runId });
|
|
477
|
+
if (seqRow === undefined)
|
|
478
|
+
throw new Error("reconcileOrphanedWake: next-sequence query returned no row");
|
|
479
|
+
const fresh = await this.#db.drain_enqueue_loop.get({
|
|
480
|
+
run_id: runId, sequence: seqRow.next, prompt: orphan.body, persona: orphan.persona,
|
|
453
481
|
});
|
|
482
|
+
if (fresh === undefined)
|
|
483
|
+
throw new Error("reconcileOrphanedWake: enqueue returned no row");
|
|
484
|
+
if (orphan.flags !== null) {
|
|
485
|
+
await this.#db.engine_set_loop_flags.run({ loop_id: fresh.id, flags: orphan.flags });
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
// The run's cancellation scope — lazily created, and replaced once aborted
|
|
489
|
+
// so a later loop.run gets a live signal. The drain and the execs its loops
|
|
490
|
+
// spawn all run under it.
|
|
491
|
+
#runSignal(runId) {
|
|
492
|
+
const existing = this.#runAborts.get(runId);
|
|
493
|
+
if (existing !== undefined && !existing.signal.aborted)
|
|
494
|
+
return existing;
|
|
495
|
+
const fresh = new AbortController();
|
|
496
|
+
this.#runAborts.set(runId, fresh);
|
|
497
|
+
return fresh;
|
|
454
498
|
}
|
|
455
499
|
/**
|
|
456
|
-
* Cancel the
|
|
457
|
-
* the
|
|
458
|
-
*
|
|
459
|
-
*
|
|
460
|
-
*
|
|
500
|
+
* Cancel the run's in-flight work (loop.cancel). One abort, one scope: the
|
|
501
|
+
* run signal stops the running loop's turn generation AND tears down every
|
|
502
|
+
* stream linked to it — a background exec that outlived its loop, or even a
|
|
503
|
+
* spawn that registers after this abort (it self-aborts against the aborted
|
|
504
|
+
* signal). Returns cancelled iff there was work. Queued loops stay enqueued.
|
|
461
505
|
*/
|
|
462
506
|
cancelDrain(runId, reason = "user_cancelled") {
|
|
463
|
-
const
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
return
|
|
507
|
+
const hadWork = this.#activeDrains.has(runId) || this.#runHasActiveStreams(runId);
|
|
508
|
+
const scope = this.#runAborts.get(runId);
|
|
509
|
+
if (scope !== undefined && !scope.signal.aborted)
|
|
510
|
+
scope.abort(reason);
|
|
511
|
+
return hadWork;
|
|
512
|
+
}
|
|
513
|
+
// Does the run have an in-flight stream (a background exec)? Used only for
|
|
514
|
+
// loop.cancel's cancelled=true/false answer; the teardown itself rides the
|
|
515
|
+
// run signal. Duck-typed like #drainStreamingSchemes.
|
|
516
|
+
#runHasActiveStreams(runId) {
|
|
517
|
+
const exec = this.#schemes.get("exec");
|
|
518
|
+
return exec?.hasActiveSpawns?.(runId) ?? false;
|
|
468
519
|
}
|
|
469
520
|
/**
|
|
470
521
|
* Wake-on-completion handler. Streaming schemes call this when a
|
|
@@ -480,12 +531,6 @@ export default class Daemon {
|
|
|
480
531
|
* Rummy parallel: plugins/stream/stream.js stream/completed wake:true.
|
|
481
532
|
*/
|
|
482
533
|
async #handleWakeRun(payload) {
|
|
483
|
-
// Every subscription close pokes the run's drain (if any) so a
|
|
484
|
-
// parked stream-aware drain re-checks active subs count. This
|
|
485
|
-
// happens regardless of whether we go on to inject a new loop,
|
|
486
|
-
// so the 499-skipped / no-provider paths still wake the drain
|
|
487
|
-
// out of its "queue empty, waiting for streams" state.
|
|
488
|
-
this.#pokeDrain(payload.runId);
|
|
489
534
|
// Aborted streams don't wake — the abort was deliberate.
|
|
490
535
|
if (payload.closeStatus === 499) {
|
|
491
536
|
this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
|
|
@@ -500,8 +545,8 @@ export default class Daemon {
|
|
|
500
545
|
return;
|
|
501
546
|
}
|
|
502
547
|
try {
|
|
503
|
-
const systemPrompt = await readFile(
|
|
504
|
-
const personaText = await readFile(
|
|
548
|
+
const systemPrompt = await readFile(Paths.instructionsSystem, "utf8");
|
|
549
|
+
const personaText = await readFile(Paths.defaultPersona, "utf8");
|
|
505
550
|
// Unified path: this.inject decides whether to write a prompt
|
|
506
551
|
// entry for an active drain's next turn (no-op-active-loop) or
|
|
507
552
|
// enqueue a fresh loop + drain (opened-loop). The summary
|
|
@@ -558,11 +603,11 @@ export default class Daemon {
|
|
|
558
603
|
// bin script). Mimetypes self-discovers — Mimetypes.ready() in start()
|
|
559
604
|
// scans @plurnk/plurnk-mimetypes-* packages via the framework's own
|
|
560
605
|
// discover().
|
|
561
|
-
const plugins = await discoverPlugins(this.#nodeModulesPath);
|
|
606
|
+
const plugins = await PluginLoader.discoverPlugins(this.#nodeModulesPath);
|
|
562
607
|
for (const plugin of plugins) {
|
|
563
608
|
if (plugin.manifest.kind !== "scheme")
|
|
564
609
|
continue;
|
|
565
|
-
const instance = await loadPlugin(plugin);
|
|
610
|
+
const instance = await PluginLoader.loadPlugin(plugin);
|
|
566
611
|
this.#schemes.register(plugin.manifest.name, instance);
|
|
567
612
|
}
|
|
568
613
|
}
|
|
@@ -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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"}
|