@synapsor/runner 1.6.3 → 1.6.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 (97) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +72 -8
  3. package/CONTRIBUTING.md +10 -3
  4. package/README.md +61 -93
  5. package/SECURITY.md +7 -3
  6. package/THREAT_MODEL.md +37 -0
  7. package/dist/authoring.mjs +98 -13
  8. package/dist/cli.d.ts +12 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/local-ui.d.ts +60 -0
  11. package/dist/local-ui.d.ts.map +1 -1
  12. package/dist/runner.mjs +7321 -2000
  13. package/dist/runtime.mjs +528 -51
  14. package/docs/README.md +14 -0
  15. package/docs/agent-guided-setup.md +7 -7
  16. package/docs/aggregate-reads.md +14 -5
  17. package/docs/app-owned-executors.md +5 -6
  18. package/docs/auto-boundary-and-scoped-explore.md +58 -6
  19. package/docs/capability-authoring.md +2 -2
  20. package/docs/client-recipes.md +1 -1
  21. package/docs/cloud-mode.md +7 -7
  22. package/docs/conformance.md +6 -3
  23. package/docs/current-scope.md +13 -2
  24. package/docs/cursor-plugin.md +3 -3
  25. package/docs/database-enforced-scope.md +6 -0
  26. package/docs/dsl-reference.md +12 -1
  27. package/docs/fresh-developer-usability.md +6 -6
  28. package/docs/getting-started-own-database.md +41 -41
  29. package/docs/guided-onboarding.md +98 -30
  30. package/docs/limitations.md +34 -14
  31. package/docs/local-mode.md +20 -20
  32. package/docs/mcp-audit.md +14 -14
  33. package/docs/mcp-client-setup.md +11 -14
  34. package/docs/mcp-clients.md +1 -1
  35. package/docs/migrating-to-synapsor-spec.md +5 -1
  36. package/docs/openai-agents-sdk.md +2 -2
  37. package/docs/proposal-evidence-freshness.md +7 -7
  38. package/docs/recipes.md +6 -6
  39. package/docs/release-notes.md +86 -10
  40. package/docs/release-policy.md +20 -7
  41. package/docs/reversible-change-sets.md +1 -1
  42. package/docs/reviewed-database-views.md +132 -0
  43. package/docs/reviewed-relationships.md +245 -0
  44. package/docs/rfcs/006-reviewed-reversible-change-sets.md +1 -1
  45. package/docs/runner-bundles.md +7 -7
  46. package/docs/schema-api-candidates.md +1 -1
  47. package/docs/security-boundary.md +30 -0
  48. package/docs/troubleshooting-first-run.md +52 -12
  49. package/docs/use-your-own-database.md +6 -4
  50. package/docs/workbench-ask.md +279 -0
  51. package/docs/writeback-executors.md +7 -7
  52. package/examples/auto-boundary-churn/README.md +1 -1
  53. package/examples/community-solar-clean-room/README.md +7 -0
  54. package/examples/community-solar-clean-room/docker-compose.yml +16 -0
  55. package/examples/community-solar-clean-room/package.json +15 -0
  56. package/examples/community-solar-clean-room/prisma/schema.prisma +171 -0
  57. package/examples/community-solar-clean-room/seed/postgres.sql +571 -0
  58. package/examples/fitflow-guided-onboarding/README.md +2 -2
  59. package/examples/openai-agents-http/Makefile +1 -1
  60. package/examples/openai-agents-http/README.md +1 -1
  61. package/examples/openai-agents-stdio/Makefile +1 -1
  62. package/examples/openai-agents-stdio/README.md +2 -2
  63. package/examples/openai-agents-stdio/agent.py +1 -4
  64. package/examples/reference-support-billing-app/README.md +16 -16
  65. package/examples/retail-clean-room/README.md +7 -0
  66. package/examples/retail-clean-room/docker-compose.yml +16 -0
  67. package/examples/retail-clean-room/package.json +9 -0
  68. package/examples/retail-clean-room/prisma/schema.prisma +239 -0
  69. package/examples/retail-clean-room/seed/postgres.sql +781 -0
  70. package/examples/retail-clean-room/view-recipe/average-retained-revenue.synapsor.sql +21 -0
  71. package/examples/retail-clean-room/view-recipe/synapsor.runner.json +25 -0
  72. package/examples/support-plan-credit/mcp-client-examples/claude-code.sh +1 -4
  73. package/examples/support-plan-credit/mcp-client-examples/claude-desktop.json +1 -4
  74. package/examples/support-plan-credit/mcp-client-examples/codex.config.toml +1 -4
  75. package/examples/support-plan-credit/mcp-client-examples/cursor-global.mcp.json +1 -4
  76. package/examples/support-plan-credit/mcp-client-examples/cursor-project.mcp.json +1 -4
  77. package/examples/support-plan-credit/mcp-client-examples/generic-stdio.json +1 -4
  78. package/examples/support-plan-credit/mcp-client-examples/generic-stdio.mjs +1 -1
  79. package/examples/support-plan-credit/mcp-client-examples/google-adk.py +1 -1
  80. package/examples/support-plan-credit/mcp-client-examples/langchain.mjs +1 -1
  81. package/examples/support-plan-credit/mcp-client-examples/llamaindex.py +1 -1
  82. package/examples/support-plan-credit/mcp-client-examples/openai-agents-stdio.ts +1 -1
  83. package/examples/support-plan-credit/mcp-client-examples/vscode.mcp.json +1 -4
  84. package/fixtures/compatibility/published-1.6.3/manifest.json +76 -0
  85. package/fixtures/compatibility/published-1.6.3/sources/packages/dsl/examples/aggregate-read.synapsor.sql +21 -0
  86. package/fixtures/compatibility/published-1.6.3/sources/packages/dsl/examples/billing-late-fee.synapsor.sql +56 -0
  87. package/fixtures/compatibility/published-1.6.3/sources/packages/dsl/examples/bounded-set-multi-term.synapsor.sql +30 -0
  88. package/fixtures/compatibility/published-1.6.3/sources/packages/dsl/examples/principal-row-scope.synapsor.sql +23 -0
  89. package/fixtures/compatibility/published-1.6.3/sources/packages/spec/fixtures/conformance/aggregate-read/contract.json +119 -0
  90. package/fixtures/compatibility/published-1.6.3/sources/packages/spec/fixtures/conformance/approval-quorum/contract.json +44 -0
  91. package/fixtures/compatibility/published-1.6.3/sources/packages/spec/fixtures/conformance/bounded-set-threats/contract.json +115 -0
  92. package/fixtures/compatibility/published-1.6.3/sources/packages/spec/fixtures/conformance/principal-row-scope/contract.json +78 -0
  93. package/fixtures/compatibility/published-1.6.3/sources/packages/spec/fixtures/conformance/proposal-capability/contract.json +101 -0
  94. package/fixtures/compatibility/published-1.6.3/sources/packages/spec/fixtures/conformance/reversible-change-sets/contract.json +98 -0
  95. package/fixtures/compatibility/published-1.6.3/sources/packages/spec/fixtures/valid/basic-read.contract.json +60 -0
  96. package/llms.txt +10 -5
  97. package/package.json +8 -2
@@ -0,0 +1,115 @@
1
+ {
2
+ "spec_version": "0.1",
3
+ "kind": "SynapsorContract",
4
+ "metadata": { "name": "bounded-set-threats", "version": "1.0.0" },
5
+ "contexts": [
6
+ {
7
+ "name": "trusted_operator",
8
+ "bindings": [
9
+ { "name": "tenant_id", "source": "environment", "key": "SYNAPSOR_TENANT_ID", "required": true },
10
+ { "name": "principal", "source": "environment", "key": "SYNAPSOR_PRINCIPAL", "required": true }
11
+ ],
12
+ "tenant_binding": "tenant_id",
13
+ "principal_binding": "principal"
14
+ }
15
+ ],
16
+ "capabilities": [
17
+ {
18
+ "name": "billing.close_overdue_invoices",
19
+ "kind": "proposal",
20
+ "context": "trusted_operator",
21
+ "source": "local_postgres",
22
+ "subject": { "schema": "public", "table": "invoices", "primary_key": "id", "tenant_key": "tenant_id", "conflict_key": "version" },
23
+ "args": { "reason": { "type": "string", "required": true, "max_length": 500 } },
24
+ "visible_fields": ["id", "tenant_id", "status", "balance_cents", "version"],
25
+ "kept_out_fields": ["internal_risk_score"],
26
+ "evidence": { "required": true, "query_audit": true },
27
+ "proposal": {
28
+ "action": "close_overdue",
29
+ "operation": {
30
+ "kind": "update",
31
+ "cardinality": "set",
32
+ "selection": { "all": [{ "column": "status", "operator": "eq", "value": "overdue" }] },
33
+ "max_rows": 10,
34
+ "aggregate_bounds": [{ "column": "balance_cents", "measure": "before", "maximum": 50000 }],
35
+ "version_advance": { "column": "version", "strategy": "integer_increment" }
36
+ },
37
+ "allowed_fields": ["status", "close_reason"],
38
+ "patch": { "status": { "fixed": "closed" }, "close_reason": { "from_arg": "reason" } },
39
+ "conflict_guard": { "column": "version" },
40
+ "approval": { "mode": "human", "required_role": "billing_reviewer" },
41
+ "writeback": { "mode": "direct_sql" }
42
+ }
43
+ },
44
+ {
45
+ "name": "billing.delete_expired_drafts",
46
+ "kind": "proposal",
47
+ "context": "trusted_operator",
48
+ "source": "local_postgres",
49
+ "subject": { "schema": "public", "table": "invoice_drafts", "primary_key": "id", "tenant_key": "tenant_id", "conflict_key": "version" },
50
+ "args": { "reason": { "type": "string", "required": true, "max_length": 500 } },
51
+ "visible_fields": ["id", "tenant_id", "status", "estimated_cents", "version"],
52
+ "evidence": { "required": true, "query_audit": true },
53
+ "proposal": {
54
+ "action": "delete_expired_drafts",
55
+ "operation": {
56
+ "kind": "delete",
57
+ "cardinality": "set",
58
+ "selection": { "all": [{ "column": "status", "operator": "eq", "value": "expired" }] },
59
+ "max_rows": 5,
60
+ "aggregate_bounds": [{ "column": "estimated_cents", "measure": "before", "maximum": 10000 }]
61
+ },
62
+ "allowed_fields": [],
63
+ "patch": {},
64
+ "conflict_guard": { "column": "version" },
65
+ "approval": { "mode": "human", "required_role": "billing_reviewer", "required_approvals": 2 },
66
+ "writeback": { "mode": "direct_sql" }
67
+ }
68
+ },
69
+ {
70
+ "name": "billing.create_credits",
71
+ "kind": "proposal",
72
+ "context": "trusted_operator",
73
+ "source": "local_postgres",
74
+ "subject": { "schema": "public", "table": "account_credits", "primary_key": "id", "tenant_key": "tenant_id" },
75
+ "args": {
76
+ "items": {
77
+ "type": "object_array",
78
+ "required": true,
79
+ "max_items": 10,
80
+ "fields": {
81
+ "id": { "type": "string", "required": true, "max_length": 128 },
82
+ "external_id": { "type": "string", "required": true, "max_length": 128 },
83
+ "amount_cents": { "type": "number", "required": true, "minimum": 1, "maximum": 2500 },
84
+ "reason": { "type": "string", "required": true, "max_length": 500 }
85
+ }
86
+ }
87
+ },
88
+ "visible_fields": ["id", "tenant_id", "external_id", "amount_cents", "reason", "version"],
89
+ "kept_out_fields": ["internal_note"],
90
+ "evidence": { "required": true, "query_audit": true },
91
+ "proposal": {
92
+ "action": "create_credits",
93
+ "operation": {
94
+ "kind": "insert",
95
+ "cardinality": "set",
96
+ "batch": { "items_from_arg": "items" },
97
+ "max_rows": 10,
98
+ "aggregate_bounds": [{ "column": "amount_cents", "measure": "after", "maximum": 25000 }],
99
+ "deduplication": {
100
+ "components": [
101
+ { "column": "tenant_id", "source": "trusted_tenant" },
102
+ { "column": "id", "source": "item_field", "item_field": "id" },
103
+ { "column": "external_id", "source": "item_field", "item_field": "external_id" }
104
+ ]
105
+ }
106
+ },
107
+ "allowed_fields": ["amount_cents", "reason"],
108
+ "patch": { "amount_cents": { "from_item": "amount_cents" }, "reason": { "from_item": "reason" } },
109
+ "numeric_bounds": { "amount_cents": { "minimum": 1, "maximum": 2500 } },
110
+ "approval": { "mode": "human", "required_role": "billing_reviewer" },
111
+ "writeback": { "mode": "direct_sql" }
112
+ }
113
+ }
114
+ ]
115
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "spec_version": "0.1",
3
+ "kind": "SynapsorContract",
4
+ "metadata": {
5
+ "name": "trusted principal row scope",
6
+ "description": "Tenant-additive row authority for two case managers in one hospital."
7
+ },
8
+ "contexts": [
9
+ {
10
+ "name": "care_session",
11
+ "bindings": [
12
+ {
13
+ "name": "hospital_id",
14
+ "source": "http_claim",
15
+ "key": "hospital_id",
16
+ "required": true
17
+ },
18
+ {
19
+ "name": "principal",
20
+ "source": "http_claim",
21
+ "key": "sub",
22
+ "required": true
23
+ }
24
+ ],
25
+ "tenant_binding": "hospital_id",
26
+ "principal_binding": "principal"
27
+ }
28
+ ],
29
+ "resources": [],
30
+ "capabilities": [
31
+ {
32
+ "name": "care.inspect_assigned_patient",
33
+ "description": "Inspect one patient assigned to the authenticated case manager within the trusted hospital.",
34
+ "returns_hint": "Returns reviewed patient fields and evidence only when both tenant and assignee locks match.",
35
+ "kind": "read",
36
+ "context": "care_session",
37
+ "source": "local_postgres",
38
+ "subject": {
39
+ "schema": "public",
40
+ "table": "patients",
41
+ "primary_key": "id",
42
+ "tenant_key": "hospital_id",
43
+ "principal_scope_key": "assigned_to",
44
+ "conflict_key": "updated_at"
45
+ },
46
+ "args": {
47
+ "patient_id": {
48
+ "type": "string",
49
+ "required": true,
50
+ "description": "Reviewed patient identifier.",
51
+ "max_length": 128
52
+ }
53
+ },
54
+ "lookup": {
55
+ "id_from_arg": "patient_id"
56
+ },
57
+ "visible_fields": [
58
+ "id",
59
+ "hospital_id",
60
+ "display_name",
61
+ "care_status",
62
+ "updated_at"
63
+ ],
64
+ "kept_out_fields": [
65
+ "assigned_to",
66
+ "diagnosis_notes",
67
+ "insurance_member_id"
68
+ ],
69
+ "evidence": {
70
+ "required": true,
71
+ "query_audit": true
72
+ },
73
+ "max_rows": 1
74
+ }
75
+ ],
76
+ "workflows": [],
77
+ "policies": []
78
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "spec_version": "0.1",
3
+ "kind": "SynapsorContract",
4
+ "metadata": {
5
+ "name": "proposal capability conformance"
6
+ },
7
+ "resources": [
8
+ {
9
+ "name": "billing_invoices",
10
+ "engine": "postgres",
11
+ "schema": "public",
12
+ "table": "invoices",
13
+ "primary_key": "id",
14
+ "tenant_key": "tenant_id",
15
+ "conflict_key": "updated_at"
16
+ }
17
+ ],
18
+ "contexts": [
19
+ {
20
+ "name": "local_operator",
21
+ "bindings": [
22
+ {
23
+ "name": "tenant_id",
24
+ "source": "environment",
25
+ "key": "SYNAPSOR_TENANT_ID"
26
+ },
27
+ {
28
+ "name": "principal",
29
+ "source": "environment",
30
+ "key": "SYNAPSOR_PRINCIPAL"
31
+ }
32
+ ],
33
+ "tenant_binding": "tenant_id",
34
+ "principal_binding": "principal"
35
+ }
36
+ ],
37
+ "capabilities": [
38
+ {
39
+ "name": "billing.propose_late_fee_waiver",
40
+ "kind": "proposal",
41
+ "context": "local_operator",
42
+ "source": "local_postgres",
43
+ "subject": {
44
+ "resource": "billing_invoices"
45
+ },
46
+ "args": {
47
+ "invoice_id": {
48
+ "type": "string",
49
+ "required": true
50
+ },
51
+ "waiver_reason": {
52
+ "type": "string",
53
+ "required": true
54
+ }
55
+ },
56
+ "lookup": {
57
+ "id_from_arg": "invoice_id"
58
+ },
59
+ "visible_fields": [
60
+ "id",
61
+ "tenant_id",
62
+ "late_fee_cents",
63
+ "waiver_reason",
64
+ "updated_at"
65
+ ],
66
+ "kept_out_fields": [
67
+ "card_token"
68
+ ],
69
+ "evidence": {
70
+ "required": true,
71
+ "query_audit": true
72
+ },
73
+ "max_rows": 1,
74
+ "proposal": {
75
+ "action": "billing.waive_late_fee",
76
+ "allowed_fields": [
77
+ "late_fee_cents",
78
+ "waiver_reason"
79
+ ],
80
+ "patch": {
81
+ "late_fee_cents": {
82
+ "fixed": 0
83
+ },
84
+ "waiver_reason": {
85
+ "from_arg": "waiver_reason"
86
+ }
87
+ },
88
+ "conflict_guard": {
89
+ "column": "updated_at"
90
+ },
91
+ "approval": {
92
+ "mode": "human",
93
+ "required_role": "billing_lead"
94
+ },
95
+ "writeback": {
96
+ "mode": "direct_sql"
97
+ }
98
+ }
99
+ }
100
+ ]
101
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "spec_version": "0.1",
3
+ "kind": "SynapsorContract",
4
+ "metadata": {
5
+ "name": "reviewed-reversible-change-sets",
6
+ "version": "1.4.0"
7
+ },
8
+ "contexts": [
9
+ {
10
+ "name": "trusted_operator",
11
+ "bindings": [
12
+ { "name": "tenant_id", "source": "environment", "key": "SYNAPSOR_TENANT_ID", "required": true },
13
+ { "name": "principal", "source": "environment", "key": "SYNAPSOR_PRINCIPAL", "required": true }
14
+ ],
15
+ "tenant_binding": "tenant_id",
16
+ "principal_binding": "principal"
17
+ }
18
+ ],
19
+ "capabilities": [
20
+ {
21
+ "name": "billing.adjust_credit",
22
+ "kind": "proposal",
23
+ "context": "trusted_operator",
24
+ "source": "local_postgres",
25
+ "subject": {
26
+ "schema": "public",
27
+ "table": "account_credits",
28
+ "primary_key": "id",
29
+ "tenant_key": "tenant_id",
30
+ "conflict_key": "version"
31
+ },
32
+ "args": {
33
+ "credit_id": { "type": "string", "required": true, "max_length": 128 },
34
+ "amount_cents": { "type": "number", "required": true, "minimum": 0, "maximum": 2500 }
35
+ },
36
+ "lookup": { "id_from_arg": "credit_id" },
37
+ "visible_fields": ["id", "tenant_id", "amount_cents", "version"],
38
+ "kept_out_fields": ["internal_note"],
39
+ "evidence": { "required": true, "query_audit": true },
40
+ "proposal": {
41
+ "action": "adjust_credit",
42
+ "operation": {
43
+ "kind": "update",
44
+ "cardinality": "single",
45
+ "version_advance": { "column": "version", "strategy": "integer_increment" }
46
+ },
47
+ "allowed_fields": ["amount_cents"],
48
+ "patch": { "amount_cents": { "from_arg": "amount_cents" } },
49
+ "numeric_bounds": { "amount_cents": { "minimum": 0, "maximum": 2500 } },
50
+ "reversibility": { "mode": "reviewed_inverse" },
51
+ "conflict_guard": { "column": "version" },
52
+ "approval": { "mode": "human", "required_role": "billing_reviewer", "required_approvals": 2 },
53
+ "writeback": { "mode": "direct_sql" }
54
+ }
55
+ },
56
+ {
57
+ "name": "billing.create_credit",
58
+ "kind": "proposal",
59
+ "context": "trusted_operator",
60
+ "source": "local_postgres",
61
+ "subject": {
62
+ "schema": "public",
63
+ "table": "account_credits",
64
+ "primary_key": "id",
65
+ "tenant_key": "tenant_id"
66
+ },
67
+ "args": {
68
+ "amount_cents": { "type": "number", "required": true, "minimum": 1, "maximum": 2500 },
69
+ "reason": { "type": "string", "required": true, "max_length": 500 }
70
+ },
71
+ "visible_fields": ["id", "tenant_id", "amount_cents", "reason"],
72
+ "kept_out_fields": ["internal_note"],
73
+ "evidence": { "required": true, "query_audit": true },
74
+ "proposal": {
75
+ "action": "create_credit",
76
+ "operation": {
77
+ "kind": "insert",
78
+ "cardinality": "single",
79
+ "deduplication": {
80
+ "components": [
81
+ { "column": "tenant_id", "source": "trusted_tenant" },
82
+ { "column": "id", "source": "proposal_id" }
83
+ ]
84
+ }
85
+ },
86
+ "allowed_fields": ["amount_cents", "reason"],
87
+ "patch": {
88
+ "amount_cents": { "from_arg": "amount_cents" },
89
+ "reason": { "from_arg": "reason" }
90
+ },
91
+ "numeric_bounds": { "amount_cents": { "minimum": 1, "maximum": 2500 } },
92
+ "reversibility": { "mode": "reviewed_inverse" },
93
+ "approval": { "mode": "human", "required_role": "billing_reviewer" },
94
+ "writeback": { "mode": "direct_sql" }
95
+ }
96
+ }
97
+ ]
98
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "spec_version": "0.1",
3
+ "kind": "SynapsorContract",
4
+ "contexts": [
5
+ {
6
+ "name": "local_operator",
7
+ "bindings": [
8
+ {
9
+ "name": "tenant_id",
10
+ "source": "environment",
11
+ "key": "SYNAPSOR_TENANT_ID"
12
+ },
13
+ {
14
+ "name": "principal",
15
+ "source": "environment",
16
+ "key": "SYNAPSOR_PRINCIPAL"
17
+ }
18
+ ],
19
+ "tenant_binding": "tenant_id",
20
+ "principal_binding": "principal"
21
+ }
22
+ ],
23
+ "capabilities": [
24
+ {
25
+ "name": "billing.inspect_invoice",
26
+ "kind": "read",
27
+ "context": "local_operator",
28
+ "subject": {
29
+ "schema": "public",
30
+ "table": "invoices",
31
+ "primary_key": "id",
32
+ "tenant_key": "tenant_id",
33
+ "conflict_key": "updated_at"
34
+ },
35
+ "args": {
36
+ "invoice_id": {
37
+ "type": "string",
38
+ "required": true
39
+ }
40
+ },
41
+ "lookup": {
42
+ "id_from_arg": "invoice_id"
43
+ },
44
+ "visible_fields": [
45
+ "id",
46
+ "tenant_id",
47
+ "late_fee_cents",
48
+ "updated_at"
49
+ ],
50
+ "kept_out_fields": [
51
+ "card_token"
52
+ ],
53
+ "evidence": {
54
+ "required": true,
55
+ "query_audit": true
56
+ },
57
+ "max_rows": 1
58
+ }
59
+ ]
60
+ }
package/llms.txt CHANGED
@@ -18,17 +18,22 @@ Start here:
18
18
 
19
19
  Current adoption loop:
20
20
  Connect staging -> deterministic whole-schema draft -> human boundary review ->
21
- bounded row or PM-style aggregate Explore in local Cursor -> Protect This Query
22
- -> digest-bound human activation -> named production capability -> proposal ->
23
- external approval -> guarded commit -> receipt and replay.
21
+ bounded row or PM-style aggregate Explore in Workbench or an MCP client ->
22
+ Protect This Query -> digest-bound human activation -> named production
23
+ capability -> proposal -> external approval -> guarded commit -> receipt and
24
+ replay.
24
25
 
25
26
  Important boundaries:
26
27
  - No raw SQL or SQL-string tool argument.
27
28
  - Scoped Explore is disabled by default and is local development/staging
28
29
  authoring only. Production and shared/remote HTTP never advertise it.
29
30
  - Aggregate Explore is a reviewed analytical cube: approved measures,
30
- dimensions, time buckets, filters, at most one proven many-to-one path,
31
- suppression, and extraction/differencing budgets.
31
+ dimensions, time buckets, filters, and at most three activated paths of one
32
+ or two catalog-proven many-to-one links, plus suppression and
33
+ extraction/differencing budgets.
34
+ - Optional local Workbench Ask can use OpenAI, Anthropic, or a tested
35
+ OpenAI-compatible endpoint, but it calls only the exact reviewed tools and
36
+ adds no activation, approval, or commit authority.
32
37
  - Auto Boundary and Protect are deterministic and use no LLM.
33
38
  - Generated authority starts disabled. The model cannot activate, approve,
34
39
  apply, commit, or widen it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synapsor/runner",
3
- "version": "1.6.3",
3
+ "version": "1.6.4",
4
4
  "description": "Open-source MCP runtime for governed Postgres/MySQL access with reviewed capabilities, proposals, guarded writes, receipts, and replay.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -8,6 +8,10 @@
8
8
  "synapsor-runner": "dist/cli.js"
9
9
  },
10
10
  "exports": {
11
+ "./cli": {
12
+ "types": "./dist/cli.d.ts",
13
+ "import": "./dist/runner.mjs"
14
+ },
11
15
  "./authoring": {
12
16
  "types": "./dist/authoring.d.ts",
13
17
  "import": "./dist/authoring.mjs"
@@ -41,6 +45,8 @@
41
45
  "examples/dangerous-mcp-tools.json",
42
46
  "examples/app-owned-writeback/**",
43
47
  "examples/auto-boundary-churn/**",
48
+ "examples/community-solar-clean-room/**",
49
+ "examples/retail-clean-room/**",
44
50
  "examples/fitflow-guided-onboarding/**",
45
51
  "examples/claude-desktop-postgres/**",
46
52
  "examples/cursor-postgres/**",
@@ -87,7 +93,7 @@
87
93
  },
88
94
  "dependencies": {
89
95
  "@modelcontextprotocol/sdk": "1.29.0",
90
- "@synapsor/spec": "^1.6.0",
96
+ "@synapsor/spec": "^1.7.0",
91
97
  "jose": "6.2.3",
92
98
  "mysql2": "^3.11.0",
93
99
  "pdf-lib": "1.17.1",