@hienlh/ppm 0.17.34 → 0.17.37

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/CHANGELOG.md +17 -0
  2. package/CLAUDE.md +1 -0
  3. package/Dockerfile.test +5 -1
  4. package/assets/skills/ppm/SKILL.md +1 -1
  5. package/assets/skills/ppm/references/http-api.md +1 -1
  6. package/bun.lock +5 -0
  7. package/dist/web/assets/{ai-resource-editor-QNfSU0Fi.js → ai-resource-editor-DAIaB4mX.js} +1 -1
  8. package/dist/web/assets/{api-client-DhXpjLdi.js → api-client-BgM59GxL.js} +1 -1
  9. package/dist/web/assets/api-client-BwMdPtp6.js +1 -0
  10. package/dist/web/assets/{api-settings-BUYvGBdi.js → api-settings-D108koFG.js} +1 -1
  11. package/dist/web/assets/api-settings-D2fY0GUc.js +1 -0
  12. package/dist/web/assets/{api-themes-BpoKUPkQ.js → api-themes-cPGCYGB_.js} +1 -1
  13. package/dist/web/assets/{audio-preview-IokB77Cj.js → audio-preview-Df6_blMs.js} +1 -1
  14. package/dist/web/assets/chat-tab-yPXWmX01.js +13 -0
  15. package/dist/web/assets/{code-editor-B8YiBPOX.js → code-editor-CSDB2W8N.js} +2 -2
  16. package/dist/web/assets/{conflict-editor-CY1o5kBO.js → conflict-editor-BqMdj782.js} +1 -1
  17. package/dist/web/assets/{csv-preview-AEg0GB-V.js → csv-preview-BC_BuOzK.js} +1 -1
  18. package/dist/web/assets/{database-viewer-C5Meg0s_.js → database-viewer-DZQDQOye.js} +1 -1
  19. package/dist/web/assets/diff-viewer-CaKD5pR5.js +4 -0
  20. package/dist/web/assets/docx-preview-MBY4op8y.js +12 -0
  21. package/dist/web/assets/{edit-diff-preview-_CXUdwsF.js → edit-diff-preview-D1TEK7Jz.js} +1 -1
  22. package/dist/web/assets/{extension-webview-CQceYb7O.js → extension-webview-CMtucoeg.js} +1 -1
  23. package/dist/web/assets/git-log-panel-DWZUIupS.js +1 -0
  24. package/dist/web/assets/{glide-data-grid-cGxkgluR.js → glide-data-grid-SLs8Xp6G.js} +1 -1
  25. package/dist/web/assets/{group-chat-tab-B-eA5ytm.js → group-chat-tab-Celp6ihW.js} +1 -1
  26. package/dist/web/assets/image-gallery-CObzTisL.js +1 -0
  27. package/dist/web/assets/{image-preview-DRUzYptI.js → image-preview-lRcpEoEk.js} +1 -1
  28. package/dist/web/assets/index-BkH2b_6W.js +50 -0
  29. package/dist/web/assets/index-eW0VEaRF.css +2 -0
  30. package/dist/web/assets/keybindings-store-CtfEQL3U.js +1 -0
  31. package/dist/web/assets/markdown-renderer-D9r_4-qe.js +3 -0
  32. package/dist/web/assets/markdown-renderer-DkYo6o9f.js +1 -0
  33. package/dist/web/assets/notification-store-OF6L8lWu.js +1 -0
  34. package/dist/web/assets/panel-store-CpKvXNnm.js +1 -0
  35. package/dist/web/assets/pdf-preview-D17y9l8U.js +1 -0
  36. package/dist/web/assets/{postgres-viewer-BeantJZe.js → postgres-viewer-DgpX_Kyl.js} +1 -1
  37. package/dist/web/assets/project-store-8_AdCduJ.js +1 -0
  38. package/dist/web/assets/{settings-store-DFMz_Oer.js → settings-store-BhZ7VYJD.js} +2 -2
  39. package/dist/web/assets/settings-tab-Cou9P1gO.js +1 -0
  40. package/dist/web/assets/{sql-query-editor-DqU9zfVy.js → sql-query-editor-BIeAQego.js} +1 -1
  41. package/dist/web/assets/sqlite-viewer-SipxlqWM.js +1 -0
  42. package/dist/web/assets/{system-monitor-tab-Bue4p4Vb.js → system-monitor-tab-Cp-rP5HZ.js} +1 -1
  43. package/dist/web/assets/{tab-store-CNxCwdXw.js → tab-store-BQmDVh9c.js} +1 -1
  44. package/dist/web/assets/{terminal-tab-BfNnKU71.js → terminal-tab-C9T_X4oo.js} +1 -1
  45. package/dist/web/assets/tool-cards-BFVmoF_j.js +7 -0
  46. package/dist/web/assets/use-blob-url-BYDGMRMU.js +1 -0
  47. package/dist/web/assets/{use-monaco-theme-5XjAzOzE.js → use-monaco-theme-Bd1GBgB3.js} +1 -1
  48. package/dist/web/assets/{video-preview-DMqLOqmc.js → video-preview-DT8B2-re.js} +1 -1
  49. package/dist/web/index.html +8 -8
  50. package/dist/web/sw.js +1 -1
  51. package/docker-compose.test.yml +5 -1
  52. package/package.json +4 -3
  53. package/src/server/routes/chat.ts +66 -1
  54. package/src/services/image-dimensions.ts +67 -0
  55. package/src/services/transcript-images.ts +174 -0
  56. package/src/shared/tool-result-content.ts +14 -3
  57. package/src/web/components/chat/chat-history-bar.tsx +3 -104
  58. package/src/web/components/chat/message-input.tsx +4 -2
  59. package/src/web/components/chat/message-list.tsx +10 -3
  60. package/src/web/components/chat/session-debug-dialog.tsx +240 -0
  61. package/src/web/components/chat/tool-image-preview.tsx +4 -2
  62. package/src/web/components/group-chat/group-create-dialog.tsx +2 -1
  63. package/src/web/components/layout/editor-panel.tsx +31 -5
  64. package/src/web/components/layout/notification-bell-popover.tsx +5 -1
  65. package/src/web/components/layout/tab-bar.tsx +2 -2
  66. package/src/web/components/shared/image-overlay.tsx +188 -24
  67. package/src/web/components/shared/markdown-context.ts +1 -1
  68. package/src/web/components/shared/markdown-renderer.tsx +3 -1
  69. package/src/web/hooks/use-draft.ts +17 -2
  70. package/src/web/hooks/use-image-transform.ts +276 -0
  71. package/src/web/lib/api-client.ts +50 -7
  72. package/src/web/lib/clipboard.ts +41 -0
  73. package/src/web/lib/file-download.ts +1 -1
  74. package/src/web/lib/image-gallery.ts +25 -0
  75. package/src/web/stores/image-overlay-store.ts +35 -7
  76. package/src/web/stores/panel-store.ts +40 -6
  77. package/src/web/stores/panel-utils.ts +19 -0
  78. package/dist/web/assets/api-client-DNTkryX1.js +0 -1
  79. package/dist/web/assets/api-settings-Bp5HXQCW.js +0 -1
  80. package/dist/web/assets/chat-tab-BZNEvS88.js +0 -13
  81. package/dist/web/assets/diff-viewer-BRRGvZnp.js +0 -4
  82. package/dist/web/assets/docx-preview-DqTX7NDp.js +0 -12
  83. package/dist/web/assets/git-log-panel-D7QlAJqu.js +0 -1
  84. package/dist/web/assets/index-BuX7JkCt.js +0 -50
  85. package/dist/web/assets/index-PX2pZ3bH.css +0 -2
  86. package/dist/web/assets/keybindings-store-B3plqyxF.js +0 -1
  87. package/dist/web/assets/markdown-renderer-BKDbjc3g.js +0 -3
  88. package/dist/web/assets/markdown-renderer-C9Gy8tM2.js +0 -1
  89. package/dist/web/assets/notification-store-jFDauzse.js +0 -1
  90. package/dist/web/assets/panel-store-D-RxcUgH.js +0 -1
  91. package/dist/web/assets/pdf-preview-CzHUqXJB.js +0 -1
  92. package/dist/web/assets/project-store-C1jInVih.js +0 -1
  93. package/dist/web/assets/settings-tab-CqQHhqV1.js +0 -1
  94. package/dist/web/assets/sqlite-viewer-BH891DC0.js +0 -1
  95. package/dist/web/assets/tool-cards-CSOwe7_i.js +0 -7
  96. package/dist/web/assets/use-blob-url-jSRmyXVg.js +0 -1
  97. package/skills-lock.json +0 -11
  98. package/spike-memory-region-dump.ps1 +0 -69
  99. /package/dist/web/assets/{csv-parser-BPS94T2h.js → csv-parser-DVHBcvuE.js} +0 -0
  100. /package/dist/web/assets/{lib-DA3QSc5_.js → lib-DTaN9riD.js} +0 -0
  101. /package/dist/web/assets/{libesm-BS7D9de3.js → libesm-DdtEjhIi.js} +0 -0
  102. /package/dist/web/assets/{vendor-xterm-CsgYwG03.js → vendor-xterm-QDr0jvpJ.js} +0 -0
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{b as t}from"./vendor-markdown-CKTlmXbz.js";import{n,r}from"./api-client-DhXpjLdi.js";var i=e(t(),1);function a(e,t,a,o=0){let[s,c]=(0,i.useState)(null),[l,u]=(0,i.useState)(null),[d,f]=(0,i.useState)(!1),[p,m]=(0,i.useState)(null),h=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let i=!1;f(!1),m(null);let o=/^(\/|[A-Za-z]:[/\\])/.test(e)?`/api/fs/raw?path=${encodeURIComponent(e)}`:`${r(t)}/files/raw?path=${encodeURIComponent(e)}`,s=n();return fetch(o,{headers:s?{Authorization:`Bearer ${s}`}:{}}).then(e=>{if(!e.ok)throw Error(String(e.status));return e.blob()}).then(e=>{if(i)return;let t=a?new Blob([e],{type:a}):e,n=URL.createObjectURL(t);h.current&&URL.revokeObjectURL(h.current),h.current=n,c(n),u(t)}).catch(e=>{i||(f(!0),m(/^\d+$/.test(e.message)?e.message:`network`))}),()=>{i=!0}},[e,t,a,o]),(0,i.useEffect)(()=>()=>{h.current&&URL.revokeObjectURL(h.current)},[]),{blobUrl:s,blob:l,error:d,errorCode:p}}export{a as t};
package/skills-lock.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "version": 1,
3
- "skills": {
4
- "game-assets": {
5
- "source": "Meowa-AI/meowa-skills",
6
- "sourceType": "github",
7
- "skillPath": "skills/game-assets/SKILL.md",
8
- "computedHash": "b3ceb77a09475144f2a598da451ec57a4f4e3994711b62a8eeae60a25fd2d916"
9
- }
10
- }
11
- }
@@ -1,69 +0,0 @@
1
- # Enumerate committed memory regions of a process via VirtualQueryEx.
2
- # Reveals allocation shape: many small regions (per-iteration leak) vs few huge (allocator arena).
3
- param([int]$ProcessId)
4
-
5
- Add-Type -TypeDefinition @"
6
- using System;
7
- using System.Runtime.InteropServices;
8
- public class MemProbe {
9
- [StructLayout(LayoutKind.Sequential)]
10
- public struct MEMORY_BASIC_INFORMATION {
11
- public IntPtr BaseAddress;
12
- public IntPtr AllocationBase;
13
- public uint AllocationProtect;
14
- public uint Alignment1;
15
- public IntPtr RegionSize;
16
- public uint State;
17
- public uint Protect;
18
- public uint Type;
19
- public uint Alignment2;
20
- }
21
- [DllImport("kernel32.dll", SetLastError=true)]
22
- public static extern IntPtr OpenProcess(uint access, bool inherit, int pid);
23
- [DllImport("kernel32.dll", SetLastError=true)]
24
- public static extern int VirtualQueryEx(IntPtr h, IntPtr addr, out MEMORY_BASIC_INFORMATION mbi, int len);
25
- [DllImport("kernel32.dll")]
26
- public static extern bool CloseHandle(IntPtr h);
27
- }
28
- "@
29
-
30
- $h = [MemProbe]::OpenProcess(0x0400 -bor 0x0010, $false, $ProcessId)
31
- if ($h -eq [IntPtr]::Zero) { Write-Error "OpenProcess failed: $([ComponentModel.Win32Exception]::new([Runtime.InteropServices.Marshal]::GetLastWin32Error()).Message)"; exit 1 }
32
-
33
- $size = [Runtime.InteropServices.Marshal]::SizeOf([type][MemProbe+MEMORY_BASIC_INFORMATION])
34
- $addr = [IntPtr]::Zero
35
- $regions = New-Object System.Collections.ArrayList
36
- $max = [Int64]0x7FFFFFFFFFFF
37
-
38
- while ([Int64]$addr -lt $max) {
39
- $mbi = New-Object MemProbe+MEMORY_BASIC_INFORMATION
40
- if ([MemProbe]::VirtualQueryEx($h, $addr, [ref]$mbi, $size) -eq 0) { break }
41
- $rs = [Int64]$mbi.RegionSize
42
- if ($rs -le 0) { break }
43
- # MEM_COMMIT=0x1000, MEM_PRIVATE=0x20000
44
- if ($mbi.State -eq 0x1000 -and $mbi.Type -eq 0x20000) {
45
- [void]$regions.Add([pscustomobject]@{ Base=$mbi.BaseAddress; Size=$rs; Protect=$mbi.Protect })
46
- }
47
- $addr = [IntPtr]([Int64]$addr + $rs)
48
- }
49
- [void][MemProbe]::CloseHandle($h)
50
-
51
- $total = ($regions | Measure-Object -Property Size -Sum).Sum
52
- "PID $ProcessId : committed-private regions = $($regions.Count), total = $([math]::Round($total/1GB,2)) GB"
53
- ""
54
- "--- by protection flag ---"
55
- $regions | Group-Object Protect | Sort-Object { ($_.Group | Measure-Object Size -Sum).Sum } -Descending |
56
- Select-Object @{n='Protect';e={'0x{0:X}' -f [int]$_.Name}}, Count,
57
- @{n='TotalGB';e={[math]::Round((($_.Group|Measure-Object Size -Sum).Sum)/1GB,2)}} |
58
- Format-Table -AutoSize
59
-
60
- "--- by region size bucket ---"
61
- $regions | Group-Object { [math]::Pow(2,[math]::Floor([math]::Log($_.Size,2))) } |
62
- Sort-Object { ($_.Group | Measure-Object Size -Sum).Sum } -Descending |
63
- Select-Object -First 12 @{n='BucketMB';e={[math]::Round([double]$_.Name/1MB,3)}}, Count,
64
- @{n='TotalGB';e={[math]::Round((($_.Group|Measure-Object Size -Sum).Sum)/1GB,2)}} |
65
- Format-Table -AutoSize
66
-
67
- "--- top 10 single regions ---"
68
- $regions | Sort-Object Size -Descending | Select-Object -First 10 @{n='Base';e={'0x{0:X}' -f [Int64]$_.Base}},
69
- @{n='MB';e={[math]::Round($_.Size/1MB,1)}}, @{n='Protect';e={'0x{0:X}' -f [int]$_.Protect}} | Format-Table -AutoSize