@hienlh/ppm 0.12.6 → 0.12.8

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.
Files changed (90) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/web/assets/{ai-settings-section-BHdBBJtS.js → ai-settings-section-QE6nBNgN.js} +1 -1
  3. package/dist/web/assets/api-client-Dvzcc_EO.js +1 -0
  4. package/dist/web/assets/{api-settings-ByUGHhTB.js → api-settings-DAk7D-NP.js} +1 -1
  5. package/dist/web/assets/architecture-PBZL5I3N-DvZbltvY.js +1 -0
  6. package/dist/web/assets/{audio-preview-BMmzgbUs.js → audio-preview-DnQmf9fu.js} +1 -1
  7. package/dist/web/assets/chat-tab-Cf6T3mGO.js +12 -0
  8. package/dist/web/assets/code-editor-B-lU1fz3.js +8 -0
  9. package/dist/web/assets/{conflict-editor-CBietP8L.js → conflict-editor-BYzf3LuW.js} +1 -1
  10. package/dist/web/assets/{database-viewer-CZgooyFp.js → database-viewer-DjvnIn8p.js} +2 -2
  11. package/dist/web/assets/{diff-viewer-BVYjlTcF.js → diff-viewer-CP2jcR5J.js} +1 -1
  12. package/dist/web/assets/{extension-webview-DyZOGDb1.js → extension-webview-4xMREn_x.js} +1 -1
  13. package/dist/web/assets/file-store-BrbCNyLm.js +1 -0
  14. package/dist/web/assets/gitGraph-HDMCJU4V-BxhdxFgj.js +1 -0
  15. package/dist/web/assets/github-dark-dimmed.min-BrpRStFV.css +1 -0
  16. package/dist/web/assets/github.min-D2BCvnWf.css +1 -0
  17. package/dist/web/assets/{image-preview-k8_kzoHe.js → image-preview-CkS2PVdQ.js} +1 -1
  18. package/dist/web/assets/index-BTjuH4fn.css +2 -0
  19. package/dist/web/assets/index-FGlF8IWZ.js +23 -0
  20. package/dist/web/assets/info-3K5VOQVL-BwAZ2zd8.js +1 -0
  21. package/dist/web/assets/{keybindings-store-CThBg3hS.js → keybindings-store-B-zET-0o.js} +1 -1
  22. package/dist/web/assets/keybindings-store-DaBV6qhz.js +1 -0
  23. package/dist/web/assets/{markdown-renderer-CJOPseDk.js → markdown-renderer-Bj2B05Km.js} +3 -3
  24. package/dist/web/assets/packet-RMMSAZCW-tx2n5Qry.js +1 -0
  25. package/dist/web/assets/{pdf-preview-GCIIaZVw.js → pdf-preview-CCyw5cuH.js} +1 -1
  26. package/dist/web/assets/pie-UPGHQEXC-D6S2MqVT.js +1 -0
  27. package/dist/web/assets/{port-forwarding-tab-DzLa02_D.js → port-forwarding-tab-Cebb5Eix.js} +1 -1
  28. package/dist/web/assets/{postgres-viewer-JCT24Yqh.js → postgres-viewer-BrOiliEv.js} +2 -2
  29. package/dist/web/assets/radar-KQ55EAFF-BviZcL-b.js +1 -0
  30. package/dist/web/assets/settings-store-BLLR7ed8.js +2 -0
  31. package/dist/web/assets/settings-tab-D0XjupJm.js +1 -0
  32. package/dist/web/assets/{sql-query-editor-JwymAmuK.js → sql-query-editor-CVAnRFbi.js} +1 -1
  33. package/dist/web/assets/{sqlite-viewer-nA_Biwex.js → sqlite-viewer-OEVq_-Po.js} +1 -1
  34. package/dist/web/assets/{terminal-tab-DvKxdDv4.js → terminal-tab-MjmJaQyA.js} +1 -1
  35. package/dist/web/assets/treemap-KZPCXAKY-CM54VdaB.js +1 -0
  36. package/dist/web/assets/{use-blob-url-BU9hYOj9.js → use-blob-url-e9uTXjv5.js} +1 -1
  37. package/dist/web/assets/{use-monaco-theme-o7Ip-BDL.js → use-monaco-theme-BkZDwoVd.js} +1 -1
  38. package/dist/web/assets/{vendor-mermaid-BlWh9BJO.js → vendor-mermaid-Dx86tuVP.js} +1 -1
  39. package/dist/web/assets/{video-preview-CAGgINCA.js → video-preview-B819qvlp.js} +1 -1
  40. package/dist/web/index.html +10 -10
  41. package/dist/web/sw.js +1 -1
  42. package/docs/journals/260421-lazy-load-file-tree-palette-index.md +125 -0
  43. package/docs/project-changelog.md +13 -1
  44. package/docs/system-architecture.md +79 -1
  45. package/package.json +1 -1
  46. package/src/server/index.ts +1 -1
  47. package/src/server/routes/files.ts +40 -2
  48. package/src/server/routes/projects.ts +53 -0
  49. package/src/server/routes/settings.ts +50 -1
  50. package/src/services/config.service.ts +41 -0
  51. package/src/services/db.service.ts +57 -1
  52. package/src/services/file-filter.service.ts +121 -0
  53. package/src/services/file-list-index.service.ts +170 -0
  54. package/src/services/file-watcher.service.ts +8 -4
  55. package/src/services/file.service.ts +55 -53
  56. package/src/services/upgrade.service.ts +2 -2
  57. package/src/types/chat.ts +2 -1
  58. package/src/types/project.ts +31 -0
  59. package/src/web/components/chat/file-picker.tsx +0 -13
  60. package/src/web/components/chat/message-input.tsx +11 -14
  61. package/src/web/components/chat/tool-cards.tsx +4 -2
  62. package/src/web/components/explorer/file-tree.tsx +91 -26
  63. package/src/web/components/layout/command-palette.tsx +26 -3
  64. package/src/web/components/settings/files-settings-section.tsx +230 -0
  65. package/src/web/components/settings/glob-list-editor.tsx +121 -0
  66. package/src/web/components/settings/settings-tab.tsx +5 -2
  67. package/src/web/lib/api-client.ts +2 -1
  68. package/src/web/lib/api-files-settings.ts +42 -0
  69. package/src/web/main.tsx +1 -1
  70. package/src/web/stores/file-store.ts +139 -14
  71. package/src/web/stores/file-tree-merge-helpers.ts +44 -0
  72. package/src/web/stores/jira-store.ts +1 -1
  73. package/src/web/stores/settings-store.ts +20 -0
  74. package/src/web/styles/globals.css +2 -8
  75. package/dist/web/assets/api-client-CwbMRXYl.js +0 -1
  76. package/dist/web/assets/architecture-PBZL5I3N-XX6_EZsC.js +0 -1
  77. package/dist/web/assets/chat-tab-NteLsEST.js +0 -12
  78. package/dist/web/assets/code-editor-Da9GXN5w.js +0 -8
  79. package/dist/web/assets/gitGraph-HDMCJU4V-BhjTKsbg.js +0 -1
  80. package/dist/web/assets/index-CDSox8V2.css +0 -2
  81. package/dist/web/assets/index-CXR1vYHY.js +0 -23
  82. package/dist/web/assets/info-3K5VOQVL-CzgVqYTx.js +0 -1
  83. package/dist/web/assets/keybindings-store-BIQHClUy.js +0 -1
  84. package/dist/web/assets/packet-RMMSAZCW-C7agXrtd.js +0 -1
  85. package/dist/web/assets/pie-UPGHQEXC-BRZ7alnf.js +0 -1
  86. package/dist/web/assets/project-store-IB6pAGQh.js +0 -1
  87. package/dist/web/assets/radar-KQ55EAFF-DSn_ekR5.js +0 -1
  88. package/dist/web/assets/settings-store-fDOEursg.js +0 -2
  89. package/dist/web/assets/settings-tab-bYmVV0Ww.js +0 -1
  90. package/dist/web/assets/treemap-KZPCXAKY-C8puYVyN.js +0 -1
@@ -0,0 +1 @@
1
+ import{B as e}from"./vendor-mermaid-Dx86tuVP.js";export{e as createInfoServices};
@@ -1 +1 @@
1
- import{t as e}from"./react-GqWghJ-L.js";import{t}from"./api-client-CwbMRXYl.js";var n=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),r=[{id:`command-palette`,label:`Command Palette`,category:`general`,defaultKey:`F1`,note:`Shift+Shift also opens (not customizable)`},{id:`toggle-sidebar`,label:`Toggle Sidebar`,category:`general`,defaultKey:`Mod+B`},{id:`save-prevent`,label:`Prevent Save Dialog`,category:`general`,defaultKey:`Mod+S`,locked:!0,note:`Always active — prevents browser save`},{id:`next-tab`,label:`Next Tab`,category:`tabs`,defaultKey:`Alt+]`},{id:`prev-tab`,label:`Previous Tab`,category:`tabs`,defaultKey:`Alt+[`},{id:`new-file`,label:`New File`,category:`tabs`,defaultKey:`Mod+N`},{id:`open-chat`,label:`Open Chat`,category:`tabs`,defaultKey:`Mod+L`},{id:`open-terminal`,label:`Open Terminal`,category:`tabs`,defaultKey:`Mod+'`},{id:`open-settings`,label:`Open Settings`,category:`tabs`,defaultKey:`Mod+,`},{id:`open-git-status`,label:`Git Status (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+E`},{id:`open-search`,label:`Search Files (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+F`},{id:`voice-input`,label:`Voice Input`,category:`general`,defaultKey:`Mod+Shift+V`,note:`Toggle speech-to-text in chat`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],i=new Map(r.map(e=>[e.id,e.defaultKey]));function a(e){let t=e.split(`+`),r={ctrl:!1,meta:!1,alt:!1,shift:!1,key:``};for(let e of t){let t=e.trim();switch(t){case`Mod`:n?r.meta=!0:r.ctrl=!0;break;case`Ctrl`:r.ctrl=!0;break;case`Meta`:case`Cmd`:r.meta=!0;break;case`Alt`:r.alt=!0;break;case`Shift`:r.shift=!0;break;default:r.key=t.toLowerCase();break}}return r}function o(e,t){return e.ctrlKey!==t.ctrl||e.metaKey!==t.meta||e.altKey!==t.alt||e.shiftKey!==t.shift?!1:e.key.toLowerCase()===t.key}function s(e){return e.replace(/Mod/g,n?`⌘`:`Ctrl`).replace(/Shift/g,n?`⇧`:`Shift`).replace(/Alt/g,n?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,n?`⌃`:`Ctrl`)}function c(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(n?`Ctrl`:`Mod`),e.metaKey&&t.push(n?`Mod`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let r=e.key;return r===` `?r=`Space`:r.length===1&&(r=r.toUpperCase()),t.push(r),t.join(`+`)}function l(e){let t=new Map;for(let n of r){let r=e[n.id]??n.defaultKey;r&&t.set(n.id,a(r))}return t}var u=l({}),d=e((e,n)=>({overrides:{},parsedCache:u,loaded:!1,getBinding:e=>n().overrides[e]??i.get(e)??``,matchesEvent:(e,t)=>{let r=n().parsedCache.get(t);return r?o(e,r):!1},setBinding:(r,i)=>{let a={...n().overrides,[r]:i};e({overrides:a,parsedCache:l(a)}),t.put(`/api/settings/keybindings`,{[r]:i}).catch(()=>{})},resetBinding:r=>{let i={...n().overrides};delete i[r],e({overrides:i,parsedCache:l(i)}),t.put(`/api/settings/keybindings`,{[r]:null}).catch(()=>{})},resetAll:()=>{let r={};for(let e of Object.keys(n().overrides))r[e]=null;e({overrides:{},parsedCache:l({})}),Object.keys(r).length>0&&t.put(`/api/settings/keybindings`,r).catch(()=>{})},loadFromServer:async()=>{try{let n=await t.get(`/api/settings/keybindings`);e({overrides:n,parsedCache:l(n),loaded:!0})}catch{e({loaded:!0})}}}));export{a,s as i,c as n,d as o,o as r,r as t};
1
+ import{t as e}from"./react-GqWghJ-L.js";import{t}from"./api-client-Dvzcc_EO.js";var n=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),r=[{id:`command-palette`,label:`Command Palette`,category:`general`,defaultKey:`F1`,note:`Shift+Shift also opens (not customizable)`},{id:`toggle-sidebar`,label:`Toggle Sidebar`,category:`general`,defaultKey:`Mod+B`},{id:`save-prevent`,label:`Prevent Save Dialog`,category:`general`,defaultKey:`Mod+S`,locked:!0,note:`Always active — prevents browser save`},{id:`next-tab`,label:`Next Tab`,category:`tabs`,defaultKey:`Alt+]`},{id:`prev-tab`,label:`Previous Tab`,category:`tabs`,defaultKey:`Alt+[`},{id:`new-file`,label:`New File`,category:`tabs`,defaultKey:`Mod+N`},{id:`open-chat`,label:`Open Chat`,category:`tabs`,defaultKey:`Mod+L`},{id:`open-terminal`,label:`Open Terminal`,category:`tabs`,defaultKey:`Mod+'`},{id:`open-settings`,label:`Open Settings`,category:`tabs`,defaultKey:`Mod+,`},{id:`open-git-status`,label:`Git Status (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+E`},{id:`open-search`,label:`Search Files (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+F`},{id:`voice-input`,label:`Voice Input`,category:`general`,defaultKey:`Mod+Shift+V`,note:`Toggle speech-to-text in chat`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],i=new Map(r.map(e=>[e.id,e.defaultKey]));function a(e){let t=e.split(`+`),r={ctrl:!1,meta:!1,alt:!1,shift:!1,key:``};for(let e of t){let t=e.trim();switch(t){case`Mod`:n?r.meta=!0:r.ctrl=!0;break;case`Ctrl`:r.ctrl=!0;break;case`Meta`:case`Cmd`:r.meta=!0;break;case`Alt`:r.alt=!0;break;case`Shift`:r.shift=!0;break;default:r.key=t.toLowerCase();break}}return r}function o(e,t){return e.ctrlKey!==t.ctrl||e.metaKey!==t.meta||e.altKey!==t.alt||e.shiftKey!==t.shift?!1:e.key.toLowerCase()===t.key}function s(e){return e.replace(/Mod/g,n?`⌘`:`Ctrl`).replace(/Shift/g,n?`⇧`:`Shift`).replace(/Alt/g,n?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,n?`⌃`:`Ctrl`)}function c(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(n?`Ctrl`:`Mod`),e.metaKey&&t.push(n?`Mod`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let r=e.key;return r===` `?r=`Space`:r.length===1&&(r=r.toUpperCase()),t.push(r),t.join(`+`)}function l(e){let t=new Map;for(let n of r){let r=e[n.id]??n.defaultKey;r&&t.set(n.id,a(r))}return t}var u=l({}),d=e((e,n)=>({overrides:{},parsedCache:u,loaded:!1,getBinding:e=>n().overrides[e]??i.get(e)??``,matchesEvent:(e,t)=>{let r=n().parsedCache.get(t);return r?o(e,r):!1},setBinding:(r,i)=>{let a={...n().overrides,[r]:i};e({overrides:a,parsedCache:l(a)}),t.put(`/api/settings/keybindings`,{[r]:i}).catch(()=>{})},resetBinding:r=>{let i={...n().overrides};delete i[r],e({overrides:i,parsedCache:l(i)}),t.put(`/api/settings/keybindings`,{[r]:null}).catch(()=>{})},resetAll:()=>{let r={};for(let e of Object.keys(n().overrides))r[e]=null;e({overrides:{},parsedCache:l({})}),Object.keys(r).length>0&&t.put(`/api/settings/keybindings`,r).catch(()=>{})},loadFromServer:async()=>{try{let n=await t.get(`/api/settings/keybindings`);e({overrides:n,parsedCache:l(n),loaded:!0})}catch{e({loaded:!0})}}}));export{a,s as i,c as n,d as o,o as r,r as t};
@@ -0,0 +1 @@
1
+ import"./vendor-markdown-0Mxgxy0L.js";import"./api-client-Dvzcc_EO.js";import{o as e}from"./keybindings-store-B-zET-0o.js";export{e as useKeybindingsStore};