@plurnk/plurnk-schemes 0.4.0 → 0.4.2

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/README.md CHANGED
@@ -13,7 +13,7 @@ Framework + contract for `@plurnk/plurnk-schemes-*` URI handler packages. Consum
13
13
 
14
14
  - Manifest/flags: `SchemeManifest`, `SchemeFlagAffinity`, `WriterTier`, `LoopFlags`, `DEFAULT_LOOP_FLAGS`.
15
15
  - Result families: `SchemeResult` / `EntryResult` / `ProposalResult` / `PassthroughResult` / `SchemeResultBase` / `TelemetryEvent`.
16
- - Capability ctx: `SchemeCtx` + `EntryCaps` / `ChannelCaps` / `VisibilityCaps` / `TagCaps` / `NotifyCaps` / `SubscriptionCaps` / `CrossSchemeCaps`, plus `EntryData` / `ChannelState` / `SubscriptionHandle` / `ProposalAware`.
16
+ - Capability ctx: `SchemeCtx` + `EntryCaps` / `ChannelCaps` / `TagCaps` / `NotifyCaps` / `SubscriptionCaps` / `CrossSchemeCaps`, plus `EntryData` / `ChannelState` / `SubscriptionHandle` / `ProposalAware`.
17
17
 
18
18
  ### Helpers (`export default class`, static methods)
19
19
 
package/SPEC.md CHANGED
@@ -79,7 +79,7 @@ Result-type definitions (`EditResult`, `ReadResult`, etc.) live in plurnk-servic
79
79
 
80
80
  - Manifest/flags: `SchemeManifest`, `SchemeFlagAffinity`, `WriterTier`, `LoopFlags`, `DEFAULT_LOOP_FLAGS`.
81
81
  - Result families: `SchemeResult` (`EntryResult` | `ProposalResult` | `PassthroughResult`), `SchemeResultBase`, `TelemetryEvent`. Keyed on scheme-shape, not op. `error` is a grammar `TelemetryEvent`, present iff `status >= 400`. Guards `isEntryResult` / `isProposalResult` / `isPassthroughResult` / `isErrorStatus`; builders `schemeError(scheme, kind, message?, position?)`, `logCoordinate(coordinate, op?)`.
82
- - Capability ctx (PR-2, see §3.bis): `SchemeCtx` + `EntryCaps` / `ChannelCaps` / `VisibilityCaps` / `TagCaps` / `NotifyCaps` / `SubscriptionCaps` / `CrossSchemeCaps`, plus `EntryData`, `ChannelState`, `SubscriptionHandle`, `ProposalAware`.
82
+ - Capability ctx (PR-2, see §3.bis): `SchemeCtx` + `EntryCaps` / `ChannelCaps` / `TagCaps` / `NotifyCaps` / `SubscriptionCaps` / `CrossSchemeCaps`, plus `EntryData`, `ChannelState`, `SubscriptionHandle`, `ProposalAware`.
83
83
 
84
84
  Behavior ships as `export default class` (one class per file, static methods) — the ecosystem class paradigm. Type-only modules, the barrel, and the frozen `DEFAULT_LOOP_FLAGS` constant are the only non-class files.
85
85
 
@@ -121,21 +121,22 @@ Behavior ships as `export default class` (one class per file, static methods)
121
121
  - `InvalidExpressionError` → status 400
122
122
  - `QueryParseFailureError` → status 203 (soft fallback: raw content as text/markdown with `reason`)
123
123
  - Empty match array → status 204
124
- - Match array → status 200
124
+ - Matches → status 200, body rendered as lean `<source-line>:\t<value>` lines (one match per line, the `N:\t` convention READ emits). Value bare for a single-line string, JSON-encoded otherwise so the one-match-per-line invariant holds (preserves `<L><K>` pick-Kth composition). The resolved query path (`matching`) is dropped — the structured `{matched, matching}` wrapper was a model-legibility barrier (schemes#12).
125
125
 
126
126
  ### §3.bis Capability ctx — the DB-free authoring surface
127
127
 
128
128
  The contract that lets a third-party `@plurnk/plurnk-schemes-*` sibling be authored without importing `@plurnk/plurnk-service` or touching a raw DB handle (forbidden by §5). **Interfaces only**: this repo exports the shapes; plurnk-service injects a db-backed implementation behind them (the `scheme-types.ts` seam, widened). In-tree schemes keep using `db` directly during transition and cut over scheme-by-scheme. Design converged on [plurnk-service#180](https://github.com/plurnk/plurnk-service/issues/180).
129
129
 
130
- `SchemeCtx` carries per-dispatch identity (`sessionId`/`runId`/`loopId`/`turnId`/`writer`/`signal`) plus **six live capability namespaces** replacing raw `db`:
130
+ `SchemeCtx` carries per-dispatch identity (`sessionId`/`runId`/`loopId`/`turnId`/`writer`/`signal`) plus **five live capability namespaces** replacing raw `db`:
131
131
 
132
132
  - `entries` — CRUD over the scheme's own namespace (`read`/`write`/`delete`).
133
133
  - `channels` — content writes + state (`append`/`replace`/`setState`).
134
- - `visibility` — the per-(run, entry, channel) index bit (`show`/`hide`, channel optional).
135
134
  - `tags` — entry tags (`add`/`remove`/`list`).
136
135
  - `notify` — between-turn client/engine signals (`streamEvent`, `wakeRun`); not model-facing.
137
136
  - `subscriptions` — streaming lifecycle: `open(pathname, handle)` returns a run+teardown-composed `AbortSignal` and takes a force-cancel `SubscriptionHandle`; `notifyChunk(channel, chunk)` is **fused** (append + stream/event in one call); `close(reason, outcome?)` composites channel state + registry close + run wake. Designed against Exec (two-channel, cancel-tested).
138
137
 
138
+ There is **no `visibility` capability**: entry-level SHOW/HIDE was removed in plurnk-service's index/visibility teardown — SHOW/HIDE now collapse/expand `log://` rows, a log-side concern with no entry-visibility for a scheme to set (plurnk-service#180).
139
+
139
140
  `crossScheme` is a **deferred** placeholder — no FROM/TO methods committed until the first real cross-scheme COPY/MOVE forces the shape.
140
141
 
141
142
  **Proposals are not a capability.** A side-effecting scheme proposes by *returning* a `ProposalResult` (status 202); the engine owns the resolution lifecycle (await/accept/reject, YOLO/noProposals auto-resolve, timeout) and it is invisible to the sibling. The only sibling-side surface is the optional `ProposalAware.applyResolution(pathname, proposal, ctx)` hook the engine calls on accept.
package/dist/ctx.d.ts CHANGED
@@ -34,14 +34,6 @@ export interface ChannelCaps {
34
34
  status: number;
35
35
  }>;
36
36
  }
37
- export interface VisibilityCaps {
38
- show(pathname: string, channel?: string): Promise<{
39
- status: number;
40
- }>;
41
- hide(pathname: string, channel?: string): Promise<{
42
- status: number;
43
- }>;
44
- }
45
37
  export interface TagCaps {
46
38
  add(pathname: string, tags: ReadonlyArray<string>): Promise<{
47
39
  status: number;
@@ -78,7 +70,6 @@ export interface SchemeCtx {
78
70
  readonly signal: AbortSignal | undefined;
79
71
  readonly entries: EntryCaps;
80
72
  readonly channels: ChannelCaps;
81
- readonly visibility: VisibilityCaps;
82
73
  readonly tags: TagCaps;
83
74
  readonly notify: NotifyCaps;
84
75
  readonly subscriptions: SubscriptionCaps;
package/dist/ctx.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ctx.d.ts","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ctx.d.ts","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
package/dist/ctx.js CHANGED
@@ -14,12 +14,14 @@
14
14
  // during transition; the cap impl is a thin adapter over the same
15
15
  // `_entry-*.ts` / `ChannelWrite` helpers, cut over scheme-by-scheme.
16
16
  //
17
- // SIX live namespaces decompose what `ctx.db` is used for today:
18
- // entries / channels / visibility / tags / notify — map 1:1 onto the
19
- // `_entry-*.ts` + `ChannelWrite` helpers; wrap cleanly.
20
- // subscriptions — the streaming
21
- // lifecycle (open/notifyChunk/close); design against Exec, the proven
17
+ // FIVE live namespaces decompose what `ctx.db` is used for today:
18
+ // entries / channels / tags / notify — map 1:1 onto the `_entry-*.ts` +
19
+ // `ChannelWrite` helpers; wrap cleanly.
20
+ // subscriptions — the streaming lifecycle
21
+ // (open/notifyChunk/close); design against Exec, the proven
22
22
  // two-channel cancel-tested case.
23
+ // (No `visibility`: entry-level SHOW/HIDE was removed in plurnk-service's
24
+ // index/visibility teardown — SHOW/HIDE now act on `log://` rows. #180.)
23
25
  //
24
26
  // NOT a namespace:
25
27
  // proposals — collapses to "return a ProposalResult (202) + implement
package/dist/ctx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,0EAA0E;AAC1E,uBAAuB;AACvB,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,2EAA2E;AAC3E,yEAAyE;AACzE,yCAAyC;AACzC,EAAE;AACF,uEAAuE;AACvE,6EAA6E;AAC7E,yEAAyE;AACzE,kEAAkE;AAClE,qEAAqE;AACrE,EAAE;AACF,iEAAiE;AACjE,wEAAwE;AACxE,4DAA4D;AAC5D,sEAAsE;AACtE,0EAA0E;AAC1E,sCAAsC;AACtC,EAAE;AACF,mBAAmB;AACnB,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,4CAA4C;AAC5C,2EAA2E;AAC3E,wEAAwE;AACxE,iEAAiE"}
1
+ {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,0EAA0E;AAC1E,uBAAuB;AACvB,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,2EAA2E;AAC3E,yEAAyE;AACzE,yCAAyC;AACzC,EAAE;AACF,uEAAuE;AACvE,6EAA6E;AAC7E,yEAAyE;AACzE,kEAAkE;AAClE,qEAAqE;AACrE,EAAE;AACF,kEAAkE;AAClE,2EAA2E;AAC3E,4CAA4C;AAC5C,kEAAkE;AAClE,gEAAgE;AAChE,sCAAsC;AACtC,0EAA0E;AAC1E,0EAA0E;AAC1E,EAAE;AACF,mBAAmB;AACnB,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,2EAA2E;AAC3E,4CAA4C;AAC5C,2EAA2E;AAC3E,wEAAwE;AACxE,iEAAiE"}
package/dist/index.d.ts CHANGED
@@ -9,5 +9,5 @@ export { default as Matcher } from "./matcher.ts";
9
9
  export type { MatchResult } from "./matcher.ts";
10
10
  export { default as Results } from "./results.ts";
11
11
  export type { EntryResult, PassthroughResult, ProposalResult, SchemeResult, SchemeResultBase, TelemetryEvent, } from "./results.ts";
12
- export type { ChannelCaps, ChannelState, CrossSchemeCaps, EntryCaps, EntryData, NotifyCaps, ProposalAware, SchemeCtx, SubscriptionCaps, SubscriptionHandle, TagCaps, VisibilityCaps, } from "./ctx.ts";
12
+ export type { ChannelCaps, ChannelState, CrossSchemeCaps, EntryCaps, EntryData, NotifyCaps, ProposalAware, SchemeCtx, SubscriptionCaps, SubscriptionHandle, TagCaps, } from "./ctx.ts";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACR,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,UAAU,IAAI,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EACR,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACjB,MAAM,cAAc,CAAC;AAItB,YAAY,EACR,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,cAAc,GACjB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,YAAY,EACR,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,UAAU,IAAI,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EACR,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACjB,MAAM,cAAc,CAAC;AAItB,YAAY,EACR,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,GACV,MAAM,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,0BAA0B,CAAC;AAQtE,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;;WAeX,mBAAmB,CAC5B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,QAAQ,GAAE,MAAU,GACrB,OAAO,CAAC,WAAW,CAAC;CA4C1B"}
1
+ {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,0BAA0B,CAAC;AAQtE,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,OAAO,OAAO;;WA6BX,mBAAmB,CAC5B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,QAAQ,GAAE,MAAU,GACrB,OAAO,CAAC,WAAW,CAAC;CA4C1B"}
package/dist/matcher.js CHANGED
@@ -22,8 +22,21 @@
22
22
  import { UnsupportedDialectError, InvalidExpressionError, QueryParseFailureError, } from "@plurnk/plurnk-mimetypes";
23
23
  import { TEXT_PRIMITIVE_MIMETYPE } from "./mimetype-binary.js";
24
24
  export default class Matcher {
25
- static #prettyJson(value) {
26
- return JSON.stringify(value, null, 2);
25
+ // Render one match's value for the model-facing line. Bare for a single-
26
+ // line string; JSON-encoded otherwise so the one-match-per-line invariant
27
+ // holds (a multi-line value would otherwise break the `<L><K>` pick-Kth
28
+ // composition that matcher-then-slice depends on).
29
+ static #renderValue(value) {
30
+ return typeof value === "string" && !value.includes("\n") ? value : JSON.stringify(value);
31
+ }
32
+ // Render matches as the model-facing line-numbered form `<source-line>:\t<value>`,
33
+ // one match per line — the same `N:\t` convention READ emits. The structured
34
+ // `{matched, matching}` wrapper was a legibility barrier (schemes#12: a gemma
35
+ // demo couldn't see `Alice` inside it and re-emitted the READ five times).
36
+ // `matching` (the resolved query path) is dropped from the rendering; the
37
+ // grammar `QueryMatch` keeps it, we just don't surface it.
38
+ static #renderMatches(matches) {
39
+ return matches.map((m) => `${m.line}:\t${Matcher.#renderValue(m.matched)}`).join("\n");
27
40
  }
28
41
  // Apply a `<L>`-slice baseLine offset to per-match line numbers. The
29
42
  // framework returns line numbers relative to the content it received;
@@ -47,7 +60,7 @@ export default class Matcher {
47
60
  const adjusted = Matcher.#shiftLines(rawMatches, baseLine);
48
61
  return {
49
62
  status: 200,
50
- body: Matcher.#prettyJson(adjusted),
63
+ body: Matcher.#renderMatches(adjusted),
51
64
  matches: adjusted.length,
52
65
  };
53
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-schemes",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Framework + contract for the @plurnk/plurnk-schemes-* URI handler family.",
5
5
  "keywords": [
6
6
  "plurnk",