@cotestdev/ai-runner 0.0.3 → 0.0.5

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 (115) hide show
  1. package/dist/ai-runner/src/runner.d.ts +1 -0
  2. package/dist/ai-runner/src/runner.d.ts.map +1 -1
  3. package/dist/ai-runner/src/runner.js +9 -1
  4. package/dist/ai-runner/src/runner.js.map +1 -1
  5. package/package.json +6 -1
  6. package/dist/agents/heal-agent.d.ts +0 -30
  7. package/dist/agents/heal-agent.d.ts.map +0 -1
  8. package/dist/agents/heal-agent.js +0 -76
  9. package/dist/agents/heal-agent.js.map +0 -1
  10. package/dist/agents/healer.d.ts +0 -73
  11. package/dist/agents/healer.d.ts.map +0 -1
  12. package/dist/agents/healer.js +0 -538
  13. package/dist/agents/healer.js.map +0 -1
  14. package/dist/agents/tools/form.d.ts +0 -22
  15. package/dist/agents/tools/form.d.ts.map +0 -1
  16. package/dist/agents/tools/form.js +0 -134
  17. package/dist/agents/tools/form.js.map +0 -1
  18. package/dist/agents/tools/index.d.ts +0 -13
  19. package/dist/agents/tools/index.d.ts.map +0 -1
  20. package/dist/agents/tools/index.js +0 -33
  21. package/dist/agents/tools/index.js.map +0 -1
  22. package/dist/agents/tools/navigate.d.ts +0 -22
  23. package/dist/agents/tools/navigate.d.ts.map +0 -1
  24. package/dist/agents/tools/navigate.js +0 -74
  25. package/dist/agents/tools/navigate.js.map +0 -1
  26. package/dist/agents/tools/snapshot.d.ts +0 -22
  27. package/dist/agents/tools/snapshot.d.ts.map +0 -1
  28. package/dist/agents/tools/snapshot.js +0 -110
  29. package/dist/agents/tools/snapshot.js.map +0 -1
  30. package/dist/agents/tools/verify.d.ts +0 -34
  31. package/dist/agents/tools/verify.d.ts.map +0 -1
  32. package/dist/agents/tools/verify.js +0 -169
  33. package/dist/agents/tools/verify.js.map +0 -1
  34. package/dist/agents/tools/wait.d.ts +0 -22
  35. package/dist/agents/tools/wait.d.ts.map +0 -1
  36. package/dist/agents/tools/wait.js +0 -104
  37. package/dist/agents/tools/wait.js.map +0 -1
  38. package/dist/agents/types.d.ts +0 -51
  39. package/dist/agents/types.d.ts.map +0 -1
  40. package/dist/agents/types.js +0 -6
  41. package/dist/agents/types.js.map +0 -1
  42. package/dist/ai-runner/src/examples/test-final.d.ts +0 -6
  43. package/dist/ai-runner/src/examples/test-final.d.ts.map +0 -1
  44. package/dist/ai-runner/src/examples/test-final.js +0 -73
  45. package/dist/ai-runner/src/examples/test-final.js.map +0 -1
  46. package/dist/ai-runner/src/examples/test-simple-tools.d.ts +0 -6
  47. package/dist/ai-runner/src/examples/test-simple-tools.d.ts.map +0 -1
  48. package/dist/ai-runner/src/examples/test-simple-tools.js +0 -149
  49. package/dist/ai-runner/src/examples/test-simple-tools.js.map +0 -1
  50. package/dist/ai-runner/src/examples/test-working.d.ts +0 -5
  51. package/dist/ai-runner/src/examples/test-working.d.ts.map +0 -1
  52. package/dist/ai-runner/src/examples/test-working.js +0 -43
  53. package/dist/ai-runner/src/examples/test-working.js.map +0 -1
  54. package/dist/ai-runner/src/examples/v-test-backend-adapter.d.ts +0 -15
  55. package/dist/ai-runner/src/examples/v-test-backend-adapter.d.ts.map +0 -1
  56. package/dist/ai-runner/src/examples/v-test-backend-adapter.js +0 -240
  57. package/dist/ai-runner/src/examples/v-test-backend-adapter.js.map +0 -1
  58. package/dist/core/runner.d.ts +0 -194
  59. package/dist/core/runner.d.ts.map +0 -1
  60. package/dist/core/runner.js +0 -650
  61. package/dist/core/runner.js.map +0 -1
  62. package/dist/index.d.ts +0 -8
  63. package/dist/index.d.ts.map +0 -1
  64. package/dist/index.js +0 -11
  65. package/dist/index.js.map +0 -1
  66. package/dist/types/external.d.ts +0 -6
  67. package/dist/types/external.d.ts.map +0 -1
  68. package/dist/types/external.js +0 -7
  69. package/dist/types/external.js.map +0 -1
  70. package/dist/types/index.d.ts +0 -153
  71. package/dist/types/index.d.ts.map +0 -1
  72. package/dist/types/index.js +0 -26
  73. package/dist/types/index.js.map +0 -1
  74. package/docs/PLAYWRIGHT_MCP_ADAPTER.md +0 -132
  75. package/docs/SCHEMA_EXTRACTION.md +0 -224
  76. package/playwright-report/data/26c3117906b682c9086892b9834f119fdef0ca60.webm +0 -0
  77. package/playwright-report/data/534e0d700217810c792ffbaf34b2d4160992d0ec.md +0 -210
  78. package/playwright-report/data/56a09464231ba6c36c441f95019b40b9238c9da5.zip +0 -0
  79. package/playwright-report/data/9c6ffeb3926521c8a7b610e82e1b29d49e859932.png +0 -0
  80. package/playwright-report/index.html +0 -85
  81. package/playwright-report/trace/assets/codeMirrorModule-Bucv2d7q.js +0 -25
  82. package/playwright-report/trace/assets/defaultSettingsView-BEpdCv1S.js +0 -266
  83. package/playwright-report/trace/codeMirrorModule.C3UTv-Ge.css +0 -1
  84. package/playwright-report/trace/codicon.DCmgc-ay.ttf +0 -0
  85. package/playwright-report/trace/defaultSettingsView.ConWv5KN.css +0 -1
  86. package/playwright-report/trace/index.BxQ34UMZ.js +0 -2
  87. package/playwright-report/trace/index.C4Y3Aw8n.css +0 -1
  88. package/playwright-report/trace/index.html +0 -43
  89. package/playwright-report/trace/manifest.webmanifest +0 -16
  90. package/playwright-report/trace/playwright-logo.svg +0 -9
  91. package/playwright-report/trace/snapshot.html +0 -21
  92. package/playwright-report/trace/sw.bundle.js +0 -3
  93. package/playwright-report/trace/uiMode.BWTwXl41.js +0 -5
  94. package/playwright-report/trace/uiMode.Btcz36p_.css +0 -1
  95. package/playwright-report/trace/uiMode.html +0 -17
  96. package/playwright-report/trace/xtermModule.DYP7pi_n.css +0 -32
  97. package/playwright.config.ts +0 -38
  98. package/src/agents/logger.ts +0 -20
  99. package/src/agents/playwright-executor.ts +0 -252
  100. package/src/agents/tools/playwright-backend-adapter.ts +0 -134
  101. package/src/agents/tools/playwright-mcp-types.d.ts +0 -71
  102. package/src/agents/types.ts +0 -80
  103. package/src/index.ts +0 -27
  104. package/src/runner.ts +0 -214
  105. package/src/tools/index.ts +0 -48
  106. package/src/tools/playwright-groups.ts +0 -54
  107. package/src/types/external.ts +0 -7
  108. package/src/types/index.ts +0 -118
  109. package/test-results/.last-run.json +0 -6
  110. package/test-results/tests-agent-test-heal-agent-Register-user-1-chromium/error-context.md +0 -210
  111. package/test-results/tests-agent-test-heal-agent-Register-user-1-chromium/test-failed-1.png +0 -0
  112. package/test-results/tests-agent-test-heal-agent-Register-user-1-chromium/trace.zip +0 -0
  113. package/test-results/tests-agent-test-heal-agent-Register-user-1-chromium/video.webm +0 -0
  114. package/tests/agent/test-heal-agent.spec.ts +0 -54
  115. package/tsconfig.json +0 -26
@@ -1,240 +0,0 @@
1
- "use strict";
2
- /**
3
- * 全面测试 playwright-backend-adapter 的复杂工具能力
4
- *
5
- * 测试包括:
6
- * - browser_run_code - 运行 Playwright 代码片段
7
- * - browser_click - 点击元素
8
- * - browser_drag - 拖拽
9
- * - browser_take_screenshot - 截图
10
- * - browser_snapshot - 页面快照
11
- * - browser_fill_form - 填充表单
12
- * - browser_tabs - 标签页管理
13
- */
14
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- var desc = Object.getOwnPropertyDescriptor(m, k);
17
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
- desc = { enumerable: true, get: function() { return m[k]; } };
19
- }
20
- Object.defineProperty(o, k2, desc);
21
- }) : (function(o, m, k, k2) {
22
- if (k2 === undefined) k2 = k;
23
- o[k2] = m[k];
24
- }));
25
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
- Object.defineProperty(o, "default", { enumerable: true, value: v });
27
- }) : function(o, v) {
28
- o["default"] = v;
29
- });
30
- var __importStar = (this && this.__importStar) || (function () {
31
- var ownKeys = function(o) {
32
- ownKeys = Object.getOwnPropertyNames || function (o) {
33
- var ar = [];
34
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
- return ar;
36
- };
37
- return ownKeys(o);
38
- };
39
- return function (mod) {
40
- if (mod && mod.__esModule) return mod;
41
- var result = {};
42
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
- __setModuleDefault(result, mod);
44
- return result;
45
- };
46
- })();
47
- Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.testBackendAdapter = testBackendAdapter;
49
- const playwright_1 = require("playwright");
50
- const playwright_backend_adapter_1 = require("../agents/tools/playwright-backend-adapter");
51
- const fs = __importStar(require("fs"));
52
- const path = __importStar(require("path"));
53
- async function testBackendAdapter() {
54
- console.log('\n========================================');
55
- console.log('测试 Playwright Backend 复杂工具能力');
56
- console.log('========================================\n');
57
- const browser = await playwright_1.chromium.launch({ headless: true });
58
- const context = await browser.newContext();
59
- try {
60
- console.log('1. 创建 BrowserContext 并加载工具');
61
- const tools = await (0, playwright_backend_adapter_1.getPlaywrightBackendToolsFromContext)(context);
62
- console.log(`✓ 成功加载 ${tools.length} 个工具\n`);
63
- // ========================================================================
64
- // 测试 1: browser_navigate - 导航到测试页面
65
- // ========================================================================
66
- console.log('========================================');
67
- console.log('测试 1: 导航到测试页面');
68
- console.log('========================================');
69
- const navigateTool = tools.find((t) => t.name === 'browser_navigate');
70
- if (navigateTool) {
71
- const result = await navigateTool.func({ url: 'https://example.com' });
72
- console.log('✓ 导航结果:', JSON.stringify(result).substring(0, 150), '...\n');
73
- }
74
- // ========================================================================
75
- // 测试 2: browser_snapshot - 获取页面快照
76
- // ========================================================================
77
- console.log('========================================');
78
- console.log('测试 2: 页面快照');
79
- console.log('========================================');
80
- const snapshotTool = tools.find((t) => t.name === 'browser_snapshot');
81
- if (snapshotTool) {
82
- const result = await snapshotTool.func({});
83
- const snapshotText = typeof result === 'string' ? result : JSON.stringify(result);
84
- console.log('✓ 页面快照预览:');
85
- console.log(snapshotText.substring(0, 500), '...\n');
86
- }
87
- // ========================================================================
88
- // 测试 3: browser_run_code - 运行 Playwright 代码
89
- // ========================================================================
90
- console.log('========================================');
91
- console.log('测试 3: 运行 Playwright 代码片段');
92
- console.log('========================================');
93
- const runCodeTool = tools.find((t) => t.name === 'browser_run_code');
94
- if (runCodeTool) {
95
- const code = `
96
- // 获取页面标题
97
- const title = await page.title();
98
- // 获取页面 URL
99
- const url = page.url();
100
- return { title, url };
101
- `;
102
- const result = await runCodeTool.func({ code });
103
- console.log('✓ 运行代码结果:', result, '\n');
104
- }
105
- // ========================================================================
106
- // 测试 4: browser_take_screenshot - 截图
107
- // ========================================================================
108
- console.log('========================================');
109
- console.log('测试 4: 截图');
110
- console.log('========================================');
111
- const screenshotTool = tools.find((t) => t.name === 'browser_take_screenshot');
112
- if (screenshotTool) {
113
- const result = await screenshotTool.func({
114
- path: 'test-screenshot.png',
115
- fullPage: false
116
- });
117
- console.log('✓ 截图结果:', typeof result === 'string' ? result.substring(0, 200) : JSON.stringify(result).substring(0, 200), '...\n');
118
- // 检查文件是否创建
119
- const screenshotPath = path.join(process.cwd(), 'test-screenshot.png');
120
- if (fs.existsSync(screenshotPath)) {
121
- console.log('✓ 截图文件已创建:', screenshotPath);
122
- fs.unlinkSync(screenshotPath);
123
- console.log('✓ 清理截图文件完成\n');
124
- }
125
- }
126
- // ========================================================================
127
- // 测试 5: browser_click - 点击元素
128
- // ========================================================================
129
- console.log('========================================');
130
- console.log('测试 5: 点击元素');
131
- console.log('========================================');
132
- const clickTool = tools.find((t) => t.name === 'browser_click');
133
- if (clickTool) {
134
- const result = await clickTool.func({
135
- selector: 'a',
136
- waitForNavigation: false
137
- });
138
- console.log('✓ 点击结果:', typeof result === 'string' ? result.substring(0, 300) : JSON.stringify(result).substring(0, 300), '...\n');
139
- }
140
- // ========================================================================
141
- // 测试 6: browser_tabs - 标签页管理
142
- // ========================================================================
143
- console.log('========================================');
144
- console.log('测试 6: 标签页管理');
145
- console.log('========================================');
146
- const tabsTool = tools.find((t) => t.name === 'browser_tabs');
147
- if (tabsTool) {
148
- // 列出所有标签页
149
- const listResult = await tabsTool.func({ action: 'list' });
150
- console.log('✓ 列出标签页:', typeof listResult === 'string' ? listResult.substring(0, 300) : JSON.stringify(listResult).substring(0, 300), '...\n');
151
- }
152
- // ========================================================================
153
- // 测试 7: browser_verify_text_visible - 验证文本可见
154
- // ========================================================================
155
- console.log('========================================');
156
- console.log('测试 7: 验证文本可见');
157
- console.log('========================================');
158
- const verifyTextTool = tools.find((t) => t.name === 'browser_verify_text_visible');
159
- if (verifyTextTool) {
160
- const result = await verifyTextTool.func({
161
- text: 'Example Domain',
162
- state: 'visible'
163
- });
164
- console.log('✓ 验证文本结果:', typeof result === 'string' ? result.substring(0, 200) : JSON.stringify(result).substring(0, 200), '...\n');
165
- }
166
- // ========================================================================
167
- // 测试 8: browser_evaluate - 执行 JavaScript
168
- // ========================================================================
169
- console.log('========================================');
170
- console.log('测试 8: 执行 JavaScript');
171
- console.log('========================================');
172
- const evaluateTool = tools.find((t) => t.name === 'browser_evaluate');
173
- if (evaluateTool) {
174
- const result = await evaluateTool.func({
175
- expression: 'document.title',
176
- selector: undefined
177
- });
178
- console.log('✓ 执行 JS 结果:', result, '\n');
179
- }
180
- // ========================================================================
181
- // 测试 9: browser_type - 输入文本
182
- // ========================================================================
183
- console.log('========================================');
184
- console.log('测试 9: 输入文本');
185
- console.log('========================================');
186
- const typeTool = tools.find((t) => t.name === 'browser_type');
187
- if (typeTool) {
188
- // 先导航回 example.com
189
- await navigateTool?.func({ url: 'https://example.com' });
190
- const result = await typeTool.func({
191
- selector: 'body',
192
- text: 'Test input'
193
- });
194
- console.log('✓ 输入结果:', typeof result === 'string' ? result.substring(0, 200) : JSON.stringify(result).substring(0, 200), '...\n');
195
- }
196
- // ========================================================================
197
- // 测试 10: browser_wait_for - 等待
198
- // ========================================================================
199
- console.log('========================================');
200
- console.log('测试 10: 等待');
201
- console.log('========================================');
202
- const waitForTool = tools.find((t) => t.name === 'browser_wait_for');
203
- if (waitForTool) {
204
- const startTime = Date.now();
205
- const result = await waitForTool.func({
206
- time: 1000
207
- });
208
- const duration = Date.now() - startTime;
209
- console.log(`✓ 等待结果 (${duration}ms):`, typeof result === 'string' ? result.substring(0, 200) : JSON.stringify(result).substring(0, 200), '...\n');
210
- }
211
- console.log('========================================');
212
- console.log('✓ 所有复杂工具测试完成!');
213
- console.log('========================================');
214
- console.log('\n测试总结:');
215
- console.log(' ✓ browser_navigate - 导航');
216
- console.log(' ✓ browser_snapshot - 页面快照');
217
- console.log(' ✓ browser_run_code - 运行代码');
218
- console.log(' ✓ browser_take_screenshot - 截图');
219
- console.log(' ✓ browser_click - 点击元素');
220
- console.log(' ✓ browser_tabs - 标签页管理');
221
- console.log(' ✓ browser_verify_text_visible - 验证文本');
222
- console.log(' ✓ browser_evaluate - 执行 JavaScript');
223
- console.log(' ✓ browser_type - 输入文本');
224
- console.log(' ✓ browser_wait_for - 等待');
225
- console.log('\n');
226
- }
227
- catch (error) {
228
- console.error('✗ 测试失败:', error);
229
- throw error;
230
- }
231
- finally {
232
- await context.close();
233
- await browser.close();
234
- }
235
- }
236
- // 运行测试
237
- if (require.main === module) {
238
- testBackendAdapter().catch(console.error);
239
- }
240
- //# sourceMappingURL=v-test-backend-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v-test-backend-adapter.js","sourceRoot":"","sources":["../../../../src/examples/v-test-backend-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,194 +0,0 @@
1
- /**
2
- * Runner 核心类 (MVP + Agent)
3
- * 实现 AI 驱动的测试运行逻辑,包括自愈和其他 AI 能力
4
- */
5
- import type { AIHealConfig, RunStepOptions, HealContext, HealSummary } from '../types';
6
- import type { ModelConfig } from '../types/external';
7
- /**
8
- * Runner - AI 驱动的测试运行器
9
- * 支持自愈、变量管理和其他 AI 增强功能
10
- */
11
- export declare class Runner {
12
- private config;
13
- private originalScript;
14
- private healContexts;
15
- private agent;
16
- private modelConfig?;
17
- private modelConfigReady;
18
- private storageService;
19
- private vars;
20
- private constructor();
21
- /**
22
- * 创建 Runner 实例(主要工厂方法)
23
- *
24
- * @param config - Runner 配置
25
- * @returns Runner 实例
26
- *
27
- * @example
28
- * ```typescript
29
- * const runner = Runner.to({
30
- * modelConfigId: 'your-model-config-id',
31
- * projectId: 'project-123',
32
- * testCaseId: 'test-456'
33
- * });
34
- * ```
35
- */
36
- static to(config: AIHealConfig): Runner;
37
- /**
38
- * 从脚本内容创建 Runner 实例
39
- *
40
- * @param scriptContent - 测试脚本内容
41
- * @param config - 其他配置选项
42
- * @returns Runner 实例
43
- *
44
- * @example
45
- * ```typescript
46
- * const runner = Runner.fromScript(`
47
- * test('example', async ({ page }) => {
48
- * await page.goto('https://example.com');
49
- * });
50
- * `, {
51
- * modelConfigId: 'your-model-config-id'
52
- * });
53
- * ```
54
- */
55
- static fromScript(scriptContent: string, config: AIHealConfig): Runner;
56
- /**
57
- * 从数据库中的测试用例创建 Runner 实例
58
- *
59
- * @param projectId - 项目 ID
60
- * @param testCaseId - 测试用例 ID
61
- * @param config - 其他配置选项
62
- * @returns Runner 实例
63
- *
64
- * @example
65
- * ```typescript
66
- * const runner = Runner.fromTestCase('project-123', 'test-456', {
67
- * modelConfigId: 'your-model-config-id'
68
- * });
69
- * ```
70
- */
71
- static NewInstance(projectId: string, testCaseId: string, config: AIHealConfig): Runner;
72
- /**
73
- * 创建带调试模式的 Runner 实例
74
- *
75
- * @param config - Runner 配置
76
- * @returns Runner 实例
77
- *
78
- * @example
79
- * ```typescript
80
- * const runner = Runner.debug({
81
- * modelConfigId: 'your-model-config-id'
82
- * });
83
- * ```
84
- */
85
- static debug(config: AIHealConfig): Runner;
86
- /**
87
- * 加载原始脚本(优先从数据库)- 同步方法
88
- */
89
- private loadOriginalScript;
90
- /**
91
- * 初始化 Agent(异步加载模型配置)
92
- * 优先级:1. 传入的 modelConfigId 2. 加载 isDefault=true 的配置 3. 加载第一个可用配置
93
- */
94
- private initializeAgent;
95
- /**
96
- * 执行一个可能需要自愈的步骤
97
- *
98
- * @param options - 步骤选项
99
- * @param fn - 要执行的函数
100
- * @returns 函数执行结果
101
- */
102
- runStep<T>(options: RunStepOptions, fn: () => Promise<T>): Promise<T>;
103
- /**
104
- * 结束清理自愈过程内容
105
- *
106
- * @returns 自愈摘要信息
107
- */
108
- stop(): Promise<HealSummary>;
109
- /**
110
- * 捕获变量当前值
111
- */
112
- private captureVariables;
113
- /**
114
- * 获取原始脚本
115
- */
116
- getOriginalScript(): string;
117
- /**
118
- * 获取所有自愈上下文
119
- */
120
- getHealContexts(): HealContext[];
121
- /**
122
- * 手动设置模型配置(替代通过 modelConfigId 加载)
123
- *
124
- * @param modelConfig - 模型配置对象
125
- */
126
- setModelConfig(modelConfig: ModelConfig): void;
127
- /**
128
- * 获取当前使用的模型配置
129
- */
130
- getModelConfig(): ModelConfig | undefined;
131
- /**
132
- * 使用 LLM 生成修复后的脚本
133
- */
134
- private generateModifiedScript;
135
- /**
136
- * 创建 LLM 实例
137
- */
138
- private createLLM;
139
- /**
140
- * 构建系统提示
141
- */
142
- private buildSystemPrompt;
143
- /**
144
- * 构建用户消息
145
- */
146
- private buildUserMessage;
147
- /**
148
- * 保存或打印脚本
149
- */
150
- private saveOrPrintScript;
151
- /**
152
- * 打印修复后的脚本
153
- */
154
- private printScript;
155
- /**
156
- * 设置变量值
157
- * @param key 变量名
158
- * @param value 变量值
159
- */
160
- set(key: string, value: any): void;
161
- /**
162
- * 获取变量值
163
- * @param key 变量名
164
- * @returns 变量值,如果不存在则返回 undefined
165
- */
166
- get(key: string): any;
167
- /**
168
- * 检查变量是否存在
169
- * @param key 变量名
170
- * @returns 是否存在
171
- */
172
- has(key: string): boolean;
173
- /**
174
- * 删除变量
175
- * @param key 变量名
176
- * @returns 是否删除成功
177
- */
178
- delete(key: string): boolean;
179
- /**
180
- * 清空所有变量
181
- */
182
- clear(): void;
183
- /**
184
- * 获取所有变量名
185
- * @returns 所有变量的键数组
186
- */
187
- keys(): string[];
188
- /**
189
- * 获取所有变量
190
- * @returns 包含所有键值对的对象
191
- */
192
- getAll(): Record<string, any>;
193
- }
194
- //# sourceMappingURL=runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAEd,WAAW,EACX,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,IAAI,CAA+B;IAE3C,OAAO;IA0BP;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAIvC;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAOtE;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAQvF;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAW1C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkC1B;;;OAGG;YACW,eAAe;IAwE7B;;;;;;OAMG;IACG,OAAO,CAAC,CAAC,EACb,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC;IAwFb;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IA4DlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAc9C;;OAEG;IACH,cAAc,IAAI,WAAW,GAAG,SAAS;IAIzC;;OAEG;YACW,sBAAsB;IA0BpC;;OAEG;IACH,OAAO,CAAC,SAAS;IA8BjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8DxB;;OAEG;YACW,iBAAiB;IAsB/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAOlC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAQrB;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;;OAGG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;;OAGG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAG9B"}