gauss-ai 4.0.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 (232) hide show
  1. package/CHANGELOG.md +489 -0
  2. package/LICENSE +21 -0
  3. package/README.md +269 -0
  4. package/dist/a2a/index.cjs +7 -0
  5. package/dist/a2a/index.cjs.map +1 -0
  6. package/dist/a2a/index.d.cts +30 -0
  7. package/dist/a2a/index.d.ts +30 -0
  8. package/dist/a2a/index.js +7 -0
  9. package/dist/a2a/index.js.map +1 -0
  10. package/dist/agent-UIQDSYCE.js +16 -0
  11. package/dist/agent-UIQDSYCE.js.map +1 -0
  12. package/dist/agent-builder-8W3mBR-N.d.ts +1075 -0
  13. package/dist/agent-builder-GEMYdb1p.d.cts +1075 -0
  14. package/dist/agent-graph-AMQYAWNF.js +1422 -0
  15. package/dist/agent-graph-AMQYAWNF.js.map +1 -0
  16. package/dist/ai-sdk-mcp.adapter-SEN6KHNU.js +124 -0
  17. package/dist/ai-sdk-mcp.adapter-SEN6KHNU.js.map +1 -0
  18. package/dist/browser/index.js +10 -0
  19. package/dist/browser/index.js.map +1 -0
  20. package/dist/bun-runtime.adapter-MQDAJLQM.js +8 -0
  21. package/dist/bun-runtime.adapter-MQDAJLQM.js.map +1 -0
  22. package/dist/bun-runtime.adapter-XKOUXVAK.cjs +8 -0
  23. package/dist/bun-runtime.adapter-XKOUXVAK.cjs.map +1 -0
  24. package/dist/chat-A3XMRPJL.js +129 -0
  25. package/dist/chat-A3XMRPJL.js.map +1 -0
  26. package/dist/chunk-2ZRU47NC.js +91 -0
  27. package/dist/chunk-2ZRU47NC.js.map +1 -0
  28. package/dist/chunk-3LD3JTH4.cjs +18 -0
  29. package/dist/chunk-3LD3JTH4.cjs.map +1 -0
  30. package/dist/chunk-5FE5TG2W.cjs +16 -0
  31. package/dist/chunk-5FE5TG2W.cjs.map +1 -0
  32. package/dist/chunk-6XF673YC.cjs +436 -0
  33. package/dist/chunk-6XF673YC.cjs.map +1 -0
  34. package/dist/chunk-7CKWZJNS.js +230 -0
  35. package/dist/chunk-7CKWZJNS.js.map +1 -0
  36. package/dist/chunk-BI2G665F.js +4588 -0
  37. package/dist/chunk-BI2G665F.js.map +1 -0
  38. package/dist/chunk-C5NLWJS2.js +139 -0
  39. package/dist/chunk-C5NLWJS2.js.map +1 -0
  40. package/dist/chunk-CJZ66SU3.cjs +4321 -0
  41. package/dist/chunk-CJZ66SU3.cjs.map +1 -0
  42. package/dist/chunk-DAMT2CXW.cjs +91 -0
  43. package/dist/chunk-DAMT2CXW.cjs.map +1 -0
  44. package/dist/chunk-E7WG3MO5.js +18 -0
  45. package/dist/chunk-E7WG3MO5.js.map +1 -0
  46. package/dist/chunk-EFDM6R4J.js +99 -0
  47. package/dist/chunk-EFDM6R4J.js.map +1 -0
  48. package/dist/chunk-F7WIPPEO.js +256 -0
  49. package/dist/chunk-F7WIPPEO.js.map +1 -0
  50. package/dist/chunk-FAYDE67N.js +6927 -0
  51. package/dist/chunk-FAYDE67N.js.map +1 -0
  52. package/dist/chunk-GAE2KKCM.js +21 -0
  53. package/dist/chunk-GAE2KKCM.js.map +1 -0
  54. package/dist/chunk-INLNGRXM.cjs +130 -0
  55. package/dist/chunk-INLNGRXM.cjs.map +1 -0
  56. package/dist/chunk-JKXKXB5O.js +130 -0
  57. package/dist/chunk-JKXKXB5O.js.map +1 -0
  58. package/dist/chunk-K6SAETGP.js +375 -0
  59. package/dist/chunk-K6SAETGP.js.map +1 -0
  60. package/dist/chunk-KEASLAYR.js +157 -0
  61. package/dist/chunk-KEASLAYR.js.map +1 -0
  62. package/dist/chunk-KKJVNM6O.js +436 -0
  63. package/dist/chunk-KKJVNM6O.js.map +1 -0
  64. package/dist/chunk-KYIMVRIM.js +16 -0
  65. package/dist/chunk-KYIMVRIM.js.map +1 -0
  66. package/dist/chunk-MB7NXIZD.js +4321 -0
  67. package/dist/chunk-MB7NXIZD.js.map +1 -0
  68. package/dist/chunk-MHHDXPGE.js +209 -0
  69. package/dist/chunk-MHHDXPGE.js.map +1 -0
  70. package/dist/chunk-NE6JJA5W.js +401 -0
  71. package/dist/chunk-NE6JJA5W.js.map +1 -0
  72. package/dist/chunk-PF46XZBF.cjs +6927 -0
  73. package/dist/chunk-PF46XZBF.cjs.map +1 -0
  74. package/dist/chunk-PSJIAGDE.cjs +375 -0
  75. package/dist/chunk-PSJIAGDE.cjs.map +1 -0
  76. package/dist/chunk-PWOQDXNQ.js +16 -0
  77. package/dist/chunk-PWOQDXNQ.js.map +1 -0
  78. package/dist/chunk-QYOMQBBZ.cjs +230 -0
  79. package/dist/chunk-QYOMQBBZ.cjs.map +1 -0
  80. package/dist/chunk-UDFXLC4J.cjs +16 -0
  81. package/dist/chunk-UDFXLC4J.cjs.map +1 -0
  82. package/dist/chunk-UO4NGXRT.cjs +259 -0
  83. package/dist/chunk-UO4NGXRT.cjs.map +1 -0
  84. package/dist/chunk-UPFDFLEW.js +40 -0
  85. package/dist/chunk-UPFDFLEW.js.map +1 -0
  86. package/dist/chunk-V55JSQS7.cjs +16 -0
  87. package/dist/chunk-V55JSQS7.cjs.map +1 -0
  88. package/dist/chunk-VJADHXZL.cjs +16 -0
  89. package/dist/chunk-VJADHXZL.cjs.map +1 -0
  90. package/dist/chunk-VRWD7LCI.js +59 -0
  91. package/dist/chunk-VRWD7LCI.js.map +1 -0
  92. package/dist/chunk-WKKQ443C.js +487 -0
  93. package/dist/chunk-WKKQ443C.js.map +1 -0
  94. package/dist/chunk-X2GHUHAF.js +436 -0
  95. package/dist/chunk-X2GHUHAF.js.map +1 -0
  96. package/dist/chunk-XLGW3XNI.cjs +256 -0
  97. package/dist/chunk-XLGW3XNI.cjs.map +1 -0
  98. package/dist/chunk-ZFJKX4DP.js +16 -0
  99. package/dist/chunk-ZFJKX4DP.js.map +1 -0
  100. package/dist/chunk-ZM2OEWM2.js +259 -0
  101. package/dist/chunk-ZM2OEWM2.js.map +1 -0
  102. package/dist/chunk-ZNAIP2XV.js +16 -0
  103. package/dist/chunk-ZNAIP2XV.js.map +1 -0
  104. package/dist/chunk-ZYFAZYSL.js +42 -0
  105. package/dist/chunk-ZYFAZYSL.js.map +1 -0
  106. package/dist/cli/index.js +421 -0
  107. package/dist/cli/index.js.map +1 -0
  108. package/dist/config-4MHT6TQW.js +153 -0
  109. package/dist/config-4MHT6TQW.js.map +1 -0
  110. package/dist/config-REERQFK4.cjs +153 -0
  111. package/dist/config-REERQFK4.cjs.map +1 -0
  112. package/dist/cost-tracker-JLOU7IZJ.js +7 -0
  113. package/dist/cost-tracker-JLOU7IZJ.js.map +1 -0
  114. package/dist/demo-C52GMSYH.js +188 -0
  115. package/dist/demo-C52GMSYH.js.map +1 -0
  116. package/dist/deno/index.js +306 -0
  117. package/dist/deno/index.js.map +1 -0
  118. package/dist/deno-runtime.adapter-F744HY7K.js +8 -0
  119. package/dist/deno-runtime.adapter-F744HY7K.js.map +1 -0
  120. package/dist/deno-runtime.adapter-RFEVNSCV.cjs +8 -0
  121. package/dist/deno-runtime.adapter-RFEVNSCV.cjs.map +1 -0
  122. package/dist/dev-D7DDVDA4.js +218 -0
  123. package/dist/dev-D7DDVDA4.js.map +1 -0
  124. package/dist/edge/index.js +10 -0
  125. package/dist/edge/index.js.map +1 -0
  126. package/dist/edge-runtime.adapter-UQCW2F7X.js +8 -0
  127. package/dist/edge-runtime.adapter-UQCW2F7X.js.map +1 -0
  128. package/dist/edge-runtime.adapter-YED6F3AY.cjs +8 -0
  129. package/dist/edge-runtime.adapter-YED6F3AY.cjs.map +1 -0
  130. package/dist/graph-MGFAQZ5W.js +50 -0
  131. package/dist/graph-MGFAQZ5W.js.map +1 -0
  132. package/dist/graph-visualization-HBSVQXJK.js +9 -0
  133. package/dist/graph-visualization-HBSVQXJK.js.map +1 -0
  134. package/dist/index-BRgqNnh3.d.cts +982 -0
  135. package/dist/index-CZxpYUxZ.d.ts +982 -0
  136. package/dist/index.cjs +14789 -0
  137. package/dist/index.cjs.map +1 -0
  138. package/dist/index.d.cts +10275 -0
  139. package/dist/index.d.ts +10275 -0
  140. package/dist/index.js +14789 -0
  141. package/dist/index.js.map +1 -0
  142. package/dist/init-CFWXTQ35.js +133 -0
  143. package/dist/init-CFWXTQ35.js.map +1 -0
  144. package/dist/llm-VWO4MC7J.cjs +17 -0
  145. package/dist/llm-VWO4MC7J.cjs.map +1 -0
  146. package/dist/llm-XLXVSPBI.js +17 -0
  147. package/dist/llm-XLXVSPBI.js.map +1 -0
  148. package/dist/logging-WRAK5ZXT.js +33 -0
  149. package/dist/logging-WRAK5ZXT.js.map +1 -0
  150. package/dist/metrics-FAHZVVD4.js +47 -0
  151. package/dist/metrics-FAHZVVD4.js.map +1 -0
  152. package/dist/node/index.cjs +280 -0
  153. package/dist/node/index.cjs.map +1 -0
  154. package/dist/node/index.d.cts +51 -0
  155. package/dist/node/index.d.ts +51 -0
  156. package/dist/node/index.js +280 -0
  157. package/dist/node/index.js.map +1 -0
  158. package/dist/node-runtime.adapter-5L7PJ6W2.js +8 -0
  159. package/dist/node-runtime.adapter-5L7PJ6W2.js.map +1 -0
  160. package/dist/node-runtime.adapter-CCRZVGHB.cjs +8 -0
  161. package/dist/node-runtime.adapter-CCRZVGHB.cjs.map +1 -0
  162. package/dist/persist-usage-WTBTCWEF.js +7 -0
  163. package/dist/persist-usage-WTBTCWEF.js.map +1 -0
  164. package/dist/plugin-RCPBWUUA.js +207 -0
  165. package/dist/plugin-RCPBWUUA.js.map +1 -0
  166. package/dist/plugins/index.cjs +75 -0
  167. package/dist/plugins/index.cjs.map +1 -0
  168. package/dist/plugins/index.d.cts +8 -0
  169. package/dist/plugins/index.d.ts +8 -0
  170. package/dist/plugins/index.js +75 -0
  171. package/dist/plugins/index.js.map +1 -0
  172. package/dist/plugins-L4ING3CX.js +4625 -0
  173. package/dist/plugins-L4ING3CX.js.map +1 -0
  174. package/dist/providers/index.cjs +189 -0
  175. package/dist/providers/index.cjs.map +1 -0
  176. package/dist/providers/index.d.cts +168 -0
  177. package/dist/providers/index.d.ts +168 -0
  178. package/dist/providers/index.js +189 -0
  179. package/dist/providers/index.js.map +1 -0
  180. package/dist/providers-3RNQ5CKZ.js +59 -0
  181. package/dist/providers-3RNQ5CKZ.js.map +1 -0
  182. package/dist/providers-66GPXUGQ.cjs +59 -0
  183. package/dist/providers-66GPXUGQ.cjs.map +1 -0
  184. package/dist/repl-K6QN4I2S.js +678 -0
  185. package/dist/repl-K6QN4I2S.js.map +1 -0
  186. package/dist/rest/index.cjs +17 -0
  187. package/dist/rest/index.cjs.map +1 -0
  188. package/dist/rest/index.d.cts +102 -0
  189. package/dist/rest/index.d.ts +102 -0
  190. package/dist/rest/index.js +17 -0
  191. package/dist/rest/index.js.map +1 -0
  192. package/dist/runtime-deno.js +15 -0
  193. package/dist/runtime-deno.js.map +1 -0
  194. package/dist/runtime-edge.js +15 -0
  195. package/dist/runtime-edge.js.map +1 -0
  196. package/dist/runtime-node.js +15 -0
  197. package/dist/runtime-node.js.map +1 -0
  198. package/dist/scraping/index.cjs +11 -0
  199. package/dist/scraping/index.cjs.map +1 -0
  200. package/dist/scraping/index.d.cts +17 -0
  201. package/dist/scraping/index.d.ts +17 -0
  202. package/dist/scraping/index.js +11 -0
  203. package/dist/scraping/index.js.map +1 -0
  204. package/dist/semantic-scraping.port-CZWUea88.d.cts +54 -0
  205. package/dist/semantic-scraping.port-CZWUea88.d.ts +54 -0
  206. package/dist/server/index.js +166 -0
  207. package/dist/server/index.js.map +1 -0
  208. package/dist/testing/index.cjs +25 -0
  209. package/dist/testing/index.cjs.map +1 -0
  210. package/dist/testing/index.d.cts +63 -0
  211. package/dist/testing/index.d.ts +63 -0
  212. package/dist/testing/index.js +25 -0
  213. package/dist/testing/index.js.map +1 -0
  214. package/dist/token-counter.port-CRgxZZGe.d.ts +334 -0
  215. package/dist/token-counter.port-D7BHMCRR.d.cts +334 -0
  216. package/dist/tools-BZM33OBZ.js +10 -0
  217. package/dist/tools-BZM33OBZ.js.map +1 -0
  218. package/dist/tracing-XA3TEWP4.js +48 -0
  219. package/dist/tracing-XA3TEWP4.js.map +1 -0
  220. package/dist/types-CVsP7gFI.d.cts +235 -0
  221. package/dist/types-CVsP7gFI.d.ts +235 -0
  222. package/dist/virtual-fs.adapter-BBLS-3AY.d.ts +26 -0
  223. package/dist/virtual-fs.adapter-nb0CTYOj.d.cts +26 -0
  224. package/dist/workflow/index.cjs +9 -0
  225. package/dist/workflow/index.cjs.map +1 -0
  226. package/dist/workflow/index.d.cts +62 -0
  227. package/dist/workflow/index.d.ts +62 -0
  228. package/dist/workflow/index.js +9 -0
  229. package/dist/workflow/index.js.map +1 -0
  230. package/dist/workflow.port-BaCttxrw.d.cts +153 -0
  231. package/dist/workflow.port-BaCttxrw.d.ts +153 -0
  232. package/package.json +230 -0
@@ -0,0 +1,153 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/cli/config.ts
2
+ var _fs = require('fs');
3
+ var _path = require('path');
4
+ var _os = require('os');
5
+ var CONFIG_FILE = ".gaussrc";
6
+ var MAX_HISTORY_LINES = 1e3;
7
+ function configPath() {
8
+ return _path.join.call(void 0, _os.homedir.call(void 0, ), CONFIG_FILE);
9
+ }
10
+ function loadConfig() {
11
+ const path = configPath();
12
+ if (!_fs.existsSync.call(void 0, path)) return { keys: {} };
13
+ try {
14
+ const raw = _fs.readFileSync.call(void 0, path, "utf-8");
15
+ const parsed = JSON.parse(raw);
16
+ return {
17
+ keys: _nullishCoalesce(parsed.keys, () => ( {})),
18
+ defaultProvider: parsed.defaultProvider,
19
+ defaultModel: parsed.defaultModel,
20
+ mcpServers: parsed.mcpServers
21
+ };
22
+ } catch (e) {
23
+ console.error("Warning: ~/.gaussrc is corrupted or unreadable. Using empty config.");
24
+ return { keys: {} };
25
+ }
26
+ }
27
+ function saveConfig(config) {
28
+ const path = configPath();
29
+ _fs.writeFileSync.call(void 0, path, JSON.stringify(config, null, 2) + "\n", {
30
+ encoding: "utf-8",
31
+ mode: 384
32
+ });
33
+ _fs.chmodSync.call(void 0, path, 384);
34
+ }
35
+ function setKey(provider, apiKey) {
36
+ const config = loadConfig();
37
+ config.keys[provider] = apiKey;
38
+ saveConfig(config);
39
+ }
40
+ function getKey(provider) {
41
+ return loadConfig().keys[provider];
42
+ }
43
+ function deleteKey(provider) {
44
+ const config = loadConfig();
45
+ if (!(provider in config.keys)) return false;
46
+ delete config.keys[provider];
47
+ saveConfig(config);
48
+ return true;
49
+ }
50
+ function listKeys() {
51
+ return loadConfig().keys;
52
+ }
53
+ var ENV_MAP = {
54
+ openai: "OPENAI_API_KEY",
55
+ anthropic: "ANTHROPIC_API_KEY",
56
+ google: "GOOGLE_GENERATIVE_AI_API_KEY",
57
+ groq: "GROQ_API_KEY",
58
+ mistral: "MISTRAL_API_KEY",
59
+ openrouter: "OPENROUTER_API_KEY"
60
+ };
61
+ function envVarName(provider) {
62
+ return _nullishCoalesce(ENV_MAP[provider], () => ( ""));
63
+ }
64
+ function resolveApiKey(provider, cliKey) {
65
+ return _nullishCoalesce(_nullishCoalesce(cliKey, () => ( getKey(provider))), () => ( process.env[_nullishCoalesce(ENV_MAP[provider], () => ( ""))]));
66
+ }
67
+ function setDefaultProvider(provider) {
68
+ const config = loadConfig();
69
+ config.defaultProvider = provider;
70
+ saveConfig(config);
71
+ }
72
+ function setDefaultModel(model) {
73
+ const config = loadConfig();
74
+ config.defaultModel = model;
75
+ saveConfig(config);
76
+ }
77
+ function getDefaultProvider() {
78
+ return loadConfig().defaultProvider;
79
+ }
80
+ function getDefaultModelFromConfig() {
81
+ return loadConfig().defaultModel;
82
+ }
83
+ function getMcpServers() {
84
+ return _nullishCoalesce(loadConfig().mcpServers, () => ( []));
85
+ }
86
+ function addMcpServer(config) {
87
+ const cfg = loadConfig();
88
+ cfg.mcpServers = (_nullishCoalesce(cfg.mcpServers, () => ( []))).filter((s) => s.id !== config.id);
89
+ cfg.mcpServers.push(config);
90
+ saveConfig(cfg);
91
+ }
92
+ function removeMcpServer(serverId) {
93
+ const cfg = loadConfig();
94
+ const servers = _nullishCoalesce(cfg.mcpServers, () => ( []));
95
+ const filtered = servers.filter((s) => s.id !== serverId);
96
+ if (filtered.length === servers.length) return false;
97
+ cfg.mcpServers = filtered;
98
+ saveConfig(cfg);
99
+ return true;
100
+ }
101
+ var HISTORY_FILE = ".gauss_history";
102
+ function historyPath() {
103
+ return _path.join.call(void 0, _os.homedir.call(void 0, ), HISTORY_FILE);
104
+ }
105
+ function loadHistory() {
106
+ const path = historyPath();
107
+ if (!_fs.existsSync.call(void 0, path)) return [];
108
+ try {
109
+ const lines = _fs.readFileSync.call(void 0, path, "utf-8").split("\n").filter(Boolean);
110
+ if (lines.length > MAX_HISTORY_LINES) {
111
+ const trimmed = lines.slice(-MAX_HISTORY_LINES);
112
+ _fs.writeFileSync.call(void 0, path, trimmed.join("\n") + "\n", { encoding: "utf-8", mode: 384 });
113
+ _fs.chmodSync.call(void 0, path, 384);
114
+ return trimmed;
115
+ }
116
+ return lines;
117
+ } catch (e2) {
118
+ return [];
119
+ }
120
+ }
121
+ var historyPermsFixed = false;
122
+ function appendHistory(line) {
123
+ try {
124
+ const path = historyPath();
125
+ _fs.appendFileSync.call(void 0, path, line + "\n", { encoding: "utf-8", mode: 384 });
126
+ if (!historyPermsFixed) {
127
+ _fs.chmodSync.call(void 0, path, 384);
128
+ historyPermsFixed = true;
129
+ }
130
+ } catch (e3) {
131
+ }
132
+ }
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+ exports.ENV_MAP = ENV_MAP; exports.addMcpServer = addMcpServer; exports.appendHistory = appendHistory; exports.deleteKey = deleteKey; exports.envVarName = envVarName; exports.getDefaultModelFromConfig = getDefaultModelFromConfig; exports.getDefaultProvider = getDefaultProvider; exports.getKey = getKey; exports.getMcpServers = getMcpServers; exports.listKeys = listKeys; exports.loadConfig = loadConfig; exports.loadHistory = loadHistory; exports.removeMcpServer = removeMcpServer; exports.resolveApiKey = resolveApiKey; exports.saveConfig = saveConfig; exports.setDefaultModel = setDefaultModel; exports.setDefaultProvider = setDefaultProvider; exports.setKey = setKey;
153
+ //# sourceMappingURL=config-REERQFK4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/giulioleone/Sviluppo/gauss/gauss-flow/dist/config-REERQFK4.cjs","../src/cli/config.ts"],"names":[],"mappings":"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","file":"/Users/giulioleone/Sviluppo/gauss/gauss-flow/dist/config-REERQFK4.cjs","sourcesContent":[null,"// =============================================================================\n// CLI Config — .gaussrc file management\n// =============================================================================\n\nimport { readFileSync, writeFileSync, existsSync, unlinkSync, chmodSync, appendFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport type { McpServerConfig } from \"../ports/mcp.port.js\";\n\nconst CONFIG_FILE = \".gaussrc\";\n\n/** Maximum number of history lines to retain on disk */\nconst MAX_HISTORY_LINES = 1000;\n\nexport interface GaussConfig {\n keys: Record<string, string>;\n defaultProvider?: string;\n defaultModel?: string;\n mcpServers?: McpServerConfig[];\n}\n\nfunction configPath(): string {\n return join(homedir(), CONFIG_FILE);\n}\n\nexport function loadConfig(): GaussConfig {\n const path = configPath();\n if (!existsSync(path)) return { keys: {} };\n try {\n const raw = readFileSync(path, \"utf-8\");\n const parsed = JSON.parse(raw) as Partial<GaussConfig>;\n return {\n keys: parsed.keys ?? {},\n defaultProvider: parsed.defaultProvider,\n defaultModel: parsed.defaultModel,\n mcpServers: parsed.mcpServers,\n };\n } catch {\n console.error(\"Warning: ~/.gaussrc is corrupted or unreadable. Using empty config.\");\n return { keys: {} };\n }\n}\n\nexport function saveConfig(config: GaussConfig): void {\n const path = configPath();\n writeFileSync(path, JSON.stringify(config, null, 2) + \"\\n\", {\n encoding: \"utf-8\",\n mode: 0o600,\n });\n chmodSync(path, 0o600);\n}\n\nexport function setKey(provider: string, apiKey: string): void {\n const config = loadConfig();\n config.keys[provider] = apiKey;\n saveConfig(config);\n}\n\nexport function getKey(provider: string): string | undefined {\n return loadConfig().keys[provider];\n}\n\nexport function deleteKey(provider: string): boolean {\n const config = loadConfig();\n if (!(provider in config.keys)) return false;\n delete config.keys[provider];\n saveConfig(config);\n return true;\n}\n\nexport function listKeys(): Record<string, string> {\n return loadConfig().keys;\n}\n\n// Environment variable fallback mapping\nexport const ENV_MAP: Record<string, string> = {\n openai: \"OPENAI_API_KEY\",\n anthropic: \"ANTHROPIC_API_KEY\",\n google: \"GOOGLE_GENERATIVE_AI_API_KEY\",\n groq: \"GROQ_API_KEY\",\n mistral: \"MISTRAL_API_KEY\",\n openrouter: \"OPENROUTER_API_KEY\",\n};\n\nexport function envVarName(provider: string): string {\n return ENV_MAP[provider] ?? \"\";\n}\n\nexport function resolveApiKey(provider: string, cliKey?: string): string | undefined {\n return cliKey ?? getKey(provider) ?? process.env[ENV_MAP[provider] ?? \"\"];\n}\n\nexport function setDefaultProvider(provider: string): void {\n const config = loadConfig();\n config.defaultProvider = provider;\n saveConfig(config);\n}\n\nexport function setDefaultModel(model: string): void {\n const config = loadConfig();\n config.defaultModel = model;\n saveConfig(config);\n}\n\nexport function getDefaultProvider(): string | undefined {\n return loadConfig().defaultProvider;\n}\n\nexport function getDefaultModelFromConfig(): string | undefined {\n return loadConfig().defaultModel;\n}\n\nexport function getMcpServers(): McpServerConfig[] {\n return loadConfig().mcpServers ?? [];\n}\n\nexport function addMcpServer(config: McpServerConfig): void {\n const cfg = loadConfig();\n cfg.mcpServers = (cfg.mcpServers ?? []).filter((s) => s.id !== config.id);\n cfg.mcpServers.push(config);\n saveConfig(cfg);\n}\n\nexport function removeMcpServer(serverId: string): boolean {\n const cfg = loadConfig();\n const servers = cfg.mcpServers ?? [];\n const filtered = servers.filter((s) => s.id !== serverId);\n if (filtered.length === servers.length) return false;\n cfg.mcpServers = filtered;\n saveConfig(cfg);\n return true;\n}\n\n// =============================================================================\n// Persistent REPL History\n// =============================================================================\n\nconst HISTORY_FILE = \".gauss_history\";\n\nfunction historyPath(): string {\n return join(homedir(), HISTORY_FILE);\n}\n\nexport function loadHistory(): string[] {\n const path = historyPath();\n if (!existsSync(path)) return [];\n try {\n const lines = readFileSync(path, \"utf-8\").split(\"\\n\").filter(Boolean);\n if (lines.length > MAX_HISTORY_LINES) {\n const trimmed = lines.slice(-MAX_HISTORY_LINES);\n writeFileSync(path, trimmed.join(\"\\n\") + \"\\n\", { encoding: \"utf-8\", mode: 0o600 });\n chmodSync(path, 0o600);\n return trimmed;\n }\n return lines;\n } catch {\n return [];\n }\n}\n\nlet historyPermsFixed = false;\n\nexport function appendHistory(line: string): void {\n try {\n const path = historyPath();\n appendFileSync(path, line + \"\\n\", { encoding: \"utf-8\", mode: 0o600 });\n if (!historyPermsFixed) {\n chmodSync(path, 0o600);\n historyPermsFixed = true;\n }\n } catch {\n // Silently fail\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ DefaultCostTrackerAdapter
3
+ } from "./chunk-EFDM6R4J.js";
4
+ export {
5
+ DefaultCostTrackerAdapter
6
+ };
7
+ //# sourceMappingURL=cost-tracker-JLOU7IZJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,188 @@
1
+ import {
2
+ color
3
+ } from "./chunk-VRWD7LCI.js";
4
+
5
+ // src/cli/commands/demo.ts
6
+ var MAX_RESPONSE_PREVIEW_LENGTH = 200;
7
+ async function demoGuardrails(model) {
8
+ const { Agent } = await import("./agent-UIQDSYCE.js");
9
+ const { GuardrailsPlugin, createPiiFilter } = await import("./plugins-L4ING3CX.js");
10
+ console.log(color("magenta", "\n\u2550\u2550\u2550 Guardrails Plugin Demo \u2550\u2550\u2550\n"));
11
+ console.log("This demo shows input/output validation with content filtering.\n");
12
+ const plugin = new GuardrailsPlugin({
13
+ contentFilters: [createPiiFilter()],
14
+ inputValidators: [
15
+ (prompt) => prompt.length < 3 ? "Prompt must be at least 3 characters" : null
16
+ ],
17
+ onFailure: "warn"
18
+ });
19
+ const agent = Agent.create({
20
+ model,
21
+ instructions: "You are a helpful assistant."
22
+ }).withPlugin(plugin).build();
23
+ try {
24
+ console.log(color("yellow", "\u25B8 Test 1: Valid input"));
25
+ console.log(' Prompt: "What is TypeScript?"');
26
+ const result1 = await agent.run("What is TypeScript?");
27
+ console.log(color("green", ` \u2713 Response: ${result1.text.slice(0, 120)}...
28
+ `));
29
+ console.log(color("yellow", "\u25B8 Test 2: Short input (triggers validator)"));
30
+ console.log(' Prompt: "Hi"');
31
+ const result2 = await agent.run("Hi");
32
+ console.log(color("green", ` \u2713 Response: ${result2.text.slice(0, 120)}...
33
+ `));
34
+ console.log(color("yellow", "\u25B8 Test 3: PII content (triggers filter)"));
35
+ console.log(' Prompt: "My email is test@example.com"');
36
+ const result3 = await agent.run("My email is test@example.com");
37
+ console.log(color("green", ` \u2713 Response: ${result3.text.slice(0, 120)}...
38
+ `));
39
+ } finally {
40
+ await agent.dispose();
41
+ }
42
+ console.log(color("magenta", "\u2550\u2550\u2550 Demo complete \u2550\u2550\u2550\n"));
43
+ }
44
+ async function demoWorkflow(model) {
45
+ const { Agent } = await import("./agent-UIQDSYCE.js");
46
+ const { WorkflowPlugin } = await import("./plugins-L4ING3CX.js");
47
+ console.log(color("magenta", "\n\u2550\u2550\u2550 Workflow Plugin Demo \u2550\u2550\u2550\n"));
48
+ console.log("This demo executes a 3-step workflow before the agent runs.\n");
49
+ const plugin = new WorkflowPlugin({
50
+ steps: [
51
+ {
52
+ id: "validate-env",
53
+ name: "Validate environment",
54
+ execute: async (ctx) => {
55
+ console.log(color("cyan", " \u2699 Step 1: Validating environment..."));
56
+ return { ...ctx, envValid: true, timestamp: Date.now() };
57
+ }
58
+ },
59
+ {
60
+ id: "fetch-context",
61
+ name: "Fetch context",
62
+ execute: async (ctx) => {
63
+ console.log(color("cyan", " \u2699 Step 2: Fetching context..."));
64
+ return { ...ctx, context: "user prefers concise answers" };
65
+ }
66
+ },
67
+ {
68
+ id: "prepare-prompt",
69
+ name: "Prepare prompt",
70
+ execute: async (ctx) => {
71
+ console.log(color("cyan", " \u2699 Step 3: Preparing prompt..."));
72
+ return { ...ctx, ready: true };
73
+ }
74
+ }
75
+ ]
76
+ });
77
+ const agent = Agent.create({
78
+ model,
79
+ instructions: "You are a helpful assistant."
80
+ }).withPlugin(plugin).build();
81
+ try {
82
+ console.log(color("yellow", "\u25B8 Running workflow + agent..."));
83
+ const result = await agent.run("Explain what a workflow engine is in 2 sentences.");
84
+ console.log(color("green", `
85
+ \u2713 Response: ${result.text.slice(0, MAX_RESPONSE_PREVIEW_LENGTH)}
86
+ `));
87
+ const wfResult = plugin.getLastResult();
88
+ if (wfResult) {
89
+ console.log(color("cyan", ` Steps completed: ${wfResult.completedSteps.join(", ")}`));
90
+ console.log(color("cyan", ` Duration: ${wfResult.totalDurationMs}ms`));
91
+ console.log(color("cyan", ` Status: ${wfResult.status}
92
+ `));
93
+ }
94
+ } finally {
95
+ await agent.dispose();
96
+ }
97
+ console.log(color("magenta", "\u2550\u2550\u2550 Demo complete \u2550\u2550\u2550\n"));
98
+ }
99
+ async function demoGraph(model) {
100
+ const { AgentGraph } = await import("./agent-graph-AMQYAWNF.js");
101
+ console.log(color("magenta", "\n\u2550\u2550\u2550 Agent Graph Demo \u2550\u2550\u2550\n"));
102
+ console.log("This demo runs a 3-node agent graph for multi-agent collaboration.\n");
103
+ console.log(" [researcher] \u2192 [writer] \u2192 [reviewer]\n");
104
+ const graph = AgentGraph.create().node("researcher", {
105
+ model,
106
+ instructions: "You are a researcher. Provide key facts and data points about the topic. Be concise \u2014 3-4 bullet points max."
107
+ }).node("writer", {
108
+ model,
109
+ instructions: "You are a writer. Using the research provided, write a clear 2-paragraph summary."
110
+ }).node("reviewer", {
111
+ model,
112
+ instructions: "You are an editor. Review the text for clarity, accuracy, and conciseness. Provide your final improved version."
113
+ }).edge("researcher", "writer").edge("writer", "reviewer").build();
114
+ console.log(color("yellow", '\u25B8 Running graph with prompt: "Explain WebAssembly"\n'));
115
+ for await (const event of graph.stream("Explain WebAssembly")) {
116
+ switch (event.type) {
117
+ case "node:start":
118
+ process.stdout.write(color("cyan", ` \u25B8 Node "${event.nodeId}" started...
119
+ `));
120
+ break;
121
+ case "node:complete":
122
+ console.log(color("green", ` \u2713 Node "${event.nodeId}" completed`));
123
+ if (event.result) {
124
+ const preview = event.result.output.slice(0, 150).replace(/\n/g, " ");
125
+ console.log(color("dim", ` "${preview}..."
126
+ `));
127
+ }
128
+ break;
129
+ case "graph:complete":
130
+ console.log(color("green", ` \u2713 Graph complete in ${event.result?.totalDurationMs}ms`));
131
+ console.log(color("cyan", "\n \u2500\u2500 Final Output \u2500\u2500\n"));
132
+ console.log(` ${event.result?.output}
133
+ `);
134
+ break;
135
+ case "graph:error":
136
+ console.log(color("red", ` \u2717 Graph error: ${event.error}
137
+ `));
138
+ break;
139
+ }
140
+ }
141
+ console.log(color("magenta", "\u2550\u2550\u2550 Demo complete \u2550\u2550\u2550\n"));
142
+ }
143
+ async function demoObservability(model) {
144
+ const { Agent } = await import("./agent-UIQDSYCE.js");
145
+ const { ObservabilityPlugin } = await import("./plugins-L4ING3CX.js");
146
+ const { InMemoryTracingAdapter } = await import("./tracing-XA3TEWP4.js");
147
+ const { InMemoryMetricsAdapter } = await import("./metrics-FAHZVVD4.js");
148
+ const { ConsoleLoggingAdapter } = await import("./logging-WRAK5ZXT.js");
149
+ console.log(color("magenta", "\n\u2550\u2550\u2550 Observability Plugin Demo \u2550\u2550\u2550\n"));
150
+ console.log("This demo shows tracing, metrics, and logging.\n");
151
+ const tracer = new InMemoryTracingAdapter();
152
+ const metrics = new InMemoryMetricsAdapter();
153
+ const logger = new ConsoleLoggingAdapter();
154
+ const plugin = new ObservabilityPlugin({ tracer, metrics, logger });
155
+ const agent = Agent.create({
156
+ model,
157
+ instructions: "You are a helpful assistant. Answer briefly."
158
+ }).withPlugin(plugin).build();
159
+ try {
160
+ console.log(color("yellow", "\u25B8 Running agent with observability...\n"));
161
+ const result = await agent.run("What is 2 + 2?");
162
+ console.log(color("green", `
163
+ \u2713 Response: ${result.text}
164
+ `));
165
+ console.log(color("cyan", " \u2500\u2500 Collected Metrics \u2500\u2500"));
166
+ const metricNames = ["agent.runs.total", "agent.runs.success", "agent.runs.errors"];
167
+ for (const name of metricNames) {
168
+ const value = metrics.getCounter(name);
169
+ if (value > 0) console.log(color("dim", ` ${name}: ${value}`));
170
+ }
171
+ console.log(color("cyan", "\n \u2500\u2500 Trace Spans \u2500\u2500"));
172
+ const spans = tracer.getSpans();
173
+ for (const span of spans) {
174
+ console.log(color("dim", ` ${span.name} [${span.status}]`));
175
+ }
176
+ console.log();
177
+ } finally {
178
+ await agent.dispose();
179
+ }
180
+ console.log(color("magenta", "\u2550\u2550\u2550 Demo complete \u2550\u2550\u2550\n"));
181
+ }
182
+ export {
183
+ demoGraph,
184
+ demoGuardrails,
185
+ demoObservability,
186
+ demoWorkflow
187
+ };
188
+ //# sourceMappingURL=demo-C52GMSYH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/demo.ts"],"sourcesContent":["// =============================================================================\n// CLI Demo Command — Showcase plugins and graph\n// =============================================================================\n\nimport type { LanguageModel } from \"../../core/llm/index.js\";\nimport { color } from \"../format.js\";\n\n/** Max characters shown for response previews in demo output */\nconst MAX_RESPONSE_PREVIEW_LENGTH = 200;\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Guardrails Demo\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport async function demoGuardrails(model: LanguageModel): Promise<void> {\n const { Agent } = await import(\"../../agent/agent.js\");\n const { GuardrailsPlugin, createPiiFilter } = await import(\"../../plugins/index.js\");\n\n console.log(color(\"magenta\", \"\\n═══ Guardrails Plugin Demo ═══\\n\"));\n console.log(\"This demo shows input/output validation with content filtering.\\n\");\n\n const plugin = new GuardrailsPlugin({\n contentFilters: [createPiiFilter()],\n inputValidators: [\n (prompt) =>\n prompt.length < 3 ? \"Prompt must be at least 3 characters\" : null,\n ],\n onFailure: \"warn\",\n });\n\n const agent = Agent.create({\n model,\n instructions: \"You are a helpful assistant.\",\n })\n .withPlugin(plugin)\n .build();\n\n try {\n // Test 1: Valid input\n console.log(color(\"yellow\", \"▸ Test 1: Valid input\"));\n console.log(' Prompt: \"What is TypeScript?\"');\n const result1 = await agent.run(\"What is TypeScript?\");\n console.log(color(\"green\", ` ✓ Response: ${result1.text.slice(0, 120)}...\\n`));\n\n // Test 2: Short input (triggers validation warning)\n console.log(color(\"yellow\", \"▸ Test 2: Short input (triggers validator)\"));\n console.log(' Prompt: \"Hi\"');\n const result2 = await agent.run(\"Hi\");\n console.log(color(\"green\", ` ✓ Response: ${result2.text.slice(0, 120)}...\\n`));\n\n // Test 3: PII input (triggers content filter warning)\n console.log(color(\"yellow\", \"▸ Test 3: PII content (triggers filter)\"));\n console.log(' Prompt: \"My email is test@example.com\"');\n const result3 = await agent.run(\"My email is test@example.com\");\n console.log(color(\"green\", ` ✓ Response: ${result3.text.slice(0, 120)}...\\n`));\n } finally {\n await agent.dispose();\n }\n\n console.log(color(\"magenta\", \"═══ Demo complete ═══\\n\"));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Workflow Demo\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport async function demoWorkflow(model: LanguageModel): Promise<void> {\n const { Agent } = await import(\"../../agent/agent.js\");\n const { WorkflowPlugin } = await import(\"../../plugins/index.js\");\n\n console.log(color(\"magenta\", \"\\n═══ Workflow Plugin Demo ═══\\n\"));\n console.log(\"This demo executes a 3-step workflow before the agent runs.\\n\");\n\n const plugin = new WorkflowPlugin({\n steps: [\n {\n id: \"validate-env\",\n name: \"Validate environment\",\n execute: async (ctx) => {\n console.log(color(\"cyan\", \" ⚙ Step 1: Validating environment...\"));\n return { ...ctx, envValid: true, timestamp: Date.now() };\n },\n },\n {\n id: \"fetch-context\",\n name: \"Fetch context\",\n execute: async (ctx) => {\n console.log(color(\"cyan\", \" ⚙ Step 2: Fetching context...\"));\n return { ...ctx, context: \"user prefers concise answers\" };\n },\n },\n {\n id: \"prepare-prompt\",\n name: \"Prepare prompt\",\n execute: async (ctx) => {\n console.log(color(\"cyan\", \" ⚙ Step 3: Preparing prompt...\"));\n return { ...ctx, ready: true };\n },\n },\n ],\n });\n\n const agent = Agent.create({\n model,\n instructions: \"You are a helpful assistant.\",\n })\n .withPlugin(plugin)\n .build();\n\n try {\n console.log(color(\"yellow\", \"▸ Running workflow + agent...\"));\n const result = await agent.run(\"Explain what a workflow engine is in 2 sentences.\");\n console.log(color(\"green\", `\\n ✓ Response: ${result.text.slice(0, MAX_RESPONSE_PREVIEW_LENGTH)}\\n`));\n\n const wfResult = plugin.getLastResult();\n if (wfResult) {\n console.log(color(\"cyan\", ` Steps completed: ${wfResult.completedSteps.join(\", \")}`));\n console.log(color(\"cyan\", ` Duration: ${wfResult.totalDurationMs}ms`));\n console.log(color(\"cyan\", ` Status: ${wfResult.status}\\n`));\n }\n } finally {\n await agent.dispose();\n }\n\n console.log(color(\"magenta\", \"═══ Demo complete ═══\\n\"));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Graph Demo\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport async function demoGraph(model: LanguageModel): Promise<void> {\n const { AgentGraph } = await import(\"../../graph/agent-graph.js\");\n\n console.log(color(\"magenta\", \"\\n═══ Agent Graph Demo ═══\\n\"));\n console.log(\"This demo runs a 3-node agent graph for multi-agent collaboration.\\n\");\n console.log(\" [researcher] → [writer] → [reviewer]\\n\");\n\n const graph = AgentGraph.create()\n .node(\"researcher\", {\n model,\n instructions:\n \"You are a researcher. Provide key facts and data points about the topic. Be concise — 3-4 bullet points max.\",\n })\n .node(\"writer\", {\n model,\n instructions:\n \"You are a writer. Using the research provided, write a clear 2-paragraph summary.\",\n })\n .node(\"reviewer\", {\n model,\n instructions:\n \"You are an editor. Review the text for clarity, accuracy, and conciseness. Provide your final improved version.\",\n })\n .edge(\"researcher\", \"writer\")\n .edge(\"writer\", \"reviewer\")\n .build();\n\n console.log(color(\"yellow\", \"▸ Running graph with prompt: \\\"Explain WebAssembly\\\"\\n\"));\n\n for await (const event of graph.stream(\"Explain WebAssembly\")) {\n switch (event.type) {\n case \"node:start\":\n process.stdout.write(color(\"cyan\", ` ▸ Node \"${event.nodeId}\" started...\\n`));\n break;\n case \"node:complete\":\n console.log(color(\"green\", ` ✓ Node \"${event.nodeId}\" completed`));\n if (event.result) {\n const preview = event.result.output.slice(0, 150).replace(/\\n/g, \" \");\n console.log(color(\"dim\", ` \"${preview}...\"\\n`));\n }\n break;\n case \"graph:complete\":\n console.log(color(\"green\", ` ✓ Graph complete in ${event.result?.totalDurationMs}ms`));\n console.log(color(\"cyan\", \"\\n ── Final Output ──\\n\"));\n console.log(` ${event.result?.output}\\n`);\n break;\n case \"graph:error\":\n console.log(color(\"red\", ` ✗ Graph error: ${event.error}\\n`));\n break;\n }\n }\n\n console.log(color(\"magenta\", \"═══ Demo complete ═══\\n\"));\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Observability Demo\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport async function demoObservability(model: LanguageModel): Promise<void> {\n const { Agent } = await import(\"../../agent/agent.js\");\n const { ObservabilityPlugin } = await import(\"../../plugins/index.js\");\n const { InMemoryTracingAdapter } = await import(\"../../adapters/tracing/index.js\");\n const { InMemoryMetricsAdapter } = await import(\"../../adapters/metrics/index.js\");\n const { ConsoleLoggingAdapter } = await import(\"../../adapters/logging/index.js\");\n\n console.log(color(\"magenta\", \"\\n═══ Observability Plugin Demo ═══\\n\"));\n console.log(\"This demo shows tracing, metrics, and logging.\\n\");\n\n const tracer = new InMemoryTracingAdapter();\n const metrics = new InMemoryMetricsAdapter();\n const logger = new ConsoleLoggingAdapter();\n\n const plugin = new ObservabilityPlugin({ tracer, metrics, logger });\n\n const agent = Agent.create({\n model,\n instructions: \"You are a helpful assistant. Answer briefly.\",\n })\n .withPlugin(plugin)\n .build();\n\n try {\n console.log(color(\"yellow\", \"▸ Running agent with observability...\\n\"));\n const result = await agent.run(\"What is 2 + 2?\");\n console.log(color(\"green\", `\\n ✓ Response: ${result.text}\\n`));\n\n console.log(color(\"cyan\", \" ── Collected Metrics ──\"));\n const metricNames = [\"agent.runs.total\", \"agent.runs.success\", \"agent.runs.errors\"];\n for (const name of metricNames) {\n const value = metrics.getCounter(name);\n if (value > 0) console.log(color(\"dim\", ` ${name}: ${value}`));\n }\n\n console.log(color(\"cyan\", \"\\n ── Trace Spans ──\"));\n const spans = tracer.getSpans();\n for (const span of spans) {\n console.log(color(\"dim\", ` ${span.name} [${span.status}]`));\n }\n console.log();\n } finally {\n await agent.dispose();\n }\n\n console.log(color(\"magenta\", \"═══ Demo complete ═══\\n\"));\n}\n"],"mappings":"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","names":[]}