@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
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const path_1 = __importDefault(require("path"));
16
+ const fs_extra_1 = __importDefault(require("fs-extra"));
17
+ /**
18
+ * Reads the agentmark.json config file from the current directory.
19
+ */
20
+ function getAgentmarkConfig() {
21
+ const configPath = path_1.default.join(process.cwd(), "agentmark.json");
22
+ if (!fs_extra_1.default.existsSync(configPath)) {
23
+ throw new Error("agentmark.json not found in current directory. Run this command from your AgentMark project root.");
24
+ }
25
+ return fs_extra_1.default.readJsonSync(configPath);
26
+ }
27
+ /**
28
+ * Determines the prompt kind based on frontmatter content.
29
+ */
30
+ function determinePromptKind(frontmatter) {
31
+ if (frontmatter.text_config)
32
+ return 'text';
33
+ if (frontmatter.object_config)
34
+ return 'object';
35
+ if (frontmatter.image_config)
36
+ return 'image';
37
+ if (frontmatter.speech_config)
38
+ return 'speech';
39
+ throw new Error('Could not determine prompt kind from frontmatter');
40
+ }
41
+ /**
42
+ * Detect prompt type from raw file content by scanning frontmatter.
43
+ * This allows us to choose the correct parser before full parsing.
44
+ */
45
+ function detectPromptTypeFromContent(content) {
46
+ // Simple detection by looking for config keys in frontmatter
47
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
48
+ if (!frontmatterMatch) {
49
+ return 'language'; // Default to language if no frontmatter
50
+ }
51
+ const frontmatter = frontmatterMatch[1];
52
+ if (frontmatter.includes('image_config:'))
53
+ return 'image';
54
+ if (frontmatter.includes('speech_config:'))
55
+ return 'speech';
56
+ return 'language'; // text_config and object_config use language parser
57
+ }
58
+ /**
59
+ * Recursively find all files matching a pattern in a directory.
60
+ */
61
+ function findFiles(dir, pattern) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const results = [];
64
+ function walk(currentDir) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ const entries = yield fs_extra_1.default.readdir(currentDir, { withFileTypes: true });
67
+ for (const entry of entries) {
68
+ const fullPath = path_1.default.join(currentDir, entry.name);
69
+ if (entry.isDirectory()) {
70
+ yield walk(fullPath);
71
+ }
72
+ else if (entry.isFile() && pattern.test(entry.name)) {
73
+ results.push(fullPath);
74
+ }
75
+ }
76
+ });
77
+ }
78
+ yield walk(dir);
79
+ return results;
80
+ });
81
+ }
82
+ /**
83
+ * Build command - compiles all .prompt.mdx files to pre-built AST JSON files.
84
+ * Also copies dataset files (.jsonl) to the output directory.
85
+ */
86
+ const build = (...args_1) => __awaiter(void 0, [...args_1], void 0, function* (options = {}) {
87
+ const cwd = process.cwd();
88
+ const config = getAgentmarkConfig();
89
+ // Determine source directory from agentmark.json
90
+ const agentmarkPath = config.agentmarkPath || ".";
91
+ const sourceDir = path_1.default.resolve(cwd, agentmarkPath, "agentmark");
92
+ if (!fs_extra_1.default.existsSync(sourceDir)) {
93
+ throw new Error(`AgentMark directory not found: ${sourceDir}. Check your agentmark.json configuration.`);
94
+ }
95
+ // Determine output directory
96
+ const outDir = path_1.default.resolve(cwd, options.outDir || "dist/agentmark");
97
+ console.log("Building AgentMark prompts...");
98
+ console.log(` Source: ${sourceDir}`);
99
+ console.log(` Output: ${outDir}`);
100
+ // Ensure output directory exists
101
+ yield fs_extra_1.default.ensureDir(outDir);
102
+ // Import templatedx for parsing
103
+ const { getTemplateDXInstance } = yield import("@agentmark-ai/prompt-core");
104
+ const { compressAst } = yield import("@agentmark-ai/templatedx");
105
+ // Find all prompt files
106
+ const promptFilesAbsolute = yield findFiles(sourceDir, /\.prompt\.mdx$/);
107
+ const promptFiles = promptFilesAbsolute.map((f) => path_1.default.relative(sourceDir, f));
108
+ // Find all dataset files
109
+ const datasetFilesAbsolute = yield findFiles(sourceDir, /\.jsonl$/);
110
+ const datasetFiles = datasetFilesAbsolute.map((f) => path_1.default.relative(sourceDir, f));
111
+ console.log(`\nFound ${promptFiles.length} prompt(s) and ${datasetFiles.length} dataset(s)`);
112
+ // Track build results
113
+ const results = {
114
+ prompts: [],
115
+ datasets: [],
116
+ errors: [],
117
+ };
118
+ // Build each prompt file
119
+ for (const promptFile of promptFiles) {
120
+ const sourcePath = path_1.default.join(sourceDir, promptFile);
121
+ const relativePath = promptFile;
122
+ try {
123
+ // Read the file content
124
+ const content = yield fs_extra_1.default.readFile(sourcePath, "utf-8");
125
+ // Create a content loader for resolving imports
126
+ const contentLoader = (filePath) => __awaiter(void 0, void 0, void 0, function* () {
127
+ const resolvedPath = path_1.default.resolve(path_1.default.dirname(sourcePath), filePath);
128
+ // Ensure the resolved path is within the source directory
129
+ if (!resolvedPath.startsWith(sourceDir)) {
130
+ throw new Error(`Access denied: path outside source directory: ${filePath}`);
131
+ }
132
+ return fs_extra_1.default.readFile(resolvedPath, "utf-8");
133
+ });
134
+ // Detect prompt type from content to choose the right parser
135
+ const parserType = detectPromptTypeFromContent(content);
136
+ const templateDX = getTemplateDXInstance(parserType);
137
+ const ast = yield templateDX.parse(content, sourceDir, contentLoader);
138
+ // Extract frontmatter to determine prompt kind and get metadata
139
+ const frontmatter = templateDX.getFrontMatter(ast);
140
+ const promptKind = determinePromptKind(frontmatter);
141
+ // Compress AST to reduce file size (modifies in place)
142
+ compressAst(ast);
143
+ // Build output structure
144
+ const output = {
145
+ ast,
146
+ metadata: {
147
+ path: relativePath,
148
+ kind: promptKind,
149
+ name: frontmatter.name || path_1.default.basename(promptFile, ".prompt.mdx"),
150
+ builtAt: new Date().toISOString(),
151
+ },
152
+ };
153
+ // Write the built prompt
154
+ // Output path mirrors source structure: foo/bar.prompt.mdx -> foo/bar.prompt.json
155
+ const outputPath = path_1.default.join(outDir, relativePath.replace(/\.mdx$/, ".json"));
156
+ yield fs_extra_1.default.ensureDir(path_1.default.dirname(outputPath));
157
+ yield fs_extra_1.default.writeJson(outputPath, output, { spaces: 2 });
158
+ results.prompts.push(relativePath);
159
+ console.log(` āœ“ ${relativePath}`);
160
+ }
161
+ catch (error) {
162
+ results.errors.push(`${relativePath}: ${error.message}`);
163
+ console.error(` āœ— ${relativePath}: ${error.message}`);
164
+ }
165
+ }
166
+ // Copy dataset files
167
+ for (const datasetFile of datasetFiles) {
168
+ const sourcePath = path_1.default.join(sourceDir, datasetFile);
169
+ const outputPath = path_1.default.join(outDir, datasetFile);
170
+ try {
171
+ yield fs_extra_1.default.ensureDir(path_1.default.dirname(outputPath));
172
+ yield fs_extra_1.default.copy(sourcePath, outputPath);
173
+ results.datasets.push(datasetFile);
174
+ console.log(` āœ“ ${datasetFile} (dataset)`);
175
+ }
176
+ catch (error) {
177
+ results.errors.push(`${datasetFile}: ${error.message}`);
178
+ console.error(` āœ— ${datasetFile}: ${error.message}`);
179
+ }
180
+ }
181
+ // Write manifest
182
+ const manifest = {
183
+ version: "1.0",
184
+ builtAt: new Date().toISOString(),
185
+ prompts: results.prompts.map((p) => ({
186
+ path: p,
187
+ outputPath: p.replace(/\.mdx$/, ".json"),
188
+ })),
189
+ datasets: results.datasets,
190
+ };
191
+ yield fs_extra_1.default.writeJson(path_1.default.join(outDir, "manifest.json"), manifest, { spaces: 2 });
192
+ // Summary
193
+ console.log("\n" + "─".repeat(50));
194
+ console.log("Build complete!");
195
+ console.log(` Prompts: ${results.prompts.length} built`);
196
+ console.log(` Datasets: ${results.datasets.length} copied`);
197
+ if (results.errors.length > 0) {
198
+ console.log(` Errors: ${results.errors.length}`);
199
+ }
200
+ console.log(` Output: ${outDir}`);
201
+ if (results.errors.length > 0) {
202
+ process.exit(1);
203
+ }
204
+ });
205
+ exports.default = build;
206
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../cli-src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ declare const dev: (options?: {
2
+ apiPort?: number;
3
+ webhookPort?: number;
4
+ appPort?: number;
5
+ tunnel?: boolean;
6
+ }) => Promise<void>;
7
+ export default dev;
@@ -0,0 +1,406 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const child_process_1 = require("child_process");
16
+ const path_1 = __importDefault(require("path"));
17
+ const fs_1 = __importDefault(require("fs"));
18
+ const net_1 = __importDefault(require("net"));
19
+ const api_server_1 = require("../api-server");
20
+ const tunnel_1 = require("../tunnel");
21
+ const config_1 = require("../config");
22
+ function getSafeCwd() {
23
+ try {
24
+ return process.cwd();
25
+ }
26
+ catch (_a) {
27
+ return process.env.PWD || process.env.INIT_CWD || '.';
28
+ }
29
+ }
30
+ function detectProjectLanguage(cwd) {
31
+ // Check for Python project indicators
32
+ const pyprojectPath = path_1.default.join(cwd, 'pyproject.toml');
33
+ const agentmarkClientPy = path_1.default.join(cwd, 'agentmark_client.py');
34
+ const pythonDevServer = path_1.default.join(cwd, '.agentmark', 'dev_server.py');
35
+ if (fs_1.default.existsSync(pyprojectPath) || fs_1.default.existsSync(agentmarkClientPy) || fs_1.default.existsSync(pythonDevServer)) {
36
+ return "python";
37
+ }
38
+ // Default to TypeScript
39
+ return "typescript";
40
+ }
41
+ /**
42
+ * Find Python executable, preferring virtual environment if present.
43
+ * Checks .venv and venv directories in the project root.
44
+ */
45
+ function findPythonExecutable(cwd) {
46
+ const isWindows = process.platform === 'win32';
47
+ const binDir = isWindows ? 'Scripts' : 'bin';
48
+ const pythonName = isWindows ? 'python.exe' : 'python';
49
+ // Check common virtual environment directories
50
+ const venvDirs = ['.venv', 'venv'];
51
+ for (const venvDir of venvDirs) {
52
+ const venvPython = path_1.default.join(cwd, venvDir, binDir, pythonName);
53
+ if (fs_1.default.existsSync(venvPython)) {
54
+ console.log(`Using virtual environment: ${venvDir}/`);
55
+ return venvPython;
56
+ }
57
+ }
58
+ // Fallback to system Python
59
+ return isWindows ? 'python' : 'python3';
60
+ }
61
+ function isPortFree(port) {
62
+ return new Promise((resolve) => {
63
+ const tester = net_1.default.createServer()
64
+ .once('error', () => resolve(false))
65
+ .once('listening', () => tester.close(() => resolve(true)))
66
+ .listen(port);
67
+ });
68
+ }
69
+ function getConfigDaysRemaining(config) {
70
+ if (!config.createdAt)
71
+ return 30;
72
+ const createdDate = new Date(config.createdAt);
73
+ const daysSinceCreation = (Date.now() - createdDate.getTime()) / (1000 * 60 * 60 * 24);
74
+ return Math.ceil(30 - daysSinceCreation);
75
+ }
76
+ const dev = (...args_1) => __awaiter(void 0, [...args_1], void 0, function* (options = {}) {
77
+ const apiPort = options.apiPort || 9418;
78
+ const webhookPort = options.webhookPort || 9417;
79
+ const appPort = options.appPort || 3000;
80
+ const useTunnel = options.tunnel || false;
81
+ const cwd = getSafeCwd();
82
+ // Load or create local config with webhook secret
83
+ const config = (0, config_1.loadLocalConfig)();
84
+ // Set webhook secret from local config if not already set
85
+ // This is the source of truth for local development
86
+ if (!process.env.AGENTMARK_WEBHOOK_SECRET && config.webhookSecret) {
87
+ process.env.AGENTMARK_WEBHOOK_SECRET = config.webhookSecret;
88
+ }
89
+ // For local-only mode, skip signature verification for convenience
90
+ if (!useTunnel) {
91
+ process.env.AGENTMARK_WEBHOOK_SECRET = '';
92
+ }
93
+ // Detect project language
94
+ const projectLanguage = detectProjectLanguage(cwd);
95
+ console.log(`Detected ${projectLanguage} project`);
96
+ // Check for appropriate client config file based on language
97
+ if (projectLanguage === "python") {
98
+ const pythonConfigPath = path_1.default.join(cwd, 'agentmark_client.py');
99
+ if (!fs_1.default.existsSync(pythonConfigPath)) {
100
+ console.error('Error: agentmark_client.py not found in current directory');
101
+ console.error('Run this command from your AgentMark Python project root');
102
+ process.exit(1);
103
+ }
104
+ }
105
+ else {
106
+ const configPath = path_1.default.join(cwd, 'agentmark.client.ts');
107
+ if (!fs_1.default.existsSync(configPath)) {
108
+ console.error('Error: agentmark.client.ts not found in current directory');
109
+ console.error('Run this command from your AgentMark project root');
110
+ process.exit(1);
111
+ }
112
+ }
113
+ // Determine which dev server entry point to use based on language
114
+ let devServerFile;
115
+ if (projectLanguage === "python") {
116
+ const customPythonDevServer = path_1.default.join(cwd, 'dev_server.py');
117
+ const autoGeneratedPythonEntry = path_1.default.join(cwd, '.agentmark', 'dev_server.py');
118
+ if (fs_1.default.existsSync(customPythonDevServer)) {
119
+ console.log('Using custom dev_server.py');
120
+ devServerFile = customPythonDevServer;
121
+ }
122
+ else if (fs_1.default.existsSync(autoGeneratedPythonEntry)) {
123
+ devServerFile = autoGeneratedPythonEntry;
124
+ }
125
+ else {
126
+ console.error('Error: No Python dev server entry point found.');
127
+ console.error('Expected .agentmark/dev_server.py to be created during initialization.');
128
+ console.error('Please run "npx create-agentmark --python" to set up a new project.');
129
+ process.exit(1);
130
+ }
131
+ }
132
+ else {
133
+ const customDevServer = path_1.default.join(cwd, 'dev-server.ts');
134
+ const autoGeneratedEntry = path_1.default.join(cwd, '.agentmark', 'dev-entry.ts');
135
+ if (fs_1.default.existsSync(customDevServer)) {
136
+ console.log('Using custom dev-server.ts');
137
+ devServerFile = customDevServer;
138
+ }
139
+ else if (fs_1.default.existsSync(autoGeneratedEntry)) {
140
+ devServerFile = autoGeneratedEntry;
141
+ }
142
+ else {
143
+ console.error('Error: No dev server entry point found.');
144
+ console.error('Expected .agentmark/dev-entry.ts to be created during initialization.');
145
+ console.error('Please run "npx create-agentmark" to set up a new project.');
146
+ process.exit(1);
147
+ }
148
+ }
149
+ // Start API server directly
150
+ let apiServerInstance;
151
+ try {
152
+ console.log(`Starting...`);
153
+ apiServerInstance = yield (0, api_server_1.createApiServer)(apiPort);
154
+ }
155
+ catch (error) {
156
+ console.error('Failed to start API server:', error.message);
157
+ console.error(error.stack);
158
+ process.exit(1);
159
+ }
160
+ const killProcessTree = (pid) => {
161
+ try {
162
+ // Kill all child processes first
163
+ try {
164
+ const result = (0, child_process_1.spawn)('pkill', ['-TERM', '-P', String(pid)], { stdio: 'pipe' });
165
+ result.on('close', () => {
166
+ // After children are killed, kill the parent
167
+ try {
168
+ process.kill(pid, 'SIGTERM');
169
+ }
170
+ catch (_a) {
171
+ // Ignore errors (process may already be dead)
172
+ }
173
+ // Force kill after delay if still alive
174
+ setTimeout(() => {
175
+ try {
176
+ process.kill(pid, 'SIGKILL');
177
+ }
178
+ catch (_a) {
179
+ // Ignore errors (process may already be dead)
180
+ }
181
+ }, 200);
182
+ });
183
+ }
184
+ catch (_a) {
185
+ // If pkill fails, just kill the parent process
186
+ try {
187
+ process.kill(pid, 'SIGTERM');
188
+ setTimeout(() => {
189
+ try {
190
+ process.kill(pid, 'SIGKILL');
191
+ }
192
+ catch (_a) {
193
+ // Ignore errors (process may already be dead)
194
+ }
195
+ }, 200);
196
+ }
197
+ catch (_b) {
198
+ // Ignore errors (process may already be dead)
199
+ }
200
+ }
201
+ }
202
+ catch (_c) {
203
+ // Ignore errors (process may already be dead)
204
+ }
205
+ };
206
+ // Track shutdown state to suppress exit messages during intentional shutdown
207
+ let isShuttingDown = false;
208
+ // Start webhook server based on project language
209
+ let webhookServer;
210
+ if (projectLanguage === "python") {
211
+ // For Python projects, spawn the Python dev server
212
+ // Find Python executable (prefers virtual environment if present)
213
+ const pythonCommand = findPythonExecutable(cwd);
214
+ webhookServer = (0, child_process_1.spawn)(pythonCommand, [
215
+ devServerFile,
216
+ `--webhook-port=${webhookPort}`,
217
+ `--api-server-port=${apiPort}`
218
+ ], {
219
+ stdio: 'inherit',
220
+ cwd,
221
+ env: Object.assign(Object.assign({}, process.env), { PYTHONDONTWRITEBYTECODE: '1', PYTHONUNBUFFERED: '1' })
222
+ });
223
+ }
224
+ else {
225
+ // For TypeScript projects, use tsx with watch mode
226
+ const tsxPath = path_1.default.join(require.resolve('tsx'), '../../dist/cli.mjs');
227
+ webhookServer = (0, child_process_1.spawn)(process.execPath, [tsxPath, '--watch', devServerFile, 'agentmark.client.ts', 'agentmark/**/*', `--webhook-port=${webhookPort}`, `--api-server-port=${apiPort}`], {
228
+ stdio: 'inherit',
229
+ cwd
230
+ });
231
+ }
232
+ webhookServer.on('error', (error) => {
233
+ console.error('Failed to start webhook server:', error.message);
234
+ if (apiServerInstance) {
235
+ try {
236
+ apiServerInstance.close();
237
+ }
238
+ catch (_a) {
239
+ // Ignore errors when closing API server
240
+ }
241
+ }
242
+ process.exit(1);
243
+ });
244
+ webhookServer.on('exit', (code) => {
245
+ // Only log if not shutting down intentionally
246
+ if (!isShuttingDown) {
247
+ if (code === 0 || code === null) {
248
+ console.log('\nWebhook server stopped');
249
+ }
250
+ else {
251
+ console.error(`\nāŒ Webhook server exited with error code ${code}`);
252
+ console.error('Check the output above for error details');
253
+ }
254
+ if (apiServerInstance) {
255
+ try {
256
+ apiServerInstance.close();
257
+ }
258
+ catch (_a) {
259
+ // Ignore errors when closing API server
260
+ }
261
+ }
262
+ process.exit(code || 0);
263
+ }
264
+ });
265
+ // Start AgentMark UI app (Next.js production server)
266
+ const nextCwd = path_1.default.join(__dirname, '..', '..');
267
+ let actualAppPort = appPort;
268
+ let uiServer = null;
269
+ function startAgentMarkServer() {
270
+ return __awaiter(this, void 0, void 0, function* () {
271
+ var _a, _b;
272
+ while (!(yield isPortFree(actualAppPort))) {
273
+ console.warn(`Port ${actualAppPort} is busy, trying ${actualAppPort + 1}`);
274
+ actualAppPort++;
275
+ }
276
+ uiServer = (0, child_process_1.spawn)('npm', ['start', '--', '-p', `${actualAppPort}`], {
277
+ stdio: 'pipe',
278
+ cwd: nextCwd,
279
+ env: Object.assign(Object.assign({}, process.env), { NEXT_PUBLIC_AGENTMARK_API_PORT: String(apiPort) }),
280
+ });
281
+ // Capture output for debugging
282
+ (_a = uiServer.stdout) === null || _a === void 0 ? void 0 : _a.on('data', () => {
283
+ // Silently consume stdout
284
+ });
285
+ (_b = uiServer.stderr) === null || _b === void 0 ? void 0 : _b.on('data', (data) => {
286
+ console.error(`AgentMark UI error: ${data.toString()}`);
287
+ });
288
+ uiServer.on('exit', (code) => {
289
+ // Only log if not shutting down intentionally
290
+ if (!isShuttingDown) {
291
+ console.log(`AgentMark UI server exited with code ${code}`);
292
+ process.exit(code || 0);
293
+ }
294
+ });
295
+ uiServer.on('error', (err) => {
296
+ console.error('Failed to start AgentMark UI server:', err.message);
297
+ process.exit(1);
298
+ });
299
+ });
300
+ }
301
+ // Start the AgentMark app
302
+ startAgentMarkServer();
303
+ // Store tunnel info for cleanup
304
+ let tunnelInfo = null;
305
+ // Give servers time to start, then print summary and optionally setup tunnel
306
+ setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {
307
+ // Verify webhook server is still running before showing success message
308
+ if (webhookServer.exitCode !== null) {
309
+ console.error('\nāŒ Webhook server failed to start');
310
+ console.error('The API server is running, but the webhook server did not start successfully');
311
+ return;
312
+ }
313
+ // Setup tunnel if requested
314
+ if (useTunnel) {
315
+ try {
316
+ const subdomain = (0, config_1.getTunnelSubdomain)();
317
+ tunnelInfo = yield (0, tunnel_1.createTunnel)(webhookPort, subdomain);
318
+ }
319
+ catch (_a) {
320
+ console.error('Continuing without tunnel...\n');
321
+ }
322
+ }
323
+ console.log('\n' + '═'.repeat(70));
324
+ console.log('šŸš€ AgentMark Development Servers Running');
325
+ console.log('═'.repeat(70));
326
+ console.log(`\n API: http://localhost:${apiPort}`);
327
+ console.log(` Webhook: http://localhost:${webhookPort}`);
328
+ console.log(` App: http://localhost:${actualAppPort}`);
329
+ if (useTunnel && tunnelInfo) {
330
+ console.log('\n Public Webhook:');
331
+ console.log(` URL: ${tunnelInfo.url}`);
332
+ console.log(` Secret: ${config.webhookSecret}`);
333
+ console.log(` Valid: ${getConfigDaysRemaining(config)} days remaining`);
334
+ }
335
+ console.log('\n' + '─'.repeat(70));
336
+ console.log('How to run prompts and experiments:');
337
+ console.log('─'.repeat(70));
338
+ console.log('\n Open a new terminal window and run:');
339
+ console.log('\n Run a prompt:');
340
+ console.log(' $ npm run prompt ./agentmark/party-planner.prompt.mdx');
341
+ console.log('\n Run an experiment:');
342
+ console.log(' $ npm run experiment ./agentmark/party-planner.prompt.mdx');
343
+ console.log('\n (Replace with any prompt file in ./agentmark/)');
344
+ console.log('\n' + '═'.repeat(70));
345
+ console.log('Press Ctrl+C in this terminal to stop the servers');
346
+ console.log('═'.repeat(70) + '\n');
347
+ }), 3000);
348
+ // Handle process termination
349
+ const cleanup = () => __awaiter(void 0, void 0, void 0, function* () {
350
+ if (isShuttingDown)
351
+ return;
352
+ isShuttingDown = true;
353
+ console.log('\nShutting down servers...');
354
+ // Close tunnel first
355
+ if (tunnelInfo) {
356
+ try {
357
+ console.log(' Stopping tunnel...');
358
+ yield tunnelInfo.disconnect();
359
+ }
360
+ catch (error) {
361
+ console.error(' Error disconnecting tunnel:', error);
362
+ }
363
+ }
364
+ // Close API server with force close on all connections
365
+ if (apiServerInstance) {
366
+ try {
367
+ console.log(' Stopping API server...');
368
+ // Force close all connections
369
+ yield new Promise((resolve) => {
370
+ var _a;
371
+ (_a = apiServerInstance.closeAllConnections) === null || _a === void 0 ? void 0 : _a.call(apiServerInstance);
372
+ apiServerInstance.close(() => {
373
+ resolve();
374
+ });
375
+ // Timeout in case close hangs
376
+ setTimeout(resolve, 1000);
377
+ });
378
+ }
379
+ catch (error) {
380
+ console.error(' Error stopping API server:', error);
381
+ }
382
+ }
383
+ // Kill webhook server process tree
384
+ if (webhookServer.pid) {
385
+ console.log(' Stopping webhook server...');
386
+ killProcessTree(webhookServer.pid);
387
+ }
388
+ // Kill UI server process tree
389
+ if (uiServer && uiServer.pid) {
390
+ console.log(' Stopping UI server...');
391
+ killProcessTree(uiServer.pid);
392
+ }
393
+ console.log('Servers stopped.');
394
+ // Give processes time to die, then force exit
395
+ // Increased timeout to allow for graceful shutdown
396
+ setTimeout(() => {
397
+ process.exit(0);
398
+ }, 1000);
399
+ });
400
+ process.on('SIGINT', cleanup);
401
+ process.on('SIGTERM', cleanup);
402
+ // Don't use exit handler - it causes issues with async cleanup
403
+ // The SIGINT/SIGTERM handlers will trigger process.exit()
404
+ });
405
+ exports.default = dev;
406
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../cli-src/commands/dev.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iDAAoD;AACpD,gDAAwB;AACxB,4CAAoB;AACpB,8CAAsB;AACtB,8CAAgD;AAChD,sCAA0D;AAC1D,sCAAgE;AAGhE,SAAS,UAAU;IACjB,IAAI,CAAC;QAAC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IAAC,CAAC;IAAC,WAAM,CAAC;QAAC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC;IAAC,CAAC;AAChG,CAAC;AAID,SAAS,qBAAqB,CAAC,GAAW;IACxC,sCAAsC;IACtC,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IAEtE,IAAI,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACvG,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEvD,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;YACtD,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,aAAG,CAAC,YAAY,EAAE;aAC9B,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACnC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;aAC1D,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAmB;IACjD,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACvF,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,GAAG,GAAG,YAAqG,EAAE,mDAAhG,UAA0F,EAAE;IAC7G,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACxC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IAC1C,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IAEzB,kDAAkD;IAClD,MAAM,MAAM,GAAG,IAAA,wBAAe,GAAE,CAAC;IAEjC,0DAA0D;IAC1D,oDAAoD;IACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,MAAM,CAAC,aAAa,CAAC;IAC9D,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,EAAE,CAAC;IAC5C,CAAC;IAED,0BAA0B;IAC1B,MAAM,eAAe,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,YAAY,eAAe,UAAU,CAAC,CAAC;IAEnD,6DAA6D;IAC7D,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QACzD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,aAAqB,CAAC;IAE1B,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,qBAAqB,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAC9D,MAAM,wBAAwB,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QAE/E,IAAI,YAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,aAAa,GAAG,qBAAqB,CAAC;QACxC,CAAC;aAAM,IAAI,YAAE,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACnD,aAAa,GAAG,wBAAwB,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAChE,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACxF,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACxD,MAAM,kBAAkB,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;QAExE,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,aAAa,GAAG,eAAe,CAAC;QAClC,CAAC;aAAM,IAAI,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,aAAa,GAAG,kBAAkB,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;YACvF,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,iBAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,iBAAiB,GAAG,MAAM,IAAA,4BAAe,EAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,iCAAiC;YACjC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC/E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACtB,6CAA6C;oBAC7C,IAAI,CAAC;wBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAC/B,CAAC;oBAAC,WAAM,CAAC;wBACP,8CAA8C;oBAChD,CAAC;oBACD,wCAAwC;oBACxC,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC;4BACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC/B,CAAC;wBAAC,WAAM,CAAC;4BACP,8CAA8C;wBAChD,CAAC;oBACH,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,WAAM,CAAC;gBACP,+CAA+C;gBAC/C,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAC7B,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,CAAC;4BACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC/B,CAAC;wBAAC,WAAM,CAAC;4BACP,8CAA8C;wBAChD,CAAC;oBACH,CAAC,EAAE,GAAG,CAAC,CAAC;gBACV,CAAC;gBAAC,WAAM,CAAC;oBACP,8CAA8C;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC,CAAC;IAEF,6EAA6E;IAC7E,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,iDAAiD;IACjD,IAAI,aAA2B,CAAC;IAEhC,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QACjC,mDAAmD;QACnD,kEAAkE;QAClE,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEhD,aAAa,GAAG,IAAA,qBAAK,EAAC,aAAa,EAAE;YACnC,aAAa;YACb,kBAAkB,WAAW,EAAE;YAC/B,qBAAqB,OAAO,EAAE;SAC/B,EAAE;YACD,KAAK,EAAE,SAAS;YAChB,GAAG;YACH,GAAG,kCACE,OAAO,CAAC,GAAG,KACd,uBAAuB,EAAE,GAAG,EAC5B,gBAAgB,EAAE,GAAG,GACtB;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,mDAAmD;QACnD,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC;QACxE,aAAa,GAAG,IAAA,qBAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,kBAAkB,WAAW,EAAE,EAAE,qBAAqB,OAAO,EAAE,CAAC,EAAE;YACrL,KAAK,EAAE,SAAS;YAChB,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAClC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC;gBAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,WAAM,CAAC;gBACxC,wCAAwC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAChC,8CAA8C;QAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,6CAA6C,IAAI,EAAE,CAAC,CAAC;gBACnE,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,IAAI,CAAC;oBAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC;gBAAC,WAAM,CAAC;oBACxC,wCAAwC;gBAC1C,CAAC;YACH,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,aAAa,GAAG,OAAO,CAAC;IAC5B,IAAI,QAAQ,GAAoC,IAAI,CAAC;IAErD,SAAe,oBAAoB;;;YACjC,OAAO,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,aAAa,oBAAoB,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3E,aAAa,EAAE,CAAC;YAClB,CAAC;YAED,QAAQ,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC,EAAE;gBACjE,KAAK,EAAE,MAAM;gBACb,GAAG,EAAE,OAAO;gBACZ,GAAG,kCACE,OAAO,CAAC,GAAG,KACd,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,GAChD;aACF,CAAC,CAAC;YAEH,+BAA+B;YAC/B,MAAA,QAAQ,CAAC,MAAM,0CAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC/B,0BAA0B;YAC5B,CAAC,CAAC,CAAC;YAEH,MAAA,QAAQ,CAAC,MAAM,0CAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACnC,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC3B,8CAA8C;gBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;oBAC5D,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3B,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAED,0BAA0B;IAC1B,oBAAoB,EAAE,CAAC;IAEvB,gCAAgC;IAChC,IAAI,UAAU,GAAsB,IAAI,CAAC;IAEzC,6EAA6E;IAC7E,UAAU,CAAC,GAAS,EAAE;QACpB,wEAAwE;QACxE,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;YAC9F,OAAO;QACT,CAAC;QAED,4BAA4B;QAC5B,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAA,2BAAkB,GAAE,CAAC;gBACvC,UAAU,GAAG,MAAM,IAAA,qBAAY,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC;YAAC,WAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5B,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,qCAAqC,aAAa,EAAE,CAAC,CAAC;QAElE,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,eAAe,sBAAsB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC,CAAA,EAAE,IAAI,CAAC,CAAC;IAET,6BAA6B;IAC7B,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,cAAc;YAAE,OAAO;QAC3B,cAAc,GAAG,IAAI,CAAC;QAEtB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAE1C,qBAAqB;QACrB,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,8BAA8B;gBAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;;oBAClC,MAAA,iBAAiB,CAAC,mBAAmB,iEAAI,CAAC;oBAC1C,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE;wBAC3B,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;oBACH,8BAA8B;oBAC9B,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QAED,8BAA8B;QAC9B,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEhC,8CAA8C;QAC9C,mDAAmD;QACnD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAA,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE/B,+DAA+D;IAC/D,0DAA0D;AAC5D,CAAC,CAAA,CAAC;AAEF,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,7 @@
1
+ type Options = {
2
+ language: "typescript";
3
+ local?: number;
4
+ rootDir?: string;
5
+ };
6
+ declare const generateTypes: ({ language, local, rootDir }: Options) => Promise<void>;
7
+ export default generateTypes;