@plurnk/plurnk-service 0.3.0 → 0.5.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 (116) hide show
  1. package/README.md +13 -44
  2. package/SPEC.md +559 -447
  3. package/bin/plurnk-service.js +2 -1
  4. package/dist/core/ChannelWrite.d.ts +15 -0
  5. package/dist/core/ChannelWrite.d.ts.map +1 -1
  6. package/dist/core/ChannelWrite.js.map +1 -1
  7. package/dist/core/Engine.d.ts +15 -4
  8. package/dist/core/Engine.d.ts.map +1 -1
  9. package/dist/core/Engine.js +417 -114
  10. package/dist/core/Engine.js.map +1 -1
  11. package/dist/core/PluginLoader.js +6 -6
  12. package/dist/core/PluginLoader.js.map +1 -1
  13. package/dist/core/ProviderInstantiate.d.ts +4 -0
  14. package/dist/core/ProviderInstantiate.d.ts.map +1 -0
  15. package/dist/core/ProviderInstantiate.js +41 -0
  16. package/dist/core/ProviderInstantiate.js.map +1 -0
  17. package/dist/core/ProviderRegistry.d.ts.map +1 -1
  18. package/dist/core/ProviderRegistry.js +1 -1
  19. package/dist/core/ProviderRegistry.js.map +1 -1
  20. package/dist/core/SchemeRegistry.d.ts +1 -1
  21. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  22. package/dist/core/SchemeRegistry.js +4 -20
  23. package/dist/core/SchemeRegistry.js.map +1 -1
  24. package/dist/core/line-marker.d.ts +23 -0
  25. package/dist/core/line-marker.d.ts.map +1 -0
  26. package/dist/core/line-marker.js +321 -0
  27. package/dist/core/line-marker.js.map +1 -0
  28. package/dist/core/matcher.d.ts +12 -0
  29. package/dist/core/matcher.d.ts.map +1 -0
  30. package/dist/core/matcher.js +72 -0
  31. package/dist/core/matcher.js.map +1 -0
  32. package/dist/core/mimetype-binary.d.ts +6 -0
  33. package/dist/core/mimetype-binary.d.ts.map +1 -0
  34. package/dist/core/mimetype-binary.js +82 -0
  35. package/dist/core/mimetype-binary.js.map +1 -0
  36. package/dist/core/packet-wire.d.ts.map +1 -1
  37. package/dist/core/packet-wire.js +206 -30
  38. package/dist/core/packet-wire.js.map +1 -1
  39. package/dist/core/path-mimetype.d.ts +3 -0
  40. package/dist/core/path-mimetype.d.ts.map +1 -0
  41. package/dist/core/path-mimetype.js +47 -0
  42. package/dist/core/path-mimetype.js.map +1 -0
  43. package/dist/core/scheme-types.d.ts +8 -26
  44. package/dist/core/scheme-types.d.ts.map +1 -1
  45. package/dist/core/scheme-types.js +5 -8
  46. package/dist/core/scheme-types.js.map +1 -1
  47. package/dist/index.d.ts +3 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +14 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/schemes/Exec.d.ts +30 -1
  52. package/dist/schemes/Exec.d.ts.map +1 -1
  53. package/dist/schemes/Exec.js +217 -6
  54. package/dist/schemes/Exec.js.map +1 -1
  55. package/dist/schemes/File.d.ts +5 -0
  56. package/dist/schemes/File.d.ts.map +1 -1
  57. package/dist/schemes/File.js +113 -23
  58. package/dist/schemes/File.js.map +1 -1
  59. package/dist/schemes/Log.d.ts +3 -0
  60. package/dist/schemes/Log.d.ts.map +1 -1
  61. package/dist/schemes/Log.js +88 -13
  62. package/dist/schemes/Log.js.map +1 -1
  63. package/dist/schemes/Plurnk.js +3 -3
  64. package/dist/schemes/Plurnk.js.map +1 -1
  65. package/dist/schemes/_entry-crud.d.ts +2 -0
  66. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  67. package/dist/schemes/_entry-crud.js +1 -0
  68. package/dist/schemes/_entry-crud.js.map +1 -1
  69. package/dist/schemes/_entry-find.d.ts.map +1 -1
  70. package/dist/schemes/_entry-find.js +64 -15
  71. package/dist/schemes/_entry-find.js.map +1 -1
  72. package/dist/schemes/_entry-ops.d.ts +3 -0
  73. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  74. package/dist/schemes/_entry-ops.js +262 -54
  75. package/dist/schemes/_entry-ops.js.map +1 -1
  76. package/dist/schemes/_entry-send.d.ts.map +1 -1
  77. package/dist/schemes/_entry-send.js +14 -7
  78. package/dist/schemes/_entry-send.js.map +1 -1
  79. package/dist/server/ClientConnection.d.ts +3 -2
  80. package/dist/server/ClientConnection.d.ts.map +1 -1
  81. package/dist/server/ClientConnection.js +4 -1
  82. package/dist/server/ClientConnection.js.map +1 -1
  83. package/dist/server/Daemon.d.ts +51 -1
  84. package/dist/server/Daemon.d.ts.map +1 -1
  85. package/dist/server/Daemon.js +337 -1
  86. package/dist/server/Daemon.js.map +1 -1
  87. package/dist/server/MethodRegistry.d.ts +31 -2
  88. package/dist/server/MethodRegistry.d.ts.map +1 -1
  89. package/dist/server/MethodRegistry.js.map +1 -1
  90. package/dist/server/dsl.d.ts +2 -2
  91. package/dist/server/dsl.d.ts.map +1 -1
  92. package/dist/server/dsl.js +10 -10
  93. package/dist/server/dsl.js.map +1 -1
  94. package/dist/server/methods/entry_read.js +5 -5
  95. package/dist/server/methods/entry_read.js.map +1 -1
  96. package/dist/server/methods/loop_cancel.d.ts +3 -0
  97. package/dist/server/methods/loop_cancel.d.ts.map +1 -0
  98. package/dist/server/methods/loop_cancel.js +27 -0
  99. package/dist/server/methods/loop_cancel.js.map +1 -0
  100. package/dist/server/methods/loop_resolve.js +2 -2
  101. package/dist/server/methods/loop_resolve.js.map +1 -1
  102. package/dist/server/methods/loop_run.d.ts.map +1 -1
  103. package/dist/server/methods/loop_run.js +48 -48
  104. package/dist/server/methods/loop_run.js.map +1 -1
  105. package/dist/server/methods/op_edit.js +3 -3
  106. package/dist/server/methods/op_edit.js.map +1 -1
  107. package/dist/server/methods/op_hide.js +3 -3
  108. package/dist/server/methods/op_hide.js.map +1 -1
  109. package/dist/server/methods/op_read.js +3 -3
  110. package/dist/server/methods/op_read.js.map +1 -1
  111. package/dist/server/methods/op_show.js +3 -3
  112. package/dist/server/methods/op_show.js.map +1 -1
  113. package/dist/server/methods/providers_list.js +1 -1
  114. package/dist/server/methods/providers_list.js.map +1 -1
  115. package/migrations/001_schema.sql +1 -1
  116. package/package.json +19 -14
@@ -1,10 +1,64 @@
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 { isKnownRuntime, resolveRuntime } from "@plurnk/plurnk-execs";
3
+ import { readSessionEntry, showSessionEntry, hideSessionEntry } from "./_entry-ops.js";
4
+ import { readEntry, writeEntry, deleteEntry } from "./_entry-crud.js";
5
+ import { findSessionEntries } from "./_entry-find.js";
6
+ import { appendToChannel, setChannelState, openSubscription, closeSubscription, } from "../core/ChannelWrite.js";
7
+ // Per plurnk.md, EXEC's target slot is `cwd`. ParsedPath there means a
8
+ // bare local path or file:// URL — both decode to a filesystem directory.
9
+ // Anything else is rejected at proposal time.
10
+ const cwdFromTarget = (target) => {
11
+ if (target === null)
12
+ return null;
13
+ if (target.kind === "local")
14
+ return target.raw;
15
+ if (target.kind === "url" && (target.scheme === null || target.scheme === "file")) {
16
+ return target.pathname;
17
+ }
18
+ return null;
19
+ };
20
+ const streamShellCommand = async (runtime, command, cwd, db, streamEventNotify, entryId, signal) => {
21
+ const { cmd, args, useShell } = resolveRuntime(runtime, command);
22
+ return new Promise((resolvePromise, rejectPromise) => {
23
+ const child = spawn(cmd, args, {
24
+ shell: useShell,
25
+ signal,
26
+ cwd: cwd ?? undefined,
27
+ });
28
+ const pending = [];
29
+ child.stdout.on("data", (chunk) => {
30
+ pending.push(appendToChannel(db, {
31
+ entryId, channel: "stdout", chunk: chunk.toString("utf8"), notify: streamEventNotify,
32
+ }));
33
+ });
34
+ child.stderr.on("data", (chunk) => {
35
+ pending.push(appendToChannel(db, {
36
+ entryId, channel: "stderr", chunk: chunk.toString("utf8"), notify: streamEventNotify,
37
+ }));
38
+ });
39
+ child.on("error", (err) => {
40
+ if (err.code === "ABORT_ERR") {
41
+ Promise.all(pending).then(() => {
42
+ resolvePromise({ exitCode: -1, aborted: true });
43
+ }).catch(rejectPromise);
44
+ return;
45
+ }
46
+ rejectPromise(err);
47
+ });
48
+ child.on("close", (code, killedBySignal) => {
49
+ Promise.all(pending).then(() => {
50
+ resolvePromise({
51
+ exitCode: code ?? -1,
52
+ aborted: killedBySignal !== null,
53
+ });
54
+ }).catch(rejectPromise);
55
+ });
56
+ });
57
+ };
4
58
  export default class Exec {
5
59
  static manifest = {
6
60
  name: "exec",
7
- channels: {},
61
+ channels: { stdout: "text/stream", stderr: "text/stream" },
8
62
  defaultChannel: "stdout",
9
63
  category: "data",
10
64
  scope: "session",
@@ -12,9 +66,166 @@ export default class Exec {
12
66
  volatile: true,
13
67
  modelVisible: true,
14
68
  flags: {
15
- excludedInAsk: true, // exec is side-effecting; ask mode is read-only
16
- proposes: true, // exec runs via proposal lifecycle unless yolo
69
+ excludedInAsk: true,
70
+ proposes: true,
17
71
  },
18
72
  };
73
+ #activeAborts = new Map();
74
+ #activeSpawns = new Map();
75
+ async idle() {
76
+ await Promise.allSettled([...this.#activeSpawns.values()]);
77
+ }
78
+ // EXEC op handler — the actual model-facing entry point per plurnk.md.
79
+ // `<<EXEC[runtime](cwd):command:EXEC` →
80
+ // signal=runtime, target=cwd (ParsedPath local/file or null), body=command.
81
+ //
82
+ // Proposes (status=202) with attrs={runtime, cwd, command, pathname}.
83
+ // applyResolution spawns the subprocess; output streams into the
84
+ // auto-generated exec://<pathname> entry's stdout/stderr channels.
85
+ // The model READs that entry on a subsequent turn to see what happened.
86
+ async exec(statement, ctx) {
87
+ const command = statement.body ?? "";
88
+ if (command.length === 0) {
89
+ return { status: 400, error: "EXEC requires a command body" };
90
+ }
91
+ if (statement.target !== null) {
92
+ if (statement.target.kind === "url" && statement.target.scheme !== null && statement.target.scheme !== "file") {
93
+ return { status: 400, error: `EXEC cwd must be a local path or file:// URL; got ${statement.target.scheme}://` };
94
+ }
95
+ }
96
+ const runtime = typeof statement.signal === "string" ? statement.signal : "";
97
+ if (!isKnownRuntime(runtime)) {
98
+ return { status: 501, error: `\`${runtime}\` executable not configured.` };
99
+ }
100
+ const cwdFromOp = cwdFromTarget(statement.target);
101
+ // Default cwd to the session's project_root so EXEC runs in the
102
+ // same directory File scheme writes to. Without this default, the
103
+ // model creates a file via EDIT (lands in project_root) and then
104
+ // EXECs (runs in daemon cwd) and can't find what it just wrote.
105
+ // Explicit (cwd) in the EXEC statement still wins.
106
+ let cwd = cwdFromOp;
107
+ if (cwd === null) {
108
+ const sessionRow = await ctx.db.envelope_get_session.get({ id: ctx.sessionId });
109
+ cwd = sessionRow?.project_root ?? null;
110
+ }
111
+ // Pathname is assigned by Engine.#writeLog from the log coordinate
112
+ // (<loop_seq>/<turn_seq>/<sequence>/EXEC), so the exec entry's URI
113
+ // mirrors its log row's URI on the same coordinate. `pathname` is
114
+ // stamped into attrs at log-write time; applyResolution reads it
115
+ // back here.
116
+ const attrs = { runtime, cwd, command, pathname: "" };
117
+ // Body shown to client during proposal review — `$ command` is the
118
+ // most-readable summary regardless of runtime.
119
+ const preview = runtime !== "" ? `[${runtime}] ${command}` : `$ ${command}`;
120
+ return { status: 202, body: preview, attrs };
121
+ }
122
+ async applyResolution(args, ctx) {
123
+ const attrs = args.attrs;
124
+ const command = attrs.command;
125
+ const pathname = attrs.pathname;
126
+ const runtime = typeof attrs.runtime === "string" ? attrs.runtime : "";
127
+ const cwd = (typeof attrs.cwd === "string" && attrs.cwd.length > 0) ? attrs.cwd : null;
128
+ if (typeof command !== "string" || command.length === 0) {
129
+ return { status: 500, outcome: "missing_command" };
130
+ }
131
+ if (typeof pathname !== "string" || pathname.length === 0) {
132
+ return { status: 500, outcome: "missing_pathname" };
133
+ }
134
+ const seed = {
135
+ channels: {
136
+ stdout: { content: "", mimetype: "text/stream", state: "active" },
137
+ stderr: { content: "", mimetype: "text/stream", state: "active" },
138
+ },
139
+ tags: [],
140
+ };
141
+ const { entryId } = await writeEntry(pathname, seed, ctx, "exec");
142
+ if (entryId === null)
143
+ return { status: 500, outcome: "entry_write_failed" };
144
+ const subscriptionId = await openSubscription(ctx.db, {
145
+ runId: ctx.runId, entryId, scheme: "exec",
146
+ handle: runtime !== "" ? `${runtime}: ${command}` : command,
147
+ });
148
+ const controller = new AbortController();
149
+ if (ctx.signal !== undefined) {
150
+ if (ctx.signal.aborted)
151
+ controller.abort(ctx.signal.reason);
152
+ else
153
+ ctx.signal.addEventListener("abort", () => controller.abort(ctx.signal.reason), { once: true });
154
+ }
155
+ this.#activeAborts.set(subscriptionId, controller);
156
+ const tail = this.#runSpawn({
157
+ runtime, command, cwd, db: ctx.db,
158
+ streamEventNotify: ctx.streamEventNotify,
159
+ wakeRunNotify: ctx.wakeRunNotify,
160
+ sessionId: ctx.sessionId, runId: ctx.runId, pathname,
161
+ entryId, subscriptionId, signal: controller.signal,
162
+ });
163
+ this.#activeSpawns.set(subscriptionId, tail);
164
+ return { status: 200, outcome: "started" };
165
+ }
166
+ async #runSpawn(opts) {
167
+ const { runtime, command, cwd, db, streamEventNotify, wakeRunNotify, sessionId, runId, pathname, entryId, subscriptionId, signal } = opts;
168
+ let closeStatus = 500;
169
+ let exitLabel = "spawn_failed";
170
+ let stdoutLength = 0;
171
+ let stderrLength = 0;
172
+ try {
173
+ let outcome;
174
+ try {
175
+ outcome = await streamShellCommand(runtime, command, cwd, db, streamEventNotify, entryId, signal);
176
+ }
177
+ catch (err) {
178
+ await setChannelState(db, { entryId, channel: "stdout", state: "errored", notify: streamEventNotify });
179
+ await setChannelState(db, { entryId, channel: "stderr", state: "errored", notify: streamEventNotify });
180
+ await closeSubscription(db, { subscriptionId, status: 500 });
181
+ console.error("exec spawn_failed:", err instanceof Error ? err.message : String(err));
182
+ closeStatus = 500;
183
+ exitLabel = "spawn_failed";
184
+ return;
185
+ }
186
+ closeStatus = outcome.aborted ? 499 : outcome.exitCode === 0 ? 200 : 500;
187
+ exitLabel = outcome.aborted ? "aborted" : `exit ${outcome.exitCode}`;
188
+ const terminalState = outcome.exitCode === 0 && !outcome.aborted ? "closed" : "errored";
189
+ await setChannelState(db, { entryId, channel: "stdout", state: terminalState, notify: streamEventNotify });
190
+ await setChannelState(db, { entryId, channel: "stderr", state: terminalState, notify: streamEventNotify });
191
+ await closeSubscription(db, { subscriptionId, status: closeStatus });
192
+ const stdoutMeta = await db.channel_meta.get({ entry_id: entryId, channel: "stdout" });
193
+ const stderrMeta = await db.channel_meta.get({ entry_id: entryId, channel: "stderr" });
194
+ stdoutLength = stdoutMeta?.contentLength ?? 0;
195
+ stderrLength = stderrMeta?.contentLength ?? 0;
196
+ }
197
+ finally {
198
+ this.#activeAborts.delete(subscriptionId);
199
+ this.#activeSpawns.delete(subscriptionId);
200
+ if (wakeRunNotify !== undefined) {
201
+ wakeRunNotify({
202
+ sessionId, runId, entryId, subscriptionId, closeStatus,
203
+ scheme: "exec",
204
+ summary: `exec://${pathname} completed (${exitLabel}); stdout=${stdoutLength} bytes, stderr=${stderrLength} bytes`,
205
+ });
206
+ }
207
+ }
208
+ }
209
+ async read(statement, ctx) {
210
+ return readSessionEntry(statement, ctx, Exec.manifest);
211
+ }
212
+ async show(statement, ctx) {
213
+ return showSessionEntry(statement, ctx, Exec.manifest);
214
+ }
215
+ async hide(statement, ctx) {
216
+ return hideSessionEntry(statement, ctx, Exec.manifest);
217
+ }
218
+ async find(statement, ctx) {
219
+ return findSessionEntries(statement, ctx, Exec.manifest.name);
220
+ }
221
+ async readEntry(pathname, ctx) {
222
+ return readEntry(pathname, ctx, Exec.manifest.name);
223
+ }
224
+ async writeEntry(pathname, entry, ctx) {
225
+ return writeEntry(pathname, entry, ctx, Exec.manifest.name);
226
+ }
227
+ async deleteEntry(pathname, ctx) {
228
+ return deleteEntry(pathname, ctx, Exec.manifest.name);
229
+ }
19
230
  }
20
231
  //# 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,17 @@ 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;
10
+ reason?: string;
7
11
  };
8
12
  type EditResult = {
9
13
  status: number;
10
14
  body?: string;
11
15
  attrs?: object;
12
16
  error?: string;
17
+ diff?: string;
13
18
  };
14
19
  type ApplyArgs = {
15
20
  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,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAM3K,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;IA0E7E,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 "@plurnk/plurnk-schemes";
6
+ import { sliceLines, sliceJsonItems, applyLineMarkerEdit, applyJsonItemEdit } from "@plurnk/plurnk-schemes";
7
+ import { matchAgainstContent } from "@plurnk/plurnk-schemes";
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,97 @@ 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
+ if (ctx.mimetypes === undefined) {
112
+ return { status: 500, content: null, mimetype };
113
+ }
114
+ const matched = await matchAgainstContent(statement.body, workingContent, mimetype, ctx.mimetypes, workingStart ?? 1);
115
+ if (matched.status === 204) {
116
+ return { status: 204, content: "", mimetype: "application/json", startLine: null, matches: 0 };
117
+ }
118
+ if (matched.status === 203) {
119
+ return { status: 203, content: matched.body ?? "", mimetype: matched.mimetype ?? "text/markdown", startLine: 1, reason: matched.reason };
120
+ }
121
+ if (matched.status !== 200)
122
+ return { status: matched.status, content: null, mimetype };
123
+ return { status: 200, content: matched.body ?? "[]", mimetype: "application/json", startLine: null, matches: matched.matches };
124
+ }
125
+ if (statement.lineMarker !== null) {
126
+ const isEmptyJsonArray = workingMimetypeForSlice === "application/json" && workingContent === "[]";
127
+ if (workingContent === "" || isEmptyJsonArray) {
128
+ return { status: 204, content: "", mimetype: workingMimetypeForSlice, startLine: null };
129
+ }
130
+ return { status: 200, content: workingContent, mimetype: workingMimetypeForSlice, startLine: workingStart };
131
+ }
132
+ if (content === "")
133
+ return { status: 204, content: "", mimetype, startLine: null };
134
+ return { status: 200, content, mimetype, startLine: 1 };
69
135
  }
70
136
  // Edit op (task #42 canonical proposal consumer). Returns status=202
71
137
  // with a udiff body for client review + attrs carrying the full patched
72
138
  // content. Engine writes the proposed log entry, pauses dispatch, and
73
139
  // calls applyResolution() (below) after the proposal accepts.
74
140
  async edit(statement, ctx) {
75
- if (statement.path === null)
141
+ if (statement.target === null)
76
142
  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
143
  const root = await loadSessionRoot(ctx.db, ctx.sessionId);
80
144
  if (root === null) {
81
145
  return { status: 400, error: "session has no project_root; client must call session.create({projectRoot}) or session.set_root({projectRoot}) before file ops" };
82
146
  }
83
- const pathname = statement.path.kind === "url" ? statement.path.pathname : statement.path.raw;
147
+ const pathname = statement.target.kind === "url" ? statement.target.pathname : statement.target.raw;
84
148
  // Containment check (canonical path inside workspace). For edits,
85
149
  // a not-found target is fine — we're proposing to create or
86
150
  // overwrite. Traversal escape is fatal.
87
151
  let canonical;
88
152
  const requested = isAbsolute(pathname) ? pathname : resolve(root, pathname);
89
153
  let original = "";
154
+ let fileExists = true;
90
155
  try {
91
156
  canonical = await realpath(requested);
92
157
  original = await readFile(canonical, "utf8");
@@ -94,17 +159,39 @@ export default class File {
94
159
  catch (err) {
95
160
  if (err.code !== "ENOENT")
96
161
  throw err;
97
- // File doesn't exist — propose to create it.
98
162
  canonical = requested;
163
+ fileExists = false;
99
164
  }
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.
165
+ // Re-check containment against the canonical path. Symlinks could
166
+ // escape workspace; reject.
103
167
  const rel = relative(root, canonical);
104
168
  if (rel.startsWith("..") || isAbsolute(rel)) {
105
169
  return { status: 403, error: "path escapes workspace root" };
106
170
  }
107
- const patched = statement.body ?? "";
171
+ // 415 on binary entries (SPEC.md §16.9).
172
+ // Existing file's mimetype takes precedence; for new files, derive
173
+ // from the proposed path so we don't accept binary writes via edit.
174
+ const mimetype = await detectFileMimetype(canonical, ctx);
175
+ if (isBinaryMimetype(mimetype))
176
+ return { status: 415, error: `cannot EDIT binary mimetype \`${mimetype}\`` };
177
+ // `<L>` line marker dispatches on file mimetype: JSON →
178
+ // applyJsonItemEdit (structural item edit); otherwise →
179
+ // applyLineMarkerEdit (line edit). On a non-existent file,
180
+ // body becomes content regardless of marker (per "Resolved
181
+ // ambiguities" §3).
182
+ const body = statement.body ?? "";
183
+ let patched;
184
+ if (statement.lineMarker !== null && fileExists) {
185
+ const result = isJsonMimetype(mimetype)
186
+ ? applyJsonItemEdit(original, statement.lineMarker, body)
187
+ : applyLineMarkerEdit(original, statement.lineMarker, body);
188
+ if (result.status !== 200)
189
+ return { status: result.status, error: result.error };
190
+ patched = result.result ?? "";
191
+ }
192
+ else {
193
+ patched = body;
194
+ }
108
195
  const patch = createPatch(rel, original, patched, "current", "proposed");
109
196
  return {
110
197
  status: 202,
@@ -112,9 +199,12 @@ export default class File {
112
199
  attrs: {
113
200
  path: rel,
114
201
  canonical,
115
- patch, // full udiff (sent to client for render)
116
- patched, // full new content (used by applyResolution)
202
+ patch,
203
+ patched,
117
204
  },
205
+ // Surface the diff at the result level too — the log render
206
+ // emits it for the model to see what changed (M.12).
207
+ diff: original !== patched ? patch : undefined,
118
208
  };
119
209
  }
120
210
  // 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,9 @@ type ReadResult = {
4
4
  status: number;
5
5
  content: string | null;
6
6
  mimetype: string | null;
7
+ startLine?: number | null;
8
+ matches?: number | null;
9
+ reason?: string;
7
10
  };
8
11
  type ShowHideResult = {
9
12
  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,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3J,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;IAgG7E,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"}