@synapsor/runner 1.1.0 → 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 +105 -1
  2. package/README.md +29 -7
  3. package/THREAT_MODEL.md +13 -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 +10406 -4932
  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 +36 -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,110 @@
1
1
  # Changelog
2
2
 
3
- ## 1.1.0 (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
95
+
96
+ ### Resource Read Authorization
97
+
98
+ - Reauthorizes local MCP proposal, evidence, and replay reads against the
99
+ owning capability's trusted tenant and principal before returning content.
100
+ - Returns the same generic `RESOURCE_NOT_FOUND` result for missing resources,
101
+ cross-tenant access, cross-principal access, and incomplete legacy ownership
102
+ metadata so a leaked handle does not become bearer authority.
103
+ - Adds shared-store and Streamable HTTP regressions proving owner access still
104
+ works while cross-session resource reads fail closed.
105
+ - Stages only `@synapsor/runner@1.1.1`; canonical Spec and DSL remain `1.1.0`.
106
+
107
+ ## 1.1.0
4
108
 
5
109
  ### Fleet Safety And Operations
6
110
 
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
 
@@ -161,10 +171,22 @@ trust boundaries, covered threats, non-goals, and required operator controls.
161
171
  - [Conformance fixtures](docs/conformance.md) prove trusted context, scoped
162
172
  reads, kept-out fields, proposal boundaries, approval, receipts, and replay
163
173
  behavior rather than only validating JSON shape.
174
+ - MCP proposal, evidence, and replay handles are references rather than bearer
175
+ authority: resource reads re-check the owning tenant and principal against
176
+ the current trusted session.
164
177
  - `corepack pnpm test:live-apply` runs disposable Postgres and MySQL scenarios.
165
178
  It proves source rows stay unchanged before approval, guarded writeback
166
179
  applies once, idempotent retry does not duplicate the effect, and a stale row
167
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.
168
190
  - The C++/Cloud round-trip verifier exports normalized contracts, validates
169
191
  them with `@synapsor/spec`, and loads them in Runner. The shared contract and
170
192
  verification commands are documented in [Conformance](docs/conformance.md).
package/THREAT_MODEL.md CHANGED
@@ -53,12 +53,19 @@ 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
61
64
  if a capability resolves an environment/static contract context.
65
+ - Leaked local resource handle: proposal, evidence, and replay reads resolve
66
+ the owning capability context again and require the same trusted tenant and
67
+ principal; missing or mismatched ownership returns the same generic
68
+ `RESOURCE_NOT_FOUND` response.
62
69
  - JWT algorithm/key confusion: networked sessions use an explicit RS256/ES256
63
70
  allowlist, issuer/audience/time checks, `kid`, and bounded public-key/JWKS
64
71
  loading.
@@ -77,8 +84,8 @@ idempotency boundary for effects.
77
84
  - Sensitive data already returned to a model.
78
85
  - Prompt injection itself.
79
86
  - Business invariants not represented in the capability config, proposal, application handler, or database constraints.
80
- - Generic multi-row business transactions, DDL, DELETE, INSERT, UPSERT, or
81
- 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.
82
89
  - A compromised IdP/JWKS host, ledger database, source database, TLS
83
90
  terminator, or administrator-approved contract.
84
91
  - Unbounded/high-throughput or multi-region ledger scale, compliance
@@ -98,6 +105,8 @@ idempotency boundary for effects.
98
105
  configured `max_entries` safety bound.
99
106
  - Use verified `signed_key` or `jwt_oidc` reviewers for production-like shared
100
107
  queues; `dev_env` is unverified.
108
+ - Treat proposal/evidence/replay handles as identifiers, not authorization;
109
+ preserve verified per-session context on every networked resource read.
101
110
 
102
111
  ## Release Blockers
103
112
 
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"}