reasonix 0.52.0 → 0.53.0
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 +1 -0
- package/README.zh-CN.md +1 -0
- package/dashboard/dist/app.css +1 -1
- package/dashboard/dist/app.js +13 -13
- package/dashboard/dist/app.js.map +1 -1
- package/dist/cli/{acp-NEUYWGUU.js → acp-ABNDGEYC.js} +63 -30
- package/dist/cli/acp-ABNDGEYC.js.map +1 -0
- package/dist/cli/chat-377YZV56.js +49 -0
- package/dist/cli/{chunk-FY5UERSG.js → chunk-2WZT27GR.js} +9 -9
- package/dist/cli/{chunk-B4MOGWHW.js → chunk-4EHRIP5U.js} +7 -7
- package/dist/cli/chunk-4EHRIP5U.js.map +1 -0
- package/dist/cli/{chunk-RCC73DWQ.js → chunk-4SBXAHR6.js} +4 -4
- package/dist/cli/{chunk-5YLEKX2V.js → chunk-4V4TKQMB.js} +4 -4
- package/dist/cli/{chunk-5YLEKX2V.js.map → chunk-4V4TKQMB.js.map} +1 -1
- package/dist/cli/chunk-7ZO6H6ZK.js +54 -0
- package/dist/cli/chunk-7ZO6H6ZK.js.map +1 -0
- package/dist/cli/{chunk-3OXD5CBM.js → chunk-A6GSOADP.js} +17870 -16070
- package/dist/cli/chunk-A6GSOADP.js.map +1 -0
- package/dist/cli/{chunk-Z663GVUB.js → chunk-APOSDBAU.js} +3 -3
- package/dist/cli/{chunk-CTRM32BP.js → chunk-B5JISV5I.js} +2 -2
- package/dist/cli/{chunk-HNZ4727T.js → chunk-DFHI2MRB.js} +412 -152
- package/dist/cli/chunk-DFHI2MRB.js.map +1 -0
- package/dist/cli/{chunk-CGVW5W7N.js → chunk-EPIHGOM3.js} +14 -14
- package/dist/cli/{chunk-CGVW5W7N.js.map → chunk-EPIHGOM3.js.map} +1 -1
- package/dist/cli/{chunk-77JIQ7SL.js → chunk-EQFZIHKJ.js} +8 -8
- package/dist/cli/chunk-EQFZIHKJ.js.map +1 -0
- package/dist/cli/{chunk-XNMXVL6C.js → chunk-FB27YXPX.js} +2 -2
- package/dist/cli/{chunk-ARBGTNHM.js → chunk-FK7NXDRP.js} +2 -2
- package/dist/cli/{chunk-AOYUW3HR.js → chunk-GCNBIWK7.js} +22 -2
- package/dist/cli/chunk-GCNBIWK7.js.map +1 -0
- package/dist/cli/{chunk-XBYHNZ5Z.js → chunk-GMQVINZK.js} +13 -5
- package/dist/cli/chunk-GMQVINZK.js.map +1 -0
- package/dist/cli/{chunk-MVLPXZAA.js → chunk-GOASYYZ4.js} +43 -11
- package/dist/cli/{chunk-MVLPXZAA.js.map → chunk-GOASYYZ4.js.map} +1 -1
- package/dist/cli/{chunk-WPY7AFS6.js → chunk-I4SH5Z7S.js} +2 -2
- package/dist/cli/{chunk-MW64SQUE.js → chunk-J26XOB2T.js} +2 -2
- package/dist/cli/{chunk-DLTE4GBY.js → chunk-J4MYMBJ7.js} +3 -3
- package/dist/cli/{chunk-CFJY64UA.js → chunk-LRO63VNK.js} +2 -2
- package/dist/cli/{chunk-XUZHBQSM.js → chunk-MQJR7YQ2.js} +2 -2
- package/dist/cli/{chunk-CPCUMMSR.js → chunk-NVI4XPOQ.js} +3 -3
- package/dist/cli/{chunk-RHQOGG43.js → chunk-OHSVEXFF.js} +3 -3
- package/dist/cli/chunk-OHSVEXFF.js.map +1 -0
- package/dist/cli/{chunk-AMSK3ZLB.js → chunk-P5SUHDUQ.js} +2 -2
- package/dist/cli/{chunk-GFJJEW3Z.js → chunk-QSKDP3OS.js} +55 -5
- package/dist/cli/chunk-QSKDP3OS.js.map +1 -0
- package/dist/cli/{chunk-D6WRFR6V.js → chunk-R7JMQMLD.js} +6 -5
- package/dist/cli/chunk-R7JMQMLD.js.map +1 -0
- package/dist/cli/{chunk-VVPV5HU6.js → chunk-RRZIIMAF.js} +2 -2
- package/dist/cli/{chunk-GNRKXRRE.js → chunk-S3QII236.js} +369 -359
- package/dist/cli/{chunk-GNRKXRRE.js.map → chunk-S3QII236.js.map} +1 -1
- package/dist/cli/{chunk-HI6THNAZ.js → chunk-TGP7JGHN.js} +32 -14
- package/dist/cli/chunk-TGP7JGHN.js.map +1 -0
- package/dist/cli/{chunk-CLHMV6OL.js → chunk-U7G72DHQ.js} +83 -42
- package/dist/cli/chunk-U7G72DHQ.js.map +1 -0
- package/dist/cli/{chunk-OMNRXZNA.js → chunk-URAI4YRL.js} +2 -2
- package/dist/cli/{chunk-6QBUXA73.js → chunk-V4AXMN4X.js} +2 -2
- package/dist/cli/{chunk-2W4F3RIZ.js → chunk-XHP6NYOT.js} +3 -2
- package/dist/cli/{chunk-2W4F3RIZ.js.map → chunk-XHP6NYOT.js.map} +1 -1
- package/dist/cli/{code-WN6D4VZO.js → code-JPFZJYVW.js} +34 -34
- package/dist/cli/{commands-DHETOY7O.js → commands-IUL2CLKH.js} +4 -4
- package/dist/cli/{commit-BBUYAKZV.js → commit-JT7LYBTL.js} +3 -3
- package/dist/cli/{config-KV7VV5LG.js → config-T4RWI5NG.js} +6 -2
- package/dist/cli/{desktop-LJVXWXNF.js → desktop-AUBW2SLL.js} +122 -38
- package/dist/cli/desktop-AUBW2SLL.js.map +1 -0
- package/dist/cli/devtools-O5HOMAGZ.js +3 -0
- package/dist/cli/diff-NINZHUJR.js +165 -0
- package/dist/cli/diff-NINZHUJR.js.map +1 -0
- package/dist/cli/{doctor-GI5LOEZL.js → doctor-OMAYGY4F.js} +10 -10
- package/dist/cli/{events-LBKMLFM4.js → events-5IVFJ4H3.js} +5 -5
- package/dist/cli/index.js +38 -38
- package/dist/cli/{mcp-DKEJK5ND.js → mcp-ECGJACAP.js} +3 -3
- package/dist/cli/{mcp-browse-V7KWDY32.js → mcp-browse-NGEOHVJB.js} +15 -15
- package/dist/cli/mcp-browse-NGEOHVJB.js.map +1 -0
- package/dist/cli/{mcp-inspect-MTABNHVM.js → mcp-inspect-ZIMNRG7G.js} +5 -5
- package/dist/cli/{prompt-ATI7DKHF.js → prompt-JCC3A7AA.js} +5 -5
- package/dist/cli/{prune-sessions-YQQSZTZS.js → prune-sessions-TE4BJYO2.js} +4 -4
- package/dist/cli/{replay-ZJQ4I4CJ.js → replay-2UUTCRTG.js} +29 -29
- package/dist/cli/replay-2UUTCRTG.js.map +1 -0
- package/dist/cli/{run-HFPRNWJY.js → run-ABQYOPVM.js} +22 -22
- package/dist/cli/{server-UHKO2VVM.js → server-MPCXIW2O.js} +27 -25
- package/dist/cli/{server-UHKO2VVM.js.map → server-MPCXIW2O.js.map} +1 -1
- package/dist/cli/{sessions-IQEWWUH3.js → sessions-YBPRGIAF.js} +16 -16
- package/dist/cli/{setup-5BYKCL62.js → setup-A34LF2QE.js} +42 -42
- package/dist/cli/setup-A34LF2QE.js.map +1 -0
- package/dist/cli/{stats-OFCGOQMZ.js → stats-GKG5JZQX.js} +6 -6
- package/dist/cli/stats-GKG5JZQX.js.map +1 -0
- package/dist/cli/{version-EODUFAAI.js → version-JD6QSM4X.js} +16 -16
- package/dist/index.d.ts +36 -5
- package/dist/index.js +443 -73
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
- package/dist/cli/acp-NEUYWGUU.js.map +0 -1
- package/dist/cli/chat-QA6IVFJD.js +0 -49
- package/dist/cli/chunk-3OXD5CBM.js.map +0 -1
- package/dist/cli/chunk-77JIQ7SL.js.map +0 -1
- package/dist/cli/chunk-AOYUW3HR.js.map +0 -1
- package/dist/cli/chunk-B4MOGWHW.js.map +0 -1
- package/dist/cli/chunk-CLHMV6OL.js.map +0 -1
- package/dist/cli/chunk-D6WRFR6V.js.map +0 -1
- package/dist/cli/chunk-GFJJEW3Z.js.map +0 -1
- package/dist/cli/chunk-HI6THNAZ.js.map +0 -1
- package/dist/cli/chunk-HNZ4727T.js.map +0 -1
- package/dist/cli/chunk-I3NE5S63.js +0 -54
- package/dist/cli/chunk-I3NE5S63.js.map +0 -1
- package/dist/cli/chunk-RHQOGG43.js.map +0 -1
- package/dist/cli/chunk-XBYHNZ5Z.js.map +0 -1
- package/dist/cli/desktop-LJVXWXNF.js.map +0 -1
- package/dist/cli/diff-2JHMQAHI.js +0 -165
- package/dist/cli/diff-2JHMQAHI.js.map +0 -1
- package/dist/cli/mcp-browse-V7KWDY32.js.map +0 -1
- package/dist/cli/replay-ZJQ4I4CJ.js.map +0 -1
- package/dist/cli/setup-5BYKCL62.js.map +0 -1
- /package/dist/cli/{chat-QA6IVFJD.js.map → chat-377YZV56.js.map} +0 -0
- /package/dist/cli/{chunk-FY5UERSG.js.map → chunk-2WZT27GR.js.map} +0 -0
- /package/dist/cli/{chunk-RCC73DWQ.js.map → chunk-4SBXAHR6.js.map} +0 -0
- /package/dist/cli/{chunk-Z663GVUB.js.map → chunk-APOSDBAU.js.map} +0 -0
- /package/dist/cli/{chunk-CTRM32BP.js.map → chunk-B5JISV5I.js.map} +0 -0
- /package/dist/cli/{chunk-XNMXVL6C.js.map → chunk-FB27YXPX.js.map} +0 -0
- /package/dist/cli/{chunk-ARBGTNHM.js.map → chunk-FK7NXDRP.js.map} +0 -0
- /package/dist/cli/{chunk-WPY7AFS6.js.map → chunk-I4SH5Z7S.js.map} +0 -0
- /package/dist/cli/{chunk-MW64SQUE.js.map → chunk-J26XOB2T.js.map} +0 -0
- /package/dist/cli/{chunk-DLTE4GBY.js.map → chunk-J4MYMBJ7.js.map} +0 -0
- /package/dist/cli/{chunk-CFJY64UA.js.map → chunk-LRO63VNK.js.map} +0 -0
- /package/dist/cli/{chunk-XUZHBQSM.js.map → chunk-MQJR7YQ2.js.map} +0 -0
- /package/dist/cli/{chunk-CPCUMMSR.js.map → chunk-NVI4XPOQ.js.map} +0 -0
- /package/dist/cli/{chunk-AMSK3ZLB.js.map → chunk-P5SUHDUQ.js.map} +0 -0
- /package/dist/cli/{chunk-VVPV5HU6.js.map → chunk-RRZIIMAF.js.map} +0 -0
- /package/dist/cli/{chunk-OMNRXZNA.js.map → chunk-URAI4YRL.js.map} +0 -0
- /package/dist/cli/{chunk-6QBUXA73.js.map → chunk-V4AXMN4X.js.map} +0 -0
- /package/dist/cli/{code-WN6D4VZO.js.map → code-JPFZJYVW.js.map} +0 -0
- /package/dist/cli/{commands-DHETOY7O.js.map → commands-IUL2CLKH.js.map} +0 -0
- /package/dist/cli/{commit-BBUYAKZV.js.map → commit-JT7LYBTL.js.map} +0 -0
- /package/dist/cli/{config-KV7VV5LG.js.map → config-T4RWI5NG.js.map} +0 -0
- /package/dist/cli/{doctor-GI5LOEZL.js.map → devtools-O5HOMAGZ.js.map} +0 -0
- /package/dist/cli/{prompt-ATI7DKHF.js.map → doctor-OMAYGY4F.js.map} +0 -0
- /package/dist/cli/{events-LBKMLFM4.js.map → events-5IVFJ4H3.js.map} +0 -0
- /package/dist/cli/{mcp-DKEJK5ND.js.map → mcp-ECGJACAP.js.map} +0 -0
- /package/dist/cli/{mcp-inspect-MTABNHVM.js.map → mcp-inspect-ZIMNRG7G.js.map} +0 -0
- /package/dist/cli/{stats-OFCGOQMZ.js.map → prompt-JCC3A7AA.js.map} +0 -0
- /package/dist/cli/{prune-sessions-YQQSZTZS.js.map → prune-sessions-TE4BJYO2.js.map} +0 -0
- /package/dist/cli/{run-HFPRNWJY.js.map → run-ABQYOPVM.js.map} +0 -0
- /package/dist/cli/{sessions-IQEWWUH3.js.map → sessions-YBPRGIAF.js.map} +0 -0
- /package/dist/cli/{version-EODUFAAI.js.map → version-JD6QSM4X.js.map} +0 -0
|
@@ -2,41 +2,41 @@
|
|
|
2
2
|
import { createRequire as __cr } from 'node:module'; if (typeof globalThis.require === 'undefined') { globalThis.require = __cr(import.meta.url); }
|
|
3
3
|
import {
|
|
4
4
|
RecordView
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7ZO6H6ZK.js";
|
|
6
6
|
import {
|
|
7
7
|
Bar,
|
|
8
8
|
ChromeRule
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EQFZIHKJ.js";
|
|
10
10
|
import {
|
|
11
11
|
computeCumulativeStats,
|
|
12
12
|
groupRecordsByTurn,
|
|
13
13
|
replayFromFile
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-R7JMQMLD.js";
|
|
15
|
+
import "./chunk-V4AXMN4X.js";
|
|
15
16
|
import {
|
|
16
17
|
COLOR,
|
|
17
18
|
GRADIENT
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-OHSVEXFF.js";
|
|
19
20
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
bv,
|
|
25
|
-
fc,
|
|
21
|
+
Box_default,
|
|
22
|
+
Static,
|
|
23
|
+
Text,
|
|
24
|
+
renderSync,
|
|
26
25
|
require_react,
|
|
27
26
|
stringWidth,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
useStdout,
|
|
28
|
+
use_app_default,
|
|
29
|
+
use_input_default
|
|
30
|
+
} from "./chunk-A6GSOADP.js";
|
|
31
|
+
import "./chunk-QSKDP3OS.js";
|
|
31
32
|
import "./chunk-25T6CVUP.js";
|
|
32
|
-
import "./chunk-6QBUXA73.js";
|
|
33
33
|
import {
|
|
34
34
|
t
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-U7G72DHQ.js";
|
|
36
36
|
import {
|
|
37
37
|
formatBalance,
|
|
38
38
|
formatCost
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-GCNBIWK7.js";
|
|
40
40
|
import {
|
|
41
41
|
__toESM
|
|
42
42
|
} from "./chunk-TUK7OWJA.js";
|
|
@@ -62,7 +62,7 @@ function StatsPanel({
|
|
|
62
62
|
sessionName
|
|
63
63
|
}) {
|
|
64
64
|
const coldStart = summary.turns <= COLD_START_TURNS;
|
|
65
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
65
|
+
return /* @__PURE__ */ import_react.default.createElement(Box_default, { flexDirection: "column", paddingX: 1 }, /* @__PURE__ */ import_react.default.createElement(
|
|
66
66
|
ChromeRow,
|
|
67
67
|
{
|
|
68
68
|
editMode,
|
|
@@ -94,7 +94,7 @@ function ChromeRow({
|
|
|
94
94
|
const costLabel = `[${formatCost(summary.totalCostUsd, balance?.currency)}]`;
|
|
95
95
|
const cacheLabel = "[c \u25B0\u25B0\u25B0\u25B0\u25B0\u25B0 100%]";
|
|
96
96
|
const updateLabel = updateAvailable ? `\u2191 ${updateAvailable}` : "";
|
|
97
|
-
const { stdout } =
|
|
97
|
+
const { stdout } = useStdout();
|
|
98
98
|
const cols = (stdout?.columns ?? 80) - 2;
|
|
99
99
|
const SEP_DOT = stringWidth(" \xB7 ");
|
|
100
100
|
const SEP_ARROW = stringWidth(" \u203A ");
|
|
@@ -115,15 +115,15 @@ function ChromeRow({
|
|
|
115
115
|
if (showSession) budget -= sessionW;
|
|
116
116
|
const showUpdate = updateW > 0 && budget >= updateW;
|
|
117
117
|
if (showUpdate) budget -= updateW;
|
|
118
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
119
|
-
|
|
118
|
+
return /* @__PURE__ */ import_react.default.createElement(Box_default, null, /* @__PURE__ */ import_react.default.createElement(Text, { bold: true, color: GRADIENT[0] }, "\u25C8 "), /* @__PURE__ */ import_react.default.createElement(Text, { color: COLOR.brand, bold: true }, "reasonix"), projectName ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(Text, { color: COLOR.info, dim: true }, " \xB7 "), /* @__PURE__ */ import_react.default.createElement(Text, null, projectName), showSession && sessionName ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(Text, { color: COLOR.info, dim: true }, " \u203A "), /* @__PURE__ */ import_react.default.createElement(Text, { color: COLOR.info }, sessionName)) : null) : null, /* @__PURE__ */ import_react.default.createElement(Box_default, { flexGrow: 1 }), showUpdate ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(Text, { color: COLOR.warn, bold: true }, updateLabel), /* @__PURE__ */ import_react.default.createElement(Text, null, " ")) : null, modePill ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(Text, { color: modePill.color, bold: true }, `[${modePill.label}]`), /* @__PURE__ */ import_react.default.createElement(Text, null, " ")) : null, /* @__PURE__ */ import_react.default.createElement(
|
|
119
|
+
Text,
|
|
120
120
|
{
|
|
121
121
|
color: summary.turns === 0 || coldStart ? COLOR.info : sessionCostColor(summary.totalCostUsd),
|
|
122
122
|
bold: summary.turns > 0 && !coldStart,
|
|
123
|
-
|
|
123
|
+
dim: summary.turns === 0 || coldStart
|
|
124
124
|
},
|
|
125
125
|
costLabel
|
|
126
|
-
), showBalance && balance ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
|
|
126
|
+
), showBalance && balance ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(Text, null, " "), /* @__PURE__ */ import_react.default.createElement(Text, { color: balance.total < 1 ? COLOR.err : balance.total < 5 ? COLOR.warn : COLOR.ok }, balanceLabel)) : null, showCache ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(Text, null, " "), /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, "["), /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, "c "), /* @__PURE__ */ import_react.default.createElement(
|
|
127
127
|
Bar,
|
|
128
128
|
{
|
|
129
129
|
ratio: summary.cacheHitRatio,
|
|
@@ -131,7 +131,7 @@ function ChromeRow({
|
|
|
131
131
|
cells: 6,
|
|
132
132
|
dim: coldStart
|
|
133
133
|
}
|
|
134
|
-
), /* @__PURE__ */ import_react.default.createElement(
|
|
134
|
+
), /* @__PURE__ */ import_react.default.createElement(Text, null, " "), /* @__PURE__ */ import_react.default.createElement(Text, { color: coldStart ? void 0 : cacheColor, dim: coldStart }, coldStart && summary.turns === 0 ? "\u2014" : `${cachePct}%`), /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, "]")) : null);
|
|
135
135
|
}
|
|
136
136
|
function pickModePill(planMode, editMode) {
|
|
137
137
|
if (planMode) return { label: t("statsPanel.modePlan"), color: COLOR.err };
|
|
@@ -143,7 +143,7 @@ function pickModePill(planMode, editMode) {
|
|
|
143
143
|
function BudgetRow({ spent, cap }) {
|
|
144
144
|
const pct = Math.max(0, spent / cap * 100);
|
|
145
145
|
const color = pct >= 100 ? "#f87171" : pct >= 80 ? "#fbbf24" : "#94a3b8";
|
|
146
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
146
|
+
return /* @__PURE__ */ import_react.default.createElement(Box_default, null, /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, t("statsPanel.budget")), /* @__PURE__ */ import_react.default.createElement(Text, { color }, `$${spent.toFixed(4)} / $${cap.toFixed(2)}`, /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, ` (${pct.toFixed(0)}%)`)));
|
|
147
147
|
}
|
|
148
148
|
function sessionCostColor(cost) {
|
|
149
149
|
if (cost <= 0) return void 0;
|
|
@@ -154,10 +154,10 @@ function sessionCostColor(cost) {
|
|
|
154
154
|
|
|
155
155
|
// src/cli/ui/ReplayApp.tsx
|
|
156
156
|
function ReplayApp({ meta, pages }) {
|
|
157
|
-
const { exit } =
|
|
157
|
+
const { exit } = use_app_default();
|
|
158
158
|
const maxIdx = Math.max(0, pages.length - 1);
|
|
159
159
|
const [idx, setIdx] = (0, import_react2.useState)(maxIdx);
|
|
160
|
-
|
|
160
|
+
use_input_default((input, key) => {
|
|
161
161
|
if (input === "q" || key.ctrl && input === "c") {
|
|
162
162
|
exit();
|
|
163
163
|
return;
|
|
@@ -192,7 +192,7 @@ function ReplayApp({ meta, pages }) {
|
|
|
192
192
|
const prefixHash = cumStats.prefixHashes.length === 1 ? cumStats.prefixHashes[0].slice(0, 16) : cumStats.prefixHashes.length === 0 ? t("replayApp.untracked") : t("replayApp.churned", { count: cumStats.prefixHashes.length });
|
|
193
193
|
const currentPage = pages[idx];
|
|
194
194
|
const progressLabel = pages.length === 0 ? t("replayApp.emptyTranscript") : t("replayApp.turnProgress", { current: idx + 1, total: pages.length });
|
|
195
|
-
return /* @__PURE__ */ import_react2.default.createElement(
|
|
195
|
+
return /* @__PURE__ */ import_react2.default.createElement(Box_default, { flexDirection: "column" }, /* @__PURE__ */ import_react2.default.createElement(StatsPanel, { summary }), /* @__PURE__ */ import_react2.default.createElement(Box_default, { flexDirection: "column", marginTop: 1, paddingX: 1 }, /* @__PURE__ */ import_react2.default.createElement(Box_default, { justifyContent: "space-between" }, /* @__PURE__ */ import_react2.default.createElement(Text, { color: "ansi:cyan", bold: true }, progressLabel), meta ? /* @__PURE__ */ import_react2.default.createElement(Text, { dim: true }, meta.source, meta.task ? ` \xB7 ${meta.task}` : "", meta.mode ? ` \xB7 ${meta.mode}` : "") : null), currentPage ? /* @__PURE__ */ import_react2.default.createElement(Static, { items: currentPage.records.map((rec, i) => ({ key: `${idx}-${i}`, rec })) }, ({ key, rec }) => /* @__PURE__ */ import_react2.default.createElement(RecordView, { key, rec })) : /* @__PURE__ */ import_react2.default.createElement(Text, { dim: true, italic: true }, t("replayApp.noRecords"))), /* @__PURE__ */ import_react2.default.createElement(Box_default, { marginTop: 1, paddingX: 1, borderStyle: "single", borderColor: "ansi:blackBright" }, /* @__PURE__ */ import_react2.default.createElement(Text, { dim: true }, /* @__PURE__ */ import_react2.default.createElement(Text, { bold: true }, "j"), "/", /* @__PURE__ */ import_react2.default.createElement(Text, { bold: true }, "\u2193"), "/", /* @__PURE__ */ import_react2.default.createElement(Text, { bold: true }, "space"), " next \xB7 ", /* @__PURE__ */ import_react2.default.createElement(Text, { bold: true }, "k"), "/", /* @__PURE__ */ import_react2.default.createElement(Text, { bold: true }, "\u2191"), " prev \xB7 ", /* @__PURE__ */ import_react2.default.createElement(Text, { bold: true }, "g"), " first \xB7 ", /* @__PURE__ */ import_react2.default.createElement(Text, { bold: true }, "G"), " last \xB7", " ", /* @__PURE__ */ import_react2.default.createElement(Text, { bold: true }, "q"), " quit")));
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
// src/cli/commands/replay.ts
|
|
@@ -204,7 +204,7 @@ async function replayCommand(opts) {
|
|
|
204
204
|
}
|
|
205
205
|
const { parsed } = replayFromFile(opts.path);
|
|
206
206
|
const pages = groupRecordsByTurn(parsed.records);
|
|
207
|
-
const { waitUntilExit } =
|
|
207
|
+
const { waitUntilExit } = renderSync(import_react3.default.createElement(ReplayApp, { meta: parsed.meta, pages }), {
|
|
208
208
|
exitOnCtrlC: true,
|
|
209
209
|
patchConsole: false
|
|
210
210
|
});
|
|
@@ -279,4 +279,4 @@ function oneLine(s, max = 200) {
|
|
|
279
279
|
export {
|
|
280
280
|
replayCommand
|
|
281
281
|
};
|
|
282
|
-
//# sourceMappingURL=replay-
|
|
282
|
+
//# sourceMappingURL=replay-2UUTCRTG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cli/commands/replay.ts","../../src/cli/ui/ReplayApp.tsx","../../src/cli/ui/StatsPanel.tsx"],"sourcesContent":["import { render } from \"ink\";\nimport React from \"react\";\nimport type { TranscriptRecord } from \"../../transcript/log.js\";\nimport { groupRecordsByTurn, replayFromFile } from \"../../transcript/replay.js\";\nimport { ReplayApp } from \"../ui/ReplayApp.js\";\n\nexport interface ReplayOptions {\n path: string;\n head?: number;\n tail?: number;\n /** Force stdout pretty-print mode (no Ink TUI). Also auto-enabled when stdout is not a TTY. */\n print?: boolean;\n}\n\nexport async function replayCommand(opts: ReplayOptions): Promise<void> {\n const wantPrint =\n opts.print || !process.stdout.isTTY || opts.head !== undefined || opts.tail !== undefined;\n if (wantPrint) {\n printReplay(opts);\n return;\n }\n\n const { parsed } = replayFromFile(opts.path);\n const pages = groupRecordsByTurn(parsed.records);\n const { waitUntilExit } = render(React.createElement(ReplayApp, { meta: parsed.meta, pages }), {\n exitOnCtrlC: true,\n patchConsole: false,\n });\n await waitUntilExit();\n}\n\n// stdout pretty-print path (original behavior, preserved for piping / CI)\n\nfunction printReplay(opts: ReplayOptions): void {\n const { parsed, stats } = replayFromFile(opts.path);\n\n if (parsed.meta) {\n const m = parsed.meta;\n const bits: string[] = [`source=${m.source}`];\n if (m.model) bits.push(`model=${m.model}`);\n if (m.task) bits.push(`task=${m.task}`);\n if (m.mode) bits.push(`mode=${m.mode}`);\n if (m.repeat !== undefined) bits.push(`repeat=${m.repeat}`);\n bits.push(`started=${m.startedAt}`);\n console.log(`[meta] ${bits.join(\" \")}`);\n console.log(\"\");\n }\n\n const records = sliceRecords(parsed.records, opts);\n for (const rec of records) {\n renderRecord(rec);\n }\n\n console.log(\"\");\n console.log(\"── summary ─────────────────────────────────────────\");\n console.log(`model calls: ${stats.turns}`);\n console.log(`user turns: ${stats.userTurns}`);\n console.log(`tool calls: ${stats.toolCalls}`);\n console.log(`cache hit: ${(stats.cacheHitRatio * 100).toFixed(1)}%`);\n console.log(`cost: $${stats.totalCostUsd.toFixed(6)}`);\n console.log(`claude equivalent: $${stats.claudeEquivalentUsd.toFixed(6)}`);\n console.log(`savings vs claude: ${stats.savingsVsClaudePct.toFixed(1)}%`);\n console.log(`models: ${stats.models.join(\", \") || \"—\"}`);\n console.log(`prefix hashes: ${stats.prefixHashes.length} distinct`);\n if (stats.prefixHashes.length === 1) {\n console.log(` (byte-stable prefix: ${stats.prefixHashes[0]?.slice(0, 16)}…)`);\n } else if (stats.prefixHashes.length > 1) {\n console.log(\" (prefix churned — cache-hostile session)\");\n }\n}\n\nfunction sliceRecords(records: TranscriptRecord[], opts: ReplayOptions): TranscriptRecord[] {\n if (opts.head !== undefined && opts.head > 0) return records.slice(0, opts.head);\n if (opts.tail !== undefined && opts.tail > 0) return records.slice(-opts.tail);\n return records;\n}\n\nfunction renderRecord(rec: TranscriptRecord): void {\n const turn = `[t${rec.turn}]`;\n if (rec.role === \"user\") {\n console.log(`${turn} USER: ${oneLine(rec.content)}`);\n } else if (rec.role === \"assistant_final\") {\n const cost = rec.cost !== undefined ? ` $${rec.cost.toFixed(6)}` : \"\";\n const cache =\n rec.usage &&\n (rec.usage.prompt_cache_hit_tokens !== undefined ||\n rec.usage.prompt_cache_miss_tokens !== undefined)\n ? (() => {\n const hit = rec.usage!.prompt_cache_hit_tokens ?? 0;\n const miss = rec.usage!.prompt_cache_miss_tokens ?? 0;\n const total = hit + miss;\n return total > 0 ? ` cache=${((hit / total) * 100).toFixed(1)}%` : \"\";\n })()\n : \"\";\n console.log(`${turn} AGENT:${cost}${cache} ${oneLine(rec.content)}`);\n } else if (rec.role === \"tool\") {\n const args = rec.args ? ` args=${oneLine(rec.args, 80)}` : \"\";\n console.log(`${turn} TOOL ${rec.tool ?? \"?\"}:${args} → ${oneLine(rec.content, 120)}`);\n } else if (rec.role === \"error\") {\n console.log(`${turn} ERROR: ${rec.error ?? rec.content}`);\n } else if (rec.role === \"done\") {\n // Suppress — visually noisy, not informative in replay.\n } else {\n console.log(`${turn} ${rec.role}: ${oneLine(rec.content)}`);\n }\n}\n\nfunction oneLine(s: string, max = 200): string {\n const collapsed = s.replace(/\\s+/g, \" \").trim();\n return collapsed.length > max ? `${collapsed.slice(0, max)}…` : collapsed;\n}\n","/**\n * Ink TUI for `reasonix replay`. Read-only: no input box, no loop.\n * j/k navigation across turn-pages, cumulative stats sidebar updates\n * as you move through time.\n *\n * The navigation logic (grouping records into pages, computing cumulative\n * stats) lives in src/replay.ts as pure functions; this file is just\n * presentation + key bindings.\n */\n\nimport { Box, Static, Text, useApp, useInput } from \"ink\";\nimport React, { useMemo, useState } from \"react\";\nimport { t } from \"../../i18n/index.js\";\nimport type { TranscriptMeta } from \"../../transcript/log.js\";\nimport { type TurnPage, computeCumulativeStats } from \"../../transcript/replay.js\";\nimport { RecordView } from \"./RecordView.js\";\nimport { StatsPanel } from \"./StatsPanel.js\";\n\nexport interface ReplayAppProps {\n meta: TranscriptMeta | null;\n pages: TurnPage[];\n}\n\nexport function ReplayApp({ meta, pages }: ReplayAppProps) {\n const { exit } = useApp();\n const maxIdx = Math.max(0, pages.length - 1);\n // Start at the last page — more useful than \"start from the beginning\"\n // in practice: users mostly want to see the summary + last turn first.\n const [idx, setIdx] = useState(maxIdx);\n\n useInput((input, key) => {\n if (input === \"q\" || (key.ctrl && input === \"c\")) {\n exit();\n return;\n }\n if (input === \"j\" || key.downArrow || input === \" \" || key.return) {\n setIdx((i) => Math.min(maxIdx, i + 1));\n } else if (input === \"k\" || key.upArrow) {\n setIdx((i) => Math.max(0, i - 1));\n } else if (input === \"g\") {\n setIdx(0);\n } else if (input === \"G\") {\n setIdx(maxIdx);\n } else if (input === \"h\" || key.leftArrow) {\n setIdx(0);\n } else if (input === \"l\" || key.rightArrow) {\n setIdx(maxIdx);\n }\n });\n\n const cumStats = useMemo(() => computeCumulativeStats(pages, idx), [pages, idx]);\n\n const summary = {\n turns: cumStats.turns,\n totalCostUsd: cumStats.totalCostUsd,\n totalInputCostUsd: cumStats.totalInputCostUsd,\n totalOutputCostUsd: cumStats.totalOutputCostUsd,\n claudeEquivalentUsd: cumStats.claudeEquivalentUsd,\n savingsVsClaudePct: cumStats.savingsVsClaudePct,\n cacheHitRatio: cumStats.cacheHitRatio,\n // Replay is read-only — no live last-turn prompt tokens to show.\n lastPromptTokens: 0,\n lastTurnCostUsd: 0,\n };\n\n const prefixHash =\n cumStats.prefixHashes.length === 1\n ? cumStats.prefixHashes[0]!.slice(0, 16)\n : cumStats.prefixHashes.length === 0\n ? t(\"replayApp.untracked\")\n : t(\"replayApp.churned\", { count: cumStats.prefixHashes.length });\n\n const currentPage = pages[idx];\n const progressLabel =\n pages.length === 0\n ? t(\"replayApp.emptyTranscript\")\n : t(\"replayApp.turnProgress\", { current: idx + 1, total: pages.length });\n\n return (\n <Box flexDirection=\"column\">\n <StatsPanel summary={summary} />\n\n <Box flexDirection=\"column\" marginTop={1} paddingX={1}>\n <Box justifyContent=\"space-between\">\n <Text color=\"ansi:cyan\" bold>\n {progressLabel}\n </Text>\n {meta ? (\n <Text dim>\n {meta.source}\n {meta.task ? ` · ${meta.task}` : \"\"}\n {meta.mode ? ` · ${meta.mode}` : \"\"}\n </Text>\n ) : null}\n </Box>\n\n {currentPage ? (\n <Static items={currentPage.records.map((rec, i) => ({ key: `${idx}-${i}`, rec }))}>\n {({ key, rec }) => <RecordView key={key} rec={rec} />}\n </Static>\n ) : (\n <Text dim italic>\n {t(\"replayApp.noRecords\")}\n </Text>\n )}\n </Box>\n\n <Box marginTop={1} paddingX={1} borderStyle=\"single\" borderColor=\"ansi:blackBright\">\n <Text dim>\n <Text bold>j</Text>/<Text bold>↓</Text>/<Text bold>space</Text> next · <Text bold>k</Text>\n /<Text bold>↑</Text> prev · <Text bold>g</Text> first · <Text bold>G</Text> last ·{\" \"}\n <Text bold>q</Text> quit\n </Text>\n </Box>\n </Box>\n );\n}\n","import { basename } from \"node:path\";\nimport { Box, type Color, Text, useStdout } from \"ink\";\nimport React from \"react\";\nimport stringWidth from \"string-width\";\nimport type { EditMode } from \"../../config.js\";\nimport { t } from \"../../i18n/index.js\";\nimport type { SessionSummary } from \"../../telemetry/stats.js\";\nimport { Bar, ChromeRule } from \"./primitives.js\";\nimport { COLOR, GRADIENT } from \"./theme.js\";\nimport { formatBalance, formatCost } from \"./theme/tokens.js\";\n\nconst COLD_START_TURNS = 3;\n\nexport interface StatsPanelProps {\n summary: SessionSummary;\n planMode?: boolean;\n editMode?: EditMode;\n balance?: { currency: string; total: number } | null;\n updateAvailable?: string | null;\n budgetUsd?: number | null;\n rootDir?: string;\n sessionName?: string | null;\n}\n\nexport function StatsPanel({\n summary,\n planMode,\n editMode,\n balance,\n updateAvailable,\n budgetUsd,\n rootDir,\n sessionName,\n}: StatsPanelProps) {\n const coldStart = summary.turns <= COLD_START_TURNS;\n return (\n <Box flexDirection=\"column\" paddingX={1}>\n <ChromeRow\n editMode={editMode}\n planMode={planMode}\n summary={summary}\n coldStart={coldStart}\n rootDir={rootDir}\n sessionName={sessionName ?? null}\n updateAvailable={updateAvailable}\n balance={balance ?? null}\n />\n <ChromeRule />\n {budgetUsd !== null && budgetUsd !== undefined ? (\n <BudgetRow spent={summary.totalCostUsd} cap={budgetUsd} />\n ) : null}\n </Box>\n );\n}\n\nfunction ChromeRow({\n editMode,\n planMode,\n summary,\n coldStart,\n rootDir,\n sessionName,\n updateAvailable,\n balance,\n}: {\n editMode?: EditMode;\n planMode?: boolean;\n summary: SessionSummary;\n coldStart: boolean;\n rootDir?: string;\n sessionName?: string | null;\n updateAvailable?: string | null;\n balance?: { currency: string; total: number } | null;\n}) {\n const modePill = pickModePill(planMode, editMode);\n const projectName = rootDir ? basename(rootDir) : null;\n const cachePct = (summary.cacheHitRatio * 100).toFixed(1);\n const cacheColor =\n summary.cacheHitRatio >= 0.7 ? COLOR.ok : summary.cacheHitRatio >= 0.4 ? COLOR.warn : COLOR.err;\n const balanceLabel = balance\n ? `[${formatBalance(balance.total, balance.currency, { label: true })}]`\n : \"\";\n const costLabel = `[${formatCost(summary.totalCostUsd, balance?.currency)}]`;\n const cacheLabel = \"[c ▰▰▰▰▰▰ 100%]\";\n const updateLabel = updateAvailable ? `↑ ${updateAvailable}` : \"\";\n\n // Greedy width-aware fit. Layout (every gap = 2 cells):\n // [brand][·project][›session]<spacer>[update][mode][cost][balance][cache]\n // Always shown: brand, project (if rootDir), mode (if set), cost.\n // Optional, dropped greedy by priority: balance > cache > session > update.\n const { stdout } = useStdout();\n const cols = (stdout?.columns ?? 80) - 2; // subtract paddingX={1} on both sides\n const SEP_DOT = stringWidth(\" · \");\n const SEP_ARROW = stringWidth(\" › \");\n const GAP = 2;\n\n const fixedLeft =\n stringWidth(\"◈ reasonix\") + (projectName ? SEP_DOT + stringWidth(projectName) : 0);\n const modeW = modePill ? GAP + stringWidth(`[${modePill.label}]`) : 0;\n const fixedRight = modeW + stringWidth(costLabel);\n let budget = cols - fixedLeft - fixedRight;\n\n const balW = balance ? GAP + stringWidth(balanceLabel) : 0;\n const cacheW = GAP + stringWidth(cacheLabel);\n const sessionW = sessionName ? SEP_ARROW + stringWidth(sessionName) : 0;\n const updateW = updateLabel ? GAP + stringWidth(updateLabel) : 0;\n\n const showBalance = balW > 0 && budget >= balW;\n if (showBalance) budget -= balW;\n const showCache = budget >= cacheW;\n if (showCache) budget -= cacheW;\n const showSession = sessionW > 0 && budget >= sessionW;\n if (showSession) budget -= sessionW;\n const showUpdate = updateW > 0 && budget >= updateW;\n if (showUpdate) budget -= updateW;\n\n return (\n <Box>\n <Text bold color={GRADIENT[0]}>\n {\"◈ \"}\n </Text>\n <Text color={COLOR.brand} bold>\n reasonix\n </Text>\n {projectName ? (\n <>\n <Text color={COLOR.info} dim>\n {\" · \"}\n </Text>\n <Text>{projectName}</Text>\n {showSession && sessionName ? (\n <>\n <Text color={COLOR.info} dim>\n {\" › \"}\n </Text>\n <Text color={COLOR.info}>{sessionName}</Text>\n </>\n ) : null}\n </>\n ) : null}\n\n <Box flexGrow={1} />\n\n {showUpdate ? (\n <>\n <Text color={COLOR.warn} bold>\n {updateLabel}\n </Text>\n <Text>{\" \"}</Text>\n </>\n ) : null}\n {modePill ? (\n <>\n <Text color={modePill.color} bold>\n {`[${modePill.label}]`}\n </Text>\n <Text>{\" \"}</Text>\n </>\n ) : null}\n <Text\n color={\n summary.turns === 0 || coldStart ? COLOR.info : sessionCostColor(summary.totalCostUsd)\n }\n bold={summary.turns > 0 && !coldStart}\n dim={summary.turns === 0 || coldStart}\n >\n {costLabel}\n </Text>\n {showBalance && balance ? (\n <>\n <Text>{\" \"}</Text>\n <Text color={balance.total < 1 ? COLOR.err : balance.total < 5 ? COLOR.warn : COLOR.ok}>\n {balanceLabel}\n </Text>\n </>\n ) : null}\n {showCache ? (\n <>\n <Text>{\" \"}</Text>\n <Text dim>{\"[\"}</Text>\n <Text dim>{\"c \"}</Text>\n <Bar\n ratio={summary.cacheHitRatio}\n color={coldStart ? COLOR.info : cacheColor}\n cells={6}\n dim={coldStart}\n />\n <Text> </Text>\n <Text color={coldStart ? undefined : cacheColor} dim={coldStart}>\n {coldStart && summary.turns === 0 ? \"—\" : `${cachePct}%`}\n </Text>\n <Text dim>{\"]\"}</Text>\n </>\n ) : null}\n </Box>\n );\n}\n\nfunction pickModePill(\n planMode: boolean | undefined,\n editMode: EditMode | undefined,\n): { label: string; color: Color } | null {\n if (planMode) return { label: t(\"statsPanel.modePlan\"), color: COLOR.err };\n if (editMode === \"yolo\") return { label: t(\"statsPanel.modeYolo\"), color: COLOR.err };\n if (editMode === \"auto\") return { label: t(\"statsPanel.modeAuto\"), color: COLOR.primary };\n if (editMode === \"review\") return { label: t(\"statsPanel.modeReview\"), color: COLOR.info };\n return null;\n}\n\nfunction BudgetRow({ spent, cap }: { spent: number; cap: number }) {\n const pct = Math.max(0, (spent / cap) * 100);\n const color = pct >= 100 ? \"#f87171\" : pct >= 80 ? \"#fbbf24\" : \"#94a3b8\";\n return (\n <Box>\n <Text dim>{t(\"statsPanel.budget\")}</Text>\n <Text color={color}>\n {`$${spent.toFixed(4)} / $${cap.toFixed(2)}`}\n <Text dim>{` (${pct.toFixed(0)}%)`}</Text>\n </Text>\n </Box>\n );\n}\n\nfunction sessionCostColor(cost: number): Color | undefined {\n if (cost <= 0) return undefined;\n if (cost >= 5) return COLOR.err;\n if (cost >= 0.5) return COLOR.warn;\n return COLOR.ok;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,gBAAkB;;;ACUlB,IAAAC,gBAAyC;;;ACXzC,SAAS,gBAAgB;AAEzB,mBAAkB;AASlB,IAAM,mBAAmB;AAalB,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAoB;AAClB,QAAM,YAAY,QAAQ,SAAS;AACnC,SACE,6BAAAC,QAAA,cAAC,eAAI,eAAc,UAAS,UAAU,KACpC,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,eAAe;AAAA,MAC5B;AAAA,MACA,SAAS,WAAW;AAAA;AAAA,EACtB,GACA,6BAAAA,QAAA,cAAC,gBAAW,GACX,cAAc,QAAQ,cAAc,SACnC,6BAAAA,QAAA,cAAC,aAAU,OAAO,QAAQ,cAAc,KAAK,WAAW,IACtD,IACN;AAEJ;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GASG;AACD,QAAM,WAAW,aAAa,UAAU,QAAQ;AAChD,QAAM,cAAc,UAAU,SAAS,OAAO,IAAI;AAClD,QAAM,YAAY,QAAQ,gBAAgB,KAAK,QAAQ,CAAC;AACxD,QAAM,aACJ,QAAQ,iBAAiB,MAAM,MAAM,KAAK,QAAQ,iBAAiB,MAAM,MAAM,OAAO,MAAM;AAC9F,QAAM,eAAe,UACjB,IAAI,cAAc,QAAQ,OAAO,QAAQ,UAAU,EAAE,OAAO,KAAK,CAAC,CAAC,MACnE;AACJ,QAAM,YAAY,IAAI,WAAW,QAAQ,cAAc,SAAS,QAAQ,CAAC;AACzE,QAAM,aAAa;AACnB,QAAM,cAAc,kBAAkB,UAAK,eAAe,KAAK;AAM/D,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,QAAM,QAAQ,QAAQ,WAAW,MAAM;AACvC,QAAM,UAAU,YAAY,UAAO;AACnC,QAAM,YAAY,YAAY,YAAO;AACrC,QAAM,MAAM;AAEZ,QAAM,YACJ,YAAY,iBAAY,KAAK,cAAc,UAAU,YAAY,WAAW,IAAI;AAClF,QAAM,QAAQ,WAAW,MAAM,YAAY,IAAI,SAAS,KAAK,GAAG,IAAI;AACpE,QAAM,aAAa,QAAQ,YAAY,SAAS;AAChD,MAAI,SAAS,OAAO,YAAY;AAEhC,QAAM,OAAO,UAAU,MAAM,YAAY,YAAY,IAAI;AACzD,QAAM,SAAS,MAAM,YAAY,UAAU;AAC3C,QAAM,WAAW,cAAc,YAAY,YAAY,WAAW,IAAI;AACtE,QAAM,UAAU,cAAc,MAAM,YAAY,WAAW,IAAI;AAE/D,QAAM,cAAc,OAAO,KAAK,UAAU;AAC1C,MAAI,YAAa,WAAU;AAC3B,QAAM,YAAY,UAAU;AAC5B,MAAI,UAAW,WAAU;AACzB,QAAM,cAAc,WAAW,KAAK,UAAU;AAC9C,MAAI,YAAa,WAAU;AAC3B,QAAM,aAAa,UAAU,KAAK,UAAU;AAC5C,MAAI,WAAY,WAAU;AAE1B,SACE,6BAAAA,QAAA,cAAC,mBACC,6BAAAA,QAAA,cAAC,QAAK,MAAI,MAAC,OAAO,SAAS,CAAC,KACzB,SACH,GACA,6BAAAA,QAAA,cAAC,QAAK,OAAO,MAAM,OAAO,MAAI,QAAC,UAE/B,GACC,cACC,6BAAAA,QAAA,2BAAAA,QAAA,gBACE,6BAAAA,QAAA,cAAC,QAAK,OAAO,MAAM,MAAM,KAAG,QACzB,UACH,GACA,6BAAAA,QAAA,cAAC,YAAM,WAAY,GAClB,eAAe,cACd,6BAAAA,QAAA,2BAAAA,QAAA,gBACE,6BAAAA,QAAA,cAAC,QAAK,OAAO,MAAM,MAAM,KAAG,QACzB,YACH,GACA,6BAAAA,QAAA,cAAC,QAAK,OAAO,MAAM,QAAO,WAAY,CACxC,IACE,IACN,IACE,MAEJ,6BAAAA,QAAA,cAAC,eAAI,UAAU,GAAG,GAEjB,aACC,6BAAAA,QAAA,2BAAAA,QAAA,gBACE,6BAAAA,QAAA,cAAC,QAAK,OAAO,MAAM,MAAM,MAAI,QAC1B,WACH,GACA,6BAAAA,QAAA,cAAC,YAAM,IAAK,CACd,IACE,MACH,WACC,6BAAAA,QAAA,2BAAAA,QAAA,gBACE,6BAAAA,QAAA,cAAC,QAAK,OAAO,SAAS,OAAO,MAAI,QAC9B,IAAI,SAAS,KAAK,GACrB,GACA,6BAAAA,QAAA,cAAC,YAAM,IAAK,CACd,IACE,MACJ,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OACE,QAAQ,UAAU,KAAK,YAAY,MAAM,OAAO,iBAAiB,QAAQ,YAAY;AAAA,MAEvF,MAAM,QAAQ,QAAQ,KAAK,CAAC;AAAA,MAC5B,KAAK,QAAQ,UAAU,KAAK;AAAA;AAAA,IAE3B;AAAA,EACH,GACC,eAAe,UACd,6BAAAA,QAAA,2BAAAA,QAAA,gBACE,6BAAAA,QAAA,cAAC,YAAM,IAAK,GACZ,6BAAAA,QAAA,cAAC,QAAK,OAAO,QAAQ,QAAQ,IAAI,MAAM,MAAM,QAAQ,QAAQ,IAAI,MAAM,OAAO,MAAM,MACjF,YACH,CACF,IACE,MACH,YACC,6BAAAA,QAAA,2BAAAA,QAAA,gBACE,6BAAAA,QAAA,cAAC,YAAM,IAAK,GACZ,6BAAAA,QAAA,cAAC,QAAK,KAAG,QAAE,GAAI,GACf,6BAAAA,QAAA,cAAC,QAAK,KAAG,QAAE,IAAK,GAChB,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,QAAQ;AAAA,MACf,OAAO,YAAY,MAAM,OAAO;AAAA,MAChC,OAAO;AAAA,MACP,KAAK;AAAA;AAAA,EACP,GACA,6BAAAA,QAAA,cAAC,YAAK,GAAC,GACP,6BAAAA,QAAA,cAAC,QAAK,OAAO,YAAY,SAAY,YAAY,KAAK,aACnD,aAAa,QAAQ,UAAU,IAAI,WAAM,GAAG,QAAQ,GACvD,GACA,6BAAAA,QAAA,cAAC,QAAK,KAAG,QAAE,GAAI,CACjB,IACE,IACN;AAEJ;AAEA,SAAS,aACP,UACA,UACwC;AACxC,MAAI,SAAU,QAAO,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,MAAM,IAAI;AACzE,MAAI,aAAa,OAAQ,QAAO,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,MAAM,IAAI;AACpF,MAAI,aAAa,OAAQ,QAAO,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,MAAM,QAAQ;AACxF,MAAI,aAAa,SAAU,QAAO,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,MAAM,KAAK;AACzF,SAAO;AACT;AAEA,SAAS,UAAU,EAAE,OAAO,IAAI,GAAmC;AACjE,QAAM,MAAM,KAAK,IAAI,GAAI,QAAQ,MAAO,GAAG;AAC3C,QAAM,QAAQ,OAAO,MAAM,YAAY,OAAO,KAAK,YAAY;AAC/D,SACE,6BAAAA,QAAA,cAAC,mBACC,6BAAAA,QAAA,cAAC,QAAK,KAAG,QAAE,EAAE,mBAAmB,CAAE,GAClC,6BAAAA,QAAA,cAAC,QAAK,SACH,IAAI,MAAM,QAAQ,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,IAC1C,6BAAAA,QAAA,cAAC,QAAK,KAAG,QAAE,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAK,CACtC,CACF;AAEJ;AAEA,SAAS,iBAAiB,MAAiC;AACzD,MAAI,QAAQ,EAAG,QAAO;AACtB,MAAI,QAAQ,EAAG,QAAO,MAAM;AAC5B,MAAI,QAAQ,IAAK,QAAO,MAAM;AAC9B,SAAO,MAAM;AACf;;;AD7MO,SAAS,UAAU,EAAE,MAAM,MAAM,GAAmB;AACzD,QAAM,EAAE,KAAK,IAAI,gBAAO;AACxB,QAAM,SAAS,KAAK,IAAI,GAAG,MAAM,SAAS,CAAC;AAG3C,QAAM,CAAC,KAAK,MAAM,QAAI,wBAAS,MAAM;AAErC,oBAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,UAAU,OAAQ,IAAI,QAAQ,UAAU,KAAM;AAChD,WAAK;AACL;AAAA,IACF;AACA,QAAI,UAAU,OAAO,IAAI,aAAa,UAAU,OAAO,IAAI,QAAQ;AACjE,aAAO,CAAC,MAAM,KAAK,IAAI,QAAQ,IAAI,CAAC,CAAC;AAAA,IACvC,WAAW,UAAU,OAAO,IAAI,SAAS;AACvC,aAAO,CAAC,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC;AAAA,IAClC,WAAW,UAAU,KAAK;AACxB,aAAO,CAAC;AAAA,IACV,WAAW,UAAU,KAAK;AACxB,aAAO,MAAM;AAAA,IACf,WAAW,UAAU,OAAO,IAAI,WAAW;AACzC,aAAO,CAAC;AAAA,IACV,WAAW,UAAU,OAAO,IAAI,YAAY;AAC1C,aAAO,MAAM;AAAA,IACf;AAAA,EACF,CAAC;AAED,QAAM,eAAW,uBAAQ,MAAM,uBAAuB,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC;AAE/E,QAAM,UAAU;AAAA,IACd,OAAO,SAAS;AAAA,IAChB,cAAc,SAAS;AAAA,IACvB,mBAAmB,SAAS;AAAA,IAC5B,oBAAoB,SAAS;AAAA,IAC7B,qBAAqB,SAAS;AAAA,IAC9B,oBAAoB,SAAS;AAAA,IAC7B,eAAe,SAAS;AAAA;AAAA,IAExB,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EACnB;AAEA,QAAM,aACJ,SAAS,aAAa,WAAW,IAC7B,SAAS,aAAa,CAAC,EAAG,MAAM,GAAG,EAAE,IACrC,SAAS,aAAa,WAAW,IAC/B,EAAE,qBAAqB,IACvB,EAAE,qBAAqB,EAAE,OAAO,SAAS,aAAa,OAAO,CAAC;AAEtE,QAAM,cAAc,MAAM,GAAG;AAC7B,QAAM,gBACJ,MAAM,WAAW,IACb,EAAE,2BAA2B,IAC7B,EAAE,0BAA0B,EAAE,SAAS,MAAM,GAAG,OAAO,MAAM,OAAO,CAAC;AAE3E,SACE,8BAAAC,QAAA,cAAC,eAAI,eAAc,YACjB,8BAAAA,QAAA,cAAC,cAAW,SAAkB,GAE9B,8BAAAA,QAAA,cAAC,eAAI,eAAc,UAAS,WAAW,GAAG,UAAU,KAClD,8BAAAA,QAAA,cAAC,eAAI,gBAAe,mBAClB,8BAAAA,QAAA,cAAC,QAAK,OAAM,aAAY,MAAI,QACzB,aACH,GACC,OACC,8BAAAA,QAAA,cAAC,QAAK,KAAG,QACN,KAAK,QACL,KAAK,OAAO,SAAM,KAAK,IAAI,KAAK,IAChC,KAAK,OAAO,SAAM,KAAK,IAAI,KAAK,EACnC,IACE,IACN,GAEC,cACC,8BAAAA,QAAA,cAAC,UAAO,OAAO,YAAY,QAAQ,IAAI,CAAC,KAAK,OAAO,EAAE,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,KAC7E,CAAC,EAAE,KAAK,IAAI,MAAM,8BAAAA,QAAA,cAAC,cAAW,KAAU,KAAU,CACrD,IAEA,8BAAAA,QAAA,cAAC,QAAK,KAAG,MAAC,QAAM,QACb,EAAE,qBAAqB,CAC1B,CAEJ,GAEA,8BAAAA,QAAA,cAAC,eAAI,WAAW,GAAG,UAAU,GAAG,aAAY,UAAS,aAAY,sBAC/D,8BAAAA,QAAA,cAAC,QAAK,KAAG,QACP,8BAAAA,QAAA,cAAC,QAAK,MAAI,QAAC,GAAC,GAAO,KAAC,8BAAAA,QAAA,cAAC,QAAK,MAAI,QAAC,QAAC,GAAO,KAAC,8BAAAA,QAAA,cAAC,QAAK,MAAI,QAAC,OAAK,GAAO,eAAQ,8BAAAA,QAAA,cAAC,QAAK,MAAI,QAAC,GAAC,GAAO,KACzF,8BAAAA,QAAA,cAAC,QAAK,MAAI,QAAC,QAAC,GAAO,eAAQ,8BAAAA,QAAA,cAAC,QAAK,MAAI,QAAC,GAAC,GAAO,gBAAS,8BAAAA,QAAA,cAAC,QAAK,MAAI,QAAC,GAAC,GAAO,cAAQ,KACnF,8BAAAA,QAAA,cAAC,QAAK,MAAI,QAAC,GAAC,GAAO,OACrB,CACF,CACF;AAEJ;;;ADtGA,eAAsB,cAAc,MAAoC;AACtE,QAAM,YACJ,KAAK,SAAS,CAAC,QAAQ,OAAO,SAAS,KAAK,SAAS,UAAa,KAAK,SAAS;AAClF,MAAI,WAAW;AACb,gBAAY,IAAI;AAChB;AAAA,EACF;AAEA,QAAM,EAAE,OAAO,IAAI,eAAe,KAAK,IAAI;AAC3C,QAAM,QAAQ,mBAAmB,OAAO,OAAO;AAC/C,QAAM,EAAE,cAAc,IAAI,WAAO,cAAAC,QAAM,cAAc,WAAW,EAAE,MAAM,OAAO,MAAM,MAAM,CAAC,GAAG;AAAA,IAC7F,aAAa;AAAA,IACb,cAAc;AAAA,EAChB,CAAC;AACD,QAAM,cAAc;AACtB;AAIA,SAAS,YAAY,MAA2B;AAC9C,QAAM,EAAE,QAAQ,MAAM,IAAI,eAAe,KAAK,IAAI;AAElD,MAAI,OAAO,MAAM;AACf,UAAM,IAAI,OAAO;AACjB,UAAM,OAAiB,CAAC,UAAU,EAAE,MAAM,EAAE;AAC5C,QAAI,EAAE,MAAO,MAAK,KAAK,SAAS,EAAE,KAAK,EAAE;AACzC,QAAI,EAAE,KAAM,MAAK,KAAK,QAAQ,EAAE,IAAI,EAAE;AACtC,QAAI,EAAE,KAAM,MAAK,KAAK,QAAQ,EAAE,IAAI,EAAE;AACtC,QAAI,EAAE,WAAW,OAAW,MAAK,KAAK,UAAU,EAAE,MAAM,EAAE;AAC1D,SAAK,KAAK,WAAW,EAAE,SAAS,EAAE;AAClC,YAAQ,IAAI,UAAU,KAAK,KAAK,GAAG,CAAC,EAAE;AACtC,YAAQ,IAAI,EAAE;AAAA,EAChB;AAEA,QAAM,UAAU,aAAa,OAAO,SAAS,IAAI;AACjD,aAAW,OAAO,SAAS;AACzB,iBAAa,GAAG;AAAA,EAClB;AAEA,UAAQ,IAAI,EAAE;AACd,UAAQ,IAAI,6QAAsD;AAClE,UAAQ,IAAI,wBAAwB,MAAM,KAAK,EAAE;AACjD,UAAQ,IAAI,wBAAwB,MAAM,SAAS,EAAE;AACrD,UAAQ,IAAI,wBAAwB,MAAM,SAAS,EAAE;AACrD,UAAQ,IAAI,yBAAyB,MAAM,gBAAgB,KAAK,QAAQ,CAAC,CAAC,GAAG;AAC7E,UAAQ,IAAI,yBAAyB,MAAM,aAAa,QAAQ,CAAC,CAAC,EAAE;AACpE,UAAQ,IAAI,yBAAyB,MAAM,oBAAoB,QAAQ,CAAC,CAAC,EAAE;AAC3E,UAAQ,IAAI,wBAAwB,MAAM,mBAAmB,QAAQ,CAAC,CAAC,GAAG;AAC1E,UAAQ,IAAI,wBAAwB,MAAM,OAAO,KAAK,IAAI,KAAK,QAAG,EAAE;AACpE,UAAQ,IAAI,wBAAwB,MAAM,aAAa,MAAM,WAAW;AACxE,MAAI,MAAM,aAAa,WAAW,GAAG;AACnC,YAAQ,IAAI,0BAA0B,MAAM,aAAa,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,SAAI;AAAA,EAC/E,WAAW,MAAM,aAAa,SAAS,GAAG;AACxC,YAAQ,IAAI,iDAA4C;AAAA,EAC1D;AACF;AAEA,SAAS,aAAa,SAA6B,MAAyC;AAC1F,MAAI,KAAK,SAAS,UAAa,KAAK,OAAO,EAAG,QAAO,QAAQ,MAAM,GAAG,KAAK,IAAI;AAC/E,MAAI,KAAK,SAAS,UAAa,KAAK,OAAO,EAAG,QAAO,QAAQ,MAAM,CAAC,KAAK,IAAI;AAC7E,SAAO;AACT;AAEA,SAAS,aAAa,KAA6B;AACjD,QAAM,OAAO,KAAK,IAAI,IAAI;AAC1B,MAAI,IAAI,SAAS,QAAQ;AACvB,YAAQ,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAI,OAAO,CAAC,EAAE;AAAA,EACrD,WAAW,IAAI,SAAS,mBAAmB;AACzC,UAAM,OAAO,IAAI,SAAS,SAAY,KAAK,IAAI,KAAK,QAAQ,CAAC,CAAC,KAAK;AACnE,UAAM,QACJ,IAAI,UACH,IAAI,MAAM,4BAA4B,UACrC,IAAI,MAAM,6BAA6B,WACpC,MAAM;AACL,YAAM,MAAM,IAAI,MAAO,2BAA2B;AAClD,YAAM,OAAO,IAAI,MAAO,4BAA4B;AACpD,YAAM,QAAQ,MAAM;AACpB,aAAO,QAAQ,IAAI,WAAY,MAAM,QAAS,KAAK,QAAQ,CAAC,CAAC,MAAM;AAAA,IACrE,GAAG,IACH;AACN,YAAQ,IAAI,GAAG,IAAI,UAAU,IAAI,GAAG,KAAK,IAAI,QAAQ,IAAI,OAAO,CAAC,EAAE;AAAA,EACrE,WAAW,IAAI,SAAS,QAAQ;AAC9B,UAAM,OAAO,IAAI,OAAO,SAAS,QAAQ,IAAI,MAAM,EAAE,CAAC,KAAK;AAC3D,YAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,QAAQ,GAAG,IAAI,IAAI,WAAM,QAAQ,IAAI,SAAS,GAAG,CAAC,EAAE;AAAA,EACtF,WAAW,IAAI,SAAS,SAAS;AAC/B,YAAQ,IAAI,GAAG,IAAI,WAAW,IAAI,SAAS,IAAI,OAAO,EAAE;AAAA,EAC1D,WAAW,IAAI,SAAS,QAAQ;AAAA,EAEhC,OAAO;AACL,YAAQ,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,EAAE;AAAA,EAC5D;AACF;AAEA,SAAS,QAAQ,GAAW,MAAM,KAAa;AAC7C,QAAM,YAAY,EAAE,QAAQ,QAAQ,GAAG,EAAE,KAAK;AAC9C,SAAO,UAAU,SAAS,MAAM,GAAG,UAAU,MAAM,GAAG,GAAG,CAAC,WAAM;AAClE;","names":["import_react","import_react","React","React","React"]}
|
|
@@ -3,48 +3,48 @@ import { createRequire as __cr } from 'node:module'; if (typeof globalThis.requi
|
|
|
3
3
|
import {
|
|
4
4
|
formatMcpLifecycleEvent,
|
|
5
5
|
formatMcpSlowToast
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LRO63VNK.js";
|
|
7
7
|
import {
|
|
8
8
|
buildTransportFromSpec,
|
|
9
9
|
preflightStdioSpec
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MQJR7YQ2.js";
|
|
11
11
|
import {
|
|
12
12
|
CacheFirstLoop,
|
|
13
13
|
ImmutablePrefix,
|
|
14
14
|
ToolRegistry,
|
|
15
15
|
bridgeMcpTools
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import
|
|
16
|
+
} from "./chunk-DFHI2MRB.js";
|
|
17
|
+
import {
|
|
18
|
+
McpClient
|
|
19
|
+
} from "./chunk-4SBXAHR6.js";
|
|
20
|
+
import "./chunk-J26XOB2T.js";
|
|
18
21
|
import {
|
|
19
22
|
openTranscriptFile,
|
|
20
23
|
recordFromLoopEvent,
|
|
21
24
|
writeRecord
|
|
22
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-R7JMQMLD.js";
|
|
26
|
+
import "./chunk-4V4TKQMB.js";
|
|
23
27
|
import {
|
|
24
|
-
|
|
25
|
-
} from "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
28
|
+
appendUsage
|
|
29
|
+
} from "./chunk-FK7NXDRP.js";
|
|
30
|
+
import "./chunk-V4AXMN4X.js";
|
|
31
|
+
import "./chunk-XHP6NYOT.js";
|
|
32
|
+
import "./chunk-J4MYMBJ7.js";
|
|
29
33
|
import "./chunk-BOWSNGQC.js";
|
|
30
|
-
import "./chunk-CPCUMMSR.js";
|
|
31
|
-
import "./chunk-6UNHNVJR.js";
|
|
32
|
-
import "./chunk-AMSK3ZLB.js";
|
|
33
|
-
import "./chunk-XXC2BYTV.js";
|
|
34
34
|
import {
|
|
35
35
|
DeepSeekClient
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-QSKDP3OS.js";
|
|
37
37
|
import "./chunk-25T6CVUP.js";
|
|
38
|
+
import "./chunk-NVI4XPOQ.js";
|
|
39
|
+
import "./chunk-6UNHNVJR.js";
|
|
40
|
+
import "./chunk-P5SUHDUQ.js";
|
|
41
|
+
import "./chunk-XXC2BYTV.js";
|
|
38
42
|
import {
|
|
39
43
|
loadDotenv
|
|
40
44
|
} from "./chunk-2UQP6H6T.js";
|
|
41
|
-
import {
|
|
42
|
-
appendUsage
|
|
43
|
-
} from "./chunk-ARBGTNHM.js";
|
|
44
|
-
import "./chunk-6QBUXA73.js";
|
|
45
45
|
import {
|
|
46
46
|
t
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-U7G72DHQ.js";
|
|
48
48
|
import {
|
|
49
49
|
bridgeEndpointEnv,
|
|
50
50
|
defaultConfigPath,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
normalizeMcpConfig,
|
|
56
56
|
readConfig,
|
|
57
57
|
saveApiKey
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-GCNBIWK7.js";
|
|
59
59
|
import "./chunk-TUK7OWJA.js";
|
|
60
60
|
|
|
61
61
|
// src/cli/commands/run.ts
|
|
@@ -221,4 +221,4 @@ transcript: ${opts.transcript}
|
|
|
221
221
|
export {
|
|
222
222
|
runCommand
|
|
223
223
|
};
|
|
224
|
-
//# sourceMappingURL=run-
|
|
224
|
+
//# sourceMappingURL=run-ABQYOPVM.js.map
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
listCheckpoints,
|
|
14
14
|
loadCheckpoint,
|
|
15
15
|
restoreCheckpoint
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-4EHRIP5U.js";
|
|
17
|
+
import "./chunk-FB27YXPX.js";
|
|
18
18
|
import {
|
|
19
19
|
fetchSmitheryDetail,
|
|
20
20
|
handleToFetchResult,
|
|
@@ -25,14 +25,24 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
collectMemoryEntriesForWorkspace,
|
|
27
27
|
readMemoryEntryDetail
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-B5JISV5I.js";
|
|
29
29
|
import {
|
|
30
30
|
registerSemanticSearchTool
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-URAI4YRL.js";
|
|
32
32
|
import {
|
|
33
33
|
BUILTIN_ALLOWLIST,
|
|
34
34
|
lineDiff
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-4V4TKQMB.js";
|
|
36
|
+
import {
|
|
37
|
+
aggregateUsage,
|
|
38
|
+
bucketCacheHitRatio,
|
|
39
|
+
formatLogSize,
|
|
40
|
+
readUsageLog
|
|
41
|
+
} from "./chunk-FK7NXDRP.js";
|
|
42
|
+
import {
|
|
43
|
+
DEEPSEEK_PRICING,
|
|
44
|
+
cacheSavingsUsd
|
|
45
|
+
} from "./chunk-V4AXMN4X.js";
|
|
36
46
|
import {
|
|
37
47
|
PROJECT_MEMORY_FILE,
|
|
38
48
|
SKILLS_DIRNAME,
|
|
@@ -42,13 +52,13 @@ import {
|
|
|
42
52
|
parseFrontmatter,
|
|
43
53
|
resolveProjectMemoryWritePath,
|
|
44
54
|
validateSkillFrontmatter
|
|
45
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-J4MYMBJ7.js";
|
|
46
56
|
import "./chunk-PLHAZOLZ.js";
|
|
47
57
|
import {
|
|
48
58
|
checkOllamaStatus,
|
|
49
59
|
pullOllamaModel,
|
|
50
60
|
startOllamaDaemon
|
|
51
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-RRZIIMAF.js";
|
|
52
62
|
import {
|
|
53
63
|
INDEX_DIR_NAME,
|
|
54
64
|
buildIndex,
|
|
@@ -57,13 +67,13 @@ import {
|
|
|
57
67
|
querySemantic,
|
|
58
68
|
readIndexMeta,
|
|
59
69
|
walkChunks
|
|
60
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-I4SH5Z7S.js";
|
|
61
71
|
import {
|
|
62
72
|
HOOK_EVENTS,
|
|
63
73
|
globalSettingsPath,
|
|
64
74
|
loadHooks,
|
|
65
75
|
projectSettingsPath
|
|
66
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-NVI4XPOQ.js";
|
|
67
77
|
import "./chunk-6UNHNVJR.js";
|
|
68
78
|
import {
|
|
69
79
|
deleteSession,
|
|
@@ -71,25 +81,15 @@ import {
|
|
|
71
81
|
listSessionsForWorkspace,
|
|
72
82
|
sessionPath,
|
|
73
83
|
sessionsDir
|
|
74
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-P5SUHDUQ.js";
|
|
75
85
|
import {
|
|
76
86
|
VERSION
|
|
77
87
|
} from "./chunk-XXC2BYTV.js";
|
|
78
|
-
import {
|
|
79
|
-
aggregateUsage,
|
|
80
|
-
bucketCacheHitRatio,
|
|
81
|
-
formatLogSize,
|
|
82
|
-
readUsageLog
|
|
83
|
-
} from "./chunk-ARBGTNHM.js";
|
|
84
|
-
import {
|
|
85
|
-
DEEPSEEK_PRICING,
|
|
86
|
-
cacheSavingsUsd
|
|
87
|
-
} from "./chunk-6QBUXA73.js";
|
|
88
88
|
import {
|
|
89
89
|
getLanguage,
|
|
90
90
|
getSupportedLanguages,
|
|
91
91
|
setLanguage
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-U7G72DHQ.js";
|
|
93
93
|
import {
|
|
94
94
|
DEFAULT_INDEX_EXCLUDES,
|
|
95
95
|
DEFAULT_MAX_FILE_BYTES,
|
|
@@ -119,7 +119,7 @@ import {
|
|
|
119
119
|
trustProjectHooks,
|
|
120
120
|
webSearchEngine,
|
|
121
121
|
writeConfig
|
|
122
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-GCNBIWK7.js";
|
|
123
123
|
import "./chunk-TUK7OWJA.js";
|
|
124
124
|
|
|
125
125
|
// src/server/index.ts
|
|
@@ -3054,7 +3054,9 @@ var VALID_WEB_SEARCH_ENGINES = /* @__PURE__ */ new Set([
|
|
|
3054
3054
|
"metaso",
|
|
3055
3055
|
"tavily",
|
|
3056
3056
|
"perplexity",
|
|
3057
|
-
"exa"
|
|
3057
|
+
"exa",
|
|
3058
|
+
"brave",
|
|
3059
|
+
"ollama"
|
|
3058
3060
|
]);
|
|
3059
3061
|
var VALID_EDIT_MODES = /* @__PURE__ */ new Set(["review", "auto", "yolo", "plan"]);
|
|
3060
3062
|
async function handleSettings(method, _rest, body, ctx) {
|
|
@@ -3166,7 +3168,7 @@ async function handleSettings(method, _rest, body, ctx) {
|
|
|
3166
3168
|
return {
|
|
3167
3169
|
status: 400,
|
|
3168
3170
|
body: {
|
|
3169
|
-
error: "webSearchEngine must be bing | searxng | metaso | tavily | perplexity | exa"
|
|
3171
|
+
error: "webSearchEngine must be bing | searxng | metaso | tavily | perplexity | exa | brave | ollama"
|
|
3170
3172
|
}
|
|
3171
3173
|
};
|
|
3172
3174
|
}
|
|
@@ -3869,4 +3871,4 @@ export {
|
|
|
3869
3871
|
readBody,
|
|
3870
3872
|
startDashboardServer
|
|
3871
3873
|
};
|
|
3872
|
-
//# sourceMappingURL=server-
|
|
3874
|
+
//# sourceMappingURL=server-MPCXIW2O.js.map
|