@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 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.13" },
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.13").trim();
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.13",
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
 
@@ -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";
@@ -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.13
220
+ ./scripts/verify-published-alpha.sh 0.1.0-alpha.15
203
221
  ```
@@ -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.13
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 `@synapsor/handler` helper to verify bearer
19
- auth, HMAC signature, tenant scope, expected row version, idempotency, and
20
- transaction/receipt shape;
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.13",
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"