@synapsor/runner 1.1.1 → 1.4.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 (67) hide show
  1. package/CHANGELOG.md +92 -1
  2. package/README.md +26 -7
  3. package/THREAT_MODEL.md +7 -4
  4. package/dist/cli.d.ts +5 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/local-ui.d.ts.map +1 -1
  7. package/dist/runner.mjs +8060 -2615
  8. package/docs/README.md +19 -3
  9. package/docs/capability-authoring.md +20 -8
  10. package/docs/conformance.md +12 -0
  11. package/docs/current-scope.md +12 -4
  12. package/docs/doctor.md +21 -7
  13. package/docs/dsl-reference.md +91 -5
  14. package/docs/getting-started-own-database.md +26 -3
  15. package/docs/guarded-crud-writeback.md +218 -0
  16. package/docs/limitations.md +30 -9
  17. package/docs/oss-vs-cloud.md +1 -1
  18. package/docs/production.md +52 -20
  19. package/docs/release-notes.md +82 -2
  20. package/docs/release-policy.md +1 -1
  21. package/docs/result-envelope-v2.md +20 -6
  22. package/docs/result-envelope-v4.md +47 -0
  23. package/docs/reversible-change-sets.md +151 -0
  24. package/docs/rfcs/004-guarded-crud-receipt-authority.md +165 -0
  25. package/docs/rfcs/005-bounded-set-writeback.md +164 -0
  26. package/docs/rfcs/006-reviewed-reversible-change-sets.md +152 -0
  27. package/docs/runner-config-reference.md +83 -9
  28. package/docs/running-a-runner-fleet.md +2 -1
  29. package/docs/security-boundary.md +29 -9
  30. package/docs/writeback-executors.md +12 -11
  31. package/examples/runner-fleet/seed/mysql.sql +47 -0
  32. package/examples/runner-fleet/seed/postgres.sql +48 -0
  33. package/examples/support-plan-credit/README.md +31 -0
  34. package/examples/support-plan-credit/contract.synapsor.sql +26 -0
  35. package/examples/support-plan-credit/expected-output/tools-preview.txt +1 -0
  36. package/examples/support-plan-credit/seed/001_seed.sql +14 -1
  37. package/examples/support-plan-credit/synapsor.contract.json +101 -1
  38. package/examples/support-plan-credit/synapsor.runner.json +7 -1
  39. package/fixtures/protocol/MANIFEST.json +131 -1
  40. package/fixtures/protocol/change-set.bounded-update.v3.json +57 -0
  41. package/fixtures/protocol/change-set.delete.v2.json +31 -0
  42. package/fixtures/protocol/change-set.insert.v2.json +36 -0
  43. package/fixtures/protocol/change-set.update.v2.json +32 -0
  44. package/fixtures/protocol/compensation-change-set.update.v1.json +40 -0
  45. package/fixtures/protocol/execution-receipt.bounded-update-applied.v3.json +39 -0
  46. package/fixtures/protocol/execution-receipt.compensation-update-applied.v4.json +37 -0
  47. package/fixtures/protocol/execution-receipt.delete-applied.v2.json +25 -0
  48. package/fixtures/protocol/execution-receipt.insert-applied.v2.json +24 -0
  49. package/fixtures/protocol/execution-receipt.reconciliation-required.v2.json +25 -0
  50. package/fixtures/protocol/execution-receipt.update-applied.v2.json +25 -0
  51. package/fixtures/protocol/writeback-job.bounded-update.v3.json +43 -0
  52. package/fixtures/protocol/writeback-job.compensation-update.v4.json +34 -0
  53. package/fixtures/protocol/writeback-job.delete.v2.json +22 -0
  54. package/fixtures/protocol/writeback-job.insert.v2.json +28 -0
  55. package/fixtures/protocol/writeback-job.update.v2.json +24 -0
  56. package/package.json +1 -1
  57. package/schemas/change-set.v2.schema.json +245 -0
  58. package/schemas/change-set.v3.schema.json +112 -0
  59. package/schemas/compensation-change-set.v1.schema.json +32 -0
  60. package/schemas/execution-receipt.v2.schema.json +106 -0
  61. package/schemas/execution-receipt.v3.schema.json +40 -0
  62. package/schemas/execution-receipt.v4.schema.json +22 -0
  63. package/schemas/inverse-descriptor.v1.schema.json +46 -0
  64. package/schemas/synapsor.runner.schema.json +132 -2
  65. package/schemas/writeback-job.v2.schema.json +238 -0
  66. package/schemas/writeback-job.v3.schema.json +53 -0
  67. package/schemas/writeback-job.v4.schema.json +17 -0
package/CHANGELOG.md CHANGED
@@ -1,6 +1,97 @@
1
1
  # Changelog
2
2
 
3
- ## 1.1.1 (prepared, not published)
3
+ ## 1.4.0 (prepared, not published)
4
+
5
+ ### Reviewed Reversible Change Sets
6
+
7
+ - Adds opt-in canonical `reversibility.mode = reviewed_inverse` and DSL
8
+ `REVERSIBLE` for direct SQL capabilities with human/operator approval and
9
+ operation-specific exact guards.
10
+ - Captures bounded inverse descriptors only after an unambiguous successful
11
+ source transaction. Inverses retain trusted identity, version metadata, and
12
+ reviewed writable values; kept-out data is excluded.
13
+ - Adds operator-only `revert <proposal-id>`, which creates a new proposal and
14
+ never writes or approves. Compensation inherits reviewer role/quorum and
15
+ passes normal approval, guarded apply, receipt, reconciliation, and replay.
16
+ - Supports reviewed UPDATE, INSERT, soft-delete, and exact frozen-set
17
+ compensation on PostgreSQL and MySQL. Fresh-state conflicts and one stale set
18
+ member fail closed without partial effects.
19
+ - Reports hard DELETE and app-owned/external effects as specifically
20
+ unavailable instead of claiming rollback or time travel. Successful
21
+ compensation captures its own bounded inverse with linear lineage capped at
22
+ 16.
23
+ - Adds compensation change-set and protocol-v4 job/receipt schemas,
24
+ conformance fixtures, owner-authorized resources, local UI/doctor/preview
25
+ state, bounded metrics, crash-reconciliation tests, and the disposable
26
+ `corepack pnpm test:reversible` gate.
27
+ - Stages `@synapsor/spec@1.4.0`, `@synapsor/dsl@1.4.0`, and
28
+ `@synapsor/runner@1.4.0`. No npm package is published by this change.
29
+
30
+ ## 1.3.0 (prepared, not published)
31
+
32
+ ### Bounded Set Writeback
33
+
34
+ - Adds canonical and DSL semantics for fixed-predicate set `UPDATE`/`DELETE`
35
+ and exact-review batch `INSERT`, with mandatory `MAX ROWS`, aggregate value
36
+ bounds, and a hard 100-row implementation ceiling.
37
+ - Freezes ordered primary keys, tenant scope, reviewed before/after values,
38
+ exact versions, per-member digests, and a set digest before approval. Apply
39
+ locks only that frozen set and never reruns a broad selection predicate.
40
+ - Applies every member in one source transaction. Cap overflow, aggregate
41
+ overflow, stale/missing members, anomalous affected counts, dedup conflicts,
42
+ triggers, or widening delete cascades fail closed without partial effects.
43
+ - Requires human/operator approval for all bounded sets in this release;
44
+ policy auto-approval is rejected. Hard set delete remains exceptional and
45
+ soft delete is preferred.
46
+ - Adds protocol-v3 change-set, writeback-job, result, and receipt envelopes
47
+ with exact member identities and bounded safe digests, plus reconciliation
48
+ support for Runner-ledger crash ambiguity.
49
+ - Adds executable R1-R7 conformance coverage and a disposable PostgreSQL/MySQL
50
+ live gate for cap/aggregate rejection, atomic rollback, exact receipts,
51
+ batch deduplication, delete hazards, reconciliation, and 1/10/100-row bounds.
52
+ - Stages `@synapsor/spec@1.3.0`, `@synapsor/dsl@1.3.0`, and
53
+ `@synapsor/runner@1.3.0`. No npm package is published by this change.
54
+
55
+ ## 1.2.0 (prepared, not published)
56
+
57
+ ### Guarded CRUD And Receipt Authority
58
+
59
+ - Adds canonical and DSL operation semantics for native guarded single-row
60
+ `INSERT`, `UPDATE`, and `DELETE`, while preserving operation-less contracts
61
+ and v1 writeback jobs as guarded UPDATE.
62
+ - Adds operation-aware v2 change-set, writeback-job, and execution-receipt
63
+ schemas with trusted tenant binding, source-enforced INSERT deduplication,
64
+ DELETE cascade/trigger refusal, bounded diffs, and replay-safe digests.
65
+ - Separates receipt authority (`source_db` or `runner_ledger`) from source
66
+ receipt provisioning (`precreated` or `auto_migrate`). Runner-ledger mode
67
+ records durable intents without source receipt DDL and stops ambiguous
68
+ post-commit outcomes for verified operator reconciliation.
69
+ - Extends Postgres and MySQL adapters, onboarding, doctor, tools preview, and
70
+ the support-plan-credit example with least-privilege guarded CRUD paths.
71
+ - Adds disposable-engine verification for every operation and receipt mode,
72
+ retries, crash windows, concurrent applies, stale guards, and hidden DELETE
73
+ effects. No npm package is published by this change.
74
+ - Stages `@synapsor/spec@1.2.0`, `@synapsor/dsl@1.2.0`, and
75
+ `@synapsor/runner@1.2.0`.
76
+
77
+ ## 1.1.2 (prepared, not published)
78
+
79
+ ### Fleet Error And Batch Apply Correctness
80
+
81
+ - Classifies bounded source-pool saturation and recognized transient
82
+ PostgreSQL, MySQL, and network failures as `TEMPORARILY_UNAVAILABLE` with
83
+ `retryable: true` and a bounded `retry_after_ms`, while keeping raw driver
84
+ details out of MCP results and operational logs.
85
+ - Keeps non-transient database failures fail-closed as non-retryable
86
+ `INTERNAL` errors.
87
+ - Preserves the existing shared `runtime_store` bridge while
88
+ `apply --all-approved` applies each selected proposal, preventing stale
89
+ bridge state from silently skipping policy- or human-approved proposals.
90
+ - Adds policy-approved unit coverage and a two-Runner synthetic Postgres fleet
91
+ check for durable batch results and receipts.
92
+ - Stages only `@synapsor/runner@1.1.2`; canonical Spec and DSL remain `1.1.0`.
93
+
94
+ ## 1.1.1
4
95
 
5
96
  ### Resource Read Authorization
6
97
 
package/README.md CHANGED
@@ -74,9 +74,9 @@ evidence -> proposal -> approval -> receipt -> replay
74
74
  ```
75
75
 
76
76
  The model can inspect scoped data and propose an exact change. It cannot call
77
- approval or apply tools. A human or trusted operator approves outside MCP, then
78
- Runner either performs one guarded row update or routes the approved proposal
79
- to an app-owned executor.
77
+ approval, apply, or revert tools. A human or trusted operator approves outside
78
+ MCP, then Runner performs a guarded write or routes the proposal to an
79
+ app-owned executor.
80
80
 
81
81
  The distinction is the complete boundary, not a read-only toggle or a generic
82
82
  approve/reject prompt:
@@ -148,10 +148,20 @@ synapsor-runner mcp serve --config ./synapsor.runner.json --store ./.synapsor/lo
148
148
  ```
149
149
 
150
150
  For proposal capabilities and writes, follow the
151
- [complete own-database guide](docs/getting-started-own-database.md). One-row
152
- updates can use Runner's guarded direct writeback. Inserts, multiple tables, or
153
- external effects go through an [app-owned executor](docs/writeback-executors.md)
154
- after approval.
151
+ [complete own-database guide](docs/getting-started-own-database.md). Reviewed
152
+ single-row INSERT, UPDATE, and DELETE can use Runner's guarded direct
153
+ writeback. Runner also supports tightly [bounded set
154
+ writes](docs/bounded-set-writeback.md): fixed-predicate UPDATE/DELETE and
155
+ exact-review batch INSERT, with human approval, a hard 100-row ceiling, atomic
156
+ apply, and exact receipts. Free-form predicates, unbounded or cross-table work,
157
+ and external effects go through an [app-owned
158
+ executor](docs/writeback-executors.md) after approval.
159
+
160
+ Direct writes can use [reviewed
161
+ compensation](docs/reversible-change-sets.md). Receipts capture a
162
+ bounded inverse; `synapsor-runner revert <proposal_id>` creates a separately
163
+ approved proposal. This is not rollback, time travel, or app-owned
164
+ compensation.
155
165
 
156
166
  ## Trust And Verification
157
167
 
@@ -168,6 +178,15 @@ trust boundaries, covered threats, non-goals, and required operator controls.
168
178
  It proves source rows stay unchanged before approval, guarded writeback
169
179
  applies once, idempotent retry does not duplicate the effect, and a stale row
170
180
  returns a conflict.
181
+ - `corepack pnpm test:guarded-crud` proves native single-row INSERT, UPDATE,
182
+ and DELETE across both databases and all receipt modes, including the
183
+ zero-source-schema Runner-ledger path and fail-closed reconciliation.
184
+ - `corepack pnpm test:bounded-set` proves proposal-time cap and aggregate
185
+ rejection, frozen-set drift checks, all-or-nothing set UPDATE/DELETE and
186
+ batch INSERT, delete-side-effect refusal, exact receipts, and 1/10/100-row
187
+ bounds on disposable PostgreSQL and MySQL.
188
+ - `corepack pnpm test:reversible` proves approval, conflict guards, redaction,
189
+ receipts, and replay on PostgreSQL and MySQL.
171
190
  - The C++/Cloud round-trip verifier exports normalized contracts, validates
172
191
  them with `@synapsor/spec`, and loads them in Runner. The shared contract and
173
192
  verification commands are documented in [Conformance](docs/conformance.md).
package/THREAT_MODEL.md CHANGED
@@ -53,8 +53,11 @@ idempotency boundary for effects.
53
53
  - Wrong tenant or object: reads and writes include trusted primary-key and tenant predicates.
54
54
  - Disallowed field update: patch columns must be allowlisted.
55
55
  - Stale row: conflict guard mismatch returns `conflict` instead of silently writing.
56
- - Duplicate retry: receipt/idempotency state prevents applying the same job twice.
57
- - Over-broad update: only single-row `UPDATE` is supported and success requires exactly one affected row.
56
+ - Duplicate retry: atomic source receipts or durable Runner intents plus
57
+ source-enforced version/unique guards prevent a known duplicate effect;
58
+ ambiguous ledger/source crash windows stop for reconciliation.
59
+ - Over-broad write: direct INSERT/UPDATE/DELETE is single-row, tenant-bound,
60
+ operation-guarded, and success requires exactly one affected row.
58
61
  - Cloud credential leakage: database URLs and write credentials stay local and are not sent to Cloud.
59
62
  - Model-callable approval: approval/commit tools are not exposed to MCP clients by default.
60
63
  - Claims/environment confusion: an `http_claims` server fails before serving
@@ -81,8 +84,8 @@ idempotency boundary for effects.
81
84
  - Sensitive data already returned to a model.
82
85
  - Prompt injection itself.
83
86
  - Business invariants not represented in the capability config, proposal, application handler, or database constraints.
84
- - Generic multi-row business transactions, DDL, DELETE, INSERT, UPSERT, or
85
- cross-database atomicity in the Runner direct-write path.
87
+ - Generic multi-row business transactions, DDL, UPSERT, model-generated
88
+ predicates, or cross-database atomicity in the Runner direct-write path.
86
89
  - A compromised IdP/JWKS host, ledger database, source database, TLS
87
90
  terminator, or administrator-approved contract.
88
91
  - Unbounded/high-throughput or multi-region ledger scale, compliance
package/dist/cli.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { type DbRowReader } from "@synapsor-runner/mcp-server";
3
- import { type WritebackJob } from "@synapsor-runner/protocol";
3
+ import { type StoredWritebackIntent } from "@synapsor-runner/proposal-store";
4
+ import { type ExecutionReceiptV2, type ExecutionReceiptV3, type ExecutionReceiptV4, type WritebackJob } from "@synapsor-runner/protocol";
4
5
  import { type SchemaInspection } from "@synapsor-runner/schema-inspector";
6
+ import { type ReconciliationObservation } from "@synapsor-runner/worker-core";
5
7
  export declare function main(argv: string[]): Promise<number>;
6
8
  type WizardAsk = (question: string, defaultValue?: string) => Promise<string>;
7
9
  export declare function runInitWizard(args: string[], options?: {
@@ -12,5 +14,7 @@ export declare function runInitWizard(args: string[], options?: {
12
14
  stdout?: Pick<NodeJS.WriteStream, "write">;
13
15
  }): Promise<number>;
14
16
  export declare function resolveSqlWriteDatabaseUrl(job: WritebackJob, configPath: string, env: NodeJS.ProcessEnv): Promise<string>;
17
+ export declare function reconciliationSupportedOutcome(observation: ReconciliationObservation): "applied" | "conflict" | "failed";
18
+ export declare function reconciliationReceipt(intent: StoredWritebackIntent, observation: ReconciliationObservation, outcome: "applied" | "conflict" | "failed", runnerId: string, reason: string): ExecutionReceiptV2 | ExecutionReceiptV3 | ExecutionReceiptV4;
15
19
  export {};
16
20
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAYA,OAAO,EAAoP,KAAK,WAAW,EAA0H,MAAM,6BAA6B,CAAC;AAwBza,OAAO,EAA6G,KAAK,YAAY,EAAwB,MAAM,2BAA2B,CAAC;AAE/L,OAAO,EAOL,KAAK,gBAAgB,EAEtB,MAAM,mCAAmC,CAAC;AAmV3C,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D1D;AA0FD,KAAK,SAAS,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9E,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CACvC,GACL,OAAO,CAAC,MAAM,CAAC,CA2TjB;AA+gFD,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/H"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAYA,OAAO,EAAoP,KAAK,WAAW,EAA0H,MAAM,6BAA6B,CAAC;AAIza,OAAO,EAgBL,KAAK,qBAAqB,EAK3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAgI,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAuD,KAAK,YAAY,EAAwB,MAAM,2BAA2B,CAAC;AAElV,OAAO,EAQL,KAAK,gBAAgB,EAEtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAUL,KAAK,yBAAyB,EAE/B,MAAM,8BAA8B,CAAC;AAyUtC,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6D1D;AA0FD,KAAK,SAAS,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE9E,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;CACvC,GACL,OAAO,CAAC,MAAM,CAAC,CA0YjB;AAgmGD,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/H;AAs4CD,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,yBAAyB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAKxH;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,WAAW,EAAE,yBAAyB,EACtC,OAAO,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,EAC1C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,CAgH9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-ui.d.ts","sourceRoot":"","sources":["../src/local-ui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAIjG,OAAO,EAAE,aAAa,EAAgD,MAAM,iCAAiC,CAAC;AAI9G,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,CAAC,KAClC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CA+C7F"}
1
+ {"version":3,"file":"local-ui.d.ts","sourceRoot":"","sources":["../src/local-ui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAIjG,OAAO,EAAE,aAAa,EAA6E,MAAM,iCAAiC,CAAC;AAK3I,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,CAAC,KAClC,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CA+C7F"}