openfox 2.0.113 → 2.0.115
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/CHANGELOG.md +43 -0
- package/dist/CHANGELOG.md +43 -0
- package/dist/agent-defaults/builder.agent.md +1 -0
- package/dist/agent-defaults/planner.agent.md +1 -0
- package/dist/{backend-P3GHHLHJ.js → backend-LVYHLGQJ.js} +2 -2
- package/dist/{chat-handler-PEK5JDHO.js → chat-handler-5SP265CR.js} +32 -26
- package/dist/{chunk-HKD4IMOE.js → chunk-27NABDXB.js} +2 -2
- package/dist/{chunk-FF2EKUQO.js → chunk-2FCLCUVR.js} +6 -6
- package/dist/{chunk-ONONXV3N.js → chunk-37QLXLML.js} +4 -4
- package/dist/{chunk-YB6WYVNY.js → chunk-3KBRMBTP.js} +2 -2
- package/dist/{chunk-YGPPFVLJ.js → chunk-3NPLERPQ.js} +17 -17
- package/dist/{chunk-XQR76MQ5.js → chunk-3PG65AXG.js} +18 -3
- package/dist/chunk-3QQAIUZI.js +957 -0
- package/dist/{chunk-PWXBIUEY.js → chunk-5PT4UMRR.js} +89 -1
- package/dist/chunk-5V3BF67X.js +7 -0
- package/dist/{chunk-6UPBZ2ZR.js → chunk-6KPJLELC.js} +4 -4
- package/dist/chunk-6RGACY4E.js +1081 -0
- package/dist/{chunk-BNFGDTEU.js → chunk-AESOGRFK.js} +2 -2
- package/dist/{chunk-YHEQTVFV.js → chunk-AZHWLLPP.js} +1 -1
- package/dist/{chunk-TCGWZBTS.js → chunk-BVVCRIVM.js} +4 -4
- package/dist/{chunk-EMI3YYLP.js → chunk-BWVO5WFK.js} +4 -4
- package/dist/{chunk-CP44U7BT.js → chunk-ERNWAKUB.js} +7 -7
- package/dist/{chunk-WWTYWLDM.js → chunk-HD6Y77RO.js} +2 -2
- package/dist/{chunk-4NMGX5F2.js → chunk-I7FY2LTR.js} +2 -2
- package/dist/{chunk-5VYSKVZT.js → chunk-JFK4GKQD.js} +321 -54
- package/dist/{chunk-43M7QZMX.js → chunk-JGWHRYWG.js} +4 -4
- package/dist/{chunk-Y64PEWKP.js → chunk-JLAR2CMV.js} +2 -2
- package/dist/{chunk-BYSUSSSC.js → chunk-LNNBLB6G.js} +48 -151
- package/dist/{chunk-V4664YKR.js → chunk-LTYL6ZGH.js} +2 -2
- package/dist/{chunk-R2MTWC7C.js → chunk-M6X6AIEG.js} +6 -4
- package/dist/{chunk-VGRVPYZ5.js → chunk-O6DU226D.js} +2 -2
- package/dist/{chunk-TEQEDOWI.js → chunk-OCBBAEMT.js} +288 -316
- package/dist/{chunk-SNLLOXCM.js → chunk-OCSTEGK7.js} +3 -3
- package/dist/{chunk-HGOTZWON.js → chunk-OKVHMKE2.js} +60 -1064
- package/dist/chunk-OSXPQSLW.js +128 -0
- package/dist/{chunk-O2YSYW2F.js → chunk-TFF5T3K3.js} +10 -10
- package/dist/{chunk-3R43CMLS.js → chunk-TGLVWAFC.js} +11 -11
- package/dist/{chunk-L737Y63F.js → chunk-TOKQ2UVG.js} +2 -2
- package/dist/{chunk-AZFZE36I.js → chunk-VWEATA7R.js} +18 -8
- package/dist/{chunk-BKCW3JLL.js → chunk-X25Q6RAV.js} +1 -1
- package/dist/{chunk-JR54MDZI.js → chunk-YX3OQBNX.js} +3 -3
- package/dist/{chunk-EC5T5A6O.js → chunk-ZTOG6LJD.js} +3 -3
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/client-KE7EDI2D.js +16 -0
- package/dist/{client-pure-VFZIIK4S.js → client-pure-66Z6FWS6.js} +2 -2
- package/dist/command-defaults/mark-done.command.md +14 -0
- package/dist/compactor-SKVC2VNL.js +32 -0
- package/dist/{dynamic-context-F2XTQJR5.js → dynamic-context-QNB4ELLP.js} +10 -9
- package/dist/{events-224IO5NJ.js → events-5PLO4QJU.js} +9 -7
- package/dist/{folding-YTTTVS56.js → folding-CJWYFUKD.js} +7 -5
- package/dist/http-client-KLODRQC2.js +11 -0
- package/dist/{inspect-proxy-B7LGGTM7.js → inspect-proxy-K6QKEYDT.js} +4 -4
- package/dist/launch-EOXVWLOP.js +52 -0
- package/dist/{manager-4QGXI6WZ.js → manager-LZ3JQ443.js} +5 -5
- package/dist/{model-overrides-OY2YKUNV.js → model-overrides-5UVW3KTE.js} +4 -4
- package/dist/orchestrator-ED3KFPXO.js +63 -0
- package/dist/package.json +3 -3
- package/dist/{path-security-PFMZY7IA.js → path-security-B6EZC63L.js} +13 -11
- package/dist/{platform-QNGCKX4L.js → platform-6RPPBHKH.js} +4 -4
- package/dist/{processor-NYPJ5PFA.js → processor-226ZOTRI.js} +31 -25
- package/dist/{project-creator-AWP2JUFS.js → project-creator-VBFE35NI.js} +3 -3
- package/dist/{projects-C4353IQK.js → projects-AXHZOBR2.js} +5 -3
- package/dist/{protocol-CBT1d98i.d.ts → protocol-JdxRpPxM.d.ts} +21 -3
- package/dist/{protocol-LZZ7C4VQ.js → protocol-RKSWKNXI.js} +3 -3
- package/dist/provider/index.d.ts +4 -4
- package/dist/{provider-PIRPN2CC.js → provider-DL4ZWQY7.js} +8 -8
- package/dist/{provider-manager-GNEPR6UN.js → provider-manager-6CLRMGDE.js} +8 -8
- package/dist/{registry-VCKDSVKA.js → registry-5XI5NDBF.js} +6 -4
- package/dist/{serve-6DRHQLCG.js → serve-DARV4NJG.js} +36 -33
- package/dist/server/index.d.ts +13 -6
- package/dist/server/index.js +35 -32
- package/dist/server-LQJ7MBDS.js +55 -0
- package/dist/service-4JKTGPRG.js +25 -0
- package/dist/{session-overrides-RNKV35MU.js → session-overrides-AZKV6BRD.js} +8 -6
- package/dist/{sessions-D5CEPQGU.js → sessions-752IZIIK.js} +7 -5
- package/dist/{settings-BNRNX6IW.js → settings-2AHDKCD7.js} +3 -3
- package/dist/shared/index.d.ts +3 -3
- package/dist/shared/index.js +1 -1
- package/dist/skill-defaults/workflows/SKILL.md +24 -6
- package/dist/tasks-XJXHU623.js +217 -0
- package/dist/{tools-2B363F7L.js → tools-QYYNFMGU.js} +31 -23
- package/dist/{types-cVfqOj6M.d.ts → types-CIVhQMvD.d.ts} +1 -1
- package/dist/{types-BAxh20ZL.d.ts → types-Df7NM9b5.d.ts} +76 -1
- package/dist/{update-IQMRYN7J.js → update-2REP2WB6.js} +2 -2
- package/dist/web/assets/{index-CjWC6EQ4.css → index-BmILAZrT.css} +1 -1
- package/dist/web/assets/index-M7ToECa4.js +324 -0
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/dist/workflow-defaults/default.workflow.json +5 -3
- package/dist/{workspace-YUNHV4WS.js → workspace-RMZVTFJD.js} +4 -4
- package/package.json +3 -3
- package/dist/chunk-B2PHPBFU.js +0 -7
- package/dist/client-3LJGD6KY.js +0 -16
- package/dist/compactor-ZBNKANHV.js +0 -30
- package/dist/http-client-YC3UA5OZ.js +0 -11
- package/dist/orchestrator-JKBY7B3P.js +0 -57
- package/dist/server-HUHFJW7U.js +0 -48
- package/dist/web/assets/index-DBUtUSHK.js +0 -323
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
SETTINGS_KEYS,
|
|
3
3
|
getSetting,
|
|
4
4
|
setSetting
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HD6Y77RO.js";
|
|
6
6
|
|
|
7
7
|
// src/server/agents/model-overrides.ts
|
|
8
8
|
import { z } from "zod";
|
|
@@ -69,4 +69,4 @@ export {
|
|
|
69
69
|
setAgentModelOverride,
|
|
70
70
|
resolveLLMClientForAgent
|
|
71
71
|
};
|
|
72
|
-
//# sourceMappingURL=chunk-
|
|
72
|
+
//# sourceMappingURL=chunk-JLAR2CMV.js.map
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
saveItemToDir
|
|
3
|
+
} from "./chunk-OSXPQSLW.js";
|
|
4
|
+
import {
|
|
5
|
+
getProjectDefaultAgent
|
|
6
|
+
} from "./chunk-3PG65AXG.js";
|
|
1
7
|
import {
|
|
2
8
|
SETTINGS_KEYS,
|
|
3
9
|
getSetting
|
|
4
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HD6Y77RO.js";
|
|
5
11
|
import {
|
|
6
12
|
logger
|
|
7
13
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -10,125 +16,11 @@ import {
|
|
|
10
16
|
} from "./chunk-CQGTEGKL.js";
|
|
11
17
|
|
|
12
18
|
// src/server/agents/registry.ts
|
|
13
|
-
import { readdir
|
|
14
|
-
import { join
|
|
15
|
-
import { constants as constants2 } from "fs";
|
|
16
|
-
import { fileURLToPath } from "url";
|
|
17
|
-
import matter2 from "gray-matter";
|
|
18
|
-
|
|
19
|
-
// src/server/shared/item-loader.ts
|
|
20
|
-
import { readdir, readFile, access, writeFile, mkdir, unlink } from "fs/promises";
|
|
21
|
-
import { join } from "path";
|
|
19
|
+
import { readdir, readFile, writeFile, mkdir, access, unlink } from "fs/promises";
|
|
20
|
+
import { join, dirname } from "path";
|
|
22
21
|
import { constants } from "fs";
|
|
22
|
+
import { fileURLToPath } from "url";
|
|
23
23
|
import matter from "gray-matter";
|
|
24
|
-
async function pathExists(path) {
|
|
25
|
-
try {
|
|
26
|
-
await access(path, constants.R_OK);
|
|
27
|
-
return true;
|
|
28
|
-
} catch {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
async function getDefaultIds(dir, extension) {
|
|
33
|
-
try {
|
|
34
|
-
const files = (await readdir(dir)).filter((f) => f.endsWith(extension));
|
|
35
|
-
return files.map((f) => f.replace(extension, ""));
|
|
36
|
-
} catch {
|
|
37
|
-
return [];
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
async function loadItemsFromDir(dir, options) {
|
|
41
|
-
if (!await pathExists(dir)) {
|
|
42
|
-
return [];
|
|
43
|
-
}
|
|
44
|
-
let files;
|
|
45
|
-
try {
|
|
46
|
-
files = (await readdir(dir)).filter((f) => f.endsWith(options.extension));
|
|
47
|
-
} catch {
|
|
48
|
-
return [];
|
|
49
|
-
}
|
|
50
|
-
const items = [];
|
|
51
|
-
for (const file of files) {
|
|
52
|
-
try {
|
|
53
|
-
const raw = await readFile(join(dir, file), "utf-8");
|
|
54
|
-
const { data, content } = matter(raw);
|
|
55
|
-
if (data.id && content.trim()) {
|
|
56
|
-
items.push({
|
|
57
|
-
metadata: data,
|
|
58
|
-
prompt: content.trim()
|
|
59
|
-
});
|
|
60
|
-
} else {
|
|
61
|
-
logger.warn(`Skipping invalid ${options.logName} file`, { file });
|
|
62
|
-
}
|
|
63
|
-
} catch (err) {
|
|
64
|
-
logger.warn(`Failed to parse ${options.logName} file`, {
|
|
65
|
-
file,
|
|
66
|
-
error: err instanceof Error ? err.message : String(err)
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return items;
|
|
71
|
-
}
|
|
72
|
-
async function findFileByInternalId(dir, id, ext) {
|
|
73
|
-
if (!await pathExists(dir)) return null;
|
|
74
|
-
let files;
|
|
75
|
-
try {
|
|
76
|
-
files = await readdir(dir);
|
|
77
|
-
} catch {
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
for (const file of files) {
|
|
81
|
-
if (!file.endsWith(ext)) continue;
|
|
82
|
-
try {
|
|
83
|
-
const raw = await readFile(join(dir, file), "utf-8");
|
|
84
|
-
let parsedId;
|
|
85
|
-
if (ext === ".md" || ext === ".mdx") {
|
|
86
|
-
const { data } = matter(raw);
|
|
87
|
-
parsedId = data.id;
|
|
88
|
-
} else {
|
|
89
|
-
const parsed = JSON.parse(raw);
|
|
90
|
-
parsedId = parsed.metadata?.id ?? parsed.id;
|
|
91
|
-
}
|
|
92
|
-
if (parsedId === id) {
|
|
93
|
-
return join(dir, file);
|
|
94
|
-
}
|
|
95
|
-
} catch {
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
100
|
-
async function saveItemToDir(dir, item, ext, serialize) {
|
|
101
|
-
if (!await pathExists(dir)) {
|
|
102
|
-
await mkdir(dir, { recursive: true });
|
|
103
|
-
}
|
|
104
|
-
const meta = item.metadata;
|
|
105
|
-
const filePath = join(dir, `${meta.id}${ext}`);
|
|
106
|
-
const existing = await findFileByInternalId(dir, meta.id, ext);
|
|
107
|
-
if (existing && existing !== filePath) {
|
|
108
|
-
await unlink(existing).catch(() => {
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
await writeFile(filePath, serialize(item), "utf-8");
|
|
112
|
-
}
|
|
113
|
-
var jsonSerializer = (item) => JSON.stringify(item, null, 2) + "\n";
|
|
114
|
-
async function deleteItemFromDir(dir, id, ext) {
|
|
115
|
-
const fastPath = join(dir, `${id}${ext}`);
|
|
116
|
-
try {
|
|
117
|
-
await unlink(fastPath);
|
|
118
|
-
return { success: true };
|
|
119
|
-
} catch {
|
|
120
|
-
const found = await findFileByInternalId(dir, id, ext);
|
|
121
|
-
if (found) {
|
|
122
|
-
try {
|
|
123
|
-
await unlink(found);
|
|
124
|
-
return { success: true };
|
|
125
|
-
} catch {
|
|
126
|
-
return { success: false };
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return { success: false };
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
24
|
|
|
133
25
|
// src/server/config.ts
|
|
134
26
|
import { z } from "zod";
|
|
@@ -202,25 +94,25 @@ function getRuntimeConfig() {
|
|
|
202
94
|
|
|
203
95
|
// src/server/agents/registry.ts
|
|
204
96
|
var __bundleDir = dirname(fileURLToPath(import.meta.url));
|
|
205
|
-
var DEFAULTS_DIR =
|
|
206
|
-
var DEFAULTS_DIR_ALT =
|
|
97
|
+
var DEFAULTS_DIR = join(__bundleDir, "defaults");
|
|
98
|
+
var DEFAULTS_DIR_ALT = join(__bundleDir, "agent-defaults");
|
|
207
99
|
var AGENT_EXTENSION = ".agent.md";
|
|
208
100
|
function getAgentsDir(configDir) {
|
|
209
|
-
return
|
|
101
|
+
return join(configDir, "agents");
|
|
210
102
|
}
|
|
211
103
|
function getProjectAgentsDir(projectDir) {
|
|
212
|
-
return
|
|
104
|
+
return join(projectDir, ".openfox", "agents");
|
|
213
105
|
}
|
|
214
|
-
async function
|
|
106
|
+
async function pathExists(path) {
|
|
215
107
|
try {
|
|
216
|
-
await
|
|
108
|
+
await access(path, constants.R_OK);
|
|
217
109
|
return true;
|
|
218
110
|
} catch {
|
|
219
111
|
return false;
|
|
220
112
|
}
|
|
221
113
|
}
|
|
222
114
|
function parseAgentFile(raw, filename) {
|
|
223
|
-
const { data, content } =
|
|
115
|
+
const { data, content } = matter(raw);
|
|
224
116
|
const meta = data;
|
|
225
117
|
if (!meta["id"] || !content.trim()) {
|
|
226
118
|
logger.warn("Skipping invalid agent file", { filename });
|
|
@@ -238,19 +130,19 @@ function parseAgentFile(raw, filename) {
|
|
|
238
130
|
return { metadata, prompt: content.trim() };
|
|
239
131
|
}
|
|
240
132
|
async function loadAgentsFromDir(dir) {
|
|
241
|
-
if (!await
|
|
133
|
+
if (!await pathExists(dir)) {
|
|
242
134
|
return [];
|
|
243
135
|
}
|
|
244
136
|
let files;
|
|
245
137
|
try {
|
|
246
|
-
files = (await
|
|
138
|
+
files = (await readdir(dir)).filter((f) => f.endsWith(AGENT_EXTENSION));
|
|
247
139
|
} catch {
|
|
248
140
|
return [];
|
|
249
141
|
}
|
|
250
142
|
const agents = [];
|
|
251
143
|
for (const file of files) {
|
|
252
144
|
try {
|
|
253
|
-
const raw = await
|
|
145
|
+
const raw = await readFile(join(dir, file), "utf-8");
|
|
254
146
|
const agent = parseAgentFile(raw, file);
|
|
255
147
|
if (agent) {
|
|
256
148
|
agents.push(agent);
|
|
@@ -294,7 +186,7 @@ async function saveAgentToProject(projectDir, agent) {
|
|
|
294
186
|
getProjectAgentsDir(projectDir),
|
|
295
187
|
agent,
|
|
296
188
|
AGENT_EXTENSION,
|
|
297
|
-
(a) =>
|
|
189
|
+
(a) => matter.stringify(a.prompt, a.metadata)
|
|
298
190
|
);
|
|
299
191
|
}
|
|
300
192
|
async function deleteProjectAgent(projectDir, agentId) {
|
|
@@ -302,7 +194,7 @@ async function deleteProjectAgent(projectDir, agentId) {
|
|
|
302
194
|
const paths = getAgentFilePaths(agentsDir, agentId);
|
|
303
195
|
for (const filePath of paths) {
|
|
304
196
|
try {
|
|
305
|
-
await
|
|
197
|
+
await unlink(filePath);
|
|
306
198
|
return { success: true };
|
|
307
199
|
} catch {
|
|
308
200
|
continue;
|
|
@@ -310,11 +202,11 @@ async function deleteProjectAgent(projectDir, agentId) {
|
|
|
310
202
|
}
|
|
311
203
|
return { success: false };
|
|
312
204
|
}
|
|
313
|
-
async function loadAllAgentsDefault() {
|
|
205
|
+
async function loadAllAgentsDefault(projectDir) {
|
|
314
206
|
try {
|
|
315
207
|
const config = getRuntimeConfig();
|
|
316
208
|
const configDir = getGlobalConfigDir(config.mode ?? "production");
|
|
317
|
-
return await loadAllAgents(configDir, config.workdir);
|
|
209
|
+
return await loadAllAgents(configDir, projectDir ?? config.workdir);
|
|
318
210
|
} catch {
|
|
319
211
|
return loadDefaultAgents();
|
|
320
212
|
}
|
|
@@ -322,7 +214,7 @@ async function loadAllAgentsDefault() {
|
|
|
322
214
|
async function getDefaultAgentIds() {
|
|
323
215
|
for (const dir of [DEFAULTS_DIR, DEFAULTS_DIR_ALT]) {
|
|
324
216
|
try {
|
|
325
|
-
const files = (await
|
|
217
|
+
const files = (await readdir(dir)).filter((f) => f.endsWith(AGENT_EXTENSION));
|
|
326
218
|
return files.map((f) => f.replace(AGENT_EXTENSION, ""));
|
|
327
219
|
} catch {
|
|
328
220
|
}
|
|
@@ -339,7 +231,7 @@ async function isDefaultAgent(agentId) {
|
|
|
339
231
|
}
|
|
340
232
|
function getAgentFilePaths(agentsDir, agentId) {
|
|
341
233
|
const hyphenated = agentId.replace(/_/g, "-");
|
|
342
|
-
return [
|
|
234
|
+
return [join(agentsDir, `${agentId}${AGENT_EXTENSION}`), join(agentsDir, `${hyphenated}${AGENT_EXTENSION}`)];
|
|
343
235
|
}
|
|
344
236
|
function findAgentById(agentId, agents) {
|
|
345
237
|
return agents.find((a) => a.metadata.id === agentId);
|
|
@@ -354,14 +246,14 @@ async function agentExists(configDir, agentId, projectDir) {
|
|
|
354
246
|
const agentsDir = getAgentsDir(configDir);
|
|
355
247
|
const paths = getAgentFilePaths(agentsDir, agentId);
|
|
356
248
|
for (const filePath of paths) {
|
|
357
|
-
if (await
|
|
249
|
+
if (await pathExists(filePath)) {
|
|
358
250
|
return true;
|
|
359
251
|
}
|
|
360
252
|
}
|
|
361
253
|
if (projectDir) {
|
|
362
254
|
const projectPaths = getAgentFilePaths(getProjectAgentsDir(projectDir), agentId);
|
|
363
255
|
for (const filePath of projectPaths) {
|
|
364
|
-
if (await
|
|
256
|
+
if (await pathExists(filePath)) {
|
|
365
257
|
return true;
|
|
366
258
|
}
|
|
367
259
|
}
|
|
@@ -370,12 +262,12 @@ async function agentExists(configDir, agentId, projectDir) {
|
|
|
370
262
|
}
|
|
371
263
|
async function saveAgent(configDir, agent) {
|
|
372
264
|
const agentsDir = getAgentsDir(configDir);
|
|
373
|
-
if (!await
|
|
374
|
-
await
|
|
265
|
+
if (!await pathExists(agentsDir)) {
|
|
266
|
+
await mkdir(agentsDir, { recursive: true });
|
|
375
267
|
}
|
|
376
|
-
const filePath =
|
|
377
|
-
const content =
|
|
378
|
-
await
|
|
268
|
+
const filePath = join(agentsDir, `${agent.metadata.id}${AGENT_EXTENSION}`);
|
|
269
|
+
const content = matter.stringify(agent.prompt, agent.metadata);
|
|
270
|
+
await writeFile(filePath, content, "utf-8");
|
|
379
271
|
}
|
|
380
272
|
async function deleteAgent(configDir, agentId) {
|
|
381
273
|
const isDefault = await isDefaultAgent(agentId);
|
|
@@ -386,7 +278,7 @@ async function deleteAgent(configDir, agentId) {
|
|
|
386
278
|
const paths = getAgentFilePaths(agentsDir, agentId);
|
|
387
279
|
for (const filePath of paths) {
|
|
388
280
|
try {
|
|
389
|
-
await
|
|
281
|
+
await unlink(filePath);
|
|
390
282
|
return { success: true };
|
|
391
283
|
} catch {
|
|
392
284
|
continue;
|
|
@@ -404,7 +296,19 @@ async function getOverrideAgentIds(configDir, projectDir) {
|
|
|
404
296
|
const projectOverrides = projectAgents.map((agent) => agent.metadata.id).filter((id) => defaultIds.includes(id));
|
|
405
297
|
return [...userOverrides, ...projectOverrides];
|
|
406
298
|
}
|
|
407
|
-
function resolveDefaultAgentId() {
|
|
299
|
+
function resolveDefaultAgentId(projectId) {
|
|
300
|
+
if (projectId) {
|
|
301
|
+
try {
|
|
302
|
+
const projectDefault = getProjectDefaultAgent(projectId);
|
|
303
|
+
if (projectDefault && projectDefault.trim().length > 0) {
|
|
304
|
+
return projectDefault.trim();
|
|
305
|
+
}
|
|
306
|
+
} catch (err) {
|
|
307
|
+
logger.debug("Failed to read project defaultAgent from DB", {
|
|
308
|
+
error: err instanceof Error ? err.message : String(err)
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
408
312
|
try {
|
|
409
313
|
const dbSetting = getSetting(SETTINGS_KEYS.DEFAULT_AGENT);
|
|
410
314
|
if (dbSetting && dbSetting.trim().length > 0) {
|
|
@@ -426,13 +330,6 @@ function resolveDefaultAgentId() {
|
|
|
426
330
|
}
|
|
427
331
|
|
|
428
332
|
export {
|
|
429
|
-
pathExists,
|
|
430
|
-
getDefaultIds,
|
|
431
|
-
loadItemsFromDir,
|
|
432
|
-
findFileByInternalId,
|
|
433
|
-
saveItemToDir,
|
|
434
|
-
jsonSerializer,
|
|
435
|
-
deleteItemFromDir,
|
|
436
333
|
loadConfig,
|
|
437
334
|
setRuntimeConfig,
|
|
438
335
|
getRuntimeConfig,
|
|
@@ -455,4 +352,4 @@ export {
|
|
|
455
352
|
getOverrideAgentIds,
|
|
456
353
|
resolveDefaultAgentId
|
|
457
354
|
};
|
|
458
|
-
//# sourceMappingURL=chunk-
|
|
355
|
+
//# sourceMappingURL=chunk-LNNBLB6G.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SETTINGS_KEYS,
|
|
3
3
|
getSetting
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HD6Y77RO.js";
|
|
5
5
|
import {
|
|
6
6
|
logger
|
|
7
7
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -164,4 +164,4 @@ export {
|
|
|
164
164
|
WorkspaceInUseError,
|
|
165
165
|
OpenAIHttpClient
|
|
166
166
|
};
|
|
167
|
-
//# sourceMappingURL=chunk-
|
|
167
|
+
//# sourceMappingURL=chunk-LTYL6ZGH.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getProjectByWorkdir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3PG65AXG.js";
|
|
4
4
|
import {
|
|
5
5
|
logger
|
|
6
6
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -22,11 +22,13 @@ function buildHttpHeaders(resHeaders, status, contentLengthOverride, contentType
|
|
|
22
22
|
}
|
|
23
23
|
var proxyPool = /* @__PURE__ */ new Map();
|
|
24
24
|
var nextOffset = 0;
|
|
25
|
+
var PORT_SCAN_RANGE = 200;
|
|
25
26
|
async function getAvailablePort(proxyBase) {
|
|
26
|
-
|
|
27
|
+
const base = Math.min(proxyBase, 65535 - PORT_SCAN_RANGE);
|
|
28
|
+
for (let port = base; port < base + PORT_SCAN_RANGE; port++) {
|
|
27
29
|
if (await tryBind(port)) return port;
|
|
28
30
|
}
|
|
29
|
-
return
|
|
31
|
+
return base + nextOffset++ % PORT_SCAN_RANGE;
|
|
30
32
|
}
|
|
31
33
|
function tryBind(port) {
|
|
32
34
|
return new Promise((resolve) => {
|
|
@@ -343,4 +345,4 @@ export {
|
|
|
343
345
|
startInspectProxy,
|
|
344
346
|
stopAllInspectProxies
|
|
345
347
|
};
|
|
346
|
-
//# sourceMappingURL=chunk-
|
|
348
|
+
//# sourceMappingURL=chunk-M6X6AIEG.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
getProjectByWorkdir,
|
|
6
6
|
updateProject
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3PG65AXG.js";
|
|
8
8
|
import {
|
|
9
9
|
logger
|
|
10
10
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -333,4 +333,4 @@ export {
|
|
|
333
333
|
deleteWorkspace,
|
|
334
334
|
isGitRepository
|
|
335
335
|
};
|
|
336
|
-
//# sourceMappingURL=chunk-
|
|
336
|
+
//# sourceMappingURL=chunk-O6DU226D.js.map
|