@plurnk/plurnk-service 0.28.0 → 0.34.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 +19 -20
- package/dist/Paths.d.ts +0 -1
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +2 -18
- package/dist/Paths.js.map +1 -1
- package/dist/content/line-marker.d.ts +4 -0
- package/dist/content/line-marker.d.ts.map +1 -1
- package/dist/content/line-marker.js +7 -1
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/matcher.js +1 -1
- package/dist/content/matcher.js.map +1 -1
- package/dist/content/mimetype-binary.js +1 -1
- package/dist/content/mimetype-binary.js.map +1 -1
- package/dist/content/path-mimetype.js +1 -1
- package/dist/content/path-mimetype.js.map +1 -1
- package/dist/content/read-resolve.js +1 -1
- package/dist/content/read-resolve.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +8 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +9 -1
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/Engine.d.ts +5 -6
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +107 -52
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/ProviderInstantiate.js +1 -1
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +1 -0
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +22 -0
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/fork.js +2 -2
- package/dist/core/fork.js.map +1 -1
- package/dist/core/git-membership.js +6 -6
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/packet-wire.d.ts +0 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +6 -9
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/scheme-types.d.ts +2 -1
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schemes/Exec.d.ts +1 -0
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +4 -3
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/File.d.ts +1 -0
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +3 -1
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Known.d.ts +1 -0
- package/dist/schemes/Known.d.ts.map +1 -1
- package/dist/schemes/Known.js +2 -0
- package/dist/schemes/Known.js.map +1 -1
- package/dist/schemes/Log.d.ts +1 -0
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +4 -1
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Plurnk.d.ts +1 -0
- package/dist/schemes/Plurnk.d.ts.map +1 -1
- package/dist/schemes/Plurnk.js +1 -0
- package/dist/schemes/Plurnk.js.map +1 -1
- package/dist/schemes/Run.d.ts +17 -0
- package/dist/schemes/Run.d.ts.map +1 -0
- package/dist/schemes/Run.js +72 -0
- package/dist/schemes/Run.js.map +1 -0
- package/dist/schemes/Unknown.d.ts +1 -0
- package/dist/schemes/Unknown.d.ts.map +1 -1
- package/dist/schemes/Unknown.js +1 -0
- package/dist/schemes/Unknown.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +2 -2
- 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 +22 -6
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +47 -30
- 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 +10 -9
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-semantic.d.ts +1 -1
- package/dist/schemes/_entry-semantic.d.ts.map +1 -1
- package/dist/schemes/_entry-semantic.js +5 -2
- package/dist/schemes/_entry-semantic.js.map +1 -1
- package/dist/schemes/_entry-send.js +1 -1
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/ClientConnection.d.ts.map +1 -1
- package/dist/server/ClientConnection.js +2 -3
- package/dist/server/ClientConnection.js.map +1 -1
- package/dist/server/Daemon.d.ts +1 -3
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +25 -14
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/MethodRegistry.d.ts +0 -2
- package/dist/server/MethodRegistry.d.ts.map +1 -1
- package/dist/server/clientTurn.js +1 -1
- package/dist/server/clientTurn.js.map +1 -1
- package/dist/server/dsl.d.ts.map +1 -1
- package/dist/server/dsl.js +6 -4
- package/dist/server/dsl.js.map +1 -1
- package/dist/server/envelope.d.ts +0 -6
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +12 -24
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/methods/_dispatchAsPlurnk.js +1 -1
- package/dist/server/methods/_dispatchAsPlurnk.js.map +1 -1
- package/dist/server/methods/discover.d.ts.map +1 -1
- package/dist/server/methods/discover.js +1 -0
- package/dist/server/methods/discover.js.map +1 -1
- package/dist/server/methods/log_read.js +1 -1
- package/dist/server/methods/log_read.js.map +1 -1
- package/dist/server/methods/loop_cancel.js +1 -1
- package/dist/server/methods/loop_cancel.js.map +1 -1
- package/dist/server/methods/loop_inject.d.ts.map +1 -1
- package/dist/server/methods/loop_inject.js +1 -2
- package/dist/server/methods/loop_inject.js.map +1 -1
- package/dist/server/methods/loop_run.d.ts.map +1 -1
- package/dist/server/methods/loop_run.js +4 -10
- package/dist/server/methods/loop_run.js.map +1 -1
- package/dist/server/methods/session_attach.d.ts.map +1 -1
- package/dist/server/methods/session_attach.js +3 -9
- package/dist/server/methods/session_attach.js.map +1 -1
- package/dist/server/methods/session_constraints.js +1 -1
- package/dist/server/methods/session_constraints.js.map +1 -1
- package/dist/server/methods/session_create.d.ts.map +1 -1
- package/dist/server/methods/session_create.js +5 -10
- package/dist/server/methods/session_create.js.map +1 -1
- package/dist/server/yolo.d.ts.map +1 -1
- package/dist/server/yolo.js +1 -0
- package/dist/server/yolo.js.map +1 -1
- package/migrations/0000-00-00.01_schema.sql +16 -10
- package/package.json +9 -10
- package/requirements.md +2 -2
- package/persona.md +0 -1
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
-- project_root: workspace pointer. NULL = headless (no disk side-effects);
|
|
3
3
|
-- non-null = absolute path to the client's source tree, supplied at
|
|
4
4
|
-- session.create or session.set_root.
|
|
5
|
-
-- persona: head of the persona cascade (loops.persona > runs.persona >
|
|
6
|
-
-- sessions.persona > PATHS.defaultPersona). Nullable; null falls through.
|
|
7
5
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
8
6
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
9
7
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
@@ -11,24 +9,21 @@ CREATE TABLE IF NOT EXISTS sessions (
|
|
|
11
9
|
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
12
10
|
cost_pico INTEGER NOT NULL DEFAULT 0 CHECK (cost_pico >= 0),
|
|
13
11
|
scheme_registry_additions TEXT NOT NULL DEFAULT '[]' CHECK (json_valid(scheme_registry_additions)),
|
|
14
|
-
project_root TEXT
|
|
15
|
-
persona TEXT
|
|
12
|
+
project_root TEXT
|
|
16
13
|
) STRICT;
|
|
17
14
|
|
|
18
15
|
CREATE INDEX IF NOT EXISTS sessions_created_at ON sessions (created_at);
|
|
19
16
|
|
|
20
17
|
-- INIT: runs
|
|
21
|
-
-- persona: middle of the persona cascade (loops > runs > sessions > default).
|
|
22
|
-
-- Nullable; null falls through to the session level.
|
|
23
18
|
CREATE TABLE IF NOT EXISTS runs (
|
|
24
19
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
25
20
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
26
21
|
session_id INTEGER NOT NULL,
|
|
27
22
|
name TEXT NOT NULL CHECK (length(name) > 0),
|
|
28
23
|
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
24
|
+
-- runs fork via parent_run_id; sessions carry no parent — §machine-processes-no-fork-session
|
|
29
25
|
parent_run_id INTEGER CHECK (parent_run_id IS NULL OR parent_run_id != id),
|
|
30
26
|
cost_pico INTEGER NOT NULL DEFAULT 0 CHECK (cost_pico >= 0),
|
|
31
|
-
persona TEXT,
|
|
32
27
|
origin TEXT NOT NULL DEFAULT 'client' CHECK (origin IN ('model', 'client', 'plurnk')),
|
|
33
28
|
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE,
|
|
34
29
|
FOREIGN KEY (parent_run_id) REFERENCES runs(id) ON DELETE CASCADE
|
|
@@ -43,7 +38,6 @@ CREATE UNIQUE INDEX IF NOT EXISTS runs_session_name ON runs (session_id
|
|
|
43
38
|
-- mode). JSON column, merged over DEFAULT_LOOP_FLAGS in code so missing
|
|
44
39
|
-- keys read as their defaults. SchemeRegistry.resolveForLoop gates schemes
|
|
45
40
|
-- by manifest affinity (proposes / excludedInAsk / requiresWeb / etc).
|
|
46
|
-
-- persona: head of the cascade (loops > runs > sessions > default).
|
|
47
41
|
CREATE TABLE IF NOT EXISTS loops (
|
|
48
42
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
49
43
|
version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
|
|
@@ -52,7 +46,6 @@ CREATE TABLE IF NOT EXISTS loops (
|
|
|
52
46
|
status INTEGER NOT NULL DEFAULT 102 CHECK (status IN (100, 102, 200, 499)),
|
|
53
47
|
prompt TEXT NOT NULL,
|
|
54
48
|
flags TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(flags)),
|
|
55
|
-
persona TEXT,
|
|
56
49
|
FOREIGN KEY (run_id) REFERENCES runs(id) ON DELETE CASCADE
|
|
57
50
|
) STRICT;
|
|
58
51
|
|
|
@@ -114,6 +107,10 @@ CREATE TABLE IF NOT EXISTS entries (
|
|
|
114
107
|
-- sync stat()s every member but re-reads/re-tokenizes/rewrites only one whose
|
|
115
108
|
-- signature changed; an unchanged member is a no-op. NULL = never synced.
|
|
116
109
|
synced_sig TEXT,
|
|
110
|
+
-- User Note 5 — manifest cache-friendliness. Last-modified stamp, bumped on every
|
|
111
|
+
-- channel write by entries_touch_on_channel_write; engine_list_session_entries orders
|
|
112
|
+
-- the catalog by it ASC so dormant entries hold the stable prompt-cache prefix.
|
|
113
|
+
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
|
|
117
114
|
CHECK ((scope = 'agent' AND session_id IS NULL)
|
|
118
115
|
OR (scope = 'session' AND session_id IS NOT NULL)),
|
|
119
116
|
FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
|
|
@@ -122,7 +119,7 @@ CREATE TABLE IF NOT EXISTS entries (
|
|
|
122
119
|
CREATE UNIQUE INDEX IF NOT EXISTS entries_agent_identity ON entries (scheme, pathname) WHERE scope = 'agent';
|
|
123
120
|
CREATE UNIQUE INDEX IF NOT EXISTS entries_session_identity ON entries (session_id, scheme, pathname) WHERE scope = 'session';
|
|
124
121
|
|
|
125
|
-
-- The ONE engine-imposed constraint (SPEC §stream-constraints): 100 MiB char-length cap
|
|
122
|
+
-- The ONE engine-imposed constraint (SPEC §stream-constraints, §stream-constraints-engine-one-cap): 100 MiB char-length cap
|
|
126
123
|
-- per channel content body. All other limits are extrinsic.
|
|
127
124
|
CREATE TABLE IF NOT EXISTS entry_channels (
|
|
128
125
|
entry_id INTEGER NOT NULL,
|
|
@@ -135,6 +132,15 @@ CREATE TABLE IF NOT EXISTS entry_channels (
|
|
|
135
132
|
FOREIGN KEY (entry_id) REFERENCES entries(id) ON DELETE CASCADE
|
|
136
133
|
) STRICT, WITHOUT ROWID;
|
|
137
134
|
|
|
135
|
+
-- User Note 5 — bump the entry's updated_at on any channel write so the catalog
|
|
136
|
+
-- (ordered by updated_at ASC) keeps recently-touched entries at the tail and holds
|
|
137
|
+
-- the prompt-cache prefix stable across turns.
|
|
138
|
+
CREATE TRIGGER IF NOT EXISTS entries_touch_on_channel_write
|
|
139
|
+
AFTER INSERT ON entry_channels
|
|
140
|
+
BEGIN
|
|
141
|
+
UPDATE entries SET updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE id = NEW.entry_id;
|
|
142
|
+
END;
|
|
143
|
+
|
|
138
144
|
CREATE TABLE IF NOT EXISTS entry_tags (
|
|
139
145
|
entry_id INTEGER NOT NULL,
|
|
140
146
|
tag TEXT NOT NULL CHECK (length(tag) > 0),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-service",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-grammar contract.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
"bin/plurnk-service.ts",
|
|
22
22
|
"dist/**/*",
|
|
23
23
|
"migrations/**/*.sql",
|
|
24
|
-
"persona.md",
|
|
25
24
|
"requirements.md",
|
|
26
25
|
"README.md",
|
|
27
26
|
"SPEC.md"
|
|
@@ -33,7 +32,7 @@
|
|
|
33
32
|
"start": "node bin/plurnk-service.ts",
|
|
34
33
|
"test:lint": "tsc --noEmit",
|
|
35
34
|
"test:unit": "node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-timeout=30000 src/**/*.test.ts",
|
|
36
|
-
"test:intg": "npm run test:clean-tmp && node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-timeout=30000 test/intg/*.test.ts",
|
|
35
|
+
"test:intg": "npm run test:clean-tmp && PLURNK_MANIFEST_ITEMS=0 node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-timeout=30000 test/intg/*.test.ts",
|
|
37
36
|
"test:live": "npm run test:clean-tmp && node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/live/*.test.ts",
|
|
38
37
|
"test:demo": "npm run test:clean-tmp && node --env-file-if-exists=.env.example --env-file-if-exists=.env --env-file-if-exists=.env.test --test --test-concurrency=1 test/demo/*.test.ts",
|
|
39
38
|
"test:all": "npm run test:lint && npm run test:unit && npm run test:intg && npm run test:demo",
|
|
@@ -45,15 +44,15 @@
|
|
|
45
44
|
"prepare": "npm run build"
|
|
46
45
|
},
|
|
47
46
|
"dependencies": {
|
|
48
|
-
"@plurnk/plurnk-execs": "0.4.
|
|
47
|
+
"@plurnk/plurnk-execs": "0.4.8",
|
|
49
48
|
"@plurnk/plurnk-execs-all": "0.1.5",
|
|
50
|
-
"@plurnk/plurnk-grammar": "0.
|
|
51
|
-
"@plurnk/plurnk-mimetypes": "0.15.
|
|
49
|
+
"@plurnk/plurnk-grammar": "0.54.0",
|
|
50
|
+
"@plurnk/plurnk-mimetypes": "0.15.16",
|
|
52
51
|
"@plurnk/plurnk-mimetypes-embeddings": "0.2.0",
|
|
53
|
-
"@plurnk/plurnk-providers": "0.
|
|
54
|
-
"@plurnk/plurnk-providers-all": "0.
|
|
55
|
-
"@plurnk/plurnk-schemes": "0.
|
|
56
|
-
"@plurnk/plurnk-schemes-http": "0.
|
|
52
|
+
"@plurnk/plurnk-providers": "0.7.0",
|
|
53
|
+
"@plurnk/plurnk-providers-all": "0.5.0",
|
|
54
|
+
"@plurnk/plurnk-schemes": "0.11.0",
|
|
55
|
+
"@plurnk/plurnk-schemes-http": "0.3.0",
|
|
57
56
|
"@possumtech/sqlrite": "5.1.1",
|
|
58
57
|
"diff": "^9.0.0",
|
|
59
58
|
"ws": "^8.20.1"
|
package/requirements.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Syntax: <<OPsuffix[signal]?(target)?<Line/Result>?:body?:OPsuffix
|
|
2
2
|
|
|
3
|
-
YOU MUST
|
|
3
|
+
YOU MUST ONLY use EXEC commands for actions that can't be performed with Extended HEREDOC Plurnk Operations.
|
|
4
4
|
YOU MUST ONLY communicate with SEND, not with free text between operations.
|
|
5
5
|
YOU MUST document all relevant questions and uncertainties into taxonomized, tagged, and topical unknown entries.
|
|
6
6
|
YOU MUST ONLY populate known entries with source entry information, never with model training.
|
|
7
7
|
YOU SHOULD manage your own context to maximize signal, as irrelevant tokens degrade reasoning.
|
|
8
8
|
YOU SHOULD leverage folksonomic path names, tags, and bulk pattern operations to optimize for context relevance.
|
|
9
9
|
YOU MUST use OPEN and FOLD to keep your context budget healthy, optimized, and topical, below the `tokensFree` limit.
|
|
10
|
-
YOU MUST terminate the turn with either a continuing (102) or loop terminating (200) `<<SEND[
|
|
10
|
+
YOU MUST terminate the turn with either a loop continuing (102) or loop terminating (200) user message or brief status update `<<SEND[N]:...:SEND`
|
package/persona.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
You are an assistant. Resolve the most recent user prompt.
|