@caoruhua/open-claude-remote 1.0.7 → 1.3.6

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 (109) hide show
  1. package/README.md +54 -27
  2. package/dist/backend/src/api/file-routes.d.ts +0 -24
  3. package/dist/backend/src/api/file-routes.d.ts.map +1 -1
  4. package/dist/backend/src/api/file-routes.js +464 -68
  5. package/dist/backend/src/api/file-routes.js.map +1 -1
  6. package/dist/backend/src/api/instance-routes.d.ts +4 -0
  7. package/dist/backend/src/api/instance-routes.d.ts.map +1 -1
  8. package/dist/backend/src/api/instance-routes.js +27 -2
  9. package/dist/backend/src/api/instance-routes.js.map +1 -1
  10. package/dist/backend/src/api/router.d.ts +3 -1
  11. package/dist/backend/src/api/router.d.ts.map +1 -1
  12. package/dist/backend/src/api/router.js +3 -3
  13. package/dist/backend/src/api/router.js.map +1 -1
  14. package/dist/backend/src/cli-utils.d.ts +4 -0
  15. package/dist/backend/src/cli-utils.d.ts.map +1 -1
  16. package/dist/backend/src/cli-utils.js +17 -1
  17. package/dist/backend/src/cli-utils.js.map +1 -1
  18. package/dist/backend/src/cli.d.ts +6 -0
  19. package/dist/backend/src/cli.d.ts.map +1 -1
  20. package/dist/backend/src/cli.js +52 -7
  21. package/dist/backend/src/cli.js.map +1 -1
  22. package/dist/backend/src/config.d.ts +11 -0
  23. package/dist/backend/src/config.d.ts.map +1 -1
  24. package/dist/backend/src/config.js +43 -1
  25. package/dist/backend/src/config.js.map +1 -1
  26. package/dist/backend/src/daemon/daemon-client.d.ts +5 -0
  27. package/dist/backend/src/daemon/daemon-client.d.ts.map +1 -1
  28. package/dist/backend/src/daemon/daemon-client.js +42 -0
  29. package/dist/backend/src/daemon/daemon-client.js.map +1 -1
  30. package/dist/backend/src/daemon/daemon-launcher.d.ts.map +1 -1
  31. package/dist/backend/src/daemon/daemon-launcher.js +4 -1
  32. package/dist/backend/src/daemon/daemon-launcher.js.map +1 -1
  33. package/dist/backend/src/daemon/restart-state.d.ts +22 -0
  34. package/dist/backend/src/daemon/restart-state.d.ts.map +1 -0
  35. package/dist/backend/src/daemon/restart-state.js +85 -0
  36. package/dist/backend/src/daemon/restart-state.js.map +1 -0
  37. package/dist/backend/src/deps/detector.js +1 -1
  38. package/dist/backend/src/deps/index.d.ts +1 -1
  39. package/dist/backend/src/deps/index.js +22 -22
  40. package/dist/backend/src/deps/installer.js +6 -6
  41. package/dist/backend/src/deps/installer.js.map +1 -1
  42. package/dist/backend/src/deps/types.d.ts +1 -1
  43. package/dist/backend/src/deps/types.d.ts.map +1 -1
  44. package/dist/backend/src/deps/types.js +9 -11
  45. package/dist/backend/src/deps/types.js.map +1 -1
  46. package/dist/backend/src/hooks/hook-receiver.d.ts.map +1 -1
  47. package/dist/backend/src/hooks/hook-receiver.js +4 -0
  48. package/dist/backend/src/hooks/hook-receiver.js.map +1 -1
  49. package/dist/backend/src/index.d.ts.map +1 -1
  50. package/dist/backend/src/index.js +76 -9
  51. package/dist/backend/src/index.js.map +1 -1
  52. package/dist/backend/src/instance/instance-manager.d.ts +9 -0
  53. package/dist/backend/src/instance/instance-manager.d.ts.map +1 -1
  54. package/dist/backend/src/instance/instance-manager.js +46 -7
  55. package/dist/backend/src/instance/instance-manager.js.map +1 -1
  56. package/dist/backend/src/instance/instance-session.d.ts +12 -1
  57. package/dist/backend/src/instance/instance-session.d.ts.map +1 -1
  58. package/dist/backend/src/instance/instance-session.js +25 -3
  59. package/dist/backend/src/instance/instance-session.js.map +1 -1
  60. package/dist/backend/src/instance/types.d.ts +3 -0
  61. package/dist/backend/src/instance/types.d.ts.map +1 -1
  62. package/dist/backend/src/pty/fix-pty-permissions.d.ts +1 -1
  63. package/dist/backend/src/pty/fix-pty-permissions.js +1 -1
  64. package/dist/backend/src/pty/output-buffer.d.ts +6 -0
  65. package/dist/backend/src/pty/output-buffer.d.ts.map +1 -1
  66. package/dist/backend/src/pty/output-buffer.js +10 -0
  67. package/dist/backend/src/pty/output-buffer.js.map +1 -1
  68. package/dist/backend/src/registry/stop-instances.js +1 -1
  69. package/dist/backend/src/services/pptx-converter.d.ts +66 -0
  70. package/dist/backend/src/services/pptx-converter.d.ts.map +1 -0
  71. package/dist/backend/src/services/pptx-converter.js +282 -0
  72. package/dist/backend/src/services/pptx-converter.js.map +1 -0
  73. package/dist/backend/src/update.d.ts +2 -2
  74. package/dist/backend/src/update.d.ts.map +1 -1
  75. package/dist/backend/src/update.js +9 -9
  76. package/dist/backend/src/update.js.map +1 -1
  77. package/dist/backend/src/utils/banner.d.ts +2 -0
  78. package/dist/backend/src/utils/banner.d.ts.map +1 -1
  79. package/dist/backend/src/utils/banner.js +14 -10
  80. package/dist/backend/src/utils/banner.js.map +1 -1
  81. package/dist/backend/src/utils/network.d.ts +22 -0
  82. package/dist/backend/src/utils/network.d.ts.map +1 -1
  83. package/dist/backend/src/utils/network.js +54 -0
  84. package/dist/backend/src/utils/network.js.map +1 -1
  85. package/dist/backend/src/utils/string-display-width.d.ts +20 -0
  86. package/dist/backend/src/utils/string-display-width.d.ts.map +1 -0
  87. package/dist/backend/src/utils/string-display-width.js +79 -0
  88. package/dist/backend/src/utils/string-display-width.js.map +1 -0
  89. package/dist/shared/file-types.d.ts +176 -0
  90. package/dist/shared/file-types.d.ts.map +1 -0
  91. package/dist/shared/file-types.js +108 -0
  92. package/dist/shared/file-types.js.map +1 -0
  93. package/dist/shared/index.d.ts +1 -0
  94. package/dist/shared/index.d.ts.map +1 -1
  95. package/dist/shared/index.js +1 -0
  96. package/dist/shared/index.js.map +1 -1
  97. package/dist/shared/instance.d.ts +2 -0
  98. package/dist/shared/instance.d.ts.map +1 -1
  99. package/dist/shared/instance.js.map +1 -1
  100. package/frontend-dist/assets/{index-UXAwH56Q.css → index-BY0fnkbW.css} +1 -1
  101. package/frontend-dist/assets/index-qwSai8-t.js +211 -0
  102. package/frontend-dist/index.html +2 -2
  103. package/package.json +8 -4
  104. package/scripts/build.sh +3 -9
  105. package/scripts/dev.sh +1 -4
  106. package/scripts/git-hooks/pre-commit +0 -4
  107. package/scripts/publish-npm.sh +61 -0
  108. package/scripts/stop.sh +1 -1
  109. package/frontend-dist/assets/index-CVRtrLyp.js +0 -199
@@ -0,0 +1,108 @@
1
+ /**
2
+ * 文件类型系统 - 前后端共享
3
+ *
4
+ * 定义通用文件类型、目录结构和 API 响应格式
5
+ * 支持 Markdown、PDF、PPTX、图片等多种文件类型
6
+ */
7
+ /** 文件类型图标映射 */
8
+ export const FILE_TYPE_ICONS = {
9
+ markdown: '📝',
10
+ pdf: '📄',
11
+ presentation: '📊',
12
+ image: '🖼️',
13
+ all: '📁',
14
+ };
15
+ /** 文件类型标签映射 */
16
+ export const FILE_TYPE_LABELS = {
17
+ markdown: 'Markdown',
18
+ pdf: 'PDF',
19
+ presentation: 'Presentation',
20
+ image: 'Image',
21
+ all: 'All Files',
22
+ };
23
+ /** 文件扩展名到分类的映射 */
24
+ export const EXT_TO_CATEGORY = {
25
+ '.md': 'markdown',
26
+ '.markdown': 'markdown',
27
+ '.pdf': 'pdf',
28
+ '.pptx': 'presentation',
29
+ '.ppt': 'presentation',
30
+ '.png': 'image',
31
+ '.jpg': 'image',
32
+ '.jpeg': 'image',
33
+ '.gif': 'image',
34
+ '.webp': 'image',
35
+ '.svg': 'image',
36
+ '.bmp': 'image',
37
+ '.ico': 'image',
38
+ };
39
+ /** MIME 类型映射 */
40
+ export const FILE_MIME_TYPES = {
41
+ '.md': 'text/markdown',
42
+ '.markdown': 'text/markdown',
43
+ '.pdf': 'application/pdf',
44
+ '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
45
+ '.ppt': 'application/vnd.ms-powerpoint',
46
+ '.png': 'image/png',
47
+ '.jpg': 'image/jpeg',
48
+ '.jpeg': 'image/jpeg',
49
+ '.gif': 'image/gif',
50
+ '.webp': 'image/webp',
51
+ '.svg': 'image/svg+xml',
52
+ '.bmp': 'image/bmp',
53
+ '.ico': 'image/x-icon',
54
+ };
55
+ /** 支持的文件扩展名列表 */
56
+ export const SUPPORTED_EXTENSIONS = Object.keys(EXT_TO_CATEGORY);
57
+ /** 图片扩展名列表 */
58
+ export const IMAGE_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg', '.bmp', '.ico'];
59
+ /** 文档扩展名列表(支持预览的) */
60
+ export const PREVIEWABLE_EXTENSIONS = ['.md', '.markdown', '.pdf', '.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg', '.bmp', '.ico'];
61
+ /** 可转换为 PDF 的扩展名 */
62
+ export const CONVERTIBLE_TO_PDF = ['.pptx', '.ppt'];
63
+ /**
64
+ * 获取文件分类
65
+ * @param filename - 文件名
66
+ * @returns 文件分类
67
+ */
68
+ export function getFileCategory(filename) {
69
+ const ext = filename.toLowerCase().slice(filename.lastIndexOf('.'));
70
+ return EXT_TO_CATEGORY[ext] ?? 'all';
71
+ }
72
+ /**
73
+ * 获取文件 MIME 类型
74
+ * @param filename - 文件名
75
+ * @returns MIME 类型
76
+ */
77
+ export function getFileMimeType(filename) {
78
+ const ext = filename.toLowerCase().slice(filename.lastIndexOf('.'));
79
+ return FILE_MIME_TYPES[ext] ?? 'application/octet-stream';
80
+ }
81
+ /**
82
+ * 检查文件是否可预览
83
+ * @param filename - 文件名
84
+ * @returns 是否可预览
85
+ */
86
+ export function isPreviewable(filename) {
87
+ const ext = filename.toLowerCase().slice(filename.lastIndexOf('.'));
88
+ return PREVIEWABLE_EXTENSIONS.includes(ext);
89
+ }
90
+ /**
91
+ * 检查文件是否可转换为 PDF
92
+ * @param filename - 文件名
93
+ * @returns 是否可转换
94
+ */
95
+ export function isConvertibleToPdf(filename) {
96
+ const ext = filename.toLowerCase().slice(filename.lastIndexOf('.'));
97
+ return CONVERTIBLE_TO_PDF.includes(ext);
98
+ }
99
+ /**
100
+ * 检查文件是否为图片
101
+ * @param filename - 文件名
102
+ * @returns 是否为图片
103
+ */
104
+ export function isImage(filename) {
105
+ const ext = filename.toLowerCase().slice(filename.lastIndexOf('.'));
106
+ return IMAGE_EXTENSIONS.includes(ext);
107
+ }
108
+ //# sourceMappingURL=file-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-types.js","sourceRoot":"","sources":["../../shared/file-types.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export * from './constants.js';
3
3
  export * from './instance.js';
4
4
  export * from './defaults.js';
5
5
  export * from './notification-types.js';
6
+ export * from './file-types.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
@@ -3,4 +3,5 @@ export * from './constants.js';
3
3
  export * from './instance.js';
4
4
  export * from './defaults.js';
5
5
  export * from './notification-types.js';
6
+ export * from './file-types.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
@@ -11,6 +11,8 @@ export interface InstanceInfo {
11
11
  clientCount?: number;
12
12
  /** 创建时的 Claude 参数(可选,包含 --settings 等) */
13
13
  claudeArgs?: string[];
14
+ /** 使用的 CLI 命令(claude 或 cfuse) */
15
+ claudeCommand?: string;
14
16
  }
15
17
  export interface InstanceListItem extends InstanceInfo {
16
18
  isCurrent: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../shared/instance.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,+BAA+B;AAC/B,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../shared/instance.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iCAAiC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,+BAA+B;AAC/B,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../shared/instance.ts"],"names":[],"mappings":"AAmBA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,+BAA+B;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../shared/instance.ts"],"names":[],"mappings":"AAqBA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,+BAA+B;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC"}
@@ -38,4 +38,4 @@
38
38
 
39
39
  Outdated base version: https://github.com/primer/github-syntax-dark
40
40
  Current colors taken from GitHub's CSS
41
- */.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.markdown-body{-webkit-overflow-scrolling:touch}.markdown-body pre{overflow-x:auto;max-width:100%}.markdown-body table{display:block;overflow-x:auto;max-width:100%}@media(max-width:768px){.toc-fab{display:flex!important}.toc-drawer{display:block!important}.toc-sidebar{display:none!important}}@media(min-width:769px){.toc-fab,.toc-drawer{display:none!important}.toc-sidebar{display:block!important}.viewer-content{margin-right:260px}}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.6;color:var(--text-primary);word-wrap:break-word}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.25;scroll-margin-top:4rem;text-wrap:pretty}.markdown-body h1{font-size:1.75rem;padding-bottom:.3em;border-bottom:1px solid var(--border-color)}.markdown-body h2{font-size:1.5rem;padding-bottom:.3em;border-bottom:1px solid var(--border-color)}.markdown-body h3{font-size:1.25rem}.markdown-body h4{font-size:1rem}.markdown-body h5{font-size:.875rem}.markdown-body h6{font-size:.85em;color:var(--text-secondary)}.markdown-body p{margin:1em 0}.markdown-body a{color:var(--accent-color);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.markdown-body a:hover{text-decoration:underline}.markdown-body ul,.markdown-body ol{margin:1em 0;padding-left:2em}.markdown-body li{margin:.25em 0}.markdown-body li+li{margin-top:.25em}.markdown-body blockquote{margin:1em 0;padding:1em 1.25em;border-left:4px solid var(--accent-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:0 .5rem .5rem 0}.markdown-body blockquote p{margin:0}.markdown-body blockquote p+p{margin-top:.5em}.markdown-body code{padding:.2em .4em;background:var(--bg-secondary);border-radius:.25rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875em}.markdown-body pre{margin:1em 0;padding:1em;background:var(--bg-secondary);border-radius:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.markdown-body pre code{padding:0;background:none;font-size:.875rem;line-height:1.45}.markdown-body table{margin:1em 0;border-collapse:collapse;width:100%;overflow:auto;display:block;-webkit-overflow-scrolling:touch}.markdown-body table th,.markdown-body table td{padding:.5em .75em;border:1px solid var(--border-color)}.markdown-body table th{font-weight:600;background:var(--bg-secondary)}.markdown-body table tr:nth-child(2n){background:var(--bg-secondary)}.hljs{background:transparent!important;padding:0!important}.markdown-body input[type=checkbox]{margin-right:.5em;vertical-align:middle;width:18px;height:18px;min-width:18px;min-height:18px;cursor:pointer}.markdown-body img{max-width:100%;height:auto;border-radius:.5rem;box-shadow:0 2px 8px #0000001a;transition:opacity .2s ease,box-shadow .2s ease}.markdown-body img:hover{box-shadow:0 4px 16px #00000026}.markdown-body img[src=""]{display:none}.markdown-body hr{margin:2em 0;border:none;border-top:1px solid var(--border-color)}.markdown-body del{color:var(--text-secondary)}@media(max-width:768px){.markdown-body{font-size:16px;line-height:1.75}.markdown-body p{margin:1.25em 0}.markdown-body h1{font-size:1.5rem}.markdown-body h2{font-size:1.375rem}.markdown-body h3{font-size:1.125rem}.markdown-body ul,.markdown-body ol{padding-left:1.5em}.markdown-body pre{padding:.875em;font-size:.8125rem}.markdown-body code{font-size:.8125em}.markdown-body blockquote{padding:.875em 1em}.markdown-body table{font-size:.875rem}.markdown-body table th,.markdown-body table td{padding:.375em .5em}}@media(prefers-reduced-motion:reduce){.markdown-body img,.markdown-body a,.markdown-body *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.image-preview-trigger{cursor:pointer}@supports (padding-top: env(safe-area-inset-top)){.markdown-body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}.markdown-body span[style*="color:"],.markdown-body font[color]{display:inline}.markdown-body sub,.markdown-body sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}.markdown-body sup{top:-.5em}.markdown-body sub{bottom:-.25em}.markdown-body mark{background-color:#ffd7004d;padding:.125em .25em;border-radius:.125rem}.markdown-body br{display:block;content:"";margin-top:.5em}:root{color-scheme:dark;--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-overlay: rgba(0, 0, 0, .6);--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #484f58;--border-color: #30363d;--status-idle: #3fb950;--status-running: #58a6ff;--status-waiting: #d29922;--status-error: #f85149;--status-disconnected: #8b949e;--approve-bg: #238636;--approve-hover: #2ea043;--reject-bg: #da3633;--reject-hover: #f85149;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--statusbar-height: 44px;--inputbar-height: 56px;--min-touch-target: 44px;--keybar-height: 48px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--app-height: 100dvh;--content-inline-padding: 12px;--content-inline-padding-tablet: 16px;--bottom-interactive-inset: var(--safe-bottom);--font-mono: "JetBrains Mono", "Menlo", "Monaco", "Courier New", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:var(--app-height);width:100%;overflow:hidden;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}@supports not (height: 100dvh){:root{--app-height: 100vh}}body{padding-left:var(--safe-left);padding-right:var(--safe-right)}@media(min-width:768px){:root{--content-inline-padding: var(--content-inline-padding-tablet)}}button,input,label,nav{-webkit-user-select:none;user-select:none}input{font-family:inherit;font-size:16px}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;color:inherit}.app-toast{position:fixed;left:50%;bottom:calc(16px + var(--safe-bottom));transform:translate(-50%);z-index:2000;padding:8px 12px;border-radius:8px;background:#111827eb;color:#fff;font-size:13px;line-height:1.4;white-space:nowrap}.app-toast-top{top:calc(var(--safe-top) + 8px);bottom:auto}.focus-ring:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px #58a6ff}.perm-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:opacity .1s,background .1s}.perm-btn:hover{opacity:.85}.perm-btn:active{opacity:.7}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}input:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px #58a6ff}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.xterm-helper-textarea{pointer-events:none;-webkit-user-select:none;user-select:none}.xterm{height:100%;width:100%}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%) translateY(10px)}10%{opacity:1;transform:translate(-50%) translateY(0)}90%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-10px)}}
41
+ */.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.markdown-body{-webkit-overflow-scrolling:touch}.markdown-body pre{overflow-x:auto;max-width:100%}.markdown-body table{display:block;overflow-x:auto;max-width:100%}@media(max-width:768px){.toc-fab{display:flex!important}.toc-drawer{display:block!important}.toc-sidebar{display:none!important}}@media(min-width:769px){.toc-fab,.toc-drawer{display:none!important}.toc-sidebar{display:block!important}.viewer-content{margin-right:260px}}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.6;color:var(--text-primary);word-wrap:break-word}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.25;scroll-margin-top:4rem;text-wrap:pretty}.markdown-body h1{font-size:1.75rem;padding-bottom:.3em;border-bottom:1px solid var(--border-color)}.markdown-body h2{font-size:1.5rem;padding-bottom:.3em;border-bottom:1px solid var(--border-color)}.markdown-body h3{font-size:1.25rem}.markdown-body h4{font-size:1rem}.markdown-body h5{font-size:.875rem}.markdown-body h6{font-size:.85em;color:var(--text-secondary)}.markdown-body p{margin:1em 0}.markdown-body a{color:var(--accent-color);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.markdown-body a:hover{text-decoration:underline}.markdown-body ul,.markdown-body ol{margin:1em 0;padding-left:2em}.markdown-body li{margin:.25em 0}.markdown-body li+li{margin-top:.25em}.markdown-body blockquote{margin:1em 0;padding:1em 1.25em;border-left:4px solid var(--accent-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:0 .5rem .5rem 0}.markdown-body blockquote p{margin:0}.markdown-body blockquote p+p{margin-top:.5em}.markdown-body code{padding:.2em .4em;background:var(--bg-secondary);border-radius:.25rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875em}.markdown-body pre{margin:1em 0;padding:1em;background:var(--bg-secondary);border-radius:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.markdown-body pre code{padding:0;background:none;font-size:.875rem;line-height:1.45}.markdown-body table{margin:1em 0;border-collapse:collapse;width:100%;overflow:auto;display:block;-webkit-overflow-scrolling:touch}.markdown-body table th,.markdown-body table td{padding:.5em .75em;border:1px solid var(--border-color)}.markdown-body table th{font-weight:600;background:var(--bg-secondary)}.markdown-body table tr:nth-child(2n){background:var(--bg-secondary)}.hljs{background:transparent!important;padding:0!important}.markdown-body input[type=checkbox]{margin-right:.5em;vertical-align:middle;width:18px;height:18px;min-width:18px;min-height:18px;cursor:pointer}.markdown-body img{max-width:100%;height:auto;border-radius:.5rem;box-shadow:0 2px 8px #0000001a;transition:opacity .2s ease,box-shadow .2s ease}.markdown-body img:hover{box-shadow:0 4px 16px #00000026}.markdown-body img[src=""]{display:none}.markdown-body hr{margin:2em 0;border:none;border-top:1px solid var(--border-color)}.markdown-body del{color:var(--text-secondary)}@media(max-width:768px){.markdown-body{font-size:16px;line-height:1.75}.markdown-body p{margin:1.25em 0}.markdown-body h1{font-size:1.5rem}.markdown-body h2{font-size:1.375rem}.markdown-body h3{font-size:1.125rem}.markdown-body ul,.markdown-body ol{padding-left:1.5em}.markdown-body pre{padding:.875em;font-size:.8125rem}.markdown-body code{font-size:.8125em}.markdown-body blockquote{padding:.875em 1em}.markdown-body table{font-size:.875rem}.markdown-body table th,.markdown-body table td{padding:.375em .5em}}@media(prefers-reduced-motion:reduce){.markdown-body img,.markdown-body a,.markdown-body *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.image-preview-trigger{cursor:pointer}@supports (padding-top: env(safe-area-inset-top)){.markdown-body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}.markdown-body span[style*="color:"],.markdown-body font[color]{display:inline}.markdown-body sub,.markdown-body sup{font-size:.75em;line-height:0;position:relative;vertical-align:baseline}.markdown-body sup{top:-.5em}.markdown-body sub{bottom:-.25em}.markdown-body mark{background-color:#ffd7004d;padding:.125em .25em;border-radius:.125rem}.markdown-body br{display:block;content:"";margin-top:.5em}:root{color-scheme:dark;--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-overlay: rgba(0, 0, 0, .6);--text-primary: #e6edf3;--text-secondary: #8b949e;--text-muted: #484f58;--border-color: #30363d;--status-idle: #3fb950;--status-running: #58a6ff;--status-waiting: #d29922;--status-error: #f85149;--status-disconnected: #8b949e;--approve-bg: #238636;--approve-hover: #2ea043;--reject-bg: #da3633;--reject-hover: #f85149;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--statusbar-height: 44px;--inputbar-height: 56px;--min-touch-target: 44px;--keybar-height: 48px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--app-height: 100dvh;--content-inline-padding: 12px;--content-inline-padding-tablet: 16px;--bottom-interactive-inset: var(--safe-bottom);--font-mono: "JetBrains Mono", "Menlo", "Monaco", "Courier New", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:var(--app-height);width:100%;overflow:hidden;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}@supports not (height: 100dvh){:root{--app-height: 100vh}}body{padding-left:var(--safe-left);padding-right:var(--safe-right)}@media(min-width:768px){:root{--content-inline-padding: var(--content-inline-padding-tablet)}}button,input,label,nav{-webkit-user-select:none;user-select:none}input{font-family:inherit;font-size:16px}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;color:inherit}.app-toast{position:fixed;left:50%;bottom:calc(16px + var(--safe-bottom));transform:translate(-50%);z-index:2000;padding:8px 12px;border-radius:8px;background:#111827eb;color:#fff;font-size:13px;line-height:1.4;white-space:nowrap}.app-toast-top{top:calc(var(--safe-top) + 8px);bottom:auto}.focus-ring:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px #58a6ff}.perm-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:opacity .1s,background .1s}.perm-btn:hover{opacity:.85}.perm-btn:active{opacity:.7}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}input:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px #58a6ff}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.xterm-helper-textarea{pointer-events:none;-webkit-user-select:none;user-select:none}.xterm{height:100%;width:100%}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%) translateY(10px)}10%{opacity:1;transform:translate(-50%) translateY(0)}90%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-10px)}}@keyframes fileSelectorSlideIn{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fileSelectorSlideOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}