@everfur/cli 0.1.0

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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Everfur Health, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,114 @@
1
+ # Everfur CLI
2
+
3
+ Plan, verify, and diagnose an [Everfur](https://everfur.com) pet-health integration from the terminal,
4
+ and serve the same tools to your coding agent over MCP.
5
+
6
+ Everfur lets partner apps embed veterinary chat, health records, and pet-state surfaces via
7
+ `@everfur/sdk` (React Native). This CLI is the integration companion: it reads your project, plans the
8
+ integration, exercises the live wire, and explains what it finds.
9
+
10
+ ## The fastest path: let your agent do it
11
+
12
+ The Everfur MCP server ships with this package (and standalone as `@everfur/mcp`). Add it to your
13
+ agent's MCP configuration:
14
+
15
+ ```json
16
+ {
17
+ "mcpServers": {
18
+ "everfur": {
19
+ "command": "npx",
20
+ "args": ["-y", "@everfur/mcp"],
21
+ "env": {
22
+ "EVERFUR_API_BASE_URL": "https://api.everfur.com/api/v1",
23
+ "EVERFUR_PARTNER_KEY": "pk_live_your_key"
24
+ }
25
+ }
26
+ }
27
+ }
28
+ ```
29
+
30
+ Then ask your agent to add Everfur to your app. The `everfur_plan_integration` tool reads your project,
31
+ refuses to guess the facts only you can answer (which capabilities, which identity mode), and returns a
32
+ plan whose steps include the complete integration file, ready to write.
33
+
34
+ ## Install the CLI
35
+
36
+ ```bash
37
+ npm install -g @everfur/cli
38
+ ```
39
+
40
+ To run it once without installing, name the command explicitly:
41
+
42
+ ```bash
43
+ npx -y -p @everfur/cli everfur plan
44
+ ```
45
+
46
+ Plain `npx @everfur/cli` does not work, and the error it gives ("could not determine executable to
47
+ run") does not explain why: this package ships two binaries, `everfur` and `everfur-mcp`, and npx only
48
+ picks a binary on its own when there is exactly one, or when one is named after the package. `-p` names
49
+ the package and the word after it names the binary.
50
+
51
+ ## Commands
52
+
53
+ | Command | What it does |
54
+ |---|---|
55
+ | `everfur plan` | Produce an integration plan for the project in the current directory. |
56
+ | `everfur verify` | Exercise the wire: mint a session, read the verdict, assert it is not empty. |
57
+ | `everfur diagnose` | Explain why each capability is or is not available to this caller. |
58
+ | `everfur explain-error` | Explain an API error code: cause, retryability, and next action. |
59
+ | `everfur contract validate` | Validate a contract-public projection: envelope shape, then digest. |
60
+ | `everfur sandbox create` | Provision a partner secret key (Everfur-internal; requires an admin token). |
61
+
62
+ `--json` on any command emits a machine-readable document on stdout, which is what you want in CI.
63
+
64
+ ## Exit codes
65
+
66
+ CI is invited to branch on these. An existing code never changes meaning.
67
+
68
+ | Code | Name | Meaning |
69
+ |---|---|---|
70
+ | `0` | OK | The command produced a complete answer. |
71
+ | `1` | INTERNAL_ERROR | A bug in the CLI, or an unreadable filesystem. |
72
+ | `2` | USAGE_ERROR | Malformed invocation: unknown command or flag, missing flag value. |
73
+ | `3` | UNDERSPECIFIED | The CLI refused to guess. Required facts were missing; supply them and retry. |
74
+ | `4` | INVALID_CONTRACT | A named artifact was missing, unparseable, or failed schema validation. |
75
+ | `5` | DIGEST_MISMATCH | A loaded artifact was well shaped but its digest did not match its content. |
76
+ | `6` | REMOTE_FAILURE | The API could not be reached, timed out, or answered with a typed error. |
77
+ | `7` | VERIFICATION_FAILED | `verify` ran and at least one hard assertion failed. |
78
+ | `8` | SECRET_UNCLAIMABLE | `sandbox create` minted a key but no claim flow exists to hand it over safely. |
79
+ | `9` | BLOCKED | Everything you asked for is blocked by the contract; nothing can be built today. |
80
+
81
+ ---
82
+
83
+ ## What this release does NOT do
84
+
85
+ `everfur login` and `everfur test message` are unbuilt. They are absent rather than stubbed on
86
+ purpose: a stub that pretends teaches you to distrust the tool. Sending a test message is available
87
+ today through the MCP server's `everfur_send_test_message` tool, which refuses to run against anything
88
+ but a sandbox tenant.
89
+
90
+ ## Credentials
91
+
92
+ Configuration comes from environment variables only. No `.env` file is read.
93
+ No command prints, logs, or writes a credential; two commands DO handle them in memory: `everfur sandbox create` mints a partner
94
+ secret (and requires `EVERFUR_ADMIN_TOKEN`), and `everfur verify` reads your keys to exercise the wire.
95
+
96
+ | Variable | Used for |
97
+ |---|---|
98
+ | `EVERFUR_API_BASE_URL` | Everything that touches the network. No default host. |
99
+ | `EVERFUR_PARTNER_KEY` | Your publishable key (`pk_live_...`). Identifies your tenant. |
100
+ | `EVERFUR_PARTNER_SECRET_KEY` | Session minting, server side only. Never ship it in an app. |
101
+ | `EVERFUR_ADMIN_TOKEN` | Everfur-internal administration. Partners do not need this. |
102
+
103
+ **Getting keys:** Everfur keys are currently provisioned by the Everfur team during partner onboarding;
104
+ there is no self-serve signup yet. Contact [support@everfur.com](mailto:support@everfur.com) to get set
105
+ up. The publishable key is designed to ship inside your app; the secret key is not.
106
+
107
+ ## Documentation
108
+
109
+ The full integration guide, API reference, error catalog, and testing guide ship with the SDK:
110
+ [`@everfur/sdk` docs](https://github.com/Everfur-Health/everfur-sdk-rn/tree/main/docs/partner-integration).
111
+
112
+ ## License
113
+
114
+ MIT