openfox 2.0.106 → 2.0.108
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 +27 -0
- package/dist/CHANGELOG.md +27 -0
- package/dist/{chat-handler-A22X22VZ.js → chat-handler-UZ2A75DG.js} +21 -21
- package/dist/{chunk-46KNPXY6.js → chunk-3GJFZQNV.js} +3 -3
- package/dist/{chunk-HU22EVEM.js → chunk-3MYD6Y4W.js} +6 -6
- package/dist/{chunk-SUTJJWUK.js → chunk-63ZAFYQ7.js} +8 -8
- package/dist/{chunk-AYUUGKZU.js → chunk-7FKSDR7H.js} +11 -11
- package/dist/{chunk-27SDWNKL.js → chunk-B5MH4HQ6.js} +12 -2
- package/dist/{chunk-QBKAW5H4.js → chunk-CF2HEP3M.js} +4 -4
- package/dist/{chunk-TB7TTPYQ.js → chunk-EYMGV4YA.js} +2 -2
- package/dist/{chunk-RRTKVJMF.js → chunk-FR5LUTLQ.js} +12 -2
- package/dist/{chunk-LOHVZGCM.js → chunk-GWMNR3LC.js} +3 -3
- package/dist/{chunk-6VNB4L4V.js → chunk-HGOEHSVC.js} +3 -3
- package/dist/{chunk-G2VLGZ3Y.js → chunk-I4M6SCMY.js} +97 -146
- package/dist/{chunk-UXQN7FGB.js → chunk-ID4N6PM6.js} +2 -2
- package/dist/{chunk-V6Y6OLB4.js → chunk-IRWZJPPA.js} +2 -2
- package/dist/{chunk-6M44ZHQA.js → chunk-JBZW5BZX.js} +40 -20
- package/dist/{chunk-3C73IUUL.js → chunk-JH6SOEQW.js} +32 -4
- package/dist/{chunk-5M45NHQ2.js → chunk-JR54MDZI.js} +2 -2
- package/dist/{chunk-26DEYDYV.js → chunk-KYY5PAGE.js} +4 -4
- package/dist/{chunk-WDJOSRIB.js → chunk-L737Y63F.js} +5 -2
- package/dist/{chunk-KIAKWUZ3.js → chunk-MPWLBKSK.js} +9 -1
- package/dist/{chunk-X3USQHHK.js → chunk-P7HT6IJW.js} +3 -3
- package/dist/{chunk-OEPRHAIO.js → chunk-P7WCFUPJ.js} +2 -2
- package/dist/{chunk-P4APMCTX.js → chunk-PSAWMCD6.js} +16 -52
- package/dist/{chunk-UCIZV76E.js → chunk-Q4P4CWWV.js} +3 -3
- package/dist/{chunk-GXW4CRR5.js → chunk-QDKLJZO4.js} +130 -57
- package/dist/{chunk-IA4Y3CKA.js → chunk-TMVXOLBS.js} +2 -2
- package/dist/chunk-UWF4L4CK.js +7 -0
- package/dist/{chunk-2GM6SUIQ.js → chunk-WFWFRUBU.js} +2 -2
- package/dist/{chunk-SGJ3LSVA.js → chunk-YBIJI53N.js} +2 -2
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{client-MP3FSNN7.js → client-R4TZCZTO.js} +5 -5
- package/dist/{client-pure-USVHN4WG.js → client-pure-VFZIIK4S.js} +2 -2
- package/dist/{compactor-KK2BVJK5.js → compactor-U3MAROGM.js} +11 -11
- package/dist/{dynamic-context-ZUXI5UTW.js → dynamic-context-H7AVSAXQ.js} +7 -7
- package/dist/{events-OJ2R6OEM.js → events-7WAOX35W.js} +6 -6
- package/dist/{folding-DUZSKCZF.js → folding-MJDFKOHT.js} +4 -4
- package/dist/{http-client-KJXFSK7A.js → http-client-NHVT6E5C.js} +3 -3
- package/dist/{manager-N27WNW5B.js → manager-ZVHBUECR.js} +4 -4
- package/dist/{model-overrides-36SQR3JR.js → model-overrides-47LYCLFO.js} +3 -3
- package/dist/{orchestrator-VZORJ7KF.js → orchestrator-X7H5JRM5.js} +20 -20
- package/dist/package.json +4 -2
- package/dist/{path-security-QCIA6YFV.js → path-security-26J53LD4.js} +8 -8
- package/dist/{platform-Q6T3AUHA.js → platform-JOAXLXYQ.js} +3 -3
- package/dist/{processor-QYVHKRIV.js → processor-33OESYXP.js} +20 -20
- package/dist/{protocol-YDNGGADL.js → protocol-SPIJPOEN.js} +2 -2
- package/dist/{protocol-zRSsysOe.d.ts → protocol-_Gphic7p.d.ts} +1 -1
- package/dist/provider/index.d.ts +4 -4
- package/dist/{provider-RQQ5JN34.js → provider-U4X7BDDL.js} +6 -6
- package/dist/{provider-manager-RUC5QQ75.js → provider-manager-ON3V54DS.js} +6 -6
- package/dist/{registry-BDSTPV65.js → registry-2PP4PUCL.js} +3 -3
- package/dist/{serve-2O7G2WZF.js → serve-LK3LQEWW.js} +28 -28
- package/dist/server/index.d.ts +3 -39
- package/dist/server/index.js +27 -27
- package/dist/server-7Q5RPZKY.js +47 -0
- package/dist/{session-overrides-SFWPS5CT.js → session-overrides-FVX6374M.js} +5 -5
- package/dist/{sessions-TZNUQJ2I.js → sessions-7XOOISCY.js} +4 -4
- package/dist/{settings-5LG7IB3K.js → settings-H2W3SNFE.js} +2 -2
- package/dist/shared/index.d.ts +3 -3
- package/dist/{tools-Y4F4HJPO.js → tools-5C2VIQ7B.js} +18 -18
- package/dist/{types-CTl70hba.d.ts → types-BMEOlLT0.d.ts} +1 -0
- package/dist/{types-_uF_PRaD.d.ts → types-D0TgGL3t.d.ts} +1 -1
- package/dist/{update-QEZIUJHR.js → update-5R3HZD6U.js} +2 -2
- package/dist/web/assets/index-C0OFVoFt.js +323 -0
- package/dist/web/assets/{index-B7wjVPjL.css → index-CyWbbpRP.css} +1 -1
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/dist/{workspace-2OG5VQG6.js → workspace-YDUQZ3HC.js} +4 -2
- package/package.json +4 -2
- package/dist/chunk-C5YV3EA4.js +0 -7
- package/dist/server-CYE6XY7J.js +0 -47
- package/dist/web/assets/index-BxI3Y9C7.js +0 -323
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
tokenFromPassword,
|
|
22
22
|
verifyPassword,
|
|
23
23
|
workflowExists
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-PSAWMCD6.js";
|
|
25
25
|
import {
|
|
26
26
|
openFolder
|
|
27
27
|
} from "./chunk-WLJJRX22.js";
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
setMcpManagerForTools,
|
|
35
35
|
setMcpTools,
|
|
36
36
|
setNotifyMcpServersChanged
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-JBZW5BZX.js";
|
|
38
38
|
import {
|
|
39
39
|
deleteOwnedSkill,
|
|
40
40
|
deleteProjectSkill,
|
|
@@ -53,16 +53,17 @@ import {
|
|
|
53
53
|
setSkillEnabled,
|
|
54
54
|
skillExists,
|
|
55
55
|
updateOwnedSkill
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-GWMNR3LC.js";
|
|
57
57
|
import {
|
|
58
58
|
ALWAYS_ALLOWED,
|
|
59
59
|
ALWAYS_ALLOWED_FOR_SUBAGENTS,
|
|
60
60
|
TOP_LEVEL_ONLY_TOOLS
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-YBIJI53N.js";
|
|
62
62
|
import {
|
|
63
63
|
createMcpTools
|
|
64
64
|
} from "./chunk-JE7LW7Y6.js";
|
|
65
65
|
import {
|
|
66
|
+
checkoutBranchFromSharedSource,
|
|
66
67
|
deleteWorkspace,
|
|
67
68
|
ensureWorkspace,
|
|
68
69
|
getCommitsBehind,
|
|
@@ -76,11 +77,11 @@ import {
|
|
|
76
77
|
validateRef,
|
|
77
78
|
validateWorkspaceName,
|
|
78
79
|
workspaceExists
|
|
79
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-FR5LUTLQ.js";
|
|
80
81
|
import {
|
|
81
82
|
getSessionDisabledServers,
|
|
82
83
|
setSessionDisabledServers
|
|
83
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-P7WCFUPJ.js";
|
|
84
85
|
import {
|
|
85
86
|
emitAssistantMessageStart,
|
|
86
87
|
emitContextState,
|
|
@@ -97,23 +98,24 @@ import {
|
|
|
97
98
|
getEventStore,
|
|
98
99
|
getSessionState,
|
|
99
100
|
initEventStore
|
|
100
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-QDKLJZO4.js";
|
|
101
102
|
import {
|
|
102
|
-
createContextStateMessage
|
|
103
|
-
|
|
103
|
+
createContextStateMessage,
|
|
104
|
+
toClientSession
|
|
105
|
+
} from "./chunk-B5MH4HQ6.js";
|
|
104
106
|
import {
|
|
105
107
|
EventEmitter
|
|
106
108
|
} from "./chunk-JAX5OEMM.js";
|
|
107
109
|
import {
|
|
108
110
|
getPathSeparator,
|
|
109
111
|
isAbsolutePath
|
|
110
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-ID4N6PM6.js";
|
|
111
113
|
import {
|
|
112
114
|
getAgentModelOverride,
|
|
113
115
|
getAgentModelOverrides,
|
|
114
116
|
resolveLLMClientForAgent,
|
|
115
117
|
setAgentModelOverride
|
|
116
|
-
} from "./chunk-
|
|
118
|
+
} from "./chunk-IRWZJPPA.js";
|
|
117
119
|
import {
|
|
118
120
|
getProject,
|
|
119
121
|
getProjectByWorkdir,
|
|
@@ -121,7 +123,7 @@ import {
|
|
|
121
123
|
} from "./chunk-6FPGJR7O.js";
|
|
122
124
|
import {
|
|
123
125
|
VERSION
|
|
124
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-UWF4L4CK.js";
|
|
125
127
|
import {
|
|
126
128
|
clearWorkflowExecution,
|
|
127
129
|
createSession,
|
|
@@ -141,7 +143,7 @@ import {
|
|
|
141
143
|
updateSessionRunning,
|
|
142
144
|
updateSessionWorkdir,
|
|
143
145
|
updateWorkflowExecutionStatus
|
|
144
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-TMVXOLBS.js";
|
|
145
147
|
import {
|
|
146
148
|
agentExists,
|
|
147
149
|
deleteAgent,
|
|
@@ -164,13 +166,13 @@ import {
|
|
|
164
166
|
saveAgentToProject,
|
|
165
167
|
saveItemToDir,
|
|
166
168
|
setRuntimeConfig
|
|
167
|
-
} from "./chunk-
|
|
169
|
+
} from "./chunk-WFWFRUBU.js";
|
|
168
170
|
import {
|
|
169
171
|
createProviderManager,
|
|
170
172
|
detectModel,
|
|
171
173
|
getLlmStatus,
|
|
172
174
|
parseDefaultModelSelection
|
|
173
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-Q4P4CWWV.js";
|
|
174
176
|
import {
|
|
175
177
|
getModelProfile
|
|
176
178
|
} from "./chunk-V4IE7HJY.js";
|
|
@@ -183,12 +185,12 @@ import {
|
|
|
183
185
|
import {
|
|
184
186
|
SessionNotFoundError,
|
|
185
187
|
WorkspaceInUseError
|
|
186
|
-
} from "./chunk-
|
|
188
|
+
} from "./chunk-EYMGV4YA.js";
|
|
187
189
|
import {
|
|
188
190
|
deleteSetting,
|
|
189
191
|
getSetting,
|
|
190
192
|
setSetting
|
|
191
|
-
} from "./chunk-
|
|
193
|
+
} from "./chunk-MPWLBKSK.js";
|
|
192
194
|
import {
|
|
193
195
|
initDatabase
|
|
194
196
|
} from "./chunk-LCQ5AN6Y.js";
|
|
@@ -2778,58 +2780,6 @@ var SessionManager = class {
|
|
|
2778
2780
|
const session = this.requireSession(sessionId);
|
|
2779
2781
|
return session.workspace ?? session.workdir;
|
|
2780
2782
|
}
|
|
2781
|
-
/**
|
|
2782
|
-
* Return (effectiveWorkdir, actualBranch) for a session.
|
|
2783
|
-
*/
|
|
2784
|
-
async getActualBranchPair(sessionId) {
|
|
2785
|
-
const effectiveWorkdir = this.getEffectiveWorkdir(sessionId);
|
|
2786
|
-
const branch = await getGitBranch(effectiveWorkdir);
|
|
2787
|
-
return { workdir: effectiveWorkdir, branch };
|
|
2788
|
-
}
|
|
2789
|
-
/**
|
|
2790
|
-
* Verify the session's effective workdir is on the branch the session was
|
|
2791
|
-
* bound to. Used as an early gate before any agent step of a workflow
|
|
2792
|
-
* execution, so we never run against the wrong tree when the session branch
|
|
2793
|
-
* and the actual git branch have diverged (#183).
|
|
2794
|
-
*
|
|
2795
|
-
* Decision matrix (fail-closed):
|
|
2796
|
-
* - expectedBranch null → ok, regardless of actualBranch.
|
|
2797
|
-
* - expectedBranch set, actualBranch set, equal → ok.
|
|
2798
|
-
* - expectedBranch set, actualBranch set, differ → BLOCKED.
|
|
2799
|
-
* - expectedBranch set, actualBranch null → BLOCKED (we cannot
|
|
2800
|
-
* verify the workdir is on the right branch — detached HEAD, broken
|
|
2801
|
-
* repository, missing .git, etc.).
|
|
2802
|
-
*
|
|
2803
|
-
* Returning `{ ok: true }` for a session that has a branch expectation but
|
|
2804
|
-
* no resolvable actual branch would be fail-open and is forbidden.
|
|
2805
|
-
*/
|
|
2806
|
-
async assertExecutionGitContext(sessionId) {
|
|
2807
|
-
const session = this.requireSession(sessionId);
|
|
2808
|
-
const expectedBranch = session.branch ?? null;
|
|
2809
|
-
const { workdir, branch: actualBranch } = await this.getActualBranchPair(sessionId);
|
|
2810
|
-
if (!expectedBranch) {
|
|
2811
|
-
return { ok: true, workdir, actualBranch, expectedBranch };
|
|
2812
|
-
}
|
|
2813
|
-
if (actualBranch && expectedBranch === actualBranch) {
|
|
2814
|
-
return { ok: true, workdir, actualBranch, expectedBranch };
|
|
2815
|
-
}
|
|
2816
|
-
if (!actualBranch) {
|
|
2817
|
-
return {
|
|
2818
|
-
ok: false,
|
|
2819
|
-
reason: `Cannot verify Git context for workdir '${workdir}': expected branch '${expectedBranch}' but the actual branch is unavailable (detached HEAD, missing .git, or unreadable repository). Refusing to write \u2014 no agent was run, no checkout was performed. Use the workspace tool to switch to branch '${expectedBranch}' (or repair the workdir) and retry.`,
|
|
2820
|
-
workdir,
|
|
2821
|
-
expectedBranch,
|
|
2822
|
-
actualBranch: null
|
|
2823
|
-
};
|
|
2824
|
-
}
|
|
2825
|
-
return {
|
|
2826
|
-
ok: false,
|
|
2827
|
-
reason: `Git context mismatch before Dev & Verify: session branch is '${expectedBranch}' but workdir '${workdir}' is actually on '${actualBranch}'. Refusing to write \u2014 no agent was run, no checkout was performed. Use the workspace tool to switch to branch '${expectedBranch}' (or update the session branch) and retry.`,
|
|
2828
|
-
workdir,
|
|
2829
|
-
expectedBranch,
|
|
2830
|
-
actualBranch
|
|
2831
|
-
};
|
|
2832
|
-
}
|
|
2833
2783
|
// ============================================================================
|
|
2834
2784
|
// Session Lifecycle
|
|
2835
2785
|
// ============================================================================
|
|
@@ -3726,7 +3676,7 @@ var SessionManager = class {
|
|
|
3726
3676
|
const validated = await resolveAndValidateSourceBranch(wsPath, sourceBranch, projectDir);
|
|
3727
3677
|
await runGit(wsPath, ["checkout", "-b", branch, validated]);
|
|
3728
3678
|
} else {
|
|
3729
|
-
await
|
|
3679
|
+
await checkoutBranchFromSharedSource(wsPath, branch);
|
|
3730
3680
|
}
|
|
3731
3681
|
} catch (innerErr) {
|
|
3732
3682
|
throw new Error(
|
|
@@ -3796,7 +3746,8 @@ var SessionManager = class {
|
|
|
3796
3746
|
const createLockPromise = (async () => {
|
|
3797
3747
|
const exists = await workspaceExists(project.name, target, project.workdir);
|
|
3798
3748
|
if (!exists) {
|
|
3799
|
-
await
|
|
3749
|
+
const inheritedBranch = branch ?? await getGitBranch(this.getEffectiveWorkdir(sessionId)) ?? session.branch ?? void 0;
|
|
3750
|
+
await ensureWorkspace(project.workdir, target, project.name, inheritedBranch, sourceBranch);
|
|
3800
3751
|
} else if (branch) {
|
|
3801
3752
|
await this.applyBranchIfNeeded(project.workdir, project.name, target, branch, sourceBranch);
|
|
3802
3753
|
}
|
|
@@ -5944,7 +5895,7 @@ async function createServerHandle(config3) {
|
|
|
5944
5895
|
toolRegistry = createToolRegistry();
|
|
5945
5896
|
logger.info("MCP tools registered", { count: mcpTools.length });
|
|
5946
5897
|
}
|
|
5947
|
-
const { signalMcpReady } = await import("./server-
|
|
5898
|
+
const { signalMcpReady } = await import("./server-7Q5RPZKY.js");
|
|
5948
5899
|
signalMcpReady();
|
|
5949
5900
|
});
|
|
5950
5901
|
const app = express();
|
|
@@ -6138,7 +6089,7 @@ async function createServerHandle(config3) {
|
|
|
6138
6089
|
const { getProject: getProject2 } = await import("./projects-PQXME5S4.js");
|
|
6139
6090
|
const project = getProject2(req.params.id);
|
|
6140
6091
|
if (!project) return res.status(404).json({ error: "Project not found" });
|
|
6141
|
-
const { listBranches } = await import("./workspace-
|
|
6092
|
+
const { listBranches } = await import("./workspace-YDUQZ3HC.js");
|
|
6142
6093
|
const branches = await listBranches(project.workdir);
|
|
6143
6094
|
res.json({ branches });
|
|
6144
6095
|
});
|
|
@@ -6148,13 +6099,13 @@ async function createServerHandle(config3) {
|
|
|
6148
6099
|
if (!project) return res.status(404).json({ error: "Project not found" });
|
|
6149
6100
|
const { branch } = req.body;
|
|
6150
6101
|
if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
|
|
6151
|
-
const { checkoutBranch, isGitRepository } = await import("./workspace-
|
|
6102
|
+
const { checkoutBranch, isGitRepository } = await import("./workspace-YDUQZ3HC.js");
|
|
6152
6103
|
if (!await isGitRepository(project.workdir)) {
|
|
6153
6104
|
return res.status(400).json({ error: "Project is not a git repository" });
|
|
6154
6105
|
}
|
|
6155
6106
|
try {
|
|
6156
6107
|
await checkoutBranch(project.workdir, branch);
|
|
6157
|
-
const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-
|
|
6108
|
+
const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-7XOOISCY.js");
|
|
6158
6109
|
const allSessions = sessionManager.listSessions();
|
|
6159
6110
|
for (const s of allSessions) {
|
|
6160
6111
|
if (sessionManager.getEffectiveWorkdir(s.id) === project.workdir) {
|
|
@@ -6173,7 +6124,7 @@ async function createServerHandle(config3) {
|
|
|
6173
6124
|
if (!project) return res.status(404).json({ error: "Project not found" });
|
|
6174
6125
|
const { name, sourceBranch } = req.body;
|
|
6175
6126
|
if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
|
|
6176
|
-
const { createBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, validateRef: validateRef2, getDefaultBranch, isGitRepository } = await import("./workspace-
|
|
6127
|
+
const { createBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, validateRef: validateRef2, getDefaultBranch, isGitRepository } = await import("./workspace-YDUQZ3HC.js");
|
|
6177
6128
|
if (!await isGitRepository(project.workdir)) {
|
|
6178
6129
|
return res.status(400).json({ error: "Project is not a git repository" });
|
|
6179
6130
|
}
|
|
@@ -6190,7 +6141,7 @@ async function createServerHandle(config3) {
|
|
|
6190
6141
|
);
|
|
6191
6142
|
}
|
|
6192
6143
|
await createBranch(project.workdir, name, sb);
|
|
6193
|
-
const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-
|
|
6144
|
+
const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-7XOOISCY.js");
|
|
6194
6145
|
const allSessions = sessionManager.listSessions();
|
|
6195
6146
|
for (const s of allSessions) {
|
|
6196
6147
|
if (sessionManager.getEffectiveWorkdir(s.id) === project.workdir) {
|
|
@@ -6207,7 +6158,7 @@ async function createServerHandle(config3) {
|
|
|
6207
6158
|
const session = sessionManager.getSession(req.params.id);
|
|
6208
6159
|
if (!session) return res.status(404).json({ error: "Session not found" });
|
|
6209
6160
|
const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
|
|
6210
|
-
const { listBranches, getDefaultBranch } = await import("./workspace-
|
|
6161
|
+
const { listBranches, getDefaultBranch } = await import("./workspace-YDUQZ3HC.js");
|
|
6211
6162
|
const [branches, defaultBranch] = await Promise.all([
|
|
6212
6163
|
listBranches(effectiveWorkdir),
|
|
6213
6164
|
getDefaultBranch(session.workdir)
|
|
@@ -6221,8 +6172,8 @@ async function createServerHandle(config3) {
|
|
|
6221
6172
|
const { branch } = req.body;
|
|
6222
6173
|
if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
|
|
6223
6174
|
const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
|
|
6224
|
-
const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-
|
|
6225
|
-
const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-
|
|
6175
|
+
const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-YDUQZ3HC.js");
|
|
6176
|
+
const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-7XOOISCY.js");
|
|
6226
6177
|
try {
|
|
6227
6178
|
await validateRef2(effectiveWorkdir, branch);
|
|
6228
6179
|
await checkoutBranch(effectiveWorkdir, branch);
|
|
@@ -6264,16 +6215,16 @@ All file and git operations should use this branch.
|
|
|
6264
6215
|
const { name, sourceBranch } = req.body;
|
|
6265
6216
|
if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
|
|
6266
6217
|
const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
|
|
6267
|
-
const { validateRef: validateRef2 } = await import("./workspace-
|
|
6268
|
-
const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-
|
|
6218
|
+
const { validateRef: validateRef2 } = await import("./workspace-YDUQZ3HC.js");
|
|
6219
|
+
const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-7XOOISCY.js");
|
|
6269
6220
|
try {
|
|
6270
6221
|
await validateRef2(effectiveWorkdir, name);
|
|
6271
6222
|
if (sourceBranch) {
|
|
6272
|
-
const { resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, createBranch } = await import("./workspace-
|
|
6223
|
+
const { resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, createBranch } = await import("./workspace-YDUQZ3HC.js");
|
|
6273
6224
|
const sb = await resolveAndValidateSourceBranch2(effectiveWorkdir, sourceBranch, session.workdir);
|
|
6274
6225
|
await createBranch(effectiveWorkdir, name, sb);
|
|
6275
6226
|
} else {
|
|
6276
|
-
const { createBranch, getDefaultBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2 } = await import("./workspace-
|
|
6227
|
+
const { createBranch, getDefaultBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2 } = await import("./workspace-YDUQZ3HC.js");
|
|
6277
6228
|
const defaultBranch = await getDefaultBranch(session.workdir);
|
|
6278
6229
|
const sb = await resolveAndValidateSourceBranch2(effectiveWorkdir, defaultBranch, session.workdir);
|
|
6279
6230
|
await createBranch(effectiveWorkdir, name, sb);
|
|
@@ -6314,14 +6265,14 @@ All file and git operations should use this branch.
|
|
|
6314
6265
|
const { getProject: getProject2 } = await import("./projects-PQXME5S4.js");
|
|
6315
6266
|
const project = getProject2(req.params.id);
|
|
6316
6267
|
if (!project) return res.status(404).json({ error: "Project not found" });
|
|
6317
|
-
const { listWorkspaces } = await import("./workspace-
|
|
6268
|
+
const { listWorkspaces } = await import("./workspace-YDUQZ3HC.js");
|
|
6318
6269
|
const all = await listWorkspaces(project.name, project.workdir);
|
|
6319
6270
|
const workspacesList = all.filter((ws) => ws.path !== project.workdir);
|
|
6320
6271
|
res.json({ workspaces: workspacesList });
|
|
6321
6272
|
});
|
|
6322
6273
|
app.get("/api/sessions", async (req, res) => {
|
|
6323
|
-
const { getRecentUserPromptsForSession } = await import("./events-
|
|
6324
|
-
const { getPendingConfirmationsBySession } = await import("./path-security-
|
|
6274
|
+
const { getRecentUserPromptsForSession } = await import("./events-7WAOX35W.js");
|
|
6275
|
+
const { getPendingConfirmationsBySession } = await import("./path-security-26J53LD4.js");
|
|
6325
6276
|
const projectId = req.query["projectId"];
|
|
6326
6277
|
const limit = Math.min(parseInt(req.query["limit"]) || 20, 100);
|
|
6327
6278
|
const offset = parseInt(req.query["offset"]) || 0;
|
|
@@ -6367,7 +6318,7 @@ All file and git operations should use this branch.
|
|
|
6367
6318
|
disabledServers = mcpManager.getAllServers().filter((s) => s.config.disabled).map((s) => s.name);
|
|
6368
6319
|
}
|
|
6369
6320
|
if (disabledServers.length > 0) {
|
|
6370
|
-
const { setSessionDisabledServers: setSessionDisabledServers2 } = await import("./session-overrides-
|
|
6321
|
+
const { setSessionDisabledServers: setSessionDisabledServers2 } = await import("./session-overrides-FVX6374M.js");
|
|
6371
6322
|
setSessionDisabledServers2(session.id, disabledServers);
|
|
6372
6323
|
}
|
|
6373
6324
|
} catch {
|
|
@@ -6395,7 +6346,7 @@ All file and git operations should use this branch.
|
|
|
6395
6346
|
}
|
|
6396
6347
|
}
|
|
6397
6348
|
});
|
|
6398
|
-
res.status(201).json({ session });
|
|
6349
|
+
res.status(201).json({ session: toClientSession(session) });
|
|
6399
6350
|
});
|
|
6400
6351
|
app.post("/api/sessions/:id/switch-workspace", async (req, res) => {
|
|
6401
6352
|
const session = sessionManager.getSession(req.params.id);
|
|
@@ -6404,13 +6355,13 @@ All file and git operations should use this branch.
|
|
|
6404
6355
|
if (!target || typeof target !== "string") return res.status(400).json({ error: "target is required" });
|
|
6405
6356
|
const project = sessionManager.getProject(session.projectId);
|
|
6406
6357
|
if (!project) return res.status(404).json({ error: "Project not found" });
|
|
6407
|
-
const { isGitRepository } = await import("./workspace-
|
|
6358
|
+
const { isGitRepository } = await import("./workspace-YDUQZ3HC.js");
|
|
6408
6359
|
if (!await isGitRepository(project.workdir)) {
|
|
6409
6360
|
return res.status(400).json({ error: "Project is not a git repository" });
|
|
6410
6361
|
}
|
|
6411
6362
|
try {
|
|
6412
6363
|
const updated = await sessionManager.switchWorkspace(req.params.id, target, branch, sourceBranch);
|
|
6413
|
-
res.json({ session: updated });
|
|
6364
|
+
res.json({ session: toClientSession(updated) });
|
|
6414
6365
|
} catch (err) {
|
|
6415
6366
|
res.status(400).json({ error: err instanceof Error ? err.message : "Failed to switch workspace" });
|
|
6416
6367
|
}
|
|
@@ -6422,13 +6373,13 @@ All file and git operations should use this branch.
|
|
|
6422
6373
|
if (!target || typeof target !== "string") return res.status(400).json({ error: "target is required" });
|
|
6423
6374
|
const project = sessionManager.getProject(session.projectId);
|
|
6424
6375
|
if (!project) return res.status(404).json({ error: "Project not found" });
|
|
6425
|
-
const { isGitRepository } = await import("./workspace-
|
|
6376
|
+
const { isGitRepository } = await import("./workspace-YDUQZ3HC.js");
|
|
6426
6377
|
if (!await isGitRepository(project.workdir)) {
|
|
6427
6378
|
return res.status(400).json({ error: "Project is not a git repository" });
|
|
6428
6379
|
}
|
|
6429
6380
|
try {
|
|
6430
6381
|
const updated = await sessionManager.deleteWorkspace(req.params.id, target, force === true);
|
|
6431
|
-
res.json({ session: updated });
|
|
6382
|
+
res.json({ session: toClientSession(updated) });
|
|
6432
6383
|
} catch (err) {
|
|
6433
6384
|
if (err instanceof WorkspaceInUseError) {
|
|
6434
6385
|
return res.status(409).json({
|
|
@@ -6440,12 +6391,12 @@ All file and git operations should use this branch.
|
|
|
6440
6391
|
}
|
|
6441
6392
|
});
|
|
6442
6393
|
app.get("/api/sessions/:id", async (req, res) => {
|
|
6443
|
-
const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-
|
|
6444
|
-
const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-
|
|
6445
|
-
const { getPendingQuestionsForSession } = await import("./tools-
|
|
6446
|
-
const { getMaxVisibleItems } = await import("./settings-
|
|
6447
|
-
const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-
|
|
6448
|
-
const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-
|
|
6394
|
+
const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-7WAOX35W.js");
|
|
6395
|
+
const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-MJDFKOHT.js");
|
|
6396
|
+
const { getPendingQuestionsForSession } = await import("./tools-5C2VIQ7B.js");
|
|
6397
|
+
const { getMaxVisibleItems } = await import("./settings-H2W3SNFE.js");
|
|
6398
|
+
const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-47LYCLFO.js");
|
|
6399
|
+
const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-7XOOISCY.js");
|
|
6449
6400
|
let session = sessionManager.getSession(req.params.id);
|
|
6450
6401
|
if (!session) {
|
|
6451
6402
|
return res.status(404).json({ error: "Session not found" });
|
|
@@ -6468,7 +6419,7 @@ All file and git operations should use this branch.
|
|
|
6468
6419
|
const pendingConfirmations = foldPendingConfirmations(events);
|
|
6469
6420
|
const activeWorkflowExecution = sessionManager.getActiveWorkflowExecution(req.params.id);
|
|
6470
6421
|
res.json({
|
|
6471
|
-
session,
|
|
6422
|
+
session: toClientSession(session),
|
|
6472
6423
|
messages,
|
|
6473
6424
|
hiddenCount,
|
|
6474
6425
|
contextState,
|
|
@@ -6484,8 +6435,8 @@ All file and git operations should use this branch.
|
|
|
6484
6435
|
if (!session) {
|
|
6485
6436
|
return res.status(404).json({ error: "Session not found" });
|
|
6486
6437
|
}
|
|
6487
|
-
const { stopSessionExecution } = await import("./chat-handler-
|
|
6488
|
-
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-
|
|
6438
|
+
const { stopSessionExecution } = await import("./chat-handler-UZ2A75DG.js");
|
|
6439
|
+
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-5C2VIQ7B.js");
|
|
6489
6440
|
sessionManager.clearMessageQueue(sessionId);
|
|
6490
6441
|
stopSessionExecution(sessionId, sessionManager);
|
|
6491
6442
|
abortSession(sessionId);
|
|
@@ -6514,9 +6465,9 @@ All file and git operations should use this branch.
|
|
|
6514
6465
|
res.json({ success: true });
|
|
6515
6466
|
});
|
|
6516
6467
|
app.post("/api/sessions/:id/provider", async (req, res) => {
|
|
6517
|
-
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-
|
|
6518
|
-
const { buildMessagesFromStoredEvents } = await import("./folding-
|
|
6519
|
-
const { getMaxVisibleItems } = await import("./settings-
|
|
6468
|
+
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-7WAOX35W.js");
|
|
6469
|
+
const { buildMessagesFromStoredEvents } = await import("./folding-MJDFKOHT.js");
|
|
6470
|
+
const { getMaxVisibleItems } = await import("./settings-H2W3SNFE.js");
|
|
6520
6471
|
const sessionId = req.params.id;
|
|
6521
6472
|
const session = sessionManager.getSession(sessionId);
|
|
6522
6473
|
if (!session) {
|
|
@@ -6536,7 +6487,7 @@ All file and git operations should use this branch.
|
|
|
6536
6487
|
const maxVisibleItems = getMaxVisibleItems();
|
|
6537
6488
|
const { messages, hiddenCount } = buildMessagesFromStoredEvents(events, maxVisibleItems || void 0);
|
|
6538
6489
|
const updatedSession = sessionManager.getSession(sessionId);
|
|
6539
|
-
res.json({ session: updatedSession, messages, hiddenCount, contextState });
|
|
6490
|
+
res.json({ session: toClientSession(updatedSession), messages, hiddenCount, contextState });
|
|
6540
6491
|
});
|
|
6541
6492
|
app.post("/api/default-model", async (req, res) => {
|
|
6542
6493
|
const { providerId, model } = req.body;
|
|
@@ -6629,11 +6580,11 @@ All file and git operations should use this branch.
|
|
|
6629
6580
|
res.json({ success: true });
|
|
6630
6581
|
});
|
|
6631
6582
|
app.put("/api/sessions/:id/mode", async (req, res) => {
|
|
6632
|
-
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-
|
|
6633
|
-
const { buildMessagesFromStoredEvents } = await import("./folding-
|
|
6634
|
-
const { getMaxVisibleItems } = await import("./settings-
|
|
6635
|
-
const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-
|
|
6636
|
-
const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-
|
|
6583
|
+
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-7WAOX35W.js");
|
|
6584
|
+
const { buildMessagesFromStoredEvents } = await import("./folding-MJDFKOHT.js");
|
|
6585
|
+
const { getMaxVisibleItems } = await import("./settings-H2W3SNFE.js");
|
|
6586
|
+
const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-47LYCLFO.js");
|
|
6587
|
+
const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-7XOOISCY.js");
|
|
6637
6588
|
const sessionId = req.params.id;
|
|
6638
6589
|
const session = sessionManager.getSession(sessionId);
|
|
6639
6590
|
if (!session) {
|
|
@@ -6671,7 +6622,7 @@ All file and git operations should use this branch.
|
|
|
6671
6622
|
const maxVisibleItems = getMaxVisibleItems();
|
|
6672
6623
|
const { messages, hiddenCount } = buildMessagesFromStoredEvents(events, maxVisibleItems || void 0);
|
|
6673
6624
|
const updatedSession = sessionManager.getSession(sessionId);
|
|
6674
|
-
res.json({ session: updatedSession, messages, hiddenCount });
|
|
6625
|
+
res.json({ session: toClientSession(updatedSession), messages, hiddenCount });
|
|
6675
6626
|
});
|
|
6676
6627
|
app.put("/api/sessions/:id/danger-level", async (req, res) => {
|
|
6677
6628
|
const sessionId = req.params.id;
|
|
@@ -6685,7 +6636,7 @@ All file and git operations should use this branch.
|
|
|
6685
6636
|
}
|
|
6686
6637
|
sessionManager.setDangerLevel(sessionId, dangerLevel);
|
|
6687
6638
|
const updatedSession = sessionManager.getSession(sessionId);
|
|
6688
|
-
res.json({ session: updatedSession });
|
|
6639
|
+
res.json({ session: toClientSession(updatedSession) });
|
|
6689
6640
|
});
|
|
6690
6641
|
app.get("/api/sessions/:id/mcp/overrides", async (req, res) => {
|
|
6691
6642
|
const sessionId = req.params.id;
|
|
@@ -6724,7 +6675,7 @@ All file and git operations should use this branch.
|
|
|
6724
6675
|
}
|
|
6725
6676
|
sessionManager.renameSession(sessionId, title.slice(0, 100));
|
|
6726
6677
|
const updatedSession = sessionManager.getSession(sessionId);
|
|
6727
|
-
res.json({ session: updatedSession });
|
|
6678
|
+
res.json({ session: toClientSession(updatedSession) });
|
|
6728
6679
|
});
|
|
6729
6680
|
app.post("/api/sessions/:id/confirm-path", async (req, res) => {
|
|
6730
6681
|
const sessionId = req.params.id;
|
|
@@ -6735,7 +6686,7 @@ All file and git operations should use this branch.
|
|
|
6735
6686
|
if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
|
|
6736
6687
|
return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
|
|
6737
6688
|
}
|
|
6738
|
-
const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-
|
|
6689
|
+
const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-5C2VIQ7B.js");
|
|
6739
6690
|
const pendingSessionId = getConfirmationSessionId(callId);
|
|
6740
6691
|
if (!pendingSessionId) {
|
|
6741
6692
|
return res.status(404).json({ error: "No pending path confirmation with that ID" });
|
|
@@ -6747,11 +6698,11 @@ All file and git operations should use this branch.
|
|
|
6747
6698
|
if (!result.found) {
|
|
6748
6699
|
return res.status(404).json({ error: "No pending path confirmation with that ID" });
|
|
6749
6700
|
}
|
|
6750
|
-
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-
|
|
6751
|
-
const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-
|
|
6752
|
-
const { createSessionStateMessage } = await import("./protocol-
|
|
6753
|
-
const { getPendingQuestionsForSession } = await import("./tools-
|
|
6754
|
-
const { getMaxVisibleItems } = await import("./settings-
|
|
6701
|
+
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-7WAOX35W.js");
|
|
6702
|
+
const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-MJDFKOHT.js");
|
|
6703
|
+
const { createSessionStateMessage } = await import("./protocol-SPIJPOEN.js");
|
|
6704
|
+
const { getPendingQuestionsForSession } = await import("./tools-5C2VIQ7B.js");
|
|
6705
|
+
const { getMaxVisibleItems } = await import("./settings-H2W3SNFE.js");
|
|
6755
6706
|
const eventStore = getEventStore2();
|
|
6756
6707
|
const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
|
|
6757
6708
|
const events = combineEvents(sessionId, snapshot, eventsSinceSnapshot);
|
|
@@ -6787,7 +6738,7 @@ All file and git operations should use this branch.
|
|
|
6787
6738
|
if (!skip && typeof answer !== "string") {
|
|
6788
6739
|
return res.status(400).json({ error: "answer is required when not skipping" });
|
|
6789
6740
|
}
|
|
6790
|
-
const { provideAnswer } = await import("./tools-
|
|
6741
|
+
const { provideAnswer } = await import("./tools-5C2VIQ7B.js");
|
|
6791
6742
|
const found = provideAnswer(callId, answer ?? "", skip ?? false);
|
|
6792
6743
|
if (!found) {
|
|
6793
6744
|
return res.status(404).json({ error: "No pending question with that ID" });
|
|
@@ -6820,7 +6771,7 @@ All file and git operations should use this branch.
|
|
|
6820
6771
|
if (!session) {
|
|
6821
6772
|
return res.status(404).json({ error: "Session not found" });
|
|
6822
6773
|
}
|
|
6823
|
-
const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-
|
|
6774
|
+
const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-H2W3SNFE.js");
|
|
6824
6775
|
if (getSetting2(SETTINGS_KEYS.CACHE_WARMING) !== "true") {
|
|
6825
6776
|
return res.json({ success: false, reason: "disabled" });
|
|
6826
6777
|
}
|
|
@@ -6852,7 +6803,7 @@ All file and git operations should use this branch.
|
|
|
6852
6803
|
backend: activeProvider?.backend ?? llmClient.getBackend(),
|
|
6853
6804
|
model: llmClient.getModel()
|
|
6854
6805
|
};
|
|
6855
|
-
const { runAgentTurn, TurnMetrics } = await import("./orchestrator-
|
|
6806
|
+
const { runAgentTurn, TurnMetrics } = await import("./orchestrator-X7H5JRM5.js");
|
|
6856
6807
|
runAgentTurn(
|
|
6857
6808
|
{
|
|
6858
6809
|
sessionManager,
|
|
@@ -6890,15 +6841,15 @@ All file and git operations should use this branch.
|
|
|
6890
6841
|
if (!session) {
|
|
6891
6842
|
return res.status(404).json({ error: "Session not found" });
|
|
6892
6843
|
}
|
|
6893
|
-
const { stopSessionExecution } = await import("./chat-handler-
|
|
6894
|
-
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-
|
|
6844
|
+
const { stopSessionExecution } = await import("./chat-handler-UZ2A75DG.js");
|
|
6845
|
+
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-5C2VIQ7B.js");
|
|
6895
6846
|
const queuedMessages = sessionManager.getQueueState(sessionId);
|
|
6896
6847
|
sessionManager.clearMessageQueue(sessionId);
|
|
6897
6848
|
stopSessionExecution(sessionId, sessionManager);
|
|
6898
6849
|
abortSession(sessionId);
|
|
6899
6850
|
cancelQuestionsForSession(sessionId, "Session stopped by user");
|
|
6900
6851
|
cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
|
|
6901
|
-
const eventStore = (await import("./events-
|
|
6852
|
+
const eventStore = (await import("./events-7WAOX35W.js")).getEventStore();
|
|
6902
6853
|
eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
|
|
6903
6854
|
res.json({ success: true, queuedMessages });
|
|
6904
6855
|
});
|
|
@@ -6912,7 +6863,7 @@ All file and git operations should use this branch.
|
|
|
6912
6863
|
if (typeof messageIndex !== "number" || messageIndex < 0) {
|
|
6913
6864
|
return res.status(400).json({ error: "messageIndex must be a non-negative number" });
|
|
6914
6865
|
}
|
|
6915
|
-
const { truncateSessionMessages } = await import("./events-
|
|
6866
|
+
const { truncateSessionMessages } = await import("./events-7WAOX35W.js");
|
|
6916
6867
|
truncateSessionMessages(sessionId, messageIndex);
|
|
6917
6868
|
res.json({ success: true });
|
|
6918
6869
|
});
|
|
@@ -6929,8 +6880,8 @@ All file and git operations should use this branch.
|
|
|
6929
6880
|
if (content !== void 0 && (typeof content !== "string" || !content.trim())) {
|
|
6930
6881
|
return res.status(400).json({ error: "content must be a non-empty string if provided" });
|
|
6931
6882
|
}
|
|
6932
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
6933
|
-
const { buildMessagesFromStoredEvents } = await import("./folding-
|
|
6883
|
+
const { getEventStore: getEventStore2 } = await import("./events-7WAOX35W.js");
|
|
6884
|
+
const { buildMessagesFromStoredEvents } = await import("./folding-MJDFKOHT.js");
|
|
6934
6885
|
const eventStore = getEventStore2();
|
|
6935
6886
|
const events = eventStore.getEvents(sessionId);
|
|
6936
6887
|
const { messages } = buildMessagesFromStoredEvents(events);
|
|
@@ -6942,7 +6893,7 @@ All file and git operations should use this branch.
|
|
|
6942
6893
|
if (msg.role !== "user" || msg.isSystemGenerated) {
|
|
6943
6894
|
return res.status(400).json({ error: "Can only replay user messages" });
|
|
6944
6895
|
}
|
|
6945
|
-
const { truncateSessionMessages } = await import("./events-
|
|
6896
|
+
const { truncateSessionMessages } = await import("./events-7WAOX35W.js");
|
|
6946
6897
|
truncateSessionMessages(sessionId, msgIndex - 1);
|
|
6947
6898
|
sessionManager.queueMessage(sessionId, "asap", content ?? msg.content, msg.attachments, msg.messageKind);
|
|
6948
6899
|
res.json({ success: true });
|
|
@@ -6962,7 +6913,7 @@ All file and git operations should use this branch.
|
|
|
6962
6913
|
}
|
|
6963
6914
|
try {
|
|
6964
6915
|
const newSession = sessionManager.forkSession(sessionId, messageId, title);
|
|
6965
|
-
return res.status(201).json({ session: newSession });
|
|
6916
|
+
return res.status(201).json({ session: toClientSession(newSession) });
|
|
6966
6917
|
} catch (err) {
|
|
6967
6918
|
const message = err instanceof Error ? err.message : String(err);
|
|
6968
6919
|
if (message.includes("not found")) {
|
|
@@ -6998,7 +6949,7 @@ All file and git operations should use this branch.
|
|
|
6998
6949
|
res.json({ accepted: true });
|
|
6999
6950
|
});
|
|
7000
6951
|
app.get("/api/settings", async (req, res) => {
|
|
7001
|
-
const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-
|
|
6952
|
+
const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-H2W3SNFE.js");
|
|
7002
6953
|
const keysParam = req.query["keys"];
|
|
7003
6954
|
if (!keysParam) {
|
|
7004
6955
|
return res.status(400).json({ error: "keys query parameter is required" });
|
|
@@ -7011,19 +6962,19 @@ All file and git operations should use this branch.
|
|
|
7011
6962
|
res.json(result);
|
|
7012
6963
|
});
|
|
7013
6964
|
app.get("/api/settings/:key", async (req, res) => {
|
|
7014
|
-
const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-
|
|
6965
|
+
const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-H2W3SNFE.js");
|
|
7015
6966
|
const key = req.params.key;
|
|
7016
6967
|
const value = getSetting2(key) ?? SETTINGS_DEFAULTS[key] ?? null;
|
|
7017
6968
|
res.json({ key, value });
|
|
7018
6969
|
});
|
|
7019
6970
|
app.get("/api/settings/:key", async (req, res) => {
|
|
7020
|
-
const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-
|
|
6971
|
+
const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-H2W3SNFE.js");
|
|
7021
6972
|
const key = req.params.key;
|
|
7022
6973
|
const value = getSetting2(key) ?? SETTINGS_DEFAULTS[key] ?? null;
|
|
7023
6974
|
res.json({ key, value });
|
|
7024
6975
|
});
|
|
7025
6976
|
app.put("/api/settings/:key", async (req, res) => {
|
|
7026
|
-
const { setSetting: setSetting2 } = await import("./settings-
|
|
6977
|
+
const { setSetting: setSetting2 } = await import("./settings-H2W3SNFE.js");
|
|
7027
6978
|
const key = req.params.key;
|
|
7028
6979
|
const { value } = req.body;
|
|
7029
6980
|
if (value === void 0) {
|
|
@@ -7050,7 +7001,7 @@ All file and git operations should use this branch.
|
|
|
7050
7001
|
}
|
|
7051
7002
|
});
|
|
7052
7003
|
app.get("/api/tools/shells", async (_req, res) => {
|
|
7053
|
-
const { listAvailableShells } = await import("./platform-
|
|
7004
|
+
const { listAvailableShells } = await import("./platform-JOAXLXYQ.js");
|
|
7054
7005
|
res.json({ shells: listAvailableShells() });
|
|
7055
7006
|
});
|
|
7056
7007
|
app.get("/api/config", async (_req, res) => {
|
|
@@ -7140,7 +7091,7 @@ All file and git operations should use this branch.
|
|
|
7140
7091
|
}));
|
|
7141
7092
|
}
|
|
7142
7093
|
app.post("/api/proxy/test", async (_req, res) => {
|
|
7143
|
-
const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-
|
|
7094
|
+
const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-H2W3SNFE.js");
|
|
7144
7095
|
const proxyUrl = getSetting2(SETTINGS_KEYS.PROXY_URL);
|
|
7145
7096
|
if (!proxyUrl) {
|
|
7146
7097
|
return res.status(400).json({ success: false, error: "No proxy URL configured" });
|
|
@@ -7232,7 +7183,7 @@ All file and git operations should use this branch.
|
|
|
7232
7183
|
}
|
|
7233
7184
|
});
|
|
7234
7185
|
app.post("/api/proxy/test", async (_req, res) => {
|
|
7235
|
-
const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-
|
|
7186
|
+
const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-H2W3SNFE.js");
|
|
7236
7187
|
const proxyUrl = getSetting2(SETTINGS_KEYS.PROXY_URL);
|
|
7237
7188
|
if (!proxyUrl) {
|
|
7238
7189
|
return res.status(400).json({ success: false, error: "No proxy URL configured" });
|
|
@@ -7259,7 +7210,7 @@ All file and git operations should use this branch.
|
|
|
7259
7210
|
const backend = req.query["backend"];
|
|
7260
7211
|
if (!url) return res.status(400).json({ error: "url is required" });
|
|
7261
7212
|
try {
|
|
7262
|
-
const { fetchModelsWithContext } = await import("./provider-manager-
|
|
7213
|
+
const { fetchModelsWithContext } = await import("./provider-manager-ON3V54DS.js");
|
|
7263
7214
|
const { getModelProfile: getModelProfile2 } = await import("./profiles-5J7F4BML.js");
|
|
7264
7215
|
const models = await fetchModelsWithContext(
|
|
7265
7216
|
url,
|
|
@@ -7329,8 +7280,8 @@ All file and git operations should use this branch.
|
|
|
7329
7280
|
}
|
|
7330
7281
|
const { getModelProfile: getModelProfile2 } = await import("./profiles-5J7F4BML.js");
|
|
7331
7282
|
const { getBackendCapabilities } = await import("./backend-P3GHHLHJ.js");
|
|
7332
|
-
const { buildNonStreamingCreateParams } = await import("./client-pure-
|
|
7333
|
-
const { OpenAIHttpClient } = await import("./http-client-
|
|
7283
|
+
const { buildNonStreamingCreateParams } = await import("./client-pure-VFZIIK4S.js");
|
|
7284
|
+
const { OpenAIHttpClient } = await import("./http-client-NHVT6E5C.js");
|
|
7334
7285
|
const { ensureVersionPrefix } = await import("./url-utils-SAJP7AEX.js");
|
|
7335
7286
|
const profile = getModelProfile2(model);
|
|
7336
7287
|
const capabilities = getBackendCapabilities(backend || "unknown");
|
|
@@ -7682,7 +7633,7 @@ All file and git operations should use this branch.
|
|
|
7682
7633
|
});
|
|
7683
7634
|
async function rebuildMcpTools() {
|
|
7684
7635
|
const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-FEAHWU5C.js");
|
|
7685
|
-
const { setMcpTools: setMcpTools2 } = await import("./tools-
|
|
7636
|
+
const { setMcpTools: setMcpTools2 } = await import("./tools-5C2VIQ7B.js");
|
|
7686
7637
|
const mcpTools = createMcpTools2(mcpManager);
|
|
7687
7638
|
setMcpTools2(mcpTools);
|
|
7688
7639
|
toolRegistry = createToolRegistry();
|
|
@@ -7943,13 +7894,13 @@ All file and git operations should use this branch.
|
|
|
7943
7894
|
})
|
|
7944
7895
|
);
|
|
7945
7896
|
app.get("/api/sessions/:id/background-processes", async (req, res) => {
|
|
7946
|
-
const { getSessionProcesses } = await import("./manager-
|
|
7897
|
+
const { getSessionProcesses } = await import("./manager-ZVHBUECR.js");
|
|
7947
7898
|
const sessionId = req.params.id;
|
|
7948
7899
|
const processes = getSessionProcesses(sessionId);
|
|
7949
7900
|
res.json({ processes });
|
|
7950
7901
|
});
|
|
7951
7902
|
app.post("/api/sessions/:id/background-process/:processId/stop", async (req, res) => {
|
|
7952
|
-
const { stopProcess } = await import("./manager-
|
|
7903
|
+
const { stopProcess } = await import("./manager-ZVHBUECR.js");
|
|
7953
7904
|
const sessionId = req.params.id;
|
|
7954
7905
|
const processId = req.params.processId;
|
|
7955
7906
|
const session = sessionManager.getSession(sessionId);
|
|
@@ -8094,7 +8045,7 @@ All file and git operations should use this branch.
|
|
|
8094
8045
|
const state = sessionManager.getContextState(sessionId);
|
|
8095
8046
|
wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
|
|
8096
8047
|
});
|
|
8097
|
-
const { QueueProcessor } = await import("./processor-
|
|
8048
|
+
const { QueueProcessor } = await import("./processor-33OESYXP.js");
|
|
8098
8049
|
const queueProcessor = new QueueProcessor({
|
|
8099
8050
|
sessionManager,
|
|
8100
8051
|
providerManager,
|
|
@@ -8178,4 +8129,4 @@ export {
|
|
|
8178
8129
|
createServerHandle,
|
|
8179
8130
|
createServer
|
|
8180
8131
|
};
|
|
8181
|
-
//# sourceMappingURL=chunk-
|
|
8132
|
+
//# sourceMappingURL=chunk-I4M6SCMY.js.map
|