@plurnk/plurnk-service 0.34.0 → 0.39.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/SPEC.md +51 -15
- package/dist/content/matcher.d.ts +1 -0
- package/dist/content/matcher.d.ts.map +1 -1
- package/dist/content/matcher.js +1 -1
- package/dist/content/matcher.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +1 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +8 -2
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +99 -28
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/ExecutorRegistry.d.ts +2 -0
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +1 -0
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +4 -0
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +18 -1
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/fork.js +1 -1
- package/dist/core/fork.js.map +1 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +44 -22
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +3 -1
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/packet-wire.js +1 -1
- package/dist/core/packet-wire.js.map +1 -1
- 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/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/session-settings.d.ts +19 -0
- package/dist/core/session-settings.d.ts.map +1 -0
- package/dist/core/session-settings.js +44 -0
- package/dist/core/session-settings.js.map +1 -0
- package/dist/schemes/File.d.ts +2 -0
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +72 -11
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.js +7 -7
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Run.d.ts.map +1 -1
- package/dist/schemes/Run.js +5 -1
- package/dist/schemes/Run.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts +14 -3
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +59 -27
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-graph.d.ts +6 -0
- package/dist/schemes/_entry-graph.d.ts.map +1 -1
- package/dist/schemes/_entry-graph.js +8 -0
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +13 -0
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +4 -3
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +5 -1
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +10 -8
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +4 -3
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +26 -1
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/envelope.d.ts +2 -0
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +8 -1
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/methods/discover.d.ts.map +1 -1
- package/dist/server/methods/discover.js +6 -3
- package/dist/server/methods/discover.js.map +1 -1
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +14 -10
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/session_constraints.js +6 -6
- package/dist/server/methods/session_constraints.js.map +1 -1
- package/dist/server/methods/session_create.d.ts.map +1 -1
- package/dist/server/methods/session_create.js +55 -5
- package/dist/server/methods/session_create.js.map +1 -1
- package/dist/server/methods/session_prompts.d.ts +5 -0
- package/dist/server/methods/session_prompts.d.ts.map +1 -0
- package/dist/server/methods/session_prompts.js +29 -0
- package/dist/server/methods/session_prompts.js.map +1 -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.map +1 -1
- package/dist/server/yolo.js +8 -0
- package/dist/server/yolo.js.map +1 -1
- package/migrations/0000-00-00.01_schema.sql +29 -8
- package/package.json +22 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/server/methods/discover.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,gFAAgF;QAChF,kFAAkF;QAClF,yFAAyF;QACzF,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;YAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC;YACnG,WAAW,EAAE,gJAAgJ;SAChK,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop_run.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"loop_run.d.ts","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAkCvD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CA+IlD"}
|
|
@@ -5,6 +5,7 @@ import { readFile } from "node:fs/promises";
|
|
|
5
5
|
import { Paths } from "../../index.js";
|
|
6
6
|
import { parseAliasesFromEnv } from "@plurnk/plurnk-providers";
|
|
7
7
|
import ProviderInstantiate from "../../core/ProviderInstantiate.js";
|
|
8
|
+
import SessionSettings from "../../core/session-settings.js";
|
|
8
9
|
import Envelope from "../envelope.js";
|
|
9
10
|
import DispatchAsPlurnk from "./_dispatchAsPlurnk.js";
|
|
10
11
|
export default class LoopRunMethod {
|
|
@@ -65,18 +66,21 @@ export default class LoopRunMethod {
|
|
|
65
66
|
// plurnk run, §actor-boundary) so the model READs it at turn 0 (Engine.runTurn
|
|
66
67
|
// foists the READ). The materializing EDITs land in the plurnk
|
|
67
68
|
// run's log, invisible to the model. Missing files are skipped.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
// #231 — materialize env docs (PLURNK_MD_*) UNION the session's client docs
|
|
70
|
+
// (settings.mdDocs); client wins on alias collision. Engine.runTurn foists a
|
|
71
|
+
// READ of the same set at turn-0.
|
|
72
|
+
const { mdDocs } = await SessionSettings.read(ctx.db, sessionId);
|
|
73
|
+
const docStmts = (await SessionSettings.resolveDocs(mdDocs)).map((doc) => ({
|
|
74
|
+
op: "EDIT", suffix: "", signal: null,
|
|
75
|
+
target: { kind: "url", raw: `plurnk:///${doc.entryName}`, scheme: "plurnk", username: null, password: null, hostname: null, port: null, pathname: `/${doc.entryName}`, params: {}, fragment: null },
|
|
76
|
+
lineMarker: null, body: doc.content, position: { line: 1, column: 1 },
|
|
77
|
+
}));
|
|
78
|
+
// #note12 — materialize the daughter scheme/exec reference docs at
|
|
79
|
+
// plurnk:///docs/<name> so the catalogue's doc-links READ + carry token cost.
|
|
80
|
+
for (const { name, content } of ctx.engine.docEntries()) {
|
|
77
81
|
docStmts.push({
|
|
78
82
|
op: "EDIT", suffix: "", signal: null,
|
|
79
|
-
target: { kind: "url", raw: `plurnk
|
|
83
|
+
target: { kind: "url", raw: `plurnk:///docs/${name}`, scheme: "plurnk", username: null, password: null, hostname: null, port: null, pathname: `/docs/${name}`, params: {}, fragment: null },
|
|
80
84
|
lineMarker: null, body: content, position: { line: 1, column: 1 },
|
|
81
85
|
});
|
|
82
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop_run.js","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loop_run.js","sourceRoot":"","sources":["../../../src/server/methods/loop_run.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import GitMembership from "../../core/git-membership.js";
|
|
|
2
2
|
// Client tooling for the SPEC §membership constraint overlay — the supersede over git
|
|
3
3
|
// membership. `constrain`/`unconstrain` mutate session_constraints then re-resolve
|
|
4
4
|
// membership so the change lands now, not next turn; `constraints` lists them.
|
|
5
|
-
const EFFECTS = new Set(["pick", "hide", "view"]);
|
|
5
|
+
const EFFECTS = new Set(["pick", "hide", "view", "repo"]);
|
|
6
6
|
export default class SessionConstraintsMethod {
|
|
7
7
|
static register(registry) {
|
|
8
8
|
registry.registerMethod("session.constrain", {
|
|
@@ -14,10 +14,10 @@ export default class SessionConstraintsMethod {
|
|
|
14
14
|
await GitMembership.resolveGitMembership(ctx.db, ctx.session.sessionId, undefined);
|
|
15
15
|
return { effect, glob };
|
|
16
16
|
},
|
|
17
|
-
description: "Add a workspace membership constraint (SPEC §membership overlay): `pick` admits files git misses (the sole source when git is absent), `hide` drops tracked matches, `view` admits a member for read but refuses edits. Takes effect immediately.",
|
|
17
|
+
description: "Add a workspace membership constraint (SPEC §membership overlay): `pick` admits files git misses (the sole source when git is absent), `hide` drops tracked matches, `view` admits a member for read but refuses edits, `repo` declares a git repo folder ANYWHERE (under the project root or outside it) so its members (tracked + untracked-non-ignored) join the manifest. Takes effect immediately.",
|
|
18
18
|
params: {
|
|
19
|
-
effect: "string — one of: pick | hide | view",
|
|
20
|
-
glob: "string — node:path glob
|
|
19
|
+
effect: "string — one of: pick | hide | view | repo",
|
|
20
|
+
glob: "string — a node:path glob (workspace-relative); for `repo`, the folder to declare — manifested relative to the project root, clean when under it, `..`-prefixed when outside",
|
|
21
21
|
},
|
|
22
22
|
requiresInit: true,
|
|
23
23
|
});
|
|
@@ -32,7 +32,7 @@ export default class SessionConstraintsMethod {
|
|
|
32
32
|
},
|
|
33
33
|
description: "Remove a workspace membership constraint — the inverse of session.constrain (the `drop` verb is deleting the constraint row). Takes effect immediately.",
|
|
34
34
|
params: {
|
|
35
|
-
effect: "string — one of: pick | hide | view",
|
|
35
|
+
effect: "string — one of: pick | hide | view | repo",
|
|
36
36
|
glob: "string — the glob to remove",
|
|
37
37
|
},
|
|
38
38
|
requiresInit: true,
|
|
@@ -52,7 +52,7 @@ export default class SessionConstraintsMethod {
|
|
|
52
52
|
static #parse(params, method) {
|
|
53
53
|
const p = params;
|
|
54
54
|
if (typeof p.effect !== "string" || !EFFECTS.has(p.effect)) {
|
|
55
|
-
throw new Error(`${method}: effect must be one of pick | hide | view`);
|
|
55
|
+
throw new Error(`${method}: effect must be one of pick | hide | view | repo`);
|
|
56
56
|
}
|
|
57
57
|
if (typeof p.glob !== "string" || p.glob.length === 0) {
|
|
58
58
|
throw new Error(`${method}: glob must be a non-empty string`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_constraints.js","sourceRoot":"","sources":["../../../src/server/methods/session_constraints.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,sFAAsF;AACtF,mFAAmF;AACnF,+EAA+E;AAC/E,MAAM,OAAO,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"session_constraints.js","sourceRoot":"","sources":["../../../src/server/methods/session_constraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_create.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAUvD,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"session_create.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAUvD,MAAM,CAAC,OAAO,OAAO,mBAAmB;;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAoHlD"}
|
|
@@ -3,8 +3,8 @@ import Envelope from "../envelope.js";
|
|
|
3
3
|
import GitMembership from "../../core/git-membership.js";
|
|
4
4
|
// #200 — membership-overlay effects, mirroring session.constrain (pick admits a
|
|
5
5
|
// file git misses / the sole source when headless; hide drops a tracked match;
|
|
6
|
-
// view admits a member read-only).
|
|
7
|
-
const CONSTRAINT_EFFECTS = new Set(["pick", "hide", "view"]);
|
|
6
|
+
// view admits a member read-only; repo declares a git repo folder anywhere).
|
|
7
|
+
const CONSTRAINT_EFFECTS = new Set(["pick", "hide", "view", "repo"]);
|
|
8
8
|
export default class SessionCreateMethod {
|
|
9
9
|
static register(registry) {
|
|
10
10
|
// session.create makes a session, attaches this connection, and returns the auto-created
|
|
@@ -25,7 +25,10 @@ export default class SessionCreateMethod {
|
|
|
25
25
|
// turn-1's manifest already reflects it (no follow-up session.constrain
|
|
26
26
|
// RPC race). Same effects/semantics as session.constrain.
|
|
27
27
|
const constraints = SessionCreateMethod.#parseConstraints(p.constraints);
|
|
28
|
-
|
|
28
|
+
// #231 — client-chosen open-context, persisted on the session and read at
|
|
29
|
+
// turn-0 with precedence over env (manifestItems replaces, mdDocs unions).
|
|
30
|
+
const settings = SessionCreateMethod.#parseSettings(p.settings);
|
|
31
|
+
const envelope = await Envelope.createClientEnvelope(ctx.db, { name: p.name, projectRoot, settings });
|
|
29
32
|
if (constraints.length > 0) {
|
|
30
33
|
for (const { effect, glob } of constraints) {
|
|
31
34
|
await ctx.db.crud_insert_session_constraint.run({ session_id: envelope.sessionId, effect, glob });
|
|
@@ -48,7 +51,8 @@ export default class SessionCreateMethod {
|
|
|
48
51
|
params: {
|
|
49
52
|
name: "string? — session name (auto-generated if omitted)",
|
|
50
53
|
projectRoot: "string? — absolute path to the client's workspace; null/omitted = headless mode (no disk side-effects on file ops)",
|
|
51
|
-
constraints: "array? — [{effect, glob}] membership overlay seeded atomically at creation so turn-1's manifest is right with no follow-up RPC. effect: pick (admit a file git misses / the sole source when headless) | hide (drop a tracked match) | view (read-only). glob: node:path glob vs workspace-relative paths.",
|
|
54
|
+
constraints: "array? — [{effect, glob}] membership overlay seeded atomically at creation so turn-1's manifest is right with no follow-up RPC. effect: pick (admit a file git misses / the sole source when headless) | hide (drop a tracked match) | view (read-only) | repo (declare a git repo folder anywhere — its members join the manifest, addressed relative to the project root: clean under it, `..`-prefixed outside). glob: node:path glob vs workspace-relative paths (a folder for repo).",
|
|
55
|
+
settings: "object? — client-chosen open-context, persisted per session, read at turn-0 over env. { manifestItems?: number (-1 full | 0 off | N first-N; replaces PLURNK_MANIFEST_ITEMS), mdDocs?: [{alias, content}] (unioned with server PLURNK_MD_* docs; client wins on alias collision) }",
|
|
52
56
|
},
|
|
53
57
|
});
|
|
54
58
|
registry.registerNotification("session/created", {
|
|
@@ -68,7 +72,7 @@ export default class SessionCreateMethod {
|
|
|
68
72
|
return raw.map((c, i) => {
|
|
69
73
|
const e = c;
|
|
70
74
|
if (typeof e.effect !== "string" || !CONSTRAINT_EFFECTS.has(e.effect)) {
|
|
71
|
-
throw new Error(`session.create: constraints[${i}].effect must be one of pick | hide | view`);
|
|
75
|
+
throw new Error(`session.create: constraints[${i}].effect must be one of pick | hide | view | repo`);
|
|
72
76
|
}
|
|
73
77
|
if (typeof e.glob !== "string" || e.glob.length === 0) {
|
|
74
78
|
throw new Error(`session.create: constraints[${i}].glob must be a non-empty string`);
|
|
@@ -76,5 +80,51 @@ export default class SessionCreateMethod {
|
|
|
76
80
|
return { effect: e.effect, glob: e.glob };
|
|
77
81
|
});
|
|
78
82
|
}
|
|
83
|
+
// #231 — validate + serialize the client open-context bag. manifestItems is a scalar
|
|
84
|
+
// (replace); mdDocs is [{alias, content}] (union'd with env at turn-0). Alias is a clean
|
|
85
|
+
// entry-name fragment ([\w.-]) since it becomes plurnk:///<alias>.md. Returns JSON ('{}'
|
|
86
|
+
// when absent). Operator-arcane knobs stay env-only by omission — this is the client surface.
|
|
87
|
+
static #parseSettings(raw) {
|
|
88
|
+
if (raw === undefined || raw === null)
|
|
89
|
+
return "{}";
|
|
90
|
+
if (typeof raw !== "object" || Array.isArray(raw))
|
|
91
|
+
throw new Error("session.create: settings must be an object");
|
|
92
|
+
const r = raw;
|
|
93
|
+
const out = {};
|
|
94
|
+
if (r.manifestItems !== undefined) {
|
|
95
|
+
if (typeof r.manifestItems !== "number" || !Number.isInteger(r.manifestItems)) {
|
|
96
|
+
throw new Error("session.create: settings.manifestItems must be an integer (-1 full | 0 off | N first-N)");
|
|
97
|
+
}
|
|
98
|
+
out.manifestItems = r.manifestItems;
|
|
99
|
+
}
|
|
100
|
+
// #232 — tighten-only ceilings: a client may narrow, never widen (composed
|
|
101
|
+
// most-restrictive-wins at each read-site). maxCommands min()s the env ceiling;
|
|
102
|
+
// git:false denies git for the session (env AND session).
|
|
103
|
+
if (r.maxCommands !== undefined) {
|
|
104
|
+
if (typeof r.maxCommands !== "number" || !Number.isInteger(r.maxCommands) || r.maxCommands < 1) {
|
|
105
|
+
throw new Error("session.create: settings.maxCommands must be a positive integer (a tighten-only ceiling)");
|
|
106
|
+
}
|
|
107
|
+
out.maxCommands = r.maxCommands;
|
|
108
|
+
}
|
|
109
|
+
if (r.git !== undefined) {
|
|
110
|
+
if (typeof r.git !== "boolean")
|
|
111
|
+
throw new Error("session.create: settings.git must be a boolean (false denies git for the session)");
|
|
112
|
+
out.git = r.git;
|
|
113
|
+
}
|
|
114
|
+
if (r.mdDocs !== undefined) {
|
|
115
|
+
if (!Array.isArray(r.mdDocs))
|
|
116
|
+
throw new Error("session.create: settings.mdDocs must be an array");
|
|
117
|
+
out.mdDocs = r.mdDocs.map((d, i) => {
|
|
118
|
+
const e = d;
|
|
119
|
+
if (typeof e.alias !== "string" || e.alias.length === 0 || /[^\w.-]/.test(e.alias)) {
|
|
120
|
+
throw new Error(`session.create: settings.mdDocs[${i}].alias must be a non-empty [\\w.-] string`);
|
|
121
|
+
}
|
|
122
|
+
if (typeof e.content !== "string")
|
|
123
|
+
throw new Error(`session.create: settings.mdDocs[${i}].content must be a string`);
|
|
124
|
+
return { alias: e.alias, content: e.content };
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
return JSON.stringify(out);
|
|
128
|
+
}
|
|
79
129
|
}
|
|
80
130
|
//# sourceMappingURL=session_create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_create.js","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,gFAAgF;AAChF,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"session_create.js","sourceRoot":"","sources":["../../../src/server/methods/session_create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session_prompts.d.ts","sourceRoot":"","sources":["../../../src/server/methods/session_prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAOvD,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;CAqBlD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import Envelope from "../envelope.js";
|
|
2
|
+
// #238 — session.prompts: a session's prior user prompts, newest-first, for a client's
|
|
3
|
+
// up/down readline history. The daemon is the source of truth (the client's in-memory
|
|
4
|
+
// history dies with its process); this hands it over directly instead of forcing the
|
|
5
|
+
// log-archaeology path (session.runs → log.read → filter prompt entries → dig tx.body).
|
|
6
|
+
export default class SessionPromptsMethod {
|
|
7
|
+
static register(registry) {
|
|
8
|
+
registry.registerMethod("session.prompts", {
|
|
9
|
+
handler: async (params, ctx) => {
|
|
10
|
+
const p = params;
|
|
11
|
+
const sessionId = p.id ?? ctx.session?.sessionId;
|
|
12
|
+
if (typeof sessionId !== "number") {
|
|
13
|
+
throw new Error("session.prompts requires params.id: number (or an attached session)");
|
|
14
|
+
}
|
|
15
|
+
const limit = p.limit ?? 100;
|
|
16
|
+
if (typeof limit !== "number" || !Number.isInteger(limit) || limit < 1) {
|
|
17
|
+
throw new Error("session.prompts: limit must be a positive integer");
|
|
18
|
+
}
|
|
19
|
+
return { prompts: await Envelope.listPromptsForSession(ctx.db, sessionId, limit) };
|
|
20
|
+
},
|
|
21
|
+
description: "List a session's prior user prompts, newest-first (for client up/down history); defaults to the attached session.",
|
|
22
|
+
params: {
|
|
23
|
+
id: "number? — session id; defaults to the attached session",
|
|
24
|
+
limit: "number? — max prompts returned, newest-first (default 100)",
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=session_prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session_prompts.js","sourceRoot":"","sources":["../../../src/server/methods/session_prompts.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,uFAAuF;AACvF,sFAAsF;AACtF,qFAAqF;AACrF,wFAAwF;AACxF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAwB;QACpC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE;YACvC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,GAAG,MAAyC,CAAC;gBACpD,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;gBACjD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;gBAC3F,CAAC;gBACD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;gBAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACrE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YACvF,CAAC;YACD,WAAW,EAAE,mHAAmH;YAChI,MAAM,EAAE;gBACJ,EAAE,EAAE,wDAAwD;gBAC5D,KAAK,EAAE,4DAA4D;aACtE;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type Versions = {
|
|
2
|
+
service: {
|
|
3
|
+
installed: string;
|
|
4
|
+
latest?: string;
|
|
5
|
+
};
|
|
6
|
+
client: {
|
|
7
|
+
latest?: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export default class VersionInfo {
|
|
11
|
+
#private;
|
|
12
|
+
static get(): Promise<Versions>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=version-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-info.d.ts","sourceRoot":"","sources":["../../src/server/version-info.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,QAAQ,GAAG;IAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAExG,MAAM,CAAC,OAAO,OAAO,WAAW;;WAQf,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;CAkDxC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// #235 — version advertising for the client's update notifier. The daemon is the
|
|
2
|
+
// long-lived, already-network-capable process, so it owns the registry poll: a one-shot
|
|
3
|
+
// CLI does zero registry IO and just renders what `discover` hands it. We self-report the
|
|
4
|
+
// installed version and poll npm for `latest` of the service + client packages — CACHED
|
|
5
|
+
// (TTL) and BEST-EFFORT (offline / registry-down omits `latest`; never blocks `discover`).
|
|
6
|
+
import { readFile } from "node:fs/promises";
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
import { dirname, resolve, join } from "node:path";
|
|
9
|
+
const PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
10
|
+
const SERVICE_PKG = "@plurnk/plurnk-service";
|
|
11
|
+
const CLIENT_PKG = "@plurnk/plurnk";
|
|
12
|
+
export default class VersionInfo {
|
|
13
|
+
static #installed;
|
|
14
|
+
static #cache = { service: undefined, client: undefined, at: 0 };
|
|
15
|
+
static #inflight = false;
|
|
16
|
+
// `discover` rides this. Returns immediately with whatever is cached; a stale/cold
|
|
17
|
+
// cache triggers a background refresh (never awaited), so the call never blocks on the
|
|
18
|
+
// network. `installed` is the daemon's honest self-report; `latest` is best-effort.
|
|
19
|
+
static async get() {
|
|
20
|
+
const installed = await VersionInfo.#installedVersion();
|
|
21
|
+
VersionInfo.#maybeRefresh();
|
|
22
|
+
const { service, client } = VersionInfo.#cache;
|
|
23
|
+
return {
|
|
24
|
+
service: service === undefined ? { installed } : { installed, latest: service },
|
|
25
|
+
client: client === undefined ? {} : { latest: client },
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
static async #installedVersion() {
|
|
29
|
+
if (VersionInfo.#installed === undefined) {
|
|
30
|
+
const raw = await readFile(join(PACKAGE_ROOT, "package.json"), "utf8");
|
|
31
|
+
VersionInfo.#installed = JSON.parse(raw).version;
|
|
32
|
+
}
|
|
33
|
+
return VersionInfo.#installed;
|
|
34
|
+
}
|
|
35
|
+
static #maybeRefresh() {
|
|
36
|
+
const ttl = VersionInfo.#envMs("PLURNK_VERSION_POLL_TTL", 0);
|
|
37
|
+
const timeout = VersionInfo.#envMs("PLURNK_FETCH_TIMEOUT", 1);
|
|
38
|
+
if (VersionInfo.#inflight || Date.now() - VersionInfo.#cache.at < ttl)
|
|
39
|
+
return;
|
|
40
|
+
VersionInfo.#inflight = true;
|
|
41
|
+
void VersionInfo.#refresh(timeout).finally(() => { VersionInfo.#inflight = false; });
|
|
42
|
+
}
|
|
43
|
+
// No code fallback hides a magic number — the law-file (.env.example) carries it.
|
|
44
|
+
static #envMs(name, min) {
|
|
45
|
+
const raw = process.env[name];
|
|
46
|
+
const n = raw === undefined ? Number.NaN : Number.parseInt(raw, 10);
|
|
47
|
+
if (!Number.isFinite(n) || n < min)
|
|
48
|
+
throw new Error(`${name} must be an integer >= ${min} (ms), got ${JSON.stringify(raw)}`);
|
|
49
|
+
return n;
|
|
50
|
+
}
|
|
51
|
+
static async #refresh(timeout) {
|
|
52
|
+
const [service, client] = await Promise.all([VersionInfo.#poll(SERVICE_PKG, timeout), VersionInfo.#poll(CLIENT_PKG, timeout)]);
|
|
53
|
+
// Keep the prior cached value on a failed poll (don't clobber a good `latest` with undefined).
|
|
54
|
+
VersionInfo.#cache = { service: service ?? VersionInfo.#cache.service, client: client ?? VersionInfo.#cache.client, at: Date.now() };
|
|
55
|
+
}
|
|
56
|
+
static async #poll(pkg, timeout) {
|
|
57
|
+
try {
|
|
58
|
+
const res = await fetch(`https://registry.npmjs.org/${pkg.replace("/", "%2F")}/latest`, { signal: AbortSignal.timeout(timeout) });
|
|
59
|
+
if (!res.ok)
|
|
60
|
+
return undefined;
|
|
61
|
+
const body = (await res.json());
|
|
62
|
+
return typeof body.version === "string" ? body.version : undefined;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return undefined; // best-effort: offline / registry-down / abort → omit `latest`
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=version-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-info.js","sourceRoot":"","sources":["../../src/server/version-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yolo.d.ts","sourceRoot":"","sources":["../../src/server/yolo.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"yolo.d.ts","sourceRoot":"","sources":["../../src/server/yolo.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI;CAoBnD"}
|
package/dist/server/yolo.js
CHANGED
|
@@ -39,6 +39,14 @@ export default class Yolo {
|
|
|
39
39
|
if (!event.flags.yolo)
|
|
40
40
|
return;
|
|
41
41
|
try {
|
|
42
|
+
if (event.staleClobberRisk) {
|
|
43
|
+
// #note10 — the target diverged on disk this turn; the model's EDIT is
|
|
44
|
+
// based on a stale read. Reject rather than silently clobber the ambient
|
|
45
|
+
// change. The model sees an ordinary reject (outcome is forensics-only)
|
|
46
|
+
// and can re-READ the entry + retry against the current content.
|
|
47
|
+
engine.resolveProposal(event.logEntryId, { decision: "reject", outcome: "stale_read_clobber" });
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
42
50
|
engine.resolveProposal(event.logEntryId, { decision: "accept" });
|
|
43
51
|
}
|
|
44
52
|
catch {
|
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,6EAA6E;AAC7E,EAAE;AACF,wEAAwE;AACxE,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,IAAI,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"}
|
|
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,6EAA6E;AAC7E,EAAE;AACF,wEAAwE;AACxE,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,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"}
|
|
@@ -9,7 +9,10 @@ CREATE TABLE IF NOT EXISTS sessions (
|
|
|
9
9
|
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
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
|
-
project_root TEXT
|
|
12
|
+
project_root TEXT,
|
|
13
|
+
-- #231 client-chosen session-open context: { manifestItems?, mdDocs? }, read at turn-0
|
|
14
|
+
-- with precedence over env (manifestItems replaces PLURNK_MANIFEST_ITEMS; mdDocs unions PLURNK_MD_*).
|
|
15
|
+
settings TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(settings))
|
|
13
16
|
) STRICT;
|
|
14
17
|
|
|
15
18
|
CREATE INDEX IF NOT EXISTS sessions_created_at ON sessions (created_at);
|
|
@@ -46,11 +49,28 @@ CREATE TABLE IF NOT EXISTS loops (
|
|
|
46
49
|
status INTEGER NOT NULL DEFAULT 102 CHECK (status IN (100, 102, 200, 499)),
|
|
47
50
|
prompt TEXT NOT NULL,
|
|
48
51
|
flags TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(flags)),
|
|
52
|
+
-- §run-scheme loop-termination delta: terminated_at is stamped by the trigger
|
|
53
|
+
-- below when status crosses into terminal (every death-path, uniformly);
|
|
54
|
+
-- terminal_message is the deliverable — the SEND[200] body or the abandonment
|
|
55
|
+
-- reason — set by the terminating PREP (engine_loop_set_status / _cancel).
|
|
56
|
+
terminated_at TEXT,
|
|
57
|
+
terminal_message TEXT,
|
|
49
58
|
FOREIGN KEY (run_id) REFERENCES runs(id) ON DELETE CASCADE
|
|
50
59
|
) STRICT;
|
|
51
60
|
|
|
52
61
|
CREATE UNIQUE INDEX IF NOT EXISTS loops_run_id_sequence ON loops (run_id, sequence);
|
|
53
62
|
|
|
63
|
+
-- §run-scheme: a loop crossing into a terminal status (200/499) stamps terminated_at,
|
|
64
|
+
-- so sibling runs pull the termination as a folded ambient delta — the time is caught
|
|
65
|
+
-- uniformly across every death-path (SEND, grinder, KILL). The stamp updates
|
|
66
|
+
-- terminated_at, never status, so it cannot re-fire this trigger.
|
|
67
|
+
CREATE TRIGGER IF NOT EXISTS loops_stamp_terminated_at
|
|
68
|
+
AFTER UPDATE OF status ON loops
|
|
69
|
+
WHEN NEW.status IN (200, 499) AND OLD.status NOT IN (200, 499)
|
|
70
|
+
BEGIN
|
|
71
|
+
UPDATE loops SET terminated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE id = NEW.id;
|
|
72
|
+
END;
|
|
73
|
+
|
|
54
74
|
-- INIT: turns
|
|
55
75
|
-- finish_reason / model: provider-call metadata (plurnk-grammar Turn.json).
|
|
56
76
|
-- Properties of the call, not of the model's emission payload — kept on
|
|
@@ -93,9 +113,10 @@ CREATE TABLE IF NOT EXISTS entries (
|
|
|
93
113
|
params TEXT CHECK (params IS NULL OR json_valid(params)),
|
|
94
114
|
attributes TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(attributes)),
|
|
95
115
|
-- SPEC §membership — how a file member entered the curated surface. 'git' rows are
|
|
96
|
-
-- reconciled against
|
|
97
|
-
--
|
|
98
|
-
--
|
|
116
|
+
-- reconciled against the repo's members each turn — tracked ls-files PLUS untracked-
|
|
117
|
+
-- but-not-ignored files (§membership-auto-add) — registered + un-registered so entries
|
|
118
|
+
-- == members; 'client'/'constraint' (model-created, add-glob) are not git's to reclaim.
|
|
119
|
+
-- NULL = not a file member (other schemes don't carry origin).
|
|
99
120
|
membership_origin TEXT CHECK (membership_origin IS NULL OR membership_origin IN ('git', 'client', 'constraint')),
|
|
100
121
|
-- @graph / ~semantic change-gate (#186): hash of the body content at the last
|
|
101
122
|
-- deep-channel derivation. The manifest-add pass re-derives symbols/refs (and
|
|
@@ -225,7 +246,7 @@ CREATE TABLE IF NOT EXISTS entry_embeddings (
|
|
|
225
246
|
-- status⊥state: status is the HTTP outcome, state is where in the
|
|
226
247
|
-- lifecycle the entry sits. Most rows write 'resolved' directly;
|
|
227
248
|
-- proposing schemes transition 'proposed' → resolved/failed/cancelled.
|
|
228
|
-
--
|
|
249
|
+
-- expanded: per-row visibility for OPEN/FOLD via the log:/// scheme.
|
|
229
250
|
CREATE TABLE IF NOT EXISTS log_entries (
|
|
230
251
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
231
252
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
@@ -269,7 +290,7 @@ CREATE TABLE IF NOT EXISTS log_entries (
|
|
|
269
290
|
outcome TEXT,
|
|
270
291
|
attrs TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(attrs)),
|
|
271
292
|
|
|
272
|
-
|
|
293
|
+
expanded INTEGER NOT NULL DEFAULT 1 CHECK (expanded IN (0, 1)),
|
|
273
294
|
|
|
274
295
|
FOREIGN KEY (run_id) REFERENCES runs(id) ON DELETE CASCADE,
|
|
275
296
|
FOREIGN KEY (loop_id) REFERENCES loops(id) ON DELETE CASCADE,
|
|
@@ -283,7 +304,7 @@ CREATE INDEX IF NOT EXISTS log_entries_at ON log_entries (a
|
|
|
283
304
|
|
|
284
305
|
-- Column-scoped immutability: the original action's identity and target
|
|
285
306
|
-- never change; the proposal lifecycle is allowed to mutate state,
|
|
286
|
-
-- outcome, status_rx, rx,
|
|
307
|
+
-- outcome, status_rx, rx, expanded.
|
|
287
308
|
CREATE TRIGGER IF NOT EXISTS log_entries_immutable_core
|
|
288
309
|
BEFORE UPDATE OF
|
|
289
310
|
run_id, loop_id, turn_id, sequence, at, origin, source,
|
|
@@ -293,7 +314,7 @@ BEFORE UPDATE OF
|
|
|
293
314
|
lineMarker, tx, mimetype_tx, mimetype_rx, attrs
|
|
294
315
|
ON log_entries
|
|
295
316
|
BEGIN
|
|
296
|
-
SELECT RAISE(ABORT, 'log_entries core fields are immutable; only state/outcome/status_rx/rx/
|
|
317
|
+
SELECT RAISE(ABORT, 'log_entries core fields are immutable; only state/outcome/status_rx/rx/expanded may change');
|
|
297
318
|
END;
|
|
298
319
|
|
|
299
320
|
-- INIT: schemes_providers
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-service",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.0",
|
|
4
4
|
"description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-grammar contract.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -46,12 +46,12 @@
|
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@plurnk/plurnk-execs": "0.4.8",
|
|
48
48
|
"@plurnk/plurnk-execs-all": "0.1.5",
|
|
49
|
-
"@plurnk/plurnk-grammar": "0.
|
|
50
|
-
"@plurnk/plurnk-mimetypes": "0.15.
|
|
49
|
+
"@plurnk/plurnk-grammar": "0.56.0",
|
|
50
|
+
"@plurnk/plurnk-mimetypes": "0.15.19",
|
|
51
51
|
"@plurnk/plurnk-mimetypes-embeddings": "0.2.0",
|
|
52
|
-
"@plurnk/plurnk-providers": "0.
|
|
53
|
-
"@plurnk/plurnk-providers-all": "0.
|
|
54
|
-
"@plurnk/plurnk-schemes": "0.
|
|
52
|
+
"@plurnk/plurnk-providers": "0.8.0",
|
|
53
|
+
"@plurnk/plurnk-providers-all": "0.8.0",
|
|
54
|
+
"@plurnk/plurnk-schemes": "0.15.0",
|
|
55
55
|
"@plurnk/plurnk-schemes-http": "0.3.0",
|
|
56
56
|
"@possumtech/sqlrite": "5.1.1",
|
|
57
57
|
"diff": "^9.0.0",
|
|
@@ -59,24 +59,24 @@
|
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@plurnk/plurnk-mimetypes-application-pdf": "0.6.2",
|
|
62
|
-
"@plurnk/plurnk-mimetypes-text-clojure": "0.
|
|
63
|
-
"@plurnk/plurnk-mimetypes-text-cmake": "0.
|
|
64
|
-
"@plurnk/plurnk-mimetypes-text-common-lisp": "0.
|
|
65
|
-
"@plurnk/plurnk-mimetypes-text-csharp": "0.
|
|
66
|
-
"@plurnk/plurnk-mimetypes-text-datalog": "0.
|
|
67
|
-
"@plurnk/plurnk-mimetypes-text-erlang": "0.
|
|
68
|
-
"@plurnk/plurnk-mimetypes-text-graphql": "0.
|
|
69
|
-
"@plurnk/plurnk-mimetypes-text-mariadb": "0.
|
|
70
|
-
"@plurnk/plurnk-mimetypes-text-plsql": "0.
|
|
71
|
-
"@plurnk/plurnk-mimetypes-text-postgresql": "0.
|
|
72
|
-
"@plurnk/plurnk-mimetypes-text-prolog": "0.
|
|
73
|
-
"@plurnk/plurnk-mimetypes-text-protobuf": "0.
|
|
62
|
+
"@plurnk/plurnk-mimetypes-text-clojure": "0.3.0",
|
|
63
|
+
"@plurnk/plurnk-mimetypes-text-cmake": "0.3.0",
|
|
64
|
+
"@plurnk/plurnk-mimetypes-text-common-lisp": "0.3.0",
|
|
65
|
+
"@plurnk/plurnk-mimetypes-text-csharp": "0.3.0",
|
|
66
|
+
"@plurnk/plurnk-mimetypes-text-datalog": "0.4.0",
|
|
67
|
+
"@plurnk/plurnk-mimetypes-text-erlang": "0.3.0",
|
|
68
|
+
"@plurnk/plurnk-mimetypes-text-graphql": "0.3.0",
|
|
69
|
+
"@plurnk/plurnk-mimetypes-text-mariadb": "0.4.0",
|
|
70
|
+
"@plurnk/plurnk-mimetypes-text-plsql": "0.3.0",
|
|
71
|
+
"@plurnk/plurnk-mimetypes-text-postgresql": "0.4.0",
|
|
72
|
+
"@plurnk/plurnk-mimetypes-text-prolog": "0.3.0",
|
|
73
|
+
"@plurnk/plurnk-mimetypes-text-protobuf": "0.4.0",
|
|
74
74
|
"@plurnk/plurnk-mimetypes-text-redis": "0.3.2",
|
|
75
|
-
"@plurnk/plurnk-mimetypes-text-sparql": "0.
|
|
76
|
-
"@plurnk/plurnk-mimetypes-text-sqlite": "0.
|
|
77
|
-
"@plurnk/plurnk-mimetypes-text-swift": "0.
|
|
75
|
+
"@plurnk/plurnk-mimetypes-text-sparql": "0.3.0",
|
|
76
|
+
"@plurnk/plurnk-mimetypes-text-sqlite": "0.4.0",
|
|
77
|
+
"@plurnk/plurnk-mimetypes-text-swift": "0.2.0",
|
|
78
78
|
"@plurnk/plurnk-mimetypes-text-terraform": "1.0.4",
|
|
79
|
-
"@plurnk/plurnk-mimetypes-text-tsql": "0.
|
|
79
|
+
"@plurnk/plurnk-mimetypes-text-tsql": "0.3.0",
|
|
80
80
|
"@tree-sitter-grammars/tree-sitter-kotlin": "^1.1.0",
|
|
81
81
|
"@tree-sitter-grammars/tree-sitter-lua": "^0.4.1",
|
|
82
82
|
"@tree-sitter-grammars/tree-sitter-toml": "^0.7.0",
|