@synapsor/runner 0.1.0-alpha.13 → 0.1.0-alpha.15
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 +93 -0
- package/README.md +7 -0
- package/dist/runner.mjs +3 -3
- package/docs/app-owned-executors.md +5 -0
- package/docs/handler-helper.md +22 -1
- package/docs/release-notes.md +19 -1
- package/docs/release-policy.md +1 -1
- package/examples/mcp-postgres-billing-app-handler/README.md +4 -3
- package/package.json +2 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `result_format: 2` for a stable MCP result envelope with
|
|
8
|
+
`ok`, `summary`, `data`, `proposal`, `error`, `evidence`,
|
|
9
|
+
`source_database_changed`, and `_meta.canonical_capability`.
|
|
10
|
+
- `--result-format v1|v2` for `mcp serve`, `mcp serve --transport
|
|
11
|
+
streamable-http`, `mcp serve-streamable-http`, and the legacy JSON-RPC bridge.
|
|
12
|
+
- Capability config fields `description`, per-argument `description`, and
|
|
13
|
+
`returns_hint`; these are surfaced in MCP tool metadata.
|
|
14
|
+
- `tools list` as a first-class alias for `tools preview`, including
|
|
15
|
+
`tools list --aliases`.
|
|
16
|
+
- `mcp client-config --include-instructions` for Claude/Cursor/OpenAI-style
|
|
17
|
+
client snippets with propose-first agent guidance.
|
|
18
|
+
- `schemas/synapsor.runner.schema.json` for editor validation.
|
|
19
|
+
- `docs/capability-authoring.md` and `docs/result-envelope-v2.md`.
|
|
20
|
+
- RFC source docs under `docs/rfcs/`.
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- OpenAI-safe aliases include the canonical Synapsor capability name in
|
|
25
|
+
descriptions/metadata so model-visible aliases can still be audited against
|
|
26
|
+
dotted capability names.
|
|
27
|
+
- v2 MCP errors redact raw driver/infra strings and map failures to a small
|
|
28
|
+
safe error-code enum.
|
|
29
|
+
|
|
30
|
+
### Compatibility
|
|
31
|
+
|
|
32
|
+
- Result envelope v1 remains the default in this alpha. Opt in with
|
|
33
|
+
`result_format: 2` or `--result-format v2`.
|
|
34
|
+
- The public command remains `synapsor-runner`.
|
|
35
|
+
|
|
36
|
+
## 0.1.0-alpha.15
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- Clarified that users install only `@synapsor/runner`. A handler is the
|
|
41
|
+
user's app endpoint or script for rich approved writes, and Runner includes
|
|
42
|
+
templates/examples to help build one.
|
|
43
|
+
|
|
44
|
+
## 0.1.0-alpha.14
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
|
|
48
|
+
- Clarified that `@synapsor/handler` is not published as a standalone npm
|
|
49
|
+
package yet. The TypeScript helper currently exists in the source monorepo
|
|
50
|
+
and as the bundled `synapsor-handler.mjs` shim used by the packaged
|
|
51
|
+
app-owned executor example.
|
|
52
|
+
- Included `CHANGELOG.md` in the `@synapsor/runner` npm tarball so users can
|
|
53
|
+
inspect alpha changes without cloning the repository.
|
|
54
|
+
|
|
55
|
+
## 0.1.0-alpha.13
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
- Reworked the README opening around a five-line mental model: agent talks to
|
|
60
|
+
Runner, Runner exposes capabilities, proposals are saved but not applied, and
|
|
61
|
+
approval/writeback stay outside the model-facing tool surface.
|
|
62
|
+
- Added plain definitions for capability, proposal, writeback, and executor near
|
|
63
|
+
the top of the README.
|
|
64
|
+
- Added the direct-writeback versus app-owned-executor rule up front: guarded
|
|
65
|
+
one-row updates can use Runner direct writeback; richer business actions use
|
|
66
|
+
an app-owned executor.
|
|
67
|
+
- Added a tiny readable own-database config example with one read capability and
|
|
68
|
+
one proposal capability so new users can picture what the guided wizard
|
|
69
|
+
creates.
|
|
70
|
+
|
|
71
|
+
## 0.1.0-alpha.12
|
|
72
|
+
|
|
73
|
+
### Added
|
|
74
|
+
|
|
75
|
+
- `doctor --check-writeback` verifies direct SQL writer connectivity,
|
|
76
|
+
receipt-table readiness, and rollback-only access to configured proposal
|
|
77
|
+
target tables/columns without mutating business rows.
|
|
78
|
+
- `docs/doctor.md` documents redacted setup checks, handler reachability,
|
|
79
|
+
direct SQL writeback probes, and receipt-table guidance.
|
|
80
|
+
- `store reset --yes` removes only the local SQLite ledger files and refuses
|
|
81
|
+
active server leases unless `--force` is provided.
|
|
82
|
+
|
|
83
|
+
### Changed
|
|
84
|
+
|
|
85
|
+
- Doctor output now warns when direct SQL writeback has not been probed and
|
|
86
|
+
points to `--check-writeback`.
|
|
87
|
+
- Packed/public verification scripts exercise `store reset` in addition to
|
|
88
|
+
stats/prune.
|
|
89
|
+
|
|
90
|
+
## 0.1.0-alpha.11
|
|
91
|
+
|
|
92
|
+
See [docs/release-notes.md](docs/release-notes.md) for the current published
|
|
93
|
+
alpha notes.
|
package/README.md
CHANGED
|
@@ -25,6 +25,10 @@ After writeback, Runner keeps receipts and replay so you can inspect what happen
|
|
|
25
25
|
- Executor: your app's writeback handler for anything richer than a guarded
|
|
26
26
|
one-row update.
|
|
27
27
|
|
|
28
|
+
You install only `@synapsor/runner`. There is no separate handler package to
|
|
29
|
+
install. A handler is your app's endpoint or script for rich approved writes;
|
|
30
|
+
Runner includes templates and examples to help you build one.
|
|
31
|
+
|
|
28
32
|
## Who Does What
|
|
29
33
|
|
|
30
34
|
You write the config: sources, trusted context, capabilities, visible fields,
|
|
@@ -585,6 +589,9 @@ your application service already owns business writes, configure an
|
|
|
585
589
|
`http_handler` or `command_handler` executor. Approval still happens outside
|
|
586
590
|
MCP, and the handler returns an applied/conflict/failed receipt for replay.
|
|
587
591
|
Starter handlers are included under `examples/app-owned-writeback`.
|
|
592
|
+
The packaged app-owned billing example also includes a bundled
|
|
593
|
+
`synapsor-handler.mjs` helper shim; `@synapsor/handler` is not published as a
|
|
594
|
+
standalone npm package yet.
|
|
588
595
|
You can also generate a starter handler directly:
|
|
589
596
|
|
|
590
597
|
```bash
|
package/dist/runner.mjs
CHANGED
|
@@ -2747,7 +2747,7 @@ function assertPersistentStoreAvailable(storePath) {
|
|
|
2747
2747
|
}
|
|
2748
2748
|
function createSynapsorMcpServer(runtime, options = {}) {
|
|
2749
2749
|
const server = new McpServer(
|
|
2750
|
-
{ name: "synapsor-runner", version: "0.1.0-alpha.
|
|
2750
|
+
{ name: "synapsor-runner", version: "0.1.0-alpha.15" },
|
|
2751
2751
|
{ capabilities: { tools: {}, resources: {} } }
|
|
2752
2752
|
);
|
|
2753
2753
|
const toolNameStyle = options.toolNameStyle ?? "canonical";
|
|
@@ -9172,7 +9172,7 @@ async function cloudConnect(args) {
|
|
|
9172
9172
|
return 1;
|
|
9173
9173
|
}
|
|
9174
9174
|
const runnerId = String(parsed.cloud.runner_id || process2.env.SYNAPSOR_RUNNER_ID || "synapsor_runner_local").trim();
|
|
9175
|
-
const runnerVersion = String(parsed.cloud.runner_version || process2.env.npm_package_version || "0.1.0-alpha.
|
|
9175
|
+
const runnerVersion = String(parsed.cloud.runner_version || process2.env.npm_package_version || "0.1.0-alpha.15").trim();
|
|
9176
9176
|
const engines = normalizeEngines(parsed.cloud.engines);
|
|
9177
9177
|
const capabilities = normalizeCapabilities(parsed.cloud.capabilities);
|
|
9178
9178
|
const client = new ControlPlaneClient({
|
|
@@ -13311,7 +13311,7 @@ function starterCloudConfig() {
|
|
|
13311
13311
|
base_url_env: "SYNAPSOR_CLOUD_BASE_URL",
|
|
13312
13312
|
runner_token_env: "SYNAPSOR_RUNNER_TOKEN",
|
|
13313
13313
|
runner_id: "synapsor_runner_local",
|
|
13314
|
-
runner_version: "0.1.0-alpha.
|
|
13314
|
+
runner_version: "0.1.0-alpha.15",
|
|
13315
13315
|
project_id: "token_scope",
|
|
13316
13316
|
adapter_id: "mcp.your_adapter",
|
|
13317
13317
|
source_id: "src_replace_me",
|
|
@@ -17,6 +17,11 @@ The model-facing MCP tool only creates a proposal. Approval happens outside MCP.
|
|
|
17
17
|
After approval, Runner calls your `http_handler` or `command_handler`, records
|
|
18
18
|
the receipt, and includes the result in replay.
|
|
19
19
|
|
|
20
|
+
A handler is your application endpoint or script. It is not a second Synapsor
|
|
21
|
+
package that users need to install. Install `@synapsor/runner`, then generate
|
|
22
|
+
or copy a handler template only when your approved write needs app-owned
|
|
23
|
+
business logic.
|
|
24
|
+
|
|
20
25
|
Do not use generic SQL for rich business transactions. Let the model propose,
|
|
21
26
|
let Synapsor Runner approve/replay, and let your app execute the transaction.
|
|
22
27
|
|
package/docs/handler-helper.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
Use the TypeScript handler helper when an approved Synapsor proposal should be
|
|
4
4
|
executed by your application service, not by Runner's direct SQL writer.
|
|
5
5
|
|
|
6
|
+
This is optional support code for your app-owned handler. Users install
|
|
7
|
+
`@synapsor/runner`; they do not install a separate handler package in the
|
|
8
|
+
current alpha.
|
|
9
|
+
|
|
6
10
|
The helper is the safe-by-default path for rich writes such as:
|
|
7
11
|
|
|
8
12
|
- inserting account-credit, refund-review, ticket, or ledger rows;
|
|
@@ -33,6 +37,23 @@ Current alpha scope:
|
|
|
33
37
|
Python helper is planned. For now, Python handlers should follow the documented
|
|
34
38
|
request/receipt schema and the FastAPI template in `examples/app-owned-writeback`.
|
|
35
39
|
|
|
40
|
+
## Distribution Status
|
|
41
|
+
|
|
42
|
+
The helper implementation exists in this source repo under `packages/handler`
|
|
43
|
+
and is used by the app-owned executor example and tests. It is not published as
|
|
44
|
+
a standalone `@synapsor/handler` npm package yet.
|
|
45
|
+
|
|
46
|
+
If you installed `@synapsor/runner` from npm, use one of these alpha paths:
|
|
47
|
+
|
|
48
|
+
- generate a starter handler with `synapsor-runner handler template ...`;
|
|
49
|
+
- copy from `examples/app-owned-writeback/`;
|
|
50
|
+
- run `examples/mcp-postgres-billing-app-handler/`, which includes a bundled
|
|
51
|
+
`synapsor-handler.mjs` shim inside the runner package.
|
|
52
|
+
|
|
53
|
+
The `@synapsor/handler` import below is the source-checkout API and the planned
|
|
54
|
+
standalone package API. Do not `npm install @synapsor/handler` until that
|
|
55
|
+
package is published.
|
|
56
|
+
|
|
36
57
|
## Schemas
|
|
37
58
|
|
|
38
59
|
Published schemas:
|
|
@@ -44,7 +65,7 @@ The helper accepts both the new `protocol_version: "1.0"` shape and the current
|
|
|
44
65
|
Runner `schema_version: "synapsor.handler-writeback.v1"` request shape during
|
|
45
66
|
the alpha migration.
|
|
46
67
|
|
|
47
|
-
## TypeScript Usage
|
|
68
|
+
## TypeScript Usage From A Source Checkout
|
|
48
69
|
|
|
49
70
|
```ts
|
|
50
71
|
import { createWritebackHandler } from "@synapsor/handler";
|
package/docs/release-notes.md
CHANGED
|
@@ -11,6 +11,24 @@ npx -y -p @synapsor/runner@alpha synapsor-runner demo --quick
|
|
|
11
11
|
The OSS runner command is `synapsor-runner`. The `synapsor` command is reserved
|
|
12
12
|
for the Synapsor Cloud CLI.
|
|
13
13
|
|
|
14
|
+
## 0.1.0-alpha.15
|
|
15
|
+
|
|
16
|
+
### Handler Wording Clarification
|
|
17
|
+
|
|
18
|
+
- README and app-owned executor docs now state that users install only
|
|
19
|
+
`@synapsor/runner`. A handler is the user's own app endpoint or script for
|
|
20
|
+
rich approved writes, not a second Synapsor package to install.
|
|
21
|
+
|
|
22
|
+
## 0.1.0-alpha.14
|
|
23
|
+
|
|
24
|
+
### Handler Helper And Changelog Clarity
|
|
25
|
+
|
|
26
|
+
- Public docs now state that `@synapsor/handler` is not published as a
|
|
27
|
+
standalone npm package yet. The helper currently ships as source under
|
|
28
|
+
`packages/handler` and as the bundled `synapsor-handler.mjs` shim in the
|
|
29
|
+
app-owned executor example included with `@synapsor/runner`.
|
|
30
|
+
- `CHANGELOG.md` is included in the `@synapsor/runner` npm tarball.
|
|
31
|
+
|
|
14
32
|
## 0.1.0-alpha.13
|
|
15
33
|
|
|
16
34
|
### README First-Five-Minutes Polish
|
|
@@ -199,5 +217,5 @@ After publishing an alpha, verify the public package from a clean temporary
|
|
|
199
217
|
directory:
|
|
200
218
|
|
|
201
219
|
```bash
|
|
202
|
-
./scripts/verify-published-alpha.sh 0.1.0-alpha.
|
|
220
|
+
./scripts/verify-published-alpha.sh 0.1.0-alpha.15
|
|
203
221
|
```
|
package/docs/release-policy.md
CHANGED
|
@@ -5,7 +5,7 @@ or an exact version:
|
|
|
5
5
|
|
|
6
6
|
```bash
|
|
7
7
|
npx -y -p @synapsor/runner@alpha synapsor-runner demo --quick
|
|
8
|
-
npm install -g @synapsor/runner@0.1.0-alpha.
|
|
8
|
+
npm install -g @synapsor/runner@0.1.0-alpha.15
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Do not rely on the untagged `latest` dist-tag until a stable release is
|
|
@@ -15,9 +15,10 @@ App-owned rich writeback:
|
|
|
15
15
|
- model-facing MCP only creates a proposal;
|
|
16
16
|
- approval happens outside MCP;
|
|
17
17
|
- Runner calls `billing_app_handler`;
|
|
18
|
-
- the app uses the first-party
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
- the app uses the first-party handler helper from the source workspace, or the
|
|
19
|
+
bundled `synapsor-handler.mjs` shim included in the runner npm package, to
|
|
20
|
+
verify bearer auth, HMAC signature, tenant scope, expected row version,
|
|
21
|
+
idempotency, and transaction/receipt shape;
|
|
21
22
|
- the handler business code inserts an `account_credits` row and updates the
|
|
22
23
|
invoice inside the helper-owned transaction;
|
|
23
24
|
- Runner records the handler receipt and replay.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synapsor/runner",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.15",
|
|
4
4
|
"description": "Commit-safe MCP runner for Postgres and MySQL agents",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"schemas/**",
|
|
26
26
|
"recipes/**/*.json",
|
|
27
27
|
"README.md",
|
|
28
|
+
"CHANGELOG.md",
|
|
28
29
|
"LICENSE",
|
|
29
30
|
"NOTICE",
|
|
30
31
|
"TRADEMARKS.md"
|