@ggui-ai/protocol 0.15.0 → 0.17.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 (81) hide show
  1. package/dist/errors/domain-error.d.ts +70 -0
  2. package/dist/errors/domain-error.d.ts.map +1 -0
  3. package/dist/errors/domain-error.js +118 -0
  4. package/dist/gadgets/stdlib-gadgets.d.ts +1 -1
  5. package/dist/gadgets/stdlib-gadgets.js +1 -1
  6. package/dist/index.d.ts +5 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +11 -4
  9. package/dist/integrations/mcp-apps.d.ts +48 -8
  10. package/dist/integrations/mcp-apps.d.ts.map +1 -1
  11. package/dist/integrations/mcp-apps.js +29 -23
  12. package/dist/integrations/overlay-hash.d.ts +19 -0
  13. package/dist/integrations/overlay-hash.d.ts.map +1 -0
  14. package/dist/integrations/overlay-hash.js +29 -0
  15. package/dist/integrations/theme-binding.d.ts +14 -12
  16. package/dist/integrations/theme-binding.d.ts.map +1 -1
  17. package/dist/integrations/theme-binding.js +10 -6
  18. package/dist/registry/blueprint-key.d.ts.map +1 -1
  19. package/dist/registry/blueprint-key.js +4 -3
  20. package/dist/schemas/app-generation-profile.d.ts +139 -0
  21. package/dist/schemas/app-generation-profile.d.ts.map +1 -0
  22. package/dist/schemas/app-generation-profile.js +121 -0
  23. package/dist/schemas/app-theme.d.ts +235 -9
  24. package/dist/schemas/app-theme.d.ts.map +1 -1
  25. package/dist/schemas/app-theme.js +218 -40
  26. package/dist/schemas/blueprint.d.ts +2 -1
  27. package/dist/schemas/blueprint.d.ts.map +1 -1
  28. package/dist/schemas/blueprint.js +15 -3
  29. package/dist/schemas/data-contract.d.ts +1 -1
  30. package/dist/schemas/data-contract.js +1 -1
  31. package/dist/schemas/handshake-suggestion.d.ts.map +1 -1
  32. package/dist/schemas/handshake-suggestion.js +8 -1
  33. package/dist/schemas/mcp.d.ts +62 -27
  34. package/dist/schemas/mcp.d.ts.map +1 -1
  35. package/dist/schemas/mcp.js +59 -21
  36. package/dist/schemas/ops-blueprint.d.ts +11 -4
  37. package/dist/schemas/ops-blueprint.d.ts.map +1 -1
  38. package/dist/schemas/ops-blueprint.js +25 -8
  39. package/dist/schemas/render-input-envelope.js +1 -1
  40. package/dist/schemas/rendering-context.d.ts +48 -0
  41. package/dist/schemas/rendering-context.d.ts.map +1 -0
  42. package/dist/schemas/rendering-context.js +39 -0
  43. package/dist/types/blueprint-source.d.ts +27 -7
  44. package/dist/types/blueprint-source.d.ts.map +1 -1
  45. package/dist/types/blueprint-source.js +19 -3
  46. package/dist/types/blueprint.d.ts +2 -2
  47. package/dist/types/blueprint.d.ts.map +1 -1
  48. package/dist/types/data-contract.d.ts +3 -3
  49. package/dist/types/domain-error-codes.d.ts +167 -0
  50. package/dist/types/domain-error-codes.d.ts.map +1 -0
  51. package/dist/types/domain-error-codes.js +170 -0
  52. package/dist/types/handshake-suggestion.d.ts +2 -2
  53. package/dist/types/live-channel.d.ts +1 -1
  54. package/dist/types/llm-route.d.ts +59 -2
  55. package/dist/types/llm-route.d.ts.map +1 -1
  56. package/dist/types/llm-route.js +62 -16
  57. package/dist/types/llm.d.ts +22 -2
  58. package/dist/types/llm.d.ts.map +1 -1
  59. package/dist/types/llm.js +29 -2
  60. package/dist/types/mcp.d.ts +31 -39
  61. package/dist/types/mcp.d.ts.map +1 -1
  62. package/dist/types/mcp.js +22 -10
  63. package/dist/types/refusal-codes.d.ts +31 -93
  64. package/dist/types/refusal-codes.d.ts.map +1 -1
  65. package/dist/types/refusal-codes.js +41 -96
  66. package/dist/types/render.d.ts +6 -5
  67. package/dist/types/render.d.ts.map +1 -1
  68. package/dist/validation/contract-validator.d.ts +8 -2
  69. package/dist/validation/contract-validator.d.ts.map +1 -1
  70. package/dist/validation/contract-validator.js +12 -4
  71. package/dist/validation/lint-contract.d.ts +2 -2
  72. package/dist/validation/lint-contract.d.ts.map +1 -1
  73. package/dist/validation/lint-contract.js +6 -4
  74. package/dist/validation/schema-subset.d.ts +3 -3
  75. package/dist/version.d.ts +445 -6
  76. package/dist/version.d.ts.map +1 -1
  77. package/dist/version.js +444 -5
  78. package/package.json +1 -1
  79. package/dist/envelope-adapters.d.ts +0 -12
  80. package/dist/envelope-adapters.d.ts.map +0 -1
  81. package/dist/envelope-adapters.js +0 -30
package/dist/version.d.ts CHANGED
@@ -6,6 +6,431 @@
6
6
  * schema change; the most recent change anchors {@link PROTOCOL_VERSION}.
7
7
  *
8
8
  * --------------------------------------------------------------------
9
+ * Motion tempo override (2026-09-16, additive, ggui#1093 P1c — MINOR,
10
+ * same draft stamp; no WIRE change). The theming spec's §2.3 retirement
11
+ * of per-app motion is AMENDED (protocol + rnd): layer-1 keeps the motion
12
+ * SCALE, and the document may state a BOUNDED tempo override — `duration`
13
+ * (fast/base/slow), `easing` (standard/emphasized/exit, each validated at
14
+ * the door as a CSS keyword, cubic-bezier or steps) and `reduce` — the
15
+ * standing `palette` has always had. The retired FREE-MAP ladders stay
16
+ * refused and the door's guard test pins the narrower rule. Reversed, not
17
+ * widened: §2.3's stated ground ("zero consumers today") expired when
18
+ * ggui#1075 created the consumer.
19
+ * --------------------------------------------------------------------
20
+ * Theme DOCUMENT members (2026-09-16, additive, ggui#1093 P1b — MINOR,
21
+ * same draft stamp; no WIRE change at all). `ThemeDocumentV2` and design's
22
+ * `DtcgTheme` gain optional `typeScale` (five roles; `leading` is a ratio),
23
+ * `rhythm` (bounded `base` + named steps) and `scrim`; they reach the card
24
+ * through `deriveThemeVariables` → the overlay, so the wire's `AppTheme`
25
+ * is untouched and this entry moves no stamp. Motion is NOT here: it would
26
+ * reverse the theming spec's §2.3 layer-1 ruling and lands as ggui#1093
27
+ * P1c with that reversal, co-signed.
28
+ * --------------------------------------------------------------------
29
+ * AppTheme carrier, wire half (2026-09-15, additive, ggui#1093 P1a —
30
+ * MINOR, same draft stamp; #1075 Track C (a), closes #990's wire half).
31
+ * Two OPTIONAL members on `appThemeSchema`: `fonts` (1..16 faces on
32
+ * `fontFaceDeclarationSchema` — #987 §5's document grammar lifted into
33
+ * the protocol; `@ggui-ai/project-config` imports it back, one grammar
34
+ * for the document door and the wire) and `imagery` (`mark` / `hero` /
35
+ * `pattern`, each `{ src https, alt? ≤ 200, tone? light|dark }`). Grammar
36
+ * at the door, never fetched; outside the attestation (`OverlayHashInput`
37
+ * unchanged). Belt fixtures moved to a synthetic `futureMember` because
38
+ * `fonts` is now a named member.
39
+ * --------------------------------------------------------------------
40
+ * AppTheme read-door posture (2026-09-15, additive, ggui#1093 belt —
41
+ * MINOR, same draft stamp; VERSION-POLICY §3.6 forward twin, ruled with
42
+ * cloud). `appThemeReadSchema` + `parseAppThemeAtReadDoor`: READ doors
43
+ * strip unknown TOP-LEVEL members, keep the overlays, name the stripped
44
+ * keys; WRITE doors stay on the strict `appThemeSchema`. The render-meta
45
+ * reader adopts it (`onStrippedThemeMembers`). The kit's `n1-compat`
46
+ * catalog gains its first FORWARD case (`app-theme-read`). Wire bytes
47
+ * unchanged; the belt under the #1093 carrier (`fonts?` / `imagery?`).
48
+ * --------------------------------------------------------------------
49
+ * `ggui_ops_generate_blueprint` gains `intent` (2026-09-13, additive,
50
+ * ggui#1046 — MINOR, same draft stamp): the generation prompt as a
51
+ * NON-identity field, bounded at `OPS_GENERATE_BLUEPRINT_INTENT_MAX_CHARS`
52
+ * (2000); `seedPrompt` stays a variance key (cache identity). The handler's
53
+ * silent placeholder is observable this release and refused next
54
+ * (`prompt_required`). The kit's `n1-compat` catalog pins Release 2's
55
+ * input (contract + seedPrompt, no intent).
56
+ * --------------------------------------------------------------------
57
+ * Generator profile widened (2026-09-13, additive, ggui#1058 — MINOR, same
58
+ * draft stamp; founder's A2 "profile OVER engine"). Two optional members on
59
+ * `appGenerationProfileSchema`: `effort` (one of five names — the wire
60
+ * carries the name, the reader owns the dials table; an unavailable level
61
+ * is refused `{ profile: { effort: 'unavailable' } }`, never downgraded) and
62
+ * `aesthetic { id, version? }` (a grammar-checked reference into the
63
+ * deployment's catalogue, resolved at read, unresolvable = non-fatal +
64
+ * `profile_aesthetic_unresolved`). The kit's `n1-compat` catalog gains the
65
+ * `generation-profile` wire (Release 2's three-member payload accepted).
66
+ * --------------------------------------------------------------------
67
+ * Generator profile member `direction` (2026-09-11, additive, ggui#1027
68
+ * follower on the ggui#991 slot — MINOR, same draft stamp). A fourth
69
+ * optional member on `appGenerationProfileSchema`: one variant's
70
+ * COMPOSITION direction — what leads, what is left out, motion or none —
71
+ * free text under the same `profileText` rule, door-bounded at
72
+ * `APP_GENERATION_PROFILE_BOUNDS.direction = 600`, named by the refusal
73
+ * body. §3.6 (N−1): a door on the previous release validates with the
74
+ * `.strict()` schema that lacks the member and REFUSES a payload carrying
75
+ * it, so the WRITER emits `direction` only where the reader is on this
76
+ * line — the bootstrap lane composing variant profiles server-side in
77
+ * the same publication holds it by construction; a console or platform
78
+ * writer waits for the release carrying it. No `PROTOCOL_VERSION` move.
79
+ * --------------------------------------------------------------------
80
+ * Rendering-context vocabulary: `renderingContextSchema` (2026-09-11,
81
+ * additive, ggui#1000 — MINOR). The `{ shell, device, viewport? }`
82
+ * vocabulary that lived as two hand-declared unions (mcp-server-core
83
+ * `UiGenerateInput.rendering`, ui-gen `RenderingContext`) becomes ONE
84
+ * schema here; both consumers now derive their type from it, and the
85
+ * bootstrap door validates `items[].rendering?` with it. No existing wire
86
+ * changes shape; no `PROTOCOL_VERSION` move.
87
+ * --------------------------------------------------------------------
88
+ * Generator profile slot: `appGenerationProfileSchema` (2026-09-10,
89
+ * additive, ggui#991 — MINOR; the D7 mechanism of ggui#987). One new
90
+ * schema on the app's `generation` section — `profile?: { styling?,
91
+ * density?, layout? }`, free text, trimmed, door-bounded at
92
+ * `APP_GENERATION_PROFILE_BOUNDS` (2000 / 200 / 200), control characters
93
+ * refused — plus its refusal body. A generation-time input, never a
94
+ * token; absent or empty leaves the generator's prompts byte-identical.
95
+ * No existing type changes; readers and doors land with the #991 set.
96
+ * --------------------------------------------------------------------
97
+ * Theming revision — the overlay is the projection, the host owns runtime
98
+ * mode (2026-09-10, ggui#987 — **BREAKING on the draft wave**, named by the
99
+ * conformance kit: `protocol-conformance/src/theme-binding-conformance`
100
+ * promoted today's pins in the prior commit, and this change fails them —
101
+ * VERSION-POLICY §1.1; shipped under §1.4's `draft-` clause, §3.5's window
102
+ * waived pre-v1.0). Founder rulings D1–D7 (2026-09-09/10), joint spec
103
+ * `docs/superpowers/specs/2026-09-09-theming-revision-protocol-half.md`.
104
+ * `appThemeSchema` v2: `overlays: { light, dark }` REQUIRED (the derived
105
+ * projection for both modes — one producer, `@ggui-ai/design`'s
106
+ * `deriveThemeVariables`), `overlayHash` REQUIRED (`canonicalOverlayHash`,
107
+ * recomputed at every write door), `mode` optional and a DEFAULT only,
108
+ * `name` a label; `base` DELETED with the registration tier (D2 = B). The
109
+ * client projection of `themeMode` flips — `hostAnnounced ?? stamped ??
110
+ * sessionSidecar` (D4 = A: M1 + M2, "follow the widget") — the server stamp
111
+ * is unchanged; `themeId` loses its `sidecarName` leg. `AppThemeRefusalBody`
112
+ * is the one write-door refusal shape. `parseMcpAppAiGguiRenderMeta` gains
113
+ * `onInvalidTheme` so the read door is never silent. The render shell paints
114
+ * `--ggui-color-ground` (the surface-layering roles of §2.1).
115
+ * --------------------------------------------------------------------
116
+ * Model registry: `openai/gpt-6-astra` (2026-09-09, additive, ggui#977 —
117
+ * MINOR; Exp 008's founder-ruled second arm, ggui#972). One new `ModelId`
118
+ * union member and one `MODELS.openai` allowlist entry; premium, active,
119
+ * not in the lineup; costs 10 / 50 / 12.5 / 1.0 per 1M (input / output /
120
+ * cache write / cache read), `maxTokens` 922000, tools — every field a
121
+ * receipt on the issue; `retireNotBefore` unset (none published).
122
+ * --------------------------------------------------------------------
123
+ * Refusal registry v11 — the retail plan model retired (2026-09-08,
124
+ * wire-code, pre-launch, ggui#960 — MINOR on the 0.16.0 draft wave; the
125
+ * protocol half of the pricing publication ggui#949, WITH cloud's arm
126
+ * deletion). Founder's ruling: one product, prepaid pay-as-you-go at flat
127
+ * rates, trial and tiers retired, the welcome credit as the free entry.
128
+ * Eleven codes lose their emitting arms and retire in the same slice —
129
+ * render-gate `trial_exhausted`, `trial_expired`, `app_canceled`
130
+ * (`RENDER_GATE_REFUSAL_CODES` 14 → 11); owner-api `subscription_exists`,
131
+ * `no_subscription`, `subscription_unchanged`, `portal_unavailable`,
132
+ * `card_update_unavailable`, `managed_app_no_portal`,
133
+ * `managed_app_no_card_update`, `managed_app_no_checkout` (9 → 1: the
134
+ * prepaid wallet's one Stripe surface is the top-up, user-scoped). Four
135
+ * rows re-described in the new model's words: `billing_path_missing`,
136
+ * `model_not_allowed` (per-account grant), `checkout_unavailable`
137
+ * (top-ups), `insufficient_credit` (pool or BYOK). New typed exports
138
+ * `OWNER_API_REFUSAL_CODES` + `OwnerApiRefusalCode`. Not breaking under
139
+ * §2: pre-launch draft wave, every retired code had lost its emitter in
140
+ * the same publication; the kit's non-render-surface case re-aims to the
141
+ * surviving owner-api code. `managed_default_cap_exceeded` stays (ggui#965).
142
+ * --------------------------------------------------------------------
143
+ * Blueprint provenance de-modeled (2026-09-06, wire-tightening, pre-launch,
144
+ * ggui#924 — MINOR; half of ggui#923, one WITH publication across six
145
+ * lanes). `LlmBlueprintSource.generator` is the identity `ui-gen-<tier>`
146
+ * (one tier token — `ui-gen-default` / `ui-gen-advanced` / an operator
147
+ * tier; `GENERATOR_ID_PATTERN`, `isGeneratorId`) and `model` is the run's route
148
+ * in the registry's spelling (`ModelRef` = `<prefix>/<model>`, composed only
149
+ * by `modelRefOfRoute`, recovered by `parseModelRef`; registry `ModelId`s
150
+ * are the subset — a self-hoster's bedrock/OpenRouter route is a ref the
151
+ * registry does not list; `MODEL_IDS`, `isModelId` narrow to the subset).
152
+ * Before: both were `string`, and the identity embedded the model
153
+ * (`ui-gen-default-haiku-4-5`) — a model retirement (Haiku 4.5,
154
+ * 2026-10-15) would rename the identity against every stored record.
155
+ * `parseBlueprintSource` and `llmBlueprintSourceSchema` refuse a modeled
156
+ * identity and a bare model name; the handshake draft's `generator` hint
157
+ * and the operator tools' `generator` inputs take the same grammar. No
158
+ * alias, no dual-read (pre-launch): a row written before the rename reads
159
+ * as no provenance; stores reseed. Not breaking under VERSION-POLICY §2
160
+ * (no kit fixture asserts a modeled id or a bare model); MINOR under §1.2
161
+ * as a schema tightening on the 0.16.0 draft wave. Post-launch this would
162
+ * be a MAJOR with a migration doc and a dual-read shim — the reason it
163
+ * ships now.
164
+ * --------------------------------------------------------------------
165
+ * Five phantom numeric codes retired-reserved + the emitter census
166
+ * (2026-09-06, wire-code, pre-launch, ggui#910 — PATCH). `CAPABILITY_DENIED`
167
+ * (-32005), `GENERATION_QUOTA_EXCEEDED` (-32010), `APP_LIMIT_EXCEEDED`
168
+ * (-32011), `CONCURRENT_SESSION_LIMIT` (-32012) and the numeric
169
+ * `CONTRACT_VIOLATION` (-32020 — the census found it once the gate
170
+ * existed; the live `CONTRACT_VIOLATION` is a string on the channel and
171
+ * the Plane-3 render error, and tools/call has Plane-2
172
+ * `contract_violation`) were declared,
173
+ * SPEC-fenced and mirrored into four tables, and emitted by nothing
174
+ * first-party — a census by constant and by number over oss/packages,
175
+ * cloud and backend. The constants leave; the numbers stay reserved
176
+ * (SPEC §7.9); an unauthorised key is a bare 403 carrying -32007; quota,
177
+ * app-limit and concurrency states are refusals or implementation-range
178
+ * codes. Cheap only before launch: after the `draft-` rule flips each
179
+ * removal would be a MAJOR with a migration doc. The mirrors gate now
180
+ * also asserts the inverse — every declared non-standard code has a
181
+ * first-party emitter (one `git grep` per code; seeded self-test) — so a
182
+ * phantom cannot be declared again silently. Pinned by
183
+ * `types/__tests__/retired-error-codes.test.ts` (eight retired numbers).
184
+ * Not breaking under VERSION-POLICY §2; PATCH under §1.3.
185
+ * --------------------------------------------------------------------
186
+ *
187
+ * --------------------------------------------------------------------
188
+ * `-32013 RATE_LIMIT_EXCEEDED` retired-reserved (2026-09-06, wire-code,
189
+ * pre-launch, ggui#890 — PATCH). After ggui#886 (the per-app cap denies as
190
+ * the registry's `app_rate_limited` refusal) and the `RateLimitedError`
191
+ * deletion, no first-party implementation emits the number: the reference
192
+ * server refuses in-band, the hosted transport's only 429 is a per-IP
193
+ * backstop with no JSON-RPC body. The constant leaves
194
+ * `PLATFORM_ERROR_CODES` and SPEC §7.9's platform fence; the number stays
195
+ * reserved (the `-32001` / `-32004` convention) so no future canonical code
196
+ * reuses it. Not breaking under VERSION-POLICY §2 — no kit fixture asserts
197
+ * it; PATCH under §1.3. Pinned by `types/__tests__/retired-error-codes.test.ts`
198
+ * (no constant declares a retired number; no tracked source emits one) and
199
+ * by the mirrors gate, which reds the docs tables' rows until they leave
200
+ * in the same publication.
201
+ *
202
+ * --------------------------------------------------------------------
203
+ * The registries export their literal-typed rows (2026-09-06, types-only,
204
+ * pre-launch, ggui#889 — PATCH). `PRE_GENERATION_REFUSAL_CODES` and
205
+ * `DOMAIN_ERROR_REGISTRY` are the normalized views (`Record<Code, Row>`),
206
+ * which erase the per-key literal the `const` definers preserve — so a
207
+ * producer that must satisfy a wire enum from a row had to parse it
208
+ * through the enum (ggui#886). `PRE_GENERATION_REFUSAL_ROWS` and
209
+ * `DOMAIN_ERROR_ROWS` are the SAME objects with the literal types kept:
210
+ * each row's `code` is typed as its own key. No wire change;
211
+ * the kit's registry-completeness catalog reads the normalized view as
212
+ * before. Not breaking under VERSION-POLICY §2; PATCH under §1.3.
213
+ *
214
+ * --------------------------------------------------------------------
215
+ * Plane-2 slugs lead the wire text (2026-09-06, wire-text, pre-launch,
216
+ * ggui#880 — MINOR). SPEC
217
+ * §7.9 promised "the `code` field on each class is the wire literal"
218
+ * while the MCP SDK ships every thrown handler error to the agent as
219
+ * `{content: [{type: 'text', text: error.message}], isError: true}` and
220
+ * nothing else — executed against the built server: `session_not_found`
221
+ * and `handshake_not_found` reached neither a field nor the text, and
222
+ * descriptions, presets and the SPEC taught agents to branch on them.
223
+ *
224
+ * de1. **`DomainError` base** (`errors/domain-error.ts`) — the ONLY
225
+ * composer of a Plane-2 error's `message`: `${code}: ${detail}`.
226
+ * Refuses an empty detail and a detail that begins with any
227
+ * registered domain OR refusal code + `': '`
228
+ * (`DomainErrorDetailCollisionError`, a `TypeError` the emitter's
229
+ * own suite sees — never the wire); a tool-name prefix is prose.
230
+ * `isDomainError` detects by `Symbol.for('ai.ggui.domainError')`
231
+ * marker + shape, never `instanceof`; `parseDomainErrorText` is
232
+ * the reader side.
233
+ * de2. **`DOMAIN_ERROR_CODES` registry** (`types/domain-error-codes.ts`)
234
+ * — the CLOSED Plane-2 set, fifteen rows from the executed census,
235
+ * each with the data-plane `tools` that emit it, a `recovery` class
236
+ * (`retry-same-id` | `re-mint` | `later`), an `emitter` and a
237
+ * self-hoster `description`. Pinned disjoint from
238
+ * `PRE_GENERATION_REFUSAL_CODES` (one code, one plane). SPEC §7.9's
239
+ * Plane-2 table is its mirror (pinned from the registry's own suite):
240
+ * the four phantom classes the table listed (`ContractRequiredError`,
241
+ * `ContractHashMismatchError`, `UnknownActionToolError`,
242
+ * `EventNotAllowedError`) are gone; `cross_reference_unresolved` /
243
+ * `contract_schema_invalid` are not wire codes (no caller throws
244
+ * them — the lint gate throws `contract_validation_failed`).
245
+ * de3. **The two protocol-owned emitters extend the base** —
246
+ * `ContractViolationError` (`contract_violation`; `toErrorData()`
247
+ * keeps its `{error, tool, violations, hint, propsSchemaHash?}`
248
+ * shape) and `ContractValidationError` (`contract_validation_failed`,
249
+ * phase + issues kept). Consumers detecting them by `instanceof`
250
+ * are unchanged; their message now leads with the slug.
251
+ * de4. **The wire plane is the MCP spec's** — a Plane-2 failure is a
252
+ * tool RESULT with `isError: true`, never a JSON-RPC error frame;
253
+ * no `structuredContent` (the SDK client validates it against the
254
+ * tool's `outputSchema` whenever present, so a typed envelope would
255
+ * demote every success field to optional — refused). SPEC §7.9.1:
256
+ * `SESSION_NOT_FOUND` (-32002) is the live-channel / runtime Plane-1
257
+ * code; on `tools/call` the same state is `session_not_found`.
258
+ * de5. **The conformance kit's first `tools/call` driver** — catalog
259
+ * `domain-error`: six no-setup scenarios (unknown `handshakeId` on
260
+ * `ggui_render`; unknown `sessionId` on `ggui_consume` /
261
+ * `ggui_get_session` / `ggui_update` / `ggui_amend` / `ggui_emit`)
262
+ * graded on the raw result via `runConformance({ toolCallDriver })`
263
+ * / `--tool-call-driver <module>`. Before this wave every first-party
264
+ * server failed all six on `slug-leads`.
265
+ *
266
+ * Conformance-kit verdict: not breaking under VERSION-POLICY §2 — no
267
+ * prior fixture asserts Plane-2 text; the leading slug is additive to
268
+ * prose and the new catalog is an addition. MINOR under §1.2 (new
269
+ * exported base, registry and kit catalog); rides the 0.16.0 wave. The
270
+ * adoption of the base by the handler / core / mcp-server classes lands
271
+ * WITH this entry (oss's half of ggui#880); until both are on a server,
272
+ * that server fails the catalog — which is the point.
273
+ *
274
+ * --------------------------------------------------------------------
275
+ * The pending-event row is a schema (2026-09-06, store-boundary, pre-launch,
276
+ * ggui#839 — the #817 C2 follower; cite `3f3d86b86`). The consume pipe's
277
+ * stored row — what `submit_action` / the WS ingress append and
278
+ * `PendingEventConsumer.consumeAndClear` drains — was a hand-written
279
+ * interface the adapters typed as `Record<string, unknown>` and the consume
280
+ * handler coerced with defaults; nothing validated it. A store-boundary
281
+ * contract (producers ↔ adapters ↔ the consume handler), never wire:
282
+ * `ggui_consume` returns the entries, never the wrapper.
283
+ *
284
+ * pe1. **`pendingEventSchema` + `PendingEvent` derived** —
285
+ * `{ id: string.min(1), envelope: consumeEventEntrySchema, createdAt:
286
+ * string }`; `createdAt` stays a string (the relay copies a client
287
+ * `firedAt` the ingress accepts as a diagnostic).
288
+ * pe2. **`sequence` deleted** — zero writers (both producers append
289
+ * `{id, envelope, createdAt}`; sqlite's `seq` never joined the row;
290
+ * the pod stores the literal), zero readers (the only read was the
291
+ * handler's own default-to-0), named in neither SPEC nor the kit.
292
+ * pe3. **`id` required and non-empty** — the drain_ack key and the
293
+ * idempotency key per `(sessionId, id)`; the id-less append branches
294
+ * (core docstring, in-memory, sqlite, the pod's `ddb.ts`) deleted in
295
+ * the same publication.
296
+ * pe4. **No string envelope arm** — every writer passes the object; a
297
+ * store that serializes the whole row. `parsePendingEnvelope`
298
+ * collapsed into the row parse (`envelope-adapters.ts` deleted).
299
+ * pe5. **`PendingEventMalformedError` + the per-adapter failure mode** —
300
+ * `consumeAndClear` MUST NOT return a row that fails the schema and
301
+ * MUST NOT drop a well-formed row because a sibling failed: a
302
+ * transactional drain (sqlite) refuses whole and rolls back; a
303
+ * destructive drain (DynamoDB) quarantines per row with a
304
+ * `pending_event_malformed` structured log; in-memory holds the typed
305
+ * struct it validated on append. `append` refuses a malformed row
306
+ * before storing it. The consume handler maps the error to a
307
+ * `HandlerFailure` carrying `{ events: [], status }`, never a JSON-RPC
308
+ * error, and the parse runs before any `drain_ack` fires.
309
+ *
310
+ * Conformance-kit verdict: not breaking under VERSION-POLICY §2 — the kit
311
+ * never names the wrapper (`git grep PendingEvent -- oss/packages/protocol-conformance`
312
+ * = 0); its only `sequence` is the `action-ack-sequence` fixture's WS ack
313
+ * `payload.sequence`, the ledger's `appendEvent` seq, never the pipe row's
314
+ * deleted field. The observable
315
+ * violation is `@ggui-ai/mcp-server-core`'s published contract-tests suite
316
+ * (a seeded malformed row is refused or quarantined per form). PATCH-class
317
+ * under §1.3 for `@ggui-ai/protocol`; rides the 0.16.0 wave.
318
+ *
319
+ * --------------------------------------------------------------------
320
+ * The endpoint-level refusal carries the app as DATA (2026-09-05, wire
321
+ * field, pre-launch, ggui#870 — the ggui#782 ↔ guuey#708 re-sitting's
322
+ * D6, guuey#836's blocker). `transportRefusalSchema` — what rides
323
+ * `error.data.refusal` on a per-app endpoint's typed 403 (ggui#825/#836)
324
+ * — was strict `{ code, message, fix, retry }` with the app named only
325
+ * in `message`; a tenant's repair loop cannot parse prose safely.
326
+ *
327
+ * ai1. **`data.refusal.appId: string` — REQUIRED** — the app id the
328
+ * refused endpoint serves, equal to the endpoint path's `{appId}`.
329
+ * The ggui id the bound caller already holds, never the tenant's
330
+ * own `ownerRef`; the tenant maps it to its own id from the
331
+ * `gguiAppId` it stored at create. Required, not optional: a field
332
+ * a repair loop cannot rely on is a hope, not a contract.
333
+ *
334
+ * ai2. **Who receives the typed face** (the fact from the pod's code,
335
+ * ggui#812 identity-first): a correctly bound federated identity
336
+ * only — an anonymous request is refused by the auth adapter as
337
+ * 401 before this arm and learns nothing about the app; a native
338
+ * key mismatch gets the bare default-deny 403. SPEC §7.1's
339
+ * endpoint paragraph says so now; the anonymous typed face is
340
+ * deliberately not a contract (it would trade disclosure).
341
+ *
342
+ * Conformance-kit verdict: BREAKING by the letter of VERSION-POLICY §2 —
343
+ * the kit's `transport-refusal` cases now carry `appId` and the strict
344
+ * schema refuses a projection without it, so an emitter built against
345
+ * 0.15.0 fails the 0.16.0 kit — and, the wire being `z.strictObject`, a
346
+ * 0.15.0 STRICT reader of the body is failed by a 0.16.0 emitter too
347
+ * (zero such readers exist today; guuey's is step 3, not started). Shipped under §1.4's `draft-` clause in
348
+ * the 0.16.0 wave; the pod's emitter (cloud, ggui#870's other half)
349
+ * lands WITH this change, after the tombstone fix for ggui#785/G26.
350
+ *
351
+ * Package version — classification MADE here: MAJOR-class change carried
352
+ * by a MINOR wave under `draft-` (§1.4) for `@ggui-ai/protocol` and
353
+ * `@ggui-ai/protocol-conformance`. PROTOCOL_VERSION unchanged — no WS
354
+ * envelope moved.
355
+ *
356
+ * --------------------------------------------------------------------
357
+ * Two refusal codes lose the word "tier" (2026-09-05, rename, pre-launch,
358
+ * ggui#802 — #786 review finding F6). A code name ships to npm and, for a
359
+ * render-gate code, reaches every self-hoster's LLM as JSON-Schema enum
360
+ * metadata on `tools/list`; "tier" names a plan ladder a self-hoster does
361
+ * not have (docs/principles/oss-purity.md, the type-literal class). Ruled
362
+ * by a three-lens judge panel under the registry's naming rules:
363
+ *
364
+ * rt1. **`model_not_in_tier` → `model_not_allowed`** (render-gate,
365
+ * after-fix, fixBy caller) — the state the row's own description,
366
+ * the kit case's `fix` and SPEC §7.9 already name ("not among those
367
+ * the app is allowed to use"); subject-first like the rest of the
368
+ * registry; true on a deployment with one allow-list per app and no
369
+ * prices. Not `model_not_available`: `*_unavailable` is this
370
+ * registry's `later` / operator class, the wrong retry class for the
371
+ * one code an agent may act on itself.
372
+ *
373
+ * rt2. **`already_on_tier` → `subscription_unchanged`** (owner-api,
374
+ * after-fix, fixBy owner) — the owner-api noun the registry already
375
+ * uses (`subscription_exists`, `no_subscription`); the state is
376
+ * "requested == held", no ladder word.
377
+ *
378
+ * rt3. `tier_unrecognized` is NOT a registry code (deleted from the
379
+ * wire at registry v9): a backend allowance state read by the
380
+ * console, whose column is literally `tier`. Unchanged.
381
+ *
382
+ * Conformance-kit verdict: BREAKING by the letter of VERSION-POLICY §2 —
383
+ * the kit's `refuse-after-fix-caller` case pinned the old name, so an
384
+ * emitter built against 0.15.0 fails the 0.16.0 kit's `renderRefusalSchema`
385
+ * enum. Shipped under §1.4's `draft-` clause (semver describes intent
386
+ * pre-v1) in the 0.16.0 wave, with the changelog's Unreleased section
387
+ * naming the move; every mirror moves in one change (the kit case, SPEC,
388
+ * the docs, the console's copy, the backend's owner-api refusals, the pod's
389
+ * emitter, cs macros). The registry's purity pin now allows NO code name to
390
+ * carry plan-tier vocabulary — the grandfather list is gone.
391
+ *
392
+ * Package version — classification MADE here: MAJOR-class change carried
393
+ * by a MINOR wave under `draft-` (§1.4) for `@ggui-ai/protocol` and
394
+ * `@ggui-ai/protocol-conformance`, pre-1.0 and pre-launch.
395
+ * PROTOCOL_VERSION unchanged — no WS envelope moved.
396
+ *
397
+ * --------------------------------------------------------------------
398
+ * `UNAUTHORIZED` moves from `-32001` to `-32007` (2026-09-05, renumber,
399
+ * pre-launch, ggui#853; found by ggui-main in the prod skew-gate log).
400
+ * `-32001` is the MCP SDK client's own `ErrorCode.RequestTimeout`
401
+ * (`@modelcontextprotocol/sdk` types.js, beside `ConnectionClosed`
402
+ * -32000) — minted LOCALLY, never sent by a server — so a client reading
403
+ * the number could not tell a server's UNAUTHORIZED from its own
404
+ * timeout: the class ggui#836 closed for -32000, on a number ggui had
405
+ * chosen long before #836 (0.14.0 and earlier).
406
+ *
407
+ * uc1. **`MCP_ERROR_CODES.UNAUTHORIZED = -32007`** — the next free
408
+ * canonical slot per this table's own note; `-32001` joins
409
+ * `-32004` as retired-reserved. Every mirror moves in this one
410
+ * change (SPEC §7.9 + its table, the gated doc mirrors, the
411
+ * endpoint routes' tests, the kit's transport-refusal wording, the
412
+ * pod's auth arm, the live journeys). HTTP status and message are
413
+ * unchanged: 401/403 + the same text.
414
+ *
415
+ * uc2. **The guard #836 lacked** — `types/error-codes-vs-sdk.test.ts`
416
+ * pins every ggui-chosen code (`MCP_ERROR_CODES` minus the five
417
+ * JSON-RPC standard codes, plus `PLATFORM_ERROR_CODES`) disjoint
418
+ * from every code the SDK's `ErrorCode` enum owns, and ggui's
419
+ * copies of the standard five equal to the SDK's. It was RED on
420
+ * -32001 before uc1 and is what reds the next collision.
421
+ *
422
+ * Conformance-kit verdict: no fixture on 0.15.0 pinned `-32001` (the
423
+ * transport-refusal catalog grades `-32003 + data.refusal` and `null`;
424
+ * its prose named -32001 and now names -32007) — a renumbered
425
+ * canonical code with no kit regression; guuey's clients branch on
426
+ * -32002/-32006 only (ggui#836 record). Bytes on the wire: one number.
427
+ *
428
+ * Package version — classification MADE here: MINOR for
429
+ * `@ggui-ai/protocol` and `@ggui-ai/mcp-server` (a canonical code
430
+ * renumbered, `draft-` intent per VERSION-POLICY §1.4), pre-1.0 and
431
+ * pre-launch. PROTOCOL_VERSION unchanged — no WS envelope moved.
432
+ *
433
+ * --------------------------------------------------------------------
9
434
  * SPEC §7.1's refused arm is ONE primitive (2026-09-05, additive,
10
435
  * pre-launch, ggui#803 leg 9). The tool result a render gate answers a
11
436
  * pre-generation refusal with was built by hand in
@@ -3145,6 +3570,19 @@
3145
3570
  * 2026-08-19 out-of-vocabulary enum incident as a permanent
3146
3571
  * sample).
3147
3572
  *
3573
+ * draft-2026-09-10 — THEMING REVISION (ggui#987 protocol half, ggui#989
3574
+ * OSS half, ggui#985 cloud half; BREAKING on the draft wave under
3575
+ * VERSION-POLICY §1.1, shipped under §1.4's `draft-` clause — the
3576
+ * substantive entry is the "Theming revision" block at the top of
3577
+ * this changelog). The wire: `appThemeSchema` v2 (`overlays` +
3578
+ * `overlayHash` required, `base` deleted), the client mode
3579
+ * projection `hostAnnounced ?? stamped ?? sessionSidecar`, `themeId`
3580
+ * without its sidecar-name leg, `AppThemeRefusalBody` at every write
3581
+ * door, `parseMcpAppAiGguiRenderMeta`'s `onInvalidTheme`, the render
3582
+ * shell on `--ggui-color-ground`. The 0.16.0 lockstep wave carries
3583
+ * it; the samples, the e2e fixtures and the docs' draft strings move
3584
+ * in this same commit.
3585
+ *
3148
3586
  * draft-2026-09-04 — PRE-GENERATION REFUSAL ENVELOPE (ggui#786;
3149
3587
  * BREAKING IN INTENT, pre-launch so no shim and no `@deprecated`
3150
3588
  * — see `docs/protocol/migrations/2026-09-04-pre-generation-refusal-envelope.md`):
@@ -3221,9 +3659,10 @@
3221
3659
  * derive (`ConsumeEventEntry`, `GguiConsumeOutput`, `GguiEmitOutput`,
3222
3660
  * `GguiListSessionsOutput`, `GguiSessionStatus`). `tools/list` now
3223
3661
  * advertises the entry vocabulary and the status enum for
3224
- * `ggui_consume`; `parsePendingEnvelope` parses a drained row instead
3225
- * of casting it, so a malformed pipe entry refuses at the seam. The
3226
- * wire bytes of a well-formed row are unchanged. Additive.
3662
+ * `ggui_consume`; `parsePendingEnvelope` parsed a drained row instead
3663
+ * of casting it, so a malformed pipe entry refused at the seam
3664
+ * (follower: collapsed into `pendingEventSchema`'s row parse, pe4
3665
+ * above). The wire bytes of a well-formed row are unchanged. Additive.
3227
3666
  * r11. **Endpoint refusal codes (ggui#836):** the per-app endpoint speaks
3228
3667
  * §7.9 Plane-1 rows — the typed deprovisioned arm is `-32003`
3229
3668
  * (`APP_NOT_FOUND`, `App not found`) with `data.refusal`; untyped
@@ -3245,7 +3684,7 @@
3245
3684
  * `CLIENT_SUPPORTED_VERSIONS`, enforced by the loader (`UPGRADE_REQUIRED`
3246
3685
  * on a non-member); the two coincide only while the set is a singleton.
3247
3686
  */
3248
- export declare const PROTOCOL_VERSION = "draft-2026-09-04";
3687
+ export declare const PROTOCOL_VERSION = "draft-2026-09-10";
3249
3688
  /**
3250
3689
  * The shipped `@ggui-ai/*` WAVE version — bare semver, identical to
3251
3690
  * `package.json#version` on every published package (the lockstep
@@ -3286,7 +3725,7 @@ export declare const PROTOCOL_VERSION = "draft-2026-09-04";
3286
3725
  * PATCH under §1.3); it cannot be cut from main, whose delta since
3287
3726
  * 0.14.0 is minor-class.
3288
3727
  */
3289
- export declare const GGUI_WAVE_VERSION = "0.15.0";
3728
+ export declare const GGUI_WAVE_VERSION = "0.17.0";
3290
3729
  /**
3291
3730
  * Schema version stamped onto wire envelopes that opt into the
3292
3731
  * `schemaVersion` forward-compat field (see {@link ActionEnvelope},
@@ -3307,7 +3746,7 @@ export declare const GGUI_WAVE_VERSION = "0.15.0";
3307
3746
  * consumers can reference schema-versioning specifically without
3308
3747
  * coupling to the broader cache-invalidation constant.
3309
3748
  */
3310
- export declare const PROTOCOL_SCHEMA_VERSION = "draft-2026-09-04";
3749
+ export declare const PROTOCOL_SCHEMA_VERSION = "draft-2026-09-10";
3311
3750
  /**
3312
3751
  * Canonical live-channel error code emitted when a peer's declared
3313
3752
  * {@link SubscribePayload.supportedVersions} /
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8qGG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uBAAuB,qBAAmB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAErD,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqmHG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,uBAAuB,qBAAmB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAErD,CAAC"}