@plurnk/plurnk-providers 1.1.0 → 1.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 (2) hide show
  1. package/README.md +18 -0
  2. package/package.json +6 -6
package/README.md CHANGED
@@ -45,6 +45,24 @@ The framework calls `YourClass.fromEnv(env, model, options?)` (sync or async) an
45
45
 
46
46
  First-party daughters install flat via [`@plurnk/plurnk-providers-all`](https://github.com/plurnk/plurnk-providers-all) so the scan finds them; a third party publishes under their own scope and installs alongside.
47
47
 
48
+ ## Consuming the lockstep family across version bumps
49
+
50
+ The family is **lockstep-released**: `@plurnk/plurnk-providers` and every `@plurnk/plurnk-providers-*` daughter publish at one version, and each daughter **peer-requires the engine at that exact version**. This is deliberate: the base contract ships breaking changes on most bumps (`contextWindow`, envelope reserves, the `<eos>` transport strip, telemetry kinds) with no semver-major, so a plugin built against engine vX must not silently run against vY. A tree mixing heads (engine `1.1.0` against a `1.0.9` daughter) is therefore **unresolvable by design** - the `ERESOLVE` is the peer guarantee catching a real mismatch at install time, not a bug.
51
+
52
+ **To move across a bump, set every family dependency to the target version in one install**, so npm resolves the whole set together:
53
+
54
+ ```
55
+ npm i @plurnk/plurnk-providers@vY @plurnk/plurnk-providers-xai@vY # ...and every other @plurnk/plurnk-providers* dep you use, all @vY
56
+ ```
57
+
58
+ Auto-discovering form (bumps whatever family deps are in your `package.json`, so no leaf is missed):
59
+
60
+ ```
61
+ npm i $(node -pe "Object.keys(require('./package.json').dependencies).filter(k=>k.startsWith('@plurnk/plurnk-providers')).map(k=>k+'@vY').join(' ')")
62
+ ```
63
+
64
+ Do **not** reach for `--force` or `--legacy-peer-deps`: those install the exact mismatched split the peer pin exists to forbid - an engine running against a plugin built for a different contract.
65
+
48
66
  ## Exports
49
67
 
50
68
  - `Provider`, `ChatMessage`, `ProviderResponse`, `ProviderAssistant`, `ProviderUsage`, `FinishReason`, `ProviderFactory`, `ProviderOptions`, `ProviderAlias` (+ `Discovery`, `DiscoverOptions`) — types.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-providers",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Framework + contract for plurnk LLM transports: built-in standard OpenAI-compatible providers plus scope-agnostic discovery of first-party and third-party provider packages.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -49,10 +49,10 @@
49
49
  "prepack": "npm run build"
50
50
  },
51
51
  "dependencies": {
52
- "@plurnk/gbnf": "1.1.0",
53
- "@plurnk/plurnk-aliases": "1.1.0",
54
- "@plurnk/plurnk-models": "1.1.0",
55
- "@plurnk/plurnk-providers-ollama": "1.1.0",
56
- "@plurnk/plurnk-meta": "1.1.0"
52
+ "@plurnk/gbnf": "1.1.1",
53
+ "@plurnk/plurnk-aliases": "1.1.1",
54
+ "@plurnk/plurnk-models": "1.1.1",
55
+ "@plurnk/plurnk-providers-ollama": "1.1.1",
56
+ "@plurnk/plurnk-meta": "1.1.1"
57
57
  }
58
58
  }