@plurnk/plurnk-service 0.44.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/.env.example +41 -24
  2. package/README.md +37 -18
  3. package/SPEC.md +34 -10
  4. package/dist/core/ChannelWrite.d.ts +4 -0
  5. package/dist/core/ChannelWrite.d.ts.map +1 -1
  6. package/dist/core/ChannelWrite.js +9 -0
  7. package/dist/core/ChannelWrite.js.map +1 -1
  8. package/dist/core/ChannelWrite.sql +69 -0
  9. package/dist/core/Engine.d.ts.map +1 -1
  10. package/dist/core/Engine.js +146 -103
  11. package/dist/core/Engine.js.map +1 -1
  12. package/dist/core/Engine.sql +307 -0
  13. package/dist/core/ExecutorRegistry.d.ts +4 -2
  14. package/dist/core/ExecutorRegistry.d.ts.map +1 -1
  15. package/dist/core/ExecutorRegistry.js +20 -5
  16. package/dist/core/ExecutorRegistry.js.map +1 -1
  17. package/dist/core/SchemeRegistry.d.ts +3 -0
  18. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  19. package/dist/core/SchemeRegistry.js +37 -0
  20. package/dist/core/SchemeRegistry.js.map +1 -1
  21. package/dist/core/fork.d.ts.map +1 -1
  22. package/dist/core/fork.js +8 -1
  23. package/dist/core/fork.js.map +1 -1
  24. package/dist/core/fork.sql +50 -0
  25. package/dist/core/packet-wire.d.ts +1 -0
  26. package/dist/core/packet-wire.d.ts.map +1 -1
  27. package/dist/core/packet-wire.js +11 -0
  28. package/dist/core/packet-wire.js.map +1 -1
  29. package/dist/core/plugin-attribution.d.ts +5 -0
  30. package/dist/core/plugin-attribution.d.ts.map +1 -0
  31. package/dist/core/plugin-attribution.js +39 -0
  32. package/dist/core/plugin-attribution.js.map +1 -0
  33. package/dist/core/run-ops.sql +16 -0
  34. package/dist/core/scheme-types.d.ts +1 -0
  35. package/dist/core/scheme-types.d.ts.map +1 -1
  36. package/dist/core/session-settings.d.ts +1 -0
  37. package/dist/core/session-settings.d.ts.map +1 -1
  38. package/dist/core/session-settings.js +2 -1
  39. package/dist/core/session-settings.js.map +1 -1
  40. package/dist/schemes/Exec.d.ts +2 -1
  41. package/dist/schemes/Exec.d.ts.map +1 -1
  42. package/dist/schemes/Exec.js +39 -22
  43. package/dist/schemes/Exec.js.map +1 -1
  44. package/dist/schemes/File.d.ts.map +1 -1
  45. package/dist/schemes/File.js +27 -3
  46. package/dist/schemes/File.js.map +1 -1
  47. package/dist/schemes/Log.sql +37 -0
  48. package/dist/schemes/_entry-crud.sql +88 -0
  49. package/dist/schemes/_entry-find.sql +31 -0
  50. package/dist/schemes/_entry-graph.sql +60 -0
  51. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  52. package/dist/schemes/_entry-manifest.js +11 -3
  53. package/dist/schemes/_entry-manifest.js.map +1 -1
  54. package/dist/schemes/_entry-ops.sql +20 -0
  55. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  56. package/dist/schemes/_entry-semantic.js +14 -7
  57. package/dist/schemes/_entry-semantic.js.map +1 -1
  58. package/dist/schemes/_entry-semantic.sql +80 -0
  59. package/dist/schemes/exec-abort.d.ts +11 -0
  60. package/dist/schemes/exec-abort.d.ts.map +1 -0
  61. package/dist/schemes/exec-abort.js +23 -0
  62. package/dist/schemes/exec-abort.js.map +1 -0
  63. package/dist/schemes/exec-env.js +1 -1
  64. package/dist/schemes/exec-env.js.map +1 -1
  65. package/dist/server/Daemon.d.ts.map +1 -1
  66. package/dist/server/Daemon.js +162 -76
  67. package/dist/server/Daemon.js.map +1 -1
  68. package/dist/server/clientTurn.sql +10 -0
  69. package/dist/server/drain.sql +92 -0
  70. package/dist/server/dsl.d.ts.map +1 -1
  71. package/dist/server/dsl.js +11 -4
  72. package/dist/server/dsl.js.map +1 -1
  73. package/dist/server/envelope.sql +75 -0
  74. package/dist/server/logEntry.sql +10 -0
  75. package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -1
  76. package/dist/server/methods/_dispatchAsClient.js +11 -6
  77. package/dist/server/methods/_dispatchAsClient.js.map +1 -1
  78. package/dist/server/methods/entry_read.sql +21 -0
  79. package/dist/server/methods/log_read.sql +11 -0
  80. package/dist/server/methods/loop_run.d.ts.map +1 -1
  81. package/dist/server/methods/loop_run.js +31 -11
  82. package/dist/server/methods/loop_run.js.map +1 -1
  83. package/dist/server/methods/loop_run.sql +9 -0
  84. package/dist/server/methods/session_create.d.ts.map +1 -1
  85. package/dist/server/methods/session_create.js +10 -3
  86. package/dist/server/methods/session_create.js.map +1 -1
  87. package/dist/service.d.ts +6 -0
  88. package/dist/service.d.ts.map +1 -0
  89. package/dist/service.js +221 -0
  90. package/dist/service.js.map +1 -0
  91. package/migrations/0000-00-00.01_schema.sql +2 -2
  92. package/package.json +27 -13
  93. package/bin/plurnk-service.ts +0 -176
  94. package/dist/core/ProviderRegistry.d.ts +0 -42
  95. package/dist/core/ProviderRegistry.d.ts.map +0 -1
  96. package/dist/core/ProviderRegistry.js +0 -72
  97. package/dist/core/ProviderRegistry.js.map +0 -1
  98. package/dist/core/line-marker.d.ts +0 -23
  99. package/dist/core/line-marker.d.ts.map +0 -1
  100. package/dist/core/line-marker.js +0 -321
  101. package/dist/core/line-marker.js.map +0 -1
  102. package/dist/core/matcher.d.ts +0 -12
  103. package/dist/core/matcher.d.ts.map +0 -1
  104. package/dist/core/matcher.js +0 -72
  105. package/dist/core/matcher.js.map +0 -1
  106. package/dist/core/mimetype-binary.d.ts +0 -6
  107. package/dist/core/mimetype-binary.d.ts.map +0 -1
  108. package/dist/core/mimetype-binary.js +0 -82
  109. package/dist/core/mimetype-binary.js.map +0 -1
  110. package/dist/core/path-mimetype.d.ts +0 -3
  111. package/dist/core/path-mimetype.d.ts.map +0 -1
  112. package/dist/core/path-mimetype.js +0 -47
  113. package/dist/core/path-mimetype.js.map +0 -1
  114. package/dist/core/plugin-trust.d.ts +0 -4
  115. package/dist/core/plugin-trust.d.ts.map +0 -1
  116. package/dist/core/plugin-trust.js +0 -23
  117. package/dist/core/plugin-trust.js.map +0 -1
  118. package/dist/providers/Mock.d.ts +0 -43
  119. package/dist/providers/Mock.d.ts.map +0 -1
  120. package/dist/providers/Mock.js +0 -36
  121. package/dist/providers/Mock.js.map +0 -1
  122. package/dist/server/methods/op_hide.d.ts +0 -5
  123. package/dist/server/methods/op_hide.d.ts.map +0 -1
  124. package/dist/server/methods/op_hide.js +0 -24
  125. package/dist/server/methods/op_hide.js.map +0 -1
  126. package/dist/server/methods/op_show.d.ts +0 -5
  127. package/dist/server/methods/op_show.d.ts.map +0 -1
  128. package/dist/server/methods/op_show.js +0 -24
  129. package/dist/server/methods/op_show.js.map +0 -1
  130. package/dist/server/methods/session_set_persona.d.ts +0 -5
  131. package/dist/server/methods/session_set_persona.d.ts.map +0 -1
  132. package/dist/server/methods/session_set_persona.js +0 -29
  133. package/dist/server/methods/session_set_persona.js.map +0 -1
@@ -3,7 +3,8 @@
3
3
  // SPEC §rpc.
4
4
  import { WebSocketServer } from "ws";
5
5
  import { readFile } from "node:fs/promises";
6
- import { resolve } from "node:path";
6
+ import { resolve, dirname } from "node:path";
7
+ import ChannelWrite from "../core/ChannelWrite.js";
7
8
  import { Paths } from "../index.js";
8
9
  import Engine from "../core/Engine.js";
9
10
  import ExecutorRegistry from "../core/ExecutorRegistry.js";
@@ -54,6 +55,7 @@ export default class Daemon {
54
55
  #provider;
55
56
  #registry;
56
57
  #nodeModulesPath;
58
+ #discoveryCwd;
57
59
  #wss = null;
58
60
  #connections = new Set();
59
61
  // Run-level drain registry. At most one drain per run. The stored object
@@ -71,19 +73,23 @@ export default class Daemon {
71
73
  // any single (ephemeral) drain; replaced with a fresh controller once
72
74
  // aborted so a later loop.run isn't born cancelled.
73
75
  #runAborts = new Map();
76
+ // Per-run drain-transition lock — see #withDrainLock (R4 / §run-lifecycle-single-drain).
77
+ #drainLocks = new Map();
74
78
  constructor({ db, schemes, mimetypes, provider, nodeModulesPath, }) {
75
79
  this.#db = db;
76
80
  this.#schemes = schemes ?? new SchemeRegistry();
77
81
  this.#provider = provider ?? null;
78
- // Mimetypes owns discovery, detection, handler instantiation, and
79
- // budget-truncated preview rendering. plurnk-service stays mimetype-
80
- // illiterate we just inject the tokenize function (sourced from the
81
- // active provider's countTokens) and configure text/markdown as the
82
- // default mimetype (LLM output is overwhelmingly markdown; the
83
- // text-markdown handler is a hard dep so the default actually
84
- // resolves at runtime).
82
+ // Plugin discovery resolves from the SERVICE's node_modules (its exec/scheme/mimetype
83
+ // deps), NOT process.cwd() — else a globally-installed daemon started from a project dir
84
+ // finds no plugins. The bin passes the package-relative path; cwd default holds for
85
+ // in-repo tests. discover() takes a cwd and joins node_modules, so derive the parent.
86
+ this.#nodeModulesPath = nodeModulesPath ?? resolve(process.cwd(), "node_modules");
87
+ this.#discoveryCwd = dirname(this.#nodeModulesPath);
88
+ // Mimetypes owns discovery + detection; we inject the tokenize fn (from the provider's
89
+ // countTokens) and default to text/markdown.
85
90
  this.#mimetypes = mimetypes ?? new Mimetypes({
86
91
  defaultMimetype: "text/markdown",
92
+ discoverOptions: { cwd: this.#discoveryCwd },
87
93
  });
88
94
  this.#engine = new Engine({
89
95
  db, schemes: this.#schemes, mimetypes: this.#mimetypes,
@@ -112,7 +118,6 @@ export default class Daemon {
112
118
  cancelRun: (runId) => this.cancelDrain(runId, "killed via run:// KILL"),
113
119
  telemetryEventNotify: (sessionId, payload) => this.notifyTelemetryEvent(sessionId, payload),
114
120
  });
115
- this.#nodeModulesPath = nodeModulesPath ?? resolve(process.cwd(), "node_modules");
116
121
  this.#registry = new MethodRegistry();
117
122
  this.#registerBuiltins();
118
123
  this.#registerNotifications();
@@ -157,12 +162,15 @@ export default class Daemon {
157
162
  // Discover + probe the installed executor siblings, then hand the
158
163
  // registry to the engine for exec dispatch (plurnk-service#181). The
159
164
  // shell is the default runtime, so its executor must boot usable.
160
- const executors = await ExecutorRegistry.build({ defaultRuntime: "sh" });
165
+ const executors = await ExecutorRegistry.build({ defaultRuntime: "sh", cwd: this.#discoveryCwd });
161
166
  this.#engine.setExecutors(executors);
167
+ // §exec — mint a scheme per runtime tag so exec output entries address by tag
168
+ // authority (sh:///l/t/s). The "exec" scheme stays for the EXEC op dispatch.
169
+ this.#schemes.registerRuntimeSchemes(executors.availableRuntimes());
162
170
  // Discover external @plurnk/plurnk-schemes-* siblings + register them
163
171
  // (agnostic, by plurnk.kind:"scheme"). They light up http://, etc. with
164
172
  // no further engine change — #run wraps their ctx in SchemeCtxImpl (#195).
165
- await this.#schemes.discoverExternal();
173
+ await this.#schemes.discoverExternal(this.#discoveryCwd);
166
174
  return new Promise((resolve, reject) => {
167
175
  const wss = new WebSocketServer({ host, port });
168
176
  wss.on("listening", () => {
@@ -377,14 +385,14 @@ export default class Daemon {
377
385
  loop_id: loopId, flags: JSON.stringify(merged),
378
386
  });
379
387
  }
380
- // Guarantee a drain claims the loop we just enqueued. Synchronous
381
- // check-and-start (no await between the membership test and the
382
- // registry write): a live drain re-claims it; otherwise we start one.
383
- // The drain's exit coordinates via an identity-checked re-claim so the
384
- // loop is never stranded (the lost-loop hang). firstLoopPromise is
385
- // present only when THIS call started the drain — loop.run keys its
386
- // fast-path response on that.
387
- const started = this.#ensureDrain({
388
+ // Guarantee a drain claims the loop we just enqueued. #ensureDrain runs its
389
+ // check-and-start UNDER the per-run drain lock (§run-lifecycle-single-drain),
390
+ // serialized against a draining sibling's teardown relinquish so the two can't
391
+ // both register a drain (R4). A live drain re-claims the loop in its own
392
+ // iteration or its lock-held exit re-claim, so it's never stranded.
393
+ // firstLoopPromise is present only when THIS call started the drain — loop.run
394
+ // keys its fast-path response on that.
395
+ const started = await this.#ensureDrain({
388
396
  sessionId, runId, provider: args.provider,
389
397
  systemPrompt: args.systemPrompt,
390
398
  maxTurns: args.maxTurns ?? Number(process.env.PLURNK_MAX_TURNS ?? "50"),
@@ -429,17 +437,21 @@ export default class Daemon {
429
437
  controller.signal.throwIfAborted();
430
438
  let loopRow = await claim();
431
439
  if (loopRow === undefined) {
432
- // Queue empty → exit. Coordinate with a concurrent
433
- // inject + #ensureDrain: relinquish ownership, then
434
- // re-claim once. A loop that raced in during teardown
435
- // is caught here (re-acquire + run it); otherwise exit.
436
- // Identity-checked so we never delete a successor entry.
437
- if (this.#activeDrains.get(runId) === handle)
438
- this.#activeDrains.delete(runId);
439
- loopRow = await claim();
440
+ // Queue empty → teardown UNDER the per-run drain lock (R4 / I1),
441
+ // serialized against #ensureDrain so a concurrent inject can't
442
+ // start a 2nd drain in the gap. Re-claim while holding the lock;
443
+ // relinquish the registry slot only if it's empty too. A loop
444
+ // that raced in is returned and run — we stay registered, so
445
+ // there's no transient delete for #ensureDrain to catch.
446
+ loopRow = await this.#withDrainLock(runId, async () => {
447
+ const claimed = await claim();
448
+ if (claimed === undefined && this.#activeDrains.get(runId) === handle) {
449
+ this.#activeDrains.delete(runId);
450
+ }
451
+ return claimed;
452
+ });
440
453
  if (loopRow === undefined)
441
454
  break;
442
- this.#activeDrains.set(runId, handle);
443
455
  }
444
456
  currentLoopId = loopRow.id;
445
457
  const onDispatch = (logEntryId) => {
@@ -458,11 +470,18 @@ export default class Daemon {
458
470
  onDispatch,
459
471
  signal: controller.signal,
460
472
  });
473
+ if (result.finalStatus === 202) {
474
+ // The loop SLEPT (SEND[202]) — suspended, not terminated. Leave it at 202
475
+ // (resumable); no loop/terminated, no orphan-reconcile. An OPEN event
476
+ // (#handleWakeRun) re-queues it to resume in place. §run-lifecycle-wake-liveness.
477
+ continue;
478
+ }
461
479
  const usage = await this.#engine.loopUsage(loopRow.id);
462
480
  this.#broadcast({ sessionId }, null, "loop/terminated", {
463
481
  loopId: loopRow.id,
464
482
  finalStatus: result.finalStatus,
465
483
  hitMaxTurns: result.hitMaxTurns,
484
+ turnIds: result.turnIds,
466
485
  usage,
467
486
  });
468
487
  loopsDrained++;
@@ -485,27 +504,27 @@ export default class Daemon {
485
504
  }
486
505
  }
487
506
  catch (err) {
488
- if (!firstSettled) {
489
- firstSettled = true;
490
- // #204 loop.cancel / shutdown aborted the live drain. A cancellation
491
- // is the loop's TERMINAL state (499), not an error: the pending loop.run
492
- // RESOLVES finalStatus 499, it never rejects with the abort reason
493
- // (runLoop throws the reason via throwIfAborted). A genuine error rejects.
494
- if (controller.signal.aborted) {
495
- resolveFirst({
496
- loopId: currentLoopId ?? 0,
497
- turnIds: [],
498
- finalStatus: 499,
499
- hitMaxTurns: false,
500
- usage: currentLoopId === null
501
- ? { promptTokens: 0, completionTokens: 0, costPico: 0 }
502
- : await this.#engine.loopUsage(currentLoopId),
507
+ if (controller.signal.aborted) {
508
+ // #204 / Model 3 — loop.cancel / shutdown aborted the live drain. A cancellation
509
+ // is the loop's TERMINAL state (499), delivered via loop/terminated (loop.run no
510
+ // longer blocks to return it). A genuine error rejects firstLoopPromise.
511
+ const usage = currentLoopId === null
512
+ ? { promptTokens: 0, completionTokens: 0, costPico: 0 }
513
+ : await this.#engine.loopUsage(currentLoopId);
514
+ if (currentLoopId !== null) {
515
+ this.#broadcast({ sessionId }, null, "loop/terminated", {
516
+ loopId: currentLoopId, finalStatus: 499, hitMaxTurns: false, turnIds: [], usage,
503
517
  });
504
518
  }
505
- else {
506
- rejectFirst(err);
519
+ if (!firstSettled) {
520
+ firstSettled = true;
521
+ resolveFirst({ loopId: currentLoopId ?? 0, turnIds: [], finalStatus: 499, hitMaxTurns: false, usage });
507
522
  }
508
523
  }
524
+ else if (!firstSettled) {
525
+ firstSettled = true;
526
+ rejectFirst(err);
527
+ }
509
528
  throw err;
510
529
  }
511
530
  finally {
@@ -526,16 +545,34 @@ export default class Daemon {
526
545
  firstLoopPromise.catch(() => { });
527
546
  return { firstLoopPromise, drainPromise };
528
547
  }
529
- // Idempotent, synchronous drain guarantee. A live drain will claim the
530
- // just-enqueued loop in its own iteration (or its exit re-claim) return
531
- // null. Otherwise start one. MUST be called synchronously after the
532
- // enqueue (no await between) so the membership test and #startDrain's
533
- // registry write are one tick two concurrent injects can't both start a
534
- // drain for the same run.
548
+ // Per-run drain-transition lock (R4 / §run-lifecycle-single-drain). #ensureDrain's
549
+ // start and a drain's teardown relinquish both run under it, serialized, so the two
550
+ // can't interleave and register two drains for one run. The critical section is the
551
+ // registry decision only (never a loop's work) a sub-ms hop at drain boundaries.
552
+ // A promise-chain mutex: each caller awaits the prior holder; the tail self-prunes
553
+ // when idle so the Map stays bounded to runs mid-transition.
554
+ #withDrainLock(runId, fn) {
555
+ const prev = this.#drainLocks.get(runId) ?? Promise.resolve();
556
+ const run = prev.then(fn, fn);
557
+ const tail = run.catch(() => { });
558
+ this.#drainLocks.set(runId, tail);
559
+ void tail.then(() => { if (this.#drainLocks.get(runId) === tail)
560
+ this.#drainLocks.delete(runId); });
561
+ return run;
562
+ }
563
+ // The drain guarantee, serialized per run via #withDrainLock so it can't race a
564
+ // sibling drain's teardown relinquish into a double-drain (R4). A live drain
565
+ // (registered, NOT aborting) will claim the just-enqueued loop in its own iteration
566
+ // or its lock-held exit re-claim → return null. A registered-but-ABORTING drain is
567
+ // in teardown and won't claim, so we don't defer to it — start fresh, or the loop
568
+ // strands on a cancel/resume race (I6 no-lost-loop). Otherwise start one.
535
569
  #ensureDrain(opts) {
536
- if (this.#activeDrains.has(opts.runId))
537
- return null;
538
- return this.#startDrain(opts);
570
+ return this.#withDrainLock(opts.runId, async () => {
571
+ const existing = this.#activeDrains.get(opts.runId);
572
+ if (existing !== undefined && !existing.controller.signal.aborted)
573
+ return null;
574
+ return this.#startDrain(opts);
575
+ });
539
576
  }
540
577
  // After a loop terminates, promote any next-turn prompt it never consumed —
541
578
  // an injected wake (stream conclusion) or a loop.run-while-active prompt
@@ -579,9 +616,21 @@ export default class Daemon {
579
616
  */
580
617
  cancelDrain(runId, reason = "user_cancelled") {
581
618
  const hadWork = this.#activeDrains.has(runId) || this.#runHasActiveStreams(runId);
619
+ // Stop the active drain's turn-generation (its loop closes 499). The run
620
+ // signal is the optimization path — the fast, listener-driven reap.
582
621
  const scope = this.#runAborts.get(runId);
583
622
  if (scope !== undefined && !scope.signal.aborted)
584
623
  scope.abort(reason);
624
+ // Total reap by the REGISTRY (§run-lifecycle-total-reap): the durable source
625
+ // of truth. Every open subscription the run holds, aborted via its owning
626
+ // scheme — independent of the signal-listener timing, so an exec mid-spawn
627
+ // (registry row written before it is killable) is reaped too. A late spawn
628
+ // (registering after this) self-aborts against its captured, now-aborted
629
+ // epoch (§run-lifecycle-exec-loop-bound). Idempotent; fire-and-forget (the
630
+ // abort is sync, the registry read async; the 499 conclusion surfaces async).
631
+ void this.#reapRunStreams(runId).catch((err) => {
632
+ console.error(`reapRunStreams(${runId}) failed:`, err);
633
+ });
585
634
  return hadWork;
586
635
  }
587
636
  // Does the run have an in-flight stream (a background exec)? Used only for
@@ -591,6 +640,19 @@ export default class Daemon {
591
640
  const exec = this.#schemes.get("exec");
592
641
  return exec?.hasActiveSpawns?.(runId) ?? false;
593
642
  }
643
+ // The registry-routed reap (§run-lifecycle-total-reap): every open subscription
644
+ // the run holds, aborted via its owning scheme. The durable answer to "reap
645
+ // everything" — the in-process AbortSignal listener is the optimization, this is
646
+ // the source of truth: an exec mid-spawn (registry row written before it is
647
+ // killable) or a background exec from any past loop is caught regardless of
648
+ // listener timing. Idempotent — a stream the signal already reaped is a no-op.
649
+ async #reapRunStreams(runId) {
650
+ const open = await ChannelWrite.findOpenSubscriptionsForRun(this.#db, runId);
651
+ for (const { id, scheme } of open) {
652
+ const handler = this.#schemes.get(scheme);
653
+ handler?.abortSubscription?.(id);
654
+ }
655
+ }
594
656
  /**
595
657
  * Wake-on-completion handler. Streaming schemes call this when a
596
658
  * subscription closes. If the run has an active loop, the channel
@@ -612,6 +674,20 @@ export default class Daemon {
612
674
  });
613
675
  return;
614
676
  }
677
+ // No resurrection (§run-lifecycle-no-resurrection): a non-499 completion whose
678
+ // run was CANCELLED (idle + its scope aborted) must not start a fresh drain —
679
+ // the cancel was deliberate. The deliverable is already in the channel/log and
680
+ // surfaces as a `collect` environment delta (§env-delta) if the run is read or
681
+ // resumed; we just don't inject a turn. (An active run folds the wake into its
682
+ // next turn via inject below; a resumed run is active, never aborted, so it is
683
+ // unaffected.)
684
+ const scope = this.#runAborts.get(payload.runId);
685
+ if (scope?.signal.aborted === true && !this.#activeDrains.has(payload.runId)) {
686
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
687
+ ...payload, wakeAction: "skipped-cancelled",
688
+ });
689
+ return;
690
+ }
615
691
  if (this.#provider === null) {
616
692
  this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
617
693
  ...payload, wakeAction: "skipped-no-provider",
@@ -620,34 +696,44 @@ export default class Daemon {
620
696
  }
621
697
  try {
622
698
  const systemPrompt = await readFile(Paths.instructionsSystem, "utf8");
623
- // Unified path: this.inject decides whether to write a prompt
624
- // entry for an active drain's next turn (no-op-active-loop) or
625
- // enqueue a fresh loop + drain (opened-loop). The summary
626
- // string becomes the user prompt either way.
627
- const result = await this.inject({
628
- sessionId: payload.sessionId,
629
- runId: payload.runId,
630
- prompt: `${payload.summary}\n\nAutomated environment update; response optional.`,
631
- provider: this.#provider,
632
- systemPrompt,
633
- });
634
- if (result.action === "injected_next_turn") {
699
+ // A slept (202) loop means the run PARKED (SEND[202]) → RESUME it IN PLACE: re-queue
700
+ // it (202→100) so the drain re-claims and CONTINUES it (seq>1 → no re-foist). Checked
701
+ // FIRST: the slept status is the run's true disposition regardless of a draining
702
+ // sibling mid-teardown (the #ensureDrain lock serializes the re-claim). No fresh loop,
703
+ // no summary-as-prompt the resumed loop reads the concluded stream's own state from
704
+ // the manifest. §run-lifecycle-wake-liveness.
705
+ const slept = await this.#db.drain_find_slept_loop.get({ run_id: payload.runId });
706
+ if (slept !== undefined) {
707
+ await this.#db.drain_resume_slept_loop.run({ loop_id: slept.id });
708
+ const started = await this.#ensureDrain({
709
+ sessionId: payload.sessionId, runId: payload.runId, provider: this.#provider,
710
+ systemPrompt, maxTurns: Number(process.env.PLURNK_MAX_TURNS ?? "50"),
711
+ });
712
+ this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
713
+ ...payload, wakeAction: "resumed-loop", wakeLoopId: slept.id,
714
+ });
715
+ started?.drainPromise?.catch((err) => {
716
+ console.error("wake resume drain failed:", err instanceof Error ? err.message : String(err));
717
+ });
718
+ return;
719
+ }
720
+ // No slept loop. An active drain folds the conclusion into the live loop's next turn
721
+ // (the model reads the concluded stream from the manifest) — no new loop.
722
+ if (this.#activeDrains.has(payload.runId)) {
723
+ const result = await this.inject({
724
+ sessionId: payload.sessionId, runId: payload.runId,
725
+ prompt: `${payload.summary}\n\nAutomated environment update; response optional.`,
726
+ provider: this.#provider, systemPrompt,
727
+ });
635
728
  this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
636
729
  ...payload, wakeAction: "no-op-active-loop", wakeLoopId: result.loopId,
637
730
  });
638
731
  return;
639
732
  }
640
- // enqueued_new_loop: drain runs in background; broadcast that
641
- // the wake opened a loop, then await the drain so background
642
- // failures bubble to the catch block below.
733
+ // No slept loop, no active drain nothing to resume (e.g. a SEND[200]-done run whose
734
+ // streams were swept). Surface the conclusion without opening a loop.
643
735
  this.#broadcast({ sessionId: payload.sessionId }, null, "stream/concluded", {
644
- ...payload, wakeAction: "opened-loop", wakeLoopId: result.loopId,
645
- });
646
- // Drain runs in background; loop/terminated broadcasts come
647
- // from #startDrain as each loop finishes. Don't await — the
648
- // wake-notify path should return quickly.
649
- result.drainPromise?.catch((err) => {
650
- console.error("wake-on-completion drain failed:", err instanceof Error ? err.message : String(err));
736
+ ...payload, wakeAction: "no-loop",
651
737
  });
652
738
  }
653
739
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0DAA0D;AAC1D,aAAa;AAEb,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAC9D,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAC1D,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAC9D,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAC1D,OAAO,oBAAoB,MAAM,8BAA8B,CAAC;AAChE,OAAO,oBAAoB,MAAM,+BAA+B,CAAC;AACjE,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAC9D,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AACxE,OAAO,oBAAoB,MAAM,8BAA8B,CAAC;AAChE,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,gBAAgB,MAAM,0BAA0B,CAAC;AACxD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,gBAAgB,MAAM,0BAA0B,CAAC;AACxD,OAAO,gBAAgB,MAAM,0BAA0B,CAAC;AACxD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAC9D,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAY1D,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,GAAG,CAAK;IACR,OAAO,CAAS;IAChB,QAAQ,CAAiB;IACzB,UAAU,CAAY;IACtB,SAAS,CAAkB;IAC3B,SAAS,CAAiB;IAC1B,gBAAgB,CAAS;IACzB,IAAI,GAA2B,IAAI,CAAC;IACpC,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3C,yEAAyE;IACzE,0EAA0E;IAC1E,qEAAqE;IACrE,sEAAsE;IACtE,2EAA2E;IAC3E,sEAAsE;IACtE,uCAAuC;IACvC,aAAa,GAAG,IAAI,GAAG,EAAsE,CAAC;IAC9F,uEAAuE;IACvE,uEAAuE;IACvE,4EAA4E;IAC5E,4EAA4E;IAC5E,sEAAsE;IACtE,oDAAoD;IACpD,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEhD,YAAY,EACR,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GAOpD;QACG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,IAAI,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC;QAClC,kEAAkE;QAClE,qEAAqE;QACrE,sEAAsE;QACtE,oEAAoE;QACpE,+DAA+D;QAC/D,8DAA8D;QAC9D,wBAAwB;QACxB,IAAI,CAAC,UAAU,GAAG,SAAS,IAAI,IAAI,SAAS,CAAC;YACzC,eAAe,EAAE,eAAe;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC;YACtB,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU;YACtD,+DAA+D;YAC/D,2EAA2E;YAC3E,8DAA8D;YAC9D,gCAAgC;YAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACnF,iBAAiB,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC;YACjF,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClE,+DAA+D;YAC/D,oEAAoE;YACpE,oEAAoE;YACpE,oEAAoE;YACpE,gEAAgE;YAChE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;gBAC9C,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAClF,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;gBACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;gBACnH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC9B,CAAC;YACD,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,wBAAwB,CAAC;YACvE,oBAAoB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC;SAC9F,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QAClF,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gBACnE,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,2DAA2D;gBAC3D,yDAAyD;gBACzD,yDAAyD;gBACzD,sCAAsC;gBACtC,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,iEAAiE;QACjE,kEAAkE;QAClE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,QAAQ,KAAqB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAsB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,KAAqB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,IAAI,SAAS,KAAgB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEtD,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,WAAW,EAAE,IAAI,GAAG,IAAI,KAAoB,EAAE;QAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAElE,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACrC,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAE9B,kEAAkE;QAClE,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACrC,sEAAsE;QACtE,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAEvC,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhD,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;gBAChB,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5C,MAAM,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;oBACzE,OAAO;gBACX,CAAC;gBACD,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACpB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO;QAE/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACnD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrB,IAAI,GAAG,KAAK,SAAS;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAC9B,OAAO,EAAE,CAAC;YACnB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,8DAA8D;QAC9D,gEAAgE;QAChE,8DAA8D;QAC9D,+DAA+D;QAC/D,gEAAgE;QAChE,uEAAuE;QACvE,wEAAwE;QACxE,qEAAqE;QACrE,iCAAiC;QACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;gBAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAAC,CAAC;QAC5G,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACxC,CAAC;IAED,mEAAmE;IACnE,8CAA8C;IAC9C,KAAK,CAAC,sBAAsB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAA+C,CAAC;QACrF,IAAI,IAAI,EAAE,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,iBAAiB;QACb,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,sBAAsB;QAClB,kCAAkC;QAClC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE;YAC7C,WAAW,EAAE,iFAAiF;YAC9F,MAAM,EAAE,EAAE,KAAK,EAAE,uCAAuC,EAAE;SAC7D,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,eAAe,EAAE;YACjD,WAAW,EAAE,yLAAyL;YACtM,MAAM,EAAE;gBACJ,UAAU,EAAE,iDAAiD;gBAC7D,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,QAAQ;gBAChB,EAAE,EAAE,2CAA2C;gBAC/C,MAAM,EAAE,kDAAkD;gBAC1D,IAAI,EAAE,wEAAwE;gBAC9E,KAAK,EAAE,gFAAgF;gBACvF,KAAK,EAAE,sNAAsN;aAChO;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,iBAAiB,EAAE;YACnD,WAAW,EAAE,oFAAoF;YACjG,MAAM,EAAE;gBACJ,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,gDAAgD;gBAC7D,WAAW,EAAE,SAAS;gBACtB,KAAK,EAAE,2FAA2F;aACrG;SACJ,CAAC,CAAC;QACH,gDAAgD;QAChD,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,cAAc,EAAE;YAChD,WAAW,EAAE,wJAAwJ;YACrK,MAAM,EAAE;gBACJ,OAAO,EAAE,0CAA0C;gBACnD,MAAM,EAAE,mGAAmG;gBAC3G,OAAO,EAAE,2BAA2B;gBACpC,KAAK,EAAE,0DAA0D;gBACjE,aAAa,EAAE,kDAAkD;gBACjE,QAAQ,EAAE,4IAA4I;gBACtJ,QAAQ,EAAE,uCAAuC;gBACjD,QAAQ,EAAE,2CAA2C;aACxD;SACJ,CAAC,CAAC;QACH,mEAAmE;QACnE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,iBAAiB,EAAE;YACnD,WAAW,EAAE,0fAA0f;YACvgB,MAAM,EAAE;gBACJ,MAAM,EAAE,2CAA2C;gBACnD,KAAK,EAAE,0EAA0E;aACpF;SACJ,CAAC,CAAC;QACH,kCAAkC;QAClC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,kBAAkB,EAAE;YACpD,WAAW,EAAE,yPAAyP;YACtQ,MAAM,EAAE;gBACJ,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,8CAA8C;gBACtD,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,+DAA+D;gBACvE,WAAW,EAAE,oDAAoD;gBACjE,OAAO,EAAE,oDAAoD;gBAC7D,UAAU,EAAE,0FAA0F;gBACtG,UAAU,EAAE,yEAAyE;gBACrF,QAAQ,EAAE,4IAA4I;gBACtJ,QAAQ,EAAE,uCAAuC;gBACjD,QAAQ,EAAE,2CAA2C;aACxD;SACJ,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,SAAiB,EAAE,KAAiF;QAClH,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAiB,EAAE,OAA0C;QAC9E,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,IAIZ;QAOG,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC1C,qEAAqE;QACrE,qEAAqE;QACrE,8DAA8D;QAC9D,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACxD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5F,CAAC;QACL,CAAC;QAED,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,GAAG,CAAC,sBAAqC,CAAC,GAAG,CAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9G,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,MAAO,IAAI,CAAC,GAAG,CAAC,kBAAiC,CAAC,GAAG,CAAiB;YAClF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM;SAC/C,CAAC,CAAC;QACH,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;QAE1B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACxD,MAAO,IAAI,CAAC,GAAG,CAAC,qBAAoC,CAAC,GAAG,CAAC;gBACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aACjD,CAAC,CAAC;QACP,CAAC;QAED,kEAAkE;QAClE,gEAAgE;QAChE,sEAAsE;QACtE,uEAAuE;QACvE,mEAAmE;QACnE,oEAAoE;QACpE,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YAC9B,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC;SAC1E,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,IAGX;QAIG,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACpE,qEAAqE;QACrE,sEAAsE;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,MAAM,GAA+D;YACvE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;SACzC,CAAC;QAEF,IAAI,YAAY,GAAiC,GAAG,EAAE,GAAE,CAAC,CAAC;QAC1D,IAAI,WAAW,GAAyB,GAAG,EAAE,GAAE,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/D,YAAY,GAAG,GAAG,CAAC;YAAC,WAAW,GAAG,GAAG,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,MAAM,KAAK,GAAG,GAAG,EAAE,CAAE,IAAI,CAAC,GAAG,CAAC,qBAAoC,CAAC,GAAG,CAEnE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtB,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;YAC7B,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,UAAU,GAA2B,IAAI,CAAC;YAC9C,IAAI,aAAa,GAAkB,IAAI,CAAC,CAAC,mEAAmE;YAC5G,IAAI,CAAC;gBACD,OAAO,IAAI,EAAE,CAAC;oBACV,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBACnC,IAAI,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC;oBAC5B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBACxB,mDAAmD;wBACnD,oDAAoD;wBACpD,sDAAsD;wBACtD,wDAAwD;wBACxD,yDAAyD;wBACzD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM;4BAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC/E,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC;wBACxB,IAAI,OAAO,KAAK,SAAS;4BAAE,MAAM;wBACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC1C,CAAC;oBACD,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC;oBAC3B,MAAM,UAAU,GAAG,CAAC,UAAkB,EAAQ,EAAE;wBAC5C,KAAK,CAAC,KAAK,IAAI,EAAE;4BACb,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;4BACjE,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;wBACjE,CAAC,CAAC,EAAE,CAAC;oBACT,CAAC,CAAC;oBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;wBACtC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ;wBACxD,QAAQ,EAAE;4BACN,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;4BACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;yBAC5C;wBACD,MAAM,EAAE,OAAO;wBACf,UAAU;wBACV,MAAM,EAAE,UAAU,CAAC,MAAM;qBAC5B,CAAC,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBACpD,MAAM,EAAE,OAAO,CAAC,EAAE;wBAClB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,KAAK;qBACR,CAAC,CAAC;oBACH,YAAY,EAAE,CAAC;oBACf,MAAM,UAAU,GAAoB;wBAChC,MAAM,EAAE,OAAO,CAAC,EAAE;wBAClB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,KAAK;qBACR,CAAC;oBACF,UAAU,GAAG,UAAU,CAAC;oBACxB,IAAI,CAAC,YAAY,EAAE,CAAC;wBAChB,YAAY,GAAG,IAAI,CAAC;wBACpB,YAAY,CAAC,UAAU,CAAC,CAAC;oBAC7B,CAAC;oBACD,yDAAyD;oBACzD,6DAA6D;oBAC7D,sDAAsD;oBACtD,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,YAAY,GAAG,IAAI,CAAC;oBACpB,uEAAuE;oBACvE,yEAAyE;oBACzE,mEAAmE;oBACnE,2EAA2E;oBAC3E,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC5B,YAAY,CAAC;4BACT,MAAM,EAAE,aAAa,IAAI,CAAC;4BAC1B,OAAO,EAAE,EAAE;4BACX,WAAW,EAAE,GAAG;4BAChB,WAAW,EAAE,KAAK;4BAClB,KAAK,EAAE,aAAa,KAAK,IAAI;gCACzB,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;gCACvD,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC;yBACpD,CAAC,CAAC;oBACP,CAAC;yBAAM,CAAC;wBACJ,WAAW,CAAC,GAAG,CAAC,CAAC;oBACrB,CAAC;gBACL,CAAC;gBACD,MAAM,GAAG,CAAC;YACd,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,YAAY,GAAG,IAAI,CAAC;oBACpB,WAAW,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM;oBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;QACxC,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,mEAAmE;QACnE,oEAAoE;QACpE,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7B,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED,uEAAuE;IACvE,0EAA0E;IAC1E,oEAAoE;IACpE,sEAAsE;IACtE,0EAA0E;IAC1E,0BAA0B;IAC1B,YAAY,CAAC,IAGZ;QAIG,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,qEAAqE;IACrE,KAAK,CAAC,sBAAsB,CAAC,KAAa,EAAE,WAAmB;QAC3D,MAAM,MAAM,GAAG,WAAW,WAAW,GAAG,CAAC;QACzC,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,GAAG,CAAC,8BAA6C,CAAC,GAAG,CAE7E,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,GAAG,CAAC,sBAAqC,CAAC,GAAG,CAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9G,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QACxG,MAAM,KAAK,GAAG,MAAO,IAAI,CAAC,GAAG,CAAC,kBAAiC,CAAC,GAAG,CAAiB;YAChF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI;SAC5D,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC3F,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,MAAO,IAAI,CAAC,GAAG,CAAC,qBAAoC,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACzG,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,0BAA0B;IAC1B,UAAU,CAAC,KAAa;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC;QACxE,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAa,EAAE,SAAiB,gBAAgB;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,sDAAsD;IACtD,oBAAoB,CAAC,KAAa;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAiE,CAAC;QACvG,OAAO,IAAI,EAAE,eAAe,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,cAAc,CAAC,OAAuB;QACxC,yDAAyD;QACzD,IAAI,OAAO,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;gBACxE,GAAG,OAAO,EAAE,UAAU,EAAE,iBAAiB;aAC5C,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;gBACxE,GAAG,OAAO,EAAE,UAAU,EAAE,qBAAqB;aAChD,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QAED,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAEtE,8DAA8D;YAC9D,+DAA+D;YAC/D,0DAA0D;YAC1D,6CAA6C;YAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;gBAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,sDAAsD;gBAChF,QAAQ,EAAE,IAAI,CAAC,SAAS;gBACxB,YAAY;aACf,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBACzC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;oBACxE,GAAG,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM;iBACzE,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,8DAA8D;YAC9D,6DAA6D;YAC7D,4CAA4C;YAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;gBACxE,GAAG,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM;aACnE,CAAC,CAAC;YACH,4DAA4D;YAC5D,4DAA4D;YAC5D,0CAA0C;YAC1C,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;gBACxC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxG,CAAC,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxG,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EAAa;QACvB,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAC;YAC9B,EAAE;YACF,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;SAC7F,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,uBAAuB;QACzB,oEAAoE;QACpE,uEAAuE;QACvE,oEAAoE;QACpE,cAAc;QACd,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAChD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAkB,CAAC,CAAC;QACrE,CAAC;IACL,CAAC;IAED,UAAU,CAAC,MAAoB,EAAE,IAA6B,EAAE,MAAc,EAAE,MAAgB;QAC5F,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvC,OAAO;QACX,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO;QACX,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,mHAAmH;QACnH,kEAAkE;QAClE,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,iEAAiE;QACjE,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;YACxD,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE;YAC1B,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ -- Client-origin turn helpers. Each client RPC op creates a synthetic turn
2
+ -- inside the connection's client loop with an empty packet shape.
3
+
4
+ -- PREP: client_turn_next_sequence
5
+ SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
6
+
7
+ -- PREP: client_turn_insert
8
+ INSERT INTO turns (loop_id, sequence, status, packet)
9
+ VALUES ($loop_id, $sequence, 200, $packet)
10
+ RETURNING id;
@@ -0,0 +1,92 @@
1
+ -- Drain queries for the run-level loop queue (SPEC §_run_drain — TBD).
2
+ -- Mirrors rummy's AgentLoop drain pattern: enqueue loop at status=100,
3
+ -- claim atomically (100 → 102), execute, repeat.
4
+
5
+ -- PREP: drain_enqueue_loop
6
+ -- Insert a loop at queued state. Sequence is per-run, 1-based.
7
+ INSERT INTO loops (run_id, sequence, status, prompt)
8
+ VALUES ($run_id, $sequence, 100, $prompt)
9
+ RETURNING id;
10
+
11
+ -- PREP: drain_claim_next_loop
12
+ -- Atomic claim: flip the oldest queued loop in this run from 100 → 102 and
13
+ -- return it. Returns no row when the queue is empty. The ORDER BY sequence
14
+ -- + LIMIT 1 inside the subquery is the FIFO discipline.
15
+ UPDATE loops
16
+ SET status = 102
17
+ WHERE id = (
18
+ SELECT id FROM loops
19
+ WHERE run_id = $run_id AND status = 100
20
+ ORDER BY sequence ASC
21
+ LIMIT 1
22
+ )
23
+ RETURNING id, sequence, prompt, flags;
24
+
25
+ -- PREP: drain_current_loop_for_run
26
+ -- The currently-executing loop for a run (status=102). At most one per run
27
+ -- under drain semantics. Engine.inject uses this to write the prompt entry
28
+ -- for the right loop's next turn.
29
+ SELECT id, sequence FROM loops
30
+ WHERE run_id = $run_id AND status = 102
31
+ ORDER BY sequence ASC
32
+ LIMIT 1;
33
+
34
+ -- PREP: drain_next_turn_seq_for_loop
35
+ -- Next turn sequence for the given loop. Used by Engine.inject to compute
36
+ -- the path of the prompt entry it should write (plurnk:///prompt/<loop>/<N>).
37
+ SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
38
+
39
+ -- PREP: drain_get_run_session
40
+ -- Resolve runId → sessionId. Needed when wake/inject paths only have the
41
+ -- runId (e.g., a stream concluded in run X; daemon needs the session
42
+ -- context to write entries under the run's session scope).
43
+ SELECT session_id FROM runs WHERE id = $run_id;
44
+
45
+ -- PREP: drain_get_latest_prompt_body_for_loop
46
+ -- Sources packet.user.prompt at packet-build time. plurnk:///prompt/<loop>/<N>
47
+ -- entries accumulate per turn; the latest one (highest entries.id) is the
48
+ -- "current" prompt the model sees in user.prompt. Falls back to NULL when
49
+ -- no prompt entry exists for the loop (caller substitutes runLoop's
50
+ -- messages parameter for backward compat with tests that bypass inject).
51
+ -- Pattern is built JS-side as `/prompt/<loop_id>/%` (canonical leading-slash storage form,
52
+ -- matching the foist's #pathnameOf and the inject) — SqlRite's parameter
53
+ -- binding doesn't reliably coerce integers for `LIKE` with `||`.
54
+ SELECT c.content, e.pathname
55
+ FROM entries e
56
+ JOIN entry_channels c ON c.entry_id = e.id
57
+ WHERE e.scheme = 'plurnk'
58
+ AND e.pathname LIKE $pattern
59
+ AND c.name = 'body'
60
+ ORDER BY e.id DESC
61
+ LIMIT 1;
62
+
63
+ -- PREP: drain_orphaned_prompt_for_loop
64
+ -- A loop can terminate before consuming a next-turn prompt injected into it
65
+ -- (a wake-on-completion, or a loop.run-while-active that landed on a turn the
66
+ -- loop never reached). Engine.inject writes prompt/<loop>/<N> at MAX(turn)+1;
67
+ -- if the loop ended at turn K, an injected prompt at turn > K never ran.
68
+ -- Returns the latest such orphan's body + the ended loop's flags so
69
+ -- the drain can promote it to a fresh loop — no wake silently lost.
70
+ -- $pattern = `prompt/<loop_id>/%`, $prefix_len = length of `prompt/<loop_id>/`
71
+ -- built JS-side (per the SqlRite LIKE-binding note above).
72
+ SELECT c.content AS body, l.flags AS flags
73
+ FROM entries e
74
+ JOIN entry_channels c ON c.entry_id = e.id
75
+ JOIN loops l ON l.id = $loop_id
76
+ WHERE e.scheme = 'plurnk'
77
+ AND e.pathname LIKE $pattern
78
+ AND c.name = 'body'
79
+ AND CAST(substr(e.pathname, $prefix_len + 1) AS INTEGER) >
80
+ (SELECT COALESCE(MAX(sequence), 0) FROM turns WHERE loop_id = $loop_id)
81
+ ORDER BY e.id DESC
82
+ LIMIT 1;
83
+
84
+ -- PREP: drain_find_slept_loop
85
+ -- A run's parked (slept) loop — SEND[202] suspends it at status 202, resumable by a wake
86
+ -- (§run-lifecycle-wake-liveness). A run parks one at a time; take the most recent.
87
+ SELECT id FROM loops WHERE run_id = $run_id AND status = 202 ORDER BY sequence DESC LIMIT 1;
88
+
89
+ -- PREP: drain_resume_slept_loop
90
+ -- Re-queue a slept (202) loop to status 100 so the drain re-claims and CONTINUES it. The
91
+ -- engine's next-turn-sequence is DB-derived, so the resumed loop foists no prompt (seq > 1).
92
+ UPDATE loops SET status = 100 WHERE id = $loop_id AND status = 202;
@@ -1 +1 @@
1
- {"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../src/server/dsl.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1E,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;;IAwCpB,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAQ1D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAO1D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;IAUlD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe;IAUlH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,GAAG,eAAe;IAWtD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,GAAG,eAAe;IAUtD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;IAUlD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;CASrD"}
1
+ {"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../src/server/dsl.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE1E,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED,UAAU,YAAY;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,OAAO,GAAG;;IA+CpB,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAQ1D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAQ1D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;IAUlD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,eAAe;IAUlH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,eAAe;IAUnD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,GAAG,eAAe;IAWtD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,GAAG,eAAe;IAUtD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;IAUlD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,eAAe;CASrD"}
@@ -40,19 +40,26 @@ export default class Dsl {
40
40
  static #buildHeredoc({ op, suffix, signal, target, lineMarker, body, }) {
41
41
  return `<<${op}${suffix}${signal}${target}${lineMarker}:${body}:${op}${suffix}`;
42
42
  }
43
+ // grammar 0.70: a turn must lead with PLAN (plurnk.md §Imperatives), so the
44
+ // canonical parse of an op.*-built HEREDOC needs a PLAN prefix; we add it (when
45
+ // absent) and strip the PLAN back out, returning only the real op(s).
46
+ static #planPrefixed(text) {
47
+ return text.startsWith("<<PLAN") ? text : `<<PLAN::PLAN\n${text}`;
48
+ }
43
49
  static parseSingleStatement(text) {
44
- const result = PlurnkParser.parse(text);
50
+ const result = PlurnkParser.parse(Dsl.#planPrefixed(text));
45
51
  for (const item of result.items) {
46
- if (item.kind === "statement")
52
+ if (item.kind === "statement" && item.statement.op !== "PLAN")
47
53
  return item.statement;
48
54
  }
49
55
  throw new Error(`expected a parsed statement, got none from: ${text}`);
50
56
  }
51
57
  static parseAllStatements(text) {
52
- const result = PlurnkParser.parse(text);
58
+ const result = PlurnkParser.parse(Dsl.#planPrefixed(text));
53
59
  return result.items
54
60
  .filter((i) => i.kind === "statement")
55
- .map((i) => i.statement);
61
+ .map((i) => i.statement)
62
+ .filter((s) => s.op !== "PLAN");
56
63
  }
57
64
  static buildEdit(p) {
58
65
  return Dsl.parseSingleStatement(Dsl.#buildHeredoc({