@luckydraw/cumulus 0.5.1
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 +148 -0
- package/dist/cli/cumulus.d.ts +3 -0
- package/dist/cli/cumulus.d.ts.map +1 -0
- package/dist/cli/cumulus.js +233 -0
- package/dist/cli/cumulus.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config.d.ts +86 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +241 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/content-detector.d.ts +46 -0
- package/dist/lib/content-detector.d.ts.map +1 -0
- package/dist/lib/content-detector.js +359 -0
- package/dist/lib/content-detector.js.map +1 -0
- package/dist/lib/content-store.d.ts +255 -0
- package/dist/lib/content-store.d.ts.map +1 -0
- package/dist/lib/content-store.js +955 -0
- package/dist/lib/content-store.js.map +1 -0
- package/dist/lib/context-budget.d.ts +83 -0
- package/dist/lib/context-budget.d.ts.map +1 -0
- package/dist/lib/context-budget.js +101 -0
- package/dist/lib/context-budget.js.map +1 -0
- package/dist/lib/embeddings.d.ts +64 -0
- package/dist/lib/embeddings.d.ts.map +1 -0
- package/dist/lib/embeddings.js +176 -0
- package/dist/lib/embeddings.js.map +1 -0
- package/dist/lib/history.d.ts +120 -0
- package/dist/lib/history.d.ts.map +1 -0
- package/dist/lib/history.js +205 -0
- package/dist/lib/history.js.map +1 -0
- package/dist/lib/image-utils.d.ts +41 -0
- package/dist/lib/image-utils.d.ts.map +1 -0
- package/dist/lib/image-utils.js +288 -0
- package/dist/lib/image-utils.js.map +1 -0
- package/dist/lib/migrate.d.ts +35 -0
- package/dist/lib/migrate.d.ts.map +1 -0
- package/dist/lib/migrate.js +196 -0
- package/dist/lib/migrate.js.map +1 -0
- package/dist/lib/retriever.d.ts +56 -0
- package/dist/lib/retriever.d.ts.map +1 -0
- package/dist/lib/retriever.js +644 -0
- package/dist/lib/retriever.js.map +1 -0
- package/dist/lib/revert.d.ts +23 -0
- package/dist/lib/revert.d.ts.map +1 -0
- package/dist/lib/revert.js +75 -0
- package/dist/lib/revert.js.map +1 -0
- package/dist/lib/session.d.ts +65 -0
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/lib/session.js +289 -0
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/snapshots.d.ts +39 -0
- package/dist/lib/snapshots.d.ts.map +1 -0
- package/dist/lib/snapshots.js +99 -0
- package/dist/lib/snapshots.js.map +1 -0
- package/dist/lib/stream-processor.d.ts +149 -0
- package/dist/lib/stream-processor.d.ts.map +1 -0
- package/dist/lib/stream-processor.js +389 -0
- package/dist/lib/stream-processor.js.map +1 -0
- package/dist/lib/summarizer.d.ts +67 -0
- package/dist/lib/summarizer.d.ts.map +1 -0
- package/dist/lib/summarizer.js +213 -0
- package/dist/lib/summarizer.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +16 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/proxy.d.ts +19 -0
- package/dist/mcp/proxy.d.ts.map +1 -0
- package/dist/mcp/proxy.js +120 -0
- package/dist/mcp/proxy.js.map +1 -0
- package/dist/mcp/server.d.ts +6 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +29 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/shared-server.d.ts +21 -0
- package/dist/mcp/shared-server.d.ts.map +1 -0
- package/dist/mcp/shared-server.js +210 -0
- package/dist/mcp/shared-server.js.map +1 -0
- package/dist/mcp/tool-handler.d.ts +20 -0
- package/dist/mcp/tool-handler.d.ts.map +1 -0
- package/dist/mcp/tool-handler.js +1405 -0
- package/dist/mcp/tool-handler.js.map +1 -0
- package/dist/tui/components/App.d.ts +11 -0
- package/dist/tui/components/App.d.ts.map +1 -0
- package/dist/tui/components/App.js +607 -0
- package/dist/tui/components/App.js.map +1 -0
- package/dist/tui/components/DebugContextView.d.ts +13 -0
- package/dist/tui/components/DebugContextView.d.ts.map +1 -0
- package/dist/tui/components/DebugContextView.js +78 -0
- package/dist/tui/components/DebugContextView.js.map +1 -0
- package/dist/tui/components/IncludeMenu.d.ts +12 -0
- package/dist/tui/components/IncludeMenu.d.ts.map +1 -0
- package/dist/tui/components/IncludeMenu.js +127 -0
- package/dist/tui/components/IncludeMenu.js.map +1 -0
- package/dist/tui/components/InputArea.d.ts +27 -0
- package/dist/tui/components/InputArea.d.ts.map +1 -0
- package/dist/tui/components/InputArea.js +366 -0
- package/dist/tui/components/InputArea.js.map +1 -0
- package/dist/tui/components/MarkdownText.d.ts +38 -0
- package/dist/tui/components/MarkdownText.d.ts.map +1 -0
- package/dist/tui/components/MarkdownText.js +234 -0
- package/dist/tui/components/MarkdownText.js.map +1 -0
- package/dist/tui/components/MessageBubble.d.ts +11 -0
- package/dist/tui/components/MessageBubble.d.ts.map +1 -0
- package/dist/tui/components/MessageBubble.js +16 -0
- package/dist/tui/components/MessageBubble.js.map +1 -0
- package/dist/tui/components/MessageHistory.d.ts +11 -0
- package/dist/tui/components/MessageHistory.d.ts.map +1 -0
- package/dist/tui/components/MessageHistory.js +12 -0
- package/dist/tui/components/MessageHistory.js.map +1 -0
- package/dist/tui/components/RevertMenu.d.ts +17 -0
- package/dist/tui/components/RevertMenu.d.ts.map +1 -0
- package/dist/tui/components/RevertMenu.js +144 -0
- package/dist/tui/components/RevertMenu.js.map +1 -0
- package/dist/tui/components/StatusBar.d.ts +14 -0
- package/dist/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/tui/components/StatusBar.js +13 -0
- package/dist/tui/components/StatusBar.js.map +1 -0
- package/dist/tui/components/StreamingResponse.d.ts +15 -0
- package/dist/tui/components/StreamingResponse.d.ts.map +1 -0
- package/dist/tui/components/StreamingResponse.js +52 -0
- package/dist/tui/components/StreamingResponse.js.map +1 -0
- package/dist/tui/hooks/useAppState.d.ts +147 -0
- package/dist/tui/hooks/useAppState.d.ts.map +1 -0
- package/dist/tui/hooks/useAppState.js +110 -0
- package/dist/tui/hooks/useAppState.js.map +1 -0
- package/dist/tui/hooks/useClaudeProcess.d.ts +19 -0
- package/dist/tui/hooks/useClaudeProcess.d.ts.map +1 -0
- package/dist/tui/hooks/useClaudeProcess.js +185 -0
- package/dist/tui/hooks/useClaudeProcess.js.map +1 -0
- package/dist/tui/index.d.ts +10 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +11 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/utils/streamParser.d.ts +31 -0
- package/dist/tui/utils/streamParser.d.ts.map +1 -0
- package/dist/tui/utils/streamParser.js +63 -0
- package/dist/tui/utils/streamParser.js.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownText.js","sourceRoot":"","sources":["../../../src/tui/components/MarkdownText.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAmBhC,+EAA+E;AAE/E,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,eAAe,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;YAC9D,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;YACxD,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACpD,MAAM;QACR,CAAC;aAAM,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC;YACxD,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;YAC1E,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+EAA+E;AAE/E,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,KAAK,GAAG,OAAO,CAAC;IACpB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAEvB,aAAa;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;gBAC1B,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC7B,QAAQ,EAAE,QAAQ,IAAI,SAAS;aAChC,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM;gBAAE,CAAC,EAAE,CAAC,CAAC,mBAAmB;YAC9C,SAAS;QACX,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvB,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,UAAU;QACV,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,YAAY,CAAC,CAAC,CAAE,CAAC,MAAM;gBAC9B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAE;aAC1B,CAAC,CAAC;YACH,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAClD,6EAA6E;YAC7E,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5B,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC;YAClF,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B;YAClC,MAAM,IAAI,GAAe,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC9E,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;gBACpC,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QAED,iBAAiB;QACjB,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;gBACzD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QAED,eAAe;QACf,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7C,CAAC,EAAE,CAAC;YACN,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,OACE,CAAC,GAAG,KAAK,CAAC,MAAM;YAChB,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,EAAE;YACvB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACxC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;YAC5B,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YACnD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;YACrF,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;YAC9B,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;YAChC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAC1B,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAE/E,SAAS,UAAU,CAAC,EAAE,IAAI,EAAoB;IAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CACL,KAAC,IAAI,cACF,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACvB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,OAAO,CACL,KAAC,IAAI,IAAS,IAAI,kBACf,GAAG,CAAC,OAAO,IADH,CAAC,CAEL,CACR,CAAC;gBACJ,KAAK,MAAM;oBACT,OAAO,CACL,KAAC,IAAI,IAAS,KAAK,EAAC,QAAQ,YACzB,GAAG,CAAC,OAAO,IADH,CAAC,CAEL,CACR,CAAC;gBACJ;oBACE,OAAO,KAAC,IAAI,cAAU,GAAG,CAAC,OAAO,IAAf,CAAC,CAAsB,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,GACG,CACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAQD,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IACzD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACvB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,WAAW;oBACd,OAAO,CACL,MAAC,GAAG,IAAS,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,aAC5C,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aACf,KAAK,EACL,KAAK,CAAC,QAAQ,IACV,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,KAAK,CAAC,OAAO,GAAQ,EAC1C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,KAAK,GAAQ,KANzB,CAAC,CAOL,CACP,CAAC;gBAEJ,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,QAAQ,GAA2B,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;oBAC9E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;oBAC/C,OAAO,CACL,KAAC,GAAG,IAAS,SAAS,EAAE,CAAC,YACvB,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,KAAK,aACpB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAG,KAAK,CAAC,OAAO,IACnC,IAHC,CAAC,CAIL,CACP,CAAC;gBACJ,CAAC;gBAED,KAAK,IAAI;oBACP,OAAO,CACL,KAAC,GAAG,IAAS,OAAO,EAAE,CAAC,YACrB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAQ,IADlC,CAAC,CAEL,CACP,CAAC;gBAEJ,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;oBAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;oBAEhC,kDAAkD;oBAClD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC1D,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;wBAChE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EACpE,CAAC,CACF,CAAC;wBACF,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;oBAC5C,CAAC,CAAC,CAAC;oBAEH,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBAEhF,MAAM,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBAC9E,MAAM,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBAC9E,MAAM,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBAE9E,MAAM,SAAS,GAAG,CAAC,KAAe,EAAE,EAAE,CACpC,GAAG;wBACH,KAAK,CAAC,IAAI,CACR,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC,GAAG,GAAG,CAC7E,CAAC,IAAI,CAAC,GAAG,CAAC;wBACX,GAAG,CAAC;oBAEN,OAAO,CACL,MAAC,GAAG,IAAS,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,aAC5C,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,SAAS,GAAQ,EACrC,KAAC,IAAI,IAAC,IAAI,kBAAE,SAAS,CAAC,OAAO,CAAC,GAAQ,EACtC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,SAAS,GAAQ,EACpC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,IAAI,cAAU,SAAS,CAAC,GAAG,CAAC,IAAlB,CAAC,CAAyB,CACtC,CAAC,EACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,SAAS,GAAQ,KAP7B,CAAC,CAQL,CACP,CAAC;gBACJ,CAAC;gBAED,KAAK,MAAM;oBACT,OAAO,CACL,KAAC,GAAG,IAAS,aAAa,EAAC,QAAQ,YAChC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,MAAC,GAAG,eACF,KAAC,IAAI,cAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAQ,EACtD,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,KAFlB,CAAC,CAGL,CACP,CAAC,IANM,CAAC,CAOL,CACP,CAAC;gBAEJ,KAAK,YAAY;oBACf,OAAO,CACL,KAAC,GAAG,IAAS,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,YAC3C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,MAAM,GAAQ,EAClC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,KAFlB,CAAC,CAGL,CACP,CAAC,IANM,CAAC,CAOL,CACP,CAAC;gBAEJ,KAAK,WAAW;oBACd,OAAO,KAAC,UAAU,IAAS,IAAI,EAAE,KAAK,CAAC,OAAO,IAAtB,CAAC,CAAyB,CAAC;gBAErD;oBACE,OAAO,IAAI,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single message display with role-based styling.
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { Message } from '../../lib/history.js';
|
|
6
|
+
interface MessageBubbleProps {
|
|
7
|
+
message: Message;
|
|
8
|
+
}
|
|
9
|
+
export declare function MessageBubble({ message }: MessageBubbleProps): React.ReactElement;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=MessageBubble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MessageBubble.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAuBjF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Single message display with role-based styling.
|
|
4
|
+
*/
|
|
5
|
+
import { Box, Text } from 'ink';
|
|
6
|
+
import { MarkdownText } from './MarkdownText.js';
|
|
7
|
+
export function MessageBubble({ message }) {
|
|
8
|
+
const isUser = message.role === 'user';
|
|
9
|
+
const isSession = message.role === 'session';
|
|
10
|
+
if (isSession) {
|
|
11
|
+
// Don't render session documents
|
|
12
|
+
return _jsx(_Fragment, {});
|
|
13
|
+
}
|
|
14
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: isUser ? 'cyan' : 'white', bold: true, children: isUser ? '> ' : '' }), _jsx(Box, { marginLeft: isUser ? 2 : 0, children: isUser ? (_jsx(Text, { color: "cyan", children: message.content })) : (_jsx(MarkdownText, { content: message.content })) })] }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=MessageBubble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageBubble.js","sourceRoot":"","sources":["../../../src/tui/components/MessageBubble.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAKhC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAsB;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;IAE7C,IAAI,SAAS,EAAE,CAAC;QACd,iCAAiC;QACjC,OAAO,mBAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aACzC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,kBACzC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GACd,EACP,KAAC,GAAG,IAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAC5B,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,OAAO,CAAC,OAAO,GAAQ,CAC5C,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAI,CAC3C,GACG,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders completed messages using Static for permanence.
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { Message } from '../../lib/history.js';
|
|
6
|
+
interface MessageHistoryProps {
|
|
7
|
+
messages: Message[];
|
|
8
|
+
}
|
|
9
|
+
export declare function MessageHistory({ messages }: MessageHistoryProps): React.ReactElement;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=MessageHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageHistory.d.ts","sourceRoot":"","sources":["../../../src/tui/components/MessageHistory.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CASpF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Renders completed messages using Static for permanence.
|
|
4
|
+
*/
|
|
5
|
+
import { Static } from 'ink';
|
|
6
|
+
import { MessageBubble } from './MessageBubble.js';
|
|
7
|
+
export function MessageHistory({ messages }) {
|
|
8
|
+
// Filter out session documents from display
|
|
9
|
+
const displayMessages = messages.filter(m => m.role !== 'session');
|
|
10
|
+
return (_jsx(Static, { items: displayMessages, children: message => _jsx(MessageBubble, { message: message }, message.id) }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=MessageHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageHistory.js","sourceRoot":"","sources":["../../../src/tui/components/MessageHistory.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAK7B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAuB;IAC9D,4CAA4C;IAC5C,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAEnE,OAAO,CACL,KAAC,MAAM,IAAC,KAAK,EAAE,eAAe,YAC3B,OAAO,CAAC,EAAE,CAAC,KAAC,aAAa,IAAkB,OAAO,EAAE,OAAO,IAA5B,OAAO,CAAC,EAAE,CAAsB,GACzD,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overlay menu for reverting conversation to an earlier point.
|
|
3
|
+
* Supports list, confirm, and result modes.
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import type { HistoryStore, Message } from '../../lib/history.js';
|
|
7
|
+
import type { RevertResult } from '../../lib/revert.js';
|
|
8
|
+
interface RevertMenuProps {
|
|
9
|
+
messages: Message[];
|
|
10
|
+
threadName: string;
|
|
11
|
+
historyStore: HistoryStore;
|
|
12
|
+
onRevert: (result: RevertResult) => void;
|
|
13
|
+
onClose: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function RevertMenu({ messages, historyStore, onRevert, onClose, }: RevertMenuProps): React.ReactElement;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=RevertMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RevertMenu.d.ts","sourceRoot":"","sources":["../../../src/tui/components/RevertMenu.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAsBxD,UAAU,eAAe;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAkDD,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,OAAO,GACR,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA8KtC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Overlay menu for reverting conversation to an earlier point.
|
|
4
|
+
* Supports list, confirm, and result modes.
|
|
5
|
+
*/
|
|
6
|
+
import { Box, Text, useInput } from 'ink';
|
|
7
|
+
import { useState, useEffect, useMemo } from 'react';
|
|
8
|
+
import { executeRevert } from '../../lib/revert.js';
|
|
9
|
+
function formatTime(timestamp) {
|
|
10
|
+
const d = new Date(timestamp);
|
|
11
|
+
const h = d.getHours();
|
|
12
|
+
const m = d.getMinutes().toString().padStart(2, '0');
|
|
13
|
+
const ampm = h >= 12 ? 'PM' : 'AM';
|
|
14
|
+
const h12 = h % 12 || 12;
|
|
15
|
+
return `${h12}:${m} ${ampm}`;
|
|
16
|
+
}
|
|
17
|
+
function truncatePreview(content, maxLen = 50) {
|
|
18
|
+
const firstLine = content.split('\n')[0] ?? '';
|
|
19
|
+
if (firstLine.length <= maxLen)
|
|
20
|
+
return firstLine;
|
|
21
|
+
return firstLine.slice(0, maxLen - 3) + '...';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Group messages into user+assistant turn pairs.
|
|
25
|
+
* Returns most recent first, max 50 turns.
|
|
26
|
+
*/
|
|
27
|
+
function groupTurns(messages) {
|
|
28
|
+
const turns = [];
|
|
29
|
+
let turnIndex = 0;
|
|
30
|
+
for (let i = 0; i < messages.length; i++) {
|
|
31
|
+
const msg = messages[i];
|
|
32
|
+
if (msg.role === 'user') {
|
|
33
|
+
turnIndex++;
|
|
34
|
+
const nextMsg = messages[i + 1];
|
|
35
|
+
const assistantMsg = nextMsg?.role === 'assistant' ? nextMsg : undefined;
|
|
36
|
+
const gitSnapshot = msg.metadata?.gitSnapshot;
|
|
37
|
+
turns.push({
|
|
38
|
+
index: turnIndex,
|
|
39
|
+
userMessage: msg,
|
|
40
|
+
assistantMessage: assistantMsg,
|
|
41
|
+
preview: truncatePreview(msg.content),
|
|
42
|
+
time: formatTime(msg.timestamp),
|
|
43
|
+
hasGitSnapshot: !!gitSnapshot,
|
|
44
|
+
gitSnapshot,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Most recent first, max 50
|
|
49
|
+
return turns.reverse().slice(0, 50);
|
|
50
|
+
}
|
|
51
|
+
export function RevertMenu({ messages, historyStore, onRevert, onClose, }) {
|
|
52
|
+
const [mode, setMode] = useState('list');
|
|
53
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
54
|
+
const [restoreGit, setRestoreGit] = useState(false);
|
|
55
|
+
const [resultMessage, setResultMessage] = useState('');
|
|
56
|
+
const [resultColor, setResultColor] = useState('green');
|
|
57
|
+
const turns = useMemo(() => groupTurns(messages), [messages]);
|
|
58
|
+
// Auto-close result after 2s
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
if (mode !== 'result')
|
|
61
|
+
return;
|
|
62
|
+
const timer = setTimeout(() => onClose(), 2000);
|
|
63
|
+
return () => clearTimeout(timer);
|
|
64
|
+
}, [mode, onClose]);
|
|
65
|
+
useInput((_input, key) => {
|
|
66
|
+
if (mode === 'list') {
|
|
67
|
+
if (key.escape) {
|
|
68
|
+
onClose();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (key.upArrow) {
|
|
72
|
+
setSelectedIndex(prev => (prev > 0 ? prev - 1 : turns.length - 1));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (key.downArrow) {
|
|
76
|
+
setSelectedIndex(prev => (prev < turns.length - 1 ? prev + 1 : 0));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (key.return && turns.length > 0) {
|
|
80
|
+
setRestoreGit(false);
|
|
81
|
+
setMode('confirm');
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (mode === 'confirm') {
|
|
86
|
+
if (key.escape) {
|
|
87
|
+
setMode('list');
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (key.leftArrow || key.rightArrow) {
|
|
91
|
+
setRestoreGit(prev => !prev);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (key.return) {
|
|
95
|
+
const turn = turns[selectedIndex];
|
|
96
|
+
// Determine the last message to keep: the assistant response if it exists, otherwise the user message
|
|
97
|
+
const lastKeptMessage = turn.assistantMessage ?? turn.userMessage;
|
|
98
|
+
executeRevert(historyStore, lastKeptMessage.id, {
|
|
99
|
+
restoreGit: restoreGit && turn.hasGitSnapshot,
|
|
100
|
+
gitSnapshot: turn.gitSnapshot,
|
|
101
|
+
}).then(result => {
|
|
102
|
+
if (result.success) {
|
|
103
|
+
let msg = `Reverted: removed ${result.removedCount} message${result.removedCount !== 1 ? 's' : ''}`;
|
|
104
|
+
if (result.gitResult?.success) {
|
|
105
|
+
msg += ' | Code restored';
|
|
106
|
+
if (result.gitResult.warning) {
|
|
107
|
+
msg += ` (${result.gitResult.warning})`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else if (result.gitResult && !result.gitResult.success) {
|
|
111
|
+
msg += ` | Git restore failed: ${result.gitResult.error}`;
|
|
112
|
+
}
|
|
113
|
+
setResultMessage(msg);
|
|
114
|
+
setResultColor('green');
|
|
115
|
+
onRevert(result);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
setResultMessage(`Revert failed: ${result.error}`);
|
|
119
|
+
setResultColor('red');
|
|
120
|
+
}
|
|
121
|
+
setMode('result');
|
|
122
|
+
});
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (mode === 'result') {
|
|
127
|
+
if (key.return || key.escape) {
|
|
128
|
+
onClose();
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
const selectedTurn = turns[selectedIndex];
|
|
134
|
+
// Count messages that would be removed
|
|
135
|
+
const messagesAfter = selectedTurn
|
|
136
|
+
? messages.length -
|
|
137
|
+
messages.indexOf(selectedTurn.assistantMessage ?? selectedTurn.userMessage) -
|
|
138
|
+
1
|
|
139
|
+
: 0;
|
|
140
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "single", borderColor: "yellow", paddingX: 1, marginTop: 1, children: [_jsx(Text, { bold: true, color: "yellow", children: "/revert - Revert Conversation" }), mode === 'list' && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [turns.length === 0 && _jsx(Text, { color: "gray", children: "No turns to revert to." }), turns.map((turn, i) => (_jsxs(Text, { children: [i === selectedIndex ? _jsx(Text, { color: "yellow", children: ' > ' }) : ' ', _jsxs(Text, { color: "gray", children: ["[", turn.index, "]"] }), _jsxs(Text, { children: [" ", turn.preview] }), _jsxs(Text, { color: "gray", children: [" ", turn.time] }), turn.hasGitSnapshot && _jsx(Text, { color: "green", children: " [git]" })] }, turn.userMessage.id))), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "Up/Down: navigate | Enter: select | Esc: close" }) })] })), mode === 'confirm' && selectedTurn && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { children: ["Revert to after turn ", _jsxs(Text, { bold: true, children: ["#", selectedTurn.index] }), "?"] }), _jsxs(Text, { color: "gray", children: ["Removes ", messagesAfter, " message", messagesAfter !== 1 ? 's' : '', " after this exchange."] }), selectedTurn.hasGitSnapshot && (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { children: "Also restore code? " }), _jsxs(Text, { children: ['[', _jsx(Text, { color: restoreGit ? 'green' : 'gray', bold: restoreGit, children: "Yes" }), '] [', _jsx(Text, { color: !restoreGit ? 'cyan' : 'gray', bold: !restoreGit, children: "No" }), ']'] })] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: selectedTurn.hasGitSnapshot
|
|
141
|
+
? 'Left/Right: toggle code restore | Enter: confirm | Esc: back'
|
|
142
|
+
: 'Enter: confirm | Esc: back' }) })] })), mode === 'result' && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: resultColor, children: resultMessage }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "Enter/Esc to close" }) })] }))] }));
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=RevertMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RevertMenu.js","sourceRoot":"","sources":["../../../src/tui/components/RevertMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status bar showing thread info, stats, and streaming indicator.
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { HistoryStats } from '../../lib/history.js';
|
|
6
|
+
interface StatusBarProps {
|
|
7
|
+
threadName: string;
|
|
8
|
+
stats: HistoryStats;
|
|
9
|
+
isProcessing: boolean;
|
|
10
|
+
error: string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function StatusBar({ threadName, stats, isProcessing, error, }: StatusBarProps): React.ReactElement;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=StatusBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAKzD,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EACxB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,KAAK,GACN,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CA0BrC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Status bar showing thread info, stats, and streaming indicator.
|
|
4
|
+
*/
|
|
5
|
+
import { createRequire } from 'module';
|
|
6
|
+
import { Box, Text } from 'ink';
|
|
7
|
+
import Spinner from 'ink-spinner';
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
const { version } = require('../../../package.json');
|
|
10
|
+
export function StatusBar({ threadName, stats, isProcessing, error, }) {
|
|
11
|
+
return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [error && (_jsx(Box, { children: _jsxs(Text, { color: "red", children: ["Error: ", error] }) })), _jsxs(Box, { children: [isProcessing && (_jsx(Box, { marginRight: 1, children: _jsx(Text, { color: "cyan", children: _jsx(Spinner, { type: "dots" }) }) })), _jsxs(Text, { color: "gray", children: ["cumulus v", version, " | ", threadName, " | ", stats.count, " messages | ~", stats.totalTokens, " tokens"] }), !isProcessing && _jsx(Text, { color: "gray", children: " | Type 'exit' or Ctrl+C to quit" })] })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=StatusBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AAKlC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAwB,CAAC;AAS5E,MAAM,UAAU,SAAS,CAAC,EACxB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,KAAK,GACU;IACf,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aAErC,KAAK,IAAI,CACR,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,wBAAS,KAAK,IAAQ,GACnC,CACP,EAGD,MAAC,GAAG,eACD,YAAY,IAAI,CACf,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,YACjB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAChB,KAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG,GAClB,GACH,CACP,EACD,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,0BACN,OAAO,SAAK,UAAU,SAAK,KAAK,CAAC,KAAK,mBAAe,KAAK,CAAC,WAAW,eAC3E,EACN,CAAC,YAAY,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,iDAAkD,IAClF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live-updating Claude response during streaming.
|
|
3
|
+
* Shows raw text with a blinking cursor. Full markdown formatting is applied
|
|
4
|
+
* only after completion when the message moves to MessageHistory/Static.
|
|
5
|
+
*
|
|
6
|
+
* The viewport is capped to ~50% of terminal height with wrapping-aware line
|
|
7
|
+
* counting, so the dynamic area never exceeds what Ink can safely erase.
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
interface StreamingResponseProps {
|
|
11
|
+
content: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function StreamingResponse({ content }: StreamingResponseProps): React.ReactElement | null;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=StreamingResponse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingResponse.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StreamingResponse.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAqDhG"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Live-updating Claude response during streaming.
|
|
4
|
+
* Shows raw text with a blinking cursor. Full markdown formatting is applied
|
|
5
|
+
* only after completion when the message moves to MessageHistory/Static.
|
|
6
|
+
*
|
|
7
|
+
* The viewport is capped to ~50% of terminal height with wrapping-aware line
|
|
8
|
+
* counting, so the dynamic area never exceeds what Ink can safely erase.
|
|
9
|
+
*/
|
|
10
|
+
import { Box, Text, useStdout } from 'ink';
|
|
11
|
+
import { useState, useEffect } from 'react';
|
|
12
|
+
const CURSOR = ' \u2588'; // space + full block character
|
|
13
|
+
const BLINK_INTERVAL_MS = 530;
|
|
14
|
+
export function StreamingResponse({ content }) {
|
|
15
|
+
const { stdout } = useStdout();
|
|
16
|
+
const [cursorVisible, setCursorVisible] = useState(true);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const timer = setInterval(() => {
|
|
19
|
+
setCursorVisible(v => !v);
|
|
20
|
+
}, BLINK_INTERVAL_MS);
|
|
21
|
+
return () => clearInterval(timer);
|
|
22
|
+
}, []);
|
|
23
|
+
if (!content) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const termWidth = stdout.columns || 80;
|
|
27
|
+
const termHeight = stdout.rows || 24;
|
|
28
|
+
// Cap streaming viewport to ~50% of terminal height. This leaves ample room
|
|
29
|
+
// for the header, input area, status bar, margins, and any line-wrap overflow
|
|
30
|
+
// in other dynamic components. The previous approach (rows - 9) was too tight
|
|
31
|
+
// and didn't account for MarkdownText expanding raw lines (e.g. tables).
|
|
32
|
+
// We now render raw text during streaming to avoid that expansion entirely.
|
|
33
|
+
const maxTermRows = Math.max(3, Math.floor(termHeight * 0.5));
|
|
34
|
+
const lines = content.split('\n');
|
|
35
|
+
// Walk backwards from the last line, accumulating terminal rows
|
|
36
|
+
// (accounting for wrapping) until we hit the budget.
|
|
37
|
+
let usedRows = 0;
|
|
38
|
+
let startIdx = lines.length;
|
|
39
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
40
|
+
const lineLen = lines[i].length || 1; // empty line = 1 terminal row
|
|
41
|
+
const lineTermRows = Math.ceil(lineLen / termWidth) || 1;
|
|
42
|
+
if (usedRows + lineTermRows > maxTermRows)
|
|
43
|
+
break;
|
|
44
|
+
usedRows += lineTermRows;
|
|
45
|
+
startIdx = i;
|
|
46
|
+
}
|
|
47
|
+
const truncatedCount = startIdx;
|
|
48
|
+
const visibleLines = lines.slice(startIdx);
|
|
49
|
+
const visibleContent = visibleLines.join('\n');
|
|
50
|
+
return (_jsxs(Box, { flexDirection: "column", children: [truncatedCount > 0 && _jsxs(Text, { dimColor: true, children: ["... (", truncatedCount, " lines above)"] }), _jsxs(Text, { children: [visibleContent, cursorVisible ? CURSOR : ''] })] }));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=StreamingResponse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamingResponse.js","sourceRoot":"","sources":["../../../src/tui/components/StreamingResponse.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC3C,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMnD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,+BAA+B;AACzD,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAA0B;IACnE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEzD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtB,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAErC,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;IAE9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,gEAAgE;IAChE,qDAAqD;IACrD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,8BAA8B;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,QAAQ,GAAG,YAAY,GAAG,WAAW;YAAE,MAAM;QACjD,QAAQ,IAAI,YAAY,CAAC;QACzB,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC;IAChC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,cAAc,GAAG,CAAC,IAAI,MAAC,IAAI,IAAC,QAAQ,4BAAO,cAAc,qBAAqB,EAC/E,MAAC,IAAI,eACF,cAAc,EACd,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IACvB,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application state management with context and reducer.
|
|
3
|
+
*/
|
|
4
|
+
import { type Dispatch } from 'react';
|
|
5
|
+
import type { HistoryStats, Message } from '../../lib/history.js';
|
|
6
|
+
/** Retrieval debug info */
|
|
7
|
+
export interface RetrievalDebugInfo {
|
|
8
|
+
historyCount: number;
|
|
9
|
+
contentCount: number;
|
|
10
|
+
tokensUsed: number;
|
|
11
|
+
debug: {
|
|
12
|
+
historyResults: Array<{
|
|
13
|
+
index: number;
|
|
14
|
+
role: string;
|
|
15
|
+
score: number;
|
|
16
|
+
snippet: string;
|
|
17
|
+
}>;
|
|
18
|
+
contentResults: Array<{
|
|
19
|
+
id: string;
|
|
20
|
+
score: number;
|
|
21
|
+
snippet: string;
|
|
22
|
+
}>;
|
|
23
|
+
sessionResults: Array<{
|
|
24
|
+
sessionId: string;
|
|
25
|
+
score: number;
|
|
26
|
+
snippet: string;
|
|
27
|
+
}>;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** Always-include file debug info */
|
|
31
|
+
export interface AlwaysIncludeDebugInfo {
|
|
32
|
+
files: Array<{
|
|
33
|
+
path: string;
|
|
34
|
+
resolvedPath: string;
|
|
35
|
+
tokens: number;
|
|
36
|
+
truncated: boolean;
|
|
37
|
+
error?: string;
|
|
38
|
+
}>;
|
|
39
|
+
totalTokens: number;
|
|
40
|
+
}
|
|
41
|
+
/** Budget allocation debug info */
|
|
42
|
+
export interface BudgetDebugInfo {
|
|
43
|
+
total: number;
|
|
44
|
+
userQuery: number;
|
|
45
|
+
alwaysInclude: number;
|
|
46
|
+
recentContext: number;
|
|
47
|
+
ragAvailable: number;
|
|
48
|
+
ragUsed: number;
|
|
49
|
+
}
|
|
50
|
+
/** Context info for debug display */
|
|
51
|
+
export interface DebugContext {
|
|
52
|
+
systemPrompt: string;
|
|
53
|
+
userMessage: string;
|
|
54
|
+
recentMessages: Array<{
|
|
55
|
+
role: string;
|
|
56
|
+
content: string;
|
|
57
|
+
}>;
|
|
58
|
+
sessionId: string;
|
|
59
|
+
messageCount: number;
|
|
60
|
+
tokenCount: number;
|
|
61
|
+
retrieval: RetrievalDebugInfo | null;
|
|
62
|
+
alwaysInclude?: AlwaysIncludeDebugInfo;
|
|
63
|
+
budget?: BudgetDebugInfo;
|
|
64
|
+
}
|
|
65
|
+
export interface AppState {
|
|
66
|
+
messages: Message[];
|
|
67
|
+
streamBuffer: string;
|
|
68
|
+
isProcessing: boolean;
|
|
69
|
+
stats: HistoryStats;
|
|
70
|
+
error: string | null;
|
|
71
|
+
threadName: string;
|
|
72
|
+
sessionId: string | null;
|
|
73
|
+
/** Set when Claude's response indicates a background task - triggers auto-follow-up */
|
|
74
|
+
pendingAutoFollowUp: boolean;
|
|
75
|
+
/** Debug mode flag */
|
|
76
|
+
debugMode: boolean;
|
|
77
|
+
/** Context being sent to Claude (for debug display) */
|
|
78
|
+
debugContext: DebugContext | null;
|
|
79
|
+
/** Whether the debug context view is expanded */
|
|
80
|
+
debugContextExpanded: boolean;
|
|
81
|
+
/** Active overlay (e.g. /include menu, /revert menu) */
|
|
82
|
+
overlay: 'include' | 'revert' | null;
|
|
83
|
+
/** Message waiting to be flushed to Static after the dynamic area is cleared */
|
|
84
|
+
pendingMessage: Message | null;
|
|
85
|
+
}
|
|
86
|
+
export type AppAction = {
|
|
87
|
+
type: 'SET_MESSAGES';
|
|
88
|
+
messages: Message[];
|
|
89
|
+
} | {
|
|
90
|
+
type: 'ADD_MESSAGE';
|
|
91
|
+
message: Message;
|
|
92
|
+
} | {
|
|
93
|
+
type: 'UPDATE_STREAM';
|
|
94
|
+
text: string;
|
|
95
|
+
} | {
|
|
96
|
+
type: 'APPEND_STREAM';
|
|
97
|
+
text: string;
|
|
98
|
+
} | {
|
|
99
|
+
type: 'CLEAR_STREAM';
|
|
100
|
+
} | {
|
|
101
|
+
type: 'COMPLETE_RESPONSE';
|
|
102
|
+
message: Message;
|
|
103
|
+
} | {
|
|
104
|
+
type: 'SET_PROCESSING';
|
|
105
|
+
isProcessing: boolean;
|
|
106
|
+
} | {
|
|
107
|
+
type: 'SET_STATS';
|
|
108
|
+
stats: HistoryStats;
|
|
109
|
+
} | {
|
|
110
|
+
type: 'SET_ERROR';
|
|
111
|
+
error: string | null;
|
|
112
|
+
} | {
|
|
113
|
+
type: 'SET_SESSION_ID';
|
|
114
|
+
sessionId: string;
|
|
115
|
+
} | {
|
|
116
|
+
type: 'MARK_INTERRUPTED';
|
|
117
|
+
partialContent: string;
|
|
118
|
+
} | {
|
|
119
|
+
type: 'SET_PENDING_AUTO_FOLLOW_UP';
|
|
120
|
+
pending: boolean;
|
|
121
|
+
} | {
|
|
122
|
+
type: 'SET_DEBUG_MODE';
|
|
123
|
+
debugMode: boolean;
|
|
124
|
+
} | {
|
|
125
|
+
type: 'SET_DEBUG_CONTEXT';
|
|
126
|
+
context: DebugContext | null;
|
|
127
|
+
} | {
|
|
128
|
+
type: 'SET_DEBUG_EXPANDED';
|
|
129
|
+
expanded: boolean;
|
|
130
|
+
} | {
|
|
131
|
+
type: 'TOGGLE_DEBUG_EXPANDED';
|
|
132
|
+
} | {
|
|
133
|
+
type: 'SET_OVERLAY';
|
|
134
|
+
overlay: 'include' | 'revert' | null;
|
|
135
|
+
} | {
|
|
136
|
+
type: 'FLUSH_PENDING_MESSAGE';
|
|
137
|
+
};
|
|
138
|
+
export declare function createInitialState(threadName: string, debugMode?: boolean): AppState;
|
|
139
|
+
export declare function appReducer(state: AppState, action: AppAction): AppState;
|
|
140
|
+
export interface AppContextValue {
|
|
141
|
+
state: AppState;
|
|
142
|
+
dispatch: Dispatch<AppAction>;
|
|
143
|
+
}
|
|
144
|
+
export declare const AppContext: import("react").Context<AppContextValue | null>;
|
|
145
|
+
export declare function useAppContext(): AppContextValue;
|
|
146
|
+
export declare function useAppReducer(threadName: string, debugMode?: boolean): [AppState, Dispatch<AppAction>];
|
|
147
|
+
//# sourceMappingURL=useAppState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAppState.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useAppState.ts"],"names":[],"mappings":"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"}
|