@aiscene/aiserver 2.0.3 → 2.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.
- package/dist/config/cli.d.ts +24 -0
- package/dist/config/cli.d.ts.map +1 -1
- package/dist/config/cli.js +96 -0
- package/dist/config/cli.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +20 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +12 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/executor/ios-wda-manager.d.ts +21 -0
- package/dist/executor/ios-wda-manager.d.ts.map +1 -0
- package/dist/executor/ios-wda-manager.js +333 -0
- package/dist/executor/ios-wda-manager.js.map +1 -0
- package/dist/goose-runtime/git.d.ts +4 -0
- package/dist/goose-runtime/git.d.ts.map +1 -0
- package/dist/goose-runtime/git.js +63 -0
- package/dist/goose-runtime/git.js.map +1 -0
- package/dist/goose-runtime/runtime.d.ts +5 -0
- package/dist/goose-runtime/runtime.d.ts.map +1 -0
- package/dist/goose-runtime/runtime.js +141 -0
- package/dist/goose-runtime/runtime.js.map +1 -0
- package/dist/goose-runtime/types.d.ts +23 -0
- package/dist/goose-runtime/types.d.ts.map +1 -0
- package/dist/goose-runtime/types.js +2 -0
- package/dist/goose-runtime/types.js.map +1 -0
- package/dist/goose-runtime/workspace.d.ts +23 -0
- package/dist/goose-runtime/workspace.d.ts.map +1 -0
- package/dist/goose-runtime/workspace.js +200 -0
- package/dist/goose-runtime/workspace.js.map +1 -0
- package/dist/task/guada-online-batch-poller.d.ts +0 -10
- package/dist/task/guada-online-batch-poller.d.ts.map +1 -1
- package/dist/task/guada-online-batch-poller.js +8 -137
- package/dist/task/guada-online-batch-poller.js.map +1 -1
- package/dist/task/scheduler.d.ts +5 -0
- package/dist/task/scheduler.d.ts.map +1 -1
- package/dist/task/scheduler.js +179 -84
- package/dist/task/scheduler.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +10 -23
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const GOOSE_RUNTIME_IGNORED_NAMES: Set<string>;
|
|
2
|
+
export declare const GOOSE_RUNTIME_SENSITIVE_NAMES: Set<string>;
|
|
3
|
+
export declare const DEFAULT_GOOSE_WORKSPACE_ROOT: string;
|
|
4
|
+
export declare const MAX_TREE_ENTRIES = 500;
|
|
5
|
+
export declare const MAX_FILE_BYTES: number;
|
|
6
|
+
export declare const MAX_FILE_CHARS = 240000;
|
|
7
|
+
export declare const MAX_SEARCH_RESULTS = 200;
|
|
8
|
+
export declare const MAX_COMMAND_OUTPUT_CHARS = 120000;
|
|
9
|
+
export declare function isPathInside(parent: string, child: string): boolean;
|
|
10
|
+
export declare function isIgnoredName(name: string): boolean;
|
|
11
|
+
export declare function isSensitiveName(name: string): boolean;
|
|
12
|
+
export declare function resolveWorkspaceRoot(rawPath: unknown): Promise<string>;
|
|
13
|
+
export declare function resolveWorkspaceTarget(root: string, rawTarget: unknown): Promise<string>;
|
|
14
|
+
export declare function resolveWritableTarget(root: string, rawTarget: unknown): Promise<string>;
|
|
15
|
+
export declare function truncateText(text: string, maxChars?: number): {
|
|
16
|
+
text: string;
|
|
17
|
+
truncated: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function assertSafeFile(filePath: string, action: string): void;
|
|
20
|
+
export declare function assertSafeCommand(command: string): void;
|
|
21
|
+
export declare function listDirectory(root: string, dirPath: string, depth?: number): Promise<any[]>;
|
|
22
|
+
export declare function searchText(root: string, searchRoot: string, query: string, maxResults: number): Promise<any>;
|
|
23
|
+
//# sourceMappingURL=workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/goose-runtime/workspace.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,2BAA2B,aAGtC,CAAC;AAEH,eAAO,MAAM,6BAA6B,aAGxC,CAAC;AAEH,eAAO,MAAM,4BAA4B,QAAoD,CAAC;AAC9F,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,cAAc,QAAc,CAAC;AAC1C,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAW/C,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ5E;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAO9F;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ7F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAA2B,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAGpH;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIvD;AA2BD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAU5F;AAgCD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAoBlH"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { execFile } from 'child_process';
|
|
5
|
+
import { promisify } from 'util';
|
|
6
|
+
const execFileAsync = promisify(execFile);
|
|
7
|
+
export const GOOSE_RUNTIME_IGNORED_NAMES = new Set([
|
|
8
|
+
'.git', '.hg', '.svn', 'node_modules', 'dist', 'build', 'coverage',
|
|
9
|
+
'.next', '.nuxt', '.turbo', '.cache', '.idea', '.vscode',
|
|
10
|
+
]);
|
|
11
|
+
export const GOOSE_RUNTIME_SENSITIVE_NAMES = new Set([
|
|
12
|
+
'.env', '.env.local', '.env.development', '.env.production', '.npmrc', '.yarnrc',
|
|
13
|
+
'id_rsa', 'id_dsa', 'id_ecdsa', 'id_ed25519',
|
|
14
|
+
]);
|
|
15
|
+
export const DEFAULT_GOOSE_WORKSPACE_ROOT = path.join(os.tmpdir(), 'guada-ai-code-workspace');
|
|
16
|
+
export const MAX_TREE_ENTRIES = 500;
|
|
17
|
+
export const MAX_FILE_BYTES = 1024 * 1024;
|
|
18
|
+
export const MAX_FILE_CHARS = 240000;
|
|
19
|
+
export const MAX_SEARCH_RESULTS = 200;
|
|
20
|
+
export const MAX_COMMAND_OUTPUT_CHARS = 120000;
|
|
21
|
+
const BLOCKED_COMMANDS = [
|
|
22
|
+
/\brm\s+-rf\s+\/\b/,
|
|
23
|
+
/\bsudo\b/,
|
|
24
|
+
/\bshutdown\b/,
|
|
25
|
+
/\breboot\b/,
|
|
26
|
+
/\bmkfs\b/,
|
|
27
|
+
/\bdiskutil\b/,
|
|
28
|
+
];
|
|
29
|
+
export function isPathInside(parent, child) {
|
|
30
|
+
const relative = path.relative(parent, child);
|
|
31
|
+
return relative === '' || (!!relative && !relative.startsWith('..') && !path.isAbsolute(relative));
|
|
32
|
+
}
|
|
33
|
+
export function isIgnoredName(name) {
|
|
34
|
+
return GOOSE_RUNTIME_IGNORED_NAMES.has(name);
|
|
35
|
+
}
|
|
36
|
+
export function isSensitiveName(name) {
|
|
37
|
+
const lowerName = name.toLowerCase();
|
|
38
|
+
return GOOSE_RUNTIME_SENSITIVE_NAMES.has(lowerName) || lowerName.endsWith('.pem') || lowerName.endsWith('.key');
|
|
39
|
+
}
|
|
40
|
+
export async function resolveWorkspaceRoot(rawPath) {
|
|
41
|
+
const rootPath = typeof rawPath === 'string' ? rawPath.trim() : '';
|
|
42
|
+
if (!rootPath)
|
|
43
|
+
throw new Error('缺少本地工作目录路径');
|
|
44
|
+
if (!path.isAbsolute(rootPath))
|
|
45
|
+
throw new Error('本地工作目录必须是绝对路径');
|
|
46
|
+
const realRoot = await fs.promises.realpath(path.resolve(rootPath));
|
|
47
|
+
const stat = await fs.promises.stat(realRoot);
|
|
48
|
+
if (!stat.isDirectory())
|
|
49
|
+
throw new Error('本地工作目录不是文件夹');
|
|
50
|
+
return realRoot;
|
|
51
|
+
}
|
|
52
|
+
export async function resolveWorkspaceTarget(root, rawTarget) {
|
|
53
|
+
const targetText = typeof rawTarget === 'string' && rawTarget.trim() ? rawTarget.trim() : root;
|
|
54
|
+
const resolved = path.resolve(path.isAbsolute(targetText) ? targetText : path.join(root, targetText));
|
|
55
|
+
if (!isPathInside(root, resolved))
|
|
56
|
+
throw new Error('目标路径不在本地工作目录内');
|
|
57
|
+
const realTarget = await fs.promises.realpath(resolved);
|
|
58
|
+
if (!isPathInside(root, realTarget))
|
|
59
|
+
throw new Error('目标路径指向工作目录外部');
|
|
60
|
+
return realTarget;
|
|
61
|
+
}
|
|
62
|
+
export async function resolveWritableTarget(root, rawTarget) {
|
|
63
|
+
const targetText = typeof rawTarget === 'string' && rawTarget.trim() ? rawTarget.trim() : '';
|
|
64
|
+
if (!targetText)
|
|
65
|
+
throw new Error('缺少目标文件路径');
|
|
66
|
+
const resolved = path.resolve(path.isAbsolute(targetText) ? targetText : path.join(root, targetText));
|
|
67
|
+
if (!isPathInside(root, resolved))
|
|
68
|
+
throw new Error('目标路径不在本地工作目录内');
|
|
69
|
+
const parentDir = await fs.promises.realpath(path.dirname(resolved));
|
|
70
|
+
if (!isPathInside(root, parentDir))
|
|
71
|
+
throw new Error('目标路径指向工作目录外部');
|
|
72
|
+
return resolved;
|
|
73
|
+
}
|
|
74
|
+
export function truncateText(text, maxChars = MAX_COMMAND_OUTPUT_CHARS) {
|
|
75
|
+
if (text.length <= maxChars)
|
|
76
|
+
return { text, truncated: false };
|
|
77
|
+
return { text: text.slice(0, maxChars), truncated: true };
|
|
78
|
+
}
|
|
79
|
+
export function assertSafeFile(filePath, action) {
|
|
80
|
+
if (isSensitiveName(path.basename(filePath)))
|
|
81
|
+
throw new Error(`敏感文件不允许通过 Goose Runtime ${action}`);
|
|
82
|
+
}
|
|
83
|
+
export function assertSafeCommand(command) {
|
|
84
|
+
const normalized = command.trim();
|
|
85
|
+
if (!normalized)
|
|
86
|
+
throw new Error('缺少要执行的命令');
|
|
87
|
+
if (BLOCKED_COMMANDS.some((pattern) => pattern.test(normalized)))
|
|
88
|
+
throw new Error('该命令风险过高,已被本地 Goose Runtime 拦截');
|
|
89
|
+
}
|
|
90
|
+
async function hasVisibleChildren(dirPath) {
|
|
91
|
+
try {
|
|
92
|
+
const entries = await fs.promises.readdir(dirPath, { withFileTypes: true });
|
|
93
|
+
return entries.some((entry) => !isIgnoredName(entry.name) && !isSensitiveName(entry.name));
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async function buildNode(entryPath, root, depth) {
|
|
100
|
+
const stat = await fs.promises.lstat(entryPath);
|
|
101
|
+
const isDirectory = stat.isDirectory();
|
|
102
|
+
const node = {
|
|
103
|
+
name: path.basename(entryPath),
|
|
104
|
+
path: entryPath,
|
|
105
|
+
relativePath: path.relative(root, entryPath) || '.',
|
|
106
|
+
isDirectory,
|
|
107
|
+
size: stat.size,
|
|
108
|
+
modifiedAt: stat.mtime.toISOString(),
|
|
109
|
+
hasChildren: isDirectory ? await hasVisibleChildren(entryPath) : false,
|
|
110
|
+
};
|
|
111
|
+
if (isDirectory && depth > 0)
|
|
112
|
+
node.children = await listDirectory(root, entryPath, depth - 1);
|
|
113
|
+
return node;
|
|
114
|
+
}
|
|
115
|
+
export async function listDirectory(root, dirPath, depth = 0) {
|
|
116
|
+
const entries = await fs.promises.readdir(dirPath, { withFileTypes: true });
|
|
117
|
+
const visibleEntries = entries
|
|
118
|
+
.filter((entry) => !isIgnoredName(entry.name) && !isSensitiveName(entry.name))
|
|
119
|
+
.sort((a, b) => {
|
|
120
|
+
if (a.isDirectory() !== b.isDirectory())
|
|
121
|
+
return a.isDirectory() ? -1 : 1;
|
|
122
|
+
return a.name.localeCompare(b.name, 'zh-Hans-CN');
|
|
123
|
+
})
|
|
124
|
+
.slice(0, MAX_TREE_ENTRIES);
|
|
125
|
+
return Promise.all(visibleEntries.map((entry) => buildNode(path.join(dirPath, entry.name), root, depth)));
|
|
126
|
+
}
|
|
127
|
+
async function searchWithNode(root, searchRoot, query, maxResults) {
|
|
128
|
+
const results = [];
|
|
129
|
+
const queue = [searchRoot];
|
|
130
|
+
const lowerQuery = query.toLowerCase();
|
|
131
|
+
while (queue.length > 0 && results.length < maxResults) {
|
|
132
|
+
const current = queue.shift();
|
|
133
|
+
let entries;
|
|
134
|
+
try {
|
|
135
|
+
entries = await fs.promises.readdir(current, { withFileTypes: true });
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
for (const entry of entries) {
|
|
141
|
+
if (results.length >= maxResults)
|
|
142
|
+
break;
|
|
143
|
+
if (isIgnoredName(entry.name) || isSensitiveName(entry.name))
|
|
144
|
+
continue;
|
|
145
|
+
const entryPath = path.join(current, entry.name);
|
|
146
|
+
if (entry.isDirectory()) {
|
|
147
|
+
queue.push(entryPath);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
if (!entry.isFile())
|
|
151
|
+
continue;
|
|
152
|
+
let buffer;
|
|
153
|
+
try {
|
|
154
|
+
buffer = await fs.promises.readFile(entryPath);
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
if (buffer.length > MAX_FILE_BYTES)
|
|
160
|
+
continue;
|
|
161
|
+
const text = buffer.toString('utf8');
|
|
162
|
+
if (text.includes('\u0000'))
|
|
163
|
+
continue;
|
|
164
|
+
const lines = text.split(/\r?\n/);
|
|
165
|
+
for (let index = 0; index < lines.length && results.length < maxResults; index += 1) {
|
|
166
|
+
const line = lines[index];
|
|
167
|
+
if (!line.toLowerCase().includes(lowerQuery))
|
|
168
|
+
continue;
|
|
169
|
+
results.push({ filePath: entryPath, relativePath: path.relative(root, entryPath), lineNumber: index + 1, line: line.slice(0, 1000) });
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return results;
|
|
174
|
+
}
|
|
175
|
+
export async function searchText(root, searchRoot, query, maxResults) {
|
|
176
|
+
if (!query.trim())
|
|
177
|
+
throw new Error('缺少搜索关键词');
|
|
178
|
+
try {
|
|
179
|
+
const { stdout } = await execFileAsync('rg', [
|
|
180
|
+
'--line-number', '--no-heading', '--color', 'never', '--hidden',
|
|
181
|
+
'--glob', '!.git', '--glob', '!node_modules', '--glob', '!dist', '--glob', '!build',
|
|
182
|
+
'--', query, searchRoot,
|
|
183
|
+
], { cwd: root, timeout: 15000, maxBuffer: 4 * 1024 * 1024 });
|
|
184
|
+
const results = String(stdout || '').split('\n').filter(Boolean).slice(0, maxResults).map((line) => {
|
|
185
|
+
const match = line.match(/^(.*?):(\d+):(.*)$/);
|
|
186
|
+
if (!match)
|
|
187
|
+
return { raw: line };
|
|
188
|
+
const filePath = path.resolve(match[1]);
|
|
189
|
+
return { filePath, relativePath: path.relative(root, filePath), lineNumber: Number(match[2]), line: match[3] };
|
|
190
|
+
});
|
|
191
|
+
return { root, searchRoot, query, results, truncated: results.length >= maxResults };
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (error?.code === 1)
|
|
195
|
+
return { root, searchRoot, query, results: [], truncated: false };
|
|
196
|
+
const results = await searchWithNode(root, searchRoot, query, maxResults);
|
|
197
|
+
return { root, searchRoot, query, results, truncated: results.length >= maxResults };
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/goose-runtime/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,19 +15,9 @@ export declare class GuadaOnlineBatchPoller {
|
|
|
15
15
|
start(config: TaskConfig, runner: BatchRunner): void;
|
|
16
16
|
stop(): void;
|
|
17
17
|
private poll;
|
|
18
|
-
private runClaimedTask;
|
|
19
18
|
private claimNextTask;
|
|
20
19
|
private logEmptyPoll;
|
|
21
20
|
private getGuadaApiBase;
|
|
22
|
-
private isAppBatch;
|
|
23
|
-
private resolveBatchDeviceId;
|
|
24
|
-
private getDeviceOccupancyApiBase;
|
|
25
|
-
private buildDeviceOccupancyPayload;
|
|
26
|
-
private occupyDeviceForBatch;
|
|
27
|
-
private releaseDeviceForBatch;
|
|
28
|
-
private failClaimedBatch;
|
|
29
|
-
private buildCallbackHeaders;
|
|
30
|
-
private formatAxiosError;
|
|
31
21
|
}
|
|
32
22
|
export declare const guadaOnlineBatchPoller: GuadaOnlineBatchPoller;
|
|
33
23
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guada-online-batch-poller.d.ts","sourceRoot":"","sources":["../../src/task/guada-online-batch-poller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAM5D,KAAK,WAAW,GAAG;IACjB,0BAA0B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/E,CAAC;
|
|
1
|
+
{"version":3,"file":"guada-online-batch-poller.d.ts","sourceRoot":"","sources":["../../src/task/guada-online-batch-poller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAM5D,KAAK,WAAW,GAAG;IACjB,0BAA0B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/E,CAAC;AAmBF,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAK;IAE3B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAyBpD,IAAI,IAAI,IAAI;YAQE,IAAI;YA+BJ,aAAa;IAyC3B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;CAUxB;AAED,eAAO,MAAM,sBAAsB,wBAA+B,CAAC"}
|
|
@@ -76,7 +76,14 @@ export class GuadaOnlineBatchPoller {
|
|
|
76
76
|
return;
|
|
77
77
|
this.activeBatchIds.add(task.batchId);
|
|
78
78
|
logger.info(`Claimed Guada online batch: ${task.batchId}, platform=${task.platform}, cases=${task.cases.length}`);
|
|
79
|
-
|
|
79
|
+
Promise.resolve(this.runner.runBatchActionInBackground(task))
|
|
80
|
+
.catch((error) => {
|
|
81
|
+
logger.error(`Guada online batch failed: batchId=${task.batchId}, error=${error.message}`);
|
|
82
|
+
})
|
|
83
|
+
.finally(() => {
|
|
84
|
+
this.activeBatchIds.delete(task.batchId);
|
|
85
|
+
logger.info(`Guada online batch finished locally: ${task.batchId}`);
|
|
86
|
+
});
|
|
80
87
|
}
|
|
81
88
|
catch (error) {
|
|
82
89
|
logger.warn(`Guada online batch poll error: ${error.message}`);
|
|
@@ -85,31 +92,6 @@ export class GuadaOnlineBatchPoller {
|
|
|
85
92
|
this.polling = false;
|
|
86
93
|
}
|
|
87
94
|
}
|
|
88
|
-
async runClaimedTask(task) {
|
|
89
|
-
let occupancy = null;
|
|
90
|
-
try {
|
|
91
|
-
occupancy = await this.occupyDeviceForBatch(task);
|
|
92
|
-
await Promise.resolve(this.runner.runBatchActionInBackground(task));
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
const message = error.message || String(error);
|
|
96
|
-
logger.error(`Guada online batch failed: batchId=${task.batchId}, error=${message}`);
|
|
97
|
-
if (!occupancy && this.isAppBatch(task)) {
|
|
98
|
-
await this.failClaimedBatch(task, message);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
try {
|
|
103
|
-
if (occupancy) {
|
|
104
|
-
await this.releaseDeviceForBatch(task, occupancy.deviceId);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
finally {
|
|
108
|
-
this.activeBatchIds.delete(task.batchId);
|
|
109
|
-
logger.info(`Guada online batch finished locally: ${task.batchId}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
95
|
async claimNextTask() {
|
|
114
96
|
const apiBase = this.getGuadaApiBase(this.config);
|
|
115
97
|
if (!apiBase)
|
|
@@ -165,117 +147,6 @@ export class GuadaOnlineBatchPoller {
|
|
|
165
147
|
const base = trimRightSlash(raw);
|
|
166
148
|
return base.endsWith('/api/v1') ? base : `${base}/api/v1`;
|
|
167
149
|
}
|
|
168
|
-
isAppBatch(task) {
|
|
169
|
-
return task.platform === 'android' || task.platform === 'ios';
|
|
170
|
-
}
|
|
171
|
-
resolveBatchDeviceId(task) {
|
|
172
|
-
const batchDeviceId = task.deviceId?.trim();
|
|
173
|
-
if (batchDeviceId)
|
|
174
|
-
return batchDeviceId;
|
|
175
|
-
for (const tc of task.cases || []) {
|
|
176
|
-
const caseDeviceId = tc.deviceId?.trim();
|
|
177
|
-
if (caseDeviceId)
|
|
178
|
-
return caseDeviceId;
|
|
179
|
-
}
|
|
180
|
-
return '';
|
|
181
|
-
}
|
|
182
|
-
getDeviceOccupancyApiBase() {
|
|
183
|
-
const raw = process.env.GUADA_DEVICE_OCCUPANCY_API_BASE_URL ||
|
|
184
|
-
process.env.NETHP_TEST_API_BASE_URL ||
|
|
185
|
-
this.config?.apiUrl ||
|
|
186
|
-
'http://opentestai.jd.com';
|
|
187
|
-
return trimRightSlash(raw);
|
|
188
|
-
}
|
|
189
|
-
buildDeviceOccupancyPayload(task) {
|
|
190
|
-
return {
|
|
191
|
-
taskType: 'TASK',
|
|
192
|
-
occupiedBy: 'TASK',
|
|
193
|
-
occupantId: task.batchId,
|
|
194
|
-
batchId: task.batchId,
|
|
195
|
-
taskName: `Guada online batch ${task.batchId}`,
|
|
196
|
-
source: 'guada-online-batch',
|
|
197
|
-
nodeId: this.config.nodeId,
|
|
198
|
-
platform: task.platform,
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
async occupyDeviceForBatch(task) {
|
|
202
|
-
if (!this.isAppBatch(task))
|
|
203
|
-
return null;
|
|
204
|
-
const deviceId = this.resolveBatchDeviceId(task);
|
|
205
|
-
if (!deviceId) {
|
|
206
|
-
throw new Error('Guada在线App任务缺少deviceId,无法占用设备');
|
|
207
|
-
}
|
|
208
|
-
const apiBase = this.getDeviceOccupancyApiBase();
|
|
209
|
-
const url = `${apiBase}/rest/mobile-devices/${encodeURIComponent(deviceId)}/occupy`;
|
|
210
|
-
try {
|
|
211
|
-
await axios.post(url, this.buildDeviceOccupancyPayload(task), {
|
|
212
|
-
timeout: 10000,
|
|
213
|
-
headers: { 'Content-Type': 'application/json' },
|
|
214
|
-
});
|
|
215
|
-
logger.info(`Guada online batch occupied device: batchId=${task.batchId}, deviceId=${deviceId}, url=${url}`);
|
|
216
|
-
return { deviceId };
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
throw new Error(`占用在线设备失败: deviceId=${deviceId}, ${this.formatAxiosError(error)}`);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
async releaseDeviceForBatch(task, deviceId) {
|
|
223
|
-
const apiBase = this.getDeviceOccupancyApiBase();
|
|
224
|
-
const url = `${apiBase}/rest/mobile-devices/${encodeURIComponent(deviceId)}/release`;
|
|
225
|
-
try {
|
|
226
|
-
await axios.post(url, this.buildDeviceOccupancyPayload(task), {
|
|
227
|
-
timeout: 10000,
|
|
228
|
-
headers: { 'Content-Type': 'application/json' },
|
|
229
|
-
});
|
|
230
|
-
logger.info(`Guada online batch released device: batchId=${task.batchId}, deviceId=${deviceId}, url=${url}`);
|
|
231
|
-
}
|
|
232
|
-
catch (error) {
|
|
233
|
-
logger.warn(`Guada online batch release device failed: batchId=${task.batchId}, deviceId=${deviceId}, error=${this.formatAxiosError(error)}`);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
async failClaimedBatch(task, errorMessage) {
|
|
237
|
-
const callbackBaseUrl = task.callback?.baseUrl?.trim();
|
|
238
|
-
if (!callbackBaseUrl)
|
|
239
|
-
return;
|
|
240
|
-
const url = new URL(`test-batches/${encodeURIComponent(task.batchId)}/finalize`, callbackBaseUrl.endsWith('/') ? callbackBaseUrl : `${callbackBaseUrl}/`).toString();
|
|
241
|
-
const results = (task.cases || []).map((tc) => ({
|
|
242
|
-
id: tc.id,
|
|
243
|
-
success: false,
|
|
244
|
-
error: errorMessage,
|
|
245
|
-
}));
|
|
246
|
-
try {
|
|
247
|
-
await axios.post(url, {
|
|
248
|
-
status: 'failed',
|
|
249
|
-
totalCases: task.cases?.length || 0,
|
|
250
|
-
completedCases: 0,
|
|
251
|
-
results,
|
|
252
|
-
error: errorMessage,
|
|
253
|
-
}, {
|
|
254
|
-
timeout: Math.max(1000, Math.min(Number(task.callback?.timeoutMs || 10000) || 10000, 600000)),
|
|
255
|
-
headers: this.buildCallbackHeaders(task),
|
|
256
|
-
});
|
|
257
|
-
logger.info(`Guada online batch marked failed after claim: batchId=${task.batchId}`);
|
|
258
|
-
}
|
|
259
|
-
catch (error) {
|
|
260
|
-
logger.warn(`Guada online batch failure callback failed: batchId=${task.batchId}, error=${this.formatAxiosError(error)}`);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
buildCallbackHeaders(task) {
|
|
264
|
-
const headers = { 'Content-Type': 'application/json' };
|
|
265
|
-
const token = task.callback?.token?.trim();
|
|
266
|
-
if (token)
|
|
267
|
-
headers.Authorization = token.startsWith('Bearer ') ? token : `Bearer ${token}`;
|
|
268
|
-
return headers;
|
|
269
|
-
}
|
|
270
|
-
formatAxiosError(error) {
|
|
271
|
-
if (axios.isAxiosError(error)) {
|
|
272
|
-
const status = error.response?.status;
|
|
273
|
-
const data = error.response?.data;
|
|
274
|
-
const detail = typeof data === 'string' ? data : data ? JSON.stringify(data) : '';
|
|
275
|
-
return `${status ? `HTTP ${status}: ` : ''}${detail || error.message}`;
|
|
276
|
-
}
|
|
277
|
-
return error?.message || String(error);
|
|
278
|
-
}
|
|
279
150
|
}
|
|
280
151
|
export const guadaOnlineBatchPoller = new GuadaOnlineBatchPoller();
|
|
281
152
|
//# sourceMappingURL=guada-online-batch-poller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guada-online-batch-poller.js","sourceRoot":"","sources":["../../src/task/guada-online-batch-poller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guada-online-batch-poller.js","sourceRoot":"","sources":["../../src/task/guada-online-batch-poller.ts"],"names":[],"mappings":"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"}
|
package/dist/task/scheduler.d.ts
CHANGED
|
@@ -15,6 +15,11 @@ export declare class TaskScheduler {
|
|
|
15
15
|
canAcceptMore(): boolean;
|
|
16
16
|
schedule(task: Task): void;
|
|
17
17
|
private executeTask;
|
|
18
|
+
private executeWorkerOnce;
|
|
19
|
+
private buildPrimaryModelConfig;
|
|
20
|
+
private extractWorkerModelConfig;
|
|
21
|
+
private resolveFallbackModelConfig;
|
|
22
|
+
private isModelRateLimitError;
|
|
18
23
|
private handleTaskResult;
|
|
19
24
|
/**
|
|
20
25
|
* 保存抓包数据到本地文件并上传到 OSS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/task/scheduler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/task/scheduler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA+BjD,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAwC;IAE5D,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,iCAAiC,CAAkC;IAC3E,OAAO,CAAC,sBAAsB,CAAmD;IAE3E,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7H,aAAa,IAAI,OAAO;IAIxB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;YASZ,WAAW;IAyIzB,OAAO,CAAC,iBAAiB;IAsIzB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,0BAA0B;IA+ClC,OAAO,CAAC,qBAAqB;YAKf,gBAAgB;IA0D9B;;OAEG;YACW,wBAAwB;YA4CxB,8BAA8B;IAoD5C,OAAO,CAAC,mBAAmB;IAmO3B,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,gBAAgB;IAUxB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,qBAAqB;YAIf,WAAW;IAsBzB,OAAO,CAAC,8BAA8B;IAkBtC,OAAO,CAAC,8BAA8B;IActC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IA4BjC,QAAQ,IAAI,cAAc;IAUpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,OAAO,CAAC,qBAAqB;CA8C9B"}
|