@plurnk/plurnk-service 0.3.0 → 0.4.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.
Files changed (92) hide show
  1. package/SPEC.md +35 -26
  2. package/dist/core/ChannelWrite.d.ts +10 -0
  3. package/dist/core/ChannelWrite.d.ts.map +1 -1
  4. package/dist/core/ChannelWrite.js.map +1 -1
  5. package/dist/core/Engine.d.ts +9 -1
  6. package/dist/core/Engine.d.ts.map +1 -1
  7. package/dist/core/Engine.js +260 -53
  8. package/dist/core/Engine.js.map +1 -1
  9. package/dist/core/line-marker.d.ts +23 -0
  10. package/dist/core/line-marker.d.ts.map +1 -0
  11. package/dist/core/line-marker.js +321 -0
  12. package/dist/core/line-marker.js.map +1 -0
  13. package/dist/core/matcher.d.ts +14 -0
  14. package/dist/core/matcher.d.ts.map +1 -0
  15. package/dist/core/matcher.js +195 -0
  16. package/dist/core/matcher.js.map +1 -0
  17. package/dist/core/mimetype-binary.d.ts +6 -0
  18. package/dist/core/mimetype-binary.d.ts.map +1 -0
  19. package/dist/core/mimetype-binary.js +82 -0
  20. package/dist/core/mimetype-binary.js.map +1 -0
  21. package/dist/core/packet-wire.d.ts.map +1 -1
  22. package/dist/core/packet-wire.js +97 -21
  23. package/dist/core/packet-wire.js.map +1 -1
  24. package/dist/core/path-mimetype.d.ts +3 -0
  25. package/dist/core/path-mimetype.d.ts.map +1 -0
  26. package/dist/core/path-mimetype.js +47 -0
  27. package/dist/core/path-mimetype.js.map +1 -0
  28. package/dist/core/scheme-types.d.ts +5 -0
  29. package/dist/core/scheme-types.d.ts.map +1 -1
  30. package/dist/core/scheme-types.js.map +1 -1
  31. package/dist/schemes/Exec.d.ts +30 -1
  32. package/dist/schemes/Exec.d.ts.map +1 -1
  33. package/dist/schemes/Exec.js +229 -6
  34. package/dist/schemes/Exec.js.map +1 -1
  35. package/dist/schemes/File.d.ts +4 -0
  36. package/dist/schemes/File.d.ts.map +1 -1
  37. package/dist/schemes/File.js +107 -23
  38. package/dist/schemes/File.js.map +1 -1
  39. package/dist/schemes/Log.d.ts +2 -0
  40. package/dist/schemes/Log.d.ts.map +1 -1
  41. package/dist/schemes/Log.js +82 -13
  42. package/dist/schemes/Log.js.map +1 -1
  43. package/dist/schemes/Plurnk.js +3 -3
  44. package/dist/schemes/Plurnk.js.map +1 -1
  45. package/dist/schemes/_entry-crud.d.ts +2 -0
  46. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  47. package/dist/schemes/_entry-crud.js +1 -0
  48. package/dist/schemes/_entry-crud.js.map +1 -1
  49. package/dist/schemes/_entry-find.d.ts.map +1 -1
  50. package/dist/schemes/_entry-find.js +64 -15
  51. package/dist/schemes/_entry-find.js.map +1 -1
  52. package/dist/schemes/_entry-ops.d.ts +3 -0
  53. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  54. package/dist/schemes/_entry-ops.js +268 -55
  55. package/dist/schemes/_entry-ops.js.map +1 -1
  56. package/dist/schemes/_entry-send.d.ts.map +1 -1
  57. package/dist/schemes/_entry-send.js +14 -7
  58. package/dist/schemes/_entry-send.js.map +1 -1
  59. package/dist/server/ClientConnection.d.ts +3 -2
  60. package/dist/server/ClientConnection.d.ts.map +1 -1
  61. package/dist/server/ClientConnection.js +4 -1
  62. package/dist/server/ClientConnection.js.map +1 -1
  63. package/dist/server/Daemon.d.ts +40 -1
  64. package/dist/server/Daemon.d.ts.map +1 -1
  65. package/dist/server/Daemon.js +319 -1
  66. package/dist/server/Daemon.js.map +1 -1
  67. package/dist/server/MethodRegistry.d.ts +29 -0
  68. package/dist/server/MethodRegistry.d.ts.map +1 -1
  69. package/dist/server/MethodRegistry.js.map +1 -1
  70. package/dist/server/dsl.d.ts +2 -2
  71. package/dist/server/dsl.d.ts.map +1 -1
  72. package/dist/server/dsl.js +10 -10
  73. package/dist/server/dsl.js.map +1 -1
  74. package/dist/server/methods/entry_read.js +5 -5
  75. package/dist/server/methods/entry_read.js.map +1 -1
  76. package/dist/server/methods/loop_cancel.d.ts +3 -0
  77. package/dist/server/methods/loop_cancel.d.ts.map +1 -0
  78. package/dist/server/methods/loop_cancel.js +27 -0
  79. package/dist/server/methods/loop_cancel.js.map +1 -0
  80. package/dist/server/methods/loop_run.d.ts.map +1 -1
  81. package/dist/server/methods/loop_run.js +46 -47
  82. package/dist/server/methods/loop_run.js.map +1 -1
  83. package/dist/server/methods/op_edit.js +3 -3
  84. package/dist/server/methods/op_edit.js.map +1 -1
  85. package/dist/server/methods/op_hide.js +3 -3
  86. package/dist/server/methods/op_hide.js.map +1 -1
  87. package/dist/server/methods/op_read.js +3 -3
  88. package/dist/server/methods/op_read.js.map +1 -1
  89. package/dist/server/methods/op_show.js +3 -3
  90. package/dist/server/methods/op_show.js.map +1 -1
  91. package/migrations/001_schema.sql +1 -1
  92. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Daemon.d.ts","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAgB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA6BlE,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,MAAM;;gBAWX,EACR,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GACpD,EAAE;QACC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IA2CD,IAAI,QAAQ,IAAI,cAAc,CAA2B;IACzD,IAAI,MAAM,IAAI,MAAM,CAAyB;IAC7C,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAA2B;IAC1D,IAAI,OAAO,IAAI,cAAc,CAA0B;IACvD,IAAI,SAAS,IAAI,SAAS,CAA4B;IAEhD,KAAK,CAAC,EAAE,IAAkB,EAAE,IAAW,EAAE,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IA4BtF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgF3B;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAmDhI"}
1
+ {"version":3,"file":"Daemon.d.ts","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAGpD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAgB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAgCnF,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,MAAM;;gBAoBX,EACR,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GACpD,EAAE;QACC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IA+CD,IAAI,QAAQ,IAAI,cAAc,CAA2B;IACzD,IAAI,MAAM,IAAI,MAAM,CAAyB;IAC7C,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAA2B;IAC1D,IAAI,OAAO,IAAI,cAAc,CAA0B;IACvD,IAAI,SAAS,IAAI,SAAS,CAA4B;IAEhD,KAAK,CAAC,EAAE,IAAkB,EAAE,IAAW,EAAE,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IA4BtF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8G3B;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI7H;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,IAAI,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QACjD,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAClF,GAAG,OAAO,CAAC;QACR,MAAM,EAAE,oBAAoB,GAAG,mBAAmB,CAAC;QACnD,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5C,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;KACnC,CAAC;IAwLF;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAyB,GAAG,OAAO;CAoIzE"}
@@ -2,13 +2,17 @@
2
2
  // the WebSocketServer, and the active client connections.
3
3
  // SPEC §13.
4
4
  import { WebSocketServer } from "ws";
5
+ import { readFile } from "node:fs/promises";
5
6
  import { resolve } from "node:path";
7
+ import { PATHS } from "../index.js";
6
8
  import Engine from "../core/Engine.js";
7
9
  import SchemeRegistry from "../core/SchemeRegistry.js";
8
10
  import { Mimetypes } from "@plurnk/plurnk-mimetypes";
9
11
  import { discoverPlugins, loadPlugin } from "../core/PluginLoader.js";
10
12
  import MethodRegistry from "./MethodRegistry.js";
11
13
  import ClientConnection from "./ClientConnection.js";
14
+ import { fetchLogEntry } from "./logEntry.js";
15
+ import { DEFAULT_LOOP_FLAGS } from "../core/scheme-types.js";
12
16
  import { register as registerPing } from "./methods/ping.js";
13
17
  import { register as registerDiscover } from "./methods/discover.js";
14
18
  import { register as registerSessionCreate } from "./methods/session_create.js";
@@ -29,6 +33,7 @@ import { register as registerOpExec } from "./methods/op_exec.js";
29
33
  import { register as registerOpDispatch } from "./methods/op_dispatch.js";
30
34
  import { register as registerOpParse } from "./methods/op_parse.js";
31
35
  import { register as registerLoopRun } from "./methods/loop_run.js";
36
+ import { register as registerLoopCancel } from "./methods/loop_cancel.js";
32
37
  import { register as registerEntryRead } from "./methods/entry_read.js";
33
38
  import { register as registerLogRead } from "./methods/log_read.js";
34
39
  import { register as registerProvidersList } from "./methods/providers_list.js";
@@ -44,6 +49,14 @@ export default class Daemon {
44
49
  #nodeModulesPath;
45
50
  #wss = null;
46
51
  #connections = new Set();
52
+ // Run-level drain registry (rummy AgentLoop parallel). At most one
53
+ // drain per run; concurrent loop.run calls inject into the active
54
+ // drain instead of starting parallel runLoops.
55
+ #activeDrains = new Map();
56
+ // Wake/event signals for drains parked on "queue empty, active subs in
57
+ // flight." A wake-on-completion → engine.inject can resolve the pending
58
+ // promise so the drain re-checks the queue without polling.
59
+ #drainPokes = new Map();
47
60
  constructor({ db, schemes, mimetypes, provider, nodeModulesPath, }) {
48
61
  this.#db = db;
49
62
  this.#schemes = schemes ?? new SchemeRegistry();
@@ -59,7 +72,11 @@ export default class Daemon {
59
72
  tokenize: async (text) => this.#provider?.countTokens(text) ?? Math.ceil(text.length / 4),
60
73
  defaultMimetype: "text/markdown",
61
74
  });
62
- this.#engine = new Engine({ db, schemes: this.#schemes, mimetypes: this.#mimetypes });
75
+ this.#engine = new Engine({
76
+ db, schemes: this.#schemes, mimetypes: this.#mimetypes,
77
+ streamEventNotify: (sessionId, event) => this.notifyStreamEvent(sessionId, event),
78
+ wakeRunNotify: (payload) => { void this.#handleWakeRun(payload); },
79
+ });
63
80
  this.#nodeModulesPath = nodeModulesPath ?? resolve(process.cwd(), "node_modules");
64
81
  this.#registry = new MethodRegistry();
65
82
  this.#registerBuiltins();
@@ -131,6 +148,23 @@ export default class Daemon {
131
148
  });
132
149
  });
133
150
  this.#wss = null;
151
+ // Drain order: (1) abort in-flight loops via #activeDrains so
152
+ // strike paths don't keep going, (2) await each drain's promise
153
+ // to completion, (3) drain streaming schemes' background work
154
+ // (exec spawn cleanup, channel writes). Only THEN close the DB
155
+ // upstream — drain queries hit the DB right up until they exit.
156
+ for (const drain of this.#activeDrains.values())
157
+ drain.controller.abort("daemon_stopping");
158
+ const drainPromises = [...this.#activeDrains.values()].map((d) => d.promise);
159
+ await Promise.allSettled(drainPromises);
160
+ await this.#drainStreamingSchemes();
161
+ }
162
+ // Per-scheme idle awaits for clean shutdown. New streaming schemes
163
+ // (SSE, WS) add themselves here as they land.
164
+ async #drainStreamingSchemes() {
165
+ const exec = this.#schemes.get("exec");
166
+ if (exec?.idle !== undefined)
167
+ await exec.idle();
134
168
  }
135
169
  #registerBuiltins() {
136
170
  registerPing(this.#registry);
@@ -153,6 +187,7 @@ export default class Daemon {
153
187
  registerOpDispatch(this.#registry);
154
188
  registerOpParse(this.#registry);
155
189
  registerLoopRun(this.#registry);
190
+ registerLoopCancel(this.#registry);
156
191
  registerLoopResolve(this.#registry);
157
192
  registerEntryRead(this.#registry);
158
193
  registerLogRead(this.#registry);
@@ -193,6 +228,18 @@ export default class Daemon {
193
228
  contentLength: "number — current length of the channel's content",
194
229
  },
195
230
  });
231
+ this.#registry.registerNotification("stream/concluded", {
232
+ description: "A streaming-scheme subscription closed (the underlying connection / subprocess finished, errored, or was cancelled). Scoped to the entry's session. wakeAction describes whether the daemon opened a fresh loop to surface the conclusion to the model.",
233
+ params: {
234
+ entryId: "number",
235
+ subscriptionId: "number",
236
+ scheme: "string — the scheme that owned the subscription (e.g. 'exec')",
237
+ closeStatus: "number — 200 (clean) / 500 (error) / 499 (aborted)",
238
+ summary: "string — one-liner the model gets as a wake prompt",
239
+ wakeAction: "string — 'no-op-active-loop' | 'opened-loop' | 'skipped-aborted' | 'skipped-no-provider'",
240
+ wakeLoopId: "number? — the loop that was opened (only when wakeAction='opened-loop')",
241
+ },
242
+ });
196
243
  }
197
244
  /**
198
245
  * Emit a stream/event notification scoped to the session containing the
@@ -202,6 +249,276 @@ export default class Daemon {
202
249
  notifyStreamEvent(sessionId, event) {
203
250
  this.#broadcast({ sessionId }, null, "stream/event", event);
204
251
  }
252
+ /**
253
+ * Inject a prompt into a run. Two paths:
254
+ * - Active drain: writes a plurnk://prompt/<loop>/<next-turn> entry
255
+ * via Engine.inject. Current loop sees the new prompt at its next
256
+ * turn. Returns immediately with {action: "injected_next_turn"}.
257
+ * - No active drain: enqueues a fresh loop with the prompt at
258
+ * status=100, starts a drain. Returns the drain promise so the
259
+ * caller can await full completion.
260
+ *
261
+ * Rummy parallel: AgentLoop.inject(). Unified surface — both `loop.run`
262
+ * and wake-on-completion go through this method.
263
+ */
264
+ async inject(args) {
265
+ const { sessionId, runId, prompt } = args;
266
+ // Wake any drain parked on "queue empty + active subs" so it
267
+ // re-checks the queue immediately regardless of which branch we
268
+ // take. The poke fires before we return; if we enqueue a new
269
+ // loop, the drain we start below claims it on its first iteration.
270
+ this.#pokeDrain(runId);
271
+ const drainActive = this.#activeDrains.has(runId);
272
+ if (drainActive) {
273
+ const result = await this.#engine.inject(runId, prompt);
274
+ if (result !== null) {
275
+ return { action: "injected_next_turn", loopId: result.loopId, turnSeq: result.turnSeq };
276
+ }
277
+ // Race: #activeDrains exists but drain hasn't yet claimed a
278
+ // loop (status=102). Fall through to the enqueue path — but
279
+ // we must NOT start a parallel drain. The existing drain
280
+ // will claim this loop on a subsequent iteration.
281
+ }
282
+ // Enqueue a fresh loop. Persist flags + persona override on the row.
283
+ const seqRow = await this.#db.loop_run_next_sequence.get({ run_id: runId });
284
+ if (seqRow === undefined)
285
+ throw new Error("inject: next-sequence query returned no row");
286
+ const loopRow = await this.#db.drain_enqueue_loop.get({
287
+ run_id: runId, sequence: seqRow.next, prompt, persona: args.personaOverride ?? null,
288
+ });
289
+ if (loopRow === undefined)
290
+ throw new Error("inject: loop enqueue returned no row");
291
+ const loopId = loopRow.id;
292
+ if (args.flags !== undefined) {
293
+ const merged = { ...DEFAULT_LOOP_FLAGS, ...args.flags };
294
+ await this.#db.engine_set_loop_flags.run({
295
+ loop_id: loopId, flags: JSON.stringify(merged),
296
+ });
297
+ }
298
+ // Existing drain will pick this loop up — don't start a parallel one.
299
+ if (drainActive) {
300
+ // Poke the existing drain in case it's parked.
301
+ this.#pokeDrain(runId);
302
+ return { action: "enqueued_new_loop", loopId };
303
+ }
304
+ const { firstLoopPromise, drainPromise } = this.#startDrain({
305
+ sessionId, runId, provider: args.provider,
306
+ systemPrompt: args.systemPrompt, personaDefault: args.persona,
307
+ maxTurns: args.maxTurns ?? Number(process.env.PLURNK_MAX_TURNS ?? "50"),
308
+ });
309
+ return { action: "enqueued_new_loop", loopId, firstLoopPromise, drainPromise };
310
+ }
311
+ /**
312
+ * Start a drain for the given run. The drain claims queued loops via
313
+ * drain_claim_next_loop (atomic 100→102 flip), executes each via
314
+ * Engine.runLoop, and re-checks. Stream-aware: when the queue is empty
315
+ * but the run has active subscriptions, the drain parks on a
316
+ * #drainPokes signal — wake-on-completion → inject() wakes it. Drain
317
+ * exits when queue is empty AND no active subscriptions remain.
318
+ *
319
+ * Returns both `firstLoopPromise` (resolves once the first loop the
320
+ * drain processes completes — used by loop.run to give the caller a
321
+ * fast response containing their loop's result) and `drainPromise`
322
+ * (resolves only when the whole drain finishes, queue+subs settled).
323
+ */
324
+ #startDrain(opts) {
325
+ const { sessionId, runId, provider, systemPrompt, personaDefault, maxTurns } = opts;
326
+ const controller = new AbortController();
327
+ let resolveFirst = () => { };
328
+ let rejectFirst = () => { };
329
+ const firstLoopPromise = new Promise((res, rej) => {
330
+ resolveFirst = res;
331
+ rejectFirst = rej;
332
+ });
333
+ let firstSettled = false;
334
+ const drainPromise = (async () => {
335
+ let loopsDrained = 0;
336
+ let lastResult = null;
337
+ try {
338
+ while (true) {
339
+ controller.signal.throwIfAborted();
340
+ const loopRow = await this.#db.drain_claim_next_loop.get({ run_id: runId });
341
+ if (loopRow !== undefined) {
342
+ const onDispatch = (logEntryId) => {
343
+ void (async () => {
344
+ const entry = await fetchLogEntry(this.#db, logEntryId);
345
+ this.#broadcast({ sessionId }, null, "log/entry", { entry });
346
+ })();
347
+ };
348
+ const result = await this.#engine.runLoop({
349
+ provider, sessionId, runId, loopId: loopRow.id, maxTurns,
350
+ messages: [
351
+ { role: "system", content: systemPrompt },
352
+ { role: "user", content: loopRow.prompt },
353
+ ],
354
+ persona: personaDefault,
355
+ origin: "model",
356
+ onDispatch,
357
+ signal: controller.signal,
358
+ });
359
+ this.#broadcast({ sessionId }, null, "loop/terminated", {
360
+ loopId: loopRow.id,
361
+ finalStatus: result.finalStatus,
362
+ hitMaxTurns: result.hitMaxTurns,
363
+ });
364
+ loopsDrained++;
365
+ const loopResult = {
366
+ loopId: loopRow.id,
367
+ turnIds: result.turnIds,
368
+ finalStatus: result.finalStatus,
369
+ hitMaxTurns: result.hitMaxTurns,
370
+ };
371
+ lastResult = loopResult;
372
+ if (!firstSettled) {
373
+ firstSettled = true;
374
+ resolveFirst(loopResult);
375
+ }
376
+ continue;
377
+ }
378
+ // Queue empty. Stream-aware: don't exit while subs are open.
379
+ const subRow = await this.#db.drain_count_active_subs_for_run.get({ run_id: runId });
380
+ if ((subRow?.n ?? 0) === 0)
381
+ break;
382
+ await this.#awaitDrainPoke(runId, controller.signal);
383
+ }
384
+ }
385
+ catch (err) {
386
+ if (!firstSettled) {
387
+ firstSettled = true;
388
+ rejectFirst(err);
389
+ }
390
+ throw err;
391
+ }
392
+ finally {
393
+ if (!firstSettled) {
394
+ firstSettled = true;
395
+ rejectFirst(new Error("drain exited without producing a result"));
396
+ }
397
+ this.#activeDrains.delete(runId);
398
+ this.#drainPokes.delete(runId);
399
+ }
400
+ return { loopsDrained, lastResult };
401
+ })();
402
+ this.#activeDrains.set(runId, { controller, promise: drainPromise });
403
+ // Attach a swallowing handler so unhandled rejections (e.g. when
404
+ // the drain aborts and no caller awaited drainPromise) don't
405
+ // crash the process. The error already surfaced via firstLoopPromise
406
+ // if relevant, or was already logged inside the drain body.
407
+ drainPromise.catch(() => { });
408
+ // firstLoopPromise also needs a handler in case nobody awaits it
409
+ // (e.g. wake-on-completion enqueue path doesn't always read it).
410
+ firstLoopPromise.catch(() => { });
411
+ return { firstLoopPromise, drainPromise };
412
+ }
413
+ #pokeDrain(runId) {
414
+ const poke = this.#drainPokes.get(runId);
415
+ if (poke !== undefined) {
416
+ this.#drainPokes.delete(runId);
417
+ poke();
418
+ }
419
+ }
420
+ #awaitDrainPoke(runId, signal) {
421
+ return new Promise((resolve, reject) => {
422
+ if (signal.aborted) {
423
+ reject(new Error("drain aborted"));
424
+ return;
425
+ }
426
+ const onAbort = () => {
427
+ this.#drainPokes.delete(runId);
428
+ reject(new Error("drain aborted"));
429
+ };
430
+ signal.addEventListener("abort", onAbort, { once: true });
431
+ this.#drainPokes.set(runId, () => {
432
+ signal.removeEventListener("abort", onAbort);
433
+ resolve();
434
+ });
435
+ });
436
+ }
437
+ /**
438
+ * Cancel the active drain for a run. Fires the drain's AbortController;
439
+ * the engine's per-loop loopAbort cascades from the runLoop signal arg,
440
+ * so in-flight scheme operations (exec spawns, future SSE/WS) tear
441
+ * down. Queued loops in the run remain enqueued — call again if you
442
+ * want them cleared, or rely on subsequent loop.run to resume.
443
+ */
444
+ cancelDrain(runId, reason = "user_cancelled") {
445
+ const drain = this.#activeDrains.get(runId);
446
+ if (drain === undefined)
447
+ return false;
448
+ drain.controller.abort(reason);
449
+ return true;
450
+ }
451
+ /**
452
+ * Wake-on-completion handler. Streaming schemes call this when a
453
+ * subscription closes. If the run has an active loop, the channel
454
+ * transition will surface at that loop's next turn boundary — no new
455
+ * loop needed. Otherwise we open a fresh loop with the synthetic
456
+ * summary as the user prompt so the model gets a chance to react.
457
+ *
458
+ * Skipped on closeStatus=499 (aborted): the model already knows about
459
+ * its own SEND[499], and a forcefully-cancelled loop's spawn-abort
460
+ * shouldn't resurrect into a wake loop (defeats the cancel).
461
+ *
462
+ * Rummy parallel: plugins/stream/stream.js stream/completed wake:true.
463
+ */
464
+ async #handleWakeRun(payload) {
465
+ // Every subscription close pokes the run's drain (if any) so a
466
+ // parked stream-aware drain re-checks active subs count. This
467
+ // happens regardless of whether we go on to inject a new loop,
468
+ // so the 499-skipped / no-provider paths still wake the drain
469
+ // out of its "queue empty, waiting for streams" state.
470
+ this.#pokeDrain(payload.runId);
471
+ // Aborted streams don't wake — the abort was deliberate.
472
+ if (payload.closeStatus === 499) {
473
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
474
+ ...payload, wakeAction: "skipped-aborted",
475
+ });
476
+ return;
477
+ }
478
+ if (this.#provider === null) {
479
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
480
+ ...payload, wakeAction: "skipped-no-provider",
481
+ });
482
+ return;
483
+ }
484
+ try {
485
+ const systemPrompt = await readFile(PATHS.instructionsSystem, "utf8");
486
+ const personaText = await readFile(PATHS.defaultPersona, "utf8");
487
+ // Unified path: this.inject decides whether to write a prompt
488
+ // entry for an active drain's next turn (no-op-active-loop) or
489
+ // enqueue a fresh loop + drain (opened-loop). The summary
490
+ // string becomes the user prompt either way.
491
+ const result = await this.inject({
492
+ sessionId: payload.sessionId,
493
+ runId: payload.runId,
494
+ prompt: payload.summary,
495
+ provider: this.#provider,
496
+ persona: personaText,
497
+ systemPrompt,
498
+ });
499
+ if (result.action === "injected_next_turn") {
500
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
501
+ ...payload, wakeAction: "no-op-active-loop", wakeLoopId: result.loopId,
502
+ });
503
+ return;
504
+ }
505
+ // enqueued_new_loop: drain runs in background; broadcast that
506
+ // the wake opened a loop, then await the drain so background
507
+ // failures bubble to the catch block below.
508
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
509
+ ...payload, wakeAction: "opened-loop", wakeLoopId: result.loopId,
510
+ });
511
+ // Drain runs in background; loop/terminated broadcasts come
512
+ // from #startDrain as each loop finishes. Don't await — the
513
+ // wake-notify path should return quickly.
514
+ result.drainPromise?.catch((err) => {
515
+ console.error("wake-on-completion drain failed:", err instanceof Error ? err.message : String(err));
516
+ });
517
+ }
518
+ catch (err) {
519
+ console.error("wake-on-completion setup failed:", err instanceof Error ? err.message : String(err));
520
+ }
521
+ }
205
522
  #onConnection(ws) {
206
523
  const conn = new ClientConnection({
207
524
  ws,
@@ -209,6 +526,7 @@ export default class Daemon {
209
526
  db: this.#db,
210
527
  engine: this.#engine,
211
528
  provider: this.#provider,
529
+ daemon: this,
212
530
  broadcast: (target, from, method, params) => this.#broadcast(target, from, method, params),
213
531
  });
214
532
  this.#connections.add(conn);
@@ -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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"}
@@ -7,11 +7,40 @@ export type NotifyTarget = "this" | "all" | {
7
7
  sessionId: number;
8
8
  };
9
9
  export type MethodHandler = (params: unknown, ctx: HandlerContext) => Promise<unknown>;
10
+ export interface DrainLoopResult {
11
+ loopId: number;
12
+ turnIds: number[];
13
+ finalStatus: number;
14
+ hitMaxTurns: boolean;
15
+ }
16
+ export interface DaemonSurface {
17
+ inject(args: {
18
+ sessionId: number;
19
+ runId: number;
20
+ prompt: string;
21
+ provider: Provider;
22
+ persona: string;
23
+ systemPrompt: string;
24
+ maxTurns?: number;
25
+ flags?: {
26
+ yolo?: boolean;
27
+ };
28
+ personaOverride?: string | null;
29
+ }): Promise<{
30
+ action: "injected_next_turn" | "enqueued_new_loop";
31
+ loopId: number;
32
+ turnSeq?: number;
33
+ firstLoopPromise?: Promise<DrainLoopResult>;
34
+ drainPromise?: Promise<unknown>;
35
+ }>;
36
+ cancelDrain(runId: number, reason?: string): boolean;
37
+ }
10
38
  export interface HandlerContext {
11
39
  registry: MethodRegistry;
12
40
  db: Db;
13
41
  engine: Engine;
14
42
  provider: Provider | null;
43
+ daemon: DaemonSurface;
15
44
  session: ClientEnvelope | null;
16
45
  attachSession: (envelope: ClientEnvelope) => void;
17
46
  notify: (target: NotifyTarget, method: string, params?: unknown) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"MethodRegistry.d.ts","sourceRoot":"","sources":["../../src/server/MethodRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,YAAY,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvF,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,MAAM,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5E;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;CAC3D;AAID,MAAM,CAAC,OAAO,OAAO,cAAc;;IAI/B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAOpE,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,GAAG,IAAI;IAOhF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIvD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC,WAAW,IAAI,MAAM,EAAE;IAIvB,iBAAiB,IAAI,MAAM,EAAE;IAI7B,OAAO,IAAI,OAAO;CAmBrB"}
1
+ {"version":3,"file":"MethodRegistry.d.ts","sourceRoot":"","sources":["../../src/server/MethodRegistry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MethodRegistry.js","sourceRoot":"","sources":["../../src/server/MethodRegistry.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAsD1E,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IACjD,cAAc,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE7D,cAAc,CAAC,IAAY,EAAE,YAAgC;QACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,oBAAoB,CAAC,IAAY,EAAE,YAAsC;QACrE,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,yBAAyB,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,eAAe,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,WAAW;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,CAAC;IAED,iBAAiB;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;IAED,OAAO;QACH,MAAM,OAAO,GAAuC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG;gBACZ,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;gBACxB,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK;gBACvC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;aACxC,CAAC;QACN,CAAC;QACD,MAAM,aAAa,GAA6C,EAAE,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,aAAa,CAAC,IAAI,CAAC,GAAG;gBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;aAC3B,CAAC;QACN,CAAC;QACD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACzE,CAAC;CACJ"}
1
+ {"version":3,"file":"MethodRegistry.js","sourceRoot":"","sources":["../../src/server/MethodRegistry.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAiF1E,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IACjD,cAAc,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE7D,cAAc,CAAC,IAAY,EAAE,YAAgC;QACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,yBAAyB,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,oBAAoB,CAAC,IAAY,EAAE,YAAsC;QACrE,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,yBAAyB,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,eAAe,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,WAAW;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,CAAC;IAED,iBAAiB;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtD,CAAC;IAED,OAAO;QACH,MAAM,OAAO,GAAuC,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG;gBACZ,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;gBACxB,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK;gBACvC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;aACxC,CAAC;QACN,CAAC;QACD,MAAM,aAAa,GAA6C,EAAE,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,aAAa,CAAC,IAAI,CAAC,GAAG;gBAClB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;aAC3B,CAAC;QACN,CAAC;QACD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACzE,CAAC;CACJ"}
@@ -2,13 +2,13 @@ import type { LineMarker, PlurnkStatement } from "@plurnk/plurnk-grammar";
2
2
  export declare const parseSingleStatement: (text: string) => PlurnkStatement;
3
3
  export declare const parseAllStatements: (text: string) => PlurnkStatement[];
4
4
  interface OpWithMatcher {
5
- path: string;
5
+ target: string;
6
6
  matcher?: string;
7
7
  tags?: string[];
8
8
  lineRange?: LineMarker;
9
9
  }
10
10
  interface OpEditParams {
11
- path: string;
11
+ target: string;
12
12
  content?: string;
13
13
  tags?: string[];
14
14
  lineRange?: LineMarker;
@@ -1 +1 @@
1
- {"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../src/server/dsl.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoC1E,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,eAMnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,eAAe,EAKhE,CAAC;AAIF,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,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,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,KAAG,eAMzC,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,aAAa,KAAG,eAM1C,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,UAAU,CAAA;CAAE,KAAG,eAMzG,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,aAAa,KAAG,eAM1C,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,aAAa,KAAG,eAM1C,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,gBAAgB,KAAG,eAS/C,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,GAAG,gBAAgB,KAAG,eAM7C,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,KAAG,eAMzC,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,KAAG,eAMzC,CAAC"}
1
+ {"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../src/server/dsl.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoC1E,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,eAMnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,eAAe,EAKhE,CAAC;AAIF,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,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,KAAG,eAMzC,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,aAAa,KAAG,eAM1C,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,UAAU,CAAA;CAAE,KAAG,eAMzG,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,aAAa,KAAG,eAM1C,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,aAAa,KAAG,eAM1C,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,gBAAgB,KAAG,eAS/C,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,GAAG,gBAAgB,KAAG,eAM7C,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,KAAG,eAMzC,CAAC;AAEJ,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,KAAG,eAMzC,CAAC"}
@@ -32,7 +32,7 @@ const formatPath = (path) => {
32
32
  // Build a HEREDOC statement string. `signal` is the raw signal payload —
33
33
  // CSV tags `[a,b,c]` for most ops, a single number for SEND (`[200]`),
34
34
  // a single runtime tag for EXEC (`[node]`).
35
- const buildHeredoc = ({ op, suffix, signal, path, lineMarker, body, }) => `<<${op}${suffix}${signal}${path}${lineMarker}:${body}:${op}${suffix}`;
35
+ const buildHeredoc = ({ op, suffix, signal, target, lineMarker, body, }) => `<<${op}${suffix}${signal}${target}${lineMarker}:${body}:${op}${suffix}`;
36
36
  export const parseSingleStatement = (text) => {
37
37
  const result = PlurnkParser.parse(text);
38
38
  for (const item of result.items) {
@@ -50,35 +50,35 @@ export const parseAllStatements = (text) => {
50
50
  export const buildEdit = (p) => parseSingleStatement(buildHeredoc({
51
51
  op: "EDIT", suffix: randomSuffix(),
52
52
  signal: formatTags(p.tags),
53
- path: formatPath(p.path),
53
+ target: formatPath(p.target),
54
54
  lineMarker: formatLineMarker(p.lineRange),
55
55
  body: p.content ?? "",
56
56
  }));
57
57
  export const buildRead = (p) => parseSingleStatement(buildHeredoc({
58
58
  op: "READ", suffix: randomSuffix(),
59
59
  signal: formatTags(p.tags),
60
- path: formatPath(p.path),
60
+ target: formatPath(p.target),
61
61
  lineMarker: formatLineMarker(p.lineRange),
62
62
  body: p.matcher ?? "",
63
63
  }));
64
64
  export const buildFind = (p) => parseSingleStatement(buildHeredoc({
65
65
  op: "FIND", suffix: randomSuffix(),
66
66
  signal: formatTags(p.tags),
67
- path: formatPath(p.scope),
67
+ target: formatPath(p.scope),
68
68
  lineMarker: formatLineMarker(p.lineRange),
69
69
  body: p.matcher ?? "",
70
70
  }));
71
71
  export const buildShow = (p) => parseSingleStatement(buildHeredoc({
72
72
  op: "SHOW", suffix: randomSuffix(),
73
73
  signal: formatTags(p.tags),
74
- path: formatPath(p.path),
74
+ target: formatPath(p.target),
75
75
  lineMarker: formatLineMarker(p.lineRange),
76
76
  body: p.matcher ?? "",
77
77
  }));
78
78
  export const buildHide = (p) => parseSingleStatement(buildHeredoc({
79
79
  op: "HIDE", suffix: randomSuffix(),
80
80
  signal: formatTags(p.tags),
81
- path: formatPath(p.path),
81
+ target: formatPath(p.target),
82
82
  lineMarker: formatLineMarker(p.lineRange),
83
83
  body: p.matcher ?? "",
84
84
  }));
@@ -88,7 +88,7 @@ export const buildCopy = (p) => {
88
88
  return parseSingleStatement(buildHeredoc({
89
89
  op: "COPY", suffix: randomSuffix(),
90
90
  signal: formatTags(p.tags),
91
- path: formatPath(p.source),
91
+ target: formatPath(p.source),
92
92
  lineMarker: formatLineMarker(p.lineRange),
93
93
  body: p.destination,
94
94
  }));
@@ -96,21 +96,21 @@ export const buildCopy = (p) => {
96
96
  export const buildMove = (p) => parseSingleStatement(buildHeredoc({
97
97
  op: "MOVE", suffix: randomSuffix(),
98
98
  signal: formatTags(p.tags),
99
- path: formatPath(p.source),
99
+ target: formatPath(p.source),
100
100
  lineMarker: formatLineMarker(p.lineRange),
101
101
  body: p.destination ?? "",
102
102
  }));
103
103
  export const buildSend = (p) => parseSingleStatement(buildHeredoc({
104
104
  op: "SEND", suffix: randomSuffix(),
105
105
  signal: `[${p.status}]`,
106
- path: p.recipient !== undefined ? formatPath(p.recipient) : "",
106
+ target: p.recipient !== undefined ? formatPath(p.recipient) : "",
107
107
  lineMarker: "",
108
108
  body: p.body ?? "",
109
109
  }));
110
110
  export const buildExec = (p) => parseSingleStatement(buildHeredoc({
111
111
  op: "EXEC", suffix: randomSuffix(),
112
112
  signal: p.runtime !== undefined ? `[${p.runtime}]` : "",
113
- path: p.cwd !== undefined ? formatPath(p.cwd) : "",
113
+ target: p.cwd !== undefined ? formatPath(p.cwd) : "",
114
114
  lineMarker: "",
115
115
  body: p.command ?? "",
116
116
  }));