openfox 2.0.115 → 2.0.117
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 +46 -0
- package/dist/CHANGELOG.md +46 -0
- package/dist/{ask-ZYPCJKZD.js → ask-UBIRH3SO.js} +2 -2
- package/dist/{auth-YY5PJYSC.js → auth-GTGIGX5X.js} +2 -2
- package/dist/{auto-config-T5GR2N6X.js → auto-config-AAUO4PKW.js} +2 -2
- package/dist/{backend-LVYHLGQJ.js → backend-67OLCS5O.js} +2 -2
- package/dist/{branch.api-XVTYACSH.js → branch.api-UMKSQMSA.js} +2 -2
- package/dist/changelog-FZUE6OSG.js +63 -0
- package/dist/{chat-handler-5SP265CR.js → chat-handler-URSNELCE.js} +17 -17
- package/dist/{chunk-JFK4GKQD.js → chunk-2PQA3DHY.js} +62 -91
- package/dist/{chunk-TFF5T3K3.js → chunk-3PEYTWCS.js} +3 -3
- package/dist/{chunk-I7FY2LTR.js → chunk-4GHLULHB.js} +18 -2
- package/dist/{chunk-TGLVWAFC.js → chunk-6XHDNSA3.js} +5 -5
- package/dist/{chunk-3QQAIUZI.js → chunk-7SDJXHJH.js} +175 -30
- package/dist/{chunk-4H427UBV.js → chunk-AGXJ5O63.js} +2 -2
- package/dist/{chunk-OCBBAEMT.js → chunk-ECCSVMRT.js} +179 -137
- package/dist/{chunk-OCSTEGK7.js → chunk-EQ5CGNOT.js} +2 -2
- package/dist/{chunk-YX3OQBNX.js → chunk-EQ7DK2TG.js} +9 -5
- package/dist/{chunk-OKVHMKE2.js → chunk-EZD7WFBZ.js} +33 -29
- package/dist/{chunk-BVVCRIVM.js → chunk-GZTMCTUS.js} +3 -3
- package/dist/{chunk-6RGACY4E.js → chunk-HZSKKJHQ.js} +4 -3
- package/dist/{chunk-3NPLERPQ.js → chunk-I6MY65LO.js} +9 -8
- package/dist/{chunk-VWEATA7R.js → chunk-KLQEL2DZ.js} +7 -1
- package/dist/{chunk-JGWHRYWG.js → chunk-MKWS7TQH.js} +2 -2
- package/dist/chunk-NPTI5RCQ.js +7 -0
- package/dist/{chunk-6KPJLELC.js → chunk-QQVPUZQB.js} +156 -20
- package/dist/{chunk-ERNWAKUB.js → chunk-TGVDUK4N.js} +2 -2
- package/dist/{chunk-V4IE7HJY.js → chunk-W7VIYHPQ.js} +2 -2
- package/dist/{chunk-BWVO5WFK.js → chunk-X3XKYGUN.js} +3 -3
- package/dist/{chunk-5WRI5ZAA.js → chunk-YLJ4XMA6.js} +6 -2
- package/dist/{chunk-X25Q6RAV.js → chunk-ZKLE2Q3I.js} +1 -1
- package/dist/{chunk-37QLXLML.js → chunk-ZS6MW2WM.js} +14 -14
- package/dist/cli/dev.js +3 -3
- package/dist/cli/index.js +3 -3
- package/dist/{client-KE7EDI2D.js → client-KCNTDTIR.js} +4 -4
- package/dist/{client-pure-66Z6FWS6.js → client-pure-B5DHEKQJ.js} +2 -2
- package/dist/command-defaults/mark-done.command.md +6 -6
- package/dist/{compactor-SKVC2VNL.js → compactor-LAXZLPPA.js} +7 -7
- package/dist/{config-EAB3V4QK.js → config-TUCHLIWD.js} +2 -2
- package/dist/{dynamic-context-QNB4ELLP.js → dynamic-context-NNBVVFBT.js} +3 -3
- package/dist/{events-5PLO4QJU.js → events-IVPAMMR5.js} +4 -4
- package/dist/{folding-CJWYFUKD.js → folding-RTGU63BW.js} +2 -2
- package/dist/{http-client-KLODRQC2.js → http-client-IPUW2MSW.js} +2 -2
- package/dist/{inspect-proxy-K6QKEYDT.js → inspect-proxy-WPEDMCG7.js} +2 -2
- package/dist/{install-CPOPMCSE.js → install-VA2F6X6Z.js} +2 -2
- package/dist/{launch-EOXVWLOP.js → launch-HSSFGQ5A.js} +17 -17
- package/dist/{manager-LZ3JQ443.js → manager-EMLSLMMT.js} +2 -2
- package/dist/{model-overrides-5UVW3KTE.js → model-overrides-7F2EOA4U.js} +2 -2
- package/dist/{oauth-provider-52YILVUJ.js → oauth-provider-DGBC2YM6.js} +2 -2
- package/dist/{oauth-store-XCFXV2VM.js → oauth-store-KECHUT54.js} +2 -2
- package/dist/{openFolder-HX7X356L.js → openFolder-XCMSU3OI.js} +2 -2
- package/dist/{orchestrator-ED3KFPXO.js → orchestrator-FVXUJW3K.js} +16 -16
- package/dist/package.json +5 -2
- package/dist/{path-security-B6EZC63L.js → path-security-JTCHWYG3.js} +7 -7
- package/dist/{paths-F27V3S4I.js → paths-BHR7CZ7I.js} +2 -2
- package/dist/{permissions-K6YEA2ZZ.js → permissions-UKR524ZB.js} +2 -2
- package/dist/{platform-6RPPBHKH.js → platform-ECDDYMAR.js} +2 -2
- package/dist/{processor-226ZOTRI.js → processor-JRVW5QBA.js} +16 -16
- package/dist/profiles-GYHXBWPV.js +10 -0
- package/dist/{project-creator-VBFE35NI.js → project-creator-PMQ65NKN.js} +2 -2
- package/dist/{projects-AXHZOBR2.js → projects-NDPNOV6D.js} +2 -2
- package/dist/{protocol-JdxRpPxM.d.ts → protocol-CfUkCYxF.d.ts} +11 -2
- package/dist/{protocol-RKSWKNXI.js → protocol-HYA5BYVN.js} +8 -4
- package/dist/{provider-DL4ZWQY7.js → provider-Q7J4UFTS.js} +7 -7
- package/dist/{provider-manager-6CLRMGDE.js → provider-manager-TMBO4DFG.js} +5 -5
- package/dist/{pwa-XPHP3PY2.js → pwa-2GRFSXD7.js} +3 -3
- package/dist/{registry-5XI5NDBF.js → registry-5QL3BOWN.js} +2 -2
- package/dist/{serve-DARV4NJG.js → serve-CW6PR3M2.js} +22 -22
- package/dist/server/index.d.ts +15 -2
- package/dist/server/index.js +21 -21
- package/dist/{server-LQJ7MBDS.js → server-V46SOIGP.js} +20 -20
- package/dist/{service-4JKTGPRG.js → service-M7XJHAK4.js} +6 -6
- package/dist/{service-CXWJQFOZ.js → service-WKABQHKL.js} +2 -2
- package/dist/{session-overrides-AZKV6BRD.js → session-overrides-CWBKPHMF.js} +4 -4
- package/dist/{sessions-752IZIIK.js → sessions-I7ELDIIP.js} +5 -3
- package/dist/{settings-2AHDKCD7.js → settings-FGXQHKUH.js} +2 -2
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.js +2 -2
- package/dist/{store-SARB6V2N.js → store-JYPZ2RXB.js} +2 -2
- package/dist/{tasks-XJXHU623.js → tasks-X5H5HM4J.js} +6 -6
- package/dist/{tool-adapter-FEAHWU5C.js → tool-adapter-FJAFLDZA.js} +2 -2
- package/dist/{tools-QYYNFMGU.js → tools-2Q3GRECI.js} +14 -14
- package/dist/{update-2REP2WB6.js → update-YP7IRT6M.js} +4 -4
- package/dist/{update-server-LOOXIXDW.js → update-server-SVPV6ZJZ.js} +2 -2
- package/dist/{url-utils-SAJP7AEX.js → url-utils-C5BM7NF7.js} +2 -2
- package/dist/web/assets/index-C58KXxRi.js +324 -0
- package/dist/web/assets/{index-BmILAZrT.css → index-DTiVSJJu.css} +1 -1
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/dist/workflow-defaults/default.workflow.json +2 -2
- package/dist/{workspace-RMZVTFJD.js → workspace-IQLLHMYR.js} +2 -2
- package/package.json +5 -2
- package/dist/chunk-5V3BF67X.js +0 -7
- package/dist/profiles-5J7F4BML.js +0 -10
- package/dist/web/assets/index-M7ToECa4.js +0 -324
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.117 - 2026-08-12
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- **New-session picker in split view** — pick any project, create a session, and open it as a pane
|
|
8
|
+
- **Project dropdown in split panes** — open the folder, manage tasks, or edit settings straight from a pane header
|
|
9
|
+
|
|
10
|
+
### Enhancements
|
|
11
|
+
|
|
12
|
+
- **Live session list in split view** — the control panel refreshes automatically and on tab focus
|
|
13
|
+
- **Breadcrumb modal titles** — Tasks and Project Settings now read "project › action"
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- **Tail smartness off for chained commands** — `&&`/`||` chains are no longer misread as piped output
|
|
18
|
+
- **Queued messages survive sub-agent runs** — no longer drained into a sub-agent context mid-run
|
|
19
|
+
- **Composer stays compact on narrow layouts** — and re-sizes when the pane width changes
|
|
20
|
+
- **Split-view actions target the owning pane** — launch, resume, retry, compact, and exit stay in their pane
|
|
21
|
+
- **Path confirmations land in the right pane** — allow/deny prompts appear instantly where they were asked
|
|
22
|
+
- **Each split pane shows its own workspace** — branch, git diff, and context no longer bleed between panes
|
|
23
|
+
- **Adding a split pane mid-stream no longer crashes** — the "maximum update depth" blank-screen error is gone
|
|
24
|
+
- **Project-scoped agents in the default agent list** — grouped by Project, User, and Built-in
|
|
25
|
+
- **Saving a new agent no longer hangs** — the settings modal no longer sticks on "saving"
|
|
26
|
+
|
|
27
|
+
## 2.0.116 - 2026-08-11
|
|
28
|
+
|
|
29
|
+
### Features
|
|
30
|
+
|
|
31
|
+
- **Split view for multiple sessions** — run independent sessions side-by-side in one window, each with its own feed, sidebar, and responsive layout
|
|
32
|
+
- **Workflow steps retry automatically** — LLM-failed steps retry with escalating backoff and a clean history
|
|
33
|
+
- **Changelog trimmed to your upgrade path** — release notes only show what changed since the version you last ran
|
|
34
|
+
|
|
35
|
+
### Enhancements
|
|
36
|
+
|
|
37
|
+
- **Bigger default response limit** — max response tokens raised from 4096 to 16384
|
|
38
|
+
- **Header task badge tracks running work** — only actively running tasks count toward the green badge
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
- **False path confirmations eliminated** — sed/awk/perl/ruby regex expressions no longer trip the file-access guard
|
|
43
|
+
- **Sandbox escapes now flagged** — bare-root paths and dot-dot traversal outside the workdir are caught
|
|
44
|
+
- **Context size survives failed calls** — a failed LLM query keeps the last known context size
|
|
45
|
+
- **System-prompt warning scoped per pane** — the "prompt changed" banner only shows in the session that changed
|
|
46
|
+
- **Setup workspace step stays scoped** — the workflow's first step only creates the workspace, no premature implementation
|
|
47
|
+
- **Dependency vulnerabilities patched** — npm audit reports zero known issues
|
|
48
|
+
|
|
3
49
|
## 2.0.115 - 2026-08-11
|
|
4
50
|
|
|
5
51
|
### Features
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.117 - 2026-08-12
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- **New-session picker in split view** — pick any project, create a session, and open it as a pane
|
|
8
|
+
- **Project dropdown in split panes** — open the folder, manage tasks, or edit settings straight from a pane header
|
|
9
|
+
|
|
10
|
+
### Enhancements
|
|
11
|
+
|
|
12
|
+
- **Live session list in split view** — the control panel refreshes automatically and on tab focus
|
|
13
|
+
- **Breadcrumb modal titles** — Tasks and Project Settings now read "project › action"
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- **Tail smartness off for chained commands** — `&&`/`||` chains are no longer misread as piped output
|
|
18
|
+
- **Queued messages survive sub-agent runs** — no longer drained into a sub-agent context mid-run
|
|
19
|
+
- **Composer stays compact on narrow layouts** — and re-sizes when the pane width changes
|
|
20
|
+
- **Split-view actions target the owning pane** — launch, resume, retry, compact, and exit stay in their pane
|
|
21
|
+
- **Path confirmations land in the right pane** — allow/deny prompts appear instantly where they were asked
|
|
22
|
+
- **Each split pane shows its own workspace** — branch, git diff, and context no longer bleed between panes
|
|
23
|
+
- **Adding a split pane mid-stream no longer crashes** — the "maximum update depth" blank-screen error is gone
|
|
24
|
+
- **Project-scoped agents in the default agent list** — grouped by Project, User, and Built-in
|
|
25
|
+
- **Saving a new agent no longer hangs** — the settings modal no longer sticks on "saving"
|
|
26
|
+
|
|
27
|
+
## 2.0.116 - 2026-08-11
|
|
28
|
+
|
|
29
|
+
### Features
|
|
30
|
+
|
|
31
|
+
- **Split view for multiple sessions** — run independent sessions side-by-side in one window, each with its own feed, sidebar, and responsive layout
|
|
32
|
+
- **Workflow steps retry automatically** — LLM-failed steps retry with escalating backoff and a clean history
|
|
33
|
+
- **Changelog trimmed to your upgrade path** — release notes only show what changed since the version you last ran
|
|
34
|
+
|
|
35
|
+
### Enhancements
|
|
36
|
+
|
|
37
|
+
- **Bigger default response limit** — max response tokens raised from 4096 to 16384
|
|
38
|
+
- **Header task badge tracks running work** — only actively running tasks count toward the green badge
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
- **False path confirmations eliminated** — sed/awk/perl/ruby regex expressions no longer trip the file-access guard
|
|
43
|
+
- **Sandbox escapes now flagged** — bare-root paths and dot-dot traversal outside the workdir are caught
|
|
44
|
+
- **Context size survives failed calls** — a failed LLM query keeps the last known context size
|
|
45
|
+
- **System-prompt warning scoped per pane** — the "prompt changed" banner only shows in the session that changed
|
|
46
|
+
- **Setup workspace step stays scoped** — the workflow's first step only creates the workspace, no premature implementation
|
|
47
|
+
- **Dependency vulnerabilities patched** — npm audit reports zero known issues
|
|
48
|
+
|
|
3
49
|
## 2.0.115 - 2026-08-11
|
|
4
50
|
|
|
5
51
|
### Features
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
provideAnswer
|
|
10
10
|
} from "./chunk-JURM3RPZ.js";
|
|
11
11
|
import "./chunk-LCLH6ZUL.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-YLJ4XMA6.js";
|
|
13
13
|
export {
|
|
14
14
|
AskUserInterrupt,
|
|
15
15
|
askUserTool,
|
|
@@ -20,4 +20,4 @@ export {
|
|
|
20
20
|
hasPendingQuestion,
|
|
21
21
|
provideAnswer
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=ask-
|
|
23
|
+
//# sourceMappingURL=ask-UBIRH3SO.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getAuthConfigPath
|
|
3
3
|
} from "./chunk-CQGTEGKL.js";
|
|
4
|
-
import "./chunk-
|
|
4
|
+
import "./chunk-YLJ4XMA6.js";
|
|
5
5
|
|
|
6
6
|
// src/cli/auth.ts
|
|
7
7
|
import { readFile, writeFile, mkdir, access } from "fs/promises";
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
saveAuthConfig,
|
|
49
49
|
verifyPassword
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=auth-
|
|
51
|
+
//# sourceMappingURL=auth-GTGIGX5X.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
logger
|
|
6
6
|
} from "./chunk-K44MW7JJ.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-YLJ4XMA6.js";
|
|
8
8
|
|
|
9
9
|
// src/server/providers/auto-config.ts
|
|
10
10
|
var NON_THINKING_COMBOS = [
|
|
@@ -186,4 +186,4 @@ async function autoConfig(input) {
|
|
|
186
186
|
export {
|
|
187
187
|
autoConfig
|
|
188
188
|
};
|
|
189
|
-
//# sourceMappingURL=auto-config-
|
|
189
|
+
//# sourceMappingURL=auto-config-AAUO4PKW.js.map
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
getBackendCapabilities,
|
|
3
3
|
getBackendDisplayName
|
|
4
4
|
} from "./chunk-AZHWLLPP.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-YLJ4XMA6.js";
|
|
6
6
|
export {
|
|
7
7
|
getBackendCapabilities,
|
|
8
8
|
getBackendDisplayName
|
|
9
9
|
};
|
|
10
|
-
//# sourceMappingURL=backend-
|
|
10
|
+
//# sourceMappingURL=backend-67OLCS5O.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
logger
|
|
6
6
|
} from "./chunk-K44MW7JJ.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-YLJ4XMA6.js";
|
|
8
8
|
|
|
9
9
|
// src/server/branch.api.ts
|
|
10
10
|
import { spawn } from "child_process";
|
|
@@ -51,4 +51,4 @@ function getGitBranch(cwd) {
|
|
|
51
51
|
export {
|
|
52
52
|
getCurrentBranch
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=branch.api-
|
|
54
|
+
//# sourceMappingURL=branch.api-UMKSQMSA.js.map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import "./chunk-YLJ4XMA6.js";
|
|
2
|
+
|
|
3
|
+
// src/server/utils/changelog.ts
|
|
4
|
+
var VERSION_HEADING_RE = /^##\s+\[?(\d+\.\d+\.\d+)\]?(?:\s+-.*)?$/;
|
|
5
|
+
function parseVersion(version) {
|
|
6
|
+
const parts = version.split(".");
|
|
7
|
+
if (parts.length !== 3) return null;
|
|
8
|
+
const nums = parts.map((part) => Number(part));
|
|
9
|
+
if (nums.some((num) => !Number.isInteger(num))) return null;
|
|
10
|
+
return nums;
|
|
11
|
+
}
|
|
12
|
+
function isValidVersion(version) {
|
|
13
|
+
return parseVersion(version) !== null;
|
|
14
|
+
}
|
|
15
|
+
function gtVersion(a, b) {
|
|
16
|
+
const pa = parseVersion(a);
|
|
17
|
+
const pb = parseVersion(b);
|
|
18
|
+
if (!pa || !pb) return false;
|
|
19
|
+
for (let i = 0; i < 3; i++) {
|
|
20
|
+
const x = pa[i];
|
|
21
|
+
const y = pb[i];
|
|
22
|
+
if (x !== y) return x > y;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
function parseVersionHeading(line) {
|
|
27
|
+
const match = VERSION_HEADING_RE.exec(line.trimEnd());
|
|
28
|
+
return match ? match[1] ?? null : null;
|
|
29
|
+
}
|
|
30
|
+
function trimChangelog(content, since) {
|
|
31
|
+
if (!since || !isValidVersion(since)) return content;
|
|
32
|
+
const lines = content.split("\n");
|
|
33
|
+
let i = 0;
|
|
34
|
+
const header = [];
|
|
35
|
+
for (; i < lines.length; i++) {
|
|
36
|
+
const line = lines[i];
|
|
37
|
+
if (line.startsWith("## ")) break;
|
|
38
|
+
header.push(line);
|
|
39
|
+
}
|
|
40
|
+
const sections = [];
|
|
41
|
+
let current = null;
|
|
42
|
+
for (; i < lines.length; i++) {
|
|
43
|
+
const line = lines[i];
|
|
44
|
+
if (line.startsWith("## ")) {
|
|
45
|
+
current = { heading: line, body: [] };
|
|
46
|
+
sections.push(current);
|
|
47
|
+
} else if (current) {
|
|
48
|
+
current.body.push(line);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const kept = sections.filter((section) => {
|
|
52
|
+
const version = parseVersionHeading(section.heading);
|
|
53
|
+
return version === null || gtVersion(version, since);
|
|
54
|
+
});
|
|
55
|
+
if (kept.length === 0) return header.join("\n").trimEnd();
|
|
56
|
+
const parts = [header.join("\n"), ...kept.map((section) => [section.heading, ...section.body].join("\n"))];
|
|
57
|
+
return parts.join("\n").replace(/\n{3,}/g, "\n\n").trimEnd();
|
|
58
|
+
}
|
|
59
|
+
export {
|
|
60
|
+
parseVersionHeading,
|
|
61
|
+
trimChangelog
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=changelog-FZUE6OSG.js.map
|
|
@@ -2,14 +2,14 @@ import {
|
|
|
2
2
|
buildRunChatTurnParams,
|
|
3
3
|
finalizeTurnCompletion,
|
|
4
4
|
generateSessionNameForSession
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6XHDNSA3.js";
|
|
6
6
|
import {
|
|
7
7
|
runChatTurn
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-I6MY65LO.js";
|
|
9
|
+
import "./chunk-2PQA3DHY.js";
|
|
10
|
+
import "./chunk-3PEYTWCS.js";
|
|
11
11
|
import "./chunk-2FCLCUVR.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-EQ7DK2TG.js";
|
|
13
13
|
import "./chunk-27NABDXB.js";
|
|
14
14
|
import "./chunk-M6X6AIEG.js";
|
|
15
15
|
import "./chunk-ZTOG6LJD.js";
|
|
@@ -18,18 +18,18 @@ import "./chunk-JE7LW7Y6.js";
|
|
|
18
18
|
import "./chunk-OAN4BXEW.js";
|
|
19
19
|
import "./chunk-O6DU226D.js";
|
|
20
20
|
import "./chunk-J7GAZGZT.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-HZSKKJHQ.js";
|
|
22
|
+
import "./chunk-EQ5CGNOT.js";
|
|
23
|
+
import "./chunk-QQVPUZQB.js";
|
|
24
24
|
import {
|
|
25
25
|
getEventStore
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import "./chunk-
|
|
26
|
+
} from "./chunk-TGVDUK4N.js";
|
|
27
|
+
import "./chunk-KLQEL2DZ.js";
|
|
28
28
|
import {
|
|
29
29
|
createChatMessageMessage,
|
|
30
30
|
createPhaseChangedMessage,
|
|
31
31
|
createSessionRunningMessage
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-4GHLULHB.js";
|
|
33
33
|
import "./chunk-AESOGRFK.js";
|
|
34
34
|
import "./chunk-JURM3RPZ.js";
|
|
35
35
|
import "./chunk-JLAR2CMV.js";
|
|
@@ -38,10 +38,10 @@ import "./chunk-LCLH6ZUL.js";
|
|
|
38
38
|
import "./chunk-LNNBLB6G.js";
|
|
39
39
|
import "./chunk-OSXPQSLW.js";
|
|
40
40
|
import "./chunk-3PG65AXG.js";
|
|
41
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-GZTMCTUS.js";
|
|
42
42
|
import "./chunk-J2GP3J3X.js";
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-MKWS7TQH.js";
|
|
44
|
+
import "./chunk-W7VIYHPQ.js";
|
|
45
45
|
import "./chunk-AZHWLLPP.js";
|
|
46
46
|
import "./chunk-HNCM3D7Y.js";
|
|
47
47
|
import "./chunk-TOKQ2UVG.js";
|
|
@@ -49,10 +49,10 @@ import "./chunk-LTYL6ZGH.js";
|
|
|
49
49
|
import "./chunk-HD6Y77RO.js";
|
|
50
50
|
import "./chunk-5PT4UMRR.js";
|
|
51
51
|
import "./chunk-K44MW7JJ.js";
|
|
52
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-ZKLE2Q3I.js";
|
|
53
53
|
import "./chunk-KSXCOHHW.js";
|
|
54
54
|
import "./chunk-CQGTEGKL.js";
|
|
55
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-YLJ4XMA6.js";
|
|
56
56
|
|
|
57
57
|
// src/server/session/chat-handler.ts
|
|
58
58
|
var activeAgents = /* @__PURE__ */ new Map();
|
|
@@ -173,4 +173,4 @@ export {
|
|
|
173
173
|
startChatSession,
|
|
174
174
|
stopSessionExecution
|
|
175
175
|
};
|
|
176
|
-
//# sourceMappingURL=chat-handler-
|
|
176
|
+
//# sourceMappingURL=chat-handler-URSNELCE.js.map
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
createToolCallEvent,
|
|
15
15
|
createToolResultEvent,
|
|
16
16
|
streamLLMPure
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-EQ7DK2TG.js";
|
|
18
18
|
import {
|
|
19
19
|
COMPACTION_PROMPT,
|
|
20
20
|
buildBasePrompt,
|
|
@@ -57,29 +57,29 @@ import {
|
|
|
57
57
|
getGateConfig,
|
|
58
58
|
isTaskConflictError,
|
|
59
59
|
isTaskGateError
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-HZSKKJHQ.js";
|
|
61
61
|
import {
|
|
62
62
|
getSessionDisabledServers
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-EQ5CGNOT.js";
|
|
64
64
|
import {
|
|
65
65
|
PathAccessDeniedError,
|
|
66
66
|
extractAbsolutePathsFromCommand,
|
|
67
67
|
extractSensitivePathsFromCommand,
|
|
68
68
|
registerPathConfirmation,
|
|
69
69
|
requestPathAccess
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-QQVPUZQB.js";
|
|
71
71
|
import {
|
|
72
72
|
getCurrentContextWindowId,
|
|
73
73
|
getCurrentWindowMessageOptions,
|
|
74
74
|
getEventStore
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-TGVDUK4N.js";
|
|
76
76
|
import {
|
|
77
77
|
createChatDoneMessage,
|
|
78
78
|
createChatMessageMessage,
|
|
79
79
|
createChatMessageUpdatedMessage,
|
|
80
80
|
createChatPathConfirmationMessage,
|
|
81
81
|
createQueueStateMessage
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-4GHLULHB.js";
|
|
83
83
|
import {
|
|
84
84
|
AskUserInterrupt,
|
|
85
85
|
askUserTool
|
|
@@ -105,7 +105,7 @@ import {
|
|
|
105
105
|
} from "./chunk-LNNBLB6G.js";
|
|
106
106
|
import {
|
|
107
107
|
modelSupportsVision
|
|
108
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-W7VIYHPQ.js";
|
|
109
109
|
import {
|
|
110
110
|
OUTPUT_LIMITS,
|
|
111
111
|
cacheSet,
|
|
@@ -144,7 +144,7 @@ async function requestUserConfirmation(context, toolLabel, desc) {
|
|
|
144
144
|
if (context.dangerLevel === "dangerous") return Promise.resolve(true);
|
|
145
145
|
if (toolLabel === "workspace" || toolLabel === "command") {
|
|
146
146
|
try {
|
|
147
|
-
const { getSetting: getSetting2, SETTINGS_KEYS: SETTINGS_KEYS2 } = await import("./settings-
|
|
147
|
+
const { getSetting: getSetting2, SETTINGS_KEYS: SETTINGS_KEYS2 } = await import("./settings-FGXQHKUH.js");
|
|
148
148
|
if (getSetting2(SETTINGS_KEYS2.CONFIRM_ON_WORKSPACE_ACTIONS) !== "true") {
|
|
149
149
|
return Promise.resolve(true);
|
|
150
150
|
}
|
|
@@ -1103,6 +1103,7 @@ function hasTopLevelStatementSeparator(command) {
|
|
|
1103
1103
|
continue;
|
|
1104
1104
|
}
|
|
1105
1105
|
if (ch === ";" || ch === "\n") return true;
|
|
1106
|
+
if ((ch === "&" || ch === "|") && command[i + 1] === ch) return true;
|
|
1106
1107
|
}
|
|
1107
1108
|
return false;
|
|
1108
1109
|
}
|
|
@@ -1593,7 +1594,7 @@ async function executeTools(assistantMsgId, toolCalls, ctx, append) {
|
|
|
1593
1594
|
data: { callId: error.callId, question: error.question, type: error.type, options: error.options }
|
|
1594
1595
|
});
|
|
1595
1596
|
append(createChatDoneEvent(assistantMsgId, "waiting_for_user"));
|
|
1596
|
-
const { awaitAnswer } = await import("./ask-
|
|
1597
|
+
const { awaitAnswer } = await import("./ask-UBIRH3SO.js");
|
|
1597
1598
|
const answerPromise = awaitAnswer(error.callId);
|
|
1598
1599
|
if (!answerPromise) {
|
|
1599
1600
|
throw new Error(`No pending question found for callId: ${error.callId}`);
|
|
@@ -1903,6 +1904,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
|
|
|
1903
1904
|
signal,
|
|
1904
1905
|
subAgentAliases,
|
|
1905
1906
|
...config.retryPatterns ? { retryPatterns: config.retryPatterns } : {},
|
|
1907
|
+
...config.suppressChatError ? { suppressChatError: true } : {},
|
|
1906
1908
|
...modelSettings && { modelSettings }
|
|
1907
1909
|
});
|
|
1908
1910
|
const result = await consumeStreamGenerator(streamGen, (event) => {
|
|
@@ -1950,22 +1952,35 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
|
|
|
1950
1952
|
emitPartialDoneEvents(sessionId, assistantMsgId, statsIdentity, mode, turnMetrics, append, agentType);
|
|
1951
1953
|
throw new Error("Aborted");
|
|
1952
1954
|
}
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
result.
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1955
|
+
if (result.error) {
|
|
1956
|
+
const stats2 = turnMetrics.buildStats(statsIdentity, mode);
|
|
1957
|
+
append(
|
|
1958
|
+
createMessageDoneEvent(assistantMsgId, {
|
|
1959
|
+
segments: result.segments,
|
|
1960
|
+
stats: stats2
|
|
1961
|
+
})
|
|
1962
|
+
);
|
|
1963
|
+
append(createChatDoneEvent(assistantMsgId, "error", stats2, agentType));
|
|
1964
|
+
return { failed: { error: result.error } };
|
|
1965
|
+
}
|
|
1966
|
+
if (!result.error) {
|
|
1967
|
+
turnMetrics.addLLMCall(
|
|
1968
|
+
result.timing,
|
|
1969
|
+
result.usage.promptTokens,
|
|
1970
|
+
result.usage.completionTokens,
|
|
1971
|
+
previousContextTokens,
|
|
1972
|
+
result.modelParams
|
|
1973
|
+
);
|
|
1974
|
+
sessionManager.setCurrentContextSize(
|
|
1975
|
+
sessionId,
|
|
1976
|
+
result.usage.promptTokens,
|
|
1977
|
+
result.usage.completionTokens,
|
|
1978
|
+
config.subAgentMetadata?.subAgentId
|
|
1979
|
+
);
|
|
1980
|
+
}
|
|
1966
1981
|
if (!compacting) {
|
|
1967
1982
|
const contextState2 = sessionManager.getContextState(sessionId);
|
|
1968
|
-
const { shouldCompact, appendCompactionPrompt } = await import("./compactor-
|
|
1983
|
+
const { shouldCompact, appendCompactionPrompt } = await import("./compactor-LAXZLPPA.js");
|
|
1969
1984
|
if (shouldCompact(
|
|
1970
1985
|
contextState2.currentTokens,
|
|
1971
1986
|
contextState2.maxTokens,
|
|
@@ -2115,7 +2130,9 @@ ${COMPACTION_PROMPT}`,
|
|
|
2115
2130
|
emitPartialDoneEvents(sessionId, assistantMsgId, statsIdentity, mode, turnMetrics, append, agentType);
|
|
2116
2131
|
throw new Error("Aborted");
|
|
2117
2132
|
}
|
|
2118
|
-
|
|
2133
|
+
if (!config.subAgentMetadata) {
|
|
2134
|
+
void drainQueue(sessionManager, sessionId, append, onMessage);
|
|
2135
|
+
}
|
|
2119
2136
|
retryLimiter.reset();
|
|
2120
2137
|
continue;
|
|
2121
2138
|
}
|
|
@@ -2335,7 +2352,7 @@ async function describeImageFromDataUrl(dataUrl, visionModel, options) {
|
|
|
2335
2352
|
// src/server/context/image-processor.ts
|
|
2336
2353
|
async function loadVisionModelFromGlobalConfig() {
|
|
2337
2354
|
try {
|
|
2338
|
-
const { loadGlobalConfig: loadGlobalConfig2, resolveVisionFallback } = await import("./config-
|
|
2355
|
+
const { loadGlobalConfig: loadGlobalConfig2, resolveVisionFallback } = await import("./config-TUCHLIWD.js");
|
|
2339
2356
|
const runtimeConfig = getRuntimeConfig();
|
|
2340
2357
|
const mode = runtimeConfig.mode ?? "production";
|
|
2341
2358
|
const globalConfig = await loadGlobalConfig2(mode);
|
|
@@ -2953,7 +2970,7 @@ var callSubAgentTool = {
|
|
|
2953
2970
|
};
|
|
2954
2971
|
}
|
|
2955
2972
|
try {
|
|
2956
|
-
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-
|
|
2973
|
+
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-2Q3GRECI.js");
|
|
2957
2974
|
const toolRegistry = getToolRegistryForAgent2(agentDef);
|
|
2958
2975
|
const turnMetrics = new TurnMetrics();
|
|
2959
2976
|
const result = await executeSubAgent({
|
|
@@ -3975,7 +3992,7 @@ var mcpConfigTool = createTool(
|
|
|
3975
3992
|
mcpNotifyChanged?.(sessionId);
|
|
3976
3993
|
}
|
|
3977
3994
|
async function rebuildTools() {
|
|
3978
|
-
const { setMcpTools: setMcpTools2 } = await import("./tools-
|
|
3995
|
+
const { setMcpTools: setMcpTools2 } = await import("./tools-2Q3GRECI.js");
|
|
3979
3996
|
const mcpTools = createMcpTools(mcpManagerForTools);
|
|
3980
3997
|
setMcpTools2(mcpTools);
|
|
3981
3998
|
}
|
|
@@ -4400,33 +4417,20 @@ function getTasksService() {
|
|
|
4400
4417
|
}
|
|
4401
4418
|
return tasksService;
|
|
4402
4419
|
}
|
|
4403
|
-
var VALID_ACTIONS = [
|
|
4404
|
-
|
|
4405
|
-
"get",
|
|
4406
|
-
"create",
|
|
4407
|
-
"edit",
|
|
4408
|
-
"move",
|
|
4409
|
-
"set_gate_value",
|
|
4410
|
-
"set_gates",
|
|
4411
|
-
"duplicate",
|
|
4412
|
-
"delete",
|
|
4413
|
-
"reorder"
|
|
4414
|
-
];
|
|
4420
|
+
var VALID_ACTIONS = ["list", "create", "edit", "move", "set_gate_value", "delete"];
|
|
4421
|
+
var LIST_STATUSES = ["todo", "in_progress", "done", "all"];
|
|
4415
4422
|
var projectTasksTool = createTool(
|
|
4416
4423
|
"project_tasks",
|
|
4417
4424
|
{
|
|
4418
4425
|
type: "function",
|
|
4419
4426
|
function: {
|
|
4420
4427
|
name: "project_tasks",
|
|
4421
|
-
description: "
|
|
4428
|
+
description: "Kanban task board for this project. Core loop: list \u2192 move \u2192 set_gate_value.\n\nRules:\n- Moving to in_progress binds the task to YOUR current session.\n- Moving to done is blocked by unmet gates: the error names the missing fields \u2014 fill them via set_gate_value (that's part of the work), then retry the move.\n- Stale writes fail with CONFLICT \u2014 re-list and retry.\n\nActions:\n- list: tasks (status, gate values, queue position, bound session, audit trail); defaults to open tasks, filter via status (todo | in_progress | done | all)\n- create: add a task to To Do (prompt required)\n- edit: update prompt/attachments/agent/model (taskId + fields)\n- move: change column (to: todo | in_progress | done; optional reason)\n- set_gate_value: fill a gate field (taskId, gateId, value)\n- delete: remove a task (taskId)",
|
|
4422
4429
|
parameters: {
|
|
4423
4430
|
type: "object",
|
|
4424
4431
|
properties: {
|
|
4425
4432
|
action: { type: "string", enum: VALID_ACTIONS, description: "The action to perform" },
|
|
4426
|
-
taskId: {
|
|
4427
|
-
type: "string",
|
|
4428
|
-
description: "Target task id (get, edit, move, set_gate_value, duplicate, delete, reorder)"
|
|
4429
|
-
},
|
|
4433
|
+
taskId: { type: "string", description: "Target task id (edit, move, set_gate_value, delete)" },
|
|
4430
4434
|
prompt: { type: "string", description: "The prompt/instruction executed when the task launches" },
|
|
4431
4435
|
attachments: { type: "array", description: "Optional attachments (same shape as chat attachments)" },
|
|
4432
4436
|
agentId: { type: "string", description: "Selected agent id" },
|
|
@@ -4436,15 +4440,14 @@ var projectTasksTool = createTool(
|
|
|
4436
4440
|
reason: { type: "string", description: "Optional short reason (recorded in the audit trail) for reverts" },
|
|
4437
4441
|
gateId: { type: "string", description: "Gate field id for set_gate_value" },
|
|
4438
4442
|
value: { type: "string", description: "Proof/evidence value for set_gate_value" },
|
|
4439
|
-
|
|
4440
|
-
type: "
|
|
4441
|
-
|
|
4443
|
+
status: {
|
|
4444
|
+
type: "string",
|
|
4445
|
+
enum: ["todo", "in_progress", "done", "all"],
|
|
4446
|
+
description: "Column filter for action=list (default: open tasks)"
|
|
4442
4447
|
},
|
|
4443
|
-
status: { type: "string", enum: ["todo", "in_progress", "done"], description: "Column for reorder" },
|
|
4444
|
-
index: { type: "number", description: "Zero-based target index within the column (reorder)" },
|
|
4445
4448
|
expectedVersion: {
|
|
4446
4449
|
type: "number",
|
|
4447
|
-
description: "
|
|
4450
|
+
description: "Task version from your last read; stale writes fail with CONFLICT"
|
|
4448
4451
|
}
|
|
4449
4452
|
},
|
|
4450
4453
|
required: ["action"]
|
|
@@ -4463,15 +4466,16 @@ var projectTasksTool = createTool(
|
|
|
4463
4466
|
try {
|
|
4464
4467
|
switch (action) {
|
|
4465
4468
|
case "list": {
|
|
4469
|
+
const status = args.status;
|
|
4470
|
+
if (status !== void 0 && !LIST_STATUSES.includes(status)) {
|
|
4471
|
+
return helpers.error(
|
|
4472
|
+
`Invalid "status" filter for action=list: "${String(status)}". Expected one of: todo, in_progress, done, all.`
|
|
4473
|
+
);
|
|
4474
|
+
}
|
|
4466
4475
|
const tasks = svc.list(projectId);
|
|
4476
|
+
const filtered = status === "all" ? tasks : tasks.filter((t) => status === void 0 ? t.status !== "done" : t.status === status);
|
|
4467
4477
|
const gates = getGateConfig(projectId);
|
|
4468
|
-
return helpers.success(JSON.stringify({ gates, tasks:
|
|
4469
|
-
}
|
|
4470
|
-
case "get": {
|
|
4471
|
-
if (!args.taskId) return helpers.error('Parameter "taskId" is required for action=get');
|
|
4472
|
-
const task = svc.get(projectId, args.taskId);
|
|
4473
|
-
if (!task) return helpers.error(`Task not found: ${args.taskId}`);
|
|
4474
|
-
return helpers.success(JSON.stringify(taskForAgent(task), null, 2));
|
|
4478
|
+
return helpers.success(JSON.stringify({ gates, tasks: filtered.map((t) => taskForAgent(t)) }, null, 2));
|
|
4475
4479
|
}
|
|
4476
4480
|
case "create": {
|
|
4477
4481
|
const task = svc.create(
|
|
@@ -4532,19 +4536,6 @@ var projectTasksTool = createTool(
|
|
|
4532
4536
|
);
|
|
4533
4537
|
return helpers.success(JSON.stringify(taskForAgent(result.task), null, 2));
|
|
4534
4538
|
}
|
|
4535
|
-
case "set_gates": {
|
|
4536
|
-
if (!Array.isArray(args.gates)) {
|
|
4537
|
-
return helpers.error('Parameter "gates" (array) is required for action=set_gates');
|
|
4538
|
-
}
|
|
4539
|
-
const gates = sanitizeGates(args.gates);
|
|
4540
|
-
svc.setGateConfig(projectId, gates, actor);
|
|
4541
|
-
return helpers.success(JSON.stringify({ gates }, null, 2));
|
|
4542
|
-
}
|
|
4543
|
-
case "duplicate": {
|
|
4544
|
-
if (!args.taskId) return helpers.error('Parameter "taskId" is required for action=duplicate');
|
|
4545
|
-
const task = svc.duplicate(projectId, args.taskId, actor);
|
|
4546
|
-
return helpers.success(JSON.stringify(taskForAgent(task), null, 2));
|
|
4547
|
-
}
|
|
4548
4539
|
case "delete": {
|
|
4549
4540
|
if (!args.taskId) return helpers.error('Parameter "taskId" is required for action=delete');
|
|
4550
4541
|
const task = svc.get(projectId, args.taskId);
|
|
@@ -4558,14 +4549,6 @@ var projectTasksTool = createTool(
|
|
|
4558
4549
|
)
|
|
4559
4550
|
);
|
|
4560
4551
|
}
|
|
4561
|
-
case "reorder": {
|
|
4562
|
-
if (!args.taskId) return helpers.error('Parameter "taskId" is required for action=reorder');
|
|
4563
|
-
if (!args.status || args.index === void 0) {
|
|
4564
|
-
return helpers.error('Parameters "status" and "index" are required for action=reorder');
|
|
4565
|
-
}
|
|
4566
|
-
const task = svc.reorder(projectId, args.taskId, args.status, args.index);
|
|
4567
|
-
return helpers.success(JSON.stringify(taskForAgent(task), null, 2));
|
|
4568
|
-
}
|
|
4569
4552
|
default:
|
|
4570
4553
|
return helpers.error(`Unknown action: ${String(action)}`);
|
|
4571
4554
|
}
|
|
@@ -4611,18 +4594,6 @@ function sanitizeAttachments(raw) {
|
|
|
4611
4594
|
(a) => typeof a === "object" && a !== null && typeof a.id === "string" && typeof a.filename === "string"
|
|
4612
4595
|
);
|
|
4613
4596
|
}
|
|
4614
|
-
function sanitizeGates(raw) {
|
|
4615
|
-
return raw.map((g, i) => {
|
|
4616
|
-
const gate = g;
|
|
4617
|
-
return {
|
|
4618
|
-
id: typeof gate.id === "string" && gate.id ? gate.id : `gate_${i}`,
|
|
4619
|
-
name: typeof gate.name === "string" && gate.name ? gate.name : `Gate ${i + 1}`,
|
|
4620
|
-
description: typeof gate.description === "string" ? gate.description : "",
|
|
4621
|
-
required: gate.required !== false,
|
|
4622
|
-
variant: gate.variant === "ready" ? "ready" : "done"
|
|
4623
|
-
};
|
|
4624
|
-
});
|
|
4625
|
-
}
|
|
4626
4597
|
|
|
4627
4598
|
// src/server/tools/index.ts
|
|
4628
4599
|
var _builtInTools;
|
|
@@ -4905,4 +4876,4 @@ export {
|
|
|
4905
4876
|
getToolRegistryForAgent,
|
|
4906
4877
|
createToolRegistry
|
|
4907
4878
|
};
|
|
4908
|
-
//# sourceMappingURL=chunk-
|
|
4879
|
+
//# sourceMappingURL=chunk-2PQA3DHY.js.map
|
|
@@ -105,7 +105,7 @@ function resolveAgentDef(sessionManager, sessionId) {
|
|
|
105
105
|
}
|
|
106
106
|
async function buildCachedPrompt(sessionManager, sessionId, agentDef, modelName) {
|
|
107
107
|
const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
|
|
108
|
-
const { getToolRegistryForAgent } = await import("./tools-
|
|
108
|
+
const { getToolRegistryForAgent } = await import("./tools-2Q3GRECI.js");
|
|
109
109
|
const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
|
|
110
110
|
const toolFingerprint = getToolFingerprint(tools);
|
|
111
111
|
const allAgents = await loadAllAgentsDefault(sessionManager.getProjectWorkdir(sessionId));
|
|
@@ -124,7 +124,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef, modelName)
|
|
|
124
124
|
async function computeSessionHash(sessionManager, sessionId, modelName) {
|
|
125
125
|
const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
|
|
126
126
|
const agentDef = await resolveAgentDef(sessionManager, sessionId);
|
|
127
|
-
const { getToolRegistryForAgent } = await import("./tools-
|
|
127
|
+
const { getToolRegistryForAgent } = await import("./tools-2Q3GRECI.js");
|
|
128
128
|
const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
|
|
129
129
|
const toolFingerprint = getToolFingerprint(tools);
|
|
130
130
|
return computeDynamicContextHash(instructionContent, skills, toolFingerprint, modelName);
|
|
@@ -148,4 +148,4 @@ export {
|
|
|
148
148
|
computeSessionHash,
|
|
149
149
|
applyDynamicContext
|
|
150
150
|
};
|
|
151
|
-
//# sourceMappingURL=chunk-
|
|
151
|
+
//# sourceMappingURL=chunk-3PEYTWCS.js.map
|