upfynai-code 0.1.0 → 2.2.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/client/dist/api-docs.html +879 -0
- package/client/dist/assets/AppContent-CTSHQdyq.js +513 -0
- package/client/dist/assets/CanvasPanel-Cig0Mo9s.js +6 -0
- package/client/dist/assets/CanvasPanel-q4HEqNtV.css +1 -0
- package/client/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/client/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/client/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/client/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/client/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/client/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/client/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/client/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/client/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/client/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/client/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/client/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/client/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/client/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/client/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/client/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/client/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/client/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/client/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/client/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/client/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/client/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/client/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/client/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/client/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/client/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/client/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/client/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/client/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/client/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/client/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/client/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/client/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/client/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/client/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/client/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/client/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/client/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/client/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/client/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/client/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/client/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/client/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/client/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/client/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/client/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/client/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/client/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/client/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/client/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/client/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/client/dist/assets/LoginModal-silya-zP.js +11 -0
- package/client/dist/assets/MarkdownPreview-B3c7OEj6.js +1 -0
- package/client/dist/assets/Onboarding-Coxo6mFA.js +1 -0
- package/client/dist/assets/SetupForm-BzYOsbji.js +1 -0
- package/client/dist/assets/Tableau10-B-NsZVaP.js +1 -0
- package/client/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js +1 -0
- package/client/dist/assets/ar-SA-G6X2FPQ2-Bmw2-hDt.js +10 -0
- package/client/dist/assets/arc-BMqY7_Ci.js +1 -0
- package/client/dist/assets/array-BKyUJesY.js +1 -0
- package/client/dist/assets/az-AZ-76LH7QW2-Dh1le_qs.js +1 -0
- package/client/dist/assets/bg-BG-XCXSNQG7-Cbav8Z9z.js +5 -0
- package/client/dist/assets/blockDiagram-38ab4fdb-ChHJxsXw.js +118 -0
- package/client/dist/assets/bn-BD-2XOGV67Q-DCNjOaWz.js +5 -0
- package/client/dist/assets/c4Diagram-3d4e48cf-b8Xue4Z6.js +10 -0
- package/client/dist/assets/ca-ES-6MX7JW3Y-Dl_vM7NS.js +8 -0
- package/client/dist/assets/channel-CSnvHe_M.js +1 -0
- package/client/dist/assets/classDiagram-70f12bd4-BheP7Ggo.js +2 -0
- package/client/dist/assets/classDiagram-v2-f2320105-xtym7GEZ.js +2 -0
- package/client/dist/assets/clone-B75abXxS.js +1 -0
- package/client/dist/assets/createText-2e5e7dd3-_n4jI_fO.js +5 -0
- package/client/dist/assets/cs-CZ-2BRQDIVT-ftsKDdz4.js +11 -0
- package/client/dist/assets/da-DK-5WZEPLOC-DAjdwGRO.js +5 -0
- package/client/dist/assets/de-DE-XR44H4JA-BJXczHGT.js +8 -0
- package/client/dist/assets/directory-open-01563666-DWU9wJ6I.js +1 -0
- package/client/dist/assets/directory-open-4ed118d0-CunoC1EB.js +1 -0
- package/client/dist/assets/edges-e0da2a9e-CfPZr4YM.js +4 -0
- package/client/dist/assets/el-GR-BZB4AONW-DW2p_uy7.js +10 -0
- package/client/dist/assets/erDiagram-9861fffd-CF33V-Of.js +51 -0
- package/client/dist/assets/es-ES-U4NZUMDT-DLOIGnrl.js +9 -0
- package/client/dist/assets/eu-ES-A7QVB2H4-LJXbf89m.js +11 -0
- package/client/dist/assets/fa-IR-HGAKTJCU-Dvx65fgW.js +8 -0
- package/client/dist/assets/fi-FI-Z5N7JZ37-EoL65BQh.js +6 -0
- package/client/dist/assets/file-open-002ab408-DIuFHtCF.js +1 -0
- package/client/dist/assets/file-open-7c801643-684qeFg4.js +1 -0
- package/client/dist/assets/file-save-3189631c-C1wFhQhH.js +1 -0
- package/client/dist/assets/file-save-745eba88-Bb9F9Kg7.js +1 -0
- package/client/dist/assets/flowDb-956e92f1-HgoXVy2H.js +10 -0
- package/client/dist/assets/flowDiagram-66a62f08-tffoET0H.js +4 -0
- package/client/dist/assets/flowDiagram-v2-96b9c2cf-Byc3JCHh.js +1 -0
- package/client/dist/assets/flowchart-elk-definition-4a651766-DJbI2dpv.js +139 -0
- package/client/dist/assets/fr-FR-RHASNOE6-DNk_jdDs.js +9 -0
- package/client/dist/assets/ganttDiagram-c361ad54-2XX670FU.js +257 -0
- package/client/dist/assets/gitGraphDiagram-72cf32ee-CcUfruAo.js +70 -0
- package/client/dist/assets/gl-ES-HMX3MZ6V-dxzFjZlG.js +10 -0
- package/client/dist/assets/graph-BSbiMSBC.js +1 -0
- package/client/dist/assets/he-IL-6SHJWFNN-Cogsfdt1.js +10 -0
- package/client/dist/assets/hi-IN-IWLTKZ5I-L6wbgi4F.js +4 -0
- package/client/dist/assets/hu-HU-A5ZG7DT2-DSA6ZDsH.js +7 -0
- package/client/dist/assets/id-ID-SAP4L64H-BK_vGGS6.js +10 -0
- package/client/dist/assets/image-blob-reduce.esm-BLtmMM_J.js +2 -0
- package/client/dist/assets/index-3862675e-Bv32HUgT.js +1 -0
- package/client/dist/assets/index-B8wwD_Xo.css +1 -0
- package/client/dist/assets/index-BPwf8Fw3.js +27 -0
- package/client/dist/assets/index-D1urGMYu.js +95 -0
- package/client/dist/assets/infoDiagram-f8f76790-w4mR4pxn.js +7 -0
- package/client/dist/assets/init-Gi6I4Gst.js +1 -0
- package/client/dist/assets/it-IT-JPQ66NNP-BLdHYMhn.js +11 -0
- package/client/dist/assets/ja-JP-DBVTYXUO-B_vmexl_.js +8 -0
- package/client/dist/assets/journeyDiagram-49397b02-D9nmO17e.js +139 -0
- package/client/dist/assets/kaa-6HZHGXH3-5s-3jl6F.js +1 -0
- package/client/dist/assets/kab-KAB-ZGHBKWFO-2QaVDuSf.js +8 -0
- package/client/dist/assets/kk-KZ-P5N5QNE5-CTC52Vbi.js +1 -0
- package/client/dist/assets/km-KH-HSX4SM5Z-DxawH8UZ.js +11 -0
- package/client/dist/assets/ko-KR-MTYHY66A-CmosEM8_.js +9 -0
- package/client/dist/assets/ku-TR-6OUDTVRD-DbiLen4y.js +9 -0
- package/client/dist/assets/layout-jmt3H9tA.js +1 -0
- package/client/dist/assets/line-JTlRayUJ.js +1 -0
- package/client/dist/assets/linear-DJeB5p7x.js +1 -0
- package/client/dist/assets/lt-LT-XHIRWOB4-CH15wrjA.js +3 -0
- package/client/dist/assets/lv-LV-5QDEKY6T-dhgfPuCQ.js +7 -0
- package/client/dist/assets/mindmap-definition-fc14e90a-BOOrexmz.js +415 -0
- package/client/dist/assets/mr-IN-CRQNXWMA-3Gi6iq7A.js +13 -0
- package/client/dist/assets/my-MM-5M5IBNSE-CpH4rdJj.js +1 -0
- package/client/dist/assets/nb-NO-T6EIAALU-Du6iiGql.js +10 -0
- package/client/dist/assets/nl-NL-IS3SIHDZ-BGvsd1MT.js +8 -0
- package/client/dist/assets/nn-NO-6E72VCQL-B-odvJZW.js +8 -0
- package/client/dist/assets/oc-FR-POXYY2M6-COC8xNjo.js +8 -0
- package/client/dist/assets/ordinal-Cboi1Yqb.js +1 -0
- package/client/dist/assets/pa-IN-N4M65BXN-CE21PUQH.js +4 -0
- package/client/dist/assets/path-CbwjOpE9.js +1 -0
- package/client/dist/assets/pdf-TYrZqVzP.js +12 -0
- package/client/dist/assets/pdf.worker-BA9kU3Pw.mjs +61080 -0
- package/client/dist/assets/percentages-BXMCSKIN-C9GT0OD3.js +199 -0
- package/client/dist/assets/pica-VkdyTzi8.js +2 -0
- package/client/dist/assets/pieDiagram-8a3498a8-Cvfh7Qr5.js +35 -0
- package/client/dist/assets/pl-PL-T2D74RX3-D4xFVSoT.js +9 -0
- package/client/dist/assets/pt-BR-5N22H2LF-CCq257gA.js +9 -0
- package/client/dist/assets/pt-PT-UZXXM6DQ-1l8gt5vA.js +9 -0
- package/client/dist/assets/quadrantDiagram-120e2f19-BA0js1aD.js +7 -0
- package/client/dist/assets/requirementDiagram-deff3bca-B0QNFfIn.js +52 -0
- package/client/dist/assets/ro-RO-JPDTUUEW-yosBW01E.js +11 -0
- package/client/dist/assets/roundRect-mAH3dD0p.js +1 -0
- package/client/dist/assets/ru-RU-B4JR7IUQ-8LkEJUix.js +9 -0
- package/client/dist/assets/sankeyDiagram-04a897e0-D4T9eCXn.js +8 -0
- package/client/dist/assets/sequenceDiagram-704730f1-CfBUTCrO.js +122 -0
- package/client/dist/assets/si-LK-N5RQ5JYF-D8rjbqtd.js +1 -0
- package/client/dist/assets/sk-SK-C5VTKIMK-Bg14sAzN.js +6 -0
- package/client/dist/assets/sl-SI-NN7IZMDC-CMTib6Zs.js +6 -0
- package/client/dist/assets/stateDiagram-587899a1-BGgvmVSZ.js +1 -0
- package/client/dist/assets/stateDiagram-v2-d93cdb3a-Qn3DpYuO.js +1 -0
- package/client/dist/assets/styles-6aaf32cf-IdVZLPrD.js +207 -0
- package/client/dist/assets/styles-9a916d00-BAC3L45X.js +160 -0
- package/client/dist/assets/styles-c10674c1-COhXxX8c.js +116 -0
- package/client/dist/assets/subset-shared.chunk-BWHnFai4.js +22 -0
- package/client/dist/assets/subset-worker.chunk-C8QUSruZ.js +1 -0
- package/client/dist/assets/sv-SE-XGPEYMSR-C1425rOF.js +10 -0
- package/client/dist/assets/svgDrawCommon-08f97a94-Cfk-fgnN.js +1 -0
- package/client/dist/assets/ta-IN-2NMHFXQM-BHHo1zpF.js +9 -0
- package/client/dist/assets/th-TH-HPSO5L25-CZVzm_WT.js +2 -0
- package/client/dist/assets/timeline-definition-85554ec2-VAvuJith.js +61 -0
- package/client/dist/assets/tr-TR-DEFEU3FU-DE1lclCq.js +7 -0
- package/client/dist/assets/uk-UA-QMV73CPH-D4lJZ85O.js +6 -0
- package/client/dist/assets/vendor-codemirror-BARtJV1V.js +16 -0
- package/client/dist/assets/vendor-codemirror-langs-52_y1wip.js +20 -0
- package/client/dist/assets/vendor-i18n-ByAl-gdx.js +1 -0
- package/client/dist/assets/vendor-icons-D33IkSIf.js +1 -0
- package/client/dist/assets/vendor-markdown-CIVH08vJ.js +298 -0
- package/client/dist/assets/vendor-react-CHoMc7ka.js +8 -0
- package/client/dist/assets/vendor-syntax-Djb62v3a.js +9 -0
- package/client/dist/assets/vendor-xterm-DBb3RXlu.js +66 -0
- package/client/dist/assets/vendor-xterm-DrlLKa8f.css +1 -0
- package/client/dist/assets/vi-VN-M7AON7JQ-Dgc_SShk.js +5 -0
- package/client/dist/assets/xychartDiagram-e933f94c-BeyVBJhb.js +7 -0
- package/client/dist/assets/zh-CN-LNUGB5OW-MH4Yh8in.js +10 -0
- package/client/dist/assets/zh-HK-E62DVLB3-D4XHehjx.js +1 -0
- package/client/dist/assets/zh-TW-RAJ6MFWO--efj3evj.js +9 -0
- package/client/dist/clear-cache.html +85 -0
- package/client/dist/convert-icons.md +53 -0
- package/client/dist/favicon.png +0 -0
- package/client/dist/favicon.svg +9 -0
- package/client/dist/generate-icons.js +49 -0
- package/client/dist/icons/claude-ai-icon.svg +1 -0
- package/client/dist/icons/codex-white.svg +3 -0
- package/client/dist/icons/codex.svg +3 -0
- package/client/dist/icons/cursor-white.svg +12 -0
- package/client/dist/icons/cursor.svg +1 -0
- package/client/dist/icons/icon-128x128.png +0 -0
- package/client/dist/icons/icon-128x128.svg +12 -0
- package/client/dist/icons/icon-144x144.png +0 -0
- package/client/dist/icons/icon-144x144.svg +12 -0
- package/client/dist/icons/icon-152x152.png +0 -0
- package/client/dist/icons/icon-152x152.svg +12 -0
- package/client/dist/icons/icon-192x192.png +0 -0
- package/client/dist/icons/icon-192x192.svg +12 -0
- package/client/dist/icons/icon-384x384.png +0 -0
- package/client/dist/icons/icon-384x384.svg +12 -0
- package/client/dist/icons/icon-512x512.png +0 -0
- package/client/dist/icons/icon-512x512.svg +12 -0
- package/client/dist/icons/icon-72x72.png +0 -0
- package/client/dist/icons/icon-72x72.svg +12 -0
- package/client/dist/icons/icon-96x96.png +0 -0
- package/client/dist/icons/icon-96x96.svg +12 -0
- package/client/dist/icons/icon-template.svg +12 -0
- package/client/dist/index.html +128 -0
- package/client/dist/logo-128.png +0 -0
- package/client/dist/logo-256.png +0 -0
- package/client/dist/logo-32.png +0 -0
- package/client/dist/logo-512.png +0 -0
- package/client/dist/logo-64.png +0 -0
- package/client/dist/logo.svg +17 -0
- package/client/dist/manifest.json +61 -0
- package/client/dist/mcp-docs.html +119 -0
- package/client/dist/screenshots/cli-selection.png +0 -0
- package/client/dist/screenshots/desktop-main.png +0 -0
- package/client/dist/screenshots/mobile-chat.png +0 -0
- package/client/dist/screenshots/tools-modal.png +0 -0
- package/client/dist/sw.js +19 -0
- package/commands/upfynai-connect.md +46 -0
- package/commands/upfynai-disconnect.md +31 -0
- package/commands/upfynai-doctor.md +99 -0
- package/commands/upfynai-export.md +49 -0
- package/commands/upfynai-local.md +82 -0
- package/commands/upfynai-status.md +75 -0
- package/commands/upfynai-stop.md +49 -0
- package/commands/upfynai-uninstall.md +58 -0
- package/commands/upfynai.md +50 -0
- package/package.json +106 -47
- package/scripts/build-client.js +17 -0
- package/scripts/fix-node-pty.js +67 -0
- package/scripts/install-commands.js +78 -0
- package/server/claude-sdk.js +714 -0
- package/server/cli.js +419 -0
- package/server/constants/config.js +5 -0
- package/server/cursor-cli.js +270 -0
- package/server/database/auth.db +0 -0
- package/server/database/db.js +606 -0
- package/server/database/init.sql +70 -0
- package/server/index.js +2269 -0
- package/server/load-env.js +26 -0
- package/server/mcp-server.js +620 -0
- package/server/middleware/auth.js +158 -0
- package/server/openai-codex.js +403 -0
- package/server/projects.js +1849 -0
- package/server/relay-client.js +314 -0
- package/server/routes/agent.js +1231 -0
- package/server/routes/auth.js +220 -0
- package/server/routes/cli-auth.js +263 -0
- package/server/routes/codex.js +344 -0
- package/server/routes/commands.js +601 -0
- package/server/routes/cursor.js +808 -0
- package/server/routes/git.js +1165 -0
- package/server/routes/mcp-utils.js +48 -0
- package/server/routes/mcp.js +552 -0
- package/server/routes/payments.js +172 -0
- package/server/routes/projects.js +549 -0
- package/server/routes/settings.js +178 -0
- package/server/routes/taskmaster.js +1964 -0
- package/server/routes/user.js +106 -0
- package/server/utils/commandParser.js +303 -0
- package/server/utils/gitConfig.js +24 -0
- package/server/utils/mcp-detector.js +198 -0
- package/server/utils/taskmaster-websocket.js +129 -0
- package/shared/modelConstants.js +67 -0
- package/LICENSE +0 -22
- package/bin/cli.js +0 -86
- package/dist/assets/CanvasPanel-B48gAKVY.js +0 -538
- package/dist/assets/CanvasPanel-B48gAKVY.js.map +0 -1
- package/dist/assets/CanvasPanel-BsOG3EVs.css +0 -1
- package/dist/assets/index-CEhTwG68.css +0 -1
- package/dist/assets/index-GqAGWpJI.js +0 -70
- package/dist/assets/index-GqAGWpJI.js.map +0 -1
- package/dist/index.html +0 -18
- package/index.html +0 -17
- package/src/App.tsx +0 -226
- package/src/components/canvas/CanvasPanel.tsx +0 -62
- package/src/components/canvas/layout/graph-builder.ts +0 -136
- package/src/components/canvas/shapes/CompactionNodeShape.tsx +0 -76
- package/src/components/canvas/shapes/SessionNodeShape.tsx +0 -93
- package/src/components/canvas/shapes/StatuslineWidgetShape.tsx +0 -125
- package/src/components/canvas/shapes/TextResponseNodeShape.tsx +0 -86
- package/src/components/canvas/shapes/ToolCallNodeShape.tsx +0 -107
- package/src/components/canvas/shapes/ToolResultNodeShape.tsx +0 -87
- package/src/components/canvas/shapes/shared-styles.ts +0 -35
- package/src/components/chat/ChatPanel.tsx +0 -96
- package/src/components/chat/InputBar.tsx +0 -81
- package/src/components/chat/MessageList.tsx +0 -130
- package/src/components/chat/PermissionDialog.tsx +0 -70
- package/src/components/layout/FolderSelector.tsx +0 -152
- package/src/components/layout/ModelSelector.tsx +0 -65
- package/src/components/layout/SessionManager.tsx +0 -115
- package/src/components/statusline/StatuslineBar.tsx +0 -114
- package/src/main.tsx +0 -10
- package/src/server/claude-session.ts +0 -156
- package/src/server/index.ts +0 -149
- package/src/services/stream-consumer.ts +0 -330
- package/src/statusline-core/bin/statusline.sh +0 -121
- package/src/statusline-core/commands/sls-config.md +0 -42
- package/src/statusline-core/commands/sls-doctor.md +0 -35
- package/src/statusline-core/commands/sls-help.md +0 -48
- package/src/statusline-core/commands/sls-layout.md +0 -38
- package/src/statusline-core/commands/sls-preview.md +0 -34
- package/src/statusline-core/commands/sls-theme.md +0 -40
- package/src/statusline-core/installer.js +0 -228
- package/src/statusline-core/layouts/compact.sh +0 -21
- package/src/statusline-core/layouts/full.sh +0 -62
- package/src/statusline-core/layouts/standard.sh +0 -39
- package/src/statusline-core/lib/core.sh +0 -389
- package/src/statusline-core/lib/helpers.sh +0 -81
- package/src/statusline-core/lib/json-parser.sh +0 -71
- package/src/statusline-core/themes/catppuccin.sh +0 -32
- package/src/statusline-core/themes/default.sh +0 -37
- package/src/statusline-core/themes/gruvbox.sh +0 -32
- package/src/statusline-core/themes/nord.sh +0 -32
- package/src/statusline-core/themes/tokyo-night.sh +0 -32
- package/src/store/canvas-store.ts +0 -50
- package/src/store/chat-store.ts +0 -60
- package/src/store/permission-store.ts +0 -29
- package/src/store/session-store.ts +0 -52
- package/src/store/statusline-store.ts +0 -160
- package/src/styles/global.css +0 -117
- package/src/themes/index.ts +0 -149
- package/src/types/canvas-graph.ts +0 -24
- package/src/types/sdk-messages.ts +0 -156
- package/src/types/statusline-fields.ts +0 -67
- package/src/vite-env.d.ts +0 -1
- package/tsconfig.json +0 -26
- package/vite.config.ts +0 -24
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Export current session or canvas data to file
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Upfyn-Code — Export Session/Canvas
|
|
6
|
+
|
|
7
|
+
You are the Upfyn-Code assistant. The user wants to export their session or canvas data.
|
|
8
|
+
|
|
9
|
+
## What to do
|
|
10
|
+
|
|
11
|
+
### Determine export type from arguments
|
|
12
|
+
- `$ARGUMENTS` may contain: `session`, `canvas`, `all`, or a file path
|
|
13
|
+
|
|
14
|
+
### Option 1: Export session conversation
|
|
15
|
+
1. Read the current session's conversation from Claude Code's session files:
|
|
16
|
+
```
|
|
17
|
+
ls ~/.claude/projects/*/sessions/ 2>/dev/null
|
|
18
|
+
```
|
|
19
|
+
2. Find the active session's JSONL file
|
|
20
|
+
3. Parse and format the conversation into readable markdown
|
|
21
|
+
4. Save to the specified path or default `./upfynai-export-[timestamp].md`
|
|
22
|
+
|
|
23
|
+
### Option 2: Export canvas state
|
|
24
|
+
1. If the server is running, fetch canvas state from the API:
|
|
25
|
+
```
|
|
26
|
+
curl -s http://localhost:3001/api/canvas-state 2>/dev/null
|
|
27
|
+
```
|
|
28
|
+
2. Format the canvas nodes as a structured JSON or markdown document
|
|
29
|
+
3. Include: node types, connections, tool calls, responses, timestamps
|
|
30
|
+
|
|
31
|
+
### Option 3: Export all (default)
|
|
32
|
+
Export both session conversation and canvas state.
|
|
33
|
+
|
|
34
|
+
### Output format
|
|
35
|
+
```
|
|
36
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
37
|
+
📤 Upfyn-Code Export
|
|
38
|
+
|
|
39
|
+
Type: [session/canvas/all]
|
|
40
|
+
File: [output path]
|
|
41
|
+
Nodes: [count]
|
|
42
|
+
Messages: [count]
|
|
43
|
+
Size: [file size]
|
|
44
|
+
|
|
45
|
+
Export saved successfully!
|
|
46
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Install Upfyn-Code locally for this project — sets up .claude integration, commands, and config
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Upfyn-Code — Local Installation
|
|
6
|
+
|
|
7
|
+
You are the Upfyn-Code assistant. The user wants to install Upfyn-Code locally for the current project. This sets up the full integration between this project's Claude Code CLI and the web UI.
|
|
8
|
+
|
|
9
|
+
## What to do
|
|
10
|
+
|
|
11
|
+
### Step 1: Install the npm package globally (if not already)
|
|
12
|
+
```
|
|
13
|
+
npm list -g upfynai-code --depth=0 2>/dev/null || npm install -g upfynai-code
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Step 2: Create user-level commands directory
|
|
17
|
+
```
|
|
18
|
+
mkdir -p ~/.claude/commands
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Step 3: Copy all Upfyn-Code slash commands to user commands
|
|
22
|
+
Copy the following command files from the upfynai-code package into `~/.claude/commands/`:
|
|
23
|
+
- `upfynai.md`
|
|
24
|
+
- `upfynai-connect.md`
|
|
25
|
+
- `upfynai-disconnect.md`
|
|
26
|
+
- `upfynai-doctor.md`
|
|
27
|
+
- `upfynai-local.md`
|
|
28
|
+
- `upfynai-uninstall.md`
|
|
29
|
+
- `upfynai-export.md`
|
|
30
|
+
- `upfynai-status.md`
|
|
31
|
+
- `upfynai-stop.md`
|
|
32
|
+
|
|
33
|
+
Find the package location:
|
|
34
|
+
```
|
|
35
|
+
npm root -g
|
|
36
|
+
```
|
|
37
|
+
Then copy from `[global_modules]/upfynai-code/commands/` to `~/.claude/commands/`.
|
|
38
|
+
|
|
39
|
+
### Step 4: Set up project .claude directory
|
|
40
|
+
```
|
|
41
|
+
mkdir -p .claude/commands
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Step 5: Read existing project configuration
|
|
45
|
+
If `.claude/` directory already exists, read and preserve:
|
|
46
|
+
- `CLAUDE.md` — project instructions
|
|
47
|
+
- `.claude/settings.json` — project settings
|
|
48
|
+
- `.claude/mcp.json` — MCP server config
|
|
49
|
+
- `.claude/commands/` — project-level custom commands
|
|
50
|
+
|
|
51
|
+
Report what was found to the user.
|
|
52
|
+
|
|
53
|
+
### Step 6: Create/update project CLAUDE.md with Upfyn-Code context
|
|
54
|
+
If CLAUDE.md exists, append an Upfyn-Code section. If not, mention that the user can create one.
|
|
55
|
+
Do NOT overwrite existing CLAUDE.md content.
|
|
56
|
+
|
|
57
|
+
### Step 7: Display completion
|
|
58
|
+
```
|
|
59
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
60
|
+
✅ Upfyn-Code installed locally!
|
|
61
|
+
|
|
62
|
+
📁 Project: [current directory]
|
|
63
|
+
📂 .claude/ directory: [found/created]
|
|
64
|
+
📄 CLAUDE.md: [found/created note]
|
|
65
|
+
🔧 MCP servers: [count found]
|
|
66
|
+
⚡ Slash commands installed to ~/.claude/commands/
|
|
67
|
+
|
|
68
|
+
Available commands:
|
|
69
|
+
/upfynai — Start the web UI server
|
|
70
|
+
/upfynai-connect — Connect this session to web UI
|
|
71
|
+
/upfynai-disconnect — Disconnect from web UI
|
|
72
|
+
/upfynai-status — Show connection status
|
|
73
|
+
/upfynai-doctor — Run diagnostics
|
|
74
|
+
/upfynai-export — Export session/canvas data
|
|
75
|
+
/upfynai-stop — Stop the web UI server
|
|
76
|
+
/upfynai-uninstall — Remove Upfyn-Code
|
|
77
|
+
|
|
78
|
+
Next step: Run /upfynai to start the web UI
|
|
79
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show Upfyn-Code connection status — server, sessions, project info
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Upfyn-Code — Status
|
|
6
|
+
|
|
7
|
+
You are the Upfyn-Code assistant. Show the current status of the Upfyn-Code system.
|
|
8
|
+
|
|
9
|
+
## What to do
|
|
10
|
+
|
|
11
|
+
Gather and display all of the following:
|
|
12
|
+
|
|
13
|
+
1. **Server status**: Check if the server is running
|
|
14
|
+
```
|
|
15
|
+
curl -s http://localhost:3001/health 2>/dev/null || echo "NOT_RUNNING"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
2. **Current project**: Show `pwd` and whether it has `.claude/` directory
|
|
19
|
+
```
|
|
20
|
+
pwd
|
|
21
|
+
ls -d .claude 2>/dev/null || echo "NO_CLAUDE_DIR"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
3. **Project CLAUDE.md**: Check for project instructions
|
|
25
|
+
```
|
|
26
|
+
test -f CLAUDE.md && echo "FOUND" || echo "NOT_FOUND"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
4. **Project .claude/settings.json**: Check project settings
|
|
30
|
+
```
|
|
31
|
+
cat .claude/settings.json 2>/dev/null || echo "NO_SETTINGS"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
5. **MCP servers**: Check configured MCP servers
|
|
35
|
+
```
|
|
36
|
+
cat .claude/mcp.json 2>/dev/null || echo "NO_MCP"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
6. **Active sessions**: If server is running, get session count
|
|
40
|
+
```
|
|
41
|
+
curl -s http://localhost:3001/api/projects 2>/dev/null
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
7. **Installed version**:
|
|
45
|
+
```
|
|
46
|
+
npm list -g upfynai-code --depth=0 2>/dev/null
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
8. **Slash commands**: Check which upfynai commands are installed
|
|
50
|
+
```
|
|
51
|
+
ls ~/.claude/commands/upfynai*.md 2>/dev/null
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Output format
|
|
55
|
+
```
|
|
56
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
57
|
+
Upfyn-Code — Status
|
|
58
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
59
|
+
|
|
60
|
+
Server: [🟢 Running at http://localhost:3001 / 🔴 Not running]
|
|
61
|
+
Version: [x.y.z]
|
|
62
|
+
Project: [current directory name]
|
|
63
|
+
.claude/: [✅ Found / ⚠️ Not found]
|
|
64
|
+
CLAUDE.md: [✅ Found / ⚠️ Not found]
|
|
65
|
+
MCP servers: [count or none]
|
|
66
|
+
Settings: [found/default]
|
|
67
|
+
Sessions: [count active]
|
|
68
|
+
Commands: [count installed] / 9 total
|
|
69
|
+
|
|
70
|
+
[If server running, show URL]
|
|
71
|
+
[If not running, suggest /upfynai to start]
|
|
72
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Stop the Upfyn-Code web UI server
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Upfyn-Code — Stop Server
|
|
6
|
+
|
|
7
|
+
You are the Upfyn-Code assistant. The user wants to stop the Upfyn-Code web UI server.
|
|
8
|
+
|
|
9
|
+
## What to do
|
|
10
|
+
|
|
11
|
+
1. Check if the server is running:
|
|
12
|
+
```
|
|
13
|
+
curl -s http://localhost:3001/health 2>/dev/null || echo "NOT_RUNNING"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
2. If not running, tell the user:
|
|
17
|
+
```
|
|
18
|
+
Server is not running. Nothing to stop.
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
3. If running, find and stop the process:
|
|
22
|
+
|
|
23
|
+
On macOS/Linux:
|
|
24
|
+
```
|
|
25
|
+
lsof -ti :3001 | xargs kill 2>/dev/null
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
On Windows:
|
|
29
|
+
```
|
|
30
|
+
netstat -ano | findstr :3001
|
|
31
|
+
```
|
|
32
|
+
Then kill the PID.
|
|
33
|
+
|
|
34
|
+
4. Verify it stopped:
|
|
35
|
+
```
|
|
36
|
+
curl -s http://localhost:3001/health 2>/dev/null || echo "STOPPED"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
5. Display confirmation:
|
|
40
|
+
```
|
|
41
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
42
|
+
⏹️ Upfyn-Code server stopped
|
|
43
|
+
|
|
44
|
+
Port 3001 is now free.
|
|
45
|
+
Run /upfynai to start again.
|
|
46
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Remove Upfyn-Code — uninstalls commands, cleans up config
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Upfyn-Code — Uninstall
|
|
6
|
+
|
|
7
|
+
You are the Upfyn-Code assistant. The user wants to uninstall Upfyn-Code.
|
|
8
|
+
|
|
9
|
+
## What to do
|
|
10
|
+
|
|
11
|
+
### Step 1: Stop the server if running
|
|
12
|
+
```
|
|
13
|
+
curl -s http://localhost:3001/health 2>/dev/null && echo "SERVER_RUNNING"
|
|
14
|
+
```
|
|
15
|
+
If running, ask the user if they want to stop it first.
|
|
16
|
+
|
|
17
|
+
### Step 2: Remove slash commands from ~/.claude/commands/
|
|
18
|
+
```
|
|
19
|
+
rm -f ~/.claude/commands/upfynai.md
|
|
20
|
+
rm -f ~/.claude/commands/upfynai-connect.md
|
|
21
|
+
rm -f ~/.claude/commands/upfynai-disconnect.md
|
|
22
|
+
rm -f ~/.claude/commands/upfynai-doctor.md
|
|
23
|
+
rm -f ~/.claude/commands/upfynai-local.md
|
|
24
|
+
rm -f ~/.claude/commands/upfynai-uninstall.md
|
|
25
|
+
rm -f ~/.claude/commands/upfynai-export.md
|
|
26
|
+
rm -f ~/.claude/commands/upfynai-status.md
|
|
27
|
+
rm -f ~/.claude/commands/upfynai-stop.md
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Step 3: Ask about global package
|
|
31
|
+
Ask the user: "Do you also want to uninstall the global npm package?"
|
|
32
|
+
|
|
33
|
+
If yes:
|
|
34
|
+
```
|
|
35
|
+
npm uninstall -g upfynai-code
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Step 4: Ask about database
|
|
39
|
+
Ask the user: "Do you want to remove the database (session history will be lost)?"
|
|
40
|
+
|
|
41
|
+
If yes, remove the database file.
|
|
42
|
+
|
|
43
|
+
### Step 5: Display completion
|
|
44
|
+
```
|
|
45
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
46
|
+
🗑️ Upfyn-Code uninstalled
|
|
47
|
+
|
|
48
|
+
Removed:
|
|
49
|
+
✅ Slash commands from ~/.claude/commands/
|
|
50
|
+
[✅/⏭️] Global npm package
|
|
51
|
+
[✅/⏭️] Database
|
|
52
|
+
|
|
53
|
+
Your .claude/ project files were NOT modified.
|
|
54
|
+
Your CLAUDE.md was NOT modified.
|
|
55
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start Upfyn-Code web UI server and get connection URL
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Upfyn-Code — Start UI Server
|
|
6
|
+
|
|
7
|
+
You are the Upfyn-Code assistant. The user wants to start the Upfyn-Code web UI server.
|
|
8
|
+
|
|
9
|
+
## What to do
|
|
10
|
+
|
|
11
|
+
1. Check if `upfynai-code` is installed globally by running:
|
|
12
|
+
```
|
|
13
|
+
npm list -g upfynai-code --depth=0 2>/dev/null || echo "NOT_INSTALLED"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
2. If NOT installed, tell the user:
|
|
17
|
+
```
|
|
18
|
+
Upfyn-Code is not installed globally. Install it with:
|
|
19
|
+
npm install -g upfynai-code
|
|
20
|
+
```
|
|
21
|
+
Then stop.
|
|
22
|
+
|
|
23
|
+
3. If installed, check if the server is already running:
|
|
24
|
+
```
|
|
25
|
+
curl -s http://localhost:3001/health 2>/dev/null || echo "NOT_RUNNING"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
4. If NOT running, start the server in the background:
|
|
29
|
+
```
|
|
30
|
+
upfynai-code start &
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
5. Display the connection info to the user:
|
|
34
|
+
```
|
|
35
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
36
|
+
Upfyn-Code is running!
|
|
37
|
+
|
|
38
|
+
🌐 Open in browser: http://localhost:3001
|
|
39
|
+
📁 Current project: [show current working directory]
|
|
40
|
+
🔌 WebSocket: ws://localhost:3001/ws
|
|
41
|
+
|
|
42
|
+
Use /upfynai-connect to link this CLI session
|
|
43
|
+
Use /upfynai-disconnect to unlink
|
|
44
|
+
Use /upfynai-doctor to run diagnostics
|
|
45
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
6. If the user provided arguments like `--port 8080`, pass them to the start command.
|
|
49
|
+
|
|
50
|
+
$ARGUMENTS
|
package/package.json
CHANGED
|
@@ -1,67 +1,126 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "upfynai-code",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.2.0",
|
|
4
|
+
"description": "Upfyn-Code — Visual AI coding interface with Upfyn-Canvas whiteboard for AI coding assistants by Thinqmesh Technologies",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": "server/index.js",
|
|
6
7
|
"bin": {
|
|
7
|
-
"upfynai-code": "
|
|
8
|
-
"uc": "
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"dev": "node bin/cli.js",
|
|
12
|
-
"build": "vite build",
|
|
13
|
-
"preview": "vite preview"
|
|
8
|
+
"upfynai-code": "server/cli.js",
|
|
9
|
+
"uc": "server/cli.js"
|
|
14
10
|
},
|
|
15
11
|
"files": [
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
12
|
+
"server/",
|
|
13
|
+
"shared/",
|
|
14
|
+
"client/dist/",
|
|
15
|
+
"scripts/",
|
|
16
|
+
"commands/",
|
|
17
|
+
"README.md"
|
|
22
18
|
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"start": "node server/index.js",
|
|
21
|
+
"build": "node scripts/build-client.js",
|
|
22
|
+
"postinstall": "node scripts/fix-node-pty.js || true && node scripts/install-commands.js"
|
|
23
|
+
},
|
|
23
24
|
"keywords": [
|
|
24
|
-
"
|
|
25
|
-
"ai
|
|
26
|
-
"tldraw",
|
|
27
|
-
"terminal-ui",
|
|
28
|
-
"statusline",
|
|
25
|
+
"ai coding assistant",
|
|
26
|
+
"ai",
|
|
29
27
|
"anthropic",
|
|
30
|
-
"
|
|
28
|
+
"excalidraw",
|
|
29
|
+
"whiteboard",
|
|
30
|
+
"upfynai",
|
|
31
|
+
"thinqmesh",
|
|
32
|
+
"visual-coding"
|
|
31
33
|
],
|
|
32
|
-
"author":
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
},
|
|
36
|
-
"license": "SEE LICENSE IN LICENSE",
|
|
37
|
-
"homepage": "https://upfyn.ai",
|
|
34
|
+
"author": "Thinqmesh Technologies <hello@thinqmesh.com>",
|
|
35
|
+
"license": "GPL-3.0",
|
|
36
|
+
"homepage": "https://thinqmesh.com",
|
|
38
37
|
"repository": {
|
|
39
38
|
"type": "git",
|
|
40
|
-
"url": "git+https://github.com/
|
|
39
|
+
"url": "git+https://github.com/thinqmesh/upfynai-code.git"
|
|
41
40
|
},
|
|
42
|
-
"
|
|
43
|
-
"
|
|
41
|
+
"bugs": {
|
|
42
|
+
"url": "https://github.com/thinqmesh/upfynai-code/issues"
|
|
44
43
|
},
|
|
45
44
|
"dependencies": {
|
|
46
|
-
"@
|
|
47
|
-
"@
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
45
|
+
"@anthropic-ai/claude-agent-sdk": "^0.1.71",
|
|
46
|
+
"@anthropic-ai/sdk": "^0.78.0",
|
|
47
|
+
"@codemirror/lang-css": "^6.3.1",
|
|
48
|
+
"@codemirror/lang-html": "^6.4.9",
|
|
49
|
+
"@codemirror/lang-javascript": "^6.2.4",
|
|
50
|
+
"@codemirror/lang-json": "^6.0.1",
|
|
51
|
+
"@codemirror/lang-markdown": "^6.3.3",
|
|
52
|
+
"@codemirror/lang-python": "^6.2.1",
|
|
53
|
+
"@codemirror/merge": "^6.11.1",
|
|
54
|
+
"@codemirror/theme-one-dark": "^6.1.2",
|
|
55
|
+
"@excalidraw/excalidraw": "^0.18.0",
|
|
56
|
+
"@iarna/toml": "^2.2.5",
|
|
57
|
+
"@libsql/client": "^0.14.0",
|
|
58
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
59
|
+
"@neondatabase/serverless": "^1.0.2",
|
|
60
|
+
"@octokit/rest": "^22.0.0",
|
|
61
|
+
"@openai/codex-sdk": "^0.101.0",
|
|
62
|
+
"@replit/codemirror-minimap": "^0.5.2",
|
|
63
|
+
"@tailwindcss/typography": "^0.5.16",
|
|
64
|
+
"@uiw/react-codemirror": "^4.23.13",
|
|
65
|
+
"@vitejs/plugin-react": "^4.5.2",
|
|
66
|
+
"@xterm/addon-clipboard": "^0.1.0",
|
|
67
|
+
"@xterm/addon-fit": "^0.10.0",
|
|
68
|
+
"@xterm/addon-web-links": "^0.11.0",
|
|
69
|
+
"@xterm/addon-webgl": "^0.18.0",
|
|
70
|
+
"@xterm/xterm": "^5.5.0",
|
|
71
|
+
"autoprefixer": "^10.4.16",
|
|
72
|
+
"bcryptjs": "^3.0.3",
|
|
73
|
+
"chokidar": "^4.0.3",
|
|
74
|
+
"class-variance-authority": "^0.7.1",
|
|
75
|
+
"clsx": "^2.1.1",
|
|
76
|
+
"cookie-parser": "^1.4.7",
|
|
77
|
+
"cors": "^2.8.5",
|
|
78
|
+
"cross-spawn": "^7.0.3",
|
|
79
|
+
"express": "^4.18.2",
|
|
80
|
+
"fuse.js": "^7.0.0",
|
|
81
|
+
"gray-matter": "^4.0.3",
|
|
82
|
+
"i18next": "^25.7.4",
|
|
83
|
+
"i18next-browser-languagedetector": "^8.2.0",
|
|
84
|
+
"jsonwebtoken": "^9.0.2",
|
|
85
|
+
"katex": "^0.16.25",
|
|
86
|
+
"lucide-react": "^0.515.0",
|
|
87
|
+
"mime-types": "^3.0.1",
|
|
88
|
+
"multer": "^2.0.1",
|
|
89
|
+
"node-fetch": "^2.7.0",
|
|
90
|
+
"pdfjs-dist": "^5.4.624",
|
|
91
|
+
"postcss": "^8.4.32",
|
|
92
|
+
"razorpay": "^2.9.6",
|
|
93
|
+
"react": "^18.2.0",
|
|
94
|
+
"react-dom": "^18.2.0",
|
|
95
|
+
"react-dropzone": "^14.2.3",
|
|
96
|
+
"react-i18next": "^16.5.3",
|
|
97
|
+
"react-markdown": "^10.1.0",
|
|
98
|
+
"react-router-dom": "^6.8.1",
|
|
99
|
+
"react-syntax-highlighter": "^15.6.1",
|
|
100
|
+
"rehype-katex": "^7.0.1",
|
|
101
|
+
"rehype-raw": "^7.0.0",
|
|
53
102
|
"remark-gfm": "^4.0.0",
|
|
54
|
-
"
|
|
103
|
+
"remark-math": "^6.0.0",
|
|
104
|
+
"tailwind-merge": "^3.3.1",
|
|
105
|
+
"tailwindcss": "^3.4.0",
|
|
106
|
+
"vite": "~6.3.5",
|
|
107
|
+
"ws": "^8.14.2",
|
|
108
|
+
"zod": "^3.25.76",
|
|
109
|
+
"zustand": "^5.0.11"
|
|
55
110
|
},
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"vite": "^6.1.0"
|
|
111
|
+
"optionalDependencies": {
|
|
112
|
+
"bcrypt": "^6.0.0",
|
|
113
|
+
"better-sqlite3": "^12.2.0",
|
|
114
|
+
"node-pty": "^1.1.0-beta34",
|
|
115
|
+
"sqlite": "^5.1.1",
|
|
116
|
+
"sqlite3": "^5.1.7"
|
|
63
117
|
},
|
|
64
|
-
"
|
|
65
|
-
"
|
|
118
|
+
"devDependencies": {
|
|
119
|
+
"@types/node": "^22.19.7",
|
|
120
|
+
"@types/react": "^18.2.43",
|
|
121
|
+
"@types/react-dom": "^18.2.17",
|
|
122
|
+
"lightningcss": "^1.31.1",
|
|
123
|
+
"node-gyp": "^10.0.0",
|
|
124
|
+
"typescript": "^5.9.3"
|
|
66
125
|
}
|
|
67
126
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Build the client (frontend) from the backend directory.
|
|
4
|
+
* Uses Vite API directly to avoid npx resolution issues.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import { fileURLToPath } from 'url';
|
|
8
|
+
|
|
9
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
const clientDir = path.join(__dirname, '..', 'client');
|
|
11
|
+
|
|
12
|
+
// Change cwd so Vite/Tailwind resolve configs from client/
|
|
13
|
+
process.chdir(clientDir);
|
|
14
|
+
console.log(`Building client from: ${clientDir}`);
|
|
15
|
+
|
|
16
|
+
const { build } = await import('vite');
|
|
17
|
+
await build();
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Fix node-pty spawn-helper permissions on macOS
|
|
4
|
+
*
|
|
5
|
+
* This script fixes a known issue with node-pty where the spawn-helper
|
|
6
|
+
* binary is shipped without execute permissions, causing "posix_spawnp failed" errors.
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/microsoft/node-pty/issues/850
|
|
9
|
+
* @module scripts/fix-node-pty
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { promises as fs } from 'fs';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
import { fileURLToPath } from 'url';
|
|
15
|
+
|
|
16
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
+
const __dirname = path.dirname(__filename);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Fixes the spawn-helper binary permissions for node-pty on macOS.
|
|
21
|
+
*
|
|
22
|
+
* The node-pty package ships the spawn-helper binary without execute permissions
|
|
23
|
+
* (644 instead of 755), which causes "posix_spawnp failed" errors when trying
|
|
24
|
+
* to spawn terminal processes.
|
|
25
|
+
*
|
|
26
|
+
* This function:
|
|
27
|
+
* 1. Checks if running on macOS (darwin)
|
|
28
|
+
* 2. Locates spawn-helper binaries for both arm64 and x64 architectures
|
|
29
|
+
* 3. Sets execute permissions (755) on each binary found
|
|
30
|
+
*
|
|
31
|
+
* @async
|
|
32
|
+
* @function fixSpawnHelper
|
|
33
|
+
* @returns {Promise<void>} Resolves when permissions are fixed or skipped
|
|
34
|
+
* @example
|
|
35
|
+
* // Run as postinstall script
|
|
36
|
+
* await fixSpawnHelper();
|
|
37
|
+
*/
|
|
38
|
+
async function fixSpawnHelper() {
|
|
39
|
+
const nodeModulesPath = path.join(__dirname, '..', 'node_modules', 'node-pty', 'prebuilds');
|
|
40
|
+
|
|
41
|
+
// Only run on macOS
|
|
42
|
+
if (process.platform !== 'darwin') {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const darwinDirs = ['darwin-arm64', 'darwin-x64'];
|
|
47
|
+
|
|
48
|
+
for (const dir of darwinDirs) {
|
|
49
|
+
const spawnHelperPath = path.join(nodeModulesPath, dir, 'spawn-helper');
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
// Check if file exists
|
|
53
|
+
await fs.access(spawnHelperPath);
|
|
54
|
+
|
|
55
|
+
// Make it executable (755)
|
|
56
|
+
await fs.chmod(spawnHelperPath, 0o755);
|
|
57
|
+
console.log(`[postinstall] Fixed permissions for ${spawnHelperPath}`);
|
|
58
|
+
} catch (err) {
|
|
59
|
+
// File doesn't exist or other error - ignore
|
|
60
|
+
if (err.code !== 'ENOENT') {
|
|
61
|
+
console.warn(`[postinstall] Warning: Could not fix ${spawnHelperPath}: ${err.message}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
fixSpawnHelper().catch(console.error);
|