@hienlh/ppm 0.1.4 → 0.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.
Files changed (102) hide show
  1. package/CLAUDE.md +45 -0
  2. package/bun.lock +55 -0
  3. package/dist/ppm +0 -0
  4. package/dist/web/assets/api-client-BgVufYKf.js +1 -0
  5. package/dist/web/assets/arrow-up-from-line-DjfWTP75.js +1 -0
  6. package/dist/web/assets/button-KIZetva8.js +41 -0
  7. package/dist/web/assets/chat-tab-D7dR7kbZ.js +6 -0
  8. package/dist/web/assets/code-editor-r8P6Gk4M.js +2 -0
  9. package/dist/web/assets/copy-B-kLwqzg.js +1 -0
  10. package/dist/web/assets/dialog-D8ulRTfX.js +5 -0
  11. package/dist/web/assets/diff-viewer-vSvrem_i.js +4 -0
  12. package/dist/web/assets/dist-C4W3AGh3.js +1 -0
  13. package/dist/web/assets/dist-PA84y4Ga.js +1 -0
  14. package/dist/web/assets/external-link-Dim3NH6h.js +1 -0
  15. package/dist/web/assets/git-graph-Cn-s1k0-.js +1 -0
  16. package/dist/web/assets/git-status-panel-QjAQzNAi.js +1 -0
  17. package/dist/web/assets/index-DUBI96T5.css +2 -0
  18. package/dist/web/assets/index-nk1dAWff.js +10 -0
  19. package/dist/web/assets/{jsx-runtime-BnxRlLMJ.js → jsx-runtime-BFALxl05.js} +1 -1
  20. package/dist/web/assets/marked.esm-Cv8mjgnt.js +59 -0
  21. package/dist/web/assets/project-list-DqiatpaH.js +1 -0
  22. package/dist/web/assets/{react-Uzd0zARU.js → react-BSLFEYu8.js} +1 -1
  23. package/dist/web/assets/refresh-cw-DJSjl6Ev.js +1 -0
  24. package/dist/web/assets/settings-tab-iCGeFFdt.js +1 -0
  25. package/dist/web/assets/terminal-tab-DDf6S-Tu.js +36 -0
  26. package/dist/web/assets/trash-2-CjahwKg8.js +1 -0
  27. package/dist/web/assets/x-BxhOxZ5p.js +1 -0
  28. package/dist/web/index.html +11 -10
  29. package/dist/web/sw.js +1 -1
  30. package/docs/claude-agent-sdk-reference.md +780 -0
  31. package/docs/code-standards.md +74 -0
  32. package/docs/codebase-summary.md +22 -20
  33. package/docs/deployment-guide.md +81 -11
  34. package/docs/lessons-learned.md +58 -0
  35. package/docs/project-overview-pdr.md +62 -2
  36. package/docs/system-architecture.md +102 -10
  37. package/package.json +4 -1
  38. package/schemas/ppm-config.schema.json +87 -0
  39. package/src/cli/commands/init.ts +186 -43
  40. package/src/cli/commands/status.ts +73 -0
  41. package/src/cli/commands/stop.ts +24 -10
  42. package/src/index.ts +28 -5
  43. package/src/providers/claude-agent-sdk.ts +84 -3
  44. package/src/providers/registry.ts +0 -2
  45. package/src/server/index.ts +106 -15
  46. package/src/server/routes/settings.ts +70 -0
  47. package/src/server/ws/chat.ts +8 -6
  48. package/src/services/cloudflared.service.ts +99 -0
  49. package/src/services/git.service.ts +23 -1
  50. package/src/services/tunnel.service.ts +100 -0
  51. package/src/types/chat.ts +8 -1
  52. package/src/types/config.ts +50 -3
  53. package/src/web/app.tsx +10 -2
  54. package/src/web/components/auth/login-screen.tsx +1 -1
  55. package/src/web/components/chat/message-input.tsx +1 -1
  56. package/src/web/components/chat/message-list.tsx +112 -251
  57. package/src/web/components/chat/tool-cards.tsx +411 -0
  58. package/src/web/components/editor/code-editor.tsx +80 -20
  59. package/src/web/components/editor/diff-viewer.tsx +72 -7
  60. package/src/web/components/git/git-graph.tsx +3 -0
  61. package/src/web/components/git/git-status-panel.tsx +50 -1
  62. package/src/web/components/layout/command-palette.tsx +215 -0
  63. package/src/web/components/layout/mobile-drawer.tsx +143 -42
  64. package/src/web/components/layout/sidebar.tsx +103 -67
  65. package/src/web/components/layout/tab-bar.tsx +1 -2
  66. package/src/web/components/settings/ai-settings-section.tsx +166 -0
  67. package/src/web/components/settings/settings-tab.tsx +5 -0
  68. package/src/web/components/terminal/terminal-tab.tsx +45 -22
  69. package/src/web/components/ui/input.tsx +4 -3
  70. package/src/web/components/ui/label.tsx +24 -0
  71. package/src/web/components/ui/select.tsx +188 -0
  72. package/src/web/hooks/use-global-keybindings.ts +56 -0
  73. package/src/web/hooks/use-terminal.ts +14 -1
  74. package/src/web/lib/api-settings.ts +24 -0
  75. package/src/web/stores/project-store.ts +47 -2
  76. package/src/web/stores/tab-store.ts +1 -1
  77. package/src/web/styles/globals.css +20 -6
  78. package/test-tool.mjs +41 -0
  79. package/dist/web/assets/api-client-Bnf9LAt4.js +0 -1
  80. package/dist/web/assets/arrow-up-from-line-BXL5dtbG.js +0 -1
  81. package/dist/web/assets/button-DxRZgE8F.js +0 -1
  82. package/dist/web/assets/chat-tab-p2mwkdec.js +0 -61
  83. package/dist/web/assets/code-editor-vMRyRKV3.js +0 -2
  84. package/dist/web/assets/createLucideIcon-Dy1wlrF7.js +0 -1
  85. package/dist/web/assets/dialog-Db6prp1p.js +0 -45
  86. package/dist/web/assets/diff-viewer-BdDje3Wr.js +0 -4
  87. package/dist/web/assets/external-link-WSiY-639.js +0 -1
  88. package/dist/web/assets/git-graph-B-qwuFoO.js +0 -1
  89. package/dist/web/assets/git-status-panel-NkZFb5v1.js +0 -1
  90. package/dist/web/assets/index-BHEFCU01.js +0 -10
  91. package/dist/web/assets/index-DYd_2slk.css +0 -2
  92. package/dist/web/assets/project-list-NkR7IHT5.js +0 -1
  93. package/dist/web/assets/refresh-cw-DtopuYJf.js +0 -1
  94. package/dist/web/assets/settings-tab-DKx0s3Q1.js +0 -1
  95. package/dist/web/assets/terminal-tab-DHwn2LMT.js +0 -36
  96. package/dist/web/assets/trash-2-CHLebaNh.js +0 -1
  97. package/dist/web/assets/x-BISR7bpK.js +0 -1
  98. package/src/providers/claude-binary-finder.ts +0 -256
  99. package/src/providers/claude-code-cli.ts +0 -413
  100. package/src/providers/claude-process-registry.ts +0 -106
  101. /package/dist/web/assets/{dist-CSp7ir0r.js → dist-CBiGQxfr.js} +0 -0
  102. /package/dist/web/assets/{utils-CiBGfeHD.js → utils-DpJF9mAi.js} +0 -0
@@ -0,0 +1 @@
1
+ import{n as e}from"./jsx-runtime-BFALxl05.js";var t=e(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./jsx-runtime-BFALxl05.js";var t=e(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};
@@ -8,16 +8,17 @@
8
8
  <link rel="preconnect" href="https://fonts.googleapis.com" />
9
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
10
  <link href="https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600;700&family=Geist:wght@400;500;600;700&display=swap" rel="stylesheet" />
11
- <script type="module" crossorigin src="/assets/index-BHEFCU01.js"></script>
12
- <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BnxRlLMJ.js">
13
- <link rel="modulepreload" crossorigin href="/assets/utils-CiBGfeHD.js">
14
- <link rel="modulepreload" crossorigin href="/assets/button-DxRZgE8F.js">
15
- <link rel="modulepreload" crossorigin href="/assets/createLucideIcon-Dy1wlrF7.js">
16
- <link rel="modulepreload" crossorigin href="/assets/x-BISR7bpK.js">
17
- <link rel="modulepreload" crossorigin href="/assets/dialog-Db6prp1p.js">
18
- <link rel="modulepreload" crossorigin href="/assets/api-client-Bnf9LAt4.js">
19
- <link rel="modulepreload" crossorigin href="/assets/react-Uzd0zARU.js">
20
- <link rel="stylesheet" crossorigin href="/assets/index-DYd_2slk.css">
11
+ <script type="module" crossorigin src="/assets/index-nk1dAWff.js"></script>
12
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-BFALxl05.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/utils-DpJF9mAi.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/button-KIZetva8.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/dist-C4W3AGh3.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/dist-PA84y4Ga.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/x-BxhOxZ5p.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/dialog-D8ulRTfX.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/react-BSLFEYu8.js">
20
+ <link rel="modulepreload" crossorigin href="/assets/api-client-BgVufYKf.js">
21
+ <link rel="stylesheet" crossorigin href="/assets/index-DUBI96T5.css">
21
22
  <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
22
23
  <body class="bg-[#0f1419] text-[#e5e7eb] font-sans antialiased">
23
24
  <div id="root"></div>
package/dist/web/sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let s,e={};const i=(i,l)=>(i=new URL(i+".js",l).href,e[i]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()}).then(()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s}));self.define=(l,r)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let t={};const u=s=>i(s,n),o={module:{uri:n},exports:t,require:u};e[n]=Promise.all(l.map(s=>o[s]||u(s))).then(s=>(r(...s),t))}}define(["./workbox-3e722498"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"1655fdcbe92469c05af07c8a382d7da3"},{url:"icon-512.svg",revision:"a0fb34fc84eb148d51812cd62669f20d"},{url:"icon-192.svg",revision:"a0fb34fc84eb148d51812cd62669f20d"},{url:"assets/x-BISR7bpK.js",revision:null},{url:"assets/utils-CiBGfeHD.js",revision:null},{url:"assets/trash-2-CHLebaNh.js",revision:null},{url:"assets/terminal-tab-DHwn2LMT.js",revision:null},{url:"assets/terminal-tab-BrP-ENHg.css",revision:null},{url:"assets/settings-tab-DKx0s3Q1.js",revision:null},{url:"assets/refresh-cw-DtopuYJf.js",revision:null},{url:"assets/react-Uzd0zARU.js",revision:null},{url:"assets/project-list-NkR7IHT5.js",revision:null},{url:"assets/jsx-runtime-BnxRlLMJ.js",revision:null},{url:"assets/index-DYd_2slk.css",revision:null},{url:"assets/index-BHEFCU01.js",revision:null},{url:"assets/git-status-panel-NkZFb5v1.js",revision:null},{url:"assets/git-graph-B-qwuFoO.js",revision:null},{url:"assets/external-link-WSiY-639.js",revision:null},{url:"assets/dist-CSp7ir0r.js",revision:null},{url:"assets/diff-viewer-BdDje3Wr.js",revision:null},{url:"assets/dialog-Db6prp1p.js",revision:null},{url:"assets/createLucideIcon-Dy1wlrF7.js",revision:null},{url:"assets/code-editor-vMRyRKV3.js",revision:null},{url:"assets/chat-tab-p2mwkdec.js",revision:null},{url:"assets/button-DxRZgE8F.js",revision:null},{url:"assets/arrow-up-from-line-BXL5dtbG.js",revision:null},{url:"assets/api-client-Bnf9LAt4.js",revision:null},{url:"manifest.webmanifest",revision:"79c8870653c8f419f2e3323085e1f4be"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"))),s.registerRoute(/^https?:\/\/.*\/api\//,new s.NetworkOnly,"GET"),s.registerRoute(/^https?:\/\/.*\/ws\//,new s.NetworkOnly,"GET")});
1
+ if(!self.define){let s,e={};const i=(i,l)=>(i=new URL(i+".js",l).href,e[i]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()}).then(()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s}));self.define=(l,r)=>{const n=s||("document"in self?document.currentScript.src:"")||location.href;if(e[n])return;let t={};const u=s=>i(s,n),o={module:{uri:n},exports:t,require:u};e[n]=Promise.all(l.map(s=>o[s]||u(s))).then(s=>(r(...s),t))}}define(["./workbox-3e722498"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"1115c63bcaa9689db6843d71ee1f60f3"},{url:"icon-512.svg",revision:"a0fb34fc84eb148d51812cd62669f20d"},{url:"icon-192.svg",revision:"a0fb34fc84eb148d51812cd62669f20d"},{url:"assets/x-BxhOxZ5p.js",revision:null},{url:"assets/utils-DpJF9mAi.js",revision:null},{url:"assets/trash-2-CjahwKg8.js",revision:null},{url:"assets/terminal-tab-DDf6S-Tu.js",revision:null},{url:"assets/terminal-tab-BrP-ENHg.css",revision:null},{url:"assets/settings-tab-iCGeFFdt.js",revision:null},{url:"assets/refresh-cw-DJSjl6Ev.js",revision:null},{url:"assets/react-BSLFEYu8.js",revision:null},{url:"assets/project-list-DqiatpaH.js",revision:null},{url:"assets/marked.esm-Cv8mjgnt.js",revision:null},{url:"assets/jsx-runtime-BFALxl05.js",revision:null},{url:"assets/index-nk1dAWff.js",revision:null},{url:"assets/index-DUBI96T5.css",revision:null},{url:"assets/git-status-panel-QjAQzNAi.js",revision:null},{url:"assets/git-graph-Cn-s1k0-.js",revision:null},{url:"assets/external-link-Dim3NH6h.js",revision:null},{url:"assets/dist-PA84y4Ga.js",revision:null},{url:"assets/dist-CBiGQxfr.js",revision:null},{url:"assets/dist-C4W3AGh3.js",revision:null},{url:"assets/diff-viewer-vSvrem_i.js",revision:null},{url:"assets/dialog-D8ulRTfX.js",revision:null},{url:"assets/copy-B-kLwqzg.js",revision:null},{url:"assets/code-editor-r8P6Gk4M.js",revision:null},{url:"assets/chat-tab-D7dR7kbZ.js",revision:null},{url:"assets/button-KIZetva8.js",revision:null},{url:"assets/arrow-up-from-line-DjfWTP75.js",revision:null},{url:"assets/api-client-BgVufYKf.js",revision:null},{url:"manifest.webmanifest",revision:"79c8870653c8f419f2e3323085e1f4be"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"))),s.registerRoute(/^https?:\/\/.*\/api\//,new s.NetworkOnly,"GET"),s.registerRoute(/^https?:\/\/.*\/ws\//,new s.NetworkOnly,"GET")});