@plurnk/plurnk-service 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/SPEC.md +35 -26
  2. package/dist/core/ChannelWrite.d.ts +10 -0
  3. package/dist/core/ChannelWrite.d.ts.map +1 -1
  4. package/dist/core/ChannelWrite.js.map +1 -1
  5. package/dist/core/Engine.d.ts +9 -1
  6. package/dist/core/Engine.d.ts.map +1 -1
  7. package/dist/core/Engine.js +260 -53
  8. package/dist/core/Engine.js.map +1 -1
  9. package/dist/core/line-marker.d.ts +23 -0
  10. package/dist/core/line-marker.d.ts.map +1 -0
  11. package/dist/core/line-marker.js +321 -0
  12. package/dist/core/line-marker.js.map +1 -0
  13. package/dist/core/matcher.d.ts +14 -0
  14. package/dist/core/matcher.d.ts.map +1 -0
  15. package/dist/core/matcher.js +195 -0
  16. package/dist/core/matcher.js.map +1 -0
  17. package/dist/core/mimetype-binary.d.ts +6 -0
  18. package/dist/core/mimetype-binary.d.ts.map +1 -0
  19. package/dist/core/mimetype-binary.js +82 -0
  20. package/dist/core/mimetype-binary.js.map +1 -0
  21. package/dist/core/packet-wire.d.ts.map +1 -1
  22. package/dist/core/packet-wire.js +97 -21
  23. package/dist/core/packet-wire.js.map +1 -1
  24. package/dist/core/path-mimetype.d.ts +3 -0
  25. package/dist/core/path-mimetype.d.ts.map +1 -0
  26. package/dist/core/path-mimetype.js +47 -0
  27. package/dist/core/path-mimetype.js.map +1 -0
  28. package/dist/core/scheme-types.d.ts +5 -0
  29. package/dist/core/scheme-types.d.ts.map +1 -1
  30. package/dist/core/scheme-types.js.map +1 -1
  31. package/dist/schemes/Exec.d.ts +30 -1
  32. package/dist/schemes/Exec.d.ts.map +1 -1
  33. package/dist/schemes/Exec.js +229 -6
  34. package/dist/schemes/Exec.js.map +1 -1
  35. package/dist/schemes/File.d.ts +4 -0
  36. package/dist/schemes/File.d.ts.map +1 -1
  37. package/dist/schemes/File.js +107 -23
  38. package/dist/schemes/File.js.map +1 -1
  39. package/dist/schemes/Log.d.ts +2 -0
  40. package/dist/schemes/Log.d.ts.map +1 -1
  41. package/dist/schemes/Log.js +82 -13
  42. package/dist/schemes/Log.js.map +1 -1
  43. package/dist/schemes/Plurnk.js +3 -3
  44. package/dist/schemes/Plurnk.js.map +1 -1
  45. package/dist/schemes/_entry-crud.d.ts +2 -0
  46. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  47. package/dist/schemes/_entry-crud.js +1 -0
  48. package/dist/schemes/_entry-crud.js.map +1 -1
  49. package/dist/schemes/_entry-find.d.ts.map +1 -1
  50. package/dist/schemes/_entry-find.js +64 -15
  51. package/dist/schemes/_entry-find.js.map +1 -1
  52. package/dist/schemes/_entry-ops.d.ts +3 -0
  53. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  54. package/dist/schemes/_entry-ops.js +268 -55
  55. package/dist/schemes/_entry-ops.js.map +1 -1
  56. package/dist/schemes/_entry-send.d.ts.map +1 -1
  57. package/dist/schemes/_entry-send.js +14 -7
  58. package/dist/schemes/_entry-send.js.map +1 -1
  59. package/dist/server/ClientConnection.d.ts +3 -2
  60. package/dist/server/ClientConnection.d.ts.map +1 -1
  61. package/dist/server/ClientConnection.js +4 -1
  62. package/dist/server/ClientConnection.js.map +1 -1
  63. package/dist/server/Daemon.d.ts +40 -1
  64. package/dist/server/Daemon.d.ts.map +1 -1
  65. package/dist/server/Daemon.js +319 -1
  66. package/dist/server/Daemon.js.map +1 -1
  67. package/dist/server/MethodRegistry.d.ts +29 -0
  68. package/dist/server/MethodRegistry.d.ts.map +1 -1
  69. package/dist/server/MethodRegistry.js.map +1 -1
  70. package/dist/server/dsl.d.ts +2 -2
  71. package/dist/server/dsl.d.ts.map +1 -1
  72. package/dist/server/dsl.js +10 -10
  73. package/dist/server/dsl.js.map +1 -1
  74. package/dist/server/methods/entry_read.js +5 -5
  75. package/dist/server/methods/entry_read.js.map +1 -1
  76. package/dist/server/methods/loop_cancel.d.ts +3 -0
  77. package/dist/server/methods/loop_cancel.d.ts.map +1 -0
  78. package/dist/server/methods/loop_cancel.js +27 -0
  79. package/dist/server/methods/loop_cancel.js.map +1 -0
  80. package/dist/server/methods/loop_run.d.ts.map +1 -1
  81. package/dist/server/methods/loop_run.js +46 -47
  82. package/dist/server/methods/loop_run.js.map +1 -1
  83. package/dist/server/methods/op_edit.js +3 -3
  84. package/dist/server/methods/op_edit.js.map +1 -1
  85. package/dist/server/methods/op_hide.js +3 -3
  86. package/dist/server/methods/op_hide.js.map +1 -1
  87. package/dist/server/methods/op_read.js +3 -3
  88. package/dist/server/methods/op_read.js.map +1 -1
  89. package/dist/server/methods/op_show.js +3 -3
  90. package/dist/server/methods/op_show.js.map +1 -1
  91. package/migrations/001_schema.sql +1 -1
  92. package/package.json +5 -4
@@ -1,5 +1,34 @@
1
- import type { SchemeManifest } from "../core/scheme-types.ts";
1
+ import type { ExecStatement, FindStatement, HideStatement, ReadStatement, ShowStatement } from "@plurnk/plurnk-grammar";
2
+ import type { SchemeManifest, PlurnkSchemeContext } from "../core/scheme-types.ts";
3
+ import type { ReadResult, ShowHideResult } from "./_entry-ops.ts";
4
+ import type { EntryData, ReadEntryResult, WriteEntryResult, DeleteEntryResult } from "./_entry-crud.ts";
5
+ import type { FindResult } from "./_entry-find.ts";
6
+ type ExecResult = {
7
+ status: number;
8
+ body?: string;
9
+ attrs?: object;
10
+ error?: string;
11
+ };
2
12
  export default class Exec {
13
+ #private;
3
14
  static manifest: SchemeManifest;
15
+ idle(): Promise<void>;
16
+ exec(statement: ExecStatement, ctx: PlurnkSchemeContext): Promise<ExecResult>;
17
+ applyResolution(args: {
18
+ attrs: object;
19
+ body?: string;
20
+ }, ctx: PlurnkSchemeContext): Promise<{
21
+ status: number;
22
+ outcome?: string;
23
+ body?: string;
24
+ }>;
25
+ read(statement: ReadStatement, ctx: PlurnkSchemeContext): Promise<ReadResult>;
26
+ show(statement: ShowStatement | HideStatement, ctx: PlurnkSchemeContext): Promise<ShowHideResult>;
27
+ hide(statement: ShowStatement | HideStatement, ctx: PlurnkSchemeContext): Promise<ShowHideResult>;
28
+ find(statement: FindStatement, ctx: PlurnkSchemeContext): Promise<FindResult>;
29
+ readEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<ReadEntryResult>;
30
+ writeEntry(pathname: string, entry: EntryData, ctx: PlurnkSchemeContext): Promise<WriteEntryResult>;
31
+ deleteEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<DeleteEntryResult>;
4
32
  }
33
+ export {};
5
34
  //# sourceMappingURL=Exec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9D,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAa7B;CACL"}
1
+ {"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAExH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAsFpF,MAAM,CAAC,OAAO,OAAO,IAAI;;IACrB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAa7B;IAKI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrB,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAqC7E,eAAe,CACjB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EACtC,GAAG,EAAE,mBAAmB,GACzB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkGzD,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAI7E,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjG,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAI7E,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI/E,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAG5F"}
@@ -1,10 +1,77 @@
1
- // PROVISIONAL: subprocess execution scheme. Streams stdout/stderr as channels
2
- // on the entry. Dynamic mimetype per call (text/plain in the simple case;
3
- // future per-command detection).
1
+ import { spawn } from "node:child_process";
2
+ import { readSessionEntry, showSessionEntry, hideSessionEntry } from "./_entry-ops.js";
3
+ import { readEntry, writeEntry, deleteEntry } from "./_entry-crud.js";
4
+ import { findSessionEntries } from "./_entry-find.js";
5
+ import { appendToChannel, setChannelState, openSubscription, closeSubscription, } from "../core/ChannelWrite.js";
6
+ // Per plurnk.md, EXEC's target slot is `cwd`. ParsedPath there means a
7
+ // bare local path or file:// URL — both decode to a filesystem directory.
8
+ // Anything else is rejected at proposal time.
9
+ const cwdFromTarget = (target) => {
10
+ if (target === null)
11
+ return null;
12
+ if (target.kind === "local")
13
+ return target.raw;
14
+ if (target.kind === "url" && (target.scheme === null || target.scheme === "file")) {
15
+ return target.pathname;
16
+ }
17
+ return null;
18
+ };
19
+ const runtimeToSpawnArgs = (runtime, command) => {
20
+ // plurnk.md: "EXEC may include an optional runtime tag ("sh", "node", etc.)."
21
+ // Map common runtimes to their invocation. Default = shell.
22
+ if (runtime === "" || runtime === "sh" || runtime === "bash") {
23
+ return { cmd: command, args: [], useShell: true };
24
+ }
25
+ if (runtime === "node")
26
+ return { cmd: "node", args: ["-e", command], useShell: false };
27
+ if (runtime === "python" || runtime === "python3")
28
+ return { cmd: "python3", args: ["-c", command], useShell: false };
29
+ // Unknown runtime: fall through to shell with the runtime as the first arg
30
+ // (treat as `<runtime> -c <command>` style). Conservative.
31
+ return { cmd: runtime, args: ["-c", command], useShell: false };
32
+ };
33
+ const streamShellCommand = async (runtime, command, cwd, db, streamEventNotify, entryId, signal) => {
34
+ const { cmd, args, useShell } = runtimeToSpawnArgs(runtime, command);
35
+ return new Promise((resolvePromise, rejectPromise) => {
36
+ const child = spawn(cmd, args, {
37
+ shell: useShell,
38
+ signal,
39
+ cwd: cwd ?? undefined,
40
+ });
41
+ const pending = [];
42
+ child.stdout.on("data", (chunk) => {
43
+ pending.push(appendToChannel(db, {
44
+ entryId, channel: "stdout", chunk: chunk.toString("utf8"), notify: streamEventNotify,
45
+ }));
46
+ });
47
+ child.stderr.on("data", (chunk) => {
48
+ pending.push(appendToChannel(db, {
49
+ entryId, channel: "stderr", chunk: chunk.toString("utf8"), notify: streamEventNotify,
50
+ }));
51
+ });
52
+ child.on("error", (err) => {
53
+ if (err.code === "ABORT_ERR") {
54
+ Promise.all(pending).then(() => {
55
+ resolvePromise({ exitCode: -1, aborted: true });
56
+ }).catch(rejectPromise);
57
+ return;
58
+ }
59
+ rejectPromise(err);
60
+ });
61
+ child.on("close", (code, killedBySignal) => {
62
+ Promise.all(pending).then(() => {
63
+ resolvePromise({
64
+ exitCode: code ?? -1,
65
+ aborted: killedBySignal !== null,
66
+ });
67
+ }).catch(rejectPromise);
68
+ });
69
+ });
70
+ };
4
71
  export default class Exec {
5
72
  static manifest = {
6
73
  name: "exec",
7
- channels: {},
74
+ channels: { stdout: "text/plain", stderr: "text/plain" },
8
75
  defaultChannel: "stdout",
9
76
  category: "data",
10
77
  scope: "session",
@@ -12,9 +79,165 @@ export default class Exec {
12
79
  volatile: true,
13
80
  modelVisible: true,
14
81
  flags: {
15
- excludedInAsk: true, // exec is side-effecting; ask mode is read-only
16
- proposes: true, // exec runs via proposal lifecycle unless yolo
82
+ excludedInAsk: true,
83
+ proposes: true,
17
84
  },
18
85
  };
86
+ #activeAborts = new Map();
87
+ #activeSpawns = new Map();
88
+ async idle() {
89
+ await Promise.allSettled([...this.#activeSpawns.values()]);
90
+ }
91
+ // EXEC op handler — the actual model-facing entry point per plurnk.md.
92
+ // `<<EXEC[runtime](cwd):command:EXEC` →
93
+ // signal=runtime, target=cwd (ParsedPath local/file or null), body=command.
94
+ //
95
+ // Proposes (status=202) with attrs={runtime, cwd, command, pathname}.
96
+ // applyResolution spawns the subprocess; output streams into the
97
+ // auto-generated exec://<pathname> entry's stdout/stderr channels.
98
+ // The model READs that entry on a subsequent turn to see what happened.
99
+ async exec(statement, ctx) {
100
+ const command = statement.body ?? "";
101
+ if (command.length === 0) {
102
+ return { status: 400, error: "EXEC requires a command body" };
103
+ }
104
+ if (statement.target !== null) {
105
+ if (statement.target.kind === "url" && statement.target.scheme !== null && statement.target.scheme !== "file") {
106
+ return { status: 400, error: `EXEC cwd must be a local path or file:// URL; got ${statement.target.scheme}://` };
107
+ }
108
+ }
109
+ const runtime = typeof statement.signal === "string" ? statement.signal : "";
110
+ const KNOWN_RUNTIMES = new Set(["", "sh", "bash", "node", "python", "python3"]);
111
+ if (!KNOWN_RUNTIMES.has(runtime)) {
112
+ return { status: 501, error: `\`${runtime}\` executable not configured.` };
113
+ }
114
+ const cwdFromOp = cwdFromTarget(statement.target);
115
+ // Default cwd to the session's project_root so EXEC runs in the
116
+ // same directory File scheme writes to. Without this default, the
117
+ // model creates a file via EDIT (lands in project_root) and then
118
+ // EXECs (runs in daemon cwd) and can't find what it just wrote.
119
+ // Explicit (cwd) in the EXEC statement still wins.
120
+ let cwd = cwdFromOp;
121
+ if (cwd === null) {
122
+ const sessionRow = await ctx.db.envelope_get_session.get({ id: ctx.sessionId });
123
+ cwd = sessionRow?.project_root ?? null;
124
+ }
125
+ // Auto-generated pathname so the model can READ exec://<pathname> later.
126
+ // Short random suffix keeps it readable while remaining unique within a session.
127
+ const pathname = `r-${crypto.randomUUID().slice(0, 8)}`;
128
+ const attrs = { runtime, cwd, command, pathname };
129
+ // Body shown to client during proposal review — `$ command` is the
130
+ // most-readable summary regardless of runtime.
131
+ const preview = runtime !== "" ? `[${runtime}] ${command}` : `$ ${command}`;
132
+ return { status: 202, body: preview, attrs };
133
+ }
134
+ async applyResolution(args, ctx) {
135
+ const attrs = args.attrs;
136
+ const command = attrs.command;
137
+ const pathname = attrs.pathname;
138
+ const runtime = typeof attrs.runtime === "string" ? attrs.runtime : "";
139
+ const cwd = (typeof attrs.cwd === "string" && attrs.cwd.length > 0) ? attrs.cwd : null;
140
+ if (typeof command !== "string" || command.length === 0) {
141
+ return { status: 500, outcome: "missing_command" };
142
+ }
143
+ if (typeof pathname !== "string" || pathname.length === 0) {
144
+ return { status: 500, outcome: "missing_pathname" };
145
+ }
146
+ const seed = {
147
+ channels: {
148
+ stdout: { content: "", mimetype: "text/plain", state: "active" },
149
+ stderr: { content: "", mimetype: "text/plain", state: "active" },
150
+ },
151
+ tags: [],
152
+ };
153
+ const { entryId } = await writeEntry(pathname, seed, ctx, "exec");
154
+ if (entryId === null)
155
+ return { status: 500, outcome: "entry_write_failed" };
156
+ const subscriptionId = await openSubscription(ctx.db, {
157
+ runId: ctx.runId, entryId, scheme: "exec",
158
+ handle: runtime !== "" ? `${runtime}: ${command}` : command,
159
+ });
160
+ const controller = new AbortController();
161
+ if (ctx.signal !== undefined) {
162
+ if (ctx.signal.aborted)
163
+ controller.abort(ctx.signal.reason);
164
+ else
165
+ ctx.signal.addEventListener("abort", () => controller.abort(ctx.signal.reason), { once: true });
166
+ }
167
+ this.#activeAborts.set(subscriptionId, controller);
168
+ const tail = this.#runSpawn({
169
+ runtime, command, cwd, db: ctx.db,
170
+ streamEventNotify: ctx.streamEventNotify,
171
+ wakeRunNotify: ctx.wakeRunNotify,
172
+ sessionId: ctx.sessionId, runId: ctx.runId, pathname,
173
+ entryId, subscriptionId, signal: controller.signal,
174
+ });
175
+ this.#activeSpawns.set(subscriptionId, tail);
176
+ return { status: 200, outcome: "started" };
177
+ }
178
+ async #runSpawn(opts) {
179
+ const { runtime, command, cwd, db, streamEventNotify, wakeRunNotify, sessionId, runId, pathname, entryId, subscriptionId, signal } = opts;
180
+ let closeStatus = 500;
181
+ let exitLabel = "spawn_failed";
182
+ let stdoutLength = 0;
183
+ let stderrLength = 0;
184
+ try {
185
+ let outcome;
186
+ try {
187
+ outcome = await streamShellCommand(runtime, command, cwd, db, streamEventNotify, entryId, signal);
188
+ }
189
+ catch (err) {
190
+ await setChannelState(db, { entryId, channel: "stdout", state: "errored", notify: streamEventNotify });
191
+ await setChannelState(db, { entryId, channel: "stderr", state: "errored", notify: streamEventNotify });
192
+ await closeSubscription(db, { subscriptionId, status: 500 });
193
+ console.error("exec spawn_failed:", err instanceof Error ? err.message : String(err));
194
+ closeStatus = 500;
195
+ exitLabel = "spawn_failed";
196
+ return;
197
+ }
198
+ closeStatus = outcome.aborted ? 499 : outcome.exitCode === 0 ? 200 : 500;
199
+ exitLabel = outcome.aborted ? "aborted" : `exit ${outcome.exitCode}`;
200
+ const terminalState = outcome.exitCode === 0 && !outcome.aborted ? "closed" : "errored";
201
+ await setChannelState(db, { entryId, channel: "stdout", state: terminalState, notify: streamEventNotify });
202
+ await setChannelState(db, { entryId, channel: "stderr", state: terminalState, notify: streamEventNotify });
203
+ await closeSubscription(db, { subscriptionId, status: closeStatus });
204
+ const stdoutMeta = await db.channel_meta.get({ entry_id: entryId, channel: "stdout" });
205
+ const stderrMeta = await db.channel_meta.get({ entry_id: entryId, channel: "stderr" });
206
+ stdoutLength = stdoutMeta?.contentLength ?? 0;
207
+ stderrLength = stderrMeta?.contentLength ?? 0;
208
+ }
209
+ finally {
210
+ this.#activeAborts.delete(subscriptionId);
211
+ this.#activeSpawns.delete(subscriptionId);
212
+ if (wakeRunNotify !== undefined) {
213
+ wakeRunNotify({
214
+ sessionId, runId, entryId, subscriptionId, closeStatus,
215
+ scheme: "exec",
216
+ summary: `exec://${pathname} completed (${exitLabel}); stdout=${stdoutLength} bytes, stderr=${stderrLength} bytes`,
217
+ });
218
+ }
219
+ }
220
+ }
221
+ async read(statement, ctx) {
222
+ return readSessionEntry(statement, ctx, Exec.manifest);
223
+ }
224
+ async show(statement, ctx) {
225
+ return showSessionEntry(statement, ctx, Exec.manifest);
226
+ }
227
+ async hide(statement, ctx) {
228
+ return hideSessionEntry(statement, ctx, Exec.manifest);
229
+ }
230
+ async find(statement, ctx) {
231
+ return findSessionEntries(statement, ctx, Exec.manifest.name);
232
+ }
233
+ async readEntry(pathname, ctx) {
234
+ return readEntry(pathname, ctx, Exec.manifest.name);
235
+ }
236
+ async writeEntry(pathname, entry, ctx) {
237
+ return writeEntry(pathname, entry, ctx, Exec.manifest.name);
238
+ }
239
+ async deleteEntry(pathname, ctx) {
240
+ return deleteEntry(pathname, ctx, Exec.manifest.name);
241
+ }
19
242
  }
20
243
  //# sourceMappingURL=Exec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Exec.js","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,0EAA0E;AAC1E,iCAAiC;AAEjC,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,QAAQ,GAAmB;QAC9B,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/B,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,KAAK,EAAE;YACH,aAAa,EAAE,IAAI,EAAI,gDAAgD;YACvE,QAAQ,EAAE,IAAI,EAAU,+CAA+C;SAC1E;KACJ,CAAC"}
1
+ {"version":3,"file":"Exec.js","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,16 @@ type ReadResult = {
4
4
  status: number;
5
5
  content: string | null;
6
6
  mimetype: string | null;
7
+ error?: string;
8
+ startLine?: number | null;
9
+ matches?: number | null;
7
10
  };
8
11
  type EditResult = {
9
12
  status: number;
10
13
  body?: string;
11
14
  attrs?: object;
12
15
  error?: string;
16
+ diff?: string;
13
17
  };
14
18
  type ApplyArgs = {
15
19
  attrs: {
@@ -1 +1 @@
1
- {"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../../src/schemes/File.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnF,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AACtF,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACpF,KAAK,SAAS,GAAG;IAAE,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACzH,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAmCvE,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAY7B;IAEI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAuB7E,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsD7E,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;CAkDzF"}
1
+ {"version":3,"file":"File.d.ts","sourceRoot":"","sources":["../../src/schemes/File.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMnF,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAM1J,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACnG,KAAK,SAAS,GAAG;IAAE,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACzH,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAgDvE,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAY7B;IAEI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAoE7E,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IA8E7E,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;CAkDzF"}
@@ -2,6 +2,9 @@ import { readFile, realpath, writeFile } from "node:fs/promises";
2
2
  import { resolve, relative, isAbsolute } from "node:path";
3
3
  import { createPatch } from "diff";
4
4
  import { writeEntry } from "./_entry-crud.js";
5
+ import { isBinaryMimetype, isJsonMimetype, normalizeAutoTextMimetype, TEXT_PRIMITIVE_MIMETYPE } from "../core/mimetype-binary.js";
6
+ import { sliceLines, sliceJsonItems, applyLineMarkerEdit, applyJsonItemEdit } from "../core/line-marker.js";
7
+ import { matchAgainstContent } from "../core/matcher.js";
5
8
  // Workspace root for file ops is sourced from `sessions.project_root`,
6
9
  // supplied by the client at session.create or session.set_root (issue
7
10
  // #150 wired the RPC; F.1 added the column). Server doesn't guess —
@@ -14,6 +17,18 @@ const loadSessionRoot = async (db, sessionId) => {
14
17
  };
15
18
  // Resolve + workspace-root containment check. Returns the canonical
16
19
  // path on success; classified error on absence/traversal. Used by read.
20
+ // Detect mimetype from a file's path. Routes through the Mimetypes service
21
+ // when available; falls back to the text primitive (text/markdown). The
22
+ // `normalizeAutoTextMimetype` wrapper ensures text/plain returned by the
23
+ // service is normalized to text/markdown — plurnk-service never auto-
24
+ // derives text/plain (see mimetype-binary.ts TEXT_PRIMITIVE_MIMETYPE).
25
+ const detectFileMimetype = async (canonical, ctx) => {
26
+ if (ctx.mimetypes !== undefined) {
27
+ const detected = await ctx.mimetypes.detect({ path: canonical });
28
+ return normalizeAutoTextMimetype(detected);
29
+ }
30
+ return TEXT_PRIMITIVE_MIMETYPE;
31
+ };
17
32
  const resolveContained = async (pathname, root) => {
18
33
  const requested = isAbsolute(pathname) ? pathname : resolve(root, pathname);
19
34
  let canonical;
@@ -46,47 +61,91 @@ export default class File {
46
61
  },
47
62
  };
48
63
  async read(statement, ctx) {
49
- if (statement.path === null)
50
- return { status: 400, content: null, mimetype: null };
51
- if (statement.lineMarker !== null)
52
- return { status: 501, content: null, mimetype: null };
53
- if (statement.body !== null)
54
- return { status: 501, content: null, mimetype: null };
55
- if (Array.isArray(statement.signal) && statement.signal.length > 0)
56
- return { status: 501, content: null, mimetype: null };
64
+ if (statement.target === null)
65
+ return { status: 400, content: null, mimetype: null, error: "READ requires a target path" };
66
+ if (Array.isArray(statement.signal) && statement.signal.length > 0) {
67
+ // file:// entries don't carry tag metadata (tags belong to canonical
68
+ // entries; file entries are disk-truth). A tag-filtered READ on a
69
+ // file path will never match 404 by definition.
70
+ return { status: 404, content: null, mimetype: null };
71
+ }
57
72
  const root = await loadSessionRoot(ctx.db, ctx.sessionId);
58
73
  if (root === null)
59
- return { status: 400, content: null, mimetype: null };
60
- const pathname = statement.path.kind === "url" ? statement.path.pathname : statement.path.raw;
74
+ return { status: 400, content: null, mimetype: null, error: "session has no project_root; cannot READ files" };
75
+ const pathname = statement.target.kind === "url" ? statement.target.pathname : statement.target.raw;
61
76
  const resolved = await resolveContained(pathname, root);
62
77
  if ("error" in resolved) {
63
78
  if (resolved.error === "not-found")
64
79
  return { status: 404, content: null, mimetype: null };
65
- return { status: 403, content: null, mimetype: null }; // traversal
80
+ return { status: 403, content: null, mimetype: null };
66
81
  }
82
+ const mimetype = await detectFileMimetype(resolved.canonical, ctx);
83
+ if (isBinaryMimetype(mimetype))
84
+ return { status: 415, content: null, mimetype };
67
85
  const content = await readFile(resolved.canonical, "utf8");
68
- return { status: 200, content, mimetype: "text/plain" };
86
+ // `<L>` scopes; body matches within the scope (slice-then-match).
87
+ // `<L>` dispatches on source mimetype (plurnk-grammar 0.13.0):
88
+ // JSON → sliceJsonItems (item index)
89
+ // line-navigable → sliceLines (line index)
90
+ let workingContent = content;
91
+ let workingStart = 1;
92
+ let workingMimetypeForSlice = TEXT_PRIMITIVE_MIMETYPE;
93
+ if (statement.lineMarker !== null) {
94
+ if (isJsonMimetype(mimetype)) {
95
+ const sliced = sliceJsonItems(content, statement.lineMarker);
96
+ if (sliced.status !== 200)
97
+ return { status: sliced.status, content: null, mimetype };
98
+ workingContent = sliced.body ?? "[]";
99
+ workingStart = null;
100
+ workingMimetypeForSlice = "application/json";
101
+ }
102
+ else {
103
+ const sliced = sliceLines(content, statement.lineMarker);
104
+ if (sliced.status !== 200)
105
+ return { status: sliced.status, content: null, mimetype };
106
+ workingContent = sliced.text ?? "";
107
+ workingStart = sliced.startLine ?? null;
108
+ }
109
+ }
110
+ if (statement.body !== null) {
111
+ const matched = matchAgainstContent(statement.body, workingContent, mimetype, workingStart ?? 1);
112
+ if (matched.status === 204) {
113
+ return { status: 204, content: "", mimetype: "application/json", startLine: null, matches: 0 };
114
+ }
115
+ if (matched.status !== 200)
116
+ return { status: matched.status, content: null, mimetype };
117
+ return { status: 200, content: matched.body ?? "[]", mimetype: "application/json", startLine: null, matches: matched.matches };
118
+ }
119
+ if (statement.lineMarker !== null) {
120
+ const isEmptyJsonArray = workingMimetypeForSlice === "application/json" && workingContent === "[]";
121
+ if (workingContent === "" || isEmptyJsonArray) {
122
+ return { status: 204, content: "", mimetype: workingMimetypeForSlice, startLine: null };
123
+ }
124
+ return { status: 200, content: workingContent, mimetype: workingMimetypeForSlice, startLine: workingStart };
125
+ }
126
+ if (content === "")
127
+ return { status: 204, content: "", mimetype, startLine: null };
128
+ return { status: 200, content, mimetype, startLine: 1 };
69
129
  }
70
130
  // Edit op (task #42 canonical proposal consumer). Returns status=202
71
131
  // with a udiff body for client review + attrs carrying the full patched
72
132
  // content. Engine writes the proposed log entry, pauses dispatch, and
73
133
  // calls applyResolution() (below) after the proposal accepts.
74
134
  async edit(statement, ctx) {
75
- if (statement.path === null)
135
+ if (statement.target === null)
76
136
  return { status: 400, error: "EDIT requires a path" };
77
- if (statement.lineMarker !== null)
78
- return { status: 501, error: "lineMarker-based edits not yet supported" };
79
137
  const root = await loadSessionRoot(ctx.db, ctx.sessionId);
80
138
  if (root === null) {
81
139
  return { status: 400, error: "session has no project_root; client must call session.create({projectRoot}) or session.set_root({projectRoot}) before file ops" };
82
140
  }
83
- const pathname = statement.path.kind === "url" ? statement.path.pathname : statement.path.raw;
141
+ const pathname = statement.target.kind === "url" ? statement.target.pathname : statement.target.raw;
84
142
  // Containment check (canonical path inside workspace). For edits,
85
143
  // a not-found target is fine — we're proposing to create or
86
144
  // overwrite. Traversal escape is fatal.
87
145
  let canonical;
88
146
  const requested = isAbsolute(pathname) ? pathname : resolve(root, pathname);
89
147
  let original = "";
148
+ let fileExists = true;
90
149
  try {
91
150
  canonical = await realpath(requested);
92
151
  original = await readFile(canonical, "utf8");
@@ -94,17 +153,39 @@ export default class File {
94
153
  catch (err) {
95
154
  if (err.code !== "ENOENT")
96
155
  throw err;
97
- // File doesn't exist — propose to create it.
98
156
  canonical = requested;
157
+ fileExists = false;
99
158
  }
100
- // Re-check containment against the (now-resolved-or-fabricated)
101
- // canonical path. The requested path could resolve to a parent of
102
- // workspace via symlink; reject.
159
+ // Re-check containment against the canonical path. Symlinks could
160
+ // escape workspace; reject.
103
161
  const rel = relative(root, canonical);
104
162
  if (rel.startsWith("..") || isAbsolute(rel)) {
105
163
  return { status: 403, error: "path escapes workspace root" };
106
164
  }
107
- const patched = statement.body ?? "";
165
+ // 415 on binary entries (per AGENTS.md "Resolved ambiguities" §2).
166
+ // Existing file's mimetype takes precedence; for new files, derive
167
+ // from the proposed path so we don't accept binary writes via edit.
168
+ const mimetype = await detectFileMimetype(canonical, ctx);
169
+ if (isBinaryMimetype(mimetype))
170
+ return { status: 415, error: `cannot EDIT binary mimetype \`${mimetype}\`` };
171
+ // `<L>` line marker dispatches on file mimetype: JSON →
172
+ // applyJsonItemEdit (structural item edit); otherwise →
173
+ // applyLineMarkerEdit (line edit). On a non-existent file,
174
+ // body becomes content regardless of marker (per "Resolved
175
+ // ambiguities" §3).
176
+ const body = statement.body ?? "";
177
+ let patched;
178
+ if (statement.lineMarker !== null && fileExists) {
179
+ const result = isJsonMimetype(mimetype)
180
+ ? applyJsonItemEdit(original, statement.lineMarker, body)
181
+ : applyLineMarkerEdit(original, statement.lineMarker, body);
182
+ if (result.status !== 200)
183
+ return { status: result.status, error: result.error };
184
+ patched = result.result ?? "";
185
+ }
186
+ else {
187
+ patched = body;
188
+ }
108
189
  const patch = createPatch(rel, original, patched, "current", "proposed");
109
190
  return {
110
191
  status: 202,
@@ -112,9 +193,12 @@ export default class File {
112
193
  attrs: {
113
194
  path: rel,
114
195
  canonical,
115
- patch, // full udiff (sent to client for render)
116
- patched, // full new content (used by applyResolution)
196
+ patch,
197
+ patched,
117
198
  },
199
+ // Surface the diff at the result level too — the log render
200
+ // emits it for the model to see what changed (M.12).
201
+ diff: original !== patched ? patch : undefined,
118
202
  };
119
203
  }
120
204
  // applyResolution — called by Engine.dispatch after a proposed log
@@ -1 +1 @@
1
- {"version":3,"file":"File.js","sourceRoot":"","sources":["../../src/schemes/File.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"File.js","sourceRoot":"","sources":["../../src/schemes/File.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ type ReadResult = {
4
4
  status: number;
5
5
  content: string | null;
6
6
  mimetype: string | null;
7
+ startLine?: number | null;
8
+ matches?: number | null;
7
9
  };
8
10
  type ShowHideResult = {
9
11
  status: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Log.d.ts","sourceRoot":"","sources":["../../src/schemes/Log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1F,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AACtF,KAAK,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAiBzC,MAAM,CAAC,OAAO,OAAO,GAAG;;IACpB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAS7B;IAEI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IA2B7E,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjF,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;CAmB1F"}
1
+ {"version":3,"file":"Log.d.ts","sourceRoot":"","sources":["../../src/schemes/Log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1F,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAKnF,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAC1I,KAAK,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAiBzC,MAAM,CAAC,OAAO,OAAO,GAAG;;IACpB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAS7B;IAEI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IA0F7E,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjF,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;CAmB1F"}