@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.
- package/LICENSE +21 -0
- package/README.md +50 -2
- package/dist/docs.d.ts +35 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/docs.js +92 -0
- package/dist/docs.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +14 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +125 -0
- package/dist/server.js.map +1 -0
- package/package.json +40 -4
- package/repository/AGENTS.md +162 -0
- package/repository/CONTRIBUTING.md +95 -0
- package/repository/IMPLEMENTATION_PLAN.md +560 -0
- package/repository/README.md +80 -0
- package/repository/SECURITY.md +22 -0
- package/repository/apps/wallet/README.md +78 -0
- package/repository/docs/client-integration/README-AI.md +495 -0
- package/repository/docs/client-integration/README.md +138 -0
- package/repository/docs/dx-improvements.md +670 -0
- package/repository/docs/erc-compatibility.md +163 -0
- package/repository/docs/job-recovery.md +201 -0
- package/repository/docs/payment-client.md +290 -0
- package/repository/docs/provider-setup-guide.md +348 -0
- package/repository/docs/provider-standard.md +728 -0
- package/repository/docs/recovery/README-AI.md +288 -0
- package/repository/docs/recovery/README.md +119 -0
- package/repository/docs/sow-closeout.md +67 -0
- package/repository/docs/standard/README-AI.md +614 -0
- package/repository/docs/standard/README.md +108 -0
- package/repository/docs/verification.md +504 -0
- package/repository/examples/paid-service/README.md +33 -0
- package/repository/examples/python-upstream/README.md +44 -0
- package/repository/llms.txt +65 -0
- package/repository/packages/create-stellar-service/README.md +143 -0
- package/repository/packages/dev-mcp/README.md +51 -0
- package/repository/packages/payment-client/README.md +98 -0
- package/repository/packages/protocol/README.md +15 -0
- package/repository/packages/protocol/schemas/manifest.schema.json +272 -0
- package/repository/packages/protocol/test-vectors/README.md +45 -0
- package/repository/packages/provider-kit/README.md +509 -0
- package/repository/packages/provider-kit/schemas/gateway-config.schema.json +140 -0
- package/repository/packages/verifier/README.md +131 -0
- 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`.
|