@plurnk/plurnk-service 0.44.0 → 0.46.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/.env.example +41 -24
- package/README.md +37 -18
- package/SPEC.md +34 -10
- package/dist/core/ChannelWrite.d.ts +4 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +9 -0
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +69 -0
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +146 -103
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +307 -0
- package/dist/core/ExecutorRegistry.d.ts +4 -2
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +20 -5
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +3 -0
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +37 -0
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +8 -1
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +50 -0
- package/dist/core/packet-wire.d.ts +1 -0
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +11 -0
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plugin-attribution.d.ts +5 -0
- package/dist/core/plugin-attribution.d.ts.map +1 -0
- package/dist/core/plugin-attribution.js +39 -0
- package/dist/core/plugin-attribution.js.map +1 -0
- package/dist/core/run-ops.sql +16 -0
- package/dist/core/scheme-types.d.ts +1 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/session-settings.d.ts +1 -0
- package/dist/core/session-settings.d.ts.map +1 -1
- package/dist/core/session-settings.js +2 -1
- package/dist/core/session-settings.js.map +1 -1
- package/dist/schemes/Exec.d.ts +2 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +39 -22
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +27 -3
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.sql +37 -0
- package/dist/schemes/_entry-crud.sql +88 -0
- package/dist/schemes/_entry-find.sql +31 -0
- package/dist/schemes/_entry-graph.sql +60 -0
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +11 -3
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +20 -0
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +14 -7
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-semantic.sql +80 -0
- package/dist/schemes/exec-abort.d.ts +11 -0
- package/dist/schemes/exec-abort.d.ts.map +1 -0
- package/dist/schemes/exec-abort.js +23 -0
- package/dist/schemes/exec-abort.js.map +1 -0
- package/dist/schemes/exec-env.js +1 -1
- package/dist/schemes/exec-env.js.map +1 -1
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +162 -76
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/clientTurn.sql +10 -0
- package/dist/server/drain.sql +92 -0
- package/dist/server/dsl.d.ts.map +1 -1
- package/dist/server/dsl.js +11 -4
- package/dist/server/dsl.js.map +1 -1
- package/dist/server/envelope.sql +75 -0
- package/dist/server/logEntry.sql +10 -0
- package/dist/server/methods/_dispatchAsClient.d.ts.map +1 -1
- package/dist/server/methods/_dispatchAsClient.js +11 -6
- package/dist/server/methods/_dispatchAsClient.js.map +1 -1
- package/dist/server/methods/entry_read.sql +21 -0
- package/dist/server/methods/log_read.sql +11 -0
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +31 -11
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/loop_run.sql +9 -0
- package/dist/server/methods/session_create.d.ts.map +1 -1
- package/dist/server/methods/session_create.js +10 -3
- package/dist/server/methods/session_create.js.map +1 -1
- package/dist/service.d.ts +6 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +221 -0
- package/dist/service.js.map +1 -0
- package/migrations/0000-00-00.01_schema.sql +2 -2
- package/package.json +27 -13
- package/bin/plurnk-service.ts +0 -176
- package/dist/core/ProviderRegistry.d.ts +0 -42
- package/dist/core/ProviderRegistry.d.ts.map +0 -1
- package/dist/core/ProviderRegistry.js +0 -72
- package/dist/core/ProviderRegistry.js.map +0 -1
- package/dist/core/line-marker.d.ts +0 -23
- package/dist/core/line-marker.d.ts.map +0 -1
- package/dist/core/line-marker.js +0 -321
- package/dist/core/line-marker.js.map +0 -1
- package/dist/core/matcher.d.ts +0 -12
- package/dist/core/matcher.d.ts.map +0 -1
- package/dist/core/matcher.js +0 -72
- package/dist/core/matcher.js.map +0 -1
- package/dist/core/mimetype-binary.d.ts +0 -6
- package/dist/core/mimetype-binary.d.ts.map +0 -1
- package/dist/core/mimetype-binary.js +0 -82
- package/dist/core/mimetype-binary.js.map +0 -1
- package/dist/core/path-mimetype.d.ts +0 -3
- package/dist/core/path-mimetype.d.ts.map +0 -1
- package/dist/core/path-mimetype.js +0 -47
- package/dist/core/path-mimetype.js.map +0 -1
- package/dist/core/plugin-trust.d.ts +0 -4
- package/dist/core/plugin-trust.d.ts.map +0 -1
- package/dist/core/plugin-trust.js +0 -23
- package/dist/core/plugin-trust.js.map +0 -1
- package/dist/providers/Mock.d.ts +0 -43
- package/dist/providers/Mock.d.ts.map +0 -1
- package/dist/providers/Mock.js +0 -36
- package/dist/providers/Mock.js.map +0 -1
- package/dist/server/methods/op_hide.d.ts +0 -5
- package/dist/server/methods/op_hide.d.ts.map +0 -1
- package/dist/server/methods/op_hide.js +0 -24
- package/dist/server/methods/op_hide.js.map +0 -1
- package/dist/server/methods/op_show.d.ts +0 -5
- package/dist/server/methods/op_show.d.ts.map +0 -1
- package/dist/server/methods/op_show.js +0 -24
- package/dist/server/methods/op_show.js.map +0 -1
- package/dist/server/methods/session_set_persona.d.ts +0 -5
- package/dist/server/methods/session_set_persona.d.ts.map +0 -1
- package/dist/server/methods/session_set_persona.js +0 -29
- package/dist/server/methods/session_set_persona.js.map +0 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
-- Entry CRUD primitives (SPEC §crud). Used by entry-bearing schemes
|
|
2
|
+
-- (known/unknown/skill) and the engine for cross-scheme COPY/MOVE/SEND[410].
|
|
3
|
+
|
|
4
|
+
-- PREP: crud_find_session_entry
|
|
5
|
+
-- Null-aware scheme comparison: the file scheme is the routing internal
|
|
6
|
+
-- for bare/absolute paths; storage normalizes its rows to scheme=NULL
|
|
7
|
+
-- (Engine.#extractTarget). SQL's `=` doesn't match NULL, so use `IS`.
|
|
8
|
+
SELECT id FROM entries
|
|
9
|
+
WHERE scope = 'session' AND session_id = $session_id AND scheme IS $scheme AND pathname = $pathname;
|
|
10
|
+
|
|
11
|
+
-- PREP: crud_read_channels
|
|
12
|
+
SELECT name, content, mimetype FROM entry_channels WHERE entry_id = $entry_id;
|
|
13
|
+
|
|
14
|
+
-- PREP: crud_read_tags
|
|
15
|
+
SELECT tag FROM entry_tags WHERE entry_id = $entry_id ORDER BY tag;
|
|
16
|
+
|
|
17
|
+
-- PREP: crud_insert_session_entry
|
|
18
|
+
INSERT INTO entries (scope, session_id, scheme, pathname)
|
|
19
|
+
VALUES ('session', $session_id, $scheme, $pathname)
|
|
20
|
+
RETURNING id;
|
|
21
|
+
|
|
22
|
+
-- PREP: crud_register_session_member
|
|
23
|
+
-- Idempotent bare-membership insert (SPEC §membership D4 — git ls-files membership).
|
|
24
|
+
-- A git-tracked file is a session member by virtue of being tracked; the row
|
|
25
|
+
-- is the membership marker the File read-gate checks and FIND globs by path.
|
|
26
|
+
-- Channel-less by design — disk stays the truth (D3). ON CONFLICT no-ops so
|
|
27
|
+
-- re-resolving membership each turn never duplicates or churns rows.
|
|
28
|
+
INSERT INTO entries (scope, session_id, scheme, pathname, membership_origin)
|
|
29
|
+
VALUES ('session', $session_id, $scheme, $pathname, $membership_origin)
|
|
30
|
+
ON CONFLICT (session_id, scheme, pathname) WHERE scope = 'session'
|
|
31
|
+
DO NOTHING
|
|
32
|
+
RETURNING id;
|
|
33
|
+
|
|
34
|
+
-- PREP: crud_get_member_sig
|
|
35
|
+
-- SPEC §membership-change-gated-sync — the member's last-synced disk signature
|
|
36
|
+
-- (mtime:size), read before materializing so an unchanged file short-circuits
|
|
37
|
+
-- before any content read. Null-aware scheme (file members store scheme=NULL).
|
|
38
|
+
SELECT id, synced_sig FROM entries
|
|
39
|
+
WHERE scope = 'session' AND session_id = $session_id AND scheme IS $scheme AND pathname = $pathname;
|
|
40
|
+
|
|
41
|
+
-- PREP: crud_set_synced_sig
|
|
42
|
+
-- Stamp the disk signature after a member materializes to disk truth; the next
|
|
43
|
+
-- pass compares against it to skip an unchanged member.
|
|
44
|
+
UPDATE entries SET synced_sig = $synced_sig WHERE id = $entry_id;
|
|
45
|
+
|
|
46
|
+
-- PREP: crud_delete_channels
|
|
47
|
+
DELETE FROM entry_channels WHERE entry_id = $entry_id;
|
|
48
|
+
|
|
49
|
+
-- PREP: crud_delete_channel
|
|
50
|
+
DELETE FROM entry_channels WHERE entry_id = $entry_id AND name = $name
|
|
51
|
+
RETURNING name;
|
|
52
|
+
|
|
53
|
+
-- PREP: crud_delete_tags
|
|
54
|
+
DELETE FROM entry_tags WHERE entry_id = $entry_id;
|
|
55
|
+
|
|
56
|
+
-- PREP: crud_write_channel
|
|
57
|
+
INSERT INTO entry_channels (entry_id, name, content, mimetype, tokens, state)
|
|
58
|
+
VALUES ($entry_id, $name, $content, $mimetype, $tokens, $state);
|
|
59
|
+
|
|
60
|
+
-- PREP: crud_write_tag
|
|
61
|
+
INSERT OR IGNORE INTO entry_tags (entry_id, tag) VALUES ($entry_id, $tag);
|
|
62
|
+
|
|
63
|
+
-- PREP: crud_delete_tag
|
|
64
|
+
DELETE FROM entry_tags WHERE entry_id = $entry_id AND tag = $tag;
|
|
65
|
+
|
|
66
|
+
-- PREP: crud_delete_entry
|
|
67
|
+
DELETE FROM entries WHERE id = $entry_id;
|
|
68
|
+
|
|
69
|
+
-- PREP: crud_list_reconcilable_members
|
|
70
|
+
-- Overlay-owned file members of a session (membership_origin IN git, constraint).
|
|
71
|
+
-- The reconciliation set: resolveGitMembership compares this against the desired
|
|
72
|
+
-- ((git ls-files ∪ add) − ignore) and un-registers the difference, so entries ==
|
|
73
|
+
-- members. Model-created ('client') members are excluded — not git's to reclaim.
|
|
74
|
+
SELECT id, pathname FROM entries
|
|
75
|
+
WHERE scope = 'session' AND session_id = $session_id AND scheme IS NULL AND membership_origin IN ('git', 'constraint');
|
|
76
|
+
|
|
77
|
+
-- PREP: crud_insert_session_constraint
|
|
78
|
+
-- SPEC §membership constraint overlay — the client supersede. Idempotent per
|
|
79
|
+
-- (session, effect, glob); effect ∈ {add, ignore, read-only}.
|
|
80
|
+
INSERT OR IGNORE INTO session_constraints (session_id, effect, glob)
|
|
81
|
+
VALUES ($session_id, $effect, $glob);
|
|
82
|
+
|
|
83
|
+
-- PREP: crud_list_session_constraints
|
|
84
|
+
SELECT effect, glob FROM session_constraints WHERE session_id = $session_id;
|
|
85
|
+
|
|
86
|
+
-- PREP: crud_delete_session_constraint
|
|
87
|
+
-- "remove" a constraint — deleting the row, not a fourth effect.
|
|
88
|
+
DELETE FROM session_constraints WHERE session_id = $session_id AND effect = $effect AND glob = $glob;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
-- FIND / multi-entry OPEN / FOLD candidate selection for entry-bearing
|
|
2
|
+
-- schemes (SPEC §find; plurnk.md FIND row).
|
|
3
|
+
--
|
|
4
|
+
-- Scope (target) + tag filters ONLY. The body matcher does NOT belong here:
|
|
5
|
+
-- per plurnk.md §"Body matcher dispatch" it runs against entry CONTENT, which
|
|
6
|
+
-- needs the mimetypes daughter (xpath/jsonpath/regex/glob over structured
|
|
7
|
+
-- content) — so the body match runs in JS (Matcher.matchAgainstContent) over
|
|
8
|
+
-- the default-channel content this query returns. Static query handles every
|
|
9
|
+
-- filter combination via IS-NULL guards (per SqlRite LLMS.md §channels).
|
|
10
|
+
|
|
11
|
+
-- PREP: find_session_entry_candidates
|
|
12
|
+
-- $channel: default-channel name whose content the body matcher runs against
|
|
13
|
+
-- $scope_pathname: pathname-prefix glob (e.g., "foo/*") or NULL for no prefix
|
|
14
|
+
-- $tags: JSON string of tag list (e.g., '["a","b"]'); '[]' or NULL for no tag filter
|
|
15
|
+
SELECT e.id AS entry_id, e.pathname, ec.content, ec.mimetype
|
|
16
|
+
FROM entries e
|
|
17
|
+
JOIN entry_channels ec ON ec.entry_id = e.id AND ec.name = $channel
|
|
18
|
+
WHERE e.scope = 'session'
|
|
19
|
+
AND e.session_id = $session_id
|
|
20
|
+
AND e.scheme IS $scheme
|
|
21
|
+
AND ($scope_pathname IS NULL OR e.pathname GLOB $scope_pathname)
|
|
22
|
+
AND (
|
|
23
|
+
json_array_length(COALESCE($tags, '[]')) = 0
|
|
24
|
+
OR e.id IN (
|
|
25
|
+
SELECT entry_id FROM entry_tags
|
|
26
|
+
WHERE tag IN (SELECT value FROM json_each(COALESCE($tags, '[]')))
|
|
27
|
+
GROUP BY entry_id
|
|
28
|
+
HAVING COUNT(DISTINCT tag) = json_array_length(COALESCE($tags, '[]'))
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
ORDER BY e.pathname;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
-- @graph (plurnk-service#186) — symbol_defs/refs population + @< / @> / @
|
|
2
|
+
-- resolution. Populated delete-then-insert per entry at EntryCrud.writeEntry;
|
|
3
|
+
-- queried by the FIND `graph` dialect via EntryGraph. Traversal is kind-agnostic
|
|
4
|
+
-- (every ref is an edge; `kind` is edge metadata, never filtered here). 1-hop —
|
|
5
|
+
-- the grammar's `@<sym` surface is single-hop; WITH RECURSIVE the day it grows one.
|
|
6
|
+
|
|
7
|
+
-- PREP: graph_delete_defs
|
|
8
|
+
DELETE FROM symbol_defs WHERE entry_id = $entry_id;
|
|
9
|
+
|
|
10
|
+
-- PREP: graph_delete_refs
|
|
11
|
+
DELETE FROM symbol_refs WHERE entry_id = $entry_id;
|
|
12
|
+
|
|
13
|
+
-- PREP: graph_insert_def
|
|
14
|
+
INSERT INTO symbol_defs (session_id, entry_id, name, kind, container, line, end_line)
|
|
15
|
+
VALUES ($session_id, $entry_id, $name, $kind, $container, $line, $end_line);
|
|
16
|
+
|
|
17
|
+
-- PREP: graph_enclosing_symbol
|
|
18
|
+
-- Project Findings — the smallest symbol_def covering a line: the structural unit a match
|
|
19
|
+
-- at line N belongs to (function/class/heading). Ties → tightest span; a point symbol
|
|
20
|
+
-- (NULL end_line) covers only its own line.
|
|
21
|
+
SELECT name, kind, line, end_line
|
|
22
|
+
FROM symbol_defs
|
|
23
|
+
WHERE entry_id = $entry_id AND line <= $line AND COALESCE(end_line, line) >= $line
|
|
24
|
+
ORDER BY (COALESCE(end_line, line) - line) ASC
|
|
25
|
+
LIMIT 1;
|
|
26
|
+
|
|
27
|
+
-- PREP: graph_insert_ref
|
|
28
|
+
INSERT INTO symbol_refs (session_id, entry_id, name, kind, container, line, col)
|
|
29
|
+
VALUES ($session_id, $entry_id, $name, $kind, $container, $line, $col);
|
|
30
|
+
|
|
31
|
+
-- PREP: graph_referrers
|
|
32
|
+
-- @<sym — entries (scheme-scoped) that reference sym.
|
|
33
|
+
SELECT DISTINCT e.pathname
|
|
34
|
+
FROM symbol_refs r JOIN entries e ON e.id = r.entry_id
|
|
35
|
+
WHERE r.session_id = $session_id AND e.scheme IS $scheme AND r.name = $name
|
|
36
|
+
ORDER BY e.pathname;
|
|
37
|
+
|
|
38
|
+
-- PREP: graph_def_pathnames_by_name
|
|
39
|
+
-- Resolve a name → the defining entries' pathnames (scheme-scoped). Serves @>'s
|
|
40
|
+
-- target resolution and @'s neighborhood def lookup.
|
|
41
|
+
SELECT DISTINCT e.pathname
|
|
42
|
+
FROM symbol_defs d JOIN entries e ON e.id = d.entry_id
|
|
43
|
+
WHERE d.session_id = $session_id AND e.scheme IS $scheme AND d.name = $name
|
|
44
|
+
ORDER BY e.pathname;
|
|
45
|
+
|
|
46
|
+
-- PREP: graph_resolve_def
|
|
47
|
+
-- sym → its def(s): (entry_id, container) to compose the qualified path for @>.
|
|
48
|
+
SELECT entry_id, container FROM symbol_defs
|
|
49
|
+
WHERE session_id = $session_id AND name = $name;
|
|
50
|
+
|
|
51
|
+
-- PREP: graph_refs_from_source
|
|
52
|
+
-- @>sym step — the target names sym's def references (its own ref rows, keyed
|
|
53
|
+
-- by the source def's full qualified path = the @> join semantics from #186).
|
|
54
|
+
SELECT DISTINCT name FROM symbol_refs
|
|
55
|
+
WHERE session_id = $session_id AND entry_id = $entry_id AND container IS $container;
|
|
56
|
+
|
|
57
|
+
-- PREP: graph_set_deep_hash
|
|
58
|
+
-- Stamp the body-content hash at the moment an entry's deep channels were
|
|
59
|
+
-- (re)derived. The next manifest-add pass skips the entry while the hash holds.
|
|
60
|
+
UPDATE entries SET deep_hash = $deep_hash WHERE id = $entry_id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-manifest.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"_entry-manifest.d.ts","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAYnE,MAAM,CAAC,OAAO,OAAO,aAAa;;WAUjB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;CAgG5E"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
// lists every entry, uniformly READable, in no relevance order. The model
|
|
4
4
|
// ranks/filters it itself by querying the catalog
|
|
5
5
|
// (task-aware) — the catalog never ranks for it, or it would be an index again.
|
|
6
|
-
// Each item: { path, seconds?, channels: { <
|
|
6
|
+
// Each item: { path, seconds?, channels: { <uri>: { mimetype, tokens, lines } } } — each channel
|
|
7
|
+
// keyed by its addressable URI (default channel → the bare path, non-default → path#channel).
|
|
7
8
|
// `tokens` is the live provider's count, re-counted at render — the write-time
|
|
8
9
|
// snapshot is NOT trusted, since the model can change between loops and a stale
|
|
9
10
|
// tokenizer would make the catalog lie; `lines` is the content's extent from
|
|
@@ -20,7 +21,10 @@ import EntrySemantic from "./_entry-semantic.js";
|
|
|
20
21
|
export default class EntryManifest {
|
|
21
22
|
static #MANIFEST_PATH = "plurnk:///manifest.json";
|
|
22
23
|
static #toPath(scheme, pathname) {
|
|
23
|
-
|
|
24
|
+
// Bare (file, scheme===null) entries store the namespace-absolute key (`/notes.md`)
|
|
25
|
+
// but the model types the relative path it reads — render the leading slash off so
|
|
26
|
+
// the catalog matches what the model writes back (READ/EDIT resolve either form).
|
|
27
|
+
return scheme === null ? pathname.replace(/^\//, "") : renderAddress(scheme, pathname);
|
|
24
28
|
}
|
|
25
29
|
static async buildManifestBody(ctx) {
|
|
26
30
|
const { db, sessionId, mimetypes, tokenize } = ctx;
|
|
@@ -123,7 +127,11 @@ export default class EntryManifest {
|
|
|
123
127
|
await db.graph_set_deep_hash.run({ entry_id: r.entry_id, deep_hash: createHash("sha256").update(r.content).update("\0").update(deepCfgSig).digest("hex") });
|
|
124
128
|
}
|
|
125
129
|
}
|
|
126
|
-
|
|
130
|
+
// note 4 — key channels by addressable URI: the default channel by the bare entry
|
|
131
|
+
// path, a non-default by path#channel — so the model READs a channel without guessing.
|
|
132
|
+
const defaultCh = ctx.defaultChannelFor?.(r.scheme) ?? "body";
|
|
133
|
+
const channelKey = r.channel === defaultCh ? entry.path : `${entry.path}#${r.channel}`;
|
|
134
|
+
entry.channels[channelKey] = { mimetype: r.mimetype, tokens: tokenize(r.content), lines: result.totalLines };
|
|
127
135
|
}
|
|
128
136
|
return JSON.stringify([...byEntry.values()], null, 2);
|
|
129
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-manifest.js","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,iFAAiF;AACjF,0EAA0E;AAC1E,kDAAkD;AAClD,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"_entry-manifest.js","sourceRoot":"","sources":["../../src/schemes/_entry-manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- Session-entry op handlers for entry-bearing schemes (SPEC §scheme, §channel-selection).
|
|
2
|
+
-- Some queries reuse PREPs declared in _entry-crud.sql:
|
|
3
|
+
-- crud_find_session_entry, crud_write_tag
|
|
4
|
+
|
|
5
|
+
-- PREP: ops_upsert_channel
|
|
6
|
+
-- EDIT semantics: replace channel content if it exists.
|
|
7
|
+
INSERT OR REPLACE INTO entry_channels (entry_id, name, content, mimetype, tokens, state)
|
|
8
|
+
VALUES ($entry_id, $name, $content, $mimetype, $tokens, 'static');
|
|
9
|
+
|
|
10
|
+
-- PREP: ops_read_channel
|
|
11
|
+
-- READ targeting a specific channel of a session entry.
|
|
12
|
+
SELECT ec.content, ec.mimetype
|
|
13
|
+
FROM entries e
|
|
14
|
+
JOIN entry_channels ec ON ec.entry_id = e.id
|
|
15
|
+
WHERE e.scope = 'session'
|
|
16
|
+
AND e.session_id = $session_id
|
|
17
|
+
AND e.scheme IS $scheme
|
|
18
|
+
AND e.pathname = $pathname
|
|
19
|
+
AND ec.name = $channel;
|
|
20
|
+
|
|
@@ -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;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,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;WAyDlG,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAQvE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAU3B,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,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,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,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;WAyDlG,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAQvE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;WAU3B,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,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CAkC9Q"}
|
|
@@ -124,14 +124,9 @@ export default class EntrySemantic {
|
|
|
124
124
|
}
|
|
125
125
|
// The ~query dispatch: embed the query text through the SAME channel, FTS-narrow by
|
|
126
126
|
// its terms, cosine-rank the narrowed set, top-K. Each result carries its best-matching
|
|
127
|
-
// chunk's line span (the Finding extent).
|
|
128
|
-
// (the
|
|
127
|
+
// chunk's line span (the Finding extent). No embedder → the top-K <K> form degrades to an
|
|
128
|
+
// FTS-only keyword rank (whole-entry findings); the <0.x> threshold form stays 501.
|
|
129
129
|
static async rankSemantic(db, sessionId, scheme, mimetypes, queryText, marker) {
|
|
130
|
-
const r = await mimetypes.process({ content: queryText, hint: "text/markdown" }, { channels: ["embedding"] });
|
|
131
|
-
// No embedder installed → the channel degrades to empty bytes (not undefined);
|
|
132
|
-
// an empty query vector can't rank, so surface 501 rather than a false 200.
|
|
133
|
-
if (r.embedding === undefined || r.embedding.byteLength === 0 || r.embeddingModel === undefined)
|
|
134
|
-
return { status: 501, results: [] };
|
|
135
130
|
const ftsQuery = EntrySemantic.ftsQueryFor(queryText);
|
|
136
131
|
if (ftsQuery.length === 0)
|
|
137
132
|
return { status: 200, results: [] };
|
|
@@ -141,6 +136,18 @@ export default class EntrySemantic {
|
|
|
141
136
|
// value outside (0,1) is a nonsense result-marker → 416, never coerced.
|
|
142
137
|
const { first, last } = marker;
|
|
143
138
|
const toResult = (x) => ({ pathname: x.pathname, lineStart: x.line_start, lineEnd: x.line_end });
|
|
139
|
+
const r = await mimetypes.process({ content: queryText, hint: "text/markdown" }, { channels: ["embedding"] });
|
|
140
|
+
if (r.embedding === undefined || r.embedding.byteLength === 0 || r.embeddingModel === undefined) {
|
|
141
|
+
// FTS fallback: no embedder, so there is no query vector to cosine with. Top-K ranks
|
|
142
|
+
// by BM25 keyword relevance alone; the <0.x> threshold form is intrinsically cosine-
|
|
143
|
+
// based (no bounded BM25 analogue) → it stays 501.
|
|
144
|
+
if (!Number.isInteger(first))
|
|
145
|
+
return { status: 501, results: [] };
|
|
146
|
+
const rows = await db.semantic_rank_fts.all({
|
|
147
|
+
fts_query: ftsQuery, session_id: sessionId, scheme, k: first,
|
|
148
|
+
});
|
|
149
|
+
return { status: 200, results: rows.map(toResult) };
|
|
150
|
+
}
|
|
144
151
|
if (Number.isInteger(first)) {
|
|
145
152
|
const rows = await db.semantic_rank.all({
|
|
146
153
|
fts_query: ftsQuery, session_id: sessionId, scheme, query_vector: r.embedding, embedding_model: r.embeddingModel, k: first,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"_entry-semantic.js","sourceRoot":"","sources":["../../src/schemes/_entry-semantic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
-- ~semantic (plurnk-service#186) — the FTS half of the dialect (FTS narrow →
|
|
2
|
+
-- cosine rank). Populated at the gated manifest-add hook; the FTS5 rowid IS the
|
|
3
|
+
-- entry id, so a re-index is delete-by-rowid then insert.
|
|
4
|
+
|
|
5
|
+
-- PREP: fts_delete
|
|
6
|
+
DELETE FROM entry_fts WHERE rowid = $entry_id;
|
|
7
|
+
|
|
8
|
+
-- PREP: fts_insert
|
|
9
|
+
INSERT INTO entry_fts (rowid, content) VALUES ($entry_id, $content);
|
|
10
|
+
|
|
11
|
+
-- PREP: embedding_set
|
|
12
|
+
-- Insert ONE chunk's vector + its <L> extent + the model. The caller clears the
|
|
13
|
+
-- entry's rows (embedding_delete) first and inserts each chunk in seq order, so no
|
|
14
|
+
-- upsert is needed — a re-derivation is delete-all then insert-each.
|
|
15
|
+
INSERT INTO entry_embeddings (entry_id, chunk_seq, line_start, line_end, vector, embedding_model)
|
|
16
|
+
VALUES ($entry_id, $chunk_seq, $line_start, $line_end, $vector, $embedding_model);
|
|
17
|
+
|
|
18
|
+
-- PREP: embedding_delete
|
|
19
|
+
-- Clears ALL of an entry's chunk rows (the re-derivation reset).
|
|
20
|
+
DELETE FROM entry_embeddings WHERE entry_id = $entry_id;
|
|
21
|
+
|
|
22
|
+
-- PREP: semantic_rank
|
|
23
|
+
-- The ~semantic fusion: FTS narrows by keyword ($fts_query), then cosine ranks the
|
|
24
|
+
-- narrowed candidates over the query embedding ($query_vector), top-K. Scheme-scoped
|
|
25
|
+
-- like every dialect. FTS does the scale-cut; cosine the precise rank — so a high-
|
|
26
|
+
-- cosine entry that doesn't match the keyword is correctly excluded by the narrow.
|
|
27
|
+
-- Many chunk rows per entry → rank by the entry's BEST chunk (per-entry top cosine via
|
|
28
|
+
-- ROW_NUMBER), and surface that winning chunk's line span as the finding extent
|
|
29
|
+
-- (Project Findings). embedding_model filter keeps cosine within one model's dimensions.
|
|
30
|
+
WITH ranked AS (
|
|
31
|
+
SELECT e.pathname, em.line_start, em.line_end,
|
|
32
|
+
cosine(em.vector, $query_vector) AS score,
|
|
33
|
+
ROW_NUMBER() OVER (PARTITION BY e.id ORDER BY cosine(em.vector, $query_vector) DESC) AS rn
|
|
34
|
+
FROM entry_fts f
|
|
35
|
+
JOIN entries e ON e.id = f.rowid
|
|
36
|
+
JOIN entry_embeddings em ON em.entry_id = e.id AND em.embedding_model = $embedding_model
|
|
37
|
+
WHERE f.content MATCH $fts_query
|
|
38
|
+
AND e.session_id = $session_id
|
|
39
|
+
AND e.scheme IS $scheme
|
|
40
|
+
)
|
|
41
|
+
SELECT pathname, line_start, line_end FROM ranked
|
|
42
|
+
WHERE rn = 1
|
|
43
|
+
ORDER BY score DESC
|
|
44
|
+
LIMIT $k;
|
|
45
|
+
|
|
46
|
+
-- PREP: semantic_rank_threshold
|
|
47
|
+
-- #209 — the <0.x> similarity-threshold form: same FTS+cosine fusion, but a cosine
|
|
48
|
+
-- floor ($threshold, in (0,1)) replaces top-K, and $cap (-1 = unbounded) is the
|
|
49
|
+
-- optional <0.x,N> result cap.
|
|
50
|
+
WITH ranked AS (
|
|
51
|
+
SELECT e.pathname, em.line_start, em.line_end,
|
|
52
|
+
cosine(em.vector, $query_vector) AS score,
|
|
53
|
+
ROW_NUMBER() OVER (PARTITION BY e.id ORDER BY cosine(em.vector, $query_vector) DESC) AS rn
|
|
54
|
+
FROM entry_fts f
|
|
55
|
+
JOIN entries e ON e.id = f.rowid
|
|
56
|
+
JOIN entry_embeddings em ON em.entry_id = e.id AND em.embedding_model = $embedding_model
|
|
57
|
+
WHERE f.content MATCH $fts_query
|
|
58
|
+
AND e.session_id = $session_id
|
|
59
|
+
AND e.scheme IS $scheme
|
|
60
|
+
)
|
|
61
|
+
SELECT pathname, line_start, line_end FROM ranked
|
|
62
|
+
WHERE rn = 1 AND score >= $threshold
|
|
63
|
+
ORDER BY score DESC
|
|
64
|
+
LIMIT $cap;
|
|
65
|
+
|
|
66
|
+
-- PREP: semantic_rank_fts
|
|
67
|
+
-- FTS-only fallback when no embedder is installed: rank entry_fts by BM25 keyword
|
|
68
|
+
-- relevance alone (no entry_embeddings join, no cosine), scheme-scoped, top-K. Without
|
|
69
|
+
-- chunk vectors there is no winning span, so the finding is the whole entry — line
|
|
70
|
+
-- 1..its line count, derived from the indexed FTS content.
|
|
71
|
+
SELECT e.pathname,
|
|
72
|
+
1 AS line_start,
|
|
73
|
+
length(f.content) - length(replace(f.content, char(10), '')) + 1 AS line_end
|
|
74
|
+
FROM entry_fts f
|
|
75
|
+
JOIN entries e ON e.id = f.rowid
|
|
76
|
+
WHERE f.content MATCH $fts_query
|
|
77
|
+
AND e.session_id = $session_id
|
|
78
|
+
AND e.scheme IS $scheme
|
|
79
|
+
ORDER BY rank
|
|
80
|
+
LIMIT $k;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default class ExecAbort {
|
|
2
|
+
static get graceMs(): number;
|
|
3
|
+
static teardownReason(): {
|
|
4
|
+
housekeeping: true;
|
|
5
|
+
graceMs: number;
|
|
6
|
+
};
|
|
7
|
+
static killReason(signal: number | null): {
|
|
8
|
+
signal: number | null;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=exec-abort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-abort.d.ts","sourceRoot":"","sources":["../../src/schemes/exec-abort.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,SAAS;IAI1B,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAGD,MAAM,CAAC,cAAc,IAAI;QAAE,YAAY,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAMhE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CAGtE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// The abort-reason protocol @plurnk/plurnk-execs' SubprocessExecutor reads off `signal.reason`:
|
|
2
|
+
// { signal } → deliver exactly that Unix signal, once, no escalation.
|
|
3
|
+
// { housekeeping: true, graceMs } → loop/run teardown: the polite signal, then SIGKILL after graceMs.
|
|
4
|
+
// A { signal: null } reason (a bare KILL) carries no override, so the executor applies its own
|
|
5
|
+
// polite default, SIGHUP — the gentlest rung; the model escalates with explicit codes.
|
|
6
|
+
export default class ExecAbort {
|
|
7
|
+
// The grace a teardown straggler gets before the hard SIGKILL. The executor refuses to bake a
|
|
8
|
+
// number (it'd be a magic literal there); the consumer owns it — env-tunable, 2s default. A
|
|
9
|
+
// getter, not a static field, so a test can set the env at runtime. §run-lifecycle-total-reap
|
|
10
|
+
static get graceMs() {
|
|
11
|
+
return Number(process.env.PLURNK_EXEC_KILL_GRACE_MS ?? "2000");
|
|
12
|
+
}
|
|
13
|
+
// Loop/run teardown — a BOUNDED reap, so Exec.idle() can't wedge on a signal-ignoring spawn.
|
|
14
|
+
static teardownReason() {
|
|
15
|
+
return { housekeeping: true, graceMs: ExecAbort.graceMs };
|
|
16
|
+
}
|
|
17
|
+
// The model's KILL[code] → exactly that signal, once (the model owns escalation: KILL[15] SIGTERM,
|
|
18
|
+
// KILL[9] SIGKILL). A bare KILL (null) carries no override — the executor's SIGHUP polite default.
|
|
19
|
+
static killReason(signal) {
|
|
20
|
+
return { signal };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=exec-abort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec-abort.js","sourceRoot":"","sources":["../../src/schemes/exec-abort.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,8FAA8F;AAC9F,yGAAyG;AACzG,+FAA+F;AAC/F,uFAAuF;AACvF,MAAM,CAAC,OAAO,OAAO,SAAS;IAC1B,8FAA8F;IAC9F,4FAA4F;IAC5F,8FAA8F;IAC9F,MAAM,KAAK,OAAO;QACd,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,6FAA6F;IAC7F,MAAM,CAAC,cAAc;QACjB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;IAED,mGAAmG;IACnG,mGAAmG;IACnG,MAAM,CAAC,UAAU,CAAC,MAAqB;QACnC,OAAO,EAAE,MAAM,EAAE,CAAC;IACtB,CAAC;CACJ"}
|
package/dist/schemes/exec-env.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { STANDARD_PROVIDERS } from "@plurnk/plurnk-providers";
|
|
15
15
|
export default class ExecEnv {
|
|
16
16
|
// apiKeyVar is optional (providers 0.9.0): an anonymous provider like `plurnk`
|
|
17
|
-
// has none. It loses no secret here — plurnk's
|
|
17
|
+
// has none. It loses no secret here — plurnk's PLURNK_API_KEY cred is
|
|
18
18
|
// already stripped by the PLURNK_ prefix rule below — so drop the empties.
|
|
19
19
|
static #providerKeys = new Set(Object.values(STANDARD_PROVIDERS)
|
|
20
20
|
.map((spec) => spec.apiKeyVar)
|
|
@@ -1 +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,+EAA+E;IAC/E,
|
|
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,+EAA+E;IAC/E,sEAAsE;IACtE,2EAA2E;IAC3E,MAAM,CAAC,aAAa,GAAwB,IAAI,GAAG,CAC/C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;SAC5B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CACnD,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"}
|
|
@@ -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;AAsCnF,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;;
|
|
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;AAsCnF,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;;gBA8BX,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;IAwED,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;IAyCtF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2I3B;;;;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,YAAY,EAAE,MAAM,CAAC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACjD,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;IAwQF;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAyB,GAAG,OAAO;CA+LzE"}
|