@agentmark-ai/cli 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 (180) hide show
  1. package/README.md +1 -0
  2. package/dist/.next/BUILD_ID +1 -0
  3. package/dist/.next/app-build-manifest.json +66 -0
  4. package/dist/.next/app-path-routes-manifest.json +7 -0
  5. package/dist/.next/build-manifest.json +33 -0
  6. package/dist/.next/cache/.previewinfo +1 -0
  7. package/dist/.next/cache/.rscinfo +1 -0
  8. package/dist/.next/cache/.tsbuildinfo +1 -0
  9. package/dist/.next/cache/config.json +7 -0
  10. package/dist/.next/cache/webpack/client-production/0.pack +0 -0
  11. package/dist/.next/cache/webpack/client-production/index.pack +0 -0
  12. package/dist/.next/cache/webpack/edge-server-production/0.pack +0 -0
  13. package/dist/.next/cache/webpack/edge-server-production/index.pack +0 -0
  14. package/dist/.next/cache/webpack/server-production/0.pack +0 -0
  15. package/dist/.next/cache/webpack/server-production/index.pack +0 -0
  16. package/dist/.next/diagnostics/build-diagnostics.json +6 -0
  17. package/dist/.next/diagnostics/framework.json +1 -0
  18. package/dist/.next/export-marker.json +6 -0
  19. package/dist/.next/images-manifest.json +57 -0
  20. package/dist/.next/next-minimal-server.js.nft.json +1 -0
  21. package/dist/.next/next-server.js.nft.json +1 -0
  22. package/dist/.next/package.json +1 -0
  23. package/dist/.next/prerender-manifest.json +133 -0
  24. package/dist/.next/react-loadable-manifest.json +1 -0
  25. package/dist/.next/required-server-files.json +325 -0
  26. package/dist/.next/routes-manifest.json +77 -0
  27. package/dist/.next/server/app/_not-found/page.js +2 -0
  28. package/dist/.next/server/app/_not-found/page.js.nft.json +1 -0
  29. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  30. package/dist/.next/server/app/_not-found.html +1 -0
  31. package/dist/.next/server/app/_not-found.meta +8 -0
  32. package/dist/.next/server/app/_not-found.rsc +19 -0
  33. package/dist/.next/server/app/index.html +1 -0
  34. package/dist/.next/server/app/index.meta +7 -0
  35. package/dist/.next/server/app/index.rsc +20 -0
  36. package/dist/.next/server/app/page.js +2 -0
  37. package/dist/.next/server/app/page.js.nft.json +1 -0
  38. package/dist/.next/server/app/page_client-reference-manifest.js +1 -0
  39. package/dist/.next/server/app/requests/page.js +2 -0
  40. package/dist/.next/server/app/requests/page.js.nft.json +1 -0
  41. package/dist/.next/server/app/requests/page_client-reference-manifest.js +1 -0
  42. package/dist/.next/server/app/requests.html +1 -0
  43. package/dist/.next/server/app/requests.meta +7 -0
  44. package/dist/.next/server/app/requests.rsc +25 -0
  45. package/dist/.next/server/app/sessions/page.js +2 -0
  46. package/dist/.next/server/app/sessions/page.js.nft.json +1 -0
  47. package/dist/.next/server/app/sessions/page_client-reference-manifest.js +1 -0
  48. package/dist/.next/server/app/sessions.html +1 -0
  49. package/dist/.next/server/app/sessions.meta +7 -0
  50. package/dist/.next/server/app/sessions.rsc +25 -0
  51. package/dist/.next/server/app/traces/page.js +2 -0
  52. package/dist/.next/server/app/traces/page.js.nft.json +1 -0
  53. package/dist/.next/server/app/traces/page_client-reference-manifest.js +1 -0
  54. package/dist/.next/server/app/traces.html +1 -0
  55. package/dist/.next/server/app/traces.meta +7 -0
  56. package/dist/.next/server/app/traces.rsc +25 -0
  57. package/dist/.next/server/app-paths-manifest.json +7 -0
  58. package/dist/.next/server/chunks/18.js +198 -0
  59. package/dist/.next/server/chunks/383.js +6 -0
  60. package/dist/.next/server/chunks/478.js +22 -0
  61. package/dist/.next/server/chunks/547.js +1 -0
  62. package/dist/.next/server/chunks/84.js +138 -0
  63. package/dist/.next/server/functions-config-manifest.json +4 -0
  64. package/dist/.next/server/interception-route-rewrite-manifest.js +1 -0
  65. package/dist/.next/server/middleware-build-manifest.js +1 -0
  66. package/dist/.next/server/middleware-manifest.json +6 -0
  67. package/dist/.next/server/middleware-react-loadable-manifest.js +1 -0
  68. package/dist/.next/server/next-font-manifest.js +1 -0
  69. package/dist/.next/server/next-font-manifest.json +1 -0
  70. package/dist/.next/server/pages/404.html +1 -0
  71. package/dist/.next/server/pages/500.html +1 -0
  72. package/dist/.next/server/pages/_app.js +1 -0
  73. package/dist/.next/server/pages/_app.js.nft.json +1 -0
  74. package/dist/.next/server/pages/_document.js +1 -0
  75. package/dist/.next/server/pages/_document.js.nft.json +1 -0
  76. package/dist/.next/server/pages/_error.js +19 -0
  77. package/dist/.next/server/pages/_error.js.nft.json +1 -0
  78. package/dist/.next/server/pages-manifest.json +6 -0
  79. package/dist/.next/server/server-reference-manifest.js +1 -0
  80. package/dist/.next/server/server-reference-manifest.json +1 -0
  81. package/dist/.next/server/webpack-runtime.js +1 -0
  82. package/dist/.next/static/WXGM4V1PBw_hLKICZoZaB/_buildManifest.js +1 -0
  83. package/dist/.next/static/WXGM4V1PBw_hLKICZoZaB/_ssgManifest.js +1 -0
  84. package/dist/.next/static/chunks/18-57c2d8d3aff89bcb.js +1 -0
  85. package/dist/.next/static/chunks/248-9028c24b6529c0c7.js +77 -0
  86. package/dist/.next/static/chunks/41-1291c1f5f295280d.js +1 -0
  87. package/dist/.next/static/chunks/602-7e76e1ee986e97d5.js +28 -0
  88. package/dist/.next/static/chunks/6b3bb038-67c653ff0a93a5bd.js +1 -0
  89. package/dist/.next/static/chunks/87c73c54-09e1ba5c70e60a51.js +1 -0
  90. package/dist/.next/static/chunks/902-50df3a419e9a9cef.js +1 -0
  91. package/dist/.next/static/chunks/app/_not-found/page-6711055aaf38bfb8.js +1 -0
  92. package/dist/.next/static/chunks/app/layout-eaddb6da201ab019.js +1 -0
  93. package/dist/.next/static/chunks/app/page-93d2401dc395548b.js +1 -0
  94. package/dist/.next/static/chunks/app/requests/page-20818b6519923653.js +1 -0
  95. package/dist/.next/static/chunks/app/sessions/page-cff6cd4b8819d0e5.js +1 -0
  96. package/dist/.next/static/chunks/app/traces/page-e556a466332fc75b.js +1 -0
  97. package/dist/.next/static/chunks/baeaa4ff-0a317ff4d32584cd.js +1 -0
  98. package/dist/.next/static/chunks/framework-3c3dfe0642f415ba.js +1 -0
  99. package/dist/.next/static/chunks/main-314a36b6249f35e5.js +1 -0
  100. package/dist/.next/static/chunks/main-app-0b5725cb98f081b4.js +1 -0
  101. package/dist/.next/static/chunks/pages/_app-d6f6b3bbc3d81ee1.js +1 -0
  102. package/dist/.next/static/chunks/pages/_error-75a96cf1997cc3b9.js +1 -0
  103. package/dist/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  104. package/dist/.next/static/chunks/webpack-f10b0ea54196b48e.js +1 -0
  105. package/dist/.next/static/css/a00826fc162bd22d.css +31 -0
  106. package/dist/.next/trace +51 -0
  107. package/dist/.next/types/app/layout.ts +84 -0
  108. package/dist/.next/types/app/page.ts +84 -0
  109. package/dist/.next/types/app/requests/page.ts +84 -0
  110. package/dist/.next/types/app/sessions/page.ts +84 -0
  111. package/dist/.next/types/app/traces/page.ts +84 -0
  112. package/dist/.next/types/cache-life.d.ts +141 -0
  113. package/dist/.next/types/package.json +1 -0
  114. package/dist/.next/types/routes.d.ts +60 -0
  115. package/dist/.next/types/validator.ts +88 -0
  116. package/dist/api-server.d.ts +1 -0
  117. package/dist/api-server.js +545 -0
  118. package/dist/api-server.js.map +1 -0
  119. package/dist/commands/build.d.ts +9 -0
  120. package/dist/commands/build.js +206 -0
  121. package/dist/commands/build.js.map +1 -0
  122. package/dist/commands/dev.d.ts +7 -0
  123. package/dist/commands/dev.js +406 -0
  124. package/dist/commands/dev.js.map +1 -0
  125. package/dist/commands/generate-types.d.ts +7 -0
  126. package/dist/commands/generate-types.js +31 -0
  127. package/dist/commands/generate-types.js.map +1 -0
  128. package/dist/commands/pull-models.d.ts +2 -0
  129. package/dist/commands/pull-models.js +105 -0
  130. package/dist/commands/pull-models.js.map +1 -0
  131. package/dist/commands/run-experiment.d.ts +7 -0
  132. package/dist/commands/run-experiment.js +579 -0
  133. package/dist/commands/run-experiment.js.map +1 -0
  134. package/dist/commands/run-prompt.d.ts +8 -0
  135. package/dist/commands/run-prompt.js +397 -0
  136. package/dist/commands/run-prompt.js.map +1 -0
  137. package/dist/config.d.ts +23 -0
  138. package/dist/config.js +170 -0
  139. package/dist/config.js.map +1 -0
  140. package/dist/cost-mapping/cost-mapping.d.ts +7 -0
  141. package/dist/cost-mapping/cost-mapping.js +36 -0
  142. package/dist/cost-mapping/cost-mapping.js.map +1 -0
  143. package/dist/index.d.ts +2 -0
  144. package/dist/index.js +127 -0
  145. package/dist/index.js.map +1 -0
  146. package/dist/runner-server/core.d.ts +15 -0
  147. package/dist/runner-server/core.js +180 -0
  148. package/dist/runner-server/core.js.map +1 -0
  149. package/dist/runner-server/middleware/signature-verification.d.ts +37 -0
  150. package/dist/runner-server/middleware/signature-verification.js +55 -0
  151. package/dist/runner-server/middleware/signature-verification.js.map +1 -0
  152. package/dist/runner-server/types.d.ts +67 -0
  153. package/dist/runner-server/types.js +7 -0
  154. package/dist/runner-server/types.js.map +1 -0
  155. package/dist/runner-server.d.ts +32 -0
  156. package/dist/runner-server.js +376 -0
  157. package/dist/runner-server.js.map +1 -0
  158. package/dist/server/database/index.d.ts +3 -0
  159. package/dist/server/database/index.js +97 -0
  160. package/dist/server/database/index.js.map +1 -0
  161. package/dist/server/routes/scores/index.d.ts +14 -0
  162. package/dist/server/routes/scores/index.js +60 -0
  163. package/dist/server/routes/scores/index.js.map +1 -0
  164. package/dist/server/routes/traces/index.d.ts +50 -0
  165. package/dist/server/routes/traces/index.js +614 -0
  166. package/dist/server/routes/traces/index.js.map +1 -0
  167. package/dist/tunnel.d.ts +19 -0
  168. package/dist/tunnel.js +134 -0
  169. package/dist/tunnel.js.map +1 -0
  170. package/dist/utils/prompt-detection.d.ts +8 -0
  171. package/dist/utils/prompt-detection.js +24 -0
  172. package/dist/utils/prompt-detection.js.map +1 -0
  173. package/dist/utils/providers.d.ts +38 -0
  174. package/dist/utils/providers.js +82 -0
  175. package/dist/utils/providers.js.map +1 -0
  176. package/next.config.ts +18 -0
  177. package/package.json +90 -0
  178. package/public/favicon.ico +0 -0
  179. package/public/file.svg +1 -0
  180. package/public/logo.svg +1 -0
package/dist/tunnel.js ADDED
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ /**
3
+ * Tunnel management for exposing local development servers publicly.
4
+ * Uses localtunnel for free, no-auth public access.
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ var __importDefault = (this && this.__importDefault) || function (mod) {
16
+ return (mod && mod.__esModule) ? mod : { "default": mod };
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.createTunnel = createTunnel;
20
+ const localtunnel_1 = __importDefault(require("localtunnel"));
21
+ // Error codes that should not be retried
22
+ const NON_RETRYABLE_ERRORS = [
23
+ 'EACCES', // Permission denied
24
+ 'EADDRINUSE', // Port already in use locally
25
+ 'ENOTFOUND', // DNS resolution failed
26
+ 'ERR_INVALID_ARG', // Invalid arguments
27
+ ];
28
+ // Error messages that indicate auth/config issues (not retryable)
29
+ const NON_RETRYABLE_MESSAGES = [
30
+ 'unauthorized',
31
+ 'forbidden',
32
+ 'invalid subdomain',
33
+ 'subdomain is not available',
34
+ ];
35
+ function isRetryableError(error) {
36
+ const errorCode = error.code || '';
37
+ const errorMessage = (error.message || '').toLowerCase();
38
+ // Check for non-retryable error codes
39
+ if (NON_RETRYABLE_ERRORS.includes(errorCode)) {
40
+ return false;
41
+ }
42
+ // Check for non-retryable error messages
43
+ for (const msg of NON_RETRYABLE_MESSAGES) {
44
+ if (errorMessage.includes(msg)) {
45
+ return false;
46
+ }
47
+ }
48
+ // Default to retryable (network issues, timeouts, etc.)
49
+ return true;
50
+ }
51
+ /**
52
+ * Creates a public tunnel using localtunnel (free, no auth required).
53
+ * Optionally uses a subdomain for consistent URLs.
54
+ */
55
+ function createLocalTunnel(port, subdomain) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ try {
58
+ const options = { port };
59
+ // Try to use subdomain if provided (not guaranteed to be available)
60
+ if (subdomain) {
61
+ options.subdomain = subdomain;
62
+ }
63
+ const tunnel = yield (0, localtunnel_1.default)(options);
64
+ // Handle tunnel errors
65
+ tunnel.on('error', (err) => {
66
+ console.error('Localtunnel error:', err);
67
+ });
68
+ if (!tunnel.url) {
69
+ throw new Error('Localtunnel did not return a URL');
70
+ }
71
+ return {
72
+ url: tunnel.url,
73
+ provider: 'localtunnel',
74
+ disconnect: () => __awaiter(this, void 0, void 0, function* () {
75
+ tunnel.close();
76
+ })
77
+ };
78
+ }
79
+ catch (error) {
80
+ console.error('Localtunnel connection error:', error.message);
81
+ throw error;
82
+ }
83
+ });
84
+ }
85
+ /**
86
+ * Creates a public tunnel to a local port using localtunnel.
87
+ * Includes retry logic for transient errors.
88
+ *
89
+ * @param port - Local port to expose
90
+ * @param subdomain - Optional subdomain to request (not guaranteed)
91
+ * @param maxRetries - Maximum number of retry attempts (default: 3)
92
+ * @returns Tunnel information with URL and disconnect function
93
+ */
94
+ function createTunnel(port_1, subdomain_1) {
95
+ return __awaiter(this, arguments, void 0, function* (port, subdomain, maxRetries = 3) {
96
+ let lastError;
97
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
98
+ try {
99
+ const tunnel = yield createLocalTunnel(port, subdomain);
100
+ return tunnel;
101
+ }
102
+ catch (error) {
103
+ lastError = error;
104
+ const errorMsg = error.message || String(error);
105
+ // Don't retry non-retryable errors
106
+ if (!isRetryableError(error)) {
107
+ console.error('\n❌ Failed to create tunnel:', errorMsg);
108
+ if (error.code === 'EADDRINUSE') {
109
+ console.error(`Port ${port} is already in use. Stop the other process or use a different port.\n`);
110
+ }
111
+ else if (errorMsg.toLowerCase().includes('subdomain')) {
112
+ console.error('The requested subdomain is not available. Try a different subdomain or omit it.\n');
113
+ }
114
+ else {
115
+ console.error('This error cannot be resolved by retrying.\n');
116
+ }
117
+ throw error;
118
+ }
119
+ // Log retry attempt for retryable errors
120
+ if (attempt < maxRetries) {
121
+ console.warn(`Tunnel connection attempt ${attempt} failed: ${errorMsg}. Retrying...`);
122
+ // Exponential backoff: 1s, 2s, 4s
123
+ yield new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, attempt - 1)));
124
+ }
125
+ }
126
+ }
127
+ // All retries exhausted
128
+ const errorMsg = (lastError === null || lastError === void 0 ? void 0 : lastError.message) || String(lastError);
129
+ console.error('\n❌ Failed to create tunnel after', maxRetries, 'attempts:', errorMsg);
130
+ console.error('Localtunnel connection failed. This is usually temporary - try again in a moment.\n');
131
+ throw lastError;
132
+ });
133
+ }
134
+ //# sourceMappingURL=tunnel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../cli-src/tunnel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared utilities for detecting prompt types from file content.
3
+ */
4
+ /**
5
+ * Detect prompt type from raw file content by scanning frontmatter.
6
+ * This allows us to choose the correct parser before full parsing.
7
+ */
8
+ export declare function detectPromptTypeFromContent(content: string): 'language' | 'image' | 'speech';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Shared utilities for detecting prompt types from file content.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detectPromptTypeFromContent = detectPromptTypeFromContent;
7
+ /**
8
+ * Detect prompt type from raw file content by scanning frontmatter.
9
+ * This allows us to choose the correct parser before full parsing.
10
+ */
11
+ function detectPromptTypeFromContent(content) {
12
+ // Simple detection by looking for config keys in frontmatter
13
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
14
+ if (!frontmatterMatch) {
15
+ return 'language'; // Default to language if no frontmatter
16
+ }
17
+ const frontmatter = frontmatterMatch[1];
18
+ if (frontmatter.includes('image_config:'))
19
+ return 'image';
20
+ if (frontmatter.includes('speech_config:'))
21
+ return 'speech';
22
+ return 'language'; // text_config and object_config use language parser
23
+ }
24
+ //# sourceMappingURL=prompt-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-detection.js","sourceRoot":"","sources":["../../cli-src/utils/prompt-detection.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAMH,kEAWC;AAfD;;;GAGG;AACH,SAAgB,2BAA2B,CAAC,OAAe;IACzD,6DAA6D;IAC7D,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,CAAC,wCAAwC;IAC7D,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1D,IAAI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5D,OAAO,UAAU,CAAC,CAAC,oDAAoD;AACzE,CAAC"}
@@ -0,0 +1,38 @@
1
+ export declare const Providers: {
2
+ openai: {
3
+ label: string;
4
+ languageModels: string[];
5
+ imageModels: string[];
6
+ speechModels: string[];
7
+ };
8
+ anthropic: {
9
+ label: string;
10
+ languageModels: string[];
11
+ imageModels: never[];
12
+ speechModels: never[];
13
+ };
14
+ ollama: {
15
+ label: string;
16
+ languageModels: string[];
17
+ imageModels: never[];
18
+ speechModels: never[];
19
+ };
20
+ xai: {
21
+ label: string;
22
+ languageModels: string[];
23
+ imageModels: never[];
24
+ speechModels: never[];
25
+ };
26
+ google: {
27
+ label: string;
28
+ languageModels: string[];
29
+ imageModels: never[];
30
+ speechModels: never[];
31
+ };
32
+ groq: {
33
+ label: string;
34
+ languageModels: string[];
35
+ imageModels: never[];
36
+ speechModels: never[];
37
+ };
38
+ };
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Providers = void 0;
4
+ exports.Providers = {
5
+ openai: {
6
+ label: "OpenAI",
7
+ languageModels: [
8
+ "gpt-4o",
9
+ "gpt-4o-mini",
10
+ "gpt-4",
11
+ "gpt-5",
12
+ "gpt-4-turbo",
13
+ "gpt-3.5-turbo",
14
+ ],
15
+ imageModels: ["dall-e-3", "dall-e-2"],
16
+ speechModels: ["tts-1", "tts-1-hd"],
17
+ },
18
+ anthropic: {
19
+ label: "Anthropic",
20
+ languageModels: ["claude-3-haiku", "claude-3-sonnet", "claude-3-opus"],
21
+ imageModels: [],
22
+ speechModels: [],
23
+ },
24
+ ollama: {
25
+ label: "Ollama",
26
+ languageModels: [
27
+ "llama3.1",
28
+ "llama3.2",
29
+ "mistral",
30
+ "mistral-small",
31
+ "mistral-small3.1",
32
+ "gemma",
33
+ "gemma2",
34
+ "llava",
35
+ "codellama",
36
+ "qwen",
37
+ "qwen2.5",
38
+ "deepseek-r1",
39
+ "tinyllama",
40
+ ],
41
+ imageModels: [],
42
+ speechModels: [],
43
+ },
44
+ xai: {
45
+ label: "xAI Grok",
46
+ languageModels: [
47
+ "grok-3",
48
+ "grok-3-mini",
49
+ "grok-3-fast",
50
+ "grok-3-mini-fast",
51
+ "grok-2-vision",
52
+ ],
53
+ imageModels: [],
54
+ speechModels: [],
55
+ },
56
+ google: {
57
+ label: "Google",
58
+ languageModels: [
59
+ "gemini-2.5-pro-preview-03-25",
60
+ "gemini-2.0-flash",
61
+ "gemini-2.0-flash-lite",
62
+ "gemini-1.5-flash",
63
+ "gemini-1.5-pro",
64
+ ],
65
+ imageModels: [],
66
+ speechModels: [],
67
+ },
68
+ groq: {
69
+ label: "Groq",
70
+ languageModels: [
71
+ "gemma2-9b-it",
72
+ "llama-3.3-70b-versatile",
73
+ "llama-3.1-8b-instant",
74
+ "llama-guard-3-8b",
75
+ "llama3-70b-8192",
76
+ "llama3-8b-8192",
77
+ ],
78
+ imageModels: [],
79
+ speechModels: [],
80
+ },
81
+ };
82
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../cli-src/utils/providers.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE;YACd,QAAQ;YACR,aAAa;YACb,OAAO;YACP,OAAO;YACP,aAAa;YACb,eAAe;SAChB;QACD,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QACrC,YAAY,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;KACpC;IACD,SAAS,EAAE;QACT,KAAK,EAAE,WAAW;QAClB,cAAc,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,CAAC;QACtE,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;KACjB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE;YACd,UAAU;YACV,UAAU;YACV,SAAS;YACT,eAAe;YACf,kBAAkB;YAClB,OAAO;YACP,QAAQ;YACR,OAAO;YACP,WAAW;YACX,MAAM;YACN,SAAS;YACT,aAAa;YACb,WAAW;SACZ;QACD,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;KACjB;IACD,GAAG,EAAE;QACH,KAAK,EAAE,UAAU;QACjB,cAAc,EAAE;YACd,QAAQ;YACR,aAAa;YACb,aAAa;YACb,kBAAkB;YAClB,eAAe;SAChB;QACD,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;KACjB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE;YACd,8BAA8B;YAC9B,kBAAkB;YAClB,uBAAuB;YACvB,kBAAkB;YAClB,gBAAgB;SACjB;QACD,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;KACjB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,cAAc,EAAE;YACd,cAAc;YACd,yBAAyB;YACzB,sBAAsB;YACtB,kBAAkB;YAClB,iBAAiB;YACjB,gBAAgB;SACjB;QACD,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,EAAE;KACjB;CACF,CAAC"}
package/next.config.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { NextConfig } from "next";
2
+ import createNextIntlPlugin from "next-intl/plugin";
3
+
4
+ const nextConfig: NextConfig = {
5
+ distDir: "./dist/.next",
6
+ redirects: async () => {
7
+ return [
8
+ {
9
+ source: "/",
10
+ destination: "/requests",
11
+ permanent: true
12
+ }
13
+ ]
14
+ }
15
+ };
16
+
17
+ const withNextIntl = createNextIntlPlugin();
18
+ export default withNextIntl(nextConfig);
package/package.json ADDED
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "@agentmark-ai/cli",
3
+ "version": "0.1.0",
4
+ "description": "Agentmark's CLI",
5
+ "main": "dist/index.js",
6
+ "exports": {
7
+ ".": "./dist/index.js",
8
+ "./runner-server": "./dist/runner-server.js"
9
+ },
10
+ "scripts": {
11
+ "dev": "next dev",
12
+ "start": "next start",
13
+ "build:app": "next build",
14
+ "lint": "eslint --config cli-src/eslint.config.mjs cli-src",
15
+ "build": "node -e \"require('fs').rmSync('./dist', { recursive: true, force: true })\" && tsc -p tsconfig.app.json && node -e \"require('fs').chmodSync('dist/index.js', '755')\" && yarn build:app",
16
+ "prepack": "node -e \"try { require('fs').chmodSync('dist/index.js', '755') } catch {}\"",
17
+ "prepare": "node -e \"try { require('fs').chmodSync('dist/index.js', '755') } catch {}\"",
18
+ "test": "vitest run",
19
+ "test:watch": "vitest"
20
+ },
21
+ "author": "",
22
+ "license": "ISC",
23
+ "bin": {
24
+ "agentmark": "dist/index.js"
25
+ },
26
+ "dependencies": {
27
+ "@agentmark-ai/prompt-core": "*",
28
+ "@agentmark-ai/shared-utils": "*",
29
+ "@agentmark-ai/templatedx": "workspace:*",
30
+ "@emotion/cache": "^11.14.0",
31
+ "@emotion/react": "^11.14.0",
32
+ "@emotion/styled": "^11.14.1",
33
+ "@iconify/react": "^6.0.2",
34
+ "@mui/material": "^7.3.4",
35
+ "@mui/material-nextjs": "^7.3.3",
36
+ "@mui/x-data-grid": "^8.14.1",
37
+ "@mui/x-date-pickers": "^8.14.1",
38
+ "@types/lodash": "^4.14.202",
39
+ "better-sqlite3": "^12.4.1",
40
+ "cli-table3": "^0.6.5",
41
+ "commander": "^12.1.0",
42
+ "cors": "^2.8.5",
43
+ "date-fns": "^4.1.0",
44
+ "dotenv": "^16.4.7",
45
+ "express": "^4.20.0",
46
+ "express-rate-limit": "^8.2.1",
47
+ "fs-extra": "^11.2.0",
48
+ "localtunnel": "^2.0.2",
49
+ "lodash": "^4.17.21",
50
+ "next": "15.5.6",
51
+ "next-intl": "^4.4.0",
52
+ "prompts": "^2.4.2",
53
+ "react": "19.1.0",
54
+ "react-dom": "19.1.0",
55
+ "tsx": "^4.19.2",
56
+ "yaml": "^2.7.0"
57
+ },
58
+ "devDependencies": {
59
+ "@agentmark-ai/ui-components": "0.1.0",
60
+ "@eslint/eslintrc": "^3",
61
+ "@types/better-sqlite3": "^7.6.13",
62
+ "@types/cors": "^2",
63
+ "@types/express": "^4",
64
+ "@types/fs-extra": "^11.0.4",
65
+ "@types/jest": "^29.5.13",
66
+ "@types/localtunnel": "^2.0.4",
67
+ "@types/mdast": "^4.0.0",
68
+ "@types/node": "^20",
69
+ "@types/prompts": "^2",
70
+ "@types/react": "^19",
71
+ "@types/react-dom": "^19",
72
+ "eslint": "^9",
73
+ "eslint-config-next": "15.5.6",
74
+ "tsup": "^8",
75
+ "typescript": "^5",
76
+ "vitest": "^3.0.8"
77
+ },
78
+ "files": [
79
+ "dist",
80
+ "next.config.ts",
81
+ "public"
82
+ ],
83
+ "directories": {
84
+ "test": "test"
85
+ },
86
+ "keywords": [],
87
+ "overrides": {
88
+ "axios": "^1.7.9"
89
+ }
90
+ }
Binary file
@@ -0,0 +1 @@
1
+ <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" zoomAndPan="magnify" viewBox="0 0 375 374.999991" height="500" preserveAspectRatio="xMidYMid meet" version="1.0"><defs><g/><clipPath id="562f976c56"><path d="M 56.890625 117.78125 L 318.105469 117.78125 L 318.105469 162.980469 L 56.890625 162.980469 Z M 56.890625 117.78125 " clip-rule="nonzero"/></clipPath></defs><g fill="#000000" fill-opacity="1"><g transform="translate(57.901789, 354.683454)"><g><path d="M 190.71875 0 L 190.1875 -100.796875 L 141.28125 -18.75 L 117.375 -18.75 L 68.734375 -98.078125 L 68.734375 0 L 19.015625 0 L 19.015625 -190.1875 L 63.296875 -190.1875 L 130.140625 -80.421875 L 195.34375 -190.1875 L 239.625 -190.1875 L 240.171875 0 Z M 190.71875 0 "/></g></g></g><path fill="#2065d1" d="M 264.5 117.785156 L 264.488281 117.785156 C 263.539062 117.898438 262.417969 118.015625 261.136719 118.148438 C 249.492188 119.347656 224.152344 121.402344 187.503906 121.402344 C 150.855469 121.402344 125.515625 119.347656 113.867188 118.148438 C 112.578125 118.015625 111.453125 117.898438 110.507812 117.785156 L 115.875 89.023438 C 127.222656 88.03125 150.820312 86.480469 187.503906 86.480469 C 224.191406 86.480469 247.796875 88.03125 259.132812 89.023438 L 264.5 117.785156 " fill-opacity="1" fill-rule="nonzero"/><g clip-path="url(#562f976c56)"><path fill="#000000" d="M 318.105469 137.023438 C 318.105469 163.722656 187.503906 162.980469 187.503906 162.980469 C 187.503906 162.980469 56.890625 163.722656 56.890625 137.023438 C 56.890625 125.285156 82.128906 120.285156 110.417969 118.367188 C 110.449219 118.171875 110.472656 117.980469 110.507812 117.785156 C 111.453125 117.898438 112.578125 118.015625 113.867188 118.148438 C 125.515625 119.347656 150.855469 121.402344 187.503906 121.402344 C 224.152344 121.402344 249.492188 119.347656 261.136719 118.148438 C 262.417969 118.015625 263.539062 117.898438 264.488281 117.785156 C 264.523438 117.980469 264.550781 118.171875 264.578125 118.367188 C 292.867188 120.285156 318.105469 125.285156 318.105469 137.023438 " fill-opacity="1" fill-rule="nonzero"/></g><path fill="#000000" d="M 259.132812 89.023438 C 247.796875 88.03125 224.191406 86.480469 187.503906 86.480469 C 150.820312 86.480469 127.222656 88.03125 115.875 89.023438 C 121.355469 60.964844 129.984375 31.171875 142.554688 23.246094 C 167.921875 7.25 172.972656 26.640625 187.503906 26.640625 C 202.019531 26.640625 207.078125 7.25 232.453125 23.246094 C 245.019531 31.171875 253.640625 60.964844 259.132812 89.023438 " fill-opacity="1" fill-rule="nonzero"/></svg>