@plurnk/plurnk-service 0.25.0 → 0.27.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 +66 -46
- package/dist/Paths.d.ts +0 -1
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +3 -6
- package/dist/Paths.js.map +1 -1
- package/dist/content/path-mimetype.js +2 -2
- package/dist/content/path-mimetype.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +17 -2
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +11 -5
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +4 -5
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +149 -49
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/ExecutorRegistry.d.ts +3 -0
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +8 -1
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +39 -15
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +4 -1
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +2 -2
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/fork.js +1 -1
- package/dist/core/fork.js.map +1 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +107 -46
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.js +2 -2
- package/dist/core/packet-wire.js +5 -5
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plugin-trust.d.ts +4 -0
- package/dist/core/plugin-trust.d.ts.map +1 -0
- package/dist/core/plugin-trust.js +23 -0
- package/dist/core/plugin-trust.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +78 -20
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +17 -14
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.js +6 -6
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Plurnk.js +4 -4
- package/dist/schemes/Plurnk.js.map +1 -1
- package/dist/schemes/_entry-chunk.d.ts +11 -0
- package/dist/schemes/_entry-chunk.d.ts.map +1 -0
- package/dist/schemes/_entry-chunk.js +100 -0
- package/dist/schemes/_entry-chunk.js.map +1 -0
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +6 -2
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-graph.js +1 -1
- package/dist/schemes/_entry-graph.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +14 -6
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.js +2 -2
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +22 -2
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +96 -9
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/exec-env.d.ts +5 -0
- package/dist/schemes/exec-env.d.ts.map +1 -0
- package/dist/schemes/exec-env.js +29 -0
- package/dist/schemes/exec-env.js.map +1 -0
- package/dist/server/Daemon.d.ts +1 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +11 -1
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/dsl.d.ts +2 -2
- package/dist/server/dsl.js +2 -2
- package/dist/server/envelope.d.ts +1 -0
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +5 -5
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/methods/entry_read.d.ts.map +1 -1
- package/dist/server/methods/entry_read.js +29 -7
- package/dist/server/methods/entry_read.js.map +1 -1
- package/dist/server/methods/log_read.d.ts.map +1 -1
- package/dist/server/methods/log_read.js +14 -1
- package/dist/server/methods/log_read.js.map +1 -1
- package/dist/server/methods/loop_inject.d.ts +5 -0
- package/dist/server/methods/loop_inject.d.ts.map +1 -0
- package/dist/server/methods/loop_inject.js +58 -0
- package/dist/server/methods/loop_inject.js.map +1 -0
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +6 -3
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/op_edit.js +1 -1
- package/dist/server/methods/op_edit.js.map +1 -1
- package/dist/server/methods/op_find.js +1 -1
- package/dist/server/methods/op_find.js.map +1 -1
- package/dist/server/methods/op_fold.js +1 -1
- package/dist/server/methods/op_open.js +1 -1
- package/dist/server/methods/run_fork.d.ts +5 -0
- package/dist/server/methods/run_fork.d.ts.map +1 -0
- package/dist/server/methods/run_fork.js +42 -0
- package/dist/server/methods/run_fork.js.map +1 -0
- package/dist/server/methods/session_constraints.js +6 -6
- package/dist/server/methods/session_constraints.js.map +1 -1
- package/dist/server/methods/session_create.d.ts +1 -0
- package/dist/server/methods/session_create.d.ts.map +1 -1
- package/dist/server/methods/session_create.js +32 -0
- package/dist/server/methods/session_create.js.map +1 -1
- package/migrations/0000-00-00.01_schema.sql +29 -15
- package/package.json +108 -111
- package/requirements.md +1 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_entry-chunk.js","sourceRoot":"","sources":["../../src/schemes/_entry-chunk.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,iFAAiF;AACjF,mFAAmF;AACnF,gCAAgC;AAChC,EAAE;AACF,kFAAkF;AAClF,4EAA4E;AAC5E,kFAAkF;AAClF,2EAA2E;AAC3E,kFAAkF;AAClF,gFAAgF;AAShF,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,MAAM,CAAC,KAAK,CAAC,IAAI,CACb,OAAe,EACf,UAA+B,EAC/B,MAAc,EACd,OAAe,EACf,WAA8C;QAE9C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,OAAO,EAAE,CAAC,CAAC;QACjH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACvB,2EAA2E;QAC3E,2EAA2E;QAC3E,0EAA0E;QAC1E,6DAA6D;QAC7D,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;YACf,uEAAuE;YACvE,kEAAkE;YAClE,sEAAsE;YACtE,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC;gBAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;oBACjF,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBACD,KAAK,IAAI,CAAC,CAAC;gBACX,SAAS;YACb,CAAC;YAED,iEAAiE;YACjE,wEAAwE;YACxE,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;YACtB,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;gBACxD,GAAG,IAAI,CAAC,CAAC;gBACT,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;oBAAE,YAAY,GAAG,GAAG,CAAC;YACpD,CAAC;YACD,MAAM,OAAO,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC;gBACR,GAAG,EAAE,MAAM,CAAC,MAAM;gBAClB,SAAS,EAAE,KAAK,GAAG,CAAC;gBACpB,OAAO,EAAE,OAAO,GAAG,CAAC;gBACpB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aACnD,CAAC,CAAC;YACH,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,CAAC,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,CAAS,EAAE,OAAe,EAAE,MAAc,EAAE,UAAoB;QAC9G,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;QAC9B,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,IAAI,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YAAC,IAAI,IAAI,CAAC,CAAC;YAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QACtG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,WAA2C;QAC7F,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACrB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;oBAAC,IAAI,GAAG,GAAG,CAAC;oBAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;gBAAC,CAAC;;oBAC7E,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACjC,CAAC,GAAG,IAAI,CAAC;QACb,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -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;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;;
|
|
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;;WAoCb,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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// body — matcher (glob/regex/jsonpath/xpath). Runs against the entry's
|
|
7
7
|
// default-channel CONTENT, NOT the pathname — the same content match
|
|
8
8
|
// READ performs (Matcher.matchAgainstContent → the mimetypes
|
|
9
|
-
// daughter). e.g. `FIND(log
|
|
9
|
+
// daughter). e.g. `FIND(log:///**/error):/timeout/i` selects logs
|
|
10
10
|
// whose content matches; `OPEN(countries/**):Paris*` selects entries
|
|
11
11
|
// whose content matches. The path-glob is the (target).
|
|
12
12
|
// signal — tag filter: candidate entry must have ALL listed tags
|
|
@@ -26,6 +26,10 @@ export default class EntryFind {
|
|
|
26
26
|
static #paginate(items, marker) {
|
|
27
27
|
const total = items.length;
|
|
28
28
|
const { first, last } = marker;
|
|
29
|
+
// #209 — a fractional marker is a semantic similarity threshold; on a
|
|
30
|
+
// non-semantic (paginated) result it's nonsense → 416, never floored.
|
|
31
|
+
if (!Number.isInteger(first) || (last !== null && !Number.isInteger(last)))
|
|
32
|
+
return { status: 416 };
|
|
29
33
|
if (last === null) {
|
|
30
34
|
if (first === 0 || first === -1)
|
|
31
35
|
return { status: 200, items: [] };
|
|
@@ -69,7 +73,7 @@ export default class EntryFind {
|
|
|
69
73
|
return { status: 501, pathnames: [] };
|
|
70
74
|
if (statement.lineMarker === null)
|
|
71
75
|
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
|
|
76
|
+
return EntrySemantic.rankSemantic(ctx.db, ctx.sessionId, scheme, mimetypes, statement.body.raw, statement.lineMarker);
|
|
73
77
|
}
|
|
74
78
|
const scopePathname = EntryFind.#scopePathnameOf(statement);
|
|
75
79
|
const scopeGlob = scopePathname !== null && scopePathname.length > 0 ? `${scopePathname}*` : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-find.js","sourceRoot":"","sources":["../../src/schemes/_entry-find.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,sDAAsD;AACtD,EAAE;AACF,gFAAgF;AAChF,kFAAkF;AAClF,4EAA4E;AAC5E,iFAAiF;AACjF,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"_entry-find.js","sourceRoot":"","sources":["../../src/schemes/_entry-find.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @graph (plurnk-service#186) — the symbol index behind the FIND `graph` dialect
|
|
2
2
|
// (@<sym referrers / @>sym referents / @sym neighborhood). Files are first-class
|
|
3
|
-
// channel-backed entries, so the index is uniform across known
|
|
3
|
+
// channel-backed entries, so the index is uniform across known:/// and file:/// with
|
|
4
4
|
// no scheme special-casing. Traversal is kind-agnostic; 1-hop (the grammar's
|
|
5
5
|
// `@<sym` surface). Cross-entry resolution is name-match (ctags-grade-plus per #186).
|
|
6
6
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-graph.js","sourceRoot":"","sources":["../../src/schemes/_entry-graph.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"_entry-graph.js","sourceRoot":"","sources":["../../src/schemes/_entry-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-manifest.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAWnE,MAAM,CAAC,OAAO,OAAO,aAAa;;WAOjB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"_entry-manifest.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAWnE,MAAM,CAAC,OAAO,OAAO,aAAa;;WAOjB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;CAgE5E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// The body of plurnk
|
|
1
|
+
// The body of plurnk:///manifest.json — the complete, unranked directory of
|
|
2
2
|
// every entry the session holds, across all schemes. engine_list_session_entries
|
|
3
3
|
// lists every entry, uniformly READable, in no relevance order. The model
|
|
4
4
|
// ranks/filters it itself by querying the catalog
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// tokenizer would make the catalog lie; `lines` is the content's extent from
|
|
10
10
|
// mimetypes' process() totalLines. The catalog never lists itself.
|
|
11
11
|
//
|
|
12
|
-
// Lives in the schemes/entry layer, not the engine: building a plurnk
|
|
12
|
+
// Lives in the schemes/entry layer, not the engine: building a plurnk:/// entry's
|
|
13
13
|
// content is the schemes' job; the engine only orchestrates the per-turn write
|
|
14
14
|
// (the same materialization pattern as git membership).
|
|
15
15
|
import { createHash } from "node:crypto";
|
|
@@ -17,7 +17,7 @@ import { MimetypeBinary } from "../content/index.js";
|
|
|
17
17
|
import EntryGraph from "./_entry-graph.js";
|
|
18
18
|
import EntrySemantic from "./_entry-semantic.js";
|
|
19
19
|
export default class EntryManifest {
|
|
20
|
-
static #MANIFEST_PATH = "plurnk
|
|
20
|
+
static #MANIFEST_PATH = "plurnk:///manifest.json";
|
|
21
21
|
static #toPath(scheme, pathname) {
|
|
22
22
|
return scheme === null ? pathname : `${scheme}://${pathname}`;
|
|
23
23
|
}
|
|
@@ -29,6 +29,9 @@ export default class EntryManifest {
|
|
|
29
29
|
throw new Error("buildManifestBody: ctx.tokenize is required — depth is re-counted at render through the live provider, not read from the write-time snapshot");
|
|
30
30
|
const rows = await db.engine_list_session_entries.all({ session_id: sessionId });
|
|
31
31
|
const byEntry = new Map();
|
|
32
|
+
// The embedding config signature is identical for every entry this build —
|
|
33
|
+
// compute it once and fold it into each deep_hash (re-derive on model/knob change).
|
|
34
|
+
const deepCfgSig = await EntrySemantic.deepConfigSignature(mimetypes);
|
|
32
35
|
for (const r of rows) {
|
|
33
36
|
const path = EntryManifest.#toPath(r.scheme, r.pathname);
|
|
34
37
|
if (path === EntryManifest.#MANIFEST_PATH)
|
|
@@ -53,7 +56,7 @@ export default class EntryManifest {
|
|
|
53
56
|
const isBody = r.channel === "body";
|
|
54
57
|
let result;
|
|
55
58
|
if (isBody) {
|
|
56
|
-
const hash = createHash("sha256").update(r.content).digest("hex");
|
|
59
|
+
const hash = createHash("sha256").update(r.content).update("\0").update(deepCfgSig).digest("hex");
|
|
57
60
|
if (hash === r.deep_hash) {
|
|
58
61
|
result = await mimetypes.process({ content: r.content, hint: r.mimetype }, { channels: [] });
|
|
59
62
|
}
|
|
@@ -74,10 +77,15 @@ export default class EntryManifest {
|
|
|
74
77
|
await EntryGraph.populateFrom(db, sessionId, r.entry_id, [], []);
|
|
75
78
|
}
|
|
76
79
|
// The other two deep channels: re-index the body into entry_fts
|
|
77
|
-
// (~semantic's keyword half) and store the embedding vector + model
|
|
80
|
+
// (~semantic's keyword half) and store the embedding vector(s) + model
|
|
78
81
|
// (the vector half). Empty/binary/degraded → cleared, not stored.
|
|
79
82
|
await EntrySemantic.indexFts(db, r.entry_id, r.content);
|
|
80
|
-
|
|
83
|
+
// Project Semantics: derive the entry's chunk embeddings. Gated on
|
|
84
|
+
// the embedder reporting its tokenizer — absent → one whole-entry
|
|
85
|
+
// chunk (today's behavior), present → lossless tiling. result.embedding
|
|
86
|
+
// is the fallback whole-entry vector for the dormant path.
|
|
87
|
+
const { chunks, model } = await EntrySemantic.deriveEmbeddings(mimetypes, r.content, r.mimetype, result.symbols ?? [], result.embedding, result.embeddingModel);
|
|
88
|
+
await EntrySemantic.indexEmbedding(db, r.entry_id, chunks, model);
|
|
81
89
|
await db.graph_set_deep_hash.run({ entry_id: r.entry_id, deep_hash: hash });
|
|
82
90
|
}
|
|
83
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-manifest.js","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"_entry-manifest.js","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,8 +42,8 @@ export default class EntryOps {
|
|
|
42
42
|
}
|
|
43
43
|
// Effective mimetype for this entry. Per plurnk-grammar 0.14.0:
|
|
44
44
|
// "Path suffix declares mimetype; absent suffix defers to scheme default."
|
|
45
|
-
// `known
|
|
46
|
-
// `known
|
|
45
|
+
// `known:///users.json` → application/json (extension wins).
|
|
46
|
+
// `known:///users` → text/markdown (scheme manifest default).
|
|
47
47
|
const channelManifestDefault = channels[targetChannel];
|
|
48
48
|
const effectiveMimetype = await PathMimetype.resolveEntryMimetype(pathname, channelManifestDefault, ctx.mimetypes);
|
|
49
49
|
// 415 on binary entries (SPEC.md §op-invariants).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-ops.js","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAyB3G,MAAM,CAAC,OAAO,OAAO,QAAQ;IACzB,MAAM,CAAC,WAAW,CAAC,SAA8C;QAC7D,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;QACxC,OAAO,CAAC,CAAC,GAAG,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,SAA8C;QAC7D,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAChD,OAAO,CAAC,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,QAAuB,EAAE,QAAgC,EAAE,cAAsB;QACpG,MAAM,MAAM,GAAG,QAAQ,IAAI,cAAc,CAAC;QAC1C,uEAAuE;QACvE,uEAAuE;QACvE,2EAA2E;QAC3E,IAAI,MAAM,KAAK,cAAc;YAAE,OAAO,MAAM,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAwB,EAAE,GAAwB,EAAE,QAAwB;QACtG,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAEpF,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;QAC9B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC;QAE5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACnF,IAAI,aAAa,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAEjF,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAO,EAAE,CAAC,uBAAsC,CAAC,GAAG,CAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEnI,qDAAqD;QACrD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAClE,CAAC;QAED,gEAAgE;QAChE,2EAA2E;QAC3E,
|
|
1
|
+
{"version":3,"file":"_entry-ops.js","sourceRoot":"","sources":["../../src/schemes/_entry-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
import type { Db } from "../core/Db.ts";
|
|
2
2
|
import type { Mimetypes } from "@plurnk/plurnk-mimetypes";
|
|
3
3
|
export default class EntrySemantic {
|
|
4
|
+
#private;
|
|
4
5
|
static indexFts(db: Db, entryId: number, content: string): Promise<void>;
|
|
5
6
|
static cosine(a: Uint8Array, b: Uint8Array): number;
|
|
6
|
-
static indexEmbedding(db: Db, entryId: number,
|
|
7
|
+
static indexEmbedding(db: Db, entryId: number, chunks: {
|
|
8
|
+
lineStart: number;
|
|
9
|
+
lineEnd: number;
|
|
10
|
+
vector: Uint8Array;
|
|
11
|
+
}[], model: string | undefined): Promise<void>;
|
|
12
|
+
static deriveEmbeddings(mimetypes: Mimetypes, content: string, mimetype: string, symbols: readonly {
|
|
13
|
+
line?: number;
|
|
14
|
+
endLine?: number;
|
|
15
|
+
}[], fallbackEmbedding: Uint8Array | undefined, fallbackModel: string | undefined): Promise<{
|
|
16
|
+
chunks: {
|
|
17
|
+
lineStart: number;
|
|
18
|
+
lineEnd: number;
|
|
19
|
+
vector: Uint8Array;
|
|
20
|
+
}[];
|
|
21
|
+
model: string | undefined;
|
|
22
|
+
}>;
|
|
23
|
+
static deepConfigSignature(mimetypes: Mimetypes): Promise<string>;
|
|
7
24
|
static ftsQueryFor(text: string): string;
|
|
8
|
-
static rankSemantic(db: Db, sessionId: number, scheme: string | null, mimetypes: Mimetypes, queryText: string,
|
|
25
|
+
static rankSemantic(db: Db, sessionId: number, scheme: string | null, mimetypes: Mimetypes, queryText: string, marker: {
|
|
26
|
+
first: number;
|
|
27
|
+
last: number | null;
|
|
28
|
+
}): Promise<{
|
|
9
29
|
status: number;
|
|
10
30
|
pathnames: string[];
|
|
11
31
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-semantic.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"_entry-semantic.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG1D,MAAM,CAAC,OAAO,OAAO,aAAa;;WAGjB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM;WAYtC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;WAkBvJ,gBAAgB,CACzB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EACvD,iBAAiB,EAAE,UAAU,GAAG,SAAS,EACzC,aAAa,EAAE,MAAM,GAAG,SAAS,GAClC,OAAO,CAAC;QAAE,MAAM,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,UAAU,CAAA;SAAE,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;WAsDlG,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAQvE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAS3B,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAyBzN"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// rank over embedding vectors — the precise half — lands when the embedding
|
|
4
4
|
// channel does (a daughter projection, per the §mimetype boundary). Called from the
|
|
5
5
|
// gated manifest-add hook, so only when body content actually changed.
|
|
6
|
+
import EntryChunk from "./_entry-chunk.js";
|
|
6
7
|
export default class EntrySemantic {
|
|
7
8
|
// Replace an entry's FTS row with its current body content (rowid = entryId).
|
|
8
9
|
// Empty content (binary member / cleared entry) → no FTS row (delete only).
|
|
@@ -30,13 +31,85 @@ export default class EntrySemantic {
|
|
|
30
31
|
// Store an entry's embedding vector + the model that produced it, or clear the
|
|
31
32
|
// row (binary/empty entry, or a degraded `embeddingMissing` projection). Called
|
|
32
33
|
// from the gated manifest-add hook beside indexFts / the symbol index.
|
|
33
|
-
static async indexEmbedding(db, entryId,
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
static async indexEmbedding(db, entryId, chunks, model) {
|
|
35
|
+
// Re-derivation = clear all of the entry's chunk rows, then insert each in seq
|
|
36
|
+
// order. No model (no embedder installed) or no chunks → just cleared.
|
|
37
|
+
await db.embedding_delete.run({ entry_id: entryId });
|
|
38
|
+
if (model === undefined)
|
|
39
|
+
return;
|
|
40
|
+
for (const [seq, c] of chunks.entries()) {
|
|
41
|
+
await db.embedding_set.run({
|
|
42
|
+
entry_id: entryId, chunk_seq: seq, line_start: c.lineStart, line_end: c.lineEnd,
|
|
43
|
+
vector: c.vector, embedding_model: model,
|
|
44
|
+
});
|
|
36
45
|
}
|
|
37
|
-
|
|
38
|
-
|
|
46
|
+
}
|
|
47
|
+
// Project Semantics — derive an entry's chunk embeddings. Probes the embedder
|
|
48
|
+
// capability (the daughter's window + tokenizer, surfaced via the Mimetypes
|
|
49
|
+
// handle): ABSENT → one whole-entry chunk from the fallback vector (today's
|
|
50
|
+
// behavior, no extra embed call); PRESENT → lossless tile, embed each chunk.
|
|
51
|
+
// Returns the chunk list + model for indexEmbedding; never touches the DB.
|
|
52
|
+
static async deriveEmbeddings(mimetypes, content, mimetype, symbols, fallbackEmbedding, fallbackModel) {
|
|
53
|
+
const info = await EntrySemantic.#embedderInfo(mimetypes);
|
|
54
|
+
if (info === null) {
|
|
55
|
+
const totalLines = content.length === 0 ? 0 : content.split("\n").length;
|
|
56
|
+
if (fallbackEmbedding === undefined || fallbackEmbedding.byteLength === 0 || totalLines === 0)
|
|
57
|
+
return { chunks: [], model: undefined };
|
|
58
|
+
return { chunks: [{ lineStart: 1, lineEnd: totalLines, vector: fallbackEmbedding }], model: fallbackModel };
|
|
59
|
+
}
|
|
60
|
+
// Symbol edges (a @graph endLine, or the line before a symbol starts) are the
|
|
61
|
+
// tiler's preferred cut points; it still tiles every line if there are none.
|
|
62
|
+
const boundaries = new Set();
|
|
63
|
+
for (const s of symbols) {
|
|
64
|
+
if (typeof s.endLine === "number")
|
|
65
|
+
boundaries.add(s.endLine);
|
|
66
|
+
if (typeof s.line === "number" && s.line > 1)
|
|
67
|
+
boundaries.add(s.line - 1);
|
|
39
68
|
}
|
|
69
|
+
const budget = EntrySemantic.#chunkBudget(info.maxTokens);
|
|
70
|
+
const chunks = [];
|
|
71
|
+
let model;
|
|
72
|
+
for (const spec of await EntryChunk.tile(content, boundaries, budget, EntrySemantic.#chunkOverlap(), info.countTokens)) {
|
|
73
|
+
const e = await mimetypes.process({ content: spec.text, hint: mimetype }, { channels: ["embedding"] });
|
|
74
|
+
if (e.embedding !== undefined && e.embedding.byteLength > 0) {
|
|
75
|
+
chunks.push({ lineStart: spec.lineStart, lineEnd: spec.lineEnd, vector: e.embedding });
|
|
76
|
+
model = e.embeddingModel;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return { chunks, model };
|
|
80
|
+
}
|
|
81
|
+
// Chunk budget in tokens — `.env.example` is the law, no code fallback. EMPTY =
|
|
82
|
+
// the embedder's reported window (scalable — NO model-specific number baked in);
|
|
83
|
+
// a positive value caps BELOW the window (e.g. to sweep granularity).
|
|
84
|
+
static #chunkBudget(maxTokens) {
|
|
85
|
+
const raw = process.env.PLURNK_SEMANTIC_CHUNK_TOKENS;
|
|
86
|
+
if (raw === undefined || raw.trim() === "")
|
|
87
|
+
return maxTokens;
|
|
88
|
+
const v = Number(raw);
|
|
89
|
+
if (!Number.isInteger(v) || v < 1)
|
|
90
|
+
throw new Error(`PLURNK_SEMANTIC_CHUNK_TOKENS must be empty (= the embedder's window) or a positive integer, got ${JSON.stringify(raw)}`);
|
|
91
|
+
return Math.min(v, maxTokens);
|
|
92
|
+
}
|
|
93
|
+
static #chunkOverlap() {
|
|
94
|
+
const v = Number(process.env.PLURNK_SEMANTIC_CHUNK_OVERLAP);
|
|
95
|
+
if (!(v >= 0 && v < 1))
|
|
96
|
+
throw new Error(`PLURNK_SEMANTIC_CHUNK_OVERLAP must be in [0,1), got ${JSON.stringify(process.env.PLURNK_SEMANTIC_CHUNK_OVERLAP)}`);
|
|
97
|
+
return v;
|
|
98
|
+
}
|
|
99
|
+
// The embedder capability surface (daughter window + tokenizer), probed through
|
|
100
|
+
// the Mimetypes handle. null until plurnk-mimetypes-embeddings#1 lands.
|
|
101
|
+
static async #embedderInfo(mimetypes) {
|
|
102
|
+
return (await mimetypes.embedderInfo?.()) ?? null;
|
|
103
|
+
}
|
|
104
|
+
// Folded into the entry's deep_hash so a derivation re-runs when the EMBEDDING
|
|
105
|
+
// inputs change, not just content: installing/swapping the embedder (the window
|
|
106
|
+
// flips none→N, activating tiling) or sweeping the chunk knobs. Config is excluded
|
|
107
|
+
// while dormant — it can't affect a single whole-entry chunk.
|
|
108
|
+
static async deepConfigSignature(mimetypes) {
|
|
109
|
+
const info = await EntrySemantic.#embedderInfo(mimetypes);
|
|
110
|
+
if (info === null)
|
|
111
|
+
return "embed:none";
|
|
112
|
+
return `embed:${info.maxTokens}:${EntrySemantic.#chunkBudget(info.maxTokens)}:${EntrySemantic.#chunkOverlap()}`;
|
|
40
113
|
}
|
|
41
114
|
// Build the FTS5 narrow from a ~query: OR the alphanumeric terms (a broad cut —
|
|
42
115
|
// cosine does the precision). FTS5-syntax-safe (bare lowercased terms).
|
|
@@ -49,17 +122,31 @@ export default class EntrySemantic {
|
|
|
49
122
|
// The ~query dispatch: embed the query text through the SAME channel, FTS-narrow
|
|
50
123
|
// by its terms, cosine-rank the narrowed set, top-K. 501 when no embeddings
|
|
51
124
|
// handler is installed (the channel degrades to `embeddingMissing`).
|
|
52
|
-
static async rankSemantic(db, sessionId, scheme, mimetypes, queryText,
|
|
125
|
+
static async rankSemantic(db, sessionId, scheme, mimetypes, queryText, marker) {
|
|
53
126
|
const r = await mimetypes.process({ content: queryText, hint: "text/markdown" }, { channels: ["embedding"] });
|
|
54
127
|
// No embedder installed → the channel degrades to empty bytes (not undefined);
|
|
55
128
|
// an empty query vector can't rank, so surface 501 rather than a false 200.
|
|
56
|
-
if (r.embedding === undefined || r.embedding.byteLength === 0)
|
|
129
|
+
if (r.embedding === undefined || r.embedding.byteLength === 0 || r.embeddingModel === undefined)
|
|
57
130
|
return { status: 501, pathnames: [] };
|
|
58
131
|
const ftsQuery = EntrySemantic.ftsQueryFor(queryText);
|
|
59
132
|
if (ftsQuery.length === 0)
|
|
60
133
|
return { status: 200, pathnames: [] };
|
|
61
|
-
|
|
62
|
-
|
|
134
|
+
// #209 — the result marker form-dispatches: integer <K> → top-K rank;
|
|
135
|
+
// decimal <0.x> → a similarity threshold (minimum cosine in (0,1)), with
|
|
136
|
+
// <0.x,N> capping the threshold set at N (else unbounded). A fractional
|
|
137
|
+
// value outside (0,1) is a nonsense result-marker → 416, never coerced.
|
|
138
|
+
const { first, last } = marker;
|
|
139
|
+
if (Number.isInteger(first)) {
|
|
140
|
+
const rows = await db.semantic_rank.all({
|
|
141
|
+
fts_query: ftsQuery, session_id: sessionId, scheme, query_vector: r.embedding, embedding_model: r.embeddingModel, k: first,
|
|
142
|
+
});
|
|
143
|
+
return { status: 200, pathnames: rows.map((x) => x.pathname) };
|
|
144
|
+
}
|
|
145
|
+
if (first <= 0 || first >= 1)
|
|
146
|
+
return { status: 416, pathnames: [] };
|
|
147
|
+
const cap = (last !== null && Number.isInteger(last) && last > 0) ? last : -1;
|
|
148
|
+
const rows = await db.semantic_rank_threshold.all({
|
|
149
|
+
fts_query: ftsQuery, session_id: sessionId, scheme, query_vector: r.embedding, embedding_model: r.embeddingModel, threshold: first, cap,
|
|
63
150
|
});
|
|
64
151
|
return { status: 200, pathnames: rows.map((x) => x.pathname) };
|
|
65
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAC5E,oFAAoF;AACpF,uEAAuE;
|
|
1
|
+
{"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-env.d.ts","sourceRoot":"","sources":["../../src/schemes/exec-env.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,OAAO,OAAO;;IAOxB,MAAM,CAAC,MAAM,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU;CAQzE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// SPEC §exec {§exec-env-scoped} — the environment an EXEC subprocess receives.
|
|
2
|
+
//
|
|
3
|
+
// It gets the *project's* environment (its `.env`, the standard shell vars like PATH
|
|
4
|
+
// and HOME) so the model's commands run as the project expects — but never plurnk's
|
|
5
|
+
// own secrets: the `PLURNK_*` config (all of plurnk's knobs are prefixed; see
|
|
6
|
+
// .env.example) and the provider API keys plurnk-providers reads. The provider key-vars
|
|
7
|
+
// are sourced from STANDARD_PROVIDERS so the denylist tracks the provider set rather
|
|
8
|
+
// than a hand-maintained list that drifts as providers are added.
|
|
9
|
+
//
|
|
10
|
+
// A denylist, not an allowlist: a subprocess needs the long tail of inherited vars
|
|
11
|
+
// (PATH, HOME, LANG, the project's own keys); only plurnk's two owned families are
|
|
12
|
+
// stripped. The service owns this policy; the executor (plurnk-execs SubprocessExecutor,
|
|
13
|
+
// plurnk-execs#8) spawns with the env it is handed.
|
|
14
|
+
import { STANDARD_PROVIDERS } from "@plurnk/plurnk-providers";
|
|
15
|
+
export default class ExecEnv {
|
|
16
|
+
static #providerKeys = new Set(Object.values(STANDARD_PROVIDERS).map((spec) => spec.apiKeyVar));
|
|
17
|
+
// Read at call time (not memoized) so a secret set into process.env after boot is
|
|
18
|
+
// still scoped out of the next spawn.
|
|
19
|
+
static scoped(env = process.env) {
|
|
20
|
+
const out = {};
|
|
21
|
+
for (const [key, value] of Object.entries(env)) {
|
|
22
|
+
if (key.startsWith("PLURNK_") || ExecEnv.#providerKeys.has(key))
|
|
23
|
+
continue; // plurnk's own — never to a subprocess
|
|
24
|
+
out[key] = value;
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=exec-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-env.js","sourceRoot":"","sources":["../../src/schemes/exec-env.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,qFAAqF;AACrF,oFAAoF;AACpF,8EAA8E;AAC9E,wFAAwF;AACxF,qFAAqF;AACrF,kEAAkE;AAClE,EAAE;AACF,mFAAmF;AACnF,mFAAmF;AACnF,yFAAyF;AACzF,oDAAoD;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,aAAa,GAAwB,IAAI,GAAG,CAC/C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAClE,CAAC;IAEF,kFAAkF;IAClF,sCAAsC;IACtC,MAAM,CAAC,MAAM,CAAC,MAAyB,OAAO,CAAC,GAAG;QAC9C,MAAM,GAAG,GAAsB,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAE,uCAAuC;YACnH,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC"}
|
package/dist/server/Daemon.d.ts
CHANGED
|
@@ -52,7 +52,7 @@ export default class Daemon {
|
|
|
52
52
|
}): void;
|
|
53
53
|
/**
|
|
54
54
|
* Inject a prompt into a run. Two paths:
|
|
55
|
-
* - Active drain: writes a plurnk
|
|
55
|
+
* - Active drain: writes a plurnk:///prompt/<loop>/<next-turn> entry
|
|
56
56
|
* via Engine.inject. Current loop sees the new prompt at its next
|
|
57
57
|
* turn. Returns immediately with {action: "injected_next_turn"}.
|
|
58
58
|
* - No active drain: enqueues a fresh loop with the prompt at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Daemon.d.ts","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAGpD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAgB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Daemon.d.ts","sourceRoot":"","sources":["../../src/server/Daemon.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAc,MAAM,eAAe,CAAC;AAGpD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAgB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAoCnF,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,MAAM;;gBA2BX,EACR,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,GACpD,EAAE;QACC,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B;IAwDD,IAAI,QAAQ,IAAI,cAAc,CAA2B;IACzD,IAAI,MAAM,IAAI,MAAM,CAAyB;IAC7C,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAA2B;IAC1D,IAAI,OAAO,IAAI,cAAc,CAA0B;IACvD,IAAI,SAAS,IAAI,SAAS,CAA4B;IAEhD,KAAK,CAAC,EAAE,IAAkB,EAAE,IAAW,EAAE,GAAE,aAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAsCtF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqI3B;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAI7H;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIzF;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,IAAI,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QACjD,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAClF,GAAG,OAAO,CAAC;QACR,MAAM,EAAE,oBAAoB,GAAG,mBAAmB,CAAC;QACnD,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5C,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;KACnC,CAAC;IAyNF;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAyB,GAAG,OAAO;CA8IzE"}
|
package/dist/server/Daemon.js
CHANGED
|
@@ -38,6 +38,8 @@ import OpDispatchMethod from "./methods/op_dispatch.js";
|
|
|
38
38
|
import OpParseMethod from "./methods/op_parse.js";
|
|
39
39
|
import LoopRunMethod from "./methods/loop_run.js";
|
|
40
40
|
import LoopCancelMethod from "./methods/loop_cancel.js";
|
|
41
|
+
import LoopInjectMethod from "./methods/loop_inject.js";
|
|
42
|
+
import RunForkMethod from "./methods/run_fork.js";
|
|
41
43
|
import EntryReadMethod from "./methods/entry_read.js";
|
|
42
44
|
import LogReadMethod from "./methods/log_read.js";
|
|
43
45
|
import ProvidersListMethod from "./methods/providers_list.js";
|
|
@@ -223,6 +225,8 @@ export default class Daemon {
|
|
|
223
225
|
OpParseMethod.register(this.#registry);
|
|
224
226
|
LoopRunMethod.register(this.#registry);
|
|
225
227
|
LoopCancelMethod.register(this.#registry);
|
|
228
|
+
LoopInjectMethod.register(this.#registry);
|
|
229
|
+
RunForkMethod.register(this.#registry);
|
|
226
230
|
LoopResolveMethod.register(this.#registry);
|
|
227
231
|
EntryReadMethod.register(this.#registry);
|
|
228
232
|
LogReadMethod.register(this.#registry);
|
|
@@ -263,6 +267,9 @@ export default class Daemon {
|
|
|
263
267
|
channel: "string — the channel name",
|
|
264
268
|
state: "string — current state (static, active, closed, errored)",
|
|
265
269
|
contentLength: "number — current length of the channel's content",
|
|
270
|
+
loop_seq: "number? — the entry's loop coordinate (#224); present for coordinate-bearing streams (exec), so clients read it instead of parsing the URI",
|
|
271
|
+
turn_seq: "number? — the entry's turn coordinate",
|
|
272
|
+
sequence: "number? — the entry's sequence coordinate",
|
|
266
273
|
},
|
|
267
274
|
});
|
|
268
275
|
this.#registry.registerNotification("telemetry/event", {
|
|
@@ -283,6 +290,9 @@ export default class Daemon {
|
|
|
283
290
|
summary: "string — one-liner the model gets as a wake prompt",
|
|
284
291
|
wakeAction: "string — 'no-op-active-loop' | 'opened-loop' | 'skipped-aborted' | 'skipped-no-provider'",
|
|
285
292
|
wakeLoopId: "number? — the loop that was opened (only when wakeAction='opened-loop')",
|
|
293
|
+
loop_seq: "number? — the entry's loop coordinate (#224); present for coordinate-bearing streams (exec), so clients read it instead of parsing the URI",
|
|
294
|
+
turn_seq: "number? — the entry's turn coordinate",
|
|
295
|
+
sequence: "number? — the entry's sequence coordinate",
|
|
286
296
|
},
|
|
287
297
|
});
|
|
288
298
|
}
|
|
@@ -306,7 +316,7 @@ export default class Daemon {
|
|
|
306
316
|
}
|
|
307
317
|
/**
|
|
308
318
|
* Inject a prompt into a run. Two paths:
|
|
309
|
-
* - Active drain: writes a plurnk
|
|
319
|
+
* - Active drain: writes a plurnk:///prompt/<loop>/<next-turn> entry
|
|
310
320
|
* via Engine.inject. Current loop sees the new prompt at its next
|
|
311
321
|
* turn. Returns immediately with {action: "injected_next_turn"}.
|
|
312
322
|
* - No active drain: enqueues a fresh loop with the prompt at
|