@plurnk/plurnk-service 0.3.0 → 0.5.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 (116) hide show
  1. package/README.md +13 -44
  2. package/SPEC.md +559 -447
  3. package/bin/plurnk-service.js +2 -1
  4. package/dist/core/ChannelWrite.d.ts +15 -0
  5. package/dist/core/ChannelWrite.d.ts.map +1 -1
  6. package/dist/core/ChannelWrite.js.map +1 -1
  7. package/dist/core/Engine.d.ts +15 -4
  8. package/dist/core/Engine.d.ts.map +1 -1
  9. package/dist/core/Engine.js +417 -114
  10. package/dist/core/Engine.js.map +1 -1
  11. package/dist/core/PluginLoader.js +6 -6
  12. package/dist/core/PluginLoader.js.map +1 -1
  13. package/dist/core/ProviderInstantiate.d.ts +4 -0
  14. package/dist/core/ProviderInstantiate.d.ts.map +1 -0
  15. package/dist/core/ProviderInstantiate.js +41 -0
  16. package/dist/core/ProviderInstantiate.js.map +1 -0
  17. package/dist/core/ProviderRegistry.d.ts.map +1 -1
  18. package/dist/core/ProviderRegistry.js +1 -1
  19. package/dist/core/ProviderRegistry.js.map +1 -1
  20. package/dist/core/SchemeRegistry.d.ts +1 -1
  21. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  22. package/dist/core/SchemeRegistry.js +4 -20
  23. package/dist/core/SchemeRegistry.js.map +1 -1
  24. package/dist/core/line-marker.d.ts +23 -0
  25. package/dist/core/line-marker.d.ts.map +1 -0
  26. package/dist/core/line-marker.js +321 -0
  27. package/dist/core/line-marker.js.map +1 -0
  28. package/dist/core/matcher.d.ts +12 -0
  29. package/dist/core/matcher.d.ts.map +1 -0
  30. package/dist/core/matcher.js +72 -0
  31. package/dist/core/matcher.js.map +1 -0
  32. package/dist/core/mimetype-binary.d.ts +6 -0
  33. package/dist/core/mimetype-binary.d.ts.map +1 -0
  34. package/dist/core/mimetype-binary.js +82 -0
  35. package/dist/core/mimetype-binary.js.map +1 -0
  36. package/dist/core/packet-wire.d.ts.map +1 -1
  37. package/dist/core/packet-wire.js +206 -30
  38. package/dist/core/packet-wire.js.map +1 -1
  39. package/dist/core/path-mimetype.d.ts +3 -0
  40. package/dist/core/path-mimetype.d.ts.map +1 -0
  41. package/dist/core/path-mimetype.js +47 -0
  42. package/dist/core/path-mimetype.js.map +1 -0
  43. package/dist/core/scheme-types.d.ts +8 -26
  44. package/dist/core/scheme-types.d.ts.map +1 -1
  45. package/dist/core/scheme-types.js +5 -8
  46. package/dist/core/scheme-types.js.map +1 -1
  47. package/dist/index.d.ts +3 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +14 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/schemes/Exec.d.ts +30 -1
  52. package/dist/schemes/Exec.d.ts.map +1 -1
  53. package/dist/schemes/Exec.js +217 -6
  54. package/dist/schemes/Exec.js.map +1 -1
  55. package/dist/schemes/File.d.ts +5 -0
  56. package/dist/schemes/File.d.ts.map +1 -1
  57. package/dist/schemes/File.js +113 -23
  58. package/dist/schemes/File.js.map +1 -1
  59. package/dist/schemes/Log.d.ts +3 -0
  60. package/dist/schemes/Log.d.ts.map +1 -1
  61. package/dist/schemes/Log.js +88 -13
  62. package/dist/schemes/Log.js.map +1 -1
  63. package/dist/schemes/Plurnk.js +3 -3
  64. package/dist/schemes/Plurnk.js.map +1 -1
  65. package/dist/schemes/_entry-crud.d.ts +2 -0
  66. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  67. package/dist/schemes/_entry-crud.js +1 -0
  68. package/dist/schemes/_entry-crud.js.map +1 -1
  69. package/dist/schemes/_entry-find.d.ts.map +1 -1
  70. package/dist/schemes/_entry-find.js +64 -15
  71. package/dist/schemes/_entry-find.js.map +1 -1
  72. package/dist/schemes/_entry-ops.d.ts +3 -0
  73. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  74. package/dist/schemes/_entry-ops.js +262 -54
  75. package/dist/schemes/_entry-ops.js.map +1 -1
  76. package/dist/schemes/_entry-send.d.ts.map +1 -1
  77. package/dist/schemes/_entry-send.js +14 -7
  78. package/dist/schemes/_entry-send.js.map +1 -1
  79. package/dist/server/ClientConnection.d.ts +3 -2
  80. package/dist/server/ClientConnection.d.ts.map +1 -1
  81. package/dist/server/ClientConnection.js +4 -1
  82. package/dist/server/ClientConnection.js.map +1 -1
  83. package/dist/server/Daemon.d.ts +51 -1
  84. package/dist/server/Daemon.d.ts.map +1 -1
  85. package/dist/server/Daemon.js +337 -1
  86. package/dist/server/Daemon.js.map +1 -1
  87. package/dist/server/MethodRegistry.d.ts +31 -2
  88. package/dist/server/MethodRegistry.d.ts.map +1 -1
  89. package/dist/server/MethodRegistry.js.map +1 -1
  90. package/dist/server/dsl.d.ts +2 -2
  91. package/dist/server/dsl.d.ts.map +1 -1
  92. package/dist/server/dsl.js +10 -10
  93. package/dist/server/dsl.js.map +1 -1
  94. package/dist/server/methods/entry_read.js +5 -5
  95. package/dist/server/methods/entry_read.js.map +1 -1
  96. package/dist/server/methods/loop_cancel.d.ts +3 -0
  97. package/dist/server/methods/loop_cancel.d.ts.map +1 -0
  98. package/dist/server/methods/loop_cancel.js +27 -0
  99. package/dist/server/methods/loop_cancel.js.map +1 -0
  100. package/dist/server/methods/loop_resolve.js +2 -2
  101. package/dist/server/methods/loop_resolve.js.map +1 -1
  102. package/dist/server/methods/loop_run.d.ts.map +1 -1
  103. package/dist/server/methods/loop_run.js +48 -48
  104. package/dist/server/methods/loop_run.js.map +1 -1
  105. package/dist/server/methods/op_edit.js +3 -3
  106. package/dist/server/methods/op_edit.js.map +1 -1
  107. package/dist/server/methods/op_hide.js +3 -3
  108. package/dist/server/methods/op_hide.js.map +1 -1
  109. package/dist/server/methods/op_read.js +3 -3
  110. package/dist/server/methods/op_read.js.map +1 -1
  111. package/dist/server/methods/op_show.js +3 -3
  112. package/dist/server/methods/op_show.js.map +1 -1
  113. package/dist/server/methods/providers_list.js +1 -1
  114. package/dist/server/methods/providers_list.js.map +1 -1
  115. package/migrations/001_schema.sql +1 -1
  116. package/package.json +19 -14
@@ -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;IAgDD,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;IAqH3B;;;;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;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIzF;;;;;;;;;;;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,12 @@ 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
+ telemetryEventNotify: (sessionId, payload) => this.notifyTelemetryEvent(sessionId, payload),
80
+ });
63
81
  this.#nodeModulesPath = nodeModulesPath ?? resolve(process.cwd(), "node_modules");
64
82
  this.#registry = new MethodRegistry();
65
83
  this.#registerBuiltins();
@@ -131,6 +149,23 @@ export default class Daemon {
131
149
  });
132
150
  });
133
151
  this.#wss = null;
152
+ // Drain order: (1) abort in-flight loops via #activeDrains so
153
+ // strike paths don't keep going, (2) await each drain's promise
154
+ // to completion, (3) drain streaming schemes' background work
155
+ // (exec spawn cleanup, channel writes). Only THEN close the DB
156
+ // upstream — drain queries hit the DB right up until they exit.
157
+ for (const drain of this.#activeDrains.values())
158
+ drain.controller.abort("daemon_stopping");
159
+ const drainPromises = [...this.#activeDrains.values()].map((d) => d.promise);
160
+ await Promise.allSettled(drainPromises);
161
+ await this.#drainStreamingSchemes();
162
+ }
163
+ // Per-scheme idle awaits for clean shutdown. New streaming schemes
164
+ // (SSE, WS) add themselves here as they land.
165
+ async #drainStreamingSchemes() {
166
+ const exec = this.#schemes.get("exec");
167
+ if (exec?.idle !== undefined)
168
+ await exec.idle();
134
169
  }
135
170
  #registerBuiltins() {
136
171
  registerPing(this.#registry);
@@ -153,6 +188,7 @@ export default class Daemon {
153
188
  registerOpDispatch(this.#registry);
154
189
  registerOpParse(this.#registry);
155
190
  registerLoopRun(this.#registry);
191
+ registerLoopCancel(this.#registry);
156
192
  registerLoopResolve(this.#registry);
157
193
  registerEntryRead(this.#registry);
158
194
  registerLogRead(this.#registry);
@@ -193,6 +229,25 @@ export default class Daemon {
193
229
  contentLength: "number — current length of the channel's content",
194
230
  },
195
231
  });
232
+ this.#registry.registerNotification("telemetry/event", {
233
+ description: "A TelemetryEvent (per @plurnk/plurnk-grammar 0.17.0) was pushed to the loop's telemetry buffer. Same envelope the model sees on the next packet's telemetry.errors[], delivered live for client-side surfacing (debug panel, loop-degrading toasts, session timeline). Sources include `grammar` (parse errors), `engine:rail` (strike, cycle, sudden_death, no_ops, max_commands_exceeded), `scheme:<name>` (action failures, future), and `provider:<vendor>` (provider issues, future). Scoped to the loop's session.",
234
+ params: {
235
+ loopId: "number — the loop that produced the event",
236
+ event: "TelemetryEvent — { source, kind, message?, position?, ...kind-specific }",
237
+ },
238
+ });
239
+ this.#registry.registerNotification("stream/concluded", {
240
+ 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.",
241
+ params: {
242
+ entryId: "number",
243
+ subscriptionId: "number",
244
+ scheme: "string — the scheme that owned the subscription (e.g. 'exec')",
245
+ closeStatus: "number — 200 (clean) / 500 (error) / 499 (aborted)",
246
+ summary: "string — one-liner the model gets as a wake prompt",
247
+ wakeAction: "string — 'no-op-active-loop' | 'opened-loop' | 'skipped-aborted' | 'skipped-no-provider'",
248
+ wakeLoopId: "number? — the loop that was opened (only when wakeAction='opened-loop')",
249
+ },
250
+ });
196
251
  }
197
252
  /**
198
253
  * Emit a stream/event notification scoped to the session containing the
@@ -202,6 +257,286 @@ export default class Daemon {
202
257
  notifyStreamEvent(sessionId, event) {
203
258
  this.#broadcast({ sessionId }, null, "stream/event", event);
204
259
  }
260
+ /**
261
+ * Emit a telemetry/event notification scoped to the session containing
262
+ * the loop. Engine.#pushTelemetry invokes this for every TelemetryEvent
263
+ * (parse_error, strike, cycle, sudden_death, no_ops, max_commands_exceeded,
264
+ * action_failure) the moment it lands in the loop's telemetry buffer.
265
+ * SPEC §15.1.
266
+ */
267
+ notifyTelemetryEvent(sessionId, payload) {
268
+ this.#broadcast({ sessionId }, null, "telemetry/event", payload);
269
+ }
270
+ /**
271
+ * Inject a prompt into a run. Two paths:
272
+ * - Active drain: writes a plurnk://prompt/<loop>/<next-turn> entry
273
+ * via Engine.inject. Current loop sees the new prompt at its next
274
+ * turn. Returns immediately with {action: "injected_next_turn"}.
275
+ * - No active drain: enqueues a fresh loop with the prompt at
276
+ * status=100, starts a drain. Returns the drain promise so the
277
+ * caller can await full completion.
278
+ *
279
+ * Rummy parallel: AgentLoop.inject(). Unified surface — both `loop.run`
280
+ * and wake-on-completion go through this method.
281
+ */
282
+ async inject(args) {
283
+ const { sessionId, runId, prompt } = args;
284
+ // Wake any drain parked on "queue empty + active subs" so it
285
+ // re-checks the queue immediately regardless of which branch we
286
+ // take. The poke fires before we return; if we enqueue a new
287
+ // loop, the drain we start below claims it on its first iteration.
288
+ this.#pokeDrain(runId);
289
+ const drainActive = this.#activeDrains.has(runId);
290
+ if (drainActive) {
291
+ const result = await this.#engine.inject(runId, prompt);
292
+ if (result !== null) {
293
+ return { action: "injected_next_turn", loopId: result.loopId, turnSeq: result.turnSeq };
294
+ }
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
+ }
300
+ // Enqueue a fresh loop. Persist flags + persona override on the row.
301
+ const seqRow = await this.#db.loop_run_next_sequence.get({ run_id: runId });
302
+ if (seqRow === undefined)
303
+ throw new Error("inject: next-sequence query returned no row");
304
+ const loopRow = await this.#db.drain_enqueue_loop.get({
305
+ run_id: runId, sequence: seqRow.next, prompt, persona: args.personaOverride ?? null,
306
+ });
307
+ if (loopRow === undefined)
308
+ throw new Error("inject: loop enqueue returned no row");
309
+ const loopId = loopRow.id;
310
+ if (args.flags !== undefined) {
311
+ const merged = { ...DEFAULT_LOOP_FLAGS, ...args.flags };
312
+ await this.#db.engine_set_loop_flags.run({
313
+ loop_id: loopId, flags: JSON.stringify(merged),
314
+ });
315
+ }
316
+ // Existing drain will pick this loop up — don't start a parallel one.
317
+ if (drainActive) {
318
+ // Poke the existing drain in case it's parked.
319
+ this.#pokeDrain(runId);
320
+ return { action: "enqueued_new_loop", loopId };
321
+ }
322
+ const { firstLoopPromise, drainPromise } = this.#startDrain({
323
+ sessionId, runId, provider: args.provider,
324
+ systemPrompt: args.systemPrompt, personaDefault: args.persona,
325
+ maxTurns: args.maxTurns ?? Number(process.env.PLURNK_MAX_TURNS ?? "50"),
326
+ });
327
+ return { action: "enqueued_new_loop", loopId, firstLoopPromise, drainPromise };
328
+ }
329
+ /**
330
+ * Start a drain for the given run. The drain claims queued loops via
331
+ * drain_claim_next_loop (atomic 100→102 flip), executes each via
332
+ * Engine.runLoop, and re-checks. Stream-aware: when the queue is empty
333
+ * but the run has active subscriptions, the drain parks on a
334
+ * #drainPokes signal — wake-on-completion → inject() wakes it. Drain
335
+ * exits when queue is empty AND no active subscriptions remain.
336
+ *
337
+ * Returns both `firstLoopPromise` (resolves once the first loop the
338
+ * drain processes completes — used by loop.run to give the caller a
339
+ * fast response containing their loop's result) and `drainPromise`
340
+ * (resolves only when the whole drain finishes, queue+subs settled).
341
+ */
342
+ #startDrain(opts) {
343
+ const { sessionId, runId, provider, systemPrompt, personaDefault, maxTurns } = opts;
344
+ const controller = new AbortController();
345
+ let resolveFirst = () => { };
346
+ let rejectFirst = () => { };
347
+ const firstLoopPromise = new Promise((res, rej) => {
348
+ resolveFirst = res;
349
+ rejectFirst = rej;
350
+ });
351
+ let firstSettled = false;
352
+ const drainPromise = (async () => {
353
+ let loopsDrained = 0;
354
+ let lastResult = null;
355
+ try {
356
+ while (true) {
357
+ controller.signal.throwIfAborted();
358
+ const loopRow = await this.#db.drain_claim_next_loop.get({ run_id: runId });
359
+ if (loopRow !== undefined) {
360
+ const onDispatch = (logEntryId) => {
361
+ void (async () => {
362
+ const entry = await fetchLogEntry(this.#db, logEntryId);
363
+ this.#broadcast({ sessionId }, null, "log/entry", { entry });
364
+ })();
365
+ };
366
+ const result = await this.#engine.runLoop({
367
+ provider, sessionId, runId, loopId: loopRow.id, maxTurns,
368
+ messages: [
369
+ { role: "system", content: systemPrompt },
370
+ { role: "user", content: loopRow.prompt },
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;
395
+ }
396
+ // Queue empty. Stream-aware: don't exit while subs are open.
397
+ const subRow = await this.#db.drain_count_active_subs_for_run.get({ run_id: runId });
398
+ if ((subRow?.n ?? 0) === 0)
399
+ break;
400
+ await this.#awaitDrainPoke(runId, controller.signal);
401
+ }
402
+ }
403
+ catch (err) {
404
+ if (!firstSettled) {
405
+ firstSettled = true;
406
+ rejectFirst(err);
407
+ }
408
+ throw err;
409
+ }
410
+ finally {
411
+ if (!firstSettled) {
412
+ firstSettled = true;
413
+ rejectFirst(new Error("drain exited without producing a result"));
414
+ }
415
+ this.#activeDrains.delete(runId);
416
+ this.#drainPokes.delete(runId);
417
+ }
418
+ return { loopsDrained, lastResult };
419
+ })();
420
+ this.#activeDrains.set(runId, { controller, promise: drainPromise });
421
+ // Attach a swallowing handler so unhandled rejections (e.g. when
422
+ // the drain aborts and no caller awaited drainPromise) don't
423
+ // crash the process. The error already surfaced via firstLoopPromise
424
+ // if relevant, or was already logged inside the drain body.
425
+ 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
+ firstLoopPromise.catch(() => { });
429
+ return { firstLoopPromise, drainPromise };
430
+ }
431
+ #pokeDrain(runId) {
432
+ const poke = this.#drainPokes.get(runId);
433
+ if (poke !== undefined) {
434
+ this.#drainPokes.delete(runId);
435
+ poke();
436
+ }
437
+ }
438
+ #awaitDrainPoke(runId, signal) {
439
+ return new Promise((resolve, reject) => {
440
+ if (signal.aborted) {
441
+ reject(new Error("drain aborted"));
442
+ return;
443
+ }
444
+ const onAbort = () => {
445
+ this.#drainPokes.delete(runId);
446
+ reject(new Error("drain aborted"));
447
+ };
448
+ signal.addEventListener("abort", onAbort, { once: true });
449
+ this.#drainPokes.set(runId, () => {
450
+ signal.removeEventListener("abort", onAbort);
451
+ resolve();
452
+ });
453
+ });
454
+ }
455
+ /**
456
+ * Cancel the active drain for a run. Fires the drain's AbortController;
457
+ * the engine's per-loop loopAbort cascades from the runLoop signal arg,
458
+ * so in-flight scheme operations (exec spawns, future SSE/WS) tear
459
+ * down. Queued loops in the run remain enqueued — call again if you
460
+ * want them cleared, or rely on subsequent loop.run to resume.
461
+ */
462
+ cancelDrain(runId, reason = "user_cancelled") {
463
+ const drain = this.#activeDrains.get(runId);
464
+ if (drain === undefined)
465
+ return false;
466
+ drain.controller.abort(reason);
467
+ return true;
468
+ }
469
+ /**
470
+ * Wake-on-completion handler. Streaming schemes call this when a
471
+ * subscription closes. If the run has an active loop, the channel
472
+ * transition will surface at that loop's next turn boundary — no new
473
+ * loop needed. Otherwise we open a fresh loop with the synthetic
474
+ * summary as the user prompt so the model gets a chance to react.
475
+ *
476
+ * Skipped on closeStatus=499 (aborted): the model already knows about
477
+ * its own SEND[499], and a forcefully-cancelled loop's spawn-abort
478
+ * shouldn't resurrect into a wake loop (defeats the cancel).
479
+ *
480
+ * Rummy parallel: plugins/stream/stream.js stream/completed wake:true.
481
+ */
482
+ 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
+ // Aborted streams don't wake — the abort was deliberate.
490
+ if (payload.closeStatus === 499) {
491
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
492
+ ...payload, wakeAction: "skipped-aborted",
493
+ });
494
+ return;
495
+ }
496
+ if (this.#provider === null) {
497
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
498
+ ...payload, wakeAction: "skipped-no-provider",
499
+ });
500
+ return;
501
+ }
502
+ try {
503
+ const systemPrompt = await readFile(PATHS.instructionsSystem, "utf8");
504
+ const personaText = await readFile(PATHS.defaultPersona, "utf8");
505
+ // Unified path: this.inject decides whether to write a prompt
506
+ // entry for an active drain's next turn (no-op-active-loop) or
507
+ // enqueue a fresh loop + drain (opened-loop). The summary
508
+ // string becomes the user prompt either way.
509
+ const result = await this.inject({
510
+ sessionId: payload.sessionId,
511
+ runId: payload.runId,
512
+ prompt: payload.summary,
513
+ provider: this.#provider,
514
+ persona: personaText,
515
+ systemPrompt,
516
+ });
517
+ if (result.action === "injected_next_turn") {
518
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
519
+ ...payload, wakeAction: "no-op-active-loop", wakeLoopId: result.loopId,
520
+ });
521
+ return;
522
+ }
523
+ // enqueued_new_loop: drain runs in background; broadcast that
524
+ // the wake opened a loop, then await the drain so background
525
+ // failures bubble to the catch block below.
526
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
527
+ ...payload, wakeAction: "opened-loop", wakeLoopId: result.loopId,
528
+ });
529
+ // Drain runs in background; loop/terminated broadcasts come
530
+ // from #startDrain as each loop finishes. Don't await — the
531
+ // wake-notify path should return quickly.
532
+ result.drainPromise?.catch((err) => {
533
+ console.error("wake-on-completion drain failed:", err instanceof Error ? err.message : String(err));
534
+ });
535
+ }
536
+ catch (err) {
537
+ console.error("wake-on-completion setup failed:", err instanceof Error ? err.message : String(err));
538
+ }
539
+ }
205
540
  #onConnection(ws) {
206
541
  const conn = new ClientConnection({
207
542
  ws,
@@ -209,6 +544,7 @@ export default class Daemon {
209
544
  db: this.#db,
210
545
  engine: this.#engine,
211
546
  provider: this.#provider,
547
+ daemon: this,
212
548
  broadcast: (target, from, method, params) => this.#broadcast(target, from, method, params),
213
549
  });
214
550
  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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"}
@@ -1,17 +1,46 @@
1
1
  import type Engine from "../core/Engine.ts";
2
2
  import type { Db } from "../core/Db.ts";
3
- import type { Provider } from "../core/ProviderRegistry.ts";
3
+ import type { Provider } from "@plurnk/plurnk-providers";
4
4
  import type { ClientEnvelope } from "./envelope.ts";
5
- export type { Provider } from "../core/ProviderRegistry.ts";
5
+ export type { Provider } from "@plurnk/plurnk-providers";
6
6
  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"}