@synapsor/runner 1.5.3 → 1.5.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.
- package/CHANGELOG.md +44 -2
- package/README.md +20 -12
- package/dist/cli.d.ts.map +1 -1
- package/dist/runner.mjs +2332 -501
- package/dist/runtime.mjs +788 -148
- package/dist/shadow.mjs +101 -1
- package/docs/capability-authoring.md +6 -1
- package/docs/cloud-mode.md +18 -0
- package/docs/database-enforced-scope.md +8 -0
- package/docs/dsl-reference.md +45 -4
- package/docs/getting-started-own-database.md +6 -3
- package/docs/guarded-crud-writeback.md +10 -1
- package/docs/http-mcp.md +222 -207
- package/docs/limitations.md +9 -2
- package/docs/local-mode.md +5 -2
- package/docs/mcp-client-setup.md +24 -11
- package/docs/mcp-clients.md +10 -4
- package/docs/openai-agents-sdk.md +16 -2
- package/docs/production.md +72 -7
- package/docs/release-notes.md +44 -3
- package/docs/runner-bundles.md +7 -2
- package/docs/runner-config-reference.md +96 -6
- package/docs/running-a-runner-fleet.md +42 -13
- package/docs/security-boundary.md +38 -3
- package/docs/store-lifecycle.md +93 -5
- package/examples/openai-agents-http/README.md +10 -4
- package/examples/openai-agents-http/agent.py +2 -2
- package/examples/runner-fleet/Dockerfile +7 -2
- package/examples/runner-fleet/README.md +11 -7
- package/examples/runner-fleet/docker-compose.yml +4 -4
- package/examples/runner-fleet/mint-dev-token.mjs +1 -1
- package/examples/runner-fleet/start-tls-runner.sh +21 -0
- package/examples/runner-fleet/synapsor.runner.json +27 -1
- package/examples/support-plan-credit/README.md +6 -1
- package/examples/support-plan-credit/mcp-client-examples/generic-streamable-http.json +4 -1
- package/examples/support-plan-credit/mcp-client-examples/openai-agents-streamable-http.ts +4 -0
- package/examples/support-plan-credit/synapsor.contract.json +0 -3
- package/package.json +1 -1
- package/schemas/synapsor.runner.schema.json +80 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,48 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 1.5.
|
|
3
|
+
## 1.5.4 (prepared, not published)
|
|
4
|
+
|
|
5
|
+
### Networked MCP authentication hardening
|
|
6
|
+
|
|
7
|
+
- Defines explicit local-loopback, remote single-tenant, and shared multi-tenant
|
|
8
|
+
HTTP security profiles while preserving zero-configuration local stdio.
|
|
9
|
+
- Refuses non-loopback cleartext listeners before bind unless the operator
|
|
10
|
+
explicitly selects a trusted TLS proxy or authenticated break-glass posture.
|
|
11
|
+
Runner-owned TLS and optional mTLS remain supported.
|
|
12
|
+
- Hardens opaque endpoint tokens with environment-only provisioning, production
|
|
13
|
+
entropy checks, constant-time comparison, one bounded previous-token rotation
|
|
14
|
+
slot, and per-session credential pinning. Opaque tokens remain service access
|
|
15
|
+
credentials, not tenant or user identity.
|
|
16
|
+
- Requires verified signed identity for shared deployments. Runner validates
|
|
17
|
+
algorithm, signature, issuer, audience/resource, time, scope, tenant, and
|
|
18
|
+
principal on every request, including requests for existing MCP sessions.
|
|
19
|
+
- Adds RFC 9728 protected-resource metadata and standards-correct Bearer
|
|
20
|
+
challenges for external authorization servers. Runner remains a protected
|
|
21
|
+
resource and does not issue passwords, access tokens, or refresh tokens.
|
|
22
|
+
- Adds exact Origin and Host policy, bounded headers/bodies/connections/sessions,
|
|
23
|
+
TLS preflight, bounded public-only JWKS handling, and safe overload responses.
|
|
24
|
+
- Expands `doctor`, help, client generators, fleet examples, and deployment docs
|
|
25
|
+
so operators can distinguish TLS, Bearer presentation, opaque tokens, JWTs,
|
|
26
|
+
MCP session IDs, trusted context, database scope, and operator authority
|
|
27
|
+
without printing credential values.
|
|
28
|
+
- Adds read-only, no-ID-first `lifecycle` inspection across local SQLite and
|
|
29
|
+
shared PostgreSQL runtime stores. Latest, filtered business-object lookup, and
|
|
30
|
+
proposal/evidence/replay/job/intent/receipt/audit handles resolve one typed,
|
|
31
|
+
redacted proposal-to-receipt/replay timeline without creating jobs, leases,
|
|
32
|
+
source calls, or Cloud synchronization.
|
|
33
|
+
- Makes UPDATE conflict guarding exact by default in the SQL-like DSL.
|
|
34
|
+
Omitting `CONFLICT GUARD <column>` now fails. The explicit legacy
|
|
35
|
+
`CONFLICT GUARD WEAK ROW HASH ACKNOWLEDGED` form is limited to ordinary
|
|
36
|
+
single-row source-DB UPDATE and warns that projection hashing can miss outside
|
|
37
|
+
changes.
|
|
38
|
+
- Preserves canonical `SESSION` for implementations with a real typed session
|
|
39
|
+
boundary while making Runner fail closed with
|
|
40
|
+
`SESSION_BINDING_UNSUPPORTED`. Runner-targeted DSL validation, contract load,
|
|
41
|
+
lint/explain, and runtime no longer allow an environment fallback.
|
|
42
|
+
- Prepares `@synapsor/runner@1.5.4` and `@synapsor/dsl@1.4.4`;
|
|
43
|
+
`@synapsor/spec@1.4.2` and the Cloud CLI remain unchanged.
|
|
44
|
+
|
|
45
|
+
## 1.5.3 (published 2026-07-21)
|
|
4
46
|
|
|
5
47
|
### Intent to Safe Action
|
|
6
48
|
|
|
@@ -26,7 +68,7 @@
|
|
|
26
68
|
publishes an honest alternatives guide, and adds a deterministic 36-second
|
|
27
69
|
support-plan-credit cut backed by real PostgreSQL proposal, receipt, retry,
|
|
28
70
|
and stale-conflict evidence.
|
|
29
|
-
-
|
|
71
|
+
- Published only `@synapsor/runner@1.5.3`; `@synapsor/spec@1.4.2`,
|
|
30
72
|
`@synapsor/dsl@1.4.3`, and the Cloud CLI remain unchanged.
|
|
31
73
|
|
|
32
74
|
## 1.5.2 (prepared, not published)
|
package/README.md
CHANGED
|
@@ -21,8 +21,7 @@ No database, Docker, config, MCP client, LLM, or account is required:
|
|
|
21
21
|
npx -y @synapsor/runner try --prove
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
`npx` download is recorded separately because registry and network time vary.
|
|
24
|
+
Timing begins after package resolution; cold `npx` download time varies.
|
|
26
25
|
|
|
27
26
|
The embedded synthetic source requests a $55 waiver and proves:
|
|
28
27
|
|
|
@@ -34,9 +33,9 @@ Restart-safe retry: yes; duplicate mutations: 0
|
|
|
34
33
|
Stale apply refused: yes
|
|
35
34
|
```
|
|
36
35
|
|
|
37
|
-
Review happens outside
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
Review happens outside model-facing tools. State is stored under
|
|
37
|
+
`./.synapsor/try/`; this proves the boundary, not your database connection.
|
|
38
|
+
`demo --quick` remains a noninteractive compatibility alias.
|
|
40
39
|
|
|
41
40
|
## Protect One Action In Your Application
|
|
42
41
|
|
|
@@ -86,9 +85,15 @@ The agent has no approval or commit tool. Runner rechecks scope, policy, row
|
|
|
86
85
|
version, bounds, and idempotency before returning a receipt; a retry cannot
|
|
87
86
|
duplicate the mutation and a stale proposal conflicts.
|
|
88
87
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
Inspect the latest lifecycle without copying an id:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
synapsor-runner lifecycle --details --store ./.synapsor/local.db
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
See the [own-database guide](docs/getting-started-own-database.md),
|
|
95
|
+
[Cursor plugin guide](docs/cursor-plugin.md), and
|
|
96
|
+
[store lifecycle guide](docs/store-lifecycle.md) for the complete paths.
|
|
92
97
|
|
|
93
98
|
## Audit An Existing MCP Server
|
|
94
99
|
|
|
@@ -155,10 +160,12 @@ not make raw SQL or prompt-injection-prone clients safe.
|
|
|
155
160
|
| `postgres_rls` | PostgreSQL also checks transaction-bound tenant/principal scope. Arbitrary trusted-context or credential control remains outside this guarantee. |
|
|
156
161
|
| `tenant_bound` | Authenticated context selects a restricted per-tenant credential or process. |
|
|
157
162
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
163
|
+
Use stdio; no socket opens. HTTP requires authentication; non-loopback
|
|
164
|
+
listeners require TLS or an explicit trusted TLS proxy. Shared services require
|
|
165
|
+
signed claims. Model-controlled input and MCP session IDs never establish
|
|
166
|
+
identity. See [HTTP MCP].
|
|
167
|
+
MySQL has no native RLS; use restricted views or tenant credentials. See
|
|
168
|
+
[Database scope] and the
|
|
162
169
|
[build-vs-adopt guide](docs/why-synapsor-vs-app-guardrails.md).
|
|
163
170
|
|
|
164
171
|
## Connect A Staging Database
|
|
@@ -216,6 +223,7 @@ See [Security Boundary](docs/security-boundary.md) and
|
|
|
216
223
|
[Current Limitations](docs/limitations.md).
|
|
217
224
|
|
|
218
225
|
[Database scope]: docs/database-enforced-scope.md
|
|
226
|
+
[HTTP MCP]: docs/http-mcp.md
|
|
219
227
|
|
|
220
228
|
## Operate The Approval Loop
|
|
221
229
|
|
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,EAAoX,KAAK,WAAW,EAAyJ,MAAM,6BAA6B,CAAC;AAIxkB,OAAO,EAsBL,KAAK,qBAAqB,EAK3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAmI,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAqG,KAAK,YAAY,EAAwB,MAAM,2BAA2B,CAAC;AAEnY,OAAO,EAQL,KAAK,gBAAgB,EAEtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAaL,KAAK,yBAAyB,EAG/B,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAYA,OAAO,EAAoX,KAAK,WAAW,EAAyJ,MAAM,6BAA6B,CAAC;AAIxkB,OAAO,EAsBL,KAAK,qBAAqB,EAK3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAmI,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAqG,KAAK,YAAY,EAAwB,MAAM,2BAA2B,CAAC;AAEnY,OAAO,EAQL,KAAK,gBAAgB,EAEtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAaL,KAAK,yBAAyB,EAG/B,MAAM,8BAA8B,CAAC;AAuWtC,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqE1D;AAwID,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,CA+YjB;AA+tJD,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAc/H;AAojBD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,YAAY,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,OAAO,CAAC,IAAI,CAAC,CA4Gf;AAugDD,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"}
|