@inference/fast 0.0.38-beta.85 → 0.0.39-beta.88

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 (2) hide show
  1. package/README.md +57 -0
  2. package/package.json +9 -6
package/README.md CHANGED
@@ -75,3 +75,60 @@ bun run dev -- login
75
75
 
76
76
  The dashboard and inference URLs are derived automatically from a localhost
77
77
  relay unless explicitly overridden.
78
+
79
+ ## Testing integrations
80
+
81
+ Three suites cover the harness integrations:
82
+
83
+ - `bun run test:integration` — hermetic; spawns the CLI against a local mock
84
+ gateway and asserts the exact config every harness writes (all Claude slots,
85
+ pickers, per-agent models, byte-exact `off` restore), plus drift between the
86
+ shipped harnesses and the fast website's integration list. Runs in PR CI via
87
+ `ci:build-and-verify`.
88
+ - `bun run test:e2e` (`tests/auth-flow/`) — the full auth flow against the
89
+ LOCAL stack: a fresh account signs up, the CLI does the real device-code
90
+ login (the test approves the code server-side, no browser), the relay mints
91
+ a machine key through tRPC, and `fast <harness> on` writes config; `logout`
92
+ restores and the disabled key is proven rejected by the gateway. Runs in the
93
+ e2e harness (`[inference] fast-cli auth-flow e2e` job). Needs the local stack
94
+ (`task run-test-harness-headless`) on current code — the CLI's catalog
95
+ schema requires `supported_endpoints` on every model.
96
+ - `.github/workflows/inference--fast-cli-e2e.yml` — live end-to-end against
97
+ **prod** (`api.inference.net`): installs the real harness binaries, connects
98
+ them, and runs a two-turn probe per model — the second turn must reply and
99
+ show a prompt-cache read covering most of the request (the "only the new
100
+ message is uncached" invariant). Runs nightly against the latest
101
+ `@inference/fast@beta` on npm. Prod because this is the release gate for the
102
+ stack users actually hit, and many models are not hosted in dev. Its resolve
103
+ step also carries the live-catalog contract (the CLI's default models must
104
+ be present) so a serving-side catalog change fails the nightly run, not an
105
+ unrelated PR.
106
+
107
+ To test any integration against any model(s) on demand:
108
+
109
+ ```bash
110
+ gh workflow run inference--fast-cli-e2e.yml \
111
+ -f harnesses=claude,codex \
112
+ -f models=glm-5.2-fast,kimi-k3-fast \
113
+ -f cli_source=npm-beta \
114
+ -f enable_images=true
115
+ ```
116
+
117
+ `harnesses=all` and `models=default` (the defaults) run every harness against
118
+ its default models. A model that is not in the prod catalog fails the setup
119
+ job before any install starts. The gateway converts every wire API
120
+ (`/v1/messages`, `/v1/responses`, `/v1/chat/completions`) for every hosted
121
+ model, so any catalog model can pair with any harness.
122
+
123
+ To run the same probe locally against prod with your own harness installs
124
+ (seed a config.json with a machine key first, e.g. by running `fast login`
125
+ against prod once and copying `~/.inference-fast/config.json`):
126
+
127
+ ```bash
128
+ INFERENCE_FAST_CONFIG_DIR=<state-dir-with-config.json> \
129
+ INFERENCE_FAST_RELAY_URL=https://relay.inference.net \
130
+ INFERENCE_FAST_API_URL=https://api.inference.net \
131
+ HARNESS=claude MODEL=claude-haiku-4-5 \
132
+ bun run test:live
133
+ # add ENABLE_IMAGES=true MODEL_VISION=true to include the image probe
134
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inference/fast",
3
- "version": "0.0.38-beta.85",
3
+ "version": "0.0.39-beta.88",
4
4
  "description": "Connect coding agents to fast Inference.net models",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -24,10 +24,10 @@
24
24
  "pi"
25
25
  ],
26
26
  "optionalDependencies": {
27
- "@inference/fast-darwin-arm64": "0.0.38-beta.85",
28
- "@inference/fast-darwin-x64": "0.0.38-beta.85",
29
- "@inference/fast-linux-x64": "0.0.38-beta.85",
30
- "@inference/fast-linux-arm64": "0.0.38-beta.85"
27
+ "@inference/fast-darwin-arm64": "0.0.39-beta.88",
28
+ "@inference/fast-darwin-x64": "0.0.39-beta.88",
29
+ "@inference/fast-linux-x64": "0.0.39-beta.88",
30
+ "@inference/fast-linux-arm64": "0.0.39-beta.88"
31
31
  },
32
32
  "scripts": {
33
33
  "build": "bun run clean:bin && bun run build:cli",
@@ -49,6 +49,9 @@
49
49
  "lint:fix": "cd ../.. && ./node_modules/.bin/oxlint --type-aware --fix --config oxlint.config.mjs apps/fast-cli",
50
50
  "tsc": "../../node_modules/typescript-7/bin/tsc --build",
51
51
  "test": "vitest run --config vitest.config.ts",
52
- "test:unit": "vitest run --config vitest.config.ts"
52
+ "test:e2e": "vitest run --config vitest.e2e.config.ts",
53
+ "test:integration": "vitest run --config vitest.config.ts tests/integration",
54
+ "test:live": "vitest run --config vitest.live.config.ts",
55
+ "test:unit": "vitest run --config vitest.config.ts tests/unit"
53
56
  }
54
57
  }