@stellar-agent-services/dev-mcp 0.0.0-stage → 0.1.1

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 (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -2
  3. package/dist/docs.d.ts +35 -0
  4. package/dist/docs.d.ts.map +1 -0
  5. package/dist/docs.js +92 -0
  6. package/dist/docs.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +6 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/server.d.ts +14 -0
  12. package/dist/server.d.ts.map +1 -0
  13. package/dist/server.js +125 -0
  14. package/dist/server.js.map +1 -0
  15. package/package.json +40 -4
  16. package/repository/AGENTS.md +162 -0
  17. package/repository/CONTRIBUTING.md +95 -0
  18. package/repository/IMPLEMENTATION_PLAN.md +560 -0
  19. package/repository/README.md +80 -0
  20. package/repository/SECURITY.md +22 -0
  21. package/repository/apps/wallet/README.md +78 -0
  22. package/repository/docs/client-integration/README-AI.md +495 -0
  23. package/repository/docs/client-integration/README.md +138 -0
  24. package/repository/docs/dx-improvements.md +670 -0
  25. package/repository/docs/erc-compatibility.md +163 -0
  26. package/repository/docs/job-recovery.md +201 -0
  27. package/repository/docs/payment-client.md +290 -0
  28. package/repository/docs/provider-setup-guide.md +348 -0
  29. package/repository/docs/provider-standard.md +728 -0
  30. package/repository/docs/recovery/README-AI.md +288 -0
  31. package/repository/docs/recovery/README.md +119 -0
  32. package/repository/docs/sow-closeout.md +67 -0
  33. package/repository/docs/standard/README-AI.md +614 -0
  34. package/repository/docs/standard/README.md +108 -0
  35. package/repository/docs/verification.md +504 -0
  36. package/repository/examples/paid-service/README.md +33 -0
  37. package/repository/examples/python-upstream/README.md +44 -0
  38. package/repository/llms.txt +65 -0
  39. package/repository/packages/create-stellar-service/README.md +143 -0
  40. package/repository/packages/dev-mcp/README.md +51 -0
  41. package/repository/packages/payment-client/README.md +98 -0
  42. package/repository/packages/protocol/README.md +15 -0
  43. package/repository/packages/protocol/schemas/manifest.schema.json +272 -0
  44. package/repository/packages/protocol/test-vectors/README.md +45 -0
  45. package/repository/packages/provider-kit/README.md +509 -0
  46. package/repository/packages/provider-kit/schemas/gateway-config.schema.json +140 -0
  47. package/repository/packages/verifier/README.md +131 -0
  48. package/repository/plugins/stellar-agent-services/README.md +31 -0
@@ -0,0 +1,95 @@
1
+ # Contributing
2
+
3
+ Thanks for helping. This repository is a standard first and code second, so changes follow the order below.
4
+ AI coding agents should also read [AGENTS.md](AGENTS.md).
5
+
6
+ ## The order of a change
7
+
8
+ 1. **The spec.** A new behavior, field, error or guarantee starts as a rule in
9
+ [docs/provider-standard.md](docs/provider-standard.md), with an id. v1 is frozen: it only gains optional fields
10
+ and SHOULD rules. A breaking change waits for v2.
11
+ 2. **The code that implements it:** `packages/protocol` (types, constants, reference checks, test vectors), then
12
+ `packages/provider-kit` and `packages/payment-client`.
13
+ 3. **The verifier:** a check, or a finding in an existing check, that fails a provider breaking the new rule and
14
+ cites its id.
15
+ 4. **The docs:** the human summary and the AI reference for the area (`docs/*/README.md`, `docs/*/README-AI.md`),
16
+ the package README's file table, and `llms.txt` if you add a document. Then run `npm run llms`.
17
+
18
+ A fix inside the existing rules skips step 1.
19
+
20
+ ## Before you open a pull request
21
+
22
+ ```bash
23
+ npm install
24
+ npm run typecheck
25
+ npm test
26
+ npm run llms:check
27
+ ```
28
+
29
+ - Tests never touch the network. Use the fakes in each package's `test/support/`.
30
+ - Pin dependency versions exactly.
31
+ - No keys, `.env` files, journals or job databases in commits.
32
+ - Money paths fail closed. If a change touches payment, settlement or recovery, say in the pull request how it
33
+ keeps "never charge twice" (`[J13]`, `[P9]`).
34
+
35
+ ## What CI checks
36
+
37
+ [ci.yml](.github/workflows/ci.yml) runs on every pull request. None of it signs or pays, and it uses no secret.
38
+
39
+ | Job | What it checks | Run it here |
40
+ | --- | --- | --- |
41
+ | Typecheck, test, build | The four commands above, the wallet and approval pages, and what each npm package would publish: its files, metadata and shared version | `npm run build && npm run packages:check` |
42
+ | New project, 6 jobs | `create-stellar-service` from this clone, each kind on testnet and on mainnet: the project installs with one copy of the Stellar SDK, builds and starts, and the verifier passes it (C1, C3, C6, C7). A mainnet project must refuse to start without the facilitator's API key. On testnet the project's Dockerfile is built too. The facilitator and the verifier's chain lookup are stand-ins. | `npm run scaffold:check -- --kind typescript --network mainnet` |
43
+ | npm publish rehearsal | Every package published to a throwaway registry (Verdaccio on the runner), installed from it and used: imports, commands, the MCP server's documents, and projects made by the published scaffolder. It warns when a plain install brings two Stellar SDKs or dependencies `npm audit` flags. | `npm run packages:rehearse` |
44
+ | Gateway image | `packages/provider-kit/Dockerfile` builds and runs | `docker build -f packages/provider-kit/Dockerfile .` |
45
+
46
+ The new-project checks and the rehearsal install from the npm registry. Run them after `npm run build`.
47
+
48
+ [live.yml](.github/workflows/live.yml) runs every day and from the Actions tab, never on pull requests, since it
49
+ depends on services outside this repository:
50
+
51
+ - **What the packages expect** on testnet and mainnet: the facilitator, Soroban RPC, Horizon, the USDC contract and
52
+ the Stellar 8004 registries (`npm run live:check`). Read-only.
53
+ - **A paid call on testnet**: a new project, paid once by `provider-kit try --yes` from a throwaway account with test
54
+ money.
55
+ - **A mainnet project against OpenZeppelin's facilitator**, with the repository secret `MAINNET_FACILITATOR_AUTH`
56
+ (`Bearer <key>`, a key from [channels.openzeppelin.com/gen](https://channels.openzeppelin.com/gen)). Nothing is
57
+ paid on mainnet. Without the secret, this job is skipped, and the daily check only confirms the facilitator answers.
58
+
59
+ ## Releasing
60
+
61
+ Every package is released together at one version, since a project made by `create-stellar-service` x.y.z depends
62
+ on `provider-kit` x.y.z. A version tag runs [release.yml](.github/workflows/release.yml): every CI check again, then
63
+ the npm packages with provenance, the gateway image at `ghcr.io/algorialabs/provider-kit`, and a GitHub release.
64
+
65
+ ```bash
66
+ npm run packages:version 0.2.0 # every package and the dependencies between them, and package-lock.json
67
+ git commit -am "Release 0.2.0" && git tag v0.2.0 && git push origin main v0.2.0
68
+ ```
69
+
70
+ A version with a suffix, such as `0.2.0-rc.1`, goes to npm under the `next` tag, so `npm install` keeps getting the
71
+ last release. Run the workflow from the Actions tab with "dry run" on to go through every step without publishing.
72
+
73
+ The first release needs three things done once:
74
+
75
+ 1. Remove `"private": true` from each package under `packages/`. `npm run packages:check` lists the ones left;
76
+ the publish refuses to start while any is.
77
+ 2. Publish the first version with a token, since npm only trusts a workflow for a package that exists: an npm
78
+ granular access token with read and write access to your packages, new ones included, saved as the repository
79
+ secret `NPM_TOKEN`. The `@stellar-agent-services` organization must exist on npm, with you able to publish to it.
80
+ 3. Then make npm trust the workflow instead: on npmjs.com, each package's settings → Trusted publishing → GitHub
81
+ Actions, organization `AlgoriaLabs`, repository `stellar-agent-services`, workflow `release.yml`, environment `npm`.
82
+ Delete the `NPM_TOKEN` secret and the token. Later versions publish with no token at all.
83
+
84
+ The `npm` environment can require an approval before each publish (Settings → Environments → npm).
85
+
86
+ ## Issues
87
+
88
+ Pick the template that fits: a question about integrating, a proposal to change the standard, or a request to
89
+ verify a provider. Report security problems privately, as [SECURITY.md](SECURITY.md) says.
90
+
91
+ ## Wallet and payment adapters
92
+
93
+ Adapters for other wallets or payment methods follow
94
+ [docs/client-integration/README.md](docs/client-integration/README.md). They live in their own packages and pass
95
+ the conformance checks in `@stellar-agent-services/payment-client/conformance`.