@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.
- package/CHANGELOG.md +17 -0
- package/CLAUDE.md +1 -0
- package/Dockerfile.test +5 -1
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/bun.lock +5 -0
- package/dist/web/assets/{ai-resource-editor-QNfSU0Fi.js → ai-resource-editor-DAIaB4mX.js} +1 -1
- package/dist/web/assets/{api-client-DhXpjLdi.js → api-client-BgM59GxL.js} +1 -1
- package/dist/web/assets/api-client-BwMdPtp6.js +1 -0
- package/dist/web/assets/{api-settings-BUYvGBdi.js → api-settings-D108koFG.js} +1 -1
- package/dist/web/assets/api-settings-D2fY0GUc.js +1 -0
- package/dist/web/assets/{api-themes-BpoKUPkQ.js → api-themes-cPGCYGB_.js} +1 -1
- package/dist/web/assets/{audio-preview-IokB77Cj.js → audio-preview-Df6_blMs.js} +1 -1
- package/dist/web/assets/chat-tab-yPXWmX01.js +13 -0
- package/dist/web/assets/{code-editor-B8YiBPOX.js → code-editor-CSDB2W8N.js} +2 -2
- package/dist/web/assets/{conflict-editor-CY1o5kBO.js → conflict-editor-BqMdj782.js} +1 -1
- package/dist/web/assets/{csv-preview-AEg0GB-V.js → csv-preview-BC_BuOzK.js} +1 -1
- package/dist/web/assets/{database-viewer-C5Meg0s_.js → database-viewer-DZQDQOye.js} +1 -1
- package/dist/web/assets/diff-viewer-CaKD5pR5.js +4 -0
- package/dist/web/assets/docx-preview-MBY4op8y.js +12 -0
- package/dist/web/assets/{edit-diff-preview-_CXUdwsF.js → edit-diff-preview-D1TEK7Jz.js} +1 -1
- package/dist/web/assets/{extension-webview-CQceYb7O.js → extension-webview-CMtucoeg.js} +1 -1
- package/dist/web/assets/git-log-panel-DWZUIupS.js +1 -0
- package/dist/web/assets/{glide-data-grid-cGxkgluR.js → glide-data-grid-SLs8Xp6G.js} +1 -1
- package/dist/web/assets/{group-chat-tab-B-eA5ytm.js → group-chat-tab-Celp6ihW.js} +1 -1
- package/dist/web/assets/image-gallery-CObzTisL.js +1 -0
- package/dist/web/assets/{image-preview-DRUzYptI.js → image-preview-lRcpEoEk.js} +1 -1
- package/dist/web/assets/index-BkH2b_6W.js +50 -0
- package/dist/web/assets/index-eW0VEaRF.css +2 -0
- package/dist/web/assets/keybindings-store-CtfEQL3U.js +1 -0
- package/dist/web/assets/markdown-renderer-D9r_4-qe.js +3 -0
- package/dist/web/assets/markdown-renderer-DkYo6o9f.js +1 -0
- package/dist/web/assets/notification-store-OF6L8lWu.js +1 -0
- package/dist/web/assets/panel-store-CpKvXNnm.js +1 -0
- package/dist/web/assets/pdf-preview-D17y9l8U.js +1 -0
- package/dist/web/assets/{postgres-viewer-BeantJZe.js → postgres-viewer-DgpX_Kyl.js} +1 -1
- package/dist/web/assets/project-store-8_AdCduJ.js +1 -0
- package/dist/web/assets/{settings-store-DFMz_Oer.js → settings-store-BhZ7VYJD.js} +2 -2
- package/dist/web/assets/settings-tab-Cou9P1gO.js +1 -0
- package/dist/web/assets/{sql-query-editor-DqU9zfVy.js → sql-query-editor-BIeAQego.js} +1 -1
- package/dist/web/assets/sqlite-viewer-SipxlqWM.js +1 -0
- package/dist/web/assets/{system-monitor-tab-Bue4p4Vb.js → system-monitor-tab-Cp-rP5HZ.js} +1 -1
- package/dist/web/assets/{tab-store-CNxCwdXw.js → tab-store-BQmDVh9c.js} +1 -1
- package/dist/web/assets/{terminal-tab-BfNnKU71.js → terminal-tab-C9T_X4oo.js} +1 -1
- package/dist/web/assets/tool-cards-BFVmoF_j.js +7 -0
- package/dist/web/assets/use-blob-url-BYDGMRMU.js +1 -0
- package/dist/web/assets/{use-monaco-theme-5XjAzOzE.js → use-monaco-theme-Bd1GBgB3.js} +1 -1
- package/dist/web/assets/{video-preview-DMqLOqmc.js → video-preview-DT8B2-re.js} +1 -1
- package/dist/web/index.html +8 -8
- package/dist/web/sw.js +1 -1
- package/docker-compose.test.yml +5 -1
- package/package.json +4 -3
- package/src/server/routes/chat.ts +66 -1
- package/src/services/image-dimensions.ts +67 -0
- package/src/services/transcript-images.ts +174 -0
- package/src/shared/tool-result-content.ts +14 -3
- package/src/web/components/chat/chat-history-bar.tsx +3 -104
- package/src/web/components/chat/message-input.tsx +4 -2
- package/src/web/components/chat/message-list.tsx +10 -3
- package/src/web/components/chat/session-debug-dialog.tsx +240 -0
- package/src/web/components/chat/tool-image-preview.tsx +4 -2
- package/src/web/components/group-chat/group-create-dialog.tsx +2 -1
- package/src/web/components/layout/editor-panel.tsx +31 -5
- package/src/web/components/layout/notification-bell-popover.tsx +5 -1
- package/src/web/components/layout/tab-bar.tsx +2 -2
- package/src/web/components/shared/image-overlay.tsx +188 -24
- package/src/web/components/shared/markdown-context.ts +1 -1
- package/src/web/components/shared/markdown-renderer.tsx +3 -1
- package/src/web/hooks/use-draft.ts +17 -2
- package/src/web/hooks/use-image-transform.ts +276 -0
- package/src/web/lib/api-client.ts +50 -7
- package/src/web/lib/clipboard.ts +41 -0
- package/src/web/lib/file-download.ts +1 -1
- package/src/web/lib/image-gallery.ts +25 -0
- package/src/web/stores/image-overlay-store.ts +35 -7
- package/src/web/stores/panel-store.ts +40 -6
- package/src/web/stores/panel-utils.ts +19 -0
- package/dist/web/assets/api-client-DNTkryX1.js +0 -1
- package/dist/web/assets/api-settings-Bp5HXQCW.js +0 -1
- package/dist/web/assets/chat-tab-BZNEvS88.js +0 -13
- package/dist/web/assets/diff-viewer-BRRGvZnp.js +0 -4
- package/dist/web/assets/docx-preview-DqTX7NDp.js +0 -12
- package/dist/web/assets/git-log-panel-D7QlAJqu.js +0 -1
- package/dist/web/assets/index-BuX7JkCt.js +0 -50
- package/dist/web/assets/index-PX2pZ3bH.css +0 -2
- package/dist/web/assets/keybindings-store-B3plqyxF.js +0 -1
- package/dist/web/assets/markdown-renderer-BKDbjc3g.js +0 -3
- package/dist/web/assets/markdown-renderer-C9Gy8tM2.js +0 -1
- package/dist/web/assets/notification-store-jFDauzse.js +0 -1
- package/dist/web/assets/panel-store-D-RxcUgH.js +0 -1
- package/dist/web/assets/pdf-preview-CzHUqXJB.js +0 -1
- package/dist/web/assets/project-store-C1jInVih.js +0 -1
- package/dist/web/assets/settings-tab-CqQHhqV1.js +0 -1
- package/dist/web/assets/sqlite-viewer-BH891DC0.js +0 -1
- package/dist/web/assets/tool-cards-CSOwe7_i.js +0 -7
- package/dist/web/assets/use-blob-url-jSRmyXVg.js +0 -1
- package/skills-lock.json +0 -11
- package/spike-memory-region-dump.ps1 +0 -69
- /package/dist/web/assets/{csv-parser-BPS94T2h.js → csv-parser-DVHBcvuE.js} +0 -0
- /package/dist/web/assets/{lib-DA3QSc5_.js → lib-DTaN9riD.js} +0 -0
- /package/dist/web/assets/{libesm-BS7D9de3.js → libesm-DdtEjhIi.js} +0 -0
- /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,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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|