@plurnk/plurnk-service 1.0.8 → 1.1.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.
Files changed (139) hide show
  1. package/README.md +4 -0
  2. package/SPEC.md +43 -13
  3. package/dist/core/ChannelWrite.d.ts +2 -1
  4. package/dist/core/ChannelWrite.d.ts.map +1 -1
  5. package/dist/core/ChannelWrite.js +2 -2
  6. package/dist/core/ChannelWrite.js.map +1 -1
  7. package/dist/core/ChannelWrite.sql +2 -1
  8. package/dist/core/Dispatcher.d.ts.map +1 -1
  9. package/dist/core/Dispatcher.js +50 -11
  10. package/dist/core/Dispatcher.js.map +1 -1
  11. package/dist/core/Engine.d.ts +1 -0
  12. package/dist/core/Engine.d.ts.map +1 -1
  13. package/dist/core/Engine.js +105 -39
  14. package/dist/core/Engine.js.map +1 -1
  15. package/dist/core/Engine.sql +24 -13
  16. package/dist/core/Owner.d.ts +9 -0
  17. package/dist/core/Owner.d.ts.map +1 -0
  18. package/dist/core/Owner.js +49 -0
  19. package/dist/core/Owner.js.map +1 -0
  20. package/dist/core/PacketBuilder.d.ts.map +1 -1
  21. package/dist/core/PacketBuilder.js +50 -31
  22. package/dist/core/PacketBuilder.js.map +1 -1
  23. package/dist/core/ProviderInstantiate.d.ts.map +1 -1
  24. package/dist/core/ProviderInstantiate.js +21 -2
  25. package/dist/core/ProviderInstantiate.js.map +1 -1
  26. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  27. package/dist/core/SchemeRegistry.js +6 -6
  28. package/dist/core/SchemeRegistry.js.map +1 -1
  29. package/dist/core/caps/CapsResolve.d.ts.map +1 -1
  30. package/dist/core/caps/CapsResolve.js +2 -1
  31. package/dist/core/caps/CapsResolve.js.map +1 -1
  32. package/dist/core/caps/DbEntryCaps.d.ts +1 -1
  33. package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
  34. package/dist/core/caps/DbEntryCaps.js.map +1 -1
  35. package/dist/core/caps/SchemeCtxImpl.d.ts +1 -1
  36. package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
  37. package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
  38. package/dist/core/fork.d.ts.map +1 -1
  39. package/dist/core/fork.js +5 -7
  40. package/dist/core/fork.js.map +1 -1
  41. package/dist/core/fork.sql +3 -3
  42. package/dist/core/git-membership.d.ts +1 -0
  43. package/dist/core/git-membership.d.ts.map +1 -1
  44. package/dist/core/git-membership.js +25 -11
  45. package/dist/core/git-membership.js.map +1 -1
  46. package/dist/core/namespace.d.ts +6 -0
  47. package/dist/core/namespace.d.ts.map +1 -0
  48. package/dist/core/namespace.js +84 -0
  49. package/dist/core/namespace.js.map +1 -0
  50. package/dist/core/owner.sql +14 -0
  51. package/dist/core/packet-wire.d.ts.map +1 -1
  52. package/dist/core/packet-wire.js +1 -2
  53. package/dist/core/packet-wire.js.map +1 -1
  54. package/dist/core/plurnk-uri.d.ts +2 -2
  55. package/dist/core/plurnk-uri.d.ts.map +1 -1
  56. package/dist/core/plurnk-uri.js +12 -13
  57. package/dist/core/plurnk-uri.js.map +1 -1
  58. package/dist/core/world-state.d.ts +10 -0
  59. package/dist/core/world-state.d.ts.map +1 -0
  60. package/dist/core/world-state.js +35 -0
  61. package/dist/core/world-state.js.map +1 -0
  62. package/dist/core/world-state.sql +35 -0
  63. package/dist/digest/Digest.d.ts.map +1 -1
  64. package/dist/digest/Digest.js +6 -1
  65. package/dist/digest/Digest.js.map +1 -1
  66. package/dist/index.d.ts +1 -3
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +1 -3
  69. package/dist/index.js.map +1 -1
  70. package/dist/schemes/Exec.d.ts +7 -1
  71. package/dist/schemes/Exec.d.ts.map +1 -1
  72. package/dist/schemes/Exec.js +36 -10
  73. package/dist/schemes/Exec.js.map +1 -1
  74. package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
  75. package/dist/schemes/ExecOutputScheme.js +15 -4
  76. package/dist/schemes/ExecOutputScheme.js.map +1 -1
  77. package/dist/schemes/File.d.ts.map +1 -1
  78. package/dist/schemes/File.js +93 -68
  79. package/dist/schemes/File.js.map +1 -1
  80. package/dist/schemes/Log.js +1 -1
  81. package/dist/schemes/Log.js.map +1 -1
  82. package/dist/schemes/Prompt.d.ts +13 -0
  83. package/dist/schemes/Prompt.d.ts.map +1 -0
  84. package/dist/schemes/Prompt.js +40 -0
  85. package/dist/schemes/Prompt.js.map +1 -0
  86. package/dist/schemes/Worker.d.ts +6 -4
  87. package/dist/schemes/Worker.d.ts.map +1 -1
  88. package/dist/schemes/Worker.js +116 -72
  89. package/dist/schemes/Worker.js.map +1 -1
  90. package/dist/schemes/_entry-crud.d.ts +7 -3
  91. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  92. package/dist/schemes/_entry-crud.js +18 -7
  93. package/dist/schemes/_entry-crud.js.map +1 -1
  94. package/dist/schemes/_entry-crud.sql +17 -25
  95. package/dist/schemes/_entry-find.d.ts +1 -1
  96. package/dist/schemes/_entry-find.d.ts.map +1 -1
  97. package/dist/schemes/_entry-find.js +32 -24
  98. package/dist/schemes/_entry-find.js.map +1 -1
  99. package/dist/schemes/_entry-find.sql +3 -25
  100. package/dist/schemes/_entry-graph.sql +2 -2
  101. package/dist/schemes/_entry-manifest.d.ts +1 -1
  102. package/dist/schemes/_entry-manifest.d.ts.map +1 -1
  103. package/dist/schemes/_entry-manifest.js +16 -20
  104. package/dist/schemes/_entry-manifest.js.map +1 -1
  105. package/dist/schemes/_entry-ops.d.ts +4 -3
  106. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  107. package/dist/schemes/_entry-ops.js +31 -29
  108. package/dist/schemes/_entry-ops.js.map +1 -1
  109. package/dist/schemes/_entry-ops.sql +4 -15
  110. package/dist/schemes/_entry-semantic.sql +4 -4
  111. package/dist/schemes/_entry-send.d.ts +1 -1
  112. package/dist/schemes/_entry-send.d.ts.map +1 -1
  113. package/dist/schemes/_entry-send.js +5 -4
  114. package/dist/schemes/_entry-send.js.map +1 -1
  115. package/dist/server/Daemon.js +2 -2
  116. package/dist/server/Daemon.js.map +1 -1
  117. package/dist/server/drain.sql +35 -5
  118. package/dist/server/envelope.d.ts +1 -1
  119. package/dist/server/envelope.d.ts.map +1 -1
  120. package/dist/server/envelope.js +15 -7
  121. package/dist/server/envelope.js.map +1 -1
  122. package/dist/server/envelope.sql +6 -0
  123. package/dist/server/loopDocs.js +2 -2
  124. package/dist/server/loopDocs.js.map +1 -1
  125. package/dist/server/seam-entry-read.sql +3 -2
  126. package/migrations/0000-00-00.01_schema.sql +40 -10
  127. package/package.json +17 -16
  128. package/dist/schemes/Known.d.ts +0 -17
  129. package/dist/schemes/Known.d.ts.map +0 -1
  130. package/dist/schemes/Known.js +0 -40
  131. package/dist/schemes/Known.js.map +0 -1
  132. package/dist/schemes/Plurnk.d.ts +0 -17
  133. package/dist/schemes/Plurnk.d.ts.map +0 -1
  134. package/dist/schemes/Plurnk.js +0 -46
  135. package/dist/schemes/Plurnk.js.map +0 -1
  136. package/dist/schemes/Unknown.d.ts +0 -17
  137. package/dist/schemes/Unknown.d.ts.map +0 -1
  138. package/dist/schemes/Unknown.js +0 -39
  139. package/dist/schemes/Unknown.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  -- entry.read RPC queries. SPEC §methods.
2
2
 
3
3
  -- PREP: entry_read_lookup
4
- SELECT id, scope, workspace_id, scheme, pathname
4
+ SELECT id, workspace_id, owner_id, scheme, pathname
5
5
  FROM entries
6
- WHERE workspace_id = $workspace_id AND scheme = $scheme AND pathname = $pathname;
6
+ WHERE workspace_id = $workspace_id AND scheme = $scheme AND pathname = $pathname
7
+ LIMIT 1;
7
8
 
8
9
  -- PREP: entry_read_channels
9
10
  SELECT name, content, length(content) AS contentLength, mimetype, tokens, state
@@ -1,3 +1,11 @@
1
+ -- INIT: schema_version
2
+ -- {§db-schema-version-stamp} (#536) — the cross-repo drift gate: external consumers (bench's
3
+ -- digest) fail-hard on mismatch instead of rotting silently against a moved schema. ANY change
4
+ -- to the schema's SHAPE (tables, columns, identity keys) bumps this integer in the same commit.
5
+ -- v2: entries.scheme NOT NULL — the 'file' reserved scheme replaced NULL ({§entry-identity-no-null}, #545).
6
+ -- v3: file-class pathnames are bare git-pathspec keys — the leading slash retired ({§fs-canonical-name}, #546).
7
+ PRAGMA user_version = 3;
8
+
1
9
  -- INIT: workspaces
2
10
  -- project_root: workspace pointer. NULL = headless (no disk side-effects);
3
11
  -- non-null = absolute path to the client's source tree, supplied at
@@ -113,7 +121,8 @@ CREATE TABLE IF NOT EXISTS turns (
113
121
  model TEXT NOT NULL DEFAULT 'unknown' CHECK (length(model) >= 1),
114
122
  -- #252 — opaque provider→client metadata passthrough (e.g. balancePico). Stored
115
123
  -- UNENFORCED (json_valid only, no schema): the canonical-field contract lives between
116
- -- the provider framework (normalizes) and the client (renders), never the service.
124
+ -- the provider framework (normalizes) and the client (renders) — the service authors
125
+ -- only the engine-stamped rail keys ({§rail-truth-engine-verdict}, #534).
117
126
  meta TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(meta)),
118
127
  FOREIGN KEY (loop_id) REFERENCES loops(id) ON DELETE CASCADE
119
128
  ) STRICT;
@@ -122,20 +131,26 @@ CREATE UNIQUE INDEX IF NOT EXISTS turns_loop_id_sequence ON turns (loop_id, sequ
122
131
  CREATE INDEX IF NOT EXISTS turns_timestamp ON turns (timestamp);
123
132
 
124
133
  -- INIT: entries
125
- -- The canonical addressable store. (scope, scheme, pathname) is the
126
- -- identity tuple. scheme is nullable: the `file` scheme is a routing
127
- -- internal only, never stored here; bare/file paths land with scheme=NULL.
134
+ -- The canonical addressable store. (workspace, owner, scheme, pathname) is the identity
135
+ -- tuple, and NO component may be NULL: NULLs are distinct under SQL UNIQUE, so a nullable
136
+ -- component voids the identity index — the #526 disease, re-run on this axis as run59/#545
137
+ -- (one phantom member row per turn; 74k rows for 530 identities). Bare/file paths persist
138
+ -- under the reserved 'file' scheme; they still RENDER as bare paths. {§entry-identity-no-null}
128
139
  CREATE TABLE IF NOT EXISTS entries (
129
140
  id INTEGER NOT NULL PRIMARY KEY,
130
141
  version INTEGER NOT NULL DEFAULT 0 CHECK (version >= 0),
131
- scope TEXT NOT NULL CHECK (scope IN ('workspace', 'worker')),
132
142
  workspace_id INTEGER,
133
- scheme TEXT CHECK (scheme IS NULL OR length(scheme) > 0),
143
+ scheme TEXT NOT NULL CHECK (length(scheme) > 0),
134
144
  username TEXT,
135
145
  password TEXT,
136
146
  hostname TEXT,
137
147
  port INTEGER CHECK (port IS NULL OR (port BETWEEN 0 AND 65535)),
138
148
  pathname TEXT NOT NULL,
149
+ -- #527 {§entry-owner} — every entry is owned by a worker: the spawning worker for capability
150
+ -- streams, the workspace's reserved 'commons' worker for shared content. A real row, never
151
+ -- NULL (NULLs are distinct under UNIQUE — a nullable owner would let the commons fragment).
152
+ -- The id never renders into a URI or packet; the model addresses owners by NAME (authority).
153
+ owner_id INTEGER NOT NULL,
139
154
  params TEXT CHECK (params IS NULL OR json_valid(params)),
140
155
  attributes TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(attributes)),
141
156
  -- SPEC §membership — how a file member entered the curated surface. 'git' rows are
@@ -159,12 +174,27 @@ CREATE TABLE IF NOT EXISTS entries (
159
174
  -- the catalog by it ASC so dormant entries hold the stable prompt-cache prefix.
160
175
  updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
161
176
  CHECK (workspace_id IS NOT NULL),
162
- FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE
177
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
178
+ FOREIGN KEY (owner_id) REFERENCES workers(id) ON DELETE CASCADE
163
179
  ) STRICT;
164
180
 
165
- CREATE UNIQUE INDEX IF NOT EXISTS entries_workspace_identity ON entries (workspace_id, scheme, pathname) WHERE scope = 'workspace';
166
- -- §worker-scheme — worker-scope entries key (workspace, scheme='run', pathname='/<owner>/<path>'); the owner rides the pathname (no worker_id).
167
- CREATE UNIQUE INDEX IF NOT EXISTS entries_worker_identity ON entries (workspace_id, scheme, pathname) WHERE scope = 'worker';
181
+ -- {§entry-owner} / {§stream-owner-scoped} — ONE identity: the owner is the axis (scope is dead).
182
+ -- Concurrent workers' capability streams share the loop-relative coordinate (every worker's first
183
+ -- loop is seq 1), so identity keys on the owner and identical coordinates are DISTINCT rows (#526).
184
+ CREATE UNIQUE INDEX IF NOT EXISTS entries_identity ON entries (workspace_id, owner_id, scheme, pathname);
185
+
186
+ -- INIT: entries_scheme_heal
187
+ -- v1→v2 in-place heal ({§entry-identity-no-null}): fold legacy NULL-scheme member rows onto
188
+ -- the reserved 'file' scheme. Idempotent — a second pass updates zero rows. A v1 db already
189
+ -- fragmented by the #545 duplicate class fails HERE on the identity index, loudly and by
190
+ -- design: a fragmented store has no safe automatic merge; recover via a fresh db.
191
+ UPDATE entries SET scheme = 'file' WHERE scheme IS NULL;
192
+
193
+ -- INIT: entries_pathname_heal
194
+ -- v2→v3 in-place heal ({§fs-canonical-name}): file-class keys migrate to the bare git-pathspec
195
+ -- form — the leading slash was the retired namespace-origin notation. Idempotent; a db holding
196
+ -- both spellings of one member fails HERE on the identity index, loudly (fresh-db recovery).
197
+ UPDATE entries SET pathname = substr(pathname, 2) WHERE scheme = 'file' AND pathname LIKE '/%';
168
198
 
169
199
  -- The ONE engine-imposed constraint (SPEC §stream-constraints, §stream-constraints-engine-one-cap): 100 MiB char-length cap
170
200
  -- per channel content body. All other limits are extrinsic.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-service",
3
- "version": "1.0.8",
3
+ "version": "1.1.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",
@@ -62,23 +62,24 @@
62
62
  "prepack": "npm run build"
63
63
  },
64
64
  "dependencies": {
65
- "@plurnk/plurnk-agui": "1.0.8",
66
- "@plurnk/plurnk-execs": "1.0.8",
67
- "@plurnk/plurnk-execs-common": "1.0.8",
68
- "@plurnk/plurnk-execs-mcp": "1.0.8",
69
- "@plurnk/plurnk-execs-search": "1.0.8",
70
- "@plurnk/plurnk-grammar": "1.0.8",
71
- "@plurnk/plurnk-mimetypes": "1.0.8",
72
- "@plurnk/plurnk-mimetypes-text-html": "1.0.8",
73
- "@plurnk/plurnk-providers": "1.0.8",
74
- "@plurnk/plurnk-schemes": "1.0.8",
75
- "@plurnk/plurnk-schemes-http": "1.0.8",
76
- "@possumtech/sqlrite": "5.2.0",
65
+ "@plurnk/plurnk-agui": "1.1.0",
66
+ "@plurnk/plurnk-execs": "1.1.0",
67
+ "@plurnk/plurnk-execs-common": "1.1.0",
68
+ "@plurnk/plurnk-execs-mcp": "1.1.0",
69
+ "@plurnk/plurnk-execs-search": "1.1.0",
70
+ "@plurnk/gbnf": "1.1.0",
71
+ "@plurnk/plurnk-grammar": "1.1.0",
72
+ "@plurnk/plurnk-mimetypes": "1.1.0",
73
+ "@plurnk/plurnk-mimetypes-text-html": "1.1.0",
74
+ "@plurnk/plurnk-providers": "1.1.0",
75
+ "@plurnk/plurnk-schemes": "1.1.0",
76
+ "@plurnk/plurnk-schemes-http": "1.1.0",
77
+ "@possumtech/sqlrite": "6.3.0",
77
78
  "diff": "^9.0.0",
78
79
  "ignore": "7.0.6",
79
- "isomorphic-git": "1.38.7",
80
- "@plurnk/plurnk-mimetypes-embeddings": "1.0.8",
81
- "@plurnk/plurnk-meta": "1.0.8"
80
+ "isomorphic-git": "1.38.9",
81
+ "@plurnk/plurnk-mimetypes-embeddings": "1.1.0",
82
+ "@plurnk/plurnk-meta": "1.1.0"
82
83
  },
83
84
  "devDependencies": {
84
85
  "@types/diff": "^7.0.2"
@@ -1,17 +0,0 @@
1
- import type { SchemeManifest, PlurnkSchemeContext } from "../core/scheme-types.ts";
2
- import type { EditStatement, FindStatement, ReadStatement, SendStatement } from "@plurnk/plurnk-grammar";
3
- import type { EditResult, ReadResult } from "./_entry-ops.ts";
4
- import type { EntryData, ReadEntryResult, WriteEntryResult, DeleteEntryResult } from "./_entry-crud.ts";
5
- import type { SendResult } from "./_entry-send.ts";
6
- import type { FindResult } from "./_entry-find.ts";
7
- export default class Known {
8
- static manifest: SchemeManifest;
9
- edit(statement: EditStatement, ctx: PlurnkSchemeContext): Promise<EditResult>;
10
- read(statement: ReadStatement, ctx: PlurnkSchemeContext): Promise<ReadResult>;
11
- readEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<ReadEntryResult>;
12
- writeEntry(pathname: string, entry: EntryData, ctx: PlurnkSchemeContext): Promise<WriteEntryResult>;
13
- deleteEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<DeleteEntryResult>;
14
- send(statement: SendStatement, ctx: PlurnkSchemeContext): Promise<SendResult>;
15
- find(statement: FindStatement, ctx: PlurnkSchemeContext): Promise<FindResult>;
16
- }
17
- //# sourceMappingURL=Known.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Known.d.ts","sourceRoot":"","sources":["../../src/schemes/Known.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKzG,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,KAAK;IAEtB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAU7B;IAEI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpF;IAEK,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAExG;IAEK,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAExF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;CACJ"}
@@ -1,40 +0,0 @@
1
- import EntryOps from "./_entry-ops.js";
2
- import EntryCrud from "./_entry-crud.js";
3
- import EntrySend from "./_entry-send.js";
4
- import EntryFind from "./_entry-find.js";
5
- export default class Known {
6
- // A scheme declares its manifest — channels, default channel, scope, writableBy. §scheme-manifest-manifest
7
- static manifest = {
8
- name: "known",
9
- channels: { body: "text/markdown" },
10
- defaultChannel: "body",
11
- category: "data",
12
- scope: "workspace",
13
- writableBy: ["model", "client"],
14
- volatile: false,
15
- modelVisible: true,
16
- example: "<<EDIT(known:///plan.md):- [ ] step:EDIT",
17
- };
18
- async edit(statement, ctx) {
19
- return EntryOps.editWorkspaceEntry(statement, ctx, Known.manifest);
20
- }
21
- async read(statement, ctx) {
22
- return EntryOps.readWorkspaceEntry(statement, ctx, Known.manifest);
23
- }
24
- async readEntry(pathname, ctx) {
25
- return EntryCrud.readEntry(pathname, ctx, Known.manifest.name);
26
- }
27
- async writeEntry(pathname, entry, ctx) {
28
- return EntryCrud.writeEntry(pathname, entry, ctx, Known.manifest.name);
29
- }
30
- async deleteEntry(pathname, ctx) {
31
- return EntryCrud.deleteEntry(pathname, ctx, Known.manifest.name);
32
- }
33
- async send(statement, ctx) {
34
- return EntrySend.sendToWorkspaceEntry(statement, ctx, Known.manifest.name);
35
- }
36
- async find(statement, ctx) {
37
- return EntryFind.findWorkspaceEntries(statement, ctx, Known.manifest);
38
- }
39
- }
40
- //# sourceMappingURL=Known.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Known.js","sourceRoot":"","sources":["../../src/schemes/Known.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,KAAK;IACtB,2GAA2G;IAC3G,MAAM,CAAC,QAAQ,GAAmB;QAC9B,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QACnC,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/B,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,0CAA0C;KACtD,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,GAAwB;QACtD,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,KAAgB,EAAE,GAAwB;QACzE,OAAO,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,GAAwB;QACxD,OAAO,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC;CACJ"}
@@ -1,17 +0,0 @@
1
- import type { SchemeManifest, PlurnkSchemeContext } from "../core/scheme-types.ts";
2
- import type { EditStatement, FindStatement, ReadStatement, SendStatement } from "@plurnk/plurnk-grammar";
3
- import type { EditResult, ReadResult } from "./_entry-ops.ts";
4
- import type { EntryData, ReadEntryResult, WriteEntryResult, DeleteEntryResult } from "./_entry-crud.ts";
5
- import type { SendResult } from "./_entry-send.ts";
6
- import type { FindResult } from "./_entry-find.ts";
7
- export default class Plurnk {
8
- static manifest: SchemeManifest;
9
- edit(statement: EditStatement, ctx: PlurnkSchemeContext): Promise<EditResult>;
10
- read(statement: ReadStatement, ctx: PlurnkSchemeContext): Promise<ReadResult>;
11
- readEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<ReadEntryResult>;
12
- writeEntry(pathname: string, entry: EntryData, ctx: PlurnkSchemeContext): Promise<WriteEntryResult>;
13
- deleteEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<DeleteEntryResult>;
14
- send(statement: SendStatement, ctx: PlurnkSchemeContext): Promise<SendResult>;
15
- find(statement: FindStatement, ctx: PlurnkSchemeContext): Promise<FindResult>;
16
- }
17
- //# sourceMappingURL=Plurnk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Plurnk.d.ts","sourceRoot":"","sources":["../../src/schemes/Plurnk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKzG,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAW7B;IAEI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpF;IAEK,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAExG;IAEK,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAExF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;CACJ"}
@@ -1,46 +0,0 @@
1
- import EntryOps from "./_entry-ops.js";
2
- import EntryCrud from "./_entry-crud.js";
3
- import EntrySend from "./_entry-send.js";
4
- import EntryFind from "./_entry-find.js";
5
- // Engine-authored reference scheme — the prompt (`plurnk://prompt/<run>/<loop>/<N>`), the scheme
6
- // docs (`plurnk:///docs/*`), the catalog. All of it the engine writes FOR the model to READ;
7
- // none of it is the model's to write. writableBy excludes "model", so the manifest gate
8
- // (§scheme-surface-writableby-403) rejects every model-origin write uniformly — no path special-
9
- // case. The model's scratch surface is `known://`; editing plurnk:// reference used to "succeed"
10
- // and became a scratch-behavior sink for weak models (#310).
11
- export default class Plurnk {
12
- static manifest = {
13
- name: "plurnk",
14
- channels: { body: "text/markdown" },
15
- defaultChannel: "body",
16
- category: "data",
17
- scope: "workspace",
18
- writableBy: ["client", "plurnk"],
19
- volatile: false,
20
- modelVisible: true,
21
- example: "<<FIND(plurnk:///**)::FIND",
22
- documentation: "Engine-authored reference surfaced to you — your active prompt at `plurnk://prompt/<run>/<loop>/<N>` (READ the address the User Prompts section lists), the scheme docs at `plurnk://docs/*`. READ-ONLY: READ these, never EDIT them (use `known://` for your own scratch).",
23
- };
24
- async edit(statement, ctx) {
25
- return EntryOps.editWorkspaceEntry(statement, ctx, Plurnk.manifest);
26
- }
27
- async read(statement, ctx) {
28
- return EntryOps.readWorkspaceEntry(statement, ctx, Plurnk.manifest);
29
- }
30
- async readEntry(pathname, ctx) {
31
- return EntryCrud.readEntry(pathname, ctx, Plurnk.manifest.name);
32
- }
33
- async writeEntry(pathname, entry, ctx) {
34
- return EntryCrud.writeEntry(pathname, entry, ctx, Plurnk.manifest.name);
35
- }
36
- async deleteEntry(pathname, ctx) {
37
- return EntryCrud.deleteEntry(pathname, ctx, Plurnk.manifest.name);
38
- }
39
- async send(statement, ctx) {
40
- return EntrySend.sendToWorkspaceEntry(statement, ctx, Plurnk.manifest.name);
41
- }
42
- async find(statement, ctx) {
43
- return EntryFind.findWorkspaceEntries(statement, ctx, Plurnk.manifest);
44
- }
45
- }
46
- //# sourceMappingURL=Plurnk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Plurnk.js","sourceRoot":"","sources":["../../src/schemes/Plurnk.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAMzC,iGAAiG;AACjG,6FAA6F;AAC7F,wFAAwF;AACxF,iGAAiG;AACjG,iGAAiG;AACjG,6DAA6D;AAC7D,MAAM,CAAC,OAAO,OAAO,MAAM;IACvB,MAAM,CAAC,QAAQ,GAAmB;QAC9B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QACnC,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAChC,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,4BAA4B;QACrC,aAAa,EAAE,6QAA6Q;KAC/R,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,GAAwB;QACtD,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,KAAgB,EAAE,GAAwB;QACzE,OAAO,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,GAAwB;QACxD,OAAO,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;CACJ"}
@@ -1,17 +0,0 @@
1
- import type { SchemeManifest, PlurnkSchemeContext } from "../core/scheme-types.ts";
2
- import type { EditStatement, FindStatement, ReadStatement, SendStatement } from "@plurnk/plurnk-grammar";
3
- import type { EditResult, ReadResult } from "./_entry-ops.ts";
4
- import type { EntryData, ReadEntryResult, WriteEntryResult, DeleteEntryResult } from "./_entry-crud.ts";
5
- import type { SendResult } from "./_entry-send.ts";
6
- import type { FindResult } from "./_entry-find.ts";
7
- export default class Unknown {
8
- static manifest: SchemeManifest;
9
- edit(statement: EditStatement, ctx: PlurnkSchemeContext): Promise<EditResult>;
10
- read(statement: ReadStatement, ctx: PlurnkSchemeContext): Promise<ReadResult>;
11
- readEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<ReadEntryResult>;
12
- writeEntry(pathname: string, entry: EntryData, ctx: PlurnkSchemeContext): Promise<WriteEntryResult>;
13
- deleteEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<DeleteEntryResult>;
14
- send(statement: SendStatement, ctx: PlurnkSchemeContext): Promise<SendResult>;
15
- find(statement: FindStatement, ctx: PlurnkSchemeContext): Promise<FindResult>;
16
- }
17
- //# sourceMappingURL=Unknown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Unknown.d.ts","sourceRoot":"","sources":["../../src/schemes/Unknown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKzG,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAU7B;IAEI,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpF;IAEK,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAExG;IAEK,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAExF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;IAEK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;CACJ"}
@@ -1,39 +0,0 @@
1
- import EntryOps from "./_entry-ops.js";
2
- import EntryCrud from "./_entry-crud.js";
3
- import EntrySend from "./_entry-send.js";
4
- import EntryFind from "./_entry-find.js";
5
- export default class Unknown {
6
- static manifest = {
7
- name: "unknown",
8
- channels: { body: "text/markdown" },
9
- defaultChannel: "body",
10
- category: "data",
11
- scope: "workspace",
12
- writableBy: ["model", "client"],
13
- volatile: false,
14
- modelVisible: true,
15
- example: "<<READ(unknown:///entry.md)::READ",
16
- };
17
- async edit(statement, ctx) {
18
- return EntryOps.editWorkspaceEntry(statement, ctx, Unknown.manifest);
19
- }
20
- async read(statement, ctx) {
21
- return EntryOps.readWorkspaceEntry(statement, ctx, Unknown.manifest);
22
- }
23
- async readEntry(pathname, ctx) {
24
- return EntryCrud.readEntry(pathname, ctx, Unknown.manifest.name);
25
- }
26
- async writeEntry(pathname, entry, ctx) {
27
- return EntryCrud.writeEntry(pathname, entry, ctx, Unknown.manifest.name);
28
- }
29
- async deleteEntry(pathname, ctx) {
30
- return EntryCrud.deleteEntry(pathname, ctx, Unknown.manifest.name);
31
- }
32
- async send(statement, ctx) {
33
- return EntrySend.sendToWorkspaceEntry(statement, ctx, Unknown.manifest.name);
34
- }
35
- async find(statement, ctx) {
36
- return EntryFind.findWorkspaceEntries(statement, ctx, Unknown.manifest);
37
- }
38
- }
39
- //# sourceMappingURL=Unknown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Unknown.js","sourceRoot":"","sources":["../../src/schemes/Unknown.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAMzC,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,QAAQ,GAAmB;QAC9B,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;QACnC,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/B,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,mCAAmC;KAC/C,CAAC;IAEF,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,GAAwB;QACtD,OAAO,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,KAAgB,EAAE,GAAwB;QACzE,OAAO,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,GAAwB;QACxD,OAAO,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAwB,EAAE,GAAwB;QACzD,OAAO,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;CACJ"}