openfox 2.0.62 → 2.0.63
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/README.md +14 -0
- package/dist/{chat-handler-TRAITVLO.js → chat-handler-WNARPARQ.js} +11 -11
- package/dist/{chunk-WEB4WBUF.js → chunk-5OPZLQDV.js} +38 -38
- package/dist/{chunk-3WL5YCP6.js → chunk-FGG4KRFX.js} +6 -6
- package/dist/{chunk-L4WACPUX.js → chunk-IVJYQZSN.js} +5 -5
- package/dist/{chunk-QZRS2RF5.js → chunk-N5JF4RYJ.js} +362 -92
- package/dist/{chunk-GJU35MDV.js → chunk-OESYKZCM.js} +2 -2
- package/dist/{chunk-JKLPWTUN.js → chunk-QBYQ7KDX.js} +9 -4
- package/dist/{chunk-NVPVDDQZ.js → chunk-QJ5FH5DP.js} +14 -10
- package/dist/{chunk-H774GQJW.js → chunk-RYIREJAW.js} +234 -40
- package/dist/{chunk-BKTBHEPY.js → chunk-W4PUAODY.js} +32 -42
- package/dist/{chunk-43UFGATL.js → chunk-WGAAQASA.js} +31 -9
- package/dist/{chunk-6VDCH5ML.js → chunk-X5YCWKNS.js} +4 -4
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{client-KRFGMNGN.js → client-LAKW7TA5.js} +3 -3
- package/dist/{compactor-Q33AJPCQ.js → compactor-I3N56PSJ.js} +4 -4
- package/dist/{config-GMQUPNBY.js → config-EUMVEFHU.js} +2 -2
- package/dist/{orchestrator-TQ23BAFQ.js → orchestrator-OIBLY5QJ.js} +14 -14
- package/dist/package.json +5 -1
- package/dist/{processor-3ZOFGZP5.js → processor-27VCKRGB.js} +13 -12
- package/dist/protocol-Cq66hdDX.d.ts +375 -0
- package/dist/provider/index.d.ts +129 -0
- package/dist/provider/index.js +1 -0
- package/dist/{provider-LBYBC5AG.js → provider-GYOW4OWQ.js} +7 -9
- package/dist/{provider-manager-ABEUYU3K.js → provider-manager-HRHNF73A.js} +4 -5
- package/dist/{serve-CNA5NKOR.js → serve-HB222ARV.js} +15 -16
- package/dist/server/index.d.ts +5 -87
- package/dist/server/index.js +12 -13
- package/dist/{server-CI5IEBOC.js → server-XDC7R2IX.js} +10 -14
- package/dist/shared/index.d.ts +3 -2
- package/dist/{tools-33FQNFKC.js → tools-W2FFSF4N.js} +7 -7
- package/dist/types-CDZakn7f.d.ts +89 -0
- package/dist/{protocol-J7khRG62.d.ts → types-akHmgvBk.d.ts} +17 -373
- package/dist/web/assets/{index-BGkyTfuQ.css → index-DvPmgi8F.css} +1 -1
- package/dist/web/assets/{index-CETZPQXr.js → index-bSaZSLjg.js} +74 -73
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/package.json +5 -1
- package/dist/chunk-M3RB4IF6.js +0 -114
package/README.md
CHANGED
|
@@ -81,6 +81,20 @@ openfox provider remove # Remove provider
|
|
|
81
81
|
- **LSP Integration**: Immediate feedback on code validity
|
|
82
82
|
- **Real-Time Metrics**: Prefill time, generation speed, context usage
|
|
83
83
|
|
|
84
|
+
## Plugins
|
|
85
|
+
|
|
86
|
+
OpenFox supports provider plugins loaded from the `plugins` directory inside its configuration folder. Plugins can add authentication methods, transports, provider presets, and model discovery without adding provider-specific code to the OpenFox core.
|
|
87
|
+
|
|
88
|
+
Default plugin directories:
|
|
89
|
+
|
|
90
|
+
- macOS: `~/Library/Application Support/openfox/plugins`
|
|
91
|
+
- Linux: `${XDG_CONFIG_HOME:-~/.config}/openfox/plugins`
|
|
92
|
+
- Windows: `%APPDATA%\openfox\plugins`
|
|
93
|
+
|
|
94
|
+
Restart OpenFox after installing or updating a plugin.
|
|
95
|
+
|
|
96
|
+
To authenticate with a ChatGPT Plus or Pro account, you can install the [`openfox-chatgpt`](https://github.com/arthurlacoste/openfox-chatgpt) plugin.
|
|
97
|
+
|
|
84
98
|
## Screenshots
|
|
85
99
|
|
|
86
100
|
_Homepage — Project overview and session history_
|
|
@@ -2,15 +2,20 @@ import {
|
|
|
2
2
|
buildRunChatTurnParams,
|
|
3
3
|
finalizeTurnCompletion,
|
|
4
4
|
generateSessionNameForSession
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QJ5FH5DP.js";
|
|
6
6
|
import {
|
|
7
7
|
runChatTurn
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-IVJYQZSN.js";
|
|
9
|
+
import "./chunk-5OPZLQDV.js";
|
|
10
|
+
import "./chunk-X5YCWKNS.js";
|
|
10
11
|
import "./chunk-LBGHZLLH.js";
|
|
11
12
|
import "./chunk-BGTEIA2S.js";
|
|
12
13
|
import "./chunk-PK2RMVMB.js";
|
|
13
14
|
import "./chunk-NWO6GRYE.js";
|
|
15
|
+
import {
|
|
16
|
+
getEventStore
|
|
17
|
+
} from "./chunk-AIJE3RYH.js";
|
|
18
|
+
import "./chunk-TMUBLQFC.js";
|
|
14
19
|
import {
|
|
15
20
|
createChatMessageMessage,
|
|
16
21
|
createPhaseChangedMessage,
|
|
@@ -19,20 +24,15 @@ import {
|
|
|
19
24
|
import "./chunk-EU3WWTFH.js";
|
|
20
25
|
import "./chunk-SVSKQYFH.js";
|
|
21
26
|
import "./chunk-YQ3SOPBI.js";
|
|
22
|
-
import "./chunk-6VDCH5ML.js";
|
|
23
|
-
import {
|
|
24
|
-
getEventStore
|
|
25
|
-
} from "./chunk-AIJE3RYH.js";
|
|
26
|
-
import "./chunk-TMUBLQFC.js";
|
|
27
27
|
import "./chunk-ZPIZLTWU.js";
|
|
28
28
|
import "./chunk-J2GP3J3X.js";
|
|
29
|
+
import "./chunk-V4IE7HJY.js";
|
|
29
30
|
import "./chunk-YHEQTVFV.js";
|
|
30
31
|
import "./chunk-Z6W4YHJB.js";
|
|
31
32
|
import "./chunk-K44MW7JJ.js";
|
|
32
33
|
import "./chunk-YD6NDTKF.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-WGAAQASA.js";
|
|
34
35
|
import "./chunk-CQGTEGKL.js";
|
|
35
|
-
import "./chunk-V4IE7HJY.js";
|
|
36
36
|
import "./chunk-5WRI5ZAA.js";
|
|
37
37
|
|
|
38
38
|
// src/server/session/chat-handler.ts
|
|
@@ -154,4 +154,4 @@ export {
|
|
|
154
154
|
startChatSession,
|
|
155
155
|
stopSessionExecution
|
|
156
156
|
};
|
|
157
|
-
//# sourceMappingURL=chat-handler-
|
|
157
|
+
//# sourceMappingURL=chat-handler-WNARPARQ.js.map
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
COMPACTION_PROMPT,
|
|
3
|
+
TurnMetrics,
|
|
4
|
+
buildBasePrompt,
|
|
5
|
+
computeEffectiveTools,
|
|
6
|
+
consumeStreamGenerator,
|
|
7
|
+
createChatDoneEvent,
|
|
8
|
+
createMessageDoneEvent,
|
|
9
|
+
createMessageStartEvent,
|
|
10
|
+
createToolCallEvent,
|
|
11
|
+
createToolResultEvent,
|
|
12
|
+
streamLLMPure
|
|
13
|
+
} from "./chunk-X5YCWKNS.js";
|
|
1
14
|
import {
|
|
2
15
|
startInspectProxy
|
|
3
16
|
} from "./chunk-LBGHZLLH.js";
|
|
@@ -18,6 +31,22 @@ import {
|
|
|
18
31
|
import {
|
|
19
32
|
createMcpTools
|
|
20
33
|
} from "./chunk-NWO6GRYE.js";
|
|
34
|
+
import {
|
|
35
|
+
getCurrentContextWindowId,
|
|
36
|
+
getCurrentWindowMessageOptions,
|
|
37
|
+
getEventStore,
|
|
38
|
+
getRuntimeConfig
|
|
39
|
+
} from "./chunk-AIJE3RYH.js";
|
|
40
|
+
import {
|
|
41
|
+
buildContextMessagesFromEventHistory,
|
|
42
|
+
foldContextState,
|
|
43
|
+
handleMessageDelta,
|
|
44
|
+
handleMessageThinking,
|
|
45
|
+
handleToolCall,
|
|
46
|
+
handleToolResult,
|
|
47
|
+
reorderToolMessages,
|
|
48
|
+
stripOrphanedToolCalls
|
|
49
|
+
} from "./chunk-TMUBLQFC.js";
|
|
21
50
|
import {
|
|
22
51
|
createChatDoneMessage,
|
|
23
52
|
createChatMessageMessage,
|
|
@@ -39,47 +68,18 @@ import {
|
|
|
39
68
|
getProject
|
|
40
69
|
} from "./chunk-YQ3SOPBI.js";
|
|
41
70
|
import {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
buildBasePrompt,
|
|
45
|
-
computeEffectiveTools,
|
|
46
|
-
consumeStreamGenerator,
|
|
47
|
-
createChatDoneEvent,
|
|
48
|
-
createMessageDoneEvent,
|
|
49
|
-
createMessageStartEvent,
|
|
50
|
-
createToolCallEvent,
|
|
51
|
-
createToolResultEvent,
|
|
52
|
-
streamLLMPure
|
|
53
|
-
} from "./chunk-6VDCH5ML.js";
|
|
54
|
-
import {
|
|
55
|
-
getCurrentContextWindowId,
|
|
56
|
-
getCurrentWindowMessageOptions,
|
|
57
|
-
getEventStore,
|
|
58
|
-
getRuntimeConfig
|
|
59
|
-
} from "./chunk-AIJE3RYH.js";
|
|
60
|
-
import {
|
|
61
|
-
buildContextMessagesFromEventHistory,
|
|
62
|
-
foldContextState,
|
|
63
|
-
handleMessageDelta,
|
|
64
|
-
handleMessageThinking,
|
|
65
|
-
handleToolCall,
|
|
66
|
-
handleToolResult,
|
|
67
|
-
reorderToolMessages,
|
|
68
|
-
stripOrphanedToolCalls
|
|
69
|
-
} from "./chunk-TMUBLQFC.js";
|
|
71
|
+
modelSupportsVision
|
|
72
|
+
} from "./chunk-V4IE7HJY.js";
|
|
70
73
|
import {
|
|
71
74
|
logger
|
|
72
75
|
} from "./chunk-K44MW7JJ.js";
|
|
73
76
|
import {
|
|
74
77
|
loadGlobalConfig,
|
|
75
78
|
saveGlobalConfig
|
|
76
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-WGAAQASA.js";
|
|
77
80
|
import {
|
|
78
81
|
getGlobalConfigDir
|
|
79
82
|
} from "./chunk-CQGTEGKL.js";
|
|
80
|
-
import {
|
|
81
|
-
modelSupportsVision
|
|
82
|
-
} from "./chunk-V4IE7HJY.js";
|
|
83
83
|
|
|
84
84
|
// src/server/tools/read.ts
|
|
85
85
|
import { readFile as readFile2, stat, readdir } from "fs/promises";
|
|
@@ -239,7 +239,7 @@ function extractAbsolutePathsFromCommand(command) {
|
|
|
239
239
|
sanitized = sanitized.replace(/s\|[^|]*\|[^|]*\|[gip]*/g, " __SED__ ");
|
|
240
240
|
sanitized = sanitized.replace(/s:[^:]*:[^:]*:[gip]*/g, " __SED__ ");
|
|
241
241
|
sanitized = sanitized.replace(
|
|
242
|
-
/git\s+commit\
|
|
242
|
+
/git\s+commit\b.*?(?:-(?:[a-zA-Z]*m)(?=\s)|--message)\s+(["'])(?:(?!\1).)*\1/g,
|
|
243
243
|
(match2) => match2.replace(/\/[^\s"'|&;<>`()]+/g, " __COMMIT_MSG__ ")
|
|
244
244
|
);
|
|
245
245
|
const fileUrlMatches = command.matchAll(/file:\/\/([^\s'"]+)/g);
|
|
@@ -2865,7 +2865,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
|
|
|
2865
2865
|
sessionManager.setCurrentContextSize(sessionId, result.usage.promptTokens);
|
|
2866
2866
|
if (!compacting) {
|
|
2867
2867
|
const contextState2 = sessionManager.getContextState(sessionId);
|
|
2868
|
-
const { shouldCompact, appendCompactionPrompt } = await import("./compactor-
|
|
2868
|
+
const { shouldCompact, appendCompactionPrompt } = await import("./compactor-I3N56PSJ.js");
|
|
2869
2869
|
if (shouldCompact(contextState2.currentTokens, contextState2.maxTokens, runtimeConfig.context.compactionThreshold)) {
|
|
2870
2870
|
appendCompactionPrompt(sessionId, append);
|
|
2871
2871
|
compacting = true;
|
|
@@ -3222,7 +3222,7 @@ async function describeImageFromDataUrl(dataUrl, visionModel, options) {
|
|
|
3222
3222
|
import { createHash as createHash2 } from "crypto";
|
|
3223
3223
|
async function loadVisionModelFromGlobalConfig() {
|
|
3224
3224
|
try {
|
|
3225
|
-
const { loadGlobalConfig: loadGlobalConfig2, getVisionFallback } = await import("./config-
|
|
3225
|
+
const { loadGlobalConfig: loadGlobalConfig2, getVisionFallback } = await import("./config-EUMVEFHU.js");
|
|
3226
3226
|
const runtimeConfig = getRuntimeConfig();
|
|
3227
3227
|
const mode = runtimeConfig.mode ?? "production";
|
|
3228
3228
|
const globalConfig = await loadGlobalConfig2(mode);
|
|
@@ -3766,7 +3766,7 @@ var callSubAgentTool = {
|
|
|
3766
3766
|
};
|
|
3767
3767
|
}
|
|
3768
3768
|
try {
|
|
3769
|
-
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-
|
|
3769
|
+
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-W2FFSF4N.js");
|
|
3770
3770
|
const toolRegistry = getToolRegistryForAgent2(agentDef);
|
|
3771
3771
|
const turnMetrics = new TurnMetrics();
|
|
3772
3772
|
const result = await executeSubAgent({
|
|
@@ -4688,7 +4688,7 @@ var mcpConfigTool = createTool(
|
|
|
4688
4688
|
mcpNotifyChanged?.(sessionId);
|
|
4689
4689
|
}
|
|
4690
4690
|
async function rebuildTools() {
|
|
4691
|
-
const { setMcpTools: setMcpTools2 } = await import("./tools-
|
|
4691
|
+
const { setMcpTools: setMcpTools2 } = await import("./tools-W2FFSF4N.js");
|
|
4692
4692
|
const mcpTools = createMcpTools(mcpManagerForTools);
|
|
4693
4693
|
setMcpTools2(mcpTools);
|
|
4694
4694
|
}
|
|
@@ -5492,4 +5492,4 @@ export {
|
|
|
5492
5492
|
getToolRegistryForAgent,
|
|
5493
5493
|
createToolRegistry
|
|
5494
5494
|
};
|
|
5495
|
-
//# sourceMappingURL=chunk-
|
|
5495
|
+
//# sourceMappingURL=chunk-5OPZLQDV.js.map
|
|
@@ -39,7 +39,7 @@ Options:
|
|
|
39
39
|
}
|
|
40
40
|
async function runNetworkSetup(mode) {
|
|
41
41
|
const { loadAuthConfig, saveAuthConfig, encryptPassword } = await import("./auth-YY5PJYSC.js");
|
|
42
|
-
const { saveGlobalConfig } = await import("./config-
|
|
42
|
+
const { saveGlobalConfig } = await import("./config-EUMVEFHU.js");
|
|
43
43
|
const { getAuthKeyPath } = await import("./paths-F27V3S4I.js");
|
|
44
44
|
const existingAuth = await loadAuthConfig(mode);
|
|
45
45
|
if (existingAuth) {
|
|
@@ -106,7 +106,7 @@ async function runNetworkSetup(mode) {
|
|
|
106
106
|
console.log("\u2713 Configuration saved!\n");
|
|
107
107
|
}
|
|
108
108
|
async function runConfig(mode) {
|
|
109
|
-
const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-
|
|
109
|
+
const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-EUMVEFHU.js");
|
|
110
110
|
const { getGlobalConfigPath } = await import("./paths-F27V3S4I.js");
|
|
111
111
|
const config = await loadGlobalConfig(mode);
|
|
112
112
|
const configPath = getGlobalConfigPath(mode);
|
|
@@ -164,7 +164,7 @@ async function runCli(options) {
|
|
|
164
164
|
break;
|
|
165
165
|
}
|
|
166
166
|
case "provider": {
|
|
167
|
-
const { runProviderCommand } = await import("./provider-
|
|
167
|
+
const { runProviderCommand } = await import("./provider-GYOW4OWQ.js");
|
|
168
168
|
const [, subcommand] = positionals;
|
|
169
169
|
await runProviderCommand(mode, subcommand);
|
|
170
170
|
break;
|
|
@@ -203,12 +203,12 @@ async function runCli(options) {
|
|
|
203
203
|
break;
|
|
204
204
|
}
|
|
205
205
|
default: {
|
|
206
|
-
const { configFileExists } = await import("./config-
|
|
206
|
+
const { configFileExists } = await import("./config-EUMVEFHU.js");
|
|
207
207
|
const configExists = await configFileExists(mode);
|
|
208
208
|
if (!configExists) {
|
|
209
209
|
await runNetworkSetup(mode);
|
|
210
210
|
}
|
|
211
|
-
const { runServe } = await import("./serve-
|
|
211
|
+
const { runServe } = await import("./serve-HB222ARV.js");
|
|
212
212
|
const serveOptions = { mode };
|
|
213
213
|
if (values.port) serveOptions.port = parseInt(values.port);
|
|
214
214
|
if (values["no-browser"] === true) serveOptions.openBrowser = false;
|
|
@@ -220,4 +220,4 @@ async function runCli(options) {
|
|
|
220
220
|
export {
|
|
221
221
|
runCli
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-FGG4KRFX.js.map
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
loadAllAgentsDefault,
|
|
11
11
|
processEventsForConversation,
|
|
12
12
|
runTopLevelAgentLoop
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5OPZLQDV.js";
|
|
14
14
|
import {
|
|
15
15
|
TurnMetrics,
|
|
16
16
|
WORKFLOW_KICKOFF_PROMPT,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
buildTopLevelSystemPrompt,
|
|
20
20
|
createChatDoneEvent,
|
|
21
21
|
createMessageStartEvent
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-X5YCWKNS.js";
|
|
23
23
|
import {
|
|
24
24
|
getCurrentContextWindowId,
|
|
25
25
|
getCurrentWindowMessageOptions,
|
|
@@ -65,7 +65,7 @@ function resolveAgentDef(sessionManager, sessionId) {
|
|
|
65
65
|
}
|
|
66
66
|
async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
|
|
67
67
|
const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
|
|
68
|
-
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-
|
|
68
|
+
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-W2FFSF4N.js");
|
|
69
69
|
const tools = getToolRegistryForAgent2(agentDef).definitions;
|
|
70
70
|
const toolFingerprint = getToolFingerprint(tools);
|
|
71
71
|
const allAgents = await loadAllAgentsDefault();
|
|
@@ -78,7 +78,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
|
|
|
78
78
|
async function computeSessionHash(sessionManager, sessionId) {
|
|
79
79
|
const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
|
|
80
80
|
const agentDef = await resolveAgentDef(sessionManager, sessionId);
|
|
81
|
-
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-
|
|
81
|
+
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-W2FFSF4N.js");
|
|
82
82
|
const tools = getToolRegistryForAgent2(agentDef).definitions;
|
|
83
83
|
const toolFingerprint = getToolFingerprint(tools);
|
|
84
84
|
return computeDynamicContextHash(instructionContent, skills, toolFingerprint);
|
|
@@ -383,4 +383,4 @@ export {
|
|
|
383
383
|
runAgentTurn,
|
|
384
384
|
injectWorkflowKickoffIfNeeded
|
|
385
385
|
};
|
|
386
|
-
//# sourceMappingURL=chunk-
|
|
386
|
+
//# sourceMappingURL=chunk-IVJYQZSN.js.map
|