@miller-tech/uap 2.48.1 → 2.48.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miller-tech/uap",
3
- "version": "2.48.1",
3
+ "version": "2.48.2",
4
4
  "description": "Autonomous AI agent memory system with CLAUDE.md protocol enforcement",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -66,6 +66,20 @@ _UAP_DROID_SYNC_CONTRACTS_LOADED=1
66
66
  # local model id — it must never carry a qwen id.
67
67
  : "${DROID_ANTHROPIC_BASE_MODEL:=claude-sonnet-4-6}"
68
68
 
69
+ # DROID_CHAT_BASE_MODEL — the Factory BUILT-IN catalog id written into
70
+ # `baseModelId` of the OpenAI-shaped local entries (the proxy chat /v1 route
71
+ # and the direct Responses :8080 route). qwen3.8-max is the choice because the
72
+ # served stack IS the Qwen3.8 family (Flash-Next 125B arms and its Edge0-145B
73
+ # latent-MoE derivative): the entry inherits the built-in's Qwen3.8-class
74
+ # prompts, tool-call conventions, reasoning levels, and Script-mode
75
+ # eligibility instead of tripping the "does not map to a built-in model"
76
+ # warning. Same family, same catalog — this is a BUILT-IN id, never a local
77
+ # wire id: it must never be the served alias, a retired arm, or anything the
78
+ # registry's advertises lists carry. (The prefix-era guard "never a qwen id"
79
+ # predates the Factory catalog gaining Qwen3.8 built-ins; the exact local-id
80
+ # check lives in the sandbox suite.)
81
+ : "${DROID_CHAT_BASE_MODEL:=qwen3.8-max}"
82
+
69
83
  # DROID_SYNC_LOCK — lock file serialising concurrent Droid config writes
70
84
  # (session-start hook + manual installer run + a second Droid window).
71
85
  # Without it two writers read-modify-write the same JSON and one set of
@@ -95,15 +109,23 @@ fi
95
109
  # in place or left alone. "0" = patch only when present.
96
110
  # Reads from the caller's scope: MODEL_ALIAS, PROXY_URL, DIRECT_URL,
97
111
  # CTX_SESSION, CTX_POOL, MAX_OUTPUT, DROID_ANTHROPIC_BASE_MODEL,
98
- # PROXY_TOKEN (via UAP_SYNC_TOKEN env), DRY_RUN.
112
+ # DROID_CHAT_BASE_MODEL, PROXY_TOKEN (via UAP_SYNC_TOKEN env), DRY_RUN.
99
113
  # Migration rules (idempotent; no change => file left byte-identical):
100
- # * entries whose model is a RETIRED local id — or already the live
101
- # alias, or model-less but pointed at :4000/:8080 — converge onto
102
- # MODEL_ALIAS;
114
+ # * entries whose model is a RETIRED local id — already the live alias,
115
+ # a FLEET wire id (any registry advertises entry) pointed at this
116
+ # box's :4000/:8080, or model-less but pointed at :4000/:8080 —
117
+ # converge onto MODEL_ALIAS (fleet ids are gated on a local base:
118
+ # the compat names collide with real cloud ids, so a cloud-router
119
+ # entry carrying one survives untouched);
103
120
  # * route by existing shape: baseUrl with :8080 -> direct strata route
104
121
  # (pool-sized); :4000 WITHOUT /v1 -> Anthropic Messages root (proxy
105
- # root + baseModelId + apiKey only if absent, session-sized); anything
106
- # else local -> proxy chat route ($PROXY_URL/v1 + token);
122
+ # root + baseModelId=DROID_ANTHROPIC_BASE_MODEL + apiKey only if
123
+ # absent, session-sized); anything else local -> proxy chat route
124
+ # ($PROXY_URL/v1 + token); every camelCase local route also gains
125
+ # baseModelId (anthropic shape -> DROID_ANTHROPIC_BASE_MODEL, OpenAI
126
+ # shapes -> DROID_CHAT_BASE_MODEL) when absent, so Droid inherits the
127
+ # built-in's prompts/tools/reasoning instead of warning the entry
128
+ # "does not map to a built-in model";
107
129
  # * cloud models (anything else, including the :8317 router entries) are
108
130
  # deliberate user choices and are never repointed;
109
131
  # * a settings.json with NO local entry after migration gains the