grok-cli-hurry-mode 1.0.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/.grok/settings.json +3 -0
- package/LICENSE +21 -0
- package/README.md +452 -0
- package/dist/agent/grok-agent.d.ts +54 -0
- package/dist/agent/grok-agent.js +674 -0
- package/dist/agent/grok-agent.js.map +1 -0
- package/dist/agent/index.d.ts +14 -0
- package/dist/agent/index.js +137 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/commands/mcp.d.ts +2 -0
- package/dist/commands/mcp.js +245 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/grok/client.d.ts +49 -0
- package/dist/grok/client.js +85 -0
- package/dist/grok/client.js.map +1 -0
- package/dist/grok/tools.d.ts +8 -0
- package/dist/grok/tools.js +357 -0
- package/dist/grok/tools.js.map +1 -0
- package/dist/hooks/use-enhanced-input.d.ts +37 -0
- package/dist/hooks/use-enhanced-input.js +217 -0
- package/dist/hooks/use-enhanced-input.js.map +1 -0
- package/dist/hooks/use-input-handler.d.ts +34 -0
- package/dist/hooks/use-input-handler.js +611 -0
- package/dist/hooks/use-input-handler.js.map +1 -0
- package/dist/hooks/use-input-history.d.ts +9 -0
- package/dist/hooks/use-input-history.js +64 -0
- package/dist/hooks/use-input-history.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +151949 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/client.d.ts +29 -0
- package/dist/mcp/client.js +167 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/config.d.ts +13 -0
- package/dist/mcp/config.js +51 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/transports.d.ts +51 -0
- package/dist/mcp/transports.js +229 -0
- package/dist/mcp/transports.js.map +1 -0
- package/dist/node_modules/react/index.js +1841 -0
- package/dist/tools/bash.d.ts +10 -0
- package/dist/tools/bash.js +81 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/confirmation-tool.d.ts +16 -0
- package/dist/tools/confirmation-tool.js +75 -0
- package/dist/tools/confirmation-tool.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/morph-editor.d.ts +36 -0
- package/dist/tools/morph-editor.js +347 -0
- package/dist/tools/morph-editor.js.map +1 -0
- package/dist/tools/search.d.ts +69 -0
- package/dist/tools/search.js +341 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/text-editor.d.ts +16 -0
- package/dist/tools/text-editor.js +565 -0
- package/dist/tools/text-editor.js.map +1 -0
- package/dist/tools/todo-tool.d.ts +20 -0
- package/dist/tools/todo-tool.js +135 -0
- package/dist/tools/todo-tool.js.map +1 -0
- package/dist/types/index.d.ts +30 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/app.d.ts +7 -0
- package/dist/ui/app.js +160 -0
- package/dist/ui/app.js.map +1 -0
- package/dist/ui/components/api-key-input.d.ts +7 -0
- package/dist/ui/components/api-key-input.js +124 -0
- package/dist/ui/components/api-key-input.js.map +1 -0
- package/dist/ui/components/chat-history.d.ts +8 -0
- package/dist/ui/components/chat-history.js +177 -0
- package/dist/ui/components/chat-history.js.map +1 -0
- package/dist/ui/components/chat-input.d.ts +9 -0
- package/dist/ui/components/chat-input.js +87 -0
- package/dist/ui/components/chat-input.js.map +1 -0
- package/dist/ui/components/chat-interface.d.ts +8 -0
- package/dist/ui/components/chat-interface.js +344 -0
- package/dist/ui/components/chat-interface.js.map +1 -0
- package/dist/ui/components/command-suggestions.d.ts +17 -0
- package/dist/ui/components/command-suggestions.js +68 -0
- package/dist/ui/components/command-suggestions.js.map +1 -0
- package/dist/ui/components/confirmation-dialog.d.ts +11 -0
- package/dist/ui/components/confirmation-dialog.js +167 -0
- package/dist/ui/components/confirmation-dialog.js.map +1 -0
- package/dist/ui/components/diff-renderer.d.ts +13 -0
- package/dist/ui/components/diff-renderer.js +217 -0
- package/dist/ui/components/diff-renderer.js.map +1 -0
- package/dist/ui/components/loading-spinner.d.ts +8 -0
- package/dist/ui/components/loading-spinner.js +92 -0
- package/dist/ui/components/loading-spinner.js.map +1 -0
- package/dist/ui/components/mcp-status.d.ts +5 -0
- package/dist/ui/components/mcp-status.js +74 -0
- package/dist/ui/components/mcp-status.js.map +1 -0
- package/dist/ui/components/model-selection.d.ts +12 -0
- package/dist/ui/components/model-selection.js +28 -0
- package/dist/ui/components/model-selection.js.map +1 -0
- package/dist/ui/shared/max-sized-box.d.ts +8 -0
- package/dist/ui/shared/max-sized-box.js +15 -0
- package/dist/ui/shared/max-sized-box.js.map +1 -0
- package/dist/ui/utils/code-colorizer.d.ts +2 -0
- package/dist/ui/utils/code-colorizer.js +18 -0
- package/dist/ui/utils/code-colorizer.js.map +1 -0
- package/dist/ui/utils/colors.d.ts +14 -0
- package/dist/ui/utils/colors.js +18 -0
- package/dist/ui/utils/colors.js.map +1 -0
- package/dist/ui/utils/markdown-renderer.d.ts +4 -0
- package/dist/ui/utils/markdown-renderer.js +29 -0
- package/dist/ui/utils/markdown-renderer.js.map +1 -0
- package/dist/utils/confirmation-service.d.ts +33 -0
- package/dist/utils/confirmation-service.js +113 -0
- package/dist/utils/confirmation-service.js.map +1 -0
- package/dist/utils/custom-instructions.d.ts +1 -0
- package/dist/utils/custom-instructions.js +53 -0
- package/dist/utils/custom-instructions.js.map +1 -0
- package/dist/utils/model-config.d.ts +28 -0
- package/dist/utils/model-config.js +49 -0
- package/dist/utils/model-config.js.map +1 -0
- package/dist/utils/settings-manager.d.ts +94 -0
- package/dist/utils/settings-manager.js +275 -0
- package/dist/utils/settings-manager.js.map +1 -0
- package/dist/utils/settings.d.ts +1 -0
- package/dist/utils/settings.js +8 -0
- package/dist/utils/settings.js.map +1 -0
- package/dist/utils/text-utils.d.ts +80 -0
- package/dist/utils/text-utils.js +197 -0
- package/dist/utils/text-utils.js.map +1 -0
- package/dist/utils/token-counter.d.ts +33 -0
- package/dist/utils/token-counter.js +83 -0
- package/dist/utils/token-counter.js.map +1 -0
- package/dist/yoga.wasm +0 -0
- package/eslint.config.mjs +28 -0
- package/fix.awk +41 -0
- package/grok-logo-screenshot.png +0 -0
- package/package.json +68 -0
- package/sed_cmd.sh +35 -0
- package/temp.txt +29 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"chat-interface.js","sourceRoot":"","sources":["../../../src/ui/components/chat-interface.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsZA,gCAsBC;AA5aD,+CAA2D;AAC3D,6BAAgC;AAEhC,2EAAmE;AACnE,6DAAsD;AACtD,qEAA8D;AAC9D,6DAAsD;AACtD,uDAAgD;AAChD,mDAA4C;AAC5C,mDAA4C;AAC5C,sFAA0D;AAC1D,iFAG6C;AAC7C,0EAA6C;AAC7C,oDAA4B;AAO5B,iEAAiE;AACjE,SAAS,sBAAsB,CAAC,EAC9B,KAAK,EACL,cAAc,GAIf;IACC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAc,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GACjD,IAAA,gBAAQ,EAA6B,IAAI,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAA,cAAM,GAAO,CAAC;IAChC,MAAM,mBAAmB,GAAG,IAAA,cAAM,EAAS,CAAC,CAAC,CAAC;IAE9C,MAAM,mBAAmB,GAAG,6CAAmB,CAAC,WAAW,EAAE,CAAC;IAE9D,MAAM,EACJ,KAAK,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,GAAG,IAAA,sCAAe,EAAC;QAClB,KAAK;QACL,WAAW;QACX,cAAc;QACd,eAAe;QACf,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,YAAY;QACZ,WAAW;QACX,oBAAoB,EAAE,CAAC,CAAC,mBAAmB;KAC5C,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,mEAAmE;QACnE,6EAA6E;QAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;QAC/C,MAAM,YAAY,GAChB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC;QAEzC,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAED,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,sDAAsD;QACtD,MAAM,QAAQ,GAAG,gBAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YACrC,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;YACzB,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,GAAG;YACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;YACnC,mBAAmB,EAAE,KAAK;YAC1B,kBAAkB,EAAE,IAAI;YACxB,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;QAEH,6DAA6D;QAC7D,MAAM,SAAS,GAAG,gBAAM,CAAC,MAAM,CAAC,YAAY,EAAE;YAC5C,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;YACzB,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;YACnC,mBAAmB,EAAE,KAAK;YAC1B,kBAAkB,EAAE,IAAI;YACxB,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;QAE7D,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,qCAAqC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;QAEvC,cAAc,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,sEAAsE;IACtE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAc;gBAC3B,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,cAAc;gBACvB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;YACF,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAE5B,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE;gBACvC,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,cAAc,CAAC,IAAI,CAAC,CAAC;gBAErB,IAAI,CAAC;oBACH,IAAI,cAAc,GAAqB,IAAI,CAAC;oBAC5C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,CAAC;wBACzE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;4BACnB,KAAK,SAAS;gCACZ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oCAClB,IAAI,CAAC,cAAc,EAAE,CAAC;wCACpB,MAAM,iBAAiB,GAAG;4CACxB,IAAI,EAAE,WAAoB;4CAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;4CACtB,SAAS,EAAE,IAAI,IAAI,EAAE;4CACrB,WAAW,EAAE,IAAI;yCAClB,CAAC;wCACF,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;wCACvD,cAAc,GAAG,iBAAiB,CAAC;oCACrC,CAAC;yCAAM,CAAC;wCACN,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CACtB,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW;4CAC1C,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE;4CACtD,CAAC,CAAC,KAAK,CACV,CACF,CAAC;oCACJ,CAAC;gCACH,CAAC;gCACD,MAAM;4BACR,KAAK,aAAa;gCAChB,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oCACnC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gCAClC,CAAC;gCACD,MAAM;4BACR,KAAK,YAAY;gCACf,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oCACpB,mDAAmD;oCACnD,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK,CAAC,WAAW;wCACf,CAAC,CAAC;4CACE,GAAG,KAAK;4CACR,WAAW,EAAE,KAAK;4CAClB,SAAS,EAAE,KAAK,CAAC,SAAS;yCAC3B;wCACH,CAAC,CAAC,KAAK,CACV,CACF,CAAC;oCACF,cAAc,GAAG,IAAI,CAAC;oCAEtB,oEAAoE;oCACpE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wCACnC,MAAM,aAAa,GAAc;4CAC/B,IAAI,EAAE,WAAW;4CACjB,OAAO,EAAE,cAAc;4CACvB,SAAS,EAAE,IAAI,IAAI,EAAE;4CACrB,QAAQ,EAAE,QAAQ;yCACnB,CAAC;wCACF,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;oCACrD,CAAC,CAAC,CAAC;gCACL,CAAC;gCACD,MAAM;4BACR,KAAK,aAAa;gCAChB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oCACvC,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wCACjB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;4CACtB,OAAO,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;wCAC1C,CAAC;wCACD,IACE,KAAK,CAAC,IAAI,KAAK,WAAW;4CAC1B,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,EAAE,EACzC,CAAC;4CACD,OAAO;gDACL,GAAG,KAAK;gDACR,IAAI,EAAE,aAAa;gDACnB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;oDAC/B,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,SAAS;oDACtC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,gBAAgB;gDAC9C,UAAU,EAAE,KAAK,CAAC,UAAU;6CAC7B,CAAC;wCACJ,CAAC;wCACD,OAAO,KAAK,CAAC;oCACf,CAAC,CAAC,CACH,CAAC;oCACF,cAAc,GAAG,IAAI,CAAC;gCACxB,CAAC;gCACD,MAAM;4BACR,KAAK,MAAM;gCACT,IAAI,cAAc,EAAE,CAAC;oCACnB,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CACtB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAC7D,CACF,CAAC;gCACJ,CAAC;gCACD,cAAc,CAAC,KAAK,CAAC,CAAC;gCACtB,MAAM;wBACV,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,MAAM,UAAU,GAAc;wBAC5B,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;wBAClC,SAAS,EAAE,IAAI,IAAI,EAAE;qBACtB,CAAC;oBACF,cAAc,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;oBAChD,cAAc,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;gBAED,eAAe,CAAC,KAAK,CAAC,CAAC;gBACvB,mBAAmB,CAAC,OAAO,GAAG,CAAC,CAAC;YAClC,CAAC,CAAC;YAEF,qBAAqB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,yBAAyB,GAAG,CAAC,OAA4B,EAAE,EAAE;YACjE,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,mBAAmB,CAAC,EAAE,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC;QAE5E,OAAO,GAAG,EAAE;YACV,mBAAmB,CAAC,GAAG,CACrB,wBAAwB,EACxB,yBAAyB,CAC1B,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE1B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,mBAAmB,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACtC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,iBAAiB,CACf,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAC9D,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhC,MAAM,kBAAkB,GAAG,CAAC,YAAsB,EAAE,EAAE;QACpD,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzD,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,QAAiB,EAAE,EAAE;QAC5C,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAE7B,sDAAsD;QACtD,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,aAAa,CAAC,CAAC,CAAC,CAAC;QACjB,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACrB,mBAAmB,CAAC,OAAO,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,SAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACtC;MAAA,CAAC,oEAAoE,CACrE;MAAA,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CACnD,CAAC,SAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAC1C;UAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACrB;;UACF,EAAE,UAAI,CACN;UAAA,CAAC,SAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CACvC;YAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAChB;;YACF,EAAE,UAAI,CACN;YAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,EAAE,UAAI,CAC7D;YAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAChB;;YACF,EAAE,UAAI,CACN;YAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAChB;;YACF,EAAE,UAAI,CACN;YAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,EAAE,UAAI,CACzD;UAAA,EAAE,SAAG,CACP;QAAA,EAAE,SAAG,CAAC,CACP,CAED;;MAAA,CAAC,SAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAC1C;QAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAChB;;;QAEF,EAAE,UAAI,CACR;MAAA,EAAE,SAAG,CAEL;;MAAA,CAAC,SAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CACzC;QAAA,CAAC,6BAAW,CACV,OAAO,CAAC,CAAC,WAAW,CAAC,CACrB,oBAAoB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAEhD;MAAA,EAAE,SAAG,CAEL;;MAAA,CAAC,gDAAgD,CACjD;MAAA,CAAC,mBAAmB,IAAI,CACtB,CAAC,gCAAkB,CACjB,SAAS,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CACzC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CACvC,cAAc,CAAC,CAAC,mBAAmB,CAAC,cAAc,CAAC,CACnD,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CACrC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAC9B,QAAQ,CAAC,CAAC,eAAe,CAAC,EAC1B,CACH,CAED;;MAAA,CAAC,CAAC,mBAAmB,IAAI,CACvB,EACE;UAAA,CAAC,mCAAc,CACb,QAAQ,CAAC,CAAC,YAAY,IAAI,WAAW,CAAC,CACtC,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,UAAU,CAAC,CAAC,UAAU,CAAC,EAGzB;;UAAA,CAAC,yBAAS,CACR,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,YAAY,CAAC,CAAC,YAAY,CAAC,CAC3B,WAAW,CAAC,CAAC,WAAW,CAAC,EAG3B;;UAAA,CAAC,SAAG,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACpC;YAAA,CAAC,SAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAClB;cAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAChB;gBAAA,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAE,WAAU,CAAC,GAAG,CAC5C;gBAAA,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CACjC;cAAA,EAAE,UAAI,CACN;cAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CACzB;gBAAA,CAAC,GAAG,CACJ;;cACF,EAAE,UAAI,CACR;YAAA,EAAE,SAAG,CACL;YAAA,CAAC,SAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAClB;cAAA,CAAC,UAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,UAAI,CACxD;YAAA,EAAE,SAAG,CACL;YAAA,CAAC,yBAAS,CAAC,AAAD,EACZ;UAAA,EAAE,SAAG,CAEL;;UAAA,CAAC,2CAAkB,CACjB,WAAW,CAAC,CAAC,kBAAkB,CAAC,CAChC,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,aAAa,CAAC,CAAC,oBAAoB,CAAC,CACpC,SAAS,CAAC,CAAC,sBAAsB,CAAC,EAGpC;;UAAA,CAAC,mCAAc,CACb,MAAM,CAAC,CAAC,eAAe,CAAC,CACxB,aAAa,CAAC,CAAC,kBAAkB,CAAC,CAClC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAC9B,YAAY,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,EAE1C;QAAA,GAAG,CACJ,CACH;IAAA,EAAE,SAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,SAAwB,aAAa,CAAC,EACpC,KAAK,EACL,cAAc,GACK;IACnB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAC9C,KAAK,IAAI,IAAI,CACd,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,QAAmB,EAAE,EAAE;QAC9C,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,0BAAW,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,EAAG,CAAC;IACvD,CAAC;IAED,OAAO,CACL,CAAC,sBAAsB,CACrB,KAAK,CAAC,CAAC,YAAY,CAAC,CACpB,cAAc,CAAC,CAAC,cAAc,CAAC,EAC/B,CACH,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import React from "react";
|
2
|
+
interface CommandSuggestion {
|
3
|
+
command: string;
|
4
|
+
description: string;
|
5
|
+
}
|
6
|
+
interface CommandSuggestionsProps {
|
7
|
+
suggestions: CommandSuggestion[];
|
8
|
+
input: string;
|
9
|
+
selectedIndex: number;
|
10
|
+
isVisible: boolean;
|
11
|
+
}
|
12
|
+
export declare const MAX_SUGGESTIONS = 8;
|
13
|
+
export declare function filterCommandSuggestions<T extends {
|
14
|
+
command: string;
|
15
|
+
}>(suggestions: T[], input: string): T[];
|
16
|
+
export declare function CommandSuggestions({ suggestions, input, selectedIndex, isVisible, }: CommandSuggestionsProps): React.JSX.Element | null;
|
17
|
+
export {};
|
@@ -0,0 +1,68 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
36
|
+
exports.MAX_SUGGESTIONS = void 0;
|
37
|
+
exports.filterCommandSuggestions = filterCommandSuggestions;
|
38
|
+
exports.CommandSuggestions = CommandSuggestions;
|
39
|
+
const react_1 = __importStar(require("react"));
|
40
|
+
const ink_1 = require("ink");
|
41
|
+
exports.MAX_SUGGESTIONS = 8;
|
42
|
+
function filterCommandSuggestions(suggestions, input) {
|
43
|
+
const lowerInput = input.toLowerCase();
|
44
|
+
return suggestions
|
45
|
+
.filter((s) => s.command.toLowerCase().startsWith(lowerInput))
|
46
|
+
.slice(0, exports.MAX_SUGGESTIONS);
|
47
|
+
}
|
48
|
+
function CommandSuggestions({ suggestions, input, selectedIndex, isVisible, }) {
|
49
|
+
if (!isVisible)
|
50
|
+
return null;
|
51
|
+
const filteredSuggestions = (0, react_1.useMemo)(() => filterCommandSuggestions(suggestions, input), [suggestions, input]);
|
52
|
+
return (<ink_1.Box marginTop={1} flexDirection="column">
|
53
|
+
{filteredSuggestions.map((suggestion, index) => (<ink_1.Box key={index} paddingLeft={1}>
|
54
|
+
<ink_1.Text color={index === selectedIndex ? "black" : "white"} backgroundColor={index === selectedIndex ? "cyan" : undefined}>
|
55
|
+
{suggestion.command}
|
56
|
+
</ink_1.Text>
|
57
|
+
<ink_1.Box marginLeft={1}>
|
58
|
+
<ink_1.Text color="gray">{suggestion.description}</ink_1.Text>
|
59
|
+
</ink_1.Box>
|
60
|
+
</ink_1.Box>))}
|
61
|
+
<ink_1.Box marginTop={1}>
|
62
|
+
<ink_1.Text color="gray" dimColor>
|
63
|
+
↑↓ navigate • Enter/Tab select • Esc cancel
|
64
|
+
</ink_1.Text>
|
65
|
+
</ink_1.Box>
|
66
|
+
</ink_1.Box>);
|
67
|
+
}
|
68
|
+
//# sourceMappingURL=command-suggestions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"command-suggestions.js","sourceRoot":"","sources":["../../../src/ui/components/command-suggestions.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,4DAQC;AAED,gDAmCC;AA9DD,+CAAuC;AACvC,6BAAgC;AAcnB,QAAA,eAAe,GAAG,CAAC,CAAC;AAEjC,SAAgB,wBAAwB,CACtC,WAAgB,EAChB,KAAa;IAEb,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,WAAW;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;SAC7D,KAAK,CAAC,CAAC,EAAE,uBAAe,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,KAAK,EACL,aAAa,EACb,SAAS,GACe;IACxB,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,mBAAmB,GAAG,IAAA,eAAO,EACjC,GAAG,EAAE,CAAC,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC,EAClD,CAAC,WAAW,EAAE,KAAK,CAAC,CACrB,CAAC;IAEF,OAAO,CACL,CAAC,SAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CACvC;MAAA,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9C,CAAC,SAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAC9B;UAAA,CAAC,UAAI,CACH,KAAK,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CACnD,eAAe,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAE9D;YAAA,CAAC,UAAU,CAAC,OAAO,CACrB;UAAA,EAAE,UAAI,CACN;UAAA,CAAC,SAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACjB;YAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,UAAI,CACnD;UAAA,EAAE,SAAG,CACP;QAAA,EAAE,SAAG,CAAC,CACP,CAAC,CACF;MAAA,CAAC,SAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAChB;QAAA,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CACzB;;QACF,EAAE,UAAI,CACR;MAAA,EAAE,SAAG,CACP;IAAA,EAAE,SAAG,CAAC,CACP,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import React from "react";
|
2
|
+
interface ConfirmationDialogProps {
|
3
|
+
operation: string;
|
4
|
+
filename: string;
|
5
|
+
onConfirm: (dontAskAgain?: boolean) => void;
|
6
|
+
onReject: (feedback?: string) => void;
|
7
|
+
showVSCodeOpen?: boolean;
|
8
|
+
content?: string;
|
9
|
+
}
|
10
|
+
export default function ConfirmationDialog({ operation, filename, onConfirm, onReject, showVSCodeOpen, content, }: ConfirmationDialogProps): React.JSX.Element;
|
11
|
+
export {};
|
@@ -0,0 +1,167 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
36
|
+
exports.default = ConfirmationDialog;
|
37
|
+
const react_1 = __importStar(require("react"));
|
38
|
+
const ink_1 = require("ink");
|
39
|
+
const diff_renderer_js_1 = require("./diff-renderer.js");
|
40
|
+
function ConfirmationDialog({ operation, filename, onConfirm, onReject, showVSCodeOpen = false, content, }) {
|
41
|
+
const [selectedOption, setSelectedOption] = (0, react_1.useState)(0);
|
42
|
+
const [feedbackMode, setFeedbackMode] = (0, react_1.useState)(false);
|
43
|
+
const [feedback, setFeedback] = (0, react_1.useState)("");
|
44
|
+
const options = [
|
45
|
+
"Yes",
|
46
|
+
"Yes, and don't ask again this session",
|
47
|
+
"No",
|
48
|
+
"No, with feedback",
|
49
|
+
];
|
50
|
+
(0, ink_1.useInput)((input, key) => {
|
51
|
+
if (feedbackMode) {
|
52
|
+
if (key.return) {
|
53
|
+
onReject(feedback.trim());
|
54
|
+
return;
|
55
|
+
}
|
56
|
+
if (key.backspace || key.delete) {
|
57
|
+
setFeedback((prev) => prev.slice(0, -1));
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
if (input && !key.ctrl && !key.meta) {
|
61
|
+
setFeedback((prev) => prev + input);
|
62
|
+
}
|
63
|
+
return;
|
64
|
+
}
|
65
|
+
if (key.upArrow || (key.shift && key.tab)) {
|
66
|
+
setSelectedOption((prev) => (prev > 0 ? prev - 1 : options.length - 1));
|
67
|
+
return;
|
68
|
+
}
|
69
|
+
if (key.downArrow || key.tab) {
|
70
|
+
setSelectedOption((prev) => (prev + 1) % options.length);
|
71
|
+
return;
|
72
|
+
}
|
73
|
+
if (key.return) {
|
74
|
+
if (selectedOption === 0) {
|
75
|
+
onConfirm(false);
|
76
|
+
}
|
77
|
+
else if (selectedOption === 1) {
|
78
|
+
onConfirm(true);
|
79
|
+
}
|
80
|
+
else if (selectedOption === 2) {
|
81
|
+
onReject("Operation cancelled by user");
|
82
|
+
}
|
83
|
+
else {
|
84
|
+
setFeedbackMode(true);
|
85
|
+
}
|
86
|
+
return;
|
87
|
+
}
|
88
|
+
if (key.escape) {
|
89
|
+
if (feedbackMode) {
|
90
|
+
setFeedbackMode(false);
|
91
|
+
setFeedback("");
|
92
|
+
}
|
93
|
+
else {
|
94
|
+
// Cancel the confirmation when escape is pressed from main confirmation
|
95
|
+
onReject("Operation cancelled by user (pressed Escape)");
|
96
|
+
}
|
97
|
+
return;
|
98
|
+
}
|
99
|
+
});
|
100
|
+
if (feedbackMode) {
|
101
|
+
return (<ink_1.Box flexDirection="column" padding={1}>
|
102
|
+
<ink_1.Box flexDirection="column" marginBottom={1}>
|
103
|
+
<ink_1.Text color="gray">
|
104
|
+
Type your feedback and press Enter, or press Escape to go back.
|
105
|
+
</ink_1.Text>
|
106
|
+
</ink_1.Box>
|
107
|
+
|
108
|
+
<ink_1.Box borderStyle="round" borderColor="yellow" paddingX={1} marginTop={1}>
|
109
|
+
<ink_1.Text color="gray">❯ </ink_1.Text>
|
110
|
+
<ink_1.Text>
|
111
|
+
{feedback}
|
112
|
+
<ink_1.Text color="white">█</ink_1.Text>
|
113
|
+
</ink_1.Text>
|
114
|
+
</ink_1.Box>
|
115
|
+
</ink_1.Box>);
|
116
|
+
}
|
117
|
+
return (<ink_1.Box flexDirection="column">
|
118
|
+
{/* Tool use header - styled like chat history */}
|
119
|
+
<ink_1.Box marginTop={1}>
|
120
|
+
<ink_1.Box>
|
121
|
+
<ink_1.Text color="magenta">⏺</ink_1.Text>
|
122
|
+
<ink_1.Text color="white">
|
123
|
+
{" "}
|
124
|
+
{operation}({filename})
|
125
|
+
</ink_1.Text>
|
126
|
+
</ink_1.Box>
|
127
|
+
</ink_1.Box>
|
128
|
+
|
129
|
+
<ink_1.Box marginLeft={2} flexDirection="column">
|
130
|
+
<ink_1.Text color="gray">⎿ Requesting user confirmation</ink_1.Text>
|
131
|
+
|
132
|
+
{showVSCodeOpen && (<ink_1.Box marginTop={1}>
|
133
|
+
<ink_1.Text color="gray">⎿ Opened changes in Visual Studio Code ⧉</ink_1.Text>
|
134
|
+
</ink_1.Box>)}
|
135
|
+
|
136
|
+
{/* Show content preview if provided */}
|
137
|
+
{content && (<>
|
138
|
+
<ink_1.Text color="gray">⎿ {content.split('\n')[0]}</ink_1.Text>
|
139
|
+
<ink_1.Box marginLeft={4} flexDirection="column">
|
140
|
+
<diff_renderer_js_1.DiffRenderer diffContent={content} filename={filename} terminalWidth={80}/>
|
141
|
+
</ink_1.Box>
|
142
|
+
</>)}
|
143
|
+
</ink_1.Box>
|
144
|
+
|
145
|
+
{/* Confirmation options */}
|
146
|
+
<ink_1.Box flexDirection="column" marginTop={1}>
|
147
|
+
<ink_1.Box marginBottom={1}>
|
148
|
+
<ink_1.Text>Do you want to proceed with this operation?</ink_1.Text>
|
149
|
+
</ink_1.Box>
|
150
|
+
|
151
|
+
<ink_1.Box flexDirection="column">
|
152
|
+
{options.map((option, index) => (<ink_1.Box key={index} paddingLeft={1}>
|
153
|
+
<ink_1.Text color={selectedOption === index ? "black" : "white"} backgroundColor={selectedOption === index ? "cyan" : undefined}>
|
154
|
+
{index + 1}. {option}
|
155
|
+
</ink_1.Text>
|
156
|
+
</ink_1.Box>))}
|
157
|
+
</ink_1.Box>
|
158
|
+
|
159
|
+
<ink_1.Box marginTop={1}>
|
160
|
+
<ink_1.Text color="gray" dimColor>
|
161
|
+
↑↓ navigate • Enter select • Esc cancel
|
162
|
+
</ink_1.Text>
|
163
|
+
</ink_1.Box>
|
164
|
+
</ink_1.Box>
|
165
|
+
</ink_1.Box>);
|
166
|
+
}
|
167
|
+
//# sourceMappingURL=confirmation-dialog.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"confirmation-dialog.js","sourceRoot":"","sources":["../../../src/ui/components/confirmation-dialog.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/**
|
2
|
+
* Professional diff renderer component
|
3
|
+
*/
|
4
|
+
import React from 'react';
|
5
|
+
interface DiffRendererProps {
|
6
|
+
diffContent: string;
|
7
|
+
filename?: string;
|
8
|
+
tabWidth?: number;
|
9
|
+
availableTerminalHeight?: number;
|
10
|
+
terminalWidth?: number;
|
11
|
+
}
|
12
|
+
export declare const DiffRenderer: ({ diffContent, filename, tabWidth, availableTerminalHeight, terminalWidth, }: DiffRendererProps) => React.ReactElement;
|
13
|
+
export {};
|
@@ -0,0 +1,217 @@
|
|
1
|
+
"use strict";
|
2
|
+
/**
|
3
|
+
* Professional diff renderer component
|
4
|
+
*/
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
7
|
+
};
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
9
|
+
exports.DiffRenderer = void 0;
|
10
|
+
const react_1 = __importDefault(require("react"));
|
11
|
+
const ink_1 = require("ink");
|
12
|
+
const colors_js_1 = require("../utils/colors.js");
|
13
|
+
const crypto_1 = __importDefault(require("crypto"));
|
14
|
+
const max_sized_box_js_1 = require("../shared/max-sized-box.js");
|
15
|
+
function parseDiffWithLineNumbers(diffContent) {
|
16
|
+
const lines = diffContent.split('\n');
|
17
|
+
const result = [];
|
18
|
+
let currentOldLine = 0;
|
19
|
+
let currentNewLine = 0;
|
20
|
+
let inHunk = false;
|
21
|
+
const hunkHeaderRegex = /^@@ -(\d+),?\d* \+(\d+),?\d* @@/;
|
22
|
+
for (const line of lines) {
|
23
|
+
const hunkMatch = line.match(hunkHeaderRegex);
|
24
|
+
if (hunkMatch) {
|
25
|
+
currentOldLine = parseInt(hunkMatch[1], 10);
|
26
|
+
currentNewLine = parseInt(hunkMatch[2], 10);
|
27
|
+
inHunk = true;
|
28
|
+
result.push({ type: 'hunk', content: line });
|
29
|
+
// We need to adjust the starting point because the first line number applies to the *first* actual line change/context,
|
30
|
+
// but we increment *before* pushing that line. So decrement here.
|
31
|
+
currentOldLine--;
|
32
|
+
currentNewLine--;
|
33
|
+
continue;
|
34
|
+
}
|
35
|
+
if (!inHunk) {
|
36
|
+
// Skip standard Git header lines more robustly
|
37
|
+
if (line.startsWith('--- ') ||
|
38
|
+
line.startsWith('+++ ') ||
|
39
|
+
line.startsWith('diff --git') ||
|
40
|
+
line.startsWith('index ') ||
|
41
|
+
line.startsWith('similarity index') ||
|
42
|
+
line.startsWith('rename from') ||
|
43
|
+
line.startsWith('rename to') ||
|
44
|
+
line.startsWith('new file mode') ||
|
45
|
+
line.startsWith('deleted file mode'))
|
46
|
+
continue;
|
47
|
+
// If it's not a hunk or header, skip (or handle as 'other' if needed)
|
48
|
+
continue;
|
49
|
+
}
|
50
|
+
if (line.startsWith('+')) {
|
51
|
+
currentNewLine++; // Increment before pushing
|
52
|
+
result.push({
|
53
|
+
type: 'add',
|
54
|
+
newLine: currentNewLine,
|
55
|
+
content: line.substring(1),
|
56
|
+
});
|
57
|
+
}
|
58
|
+
else if (line.startsWith('-')) {
|
59
|
+
currentOldLine++; // Increment before pushing
|
60
|
+
result.push({
|
61
|
+
type: 'del',
|
62
|
+
oldLine: currentOldLine,
|
63
|
+
content: line.substring(1),
|
64
|
+
});
|
65
|
+
}
|
66
|
+
else if (line.startsWith(' ')) {
|
67
|
+
currentOldLine++; // Increment before pushing
|
68
|
+
currentNewLine++;
|
69
|
+
result.push({
|
70
|
+
type: 'context',
|
71
|
+
oldLine: currentOldLine,
|
72
|
+
newLine: currentNewLine,
|
73
|
+
content: line.substring(1),
|
74
|
+
});
|
75
|
+
}
|
76
|
+
else if (line.startsWith('\\')) {
|
77
|
+
// Handle ""
|
78
|
+
result.push({ type: 'other', content: line });
|
79
|
+
}
|
80
|
+
}
|
81
|
+
return result;
|
82
|
+
}
|
83
|
+
const DEFAULT_TAB_WIDTH = 4; // Spaces per tab for normalization
|
84
|
+
const DiffRenderer = ({ diffContent, filename, tabWidth = DEFAULT_TAB_WIDTH, availableTerminalHeight, terminalWidth = 80, }) => {
|
85
|
+
if (!diffContent || typeof diffContent !== 'string') {
|
86
|
+
return <ink_1.Text color={colors_js_1.Colors.AccentYellow}>No diff content.</ink_1.Text>;
|
87
|
+
}
|
88
|
+
// Strip the first summary line (e.g. "Updated file.txt with 1 addition and 2 removals")
|
89
|
+
const lines = diffContent.split('\n');
|
90
|
+
const firstLine = lines[0];
|
91
|
+
let actualDiffContent = diffContent;
|
92
|
+
if (firstLine && (firstLine.startsWith('Updated ') || firstLine.startsWith('Created '))) {
|
93
|
+
actualDiffContent = lines.slice(1).join('\n');
|
94
|
+
}
|
95
|
+
const parsedLines = parseDiffWithLineNumbers(actualDiffContent);
|
96
|
+
if (parsedLines.length === 0) {
|
97
|
+
return <ink_1.Text dimColor>No changes detected.</ink_1.Text>;
|
98
|
+
}
|
99
|
+
// Always render as diff format to show line numbers and + signs
|
100
|
+
const renderedOutput = renderDiffContent(parsedLines, filename, tabWidth, availableTerminalHeight, terminalWidth);
|
101
|
+
return <>{renderedOutput}</>;
|
102
|
+
};
|
103
|
+
exports.DiffRenderer = DiffRenderer;
|
104
|
+
const renderDiffContent = (parsedLines, filename, tabWidth = DEFAULT_TAB_WIDTH, availableTerminalHeight, terminalWidth) => {
|
105
|
+
// 1. Normalize whitespace (replace tabs with spaces) *before* further processing
|
106
|
+
const normalizedLines = parsedLines.map((line) => ({
|
107
|
+
...line,
|
108
|
+
content: line.content.replace(/\t/g, ' '.repeat(tabWidth)),
|
109
|
+
}));
|
110
|
+
// Filter out non-displayable lines (hunks, potentially 'other') using the normalized list
|
111
|
+
const displayableLines = normalizedLines.filter((l) => l.type !== 'hunk' && l.type !== 'other');
|
112
|
+
if (displayableLines.length === 0) {
|
113
|
+
return <ink_1.Text dimColor>No changes detected.</ink_1.Text>;
|
114
|
+
}
|
115
|
+
// Calculate the minimum indentation across all displayable lines
|
116
|
+
let baseIndentation = Infinity; // Start high to find the minimum
|
117
|
+
for (const line of displayableLines) {
|
118
|
+
// Only consider lines with actual content for indentation calculation
|
119
|
+
if (line.content.trim() === '')
|
120
|
+
continue;
|
121
|
+
const firstCharIndex = line.content.search(/\S/); // Find index of first non-whitespace char
|
122
|
+
const currentIndent = firstCharIndex === -1 ? 0 : firstCharIndex; // Indent is 0 if no non-whitespace found
|
123
|
+
baseIndentation = Math.min(baseIndentation, currentIndent);
|
124
|
+
}
|
125
|
+
// If baseIndentation remained Infinity (e.g., no displayable lines with content), default to 0
|
126
|
+
if (!isFinite(baseIndentation)) {
|
127
|
+
baseIndentation = 0;
|
128
|
+
}
|
129
|
+
const key = filename
|
130
|
+
? `diff-box-${filename}`
|
131
|
+
: `diff-box-${crypto_1.default.createHash('sha1').update(JSON.stringify(parsedLines)).digest('hex')}`;
|
132
|
+
let lastLineNumber = null;
|
133
|
+
const MAX_CONTEXT_LINES_WITHOUT_GAP = 5;
|
134
|
+
return (<max_sized_box_js_1.MaxSizedBox maxHeight={availableTerminalHeight} maxWidth={terminalWidth} key={key}>
|
135
|
+
{displayableLines.reduce((acc, line, index) => {
|
136
|
+
// Determine the relevant line number for gap calculation based on type
|
137
|
+
let relevantLineNumberForGapCalc = null;
|
138
|
+
if (line.type === 'add' || line.type === 'context') {
|
139
|
+
relevantLineNumberForGapCalc = line.newLine ?? null;
|
140
|
+
}
|
141
|
+
else if (line.type === 'del') {
|
142
|
+
// For deletions, the gap is typically in relation to the original file's line numbering
|
143
|
+
relevantLineNumberForGapCalc = line.oldLine ?? null;
|
144
|
+
}
|
145
|
+
if (lastLineNumber !== null &&
|
146
|
+
relevantLineNumberForGapCalc !== null &&
|
147
|
+
relevantLineNumberForGapCalc >
|
148
|
+
lastLineNumber + MAX_CONTEXT_LINES_WITHOUT_GAP + 1) {
|
149
|
+
acc.push(<ink_1.Box key={`gap-${index}`}>
|
150
|
+
<ink_1.Text wrap="truncate">{'═'.repeat(terminalWidth)}</ink_1.Text>
|
151
|
+
</ink_1.Box>);
|
152
|
+
}
|
153
|
+
const lineKey = `diff-line-${index}`;
|
154
|
+
let gutterNumStr = '';
|
155
|
+
let backgroundColor = undefined;
|
156
|
+
let prefixSymbol = ' ';
|
157
|
+
let dim = false;
|
158
|
+
switch (line.type) {
|
159
|
+
case 'add':
|
160
|
+
gutterNumStr = (line.newLine ?? '').toString();
|
161
|
+
backgroundColor = '#86efac'; // Light green for additions
|
162
|
+
prefixSymbol = '+';
|
163
|
+
lastLineNumber = line.newLine ?? null;
|
164
|
+
break;
|
165
|
+
case 'del':
|
166
|
+
gutterNumStr = (line.oldLine ?? '').toString();
|
167
|
+
backgroundColor = 'redBright'; // Light red for deletions
|
168
|
+
prefixSymbol = '-';
|
169
|
+
// For deletions, update lastLineNumber based on oldLine if it's advancing.
|
170
|
+
// This helps manage gaps correctly if there are multiple consecutive deletions
|
171
|
+
// or if a deletion is followed by a context line far away in the original file.
|
172
|
+
if (line.oldLine !== undefined) {
|
173
|
+
lastLineNumber = line.oldLine;
|
174
|
+
}
|
175
|
+
break;
|
176
|
+
case 'context':
|
177
|
+
gutterNumStr = (line.newLine ?? '').toString();
|
178
|
+
dim = true;
|
179
|
+
prefixSymbol = ' ';
|
180
|
+
lastLineNumber = line.newLine ?? null;
|
181
|
+
break;
|
182
|
+
default:
|
183
|
+
return acc;
|
184
|
+
}
|
185
|
+
const displayContent = line.content.substring(baseIndentation);
|
186
|
+
acc.push(<ink_1.Box key={lineKey} flexDirection="row">
|
187
|
+
<ink_1.Text color={colors_js_1.Colors.Gray} dimColor={dim}>{gutterNumStr.padEnd(4)}</ink_1.Text>
|
188
|
+
<ink_1.Text color={backgroundColor ? '#000000' : undefined} backgroundColor={backgroundColor} dimColor={!backgroundColor && dim}>{prefixSymbol} </ink_1.Text>
|
189
|
+
<ink_1.Text color={backgroundColor ? '#000000' : undefined} backgroundColor={backgroundColor} dimColor={!backgroundColor && dim} wrap="wrap">
|
190
|
+
{displayContent}
|
191
|
+
</ink_1.Text>
|
192
|
+
</ink_1.Box>);
|
193
|
+
return acc;
|
194
|
+
}, [])}
|
195
|
+
</max_sized_box_js_1.MaxSizedBox>);
|
196
|
+
};
|
197
|
+
const getLanguageFromExtension = (extension) => {
|
198
|
+
const languageMap = {
|
199
|
+
js: 'javascript',
|
200
|
+
ts: 'typescript',
|
201
|
+
py: 'python',
|
202
|
+
json: 'json',
|
203
|
+
css: 'css',
|
204
|
+
html: 'html',
|
205
|
+
sh: 'bash',
|
206
|
+
md: 'markdown',
|
207
|
+
yaml: 'yaml',
|
208
|
+
yml: 'yaml',
|
209
|
+
txt: 'plaintext',
|
210
|
+
java: 'java',
|
211
|
+
c: 'c',
|
212
|
+
cpp: 'cpp',
|
213
|
+
rb: 'ruby',
|
214
|
+
};
|
215
|
+
return languageMap[extension] || null; // Return null if extension not found
|
216
|
+
};
|
217
|
+
//# sourceMappingURL=diff-renderer.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"diff-renderer.js","sourceRoot":"","sources":["../../../src/ui/components/diff-renderer.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import React from "react";
|
2
|
+
interface LoadingSpinnerProps {
|
3
|
+
isActive: boolean;
|
4
|
+
processingTime: number;
|
5
|
+
tokenCount: number;
|
6
|
+
}
|
7
|
+
export declare function LoadingSpinner({ isActive, processingTime, tokenCount, }: LoadingSpinnerProps): React.JSX.Element | null;
|
8
|
+
export {};
|
@@ -0,0 +1,92 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
19
|
+
var ownKeys = function(o) {
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
21
|
+
var ar = [];
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
23
|
+
return ar;
|
24
|
+
};
|
25
|
+
return ownKeys(o);
|
26
|
+
};
|
27
|
+
return function (mod) {
|
28
|
+
if (mod && mod.__esModule) return mod;
|
29
|
+
var result = {};
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
31
|
+
__setModuleDefault(result, mod);
|
32
|
+
return result;
|
33
|
+
};
|
34
|
+
})();
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
36
|
+
exports.LoadingSpinner = LoadingSpinner;
|
37
|
+
const react_1 = __importStar(require("react"));
|
38
|
+
const ink_1 = require("ink");
|
39
|
+
const token_counter_js_1 = require("../../utils/token-counter.js");
|
40
|
+
const loadingTexts = [
|
41
|
+
"Thinking...",
|
42
|
+
"Computing...",
|
43
|
+
"Analyzing...",
|
44
|
+
"Processing...",
|
45
|
+
"Calculating...",
|
46
|
+
"Interfacing...",
|
47
|
+
"Optimizing...",
|
48
|
+
"Synthesizing...",
|
49
|
+
"Decrypting...",
|
50
|
+
"Calibrating...",
|
51
|
+
"Bootstrapping...",
|
52
|
+
"Synchronizing...",
|
53
|
+
"Compiling...",
|
54
|
+
"Downloading...",
|
55
|
+
];
|
56
|
+
function LoadingSpinner({ isActive, processingTime, tokenCount, }) {
|
57
|
+
const [spinnerFrame, setSpinnerFrame] = (0, react_1.useState)(0);
|
58
|
+
const [loadingTextIndex, setLoadingTextIndex] = (0, react_1.useState)(0);
|
59
|
+
(0, react_1.useEffect)(() => {
|
60
|
+
if (!isActive)
|
61
|
+
return;
|
62
|
+
const spinnerFrames = ["/", "-", "\\", "|"];
|
63
|
+
// Reduced frequency: 500ms instead of 250ms to reduce flickering on Windows
|
64
|
+
const interval = setInterval(() => {
|
65
|
+
setSpinnerFrame((prev) => (prev + 1) % spinnerFrames.length);
|
66
|
+
}, 500);
|
67
|
+
return () => clearInterval(interval);
|
68
|
+
}, [isActive]);
|
69
|
+
(0, react_1.useEffect)(() => {
|
70
|
+
if (!isActive)
|
71
|
+
return;
|
72
|
+
setLoadingTextIndex(Math.floor(Math.random() * loadingTexts.length));
|
73
|
+
// Increased interval: 4s instead of 2s to reduce state changes
|
74
|
+
const interval = setInterval(() => {
|
75
|
+
setLoadingTextIndex(Math.floor(Math.random() * loadingTexts.length));
|
76
|
+
}, 4000);
|
77
|
+
return () => clearInterval(interval);
|
78
|
+
}, [isActive]);
|
79
|
+
if (!isActive)
|
80
|
+
return null;
|
81
|
+
const spinnerFrames = ["/", "-", "\\", "|"];
|
82
|
+
return (<ink_1.Box marginTop={1}>
|
83
|
+
<ink_1.Text color="cyan">
|
84
|
+
{spinnerFrames[spinnerFrame]} {loadingTexts[loadingTextIndex]}{" "}
|
85
|
+
</ink_1.Text>
|
86
|
+
<ink_1.Text color="gray">
|
87
|
+
({processingTime}s · ↑ {(0, token_counter_js_1.formatTokenCount)(tokenCount)} tokens · esc to
|
88
|
+
interrupt)
|
89
|
+
</ink_1.Text>
|
90
|
+
</ink_1.Box>);
|
91
|
+
}
|
92
|
+
//# sourceMappingURL=loading-spinner.js.map
|