@plurnk/plurnk-service 0.3.0 → 0.5.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 (116) hide show
  1. package/README.md +13 -44
  2. package/SPEC.md +559 -447
  3. package/bin/plurnk-service.js +2 -1
  4. package/dist/core/ChannelWrite.d.ts +15 -0
  5. package/dist/core/ChannelWrite.d.ts.map +1 -1
  6. package/dist/core/ChannelWrite.js.map +1 -1
  7. package/dist/core/Engine.d.ts +15 -4
  8. package/dist/core/Engine.d.ts.map +1 -1
  9. package/dist/core/Engine.js +417 -114
  10. package/dist/core/Engine.js.map +1 -1
  11. package/dist/core/PluginLoader.js +6 -6
  12. package/dist/core/PluginLoader.js.map +1 -1
  13. package/dist/core/ProviderInstantiate.d.ts +4 -0
  14. package/dist/core/ProviderInstantiate.d.ts.map +1 -0
  15. package/dist/core/ProviderInstantiate.js +41 -0
  16. package/dist/core/ProviderInstantiate.js.map +1 -0
  17. package/dist/core/ProviderRegistry.d.ts.map +1 -1
  18. package/dist/core/ProviderRegistry.js +1 -1
  19. package/dist/core/ProviderRegistry.js.map +1 -1
  20. package/dist/core/SchemeRegistry.d.ts +1 -1
  21. package/dist/core/SchemeRegistry.d.ts.map +1 -1
  22. package/dist/core/SchemeRegistry.js +4 -20
  23. package/dist/core/SchemeRegistry.js.map +1 -1
  24. package/dist/core/line-marker.d.ts +23 -0
  25. package/dist/core/line-marker.d.ts.map +1 -0
  26. package/dist/core/line-marker.js +321 -0
  27. package/dist/core/line-marker.js.map +1 -0
  28. package/dist/core/matcher.d.ts +12 -0
  29. package/dist/core/matcher.d.ts.map +1 -0
  30. package/dist/core/matcher.js +72 -0
  31. package/dist/core/matcher.js.map +1 -0
  32. package/dist/core/mimetype-binary.d.ts +6 -0
  33. package/dist/core/mimetype-binary.d.ts.map +1 -0
  34. package/dist/core/mimetype-binary.js +82 -0
  35. package/dist/core/mimetype-binary.js.map +1 -0
  36. package/dist/core/packet-wire.d.ts.map +1 -1
  37. package/dist/core/packet-wire.js +206 -30
  38. package/dist/core/packet-wire.js.map +1 -1
  39. package/dist/core/path-mimetype.d.ts +3 -0
  40. package/dist/core/path-mimetype.d.ts.map +1 -0
  41. package/dist/core/path-mimetype.js +47 -0
  42. package/dist/core/path-mimetype.js.map +1 -0
  43. package/dist/core/scheme-types.d.ts +8 -26
  44. package/dist/core/scheme-types.d.ts.map +1 -1
  45. package/dist/core/scheme-types.js +5 -8
  46. package/dist/core/scheme-types.js.map +1 -1
  47. package/dist/index.d.ts +3 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +14 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/schemes/Exec.d.ts +30 -1
  52. package/dist/schemes/Exec.d.ts.map +1 -1
  53. package/dist/schemes/Exec.js +217 -6
  54. package/dist/schemes/Exec.js.map +1 -1
  55. package/dist/schemes/File.d.ts +5 -0
  56. package/dist/schemes/File.d.ts.map +1 -1
  57. package/dist/schemes/File.js +113 -23
  58. package/dist/schemes/File.js.map +1 -1
  59. package/dist/schemes/Log.d.ts +3 -0
  60. package/dist/schemes/Log.d.ts.map +1 -1
  61. package/dist/schemes/Log.js +88 -13
  62. package/dist/schemes/Log.js.map +1 -1
  63. package/dist/schemes/Plurnk.js +3 -3
  64. package/dist/schemes/Plurnk.js.map +1 -1
  65. package/dist/schemes/_entry-crud.d.ts +2 -0
  66. package/dist/schemes/_entry-crud.d.ts.map +1 -1
  67. package/dist/schemes/_entry-crud.js +1 -0
  68. package/dist/schemes/_entry-crud.js.map +1 -1
  69. package/dist/schemes/_entry-find.d.ts.map +1 -1
  70. package/dist/schemes/_entry-find.js +64 -15
  71. package/dist/schemes/_entry-find.js.map +1 -1
  72. package/dist/schemes/_entry-ops.d.ts +3 -0
  73. package/dist/schemes/_entry-ops.d.ts.map +1 -1
  74. package/dist/schemes/_entry-ops.js +262 -54
  75. package/dist/schemes/_entry-ops.js.map +1 -1
  76. package/dist/schemes/_entry-send.d.ts.map +1 -1
  77. package/dist/schemes/_entry-send.js +14 -7
  78. package/dist/schemes/_entry-send.js.map +1 -1
  79. package/dist/server/ClientConnection.d.ts +3 -2
  80. package/dist/server/ClientConnection.d.ts.map +1 -1
  81. package/dist/server/ClientConnection.js +4 -1
  82. package/dist/server/ClientConnection.js.map +1 -1
  83. package/dist/server/Daemon.d.ts +51 -1
  84. package/dist/server/Daemon.d.ts.map +1 -1
  85. package/dist/server/Daemon.js +337 -1
  86. package/dist/server/Daemon.js.map +1 -1
  87. package/dist/server/MethodRegistry.d.ts +31 -2
  88. package/dist/server/MethodRegistry.d.ts.map +1 -1
  89. package/dist/server/MethodRegistry.js.map +1 -1
  90. package/dist/server/dsl.d.ts +2 -2
  91. package/dist/server/dsl.d.ts.map +1 -1
  92. package/dist/server/dsl.js +10 -10
  93. package/dist/server/dsl.js.map +1 -1
  94. package/dist/server/methods/entry_read.js +5 -5
  95. package/dist/server/methods/entry_read.js.map +1 -1
  96. package/dist/server/methods/loop_cancel.d.ts +3 -0
  97. package/dist/server/methods/loop_cancel.d.ts.map +1 -0
  98. package/dist/server/methods/loop_cancel.js +27 -0
  99. package/dist/server/methods/loop_cancel.js.map +1 -0
  100. package/dist/server/methods/loop_resolve.js +2 -2
  101. package/dist/server/methods/loop_resolve.js.map +1 -1
  102. package/dist/server/methods/loop_run.d.ts.map +1 -1
  103. package/dist/server/methods/loop_run.js +48 -48
  104. package/dist/server/methods/loop_run.js.map +1 -1
  105. package/dist/server/methods/op_edit.js +3 -3
  106. package/dist/server/methods/op_edit.js.map +1 -1
  107. package/dist/server/methods/op_hide.js +3 -3
  108. package/dist/server/methods/op_hide.js.map +1 -1
  109. package/dist/server/methods/op_read.js +3 -3
  110. package/dist/server/methods/op_read.js.map +1 -1
  111. package/dist/server/methods/op_show.js +3 -3
  112. package/dist/server/methods/op_show.js.map +1 -1
  113. package/dist/server/methods/providers_list.js +1 -1
  114. package/dist/server/methods/providers_list.js.map +1 -1
  115. package/migrations/001_schema.sql +1 -1
  116. package/package.json +19 -14
@@ -11,6 +11,7 @@
11
11
  // Section headers follow the `# Plurnk System X` convention so the model
12
12
  // sees consistent framing across every section it might receive. Sections
13
13
  // with no content are omitted entirely (no empty headers in the wire).
14
+ import { isLineNavigableMimetype } from "@plurnk/plurnk-schemes";
14
15
  // Render packet.system → system message content (markdown string).
15
16
  // {system_definition verbatim}
16
17
  // # Plurnk System Instructions (persona)
@@ -33,10 +34,14 @@ export const renderSystemContent = (system) => {
33
34
  // # Plurnk System User Prompt
34
35
  // # Plurnk System Budget (token budget table — only when present)
35
36
  // # Plurnk System Errors (telemetry errors — only when present)
36
- // # Plurnk System Requirements (per-turn rules incl. Turn N/M marker)
37
+ // # Plurnk System Requirements (static per-turn rules only when present)
38
+ // Requirements renders LAST so the contract the model has to honor is the
39
+ // most recent thing in the user message — closest to the assistant turn.
37
40
  export const renderUserContent = (user) => {
38
41
  const parts = [];
39
- parts.push(`# Plurnk System User Prompt\n\n${user.prompt}`);
42
+ if (typeof user.prompt === "string" && user.prompt.length > 0) {
43
+ parts.push(`# Plurnk System User Prompt\n\n${user.prompt}`);
44
+ }
40
45
  const telemetry = user.telemetry ?? { budget: "", errors: [] };
41
46
  if (typeof telemetry.budget === "string" && telemetry.budget.length > 0) {
42
47
  parts.push(`# Plurnk System Budget\n\n${telemetry.budget}`);
@@ -66,6 +71,17 @@ const numberLines = (body, start = 1) => {
66
71
  const numbered = source.split("\n").map((line, i) => `${start + i}:\t${line}`).join("\n");
67
72
  return trailingNewline ? `${numbered}\n` : numbered;
68
73
  };
74
+ // Tolerant JSON parser for log entries' rx/tx fields. The engine
75
+ // pre-parses application/json mimetypes, but render may also receive
76
+ // strings (legacy paths, manual tests). Returns null on parse failure.
77
+ const safeParse = (s) => {
78
+ try {
79
+ return JSON.parse(s);
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ };
69
85
  // Stable JSON: keys sorted alphabetically so the same meta produces the
70
86
  // same string across turns — prefix-cache friendly. Mirrors rummy
71
87
  // plugins/helpers.js canonicalJson.
@@ -76,6 +92,18 @@ const canonicalJson = (obj) => {
76
92
  sorted[k] = obj[k];
77
93
  return JSON.stringify(sorted);
78
94
  };
95
+ // Wrap a body in heredoc fences. Leading `\n` always (separates the
96
+ // opening fence from the first body character — necessary because
97
+ // numbered bodies start with `1:\t…` which would otherwise collide
98
+ // visually with the fence's closing `:`). Trailing `\n` only when the
99
+ // body doesn't already end with one — otherwise you get a doubled
100
+ // newline that renders as a blank line before the closing fence, which
101
+ // reads as "the content has a trailing blank line" when actually it
102
+ // doesn't. The body's own whitespace decides the shape.
103
+ const wrapHeredocBody = (fence, body) => {
104
+ const sep = body.endsWith("\n") ? "" : "\n";
105
+ return `<<${fence}:\n${body}${sep}:${fence}`;
106
+ };
79
107
  // Heredoc block for one channel of one entry. Fence is `URI#channel`
80
108
  // (plurnk-grammar-native form) so model emissions and entry projections
81
109
  // share one syntax. When `channel` is null/empty the fence is path-only —
@@ -84,8 +112,67 @@ const canonicalJson = (obj) => {
84
112
  // Body is line-numbered.
85
113
  const renderHeredoc = (uri, channel, body) => {
86
114
  const fence = channel ? `${uri}#${channel}` : uri;
87
- const numbered = numberLines(body);
88
- return `<<${fence}:\n${numbered}\n:${fence}`;
115
+ return wrapHeredocBody(fence, numberLines(body));
116
+ };
117
+ // Re-render a plurnk statement (from log_entries.tx) as the heredoc form
118
+ // the model would have emitted. Used by the log render so the model sees
119
+ // its own ops in its own native syntax — what it wrote, mirrored back.
120
+ //
121
+ // Faithfulness over cleverness: render the parts as recorded. `target.raw`
122
+ // preserves exactly what the model wrote (URL with fragment, bare path,
123
+ // etc.) instead of round-tripping through scheme/pathname/fragment fields.
124
+ // Returns null when tx isn't a parseable PlurnkStatement (callers fall
125
+ // back to the meta line alone).
126
+ //
127
+ // Signal renders to `[…]`:
128
+ // - array of strings (tags) → `[tag1,tag2]`
129
+ // - number (status code, e.g. SEND[200]) → `[200]`
130
+ // - string (runtime, e.g. EXEC[python]) → `[python]`
131
+ // - null/missing → omitted
132
+ // All plurnk statements share the same syntactic frame; signal type
133
+ // varies by op but renders uniformly.
134
+ const renderStatementHeredoc = (tx) => {
135
+ if (tx === null || typeof tx !== "object" || typeof tx.op !== "string" || tx.op.length === 0)
136
+ return null;
137
+ const op = tx.op;
138
+ const suffix = typeof tx.suffix === "string" ? tx.suffix : "";
139
+ let signalStr = "";
140
+ const signal = tx.signal;
141
+ if (Array.isArray(signal)) {
142
+ const tags = signal.filter((t) => typeof t === "string");
143
+ if (tags.length > 0)
144
+ signalStr = `[${tags.join(",")}]`;
145
+ }
146
+ else if (typeof signal === "number") {
147
+ signalStr = `[${signal}]`;
148
+ }
149
+ else if (typeof signal === "string" && signal.length > 0) {
150
+ signalStr = `[${signal}]`;
151
+ }
152
+ let targetStr = "";
153
+ const target = tx.target;
154
+ if (target !== null && typeof target === "object" && typeof target.raw === "string") {
155
+ targetStr = `(${target.raw})`;
156
+ }
157
+ let markerStr = "";
158
+ const lm = tx.lineMarker;
159
+ if (lm !== null && typeof lm === "object" && typeof lm.first === "number") {
160
+ markerStr = typeof lm.last === "number" ? `<${lm.first},${lm.last}>` : `<${lm.first}>`;
161
+ }
162
+ let body;
163
+ if (typeof tx.body === "string")
164
+ body = tx.body;
165
+ else if (tx.body !== null && typeof tx.body === "object" && typeof tx.body.raw === "string")
166
+ body = tx.body.raw;
167
+ else
168
+ body = "";
169
+ // Character-perfect: no padding around body. The body string IS
170
+ // whatever the model wrote between the colons, including any leading
171
+ // or trailing whitespace it chose. Adding `\n` here would inflate
172
+ // single-line emissions into multi-line and nudge the model toward
173
+ // verbose forms — and it would violate the grammar's "body content
174
+ // is character-perfect" guarantee on the way back.
175
+ return `<<${op}${suffix}${signalStr}${targetStr}${markerStr}:${body}:${op}${suffix}`;
89
176
  };
90
177
  // Render a (scheme, pathname) tuple as the URI the model should SEE.
91
178
  // Null scheme → bare pathname. The `file` scheme never reaches this
@@ -101,6 +188,11 @@ const renderModelUri = (scheme, pathname) => {
101
188
  // heredoc blocks. meta describes the entry; nested `channels` carries
102
189
  // per-channel mimetype/tokens so the model doesn't have to READ to
103
190
  // learn the shape of a channel's content.
191
+ //
192
+ // Empty channels are omitted entirely (no meta entry, no body block) —
193
+ // an empty stderr is an infohazard: the model has to read it and infer
194
+ // "this is intentionally blank." Absence carries the same information
195
+ // with zero tokens spent.
104
196
  const renderIndexEntries = (entries) => entries.map((e) => {
105
197
  const uri = renderModelUri(e.scheme, e.pathname);
106
198
  const defaultChannel = e.defaultChannel ?? "";
@@ -111,7 +203,7 @@ const renderIndexEntries = (entries) => entries.map((e) => {
111
203
  const blocks = [];
112
204
  for (const [channelName, ch] of Object.entries(e.channels ?? {})) {
113
205
  const content = ch?.content;
114
- if (typeof content !== "string")
206
+ if (typeof content !== "string" || content.length === 0)
115
207
  continue;
116
208
  const channelInfo = {};
117
209
  if (typeof ch.mimetype === "string")
@@ -128,38 +220,122 @@ const renderIndexEntries = (entries) => entries.map((e) => {
128
220
  ? `* ${canonicalJson(meta)}\n${blocks.join("\n")}`
129
221
  : `* ${canonicalJson(meta)}`;
130
222
  }).join("\n\n");
131
- // Render one Log entry → `* {meta}` line followed by the response body.
132
- // URI is `log://<coordinate>/<op>` per SPEC §10 the trailing /op is
133
- // wire-rendering self-documentation derived from the row's `op` field
134
- // (parsing the URI accepts it or omits it; identification is by
135
- // coordinate). Log entries are single-payload by nature fence carries
136
- // no `#channel` (matches the default-channel convention).
223
+ // Render one Log entry → a single bullet line carrying the meta JSON.
224
+ // No body, no fence every meaningful field is in the JSON. Naming
225
+ // follows the uniform principle: `path` is identity (this log row's
226
+ // own URI), `target` is the URI the action acted on. COPY/MOVE add
227
+ // `source`; currently the engine emits target only (source plumbing
228
+ // pending the COPY/MOVE-specific log shape pass).
229
+ //
230
+ // On error, status >= 400 signals the failure; the message lives in
231
+ // the next packet's user.telemetry.errors[] per SPEC §15.1. (Forward:
232
+ // meta will gain tokensBefore/After + linesBefore/After to convey
233
+ // change scope without carrying the body content.)
234
+ //
235
+ // Per-entry render: one meta JSON line plus a body block that the model
236
+ // can read to know what it did. Two body cases:
237
+ // 1. READ@200 with content → render rx.content under the target fence.
238
+ // The model asked for content; show it the content. (Matcher is in
239
+ // meta.matcher, count is in meta.matches.)
240
+ // 2. Every other op → re-emit tx as a heredoc in the model's native
241
+ // syntax. The model wrote this; mirror it back so the log is a true
242
+ // record of its actions instead of a row of opaque status codes.
137
243
  const renderLogEntries = (entries) => entries.map((e) => {
138
- const coordinate = e.coordinate ?? "?";
139
- const opSuffix = typeof e.op === "string" && e.op.length > 0 ? `/${e.op}` : "";
140
- const uri = `log://${coordinate}${opSuffix}`;
141
244
  const meta = {};
245
+ const coordinate = typeof e.coordinate === "string" ? e.coordinate : null;
246
+ const op = typeof e.op === "string" && e.op.length > 0 ? e.op : null;
247
+ if (coordinate !== null && op !== null)
248
+ meta.path = `log://${coordinate}/${op}`;
249
+ else if (coordinate !== null)
250
+ meta.path = `log://${coordinate}`;
142
251
  if (typeof e.origin === "string")
143
252
  meta.origin = e.origin;
144
- if (typeof e.op === "string")
145
- meta.op = e.op;
253
+ if (op !== null)
254
+ meta.op = op;
146
255
  if (typeof e.status === "number")
147
256
  meta.status = e.status;
148
- const path = renderLogPath(e.target);
149
- if (path !== null)
150
- meta.path = path;
151
- const rxBody = typeof e.rx === "string" ? e.rx : JSON.stringify(e.rx);
152
- return `* ${canonicalJson(meta)}\n${renderHeredoc(uri, null, rxBody)}`;
153
- }).join("\n\n");
154
- const renderLogPath = (target) => {
257
+ const target = renderActionTarget(e.target);
258
+ if (target !== null)
259
+ meta.target = target;
260
+ // Op-specific meta enrichment for READ: surface the matcher body
261
+ // and match count when a body matcher was used. Without these, the
262
+ // model can't distinguish "0 matches" from "empty content" — both
263
+ // would render as a status-204 line. The matcher comes from the
264
+ // stored statement (tx); the count from the result (rx).
265
+ if (op === "READ") {
266
+ const tx = e.tx;
267
+ if (tx !== null && typeof tx === "object" && tx.body !== null && typeof tx.body === "object") {
268
+ if (typeof tx.body.raw === "string")
269
+ meta.matcher = tx.body.raw;
270
+ }
271
+ const rx = typeof e.rx === "string" ? safeParse(e.rx) : e.rx;
272
+ if (rx !== null && typeof rx === "object" && typeof rx.matches === "number") {
273
+ meta.matches = rx.matches;
274
+ }
275
+ }
276
+ const metaLine = `* ${canonicalJson(meta)}`;
277
+ // READ@200: expose the response body. READ@204 (successfully empty —
278
+ // 0 matcher hits, sentinel slice, or empty source) has no body to
279
+ // render; the meta line carries the signal via `matches` / status code.
280
+ if (op === "READ" && e.status === 200) {
281
+ const rx = typeof e.rx === "string" ? safeParse(e.rx) : e.rx;
282
+ if (rx !== null && typeof rx === "object" && typeof rx.content === "string" && rx.content.length > 0) {
283
+ const fence = target ?? `log://${coordinate}`;
284
+ // Line-navigable mimetypes (text/markdown, text/plain,
285
+ // source code, etc.) get N:\t prefix per plurnk.md. Tree-
286
+ // navigable (JSON, XML, HTML) render verbatim — line
287
+ // numbers in the wrapper would collide with structural
288
+ // navigation (jsonpath/xpath) used on these formats.
289
+ // Classifier is consumer-side in this repo (SPEC.md §16.6).
290
+ const mimetype = typeof rx.mimetype === "string" ? rx.mimetype : "text/plain";
291
+ if (isLineNavigableMimetype(mimetype)) {
292
+ const start = typeof rx.startLine === "number" ? rx.startLine : 1;
293
+ return `${metaLine}\n${wrapHeredocBody(fence, numberLines(rx.content, start))}`;
294
+ }
295
+ return `${metaLine}\n${wrapHeredocBody(fence, rx.content)}`;
296
+ }
297
+ }
298
+ // Every other op: re-emit the model's statement. EDIT, EXEC, SEND,
299
+ // COPY, MOVE, FIND, SHOW, HIDE — each gets its native heredoc form
300
+ // back. Without this the log row is a status code with no record
301
+ // of what the model actually wrote, and the model has to back into
302
+ // its own actions by inference (see reasoning.md trace from the
303
+ // pre-fix count-files run).
304
+ const heredoc = renderStatementHeredoc(e.tx);
305
+ if (heredoc !== null)
306
+ return `${metaLine}\n${heredoc}`;
307
+ return metaLine;
308
+ }).join("\n");
309
+ const renderActionTarget = (target) => {
155
310
  if (target === null || target === undefined)
156
311
  return null;
157
- const path = renderModelUri(target.scheme, target.pathname);
158
- return path.length > 0 ? path : null;
312
+ const rendered = renderModelUri(target.scheme, target.pathname);
313
+ return rendered.length > 0 ? rendered : null;
159
314
  };
160
- // Render TelemetryError[] → bullet list. v0 schema is open per Packet.json
161
- // ("Inner shapes intentionally open at v0; consumers populate as needs
162
- // solidify"), so this just emits each error as a JSON line until the
163
- // shape settles.
164
- const renderTelemetryErrors = (errors) => errors.map((e) => `* ${canonicalJson(e)}`).join("\n");
315
+ // Render TelemetryEvent[] → meta line per event, optionally followed by
316
+ // an N:\t-prefixed snippet block when the event carries `snippet` (the
317
+ // convention plurnk-service uses for content-offset positions model
318
+ // sees its own offending bytes alongside the error, not an abstract
319
+ // message it can't trace).
320
+ //
321
+ // Snippet renders verbatim — already N:\t-prefixed at production time
322
+ // (Engine.#extractSnippet). The fence is `error://<line>` to give the
323
+ // model a stable URI shape it can ignore or reference; the `error://`
324
+ // scheme isn't writable, it just identifies "this block is locator
325
+ // context, not addressable content."
326
+ //
327
+ // `snippet` is stripped from the meta JSON so the snippet appears once,
328
+ // in the body block, not also as a quoted string in the meta.
329
+ const renderTelemetryErrors = (errors) => errors.map((e) => {
330
+ const snippet = typeof e.snippet === "string" ? e.snippet : null;
331
+ const meta = { ...e };
332
+ if (snippet !== null)
333
+ delete meta.snippet;
334
+ const metaLine = `* ${canonicalJson(meta)}`;
335
+ if (snippet === null || snippet.length === 0)
336
+ return metaLine;
337
+ const line = typeof e.position?.line === "number" ? e.position.line : 0;
338
+ const fence = `error://${line}`;
339
+ return `${metaLine}\n${wrapHeredocBody(fence, snippet)}`;
340
+ }).join("\n");
165
341
  //# sourceMappingURL=packet-wire.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packet-wire.js","sourceRoot":"","sources":["../../src/core/packet-wire.js"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,6CAA6C;AAC7C,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,qEAAqE;AACrE,8CAA8C;AAE9C,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AAEvE,mEAAmE;AACnE,iCAAiC;AACjC,6CAA6C;AAC7C,iEAAiE;AACjE,qEAAqE;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,EAAE;IAC1C,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,mCAAmC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,4BAA4B,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,0BAA0B,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,+DAA+D;AAC/D,gCAAgC;AAChC,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,EAAE;IACtC,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/D,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,6BAA6B,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,6BAA6B,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtF,KAAK,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,2EAA2E;AAC3E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;IAC/D,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;CAC5D,CAAC;AAEF,6DAA6D;AAC7D,yEAAyE;AACzE,2EAA2E;AAC3E,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,OAAO,eAAe,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC,CAAC;AAEF,wEAAwE;AACxE,kEAAkE;AAClE,oCAAoC;AACpC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,EAAE;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,qEAAqE;AACrE,wEAAwE;AACxE,0EAA0E;AAC1E,uEAAuE;AACvE,uEAAuE;AACvE,yBAAyB;AACzB,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,KAAK,MAAM,QAAQ,MAAM,KAAK,EAAE,CAAC;AACjD,CAAC,CAAC;AAEF,qEAAqE;AACrE,oEAAoE;AACpE,sEAAsE;AACtE,iEAAiE;AACjE,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC5B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;AACjC,CAAC,CAAC;AAEF,mEAAmE;AACnE,sEAAsE;AACtE,mEAAmE;AACnE,0CAA0C;AAC1C,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,EAAE,CACnC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACd,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACnE,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QAC1C,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ;YAAE,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QACxE,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ;YAAE,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QAClE,YAAY,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;QACxC,MAAM,YAAY,GAAG,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;IACvE,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClD,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AACrC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEpB,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,gEAAgE;AAChE,wEAAwE;AACxE,0DAA0D;AAC1D,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,EAAE,CACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACd,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,GAAG,GAAG,SAAS,UAAU,GAAG,QAAQ,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAC7C,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACpC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AAC3E,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEpB,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,EAAE;IAC7B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC,CAAC;AAEF,2EAA2E;AAC3E,uEAAuE;AACvE,qEAAqE;AACrE,iBAAiB;AACjB,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,EAAE,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"packet-wire.js","sourceRoot":"","sources":["../../src/core/packet-wire.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Mimetypes } from "@plurnk/plurnk-mimetypes";
2
+ export declare const resolveEntryMimetype: (pathname: string, schemeDefault: string, mimetypes: Mimetypes | undefined) => Promise<string>;
3
+ //# sourceMappingURL=path-mimetype.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-mimetype.d.ts","sourceRoot":"","sources":["../../src/core/path-mimetype.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAmB1D,eAAO,MAAM,oBAAoB,GAC7B,UAAU,MAAM,EAChB,eAAe,MAAM,EACrB,WAAW,SAAS,GAAG,SAAS,KACjC,OAAO,CAAC,MAAM,CAOhB,CAAC"}
@@ -0,0 +1,47 @@
1
+ // Path-extension mimetype resolver for entry schemes per plurnk-grammar
2
+ // 0.14.0 §Paths: "Path suffix (`.json`, `.md`, `.txt`, etc.) declares
3
+ // mimetype; absent suffix defers to scheme default."
4
+ //
5
+ // Plurnk-service implements this uniformly across entry schemes: a
6
+ // pathname's extension drives the effective mimetype (via the sibling
7
+ // Mimetypes detect service), and the scheme manifest's channel default
8
+ // is the fallback when no extension is present.
9
+ //
10
+ // This makes structural ops (`<L>` item-index, matcher dialect dispatch)
11
+ // fire correctly without content-sniffing: a model writing JSON to
12
+ // `known://users.json` opts into JSON treatment via the `.json` suffix,
13
+ // while `known://notes` (no suffix) stays at Known's default of
14
+ // `text/markdown`.
15
+ //
16
+ // Consistent across:
17
+ // - known://users.json → application/json
18
+ // - known://notes.md → text/markdown
19
+ // - known://config.yaml → application/yaml
20
+ // - known://users → scheme default (text/markdown for Known)
21
+ import { normalizeAutoTextMimetype } from "./mimetype-binary.js";
22
+ // Extract the suffix (everything after the last dot in the last segment)
23
+ // from a pathname. Empty if no dot in the last segment.
24
+ const extractExtension = (pathname) => {
25
+ const lastSlash = pathname.lastIndexOf("/");
26
+ const lastSegment = lastSlash === -1 ? pathname : pathname.slice(lastSlash + 1);
27
+ const lastDot = lastSegment.lastIndexOf(".");
28
+ if (lastDot <= 0)
29
+ return ""; // leading-dot files (".env") aren't an extension
30
+ return lastSegment.slice(lastDot); // includes the leading "."
31
+ };
32
+ // Resolve a pathname → effective mimetype.
33
+ // 1. If the pathname has an extension, query Mimetypes.detect({ ext })
34
+ // and use what comes back (normalized via the text-primitive rule —
35
+ // text/plain → text/markdown).
36
+ // 2. Otherwise (no extension or no Mimetypes service), fall back to
37
+ // `schemeDefault` (typically the scheme manifest's channel default).
38
+ export const resolveEntryMimetype = async (pathname, schemeDefault, mimetypes) => {
39
+ const ext = extractExtension(pathname);
40
+ if (ext.length > 0 && mimetypes !== undefined) {
41
+ const detected = await mimetypes.detect({ ext });
42
+ if (detected !== null)
43
+ return normalizeAutoTextMimetype(detected);
44
+ }
45
+ return schemeDefault;
46
+ };
47
+ //# sourceMappingURL=path-mimetype.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-mimetype.js","sourceRoot":"","sources":["../../src/core/path-mimetype.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,sEAAsE;AACtE,qDAAqD;AACrD,EAAE;AACF,mEAAmE;AACnE,sEAAsE;AACtE,uEAAuE;AACvE,gDAAgD;AAChD,EAAE;AACF,yEAAyE;AACzE,mEAAmE;AACnE,wEAAwE;AACxE,gEAAgE;AAChE,mBAAmB;AACnB,EAAE;AACF,qBAAqB;AACrB,gDAAgD;AAChD,6CAA6C;AAC7C,gDAAgD;AAChD,wEAAwE;AAGxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,yEAAyE;AACzE,wDAAwD;AACxD,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAU,EAAE;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC,CAAE,iDAAiD;IAC/E,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,2BAA2B;AACnE,CAAC,CAAC;AAEF,2CAA2C;AAC3C,uEAAuE;AACvE,uEAAuE;AACvE,kCAAkC;AAClC,oEAAoE;AACpE,wEAAwE;AACxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACrC,QAAgB,EAChB,aAAqB,EACrB,SAAgC,EACjB,EAAE;IACjB,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import type { Db } from "./Db.ts";
2
- export type WriterTier = "model" | "client" | "system" | "plugin";
2
+ import type { Mimetypes } from "@plurnk/plurnk-mimetypes";
3
+ import type { StreamEventNotify, WakeRunNotify } from "./ChannelWrite.ts";
4
+ import type { WriterTier } from "@plurnk/plurnk-schemes";
5
+ export type { LoopFlags, SchemeFlagAffinity, SchemeManifest, WriterTier, } from "@plurnk/plurnk-schemes";
6
+ export { DEFAULT_LOOP_FLAGS } from "@plurnk/plurnk-schemes";
3
7
  export interface PlurnkSchemeContext {
4
8
  readonly db: Db;
5
9
  readonly sessionId: number;
@@ -8,30 +12,8 @@ export interface PlurnkSchemeContext {
8
12
  readonly turnId: number;
9
13
  readonly writer: WriterTier;
10
14
  readonly signal: AbortSignal | undefined;
15
+ readonly streamEventNotify?: StreamEventNotify;
16
+ readonly wakeRunNotify?: WakeRunNotify;
17
+ readonly mimetypes?: Mimetypes;
11
18
  }
12
- export interface SchemeFlagAffinity {
13
- readonly excludedInAsk?: boolean;
14
- readonly requiresWeb?: boolean;
15
- readonly requiresInteraction?: boolean;
16
- readonly proposes?: boolean;
17
- }
18
- export interface SchemeManifest {
19
- readonly name: string;
20
- readonly channels: Record<string, string>;
21
- readonly defaultChannel: string;
22
- readonly category: "data" | "logging";
23
- readonly scope: "agent" | "session";
24
- readonly writableBy: ReadonlyArray<WriterTier>;
25
- readonly volatile: boolean;
26
- readonly modelVisible: boolean;
27
- readonly flags?: SchemeFlagAffinity;
28
- }
29
- export interface LoopFlags {
30
- readonly mode: "ask" | "act";
31
- readonly yolo: boolean;
32
- readonly noWeb: boolean;
33
- readonly noInteraction: boolean;
34
- readonly noProposals: boolean;
35
- }
36
- export declare const DEFAULT_LOOP_FLAGS: LoopFlags;
37
19
  //# sourceMappingURL=scheme-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheme-types.d.ts","sourceRoot":"","sources":["../../src/core/scheme-types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAOlE,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CACvC;AAED,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,kBAAkB,EAAE,SAMhC,CAAC"}
1
+ {"version":3,"file":"scheme-types.d.ts","sourceRoot":"","sources":["../../src/core/scheme-types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD,YAAY,EACR,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAQ5D,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAClC"}
@@ -1,9 +1,6 @@
1
- // Shared types for the scheme extension surface. See SCHEMES.md.
2
- export const DEFAULT_LOOP_FLAGS = {
3
- mode: "act",
4
- yolo: false,
5
- noWeb: false,
6
- noInteraction: false,
7
- noProposals: false,
8
- };
1
+ // Per-call scheme context (DB-coupled). Framework-grade types
2
+ // (SchemeManifest, SchemeFlagAffinity, WriterTier, LoopFlags) re-export
3
+ // from @plurnk/plurnk-schemes so plurnk-service stays the single import
4
+ // point for in-tree schemes.
5
+ export { DEFAULT_LOOP_FLAGS } from "@plurnk/plurnk-schemes";
9
6
  //# sourceMappingURL=scheme-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheme-types.js","sourceRoot":"","sources":["../../src/core/scheme-types.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAgDjE,MAAM,CAAC,MAAM,kBAAkB,GAAc;IACzC,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;CACrB,CAAC"}
1
+ {"version":3,"file":"scheme-types.js","sourceRoot":"","sources":["../../src/core/scheme-types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,wEAAwE;AACxE,wEAAwE;AACxE,6BAA6B;AAe7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,12 +11,13 @@ export { default as Log } from "./schemes/Log.ts";
11
11
  export { default as Plurnk } from "./schemes/Plurnk.ts";
12
12
  export { default as Exec } from "./schemes/Exec.ts";
13
13
  export { default as File } from "./schemes/File.ts";
14
- export { default as Mock } from "./providers/Mock.ts";
15
- export type { MockResponse, MockAssistant, ChatMessage } from "./providers/Mock.ts";
14
+ export { Mock } from "@plurnk/plurnk-providers";
15
+ export type { MockResponse, MockAssistant, ChatMessage } from "@plurnk/plurnk-providers";
16
16
  export type { EditResult, ReadResult, ShowHideResult, } from "./schemes/_entry-ops.ts";
17
17
  export declare const PATHS: {
18
18
  migrations: string;
19
19
  instructionsSystem: string;
20
20
  defaultPersona: string;
21
+ defaultRequirements: string;
21
22
  };
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EACR,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,OAAO,GACV,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpF,YAAY,EACR,UAAU,EACV,UAAU,EACV,cAAc,GACjB,MAAM,yBAAyB,CAAC;AA0BjC,eAAO,MAAM,KAAK;;;;CAQjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EACR,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,OAAO,GACV,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzF,YAAY,EACR,UAAU,EACV,UAAU,EACV,cAAc,GACjB,MAAM,yBAAyB,CAAC;AAoCjC,eAAO,MAAM,KAAK;;;;;CAYjB,CAAC"}
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ export { default as Log } from "./schemes/Log.js";
17
17
  export { default as Plurnk } from "./schemes/Plurnk.js";
18
18
  export { default as Exec } from "./schemes/Exec.js";
19
19
  export { default as File } from "./schemes/File.js";
20
- export { default as Mock } from "./providers/Mock.js";
20
+ export { Mock } from "@plurnk/plurnk-providers";
21
21
  import { fileURLToPath } from "node:url";
22
22
  import { dirname, resolve } from "node:path";
23
23
  // Package-relative paths to non-code artifacts.
@@ -39,6 +39,15 @@ const resolveDefaultPersona = () => {
39
39
  }
40
40
  return resolve(PACKAGE_ROOT, "persona.md");
41
41
  };
42
+ // Same shape as resolveDefaultPersona: `PLURNK_REQUIREMENTS` env (absolute
43
+ // or relative-to-package-root) overrides the in-package `requirements.md`.
44
+ const resolveDefaultRequirements = () => {
45
+ const env = process.env.PLURNK_REQUIREMENTS;
46
+ if (typeof env === "string" && env.length > 0) {
47
+ return resolve(PACKAGE_ROOT, env);
48
+ }
49
+ return resolve(PACKAGE_ROOT, "requirements.md");
50
+ };
42
51
  export const PATHS = {
43
52
  migrations: resolve(PACKAGE_ROOT, "migrations"),
44
53
  instructionsSystem: resolve(GRAMMAR_ROOT, "plurnk.md"),
@@ -47,5 +56,9 @@ export const PATHS = {
47
56
  // RPC overrides on loop.run / session.attach / session.create populate
48
57
  // the three persistence layers; this file is the final fallback.
49
58
  defaultPersona: resolveDefaultPersona(),
59
+ // packet.user.system_requirements DEFAULT. Static contract appended at
60
+ // the end of the user packet — names rules the model has to honor that
61
+ // the grammar block doesn't cover (e.g. "loop concludes with SEND[200]").
62
+ defaultRequirements: resolveDefaultRequirements(),
50
63
  };
51
64
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,oCAAoC;AAEpC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACrE,4EAA4E;AAC5E,+CAA+C;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQvE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAStD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,gDAAgD;AAChD,EAAE;AACF,gDAAgD;AAChD,+EAA+E;AAC/E,6EAA6E;AAC7E,oCAAoC;AACpC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5E,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC;AAExG,yEAAyE;AACzE,kEAAkE;AAClE,mEAAmE;AACnE,oDAAoD;AACpD,MAAM,qBAAqB,GAAG,GAAW,EAAE;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC;IAC/C,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC;IACtD,iEAAiE;IACjE,gEAAgE;IAChE,uEAAuE;IACvE,iEAAiE;IACjE,cAAc,EAAE,qBAAqB,EAAE;CAC1C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,34 @@
1
- import type { SchemeManifest } from "../core/scheme-types.ts";
1
+ import type { ExecStatement, FindStatement, HideStatement, ReadStatement, ShowStatement } from "@plurnk/plurnk-grammar";
2
+ import type { SchemeManifest, PlurnkSchemeContext } from "../core/scheme-types.ts";
3
+ import type { ReadResult, ShowHideResult } from "./_entry-ops.ts";
4
+ import type { EntryData, ReadEntryResult, WriteEntryResult, DeleteEntryResult } from "./_entry-crud.ts";
5
+ import type { FindResult } from "./_entry-find.ts";
6
+ type ExecResult = {
7
+ status: number;
8
+ body?: string;
9
+ attrs?: object;
10
+ error?: string;
11
+ };
2
12
  export default class Exec {
13
+ #private;
3
14
  static manifest: SchemeManifest;
15
+ idle(): Promise<void>;
16
+ exec(statement: ExecStatement, ctx: PlurnkSchemeContext): Promise<ExecResult>;
17
+ applyResolution(args: {
18
+ attrs: object;
19
+ body?: string;
20
+ }, ctx: PlurnkSchemeContext): Promise<{
21
+ status: number;
22
+ outcome?: string;
23
+ body?: string;
24
+ }>;
25
+ read(statement: ReadStatement, ctx: PlurnkSchemeContext): Promise<ReadResult>;
26
+ show(statement: ShowStatement | HideStatement, ctx: PlurnkSchemeContext): Promise<ShowHideResult>;
27
+ hide(statement: ShowStatement | HideStatement, ctx: PlurnkSchemeContext): Promise<ShowHideResult>;
28
+ find(statement: FindStatement, ctx: PlurnkSchemeContext): Promise<FindResult>;
29
+ readEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<ReadEntryResult>;
30
+ writeEntry(pathname: string, entry: EntryData, ctx: PlurnkSchemeContext): Promise<WriteEntryResult>;
31
+ deleteEntry(pathname: string, ctx: PlurnkSchemeContext): Promise<DeleteEntryResult>;
4
32
  }
33
+ export {};
5
34
  //# sourceMappingURL=Exec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9D,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAa7B;CACL"}
1
+ {"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGxH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAyEpF,MAAM,CAAC,OAAO,OAAO,IAAI;;IACrB,MAAM,CAAC,QAAQ,EAAE,cAAc,CAa7B;IAKI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrB,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsC7E,eAAe,CACjB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EACtC,GAAG,EAAE,mBAAmB,GACzB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkGzD,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAI7E,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjG,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAI7E,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI/E,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAG5F"}