@synapsor/runner 0.1.0-alpha.10 → 0.1.0-alpha.11

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 (34) hide show
  1. package/README.md +41 -2
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/runner.mjs +264 -65
  4. package/docs/README.md +17 -0
  5. package/docs/app-owned-executors.md +21 -0
  6. package/docs/cloud-mode.md +24 -0
  7. package/docs/current-scope.md +24 -0
  8. package/docs/dependency-license-inventory.md +35 -0
  9. package/docs/http-mcp.md +35 -1
  10. package/docs/licensing.md +36 -0
  11. package/docs/mcp-client-setup.md +39 -0
  12. package/docs/openai-agents-sdk.md +57 -0
  13. package/docs/release-notes.md +30 -1
  14. package/docs/use-your-own-database.md +18 -0
  15. package/docs/writeback-executors.md +11 -0
  16. package/examples/mcp-postgres-billing-app-handler/README.md +82 -0
  17. package/examples/mcp-postgres-billing-app-handler/app-handler.mjs +197 -0
  18. package/examples/mcp-postgres-billing-app-handler/docker-compose.yml +13 -0
  19. package/examples/mcp-postgres-billing-app-handler/schema.sql +59 -0
  20. package/examples/mcp-postgres-billing-app-handler/scripts/run-demo.sh +99 -0
  21. package/examples/mcp-postgres-billing-app-handler/seed.sql +39 -0
  22. package/examples/mcp-postgres-billing-app-handler/synapsor.runner.json +157 -0
  23. package/examples/openai-agents-http/README.md +10 -2
  24. package/examples/openai-agents-stdio/README.md +8 -4
  25. package/examples/openai-agents-stdio/agent.py +2 -0
  26. package/fixtures/benchmark/mcp-efficiency.json +53 -0
  27. package/fixtures/benchmark/mcp-efficiency.txt +25 -0
  28. package/fixtures/protocol/MANIFEST.json +54 -0
  29. package/fixtures/protocol/change-set.late-fee-waiver.v1.json +72 -0
  30. package/fixtures/protocol/execution-receipt.applied.v1.json +14 -0
  31. package/fixtures/protocol/execution-receipt.conflict.v1.json +15 -0
  32. package/fixtures/protocol/runner-registration.v1.json +22 -0
  33. package/fixtures/protocol/writeback-job.late-fee-waiver.v1.json +44 -0
  34. package/package.json +3 -1
@@ -0,0 +1,53 @@
1
+ {
2
+ "benchmark": "mcp-efficiency",
3
+ "fixture": "late-fee-waiver",
4
+ "tokenizer": {
5
+ "name": "synapsor-fixture-tokenizer-v1",
6
+ "version": 1,
7
+ "method": "deterministic regex tokenization for fixture comparison; not a model billing tokenizer"
8
+ },
9
+ "note": "This benchmark compares the included fixture/reference workflow only. It is not a universal token-savings claim.",
10
+ "paths": {
11
+ "generic_database_mcp_reference": {
12
+ "exposed_tools": 4,
13
+ "serialized_tools_list_bytes": 822,
14
+ "serialized_tools_list_tokens": 298,
15
+ "schema_context_bytes": 215,
16
+ "schema_context_tokens": 75,
17
+ "business_result_bytes": 199,
18
+ "business_result_tokens": 77,
19
+ "scripted_tool_calls": 5,
20
+ "exposes_raw_sql": true,
21
+ "exposes_write_credentials": false,
22
+ "approval_separated": false,
23
+ "stale_row_conflict_checked": false
24
+ },
25
+ "synapsor_runner_semantic_path": {
26
+ "exposed_tools": 2,
27
+ "serialized_tools_list_bytes": 728,
28
+ "serialized_tools_list_tokens": 236,
29
+ "schema_context_bytes": 331,
30
+ "schema_context_tokens": 87,
31
+ "business_result_bytes": 277,
32
+ "business_result_tokens": 91,
33
+ "scripted_tool_calls": 2,
34
+ "exposes_raw_sql": false,
35
+ "exposes_write_credentials": false,
36
+ "approval_separated": true,
37
+ "stale_row_conflict_checked": true
38
+ }
39
+ },
40
+ "scripted_plans": {
41
+ "generic_database_mcp_reference": [
42
+ "list_tables",
43
+ "describe_table invoices",
44
+ "query_database SELECT invoice",
45
+ "formulate raw UPDATE",
46
+ "execute_sql UPDATE invoice"
47
+ ],
48
+ "synapsor_runner_semantic_path": [
49
+ "billing.inspect_invoice",
50
+ "billing.propose_late_fee_waiver"
51
+ ]
52
+ }
53
+ }
@@ -0,0 +1,25 @@
1
+ MCP efficiency benchmark: late-fee-waiver fixture
2
+ Tokenizer: synapsor-fixture-tokenizer-v1 (deterministic fixture tokenizer; not a model billing tokenizer)
3
+ Scope: included fixture/reference workflow only; not a universal savings claim.
4
+
5
+ Generic database MCP reference:
6
+ exposed tools: 4
7
+ tools/list: 822 bytes, 298 tokens
8
+ scripted tool calls: 5
9
+ schema/context: 215 bytes, 75 tokens
10
+ business result: 199 bytes, 77 tokens
11
+ raw SQL exposed: yes
12
+ approval separated: no
13
+ stale-row conflict checked: no
14
+
15
+ Synapsor Runner semantic path:
16
+ exposed tools: 2
17
+ tools/list: 728 bytes, 236 tokens
18
+ scripted tool calls: 2
19
+ schema/context: 331 bytes, 87 tokens
20
+ business result: 277 bytes, 91 tokens
21
+ raw SQL exposed: no
22
+ approval separated: yes
23
+ stale-row conflict checked: yes
24
+
25
+ Run with --json to inspect machine-readable measurements and scripted plans.
@@ -0,0 +1,54 @@
1
+ {
2
+ "schema_version": "synapsor.protocol-manifest.v1",
3
+ "protocol_set": "database-mcp-writeback",
4
+ "version": "0.1.0-alpha",
5
+ "hash_algorithm": "sha256",
6
+ "note": "This manifest is copied in Synapsor main protocol/MANIFEST.json and synapsor-runner fixtures/protocol/MANIFEST.json. Hashes are over the checked-in JSON artifact bytes.",
7
+ "artifacts": [
8
+ {
9
+ "kind": "fixture",
10
+ "name": "change-set.late-fee-waiver.v1.json",
11
+ "sha256": "7112d0f28832e61b4ac5846d169666c0476ba92eb68c6790c10ac614ee3f2b33"
12
+ },
13
+ {
14
+ "kind": "fixture",
15
+ "name": "execution-receipt.applied.v1.json",
16
+ "sha256": "5af8be1b72b03d5a4c7af22748d9ade9f0febbf5e9503931054361ef998b5870"
17
+ },
18
+ {
19
+ "kind": "fixture",
20
+ "name": "execution-receipt.conflict.v1.json",
21
+ "sha256": "64e8a5fd90cdeafa2dd92a2c67cad1307b9d09e585cc82b06b987bde382f7733"
22
+ },
23
+ {
24
+ "kind": "fixture",
25
+ "name": "runner-registration.v1.json",
26
+ "sha256": "3eaf844cdc94a4274601cedfed7252d65dd837a345c8c3b0f17ab6bbdf7f75da"
27
+ },
28
+ {
29
+ "kind": "fixture",
30
+ "name": "writeback-job.late-fee-waiver.v1.json",
31
+ "sha256": "577e7987427031b55134c3d7296e644b1c8b7adec495758d4cff3665e954dbc8"
32
+ },
33
+ {
34
+ "kind": "schema",
35
+ "name": "change-set.v1.schema.json",
36
+ "sha256": "4e52b369b0d3bea30b0ed7b61ec239fc67de3dc691ed4014d6d5eabc7d2be4de"
37
+ },
38
+ {
39
+ "kind": "schema",
40
+ "name": "execution-receipt.v1.schema.json",
41
+ "sha256": "69504ce51fa66440e42d57ef6cb36cc6d8543427d8d385c9ccff954ecae5ec83"
42
+ },
43
+ {
44
+ "kind": "schema",
45
+ "name": "runner-registration.v1.schema.json",
46
+ "sha256": "86242555545b44ae747965ddb8aa35e2982587c76c2538f0f646e8b63994286b"
47
+ },
48
+ {
49
+ "kind": "schema",
50
+ "name": "writeback-job.v1.schema.json",
51
+ "sha256": "eab35194dd6b6caa7694aa8f14afbf265338d6ee8ed3d3db5d08ec83c4e7092e"
52
+ }
53
+ ]
54
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "schema_version": "synapsor.change-set.v1",
3
+ "proposal_id": "wrp_123",
4
+ "proposal_version": 1,
5
+ "action": "billing.waive_late_fee",
6
+ "mode": "review_required",
7
+ "principal": {
8
+ "id": "support_agent_17",
9
+ "source": "trusted_session"
10
+ },
11
+ "scope": {
12
+ "tenant_id": "acme",
13
+ "business_object": "invoice",
14
+ "object_id": "INV-3001"
15
+ },
16
+ "source": {
17
+ "kind": "external_postgres",
18
+ "source_id": "src_pg_acme",
19
+ "schema": "public",
20
+ "table": "invoices",
21
+ "primary_key": {
22
+ "column": "id",
23
+ "value": "INV-3001"
24
+ }
25
+ },
26
+ "before": {
27
+ "late_fee_cents": 5500,
28
+ "waiver_reason": null,
29
+ "updated_at": "2026-06-20T14:31:08Z"
30
+ },
31
+ "patch": {
32
+ "late_fee_cents": 0,
33
+ "waiver_reason": "customer requested review"
34
+ },
35
+ "after": {
36
+ "late_fee_cents": 0,
37
+ "waiver_reason": "customer requested review",
38
+ "updated_at": "2026-06-20T14:31:08Z"
39
+ },
40
+ "guards": {
41
+ "tenant": {
42
+ "column": "tenant_id",
43
+ "value": "acme"
44
+ },
45
+ "allowed_columns": [
46
+ "late_fee_cents",
47
+ "waiver_reason"
48
+ ],
49
+ "expected_version": {
50
+ "column": "updated_at",
51
+ "value": "2026-06-20T14:31:08Z"
52
+ }
53
+ },
54
+ "evidence": {
55
+ "bundle_id": "ev_456",
56
+ "query_fingerprint": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
57
+ "items": []
58
+ },
59
+ "approval": {
60
+ "status": "pending",
61
+ "required_role": "support_lead"
62
+ },
63
+ "writeback": {
64
+ "status": "not_applied",
65
+ "mode": "trusted_worker_required"
66
+ },
67
+ "source_database_mutated": false,
68
+ "integrity": {
69
+ "proposal_hash": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
70
+ },
71
+ "created_at": "2026-06-20T14:31:09Z"
72
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "schema_version": "synapsor.execution-receipt.v1",
3
+ "writeback_job_id": "wbj_123",
4
+ "proposal_id": "wrp_123",
5
+ "runner_id": "runner_123",
6
+ "status": "applied",
7
+ "rows_affected": 1,
8
+ "idempotency_key": "wrp_123:INV-3001",
9
+ "previous_version": "2026-06-20T14:31:08Z",
10
+ "new_version": "2026-06-20T14:34:19Z",
11
+ "source_database_mutated": true,
12
+ "executed_at": "2026-06-20T14:34:19Z",
13
+ "receipt_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333"
14
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "schema_version": "synapsor.execution-receipt.v1",
3
+ "writeback_job_id": "wbj_124",
4
+ "proposal_id": "wrp_124",
5
+ "runner_id": "runner_123",
6
+ "status": "conflict",
7
+ "rows_affected": 0,
8
+ "idempotency_key": "wrp_124:INV-3001",
9
+ "previous_version": "2026-06-20T14:31:08Z",
10
+ "new_version": "2026-06-20T14:39:19Z",
11
+ "source_database_mutated": false,
12
+ "executed_at": "2026-06-20T14:40:19Z",
13
+ "safe_error_code": "VERSION_CONFLICT",
14
+ "receipt_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
15
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "schema_version": "synapsor.runner-registration.v1",
3
+ "runner_id": "runner_123",
4
+ "runner_version": "0.1.0-alpha.0",
5
+ "engines": [
6
+ "postgres",
7
+ "mysql"
8
+ ],
9
+ "capabilities": [
10
+ "single_row_update",
11
+ "idempotency_receipts",
12
+ "version_conflict_guard"
13
+ ],
14
+ "scope": {
15
+ "project_id": "acme-support",
16
+ "source_ids": [
17
+ "src_pg_acme",
18
+ "src_mysql_acme"
19
+ ]
20
+ },
21
+ "registered_at": "2026-06-20T14:30:00Z"
22
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "schema_version": "synapsor.writeback-job.v1",
3
+ "writeback_job_id": "wbj_123",
4
+ "proposal_id": "wrp_123",
5
+ "proposal_version": 1,
6
+ "proposal_hash": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
7
+ "runner_scope": {
8
+ "project_id": "acme-support",
9
+ "source_id": "src_pg_acme"
10
+ },
11
+ "engine": "postgres",
12
+ "operation": "single_row_update",
13
+ "target": {
14
+ "schema": "public",
15
+ "table": "invoices",
16
+ "primary_key": {
17
+ "column": "id",
18
+ "value": "INV-3001"
19
+ }
20
+ },
21
+ "tenant_guard": {
22
+ "column": "tenant_id",
23
+ "value": "acme"
24
+ },
25
+ "allowed_columns": [
26
+ "late_fee_cents",
27
+ "waiver_reason"
28
+ ],
29
+ "patch": {
30
+ "late_fee_cents": 0,
31
+ "waiver_reason": "approved support waiver"
32
+ },
33
+ "conflict_guard": {
34
+ "kind": "column",
35
+ "column": "updated_at",
36
+ "expected_value": "2026-06-20T14:31:08Z"
37
+ },
38
+ "idempotency_key": "wrp_123:INV-3001",
39
+ "lease": {
40
+ "lease_id": "lease_123",
41
+ "attempt": 1,
42
+ "expires_at": "2026-06-20T14:36:00Z"
43
+ }
44
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synapsor/runner",
3
- "version": "0.1.0-alpha.10",
3
+ "version": "0.1.0-alpha.11",
4
4
  "description": "Commit-safe MCP runner for Postgres and MySQL agents",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -17,9 +17,11 @@
17
17
  "docs/**/*.md",
18
18
  "examples/dangerous-mcp-tools.json",
19
19
  "examples/app-owned-writeback/**",
20
+ "examples/mcp-postgres-billing-app-handler/**",
20
21
  "examples/openai-agents-http/**",
21
22
  "examples/openai-agents-stdio/**",
22
23
  "examples/reference-support-billing-app/**",
24
+ "fixtures/**",
23
25
  "recipes/**/*.json",
24
26
  "README.md",
25
27
  "LICENSE",