@sunaiva/gate 1.1.0 → 1.1.4

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 (104) hide show
  1. package/BUSINESS_LICENSE.md +70 -70
  2. package/CHANGELOG.md +254 -148
  3. package/LICENSE +0 -0
  4. package/README.DRAFT.md +418 -0
  5. package/README.md +46 -26
  6. package/README.md.bak-v1.0.0-stale-MIT +59 -0
  7. package/SUPPORT.md +75 -0
  8. package/TIER_DEFINITIONS.md +161 -0
  9. package/dist/config/defaults.d.ts +30 -10
  10. package/dist/config/defaults.d.ts.map +1 -1
  11. package/dist/config/defaults.js +49 -26
  12. package/dist/config/defaults.js.map +1 -1
  13. package/dist/config/loader.d.ts +0 -0
  14. package/dist/config/loader.d.ts.map +1 -1
  15. package/dist/config/loader.js +1 -1
  16. package/dist/config/loader.js.map +1 -1
  17. package/dist/engine/backend-client.d.ts +0 -0
  18. package/dist/engine/backend-client.d.ts.map +1 -1
  19. package/dist/engine/backend-client.js +2 -2
  20. package/dist/engine/backend-client.js.map +1 -1
  21. package/dist/engine/hmac-verifier.d.ts +19 -0
  22. package/dist/engine/hmac-verifier.d.ts.map +1 -1
  23. package/dist/engine/hmac-verifier.js +1 -3
  24. package/dist/engine/hmac-verifier.js.map +1 -1
  25. package/dist/engine/immutability.d.ts +0 -0
  26. package/dist/engine/immutability.d.ts.map +1 -1
  27. package/dist/engine/immutability.js +0 -0
  28. package/dist/engine/immutability.js.map +1 -1
  29. package/dist/engine/pattern-matcher.d.ts +0 -0
  30. package/dist/engine/pattern-matcher.d.ts.map +1 -1
  31. package/dist/engine/pattern-matcher.js +0 -0
  32. package/dist/engine/pattern-matcher.js.map +1 -1
  33. package/dist/engine/rule-engine.d.ts +8 -1
  34. package/dist/engine/rule-engine.d.ts.map +1 -1
  35. package/dist/engine/rule-engine.js +21 -4
  36. package/dist/engine/rule-engine.js.map +1 -1
  37. package/dist/engine/session-state.d.ts +0 -0
  38. package/dist/engine/session-state.d.ts.map +1 -1
  39. package/dist/engine/session-state.js +0 -0
  40. package/dist/engine/session-state.js.map +1 -1
  41. package/dist/engine/ship-confidence-gate.d.ts +48 -0
  42. package/dist/engine/ship-confidence-gate.d.ts.map +1 -1
  43. package/dist/engine/ship-confidence-gate.js +2 -2
  44. package/dist/engine/ship-confidence-gate.js.map +1 -1
  45. package/dist/identity/first-run.d.ts +24 -0
  46. package/dist/identity/first-run.d.ts.map +1 -0
  47. package/dist/identity/first-run.js +88 -0
  48. package/dist/identity/first-run.js.map +1 -0
  49. package/dist/identity/nudge.d.ts +29 -0
  50. package/dist/identity/nudge.d.ts.map +1 -0
  51. package/dist/identity/nudge.js +74 -0
  52. package/dist/identity/nudge.js.map +1 -0
  53. package/dist/identity/premium-unlock.d.ts +30 -0
  54. package/dist/identity/premium-unlock.d.ts.map +1 -0
  55. package/dist/identity/premium-unlock.js +65 -0
  56. package/dist/identity/premium-unlock.js.map +1 -0
  57. package/dist/identity/register-client.d.ts +25 -0
  58. package/dist/identity/register-client.d.ts.map +1 -0
  59. package/dist/identity/register-client.js +48 -0
  60. package/dist/identity/register-client.js.map +1 -0
  61. package/dist/identity/telemetry.d.ts +64 -0
  62. package/dist/identity/telemetry.d.ts.map +1 -0
  63. package/dist/identity/telemetry.js +173 -0
  64. package/dist/identity/telemetry.js.map +1 -0
  65. package/dist/index.d.ts +0 -0
  66. package/dist/index.js +101 -23
  67. package/dist/rules/categories.json +0 -0
  68. package/dist/rules/presets.json +0 -0
  69. package/dist/rules/rules.json +257 -178
  70. package/dist/tools/audit.d.ts +0 -0
  71. package/dist/tools/audit.d.ts.map +1 -1
  72. package/dist/tools/audit.js +0 -0
  73. package/dist/tools/audit.js.map +1 -1
  74. package/dist/tools/bypass.d.ts +0 -0
  75. package/dist/tools/bypass.d.ts.map +1 -1
  76. package/dist/tools/bypass.js +1 -1
  77. package/dist/tools/bypass.js.map +1 -1
  78. package/dist/tools/export-attestation.d.ts +45 -0
  79. package/dist/tools/export-attestation.d.ts.map +1 -0
  80. package/dist/tools/export-attestation.js +152 -0
  81. package/dist/tools/export-attestation.js.map +1 -0
  82. package/dist/tools/rules.d.ts +0 -0
  83. package/dist/tools/rules.d.ts.map +0 -0
  84. package/dist/tools/rules.js +0 -0
  85. package/dist/tools/rules.js.map +0 -0
  86. package/dist/tools/ship-confidence.d.ts +6 -0
  87. package/dist/tools/ship-confidence.d.ts.map +1 -1
  88. package/dist/tools/ship-confidence.js +0 -0
  89. package/dist/tools/ship-confidence.js.map +1 -1
  90. package/dist/tools/update.d.ts +0 -0
  91. package/dist/tools/update.d.ts.map +1 -1
  92. package/dist/tools/update.js +1 -1
  93. package/dist/tools/update.js.map +1 -1
  94. package/dist/tools/validate.d.ts +0 -0
  95. package/dist/tools/validate.d.ts.map +1 -1
  96. package/dist/tools/validate.js +1 -1
  97. package/dist/tools/validate.js.map +1 -1
  98. package/dist/types/backend.d.ts +1 -1
  99. package/dist/types/backend.d.ts.map +1 -1
  100. package/dist/types/backend.js +1 -1
  101. package/dist/types/backend.js.map +1 -1
  102. package/package.json +84 -73
  103. package/dist/index.d.ts.map +0 -1
  104. package/dist/index.js.map +0 -1
package/SUPPORT.md ADDED
@@ -0,0 +1,75 @@
1
+ # Support — `@sunaiva/gate`
2
+
3
+ Email-based support model. No public issue tracker. (See "Why no GitHub issues?" below.)
4
+
5
+ ## Who to email
6
+
7
+ | Need | Email | Subject prefix | Target response |
8
+ |---|---|---|---|
9
+ | Bug or crash | `support@sunaiva.ai` | `[bug]` | 2 business days (Sydney AEST) |
10
+ | Feature request | `support@sunaiva.ai` | `[feature-request]` | Reviewed within 7 days; routed to roadmap |
11
+ | Security vulnerability | `support@sunaiva.ai` | (no prefix) | Same day acknowledgement |
12
+ | Licensing question (BUSL-1.1, commercial use, etc.) | `support@sunaiva.ai` | `[licensing]` | 2 business days |
13
+ | Commercial / paid-tier inquiry (Starter / Pro / Power) | `support@sunaiva.ai` | `[sales]` | 1 business day |
14
+ | Account / billing | `support@sunaiva.ai` | `[billing]` | 1 business day |
15
+ | General feedback | `support@sunaiva.ai` | `[feedback]` | Reviewed weekly |
16
+
17
+ Times are best-effort, not SLAs. Paid tiers (per `TIER_DEFINITIONS.md`) include explicit SLAs.
18
+
19
+ ## What to include in a bug report
20
+
21
+ A bug report without these will usually round-trip once for clarification:
22
+
23
+ 1. **Version**: output of `npx @sunaiva/gate --version`
24
+ 2. **Smoke-test result**: full output of `npx @sunaiva/gate --smoke-test`
25
+ 3. **Node version**: `node --version`
26
+ 4. **OS / shell**: e.g., `Windows 11 / PowerShell 7.4` or `macOS 14.5 / zsh 5.9` or `Ubuntu 22.04 / bash 5.1`
27
+ 5. **What you expected**
28
+ 6. **What happened instead**
29
+ 7. **Minimal reproduction**: the smallest sequence of actions that reproduces the bug
30
+ 8. **Audit log snippet** (optional): redacted excerpt of `~/.sunaiva/audit/audit.jsonl` around the problem time — please scrub any payload data you don't want to share
31
+
32
+ ## What to include in a security report
33
+
34
+ Email `support@sunaiva.ai` with subject describing the issue at a high level (avoid putting the exploit details in the subject — these emails can sit in inboxes briefly).
35
+
36
+ In the body include:
37
+
38
+ 1. **Severity estimate** (informational / low / medium / high / critical)
39
+ 2. **Affected version(s)**
40
+ 3. **Reproduction**: exact steps + payload (if applicable)
41
+ 4. **Impact**: what the vulnerability enables (e.g., bypass of constitutional rule, audit-log tampering, denial-of-service)
42
+ 5. **Suggested fix** (optional, very welcome)
43
+
44
+ We will acknowledge within one business day, share a disclosure timeline within five, and credit the reporter in the changelog of the fix release unless they request anonymity.
45
+
46
+ We do not currently run a paid bug bounty programme. We will publicly credit good-faith reporters in the changelog.
47
+
48
+ ## Why no GitHub issues?
49
+
50
+ `@sunaiva/gate` is the public BUSL-1.1 wrapper of a proprietary backend (Sunaiva Gate's premium rule evaluation + ship-confidence verdict service + dashboard, all under `gate.sunaiva.dev` / `dashboard.sunaiva.dev`). The wrapper's source for v1.0.x is open per BUSL-1.1 (with the Change Date `2030-05-10` → Apache-2.0 sunset), but the canonical Sunaiva ship pathway (per the internal Rule 43.1 doctrine) does NOT use a public GitHub source repo. The backend stays private — there is no public source repo to file issues against. Email gives us the same triage path without that drift risk.
51
+
52
+ ## What happens to your email
53
+
54
+ Inbound `support@sunaiva.ai` is monitored by the Sunaiva Gate operations team (currently AU-hours coverage; expanding as the user base grows). Routine bugs go into the internal tracker; security reports route to a separate triage queue. We will follow up by email — we don't auto-respond unless explicitly asked.
55
+
56
+ ## Self-service before you email
57
+
58
+ Before opening a bug report, try these:
59
+
60
+ 1. **Update** to the latest version: `npx clear-npx-cache && npx @sunaiva/gate@latest --version`
61
+ 2. **Smoke-test**: `npx @sunaiva/gate --smoke-test` — should return `Status: HEALTHY`
62
+ 3. **Kill-switch** (if the gate is interfering with your IDE): set `DISABLE_SUNAIVA_GATE=1` in your environment to short-circuit every validation to allow-all + log it.
63
+ 4. **Dry-run** (if you suspect a rule false-positive): set `SUNAIVA_GATE_DRY_RUN=1` in your environment — the gate evaluates but never blocks, surfacing `would_have_blocked` notices instead.
64
+ 5. **Read the audit log**: `~/.sunaiva/audit/audit.jsonl` contains every gate decision. Each entry has `event_type`, `rule_id`, `reason`, `tier`, `audit_status` — usually enough to diagnose without a back-and-forth.
65
+
66
+ If those don't resolve the issue, email us.
67
+
68
+ ## Roadmap visibility
69
+
70
+ We don't publish a public roadmap. The CHANGELOG documents what shipped; future direction is shared with paid-tier customers via the dashboard's announcements panel and via direct email to the support address you have on file.
71
+
72
+ ---
73
+
74
+ *Support for `@sunaiva/gate` — Sunaiva Digital.*
75
+ *Last updated: 2026-05-25 (v1.1.1).*
@@ -0,0 +1,161 @@
1
+ # Tier Definitions — `@sunaiva/gate`
2
+
3
+ Feature scope of each tier for the Sunaiva Gate product line. The MCP server
4
+ itself (`@sunaiva/gate` on npm) is free forever and is the top-of-funnel into
5
+ the paid tiers. Paid tiers are tied to the **dashboard subscription** + the
6
+ premium rule backend.
7
+
8
+ > **Pricing**: current pricing is the single source of truth at
9
+ > **https://sunaivacore.io/pricing** — owned by the Sunaiva MCP Command lane,
10
+ > aligned to the Sunaiva Core marketplace pricing model (MCP subscription
11
+ > floor + per-call x402 + skill bundle). This file documents **feature scope
12
+ > per tier** only. Dollar figures intentionally NOT embedded here so the npm
13
+ > package never ships stale pricing.
14
+
15
+ > **Free tier** (no signup) runs the full constitutional rule set locally on
16
+ > your machine. Paid tiers add the hosted dashboard, premium rule evaluation,
17
+ > audit aggregation, and team features. Without a paid tier the gate still
18
+ > enforces every constitutional rule deterministically — you just don't get
19
+ > the dashboard, premium rules, or team views.
20
+
21
+ ---
22
+
23
+ ## Free — `@sunaiva/gate` (npm package, no signup)
24
+
25
+ - **Price**: free forever
26
+ - **License**: BUSL-1.1 wrapper (Change Date `2030-05-10` → Apache-2.0)
27
+ - **Scope**:
28
+ - All 32 constitutional rules evaluated locally (cannot be disabled per the immutability guard)
29
+ - All 68 premium rule slots present but marked `[server-side]` placeholders (no evaluation — requires Pro+)
30
+ - Local audit log at `~/.sunaiva/audit/audit.jsonl`
31
+ - 5 presets (Minimal / Essential / Developer-Safety / Financial-Protection / Full-Suite)
32
+ - Kill-switch (`DISABLE_SUNAIVA_GATE=1`) and dry-run (`SUNAIVA_GATE_DRY_RUN=1`)
33
+ - All 6 MCP tools (`validate_action`, `log_bypass`, `get_rules`, `update_rules`, `get_audit_log`, `ship_confidence_check`)
34
+ - **Support**: best-effort email per `SUPPORT.md`
35
+ - **SLA**: none
36
+ - **Use case**: solo developer running Claude Code / Cursor / Windsurf / Copilot locally and wanting a deterministic safety layer
37
+
38
+ ---
39
+
40
+ ## Starter
41
+
42
+ Everything in Free, plus:
43
+
44
+ - **Hosted dashboard** — real-time validation activity, audit log search/filter/export, rules manager UI, per-agent integration cards (see `LOVABLE_DASHBOARD_PROMPT.md` in this directory for the spec)
45
+ - **Metered validations per month** (Free tier is locally unmetered; Starter introduces backend-evaluated premium rules with a budget)
46
+ - **Curated subset of premium rules** active — server-side evaluation via `https://mcp.sunaivacore.io/v1/gatehooks` (token-authenticated)
47
+ - **1 connected agent** (Claude Code OR Cursor OR Windsurf OR Copilot — one at a time)
48
+ - **Short-window audit log retention** (see pricing page for current tier limits)
49
+ - **Single user seat**
50
+ - **Email support** with 2 business-day target response
51
+
52
+ **Best for**: solo developers who want the dashboard view + a curated subset of premium rules
53
+
54
+ ---
55
+
56
+ ## Pro (recommended default)
57
+
58
+ Everything in Starter, plus:
59
+
60
+ - **Higher metered validation budget**
61
+ - **All 68 premium rules** active
62
+ - **5 connected agents** (any mix of Claude Code, Cursor, Windsurf, Copilot, Aider, Codex, Zed)
63
+ - **BYOK support** — bring your own Gemini / Anthropic / OpenRouter API key for the LLM portion of Gate 2 (semantic analysis); or stay on the included Managed Gemini Flash
64
+ - **Mid-window audit log retention**
65
+ - **CSV export** of audit log with all metadata
66
+ - **Webhook support** — POST validation events to your own endpoint
67
+ - **Multiple user seats** (shared dashboard, individual API keys)
68
+ - **Email support** with 1 business-day target response
69
+
70
+ **Best for**: small teams (1-3 developers) with a shared rule set + audit trail need
71
+
72
+ ---
73
+
74
+ ## Power
75
+
76
+ Everything in Pro, plus:
77
+
78
+ - **Even higher validation budget**
79
+ - **Custom rules** — author your own detection patterns with severity, category, enforcement type; replicated to all team members
80
+ - **Cross-session severity escalation** — warn-first-block-on-repeat state machine persists across sessions, not just per-session
81
+ - **Long-window audit log retention**
82
+ - **Audit log export to S3 / GCS / Azure Blob** on schedule
83
+ - **Larger team seat allocation**
84
+ - **Priority email support** with same-business-day acknowledgement
85
+ - **Sandbox endpoint** for testing rule changes before pushing to production
86
+
87
+ **Best for**: small-to-mid engineering teams (4-10 developers) with custom rule requirements
88
+
89
+ ---
90
+
91
+ ## Enterprise — contact sales
92
+
93
+ Everything in Power, plus:
94
+
95
+ - **Unlimited validations**
96
+ - **Self-hosted deployment option** (private dashboard + private rule backend; air-gapped if required)
97
+ - **SSO / SAML** via Okta, Azure AD, Google Workspace
98
+ - **Audit log retention**: indefinite, with archive-to-cold-storage policy options
99
+ - **Cryptographic audit export** with HMAC-signed verdicts, byte-compatible with the [`sunaiva-ship-confidence`](https://sunaivacore.io/products/ship-confidence) skill — feeds straight into Ship-Confidence GREEN/RED gates
100
+ - **Large team seat allocation** in the base tier; larger volumes priced per-seat
101
+ - **Custom integration support** — IDE plugins, CI/CD hooks, custom MCP host integration
102
+ - **Dedicated Slack / Teams channel** for support; SLA per the master services agreement
103
+ - **EU AI Act compliance dossier** as an add-on (see [`sunaiva-validation`](https://sunaivacore.io/products/validation) for the Article 9 / 12 / 14 / 15 mapping)
104
+ - **Contractual data-handling commitments** (GDPR DPA, regional data residency)
105
+
106
+ **Engagement**: email `support@sunaiva.ai` with subject `[sales] Enterprise inquiry` to start the conversation. Pricing is quoted per-engagement on the call.
107
+
108
+ ---
109
+
110
+ ## Tier comparison at a glance
111
+
112
+ | Feature | Free | Starter | Pro | Power | Enterprise |
113
+ |---|---|---|---|---|---|
114
+ | 32 constitutional rules (local) | ✓ | ✓ | ✓ | ✓ | ✓ |
115
+ | 68 premium rules (server-eval) | — | curated subset | All 68 | All 68 + custom | All 68 + custom |
116
+ | Hosted dashboard | — | ✓ | ✓ | ✓ | ✓ (self-host option) |
117
+ | Validations / month | unmetered (local only) | metered | metered (higher) | metered (highest) | unlimited |
118
+ | Connected agents | unmetered | 1 | 5 | larger team | unlimited |
119
+ | Audit log retention | local only (your disk) | short | mid | long | indefinite |
120
+ | Custom rules | — | — | — | ✓ | ✓ |
121
+ | BYOK (Gemini/Anthropic/OpenRouter) | N/A (no LLM call from free) | — | ✓ | ✓ | ✓ |
122
+ | User seats | 1 (local) | 1 | multiple | larger team | up to enterprise tier |
123
+ | Webhook | — | — | ✓ | ✓ | ✓ |
124
+ | CSV export | — | — | ✓ | ✓ | ✓ |
125
+ | Custom rule packs | — | — | — | ✓ | ✓ |
126
+ | Cross-session severity escalation | per-session | per-session | per-session | ✓ | ✓ |
127
+ | Audit log cloud export | — | — | — | ✓ | ✓ |
128
+ | Sandbox endpoint | — | — | — | ✓ | ✓ |
129
+ | Cryptographic audit export | — | — | — | — | ✓ |
130
+ | SSO / SAML | — | — | — | — | ✓ |
131
+ | Self-hosted option | — | — | — | — | ✓ |
132
+ | EU AI Act compliance dossier | — | — | — | add-on | included |
133
+ | Support response time | best-effort | 2 business days | 1 business day | same business day | dedicated channel + MSA SLA |
134
+
135
+ ---
136
+
137
+ ## What is NOT in any tier
138
+
139
+ To set buyer expectations clearly:
140
+
141
+ - **Code review / static analysis** — the gate enforces ACTION-level rules at runtime. It is not a code reviewer. Pair with `sunaiva-ship-confidence` for shipped-artifact verification.
142
+ - **AI model training / fine-tuning** — out of scope. The gate is an enforcement layer, not a model provider.
143
+ - **Network firewall / WAF** — out of scope. The gate operates at the MCP tool-call layer (PreToolUse / PostToolUse / SessionStart events), not the HTTP layer.
144
+ - **Endpoint detection & response (EDR)** — out of scope. Not a host-based security agent.
145
+ - **Production incident response** — out of scope. The gate prevents incidents; it does not respond to them.
146
+
147
+ ---
148
+
149
+ ## Upgrade / downgrade
150
+
151
+ - Self-service: upgrade Starter → Pro → Power via dashboard billing settings (Stripe-managed)
152
+ - Self-service: downgrade with proration via the same flow
153
+ - Enterprise: contractual; transitions handled per the master services agreement
154
+ - **Cancellations**: refund per Stripe's standard policy. Audit logs export to local disk on cancellation (no data lock-in)
155
+
156
+ ---
157
+
158
+ *Source of truth for pricing: https://sunaivacore.io/pricing — owned by the
159
+ Sunaiva MCP Command lane, aligned to the canonical Sunaiva Core marketplace
160
+ pricing model (MCP subscription floor + per-call x402 + skill bundle).
161
+ This file is feature-scope only.*
@@ -1,13 +1,16 @@
1
1
  /**
2
2
  * Default configuration values for @sunaiva/gate.
3
3
  *
4
- * The active_rules list defaults to the full constitutional set
5
- * (every rule with `enforcement: "constitutional"` in rules.json).
6
- * This guarantees that even a user with no on-disk config gets the
7
- * full local enforcement layer out of the box. Constitutional rules
8
- * cannot be disabled via `update_rules` (enforced by B4's immutability
9
- * guard) — they are listed here for explicitness and so that the in-
10
- * memory config matches the on-disk default that getConfig() writes.
4
+ * v1.1.4 introduces 4-tier rule classification:
5
+ * - constitutional : ~23 immutable catastrophe-preventers, always active, cannot be disabled
6
+ * - recommended_default: ~8 rules on by default, disableable via config
7
+ * - premium : ~69 opt-in paid rules, fetched from backend when API key present
8
+ * - genesis_private : internal-only, never shipped to customers
9
+ *
10
+ * The active_rules list defaults to constitutional + recommended_default,
11
+ * guaranteeing strong protection out of the box without requiring any config.
12
+ * Constitutional rules cannot be disabled via `update_rules` (enforced by B4's
13
+ * immutability guard). Recommended defaults can be disabled by the user.
11
14
  *
12
15
  * To keep this list in sync with rules/rules.json, see
13
16
  * `scripts/verify-bundle.js` which asserts that every constitutional
@@ -17,14 +20,29 @@ export declare const CONFIG_DIR: string;
17
20
  export declare const CONFIG_PATH: string;
18
21
  export declare const AUDIT_LOG_PATH: string;
19
22
  /**
20
- * Every constitutional rule ID (enforcement === "constitutional") shipped
21
- * in rules/rules.json. Kept as a frozen array so it can be referenced
22
- * by B4's immutability guard and by the bundle-verify script.
23
+ * Every constitutional rule ID (tier === "constitutional") shipped in rules/rules.json.
24
+ * Kept as a frozen array so it can be referenced by B4's immutability guard
25
+ * and by the bundle-verify script.
26
+ *
27
+ * v1.1.4 constitutional set: 23 rules (8 demoted from v1.1.3 to recommended_default
28
+ * or premium — com-001/002/005/006/009, know-009, fin-004, cmp-002, sec-010).
23
29
  *
24
30
  * UPDATE PROCEDURE: when rules.json gains a new constitutional rule,
25
31
  * add its ID here. The verify-bundle script will flag a mismatch.
26
32
  */
27
33
  export declare const CONSTITUTIONAL_RULE_IDS: readonly string[];
34
+ /**
35
+ * Recommended-default rule IDs (tier === "recommended_default").
36
+ * These are enabled by default but can be disabled by the user via update_rules.
37
+ * They are NOT immutable — they sit one tier below constitutional.
38
+ *
39
+ * Includes the 8 rules moved down from constitutional in v1.1.4:
40
+ * com-001/002/005/006/009 (email / social / outreach gates — legitimate in some automation contexts)
41
+ * know-009 (no fabricated stats — not reliably detectable by regex)
42
+ * fin-004 (crypto block — relevant for crypto-native setups)
43
+ * cmp-002 (GDPR data handling — varies by jurisdiction)
44
+ */
45
+ export declare const RECOMMENDED_DEFAULT_RULE_IDS: readonly string[];
28
46
  export declare const DEFAULT_CONFIG: GateConfig;
29
47
  export declare const MANAGED_API_BASE = "https://api.sunaiva.ai/v1/gate";
30
48
  export interface ModelConfig {
@@ -40,5 +58,7 @@ export interface GateConfig {
40
58
  enforcement_mode: "enforce" | "warn-only" | "audit";
41
59
  model: ModelConfig;
42
60
  audit_log_path: string;
61
+ /** v1.1.4: IDs of recommended_default rules the user has explicitly disabled. */
62
+ disabled_recommended?: string[];
43
63
  }
44
64
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,eAAO,MAAM,UAAU,QAA8B,CAAC;AACtD,eAAO,MAAM,WAAW,QAAuC,CAAC;AAChE,eAAO,MAAM,cAAc,QAAkC,CAAC;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAiCnD,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,UAS5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACpD,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,eAAO,MAAM,UAAU,QAA8B,CAAC;AACtD,eAAO,MAAM,WAAW,QAAuC,CAAC;AAChE,eAAO,MAAM,cAAc,QAAkC,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EA6BnD,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EASxD,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,UAS5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,mCAAmC,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACpD,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC"}
@@ -1,13 +1,16 @@
1
1
  /**
2
2
  * Default configuration values for @sunaiva/gate.
3
3
  *
4
- * The active_rules list defaults to the full constitutional set
5
- * (every rule with `enforcement: "constitutional"` in rules.json).
6
- * This guarantees that even a user with no on-disk config gets the
7
- * full local enforcement layer out of the box. Constitutional rules
8
- * cannot be disabled via `update_rules` (enforced by B4's immutability
9
- * guard) — they are listed here for explicitness and so that the in-
10
- * memory config matches the on-disk default that getConfig() writes.
4
+ * v1.1.4 introduces 4-tier rule classification:
5
+ * - constitutional : ~23 immutable catastrophe-preventers, always active, cannot be disabled
6
+ * - recommended_default: ~8 rules on by default, disableable via config
7
+ * - premium : ~69 opt-in paid rules, fetched from backend when API key present
8
+ * - genesis_private : internal-only, never shipped to customers
9
+ *
10
+ * The active_rules list defaults to constitutional + recommended_default,
11
+ * guaranteeing strong protection out of the box without requiring any config.
12
+ * Constitutional rules cannot be disabled via `update_rules` (enforced by B4's
13
+ * immutability guard). Recommended defaults can be disabled by the user.
11
14
  *
12
15
  * To keep this list in sync with rules/rules.json, see
13
16
  * `scripts/verify-bundle.js` which asserts that every constitutional
@@ -19,32 +22,29 @@ export const CONFIG_DIR = join(homedir(), ".sunaiva");
19
22
  export const CONFIG_PATH = join(CONFIG_DIR, "gate-config.json");
20
23
  export const AUDIT_LOG_PATH = join(CONFIG_DIR, "audit.jsonl");
21
24
  /**
22
- * Every constitutional rule ID (enforcement === "constitutional") shipped
23
- * in rules/rules.json. Kept as a frozen array so it can be referenced
24
- * by B4's immutability guard and by the bundle-verify script.
25
+ * Every constitutional rule ID (tier === "constitutional") shipped in rules/rules.json.
26
+ * Kept as a frozen array so it can be referenced by B4's immutability guard
27
+ * and by the bundle-verify script.
28
+ *
29
+ * v1.1.4 constitutional set: 23 rules (8 demoted from v1.1.3 to recommended_default
30
+ * or premium — com-001/002/005/006/009, know-009, fin-004, cmp-002, sec-010).
25
31
  *
26
32
  * UPDATE PROCEDURE: when rules.json gains a new constitutional rule,
27
33
  * add its ID here. The verify-bundle script will flag a mismatch.
28
34
  */
29
35
  export const CONSTITUTIONAL_RULE_IDS = Object.freeze([
30
- "cmp-002",
31
- "com-001",
32
- "com-002",
33
- "com-005",
34
- "com-006",
35
- "com-007",
36
- "com-009",
37
- "com-011",
38
- "dat-001",
39
- "dat-002",
40
- "dat-004",
41
- "dat-010",
36
+ // financial-safety (immutable — real money at stake)
42
37
  "fin-001",
43
38
  "fin-002",
44
39
  "fin-003",
45
- "fin-004",
46
40
  "fin-008",
47
41
  "fin-009",
42
+ // data-protection (immutable — credential / PII catastrophe class)
43
+ "dat-001",
44
+ "dat-002",
45
+ "dat-004",
46
+ "dat-010",
47
+ // action-governance (immutable — production, DNS, destructive ops)
48
48
  "gov-001",
49
49
  "gov-002",
50
50
  "gov-004",
@@ -52,17 +52,40 @@ export const CONSTITUTIONAL_RULE_IDS = Object.freeze([
52
52
  "gov-006",
53
53
  "gov-008",
54
54
  "gov-012",
55
- "know-009",
55
+ // communication-safety (immutable — legal doc send, impersonation)
56
+ "com-007",
57
+ "com-011",
58
+ // security (immutable — secret log, code exec, privesc, auth)
56
59
  "sec-001",
57
60
  "sec-002",
58
61
  "sec-004",
59
62
  "sec-006",
60
- "sec-010",
61
63
  "sec-011",
62
64
  ]);
65
+ /**
66
+ * Recommended-default rule IDs (tier === "recommended_default").
67
+ * These are enabled by default but can be disabled by the user via update_rules.
68
+ * They are NOT immutable — they sit one tier below constitutional.
69
+ *
70
+ * Includes the 8 rules moved down from constitutional in v1.1.4:
71
+ * com-001/002/005/006/009 (email / social / outreach gates — legitimate in some automation contexts)
72
+ * know-009 (no fabricated stats — not reliably detectable by regex)
73
+ * fin-004 (crypto block — relevant for crypto-native setups)
74
+ * cmp-002 (GDPR data handling — varies by jurisdiction)
75
+ */
76
+ export const RECOMMENDED_DEFAULT_RULE_IDS = Object.freeze([
77
+ "com-001",
78
+ "com-002",
79
+ "com-005",
80
+ "com-006",
81
+ "com-009",
82
+ "know-009",
83
+ "fin-004",
84
+ "cmp-002",
85
+ ]);
63
86
  export const DEFAULT_CONFIG = {
64
87
  api_key: "",
65
- active_rules: [...CONSTITUTIONAL_RULE_IDS],
88
+ active_rules: [...CONSTITUTIONAL_RULE_IDS, ...RECOMMENDED_DEFAULT_RULE_IDS],
66
89
  active_preset: "minimal",
67
90
  enforcement_mode: "enforce",
68
91
  model: {
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB,MAAM,CAAC,MAAM,CAAC;IACtE,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,CAAC,GAAG,uBAAuB,CAAC;IAC1C,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,SAAS;IAC3B,KAAK,EAAE;QACL,QAAQ,EAAE,SAAS;KACpB;IACD,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,gCAAgC,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB,MAAM,CAAC,MAAM,CAAC;IACtE,qDAAqD;IACrD,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,mEAAmE;IACnE,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,mEAAmE;IACnE,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,mEAAmE;IACnE,SAAS;IACT,SAAS;IACT,8DAA8D;IAC9D,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC3E,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,CAAC,GAAG,uBAAuB,EAAE,GAAG,4BAA4B,CAAC;IAC3E,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,SAAS;IAC3B,KAAK,EAAE;QACL,QAAQ,EAAE,SAAS;KACpB;IACD,cAAc,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,gCAAgC,CAAC"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AAGvB,wBAAgB,SAAS,IAAI,UAAU,CAgBtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAGhD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAQA,OAAO,EAA2C,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAGzF,wBAAgB,SAAS,IAAI,UAAU,CAiBtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAGhD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C"}
@@ -6,7 +6,7 @@
6
6
  * (in-memory only — the on-disk file is left untouched).
7
7
  */
8
8
  import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs";
9
- import { CONFIG_DIR, CONFIG_PATH, DEFAULT_CONFIG, } from "./defaults.js";
9
+ import { CONFIG_DIR, CONFIG_PATH, DEFAULT_CONFIG } from "./defaults.js";
10
10
  import { enforceConstitutionalActive } from "../engine/immutability.js";
11
11
  export function getConfig() {
12
12
  let loaded;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EACL,UAAU,EACV,WAAW,EACX,cAAc,GAEf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,UAAU,SAAS;IACvB,IAAI,MAAkB,CAAC;IACvB,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,cAAc,CAAC,CAAC;YAC3B,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3B,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IACjC,CAAC;IACD,sEAAsE;IACtE,qDAAqD;IACrD,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAe;IACxC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,EAAE,CAAC,YAAY,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,UAAU,SAAS;IACvB,IAAI,MAAkB,CAAC;IACvB,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,cAAc,CAAC,CAAC;YAC3B,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3B,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;IACjC,CAAC;IAED,sEAAsE;IACtE,qDAAqD;IACrD,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAe;IACxC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,EAAE,CAAC,YAAY,CAAC;AAClC,CAAC"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"backend-client.d.ts","sourceRoot":"","sources":["../../src/engine/backend-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EAMlB,MAAM,qBAAqB,CAAC;AAM7B;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AAuBD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,OAAO,GAAE,oBAAyB;IAqB9C,uDAAuD;IACvD,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,iBAAiB,CAAC;IA8C7B,6CAA6C;YAC/B,WAAW;IA4DzB,yEAAyE;YAC3D,QAAQ;CAmFvB"}
1
+ {"version":3,"file":"backend-client.d.ts","sourceRoot":"","sources":["../../src/engine/backend-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EAOlB,MAAM,qBAAqB,CAAC;AAM7B;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AA0CD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAE7B,OAAO,GAAE,oBAAyB;IAkB9C,uDAAuD;IACvD,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,iBAAiB,CAAC;IA8C7B,6CAA6C;YAC/B,WAAW;IAgEzB,yEAAyE;YAC3D,QAAQ;CAiFvB"}
@@ -50,9 +50,9 @@ function emitOnceSessionNoticeNoToken() {
50
50
  _premiumSkippedNoticeShown = true;
51
51
  // Brief specifies the exact substring:
52
52
  // "[sunaiva-gate] premium rules skipped — set SUNAIVA_GATE_API_TOKEN to enable.
53
- // See https://sunaivadigital.com/pricing"
53
+ // See https://sunaivacore.io/pricing"
54
54
  console.error("[sunaiva-gate] premium rules skipped — set SUNAIVA_GATE_API_TOKEN to enable. " +
55
- "See https://sunaivadigital.com/pricing");
55
+ "See https://sunaivacore.io/pricing");
56
56
  }
57
57
  /**
58
58
  * Sleep helper for retry backoff. Pulled out so tests can mock it via the
@@ -1 +1 @@
1
- {"version":3,"file":"backend-client.js","sourceRoot":"","sources":["../../src/engine/backend-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-client.js","sourceRoot":"","sources":["../../src/engine/backend-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAKL,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,2EAA2E;AAC3E,4EAA4E;AAC5E,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACvC,0BAA0B,GAAG,KAAK,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAED,yDAAyD;AACzD,SAAS,4BAA4B;IACnC,IAAI,0BAA0B;QAAE,OAAO;IACvC,0BAA0B,GAAG,IAAI,CAAC;IAClC,uCAAuC;IACvC,kFAAkF;IAClF,yCAAyC;IACzC,OAAO,CAAC,KAAK,CACX,+EAA+E;QAC7E,oCAAoC,CACvC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAqBD,MAAM,OAAO,aAAa;IACP,GAAG,CAAS;IACZ,QAAQ,CAAgB;IACxB,SAAS,CAAS;IAClB,SAAS,CAAe;IAEzC,YAAY,UAAgC,EAAE;QAC5C,IAAI,CAAC,GAAG;YACN,OAAO,CAAC,GAAG;gBACX,OAAO,CAAC,GAAG,CAAC,wBAAwB;gBACpC,mBAAmB,CAAC;QACtB,IAAI,CAAC,QAAQ;YACX,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI,CAAC;QACjE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;QAC/D,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5E,IAAI,CAAC,SAAS;YACZ,OAAO,CAAC,SAAS;gBACjB,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,CAAC;oBACxD,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC1B,8DAA8D;QAC9D,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACzD,CAAC;IAED,uDAAuD;IACvD,YAAY;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAiB,EACjB,SAAiB,EACjB,OAAiC;QAEjC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEtB,+EAA+E;QAC/E,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,4BAA4B,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAwB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxD,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,kBAAuC;gBAC/C,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,CAAC;gBACb,KAAK,EAAE,2CAA2C;aACnD,CAAC,CAAC,CAAC;YACJ,OAAO;gBACL,eAAe,EAAE,OAAO;gBACxB,OAAO;gBACP,gBAAgB,EAAE,EAAE;gBACpB,gBAAgB,EAAE,CAAC,GAAG,OAAO,CAAC;gBAC9B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;gBAC3B,+BAA+B,EAAE,IAAI;aACtC,CAAC;QACJ,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,OAAO;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO;YACL,eAAe,EAAE,OAAO;YACxB,OAAO;YACP,gBAAgB;YAChB,gBAAgB;YAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YAC3B,+BAA+B,EAAE,KAAK;SACvC,CAAC;IACJ,CAAC;IAED,6CAA6C;IACrC,KAAK,CAAC,WAAW,CACvB,MAAc,EACd,SAAiB,EACjB,OAAiC;QAEjC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,SAA6B,CAAC;QAClC,IAAI,UAA8B,CAAC;QAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBAEhE,uEAAuE;gBACvE,2DAA2D;gBAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC1B,OAAO;wBACL,OAAO,EAAE,MAAM;wBACf,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;wBACrD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;wBAC7B,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAyC;wBAChE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAyC;wBAChE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;wBAC3B,WAAW,EAAE,OAAO,CAAC,MAAM;wBAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;qBAC5B,CAAC;gBACJ,CAAC;gBAED,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACpC,gEAAgE;oBAChE,OAAO;wBACL,OAAO,EAAE,MAAM;wBACf,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;wBAC3C,OAAO,EAAE,KAAK;wBACd,WAAW,EAAE,OAAO,CAAC,MAAM;wBAC3B,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,QAAQ,OAAO,CAAC,MAAM,EAAE;wBAC3D,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;qBAC5B,CAAC;gBACJ,CAAC;gBAED,oEAAoE;gBACpE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;gBACjC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,+EAA+E;gBAC/E,SAAS,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC1B,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,OAAO;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,SAAS,IAAI,mCAAmC;YACvD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;SAC5B,CAAC;IACJ,CAAC;IAED,yEAAyE;IACjE,KAAK,CAAC,QAAQ,CACpB,MAAc,EACd,SAAiB,EACjB,OAAiC;QAEjC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,QAAQ,EAAE;oBACxC,YAAY,EAAE,2BAA2B;iBAC1C;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,SAAS;oBACrB,OAAO,EAAE,OAAO,IAAI,EAAE;iBACvB,CAAC;gBACF,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,mEAAmE;YACnE,6DAA6D;YAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC5C,IAAI,IAA2B,CAAC;gBAChC,IAAI,CAAC;oBACH,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAA0B,CAAC;gBACtD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,kDAAkD;oBAClD,OAAO;wBACL,IAAI,EAAE,cAAc;wBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,YAAY,EAAE,wBAAwB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;qBACnF,CAAC;gBACJ,CAAC;gBACD,IAAI,OAAQ,IAAgC,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;oBACpE,OAAO;wBACL,IAAI,EAAE,cAAc;wBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,YAAY,EAAE,6CAA6C;qBAC5D,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YACnD,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC5C,IAAI,SAAyC,CAAC;gBAC9C,IAAI,CAAC;oBACH,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAuB,CAAC;gBACxD,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,YAAY,EAAE,SAAS,EAAE,KAAK,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE;iBACxD,CAAC;YACJ,CAAC;YAED,qCAAqC;YACrC,IAAI,SAAyC,CAAC;YAC9C,IAAI,CAAC;gBACH,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAuB,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU;YACZ,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;QAClE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,2DAA2D;YAC3D,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG;aAChE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAED,+CAA+C;AAC/C,SAAS,mBAAmB,CAAC,MAAc;IACzC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,iBAAiB,CAAC;QAC3B,KAAK,GAAG;YACN,OAAO,eAAe,CAAC;QACzB;YACE,OAAO,eAAe,CAAC;IAC3B,CAAC;AACH,CAAC"}
@@ -1,3 +1,22 @@
1
+ /**
2
+ * HMAC-SHA256 verifier + canonical JSON helpers.
3
+ *
4
+ * BYTE-FOR-BYTE compatible with Python's:
5
+ * json.dumps(obj, sort_keys=True, separators=(",", ":")).encode()
6
+ * hmac.new(key, payload, hashlib.sha256).hexdigest()
7
+ * hmac.compare_digest(expected, given)
8
+ *
9
+ * Reference: sunaiva-ship-confidence/utils/signing.py
10
+ * .claude/hooks/ship_confidence_gate.py (_canonical_json, _verify_hmac)
11
+ *
12
+ * Why a custom canonicalizer (not JSON.stringify-with-replacer):
13
+ * - Python's json.dumps sorts keys at EVERY level (recursive).
14
+ * - Python uses NO spaces between separators with (",", ":").
15
+ * - JavaScript's default JSON.stringify preserves insertion order, not sorted.
16
+ * - Python escapes / by default; we don't need that for HMAC
17
+ * payloads in practice because the verdict objects are ASCII-only, but the
18
+ * canonicalizer matches Python's escape rules for the common case.
19
+ */
1
20
  /**
2
21
  * Canonical JSON encoding — recursive sorted keys, tight separators.
3
22
  *
@@ -1 +1 @@
1
- {"version":3,"file":"hmac-verifier.d.ts","sourceRoot":"","sources":["../../src/engine/hmac-verifier.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAkFD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAUtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE"}
1
+ {"version":3,"file":"hmac-verifier.d.ts","sourceRoot":"","sources":["../../src/engine/hmac-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAkFD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAUtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE"}
@@ -13,9 +13,7 @@
13
13
  * - Python's json.dumps sorts keys at EVERY level (recursive).
14
14
  * - Python uses NO spaces between separators with (",", ":").
15
15
  * - JavaScript's default JSON.stringify preserves insertion order, not sorted.
16
- * - Python escapes
17
- /
18
- by default; we don't need that for HMAC
16
+ * - Python escapes / by default; we don't need that for HMAC
19
17
  * payloads in practice because the verdict objects are ASCII-only, but the
20
18
  * canonicalizer matches Python's escape rules for the common case.
21
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hmac-verifier.js","sourceRoot":"","sources":["../../src/engine/hmac-verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmac-verifier.js","sourceRoot":"","sources":["../../src/engine/hmac-verifier.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"immutability.d.ts","sourceRoot":"","sources":["../../src/engine/immutability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAOjF,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,EAAE,EAAE,SAAS,GAAG,QAAQ,CAAC;gBAE7B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,GAAG,QAAQ;CASrD;AAQD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,CAAC,MAAM,CAAC,CAc9D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIpD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAe1E"}
1
+ {"version":3,"file":"immutability.d.ts","sourceRoot":"","sources":["../../src/engine/immutability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAOjF,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,QAAQ,CAAC;gBAEtB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,GAAG,QAAQ;CASrD;AAQD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,CAAC,MAAM,CAAC,CAiB9D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAIpD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAkB1E"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"immutability.js","sourceRoot":"","sources":["../../src/engine/immutability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"immutability.js","sourceRoot":"","sources":["../../src/engine/immutability.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-matcher.d.ts","sourceRoot":"","sources":["../../src/engine/pattern-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AA4CD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBxE;AAuBD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,WAAW,CA6Bb;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAM1B"}
1
+ {"version":3,"file":"pattern-matcher.d.ts","sourceRoot":"","sources":["../../src/engine/pattern-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AAuCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBxE;AA0BD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,WAAW,CA4Bb;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAM1B"}
File without changes