@miller-tech/uap 2.21.3 → 2.36.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 (328) hide show
  1. package/README.md +22 -10
  2. package/config/model-profiles/qwen38-coder390.json +46 -0
  3. package/config/model-profiles/qwen38.json +3 -2
  4. package/config/model-registry.json +110 -0
  5. package/dist/.tsbuildinfo +1 -1
  6. package/dist/benchmarks/paired/types.d.ts +2 -2
  7. package/dist/bin/cli.js +315 -20
  8. package/dist/bin/cli.js.map +1 -1
  9. package/dist/cli/attention.d.ts +6 -0
  10. package/dist/cli/attention.d.ts.map +1 -0
  11. package/dist/cli/attention.js +115 -0
  12. package/dist/cli/attention.js.map +1 -0
  13. package/dist/cli/bench-report.d.ts +82 -0
  14. package/dist/cli/bench-report.d.ts.map +1 -0
  15. package/dist/cli/bench-report.js +237 -0
  16. package/dist/cli/bench-report.js.map +1 -0
  17. package/dist/cli/clients.d.ts +6 -0
  18. package/dist/cli/clients.d.ts.map +1 -0
  19. package/dist/cli/clients.js +142 -0
  20. package/dist/cli/clients.js.map +1 -0
  21. package/dist/cli/dashboard-grants.d.ts +26 -0
  22. package/dist/cli/dashboard-grants.d.ts.map +1 -0
  23. package/dist/cli/dashboard-grants.js +69 -0
  24. package/dist/cli/dashboard-grants.js.map +1 -0
  25. package/dist/cli/dashboard-pace.d.ts +31 -0
  26. package/dist/cli/dashboard-pace.d.ts.map +1 -0
  27. package/dist/cli/dashboard-pace.js +42 -0
  28. package/dist/cli/dashboard-pace.js.map +1 -0
  29. package/dist/cli/dashboard-session.d.ts +25 -0
  30. package/dist/cli/dashboard-session.d.ts.map +1 -0
  31. package/dist/cli/dashboard-session.js +814 -0
  32. package/dist/cli/dashboard-session.js.map +1 -0
  33. package/dist/cli/dashboard-types.d.ts +18 -0
  34. package/dist/cli/dashboard-types.d.ts.map +1 -0
  35. package/dist/cli/dashboard-types.js +9 -0
  36. package/dist/cli/dashboard-types.js.map +1 -0
  37. package/dist/cli/dashboard.d.ts +2 -18
  38. package/dist/cli/dashboard.d.ts.map +1 -1
  39. package/dist/cli/dashboard.js +43 -793
  40. package/dist/cli/dashboard.js.map +1 -1
  41. package/dist/cli/deliver.d.ts +35 -0
  42. package/dist/cli/deliver.d.ts.map +1 -1
  43. package/dist/cli/deliver.js +93 -9
  44. package/dist/cli/deliver.js.map +1 -1
  45. package/dist/cli/diff.d.ts +85 -0
  46. package/dist/cli/diff.d.ts.map +1 -0
  47. package/dist/cli/diff.js +293 -0
  48. package/dist/cli/diff.js.map +1 -0
  49. package/dist/cli/eta.d.ts +35 -0
  50. package/dist/cli/eta.d.ts.map +1 -0
  51. package/dist/cli/eta.js +101 -0
  52. package/dist/cli/eta.js.map +1 -0
  53. package/dist/cli/handsfree.d.ts +7 -0
  54. package/dist/cli/handsfree.d.ts.map +1 -1
  55. package/dist/cli/handsfree.js +27 -0
  56. package/dist/cli/handsfree.js.map +1 -1
  57. package/dist/cli/hooks.d.ts.map +1 -1
  58. package/dist/cli/hooks.js +126 -5
  59. package/dist/cli/hooks.js.map +1 -1
  60. package/dist/cli/loops.d.ts +24 -5
  61. package/dist/cli/loops.d.ts.map +1 -1
  62. package/dist/cli/loops.js +92 -12
  63. package/dist/cli/loops.js.map +1 -1
  64. package/dist/cli/models.d.ts +62 -0
  65. package/dist/cli/models.d.ts.map +1 -0
  66. package/dist/cli/models.js +567 -0
  67. package/dist/cli/models.js.map +1 -0
  68. package/dist/cli/plan.d.ts +9 -0
  69. package/dist/cli/plan.d.ts.map +1 -1
  70. package/dist/cli/plan.js +57 -4
  71. package/dist/cli/plan.js.map +1 -1
  72. package/dist/cli/proxy-relay.d.ts +55 -0
  73. package/dist/cli/proxy-relay.d.ts.map +1 -0
  74. package/dist/cli/proxy-relay.js +116 -0
  75. package/dist/cli/proxy-relay.js.map +1 -0
  76. package/dist/cli/proxy.d.ts +4 -0
  77. package/dist/cli/proxy.d.ts.map +1 -1
  78. package/dist/cli/proxy.js +26 -1
  79. package/dist/cli/proxy.js.map +1 -1
  80. package/dist/cli/sandbox.d.ts +101 -4
  81. package/dist/cli/sandbox.d.ts.map +1 -1
  82. package/dist/cli/sandbox.js +393 -44
  83. package/dist/cli/sandbox.js.map +1 -1
  84. package/dist/cli/self.d.ts +13 -0
  85. package/dist/cli/self.d.ts.map +1 -0
  86. package/dist/cli/self.js +94 -0
  87. package/dist/cli/self.js.map +1 -0
  88. package/dist/cli/systemd-services.d.ts +2 -8
  89. package/dist/cli/systemd-services.d.ts.map +1 -1
  90. package/dist/cli/systemd-services.js +5 -20
  91. package/dist/cli/systemd-services.js.map +1 -1
  92. package/dist/cli/task.js +1 -1
  93. package/dist/cli/task.js.map +1 -1
  94. package/dist/cli/wizard-config.d.ts.map +1 -1
  95. package/dist/cli/wizard-config.js +31 -2
  96. package/dist/cli/wizard-config.js.map +1 -1
  97. package/dist/config/settings-registry.d.ts +1 -1
  98. package/dist/config/settings-registry.d.ts.map +1 -1
  99. package/dist/config/settings-registry.js +108 -0
  100. package/dist/config/settings-registry.js.map +1 -1
  101. package/dist/coordination/capability-router.js +2 -2
  102. package/dist/coordination/capability-router.js.map +1 -1
  103. package/dist/coordination/database.d.ts +13 -0
  104. package/dist/coordination/database.d.ts.map +1 -1
  105. package/dist/coordination/database.js +63 -7
  106. package/dist/coordination/database.js.map +1 -1
  107. package/dist/coordination/eta-inject.d.ts +32 -0
  108. package/dist/coordination/eta-inject.d.ts.map +1 -0
  109. package/dist/coordination/eta-inject.js +64 -0
  110. package/dist/coordination/eta-inject.js.map +1 -0
  111. package/dist/coordination/reactor.d.ts.map +1 -1
  112. package/dist/coordination/reactor.js +14 -0
  113. package/dist/coordination/reactor.js.map +1 -1
  114. package/dist/coordination/service.d.ts +18 -8
  115. package/dist/coordination/service.d.ts.map +1 -1
  116. package/dist/coordination/service.js +38 -28
  117. package/dist/coordination/service.js.map +1 -1
  118. package/dist/dashboard/client-registry.d.ts +163 -0
  119. package/dist/dashboard/client-registry.d.ts.map +1 -0
  120. package/dist/dashboard/client-registry.js +549 -0
  121. package/dist/dashboard/client-registry.js.map +1 -0
  122. package/dist/dashboard/controls.d.ts.map +1 -1
  123. package/dist/dashboard/controls.js +33 -4
  124. package/dist/dashboard/controls.js.map +1 -1
  125. package/dist/dashboard/data-seeder.d.ts +10 -7
  126. package/dist/dashboard/data-seeder.d.ts.map +1 -1
  127. package/dist/dashboard/data-seeder.js +31 -75
  128. package/dist/dashboard/data-seeder.js.map +1 -1
  129. package/dist/dashboard/data-service.d.ts +9 -0
  130. package/dist/dashboard/data-service.d.ts.map +1 -1
  131. package/dist/dashboard/data-service.js +32 -3
  132. package/dist/dashboard/data-service.js.map +1 -1
  133. package/dist/dashboard/placement-routes.d.ts +119 -0
  134. package/dist/dashboard/placement-routes.d.ts.map +1 -0
  135. package/dist/dashboard/placement-routes.js +331 -0
  136. package/dist/dashboard/placement-routes.js.map +1 -0
  137. package/dist/dashboard/server.d.ts.map +1 -1
  138. package/dist/dashboard/server.js +408 -2
  139. package/dist/dashboard/server.js.map +1 -1
  140. package/dist/delivery/attention.d.ts +130 -0
  141. package/dist/delivery/attention.d.ts.map +1 -0
  142. package/dist/delivery/attention.js +341 -0
  143. package/dist/delivery/attention.js.map +1 -0
  144. package/dist/delivery/decompose.d.ts +18 -0
  145. package/dist/delivery/decompose.d.ts.map +1 -1
  146. package/dist/delivery/decompose.js +22 -1
  147. package/dist/delivery/decompose.js.map +1 -1
  148. package/dist/delivery/eta-estimate.d.ts +111 -0
  149. package/dist/delivery/eta-estimate.d.ts.map +1 -0
  150. package/dist/delivery/eta-estimate.js +171 -0
  151. package/dist/delivery/eta-estimate.js.map +1 -0
  152. package/dist/delivery/eta.d.ts +23 -0
  153. package/dist/delivery/eta.d.ts.map +1 -0
  154. package/dist/delivery/eta.js +59 -0
  155. package/dist/delivery/eta.js.map +1 -0
  156. package/dist/delivery/orchestrated-mission.d.ts +10 -0
  157. package/dist/delivery/orchestrated-mission.d.ts.map +1 -1
  158. package/dist/delivery/orchestrated-mission.js +15 -1
  159. package/dist/delivery/orchestrated-mission.js.map +1 -1
  160. package/dist/delivery/plan-check.d.ts +7 -1
  161. package/dist/delivery/plan-check.d.ts.map +1 -1
  162. package/dist/delivery/plan-check.js +23 -2
  163. package/dist/delivery/plan-check.js.map +1 -1
  164. package/dist/delivery/run-state.d.ts +1 -1
  165. package/dist/delivery/run-state.d.ts.map +1 -1
  166. package/dist/delivery/run-state.js +8 -1
  167. package/dist/delivery/run-state.js.map +1 -1
  168. package/dist/delivery/task-orchestrator.d.ts +8 -3
  169. package/dist/delivery/task-orchestrator.d.ts.map +1 -1
  170. package/dist/delivery/task-orchestrator.js +75 -43
  171. package/dist/delivery/task-orchestrator.js.map +1 -1
  172. package/dist/delivery/task-sync.d.ts +21 -0
  173. package/dist/delivery/task-sync.d.ts.map +1 -1
  174. package/dist/delivery/task-sync.js +44 -8
  175. package/dist/delivery/task-sync.js.map +1 -1
  176. package/dist/delivery/task-workspace.d.ts +3 -3
  177. package/dist/delivery/task-workspace.js +3 -3
  178. package/dist/generators/self-card.d.ts +65 -0
  179. package/dist/generators/self-card.d.ts.map +1 -0
  180. package/dist/generators/self-card.js +256 -0
  181. package/dist/generators/self-card.js.map +1 -0
  182. package/dist/inference/probe.js +1 -1
  183. package/dist/inference/probe.js.map +1 -1
  184. package/dist/memory/prepopulate.d.ts.map +1 -1
  185. package/dist/memory/prepopulate.js +2 -0
  186. package/dist/memory/prepopulate.js.map +1 -1
  187. package/dist/models/analytics.d.ts +32 -0
  188. package/dist/models/analytics.d.ts.map +1 -1
  189. package/dist/models/analytics.js +68 -5
  190. package/dist/models/analytics.js.map +1 -1
  191. package/dist/models/plan-readability.d.ts +55 -0
  192. package/dist/models/plan-readability.d.ts.map +1 -0
  193. package/dist/models/plan-readability.js +339 -0
  194. package/dist/models/plan-readability.js.map +1 -0
  195. package/dist/placement/admission.d.ts +59 -0
  196. package/dist/placement/admission.d.ts.map +1 -0
  197. package/dist/placement/admission.js +197 -0
  198. package/dist/placement/admission.js.map +1 -0
  199. package/dist/placement/auto.d.ts +44 -0
  200. package/dist/placement/auto.d.ts.map +1 -0
  201. package/dist/placement/auto.js +212 -0
  202. package/dist/placement/auto.js.map +1 -0
  203. package/dist/placement/enforce.d.ts +128 -0
  204. package/dist/placement/enforce.d.ts.map +1 -0
  205. package/dist/placement/enforce.js +655 -0
  206. package/dist/placement/enforce.js.map +1 -0
  207. package/dist/placement/idle.d.ts +50 -0
  208. package/dist/placement/idle.d.ts.map +1 -0
  209. package/dist/placement/idle.js +213 -0
  210. package/dist/placement/idle.js.map +1 -0
  211. package/dist/placement/ledger.d.ts +323 -0
  212. package/dist/placement/ledger.d.ts.map +1 -0
  213. package/dist/placement/ledger.js +263 -0
  214. package/dist/placement/ledger.js.map +1 -0
  215. package/dist/placement/preview.d.ts +51 -0
  216. package/dist/placement/preview.d.ts.map +1 -0
  217. package/dist/placement/preview.js +61 -0
  218. package/dist/placement/preview.js.map +1 -0
  219. package/dist/placement/probes.d.ts +47 -0
  220. package/dist/placement/probes.d.ts.map +1 -0
  221. package/dist/placement/probes.js +207 -0
  222. package/dist/placement/probes.js.map +1 -0
  223. package/dist/placement/proxy-env.d.ts +21 -0
  224. package/dist/placement/proxy-env.d.ts.map +1 -0
  225. package/dist/placement/proxy-env.js +42 -0
  226. package/dist/placement/proxy-env.js.map +1 -0
  227. package/dist/placement/registry.d.ts +1038 -0
  228. package/dist/placement/registry.d.ts.map +1 -0
  229. package/dist/placement/registry.js +274 -0
  230. package/dist/placement/registry.js.map +1 -0
  231. package/dist/policies/liveness.d.ts +6 -8
  232. package/dist/policies/liveness.d.ts.map +1 -1
  233. package/dist/policies/liveness.js +6 -25
  234. package/dist/policies/liveness.js.map +1 -1
  235. package/dist/policies/sandbox-anchor.d.ts +91 -0
  236. package/dist/policies/sandbox-anchor.d.ts.map +1 -0
  237. package/dist/policies/sandbox-anchor.js +187 -0
  238. package/dist/policies/sandbox-anchor.js.map +1 -0
  239. package/dist/policies/sandbox-grants.d.ts +131 -0
  240. package/dist/policies/sandbox-grants.d.ts.map +1 -0
  241. package/dist/policies/sandbox-grants.js +562 -0
  242. package/dist/policies/sandbox-grants.js.map +1 -0
  243. package/dist/state/manifest.d.ts +4 -2
  244. package/dist/state/manifest.d.ts.map +1 -1
  245. package/dist/state/manifest.js +32 -16
  246. package/dist/state/manifest.js.map +1 -1
  247. package/dist/utils/checkout-root.d.ts +2 -0
  248. package/dist/utils/checkout-root.d.ts.map +1 -0
  249. package/dist/utils/checkout-root.js +43 -0
  250. package/dist/utils/checkout-root.js.map +1 -0
  251. package/dist/utils/resolve-uap-bin.d.ts +5 -0
  252. package/dist/utils/resolve-uap-bin.d.ts.map +1 -0
  253. package/dist/utils/resolve-uap-bin.js +33 -0
  254. package/dist/utils/resolve-uap-bin.js.map +1 -0
  255. package/dist/utils/terminal-safe.d.ts +12 -0
  256. package/dist/utils/terminal-safe.d.ts.map +1 -0
  257. package/dist/utils/terminal-safe.js +53 -0
  258. package/dist/utils/terminal-safe.js.map +1 -0
  259. package/docs/ATTRIBUTION.md +1 -0
  260. package/docs/DASHBOARD_UPLIFT_SPEC.md +8 -8
  261. package/docs/INDEX.md +6 -5
  262. package/docs/architecture/OVERVIEW.md +15 -3
  263. package/docs/architecture/PROTOCOL.md +7 -1
  264. package/docs/architecture/adr/0006-operator-directed-model-placement.md +86 -0
  265. package/docs/architecture/adr/0007-auto-displacement-allowlist-as-standing-consent.md +79 -0
  266. package/docs/architecture/adr/0008-fleet-clients-link-out.md +92 -0
  267. package/docs/architecture/adr/0009-completion-triggered-dispatch-and-per-leaf-model-dials.md +71 -0
  268. package/docs/architecture/adr/0010-attention-queue-and-afk-auto-decider.md +159 -0
  269. package/docs/architecture/adr/0011-sandbox-grants-and-network-egress-boundary.md +219 -0
  270. package/docs/architecture/adr/0012-operator-legibility-surfaces.md +175 -0
  271. package/docs/getting-started/INSTALLATION.md +1 -1
  272. package/docs/guides/AUTOMATIC_FEATURES.md +8 -0
  273. package/docs/guides/LOCAL_MODELS.md +1 -1
  274. package/docs/guides/PROXY.md +2 -1
  275. package/docs/guides/SANDBOX.md +91 -4
  276. package/docs/integrations/MCP_ROUTER.md +1 -1
  277. package/docs/plans/model-performance-proof-options.md +176 -0
  278. package/docs/reference/API.md +1 -1
  279. package/docs/reference/CLI.md +169 -4
  280. package/docs/reference/COMPARISON.md +1 -1
  281. package/docs/reference/CONFIGURATION.md +12 -3
  282. package/docs/reference/CONFIGURATION_REFERENCE.md +269 -14
  283. package/docs/reference/DATABASE_SCHEMA.md +1 -1
  284. package/docs/reference/FEATURES.md +15 -3
  285. package/docs/reference/PATTERNS.md +1 -1
  286. package/docs/reference/PLATFORMS.md +14 -1
  287. package/docs/specs/operator-model-placement.md +1314 -0
  288. package/docs/specs/operator-model-placement.review.md +339 -0
  289. package/package.json +2 -2
  290. package/scripts/maintenance/publish-npm.sh +23 -11
  291. package/scripts/version-bump.sh +6 -51
  292. package/src/policies/enforcers/__pycache__/_common.cpython-311.pyc +0 -0
  293. package/src/policies/enforcers/__pycache__/expert_review_required.cpython-311.pyc +0 -0
  294. package/src/policies/enforcers/__pycache__/quality_metrics_gate.cpython-311.pyc +0 -0
  295. package/src/policies/schemas/policies/mandatory-testing-deployment.md +2 -5
  296. package/templates/hooks/__pycache__/deliver_autoroute.cpython-311.pyc +0 -0
  297. package/templates/hooks/session-start.sh +44 -0
  298. package/tools/agents/UAP/cli.py +14 -3
  299. package/tools/agents/UAP/paths.py +50 -0
  300. package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-311.pyc +0 -0
  301. package/tools/agents/scripts/anthropic_proxy.py +1386 -99
  302. package/tools/agents/scripts/toolcall_path_normalizer.py +46 -1
  303. package/tools/agents/tests/test_anthropic_proxy_streaming.py +29 -6
  304. package/tools/agents/tests/test_doubling_break.py +64 -5
  305. package/tools/agents/tests/test_error_loop_break.py +10 -4
  306. package/tools/agents/tests/test_error_loop_ignores_correctives.py +13 -2
  307. package/tools/agents/tests/test_lockstep_escalation.py +280 -9
  308. package/tools/agents/tests/test_path_containment.py +94 -0
  309. package/tools/agents/tests/test_proxy_unix_socket.py +162 -0
  310. package/tools/agents/tests/test_signature_quality.py +349 -0
  311. package/tools/agents/tests/test_uap_compliance.py +11 -1
  312. package/web/dash/core.js +1 -0
  313. package/web/dash/tab-clients.js +196 -0
  314. package/web/dash/tab-models.js +387 -8
  315. package/web/dash/tab-policies.js +87 -4
  316. package/web/dash/tabs.js +77 -73
  317. package/web/dashboard.html +6 -0
  318. package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
  319. package/src/policies/enforcers/__pycache__/expert_review_required.cpython-312.pyc +0 -0
  320. package/src/policies/enforcers/__pycache__/quality_metrics_gate.cpython-312.pyc +0 -0
  321. package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
  322. package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
  323. package/web/dash/tab-agents.js +0 -21
  324. package/web/dash/tab-deliver.js +0 -12
  325. package/web/dash/tab-memory.js +0 -12
  326. package/web/dash/tab-orchestration.js +0 -21
  327. package/web/dash/tab-overview.js +0 -21
  328. package/web/dash/tab-tasks.js +0 -21
@@ -0,0 +1,1038 @@
1
+ import { z } from 'zod';
2
+ import type { CapacityPolicy } from '../capacity/policy.js';
3
+ export declare const REGISTRY_VERSION = 1;
4
+ export declare const DeviceSchema: z.ZodObject<{
5
+ kind: z.ZodEnum<["gpu", "cpu"]>;
6
+ name: z.ZodOptional<z.ZodString>;
7
+ total_mib: z.ZodOptional<z.ZodNumber>;
8
+ reserved_mib: z.ZodOptional<z.ZodNumber>;
9
+ reserve_reason: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ kind: "cpu" | "gpu";
12
+ name?: string | undefined;
13
+ total_mib?: number | undefined;
14
+ reserved_mib?: number | undefined;
15
+ reserve_reason?: string | undefined;
16
+ }, {
17
+ kind: "cpu" | "gpu";
18
+ name?: string | undefined;
19
+ total_mib?: number | undefined;
20
+ reserved_mib?: number | undefined;
21
+ reserve_reason?: string | undefined;
22
+ }>;
23
+ export type RegistryDevice = z.infer<typeof DeviceSchema>;
24
+ export declare function validUnitName(unit: string): boolean;
25
+ /** A measured footprint. `measured_at` is the discriminator in practice: it
26
+ * is present iff the config has a measurement. `measured_on` gates reuse —
27
+ * a footprint measured on one device class is not valid for another. */
28
+ export declare const MeasuredConfigSchema: z.ZodObject<{
29
+ resident_gpu_mib: z.ZodNumber;
30
+ host_rss_mib: z.ZodNumber;
31
+ context_pool_cells: z.ZodNumber;
32
+ per_session_cap_cells: z.ZodOptional<z.ZodNumber>;
33
+ kv_resident_cells: z.ZodNumber;
34
+ kv_kind: z.ZodOptional<z.ZodString>;
35
+ /** Marginal KV cost above the resident pool. Absent = unknown, and cost
36
+ * above the pool fails closed rather than extrapolating. */
37
+ kv_mib_per_1k_cells: z.ZodOptional<z.ZodNumber>;
38
+ measured_at: z.ZodString;
39
+ measured_on: z.ZodString;
40
+ engine: z.ZodOptional<z.ZodString>;
41
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
42
+ profile: z.ZodOptional<z.ZodString>;
43
+ /** Capacity-policy service name this config is cross-checked against
44
+ * (overrides the model-level `service`). The policy's `services` is a
45
+ * LIST keyed by `name` — never assume a map. */
46
+ service: z.ZodOptional<z.ZodString>;
47
+ note: z.ZodOptional<z.ZodString>;
48
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
49
+ rails: z.ZodOptional<z.ZodNumber>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ resident_gpu_mib: number;
52
+ host_rss_mib: number;
53
+ context_pool_cells: number;
54
+ kv_resident_cells: number;
55
+ measured_at: string;
56
+ measured_on: string;
57
+ note?: string | undefined;
58
+ service?: string | undefined;
59
+ engine?: string | undefined;
60
+ unit?: string | undefined;
61
+ per_session_cap_cells?: number | undefined;
62
+ kv_kind?: string | undefined;
63
+ kv_mib_per_1k_cells?: number | undefined;
64
+ profile?: string | undefined;
65
+ flags?: string[] | undefined;
66
+ rails?: number | undefined;
67
+ }, {
68
+ resident_gpu_mib: number;
69
+ host_rss_mib: number;
70
+ context_pool_cells: number;
71
+ kv_resident_cells: number;
72
+ measured_at: string;
73
+ measured_on: string;
74
+ note?: string | undefined;
75
+ service?: string | undefined;
76
+ engine?: string | undefined;
77
+ unit?: string | undefined;
78
+ per_session_cap_cells?: number | undefined;
79
+ kv_kind?: string | undefined;
80
+ kv_mib_per_1k_cells?: number | undefined;
81
+ profile?: string | undefined;
82
+ flags?: string[] | undefined;
83
+ rails?: number | undefined;
84
+ }>;
85
+ export type MeasuredConfigEntry = z.infer<typeof MeasuredConfigSchema>;
86
+ export declare const UnmeasuredConfigSchema: z.ZodObject<{
87
+ status: z.ZodLiteral<"unmeasured">;
88
+ engine: z.ZodOptional<z.ZodString>;
89
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
90
+ profile: z.ZodOptional<z.ZodString>;
91
+ /** Capacity-policy service name this config is cross-checked against
92
+ * (overrides the model-level `service`). The policy's `services` is a
93
+ * LIST keyed by `name` — never assume a map. */
94
+ service: z.ZodOptional<z.ZodString>;
95
+ note: z.ZodOptional<z.ZodString>;
96
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
97
+ rails: z.ZodOptional<z.ZodNumber>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ status: "unmeasured";
100
+ note?: string | undefined;
101
+ service?: string | undefined;
102
+ engine?: string | undefined;
103
+ unit?: string | undefined;
104
+ profile?: string | undefined;
105
+ flags?: string[] | undefined;
106
+ rails?: number | undefined;
107
+ }, {
108
+ status: "unmeasured";
109
+ note?: string | undefined;
110
+ service?: string | undefined;
111
+ engine?: string | undefined;
112
+ unit?: string | undefined;
113
+ profile?: string | undefined;
114
+ flags?: string[] | undefined;
115
+ rails?: number | undefined;
116
+ }>;
117
+ export type UnmeasuredConfigEntry = z.infer<typeof UnmeasuredConfigSchema>;
118
+ export declare const ConfigEntrySchema: z.ZodUnion<[z.ZodObject<{
119
+ resident_gpu_mib: z.ZodNumber;
120
+ host_rss_mib: z.ZodNumber;
121
+ context_pool_cells: z.ZodNumber;
122
+ per_session_cap_cells: z.ZodOptional<z.ZodNumber>;
123
+ kv_resident_cells: z.ZodNumber;
124
+ kv_kind: z.ZodOptional<z.ZodString>;
125
+ /** Marginal KV cost above the resident pool. Absent = unknown, and cost
126
+ * above the pool fails closed rather than extrapolating. */
127
+ kv_mib_per_1k_cells: z.ZodOptional<z.ZodNumber>;
128
+ measured_at: z.ZodString;
129
+ measured_on: z.ZodString;
130
+ engine: z.ZodOptional<z.ZodString>;
131
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
132
+ profile: z.ZodOptional<z.ZodString>;
133
+ /** Capacity-policy service name this config is cross-checked against
134
+ * (overrides the model-level `service`). The policy's `services` is a
135
+ * LIST keyed by `name` — never assume a map. */
136
+ service: z.ZodOptional<z.ZodString>;
137
+ note: z.ZodOptional<z.ZodString>;
138
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
139
+ rails: z.ZodOptional<z.ZodNumber>;
140
+ }, "strip", z.ZodTypeAny, {
141
+ resident_gpu_mib: number;
142
+ host_rss_mib: number;
143
+ context_pool_cells: number;
144
+ kv_resident_cells: number;
145
+ measured_at: string;
146
+ measured_on: string;
147
+ note?: string | undefined;
148
+ service?: string | undefined;
149
+ engine?: string | undefined;
150
+ unit?: string | undefined;
151
+ per_session_cap_cells?: number | undefined;
152
+ kv_kind?: string | undefined;
153
+ kv_mib_per_1k_cells?: number | undefined;
154
+ profile?: string | undefined;
155
+ flags?: string[] | undefined;
156
+ rails?: number | undefined;
157
+ }, {
158
+ resident_gpu_mib: number;
159
+ host_rss_mib: number;
160
+ context_pool_cells: number;
161
+ kv_resident_cells: number;
162
+ measured_at: string;
163
+ measured_on: string;
164
+ note?: string | undefined;
165
+ service?: string | undefined;
166
+ engine?: string | undefined;
167
+ unit?: string | undefined;
168
+ per_session_cap_cells?: number | undefined;
169
+ kv_kind?: string | undefined;
170
+ kv_mib_per_1k_cells?: number | undefined;
171
+ profile?: string | undefined;
172
+ flags?: string[] | undefined;
173
+ rails?: number | undefined;
174
+ }>, z.ZodObject<{
175
+ status: z.ZodLiteral<"unmeasured">;
176
+ engine: z.ZodOptional<z.ZodString>;
177
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
178
+ profile: z.ZodOptional<z.ZodString>;
179
+ /** Capacity-policy service name this config is cross-checked against
180
+ * (overrides the model-level `service`). The policy's `services` is a
181
+ * LIST keyed by `name` — never assume a map. */
182
+ service: z.ZodOptional<z.ZodString>;
183
+ note: z.ZodOptional<z.ZodString>;
184
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
185
+ rails: z.ZodOptional<z.ZodNumber>;
186
+ }, "strip", z.ZodTypeAny, {
187
+ status: "unmeasured";
188
+ note?: string | undefined;
189
+ service?: string | undefined;
190
+ engine?: string | undefined;
191
+ unit?: string | undefined;
192
+ profile?: string | undefined;
193
+ flags?: string[] | undefined;
194
+ rails?: number | undefined;
195
+ }, {
196
+ status: "unmeasured";
197
+ note?: string | undefined;
198
+ service?: string | undefined;
199
+ engine?: string | undefined;
200
+ unit?: string | undefined;
201
+ profile?: string | undefined;
202
+ flags?: string[] | undefined;
203
+ rails?: number | undefined;
204
+ }>]>;
205
+ export type ConfigEntry = z.infer<typeof ConfigEntrySchema>;
206
+ export declare const ModelEntrySchema: z.ZodObject<{
207
+ display: z.ZodString;
208
+ engine: z.ZodOptional<z.ZodString>;
209
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
210
+ service: z.ZodOptional<z.ZodString>;
211
+ launch: z.ZodOptional<z.ZodString>;
212
+ endpoint: z.ZodOptional<z.ZodString>;
213
+ task_affinity: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
214
+ affinity: z.ZodOptional<z.ZodObject<{
215
+ device: z.ZodArray<z.ZodString, "many">;
216
+ }, "strip", z.ZodTypeAny, {
217
+ device: string[];
218
+ }, {
219
+ device: string[];
220
+ }>>;
221
+ advertises: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
222
+ configs: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
223
+ resident_gpu_mib: z.ZodNumber;
224
+ host_rss_mib: z.ZodNumber;
225
+ context_pool_cells: z.ZodNumber;
226
+ per_session_cap_cells: z.ZodOptional<z.ZodNumber>;
227
+ kv_resident_cells: z.ZodNumber;
228
+ kv_kind: z.ZodOptional<z.ZodString>;
229
+ /** Marginal KV cost above the resident pool. Absent = unknown, and cost
230
+ * above the pool fails closed rather than extrapolating. */
231
+ kv_mib_per_1k_cells: z.ZodOptional<z.ZodNumber>;
232
+ measured_at: z.ZodString;
233
+ measured_on: z.ZodString;
234
+ engine: z.ZodOptional<z.ZodString>;
235
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
236
+ profile: z.ZodOptional<z.ZodString>;
237
+ /** Capacity-policy service name this config is cross-checked against
238
+ * (overrides the model-level `service`). The policy's `services` is a
239
+ * LIST keyed by `name` — never assume a map. */
240
+ service: z.ZodOptional<z.ZodString>;
241
+ note: z.ZodOptional<z.ZodString>;
242
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
243
+ rails: z.ZodOptional<z.ZodNumber>;
244
+ }, "strip", z.ZodTypeAny, {
245
+ resident_gpu_mib: number;
246
+ host_rss_mib: number;
247
+ context_pool_cells: number;
248
+ kv_resident_cells: number;
249
+ measured_at: string;
250
+ measured_on: string;
251
+ note?: string | undefined;
252
+ service?: string | undefined;
253
+ engine?: string | undefined;
254
+ unit?: string | undefined;
255
+ per_session_cap_cells?: number | undefined;
256
+ kv_kind?: string | undefined;
257
+ kv_mib_per_1k_cells?: number | undefined;
258
+ profile?: string | undefined;
259
+ flags?: string[] | undefined;
260
+ rails?: number | undefined;
261
+ }, {
262
+ resident_gpu_mib: number;
263
+ host_rss_mib: number;
264
+ context_pool_cells: number;
265
+ kv_resident_cells: number;
266
+ measured_at: string;
267
+ measured_on: string;
268
+ note?: string | undefined;
269
+ service?: string | undefined;
270
+ engine?: string | undefined;
271
+ unit?: string | undefined;
272
+ per_session_cap_cells?: number | undefined;
273
+ kv_kind?: string | undefined;
274
+ kv_mib_per_1k_cells?: number | undefined;
275
+ profile?: string | undefined;
276
+ flags?: string[] | undefined;
277
+ rails?: number | undefined;
278
+ }>, z.ZodObject<{
279
+ status: z.ZodLiteral<"unmeasured">;
280
+ engine: z.ZodOptional<z.ZodString>;
281
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
282
+ profile: z.ZodOptional<z.ZodString>;
283
+ /** Capacity-policy service name this config is cross-checked against
284
+ * (overrides the model-level `service`). The policy's `services` is a
285
+ * LIST keyed by `name` — never assume a map. */
286
+ service: z.ZodOptional<z.ZodString>;
287
+ note: z.ZodOptional<z.ZodString>;
288
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
289
+ rails: z.ZodOptional<z.ZodNumber>;
290
+ }, "strip", z.ZodTypeAny, {
291
+ status: "unmeasured";
292
+ note?: string | undefined;
293
+ service?: string | undefined;
294
+ engine?: string | undefined;
295
+ unit?: string | undefined;
296
+ profile?: string | undefined;
297
+ flags?: string[] | undefined;
298
+ rails?: number | undefined;
299
+ }, {
300
+ status: "unmeasured";
301
+ note?: string | undefined;
302
+ service?: string | undefined;
303
+ engine?: string | undefined;
304
+ unit?: string | undefined;
305
+ profile?: string | undefined;
306
+ flags?: string[] | undefined;
307
+ rails?: number | undefined;
308
+ }>]>>;
309
+ }, "strip", z.ZodTypeAny, {
310
+ display: string;
311
+ configs: Record<string, {
312
+ resident_gpu_mib: number;
313
+ host_rss_mib: number;
314
+ context_pool_cells: number;
315
+ kv_resident_cells: number;
316
+ measured_at: string;
317
+ measured_on: string;
318
+ note?: string | undefined;
319
+ service?: string | undefined;
320
+ engine?: string | undefined;
321
+ unit?: string | undefined;
322
+ per_session_cap_cells?: number | undefined;
323
+ kv_kind?: string | undefined;
324
+ kv_mib_per_1k_cells?: number | undefined;
325
+ profile?: string | undefined;
326
+ flags?: string[] | undefined;
327
+ rails?: number | undefined;
328
+ } | {
329
+ status: "unmeasured";
330
+ note?: string | undefined;
331
+ service?: string | undefined;
332
+ engine?: string | undefined;
333
+ unit?: string | undefined;
334
+ profile?: string | undefined;
335
+ flags?: string[] | undefined;
336
+ rails?: number | undefined;
337
+ }>;
338
+ endpoint?: string | undefined;
339
+ service?: string | undefined;
340
+ engine?: string | undefined;
341
+ launch?: string | undefined;
342
+ unit?: string | undefined;
343
+ task_affinity?: string[] | undefined;
344
+ affinity?: {
345
+ device: string[];
346
+ } | undefined;
347
+ advertises?: string[] | undefined;
348
+ }, {
349
+ display: string;
350
+ configs: Record<string, {
351
+ resident_gpu_mib: number;
352
+ host_rss_mib: number;
353
+ context_pool_cells: number;
354
+ kv_resident_cells: number;
355
+ measured_at: string;
356
+ measured_on: string;
357
+ note?: string | undefined;
358
+ service?: string | undefined;
359
+ engine?: string | undefined;
360
+ unit?: string | undefined;
361
+ per_session_cap_cells?: number | undefined;
362
+ kv_kind?: string | undefined;
363
+ kv_mib_per_1k_cells?: number | undefined;
364
+ profile?: string | undefined;
365
+ flags?: string[] | undefined;
366
+ rails?: number | undefined;
367
+ } | {
368
+ status: "unmeasured";
369
+ note?: string | undefined;
370
+ service?: string | undefined;
371
+ engine?: string | undefined;
372
+ unit?: string | undefined;
373
+ profile?: string | undefined;
374
+ flags?: string[] | undefined;
375
+ rails?: number | undefined;
376
+ }>;
377
+ endpoint?: string | undefined;
378
+ service?: string | undefined;
379
+ engine?: string | undefined;
380
+ launch?: string | undefined;
381
+ unit?: string | undefined;
382
+ task_affinity?: string[] | undefined;
383
+ affinity?: {
384
+ device: string[];
385
+ } | undefined;
386
+ advertises?: string[] | undefined;
387
+ }>;
388
+ export type ModelEntry = z.infer<typeof ModelEntrySchema>;
389
+ export declare const ModelRegistrySchema: z.ZodObject<{
390
+ version: z.ZodLiteral<1>;
391
+ devices: z.ZodRecord<z.ZodString, z.ZodObject<{
392
+ kind: z.ZodEnum<["gpu", "cpu"]>;
393
+ name: z.ZodOptional<z.ZodString>;
394
+ total_mib: z.ZodOptional<z.ZodNumber>;
395
+ reserved_mib: z.ZodOptional<z.ZodNumber>;
396
+ reserve_reason: z.ZodOptional<z.ZodString>;
397
+ }, "strip", z.ZodTypeAny, {
398
+ kind: "cpu" | "gpu";
399
+ name?: string | undefined;
400
+ total_mib?: number | undefined;
401
+ reserved_mib?: number | undefined;
402
+ reserve_reason?: string | undefined;
403
+ }, {
404
+ kind: "cpu" | "gpu";
405
+ name?: string | undefined;
406
+ total_mib?: number | undefined;
407
+ reserved_mib?: number | undefined;
408
+ reserve_reason?: string | undefined;
409
+ }>>;
410
+ models: z.ZodRecord<z.ZodString, z.ZodObject<{
411
+ display: z.ZodString;
412
+ engine: z.ZodOptional<z.ZodString>;
413
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
414
+ service: z.ZodOptional<z.ZodString>;
415
+ launch: z.ZodOptional<z.ZodString>;
416
+ endpoint: z.ZodOptional<z.ZodString>;
417
+ task_affinity: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
418
+ affinity: z.ZodOptional<z.ZodObject<{
419
+ device: z.ZodArray<z.ZodString, "many">;
420
+ }, "strip", z.ZodTypeAny, {
421
+ device: string[];
422
+ }, {
423
+ device: string[];
424
+ }>>;
425
+ advertises: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
426
+ configs: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
427
+ resident_gpu_mib: z.ZodNumber;
428
+ host_rss_mib: z.ZodNumber;
429
+ context_pool_cells: z.ZodNumber;
430
+ per_session_cap_cells: z.ZodOptional<z.ZodNumber>;
431
+ kv_resident_cells: z.ZodNumber;
432
+ kv_kind: z.ZodOptional<z.ZodString>;
433
+ /** Marginal KV cost above the resident pool. Absent = unknown, and cost
434
+ * above the pool fails closed rather than extrapolating. */
435
+ kv_mib_per_1k_cells: z.ZodOptional<z.ZodNumber>;
436
+ measured_at: z.ZodString;
437
+ measured_on: z.ZodString;
438
+ engine: z.ZodOptional<z.ZodString>;
439
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
440
+ profile: z.ZodOptional<z.ZodString>;
441
+ /** Capacity-policy service name this config is cross-checked against
442
+ * (overrides the model-level `service`). The policy's `services` is a
443
+ * LIST keyed by `name` — never assume a map. */
444
+ service: z.ZodOptional<z.ZodString>;
445
+ note: z.ZodOptional<z.ZodString>;
446
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
447
+ rails: z.ZodOptional<z.ZodNumber>;
448
+ }, "strip", z.ZodTypeAny, {
449
+ resident_gpu_mib: number;
450
+ host_rss_mib: number;
451
+ context_pool_cells: number;
452
+ kv_resident_cells: number;
453
+ measured_at: string;
454
+ measured_on: string;
455
+ note?: string | undefined;
456
+ service?: string | undefined;
457
+ engine?: string | undefined;
458
+ unit?: string | undefined;
459
+ per_session_cap_cells?: number | undefined;
460
+ kv_kind?: string | undefined;
461
+ kv_mib_per_1k_cells?: number | undefined;
462
+ profile?: string | undefined;
463
+ flags?: string[] | undefined;
464
+ rails?: number | undefined;
465
+ }, {
466
+ resident_gpu_mib: number;
467
+ host_rss_mib: number;
468
+ context_pool_cells: number;
469
+ kv_resident_cells: number;
470
+ measured_at: string;
471
+ measured_on: string;
472
+ note?: string | undefined;
473
+ service?: string | undefined;
474
+ engine?: string | undefined;
475
+ unit?: string | undefined;
476
+ per_session_cap_cells?: number | undefined;
477
+ kv_kind?: string | undefined;
478
+ kv_mib_per_1k_cells?: number | undefined;
479
+ profile?: string | undefined;
480
+ flags?: string[] | undefined;
481
+ rails?: number | undefined;
482
+ }>, z.ZodObject<{
483
+ status: z.ZodLiteral<"unmeasured">;
484
+ engine: z.ZodOptional<z.ZodString>;
485
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
486
+ profile: z.ZodOptional<z.ZodString>;
487
+ /** Capacity-policy service name this config is cross-checked against
488
+ * (overrides the model-level `service`). The policy's `services` is a
489
+ * LIST keyed by `name` — never assume a map. */
490
+ service: z.ZodOptional<z.ZodString>;
491
+ note: z.ZodOptional<z.ZodString>;
492
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
493
+ rails: z.ZodOptional<z.ZodNumber>;
494
+ }, "strip", z.ZodTypeAny, {
495
+ status: "unmeasured";
496
+ note?: string | undefined;
497
+ service?: string | undefined;
498
+ engine?: string | undefined;
499
+ unit?: string | undefined;
500
+ profile?: string | undefined;
501
+ flags?: string[] | undefined;
502
+ rails?: number | undefined;
503
+ }, {
504
+ status: "unmeasured";
505
+ note?: string | undefined;
506
+ service?: string | undefined;
507
+ engine?: string | undefined;
508
+ unit?: string | undefined;
509
+ profile?: string | undefined;
510
+ flags?: string[] | undefined;
511
+ rails?: number | undefined;
512
+ }>]>>;
513
+ }, "strip", z.ZodTypeAny, {
514
+ display: string;
515
+ configs: Record<string, {
516
+ resident_gpu_mib: number;
517
+ host_rss_mib: number;
518
+ context_pool_cells: number;
519
+ kv_resident_cells: number;
520
+ measured_at: string;
521
+ measured_on: string;
522
+ note?: string | undefined;
523
+ service?: string | undefined;
524
+ engine?: string | undefined;
525
+ unit?: string | undefined;
526
+ per_session_cap_cells?: number | undefined;
527
+ kv_kind?: string | undefined;
528
+ kv_mib_per_1k_cells?: number | undefined;
529
+ profile?: string | undefined;
530
+ flags?: string[] | undefined;
531
+ rails?: number | undefined;
532
+ } | {
533
+ status: "unmeasured";
534
+ note?: string | undefined;
535
+ service?: string | undefined;
536
+ engine?: string | undefined;
537
+ unit?: string | undefined;
538
+ profile?: string | undefined;
539
+ flags?: string[] | undefined;
540
+ rails?: number | undefined;
541
+ }>;
542
+ endpoint?: string | undefined;
543
+ service?: string | undefined;
544
+ engine?: string | undefined;
545
+ launch?: string | undefined;
546
+ unit?: string | undefined;
547
+ task_affinity?: string[] | undefined;
548
+ affinity?: {
549
+ device: string[];
550
+ } | undefined;
551
+ advertises?: string[] | undefined;
552
+ }, {
553
+ display: string;
554
+ configs: Record<string, {
555
+ resident_gpu_mib: number;
556
+ host_rss_mib: number;
557
+ context_pool_cells: number;
558
+ kv_resident_cells: number;
559
+ measured_at: string;
560
+ measured_on: string;
561
+ note?: string | undefined;
562
+ service?: string | undefined;
563
+ engine?: string | undefined;
564
+ unit?: string | undefined;
565
+ per_session_cap_cells?: number | undefined;
566
+ kv_kind?: string | undefined;
567
+ kv_mib_per_1k_cells?: number | undefined;
568
+ profile?: string | undefined;
569
+ flags?: string[] | undefined;
570
+ rails?: number | undefined;
571
+ } | {
572
+ status: "unmeasured";
573
+ note?: string | undefined;
574
+ service?: string | undefined;
575
+ engine?: string | undefined;
576
+ unit?: string | undefined;
577
+ profile?: string | undefined;
578
+ flags?: string[] | undefined;
579
+ rails?: number | undefined;
580
+ }>;
581
+ endpoint?: string | undefined;
582
+ service?: string | undefined;
583
+ engine?: string | undefined;
584
+ launch?: string | undefined;
585
+ unit?: string | undefined;
586
+ task_affinity?: string[] | undefined;
587
+ affinity?: {
588
+ device: string[];
589
+ } | undefined;
590
+ advertises?: string[] | undefined;
591
+ }>>;
592
+ }, "strip", z.ZodTypeAny, {
593
+ models: Record<string, {
594
+ display: string;
595
+ configs: Record<string, {
596
+ resident_gpu_mib: number;
597
+ host_rss_mib: number;
598
+ context_pool_cells: number;
599
+ kv_resident_cells: number;
600
+ measured_at: string;
601
+ measured_on: string;
602
+ note?: string | undefined;
603
+ service?: string | undefined;
604
+ engine?: string | undefined;
605
+ unit?: string | undefined;
606
+ per_session_cap_cells?: number | undefined;
607
+ kv_kind?: string | undefined;
608
+ kv_mib_per_1k_cells?: number | undefined;
609
+ profile?: string | undefined;
610
+ flags?: string[] | undefined;
611
+ rails?: number | undefined;
612
+ } | {
613
+ status: "unmeasured";
614
+ note?: string | undefined;
615
+ service?: string | undefined;
616
+ engine?: string | undefined;
617
+ unit?: string | undefined;
618
+ profile?: string | undefined;
619
+ flags?: string[] | undefined;
620
+ rails?: number | undefined;
621
+ }>;
622
+ endpoint?: string | undefined;
623
+ service?: string | undefined;
624
+ engine?: string | undefined;
625
+ launch?: string | undefined;
626
+ unit?: string | undefined;
627
+ task_affinity?: string[] | undefined;
628
+ affinity?: {
629
+ device: string[];
630
+ } | undefined;
631
+ advertises?: string[] | undefined;
632
+ }>;
633
+ version: 1;
634
+ devices: Record<string, {
635
+ kind: "cpu" | "gpu";
636
+ name?: string | undefined;
637
+ total_mib?: number | undefined;
638
+ reserved_mib?: number | undefined;
639
+ reserve_reason?: string | undefined;
640
+ }>;
641
+ }, {
642
+ models: Record<string, {
643
+ display: string;
644
+ configs: Record<string, {
645
+ resident_gpu_mib: number;
646
+ host_rss_mib: number;
647
+ context_pool_cells: number;
648
+ kv_resident_cells: number;
649
+ measured_at: string;
650
+ measured_on: string;
651
+ note?: string | undefined;
652
+ service?: string | undefined;
653
+ engine?: string | undefined;
654
+ unit?: string | undefined;
655
+ per_session_cap_cells?: number | undefined;
656
+ kv_kind?: string | undefined;
657
+ kv_mib_per_1k_cells?: number | undefined;
658
+ profile?: string | undefined;
659
+ flags?: string[] | undefined;
660
+ rails?: number | undefined;
661
+ } | {
662
+ status: "unmeasured";
663
+ note?: string | undefined;
664
+ service?: string | undefined;
665
+ engine?: string | undefined;
666
+ unit?: string | undefined;
667
+ profile?: string | undefined;
668
+ flags?: string[] | undefined;
669
+ rails?: number | undefined;
670
+ }>;
671
+ endpoint?: string | undefined;
672
+ service?: string | undefined;
673
+ engine?: string | undefined;
674
+ launch?: string | undefined;
675
+ unit?: string | undefined;
676
+ task_affinity?: string[] | undefined;
677
+ affinity?: {
678
+ device: string[];
679
+ } | undefined;
680
+ advertises?: string[] | undefined;
681
+ }>;
682
+ version: 1;
683
+ devices: Record<string, {
684
+ kind: "cpu" | "gpu";
685
+ name?: string | undefined;
686
+ total_mib?: number | undefined;
687
+ reserved_mib?: number | undefined;
688
+ reserve_reason?: string | undefined;
689
+ }>;
690
+ }>;
691
+ export type ModelRegistry = z.infer<typeof ModelRegistrySchema>;
692
+ /** The machine-local file is an overlay, not a full document: it may carry
693
+ * only models (or only devices). `measure` writes exactly this shape. */
694
+ export declare const RegistryOverlaySchema: z.ZodObject<{
695
+ version: z.ZodLiteral<1>;
696
+ devices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
697
+ kind: z.ZodEnum<["gpu", "cpu"]>;
698
+ name: z.ZodOptional<z.ZodString>;
699
+ total_mib: z.ZodOptional<z.ZodNumber>;
700
+ reserved_mib: z.ZodOptional<z.ZodNumber>;
701
+ reserve_reason: z.ZodOptional<z.ZodString>;
702
+ }, "strip", z.ZodTypeAny, {
703
+ kind: "cpu" | "gpu";
704
+ name?: string | undefined;
705
+ total_mib?: number | undefined;
706
+ reserved_mib?: number | undefined;
707
+ reserve_reason?: string | undefined;
708
+ }, {
709
+ kind: "cpu" | "gpu";
710
+ name?: string | undefined;
711
+ total_mib?: number | undefined;
712
+ reserved_mib?: number | undefined;
713
+ reserve_reason?: string | undefined;
714
+ }>>>;
715
+ models: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
716
+ display: z.ZodString;
717
+ engine: z.ZodOptional<z.ZodString>;
718
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
719
+ service: z.ZodOptional<z.ZodString>;
720
+ launch: z.ZodOptional<z.ZodString>;
721
+ endpoint: z.ZodOptional<z.ZodString>;
722
+ task_affinity: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
723
+ affinity: z.ZodOptional<z.ZodObject<{
724
+ device: z.ZodArray<z.ZodString, "many">;
725
+ }, "strip", z.ZodTypeAny, {
726
+ device: string[];
727
+ }, {
728
+ device: string[];
729
+ }>>;
730
+ advertises: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
731
+ configs: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
732
+ resident_gpu_mib: z.ZodNumber;
733
+ host_rss_mib: z.ZodNumber;
734
+ context_pool_cells: z.ZodNumber;
735
+ per_session_cap_cells: z.ZodOptional<z.ZodNumber>;
736
+ kv_resident_cells: z.ZodNumber;
737
+ kv_kind: z.ZodOptional<z.ZodString>;
738
+ /** Marginal KV cost above the resident pool. Absent = unknown, and cost
739
+ * above the pool fails closed rather than extrapolating. */
740
+ kv_mib_per_1k_cells: z.ZodOptional<z.ZodNumber>;
741
+ measured_at: z.ZodString;
742
+ measured_on: z.ZodString;
743
+ engine: z.ZodOptional<z.ZodString>;
744
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
745
+ profile: z.ZodOptional<z.ZodString>;
746
+ /** Capacity-policy service name this config is cross-checked against
747
+ * (overrides the model-level `service`). The policy's `services` is a
748
+ * LIST keyed by `name` — never assume a map. */
749
+ service: z.ZodOptional<z.ZodString>;
750
+ note: z.ZodOptional<z.ZodString>;
751
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
752
+ rails: z.ZodOptional<z.ZodNumber>;
753
+ }, "strip", z.ZodTypeAny, {
754
+ resident_gpu_mib: number;
755
+ host_rss_mib: number;
756
+ context_pool_cells: number;
757
+ kv_resident_cells: number;
758
+ measured_at: string;
759
+ measured_on: string;
760
+ note?: string | undefined;
761
+ service?: string | undefined;
762
+ engine?: string | undefined;
763
+ unit?: string | undefined;
764
+ per_session_cap_cells?: number | undefined;
765
+ kv_kind?: string | undefined;
766
+ kv_mib_per_1k_cells?: number | undefined;
767
+ profile?: string | undefined;
768
+ flags?: string[] | undefined;
769
+ rails?: number | undefined;
770
+ }, {
771
+ resident_gpu_mib: number;
772
+ host_rss_mib: number;
773
+ context_pool_cells: number;
774
+ kv_resident_cells: number;
775
+ measured_at: string;
776
+ measured_on: string;
777
+ note?: string | undefined;
778
+ service?: string | undefined;
779
+ engine?: string | undefined;
780
+ unit?: string | undefined;
781
+ per_session_cap_cells?: number | undefined;
782
+ kv_kind?: string | undefined;
783
+ kv_mib_per_1k_cells?: number | undefined;
784
+ profile?: string | undefined;
785
+ flags?: string[] | undefined;
786
+ rails?: number | undefined;
787
+ }>, z.ZodObject<{
788
+ status: z.ZodLiteral<"unmeasured">;
789
+ engine: z.ZodOptional<z.ZodString>;
790
+ unit: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
791
+ profile: z.ZodOptional<z.ZodString>;
792
+ /** Capacity-policy service name this config is cross-checked against
793
+ * (overrides the model-level `service`). The policy's `services` is a
794
+ * LIST keyed by `name` — never assume a map. */
795
+ service: z.ZodOptional<z.ZodString>;
796
+ note: z.ZodOptional<z.ZodString>;
797
+ flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
798
+ rails: z.ZodOptional<z.ZodNumber>;
799
+ }, "strip", z.ZodTypeAny, {
800
+ status: "unmeasured";
801
+ note?: string | undefined;
802
+ service?: string | undefined;
803
+ engine?: string | undefined;
804
+ unit?: string | undefined;
805
+ profile?: string | undefined;
806
+ flags?: string[] | undefined;
807
+ rails?: number | undefined;
808
+ }, {
809
+ status: "unmeasured";
810
+ note?: string | undefined;
811
+ service?: string | undefined;
812
+ engine?: string | undefined;
813
+ unit?: string | undefined;
814
+ profile?: string | undefined;
815
+ flags?: string[] | undefined;
816
+ rails?: number | undefined;
817
+ }>]>>;
818
+ }, "strip", z.ZodTypeAny, {
819
+ display: string;
820
+ configs: Record<string, {
821
+ resident_gpu_mib: number;
822
+ host_rss_mib: number;
823
+ context_pool_cells: number;
824
+ kv_resident_cells: number;
825
+ measured_at: string;
826
+ measured_on: string;
827
+ note?: string | undefined;
828
+ service?: string | undefined;
829
+ engine?: string | undefined;
830
+ unit?: string | undefined;
831
+ per_session_cap_cells?: number | undefined;
832
+ kv_kind?: string | undefined;
833
+ kv_mib_per_1k_cells?: number | undefined;
834
+ profile?: string | undefined;
835
+ flags?: string[] | undefined;
836
+ rails?: number | undefined;
837
+ } | {
838
+ status: "unmeasured";
839
+ note?: string | undefined;
840
+ service?: string | undefined;
841
+ engine?: string | undefined;
842
+ unit?: string | undefined;
843
+ profile?: string | undefined;
844
+ flags?: string[] | undefined;
845
+ rails?: number | undefined;
846
+ }>;
847
+ endpoint?: string | undefined;
848
+ service?: string | undefined;
849
+ engine?: string | undefined;
850
+ launch?: string | undefined;
851
+ unit?: string | undefined;
852
+ task_affinity?: string[] | undefined;
853
+ affinity?: {
854
+ device: string[];
855
+ } | undefined;
856
+ advertises?: string[] | undefined;
857
+ }, {
858
+ display: string;
859
+ configs: Record<string, {
860
+ resident_gpu_mib: number;
861
+ host_rss_mib: number;
862
+ context_pool_cells: number;
863
+ kv_resident_cells: number;
864
+ measured_at: string;
865
+ measured_on: string;
866
+ note?: string | undefined;
867
+ service?: string | undefined;
868
+ engine?: string | undefined;
869
+ unit?: string | undefined;
870
+ per_session_cap_cells?: number | undefined;
871
+ kv_kind?: string | undefined;
872
+ kv_mib_per_1k_cells?: number | undefined;
873
+ profile?: string | undefined;
874
+ flags?: string[] | undefined;
875
+ rails?: number | undefined;
876
+ } | {
877
+ status: "unmeasured";
878
+ note?: string | undefined;
879
+ service?: string | undefined;
880
+ engine?: string | undefined;
881
+ unit?: string | undefined;
882
+ profile?: string | undefined;
883
+ flags?: string[] | undefined;
884
+ rails?: number | undefined;
885
+ }>;
886
+ endpoint?: string | undefined;
887
+ service?: string | undefined;
888
+ engine?: string | undefined;
889
+ launch?: string | undefined;
890
+ unit?: string | undefined;
891
+ task_affinity?: string[] | undefined;
892
+ affinity?: {
893
+ device: string[];
894
+ } | undefined;
895
+ advertises?: string[] | undefined;
896
+ }>>>;
897
+ }, "strip", z.ZodTypeAny, {
898
+ version: 1;
899
+ models?: Record<string, {
900
+ display: string;
901
+ configs: Record<string, {
902
+ resident_gpu_mib: number;
903
+ host_rss_mib: number;
904
+ context_pool_cells: number;
905
+ kv_resident_cells: number;
906
+ measured_at: string;
907
+ measured_on: string;
908
+ note?: string | undefined;
909
+ service?: string | undefined;
910
+ engine?: string | undefined;
911
+ unit?: string | undefined;
912
+ per_session_cap_cells?: number | undefined;
913
+ kv_kind?: string | undefined;
914
+ kv_mib_per_1k_cells?: number | undefined;
915
+ profile?: string | undefined;
916
+ flags?: string[] | undefined;
917
+ rails?: number | undefined;
918
+ } | {
919
+ status: "unmeasured";
920
+ note?: string | undefined;
921
+ service?: string | undefined;
922
+ engine?: string | undefined;
923
+ unit?: string | undefined;
924
+ profile?: string | undefined;
925
+ flags?: string[] | undefined;
926
+ rails?: number | undefined;
927
+ }>;
928
+ endpoint?: string | undefined;
929
+ service?: string | undefined;
930
+ engine?: string | undefined;
931
+ launch?: string | undefined;
932
+ unit?: string | undefined;
933
+ task_affinity?: string[] | undefined;
934
+ affinity?: {
935
+ device: string[];
936
+ } | undefined;
937
+ advertises?: string[] | undefined;
938
+ }> | undefined;
939
+ devices?: Record<string, {
940
+ kind: "cpu" | "gpu";
941
+ name?: string | undefined;
942
+ total_mib?: number | undefined;
943
+ reserved_mib?: number | undefined;
944
+ reserve_reason?: string | undefined;
945
+ }> | undefined;
946
+ }, {
947
+ version: 1;
948
+ models?: Record<string, {
949
+ display: string;
950
+ configs: Record<string, {
951
+ resident_gpu_mib: number;
952
+ host_rss_mib: number;
953
+ context_pool_cells: number;
954
+ kv_resident_cells: number;
955
+ measured_at: string;
956
+ measured_on: string;
957
+ note?: string | undefined;
958
+ service?: string | undefined;
959
+ engine?: string | undefined;
960
+ unit?: string | undefined;
961
+ per_session_cap_cells?: number | undefined;
962
+ kv_kind?: string | undefined;
963
+ kv_mib_per_1k_cells?: number | undefined;
964
+ profile?: string | undefined;
965
+ flags?: string[] | undefined;
966
+ rails?: number | undefined;
967
+ } | {
968
+ status: "unmeasured";
969
+ note?: string | undefined;
970
+ service?: string | undefined;
971
+ engine?: string | undefined;
972
+ unit?: string | undefined;
973
+ profile?: string | undefined;
974
+ flags?: string[] | undefined;
975
+ rails?: number | undefined;
976
+ }>;
977
+ endpoint?: string | undefined;
978
+ service?: string | undefined;
979
+ engine?: string | undefined;
980
+ launch?: string | undefined;
981
+ unit?: string | undefined;
982
+ task_affinity?: string[] | undefined;
983
+ affinity?: {
984
+ device: string[];
985
+ } | undefined;
986
+ advertises?: string[] | undefined;
987
+ }> | undefined;
988
+ devices?: Record<string, {
989
+ kind: "cpu" | "gpu";
990
+ name?: string | undefined;
991
+ total_mib?: number | undefined;
992
+ reserved_mib?: number | undefined;
993
+ reserve_reason?: string | undefined;
994
+ }> | undefined;
995
+ }>;
996
+ export declare function isMeasuredConfig(cfg: ConfigEntry): cfg is MeasuredConfigEntry;
997
+ /** A config is placeable only with a measurement. This is the fail-closed
998
+ * gate: `unmeasured` never becomes a load or eviction candidate. */
999
+ export declare function isPlaceable(cfg: ConfigEntry): boolean;
1000
+ /** Admission cost (MiB) of serving `cells` context on a measured config:
1001
+ * whole-config resident figure, plus marginal KV beyond the pool the config
1002
+ * already paid for at startup. Returns null when the answer is unknown —
1003
+ * `cells` beyond the resident pool with no `kv_mib_per_1k_cells`. Null is
1004
+ * "refuse", never "free". */
1005
+ export declare function configCostMiB(cfg: MeasuredConfigEntry, cells: number): number | null;
1006
+ export interface RegistryLoadResult {
1007
+ registry: ModelRegistry;
1008
+ /** Where each file lives (or would live); existence is checked by the
1009
+ * caller via existsSync — a missing file is not an error, it is "no
1010
+ * measured footprints on this machine". */
1011
+ repoPath: string;
1012
+ localPath: string;
1013
+ /** Which file supplied each measured config, keyed `${model}/${config}`.
1014
+ * Absent = the config is unmeasured. */
1015
+ measuredFrom: Map<string, 'repo' | 'local'>;
1016
+ /** Parse/merge errors. Non-empty means fail closed on everything that
1017
+ * depends on the registry. */
1018
+ errors: string[];
1019
+ }
1020
+ export declare function repoRegistryPath(projectDir: string): string;
1021
+ export declare function localRegistryPath(): string;
1022
+ export declare function loadModelRegistry(projectDir: string, opts?: {
1023
+ repoPath?: string;
1024
+ localPath?: string;
1025
+ }): RegistryLoadResult;
1026
+ export interface RegistryFinding {
1027
+ severity: 'error' | 'warning';
1028
+ scope: string;
1029
+ message: string;
1030
+ }
1031
+ /** The capacity policy service a model/config is cross-checked against
1032
+ * (config-level overrides model-level). */
1033
+ export declare function crossCheckService(model: ModelEntry, cfg: ConfigEntry): string | undefined;
1034
+ /** Cross-check the registry against the capacity policy and its own internal
1035
+ * consistency. One source of truth per number: a registry entry that
1036
+ * contradicts the policy it should agree with is an error, not a warning. */
1037
+ export declare function validateRegistry(registry: ModelRegistry, policy: CapacityPolicy): RegistryFinding[];
1038
+ //# sourceMappingURL=registry.d.ts.map