@kimuson/claude-code-viewer 0.6.0-beta.2 → 0.6.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/README.md +22 -12
- package/dist/main.js +682 -536
- package/dist/main.js.map +4 -4
- package/dist/static/assets/ProtectedRoute-KMCDjFpr.js +1 -0
- package/dist/static/assets/{eye-BEkfdnRO.js → eye-DsqhY3YQ.js} +1 -1
- package/dist/static/assets/{index-CHZixXYx.js → index-BU5VCG8M.js} +1 -1
- package/dist/static/assets/{index-C9P7O98i.js → index-BUy-hZ_L.js} +1 -1
- package/dist/static/assets/index-DhqtKAUx.js +101 -0
- package/dist/static/assets/{label-DigNu3m4.js → label-Bx75JYJV.js} +1 -1
- package/dist/static/assets/{login-CotBrr4P.js → login-CIKB0Oew.js} +1 -1
- package/dist/static/assets/session-D50bOHyT.js +58 -0
- package/dist/static/assets/session-DDGTF8rc.css +1 -0
- package/dist/static/assets/{session-BfEVLScy.js → session-WhX_gGJt.js} +1 -1
- package/dist/static/index.html +1 -1
- package/package.json +48 -48
- package/dist/static/assets/ProtectedRoute-kldRjzy3.js +0 -1
- package/dist/static/assets/index-nTFAt0o5.js +0 -101
- package/dist/static/assets/session-B4VFb0DB.js +0 -51
- package/dist/static/assets/session-DFuMZ0ql.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as o,N as n,T as s}from"./index-
|
|
1
|
+
import{j as o,N as n,T as s}from"./index-DhqtKAUx.js";const i=()=>o.jsx(n,{message:o.jsx(s,{id:"notfound.session.title"}),description:o.jsx(s,{id:"notfound.session.description"})});export{i as notFoundComponent};
|
package/dist/static/index.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
content="Web Viewer for Claude Code history"
|
|
9
9
|
/>
|
|
10
10
|
<title>Claude Code Viewer</title>
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-DhqtKAUx.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="/assets/index-CTq99aOX.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kimuson/claude-code-viewer",
|
|
3
|
-
"version": "0.6.0
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "A full-featured web-based Claude Code client that provides complete interactive functionality for managing Claude Code projects.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,21 +19,21 @@
|
|
|
19
19
|
"claude-code-viewer": "./dist/main.js"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@anthropic-ai/claude-agent-sdk": "0.2.
|
|
23
|
-
"@anthropic-ai/claude-code": "2.1.
|
|
24
|
-
"@anthropic-ai/sdk": "0.
|
|
25
|
-
"@effect/cluster": "0.56.
|
|
22
|
+
"@anthropic-ai/claude-agent-sdk": "0.2.42",
|
|
23
|
+
"@anthropic-ai/claude-code": "2.1.42",
|
|
24
|
+
"@anthropic-ai/sdk": "0.74.0",
|
|
25
|
+
"@effect/cluster": "0.56.4",
|
|
26
26
|
"@effect/experimental": "0.58.0",
|
|
27
|
-
"@effect/platform": "0.94.
|
|
27
|
+
"@effect/platform": "0.94.5",
|
|
28
28
|
"@effect/platform-node": "0.104.1",
|
|
29
|
-
"@effect/rpc": "0.73.
|
|
29
|
+
"@effect/rpc": "0.73.1",
|
|
30
30
|
"@effect/sql": "0.49.0",
|
|
31
31
|
"@effect/workflow": "0.16.0",
|
|
32
32
|
"@hono/node-server": "1.19.9",
|
|
33
33
|
"@hono/zod-validator": "0.7.6",
|
|
34
|
-
"@hookform/resolvers": "
|
|
35
|
-
"@lingui/core": "5.9.
|
|
36
|
-
"@lingui/react": "5.9.
|
|
34
|
+
"@hookform/resolvers": "5.2.2",
|
|
35
|
+
"@lingui/core": "5.9.1",
|
|
36
|
+
"@lingui/react": "5.9.1",
|
|
37
37
|
"@radix-ui/react-avatar": "1.1.11",
|
|
38
38
|
"@radix-ui/react-checkbox": "1.3.3",
|
|
39
39
|
"@radix-ui/react-collapsible": "1.1.12",
|
|
@@ -44,64 +44,64 @@
|
|
|
44
44
|
"@radix-ui/react-slot": "1.2.4",
|
|
45
45
|
"@radix-ui/react-tabs": "1.1.13",
|
|
46
46
|
"@radix-ui/react-tooltip": "1.2.8",
|
|
47
|
-
"@replit/ruspty": "
|
|
47
|
+
"@replit/ruspty": "3.6.0",
|
|
48
48
|
"@tailwindcss/vite": "4.1.18",
|
|
49
|
-
"@tanstack/react-devtools": "0.9.
|
|
50
|
-
"@tanstack/react-query": "5.90.
|
|
51
|
-
"@tanstack/react-router": "1.
|
|
52
|
-
"@tanstack/react-router-devtools": "1.
|
|
53
|
-
"@xterm/addon-fit": "0.
|
|
54
|
-
"@xterm/xterm": "
|
|
49
|
+
"@tanstack/react-devtools": "0.9.5",
|
|
50
|
+
"@tanstack/react-query": "5.90.21",
|
|
51
|
+
"@tanstack/react-router": "1.160.0",
|
|
52
|
+
"@tanstack/react-router-devtools": "1.160.0",
|
|
53
|
+
"@xterm/addon-fit": "0.11.0",
|
|
54
|
+
"@xterm/xterm": "6.0.0",
|
|
55
55
|
"class-variance-authority": "0.7.1",
|
|
56
56
|
"clsx": "2.1.1",
|
|
57
|
-
"cmdk": "
|
|
58
|
-
"commander": "
|
|
57
|
+
"cmdk": "1.1.1",
|
|
58
|
+
"commander": "14.0.3",
|
|
59
59
|
"date-fns": "4.1.0",
|
|
60
|
-
"effect": "3.19.
|
|
60
|
+
"effect": "3.19.17",
|
|
61
61
|
"es-toolkit": "1.44.0",
|
|
62
|
-
"hono": "4.11.
|
|
63
|
-
"jotai": "2.
|
|
64
|
-
"lucide-react": "0.
|
|
62
|
+
"hono": "4.11.9",
|
|
63
|
+
"jotai": "2.17.1",
|
|
64
|
+
"lucide-react": "0.564.0",
|
|
65
65
|
"minisearch": "7.2.0",
|
|
66
|
-
"parse-git-diff": "0.0.
|
|
66
|
+
"parse-git-diff": "0.0.20",
|
|
67
67
|
"prexit": "2.3.0",
|
|
68
|
-
"radix-ui": "
|
|
69
|
-
"react": "19.2.
|
|
70
|
-
"react-dom": "19.2.
|
|
71
|
-
"react-error-boundary": "6.1.
|
|
72
|
-
"react-hook-form": "
|
|
68
|
+
"radix-ui": "1.4.3",
|
|
69
|
+
"react": "19.2.4",
|
|
70
|
+
"react-dom": "19.2.4",
|
|
71
|
+
"react-error-boundary": "6.1.1",
|
|
72
|
+
"react-hook-form": "7.71.1",
|
|
73
73
|
"react-markdown": "10.1.0",
|
|
74
74
|
"react-syntax-highlighter": "16.1.0",
|
|
75
75
|
"remark-gfm": "4.0.1",
|
|
76
76
|
"sonner": "2.0.7",
|
|
77
|
-
"tailwind-merge": "3.4.
|
|
77
|
+
"tailwind-merge": "3.4.1",
|
|
78
78
|
"ulid": "3.0.2",
|
|
79
|
-
"ws": "8.
|
|
79
|
+
"ws": "8.19.0",
|
|
80
80
|
"zod": "4.3.6"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
-
"@biomejs/biome": "2.
|
|
84
|
-
"@effect/language-service": "0.
|
|
85
|
-
"@lingui/cli": "5.9.
|
|
86
|
-
"@lingui/conf": "5.9.
|
|
87
|
-
"@lingui/format-json": "5.9.
|
|
88
|
-
"@lingui/loader": "5.9.
|
|
89
|
-
"@lingui/vite-plugin": "5.9.
|
|
83
|
+
"@biomejs/biome": "2.4.0",
|
|
84
|
+
"@effect/language-service": "0.73.1",
|
|
85
|
+
"@lingui/cli": "5.9.1",
|
|
86
|
+
"@lingui/conf": "5.9.1",
|
|
87
|
+
"@lingui/format-json": "5.9.1",
|
|
88
|
+
"@lingui/loader": "5.9.1",
|
|
89
|
+
"@lingui/vite-plugin": "5.9.1",
|
|
90
90
|
"@tailwindcss/postcss": "4.1.18",
|
|
91
|
-
"@tanstack/router-plugin": "1.
|
|
91
|
+
"@tanstack/router-plugin": "1.160.0",
|
|
92
92
|
"@tsconfig/strictest": "2.0.8",
|
|
93
|
-
"@types/node": "25.
|
|
94
|
-
"@types/react": "19.2.
|
|
93
|
+
"@types/node": "25.2.3",
|
|
94
|
+
"@types/react": "19.2.14",
|
|
95
95
|
"@types/react-dom": "19.2.3",
|
|
96
96
|
"@types/react-syntax-highlighter": "15.5.13",
|
|
97
|
-
"@types/ws": "8.18.
|
|
98
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
99
|
-
"@vitejs/plugin-react-swc": "4.2.
|
|
100
|
-
"dotenv": "17.
|
|
101
|
-
"esbuild": "0.27.
|
|
102
|
-
"lefthook": "2.
|
|
97
|
+
"@types/ws": "8.18.1",
|
|
98
|
+
"@typescript/native-preview": "7.0.0-dev.20260215.1",
|
|
99
|
+
"@vitejs/plugin-react-swc": "4.2.3",
|
|
100
|
+
"dotenv": "17.3.1",
|
|
101
|
+
"esbuild": "0.27.3",
|
|
102
|
+
"lefthook": "2.1.1",
|
|
103
103
|
"npm-run-all2": "8.0.4",
|
|
104
|
-
"playwright": "1.58.
|
|
104
|
+
"playwright": "1.58.2",
|
|
105
105
|
"release-it": "19.2.4",
|
|
106
106
|
"release-it-pnpm": "4.6.6",
|
|
107
107
|
"tailwindcss": "4.1.18",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as y,r as c,V as T,j as s,U as D,P,M as $,J as j,S as N,H as U,a5 as G,u as K,a as V}from"./index-nTFAt0o5.js";const W=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],X=y("check",W);const J=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],ce=y("chevron-right",J);const Z=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],ae=y("folder",Z);const Q=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ie=y("plus",Q);function Y(e){const t=c.useRef({value:e,previous:e});return c.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function ee(e){const[t,o]=c.useState(void 0);return T(()=>{if(e){o({width:e.offsetWidth,height:e.offsetHeight});const d=new ResizeObserver(n=>{if(!Array.isArray(n)||!n.length)return;const r=n[0];let u,l;if("borderBoxSize"in r){const a=r.borderBoxSize,f=Array.isArray(a)?a[0]:a;u=f.inlineSize,l=f.blockSize}else u=e.offsetWidth,l=e.offsetHeight;o({width:u,height:l})});return d.observe(e,{box:"border-box"}),()=>d.unobserve(e)}else o(void 0)},[e]),t}var _="Checkbox",[te]=U(_),[re,S]=te(_);function oe(e){const{__scopeCheckbox:t,checked:o,children:d,defaultChecked:n,disabled:r,form:u,name:l,onCheckedChange:a,required:f,value:x="on",internal_do_not_use_render:p}=e,[b,m]=$({prop:o,defaultProp:n??!1,onChange:a,caller:_}),[v,C]=c.useState(null),[g,i]=c.useState(null),h=c.useRef(!1),E=v?!!u||!!v.closest("form"):!0,R={checked:b,disabled:r,setChecked:m,control:v,setControl:C,name:l,form:u,value:x,hasConsumerStoppedPropagationRef:h,required:f,defaultChecked:k(n)?!1:n,isFormControl:E,bubbleInput:g,setBubbleInput:i};return s.jsx(re,{scope:t,...R,children:ne(p)?p(R):d})}var w="CheckboxTrigger",z=c.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:o,...d},n)=>{const{control:r,value:u,disabled:l,checked:a,required:f,setControl:x,setChecked:p,hasConsumerStoppedPropagationRef:b,isFormControl:m,bubbleInput:v}=S(w,e),C=j(n,x),g=c.useRef(a);return c.useEffect(()=>{const i=r?.form;if(i){const h=()=>p(g.current);return i.addEventListener("reset",h),()=>i.removeEventListener("reset",h)}},[r,p]),s.jsx(P.button,{type:"button",role:"checkbox","aria-checked":k(a)?"mixed":a,"aria-required":f,"data-state":L(a),"data-disabled":l?"":void 0,disabled:l,value:u,...d,ref:C,onKeyDown:N(t,i=>{i.key==="Enter"&&i.preventDefault()}),onClick:N(o,i=>{p(h=>k(h)?!0:!h),v&&m&&(b.current=i.isPropagationStopped(),b.current||i.stopPropagation())})})});z.displayName=w;var A=c.forwardRef((e,t)=>{const{__scopeCheckbox:o,name:d,checked:n,defaultChecked:r,required:u,disabled:l,value:a,onCheckedChange:f,form:x,...p}=e;return s.jsx(oe,{__scopeCheckbox:o,checked:n,defaultChecked:r,disabled:l,required:u,onCheckedChange:f,name:d,form:x,value:a,internal_do_not_use_render:({isFormControl:b})=>s.jsxs(s.Fragment,{children:[s.jsx(z,{...p,ref:t,__scopeCheckbox:o}),b&&s.jsx(H,{__scopeCheckbox:o})]})})});A.displayName=_;var M="CheckboxIndicator",B=c.forwardRef((e,t)=>{const{__scopeCheckbox:o,forceMount:d,...n}=e,r=S(M,o);return s.jsx(D,{present:d||k(r.checked)||r.checked===!0,children:s.jsx(P.span,{"data-state":L(r.checked),"data-disabled":r.disabled?"":void 0,...n,ref:t,style:{pointerEvents:"none",...e.style}})})});B.displayName=M;var F="CheckboxBubbleInput",H=c.forwardRef(({__scopeCheckbox:e,...t},o)=>{const{control:d,hasConsumerStoppedPropagationRef:n,checked:r,defaultChecked:u,required:l,disabled:a,name:f,value:x,form:p,bubbleInput:b,setBubbleInput:m}=S(F,e),v=j(o,m),C=Y(r),g=ee(d);c.useEffect(()=>{const h=b;if(!h)return;const E=window.HTMLInputElement.prototype,I=Object.getOwnPropertyDescriptor(E,"checked").set,q=!n.current;if(C!==r&&I){const O=new Event("click",{bubbles:q});h.indeterminate=k(r),I.call(h,k(r)?!1:r),h.dispatchEvent(O)}},[b,C,r,n]);const i=c.useRef(k(r)?!1:r);return s.jsx(P.input,{type:"checkbox","aria-hidden":!0,defaultChecked:u??i.current,required:l,disabled:a,name:f,value:x,form:p,...t,tabIndex:-1,ref:v,style:{...t.style,...g,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});H.displayName=F;function ne(e){return typeof e=="function"}function k(e){return e==="indeterminate"}function L(e){return k(e)?"indeterminate":e?"checked":"unchecked"}function de({className:e,...t}){return s.jsx(A,{"data-slot":"checkbox",className:G("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:s.jsx(B,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:s.jsx(X,{className:"size-3.5"})})})}function ue({children:e}){const{isAuthenticated:t}=K(),o=V();return c.useEffect(()=>{t||o({to:"/login"})},[t,o]),t?s.jsx(s.Fragment,{children:e}):null}export{de as C,ae as F,ie as P,ce as a,ue as b,Y as c,X as d,ee as u};
|