mozart-router 0.1.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.
Files changed (238) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +250 -0
  3. package/dist/adapters/cursor.d.ts +10 -0
  4. package/dist/adapters/cursor.d.ts.map +1 -0
  5. package/dist/adapters/cursor.js +39 -0
  6. package/dist/adapters/cursor.js.map +1 -0
  7. package/dist/adapters/generic.d.ts +24 -0
  8. package/dist/adapters/generic.d.ts.map +1 -0
  9. package/dist/adapters/generic.js +192 -0
  10. package/dist/adapters/generic.js.map +1 -0
  11. package/dist/adapters/hermes.d.ts +10 -0
  12. package/dist/adapters/hermes.d.ts.map +1 -0
  13. package/dist/adapters/hermes.js +170 -0
  14. package/dist/adapters/hermes.js.map +1 -0
  15. package/dist/adapters/index.d.ts +13 -0
  16. package/dist/adapters/index.d.ts.map +1 -0
  17. package/dist/adapters/index.js +27 -0
  18. package/dist/adapters/index.js.map +1 -0
  19. package/dist/adapters/litellm.d.ts +15 -0
  20. package/dist/adapters/litellm.d.ts.map +1 -0
  21. package/dist/adapters/litellm.js +238 -0
  22. package/dist/adapters/litellm.js.map +1 -0
  23. package/dist/adapters/lmstudio.d.ts +12 -0
  24. package/dist/adapters/lmstudio.d.ts.map +1 -0
  25. package/dist/adapters/lmstudio.js +128 -0
  26. package/dist/adapters/lmstudio.js.map +1 -0
  27. package/dist/adapters/nim.d.ts +12 -0
  28. package/dist/adapters/nim.d.ts.map +1 -0
  29. package/dist/adapters/nim.js +163 -0
  30. package/dist/adapters/nim.js.map +1 -0
  31. package/dist/adapters/ollama.d.ts +12 -0
  32. package/dist/adapters/ollama.d.ts.map +1 -0
  33. package/dist/adapters/ollama.js +243 -0
  34. package/dist/adapters/ollama.js.map +1 -0
  35. package/dist/adapters/openclaw.d.ts +10 -0
  36. package/dist/adapters/openclaw.d.ts.map +1 -0
  37. package/dist/adapters/openclaw.js +197 -0
  38. package/dist/adapters/openclaw.js.map +1 -0
  39. package/dist/adapters/opencode.d.ts +10 -0
  40. package/dist/adapters/opencode.d.ts.map +1 -0
  41. package/dist/adapters/opencode.js +180 -0
  42. package/dist/adapters/opencode.js.map +1 -0
  43. package/dist/adapters/openrouter.d.ts +13 -0
  44. package/dist/adapters/openrouter.d.ts.map +1 -0
  45. package/dist/adapters/openrouter.js +173 -0
  46. package/dist/adapters/openrouter.js.map +1 -0
  47. package/dist/adapters/vllm.d.ts +12 -0
  48. package/dist/adapters/vllm.d.ts.map +1 -0
  49. package/dist/adapters/vllm.js +129 -0
  50. package/dist/adapters/vllm.js.map +1 -0
  51. package/dist/api/dashboard.d.ts +3 -0
  52. package/dist/api/dashboard.d.ts.map +1 -0
  53. package/dist/api/dashboard.js +98 -0
  54. package/dist/api/dashboard.js.map +1 -0
  55. package/dist/api/mcp.d.ts +32 -0
  56. package/dist/api/mcp.d.ts.map +1 -0
  57. package/dist/api/mcp.js +215 -0
  58. package/dist/api/mcp.js.map +1 -0
  59. package/dist/api/middleware.d.ts +20 -0
  60. package/dist/api/middleware.d.ts.map +1 -0
  61. package/dist/api/middleware.js +239 -0
  62. package/dist/api/middleware.js.map +1 -0
  63. package/dist/api/server.d.ts +26 -0
  64. package/dist/api/server.d.ts.map +1 -0
  65. package/dist/api/server.js +294 -0
  66. package/dist/api/server.js.map +1 -0
  67. package/dist/api/streaming.d.ts +19 -0
  68. package/dist/api/streaming.d.ts.map +1 -0
  69. package/dist/api/streaming.js +274 -0
  70. package/dist/api/streaming.js.map +1 -0
  71. package/dist/cli/config-init.d.ts +2 -0
  72. package/dist/cli/config-init.d.ts.map +1 -0
  73. package/dist/cli/config-init.js +73 -0
  74. package/dist/cli/config-init.js.map +1 -0
  75. package/dist/cli/main.d.ts +3 -0
  76. package/dist/cli/main.d.ts.map +1 -0
  77. package/dist/cli/main.js +618 -0
  78. package/dist/cli/main.js.map +1 -0
  79. package/dist/context/advanced-optimizer.d.ts +12 -0
  80. package/dist/context/advanced-optimizer.d.ts.map +1 -0
  81. package/dist/context/advanced-optimizer.js +64 -0
  82. package/dist/context/advanced-optimizer.js.map +1 -0
  83. package/dist/context/optimizer.d.ts +7 -0
  84. package/dist/context/optimizer.d.ts.map +1 -0
  85. package/dist/context/optimizer.js +101 -0
  86. package/dist/context/optimizer.js.map +1 -0
  87. package/dist/core/cache.d.ts +39 -0
  88. package/dist/core/cache.d.ts.map +1 -0
  89. package/dist/core/cache.js +90 -0
  90. package/dist/core/cache.js.map +1 -0
  91. package/dist/core/health.d.ts +32 -0
  92. package/dist/core/health.d.ts.map +1 -0
  93. package/dist/core/health.js +92 -0
  94. package/dist/core/health.js.map +1 -0
  95. package/dist/core/inventory.d.ts +28 -0
  96. package/dist/core/inventory.d.ts.map +1 -0
  97. package/dist/core/inventory.js +106 -0
  98. package/dist/core/inventory.js.map +1 -0
  99. package/dist/core/metrics.d.ts +48 -0
  100. package/dist/core/metrics.d.ts.map +1 -0
  101. package/dist/core/metrics.js +115 -0
  102. package/dist/core/metrics.js.map +1 -0
  103. package/dist/core/mozart.d.ts +39 -0
  104. package/dist/core/mozart.d.ts.map +1 -0
  105. package/dist/core/mozart.js +156 -0
  106. package/dist/core/mozart.js.map +1 -0
  107. package/dist/core/persistence.d.ts +13 -0
  108. package/dist/core/persistence.d.ts.map +1 -0
  109. package/dist/core/persistence.js +119 -0
  110. package/dist/core/persistence.js.map +1 -0
  111. package/dist/core/plugins.d.ts +18 -0
  112. package/dist/core/plugins.d.ts.map +1 -0
  113. package/dist/core/plugins.js +110 -0
  114. package/dist/core/plugins.js.map +1 -0
  115. package/dist/core/reliability.d.ts +23 -0
  116. package/dist/core/reliability.d.ts.map +1 -0
  117. package/dist/core/reliability.js +70 -0
  118. package/dist/core/reliability.js.map +1 -0
  119. package/dist/core/session.d.ts +17 -0
  120. package/dist/core/session.d.ts.map +1 -0
  121. package/dist/core/session.js +67 -0
  122. package/dist/core/session.js.map +1 -0
  123. package/dist/cost/dynamic-pricing.d.ts +24 -0
  124. package/dist/cost/dynamic-pricing.d.ts.map +1 -0
  125. package/dist/cost/dynamic-pricing.js +71 -0
  126. package/dist/cost/dynamic-pricing.js.map +1 -0
  127. package/dist/cost/estimator.d.ts +8 -0
  128. package/dist/cost/estimator.d.ts.map +1 -0
  129. package/dist/cost/estimator.js +48 -0
  130. package/dist/cost/estimator.js.map +1 -0
  131. package/dist/explain/engine.d.ts +6 -0
  132. package/dist/explain/engine.d.ts.map +1 -0
  133. package/dist/explain/engine.js +59 -0
  134. package/dist/explain/engine.js.map +1 -0
  135. package/dist/index.d.ts +59 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +112 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/logs/logger.d.ts +35 -0
  140. package/dist/logs/logger.d.ts.map +1 -0
  141. package/dist/logs/logger.js +73 -0
  142. package/dist/logs/logger.js.map +1 -0
  143. package/dist/logs/redactor.d.ts +6 -0
  144. package/dist/logs/redactor.d.ts.map +1 -0
  145. package/dist/logs/redactor.js +54 -0
  146. package/dist/logs/redactor.js.map +1 -0
  147. package/dist/policy/engine.d.ts +9 -0
  148. package/dist/policy/engine.d.ts.map +1 -0
  149. package/dist/policy/engine.js +55 -0
  150. package/dist/policy/engine.js.map +1 -0
  151. package/dist/policy/loader.d.ts +3 -0
  152. package/dist/policy/loader.d.ts.map +1 -0
  153. package/dist/policy/loader.js +27 -0
  154. package/dist/policy/loader.js.map +1 -0
  155. package/dist/policy/profiles.d.ts +11 -0
  156. package/dist/policy/profiles.d.ts.map +1 -0
  157. package/dist/policy/profiles.js +263 -0
  158. package/dist/policy/profiles.js.map +1 -0
  159. package/dist/policy/yaml-loader.d.ts +10 -0
  160. package/dist/policy/yaml-loader.d.ts.map +1 -0
  161. package/dist/policy/yaml-loader.js +160 -0
  162. package/dist/policy/yaml-loader.js.map +1 -0
  163. package/dist/privacy/guard.d.ts +8 -0
  164. package/dist/privacy/guard.d.ts.map +1 -0
  165. package/dist/privacy/guard.js +125 -0
  166. package/dist/privacy/guard.js.map +1 -0
  167. package/dist/routing/circuit-breaker.d.ts +23 -0
  168. package/dist/routing/circuit-breaker.d.ts.map +1 -0
  169. package/dist/routing/circuit-breaker.js +74 -0
  170. package/dist/routing/circuit-breaker.js.map +1 -0
  171. package/dist/routing/classifier.d.ts +5 -0
  172. package/dist/routing/classifier.d.ts.map +1 -0
  173. package/dist/routing/classifier.js +102 -0
  174. package/dist/routing/classifier.js.map +1 -0
  175. package/dist/routing/fallback.d.ts +27 -0
  176. package/dist/routing/fallback.d.ts.map +1 -0
  177. package/dist/routing/fallback.js +66 -0
  178. package/dist/routing/fallback.js.map +1 -0
  179. package/dist/routing/multistage.d.ts +49 -0
  180. package/dist/routing/multistage.d.ts.map +1 -0
  181. package/dist/routing/multistage.js +108 -0
  182. package/dist/routing/multistage.js.map +1 -0
  183. package/dist/routing/router.d.ts +22 -0
  184. package/dist/routing/router.d.ts.map +1 -0
  185. package/dist/routing/router.js +123 -0
  186. package/dist/routing/router.js.map +1 -0
  187. package/dist/routing/scorer.d.ts +8 -0
  188. package/dist/routing/scorer.d.ts.map +1 -0
  189. package/dist/routing/scorer.js +131 -0
  190. package/dist/routing/scorer.js.map +1 -0
  191. package/dist/skills/definitions.d.ts +10 -0
  192. package/dist/skills/definitions.d.ts.map +1 -0
  193. package/dist/skills/definitions.js +112 -0
  194. package/dist/skills/definitions.js.map +1 -0
  195. package/dist/skills/index.d.ts +3 -0
  196. package/dist/skills/index.d.ts.map +1 -0
  197. package/dist/skills/index.js +14 -0
  198. package/dist/skills/index.js.map +1 -0
  199. package/dist/types/index.d.ts +298 -0
  200. package/dist/types/index.d.ts.map +1 -0
  201. package/dist/types/index.js +34 -0
  202. package/dist/types/index.js.map +1 -0
  203. package/dist/utils/canrunit.d.ts +26 -0
  204. package/dist/utils/canrunit.d.ts.map +1 -0
  205. package/dist/utils/canrunit.js +69 -0
  206. package/dist/utils/canrunit.js.map +1 -0
  207. package/dist/utils/dealsforge.d.ts +6 -0
  208. package/dist/utils/dealsforge.d.ts.map +1 -0
  209. package/dist/utils/dealsforge.js +105 -0
  210. package/dist/utils/dealsforge.js.map +1 -0
  211. package/docs/ADAPTERS.md +129 -0
  212. package/docs/ARCHITECTURE.md +113 -0
  213. package/docs/DELEGATED_EXECUTION.md +62 -0
  214. package/docs/FEATURE_MATRIX.md +113 -0
  215. package/docs/GATEWAY_FIRST_PRINCIPLES.md +66 -0
  216. package/docs/INTEGRATIONS.md +94 -0
  217. package/docs/LIMITATIONS.md +43 -0
  218. package/docs/RECOMMEND_ONLY_MODE.md +82 -0
  219. package/docs/ROADMAP.md +70 -0
  220. package/docs/SECURITY.md +74 -0
  221. package/docs/SKILLS_AND_TOOLS.md +141 -0
  222. package/examples/community-adapter/TEMPLATE.md +157 -0
  223. package/examples/generic-tools/README.md +29 -0
  224. package/examples/generic-tools/mozart-tools.json +86 -0
  225. package/examples/hermes/README.md +29 -0
  226. package/examples/hermes/mozart-tool.json +48 -0
  227. package/examples/litellm/README.md +21 -0
  228. package/examples/litellm/config.yaml +39 -0
  229. package/examples/ollama/README.md +37 -0
  230. package/examples/ollama/usage.ts +59 -0
  231. package/examples/openclaw/README.md +26 -0
  232. package/examples/openclaw/mozart-skill.yaml +80 -0
  233. package/examples/opencode/README.md +30 -0
  234. package/examples/opencode/SKILL.md +47 -0
  235. package/examples/opencode/mozart-skill.json +64 -0
  236. package/examples/openrouter/README.md +21 -0
  237. package/examples/openrouter/config.json +14 -0
  238. package/package.json +53 -0
@@ -0,0 +1,48 @@
1
+ import { RouteDecision, CostEstimate, TokenUsage } from '../types';
2
+ export interface MetricsSnapshot {
3
+ timestamp: string;
4
+ routes: {
5
+ total: number;
6
+ byTaskType: Record<string, number>;
7
+ byProvider: Record<string, number>;
8
+ byModel: Record<string, number>;
9
+ };
10
+ costs: {
11
+ totalEstimated: number;
12
+ totalSaved: number;
13
+ averagePerCall: number;
14
+ };
15
+ tokens: {
16
+ totalInput: number;
17
+ totalOutput: number;
18
+ total: number;
19
+ };
20
+ privacy: {
21
+ checks: number;
22
+ blocks: number;
23
+ filesKeptLocal: number;
24
+ };
25
+ gateways: {
26
+ active: number;
27
+ total: number;
28
+ };
29
+ }
30
+ export declare class MetricsCollector {
31
+ private routes;
32
+ private costEstimates;
33
+ private tokenUsages;
34
+ private privacyBlocks;
35
+ private privacyChecks;
36
+ private filesKeptLocal;
37
+ private startTime;
38
+ recordRoute(route: RouteDecision): void;
39
+ recordCost(cost: CostEstimate): void;
40
+ recordTokens(tokens: TokenUsage): void;
41
+ recordPrivacyCheck(blocked: boolean): void;
42
+ recordFileKeptLocal(): void;
43
+ snapshot(activeGateways: number, totalGateways: number): MetricsSnapshot;
44
+ toPrometheus(): string;
45
+ toJSON(): MetricsSnapshot;
46
+ reset(): void;
47
+ }
48
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACjC,CAAC;IACF,KAAK,EAAE;QACL,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAc;IAE/B,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIvC,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIpC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAItC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK1C,mBAAmB,IAAI,IAAI;IAI3B,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,eAAe;IA+CxE,YAAY,IAAI,MAAM;IA8BtB,MAAM,IAAI,eAAe;IAIzB,KAAK,IAAI,IAAI;CASd"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetricsCollector = void 0;
4
+ class MetricsCollector {
5
+ routes = [];
6
+ costEstimates = [];
7
+ tokenUsages = [];
8
+ privacyBlocks = 0;
9
+ privacyChecks = 0;
10
+ filesKeptLocal = 0;
11
+ startTime = Date.now();
12
+ recordRoute(route) {
13
+ this.routes.push(route);
14
+ }
15
+ recordCost(cost) {
16
+ this.costEstimates.push(cost);
17
+ }
18
+ recordTokens(tokens) {
19
+ this.tokenUsages.push(tokens);
20
+ }
21
+ recordPrivacyCheck(blocked) {
22
+ this.privacyChecks++;
23
+ if (blocked)
24
+ this.privacyBlocks++;
25
+ }
26
+ recordFileKeptLocal() {
27
+ this.filesKeptLocal++;
28
+ }
29
+ snapshot(activeGateways, totalGateways) {
30
+ const taskTypeCounts = {};
31
+ const providerCounts = {};
32
+ const modelCounts = {};
33
+ for (const r of this.routes) {
34
+ const tt = r.explanation[0]?.split(':')[0]?.replace('Task', '').trim() ?? 'unknown';
35
+ taskTypeCounts[tt] = (taskTypeCounts[tt] ?? 0) + 1;
36
+ providerCounts[r.selectedProvider] = (providerCounts[r.selectedProvider] ?? 0) + 1;
37
+ modelCounts[r.selectedModel] = (modelCounts[r.selectedModel] ?? 0) + 1;
38
+ }
39
+ const totalCost = this.costEstimates.reduce((s, c) => s + c.totalCost, 0);
40
+ const totalSaved = this.costEstimates.reduce((s, c) => s + (c.comparedToPremium && c.totalCost < c.comparedToPremium ? c.comparedToPremium - c.totalCost : 0), 0);
41
+ const totalInput = this.tokenUsages.reduce((s, t) => s + t.input, 0);
42
+ const totalOutput = this.tokenUsages.reduce((s, t) => s + t.output, 0);
43
+ return {
44
+ timestamp: new Date().toISOString(),
45
+ routes: {
46
+ total: this.routes.length,
47
+ byTaskType: taskTypeCounts,
48
+ byProvider: providerCounts,
49
+ byModel: modelCounts,
50
+ },
51
+ costs: {
52
+ totalEstimated: Math.round(totalCost * 10000) / 10000,
53
+ totalSaved: Math.round(totalSaved * 10000) / 10000,
54
+ averagePerCall: this.costEstimates.length > 0 ? Math.round((totalCost / this.costEstimates.length) * 10000) / 10000 : 0,
55
+ },
56
+ tokens: {
57
+ totalInput,
58
+ totalOutput,
59
+ total: totalInput + totalOutput,
60
+ },
61
+ privacy: {
62
+ checks: this.privacyChecks,
63
+ blocks: this.privacyBlocks,
64
+ filesKeptLocal: this.filesKeptLocal,
65
+ },
66
+ gateways: {
67
+ active: activeGateways,
68
+ total: totalGateways,
69
+ },
70
+ };
71
+ }
72
+ toPrometheus() {
73
+ const snapshot = this.snapshot(0, 0);
74
+ const lines = [
75
+ `# HELP mozart_routes_total Total routes processed`,
76
+ `# TYPE mozart_routes_total counter`,
77
+ `mozart_routes_total ${snapshot.routes.total}`,
78
+ ``,
79
+ `# HELP mozart_cost_estimated_total Estimated cost in USD`,
80
+ `# TYPE mozart_cost_estimated_total gauge`,
81
+ `mozart_cost_estimated_total ${snapshot.costs.totalEstimated}`,
82
+ ``,
83
+ `# HELP mozart_cost_saved_total Estimated savings in USD`,
84
+ `# TYPE mozart_cost_saved_total gauge`,
85
+ `mozart_cost_saved_total ${snapshot.costs.totalSaved}`,
86
+ ``,
87
+ `# HELP mozart_tokens_input_total Total input tokens`,
88
+ `# TYPE mozart_tokens_input_total counter`,
89
+ `mozart_tokens_input_total ${snapshot.tokens.totalInput}`,
90
+ ``,
91
+ `# HELP mozart_tokens_output_total Total output tokens`,
92
+ `# TYPE mozart_tokens_output_total counter`,
93
+ `mozart_tokens_output_total ${snapshot.tokens.totalOutput}`,
94
+ ``,
95
+ `# HELP mozart_privacy_blocks_total Total privacy blocks`,
96
+ `# TYPE mozart_privacy_blocks_total counter`,
97
+ `mozart_privacy_blocks_total ${snapshot.privacy.blocks}`,
98
+ ];
99
+ return lines.join('\n');
100
+ }
101
+ toJSON() {
102
+ return this.snapshot(0, 0);
103
+ }
104
+ reset() {
105
+ this.routes = [];
106
+ this.costEstimates = [];
107
+ this.tokenUsages = [];
108
+ this.privacyBlocks = 0;
109
+ this.privacyChecks = 0;
110
+ this.filesKeptLocal = 0;
111
+ this.startTime = Date.now();
112
+ }
113
+ }
114
+ exports.MetricsCollector = MetricsCollector;
115
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { MozartRequest, MozartResponse, RouteDecision, PolicyConfig, InventorySnapshot } from '../types';
2
+ import { InventoryRegistry } from './inventory';
3
+ import { SessionTracker } from './session';
4
+ import { TaskClassifier } from '../routing/classifier';
5
+ import { RoutingEngine } from '../routing/router';
6
+ import { PolicyEngine } from '../policy/engine';
7
+ import { PrivacyGuard } from '../privacy/guard';
8
+ import { ContextOptimizer } from '../context/optimizer';
9
+ import { CostEstimator } from '../cost/estimator';
10
+ import { ExplainabilityEngine } from '../explain/engine';
11
+ import { Logger } from '../logs/logger';
12
+ export interface MozartConfig {
13
+ policy?: Partial<PolicyConfig>;
14
+ registry?: InventoryRegistry;
15
+ logger?: Logger;
16
+ }
17
+ export declare class Mozart {
18
+ registry: InventoryRegistry;
19
+ policy: PolicyEngine;
20
+ classifier: TaskClassifier;
21
+ router: RoutingEngine;
22
+ privacyGuard: PrivacyGuard;
23
+ contextOptimizer: ContextOptimizer;
24
+ costEstimator: CostEstimator;
25
+ explainer: ExplainabilityEngine;
26
+ logger: Logger;
27
+ session: SessionTracker;
28
+ constructor(config?: MozartConfig);
29
+ process(request: MozartRequest): Promise<MozartResponse>;
30
+ simulate(input: string, taskHint?: string): Promise<RouteDecision>;
31
+ route(input: string): Promise<RouteDecision>;
32
+ recommend(input: string): Promise<RouteDecision>;
33
+ delegate(route: RouteDecision, request: MozartRequest): Promise<string>;
34
+ detectAll(): Promise<number>;
35
+ getInventory(): InventorySnapshot;
36
+ generateReport(): string;
37
+ explainLastRoute(): string;
38
+ }
39
+ //# sourceMappingURL=mozart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mozart.d.ts","sourceRoot":"","sources":["../../src/core/mozart.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,EAIb,YAAY,EAGZ,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,MAAM;IACV,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,oBAAoB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;gBAEnB,MAAM,CAAC,EAAE,YAAY;IAkB3B,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAkExD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAelE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAe5C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAIhD,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCvE,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAmBlC,YAAY,IAAI,iBAAiB;IAIjC,cAAc,IAAI,MAAM;IAIxB,gBAAgB,IAAI,MAAM;CAG3B"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mozart = void 0;
4
+ const types_1 = require("../types");
5
+ const inventory_1 = require("./inventory");
6
+ const session_1 = require("./session");
7
+ const classifier_1 = require("../routing/classifier");
8
+ const router_1 = require("../routing/router");
9
+ const engine_1 = require("../policy/engine");
10
+ const guard_1 = require("../privacy/guard");
11
+ const optimizer_1 = require("../context/optimizer");
12
+ const estimator_1 = require("../cost/estimator");
13
+ const engine_2 = require("../explain/engine");
14
+ const logger_1 = require("../logs/logger");
15
+ class Mozart {
16
+ registry;
17
+ policy;
18
+ classifier;
19
+ router;
20
+ privacyGuard;
21
+ contextOptimizer;
22
+ costEstimator;
23
+ explainer;
24
+ logger;
25
+ session;
26
+ constructor(config) {
27
+ this.registry = config?.registry ?? new inventory_1.InventoryRegistry();
28
+ const policyConfig = { ...types_1.DEFAULT_POLICY, ...config?.policy };
29
+ this.policy = new engine_1.PolicyEngine(policyConfig);
30
+ this.logger = config?.logger ?? new logger_1.Logger(policyConfig.logs);
31
+ this.classifier = new classifier_1.TaskClassifier();
32
+ this.privacyGuard = new guard_1.PrivacyGuard(this.logger);
33
+ this.contextOptimizer = new optimizer_1.ContextOptimizer();
34
+ this.costEstimator = new estimator_1.CostEstimator();
35
+ this.router = new router_1.RoutingEngine(this.registry, this.policy, this.costEstimator);
36
+ this.explainer = new engine_2.ExplainabilityEngine();
37
+ this.session = new session_1.SessionTracker();
38
+ }
39
+ async process(request) {
40
+ const mode = request.executionMode ?? 'recommend';
41
+ const taskProfile = this.classifier.classify(request.input, request.taskHint);
42
+ const privacyResult = this.privacyGuard.evaluate(request.input);
43
+ if (request.context?.length) {
44
+ for (const ctx of request.context) {
45
+ this.privacyGuard.evaluate(ctx);
46
+ }
47
+ }
48
+ this.logger.logRoutingDecision(taskProfile.taskType, request.input.slice(0, 100));
49
+ const policyEval = this.policy.evaluate(taskProfile, privacyResult, request.budgetMode ?? this.policy.config.budget.mode, request.privacyMode ?? this.policy.config.privacy.mode);
50
+ const contextStrategy = this.contextOptimizer.optimize(request.input, request.context ?? [], taskProfile);
51
+ const route = this.router.route(taskProfile, privacyResult, policyEval, contextStrategy);
52
+ const cost = this.costEstimator.estimate(route, contextStrategy);
53
+ const tokens = {
54
+ input: contextStrategy.estimatedInputTokens,
55
+ output: Math.ceil(contextStrategy.estimatedInputTokens * 0.3),
56
+ total: 0,
57
+ };
58
+ tokens.total = tokens.input + tokens.output;
59
+ this.session.recordRoute(route);
60
+ let output;
61
+ if (mode === 'execute' || mode === 'delegate') {
62
+ output = await this.delegate(route, request);
63
+ }
64
+ const explanation = this.explainer.explain(route, taskProfile, cost, privacyResult);
65
+ return {
66
+ output,
67
+ route,
68
+ cost,
69
+ tokens,
70
+ privacy: privacyResult,
71
+ fallbacks: route.fallbacks,
72
+ explanation,
73
+ logsRef: this.logger.getLastLogRef(),
74
+ };
75
+ }
76
+ async simulate(input, taskHint) {
77
+ const taskProfile = this.classifier.classify(input, taskHint);
78
+ const privacyResult = this.privacyGuard.evaluate(input);
79
+ const policyEval = this.policy.evaluate(taskProfile, privacyResult, 'balanced', 'balanced');
80
+ const contextStrategy = this.contextOptimizer.optimize(input, [], taskProfile);
81
+ const route = this.router.route(taskProfile, privacyResult, policyEval, contextStrategy);
82
+ this.session.recordRoute(route);
83
+ return route;
84
+ }
85
+ async route(input) {
86
+ const taskProfile = this.classifier.classify(input);
87
+ const privacyResult = this.privacyGuard.evaluate(input);
88
+ const policyEval = this.policy.evaluate(taskProfile, privacyResult, 'balanced', 'balanced');
89
+ const contextStrategy = this.contextOptimizer.optimize(input, [], taskProfile);
90
+ const route = this.router.route(taskProfile, privacyResult, policyEval, contextStrategy);
91
+ this.session.recordRoute(route);
92
+ return route;
93
+ }
94
+ async recommend(input) {
95
+ return this.route(input);
96
+ }
97
+ async delegate(route, request) {
98
+ this.logger.logEvent('delegation', `Delegating to ${route.selectedGateway ?? 'direct'} -> ${route.selectedProvider}/${route.selectedModel}`);
99
+ if (this.registry.hasAdapter(route.selectedGateway)) {
100
+ const adapter = this.registry.getAdapter(route.selectedGateway);
101
+ if (adapter?.execute) {
102
+ const target = adapter.getExecutionTarget
103
+ ? await adapter.getExecutionTarget(route)
104
+ : undefined;
105
+ const execReq = {
106
+ input: request.input,
107
+ context: request.context,
108
+ model: route.selectedModel,
109
+ provider: route.selectedProvider,
110
+ gateway: route.selectedGateway,
111
+ executionTarget: target ?? {
112
+ adapter: adapter.id,
113
+ provider: route.selectedProvider,
114
+ model: route.selectedModel,
115
+ apiKeyManagedBy: 'gateway',
116
+ method: 'gateway_call',
117
+ },
118
+ };
119
+ const result = await adapter.execute(execReq);
120
+ this.logger.logEvent('execution', `Result from ${route.selectedModel}: success=${result.success}`);
121
+ return result.output ?? `[Execution delegated to ${route.selectedGateway}]}`;
122
+ }
123
+ }
124
+ return `[Recommendation only] Route: ${route.selectedGateway ?? 'direct'} / ${route.selectedProvider} / ${route.selectedModel}`;
125
+ }
126
+ async detectAll() {
127
+ let modelsFound = 0;
128
+ for (const adapter of this.registry.listAdapters()) {
129
+ try {
130
+ const detection = await adapter.detect();
131
+ this.registry.recordDetection(detection);
132
+ if (detection.detected) {
133
+ const providers = await adapter.listProviders();
134
+ const models = await adapter.listModels();
135
+ this.registry.mergeFromAdapter(adapter.id, providers, models);
136
+ modelsFound += models.length;
137
+ }
138
+ }
139
+ catch {
140
+ // skip adapters that fail
141
+ }
142
+ }
143
+ return modelsFound;
144
+ }
145
+ getInventory() {
146
+ return this.registry.snapshot();
147
+ }
148
+ generateReport() {
149
+ return this.session.generateReport();
150
+ }
151
+ explainLastRoute() {
152
+ return this.session.explainLast();
153
+ }
154
+ }
155
+ exports.Mozart = Mozart;
156
+ //# sourceMappingURL=mozart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mozart.js","sourceRoot":"","sources":["../../src/core/mozart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { InventorySnapshot, SessionReport, RouteDecision } from '../types';
2
+ export declare function saveInventory(snapshot: InventorySnapshot): void;
3
+ export declare function loadInventory(): InventorySnapshot | null;
4
+ export declare function saveSession(report: SessionReport, routes: RouteDecision[]): void;
5
+ export declare function loadSession(): {
6
+ report: SessionReport;
7
+ routes: RouteDecision[];
8
+ } | null;
9
+ export declare function saveConfig(configYaml: string): void;
10
+ export declare function loadConfigYaml(): string | null;
11
+ export declare function getMozartDir(): string;
12
+ export declare function clearAllData(): void;
13
+ //# sourceMappingURL=persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/core/persistence.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAa3E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAI/D;AAED,wBAAgB,aAAa,IAAI,iBAAiB,GAAG,IAAI,CASxD;AAID,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAQhF;AAED,wBAAgB,WAAW,IAAI;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG,IAAI,CASvF;AAID,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAInD;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAQ9C;AAID,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAOnC"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.saveInventory = saveInventory;
37
+ exports.loadInventory = loadInventory;
38
+ exports.saveSession = saveSession;
39
+ exports.loadSession = loadSession;
40
+ exports.saveConfig = saveConfig;
41
+ exports.loadConfigYaml = loadConfigYaml;
42
+ exports.getMozartDir = getMozartDir;
43
+ exports.clearAllData = clearAllData;
44
+ const fs = __importStar(require("fs"));
45
+ const path = __importStar(require("path"));
46
+ const os = __importStar(require("os"));
47
+ const DEFAULT_DIR = path.join(os.homedir(), '.mozart');
48
+ function ensureDir() {
49
+ if (!fs.existsSync(DEFAULT_DIR)) {
50
+ fs.mkdirSync(DEFAULT_DIR, { recursive: true });
51
+ }
52
+ return DEFAULT_DIR;
53
+ }
54
+ // ── Inventory Persistence ─────────────────────────────────
55
+ function saveInventory(snapshot) {
56
+ const dir = ensureDir();
57
+ const filePath = path.join(dir, 'inventory.json');
58
+ fs.writeFileSync(filePath, JSON.stringify(snapshot, null, 2), 'utf-8');
59
+ }
60
+ function loadInventory() {
61
+ const filePath = path.join(DEFAULT_DIR, 'inventory.json');
62
+ if (!fs.existsSync(filePath))
63
+ return null;
64
+ try {
65
+ const data = fs.readFileSync(filePath, 'utf-8');
66
+ return JSON.parse(data);
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }
72
+ // ── Session Persistence ───────────────────────────────────
73
+ function saveSession(report, routes) {
74
+ const dir = ensureDir();
75
+ const filePath = path.join(dir, 'session.json');
76
+ fs.writeFileSync(filePath, JSON.stringify({ report, routes, savedAt: new Date().toISOString() }, null, 2), 'utf-8');
77
+ }
78
+ function loadSession() {
79
+ const filePath = path.join(DEFAULT_DIR, 'session.json');
80
+ if (!fs.existsSync(filePath))
81
+ return null;
82
+ try {
83
+ const data = fs.readFileSync(filePath, 'utf-8');
84
+ return JSON.parse(data);
85
+ }
86
+ catch {
87
+ return null;
88
+ }
89
+ }
90
+ // ── Config Persistence ────────────────────────────────────
91
+ function saveConfig(configYaml) {
92
+ const dir = ensureDir();
93
+ const filePath = path.join(dir, 'config.yaml');
94
+ fs.writeFileSync(filePath, configYaml, 'utf-8');
95
+ }
96
+ function loadConfigYaml() {
97
+ const filePath = path.join(DEFAULT_DIR, 'config.yaml');
98
+ if (!fs.existsSync(filePath))
99
+ return null;
100
+ try {
101
+ return fs.readFileSync(filePath, 'utf-8');
102
+ }
103
+ catch {
104
+ return null;
105
+ }
106
+ }
107
+ // ── Directory ─────────────────────────────────────────────
108
+ function getMozartDir() {
109
+ return ensureDir();
110
+ }
111
+ function clearAllData() {
112
+ const dir = DEFAULT_DIR;
113
+ if (fs.existsSync(dir)) {
114
+ for (const file of fs.readdirSync(dir)) {
115
+ fs.unlinkSync(path.join(dir, file));
116
+ }
117
+ }
118
+ }
119
+ //# sourceMappingURL=persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/core/persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { GatewayAdapter } from '../types';
2
+ export interface MozartPlugin {
3
+ name: string;
4
+ version: string;
5
+ adapters: GatewayAdapter[];
6
+ onRegister?: () => Promise<void>;
7
+ }
8
+ export declare class PluginRegistry {
9
+ private plugins;
10
+ register(plugin: MozartPlugin): void;
11
+ get(name: string): MozartPlugin | undefined;
12
+ list(): MozartPlugin[];
13
+ getAllAdapters(): GatewayAdapter[];
14
+ loadFromDirectory(dirPath: string): Promise<number>;
15
+ loadInstalledPlugins(): Promise<number>;
16
+ }
17
+ export declare const pluginRegistry: PluginRegistry;
18
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/core/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM1C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwC;IAEvD,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIpC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI3C,IAAI,IAAI,YAAY,EAAE;IAItB,cAAc,IAAI,cAAc,EAAE;IAQ5B,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCnD,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;CA6C9C;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}