@revealui/ai 0.9.0 → 0.10.0

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.
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Hardware capability profiles (GAP-297).
3
+ *
4
+ * Named, extendable host tiers for local-inference vocabulary — distinct from
5
+ * `local-ai-profile.ts` (operator runtime apply: idle/daily/snaps/heavy).
6
+ *
7
+ * Tiers (owner directive 2026-07-09):
8
+ * - constrained — low-RAM WSL / no dedicated GPU (owner machine reference)
9
+ * - mainstream — typical laptop/desktop with mid GPU or solid CPU RAM
10
+ * - workstation — high-VRAM / high-RAM local inference host
11
+ *
12
+ * Zero required config: absent profile → resolve returns null (no behavior
13
+ * change to the default dev path). GAP-296 boundary entries may cite `tier`
14
+ * instead of repeating raw hardware specs.
15
+ */
16
+ export type HardwareCapabilityTier = 'constrained' | 'mainstream' | 'workstation';
17
+ /** GAP-296-aligned verdict vocabulary for capability hints. */
18
+ export type CapabilityVerdict = 'local-OK' | 'primitives-only' | 'frontier-only';
19
+ export type CpuClass = 'low' | 'mid' | 'high';
20
+ export interface HardwareCapabilityProfile {
21
+ /** Stable id (preset id or user override id). */
22
+ id: string;
23
+ /** One of the three shipping tiers. */
24
+ tier: HardwareCapabilityTier;
25
+ /** Short human description. */
26
+ description: string;
27
+ /** Minimum usable host RAM (GiB) for this tier. */
28
+ ramGbMin: number;
29
+ /** Typical host RAM (GiB) used in docs / boundary pins. */
30
+ ramGbTypical: number;
31
+ /** Minimum dedicated GPU VRAM (GiB). 0 = CPU-only / iGPU acceptable. */
32
+ vramGbMin: number;
33
+ cpuClass: CpuClass;
34
+ /**
35
+ * Inference Snap / Ollama size classes viable on this tier.
36
+ * Values are size labels, not model names (model catalog churns faster).
37
+ */
38
+ viableModelSizes: Array<'nano' | 'small' | 'medium' | 'large'>;
39
+ /**
40
+ * Default expected verdicts for common capability classes.
41
+ * Living evidence still lives in GAP-296; this is hardware vocabulary only.
42
+ */
43
+ capabilityHints: Partial<Record<'product-inference' | 'embeddings' | 'auto-classify' | 'security-design' | 'multi-repo-synthesis' | 'mechanical-build' | 'guardrail-verify' | 'reasoner-loop', CapabilityVerdict>>;
44
+ /** Free-text operator note. */
45
+ note?: string;
46
+ /** When true, this profile is a user override of a preset (not a stock preset). */
47
+ isOverride?: boolean;
48
+ /** Preset id this override extends (if any). */
49
+ extends?: HardwareCapabilityTier;
50
+ }
51
+ /** Stock preset ids == tier names for the three shipping tiers. */
52
+ export declare const HARDWARE_CAPABILITY_PRESET_IDS: readonly ["constrained", "mainstream", "workstation"];
53
+ /**
54
+ * Constrained — owner WSL2 reference (~4–8 GiB usable, no dedicated GPU).
55
+ * Aligns with system-tune wsl-low-ram and local-ai "heavy needs care" notes.
56
+ */
57
+ export declare const CONSTRAINED_PRESET: HardwareCapabilityProfile;
58
+ /** Mainstream — typical modern laptop/desktop. */
59
+ export declare const MAINSTREAM_PRESET: HardwareCapabilityProfile;
60
+ /** Workstation — high-VRAM / high-RAM local inference host. */
61
+ export declare const WORKSTATION_PRESET: HardwareCapabilityProfile;
62
+ export declare function listHardwareCapabilityPresets(): HardwareCapabilityProfile[];
63
+ export declare function getHardwareCapabilityPreset(tier: HardwareCapabilityTier): HardwareCapabilityProfile;
64
+ export declare function isHardwareCapabilityTier(value: string): value is HardwareCapabilityTier;
65
+ /**
66
+ * Deep-merge user override onto a preset. Unknown tier throws.
67
+ * Arrays and nested objects in `override` replace (not concat) when provided.
68
+ */
69
+ export declare function resolveHardwareCapabilityProfile(input: HardwareCapabilityTier | (Partial<HardwareCapabilityProfile> & {
70
+ tier: HardwareCapabilityTier;
71
+ }) | null | undefined): HardwareCapabilityProfile | null;
72
+ /**
73
+ * Soft map from local-ai runtime tiers → hardware vocabulary.
74
+ * idle/daily/snaps → constrained; heavy → mainstream (operator still chooses).
75
+ * Does not auto-apply anything — callers opt in.
76
+ */
77
+ export declare function hardwareTierForLocalAiTier(localAiTier: 'idle' | 'daily' | 'snaps' | 'heavy'): HardwareCapabilityTier;
78
+ /**
79
+ * Whether a model size class is listed as viable on the profile.
80
+ * Unknown sizes are not viable (fail closed for vocabulary, not a runtime gate).
81
+ */
82
+ export declare function isModelSizeViable(profile: HardwareCapabilityProfile, size: 'nano' | 'small' | 'medium' | 'large'): boolean;
83
+ //# sourceMappingURL=hardware-capability-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardware-capability-profile.d.ts","sourceRoot":"","sources":["../../src/llm/hardware-capability-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAElF,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEjF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,yBAAyB;IACxC,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;OAGG;IACH,gBAAgB,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;IAC/D;;;OAGG;IACH,eAAe,EAAE,OAAO,CACtB,MAAM,CACF,mBAAmB,GACnB,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,sBAAsB,GACtB,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,EACjB,iBAAiB,CAClB,CACF,CAAC;IACF,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,mEAAmE;AACnE,eAAO,MAAM,8BAA8B,uDAIW,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,yBAqBhC,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,iBAAiB,EAAE,yBAoB/B,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,EAAE,yBAoBhC,CAAC;AAQF,wBAAgB,6BAA6B,IAAI,yBAAyB,EAAE,CAE3E;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,sBAAsB,GAC3B,yBAAyB,CAE3B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,sBAAsB,CAEvF;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EACD,sBAAsB,GACtB,CAAC,OAAO,CAAC,yBAAyB,CAAC,GAAG;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC,GACvE,IAAI,GACJ,SAAS,GACZ,yBAAyB,GAAG,IAAI,CA8BlC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAChD,sBAAsB,CAaxB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,yBAAyB,EAClC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAC1C,OAAO,CAET"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Hardware capability profiles (GAP-297).
3
+ *
4
+ * Named, extendable host tiers for local-inference vocabulary — distinct from
5
+ * `local-ai-profile.ts` (operator runtime apply: idle/daily/snaps/heavy).
6
+ *
7
+ * Tiers (owner directive 2026-07-09):
8
+ * - constrained — low-RAM WSL / no dedicated GPU (owner machine reference)
9
+ * - mainstream — typical laptop/desktop with mid GPU or solid CPU RAM
10
+ * - workstation — high-VRAM / high-RAM local inference host
11
+ *
12
+ * Zero required config: absent profile → resolve returns null (no behavior
13
+ * change to the default dev path). GAP-296 boundary entries may cite `tier`
14
+ * instead of repeating raw hardware specs.
15
+ */
16
+ /** Stock preset ids == tier names for the three shipping tiers. */
17
+ export const HARDWARE_CAPABILITY_PRESET_IDS = [
18
+ 'constrained',
19
+ 'mainstream',
20
+ 'workstation',
21
+ ];
22
+ /**
23
+ * Constrained — owner WSL2 reference (~4–8 GiB usable, no dedicated GPU).
24
+ * Aligns with system-tune wsl-low-ram and local-ai "heavy needs care" notes.
25
+ */
26
+ export const CONSTRAINED_PRESET = {
27
+ id: 'constrained',
28
+ tier: 'constrained',
29
+ description: 'Low-RAM self-host (WSL2 ~4–8 GiB usable, no dedicated GPU). Prefer nano/small models; unload after use.',
30
+ ramGbMin: 4,
31
+ ramGbTypical: 6,
32
+ vramGbMin: 0,
33
+ cpuClass: 'low',
34
+ viableModelSizes: ['nano', 'small'],
35
+ capabilityHints: {
36
+ 'product-inference': 'local-OK',
37
+ embeddings: 'local-OK',
38
+ 'auto-classify': 'primitives-only',
39
+ 'security-design': 'frontier-only',
40
+ 'multi-repo-synthesis': 'frontier-only',
41
+ 'mechanical-build': 'local-OK',
42
+ 'guardrail-verify': 'frontier-only',
43
+ 'reasoner-loop': 'primitives-only',
44
+ },
45
+ note: 'Owner-machine reference tier (2026-07-09). Do not treat as a behavior change to unconfigured hosts.',
46
+ };
47
+ /** Mainstream — typical modern laptop/desktop. */
48
+ export const MAINSTREAM_PRESET = {
49
+ id: 'mainstream',
50
+ tier: 'mainstream',
51
+ description: 'Typical dev laptop/desktop (16–32 GiB RAM, optional mid-tier GPU). Small/medium local models viable.',
52
+ ramGbMin: 12,
53
+ ramGbTypical: 16,
54
+ vramGbMin: 0,
55
+ cpuClass: 'mid',
56
+ viableModelSizes: ['nano', 'small', 'medium'],
57
+ capabilityHints: {
58
+ 'product-inference': 'local-OK',
59
+ embeddings: 'local-OK',
60
+ 'auto-classify': 'primitives-only',
61
+ 'security-design': 'frontier-only',
62
+ 'multi-repo-synthesis': 'frontier-only',
63
+ 'mechanical-build': 'local-OK',
64
+ 'guardrail-verify': 'frontier-only',
65
+ 'reasoner-loop': 'primitives-only',
66
+ },
67
+ };
68
+ /** Workstation — high-VRAM / high-RAM local inference host. */
69
+ export const WORKSTATION_PRESET = {
70
+ id: 'workstation',
71
+ tier: 'workstation',
72
+ description: 'High-RAM / high-VRAM workstation. Medium and large local models viable; still pin security design to frontier when required.',
73
+ ramGbMin: 32,
74
+ ramGbTypical: 64,
75
+ vramGbMin: 12,
76
+ cpuClass: 'high',
77
+ viableModelSizes: ['nano', 'small', 'medium', 'large'],
78
+ capabilityHints: {
79
+ 'product-inference': 'local-OK',
80
+ embeddings: 'local-OK',
81
+ 'auto-classify': 'local-OK',
82
+ 'security-design': 'frontier-only',
83
+ 'multi-repo-synthesis': 'primitives-only',
84
+ 'mechanical-build': 'local-OK',
85
+ 'guardrail-verify': 'frontier-only',
86
+ 'reasoner-loop': 'local-OK',
87
+ },
88
+ };
89
+ const PRESETS = {
90
+ constrained: CONSTRAINED_PRESET,
91
+ mainstream: MAINSTREAM_PRESET,
92
+ workstation: WORKSTATION_PRESET,
93
+ };
94
+ export function listHardwareCapabilityPresets() {
95
+ return HARDWARE_CAPABILITY_PRESET_IDS.map((id) => structuredClone(PRESETS[id]));
96
+ }
97
+ export function getHardwareCapabilityPreset(tier) {
98
+ return structuredClone(PRESETS[tier]);
99
+ }
100
+ export function isHardwareCapabilityTier(value) {
101
+ return value === 'constrained' || value === 'mainstream' || value === 'workstation';
102
+ }
103
+ /**
104
+ * Deep-merge user override onto a preset. Unknown tier throws.
105
+ * Arrays and nested objects in `override` replace (not concat) when provided.
106
+ */
107
+ export function resolveHardwareCapabilityProfile(input) {
108
+ if (input == null)
109
+ return null;
110
+ if (typeof input === 'string') {
111
+ if (!isHardwareCapabilityTier(input)) {
112
+ throw new Error(`Unknown hardware capability tier "${input}". Valid: constrained | mainstream | workstation`);
113
+ }
114
+ return getHardwareCapabilityPreset(input);
115
+ }
116
+ if (!isHardwareCapabilityTier(input.tier)) {
117
+ throw new Error(`Unknown hardware capability tier "${String(input.tier)}". Valid: constrained | mainstream | workstation`);
118
+ }
119
+ const base = getHardwareCapabilityPreset(input.tier);
120
+ const merged = {
121
+ ...base,
122
+ ...input,
123
+ tier: input.tier,
124
+ capabilityHints: {
125
+ ...base.capabilityHints,
126
+ ...(input.capabilityHints ?? {}),
127
+ },
128
+ viableModelSizes: input.viableModelSizes ?? base.viableModelSizes,
129
+ isOverride: true,
130
+ extends: input.tier,
131
+ id: input.id ?? `${input.tier}-override`,
132
+ };
133
+ return merged;
134
+ }
135
+ /**
136
+ * Soft map from local-ai runtime tiers → hardware vocabulary.
137
+ * idle/daily/snaps → constrained; heavy → mainstream (operator still chooses).
138
+ * Does not auto-apply anything — callers opt in.
139
+ */
140
+ export function hardwareTierForLocalAiTier(localAiTier) {
141
+ switch (localAiTier) {
142
+ case 'idle':
143
+ case 'daily':
144
+ case 'snaps':
145
+ return 'constrained';
146
+ case 'heavy':
147
+ return 'mainstream';
148
+ default: {
149
+ const _exhaustive = localAiTier;
150
+ return _exhaustive;
151
+ }
152
+ }
153
+ }
154
+ /**
155
+ * Whether a model size class is listed as viable on the profile.
156
+ * Unknown sizes are not viable (fail closed for vocabulary, not a runtime gate).
157
+ */
158
+ export function isModelSizeViable(profile, size) {
159
+ return profile.viableModelSizes.includes(size);
160
+ }
@@ -37,8 +37,11 @@ export interface RuntimeConfig {
37
37
  *
38
38
  * @deprecated Prefer `mcpClients` (Stage 5.1a). The hypervisor path doesn't
39
39
  * expose the full MCP protocol surface (resources, prompts, sampling,
40
- * elicitation). Standard `McpClient` instances do. This field stays for
41
- * backwards compatibility and will keep working until a future major.
40
+ * elicitation). Standard `McpClient` instances do.
41
+ *
42
+ * **Removal owner:** product AI runtime. **REMOVE-BY:** `@revealui/ai` 1.0.0
43
+ * (with `MCPToolSource` / `discoverMCPTools`). Product agent-stream already
44
+ * mounts via `createToolsFromMcpClient` only; this field is external-compat.
42
45
  */
43
46
  mcpToolSource?: MCPToolSource;
44
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/orchestration/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAW,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IACpE;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;;;OAIG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,gCAAgC,EAAE,SAAS,CAAC;IAC/D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,qBAAa,YAAY;IACvB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,GAAE,aAAkB;IA2BtC;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;YAqBzE,OAAO;IAsPrB;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI7B;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAc9E;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B9B;;OAEG;IACH,SAAS,IAAI;QACX,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB;CAOF"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/orchestration/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAW,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAM5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IACpE;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;;;OAIG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,gCAAgC,EAAE,SAAS,CAAC;IAC/D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,qBAAa,YAAY;IACvB,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,GAAE,aAAkB;IA8BtC;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;YAqBzE,OAAO;IAsPrB;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI7B;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAc9E;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B9B;;OAEG;IACH,SAAS,IAAI;QACX,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB;CAOF"}
@@ -7,7 +7,7 @@ import { registerCleanupHandler } from '@revealui/core/monitoring';
7
7
  import { z } from 'zod/v4';
8
8
  import { estimateCost } from '../llm/token-counter.js';
9
9
  import { ToolCallDeduplicator } from '../tools/deduplicator.js';
10
- import { createToolsFromMcpClient, discoverMCPTools } from '../tools/mcp-adapter.js';
10
+ import { createToolsFromMcpClient, discoverMCPTools, warnHypervisorMcpPathDeprecated, } from '../tools/mcp-adapter.js';
11
11
  import { createWebSearchTool } from '../tools/web/duck-duck-go.js';
12
12
  export class AgentRuntime {
13
13
  config;
@@ -15,6 +15,9 @@ export class AgentRuntime {
15
15
  executingTasks = new Map();
16
16
  isShuttingDown = false;
17
17
  constructor(config = {}) {
18
+ if (config.mcpToolSource) {
19
+ warnHypervisorMcpPathDeprecated('AgentRuntime mcpToolSource');
20
+ }
18
21
  this.config = {
19
22
  maxIterations: config.maxIterations ?? 10,
20
23
  timeout: config.timeout ?? 60000, // 60 seconds
@@ -22,6 +22,9 @@
22
22
  */
23
23
  import type { Tool } from './base.js';
24
24
  import { type McpEventSink, type McpToolCallEvent } from './mcp-events.js';
25
+ export declare function warnHypervisorMcpPathDeprecated(site: string): void;
26
+ /** Test-only: reset the one-time deprecation warn latch. */
27
+ export declare function resetHypervisorMcpPathWarningForTests(): void;
25
28
  export interface MCPTool {
26
29
  name: string;
27
30
  description: string;
@@ -42,6 +45,12 @@ export interface MCPClient {
42
45
  * @deprecated Prefer `McpClientLike` + `createToolsFromMcpClient()` (Stage 5.1a).
43
46
  * The hypervisor path doesn't expose the full MCP protocol surface (resources,
44
47
  * prompts, sampling, elicitation). The typed-client path does.
48
+ *
49
+ * **Removal owner:** product AI runtime (agent-stream already uses `mcpClients`).
50
+ * **REMOVE-BY:** `@revealui/ai` 1.0.0 — delete `MCPToolSource`, `discoverMCPTools`,
51
+ * and `AgentRuntime` `mcpToolSource` once no external kit still calls them
52
+ * (grep product + published examples in the same PR). Until then this path is
53
+ * retained for external SDK compatibility only.
45
54
  */
46
55
  export interface MCPToolSource {
47
56
  getAllTools(): Array<{
@@ -262,6 +271,7 @@ export interface DiscoverMCPToolsOptions {
262
271
  *
263
272
  * @deprecated Prefer `createToolsFromMcpClient` (Stage 5.1a). Kept for
264
273
  * AgentRuntime `mcpToolSource` compatibility.
274
+ * **REMOVE-BY:** `@revealui/ai` 1.0.0 (same train as `MCPToolSource`).
265
275
  *
266
276
  * @example
267
277
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-adapter.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-adapter.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-adapter.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,19 @@
22
22
  */
23
23
  import { z } from 'zod/v4';
24
24
  import { emitMcpEvent } from './mcp-events.js';
25
+ /** One-time process warning for the hypervisor MCP tool path (REMOVE-BY ai@1.0.0). */
26
+ let hypervisorPathWarned = false;
27
+ export function warnHypervisorMcpPathDeprecated(site) {
28
+ if (hypervisorPathWarned)
29
+ return;
30
+ hypervisorPathWarned = true;
31
+ process.emitWarning(`@revealui/ai: ${site} is deprecated. Prefer mcpClients / createToolsFromMcpClient (Stage 5.1a). ` +
32
+ 'REMOVE-BY: @revealui/ai 1.0.0. See packages/ai/src/tools/mcp-adapter.ts.', 'DeprecationWarning', 'REVEALUI_AI_MCP_HYPERVISOR_DEPRECATED');
33
+ }
34
+ /** Test-only: reset the one-time deprecation warn latch. */
35
+ export function resetHypervisorMcpPathWarningForTests() {
36
+ hypervisorPathWarned = false;
37
+ }
25
38
  /**
26
39
  * Connect the agent's tool registry to a standard MCP client. Lists tools
27
40
  * from the MCP server and returns agent-side `Tool` instances that dispatch
@@ -504,6 +517,7 @@ export function serializeMCPResult(value) {
504
517
  *
505
518
  * @deprecated Prefer `createToolsFromMcpClient` (Stage 5.1a). Kept for
506
519
  * AgentRuntime `mcpToolSource` compatibility.
520
+ * **REMOVE-BY:** `@revealui/ai` 1.0.0 (same train as `MCPToolSource`).
507
521
  *
508
522
  * @example
509
523
  * ```typescript
@@ -516,6 +530,7 @@ export function serializeMCPResult(value) {
516
530
  * ```
517
531
  */
518
532
  export function discoverMCPTools(source, options) {
533
+ warnHypervisorMcpPathDeprecated('discoverMCPTools() / MCPToolSource');
519
534
  return source.getAllTools().map(({ namespacedName, serverName, tool }) => {
520
535
  const zodSchema = jsonSchemaToZod(tool.inputSchema);
521
536
  const agentTool = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revealui/ai",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "AI runtime for agent-driven products — agents, memory, LLM providers (Inference Snaps, Ollama, OpenAI-compatible), tools, and orchestration. Anthropic-SDK-free.",
5
5
  "keywords": [
6
6
  "agent",
@@ -25,8 +25,8 @@
25
25
  "dependencies": {
26
26
  "lru-cache": "^11.5.1",
27
27
  "zod": "^4.4.3",
28
- "@revealui/contracts": "0.8.1",
29
- "@revealui/core": "0.12.2",
28
+ "@revealui/contracts": "0.8.2",
29
+ "@revealui/core": "0.13.0",
30
30
  "@revealui/db": "0.10.0",
31
31
  "@revealui/resilience": "0.2.4"
32
32
  },
@@ -35,8 +35,8 @@
35
35
  "@testing-library/react": "^16.3.2",
36
36
  "@vitest/coverage-v8": "^4.1.10",
37
37
  "jsdom": "29.1.1",
38
- "react": "^19.2.7",
39
- "react-dom": "^19.2.7",
38
+ "react": "19.2.8",
39
+ "react-dom": "19.2.8",
40
40
  "typescript": "^6.0.3",
41
41
  "vitest": "^4.1.10",
42
42
  "@revealui/dev": "0.1.0"
@@ -199,6 +199,11 @@
199
199
  "types": "./dist/inference/task-decomposer.d.ts",
200
200
  "import": "./dist/inference/task-decomposer.js",
201
201
  "default": "./dist/inference/task-decomposer.js"
202
+ },
203
+ "./llm/hardware-capability-profile": {
204
+ "types": "./dist/llm/hardware-capability-profile.d.ts",
205
+ "import": "./dist/llm/hardware-capability-profile.js",
206
+ "default": "./dist/llm/hardware-capability-profile.js"
202
207
  }
203
208
  },
204
209
  "files": [