@plurnk/plurnk-service 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +55 -31
- package/INSTALL.md +3 -3
- package/README.md +4 -4
- package/SPEC.md +204 -192
- package/dist/Paths.js +1 -1
- package/dist/Paths.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +18 -18
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +17 -17
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +11 -11
- package/dist/core/Dispatcher.d.ts +11 -11
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +122 -124
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts +20 -23
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +207 -183
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +106 -109
- package/dist/core/PacketBuilder.d.ts +9 -9
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +183 -115
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +8 -8
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +10 -10
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts +1 -0
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +9 -3
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +4 -1
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +18 -9
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/TelemetryChannel.d.ts +5 -5
- package/dist/core/TelemetryChannel.d.ts.map +1 -1
- package/dist/core/TelemetryChannel.js +9 -9
- package/dist/core/TelemetryChannel.js.map +1 -1
- package/dist/core/caps/CapsResolve.js +2 -2
- package/dist/core/caps/CapsResolve.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +2 -2
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +7 -7
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +2 -2
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +4 -4
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/fork.d.ts +1 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +31 -26
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +41 -32
- package/dist/core/git-env.d.ts.map +1 -1
- package/dist/core/git-env.js +23 -7
- package/dist/core/git-env.js.map +1 -1
- package/dist/core/git-iso.d.ts +9 -0
- package/dist/core/git-iso.d.ts.map +1 -0
- package/dist/core/git-iso.js +227 -0
- package/dist/core/git-iso.js.map +1 -0
- package/dist/core/git-membership.d.ts +2 -2
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +70 -50
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts +1 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +21 -11
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +81 -22
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +2 -2
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +19 -12
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/run-ops.sql +26 -26
- package/dist/core/scheme-types.d.ts +6 -6
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/search-gate.js +0 -0
- package/dist/core/search-gate.js.map +1 -1
- package/dist/core/token-ruler.js +2 -2
- package/dist/core/token-ruler.js.map +1 -1
- package/dist/core/worker-cap.d.ts +8 -0
- package/dist/core/worker-cap.d.ts.map +1 -0
- package/dist/core/worker-cap.js +20 -0
- package/dist/core/worker-cap.js.map +1 -0
- package/dist/core/{session-settings.d.ts → workspace-settings.d.ts} +5 -5
- package/dist/core/workspace-settings.d.ts.map +1 -0
- package/dist/core/{session-settings.js → workspace-settings.js} +13 -13
- package/dist/core/workspace-settings.js.map +1 -0
- package/dist/digest/Digest.d.ts +3 -3
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +79 -73
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +18 -18
- package/dist/schemes/Exec.d.ts +9 -2
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +121 -68
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +3 -3
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.js +23 -23
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Known.js +5 -5
- package/dist/schemes/Known.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +63 -14
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +49 -8
- package/dist/schemes/Plurnk.js +5 -5
- package/dist/schemes/Plurnk.js.map +1 -1
- package/dist/schemes/Skill.js +5 -5
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Unknown.js +5 -5
- package/dist/schemes/Unknown.js.map +1 -1
- package/dist/schemes/{Run.d.ts → Worker.d.ts} +2 -2
- package/dist/schemes/Worker.d.ts.map +1 -0
- package/dist/schemes/{Run.js → Worker.js} +67 -67
- package/dist/schemes/Worker.js.map +1 -0
- package/dist/schemes/_entry-crud.js +8 -8
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +29 -29
- package/dist/schemes/_entry-find.d.ts +2 -1
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +31 -19
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +9 -9
- package/dist/schemes/_entry-graph.d.ts +2 -2
- package/dist/schemes/_entry-graph.d.ts.map +1 -1
- package/dist/schemes/_entry-graph.js +18 -18
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-graph.sql +8 -8
- package/dist/schemes/_entry-manifest.d.ts +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +72 -28
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +4 -4
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +25 -25
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +9 -9
- package/dist/schemes/_entry-semantic.d.ts +2 -1
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +23 -4
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +18 -4
- package/dist/schemes/_entry-send.d.ts +1 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +6 -6
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/exec-abort.js +1 -1
- package/dist/schemes/exec-abort.js.map +1 -1
- package/dist/server/Daemon.d.ts +48 -48
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +285 -291
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/client-input.js +20 -20
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +7 -7
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +27 -27
- package/dist/server/envelope.d.ts +20 -20
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +86 -86
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +39 -39
- package/dist/server/logEntry.d.ts +1 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +1 -1
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/loopDocs.d.ts +1 -1
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +6 -6
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/seam-entry-read.sql +2 -2
- package/dist/server/seam-log-read.sql +3 -3
- package/dist/server/seam-loop.sql +3 -3
- package/dist/server/seam-proposal-list.sql +4 -4
- package/dist/server/yolo.js +2 -2
- package/dist/server/yolo.js.map +1 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +21 -6
- package/dist/service.js.map +1 -1
- package/migrations/0000-00-00.01_schema.sql +82 -70
- package/package.json +17 -14
- package/dist/core/run-cap.d.ts +0 -8
- package/dist/core/run-cap.d.ts.map +0 -1
- package/dist/core/run-cap.js +0 -20
- package/dist/core/run-cap.js.map +0 -1
- package/dist/core/search-prefetch.d.ts +0 -17
- package/dist/core/search-prefetch.d.ts.map +0 -1
- package/dist/core/search-prefetch.js +0 -164
- package/dist/core/search-prefetch.js.map +0 -1
- package/dist/core/session-settings.d.ts.map +0 -1
- package/dist/core/session-settings.js.map +0 -1
- package/dist/schemes/Run.d.ts.map +0 -1
- package/dist/schemes/Run.js.map +0 -1
package/dist/server/yolo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yolo.js","sourceRoot":"","sources":["../../src/server/yolo.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,6EAA6E;AAC7E,8DAA8D;AAC9D,EAAE;AACF,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,sBAAsB;AACtB,EAAE;AACF,iCAAiC;AACjC,yDAAyD;AACzD,qDAAqD;AACrD,0EAA0E;AAC1E,2EAA2E;AAC3E,oEAAoE;AACpE,yEAAyE;AACzE,wBAAwB;AACxB,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,2DAA2D;AAC3D,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,2BAA2B;AAC3B,sEAAsE;AACtE
|
|
1
|
+
{"version":3,"file":"yolo.js","sourceRoot":"","sources":["../../src/server/yolo.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,6EAA6E;AAC7E,8DAA8D;AAC9D,EAAE;AACF,0CAA0C;AAC1C,EAAE;AACF,uEAAuE;AACvE,sBAAsB;AACtB,EAAE;AACF,iCAAiC;AACjC,yDAAyD;AACzD,qDAAqD;AACrD,0EAA0E;AAC1E,2EAA2E;AAC3E,oEAAoE;AACpE,yEAAyE;AACzE,wBAAwB;AACxB,2EAA2E;AAC3E,qEAAqE;AACrE,EAAE;AACF,2DAA2D;AAC3D,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,2BAA2B;AAC3B,sEAAsE;AACtE,+EAA+E;AAC/E,EAAE;AACF,kFAAkF;AAClF,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,yEAAyE;AACzE,+DAA+D;AAM/D,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,GAAO;QACrC,qCAAqC;QACrC,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAA2B,EAAE,EAAE;YACrD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;gBAAE,OAAO;YAC9B,kFAAkF;YAClF,mFAAmF;YACnF,+DAA+D;YAC/D,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,IAAK,KAAK,CAAC,KAA+B,CAAC,QAAQ,KAAK,SAAS;gBAAE,OAAO;YACjG,IAAI,CAAC;gBACD,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBACzB,uEAAuE;oBACvE,yEAAyE;oBACzE,wEAAwE;oBACxE,iEAAiE;oBACjE,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;oBAChG,OAAO;gBACX,CAAC;gBACD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrE,CAAC;YAAC,MAAM,CAAC;gBACL,wDAAwD;gBACxD,uDAAuD;YAC3D,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAoBA,MAAM,CAAC,OAAO,OAAO,OAAO;;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAoBA,MAAM,CAAC,OAAO,OAAO,OAAO;;IA6NxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqEjC;CACJ"}
|
package/dist/service.js
CHANGED
|
@@ -11,7 +11,7 @@ import EnvFlags from "./core/EnvFlags.js";
|
|
|
11
11
|
import EnvDefaults from "./core/env-defaults.js";
|
|
12
12
|
import ProviderInstantiate from "./core/ProviderInstantiate.js";
|
|
13
13
|
import Meta from "@plurnk/plurnk-meta";
|
|
14
|
-
import { resolveActiveAlias } from "@plurnk/plurnk-providers";
|
|
14
|
+
import { parseAliasesFromEnv, resolveActiveAlias } from "@plurnk/plurnk-providers";
|
|
15
15
|
import { Module as AguiModule } from "@plurnk/plurnk-agui";
|
|
16
16
|
// The `plurnk-service` executable: launches the daemon (start) or runs migrations.
|
|
17
17
|
// Not the user-facing client — that is the separate `plurnk` project.
|
|
@@ -110,6 +110,9 @@ export default class Service {
|
|
|
110
110
|
// node-style env-file flags: --env-file=<path> (required) / --env-file-if-exists=<path>
|
|
111
111
|
// (skip if missing), repeatable, in command-line order. node only loads pre-script files;
|
|
112
112
|
// a published `plurnk-service --env-file=…` needs this post-script loader.
|
|
113
|
+
// PRECEDENCE CAUTION (#501): this post-script cascade is FIRST-wins (highest-priority file
|
|
114
|
+
// first); node's own pre-script parsing of the same flags is LAST-wins. The same flag
|
|
115
|
+
// obeys opposite precedence depending on argv position relative to the script path.
|
|
113
116
|
static #envFileArgs() {
|
|
114
117
|
return process.argv.flatMap((a) => {
|
|
115
118
|
if (a.startsWith("--env-file-if-exists="))
|
|
@@ -185,6 +188,17 @@ export default class Service {
|
|
|
185
188
|
const port = Number(Service.#requireEnv("PLURNK_PORT"));
|
|
186
189
|
const db = await Service.#openDb(dbPath);
|
|
187
190
|
const alias = resolveActiveAlias();
|
|
191
|
+
// #501 (owner ruling, gates 1.0.6) — SET-but-unresolvable is the silent-absence class, never
|
|
192
|
+
// a modelless boot: PLURNK_MODEL=plurnk/jennifer (a provider/model PATH where an ALIAS name
|
|
193
|
+
// belongs) resolved to null and the daemon booted modelless behind a warning claiming the
|
|
194
|
+
// knob was unset. Fail hard naming the violated contract; UNSET stays the legal modelless
|
|
195
|
+
// boot (clients may supply per-request models).
|
|
196
|
+
const selectedModel = process.env.PLURNK_MODEL ?? "";
|
|
197
|
+
if (alias === null && selectedModel !== "") {
|
|
198
|
+
const declared = parseAliasesFromEnv(process.env).map((a) => a.alias).join(", ");
|
|
199
|
+
throw new Error(`PLURNK_MODEL=${selectedModel} names no declared alias (declared: ${declared.length > 0 ? declared : "none"}). `
|
|
200
|
+
+ `The knob takes an ALIAS name; for an inline model, declare PLURNK_MODEL_<alias>=${selectedModel} and set PLURNK_MODEL=<alias>.`);
|
|
201
|
+
}
|
|
188
202
|
const provider = alias === null ? null : await ProviderInstantiate.loadActiveProvider();
|
|
189
203
|
const daemon = new Daemon({ db, provider, nodeModulesPath: Service.#pluginsNodeModules() });
|
|
190
204
|
// AG-UI daughter module (#355) — THE client surface, always on: its init runs at boot with the
|
|
@@ -210,12 +224,13 @@ export default class Service {
|
|
|
210
224
|
process.stderr.write("plurnk-service: remote embedder active but reports no token window — set PLURNK_MIMETYPES_EMBED_MAX_TOKENS to the endpoint's limit or embedding derivations will refuse\n");
|
|
211
225
|
}
|
|
212
226
|
// §tokenomics-window-partition coupling (F7): per-request numeric reasoning budgets are
|
|
213
|
-
// IGNORED by llama-server — when
|
|
227
|
+
// IGNORED by llama-server — when reasoning is on, only the box's --reasoning-budget launch
|
|
214
228
|
// flag clamps it, and it must equal PLURNK_SERVICE_REASONING. Unverifiable from here, so
|
|
215
|
-
// say it loudly rather than let the reserve be fiction.
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
229
|
+
// say it loudly rather than let the reserve be fiction. (#472 — reads the post-#399 knob
|
|
230
|
+
// names; the shed THINKING names made this advisory dead code that could never fire.)
|
|
231
|
+
const reasoning = process.env.PLURNK_PROVIDERS_REASONING ?? "off";
|
|
232
|
+
if (reasoning !== "off") {
|
|
233
|
+
process.stderr.write(`plurnk-service: reasoning is ${reasoning} — llama-server ignores per-request numeric budgets; ensure the serving box launches with --reasoning-budget ${process.env.PLURNK_PROVIDERS_REASONING_BUDGET ?? "?"} or the budget is not enforced.\n`);
|
|
219
234
|
}
|
|
220
235
|
if (alias === null) {
|
|
221
236
|
process.stderr.write(`plurnk-service: no model configured — uncomment one of the three options (local / cloud / plurnk.ai) in ${resolve(Service.#homeDir, ".env")}. Loops fail legibly until then.\n`);
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAE1C,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAChE,OAAO,IAAI,MAAM,qBAAqB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE3D,mFAAmF;AACnF,sEAAsE;AACtE,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,uFAAuF;IACvF,oGAAoG;IACpG,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,IAAI,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAEhD,oFAAoF;IACpF,qFAAqF;IACrF,MAAM,CAAC,WAAW;QACd,qFAAqF;QACrF,iFAAiF;QACjF,sFAAsF;QACtF,uFAAuF;QACvF,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO;QACzC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,oFAAoF;QACpF,qFAAqF;QACrF,kCAAkC;QAClC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC7C,qGAAqG;YACrG,GAAG;YACH,uCAAuC;YACvC,GAAG;YACH,mEAAmE;YACnE,uCAAuC;YACvC,0CAA0C;YAC1C,sBAAsB;YACtB,GAAG;YACH,qDAAqD;YACrD,sDAAsD;YACtD,8BAA8B;YAC9B,sBAAsB;YACtB,GAAG;YACH,sEAAsE;YACtE,yCAAyC;YACzC,0BAA0B;YAC1B,uBAAuB;YACvB,EAAE;SACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACd,+FAA+F;QAC/F,gGAAgG;QAChG,+EAA+E;QAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,2CAA2C;QACpF,IAAI,UAAU,CAAC,aAAa,CAAC;YAAE,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QACnG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,QAAQ,gBAAgB,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3H,CAAC;IAED,yFAAyF;IACzF,0FAA0F;IAC1F,uFAAuF;IACvF,qFAAqF;IACrF,2FAA2F;IAC3F,oFAAoF;IACpF,MAAM,CAAC,mBAAmB;QACtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO;QAC1C,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,CAAS;QACxB,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,sFAAsF;IACtF,mFAAmF;IACnF,MAAM,CAAC,mBAAmB;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY,EAAE,OAAe;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAiB;QAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC;gBAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAClC,OAAO,KAAK,EAAE,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC;QAC5H,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,iBAAiB,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,wFAAwF;IACxF,0FAA0F;IAC1F,2EAA2E;IAC3E,MAAM,CAAC,YAAY;QACf,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAA8C,EAAE;YAC1E,IAAI,CAAC,CAAC,UAAU,CAAC,uBAAuB,CAAC;gBAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3G,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;gBAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAChG,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,wBAAwB,IAAI,gCAAgC,CAAC,CAAC;QAC9H,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,SAAS,CAAC;QAC7D,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,4BAA4B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrG,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAc;QAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI;YACrB,CAAC,+BAA+B,EAAE,SAAS,CAAC;YAC5C,CAAC,kCAAkC,EAAE,WAAW,CAAC;YACjD,CAAC,iCAAiC,EAAE,UAAU,CAAC;YAC/C,CAAC,sCAAsC,EAAE,cAAc,CAAC;SAClD,EAAE,CAAC;YACT,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;gBACpE,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,GAAG,MAAM;aACZ,CAAC,CAAC;YACH,OAAO,EAAmB,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,2FAA2F;YAC3F,2FAA2F;YAC3F,wFAAwF;YACxF,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAC5B,CAAC,CAAC,gCAAgC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oFAAoF;gBACzI,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,UAAU,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ;QACjB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC;YAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,IAAI,CAAC,CAAC;QAAC,CAAC;gBAC9C,CAAC;YAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAChD,0FAA0F;QAC1F,qFAAqF;QACrF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAExD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC5F,+FAA+F;QAC/F,uFAAuF;QACvF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5I,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtK,CAAC,CAAC;QACH,uFAAuF;QACvF,+EAA+E;QAC/E,IAAI,IAAI,GAAgD,IAAI,CAAC;QAC7D,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,+EAA+E;QACrG,MAAM,QAAQ,GAAI,IAAoD,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpG,oFAAoF;QACpF,wFAAwF;QACxF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACxD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0LAA0L,CAAC,CAAC;QACrN,CAAC;aAAM,IAAI,SAAS,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2KAA2K,CAAC,CAAC;QACtM,CAAC;QACD,wFAAwF;QACxF,0FAA0F;QAC1F,yFAAyF;QACzF,wDAAwD;QACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,KAAK,CAAC;QAChE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,QAAQ,gHAAgH,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,GAAG,qCAAqC,CAAC,CAAC;QACnR,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2GAA2G,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,oCAAoC,CAAC,CAAC;QAC3M,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACjG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,CAAC;QAEhH,MAAM,QAAQ,GAAG,KAAK,IAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxG,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI;QACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAAC,CAAC;QAC/H,uFAAuF;QACvF,gFAAgF;QAChF,qFAAqF;QACrF,uEAAuE;QACvE,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,OAAO,CAAC,YAAY,EAAE;YAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEtG,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QACrG,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAE;YACpC,IAAI,eAAe,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,OAAO,OAAO,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;QACrD,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3D,6EAA6E;QAC7E,wFAAwF;QACxF,wFAAwF;QACxF,oDAAoD;QACpD,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACrG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAEtI,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;QACxG,MAAM,WAAW,GAAuC,EAAE,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAC9B,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAG;;EAEpB,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC;;;;;;CAM1C,CAAC;QAEM,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YACtC,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,WAAW,EAAE;SACjG,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAElE,MAAM,QAAQ,GAAwC,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3G,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,uBAAuB,UAAU,OAAO,KAAK,EAAE,CAAC,CAAC;QAC7F,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAExG,IAAI,CAAC;YAAC,MAAM,OAAO,EAAE,CAAC;QAAC,CAAC;QACxB,OAAO,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnG,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1J,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;CACJ;AAED,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
-- INIT:
|
|
1
|
+
-- INIT: workspaces
|
|
2
2
|
-- project_root: workspace pointer. NULL = headless (no disk side-effects);
|
|
3
3
|
-- non-null = absolute path to the client's source tree, supplied at
|
|
4
|
-
--
|
|
5
|
-
CREATE TABLE IF NOT EXISTS
|
|
4
|
+
-- workspace.create or workspace.set_root.
|
|
5
|
+
CREATE TABLE IF NOT EXISTS workspaces (
|
|
6
6
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
7
7
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
8
8
|
name TEXT NOT NULL UNIQUE CHECK (length(name) > 0),
|
|
@@ -10,35 +10,35 @@ CREATE TABLE IF NOT EXISTS sessions (
|
|
|
10
10
|
cost_pico INTEGER NOT NULL DEFAULT 0 CHECK (cost_pico >= 0),
|
|
11
11
|
scheme_registry_additions TEXT NOT NULL DEFAULT '[]' CHECK (json_valid(scheme_registry_additions)),
|
|
12
12
|
project_root TEXT,
|
|
13
|
-
-- #231 client-chosen
|
|
13
|
+
-- #231 client-chosen workspace-open context: { manifestItems?, mdDocs? }, read at turn-0
|
|
14
14
|
-- with precedence over env (manifestItems replaces PLURNK_MANIFEST_ITEMS; mdDocs unions PLURNK_MD_*).
|
|
15
15
|
settings TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(settings))
|
|
16
16
|
) STRICT;
|
|
17
17
|
|
|
18
|
-
CREATE INDEX IF NOT EXISTS sessions_created_at ON
|
|
18
|
+
CREATE INDEX IF NOT EXISTS sessions_created_at ON workspaces (created_at);
|
|
19
19
|
|
|
20
20
|
-- INIT: runs
|
|
21
|
-
CREATE TABLE IF NOT EXISTS
|
|
21
|
+
CREATE TABLE IF NOT EXISTS workers (
|
|
22
22
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
23
23
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
24
|
-
|
|
24
|
+
workspace_id INTEGER NOT NULL,
|
|
25
25
|
name TEXT NOT NULL CHECK (length(name) > 0),
|
|
26
26
|
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
27
|
-
-- runs fork via
|
|
28
|
-
|
|
27
|
+
-- runs fork via parent_worker_id; workspaces carry no parent — §machine-processes-no-fork-workspace
|
|
28
|
+
parent_worker_id INTEGER CHECK (parent_worker_id IS NULL OR parent_worker_id != id),
|
|
29
29
|
cost_pico INTEGER NOT NULL DEFAULT 0 CHECK (cost_pico >= 0),
|
|
30
30
|
origin TEXT NOT NULL DEFAULT 'client' CHECK (origin IN ('model', 'client', 'plurnk')),
|
|
31
|
-
FOREIGN KEY (
|
|
32
|
-
FOREIGN KEY (
|
|
31
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
|
|
32
|
+
FOREIGN KEY (parent_worker_id) REFERENCES workers(id) ON DELETE CASCADE
|
|
33
33
|
) STRICT;
|
|
34
34
|
|
|
35
|
-
CREATE INDEX IF NOT EXISTS
|
|
36
|
-
CREATE INDEX IF NOT EXISTS
|
|
37
|
-
-- NOT unique: a name is frozen per
|
|
35
|
+
CREATE INDEX IF NOT EXISTS workers_workspace_id_created_at ON workers (workspace_id, created_at);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS workers_parent_worker_id ON workers (parent_worker_id);
|
|
37
|
+
-- NOT unique: a name is frozen per worker (§machine-processes-worker-origin) but RECLAIMABLE across
|
|
38
38
|
-- time — a terminated run keeps its name in permanent history while a fresh spawn reuses it;
|
|
39
|
-
--
|
|
40
|
-
-- →
|
|
41
|
-
CREATE INDEX IF NOT EXISTS
|
|
39
|
+
-- worker_resolve_by_name picks the newest. A LIVE collision is refused at the spawn gate (Run.edit
|
|
40
|
+
-- → worker_live_by_name → 409), never by this index. Indexed for the by-name resolve/spawn lookup.
|
|
41
|
+
CREATE INDEX IF NOT EXISTS workers_workspace_name ON workers (workspace_id, name);
|
|
42
42
|
|
|
43
43
|
-- INIT: loops
|
|
44
44
|
-- flags: per-loop runtime flags (yolo, noProposals, noWeb, noInteraction,
|
|
@@ -48,7 +48,7 @@ CREATE INDEX IF NOT EXISTS runs_session_name ON runs (session_id
|
|
|
48
48
|
CREATE TABLE IF NOT EXISTS loops (
|
|
49
49
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
50
50
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
51
|
-
|
|
51
|
+
worker_id INTEGER NOT NULL,
|
|
52
52
|
sequence INTEGER NOT NULL CHECK (sequence >= 1),
|
|
53
53
|
status INTEGER NOT NULL DEFAULT 102 CHECK (status IN (100, 102, 200, 202, 413, 429, 499, 500, 504, 508)),
|
|
54
54
|
prompt TEXT NOT NULL,
|
|
@@ -59,7 +59,7 @@ CREATE TABLE IF NOT EXISTS loops (
|
|
|
59
59
|
-- #260 — client-passed @file paths foisted as turn-0 READs (string[] JSON). The daemon owns the
|
|
60
60
|
-- workspace, so it READs them in instead of the client inlining bytes (co-location law).
|
|
61
61
|
open_paths TEXT NOT NULL DEFAULT '[]' CHECK (json_valid(open_paths)),
|
|
62
|
-
-- §
|
|
62
|
+
-- §worker-scheme loop-termination delta: terminated_at is stamped by the trigger
|
|
63
63
|
-- below when status crosses into terminal (every death-path, uniformly);
|
|
64
64
|
-- terminal_message is the deliverable — the SEND[200] body or the abandonment
|
|
65
65
|
-- reason — set by the terminating PREP (engine_loop_set_status).
|
|
@@ -71,12 +71,12 @@ CREATE TABLE IF NOT EXISTS loops (
|
|
|
71
71
|
-- COLLECT and the termination delta render it as a marker ALONGSIDE terminal_message — the
|
|
72
72
|
-- model's words are never rewritten; the engine's act is named.
|
|
73
73
|
terminated_by TEXT CHECK (terminated_by IS NULL OR terminated_by IN ('collapse', 'cancel')),
|
|
74
|
-
FOREIGN KEY (
|
|
74
|
+
FOREIGN KEY (worker_id) REFERENCES workers(id) ON DELETE CASCADE
|
|
75
75
|
) STRICT;
|
|
76
76
|
|
|
77
|
-
CREATE UNIQUE INDEX IF NOT EXISTS
|
|
77
|
+
CREATE UNIQUE INDEX IF NOT EXISTS loops_worker_id_sequence ON loops (worker_id, sequence);
|
|
78
78
|
|
|
79
|
-
-- §
|
|
79
|
+
-- §worker-scheme: a loop crossing into a terminal status stamps terminated_at, so sibling
|
|
80
80
|
-- runs pull the termination as a folded ambient delta — caught uniformly across every
|
|
81
81
|
-- death-path (SEND, grinder, max-turns, strike, KILL). The stamp updates terminated_at,
|
|
82
82
|
-- never status, so it cannot re-fire this trigger. Terminals: 200 done · 413 budget ·
|
|
@@ -107,7 +107,7 @@ CREATE TABLE IF NOT EXISTS turns (
|
|
|
107
107
|
-- #274 — the context window of the model that RAN this turn (provider.contextSize), so the
|
|
108
108
|
-- gauge denominator matches the loop's actual model under any /model switch. NULL = the
|
|
109
109
|
-- provider can't report a window (the client omits the gauge).
|
|
110
|
-
|
|
110
|
+
usage_prompt_budget INTEGER CHECK (usage_prompt_budget IS NULL OR usage_prompt_budget >= 1),
|
|
111
111
|
packet TEXT NOT NULL CHECK (json_valid(packet)),
|
|
112
112
|
finish_reason TEXT,
|
|
113
113
|
model TEXT NOT NULL DEFAULT 'unknown' CHECK (length(model) >= 1),
|
|
@@ -128,8 +128,8 @@ CREATE INDEX IF NOT EXISTS turns_timestamp ON turns (timestamp);
|
|
|
128
128
|
CREATE TABLE IF NOT EXISTS entries (
|
|
129
129
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
130
130
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
131
|
-
scope TEXT NOT NULL CHECK (scope IN ('
|
|
132
|
-
|
|
131
|
+
scope TEXT NOT NULL CHECK (scope IN ('workspace', 'worker')),
|
|
132
|
+
workspace_id INTEGER,
|
|
133
133
|
scheme TEXT CHECK (scheme IS NULL OR length(scheme) > 0),
|
|
134
134
|
username TEXT,
|
|
135
135
|
password TEXT,
|
|
@@ -155,16 +155,16 @@ CREATE TABLE IF NOT EXISTS entries (
|
|
|
155
155
|
-- signature changed; an unchanged member is a no-op. NULL = never synced.
|
|
156
156
|
synced_sig TEXT,
|
|
157
157
|
-- User Note 5 — manifest cache-friendliness. Last-modified stamp, bumped on every
|
|
158
|
-
-- channel write by entries_touch_on_channel_write;
|
|
158
|
+
-- channel write by entries_touch_on_channel_write; engine_list_workspace_entries orders
|
|
159
159
|
-- the catalog by it ASC so dormant entries hold the stable prompt-cache prefix.
|
|
160
160
|
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
161
|
-
CHECK (
|
|
162
|
-
FOREIGN KEY (
|
|
161
|
+
CHECK (workspace_id IS NOT NULL),
|
|
162
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE
|
|
163
163
|
) STRICT;
|
|
164
164
|
|
|
165
|
-
CREATE UNIQUE INDEX IF NOT EXISTS
|
|
166
|
-
-- §
|
|
167
|
-
CREATE UNIQUE INDEX IF NOT EXISTS
|
|
165
|
+
CREATE UNIQUE INDEX IF NOT EXISTS entries_workspace_identity ON entries (workspace_id, scheme, pathname) WHERE scope = 'workspace';
|
|
166
|
+
-- §worker-scheme — worker-scope entries key (workspace, scheme='run', pathname='/<owner>/<path>'); the owner rides the pathname (no worker_id).
|
|
167
|
+
CREATE UNIQUE INDEX IF NOT EXISTS entries_worker_identity ON entries (workspace_id, scheme, pathname) WHERE scope = 'worker';
|
|
168
168
|
|
|
169
169
|
-- The ONE engine-imposed constraint (SPEC §stream-constraints, §stream-constraints-engine-one-cap): 100 MiB char-length cap
|
|
170
170
|
-- per channel content body. All other limits are extrinsic.
|
|
@@ -206,7 +206,7 @@ CREATE INDEX IF NOT EXISTS entry_tags_tag ON entry_tags (tag);
|
|
|
206
206
|
-- `symbols` channel. Qualified path = container ? container || '.' || name : name.
|
|
207
207
|
CREATE TABLE IF NOT EXISTS symbol_defs (
|
|
208
208
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
209
|
-
|
|
209
|
+
workspace_id INTEGER NOT NULL,
|
|
210
210
|
entry_id INTEGER NOT NULL,
|
|
211
211
|
name TEXT NOT NULL CHECK (length(name) > 0),
|
|
212
212
|
kind TEXT NOT NULL,
|
|
@@ -216,7 +216,7 @@ CREATE TABLE IF NOT EXISTS symbol_defs (
|
|
|
216
216
|
FOREIGN KEY (entry_id) REFERENCES entries(id) ON DELETE CASCADE
|
|
217
217
|
) STRICT;
|
|
218
218
|
|
|
219
|
-
CREATE INDEX IF NOT EXISTS symbol_defs_name ON symbol_defs (
|
|
219
|
+
CREATE INDEX IF NOT EXISTS symbol_defs_name ON symbol_defs (workspace_id, name);
|
|
220
220
|
|
|
221
221
|
-- INIT: symbol_refs
|
|
222
222
|
-- @graph EDGES (plurnk-service#186), from mimetypes' `references` channel.
|
|
@@ -225,7 +225,7 @@ CREATE INDEX IF NOT EXISTS symbol_defs_name ON symbol_defs (session_id, name);
|
|
|
225
225
|
-- type|use (frozen, edge metadata only — traversal is kind-agnostic).
|
|
226
226
|
CREATE TABLE IF NOT EXISTS symbol_refs (
|
|
227
227
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
228
|
-
|
|
228
|
+
workspace_id INTEGER NOT NULL,
|
|
229
229
|
entry_id INTEGER NOT NULL,
|
|
230
230
|
name TEXT NOT NULL CHECK (length(name) > 0),
|
|
231
231
|
kind TEXT NOT NULL,
|
|
@@ -235,8 +235,8 @@ CREATE TABLE IF NOT EXISTS symbol_refs (
|
|
|
235
235
|
FOREIGN KEY (entry_id) REFERENCES entries(id) ON DELETE CASCADE
|
|
236
236
|
) STRICT;
|
|
237
237
|
|
|
238
|
-
CREATE INDEX IF NOT EXISTS symbol_refs_name ON symbol_refs (
|
|
239
|
-
CREATE INDEX IF NOT EXISTS symbol_refs_source ON symbol_refs (
|
|
238
|
+
CREATE INDEX IF NOT EXISTS symbol_refs_name ON symbol_refs (workspace_id, name);
|
|
239
|
+
CREATE INDEX IF NOT EXISTS symbol_refs_source ON symbol_refs (workspace_id, entry_id, container);
|
|
240
240
|
|
|
241
241
|
-- INIT: entry_fts (~semantic FTS half — plurnk-service#186)
|
|
242
242
|
-- Keyword/content index over entry body content; the FTS5 rowid IS entries.id.
|
|
@@ -280,14 +280,14 @@ CREATE TABLE IF NOT EXISTS log_entries (
|
|
|
280
280
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
281
281
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
worker_id INTEGER NOT NULL,
|
|
284
284
|
loop_id INTEGER NOT NULL,
|
|
285
285
|
turn_id INTEGER NOT NULL,
|
|
286
286
|
sequence INTEGER NOT NULL CHECK (sequence >= 1),
|
|
287
287
|
at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
288
288
|
origin TEXT NOT NULL CHECK (origin IN ('model', 'client', 'plurnk', 'plugin')),
|
|
289
289
|
-- §env-delta environment-delta cause: a sibling run-id or a scheme ('file');
|
|
290
|
-
-- NULL = the owning run itself (self), rendered without a
|
|
290
|
+
-- NULL = the owning run itself (self), rendered without a worker= label.
|
|
291
291
|
source TEXT,
|
|
292
292
|
|
|
293
293
|
-- 'error' is an ACTIONLESS row (§telemetry — errors are log items): a parse failure that
|
|
@@ -331,22 +331,34 @@ CREATE TABLE IF NOT EXISTS log_entries (
|
|
|
331
331
|
|
|
332
332
|
expanded INTEGER NOT NULL DEFAULT 1 CHECK (expanded IN (0, 1)),
|
|
333
333
|
|
|
334
|
-
FOREIGN KEY (
|
|
334
|
+
FOREIGN KEY (worker_id) REFERENCES workers(id) ON DELETE CASCADE,
|
|
335
335
|
FOREIGN KEY (loop_id) REFERENCES loops(id) ON DELETE CASCADE,
|
|
336
336
|
FOREIGN KEY (turn_id) REFERENCES turns(id) ON DELETE CASCADE
|
|
337
337
|
) STRICT;
|
|
338
338
|
|
|
339
339
|
CREATE UNIQUE INDEX IF NOT EXISTS log_entries_turn_id_sequence ON log_entries (turn_id, sequence);
|
|
340
|
-
CREATE INDEX IF NOT EXISTS
|
|
340
|
+
CREATE INDEX IF NOT EXISTS log_entries_worker_id ON log_entries (worker_id);
|
|
341
341
|
CREATE INDEX IF NOT EXISTS log_entries_loop_id ON log_entries (loop_id);
|
|
342
342
|
CREATE INDEX IF NOT EXISTS log_entries_at ON log_entries (at);
|
|
343
343
|
|
|
344
|
+
-- §log-region-tagging — named log-region curation. FOLD is the log's write-op (EDIT can't
|
|
345
|
+
-- reach engine-written rows): FOLD[tag] stamps a tag on a region; OPEN[tag]/FIND[tag] filter
|
|
346
|
+
-- by it. Mirrors entry_tags (apply additive / filter ALL-tags AND); CASCADE with the row on KILL.
|
|
347
|
+
CREATE TABLE IF NOT EXISTS log_tags (
|
|
348
|
+
log_entry_id INTEGER NOT NULL,
|
|
349
|
+
tag TEXT NOT NULL CHECK (length(tag) > 0),
|
|
350
|
+
PRIMARY KEY (log_entry_id, tag),
|
|
351
|
+
FOREIGN KEY (log_entry_id) REFERENCES log_entries(id) ON DELETE CASCADE
|
|
352
|
+
) STRICT, WITHOUT ROWID;
|
|
353
|
+
|
|
354
|
+
CREATE INDEX IF NOT EXISTS log_tags_tag ON log_tags (tag);
|
|
355
|
+
|
|
344
356
|
-- Column-scoped immutability: the original action's identity and target
|
|
345
357
|
-- never change; the proposal lifecycle is allowed to mutate state,
|
|
346
358
|
-- outcome, status_rx, rx, expanded.
|
|
347
359
|
CREATE TRIGGER IF NOT EXISTS log_entries_immutable_core
|
|
348
360
|
BEFORE UPDATE OF
|
|
349
|
-
|
|
361
|
+
worker_id, loop_id, turn_id, sequence, at, origin, source,
|
|
350
362
|
op, suffix, signal,
|
|
351
363
|
scheme, username, password, hostname,
|
|
352
364
|
port, pathname, params, fragment,
|
|
@@ -363,7 +375,7 @@ CREATE TABLE IF NOT EXISTS schemes (
|
|
|
363
375
|
name TEXT NOT NULL PRIMARY KEY CHECK (length(name) > 0),
|
|
364
376
|
model_visible INTEGER NOT NULL CHECK (model_visible IN (0, 1)),
|
|
365
377
|
category TEXT NOT NULL CHECK (length(category) > 0),
|
|
366
|
-
default_scope TEXT NOT NULL CHECK (default_scope IN ('
|
|
378
|
+
default_scope TEXT NOT NULL CHECK (default_scope IN ('workspace')),
|
|
367
379
|
default_channel TEXT NOT NULL CHECK (length(default_channel) > 0),
|
|
368
380
|
channel_orientations TEXT CHECK (channel_orientations IS NULL OR json_valid(channel_orientations)),
|
|
369
381
|
writable_by TEXT NOT NULL CHECK (json_valid(writable_by)),
|
|
@@ -385,49 +397,49 @@ CREATE TABLE IF NOT EXISTS providers (
|
|
|
385
397
|
CREATE INDEX IF NOT EXISTS providers_created_at ON providers (created_at);
|
|
386
398
|
|
|
387
399
|
-- INIT: cost_rollups
|
|
388
|
-
-- Triggers maintaining denormalized cost_pico totals on runs and
|
|
400
|
+
-- Triggers maintaining denormalized cost_pico totals on runs and workspaces
|
|
389
401
|
-- as turns insert/update. Pure denormalization (textbook trigger use);
|
|
390
402
|
-- no branching state-machine logic lives here.
|
|
391
|
-
CREATE TRIGGER IF NOT EXISTS
|
|
403
|
+
CREATE TRIGGER IF NOT EXISTS turns_cost_rollup_insert_worker
|
|
392
404
|
AFTER INSERT ON turns
|
|
393
405
|
BEGIN
|
|
394
|
-
UPDATE
|
|
406
|
+
UPDATE workers
|
|
395
407
|
SET cost_pico = cost_pico + NEW.usage_cost_pico
|
|
396
|
-
WHERE id = (SELECT
|
|
408
|
+
WHERE id = (SELECT worker_id FROM loops WHERE id = NEW.loop_id);
|
|
397
409
|
END;
|
|
398
410
|
|
|
399
|
-
CREATE TRIGGER IF NOT EXISTS
|
|
411
|
+
CREATE TRIGGER IF NOT EXISTS turns_cost_rollup_insert_workspace
|
|
400
412
|
AFTER INSERT ON turns
|
|
401
413
|
BEGIN
|
|
402
|
-
UPDATE
|
|
414
|
+
UPDATE workspaces
|
|
403
415
|
SET cost_pico = cost_pico + NEW.usage_cost_pico
|
|
404
416
|
WHERE id = (
|
|
405
|
-
SELECT r.
|
|
406
|
-
FROM
|
|
407
|
-
JOIN loops l ON l.
|
|
417
|
+
SELECT r.workspace_id
|
|
418
|
+
FROM workers r
|
|
419
|
+
JOIN loops l ON l.worker_id = r.id
|
|
408
420
|
WHERE l.id = NEW.loop_id
|
|
409
421
|
);
|
|
410
422
|
END;
|
|
411
423
|
|
|
412
|
-
CREATE TRIGGER IF NOT EXISTS
|
|
424
|
+
CREATE TRIGGER IF NOT EXISTS turns_cost_rollup_update_worker
|
|
413
425
|
AFTER UPDATE OF usage_cost_pico ON turns
|
|
414
426
|
WHEN NEW.usage_cost_pico != OLD.usage_cost_pico
|
|
415
427
|
BEGIN
|
|
416
|
-
UPDATE
|
|
428
|
+
UPDATE workers
|
|
417
429
|
SET cost_pico = cost_pico + NEW.usage_cost_pico - OLD.usage_cost_pico
|
|
418
|
-
WHERE id = (SELECT
|
|
430
|
+
WHERE id = (SELECT worker_id FROM loops WHERE id = NEW.loop_id);
|
|
419
431
|
END;
|
|
420
432
|
|
|
421
|
-
CREATE TRIGGER IF NOT EXISTS
|
|
433
|
+
CREATE TRIGGER IF NOT EXISTS turns_cost_rollup_update_workspace
|
|
422
434
|
AFTER UPDATE OF usage_cost_pico ON turns
|
|
423
435
|
WHEN NEW.usage_cost_pico != OLD.usage_cost_pico
|
|
424
436
|
BEGIN
|
|
425
|
-
UPDATE
|
|
437
|
+
UPDATE workspaces
|
|
426
438
|
SET cost_pico = cost_pico + NEW.usage_cost_pico - OLD.usage_cost_pico
|
|
427
439
|
WHERE id = (
|
|
428
|
-
SELECT r.
|
|
429
|
-
FROM
|
|
430
|
-
JOIN loops l ON l.
|
|
440
|
+
SELECT r.workspace_id
|
|
441
|
+
FROM workers r
|
|
442
|
+
JOIN loops l ON l.worker_id = r.id
|
|
431
443
|
WHERE l.id = NEW.loop_id
|
|
432
444
|
);
|
|
433
445
|
END;
|
|
@@ -440,7 +452,7 @@ END;
|
|
|
440
452
|
CREATE TABLE IF NOT EXISTS subscriptions (
|
|
441
453
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
442
454
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
443
|
-
|
|
455
|
+
worker_id INTEGER NOT NULL,
|
|
444
456
|
entry_id INTEGER NOT NULL,
|
|
445
457
|
scheme TEXT NOT NULL CHECK (length(scheme) > 0),
|
|
446
458
|
handle TEXT NOT NULL CHECK (length(handle) > 0),
|
|
@@ -448,19 +460,19 @@ CREATE TABLE IF NOT EXISTS subscriptions (
|
|
|
448
460
|
-- grammar 0.74.20 EXEC `<T,P>` poll cadence (seconds). NULL = not polled. While the owning
|
|
449
461
|
-- loop hibernates (202), the daemon wakes it every poll_seconds to inspect this stream (§exec-poll).
|
|
450
462
|
poll_seconds INTEGER CHECK (poll_seconds IS NULL OR poll_seconds > 0),
|
|
451
|
-
-- EXEC `<0>` — turn-scoped: the stream is reaped at the
|
|
463
|
+
-- EXEC `<0>` — turn-scoped: the stream is reaped at the worker's next pre-turn so it never survives
|
|
452
464
|
-- into the subsequent turn; its terminal output surfaces born-OPEN like any conclusion. §exec-poll
|
|
453
465
|
turn_scoped INTEGER NOT NULL DEFAULT 0 CHECK (turn_scoped IN (0, 1)),
|
|
454
466
|
closed_at TEXT,
|
|
455
467
|
close_status INTEGER CHECK (close_status IS NULL OR (close_status BETWEEN 100 AND 599)),
|
|
456
468
|
CHECK ((closed_at IS NULL AND close_status IS NULL)
|
|
457
469
|
OR (closed_at IS NOT NULL AND close_status IS NOT NULL)),
|
|
458
|
-
FOREIGN KEY (
|
|
470
|
+
FOREIGN KEY (worker_id) REFERENCES workers(id) ON DELETE CASCADE,
|
|
459
471
|
FOREIGN KEY (entry_id) REFERENCES entries(id) ON DELETE CASCADE
|
|
460
472
|
) STRICT;
|
|
461
473
|
|
|
462
474
|
CREATE UNIQUE INDEX IF NOT EXISTS subscriptions_active_one_per_entry
|
|
463
|
-
ON subscriptions (
|
|
475
|
+
ON subscriptions (worker_id, entry_id)
|
|
464
476
|
WHERE closed_at IS NULL;
|
|
465
477
|
|
|
466
478
|
CREATE INDEX IF NOT EXISTS subscriptions_scheme_active
|
|
@@ -469,19 +481,19 @@ CREATE INDEX IF NOT EXISTS subscriptions_scheme_active
|
|
|
469
481
|
|
|
470
482
|
CREATE INDEX IF NOT EXISTS subscriptions_opened_at ON subscriptions (opened_at);
|
|
471
483
|
|
|
472
|
-
-- (
|
|
484
|
+
-- (worker_watermarks removed — §env-delta is now pull-from-log, no per-worker snapshot.)
|
|
473
485
|
|
|
474
|
-
-- INIT:
|
|
486
|
+
-- INIT: workspace_constraints
|
|
475
487
|
-- SPEC §membership constraint overlay — the client's supersede over git membership.
|
|
476
|
-
-- Per (
|
|
488
|
+
-- Per (workspace, effect, glob/target): `pick` (members git misses, resolved by a
|
|
477
489
|
-- targeted client-dictated scan), `hide` (drop git-tracked matches), `view` (member
|
|
478
490
|
-- for read; File.edit rejects the write), `repo` (declare a git repo whose ls-files
|
|
479
491
|
-- join membership, path-prefixed). git-absent, `pick` rows are the sole substrate
|
|
480
492
|
-- source. Composed at membership resolution; node:path.matchesGlob.
|
|
481
|
-
CREATE TABLE IF NOT EXISTS
|
|
482
|
-
|
|
493
|
+
CREATE TABLE IF NOT EXISTS workspace_constraints (
|
|
494
|
+
workspace_id INTEGER NOT NULL,
|
|
483
495
|
effect TEXT NOT NULL CHECK (effect IN ('pick', 'hide', 'view', 'repo')),
|
|
484
496
|
glob TEXT NOT NULL,
|
|
485
|
-
PRIMARY KEY (
|
|
486
|
-
FOREIGN KEY (
|
|
497
|
+
PRIMARY KEY (workspace_id, effect, glob),
|
|
498
|
+
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE
|
|
487
499
|
) STRICT, WITHOUT ROWID;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-service",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-grammar contract.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"test:demo": "PLURNK_SERVICE_EMBED_DISABLE=0 PLURNK_SERVICE_POLICY=../plurnk-meta/PLURNK_PERSONALITY.md node --conditions=plurnk-dev --import=./test/floor.ts --env-file-if-exists=.env.defaults --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
|
|
44
44
|
"test:all": "npm run test:lint && npm run test:unit && npm run test:intg && npm run test:demo",
|
|
45
45
|
"test:digest": "node --conditions=plurnk-dev bin/digest.ts",
|
|
46
|
+
"test:digest-failures": "node --conditions=plurnk-dev bin/digest-failures.ts",
|
|
46
47
|
"test:clean-tmp": "rm -rf test/intg/.tmp",
|
|
47
48
|
"dev:digest": "node --conditions=plurnk-dev bin/digest.ts",
|
|
48
49
|
"build:clean": "rm -rf dist",
|
|
@@ -59,21 +60,23 @@
|
|
|
59
60
|
"prepack": "npm run build"
|
|
60
61
|
},
|
|
61
62
|
"dependencies": {
|
|
62
|
-
"@plurnk/plurnk-agui": "1.0.
|
|
63
|
-
"@plurnk/plurnk-execs": "1.0.
|
|
64
|
-
"@plurnk/plurnk-execs-common": "1.0.
|
|
65
|
-
"@plurnk/plurnk-execs-mcp": "1.0.
|
|
66
|
-
"@plurnk/plurnk-execs-search": "1.0.
|
|
67
|
-
"@plurnk/plurnk-grammar": "1.0.
|
|
68
|
-
"@plurnk/plurnk-mimetypes": "1.0.
|
|
69
|
-
"@plurnk/plurnk-mimetypes-text-html": "1.0.
|
|
70
|
-
"@plurnk/plurnk-providers": "1.0.
|
|
71
|
-
"@plurnk/plurnk-schemes": "1.0.
|
|
72
|
-
"@plurnk/plurnk-schemes-http": "1.0.
|
|
63
|
+
"@plurnk/plurnk-agui": "1.0.6",
|
|
64
|
+
"@plurnk/plurnk-execs": "1.0.6",
|
|
65
|
+
"@plurnk/plurnk-execs-common": "1.0.6",
|
|
66
|
+
"@plurnk/plurnk-execs-mcp": "1.0.6",
|
|
67
|
+
"@plurnk/plurnk-execs-search": "1.0.6",
|
|
68
|
+
"@plurnk/plurnk-grammar": "1.0.6",
|
|
69
|
+
"@plurnk/plurnk-mimetypes": "1.0.6",
|
|
70
|
+
"@plurnk/plurnk-mimetypes-text-html": "1.0.6",
|
|
71
|
+
"@plurnk/plurnk-providers": "1.0.6",
|
|
72
|
+
"@plurnk/plurnk-schemes": "1.0.6",
|
|
73
|
+
"@plurnk/plurnk-schemes-http": "1.0.6",
|
|
73
74
|
"@possumtech/sqlrite": "5.2.0",
|
|
74
75
|
"diff": "^9.0.0",
|
|
75
|
-
"
|
|
76
|
-
"
|
|
76
|
+
"ignore": "7.0.6",
|
|
77
|
+
"isomorphic-git": "1.38.7",
|
|
78
|
+
"@plurnk/plurnk-mimetypes-embeddings": "1.0.6",
|
|
79
|
+
"@plurnk/plurnk-meta": "1.0.6"
|
|
77
80
|
},
|
|
78
81
|
"devDependencies": {
|
|
79
82
|
"@types/diff": "^7.0.2"
|
package/dist/core/run-cap.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-cap.d.ts","sourceRoot":"","sources":["../../src/core/run-cap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,SAAS,CAAC;AAS9C,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,OAAa,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAO9F;CACJ"}
|
package/dist/core/run-cap.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// Session-tier ceiling on CONCURRENT active runs (a run with a non-terminal loop)
|
|
2
|
-
// — the fork-bomb / destabilization brake. `PLURNK_SERVICE_SESSION_RUNS_MAX_ACTIVE` is the
|
|
3
|
-
// knob; -1 / unset / invalid = no cap. Only concurrency is bounded, never lifetime:
|
|
4
|
-
// sessions persist for months, so a total-created cap would punish longevity. A
|
|
5
|
-
// spawn/fork past the ceiling fails hard (508) — no queue, no retry. Checked at the
|
|
6
|
-
// single run-creation site (Dispatcher.#handleRunCopy, which both spawns and forks); irc is
|
|
7
|
-
// exempt — it targets an existing run and creates nothing.
|
|
8
|
-
export default class RunCap {
|
|
9
|
-
static async deny(db, sessionId) {
|
|
10
|
-
const raw = process.env.PLURNK_SERVICE_SESSION_RUNS_MAX_ACTIVE;
|
|
11
|
-
const cap = raw === undefined || raw.length === 0 ? -1 : Number.parseInt(raw, 10);
|
|
12
|
-
if (!Number.isFinite(cap) || cap < 0)
|
|
13
|
-
return null; // no cap
|
|
14
|
-
const row = await db.run_count_active.get({ session_id: sessionId });
|
|
15
|
-
if ((row?.n ?? 0) >= cap)
|
|
16
|
-
return { status: 508, error: `session active-run ceiling reached (PLURNK_SERVICE_SESSION_RUNS_MAX_ACTIVE=${cap})` };
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=run-cap.js.map
|
package/dist/core/run-cap.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-cap.js","sourceRoot":"","sources":["../../src/core/run-cap.ts"],"names":[],"mappings":"AAEA,kFAAkF;AAClF,2FAA2F;AAC3F,oFAAoF;AACpF,gFAAgF;AAChF,oFAAoF;AACpF,4FAA4F;AAC5F,2DAA2D;AAC3D,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,SAAiB;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC;QAC/D,MAAM,GAAG,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,SAAS;QAC5D,MAAM,GAAG,GAAG,MAAO,EAAE,CAAC,gBAA+B,CAAC,GAAG,CAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACpG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG;YAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,8EAA8E,GAAG,GAAG,EAAE,CAAC;QAC9I,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { Db } from "./Db.ts";
|
|
2
|
-
import type { PlurnkSchemeContext } from "./scheme-types.ts";
|
|
3
|
-
import type { WakeRunPayload } from "./ChannelWrite.ts";
|
|
4
|
-
import type SchemeRegistry from "./SchemeRegistry.ts";
|
|
5
|
-
export default class SearchPrefetch {
|
|
6
|
-
#private;
|
|
7
|
-
constructor(args: {
|
|
8
|
-
db: Db;
|
|
9
|
-
schemes: SchemeRegistry;
|
|
10
|
-
tokenize: (text: string) => number;
|
|
11
|
-
});
|
|
12
|
-
holds(runId: number): boolean;
|
|
13
|
-
isSearchConclusion(payload: WakeRunPayload): boolean;
|
|
14
|
-
ownsConclusion(payload: WakeRunPayload): boolean;
|
|
15
|
-
onSearchConcluded(payload: WakeRunPayload, mkCtx: (sessionId: number, runId: number) => Promise<PlurnkSchemeContext>): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=search-prefetch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-prefetch.d.ts","sourceRoot":"","sources":["../../src/core/search-prefetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAwBtD,MAAM,CAAC,OAAO,OAAO,cAAc;;IAY/B,YAAY,IAAI,EAAE;QAAE,EAAE,EAAE,EAAE,CAAC;QAAC,OAAO,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE,EAIxF;IAED,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAqC;IAIlE,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAInD;IAGD,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAO/C;IAIK,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzI;CA+FJ"}
|