@plurnk/plurnk-service 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +208 -0
- package/INSTALL.md +69 -0
- package/LICENSE +21 -0
- package/README.md +46 -0
- package/SPEC.md +1511 -0
- package/dist/Paths.d.ts +13 -0
- package/dist/Paths.d.ts.map +1 -0
- package/dist/Paths.js +60 -0
- package/dist/Paths.js.map +1 -0
- package/dist/content/edited-span.d.ts +2 -0
- package/dist/content/edited-span.d.ts.map +1 -0
- package/dist/content/edited-span.js +33 -0
- package/dist/content/edited-span.js.map +1 -0
- package/dist/content/index.d.ts +10 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +11 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/line-marker.d.ts +15 -0
- package/dist/content/line-marker.d.ts.map +1 -0
- package/dist/content/line-marker.js +21 -0
- package/dist/content/line-marker.js.map +1 -0
- package/dist/content/matcher.d.ts +44 -0
- package/dist/content/matcher.d.ts.map +1 -0
- package/dist/content/matcher.js +126 -0
- package/dist/content/matcher.js.map +1 -0
- package/dist/content/mimetype-binary.d.ts +8 -0
- package/dist/content/mimetype-binary.d.ts.map +1 -0
- package/dist/content/mimetype-binary.js +17 -0
- package/dist/content/mimetype-binary.js.map +1 -0
- package/dist/content/path-mimetype.d.ts +5 -0
- package/dist/content/path-mimetype.d.ts.map +1 -0
- package/dist/content/path-mimetype.js +15 -0
- package/dist/content/path-mimetype.js.map +1 -0
- package/dist/content/read-resolve.d.ts +20 -0
- package/dist/content/read-resolve.d.ts.map +1 -0
- package/dist/content/read-resolve.js +68 -0
- package/dist/content/read-resolve.js.map +1 -0
- package/dist/core/ChannelWrite.d.ts +100 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -0
- package/dist/core/ChannelWrite.js +112 -0
- package/dist/core/ChannelWrite.js.map +1 -0
- package/dist/core/ChannelWrite.sql +84 -0
- package/dist/core/Db.d.ts +14 -0
- package/dist/core/Db.d.ts.map +1 -0
- package/dist/core/Db.js +7 -0
- package/dist/core/Db.js.map +1 -0
- package/dist/core/Dispatcher.d.ts +67 -0
- package/dist/core/Dispatcher.d.ts.map +1 -0
- package/dist/core/Dispatcher.js +1021 -0
- package/dist/core/Dispatcher.js.map +1 -0
- package/dist/core/Engine.d.ts +113 -0
- package/dist/core/Engine.d.ts.map +1 -0
- package/dist/core/Engine.js +1410 -0
- package/dist/core/Engine.js.map +1 -0
- package/dist/core/Engine.sql +538 -0
- package/dist/core/EnvFlags.d.ts +13 -0
- package/dist/core/EnvFlags.d.ts.map +1 -0
- package/dist/core/EnvFlags.js +84 -0
- package/dist/core/EnvFlags.js.map +1 -0
- package/dist/core/ExecutorRegistry.d.ts +45 -0
- package/dist/core/ExecutorRegistry.d.ts.map +1 -0
- package/dist/core/ExecutorRegistry.js +128 -0
- package/dist/core/ExecutorRegistry.js.map +1 -0
- package/dist/core/PacketBuilder.d.ts +67 -0
- package/dist/core/PacketBuilder.d.ts.map +1 -0
- package/dist/core/PacketBuilder.js +524 -0
- package/dist/core/PacketBuilder.js.map +1 -0
- package/dist/core/PluginLoader.d.ts +17 -0
- package/dist/core/PluginLoader.d.ts.map +1 -0
- package/dist/core/PluginLoader.js +97 -0
- package/dist/core/PluginLoader.js.map +1 -0
- package/dist/core/ProposalLifecycle.d.ts +59 -0
- package/dist/core/ProposalLifecycle.d.ts.map +1 -0
- package/dist/core/ProposalLifecycle.js +215 -0
- package/dist/core/ProposalLifecycle.js.map +1 -0
- package/dist/core/ProviderInstantiate.d.ts +9 -0
- package/dist/core/ProviderInstantiate.d.ts.map +1 -0
- package/dist/core/ProviderInstantiate.js +156 -0
- package/dist/core/ProviderInstantiate.js.map +1 -0
- package/dist/core/SchemeRegistry.d.ts +26 -0
- package/dist/core/SchemeRegistry.d.ts.map +1 -0
- package/dist/core/SchemeRegistry.js +205 -0
- package/dist/core/SchemeRegistry.js.map +1 -0
- package/dist/core/StrikeRail.d.ts +28 -0
- package/dist/core/StrikeRail.d.ts.map +1 -0
- package/dist/core/StrikeRail.js +165 -0
- package/dist/core/StrikeRail.js.map +1 -0
- package/dist/core/TelemetryChannel.d.ts +37 -0
- package/dist/core/TelemetryChannel.d.ts.map +1 -0
- package/dist/core/TelemetryChannel.js +77 -0
- package/dist/core/TelemetryChannel.js.map +1 -0
- package/dist/core/TokenGauge.d.ts +16 -0
- package/dist/core/TokenGauge.d.ts.map +1 -0
- package/dist/core/TokenGauge.js +58 -0
- package/dist/core/TokenGauge.js.map +1 -0
- package/dist/core/caps/CapsResolve.d.ts +5 -0
- package/dist/core/caps/CapsResolve.d.ts.map +1 -0
- package/dist/core/caps/CapsResolve.js +13 -0
- package/dist/core/caps/CapsResolve.js.map +1 -0
- package/dist/core/caps/DbChannelCaps.d.ts +16 -0
- package/dist/core/caps/DbChannelCaps.d.ts.map +1 -0
- package/dist/core/caps/DbChannelCaps.js +41 -0
- package/dist/core/caps/DbChannelCaps.js.map +1 -0
- package/dist/core/caps/DbEntryCaps.d.ts +19 -0
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -0
- package/dist/core/caps/DbEntryCaps.js +28 -0
- package/dist/core/caps/DbEntryCaps.js.map +1 -0
- package/dist/core/caps/DbNotifyCaps.d.ts +8 -0
- package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -0
- package/dist/core/caps/DbNotifyCaps.js +35 -0
- package/dist/core/caps/DbNotifyCaps.js.map +1 -0
- package/dist/core/caps/DbSubscriptionCaps.d.ts +10 -0
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -0
- package/dist/core/caps/DbSubscriptionCaps.js +86 -0
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -0
- package/dist/core/caps/DbTagCaps.d.ts +17 -0
- package/dist/core/caps/DbTagCaps.d.ts.map +1 -0
- package/dist/core/caps/DbTagCaps.js +37 -0
- package/dist/core/caps/DbTagCaps.js.map +1 -0
- package/dist/core/caps/SchemeCtxImpl.d.ts +18 -0
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -0
- package/dist/core/caps/SchemeCtxImpl.js +42 -0
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -0
- package/dist/core/env-defaults.d.ts +19 -0
- package/dist/core/env-defaults.d.ts.map +1 -0
- package/dist/core/env-defaults.js +89 -0
- package/dist/core/env-defaults.js.map +1 -0
- package/dist/core/fork.d.ts +6 -0
- package/dist/core/fork.d.ts.map +1 -0
- package/dist/core/fork.js +84 -0
- package/dist/core/fork.js.map +1 -0
- package/dist/core/fork.sql +85 -0
- package/dist/core/git-membership.d.ts +23 -0
- package/dist/core/git-membership.d.ts.map +1 -0
- package/dist/core/git-membership.js +366 -0
- package/dist/core/git-membership.js.map +1 -0
- package/dist/core/git-state.d.ts +15 -0
- package/dist/core/git-state.d.ts.map +1 -0
- package/dist/core/git-state.js +67 -0
- package/dist/core/git-state.js.map +1 -0
- package/dist/core/packet-inject.d.ts +5 -0
- package/dist/core/packet-inject.d.ts.map +1 -0
- package/dist/core/packet-inject.js +48 -0
- package/dist/core/packet-inject.js.map +1 -0
- package/dist/core/packet-wire.d.ts +46 -0
- package/dist/core/packet-wire.d.ts.map +1 -0
- package/dist/core/packet-wire.js +453 -0
- package/dist/core/packet-wire.js.map +1 -0
- package/dist/core/path-decode.d.ts +2 -0
- package/dist/core/path-decode.d.ts.map +1 -0
- package/dist/core/path-decode.js +8 -0
- package/dist/core/path-decode.js.map +1 -0
- package/dist/core/plugin-attribution.d.ts +5 -0
- package/dist/core/plugin-attribution.d.ts.map +1 -0
- package/dist/core/plugin-attribution.js +39 -0
- package/dist/core/plugin-attribution.js.map +1 -0
- package/dist/core/plurnk-uri.d.ts +7 -0
- package/dist/core/plurnk-uri.d.ts.map +1 -0
- package/dist/core/plurnk-uri.js +52 -0
- package/dist/core/plurnk-uri.js.map +1 -0
- package/dist/core/resolveForLoop.d.ts +5 -0
- package/dist/core/resolveForLoop.d.ts.map +1 -0
- package/dist/core/resolveForLoop.js +12 -0
- package/dist/core/resolveForLoop.js.map +1 -0
- package/dist/core/results.d.ts +12 -0
- package/dist/core/results.d.ts.map +1 -0
- package/dist/core/results.js +27 -0
- package/dist/core/results.js.map +1 -0
- package/dist/core/run-cap.d.ts +8 -0
- package/dist/core/run-cap.d.ts.map +1 -0
- package/dist/core/run-cap.js +20 -0
- package/dist/core/run-cap.js.map +1 -0
- package/dist/core/run-ops.sql +43 -0
- package/dist/core/scheme-types.d.ts +45 -0
- package/dist/core/scheme-types.d.ts.map +1 -0
- package/dist/core/scheme-types.js +6 -0
- package/dist/core/scheme-types.js.map +1 -0
- package/dist/core/session-settings.d.ts +23 -0
- package/dist/core/session-settings.d.ts.map +1 -0
- package/dist/core/session-settings.js +55 -0
- package/dist/core/session-settings.js.map +1 -0
- package/dist/core/teaching.d.ts +3 -0
- package/dist/core/teaching.d.ts.map +1 -0
- package/dist/core/teaching.js +13 -0
- package/dist/core/teaching.js.map +1 -0
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/digest/Digest.d.ts +20 -0
- package/dist/digest/Digest.d.ts.map +1 -0
- package/dist/digest/Digest.js +451 -0
- package/dist/digest/Digest.js.map +1 -0
- package/dist/digest/Digest.sql +1 -0
- package/dist/digest/digest.sql +55 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/schemes/EffectPolicy.d.ts +6 -0
- package/dist/schemes/EffectPolicy.d.ts.map +1 -0
- package/dist/schemes/EffectPolicy.js +18 -0
- package/dist/schemes/EffectPolicy.js.map +1 -0
- package/dist/schemes/Exec.d.ts +39 -0
- package/dist/schemes/Exec.d.ts.map +1 -0
- package/dist/schemes/Exec.js +510 -0
- package/dist/schemes/Exec.js.map +1 -0
- package/dist/schemes/ExecOutputScheme.d.ts +20 -0
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -0
- package/dist/schemes/ExecOutputScheme.js +39 -0
- package/dist/schemes/ExecOutputScheme.js.map +1 -0
- package/dist/schemes/File.d.ts +42 -0
- package/dist/schemes/File.d.ts.map +1 -0
- package/dist/schemes/File.js +356 -0
- package/dist/schemes/File.js.map +1 -0
- package/dist/schemes/Known.d.ts +17 -0
- package/dist/schemes/Known.d.ts.map +1 -0
- package/dist/schemes/Known.js +40 -0
- package/dist/schemes/Known.js.map +1 -0
- package/dist/schemes/Log.d.ts +22 -0
- package/dist/schemes/Log.d.ts.map +1 -0
- package/dist/schemes/Log.js +269 -0
- package/dist/schemes/Log.js.map +1 -0
- package/dist/schemes/Log.sql +59 -0
- package/dist/schemes/Plurnk.d.ts +17 -0
- package/dist/schemes/Plurnk.d.ts.map +1 -0
- package/dist/schemes/Plurnk.js +46 -0
- package/dist/schemes/Plurnk.js.map +1 -0
- package/dist/schemes/Run.d.ts +25 -0
- package/dist/schemes/Run.d.ts.map +1 -0
- package/dist/schemes/Run.js +172 -0
- package/dist/schemes/Run.js.map +1 -0
- package/dist/schemes/Skill.d.ts +17 -0
- package/dist/schemes/Skill.d.ts.map +1 -0
- package/dist/schemes/Skill.js +40 -0
- package/dist/schemes/Skill.js.map +1 -0
- package/dist/schemes/Unknown.d.ts +17 -0
- package/dist/schemes/Unknown.d.ts.map +1 -0
- package/dist/schemes/Unknown.js +39 -0
- package/dist/schemes/Unknown.js.map +1 -0
- package/dist/schemes/_entry-chunk.d.ts +11 -0
- package/dist/schemes/_entry-chunk.d.ts.map +1 -0
- package/dist/schemes/_entry-chunk.js +100 -0
- package/dist/schemes/_entry-chunk.js.map +1 -0
- package/dist/schemes/_entry-crud.d.ts +31 -0
- package/dist/schemes/_entry-crud.d.ts.map +1 -0
- package/dist/schemes/_entry-crud.js +77 -0
- package/dist/schemes/_entry-crud.js.map +1 -0
- package/dist/schemes/_entry-crud.sql +101 -0
- package/dist/schemes/_entry-find.d.ts +32 -0
- package/dist/schemes/_entry-find.d.ts.map +1 -0
- package/dist/schemes/_entry-find.js +226 -0
- package/dist/schemes/_entry-find.js.map +1 -0
- package/dist/schemes/_entry-find.sql +54 -0
- package/dist/schemes/_entry-graph.d.ts +16 -0
- package/dist/schemes/_entry-graph.d.ts.map +1 -0
- package/dist/schemes/_entry-graph.js +94 -0
- package/dist/schemes/_entry-graph.js.map +1 -0
- package/dist/schemes/_entry-graph.sql +52 -0
- package/dist/schemes/_entry-manifest.d.ts +25 -0
- package/dist/schemes/_entry-manifest.d.ts.map +1 -0
- package/dist/schemes/_entry-manifest.js +266 -0
- package/dist/schemes/_entry-manifest.js.map +1 -0
- package/dist/schemes/_entry-ops.d.ts +32 -0
- package/dist/schemes/_entry-ops.d.ts.map +1 -0
- package/dist/schemes/_entry-ops.js +216 -0
- package/dist/schemes/_entry-ops.js.map +1 -0
- package/dist/schemes/_entry-ops.sql +31 -0
- package/dist/schemes/_entry-semantic.d.ts +38 -0
- package/dist/schemes/_entry-semantic.d.ts.map +1 -0
- package/dist/schemes/_entry-semantic.js +202 -0
- package/dist/schemes/_entry-semantic.js.map +1 -0
- package/dist/schemes/_entry-semantic.sql +95 -0
- package/dist/schemes/_entry-send.d.ts +11 -0
- package/dist/schemes/_entry-send.d.ts.map +1 -0
- package/dist/schemes/_entry-send.js +66 -0
- package/dist/schemes/_entry-send.js.map +1 -0
- package/dist/schemes/cosine.d.ts +4 -0
- package/dist/schemes/cosine.d.ts.map +1 -0
- package/dist/schemes/cosine.js +9 -0
- package/dist/schemes/cosine.js.map +1 -0
- package/dist/schemes/exec-abort.d.ts +15 -0
- package/dist/schemes/exec-abort.d.ts.map +1 -0
- package/dist/schemes/exec-abort.js +29 -0
- package/dist/schemes/exec-abort.js.map +1 -0
- package/dist/schemes/exec-env.d.ts +5 -0
- package/dist/schemes/exec-env.d.ts.map +1 -0
- package/dist/schemes/exec-env.js +34 -0
- package/dist/schemes/exec-env.js.map +1 -0
- package/dist/server/Daemon.d.ts +244 -0
- package/dist/server/Daemon.d.ts.map +1 -0
- package/dist/server/Daemon.js +1119 -0
- package/dist/server/Daemon.js.map +1 -0
- package/dist/server/client-input.d.ts +11 -0
- package/dist/server/client-input.d.ts.map +1 -0
- package/dist/server/client-input.js +145 -0
- package/dist/server/client-input.js.map +1 -0
- package/dist/server/clientTurn.d.ts +6 -0
- package/dist/server/clientTurn.d.ts.map +1 -0
- package/dist/server/clientTurn.js +23 -0
- package/dist/server/clientTurn.js.map +1 -0
- package/dist/server/clientTurn.sql +10 -0
- package/dist/server/dispatch-as-plurnk.d.ts +7 -0
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -0
- package/dist/server/dispatch-as-plurnk.js +23 -0
- package/dist/server/dispatch-as-plurnk.js.map +1 -0
- package/dist/server/drain.sql +124 -0
- package/dist/server/envelope.d.ts +53 -0
- package/dist/server/envelope.d.ts.map +1 -0
- package/dist/server/envelope.js +172 -0
- package/dist/server/envelope.js.map +1 -0
- package/dist/server/envelope.sql +76 -0
- package/dist/server/logEntry.d.ts +35 -0
- package/dist/server/logEntry.d.ts.map +1 -0
- package/dist/server/logEntry.js +49 -0
- package/dist/server/logEntry.js.map +1 -0
- package/dist/server/logEntry.sql +10 -0
- package/dist/server/loopDocs.d.ts +6 -0
- package/dist/server/loopDocs.d.ts.map +1 -0
- package/dist/server/loopDocs.js +22 -0
- package/dist/server/loopDocs.js.map +1 -0
- package/dist/server/noProposals.d.ts +6 -0
- package/dist/server/noProposals.d.ts.map +1 -0
- package/dist/server/noProposals.js +37 -0
- package/dist/server/noProposals.js.map +1 -0
- package/dist/server/seam-entry-read.sql +21 -0
- package/dist/server/seam-log-read.sql +21 -0
- package/dist/server/seam-loop.sql +9 -0
- package/dist/server/seam-proposal-list.sql +13 -0
- package/dist/server/version-info.d.ts +14 -0
- package/dist/server/version-info.d.ts.map +1 -0
- package/dist/server/version-info.js +69 -0
- package/dist/server/version-info.js.map +1 -0
- package/dist/server/yolo.d.ts +6 -0
- package/dist/server/yolo.d.ts.map +1 -0
- package/dist/server/yolo.js +64 -0
- package/dist/server/yolo.js.map +1 -0
- package/dist/service.d.ts +6 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +309 -0
- package/dist/service.js.map +1 -0
- package/migrations/0000-00-00.01_schema.sql +500 -0
- package/package.json +86 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Daemon.js","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default class ClientInput {
|
|
2
|
+
static assertProjectRoot(context: string, projectRoot: unknown): string | null;
|
|
3
|
+
static assertConstraint(context: string, effect: unknown, glob: unknown): void;
|
|
4
|
+
static parseConstraints(raw: unknown): Array<{
|
|
5
|
+
effect: string;
|
|
6
|
+
glob: string;
|
|
7
|
+
}>;
|
|
8
|
+
static validateLoopFlags(context: string, flags: unknown): void;
|
|
9
|
+
static parseSettings(raw: unknown): string;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=client-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-input.d.ts","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,OAAO,WAAW;IAG5B,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQ7E;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAO7E;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAa7E;IAID,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAc9D;IAKD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAoEzC;CACJ"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// Client-input validation at the SEAM — the daemon's client surface fail-hards on malformed
|
|
2
|
+
// input for EVERY module riding it (#364 flushed these out of the retired WS handlers, where
|
|
3
|
+
// only the socket path got them). Messages are the client-facing contract; tests assert them.
|
|
4
|
+
import { isAbsolute } from "node:path";
|
|
5
|
+
const CONSTRAINT_EFFECTS = new Set(["pick", "hide", "view", "repo"]);
|
|
6
|
+
export default class ClientInput {
|
|
7
|
+
// A workspace pin must be an absolute path (or null = headless) — a relative root would
|
|
8
|
+
// silently resolve against the daemon's cwd, never the client's.
|
|
9
|
+
static assertProjectRoot(context, projectRoot) {
|
|
10
|
+
const root = projectRoot ?? null;
|
|
11
|
+
if (root === null)
|
|
12
|
+
return null;
|
|
13
|
+
if (typeof root !== "string" || root.length === 0) {
|
|
14
|
+
throw new Error(`${context}: projectRoot must be a non-empty string or null`);
|
|
15
|
+
}
|
|
16
|
+
if (!isAbsolute(root))
|
|
17
|
+
throw new Error(`${context}: projectRoot must be an absolute path`);
|
|
18
|
+
return root;
|
|
19
|
+
}
|
|
20
|
+
static assertConstraint(context, effect, glob) {
|
|
21
|
+
if (typeof effect !== "string" || !CONSTRAINT_EFFECTS.has(effect)) {
|
|
22
|
+
throw new Error(`${context}: effect must be one of pick | hide | view | repo`);
|
|
23
|
+
}
|
|
24
|
+
if (typeof glob !== "string" || glob.length === 0) {
|
|
25
|
+
throw new Error(`${context}: glob must be a non-empty string`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
static parseConstraints(raw) {
|
|
29
|
+
if (raw === undefined || raw === null)
|
|
30
|
+
return [];
|
|
31
|
+
if (!Array.isArray(raw))
|
|
32
|
+
throw new Error("session.create: constraints must be an array");
|
|
33
|
+
return raw.map((c, i) => {
|
|
34
|
+
const e = c;
|
|
35
|
+
if (typeof e.effect !== "string" || !CONSTRAINT_EFFECTS.has(e.effect)) {
|
|
36
|
+
throw new Error(`session.create: constraints[${i}].effect must be one of pick | hide | view | repo`);
|
|
37
|
+
}
|
|
38
|
+
if (typeof e.glob !== "string" || e.glob.length === 0) {
|
|
39
|
+
throw new Error(`session.create: constraints[${i}].glob must be a non-empty string`);
|
|
40
|
+
}
|
|
41
|
+
return { effect: e.effect, glob: e.glob };
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
// §wait — loop flags are booleans (mode aside); a truthy string silently flipping YOLO would
|
|
45
|
+
// be a review-bypass, so the shape fail-hards at the surface.
|
|
46
|
+
static validateLoopFlags(context, flags) {
|
|
47
|
+
if (flags === undefined)
|
|
48
|
+
return;
|
|
49
|
+
if (typeof flags !== "object" || flags === null || Array.isArray(flags)) {
|
|
50
|
+
throw new Error(`${context}: flags must be an object`);
|
|
51
|
+
}
|
|
52
|
+
const f = flags;
|
|
53
|
+
for (const bool of ["yolo", "noProposals", "noWeb", "noInteraction"]) {
|
|
54
|
+
if (f[bool] !== undefined && typeof f[bool] !== "boolean") {
|
|
55
|
+
throw new Error(`${context}: flags.${bool} must be a boolean`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (f.mode !== undefined && f.mode !== "ask" && f.mode !== "act") {
|
|
59
|
+
throw new Error(`${context}: flags.mode must be 'ask' or 'act'`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// #231 — validate + serialize the client open-context bag. filesItems is a scalar (replace);
|
|
63
|
+
// mdDocs is [{alias, content}] (union'd with env at turn-0). A pre-serialized string passes
|
|
64
|
+
// through (a module may serialize at its own edge).
|
|
65
|
+
static parseSettings(raw) {
|
|
66
|
+
if (raw === undefined || raw === null)
|
|
67
|
+
return "{}";
|
|
68
|
+
if (typeof raw === "string")
|
|
69
|
+
return raw;
|
|
70
|
+
if (typeof raw !== "object" || Array.isArray(raw))
|
|
71
|
+
throw new Error("session.create: settings must be an object");
|
|
72
|
+
const r = raw;
|
|
73
|
+
const out = {};
|
|
74
|
+
if (r.filesItems !== undefined) {
|
|
75
|
+
if (typeof r.filesItems !== "number" || !Number.isInteger(r.filesItems)) {
|
|
76
|
+
throw new Error("session.create: settings.filesItems must be an integer (-1 full | 0 off | N first-N)");
|
|
77
|
+
}
|
|
78
|
+
out.filesItems = r.filesItems;
|
|
79
|
+
}
|
|
80
|
+
// #232 — tighten-only ceilings: a client may narrow, never widen (composed
|
|
81
|
+
// most-restrictive-wins at each read-site). maxCommands min()s the env ceiling;
|
|
82
|
+
// git:false denies git for the session (env AND session).
|
|
83
|
+
if (r.maxCommands !== undefined) {
|
|
84
|
+
if (typeof r.maxCommands !== "number" || !Number.isInteger(r.maxCommands) || r.maxCommands < 0) {
|
|
85
|
+
throw new Error("session.create: settings.maxCommands must be a non-negative integer (a tighten-only ceiling; 0 = plan + conclude only, no actions)");
|
|
86
|
+
}
|
|
87
|
+
out.maxCommands = r.maxCommands;
|
|
88
|
+
}
|
|
89
|
+
if (r.git !== undefined) {
|
|
90
|
+
if (typeof r.git !== "boolean")
|
|
91
|
+
throw new Error("session.create: settings.git must be a boolean (false denies git for the session)");
|
|
92
|
+
out.git = r.git;
|
|
93
|
+
}
|
|
94
|
+
// §send-300-choices — operator questions: the client AFFIRMATIVELY requests them per
|
|
95
|
+
// session (its own PLURNK_QUESTIONS=1 forwarded); enabled = allowed (service env) AND this.
|
|
96
|
+
if (r.questions !== undefined) {
|
|
97
|
+
if (typeof r.questions !== "boolean")
|
|
98
|
+
throw new Error("session.create: settings.questions must be a boolean (operator questions — [300] — requested for this session)");
|
|
99
|
+
out.questions = r.questions;
|
|
100
|
+
}
|
|
101
|
+
// #249 — session-stable frontend id (e.g. "plurnk.nvim/1.4.0"), forwarded to the plurnk
|
|
102
|
+
// provider as Plurnk-Client telemetry; ignored by every other provider. Self-identified.
|
|
103
|
+
if (r.client !== undefined) {
|
|
104
|
+
if (typeof r.client !== "string" || r.client.length === 0) {
|
|
105
|
+
throw new Error("session.create: settings.client must be a non-empty string (the frontend id, e.g. 'plurnk.nvim/1.4.0')");
|
|
106
|
+
}
|
|
107
|
+
out.client = r.client;
|
|
108
|
+
}
|
|
109
|
+
// #328 — the client's resolved PLURNK_EXECS_* policy subset, verbatim key→value, fed to execs'
|
|
110
|
+
// Policy as the per-session client layer (subtractive: narrows the boot-registered set, never
|
|
111
|
+
// widens). PLURNK_EXECS_MCP_* (server URLs + _HEADERS tokens) MUST NOT ride the wire — refused
|
|
112
|
+
// here as defense-in-depth even though the client already excludes them (the bare MCP toggle stays).
|
|
113
|
+
if (r.execs !== undefined) {
|
|
114
|
+
if (typeof r.execs !== "object" || r.execs === null || Array.isArray(r.execs)) {
|
|
115
|
+
throw new Error("session.create: settings.execs must be an object of PLURNK_EXECS_* key→value strings");
|
|
116
|
+
}
|
|
117
|
+
const execs = {};
|
|
118
|
+
for (const [k, v] of Object.entries(r.execs)) {
|
|
119
|
+
if (!/^PLURNK_EXECS_[A-Za-z0-9_]+$/.test(k))
|
|
120
|
+
throw new Error(`session.create: settings.execs key '${k}' is not a PLURNK_EXECS_* flag`);
|
|
121
|
+
if (/^PLURNK_EXECS_MCP_/i.test(k))
|
|
122
|
+
throw new Error(`session.create: settings.execs may not carry MCP server config '${k}' — those are not policy and must not ride the wire`);
|
|
123
|
+
if (typeof v !== "string")
|
|
124
|
+
throw new Error(`session.create: settings.execs['${k}'] must be a string`);
|
|
125
|
+
execs[k] = v;
|
|
126
|
+
}
|
|
127
|
+
out.execs = execs;
|
|
128
|
+
}
|
|
129
|
+
if (r.mdDocs !== undefined) {
|
|
130
|
+
if (!Array.isArray(r.mdDocs))
|
|
131
|
+
throw new Error("session.create: settings.mdDocs must be an array");
|
|
132
|
+
out.mdDocs = r.mdDocs.map((d, i) => {
|
|
133
|
+
const e = d;
|
|
134
|
+
if (typeof e.alias !== "string" || e.alias.length === 0 || /[^\w.-]/.test(e.alias)) {
|
|
135
|
+
throw new Error(`session.create: settings.mdDocs[${i}].alias must be a non-empty [\\w.-] string`);
|
|
136
|
+
}
|
|
137
|
+
if (typeof e.content !== "string")
|
|
138
|
+
throw new Error(`session.create: settings.mdDocs[${i}].content must be a string`);
|
|
139
|
+
return { alias: e.alias, content: e.content };
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return JSON.stringify(out);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=client-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-input.js","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientTurn.d.ts","sourceRoot":"","sources":["../../src/server/clientTurn.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,UAAU;;IAQ3B,OAAa,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQrE;CACJ"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Helper for creating a turn inside a connection's client loop. Each
|
|
2
|
+
// client-origin RPC dispatch (op.*) creates one such turn with a synthetic
|
|
3
|
+
// packet matching the same shape as model turns but with empty content.
|
|
4
|
+
export default class ClientTurn {
|
|
5
|
+
static #CLIENT_TURN_PACKET = JSON.stringify({
|
|
6
|
+
tokens: 0,
|
|
7
|
+
sections: [],
|
|
8
|
+
assistant: { tokens: 0, content: "", ops: [], reasoning: null },
|
|
9
|
+
assistantRaw: null,
|
|
10
|
+
});
|
|
11
|
+
static async insertClientTurn(db, loopId) {
|
|
12
|
+
const seqRow = await db.client_turn_next_sequence.get({ loop_id: loopId });
|
|
13
|
+
if (seqRow === undefined)
|
|
14
|
+
throw new Error("insertClientTurn: next-sequence query returned no row");
|
|
15
|
+
const row = await db.client_turn_insert.get({
|
|
16
|
+
loop_id: loopId, sequence: seqRow.next, packet: ClientTurn.#CLIENT_TURN_PACKET,
|
|
17
|
+
});
|
|
18
|
+
if (row === undefined)
|
|
19
|
+
throw new Error("insertClientTurn: insert returned no row");
|
|
20
|
+
return row.id;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=clientTurn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientTurn.js","sourceRoot":"","sources":["../../src/server/clientTurn.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,2EAA2E;AAC3E,wEAAwE;AAIxE,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;QAC/D,YAAY,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAM,EAAE,MAAc;QAChD,MAAM,MAAM,GAAG,MAAO,EAAE,CAAC,yBAAwC,CAAC,GAAG,CAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7G,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACnG,MAAM,GAAG,GAAG,MAAO,EAAE,CAAC,kBAAiC,CAAC,GAAG,CAAiB;YACxE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,mBAAmB;SACjF,CAAC,CAAC;QACH,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACnF,OAAO,GAAG,CAAC,EAAE,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -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,7 @@
|
|
|
1
|
+
import type { PlurnkStatement } from "@plurnk/plurnk-grammar";
|
|
2
|
+
import type { Db } from "../core/Db.ts";
|
|
3
|
+
import type Engine from "../core/Engine.ts";
|
|
4
|
+
export default class DispatchAsPlurnk {
|
|
5
|
+
static dispatch(engine: Engine, db: Db, sessionId: number, statements: PlurnkStatement[]): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=dispatch-as-plurnk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-as-plurnk.d.ts","sourceRoot":"","sources":["../../src/server/dispatch-as-plurnk.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,OAAa,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7G;CACJ"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Self-hosting keystone (SPEC §actor-boundary, §actor-boundary-self-hosting): the runtime acting as an ordinary `plurnk`
|
|
2
|
+
// actor. Uses the session's reserved plurnk run, opens an ephemeral loop+turn,
|
|
3
|
+
// and fires ops through Engine.dispatch with origin=plurnk — the same path the
|
|
4
|
+
// model and clients use. Mirrors _dispatchAsClient, but the work is the
|
|
5
|
+
// runtime's own (e.g. materializing operator doc entries). The ops land in the
|
|
6
|
+
// plurnk run's log, NOT the model's; other runs see only the resulting
|
|
7
|
+
// session-scoped entries through the shared filesystem (§machine-processes), never the log.
|
|
8
|
+
import Envelope from "./envelope.js";
|
|
9
|
+
import ClientTurn from "./clientTurn.js";
|
|
10
|
+
export default class DispatchAsPlurnk {
|
|
11
|
+
static async dispatch(engine, db, sessionId, statements) {
|
|
12
|
+
if (statements.length === 0)
|
|
13
|
+
return;
|
|
14
|
+
const runId = await Envelope.ensurePlurnkRun(db, sessionId);
|
|
15
|
+
const loopId = await Envelope.ensureClientLoop(db, runId);
|
|
16
|
+
const turnId = await ClientTurn.insertClientTurn(db, loopId);
|
|
17
|
+
let sequence = 1;
|
|
18
|
+
for (const statement of statements) {
|
|
19
|
+
await engine.dispatch({ statement, sessionId, runId, loopId, turnId, sequence: sequence++, origin: "plurnk" });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=dispatch-as-plurnk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-as-plurnk.js","sourceRoot":"","sources":["../../src/server/dispatch-as-plurnk.ts"],"names":[],"mappings":"AAAA,yHAAyH;AACzH,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAC/E,uEAAuE;AACvE,4FAA4F;AAK5F,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,EAAM,EAAE,SAAiB,EAAE,UAA6B;QAC1F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnH,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,124 @@
|
|
|
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 run's current NON-TERMINAL loop — active (102) or parked (202). At most one per run
|
|
27
|
+
-- under drain semantics. Engine.inject uses it to write the prompt entry for the right loop's
|
|
28
|
+
-- next turn; including 202 lets an irc target a PARKED loop's resume turn (#55) instead of
|
|
29
|
+
-- orphaning it with a fresh loop. (102 preferred if both somehow exist.)
|
|
30
|
+
SELECT id, sequence FROM loops
|
|
31
|
+
WHERE run_id = $run_id AND status IN (102, 202)
|
|
32
|
+
ORDER BY (status = 102) DESC, sequence ASC
|
|
33
|
+
LIMIT 1;
|
|
34
|
+
|
|
35
|
+
-- PREP: drain_next_turn_seq_for_loop
|
|
36
|
+
-- Next turn sequence for the given loop. Used by Engine.inject to compute
|
|
37
|
+
-- the path of the prompt entry it should write (plurnk://prompt/<run>/<loop>/<N>).
|
|
38
|
+
SELECT COALESCE(MAX(sequence), 0) + 1 AS next FROM turns WHERE loop_id = $loop_id;
|
|
39
|
+
|
|
40
|
+
-- PREP: drain_get_run_session
|
|
41
|
+
-- Resolve runId → sessionId. Needed when wake/inject paths only have the
|
|
42
|
+
-- runId (e.g., a stream concluded in run X; daemon needs the session
|
|
43
|
+
-- context to write entries under the run's session scope).
|
|
44
|
+
SELECT session_id FROM runs WHERE id = $run_id;
|
|
45
|
+
|
|
46
|
+
-- PREP: drain_get_latest_prompt_body_for_loop
|
|
47
|
+
-- Sources packet.user.prompt at packet-build time. plurnk://prompt/<run>/<loop>/<N>
|
|
48
|
+
-- entries accumulate per turn; the latest one (highest entries.id) is the
|
|
49
|
+
-- "current" prompt the model sees in user.prompt. Falls back to NULL when
|
|
50
|
+
-- no prompt entry exists for the loop (caller substitutes runLoop's
|
|
51
|
+
-- messages parameter for backward compat with tests that bypass inject).
|
|
52
|
+
-- Pattern is built JS-side via promptLoopPrefix (run-qualified `/prompt/<run>/<loop>/%`,
|
|
53
|
+
-- matching the foist's #pathnameOf and the inject) — SqlRite's parameter
|
|
54
|
+
-- binding doesn't reliably coerce integers for `LIKE` with `||`.
|
|
55
|
+
SELECT c.content, e.pathname
|
|
56
|
+
FROM entries e
|
|
57
|
+
JOIN entry_channels c ON c.entry_id = e.id
|
|
58
|
+
WHERE e.scheme = 'plurnk'
|
|
59
|
+
AND e.pathname LIKE $pattern
|
|
60
|
+
AND c.name = 'body'
|
|
61
|
+
ORDER BY e.id DESC
|
|
62
|
+
LIMIT 1;
|
|
63
|
+
|
|
64
|
+
-- PREP: drain_get_all_prompt_bodies_for_loop
|
|
65
|
+
-- Sources the Active User Prompts section (§prompt-fold): EVERY prompt entry the
|
|
66
|
+
-- current loop holds, OLDEST first — typically one, but an active loop admits injected
|
|
67
|
+
-- prompts (multiple plurnk://prompt/<run>/<loop>/<N>), all shown in order. Same pattern as
|
|
68
|
+
-- the latest-only sibling (promptLoopPrefix pattern, built JS-side); the section renders
|
|
69
|
+
-- each body as a bare heredoc.
|
|
70
|
+
SELECT c.content, e.pathname
|
|
71
|
+
FROM entries e
|
|
72
|
+
JOIN entry_channels c ON c.entry_id = e.id
|
|
73
|
+
WHERE e.scheme = 'plurnk'
|
|
74
|
+
AND e.pathname LIKE $pattern
|
|
75
|
+
AND c.name = 'body'
|
|
76
|
+
ORDER BY e.id ASC;
|
|
77
|
+
|
|
78
|
+
-- PREP: drain_orphaned_prompt_for_loop
|
|
79
|
+
-- A loop can terminate before consuming a next-turn prompt injected into it
|
|
80
|
+
-- (a wake-on-completion, or a loop.run-while-active that landed on a turn the
|
|
81
|
+
-- loop never reached). Engine.inject writes prompt/<run>/<loop>/<N> at MAX(turn)+1;
|
|
82
|
+
-- if the loop ended at turn K, an injected prompt at turn > K never ran.
|
|
83
|
+
-- Returns the latest such orphan's body + the ended loop's flags so
|
|
84
|
+
-- the drain can promote it to a fresh loop — no wake silently lost.
|
|
85
|
+
-- $pattern = promptLoopPrefix + '%', $prefix_len = length of that prefix
|
|
86
|
+
-- built JS-side (per the SqlRite LIKE-binding note above).
|
|
87
|
+
SELECT c.content AS body, l.flags AS flags
|
|
88
|
+
FROM entries e
|
|
89
|
+
JOIN entry_channels c ON c.entry_id = e.id
|
|
90
|
+
JOIN loops l ON l.id = $loop_id
|
|
91
|
+
WHERE e.scheme = 'plurnk'
|
|
92
|
+
AND e.pathname LIKE $pattern
|
|
93
|
+
AND c.name = 'body'
|
|
94
|
+
AND CAST(substr(e.pathname, $prefix_len + 1) AS INTEGER) >
|
|
95
|
+
(SELECT COALESCE(MAX(sequence), 0) FROM turns WHERE loop_id = $loop_id)
|
|
96
|
+
ORDER BY e.id DESC
|
|
97
|
+
LIMIT 1;
|
|
98
|
+
|
|
99
|
+
-- PREP: drain_find_slept_loop
|
|
100
|
+
-- A run's parked (slept) loop — SEND[202] suspends it at status 202, resumable by a wake
|
|
101
|
+
-- (§run-lifecycle-wake-liveness). A run parks one at a time; take the most recent.
|
|
102
|
+
SELECT id FROM loops WHERE run_id = $run_id AND status = 202 ORDER BY sequence DESC LIMIT 1;
|
|
103
|
+
|
|
104
|
+
-- PREP: drain_resume_slept_loop
|
|
105
|
+
-- Re-queue a slept (202) loop to status 100 so the drain re-claims and CONTINUES it. The
|
|
106
|
+
-- engine's next-turn-sequence is DB-derived, so the resumed loop foists no prompt (seq > 1).
|
|
107
|
+
UPDATE loops SET status = 100 WHERE id = $loop_id AND status = 202;
|
|
108
|
+
|
|
109
|
+
-- PREP: drain_run_min_poll
|
|
110
|
+
-- grammar 0.74.20 EXEC `<T,P>` — the tightest poll cadence (seconds) among a run's OPEN
|
|
111
|
+
-- polled subscriptions. NULL when the run holds no polled stream → no hibernation poll-wake.
|
|
112
|
+
SELECT MIN(poll_seconds) AS poll_seconds
|
|
113
|
+
FROM subscriptions WHERE run_id = $run_id AND closed_at IS NULL AND poll_seconds IS NOT NULL;
|
|
114
|
+
|
|
115
|
+
-- PREP: run_parent_id
|
|
116
|
+
-- A run's parent (run:// spawn / fork set parent_run_id, §lifecycle-terms). NULL = a root run.
|
|
117
|
+
-- Used at drain-exit to wake a parent that parked awaiting this child (§run-lifecycle topology join).
|
|
118
|
+
SELECT parent_run_id FROM runs WHERE id = $run_id;
|
|
119
|
+
|
|
120
|
+
-- PREP: drain_active_loop_flags
|
|
121
|
+
-- #368 — the LIVE loop's persisted flags for the fold-posture guard: an inject carrying flags
|
|
122
|
+
-- that differ from the loop it would fold into is refused, never a silent posture discard.
|
|
123
|
+
-- The run's currently-executing loop is its most recent non-terminal one.
|
|
124
|
+
SELECT id, flags FROM loops WHERE run_id = $run_id AND status IN (100, 102) ORDER BY sequence DESC LIMIT 1;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Db } from "../core/Db.ts";
|
|
2
|
+
export interface SessionRow {
|
|
3
|
+
id: number;
|
|
4
|
+
name: string;
|
|
5
|
+
project_root: string | null;
|
|
6
|
+
created_at: string;
|
|
7
|
+
cost_pico: number;
|
|
8
|
+
}
|
|
9
|
+
export interface RunRow {
|
|
10
|
+
id: number;
|
|
11
|
+
name: string;
|
|
12
|
+
created_at: string;
|
|
13
|
+
cost_pico: number;
|
|
14
|
+
origin: "model" | "client" | "plurnk";
|
|
15
|
+
}
|
|
16
|
+
export interface ClientEnvelope {
|
|
17
|
+
sessionId: number;
|
|
18
|
+
sessionName: string;
|
|
19
|
+
projectRoot: string | null;
|
|
20
|
+
runId: number;
|
|
21
|
+
runName: string;
|
|
22
|
+
modelRunId: number | null;
|
|
23
|
+
clientLoopId: number | null;
|
|
24
|
+
}
|
|
25
|
+
export default class Envelope {
|
|
26
|
+
#private;
|
|
27
|
+
static readonly RESERVED_RUN_NAMES: ReadonlySet<string>;
|
|
28
|
+
static generateSessionName(): string;
|
|
29
|
+
static generateRunName(): string;
|
|
30
|
+
static createClientEnvelope(db: Db, opts?: {
|
|
31
|
+
name?: string;
|
|
32
|
+
prefix?: string;
|
|
33
|
+
projectRoot?: string | null;
|
|
34
|
+
settings?: string;
|
|
35
|
+
}): Promise<ClientEnvelope>;
|
|
36
|
+
static attachToSession(db: Db, sessionId: number, opts?: {
|
|
37
|
+
runId?: number;
|
|
38
|
+
runName?: string;
|
|
39
|
+
}): Promise<ClientEnvelope>;
|
|
40
|
+
static ensureClientLoop(db: Db, runId: number): Promise<number>;
|
|
41
|
+
static createModelRun(db: Db, sessionId: number, name?: string): Promise<{
|
|
42
|
+
id: number;
|
|
43
|
+
name: string;
|
|
44
|
+
}>;
|
|
45
|
+
static ensureModelRun(db: Db, sessionId: number): Promise<number>;
|
|
46
|
+
static ensurePlurnkRun(db: Db, sessionId: number): Promise<number>;
|
|
47
|
+
static listRunsForSession(db: Db, sessionId: number): Promise<RunRow[]>;
|
|
48
|
+
static listPromptsForSession(db: Db, sessionId: number, limit: number): Promise<string[]>;
|
|
49
|
+
static closeClientLoop(db: Db, loopId: number, status: 200 | 499): Promise<void>;
|
|
50
|
+
static listSessions(db: Db): Promise<SessionRow[]>;
|
|
51
|
+
static updateSessionName(db: Db, sessionId: number, name: string): Promise<string>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAGpD,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACzC;AAQD,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,CAAC,OAAO,OAAO,QAAQ;;IAKzB,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAuB;IAW9E,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAEnC;IAED,MAAM,CAAC,eAAe,IAAI,MAAM,CAE/B;IAED,OAAa,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBhK;IAgCD,OAAa,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAWhI;IAKD,OAAa,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpE;IASD,OAAa,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAI3G;IAED,OAAa,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUtE;IAMD,OAAa,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvE;IAED,OAAa,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5E;IAKD,OAAa,qBAAqB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG9F;IAED,OAAa,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAErF;IAED,OAAa,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAEvD;IAKD,OAAa,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIvF;CACJ"}
|