@nathapp/nax 0.81.1 → 0.82.0-canary.10

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 (3) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/nax.js +95038 -107430
  3. package/package.json +11 -6
package/CHANGELOG.md CHANGED
@@ -17,6 +17,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
17
17
  ### Fixed
18
18
 
19
19
  - **watchdog:** Count ACP `tool_call` / `tool_call_update` stream activity by default, and add `agent.idleWatchdog.toolCallOnlyIdleTimeoutSeconds` (default 1800s) so long-running tool-only sessions stay alive without masking runaway tool loops.
20
+ - **Fixed** — a same-agent fallback hop dispatched the previous model, because
21
+ `SessionManager` reused a live session whenever the agent name matched and
22
+ discarded the requested endpoint. Same-agent ladder rungs and sticky endpoints
23
+ inherited by warm rectification ops were both inert (#1965).
24
+
25
+ ### Changed
26
+
27
+ - **Changed** — `agent.fallback.maxHopsPerStory` now bounds ladder DEPTH per
28
+ (story, tier, agent, role) rather than counting swap events per story, so a
29
+ story keeps descending its ladder across its operations instead of stranding
30
+ later ops on a dead endpoint.
31
+
32
+ ### Added
33
+
34
+ - **Added** — `agent.fallback.map` agents are validated against `agent.protocol`
35
+ at config load instead of failing mid-story at dispatch.
36
+
37
+ ### Fixed
38
+
39
+ - **Fixed** — `resolveFallbackModelId` resolved a literal model pin in
40
+ preference to a co-present tier, so a cooldown recorded at mark time
41
+ (`markUnavailable(agent, failure, tier, dispatchedModel)`, where `tier` is
42
+ declared and `dispatchedModel` is the hop's derived endpoint) and a
43
+ candidate lookup at read time (a bare `{agent, tier}` rung, no model) could
44
+ key on different identities for the same endpoint — a rung that just died
45
+ could read back as healthy. Precedence is now tier-first: when a tier is
46
+ present and `models` is available, the tier map is authoritative, and the
47
+ pin is used only when there is no tier, or the tier fails to resolve.
48
+ - **Fixed** — `AgentManager.configureRuntime` silently dropped `models`. An
49
+ `AgentManager` injected via `opts.agentManager` in `runtime/index.ts` (which
50
+ spreads `models: config.models` into `configureRuntime`) never had its
51
+ `_models` backfilled, so `resolveFallbackModelId` returned `undefined` for
52
+ every tier and a rung like `{agent: "native", model: "powerful"}` never
53
+ folded to its named tier — it dispatched the literal string `"powerful"` as
54
+ a model id, with no error and no log. `configureRuntime` now accepts
55
+ `models` and assigns it with the same guard style as its siblings.
56
+
57
+ ### Migration
58
+
59
+ - **Migration** — a config that names an agent in `agent.fallback.map` which the
60
+ declared `agent.protocol` does not permit is now rejected at config load
61
+ rather than failing mid-story with `AGENT_NOT_FOUND`. A ladder mixing
62
+ `native` with acpx agents requires `agent.protocol: "hybrid"`; previously
63
+ such a config parsed and failed later, at dispatch.
20
64
 
21
65
  ## [0.51.2] — 2026-03-22
22
66