@plurnk/plurnk-service 0.17.0 → 0.20.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 +39 -15
- package/bin/plurnk-service.ts +1 -0
- package/dist/core/ChannelWrite.d.ts +4 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +8 -0
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +1 -1
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +39 -17
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +12 -5
- package/dist/core/git-membership.js.map +1 -1
- package/dist/schemes/Exec.d.ts +2 -2
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +13 -6
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts +10 -3
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +81 -114
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +43 -10
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Plurnk.js +1 -1
- package/dist/schemes/_entry-crud.d.ts +2 -0
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +4 -0
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +25 -5
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-graph.d.ts +11 -0
- package/dist/schemes/_entry-graph.d.ts.map +1 -0
- package/dist/schemes/_entry-graph.js +81 -0
- package/dist/schemes/_entry-graph.js.map +1 -0
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +46 -4
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +12 -1
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +13 -0
- package/dist/schemes/_entry-semantic.d.ts.map +1 -0
- package/dist/schemes/_entry-semantic.js +67 -0
- package/dist/schemes/_entry-semantic.js.map +1 -0
- package/dist/schemes/cosine.d.ts +4 -0
- package/dist/schemes/cosine.d.ts.map +1 -0
- package/dist/schemes/cosine.js +9 -0
- package/dist/schemes/cosine.js.map +1 -0
- package/dist/server/envelope.d.ts +1 -0
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +8 -0
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/methods/session_attach.d.ts.map +1 -1
- package/dist/server/methods/session_attach.js +3 -0
- package/dist/server/methods/session_attach.js.map +1 -1
- package/migrations/0000-00-00.01_schema.sql +67 -1
- package/package.json +110 -109
package/dist/schemes/File.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { readFile, realpath, writeFile } from "node:fs/promises";
|
|
2
2
|
import { resolve, relative, isAbsolute, matchesGlob } from "node:path";
|
|
3
3
|
import { createPatch } from "diff";
|
|
4
|
+
import EntryOps from "./_entry-ops.js";
|
|
5
|
+
import EntryFind from "./_entry-find.js";
|
|
4
6
|
import EntryCrud from "./_entry-crud.js";
|
|
5
|
-
import { LineMarkerOps, MimetypeBinary
|
|
7
|
+
import { LineMarkerOps, MimetypeBinary } from "../content/index.js";
|
|
6
8
|
// Workspace root for file ops is sourced from `sessions.project_root`,
|
|
7
9
|
// supplied by the client at session.create or session.set_root (issue
|
|
8
10
|
// #150 wired the RPC; F.1 added the column). Server doesn't guess —
|
|
@@ -13,8 +15,6 @@ const loadSessionRoot = async (db, sessionId) => {
|
|
|
13
15
|
const row = await db.envelope_get_session.get({ id: sessionId });
|
|
14
16
|
return row?.project_root ?? null;
|
|
15
17
|
};
|
|
16
|
-
// Resolve + workspace-root containment check. Returns the canonical
|
|
17
|
-
// path on success; classified error on absence/traversal. Used by read.
|
|
18
18
|
// Detect mimetype from a file's path. Routes through the Mimetypes service
|
|
19
19
|
// when available; falls back to the text primitive (text/markdown). The
|
|
20
20
|
// `MimetypeBinary.normalizeAutoTextMimetype` wrapper ensures text/plain returned by the
|
|
@@ -27,33 +27,24 @@ const detectFileMimetype = async (canonical, ctx) => {
|
|
|
27
27
|
}
|
|
28
28
|
return MimetypeBinary.TEXT_PRIMITIVE_MIMETYPE;
|
|
29
29
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return { error: "traversal" };
|
|
45
|
-
return { canonical, root };
|
|
46
|
-
};
|
|
47
|
-
// SECURITY — File deliberately implements only read() / edit() / applyResolution(),
|
|
48
|
-
// NOT the readEntry/writeEntry CRUD pair that COPY/MOVE dispatch on. So COPY and
|
|
49
|
-
// MOVE to or from a file:// path return 501 (Engine.#copyOrchestration), leaving
|
|
50
|
-
// read() (membership-gated) and edit()'s proposal flow (membership-gated) as the
|
|
51
|
-
// ONLY routes to disk. If you add readEntry/writeEntry here, they MUST carry the
|
|
52
|
-
// same membership gate, or COPY/MOVE becomes an ungated read/overwrite of a
|
|
53
|
-
// non-member — the `.env` leak/wipe the edit gate (§14.3) exists to prevent.
|
|
30
|
+
// SECURITY — File is entry-backed, identical to Known: read()/find()/readEntry()
|
|
31
|
+
// delegate to the shared Entry* helpers over the membership-materialized entries
|
|
32
|
+
// (scheme=null). The membership gate is now ENTRY-EXISTENCE — a non-member has no
|
|
33
|
+
// entry, so read/find/readEntry 404 it for free, the same invariant Known runs on
|
|
34
|
+
// (a gitignored `.env` is never a member → never an entry → never readable). Disk
|
|
35
|
+
// I/O is confined to the two edges that own it: the git-membership materialize-IN
|
|
36
|
+
// and edit()/applyResolution()'s proposal-gated write-OUT (§14.3), where the
|
|
37
|
+
// containment/traversal checks live.
|
|
38
|
+
//
|
|
39
|
+
// writeEntry() is deliberately ABSENT: a COPY/MOVE *into* file:// is a disk write
|
|
40
|
+
// and MUST flow through the §14.3 proposal gate (like EDIT), not an ungated
|
|
41
|
+
// overwrite — the `.env`-wipe this guard prevents. So COPY/MOVE *from* file://
|
|
42
|
+
// works (readEntry); *into* file:// stays 501 until the proposal-gated write-back
|
|
43
|
+
// lands. The 501 is duck-typed on writeEntry's absence (Engine.#copyOrchestration).
|
|
54
44
|
export default class File {
|
|
55
45
|
static manifest = {
|
|
56
46
|
name: "file",
|
|
47
|
+
storedScheme: null, // file rows persist bare (entries.scheme = NULL); renders as a bare path
|
|
57
48
|
channels: {}, // dynamic mimetype per file extension
|
|
58
49
|
defaultChannel: "body",
|
|
59
50
|
category: "data",
|
|
@@ -62,65 +53,33 @@ export default class File {
|
|
|
62
53
|
volatile: false,
|
|
63
54
|
modelVisible: true,
|
|
64
55
|
};
|
|
56
|
+
// Entry-backed, identical to Known (the unified-addressing promise): read the
|
|
57
|
+
// membership-materialized entry (scheme=null) through the shared helper. <L> /
|
|
58
|
+
// body / binary-415 / tag-404 are all handled there; a non-member has no entry
|
|
59
|
+
// → 404, the same gate Known runs on. Disk is reached only at the materialize
|
|
60
|
+
// and write-back edges (git-membership, applyResolution) — never on a read.
|
|
65
61
|
async read(statement, ctx) {
|
|
66
|
-
|
|
67
|
-
return { status: 400, content: null, mimetype: null, error: "READ requires a target path" };
|
|
68
|
-
if (Array.isArray(statement.signal) && statement.signal.length > 0) {
|
|
69
|
-
// file:// entries don't carry tag metadata (tags belong to canonical
|
|
70
|
-
// entries; file entries are disk-truth). A tag-filtered READ on a
|
|
71
|
-
// file path will never match — 404 by definition.
|
|
72
|
-
return { status: 404, content: null, mimetype: null };
|
|
73
|
-
}
|
|
74
|
-
const root = await loadSessionRoot(ctx.db, ctx.sessionId);
|
|
75
|
-
if (root === null)
|
|
76
|
-
return { status: 400, content: null, mimetype: null, error: "session has no project_root; cannot READ files" };
|
|
77
|
-
const pathname = statement.target.kind === "url" ? statement.target.pathname : statement.target.raw;
|
|
78
|
-
const resolved = await resolveContained(pathname, root);
|
|
79
|
-
if ("error" in resolved) {
|
|
80
|
-
if (resolved.error === "not-found")
|
|
81
|
-
return { status: 404, content: null, mimetype: null };
|
|
82
|
-
return { status: 403, content: null, mimetype: null };
|
|
83
|
-
}
|
|
84
|
-
// Membership gate (SPEC §14.3 D4). The model reads only members:
|
|
85
|
-
// entries the client added, OR git-tracked files registered as members
|
|
86
|
-
// by resolveGitMembership at workspace setup (D1/D4) and refreshed at
|
|
87
|
-
// prompt-composition (D5). Keyed on the canonical relpath (how members
|
|
88
|
-
// are stored) AFTER the containment resolve, so a non-member is 404
|
|
89
|
-
// (indistinguishable from not-found) and never reaches the read below.
|
|
90
|
-
const member = await ctx.db.crud_find_session_entry.get({ session_id: ctx.sessionId, scheme: null, pathname: relative(resolved.root, resolved.canonical) });
|
|
91
|
-
if (member === undefined)
|
|
92
|
-
return { status: 404, content: null, mimetype: null };
|
|
93
|
-
const mimetype = await detectFileMimetype(resolved.canonical, ctx);
|
|
94
|
-
if (MimetypeBinary.isBinaryMimetype(mimetype))
|
|
95
|
-
return { status: 415, content: null, mimetype };
|
|
96
|
-
const content = await readFile(resolved.canonical, "utf8");
|
|
97
|
-
// `<L>` scopes; body matches within the scope (slice-then-match).
|
|
98
|
-
// `<L>` dispatches on source mimetype (plurnk-grammar 0.13.0):
|
|
99
|
-
// JSON → LineMarkerOps.sliceJsonItems (item index)
|
|
100
|
-
// line-navigable → LineMarkerOps.sliceLines (line index)
|
|
101
|
-
return ReadResolve.resolve({
|
|
102
|
-
content,
|
|
103
|
-
mimetype,
|
|
104
|
-
lineMarker: statement.lineMarker,
|
|
105
|
-
body: statement.body,
|
|
106
|
-
mimetypes: ctx.mimetypes,
|
|
107
|
-
});
|
|
62
|
+
return EntryOps.readSessionEntry(statement, ctx, File.manifest);
|
|
108
63
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
//
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
64
|
+
async find(statement, ctx) {
|
|
65
|
+
return EntryFind.findSessionEntries(statement, ctx, File.manifest);
|
|
66
|
+
}
|
|
67
|
+
// COPY/MOVE FROM file:// — read-only, gated by entry-existence (a non-member
|
|
68
|
+
// has no entry → 404). The write-back side (writeEntry) is deliberately absent;
|
|
69
|
+
// see the SECURITY note above.
|
|
70
|
+
async readEntry(pathname, ctx) {
|
|
71
|
+
return EntryCrud.readEntry(pathname, ctx, null);
|
|
72
|
+
}
|
|
73
|
+
// §14.3 disk-write gate, shared by edit() and writeEntry() (the COPY/MOVE
|
|
74
|
+
// dest). Resolves the canonical path; enforces containment (traversal → 403),
|
|
75
|
+
// membership (existing non-member → 403, the `.env` protection), the read-only
|
|
76
|
+
// overlay (→ 403), and binary (→ 415); reads current content for the diff. A
|
|
77
|
+
// not-found path is fine — we propose to CREATE. ONE home for the gate: an edit
|
|
78
|
+
// and a copy into file:// are the same disk write under the same review.
|
|
79
|
+
async #resolveWriteTarget(pathname, ctx) {
|
|
116
80
|
const root = await loadSessionRoot(ctx.db, ctx.sessionId);
|
|
117
|
-
if (root === null)
|
|
118
|
-
return { status: 400, error: "session has no project_root; client must call session.create({projectRoot}) or session.set_root({projectRoot}) before file ops" };
|
|
119
|
-
}
|
|
120
|
-
const pathname = statement.target.kind === "url" ? statement.target.pathname : statement.target.raw;
|
|
121
|
-
// Resolve existence + canonical path WITHOUT reading content yet — the
|
|
122
|
-
// read is gated on membership below. A not-found target is fine (we
|
|
123
|
-
// propose to create); traversal escape is fatal.
|
|
81
|
+
if (root === null)
|
|
82
|
+
return { ok: false, status: 400, error: "session has no project_root; client must call session.create({projectRoot}) or session.set_root({projectRoot}) before file ops" };
|
|
124
83
|
let canonical;
|
|
125
84
|
const requested = isAbsolute(pathname) ? pathname : resolve(root, pathname);
|
|
126
85
|
let fileExists = true;
|
|
@@ -133,42 +92,41 @@ export default class File {
|
|
|
133
92
|
canonical = requested;
|
|
134
93
|
fileExists = false;
|
|
135
94
|
}
|
|
136
|
-
// Re-check containment against the canonical path. Symlinks could
|
|
137
|
-
// escape workspace; reject.
|
|
138
95
|
const rel = relative(root, canonical);
|
|
139
|
-
if (rel.startsWith("..") || isAbsolute(rel))
|
|
140
|
-
return { status: 403, error: "path escapes workspace root" };
|
|
141
|
-
}
|
|
142
|
-
// Membership gate (SPEC §14.3), symmetric with read. EDIT may CREATE a
|
|
143
|
-
// new path (proposal→accept adds it to the manifest) or edit an existing
|
|
144
|
-
// MEMBER — but an existing NON-member is forbidden: never read its
|
|
145
|
-
// content (no leak into the proposal) and never overwrite a file the
|
|
146
|
-
// model can't see (a gitignored `.env` it never added). 403, the same
|
|
147
|
-
// code as a traversal: "you can't write here," not "something is there."
|
|
96
|
+
if (rel.startsWith("..") || isAbsolute(rel))
|
|
97
|
+
return { ok: false, status: 403, error: "path escapes workspace root" };
|
|
148
98
|
let original = "";
|
|
149
99
|
if (fileExists) {
|
|
150
100
|
const member = await ctx.db.crud_find_session_entry.get({ session_id: ctx.sessionId, scheme: null, pathname: rel });
|
|
151
101
|
if (member === undefined)
|
|
152
|
-
return { status: 403, error: "path is outside your workspace surface" };
|
|
153
|
-
// read-only overlay (SPEC §14.3): a member matching a read-only glob is
|
|
154
|
-
// readable but not writable — refuse before reading or diffing.
|
|
102
|
+
return { ok: false, status: 403, error: "path is outside your workspace surface" };
|
|
155
103
|
const readonlyGlobs = (await ctx.db.crud_list_session_constraints.all({ session_id: ctx.sessionId }))
|
|
156
104
|
.filter((c) => c.effect === "read-only").map((c) => c.glob);
|
|
157
105
|
if (readonlyGlobs.some((g) => matchesGlob(rel, g)))
|
|
158
|
-
return { status: 403, error: "member is read-only" };
|
|
106
|
+
return { ok: false, status: 403, error: "member is read-only" };
|
|
159
107
|
original = await readFile(canonical, "utf8");
|
|
160
108
|
}
|
|
161
|
-
// 415 on binary entries (SPEC.md §16.9).
|
|
162
|
-
// Existing file's mimetype takes precedence; for new files, derive
|
|
163
|
-
// from the proposed path so we don't accept binary writes via edit.
|
|
164
109
|
const mimetype = await detectFileMimetype(canonical, ctx);
|
|
165
110
|
if (MimetypeBinary.isBinaryMimetype(mimetype))
|
|
166
|
-
return { status: 415, error: `cannot
|
|
111
|
+
return { ok: false, status: 415, error: `cannot write binary mimetype \`${mimetype}\`` };
|
|
112
|
+
return { ok: true, canonical, rel, fileExists, original, mimetype };
|
|
113
|
+
}
|
|
114
|
+
// Edit op (task #42 canonical proposal consumer). Returns status=202
|
|
115
|
+
// with a udiff body for client review + attrs carrying the full patched
|
|
116
|
+
// content. Engine writes the proposed log entry, pauses dispatch, and
|
|
117
|
+
// calls applyResolution() (below) after the proposal accepts.
|
|
118
|
+
async edit(statement, ctx) {
|
|
119
|
+
if (statement.target === null)
|
|
120
|
+
return { status: 400, error: "EDIT requires a path" };
|
|
121
|
+
const pathname = statement.target.kind === "url" ? statement.target.pathname : statement.target.raw;
|
|
122
|
+
const target = await this.#resolveWriteTarget(pathname, ctx);
|
|
123
|
+
if (!target.ok)
|
|
124
|
+
return { status: target.status, error: target.error };
|
|
125
|
+
const { canonical, rel, fileExists, original, mimetype } = target;
|
|
167
126
|
// `<L>` line marker dispatches on file mimetype: JSON →
|
|
168
127
|
// LineMarkerOps.applyJsonItemEdit (structural item edit); otherwise →
|
|
169
128
|
// LineMarkerOps.applyLineMarkerEdit (line edit). On a non-existent file,
|
|
170
|
-
// body becomes content regardless of marker (per "Resolved
|
|
171
|
-
// ambiguities" §3).
|
|
129
|
+
// body becomes content regardless of marker (per "Resolved ambiguities" §3).
|
|
172
130
|
const body = statement.body ?? "";
|
|
173
131
|
let patched;
|
|
174
132
|
if (statement.lineMarker !== null && fileExists) {
|
|
@@ -183,16 +141,25 @@ export default class File {
|
|
|
183
141
|
patched = body;
|
|
184
142
|
}
|
|
185
143
|
const patch = createPatch(rel, original, patched, "current", "proposed");
|
|
186
|
-
return {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
144
|
+
return { status: 202, body: patch, attrs: { path: rel, canonical, patch, patched } };
|
|
145
|
+
}
|
|
146
|
+
// COPY/MOVE INTO file:// — the dest write. Same §14.3 gate as edit, same 202
|
|
147
|
+
// proposal + applyResolution path: a copy onto disk is a disk write and earns
|
|
148
|
+
// the identical human review. Engine.#copyOrchestration propagates this 202;
|
|
149
|
+
// Engine.#runApplyResolution routes the accept back here via the dest scheme;
|
|
150
|
+
// applyResolution() writes the file + registers the entry. The copied content
|
|
151
|
+
// is the source's body channel (full replacement — files are body-only).
|
|
152
|
+
async writeEntry(pathname, entry, ctx) {
|
|
153
|
+
const bodyChannel = entry.channels.body;
|
|
154
|
+
if (bodyChannel === undefined)
|
|
155
|
+
return { status: 400, created: false, entryId: null };
|
|
156
|
+
const target = await this.#resolveWriteTarget(pathname, ctx);
|
|
157
|
+
if (!target.ok)
|
|
158
|
+
return { status: target.status, created: false, entryId: null };
|
|
159
|
+
const { canonical, rel, fileExists, original } = target;
|
|
160
|
+
const patched = bodyChannel.content;
|
|
161
|
+
const patch = createPatch(rel, original, patched, "current", "proposed");
|
|
162
|
+
return { status: 202, created: !fileExists, entryId: null, body: patch, attrs: { path: rel, canonical, patch, patched } };
|
|
196
163
|
}
|
|
197
164
|
// applyResolution — called by Engine.dispatch after a proposed log
|
|
198
165
|
// entry resolves with decision=accept. Two responsibilities:
|
package/dist/schemes/File.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../src/schemes/File.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,SAAS,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../src/schemes/File.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGrG,KAAK,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
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,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGrG,KAAK,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAiCzC,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,gBAAgB,CAAC;IA2DnF,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;CAgC1F"}
|
package/dist/schemes/Log.js
CHANGED
|
@@ -13,6 +13,24 @@ const parseCoordinate = (pathname) => {
|
|
|
13
13
|
sequence: Number(match[3]),
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
+
// <L> over a matched row set (mirrors EntryFind.#paginate): <N> picks the Nth,
|
|
17
|
+
// <N,M> the range; 0→1, -1→last; out-of-range → 416.
|
|
18
|
+
const paginate = (items, marker) => {
|
|
19
|
+
const total = items.length;
|
|
20
|
+
const { first, last } = marker;
|
|
21
|
+
if (last === null) {
|
|
22
|
+
if (first === 0 || first === -1)
|
|
23
|
+
return { status: 200, items: [] };
|
|
24
|
+
if (first > 0 && first <= total)
|
|
25
|
+
return { status: 200, items: [items[first - 1]] };
|
|
26
|
+
return { status: 416 };
|
|
27
|
+
}
|
|
28
|
+
const n = first === 0 ? 1 : first;
|
|
29
|
+
const m = last === -1 ? total : last;
|
|
30
|
+
if (n < 1 || n > total || m < 1 || m > total || n > m)
|
|
31
|
+
return { status: 416 };
|
|
32
|
+
return { status: 200, items: items.slice(n - 1, m) };
|
|
33
|
+
};
|
|
16
34
|
export default class Log {
|
|
17
35
|
static manifest = {
|
|
18
36
|
name: "log",
|
|
@@ -20,7 +38,7 @@ export default class Log {
|
|
|
20
38
|
defaultChannel: "",
|
|
21
39
|
category: "logging",
|
|
22
40
|
scope: "session",
|
|
23
|
-
writableBy: ["
|
|
41
|
+
writableBy: ["plurnk"], // engine-only writes; model & client read + open/fold
|
|
24
42
|
volatile: false,
|
|
25
43
|
modelVisible: true,
|
|
26
44
|
};
|
|
@@ -84,18 +102,33 @@ export default class Log {
|
|
|
84
102
|
async #setIndexed(statement, ctx, indexed) {
|
|
85
103
|
if (statement.target === null)
|
|
86
104
|
return { status: 400 };
|
|
87
|
-
if (statement.lineMarker !== null)
|
|
88
|
-
return { status: 501 };
|
|
89
105
|
const { db, runId } = ctx;
|
|
90
106
|
const pathname = statement.target.kind === "url" ? statement.target.pathname : statement.target.raw;
|
|
107
|
+
// Fast path: a single concrete coordinate with no pagination flips that row.
|
|
91
108
|
const coord = parseCoordinate(pathname);
|
|
92
|
-
if (coord === null)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
109
|
+
if (coord !== null && statement.lineMarker === null) {
|
|
110
|
+
const updated = await db.log_set_indexed.get({
|
|
111
|
+
run_id: runId, loop_seq: coord.loopSeq, turn_seq: coord.turnSeq, sequence: coord.sequence, indexed,
|
|
112
|
+
});
|
|
113
|
+
return { status: updated === undefined ? 404 : 200 };
|
|
114
|
+
}
|
|
115
|
+
// Glob and/or paginated (e.g. FOLD(log://**/READ)<1>): resolve the matched
|
|
116
|
+
// rows, paginate over them, flip each. The model's primary curation move.
|
|
117
|
+
const matched = await db.log_match_coordinates.all({ run_id: runId, glob: pathname });
|
|
118
|
+
if (matched.length === 0)
|
|
119
|
+
return coord === null && !pathname.includes("*") ? { status: 400 } : { status: 404 };
|
|
120
|
+
let selected = matched;
|
|
121
|
+
if (statement.lineMarker !== null) {
|
|
122
|
+
const page = paginate(matched, statement.lineMarker);
|
|
123
|
+
if (page.status !== 200)
|
|
124
|
+
return { status: page.status };
|
|
125
|
+
selected = page.items ?? [];
|
|
126
|
+
}
|
|
127
|
+
if (selected.length === 0)
|
|
128
|
+
return { status: 404 };
|
|
129
|
+
for (const { id } of selected)
|
|
130
|
+
await db.log_set_indexed_by_id.run({ id, indexed });
|
|
131
|
+
return { status: 200 };
|
|
99
132
|
}
|
|
100
133
|
}
|
|
101
134
|
//# sourceMappingURL=Log.js.map
|
package/dist/schemes/Log.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Log.js","sourceRoot":"","sources":["../../src/schemes/Log.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Log.js","sourceRoot":"","sources":["../../src/schemes/Log.ts"],"names":[],"mappings":"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"}
|
package/dist/schemes/Plurnk.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-crud.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-crud.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACtF,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"_entry-crud.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-crud.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACtF,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAIvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;WACb,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;WAiBtG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;WAqC1H,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAQ1H"}
|
|
@@ -46,6 +46,10 @@ export default class EntryCrud {
|
|
|
46
46
|
for (const tag of entry.tags) {
|
|
47
47
|
await db.crud_write_tag.run({ entry_id: entryId, tag });
|
|
48
48
|
}
|
|
49
|
+
// NB: NO @graph derivation here — a write stores content + label; the
|
|
50
|
+
// mimetypes handler is never invoked at write (§4). The symbol index is
|
|
51
|
+
// built engine-side at manifest-add (EntryManifest.buildManifestBody),
|
|
52
|
+
// which walks every entry — files included — once per turn.
|
|
49
53
|
return { status: created ? 201 : 200, created, entryId };
|
|
50
54
|
}
|
|
51
55
|
static async deleteEntry(pathname, ctx, scheme) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-crud.js","sourceRoot":"","sources":["../../src/schemes/_entry-crud.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,uEAAuE;AACvE,qDAAqD;
|
|
1
|
+
{"version":3,"file":"_entry-crud.js","sourceRoot":"","sources":["../../src/schemes/_entry-crud.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-find.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-find.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"_entry-find.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-find.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKnF,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;;WAiCb,cAAc,CACvB,SAAS,EAAE,aAAa,GAAG,aAAa,GAAG,aAAa,EACxD,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,cAAc,GACzB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;WA6DtC,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;CAMrI"}
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
// signal — tag filter: candidate entry must have ALL listed tags
|
|
13
13
|
// <L> — results pagination: select results N..M from the matched list
|
|
14
14
|
import Matcher from "../content/matcher.js";
|
|
15
|
+
import EntryGraph from "./_entry-graph.js";
|
|
16
|
+
import EntrySemantic from "./_entry-semantic.js";
|
|
15
17
|
export default class EntryFind {
|
|
16
18
|
static #scopePathnameOf(statement) {
|
|
17
19
|
const path = statement.target;
|
|
@@ -55,11 +57,19 @@ export default class EntryFind {
|
|
|
55
57
|
static async matchPathnames(statement, ctx, manifest) {
|
|
56
58
|
if (statement.target === null)
|
|
57
59
|
return { status: 400, pathnames: [] };
|
|
60
|
+
// Scope by the manifest's persisted entries.scheme (storedScheme; absent →
|
|
61
|
+
// name). File sets storedScheme=null — bare rows.
|
|
62
|
+
const scheme = manifest.storedScheme === undefined ? manifest.name : manifest.storedScheme;
|
|
58
63
|
if (statement.body !== null && statement.body.dialect === "semantic") {
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
|
|
64
|
+
// ~query: embed the query text, FTS-narrow by its terms, cosine-rank the
|
|
65
|
+
// narrowed set, top-K. 501 when no embeddings handler is installed (the
|
|
66
|
+
// channel degrades to empty bytes). <L> carries K.
|
|
67
|
+
const { mimetypes } = ctx;
|
|
68
|
+
if (mimetypes === undefined)
|
|
69
|
+
return { status: 501, pathnames: [] };
|
|
70
|
+
if (statement.lineMarker === null)
|
|
71
|
+
return { status: 400, pathnames: [] }; // ~query needs a top-K, e.g. ~query<10>
|
|
72
|
+
return EntrySemantic.rankSemantic(ctx.db, ctx.sessionId, scheme, mimetypes, statement.body.raw, statement.lineMarker.first);
|
|
63
73
|
}
|
|
64
74
|
const scopePathname = EntryFind.#scopePathnameOf(statement);
|
|
65
75
|
const scopeGlob = scopePathname !== null && scopePathname.length > 0 ? `${scopePathname}*` : null;
|
|
@@ -68,7 +78,7 @@ export default class EntryFind {
|
|
|
68
78
|
const { db, sessionId } = ctx;
|
|
69
79
|
const candidates = await db.find_session_entry_candidates.all({
|
|
70
80
|
session_id: sessionId,
|
|
71
|
-
scheme
|
|
81
|
+
scheme,
|
|
72
82
|
channel: manifest.defaultChannel,
|
|
73
83
|
scope_pathname: scopeGlob,
|
|
74
84
|
tags: tagsParam,
|
|
@@ -77,6 +87,16 @@ export default class EntryFind {
|
|
|
77
87
|
if (statement.body === null) {
|
|
78
88
|
pathnames = candidates.map((c) => c.pathname);
|
|
79
89
|
}
|
|
90
|
+
else if (statement.body.dialect === "graph") {
|
|
91
|
+
// @graph (plurnk-service#186): body is `@<sym` / `@>sym` / `@sym`.
|
|
92
|
+
// EntryGraph resolves the relation across (session, scheme); intersect
|
|
93
|
+
// with the in-scope candidates (target glob + tags) for the final set.
|
|
94
|
+
const inScope = new Set(candidates.map((c) => c.pathname));
|
|
95
|
+
const graph = await EntryGraph.match(ctx.db, ctx.sessionId, scheme, statement.body.raw);
|
|
96
|
+
if (graph.status !== 200)
|
|
97
|
+
return { status: graph.status, pathnames: [] };
|
|
98
|
+
pathnames = graph.pathnames.filter((p) => inScope.has(p));
|
|
99
|
+
}
|
|
80
100
|
else {
|
|
81
101
|
const { mimetypes } = ctx;
|
|
82
102
|
if (mimetypes === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-find.js","sourceRoot":"","sources":["../../src/schemes/_entry-find.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,sDAAsD;AACtD,EAAE;AACF,gFAAgF;AAChF,kFAAkF;AAClF,4EAA4E;AAC5E,iFAAiF;AACjF,yEAAyE;AACzE,6EAA6E;AAC7E,iFAAiF;AACjF,oEAAoE;AACpE,oEAAoE;AACpE,4EAA4E;AAK5E,OAAO,OAAO,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"_entry-find.js","sourceRoot":"","sources":["../../src/schemes/_entry-find.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Db } from "../core/Db.ts";
|
|
2
|
+
import type { MimeSymbol, MimeRef } from "@plurnk/plurnk-mimetypes";
|
|
3
|
+
export default class EntryGraph {
|
|
4
|
+
#private;
|
|
5
|
+
static populateFrom(db: Db, sessionId: number, entryId: number, symbols: readonly MimeSymbol[], references: readonly MimeRef[]): Promise<void>;
|
|
6
|
+
static match(db: Db, sessionId: number, scheme: string | null, raw: string): Promise<{
|
|
7
|
+
status: number;
|
|
8
|
+
pathnames: string[];
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=_entry-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_entry-graph.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-graph.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,CAAC,OAAO,OAAO,UAAU;;WAId,YAAY,CACrB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAC1C,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,OAAO,EAAE,GAC/D,OAAO,CAAC,IAAI,CAAC;WAmBH,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CA0CtI"}
|