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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cli/commands/diff.ts","../../src/cli/ui/DiffApp.tsx"],"sourcesContent":["import { writeFileSync } from \"node:fs\";\nimport { basename } from \"node:path\";\nimport { render } from \"ink\";\nimport React from \"react\";\nimport { diffTranscripts, renderMarkdown, renderSummaryTable } from \"../../transcript/diff.js\";\nimport { readTranscript } from \"../../transcript/log.js\";\nimport { DiffApp } from \"../ui/DiffApp.js\";\n\nexport interface DiffOptions {\n a: string;\n b: string;\n mdPath?: string;\n labelA?: string;\n labelB?: string;\n /** Force stdout summary table (no Ink TUI). Auto when stdout isn't a TTY. */\n print?: boolean;\n /** Force the TUI even when stdout isn't a TTY (rare). */\n tui?: boolean;\n}\n\nexport async function diffCommand(opts: DiffOptions): Promise<void> {\n const aParsed = readTranscript(opts.a);\n const bParsed = readTranscript(opts.b);\n\n const report = diffTranscripts(\n { label: opts.labelA ?? basename(opts.a), parsed: aParsed },\n { label: opts.labelB ?? basename(opts.b), parsed: bParsed },\n );\n\n const wantMarkdown = !!opts.mdPath;\n const wantPrint = opts.print || !process.stdout.isTTY;\n const wantTui = opts.tui || (!wantPrint && !wantMarkdown);\n\n if (wantMarkdown) {\n // Markdown export implies the user wants an artifact, not a TUI.\n // Still echo the stdout summary to confirm the action.\n console.log(renderSummaryTable(report));\n const md = renderMarkdown(report);\n writeFileSync(opts.mdPath!, md, \"utf8\");\n console.log(`\\nmarkdown report written to ${opts.mdPath}`);\n return;\n }\n\n if (wantTui) {\n const { waitUntilExit } = render(React.createElement(DiffApp, { report }), {\n exitOnCtrlC: true,\n patchConsole: false,\n });\n await waitUntilExit();\n return;\n }\n\n // stdout fallback (piped, --print, or non-TTY)\n console.log(renderSummaryTable(report));\n}\n","/**\n * Ink TUI for `reasonix diff`. Split-pane: A on the left, B on the right,\n * shared cursor. Header shows aggregate deltas; footer shows the current\n * pair's divergence note (if any) + key cheat sheet.\n *\n * j/k moves the cursor by one turn; n/N jumps to the next/prev divergent\n * turn — which is the whole point of a diff tool. Quit with q.\n *\n * Pure navigation lives in src/diff.ts (findNextDivergence / findPrevDivergence).\n */\n\nimport { Box, Static, Text, useApp, useInput } from \"ink\";\nimport React, { useState } from \"react\";\nimport { t } from \"../../i18n/index.js\";\nimport {\n type DiffReport,\n type TurnPair,\n findNextDivergence,\n findPrevDivergence,\n} from \"../../transcript/diff.js\";\nimport { RecordView } from \"./RecordView.js\";\n\nexport interface DiffAppProps {\n report: DiffReport;\n}\n\nexport function DiffApp({ report }: DiffAppProps) {\n const { exit } = useApp();\n const maxIdx = Math.max(0, report.pairs.length - 1);\n // Start at the first divergence when one exists — that's the user's most\n // likely destination. Falls back to idx 0 for fully-matching diffs.\n const initialIdx = report.firstDivergenceTurn\n ? report.pairs.findIndex((p) => p.turn === report.firstDivergenceTurn)\n : 0;\n const [idx, setIdx] = useState(Math.max(0, initialIdx));\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 === \"n\") {\n const next = findNextDivergence(report.pairs, idx);\n if (next !== -1) setIdx(next);\n } else if (input === \"N\" || input === \"p\") {\n const prev = findPrevDivergence(report.pairs, idx);\n if (prev !== -1) setIdx(prev);\n }\n });\n\n const pair = report.pairs[idx];\n\n return (\n <Box flexDirection=\"column\">\n <DiffHeader report={report} />\n\n <Box marginTop={1} paddingX={1} justifyContent=\"space-between\">\n <Text color=\"ansi:cyan\" bold>\n {t(\"diffApp.turnLabel\", {\n turn: pair?.turn ?? \"?\",\n current: idx + 1,\n total: report.pairs.length,\n })}\n </Text>\n <Text>{pair ? <KindBadge kind={pair.kind} /> : null}</Text>\n </Box>\n\n <Box flexDirection=\"row\" marginTop={1}>\n <Pane label={report.a.label} headerColor=\"ansi:blue\" records={paneRecords(pair, \"a\")} />\n <Pane label={report.b.label} headerColor=\"ansi:magenta\" records={paneRecords(pair, \"b\")} />\n </Box>\n\n {pair?.divergenceNote ? (\n <Box marginTop={1} paddingX={1}>\n <Text color=\"ansi:yellow\">★ </Text>\n <Text>{pair.divergenceNote}</Text>\n </Box>\n ) : null}\n\n <Box marginTop={1} paddingX={1} borderStyle=\"single\" borderColor=\"ansi:blackBright\">\n <Text dim>\n <Text bold>j</Text>/<Text bold>\\u2193</Text> next \\u00b7 <Text bold>k</Text>/\n <Text bold>\\u2191</Text> prev \\u00b7 <Text bold>n</Text> next-diverge \\u00b7{\" \"}\n <Text bold>N</Text>/<Text bold>p</Text> prev-diverge \\u00b7 <Text bold>g</Text>/\n <Text bold>G</Text> first/last \\u00b7 <Text bold>q</Text> quit\n </Text>\n </Box>\n </Box>\n );\n}\n\n// ----------------------------------------------------------------------------\n\nfunction DiffHeader({ report }: { report: DiffReport }) {\n const a = report.a;\n const b = report.b;\n\n const cacheDelta = b.stats.cacheHitRatio - a.stats.cacheHitRatio;\n const costDelta =\n a.stats.totalCostUsd > 0\n ? ((b.stats.totalCostUsd - a.stats.totalCostUsd) / a.stats.totalCostUsd) * 100\n : 0;\n\n // Prefix stability one-liner (same logic as the stdout summary).\n const aStable = a.stats.prefixHashes.length <= 1;\n const bStable = b.stats.prefixHashes.length <= 1;\n let prefixLine: string | null = null;\n if (aStable !== bStable) {\n const stableLabel = aStable ? report.a.label : report.b.label;\n const churnLabel = aStable ? report.b.label : report.a.label;\n const churnCount = aStable ? b.stats.prefixHashes.length : a.stats.prefixHashes.length;\n prefixLine = `${stableLabel} stayed byte-stable; ${churnLabel} churned ${churnCount} distinct prefixes.`;\n } else if (a.stats.prefixHashes[0] && a.stats.prefixHashes[0] === b.stats.prefixHashes[0]) {\n prefixLine = `shared prefix hash ${a.stats.prefixHashes[0].slice(0, 12)}… — cache delta attributable to log stability, not prompt change.`;\n }\n\n return (\n <Box flexDirection=\"column\" borderStyle=\"round\" borderColor=\"ansi:cyan\" paddingX={1}>\n <Box justifyContent=\"space-between\">\n <Text>\n <Text color=\"ansi:cyan\" bold>\n {t(\"diffApp.title\")}\n </Text>\n <Text dim> \\u00b7 A=</Text>\n <Text color=\"ansi:blue\">{a.label}</Text>\n <Text dim> vs B=</Text>\n <Text color=\"ansi:magenta\">{b.label}</Text>\n </Text>\n <Text dim>{t(\"diffApp.turnsAligned\", { count: report.pairs.length })}</Text>\n </Box>\n\n <Box marginTop={1} gap={3}>\n <Text>\n <Text dim>cache </Text>\n <Text>{(a.stats.cacheHitRatio * 100).toFixed(1)}%</Text>\n <Text dim> → </Text>\n <Text>{(b.stats.cacheHitRatio * 100).toFixed(1)}%</Text>\n <Text color={cacheDelta >= 0 ? \"ansi:green\" : \"ansi:red\"} bold>\n {\" \"}\n {cacheDelta >= 0 ? \"+\" : \"\"}\n {(cacheDelta * 100).toFixed(1)}pp\n </Text>\n </Text>\n <Text>\n <Text dim>cost </Text>\n <Text>${a.stats.totalCostUsd.toFixed(6)}</Text>\n <Text dim> → </Text>\n <Text>${b.stats.totalCostUsd.toFixed(6)}</Text>\n <Text color={costDelta <= 0 ? \"ansi:green\" : \"ansi:red\"} bold>\n {\" \"}\n {costDelta >= 0 ? \"+\" : \"\"}\n {costDelta.toFixed(1)}%\n </Text>\n </Text>\n <Text>\n <Text dim>model calls </Text>\n <Text>\n {a.stats.turns} → {b.stats.turns}\n </Text>\n </Text>\n </Box>\n\n {prefixLine ? (\n <Box marginTop={1}>\n <Text dim italic>\n {prefixLine}\n </Text>\n </Box>\n ) : null}\n </Box>\n );\n}\n\nfunction Pane({\n label,\n headerColor,\n records,\n}: {\n label: string;\n headerColor: \"ansi:blue\" | \"ansi:magenta\";\n records: TurnPair[\"aTools\"];\n}) {\n return (\n <Box\n flexDirection=\"column\"\n flexGrow={1}\n paddingX={1}\n borderStyle=\"single\"\n borderColor={headerColor}\n >\n <Text color={headerColor} bold>\n {label}\n </Text>\n {records.length === 0 ? (\n <Box marginTop={1}>\n <Text dim italic>\n {t(\"diffApp.paneEmpty\")}\n </Text>\n </Box>\n ) : (\n <Static items={records.map((rec, i) => ({ key: `${label}-${i}`, rec }))}>\n {({ key, rec }) => <RecordView key={key} rec={rec} compact />}\n </Static>\n )}\n </Box>\n );\n}\n\nfunction KindBadge({ kind }: { kind: TurnPair[\"kind\"] }) {\n if (kind === \"match\") {\n return <Text color=\"ansi:green\">{t(\"diffApp.kindMatch\")}</Text>;\n }\n if (kind === \"diverge\") {\n return <Text color=\"ansi:yellow\">{t(\"diffApp.kindDiverge\")}</Text>;\n }\n if (kind === \"only_in_a\") {\n return <Text color=\"ansi:blue\">{t(\"diffApp.kindOnlyInA\")}</Text>;\n }\n return <Text color=\"ansi:magenta\">{t(\"diffApp.kindOnlyInB\")}</Text>;\n}\n\n// ----------------------------------------------------------------------------\n\nfunction paneRecords(pair: TurnPair | undefined, side: \"a\" | \"b\"): TurnPair[\"aTools\"] {\n if (!pair) return [];\n const tools = side === \"a\" ? pair.aTools : pair.bTools;\n const assistant = side === \"a\" ? pair.aAssistant : pair.bAssistant;\n const out: TurnPair[\"aTools\"] = [...tools];\n if (assistant) out.push(assistant);\n return out;\n}\n"],"mappings":"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","names":["import_react","React","React"]}
|
|
@@ -4,24 +4,24 @@ import {
|
|
|
4
4
|
doctorCommand,
|
|
5
5
|
formatDoctorJson,
|
|
6
6
|
runDoctorChecks
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-TGP7JGHN.js";
|
|
8
|
+
import "./chunk-RRZIIMAF.js";
|
|
9
|
+
import "./chunk-I4SH5Z7S.js";
|
|
10
10
|
import "./chunk-YMYX6QTC.js";
|
|
11
11
|
import "./chunk-BOWSNGQC.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-QSKDP3OS.js";
|
|
13
|
+
import "./chunk-25T6CVUP.js";
|
|
14
|
+
import "./chunk-NVI4XPOQ.js";
|
|
13
15
|
import "./chunk-6UNHNVJR.js";
|
|
14
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-P5SUHDUQ.js";
|
|
15
17
|
import "./chunk-XXC2BYTV.js";
|
|
16
|
-
import "./chunk-GFJJEW3Z.js";
|
|
17
|
-
import "./chunk-25T6CVUP.js";
|
|
18
18
|
import "./chunk-2UQP6H6T.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-U7G72DHQ.js";
|
|
20
|
+
import "./chunk-GCNBIWK7.js";
|
|
21
21
|
import "./chunk-TUK7OWJA.js";
|
|
22
22
|
export {
|
|
23
23
|
doctorCommand,
|
|
24
24
|
formatDoctorJson,
|
|
25
25
|
runDoctorChecks
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=doctor-
|
|
27
|
+
//# sourceMappingURL=doctor-OMAYGY4F.js.map
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
} from "./chunk-J5XJHLWM.js";
|
|
6
6
|
import {
|
|
7
7
|
eventLogPath
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-FB27YXPX.js";
|
|
9
|
+
import "./chunk-P5SUHDUQ.js";
|
|
10
10
|
import {
|
|
11
11
|
t
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-U7G72DHQ.js";
|
|
13
|
+
import "./chunk-GCNBIWK7.js";
|
|
14
14
|
import "./chunk-TUK7OWJA.js";
|
|
15
15
|
|
|
16
16
|
// src/core/reducers.ts
|
|
@@ -341,4 +341,4 @@ function mapReplacer(_key, value) {
|
|
|
341
341
|
export {
|
|
342
342
|
eventsCommand
|
|
343
343
|
};
|
|
344
|
-
//# sourceMappingURL=events-
|
|
344
|
+
//# sourceMappingURL=events-5IVFJ4H3.js.map
|
package/dist/cli/index.js
CHANGED
|
@@ -5,36 +5,36 @@ import {
|
|
|
5
5
|
startCpuProfile,
|
|
6
6
|
stopAndSaveCpuProfile
|
|
7
7
|
} from "./chunk-ZZM6QJ4W.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-DFHI2MRB.js";
|
|
9
|
+
import "./chunk-4SBXAHR6.js";
|
|
10
|
+
import "./chunk-J26XOB2T.js";
|
|
11
|
+
import "./chunk-R7JMQMLD.js";
|
|
12
|
+
import "./chunk-4V4TKQMB.js";
|
|
13
|
+
import "./chunk-FK7NXDRP.js";
|
|
14
|
+
import "./chunk-V4AXMN4X.js";
|
|
15
|
+
import "./chunk-XHP6NYOT.js";
|
|
14
16
|
import {
|
|
15
17
|
applyMemoryStack,
|
|
16
18
|
escalationContract
|
|
17
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-J4MYMBJ7.js";
|
|
18
20
|
import {
|
|
19
21
|
installProxyIfConfigured
|
|
20
22
|
} from "./chunk-YMYX6QTC.js";
|
|
21
23
|
import "./chunk-BOWSNGQC.js";
|
|
22
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-QSKDP3OS.js";
|
|
25
|
+
import "./chunk-25T6CVUP.js";
|
|
26
|
+
import "./chunk-NVI4XPOQ.js";
|
|
23
27
|
import "./chunk-6UNHNVJR.js";
|
|
24
28
|
import {
|
|
25
29
|
listSessions
|
|
26
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-P5SUHDUQ.js";
|
|
27
31
|
import {
|
|
28
32
|
VERSION
|
|
29
33
|
} from "./chunk-XXC2BYTV.js";
|
|
30
|
-
import "./chunk-GFJJEW3Z.js";
|
|
31
|
-
import "./chunk-25T6CVUP.js";
|
|
32
34
|
import "./chunk-2UQP6H6T.js";
|
|
33
|
-
import "./chunk-ARBGTNHM.js";
|
|
34
|
-
import "./chunk-6QBUXA73.js";
|
|
35
35
|
import {
|
|
36
36
|
t
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-U7G72DHQ.js";
|
|
38
38
|
import {
|
|
39
39
|
DEFAULT_MODEL,
|
|
40
40
|
ensureDashboardToken,
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
readConfig,
|
|
47
47
|
saveReasoningEffort,
|
|
48
48
|
specToRaw
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-GCNBIWK7.js";
|
|
50
50
|
import {
|
|
51
51
|
__commonJS,
|
|
52
52
|
__require,
|
|
@@ -3345,11 +3345,11 @@ program2.action(async (opts) => {
|
|
|
3345
3345
|
const cfg = readConfig();
|
|
3346
3346
|
const mode = resolveBareCommandMode(cfg);
|
|
3347
3347
|
if (mode === "setup") {
|
|
3348
|
-
const { setupCommand } = await import("./setup-
|
|
3348
|
+
const { setupCommand } = await import("./setup-A34LF2QE.js");
|
|
3349
3349
|
await setupCommand({ forceKeyStep: true });
|
|
3350
3350
|
return;
|
|
3351
3351
|
}
|
|
3352
|
-
const { codeCommand } = await import("./code-
|
|
3352
|
+
const { codeCommand } = await import("./code-JPFZJYVW.js");
|
|
3353
3353
|
await codeCommand({
|
|
3354
3354
|
dir: process.cwd(),
|
|
3355
3355
|
forceResume: !!opts.continue,
|
|
@@ -3357,7 +3357,7 @@ program2.action(async (opts) => {
|
|
|
3357
3357
|
});
|
|
3358
3358
|
});
|
|
3359
3359
|
program2.command("setup").description(t("cli.setup")).action(async () => {
|
|
3360
|
-
const { setupCommand } = await import("./setup-
|
|
3360
|
+
const { setupCommand } = await import("./setup-A34LF2QE.js");
|
|
3361
3361
|
await setupCommand({ forceKeyStep: true });
|
|
3362
3362
|
});
|
|
3363
3363
|
program2.command("code [dir]").description(t("cli.code")).option("-m, --model <id>", t("ui.modelOverride")).option("--effort <level>", t("ui.effortHintShort")).option("--no-session", t("ui.noSession")).option("--no-mouse", t("ui.noMouseHint")).option("--no-proxy", t("ui.noProxyHint")).option("-r, --resume", t("ui.resumeHint")).option("-n, --new", t("ui.newHint")).option("--transcript <path>", t("ui.transcriptHint")).option("--budget <usd>", t("ui.budgetHint"), (v) => Number.parseFloat(v)).option("--no-dashboard", t("ui.noDashboard")).option("--open-dashboard", t("ui.openDashboardHint")).option("--dashboard-port <port>", t("ui.dashboardPortHint")).option(
|
|
@@ -3370,7 +3370,7 @@ program2.command("code [dir]").description(t("cli.code")).option("-m, --model <i
|
|
|
3370
3370
|
persistEffortFlag(opts.effort);
|
|
3371
3371
|
const profiling = await maybeStartCpuProfile(opts.profile);
|
|
3372
3372
|
try {
|
|
3373
|
-
const { codeCommand } = await import("./code-
|
|
3373
|
+
const { codeCommand } = await import("./code-JPFZJYVW.js");
|
|
3374
3374
|
await codeCommand({
|
|
3375
3375
|
dir,
|
|
3376
3376
|
model: opts.model,
|
|
@@ -3421,7 +3421,7 @@ program2.command("chat").description(t("cli.chat")).option("-m, --model <id>", t
|
|
|
3421
3421
|
(msg) => process.stderr.write(`${msg}
|
|
3422
3422
|
`)
|
|
3423
3423
|
);
|
|
3424
|
-
const { chatCommand } = await import("./chat-
|
|
3424
|
+
const { chatCommand } = await import("./chat-377YZV56.js");
|
|
3425
3425
|
const chatBase = opts.system ?? defaultSystemPrompt(defaults.model);
|
|
3426
3426
|
const chatCwd = process.cwd();
|
|
3427
3427
|
const chatRebuildSystem = () => applyMemoryStack(chatBase, chatCwd);
|
|
@@ -3464,7 +3464,7 @@ program2.command("run <task>").description(t("cli.run")).option("-m, --model <id
|
|
|
3464
3464
|
effort: opts.effort,
|
|
3465
3465
|
noConfig: opts.config === false
|
|
3466
3466
|
});
|
|
3467
|
-
const { runCommand } = await import("./run-
|
|
3467
|
+
const { runCommand } = await import("./run-ABQYOPVM.js");
|
|
3468
3468
|
await runCommand({
|
|
3469
3469
|
task,
|
|
3470
3470
|
model: defaults.model,
|
|
@@ -3488,7 +3488,7 @@ program2.command("acp").description("run reasonix as an Agent Client Protocol (A
|
|
|
3488
3488
|
effort: opts.effort,
|
|
3489
3489
|
noConfig: false
|
|
3490
3490
|
});
|
|
3491
|
-
const { acpCommand } = await import("./acp-
|
|
3491
|
+
const { acpCommand } = await import("./acp-ABNDGEYC.js");
|
|
3492
3492
|
await acpCommand({
|
|
3493
3493
|
model: defaults.model,
|
|
3494
3494
|
budgetUsd: parseBudgetFlag(opts.budget),
|
|
@@ -3507,7 +3507,7 @@ program2.command("desktop").description("headless JSON-RPC chat for the desktop
|
|
|
3507
3507
|
effort: opts.effort,
|
|
3508
3508
|
noConfig: false
|
|
3509
3509
|
});
|
|
3510
|
-
const { desktopCommand } = await import("./desktop-
|
|
3510
|
+
const { desktopCommand } = await import("./desktop-AUBW2SLL.js");
|
|
3511
3511
|
await desktopCommand({
|
|
3512
3512
|
model: defaults.model,
|
|
3513
3513
|
budgetUsd: parseBudgetFlag(opts.budget),
|
|
@@ -3515,27 +3515,27 @@ program2.command("desktop").description("headless JSON-RPC chat for the desktop
|
|
|
3515
3515
|
});
|
|
3516
3516
|
});
|
|
3517
3517
|
program2.command("stats [transcript]").description(t("cli.stats")).action(async (transcript) => {
|
|
3518
|
-
const { statsCommand } = await import("./stats-
|
|
3518
|
+
const { statsCommand } = await import("./stats-GKG5JZQX.js");
|
|
3519
3519
|
statsCommand({ transcript });
|
|
3520
3520
|
});
|
|
3521
3521
|
program2.command("doctor").description(t("cli.doctor")).option("--json", t("ui.jsonHint")).action(async (opts) => {
|
|
3522
|
-
const { doctorCommand } = await import("./doctor-
|
|
3522
|
+
const { doctorCommand } = await import("./doctor-OMAYGY4F.js");
|
|
3523
3523
|
await doctorCommand({ json: !!opts.json });
|
|
3524
3524
|
});
|
|
3525
3525
|
program2.command("commit").description(t("cli.commit")).option("-m, --model <id>", t("ui.modelOverrideFlash")).option("-y, --yes", t("ui.skipConfirmHint")).action(async (opts) => {
|
|
3526
|
-
const { commitCommand } = await import("./commit-
|
|
3526
|
+
const { commitCommand } = await import("./commit-JT7LYBTL.js");
|
|
3527
3527
|
await commitCommand({ model: opts.model, yes: !!opts.yes });
|
|
3528
3528
|
});
|
|
3529
3529
|
program2.command("sessions [name]").description(t("cli.sessions")).option("-v, --verbose", t("ui.verboseHint")).action(async (name, opts) => {
|
|
3530
|
-
const { sessionsCommand } = await import("./sessions-
|
|
3530
|
+
const { sessionsCommand } = await import("./sessions-YBPRGIAF.js");
|
|
3531
3531
|
sessionsCommand({ name, verbose: !!opts.verbose });
|
|
3532
3532
|
});
|
|
3533
3533
|
program2.command("prune-sessions").description(t("cli.pruneSessions")).option("--days <n>", t("ui.pruneDaysHint"), (v) => Number.parseInt(v, 10)).option("--dry-run", t("ui.pruneDryRunHint")).action(async (opts) => {
|
|
3534
|
-
const { pruneSessionsCommand } = await import("./prune-sessions-
|
|
3534
|
+
const { pruneSessionsCommand } = await import("./prune-sessions-TE4BJYO2.js");
|
|
3535
3535
|
pruneSessionsCommand({ days: opts.days, dryRun: !!opts.dryRun });
|
|
3536
3536
|
});
|
|
3537
3537
|
program2.command("events <name>").description(t("cli.events")).option("--type <type>", t("ui.eventTypeHint")).option("--since <id>", t("ui.eventSinceHint"), (v) => Number.parseInt(v, 10)).option("--tail <n>", t("ui.eventTailHint"), (v) => Number.parseInt(v, 10)).option("--json", t("ui.jsonHint")).option("--projection", t("ui.projectionHint")).action(async (name, opts) => {
|
|
3538
|
-
const { eventsCommand } = await import("./events-
|
|
3538
|
+
const { eventsCommand } = await import("./events-5IVFJ4H3.js");
|
|
3539
3539
|
eventsCommand({
|
|
3540
3540
|
name,
|
|
3541
3541
|
type: opts.type,
|
|
@@ -3546,7 +3546,7 @@ program2.command("events <name>").description(t("cli.events")).option("--type <t
|
|
|
3546
3546
|
});
|
|
3547
3547
|
});
|
|
3548
3548
|
program2.command("replay <transcript>").description(t("cli.replay")).option("--print", t("ui.printHint")).option("--head <n>", t("ui.headHint"), (v) => Number.parseInt(v, 10)).option("--tail <n>", t("ui.tailHint"), (v) => Number.parseInt(v, 10)).action(async (transcript, opts) => {
|
|
3549
|
-
const { replayCommand } = await import("./replay-
|
|
3549
|
+
const { replayCommand } = await import("./replay-2UUTCRTG.js");
|
|
3550
3550
|
await replayCommand({
|
|
3551
3551
|
path: transcript,
|
|
3552
3552
|
print: !!opts.print,
|
|
@@ -3555,7 +3555,7 @@ program2.command("replay <transcript>").description(t("cli.replay")).option("--p
|
|
|
3555
3555
|
});
|
|
3556
3556
|
});
|
|
3557
3557
|
program2.command("diff <a> <b>").description(t("cli.diff")).option("--md <path>", t("ui.mdReportHint")).option("--print", t("ui.printHintTable")).option("--tui", t("ui.tuiHint")).option("--label-a <label>", t("ui.labelAHint")).option("--label-b <label>", t("ui.labelBHint")).action(async (a, b, opts) => {
|
|
3558
|
-
const { diffCommand } = await import("./diff-
|
|
3558
|
+
const { diffCommand } = await import("./diff-NINZHUJR.js");
|
|
3559
3559
|
await diffCommand({
|
|
3560
3560
|
a,
|
|
3561
3561
|
b,
|
|
@@ -3569,7 +3569,7 @@ program2.command("diff <a> <b>").description(t("cli.diff")).option("--md <path>"
|
|
|
3569
3569
|
var mcp = program2.command("mcp").description(t("cli.mcp"));
|
|
3570
3570
|
mcp.command("list").description(t("ui.mcpListDescription")).option("--json", t("ui.jsonHintCatalog")).option("--local", t("ui.mcpLocalHint")).option("--refresh", t("ui.mcpRefreshHint")).option("--limit <n>", t("ui.mcpLimitHint"), (v) => Number.parseInt(v, 10)).option("--pages <n>", t("ui.mcpPagesHint"), (v) => Number.parseInt(v, 10)).option("--all", t("ui.mcpAllHint")).action(async (opts) => {
|
|
3571
3571
|
try {
|
|
3572
|
-
const { mcpListCommand } = await import("./mcp-
|
|
3572
|
+
const { mcpListCommand } = await import("./mcp-ECGJACAP.js");
|
|
3573
3573
|
await mcpListCommand({
|
|
3574
3574
|
json: !!opts.json,
|
|
3575
3575
|
local: !!opts.local,
|
|
@@ -3586,7 +3586,7 @@ mcp.command("list").description(t("ui.mcpListDescription")).option("--json", t("
|
|
|
3586
3586
|
});
|
|
3587
3587
|
mcp.command("search <query>").description(t("ui.mcpSearchDescription")).option("--json", t("ui.jsonHintCatalog")).option("--refresh", t("ui.mcpRefreshHint")).option("--limit <n>", t("ui.mcpLimitHint"), (v) => Number.parseInt(v, 10)).option("--max-pages <n>", t("ui.mcpMaxPagesHint"), (v) => Number.parseInt(v, 10)).action(async (query, opts) => {
|
|
3588
3588
|
try {
|
|
3589
|
-
const { mcpSearchCommand } = await import("./mcp-
|
|
3589
|
+
const { mcpSearchCommand } = await import("./mcp-ECGJACAP.js");
|
|
3590
3590
|
await mcpSearchCommand(query, {
|
|
3591
3591
|
json: !!opts.json,
|
|
3592
3592
|
refresh: !!opts.refresh,
|
|
@@ -3601,7 +3601,7 @@ mcp.command("search <query>").description(t("ui.mcpSearchDescription")).option("
|
|
|
3601
3601
|
});
|
|
3602
3602
|
mcp.command("install <name>").description(t("ui.mcpInstallDescription")).option("--refresh", t("ui.mcpRefreshHint")).option("--max-pages <n>", t("ui.mcpMaxPagesHint"), (v) => Number.parseInt(v, 10)).action(async (name, opts) => {
|
|
3603
3603
|
try {
|
|
3604
|
-
const { mcpInstallCommand } = await import("./mcp-
|
|
3604
|
+
const { mcpInstallCommand } = await import("./mcp-ECGJACAP.js");
|
|
3605
3605
|
await mcpInstallCommand(name, {
|
|
3606
3606
|
refresh: !!opts.refresh,
|
|
3607
3607
|
maxPages: typeof opts.maxPages === "number" && opts.maxPages > 0 ? opts.maxPages : void 0
|
|
@@ -3614,7 +3614,7 @@ mcp.command("install <name>").description(t("ui.mcpInstallDescription")).option(
|
|
|
3614
3614
|
});
|
|
3615
3615
|
mcp.command("browse").description(t("ui.mcpBrowseDescription")).action(async () => {
|
|
3616
3616
|
try {
|
|
3617
|
-
const { mcpBrowseCommand } = await import("./mcp-browse-
|
|
3617
|
+
const { mcpBrowseCommand } = await import("./mcp-browse-NGEOHVJB.js");
|
|
3618
3618
|
await mcpBrowseCommand();
|
|
3619
3619
|
} catch (err) {
|
|
3620
3620
|
process.stderr.write(`mcp browse failed: ${err.message}
|
|
@@ -3623,7 +3623,7 @@ mcp.command("browse").description(t("ui.mcpBrowseDescription")).action(async ()
|
|
|
3623
3623
|
}
|
|
3624
3624
|
});
|
|
3625
3625
|
mcp.command("inspect <spec>").description(t("ui.mcpInspectDescription")).option("--json", t("ui.jsonHintReport")).action(async (spec, opts) => {
|
|
3626
|
-
const { formatMcpInspectFailure, mcpInspectCommand } = await import("./mcp-inspect-
|
|
3626
|
+
const { formatMcpInspectFailure, mcpInspectCommand } = await import("./mcp-inspect-ZIMNRG7G.js");
|
|
3627
3627
|
try {
|
|
3628
3628
|
await mcpInspectCommand({ spec, json: !!opts.json });
|
|
3629
3629
|
} catch (err) {
|
|
@@ -3633,7 +3633,7 @@ mcp.command("inspect <spec>").description(t("ui.mcpInspectDescription")).option(
|
|
|
3633
3633
|
}
|
|
3634
3634
|
});
|
|
3635
3635
|
program2.command("version").description(t("cli.version")).action(async () => {
|
|
3636
|
-
const { versionCommand } = await import("./version-
|
|
3636
|
+
const { versionCommand } = await import("./version-JD6QSM4X.js");
|
|
3637
3637
|
versionCommand();
|
|
3638
3638
|
});
|
|
3639
3639
|
program2.command("update").description(t("cli.update")).option("--dry-run", t("ui.dryRunHint")).action(async (opts) => {
|
|
@@ -3642,7 +3642,7 @@ program2.command("update").description(t("cli.update")).option("--dry-run", t("u
|
|
|
3642
3642
|
});
|
|
3643
3643
|
program2.command("index").description(t("cli.index")).option("--rebuild", t("ui.rebuildHint")).option("--model <name>", t("ui.embedModelHint")).option("--dir <path>", t("ui.projectDirHint")).option("--ollama-url <url>", t("ui.ollamaUrlHint")).option("-y, --yes", t("ui.skipPromptsHint")).action(
|
|
3644
3644
|
async (opts) => {
|
|
3645
|
-
const { indexCommand } = await import("./commands-
|
|
3645
|
+
const { indexCommand } = await import("./commands-IUL2CLKH.js");
|
|
3646
3646
|
await indexCommand(opts);
|
|
3647
3647
|
}
|
|
3648
3648
|
);
|
|
@@ -13,12 +13,12 @@ import {
|
|
|
13
13
|
} from "./chunk-PLHAZOLZ.js";
|
|
14
14
|
import {
|
|
15
15
|
t
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-U7G72DHQ.js";
|
|
17
17
|
import {
|
|
18
18
|
defaultConfigPath,
|
|
19
19
|
readConfig,
|
|
20
20
|
writeConfig
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-GCNBIWK7.js";
|
|
22
22
|
import "./chunk-TUK7OWJA.js";
|
|
23
23
|
|
|
24
24
|
// src/cli/commands/mcp.ts
|
|
@@ -285,4 +285,4 @@ export {
|
|
|
285
285
|
mcpListCommand,
|
|
286
286
|
mcpSearchCommand
|
|
287
287
|
};
|
|
288
|
-
//# sourceMappingURL=mcp-
|
|
288
|
+
//# sourceMappingURL=mcp-ECGJACAP.js.map
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
specStringFor
|
|
10
10
|
} from "./chunk-XJXDHAES.js";
|
|
11
11
|
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} from "./chunk-
|
|
12
|
+
Box_default,
|
|
13
|
+
Text,
|
|
14
|
+
renderSync,
|
|
15
|
+
require_react,
|
|
16
|
+
use_app_default,
|
|
17
|
+
use_input_default
|
|
18
|
+
} from "./chunk-A6GSOADP.js";
|
|
19
19
|
import "./chunk-PLHAZOLZ.js";
|
|
20
20
|
import {
|
|
21
21
|
loadDotenv
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
import {
|
|
24
24
|
readConfig,
|
|
25
25
|
writeConfig
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-GCNBIWK7.js";
|
|
27
27
|
import {
|
|
28
28
|
__toESM
|
|
29
29
|
} from "./chunk-TUK7OWJA.js";
|
|
@@ -42,7 +42,7 @@ function rankAndFilter(entries, query) {
|
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
function McpBrowseApp() {
|
|
45
|
-
const app =
|
|
45
|
+
const app = use_app_default();
|
|
46
46
|
const [state, setState] = (0, import_react.useState)({
|
|
47
47
|
handle: null,
|
|
48
48
|
loading: true,
|
|
@@ -121,7 +121,7 @@ function McpBrowseApp() {
|
|
|
121
121
|
},
|
|
122
122
|
[setStatus]
|
|
123
123
|
);
|
|
124
|
-
|
|
124
|
+
use_input_default((input, key) => {
|
|
125
125
|
if (key.escape || key.ctrl && input === "c") {
|
|
126
126
|
app.exit();
|
|
127
127
|
return;
|
|
@@ -156,17 +156,17 @@ function McpBrowseApp() {
|
|
|
156
156
|
Math.min(state.selected - Math.floor(VISIBLE_ROWS / 2), filtered.length - VISIBLE_ROWS)
|
|
157
157
|
);
|
|
158
158
|
const window = filtered.slice(Math.max(0, start), Math.max(0, start) + VISIBLE_ROWS);
|
|
159
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
159
|
+
return /* @__PURE__ */ import_react.default.createElement(Box_default, { flexDirection: "column", paddingX: 1 }, /* @__PURE__ */ import_react.default.createElement(Box_default, null, /* @__PURE__ */ import_react.default.createElement(Text, { bold: true, color: "ansi:cyan" }, "\u25C8 MCP marketplace"), /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, ` \xB7 ${state.status}`)), /* @__PURE__ */ import_react.default.createElement(Box_default, { marginTop: 1 }, /* @__PURE__ */ import_react.default.createElement(Text, null, "search: "), /* @__PURE__ */ import_react.default.createElement(Text, { color: "ansi:white" }, state.query || "(type to filter)"), /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, ` ${filtered.length} match${filtered.length === 1 ? "" : "es"}`)), /* @__PURE__ */ import_react.default.createElement(Box_default, { marginTop: 1, flexDirection: "column" }, window.length === 0 ? /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, state.loading ? "loading\u2026" : "no entries") : window.map((e, i) => {
|
|
160
160
|
const idx = (start || 0) + i;
|
|
161
161
|
const active = idx === state.selected;
|
|
162
162
|
const tag = e.source === "official" ? "[off]" : e.source === "smithery" ? "[smt]" : "[loc]";
|
|
163
163
|
const pop = e.popularity !== void 0 ? ` \xB7 ${e.popularity.toLocaleString()}` : "";
|
|
164
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
|
165
|
-
})), selected ? /* @__PURE__ */ import_react.default.createElement(
|
|
164
|
+
return /* @__PURE__ */ import_react.default.createElement(Box_default, { key: e.name }, /* @__PURE__ */ import_react.default.createElement(Text, { color: active ? "ansi:cyan" : void 0 }, active ? "\u25B8 " : " "), /* @__PURE__ */ import_react.default.createElement(Text, { bold: active }, e.name.padEnd(40).slice(0, 40)), /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, ` ${tag}${pop}`));
|
|
165
|
+
})), selected ? /* @__PURE__ */ import_react.default.createElement(Box_default, { marginTop: 1, flexDirection: "column" }, /* @__PURE__ */ import_react.default.createElement(Text, { bold: true, color: "ansi:white" }, overlay?.[selected.name]?.title ?? selected.title, overlay?.[selected.name] ? /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, ` \xB7 ${selected.title}`) : null), /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, overlay?.[selected.name]?.description ?? selected.description?.slice(0, 160) ?? null), selected.install ? /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, `spec: ${selected.install.runtime} ${selected.install.packageId ?? selected.install.url ?? "\u2014"} \xB7 ${selected.install.transport}`) : /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, "(smithery listing \u2014 install info not exposed)"), selected.install?.requiredEnv?.length ? /* @__PURE__ */ import_react.default.createElement(Text, { color: "ansi:yellow" }, `needs: ${selected.install.requiredEnv.join(", ")}`) : null) : null, /* @__PURE__ */ import_react.default.createElement(Box_default, { marginTop: 1 }, /* @__PURE__ */ import_react.default.createElement(Text, { dim: true }, "type to filter \xB7 \u2191\u2193 pick \xB7 enter install \xB7 tab load more \xB7 esc quit")));
|
|
166
166
|
}
|
|
167
167
|
async function mcpBrowseCommand(_opts = {}) {
|
|
168
168
|
loadDotenv();
|
|
169
|
-
const { waitUntilExit } =
|
|
169
|
+
const { waitUntilExit } = renderSync(/* @__PURE__ */ import_react.default.createElement(McpBrowseApp, null), {
|
|
170
170
|
exitOnCtrlC: true,
|
|
171
171
|
patchConsole: false
|
|
172
172
|
});
|
|
@@ -175,4 +175,4 @@ async function mcpBrowseCommand(_opts = {}) {
|
|
|
175
175
|
export {
|
|
176
176
|
mcpBrowseCommand
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=mcp-browse-
|
|
178
|
+
//# sourceMappingURL=mcp-browse-NGEOHVJB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/cli/commands/mcp-browse.tsx"],"sourcesContent":["/** `reasonix mcp browse` — Ink TUI for the MCP marketplace. Lazy-loads pages on scroll. */\n\nimport { Box, Text, render, useApp, useInput } from \"ink\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { readConfig, writeConfig } from \"../../config.js\";\nimport { loadDotenv } from \"../../env.js\";\nimport { loadOverlay } from \"../../mcp/marketplace-overlay/loader.js\";\nimport {\n type RegistryHandle,\n loadMorePages,\n openRegistry,\n specStringFor,\n} from \"../../mcp/registry-fetch.js\";\nimport type { RegistryEntry } from \"../../mcp/registry-types.js\";\n\nconst VISIBLE_ROWS = 12;\n\ninterface State {\n handle: RegistryHandle | null;\n loading: boolean;\n query: string;\n selected: number;\n status: string;\n}\n\nfunction rankAndFilter(entries: RegistryEntry[], query: string): RegistryEntry[] {\n const q = query.trim().toLowerCase();\n const list = q\n ? entries.filter((e) => `${e.name} ${e.title} ${e.description}`.toLowerCase().includes(q))\n : entries;\n return [...list].sort((a, b) => {\n const ap = a.popularity ?? -1;\n const bp = b.popularity ?? -1;\n if (ap !== bp) return bp - ap;\n return a.name.localeCompare(b.name);\n });\n}\n\nfunction McpBrowseApp() {\n const app = useApp();\n const [state, setState] = useState<State>({\n handle: null,\n loading: true,\n query: \"\",\n selected: 0,\n status: \"opening registry…\",\n });\n\n const setStatus = useCallback((status: string) => {\n setState((s) => ({ ...s, status }));\n }, []);\n\n useEffect(() => {\n let cancelled = false;\n (async () => {\n try {\n const handle = await openRegistry({});\n if (cancelled) return;\n const ageMs = Date.now() - handle.fetchedAt;\n const ageStr =\n ageMs < 60_000 ? `${Math.floor(ageMs / 1000)}s` : `${Math.floor(ageMs / 60_000)}m`;\n setState((s) => ({\n ...s,\n handle,\n loading: false,\n status: `${handle.source} · ${handle.cache.entries.length} entries${\n handle.fromCache ? ` · cached ${ageStr} ago` : \"\"\n }`,\n }));\n } catch (err) {\n if (cancelled) return;\n setState((s) => ({ ...s, loading: false, status: `error: ${(err as Error).message}` }));\n }\n })();\n return () => {\n cancelled = true;\n };\n }, []);\n\n const filtered = useMemo(() => {\n if (!state.handle) return [];\n return rankAndFilter(state.handle.cache.entries, state.query);\n }, [state.handle, state.query]);\n\n const selected = filtered[state.selected];\n\n const fetchMore = useCallback(async () => {\n if (!state.handle || state.loading) return;\n if (state.handle.cache.pagination.nextCursor === null) {\n setStatus(\"no more pages — registry exhausted\");\n return;\n }\n setState((s) => ({ ...s, loading: true, status: \"loading more…\" }));\n try {\n const r = await loadMorePages(state.handle, { pages: 5 });\n setState((s) => ({\n ...s,\n loading: false,\n status: `+${r.newEntries} entries (${state.handle?.cache.entries.length ?? 0} total)${\n r.exhausted ? \" · exhausted\" : \"\"\n }`,\n }));\n } catch (err) {\n setState((s) => ({ ...s, loading: false, status: `error: ${(err as Error).message}` }));\n }\n }, [state.handle, state.loading, setStatus]);\n\n const install = useCallback(\n (entry: RegistryEntry) => {\n if (!entry.install) {\n setStatus(`${entry.name} has no install info (smithery listing)`);\n return;\n }\n try {\n const spec = specStringFor(entry.name, entry.install);\n const cfg = readConfig();\n const existing = cfg.mcp ?? [];\n if (existing.includes(spec)) {\n setStatus(`already installed: ${spec}`);\n return;\n }\n writeConfig({ ...cfg, mcp: [...existing, spec] });\n setStatus(`installed → ${spec}`);\n } catch (err) {\n setStatus(`install failed: ${(err as Error).message}`);\n }\n },\n [setStatus],\n );\n\n useInput((input, key) => {\n if (key.escape || (key.ctrl && input === \"c\")) {\n app.exit();\n return;\n }\n if (key.upArrow) {\n setState((s) => ({ ...s, selected: Math.max(0, s.selected - 1) }));\n return;\n }\n if (key.downArrow) {\n setState((s) => ({ ...s, selected: Math.min(filtered.length - 1, s.selected + 1) }));\n return;\n }\n if (key.return) {\n if (selected) install(selected);\n return;\n }\n if (key.tab || (key.ctrl && input === \"n\")) {\n void fetchMore();\n return;\n }\n if (key.backspace || key.delete) {\n setState((s) => ({ ...s, query: s.query.slice(0, -1), selected: 0 }));\n return;\n }\n if (input && !key.ctrl && !key.meta) {\n setState((s) => ({ ...s, query: s.query + input, selected: 0 }));\n }\n });\n\n const overlay = useMemo(() => loadOverlay(\"zh-CN\"), []);\n\n const start = Math.max(\n 0,\n Math.min(state.selected - Math.floor(VISIBLE_ROWS / 2), filtered.length - VISIBLE_ROWS),\n );\n const window = filtered.slice(Math.max(0, start), Math.max(0, start) + VISIBLE_ROWS);\n\n return (\n <Box flexDirection=\"column\" paddingX={1}>\n <Box>\n <Text bold color=\"ansi:cyan\">\n ◈ MCP marketplace\n </Text>\n <Text dim>{` · ${state.status}`}</Text>\n </Box>\n <Box marginTop={1}>\n <Text>search: </Text>\n <Text color=\"ansi:white\">{state.query || \"(type to filter)\"}</Text>\n <Text dim>{` ${filtered.length} match${filtered.length === 1 ? \"\" : \"es\"}`}</Text>\n </Box>\n <Box marginTop={1} flexDirection=\"column\">\n {window.length === 0 ? (\n <Text dim>{state.loading ? \"loading…\" : \"no entries\"}</Text>\n ) : (\n window.map((e, i) => {\n const idx = (start || 0) + i;\n const active = idx === state.selected;\n const tag =\n e.source === \"official\" ? \"[off]\" : e.source === \"smithery\" ? \"[smt]\" : \"[loc]\";\n const pop = e.popularity !== undefined ? ` · ${e.popularity.toLocaleString()}` : \"\";\n return (\n <Box key={e.name}>\n <Text color={active ? \"ansi:cyan\" : undefined}>{active ? \"▸ \" : \" \"}</Text>\n <Text bold={active}>{e.name.padEnd(40).slice(0, 40)}</Text>\n <Text dim>{` ${tag}${pop}`}</Text>\n </Box>\n );\n })\n )}\n </Box>\n {selected ? (\n <Box marginTop={1} flexDirection=\"column\">\n <Text bold color=\"ansi:white\">\n {overlay?.[selected.name]?.title ?? selected.title}\n {overlay?.[selected.name] ? <Text dim>{` \\u00b7 ${selected.title}`}</Text> : null}\n </Text>\n <Text dim>\n {overlay?.[selected.name]?.description ?? selected.description?.slice(0, 160) ?? null}\n </Text>\n {selected.install ? (\n <Text dim>\n {`spec: ${selected.install.runtime} ${selected.install.packageId ?? selected.install.url ?? \"—\"} · ${selected.install.transport}`}\n </Text>\n ) : (\n <Text dim>(smithery listing — install info not exposed)</Text>\n )}\n {selected.install?.requiredEnv?.length ? (\n <Text color=\"ansi:yellow\">{`needs: ${selected.install.requiredEnv.join(\", \")}`}</Text>\n ) : null}\n </Box>\n ) : null}\n <Box marginTop={1}>\n <Text dim>type to filter · ↑↓ pick · enter install · tab load more · esc quit</Text>\n </Box>\n </Box>\n );\n}\n\nexport interface McpBrowseOptions {\n /** Reserved — currently unused, kept for symmetry with other commands. */\n _unused?: never;\n}\n\nexport async function mcpBrowseCommand(_opts: McpBrowseOptions = {}): Promise<void> {\n loadDotenv();\n const { waitUntilExit } = render(<McpBrowseApp />, {\n exitOnCtrlC: true,\n patchConsole: false,\n });\n await waitUntilExit();\n}\n"],"mappings":"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","names":["React"]}
|
|
@@ -3,19 +3,19 @@ import { createRequire as __cr } from 'node:module'; if (typeof globalThis.requi
|
|
|
3
3
|
import {
|
|
4
4
|
buildTransportFromSpec,
|
|
5
5
|
preflightStdioSpec
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MQJR7YQ2.js";
|
|
7
7
|
import {
|
|
8
8
|
McpClient,
|
|
9
9
|
inspectMcpServer
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-XXC2BYTV.js";
|
|
10
|
+
} from "./chunk-4SBXAHR6.js";
|
|
12
11
|
import "./chunk-25T6CVUP.js";
|
|
12
|
+
import "./chunk-XXC2BYTV.js";
|
|
13
13
|
import {
|
|
14
14
|
normalizeMcpConfig,
|
|
15
15
|
overlayMatchedSpec,
|
|
16
16
|
parseMcpSpec,
|
|
17
17
|
readConfig
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-GCNBIWK7.js";
|
|
19
19
|
import "./chunk-TUK7OWJA.js";
|
|
20
20
|
|
|
21
21
|
// src/cli/commands/mcp-inspect.ts
|
|
@@ -146,4 +146,4 @@ export {
|
|
|
146
146
|
formatMcpInspectFailure,
|
|
147
147
|
mcpInspectCommand
|
|
148
148
|
};
|
|
149
|
-
//# sourceMappingURL=mcp-inspect-
|
|
149
|
+
//# sourceMappingURL=mcp-inspect-ZIMNRG7G.js.map
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
CODE_SYSTEM_PROMPT,
|
|
5
5
|
codeSystemBase,
|
|
6
6
|
codeSystemPrompt
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-XHP6NYOT.js";
|
|
8
|
+
import "./chunk-J4MYMBJ7.js";
|
|
9
|
+
import "./chunk-U7G72DHQ.js";
|
|
10
|
+
import "./chunk-GCNBIWK7.js";
|
|
11
11
|
import "./chunk-TUK7OWJA.js";
|
|
12
12
|
export {
|
|
13
13
|
CODE_SYSTEM_PROMPT,
|
|
14
14
|
codeSystemBase,
|
|
15
15
|
codeSystemPrompt
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=prompt-
|
|
17
|
+
//# sourceMappingURL=prompt-JCC3A7AA.js.map
|
|
@@ -3,11 +3,11 @@ import { createRequire as __cr } from 'node:module'; if (typeof globalThis.requi
|
|
|
3
3
|
import {
|
|
4
4
|
listSessions,
|
|
5
5
|
pruneStaleSessions
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-P5SUHDUQ.js";
|
|
7
7
|
import {
|
|
8
8
|
t
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-U7G72DHQ.js";
|
|
10
|
+
import "./chunk-GCNBIWK7.js";
|
|
11
11
|
import "./chunk-TUK7OWJA.js";
|
|
12
12
|
|
|
13
13
|
// src/cli/commands/prune-sessions.ts
|
|
@@ -45,4 +45,4 @@ function pruneSessionsCommand(opts) {
|
|
|
45
45
|
export {
|
|
46
46
|
pruneSessionsCommand
|
|
47
47
|
};
|
|
48
|
-
//# sourceMappingURL=prune-sessions-
|
|
48
|
+
//# sourceMappingURL=prune-sessions-TE4BJYO2.js.map
|