@plurnk/plurnk-service 0.52.0 → 0.53.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 +14 -8
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +82 -32
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +39 -7
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +1 -2
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/packet-wire.d.ts +1 -2
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +111 -138
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/teaching.d.ts +1 -1
- package/dist/core/teaching.d.ts.map +1 -1
- package/dist/core/teaching.js +6 -4
- package/dist/core/teaching.js.map +1 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +11 -24
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +3 -2
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Run.js +1 -1
- package/dist/schemes/Run.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts +1 -0
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +8 -2
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +5 -8
- package/dist/server/Daemon.js.map +1 -1
- package/docs/log.md +1 -1
- package/package.json +16 -15
- package/requirements.md +3 -9
- package/dist/schemes/exec-receipt.d.ts +0 -4
- package/dist/schemes/exec-receipt.d.ts.map +0 -1
- package/dist/schemes/exec-receipt.js +0 -25
- package/dist/schemes/exec-receipt.js.map +0 -1
package/dist/core/packet-wire.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// fenced code blocks for entry bodies, lists for arrays. No invented
|
|
10
10
|
// separators. Models parse markdown natively.
|
|
11
11
|
//
|
|
12
|
-
// Section headers follow the
|
|
12
|
+
// Section headers follow the `## Plurnk System X` convention so the model
|
|
13
13
|
// sees consistent framing across every section it might receive. Sections
|
|
14
14
|
// with no content are omitted entirely (no empty headers in the wire).
|
|
15
15
|
import { MimetypeBinary } from "../content/index.js";
|
|
@@ -17,7 +17,7 @@ import { renderAddress } from "./plurnk-uri.js";
|
|
|
17
17
|
export default class PacketWire {
|
|
18
18
|
// Render the sections in `slot` to one ChatMessage.content string. Sections
|
|
19
19
|
// render in list order; empties are omitted (no empty headers on the wire);
|
|
20
|
-
// each is
|
|
20
|
+
// each is `## {header}\n\n{content}` (or bare content when header is null),
|
|
21
21
|
// trailing newlines stripped, joined with a blank line.
|
|
22
22
|
static renderSlot(sections, slot) {
|
|
23
23
|
return sections
|
|
@@ -26,7 +26,7 @@ export default class PacketWire {
|
|
|
26
26
|
.filter((p) => p.length > 0)
|
|
27
27
|
.join("\n\n");
|
|
28
28
|
}
|
|
29
|
-
// One section → its markdown block (
|
|
29
|
+
// One section → its markdown block (`## {header}\n\n{content}`, or bare
|
|
30
30
|
// content when header is null/empty), trailing newlines stripped. Empty
|
|
31
31
|
// content renders to "" so renderSlot drops it. This is the unit the
|
|
32
32
|
// per-section `tokens` weight is measured over.
|
|
@@ -34,7 +34,7 @@ export default class PacketWire {
|
|
|
34
34
|
if (typeof s.content !== "string" || s.content.length === 0)
|
|
35
35
|
return "";
|
|
36
36
|
const header = typeof s.header === "string" && s.header.length > 0 ? s.header : null;
|
|
37
|
-
return (header ?
|
|
37
|
+
return (header ? `## ${header}\n\n${s.content}` : s.content).replace(/\n+$/, "");
|
|
38
38
|
}
|
|
39
39
|
// PLURNK_PROMPT_PREVIEW_CHARS caps the prompt body rendered in the prompt
|
|
40
40
|
// section — a fat prompt replays every turn, so show the first `cap` chars +
|
|
@@ -57,22 +57,11 @@ export default class PacketWire {
|
|
|
57
57
|
static renderGit(git) {
|
|
58
58
|
return git === null || git === undefined ? "" : PacketWire.#renderGitState(git);
|
|
59
59
|
}
|
|
60
|
-
// The catalog section content: a per-scheme tally (entry count + stored token weight) so
|
|
61
|
-
// the model knows which schemes hold content without probing e.g. FIND(known://**). Null
|
|
62
|
-
// scheme renders as `file` (bare workspace rows). "" when the session is empty (omitted).
|
|
63
|
-
static renderCatalog(summary) {
|
|
64
|
-
const rows = Array.isArray(summary) ? summary : [];
|
|
65
|
-
if (rows.length === 0)
|
|
66
|
-
return "";
|
|
67
|
-
return rows
|
|
68
|
-
.map((r) => `${r.scheme ?? "file"} — ${r.entries} ${r.entries === 1 ? "entry" : "entries"}, ${r.tokens} tokens`)
|
|
69
|
-
.join("\n");
|
|
70
|
-
}
|
|
71
60
|
// The log section's content: the model's curated rows rendered to markdown
|
|
72
61
|
// (the same #renderLogEntries the wire ships). Empty log → "" (omitted).
|
|
73
|
-
static renderLog(entries) {
|
|
62
|
+
static renderLog(entries, countTokens) {
|
|
74
63
|
const log = Array.isArray(entries) ? entries : [];
|
|
75
|
-
return log.length > 0 ? PacketWire.#renderLogEntries(log) : "";
|
|
64
|
+
return log.length > 0 ? PacketWire.#renderLogEntries(log, countTokens) : "";
|
|
76
65
|
}
|
|
77
66
|
// Read one section's content by name off a packet (Engine's or re-parsed).
|
|
78
67
|
// The legible accessor — consumers name the section they want instead of
|
|
@@ -100,12 +89,12 @@ export default class PacketWire {
|
|
|
100
89
|
// the rendered result. §tokenomics-render-weight-budget
|
|
101
90
|
static measureLogBudget(entries, countTokens) {
|
|
102
91
|
const logEntries = Array.isArray(entries) ? entries : [];
|
|
103
|
-
const logBody = logEntries.length > 0 ? PacketWire.#renderLogEntries(logEntries) : "";
|
|
92
|
+
const logBody = logEntries.length > 0 ? PacketWire.#renderLogEntries(logEntries, countTokens) : "";
|
|
104
93
|
const HEAVIEST_COUNT = 10;
|
|
105
94
|
const byTurn = new Map();
|
|
106
95
|
const perEntry = [];
|
|
107
96
|
for (const e of logEntries) {
|
|
108
|
-
const weight = countTokens(PacketWire.#renderLogEntries([e]));
|
|
97
|
+
const weight = countTokens(PacketWire.#renderLogEntries([e], countTokens));
|
|
109
98
|
const coordinate = typeof e.coordinate === "string" ? e.coordinate : null;
|
|
110
99
|
const op = typeof e.op === "string" && e.op.length > 0 ? e.op : null;
|
|
111
100
|
// Turn = the loop_seq/turn_seq prefix of the coordinate
|
|
@@ -120,7 +109,7 @@ export default class PacketWire {
|
|
|
120
109
|
}
|
|
121
110
|
return {
|
|
122
111
|
entries: logEntries.length,
|
|
123
|
-
tokens: logBody ? countTokens(
|
|
112
|
+
tokens: logBody ? countTokens(`## Plurnk System Log\n\n${logBody}`) : 0,
|
|
124
113
|
byTurn: [...byTurn.entries()]
|
|
125
114
|
.map(([turn, tokens]) => ({ turn, tokens }))
|
|
126
115
|
.toSorted((a, b) => {
|
|
@@ -144,6 +133,18 @@ export default class PacketWire {
|
|
|
144
133
|
const numbered = source.split("\n").map((line, i) => `${start + i}:\t${line}`).join("\n");
|
|
145
134
|
return trailingNewline ? `${numbered}\n` : numbered;
|
|
146
135
|
}
|
|
136
|
+
// The single content-body renderer EVERY output-emitting op routes through, so the line-number
|
|
137
|
+
// convention the model orients on can't drift: line-navigable mimetypes (text/*) get the `N:\t`
|
|
138
|
+
// prefix from `startLine`; tree-navigable (JSON/XML/HTML) render verbatim so jsonpath/xpath
|
|
139
|
+
// isn't shifted. Empty content ⇒ "" (the meta line stands alone). §render-rule-line-navigable-prefix
|
|
140
|
+
static #renderContentBody(fence, content, mimetype, startLine = 1) {
|
|
141
|
+
if (content.length === 0)
|
|
142
|
+
return "";
|
|
143
|
+
const rendered = MimetypeBinary.isLineNavigableMimetype(mimetype)
|
|
144
|
+
? PacketWire.#numberLines(content, startLine)
|
|
145
|
+
: content;
|
|
146
|
+
return PacketWire.#wrapHeredocBody(fence, rendered);
|
|
147
|
+
}
|
|
147
148
|
// Tolerant JSON parser for log entries' rx/tx fields. The engine
|
|
148
149
|
// pre-parses application/json mimetypes, but render may also receive
|
|
149
150
|
// strings (legacy paths, manual tests). Returns null on parse failure.
|
|
@@ -194,66 +195,6 @@ export default class PacketWire {
|
|
|
194
195
|
const fence = channel ? `${uri}#${channel}` : uri;
|
|
195
196
|
return PacketWire.#wrapHeredocBody(fence, body);
|
|
196
197
|
}
|
|
197
|
-
// Re-render a plurnk statement (from log_entries.tx) as the heredoc form
|
|
198
|
-
// the model would have emitted. Used by the log render so the model sees
|
|
199
|
-
// its own ops in its own native syntax — what it wrote, mirrored back.
|
|
200
|
-
//
|
|
201
|
-
// Faithfulness over cleverness: render the parts as recorded. `target.raw`
|
|
202
|
-
// preserves exactly what the model wrote (URL with fragment, bare path,
|
|
203
|
-
// etc.) instead of round-tripping through scheme/pathname/fragment fields.
|
|
204
|
-
// Returns null when tx isn't a parseable PlurnkStatement (callers fall
|
|
205
|
-
// back to the meta line alone).
|
|
206
|
-
//
|
|
207
|
-
// Signal renders to `[…]`:
|
|
208
|
-
// - array of strings (tags) → `[tag1,tag2]`
|
|
209
|
-
// - number (status code, e.g. SEND[200]) → `[200]`
|
|
210
|
-
// - string (runtime, e.g. EXEC[python]) → `[python]`
|
|
211
|
-
// - null/missing → omitted
|
|
212
|
-
// All plurnk statements share the same syntactic frame; signal type
|
|
213
|
-
// varies by op but renders uniformly.
|
|
214
|
-
static #renderStatementHeredoc(tx) {
|
|
215
|
-
if (tx === null || typeof tx !== "object" || typeof tx.op !== "string" || tx.op.length === 0)
|
|
216
|
-
return null;
|
|
217
|
-
const op = tx.op;
|
|
218
|
-
const suffix = typeof tx.suffix === "string" ? tx.suffix : "";
|
|
219
|
-
let signalStr = "";
|
|
220
|
-
const signal = tx.signal;
|
|
221
|
-
if (Array.isArray(signal)) {
|
|
222
|
-
const tags = signal.filter((t) => typeof t === "string");
|
|
223
|
-
if (tags.length > 0)
|
|
224
|
-
signalStr = `[${tags.join(",")}]`;
|
|
225
|
-
}
|
|
226
|
-
else if (typeof signal === "number") {
|
|
227
|
-
signalStr = `[${signal}]`;
|
|
228
|
-
}
|
|
229
|
-
else if (typeof signal === "string" && signal.length > 0) {
|
|
230
|
-
signalStr = `[${signal}]`;
|
|
231
|
-
}
|
|
232
|
-
let targetStr = "";
|
|
233
|
-
const target = tx.target;
|
|
234
|
-
if (target !== null && target !== undefined && typeof target === "object" && typeof target.raw === "string") {
|
|
235
|
-
targetStr = `(${target.raw})`;
|
|
236
|
-
}
|
|
237
|
-
let markerStr = "";
|
|
238
|
-
const lm = tx.lineMarker;
|
|
239
|
-
if (lm !== null && lm !== undefined && typeof lm === "object" && Array.isArray(lm.marks) && lm.marks.length > 0) {
|
|
240
|
-
markerStr = lm.marks.length > 1 ? `<${lm.marks[0]},${lm.marks[1]}>` : `<${lm.marks[0]}>`;
|
|
241
|
-
}
|
|
242
|
-
let body;
|
|
243
|
-
if (typeof tx.body === "string")
|
|
244
|
-
body = tx.body;
|
|
245
|
-
else if (tx.body !== null && tx.body !== undefined && typeof tx.body === "object" && typeof tx.body.raw === "string")
|
|
246
|
-
body = tx.body.raw;
|
|
247
|
-
else
|
|
248
|
-
body = "";
|
|
249
|
-
// Character-perfect: no padding around body. The body string IS
|
|
250
|
-
// whatever the model wrote between the colons, including any leading
|
|
251
|
-
// or trailing whitespace it chose. Adding `\n` here would inflate
|
|
252
|
-
// single-line emissions into multi-line and nudge the model toward
|
|
253
|
-
// verbose forms — and it would violate the grammar's "body content
|
|
254
|
-
// is character-perfect" guarantee on the way back.
|
|
255
|
-
return `<<${op}${suffix}${signalStr}${targetStr}${markerStr}:${body}:${op}${suffix}`;
|
|
256
|
-
}
|
|
257
198
|
// Render a (scheme, pathname) tuple as the URI the model should SEE.
|
|
258
199
|
// Null scheme → bare pathname. The `file` scheme never reaches this
|
|
259
200
|
// function because Engine.#extractTarget normalizes it to null at the
|
|
@@ -292,7 +233,7 @@ export default class PacketWire {
|
|
|
292
233
|
return null;
|
|
293
234
|
return op !== null ? `log:///${coordinate}/${op}` : `log:///${coordinate}`;
|
|
294
235
|
}
|
|
295
|
-
static #renderLogEntries(entries) {
|
|
236
|
+
static #renderLogEntries(entries, countTokens) {
|
|
296
237
|
return entries.map((e) => {
|
|
297
238
|
const meta = {};
|
|
298
239
|
const coordinate = typeof e.coordinate === "string" ? e.coordinate : null;
|
|
@@ -313,79 +254,111 @@ export default class PacketWire {
|
|
|
313
254
|
const target = PacketWire.#renderActionTarget(e.target);
|
|
314
255
|
if (target !== null)
|
|
315
256
|
meta.target = target;
|
|
316
|
-
//
|
|
317
|
-
//
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
257
|
+
// EXEC's output is a separate stream entry (§exec-stream); its address rides in a
|
|
258
|
+
// `stream` link, distinct from `target` (the cwd / executable path it ran in).
|
|
259
|
+
if (op === "EXEC" && e.attrs !== null && typeof e.attrs === "object" && typeof e.attrs.stream === "string") {
|
|
260
|
+
meta.stream = e.attrs.stream;
|
|
261
|
+
}
|
|
262
|
+
// Parse rx once — reused for the matcher/items enrichment and the body.
|
|
263
|
+
const rx = (typeof e.rx === "string" ? PacketWire.#safeParse(e.rx) : e.rx);
|
|
264
|
+
// READ + FIND enrichment: the matcher body (from tx) + `items`, the count
|
|
265
|
+
// of rows the op returned — a matcher's hits, or a bare catalog FIND's entry
|
|
266
|
+
// count. Without it the model can't tell "0 results" from "empty content",
|
|
267
|
+
// nor weigh a re-FIND. `matches` when the dispatch tallied it; else a FIND
|
|
268
|
+
// body is a JSON array whose length IS the count.
|
|
269
|
+
let items = null;
|
|
270
|
+
if (op === "READ" || op === "FIND") {
|
|
322
271
|
const tx = e.tx;
|
|
323
272
|
if (tx !== null && tx !== undefined && typeof tx === "object" && tx.body !== null && typeof tx.body === "object") {
|
|
324
273
|
if (typeof tx.body.raw === "string")
|
|
325
274
|
meta.matcher = tx.body.raw;
|
|
326
275
|
}
|
|
327
|
-
const rx = (typeof e.rx === "string" ? PacketWire.#safeParse(e.rx) : e.rx);
|
|
328
276
|
if (rx !== null && typeof rx === "object" && typeof rx.matches === "number") {
|
|
329
|
-
|
|
277
|
+
items = rx.matches;
|
|
330
278
|
}
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
// Re-OPEN restores it. The row stays listed; only its weight drops.
|
|
336
|
-
if (e.folded === true)
|
|
337
|
-
return metaLine;
|
|
338
|
-
// READ@200: expose the response body. READ@204 (successfully empty —
|
|
339
|
-
// 0 matcher hits, sentinel slice, or empty source) has no body to
|
|
340
|
-
// render; the meta line carries the signal via `matches` / status code.
|
|
341
|
-
if (op === "READ" && e.status === 200) {
|
|
342
|
-
const rx = (typeof e.rx === "string" ? PacketWire.#safeParse(e.rx) : e.rx);
|
|
343
|
-
if (rx !== null && typeof rx === "object" && typeof rx.content === "string" && rx.content.length > 0) {
|
|
344
|
-
const fence = target ?? `log:///${coordinate}`;
|
|
345
|
-
// Line-navigable mimetypes (text/markdown, text/plain,
|
|
346
|
-
// source code, etc.) get N:\t prefix per plurnk.md. Tree-
|
|
347
|
-
// navigable (JSON, XML, HTML) render verbatim — line
|
|
348
|
-
// numbers in the wrapper would collide with structural
|
|
349
|
-
// navigation (jsonpath/xpath) used on these formats.
|
|
350
|
-
// Classifier is consumer-side in this repo (SPEC.md §render-rule, §render-rule-line-navigable-prefix, §render-rule-tree-navigable-verbatim).
|
|
351
|
-
const mimetype = typeof rx.mimetype === "string" ? rx.mimetype : "text/plain";
|
|
352
|
-
if (MimetypeBinary.isLineNavigableMimetype(mimetype)) {
|
|
353
|
-
const start = typeof rx.startLine === "number" ? rx.startLine : 1;
|
|
354
|
-
return `${metaLine}\n${PacketWire.#wrapHeredocBody(fence, PacketWire.#numberLines(rx.content, start))}`;
|
|
355
|
-
}
|
|
356
|
-
return `${metaLine}\n${PacketWire.#wrapHeredocBody(fence, rx.content)}`;
|
|
279
|
+
else if (op === "FIND" && rx !== null && typeof rx === "object" && typeof rx.content === "string") {
|
|
280
|
+
const parsed = PacketWire.#safeParse(rx.content);
|
|
281
|
+
if (Array.isArray(parsed))
|
|
282
|
+
items = parsed.length;
|
|
357
283
|
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
// "and here's X now." Serves the model's own EDITs and the system
|
|
363
|
-
// delta-EDITs (§env-delta) identically. Empty span (content emptied) →
|
|
364
|
-
// meta line only.
|
|
365
|
-
if (op === "EDIT") {
|
|
366
|
-
const rx = (typeof e.rx === "string" ? PacketWire.#safeParse(e.rx) : e.rx);
|
|
367
|
-
if (rx !== null && typeof rx === "object" && typeof rx.span === "string") {
|
|
368
|
-
const fence = target ?? `log:///${coordinate}`;
|
|
369
|
-
return rx.span.length > 0 ? `${metaLine}\n${PacketWire.#wrapHeredocBody(fence, rx.span)}` : metaLine;
|
|
284
|
+
// The matched set's content weight (sum of the entries' live channel tokens) — the
|
|
285
|
+
// FIND self-describes its hits' READ-cost; carries the per-scheme roll-up in the foist.
|
|
286
|
+
if (op === "FIND" && rx !== null && typeof rx === "object" && typeof rx.itemsTokenTotal === "number") {
|
|
287
|
+
meta.itemsTokenTotal = rx.itemsTokenTotal;
|
|
370
288
|
}
|
|
371
289
|
}
|
|
372
|
-
//
|
|
373
|
-
//
|
|
374
|
-
//
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
290
|
+
// The foldable body — computed ALWAYS (folded too), because `tokens` measures it: for
|
|
291
|
+
// an open row that's what a FOLD would save, for a folded row what an OPEN would cost.
|
|
292
|
+
// "" ⇒ genuinely no body (an empty FIND, an empty EDIT span, a @204).
|
|
293
|
+
let body = "";
|
|
294
|
+
if (op === "FIND" && e.status === 200 && items === 0) {
|
|
295
|
+
// Empty FIND result → no body. items:0 already says "empty"; rendering [] under a
|
|
296
|
+
// fence is redundant noise. (The always-foisted empty known:///** / unknown:///**
|
|
297
|
+
// workspace rows are the common case.)
|
|
298
|
+
body = "";
|
|
299
|
+
}
|
|
300
|
+
else if ((op === "READ" || op === "FIND") && e.status === 200 &&
|
|
301
|
+
rx !== null && typeof rx === "object" && typeof rx.content === "string" && rx.content.length > 0) {
|
|
302
|
+
// READ@200 / FIND@200: the content READ pulled, or the catalog rows / matched
|
|
303
|
+
// entries FIND returned (§render-rule-find-renders-result) — the turn-0 foisted
|
|
304
|
+
// FIND(scheme:///**) reaches the packet here, as does the exec-stream injector's
|
|
305
|
+
// foisted READ of the channel. #renderContentBody applies the line-number convention
|
|
306
|
+
// (§render-rule-line-navigable-prefix / §render-rule-tree-navigable-verbatim).
|
|
307
|
+
const mimetype = typeof rx.mimetype === "string" ? rx.mimetype : "text/plain";
|
|
308
|
+
const start = typeof rx.startLine === "number" ? rx.startLine : 1;
|
|
309
|
+
body = PacketWire.#renderContentBody(target ?? `log:///${coordinate}`, rx.content, mimetype, start);
|
|
310
|
+
}
|
|
311
|
+
else if (op === "EDIT" && rx !== null && typeof rx === "object" && typeof rx.span === "string") {
|
|
312
|
+
// EDIT (§edit-result-render): the resulting span as it looks now. editedSpan already
|
|
313
|
+
// line-numbered it with the changed region's REAL offsets (e.g. 50:\t…), so wrap
|
|
314
|
+
// verbatim — re-numbering here would double it (1:\t50:\t…) and lose the true line
|
|
315
|
+
// position. Empty span (content emptied) ⇒ no body — the meta line stands alone.
|
|
316
|
+
const span = rx.span;
|
|
317
|
+
if (span.length > 0)
|
|
318
|
+
body = PacketWire.#wrapHeredocBody(target ?? `log:///${coordinate}`, span);
|
|
319
|
+
}
|
|
320
|
+
else if (op === "EXEC" && e.tx !== null && e.tx !== undefined && typeof e.tx.body === "string") {
|
|
321
|
+
// EXEC: the literal command body, :::-fenced + line-numbered at the op's log address —
|
|
322
|
+
// the model sees what it ran and can reference lines of its own code. The OUTPUT is a
|
|
323
|
+
// SEPARATE stream (meta.stream), surfaced by the injector, never re-emitted here. §exec-stream
|
|
324
|
+
body = PacketWire.#renderContentBody(path ?? `log:///${coordinate}`, e.tx.body, "text/plain");
|
|
325
|
+
}
|
|
326
|
+
else if ((op === "PLAN" || op === "SEND") && e.tx !== null && e.tx !== undefined) {
|
|
327
|
+
// PLAN's plan / SEND's message ride into the log as N:\t content at the op's log address —
|
|
328
|
+
// the log mirrors the model's WORK, NEVER a repeated <<OP:…:OP tag (tags are emission
|
|
329
|
+
// syntax, not the log paradigm). Bodyless ops (COPY/MOVE/OPEN/FOLD, a non-200 READ/FIND
|
|
330
|
+
// whose matcher already rides in meta, a span-less EDIT) fall through to their meta line.
|
|
331
|
+
const b = e.tx.body;
|
|
332
|
+
const opBody = typeof b === "string" ? b
|
|
333
|
+
: b !== null && typeof b === "object" && typeof b.raw === "string" ? b.raw : "";
|
|
334
|
+
if (opBody.length > 0)
|
|
335
|
+
body = PacketWire.#renderContentBody(path ?? `log:///${coordinate}`, opBody, "text/plain");
|
|
336
|
+
}
|
|
337
|
+
// tokens on EVERY row (0 when there's genuinely no body) so the model can always weigh
|
|
338
|
+
// it; for a folded row this is the cost an OPEN would add. items present even at 0.
|
|
339
|
+
if (items !== null)
|
|
340
|
+
meta.items = items;
|
|
341
|
+
// 0 for a genuinely empty body — never call countTokens("") (some providers return
|
|
342
|
+
// undefined for it, which JSON.stringify would drop, leaving the row with no tokens).
|
|
343
|
+
meta.tokens = body.length > 0 ? countTokens(body) : 0;
|
|
344
|
+
// Body-state marker — body-aware so `-` never sits on a bodyless row:
|
|
345
|
+
// `*` no body (nothing to OPEN) · `+` open (body shown) · `-` folded (OPEN to expand).
|
|
346
|
+
const marker = body.length === 0 ? "*" : e.folded === true ? "-" : "+";
|
|
347
|
+
const metaLine = `${marker} ${PacketWire.#canonicalJson(meta)}`;
|
|
348
|
+
// Render the body only when OPEN; a folded row is its meta line alone (body hidden).
|
|
349
|
+
return (e.folded !== true && body.length > 0) ? `${metaLine}\n${body}` : metaLine;
|
|
382
350
|
}).join("\n");
|
|
383
351
|
}
|
|
384
352
|
static #renderActionTarget(target) {
|
|
385
353
|
if (target === null || target === undefined)
|
|
386
354
|
return null;
|
|
387
355
|
const rendered = PacketWire.#renderModelUri(target.scheme, target.pathname);
|
|
388
|
-
|
|
356
|
+
if (rendered.length === 0)
|
|
357
|
+
return null;
|
|
358
|
+
// The channel fragment (#stdout/#stderr) is part of the address — a stream delta has to
|
|
359
|
+
// say WHICH channel it is, not just the entry. §exec-stream
|
|
360
|
+
const fragment = typeof target.fragment === "string" && target.fragment.length > 0 ? `#${target.fragment}` : "";
|
|
361
|
+
return rendered + fragment;
|
|
389
362
|
}
|
|
390
363
|
// Render TelemetryEvent[] → meta line per event, optionally followed by
|
|
391
364
|
// an N:\t-prefixed snippet block when the event carries `snippet` (the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packet-wire.js","sourceRoot":"","sources":["../../src/core/packet-wire.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"packet-wire.js","sourceRoot":"","sources":["../../src/core/packet-wire.ts"],"names":[],"mappings":"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"}
|
package/dist/core/teaching.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teaching.d.ts","sourceRoot":"","sources":["../../src/core/teaching.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"teaching.d.ts","sourceRoot":"","sources":["../../src/core/teaching.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,MAAyB,CAAC;AAM1E,eAAO,MAAM,cAAc,QAAO,WAAW,CAAC,MAAM,CACgD,CAAC"}
|
package/dist/core/teaching.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
// #240 — the shared teaching-line shape for the System Tools (exec tags) + System Schemes
|
|
2
|
-
// directories: a terse `* <oneliner
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
|
|
2
|
+
// directories: a terse `* <oneliner>`, rendered IDENTICALLY for execs and schemes. The example
|
|
3
|
+
// self-documents its tag/scheme, so no service-added prefix. Reference docs are NOT linked inline
|
|
4
|
+
// (#270): they're materialized at plurnk://docs/<name>.md and discovered via the turn-1
|
|
5
|
+
// FIND(plurnk://docs/**) foist, keeping the raw packet free of doc links. `* ` bullets + bare op
|
|
6
|
+
// forms match the packet's list/op rendering (no `- `, no backticks).
|
|
7
|
+
export const teachingLine = (oneliner) => `* ${oneliner}`;
|
|
6
8
|
// #240 — PLURNK_DOCS_EXCLUDE: a comma list of scheme/exec names dropped from BOTH the teaching
|
|
7
9
|
// oneliner AND the materialized pull-doc, on load — the self-evident/retired names the operator
|
|
8
10
|
// wants no doc for (default `plurnk,file,exec`, set in .env.example). Read per-call so a process
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teaching.js","sourceRoot":"","sources":["../../src/core/teaching.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,+FAA+F;AAC/F,
|
|
1
|
+
{"version":3,"file":"teaching.js","sourceRoot":"","sources":["../../src/core/teaching.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,+FAA+F;AAC/F,kGAAkG;AAClG,wFAAwF;AACxF,iGAAiG;AACjG,sEAAsE;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;AAE1E,+FAA+F;AAC/F,gGAAgG;AAChG,iGAAiG;AACjG,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAwB,EAAE,CACpD,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAK1F,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAK1F,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnD,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;AAkDpF,MAAM,CAAC,OAAO,OAAO,IAAI;;IACrB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAc7B;IAKI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAYjC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAoB1H,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAYzC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IA6C7E,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;IA8KzD,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAI7E,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"}
|
package/dist/schemes/Exec.js
CHANGED
|
@@ -5,8 +5,6 @@ import EntryFind from "./_entry-find.js";
|
|
|
5
5
|
import ChannelWrite from "../core/ChannelWrite.js";
|
|
6
6
|
import ExecEnv from "./exec-env.js";
|
|
7
7
|
import ExecAbort from "./exec-abort.js";
|
|
8
|
-
import ExecReceipt from "./exec-receipt.js";
|
|
9
|
-
import { renderAddress } from "../core/plurnk-uri.js";
|
|
10
8
|
import { writeFile, unlink } from "node:fs/promises";
|
|
11
9
|
import { tmpdir } from "node:os";
|
|
12
10
|
import { join } from "node:path";
|
|
@@ -62,7 +60,7 @@ export default class Exec {
|
|
|
62
60
|
volatile: true,
|
|
63
61
|
modelVisible: true,
|
|
64
62
|
example: "<<EXEC[sqlite]:SELECT 22.0 / 7.0:EXEC",
|
|
65
|
-
documentation: "Runs a command in a runtime — `<<EXEC[runtime](cwd):command:EXEC` —
|
|
63
|
+
documentation: "Runs a command in a runtime — `<<EXEC[runtime](cwd):command:EXEC` — output streams into the run's `<runtime>:///<loop>/<turn>/<seq>` entry, channels stdout/stderr. A host-effecting command proposes for review before it runs; a read-only/pure one runs ungated. Either way you never fetch the output: the engine surfaces each turn's new stream bytes to you automatically — folded while the command runs, opened when it finishes.",
|
|
66
64
|
flags: {
|
|
67
65
|
excludedInAsk: true,
|
|
68
66
|
},
|
|
@@ -144,7 +142,7 @@ export default class Exec {
|
|
|
144
142
|
const cwdFromOp = cwdFromTarget(statement.target);
|
|
145
143
|
// Effect on the RAW target (pre-cwd-default) decides the lifecycle:
|
|
146
144
|
// host → propose, read/pure → auto-run inline (plurnk-service#182).
|
|
147
|
-
const policy = EffectPolicy.decide(resolved.executor.effect(cwdFromOp)); // pure/read auto-run
|
|
145
|
+
const policy = EffectPolicy.decide(resolved.executor.effect(cwdFromOp)); // pure/read auto-run ungated — §exec-readpure-ungated
|
|
148
146
|
// Default cwd to the session's project_root so EXEC runs in the
|
|
149
147
|
// same directory File scheme writes to. Without this default, the
|
|
150
148
|
// model creates a file via EDIT (lands in project_root) and then
|
|
@@ -250,23 +248,12 @@ export default class Exec {
|
|
|
250
248
|
const tail = this.#runExecutor({
|
|
251
249
|
executor: resolved.executor,
|
|
252
250
|
runtime, command, cwd, ctx, pathname,
|
|
253
|
-
entryId, subscriptionId, signal: controller.signal,
|
|
254
|
-
inline: attrs.inline === true, tempPath,
|
|
251
|
+
entryId, subscriptionId, signal: controller.signal, tempPath,
|
|
255
252
|
});
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
//
|
|
259
|
-
//
|
|
260
|
-
if (attrs.inline === true) {
|
|
261
|
-
const closeStatus = await tail;
|
|
262
|
-
const read = await EntryCrud.readEntry(pathname, ctx, runtime);
|
|
263
|
-
const address = renderAddress(runtime, pathname); // canonical 3-slash form (pathname has a leading /), matches the manifest handle
|
|
264
|
-
const channel = read.entry?.channels[resolved.executor.defaultChannel];
|
|
265
|
-
const body = channel === undefined
|
|
266
|
-
? `${address} — (no output)`
|
|
267
|
-
: ExecReceipt.build(address, channel.content, channel.mimetype);
|
|
268
|
-
return { status: closeStatus, body };
|
|
269
|
-
}
|
|
253
|
+
// Every exec backgrounds + streams (§exec-stream): no same-turn receipt — the output
|
|
254
|
+
// surfaces as the environment-observation injector's delta on the next turn (folded while
|
|
255
|
+
// it runs, opened when it finishes). Pure/read commands still auto-accept (attrs.inline =
|
|
256
|
+
// no human gate); they just resolve a turn later, uniformly with host streams.
|
|
270
257
|
this.#activeSpawns.set(subscriptionId, tail);
|
|
271
258
|
return { status: 200, outcome: "started" };
|
|
272
259
|
}
|
|
@@ -282,7 +269,7 @@ export default class Exec {
|
|
|
282
269
|
// notify's reported state to "closed" before the chunk event fires
|
|
283
270
|
// as "active." Chain through a single promise queue to serialize.
|
|
284
271
|
async #runExecutor(opts) {
|
|
285
|
-
const { executor, runtime, command, cwd, ctx, pathname, entryId, subscriptionId, signal,
|
|
272
|
+
const { executor, runtime, command, cwd, ctx, pathname, entryId, subscriptionId, signal, tempPath } = opts;
|
|
286
273
|
const db = ctx.db;
|
|
287
274
|
const coordinate = coordinateFromPathname(pathname); // #224 — stamped on stream/event + stream/concluded
|
|
288
275
|
let queue = Promise.resolve();
|
|
@@ -329,9 +316,9 @@ export default class Exec {
|
|
|
329
316
|
this.#activeAborts.get(subscriptionId)?.unlink();
|
|
330
317
|
this.#activeAborts.delete(subscriptionId);
|
|
331
318
|
this.#activeSpawns.delete(subscriptionId);
|
|
332
|
-
//
|
|
333
|
-
//
|
|
334
|
-
if (
|
|
319
|
+
// Every run backgrounds now (§exec-stream) — wake a parked loop on completion so the
|
|
320
|
+
// run resumes to the turn where the stream's terminal delta surfaces.
|
|
321
|
+
if (ctx.wakeRunNotify !== undefined) {
|
|
335
322
|
ctx.wakeRunNotify({
|
|
336
323
|
sessionId: ctx.sessionId, runId: ctx.runId,
|
|
337
324
|
entryId, target: `${runtime}://${pathname}`, subscriptionId, closeStatus,
|