@panda-agent/panda-cli 0.1.54

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 (176) hide show
  1. package/README.md +192 -0
  2. package/bin/pandacli.mjs +85 -0
  3. package/bundled-preset-commands/README.md +3 -0
  4. package/bundled-preset-commands/init.md +78 -0
  5. package/bundled-preset-skills/.gitkeep +0 -0
  6. package/bundled-preset-skills/README.md +17 -0
  7. package/bundled-preset-skills/docx/.skill-metadata.yaml +208 -0
  8. package/bundled-preset-skills/docx/LICENSE.txt +30 -0
  9. package/bundled-preset-skills/docx/SKILL.md +663 -0
  10. package/bundled-preset-skills/docx/scripts/__init__.py +1 -0
  11. package/bundled-preset-skills/docx/scripts/accept_changes.py +206 -0
  12. package/bundled-preset-skills/docx/scripts/comment.py +442 -0
  13. package/bundled-preset-skills/docx/scripts/office/helpers/__init__.py +1 -0
  14. package/bundled-preset-skills/docx/scripts/office/helpers/merge_runs.py +190 -0
  15. package/bundled-preset-skills/docx/scripts/office/helpers/simplify_redlines.py +185 -0
  16. package/bundled-preset-skills/docx/scripts/office/pack.py +167 -0
  17. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  18. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  19. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  20. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  21. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  22. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  23. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  24. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  25. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  26. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  27. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  28. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  29. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  30. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  31. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  32. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  33. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  34. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  35. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  36. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  37. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  38. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  39. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  40. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  41. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  42. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  43. package/bundled-preset-skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  44. package/bundled-preset-skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  45. package/bundled-preset-skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  46. package/bundled-preset-skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  47. package/bundled-preset-skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  48. package/bundled-preset-skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  49. package/bundled-preset-skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  50. package/bundled-preset-skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  51. package/bundled-preset-skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  52. package/bundled-preset-skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  53. package/bundled-preset-skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  54. package/bundled-preset-skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  55. package/bundled-preset-skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  56. package/bundled-preset-skills/docx/scripts/office/soffice.py +194 -0
  57. package/bundled-preset-skills/docx/scripts/office/unpack.py +145 -0
  58. package/bundled-preset-skills/docx/scripts/office/validate.py +114 -0
  59. package/bundled-preset-skills/docx/scripts/office/validators/__init__.py +16 -0
  60. package/bundled-preset-skills/docx/scripts/office/validators/base.py +733 -0
  61. package/bundled-preset-skills/docx/scripts/office/validators/docx.py +354 -0
  62. package/bundled-preset-skills/docx/scripts/office/validators/pptx.py +230 -0
  63. package/bundled-preset-skills/docx/scripts/office/validators/redlining.py +212 -0
  64. package/bundled-preset-skills/docx/scripts/templates/comments.xml +3 -0
  65. package/bundled-preset-skills/docx/scripts/templates/commentsExtended.xml +3 -0
  66. package/bundled-preset-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  67. package/bundled-preset-skills/docx/scripts/templates/commentsIds.xml +3 -0
  68. package/bundled-preset-skills/docx/scripts/templates/people.xml +3 -0
  69. package/bundled-preset-skills/frontend-design/LICENSE.txt +177 -0
  70. package/bundled-preset-skills/frontend-design/SKILL.md +42 -0
  71. package/bundled-preset-skills/pdf/.skill-metadata.yaml +273 -0
  72. package/bundled-preset-skills/pdf/LICENSE.txt +30 -0
  73. package/bundled-preset-skills/pdf/SKILL.md +324 -0
  74. package/bundled-preset-skills/pdf/advanced-reference.md +609 -0
  75. package/bundled-preset-skills/pdf/form-filling-guide.md +318 -0
  76. package/bundled-preset-skills/pdf/forms.md +294 -0
  77. package/bundled-preset-skills/pdf/reference.md +612 -0
  78. package/bundled-preset-skills/pdf/scripts/check_bounding_boxes.py +198 -0
  79. package/bundled-preset-skills/pdf/scripts/check_fillable_fields.py +64 -0
  80. package/bundled-preset-skills/pdf/scripts/convert_pdf_to_images.py +102 -0
  81. package/bundled-preset-skills/pdf/scripts/create_validation_image.py +125 -0
  82. package/bundled-preset-skills/pdf/scripts/extract_form_field_info.py +220 -0
  83. package/bundled-preset-skills/pdf/scripts/extract_form_structure.py +202 -0
  84. package/bundled-preset-skills/pdf/scripts/fill_fillable_fields.py +205 -0
  85. package/bundled-preset-skills/pdf/scripts/fill_pdf_form_with_annotations.py +193 -0
  86. package/bundled-preset-skills/pptx-generator/SKILL.md +204 -0
  87. package/bundled-preset-skills/pptx-generator/assets/styles/business.json +8 -0
  88. package/bundled-preset-skills/pptx-generator/assets/styles/minimal.json +8 -0
  89. package/bundled-preset-skills/pptx-generator/assets/styles/modern.json +8 -0
  90. package/bundled-preset-skills/pptx-generator/assets/templates/ppt_data_template.json +40 -0
  91. package/bundled-preset-skills/pptx-generator/references/collaboration_guide.md +381 -0
  92. package/bundled-preset-skills/pptx-generator/references/json_format_spec.md +215 -0
  93. package/bundled-preset-skills/pptx-generator/references/layout_guide.md +290 -0
  94. package/bundled-preset-skills/pptx-generator/scripts/json_validator.py +194 -0
  95. package/bundled-preset-skills/pptx-generator/scripts/pptx_builder.py +340 -0
  96. package/bundled-preset-skills/pptx-generator/scripts/pptx_validator.py +162 -0
  97. package/bundled-preset-skills/skill-creator/LICENSE.txt +202 -0
  98. package/bundled-preset-skills/skill-creator/SKILL.md +479 -0
  99. package/bundled-preset-skills/skill-creator/agents/analyzer.md +274 -0
  100. package/bundled-preset-skills/skill-creator/agents/comparator.md +202 -0
  101. package/bundled-preset-skills/skill-creator/agents/grader.md +223 -0
  102. package/bundled-preset-skills/skill-creator/assets/eval_review.html +146 -0
  103. package/bundled-preset-skills/skill-creator/eval-viewer/generate_review.py +471 -0
  104. package/bundled-preset-skills/skill-creator/eval-viewer/viewer.html +1325 -0
  105. package/bundled-preset-skills/skill-creator/references/schemas.md +430 -0
  106. package/bundled-preset-skills/skill-creator/scripts/__init__.py +0 -0
  107. package/bundled-preset-skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  108. package/bundled-preset-skills/skill-creator/scripts/generate_report.py +326 -0
  109. package/bundled-preset-skills/skill-creator/scripts/improve_description.py +248 -0
  110. package/bundled-preset-skills/skill-creator/scripts/package_skill.py +136 -0
  111. package/bundled-preset-skills/skill-creator/scripts/quick_validate.py +103 -0
  112. package/bundled-preset-skills/skill-creator/scripts/run_eval.py +310 -0
  113. package/bundled-preset-skills/skill-creator/scripts/run_loop.py +332 -0
  114. package/bundled-preset-skills/skill-creator/scripts/utils.py +47 -0
  115. package/bundled-preset-skills/update-config/SKILL.md +71 -0
  116. package/bundled-preset-skills/xlsx/.skill-metadata.yaml +185 -0
  117. package/bundled-preset-skills/xlsx/LICENSE.txt +30 -0
  118. package/bundled-preset-skills/xlsx/SKILL.md +233 -0
  119. package/bundled-preset-skills/xlsx/scripts/office/helpers/__init__.py +1 -0
  120. package/bundled-preset-skills/xlsx/scripts/office/helpers/merge_runs.py +226 -0
  121. package/bundled-preset-skills/xlsx/scripts/office/helpers/simplify_redlines.py +198 -0
  122. package/bundled-preset-skills/xlsx/scripts/office/pack.py +162 -0
  123. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  124. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  125. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  126. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  127. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  128. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  129. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  130. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  131. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  132. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  133. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  134. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  135. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  136. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  137. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  138. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  139. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  140. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  141. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  142. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  143. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  144. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  145. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  146. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  147. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  148. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  149. package/bundled-preset-skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  150. package/bundled-preset-skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  151. package/bundled-preset-skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  152. package/bundled-preset-skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  153. package/bundled-preset-skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  154. package/bundled-preset-skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
  155. package/bundled-preset-skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  156. package/bundled-preset-skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  157. package/bundled-preset-skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  158. package/bundled-preset-skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  159. package/bundled-preset-skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  160. package/bundled-preset-skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  161. package/bundled-preset-skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  162. package/bundled-preset-skills/xlsx/scripts/office/soffice.py +185 -0
  163. package/bundled-preset-skills/xlsx/scripts/office/unpack.py +146 -0
  164. package/bundled-preset-skills/xlsx/scripts/office/validate.py +108 -0
  165. package/bundled-preset-skills/xlsx/scripts/office/validators/__init__.py +13 -0
  166. package/bundled-preset-skills/xlsx/scripts/office/validators/base.py +800 -0
  167. package/bundled-preset-skills/xlsx/scripts/office/validators/docx.py +383 -0
  168. package/bundled-preset-skills/xlsx/scripts/office/validators/pptx.py +250 -0
  169. package/bundled-preset-skills/xlsx/scripts/office/validators/redlining.py +229 -0
  170. package/bundled-preset-skills/xlsx/scripts/recalc.py +296 -0
  171. package/dist/panda-cli-ink.bundle.mjs +1 -0
  172. package/package.json +149 -0
  173. package/scripts/dedupe-react-for-cli.mjs +29 -0
  174. package/vendor/panda-ink/dist/devtools-CY9bUfXJ.js +9 -0
  175. package/vendor/panda-ink/dist/index.js +8603 -0
  176. package/vendor/panda-ink/package.json +56 -0
package/README.md ADDED
@@ -0,0 +1,192 @@
1
+ # 智能化办公 - Dify 独立前端
2
+
3
+ 基于 Next.js 15 和 Dify 后端 API 的独立前端应用,提供类似 NotebookLM 的三栏布局界面。
4
+
5
+ ## 项目结构
6
+
7
+ ```
8
+ src/
9
+ ├── app/ # Next.js App Router
10
+ │ ├── (auth)/ # 认证相关页面
11
+ │ │ ├── signin/ # 登录页
12
+ │ │ └── signup/ # 注册页
13
+ │ ├── (main)/ # 主应用布局(三栏)
14
+ │ │ ├── layout.tsx # 三栏布局
15
+ │ │ ├── page.tsx # 首页(聊天)
16
+ │ │ ├── conversations/ # 会话管理
17
+ │ │ ├── datasets/ # 知识库管理
18
+ │ │ └── notebooks/ # 笔记管理
19
+ │ ├── layout.tsx # 根布局
20
+ │ ├── providers.tsx # React Query Provider
21
+ │ └── globals.css # 全局样式
22
+ ├── components/
23
+ │ ├── ui/ # 基础 UI 组件
24
+ │ │ ├── button.tsx
25
+ │ │ └── input.tsx
26
+ │ ├── layout/ # 布局组件
27
+ │ │ ├── top-nav.tsx # 顶部导航
28
+ │ │ ├── left-sidebar.tsx # 左栏(来源)
29
+ │ │ ├── right-sidebar.tsx# 右栏(Studio)
30
+ │ │ └── status-bar.tsx # 底部状态栏
31
+ │ ├── chat/ # 聊天组件
32
+ │ │ ├── chat-area.tsx
33
+ │ │ ├── message-list.tsx
34
+ │ │ ├── message-item.tsx
35
+ │ │ └── chat-input.tsx
36
+ │ ├── sources/ # 来源管理组件(待实现)
37
+ │ └── studio/ # Studio 工具组件(待实现)
38
+ ├── services/
39
+ │ └── dify-client.ts # Dify API 客户端
40
+ ├── stores/
41
+ │ ├── auth-store.ts # 认证状态 (Zustand)
42
+ │ └── chat-store.ts # 聊天状态 (Zustand)
43
+ ├── hooks/
44
+ │ └── use-chat.ts # 聊天 Hook
45
+ ├── lib/
46
+ │ └── utils.ts # 工具函数
47
+ └── types/
48
+ └── index.ts # TypeScript 类型定义
49
+ ```
50
+
51
+ ## 已完成功能
52
+
53
+ ### 阶段 1: 基础架构 ✅
54
+ - [x] Next.js 15 项目初始化
55
+ - [x] Tailwind CSS 4 + 暗色主题支持
56
+ - [x] Zustand 状态管理
57
+ - [x] TanStack Query 数据缓存
58
+ - [x] TypeScript 类型定义
59
+ - [x] Dify API 客户端封装
60
+
61
+ ### 阶段 2: 认证系统
62
+ - [x] 登录页面
63
+ - [ ] 注册页面
64
+ - [ ] 密码找回
65
+ - [ ] OAuth 登录
66
+
67
+ ### 阶段 3: 三栏布局 ✅
68
+ - [x] 主布局(响应式)
69
+ - [x] 顶部导航栏
70
+ - [x] 左侧边栏(来源管理)
71
+ - [x] 右侧边栏(Studio 工具)
72
+ - [x] 底部状态栏
73
+
74
+ ### 阶段 4: 聊天功能 🟡
75
+ - [x] 聊天区域组件
76
+ - [x] 消息列表
77
+ - [x] 消息项(支持引用)
78
+ - [x] 聊天输入框(支持文件拖放)
79
+ - [x] 流式响应处理
80
+ - [ ] 会话管理(创建/删除/重命名)
81
+ - [ ] 会话历史加载
82
+
83
+ ## 待实现功能
84
+
85
+ ### 阶段 5: 来源管理
86
+ - [ ] 知识库列表和选择
87
+ - [ ] 文件上传组件
88
+ - [ ] 网站链接添加
89
+ - [ ] 来源状态监控
90
+
91
+ ### 阶段 6: 笔记功能
92
+ - [ ] 笔记数据库设计
93
+ - [ ] 笔记 API 服务
94
+ - [ ] 笔记编辑器
95
+ - [ ] 笔记与会话关联
96
+
97
+ ### 阶段 7: Studio 工具
98
+ - [ ] 音频概览(TTS)
99
+ - [ ] 报告生成
100
+ - [ ] 思维导图
101
+ - [ ] 闪卡/测验
102
+
103
+ ### 阶段 8: 优化
104
+ - [ ] 性能优化(长会话渲染、截断策略等)
105
+ - [ ] 错误边界
106
+ - [ ] 加载状态优化
107
+ - [ ] 端到端测试
108
+
109
+ ## 开发指南
110
+
111
+ ### 环境配置
112
+
113
+ 1. 复制 `.env.local.example` 到 `.env.local`
114
+ 2. 配置 Dify 后端 API 地址:
115
+ ```bash
116
+ NEXT_PUBLIC_DIFY_API_URL=http://localhost:5001
117
+ ```
118
+
119
+ ### 启动开发服务器
120
+
121
+ ```bash
122
+ npm run dev
123
+ ```
124
+
125
+ 访问 http://localhost:3000
126
+
127
+ ### 构建生产版本
128
+ ```bash
129
+ npm run build
130
+ npm start
131
+ ```
132
+
133
+ ## API 集成
134
+
135
+ ### Dify API 端点
136
+
137
+ - **认证**: `/console/api/login`, `/console/api/register`
138
+ - **聊天**: `/v1/chat-messages` (支持流式)
139
+ - **会话**: `/v1/conversations`
140
+ - **知识库**: `/console/api/datasets`
141
+
142
+ ### 添加新的 API 调用
143
+
144
+ 在 `src/services/dify-client.ts` 中添加新方法:
145
+
146
+ ```typescript
147
+ async myNewMethod(params: MyParams): Promise<ApiResponse<MyResult>> {
148
+ return this.fetch('/endpoint', {
149
+ method: 'POST',
150
+ body: JSON.stringify(params),
151
+ })
152
+ }
153
+ ```
154
+
155
+ ## 状态管理
156
+
157
+ ### Auth Store
158
+
159
+ ```typescript
160
+ import { useAuthStore } from '@/stores/auth-store'
161
+
162
+ const { user, login, logout } = useAuthStore()
163
+ ```
164
+
165
+ ### Chat Store
166
+
167
+ ```typescript
168
+ import { useChatStore } from '@/stores/chat-store'
169
+
170
+ const { messages, addMessage, updateMessage } = useChatStore()
171
+ ```
172
+
173
+ ## 技术栈
174
+
175
+ - **框架**: Next.js 15 (App Router)
176
+ - **语言**: TypeScript 5
177
+ - **样式**: Tailwind CSS 4
178
+ - **状态管理**: Zustand 5
179
+ - **数据获取**: TanStack Query 5
180
+ - **图标**: Lucide React
181
+ - **UI 组件**: 自研(基于 Shadcn/ui 设计)
182
+
183
+ ## 下一步
184
+
185
+ 1. **完成认证流程** - 注册、密码找回
186
+ 2. **实现会话管理** - 加载历史会话、创建新会话
187
+ 3. **集成知识库** - 来源选择、文件上传
188
+ 4. **完善 Studio 工具** - 音频概览、报告生成
189
+
190
+ ## License
191
+
192
+ MIT
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * 全局/本地安装后的入口:工作目录始终为调用方 shell 的 cwd(默认 spawn 即 process.cwd())。
4
+ * 先 dedupe(仅 vscode monorepo 时删本包内 react)再启动 bundle。
5
+ */
6
+
7
+ import { spawnSync } from 'node:child_process';
8
+ import { existsSync, readFileSync } from 'node:fs';
9
+ import { dirname, join } from 'node:path';
10
+ import { fileURLToPath } from 'node:url';
11
+
12
+ // 修改进程标题,防止 `pkill node` / `killall node` 误杀
13
+ process.title = 'panda-cli';
14
+
15
+ const here = dirname(fileURLToPath(import.meta.url));
16
+ const pkgRoot = join(here, '..');
17
+ const dedupe = join(pkgRoot, 'scripts', 'dedupe-react-for-cli.mjs');
18
+ const bundle = join(pkgRoot, 'dist', 'panda-cli-ink.bundle.mjs');
19
+
20
+ function parseNodeMajor(version) {
21
+ const match = /^v?(\d+)/.exec(version ?? '');
22
+ return match ? Number(match[1]) : 0;
23
+ }
24
+
25
+ function parseEnginesNodeMajor(spec) {
26
+ const match = />=\s*(\d+)/.exec(spec ?? '');
27
+ return match ? Number(match[1]) : 22;
28
+ }
29
+
30
+ function readRequiredNodeMajor() {
31
+ const pkgPath = join(pkgRoot, 'package.json');
32
+ try {
33
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
34
+ return parseEnginesNodeMajor(pkg.engines?.node);
35
+ } catch {
36
+ return 22;
37
+ }
38
+ }
39
+
40
+ function assertNodeVersion() {
41
+ const requiredMajor = readRequiredNodeMajor();
42
+ const currentMajor = parseNodeMajor(process.version);
43
+ if (currentMajor < requiredMajor) {
44
+ console.error(
45
+ `[pandacli] 需要 Node.js >= ${requiredMajor}(package.json engines),当前为 ${process.version}。\n` +
46
+ `请安装 Node ${requiredMajor} LTS 或更高版本: https://nodejs.org/\n` +
47
+ '安装后请重新打开终端,执行 node -v 确认版本后再运行 panda。',
48
+ );
49
+ process.exit(1);
50
+ }
51
+ }
52
+
53
+ assertNodeVersion();
54
+
55
+ if (!existsSync(bundle)) {
56
+ console.error(
57
+ '[pandacli] 缺少 dist/panda-cli-ink.bundle.mjs。请在 panda-cli 目录执行: npm run vendor:panda-ink && npm run build,或重新安装/打包容器。',
58
+ );
59
+ process.exit(1);
60
+ }
61
+
62
+ const dedupeResult = spawnSync(process.execPath, [dedupe], {
63
+ stdio: 'inherit',
64
+ cwd: pkgRoot,
65
+ env: process.env,
66
+ });
67
+ if (dedupeResult.status !== 0) {
68
+ process.exit(dedupeResult.status === null ? 1 : dedupeResult.status);
69
+ }
70
+
71
+ const run = spawnSync(
72
+ process.execPath,
73
+ [
74
+ '--max-old-space-size=16384',
75
+ '--disable-warning=ExperimentalWarning', // node:sqlite 实验性 API
76
+ bundle,
77
+ ...process.argv.slice(2),
78
+ ],
79
+ {
80
+ stdio: 'inherit',
81
+ cwd: process.cwd(),
82
+ env: process.env,
83
+ },
84
+ );
85
+ process.exit(run.status ?? (run.signal ? 1 : 0));
@@ -0,0 +1,3 @@
1
+ # Preset slash commands (SSOT)
2
+
3
+ One command per `*.md` file. Synced to `panda-cli/bundled-preset-commands/` before npm pack.
@@ -0,0 +1,78 @@
1
+ # Initialize Panda project context
2
+
3
+ Set up minimal **CLAUDE.md** (and optionally **CLAUDE.local.md**, **skills**, **hooks**) for this repo. These files load into every Panda session — keep them concise: only include what the model would get wrong without them.
4
+
5
+ ## Phase 1: Ask what to set up
6
+
7
+ Use **ask_question** to learn what the user wants:
8
+
9
+ - **Which instruction files?** Options: "Project CLAUDE.md" | "Personal CLAUDE.local.md" | "Both"
10
+ - **Skills and hooks?** Options: "Skills + hooks" | "Skills only" | "Hooks only" | "Neither, just CLAUDE.md"
11
+
12
+ ## Phase 2: Survey the codebase
13
+
14
+ Launch a **Task** subagent with `subagent_type: Explore` to read: manifest files (package.json, Cargo.toml, pyproject.toml, go.mod, etc.), README, Makefile, CI config, existing CLAUDE.md / AGENTS.md, `.panda/`, `.cursor/rules`, `.github/copilot-instructions.md`.
15
+
16
+ Detect: build/test/lint commands, languages, monorepo layout, formatters, existing `.panda/skills/` and `.panda/rules/`.
17
+
18
+ ## Phase 3: Gap fill + proposal
19
+
20
+ Use **ask_question** for team practices and personal preferences the code cannot answer.
21
+
22
+ Synthesize a proposal (hook | skill | CLAUDE.md note), **filtered by Phase 1 choice**. Use each option's **preview** field (Markdown) to show the full proposal — keep previews compact (one line per item).
23
+
24
+ ## Phase 4: Write CLAUDE.md (if chosen)
25
+
26
+ Write minimal `CLAUDE.md` at project root. Prefix:
27
+
28
+ ```
29
+ # CLAUDE.md
30
+
31
+ This file provides guidance to Panda when working with code in this repository.
32
+ ```
33
+
34
+ Include only: non-obvious commands, style rules that differ from defaults, test quirks, env setup, gotchas. Exclude file trees and generic advice. If CLAUDE.md exists: propose diffs, do not overwrite silently.
35
+
36
+ Suggest `.panda/rules/*.md` for large projects (unconditional rules) or scoped rules with frontmatter:
37
+
38
+ ```yaml
39
+ ---
40
+ paths:
41
+ - "src/**/*.ts"
42
+ ---
43
+ ```
44
+
45
+ ## Phase 5: Write CLAUDE.local.md (if chosen)
46
+
47
+ Write `CLAUDE.local.md`, add `CLAUDE.local.md` to `.gitignore`. Personal sandbox URLs, role, communication preferences only.
48
+
49
+ ## Phase 6: Create skills (if chosen)
50
+
51
+ Create `.panda/skills/<name>/SKILL.md` (or `.claude/skills/` for Claude-compat):
52
+
53
+ ```yaml
54
+ ---
55
+ name: <skill-name>
56
+ description: <when to use>
57
+ ---
58
+ ```
59
+
60
+ Side-effect skills (deploy, etc.): add `disable-model-invocation: true` in frontmatter if supported.
61
+
62
+ ## Phase 7: Hooks + environment (if chosen)
63
+
64
+ Write hooks to `.panda/settings.json` (team) or `.panda/settings.local.json` (personal).
65
+
66
+ Before first hook: invoke **use_skill** with `update-config` and args `[hooks-only] <one-line summary>`.
67
+
68
+ **Live proof (Phase 7)**: after writing `.panda/settings.json`, run one matching tool (e.g. save a file for `Write|Edit` PostToolUse) in the **same session** and verify the hook command executed. Hook scripts should read `tool_input.file_path` from stdin JSON (`jq -r '.tool_input.file_path'`) or use env `$FILE_PATH`.
69
+
70
+ Examples:
71
+ - Format on edit: `PostToolUse` matcher `Write|Edit`
72
+ - Before review: `Stop` event
73
+
74
+ Check `which gh`; offer lint setup if missing.
75
+
76
+ ## Phase 8: Summary
77
+
78
+ Recap files written. Recommend: `/skill-creator`, `/skills`, MCP setup, verification subagent.
File without changes
@@ -0,0 +1,17 @@
1
+ # Preset skills (SSOT)
2
+
3
+ Place one skill per subdirectory. Each subdirectory must contain `SKILL.md`.
4
+
5
+ Example:
6
+
7
+ ```text
8
+ panda-resources/skills/
9
+ my-skill/
10
+ SKILL.md
11
+ ```
12
+
13
+ Release builds embed this tree as `bundled-preset-skills/` in CLI / Desktop / IDE packages, then seed into `~/.panda/skills` on first run (skip if `SKILL.md` already exists for that skill name).
14
+
15
+ - CLI: `sync-preset-skills.mjs` → `panda-cli/bundled-preset-skills/` (gitignored) before `npm pack`
16
+ - Desktop: `electron-builder` reads SSOT directly into `Resources/bundled-preset-skills/`
17
+ - IDE: gulp merges into `Resources/bundled-preset-skills/`
@@ -0,0 +1,208 @@
1
+ examples:
2
+ - id: create-official-document
3
+ title:
4
+ zh: 撰写公司公文
5
+ en: Create Official Document (公文)
6
+ description:
7
+ zh: 按公司公文规范生成通知、请示等正式文书
8
+ en: Generate formal official documents per company 公文 standards
9
+ prompt:
10
+ zh: |-
11
+ 请帮我起草一份公司公文(.docx),要求如下:
12
+
13
+ 文种:{{通知 / 请示 / 报告 等}}
14
+ 标题:{{公文标题}}
15
+ 主送单位:{{主送单位名称}}
16
+ 正文要点:
17
+ {{列出正文主要内容或提纲}}
18
+
19
+ 格式须符合公司公文规范:
20
+ - 正文仿宋_GB2312 三号,段首左空二字,回行顶格
21
+ - 结构层次:一、(黑体);(一)(楷体);1.(仿宋);(1)(仿宋),不超过四层
22
+ - 数字、年份不在行中断开
23
+ - 坚持实事求是、准确规范、精简高效、安全保密
24
+
25
+ 请生成完整文稿。
26
+ en: |-
27
+ Please draft a company official document (.docx) with:
28
+
29
+ Type: {{notice / request / report, etc.}}
30
+ Title: {{document title}}
31
+ Primary recipient: {{recipient}}
32
+ Body outline: {{key points}}
33
+
34
+ Format per company 公文 rules: FangSong_GB2312 size 3 body; 2-char first-line indent; structure levels 一、/(一)/1./(1) with Heiti/KaiTi/FangSong fonts; no line breaks inside numbers or years.
35
+
36
+ Generate the full document.
37
+ - id: create-document
38
+ title:
39
+ zh: 创建新文档
40
+ en: Create New Document
41
+ description:
42
+ zh: 创建一个新的 Word 文档,包含指定的内容和格式
43
+ en: Create a new Word document with specified content and formatting
44
+ prompt:
45
+ zh: |-
46
+ 请帮我创建一个专业的 Word 文档,要求如下:
47
+
48
+ 标题:{{项目报告标题}}
49
+ 内容结构:
50
+ 1. 项目概述(200字左右)
51
+ 2. 主要成果(要点列出)
52
+ 3. 数据分析(包含图表说明)
53
+ 4. 结论与建议
54
+
55
+ 格式要求:
56
+ - 使用正式的商务文档样式
57
+ - 标题使用加粗格式
58
+ - 正文使用 12 号字体
59
+ - 添加页眉页脚
60
+ - 生成目录
61
+
62
+ 请根据以上要求生成文档。
63
+ en: |-
64
+ Please help me create a professional Word document with the following requirements:
65
+
66
+ Title: {{Project Report Title}}
67
+ Content structure:
68
+ 1. Project Overview (about 200 words)
69
+ 2. Key Achievements (bullet points)
70
+ 3. Data Analysis (including chart descriptions)
71
+ 4. Conclusion and Recommendations
72
+
73
+ Formatting requirements:
74
+ - Use formal business document style
75
+ - Headers in bold format
76
+ - Body text in 12-point font
77
+ - Add headers and footers
78
+ - Generate table of contents
79
+
80
+ Please generate the document according to the above requirements.
81
+ - id: extract-content
82
+ title:
83
+ zh: 提取文档内容
84
+ en: Extract Document Content
85
+ description:
86
+ zh: 从 Word 文档中提取纯文本内容或特定结构化信息
87
+ en: Extract plain text content or specific structured information from Word documents
88
+ prompt:
89
+ zh: |-
90
+ 请帮我分析这个 Word 文档并提取以下信息:
91
+
92
+ 文档路径:{{文档文件路径}}
93
+
94
+ 需要提取的内容:
95
+ 1. 完整的纯文本内容
96
+ 2. 所有标题和子标题
97
+ 3. 表格数据(如果有)
98
+ 4. 图片描述和位置信息
99
+ 5. 文档的总体结构分析
100
+
101
+ 输出格式:JSON 格式,便于后续处理。
102
+ en: |-
103
+ Please help me analyze this Word document and extract the following information:
104
+
105
+ Document path: {{Document file path}}
106
+
107
+ Content to extract:
108
+ 1. Complete plain text content
109
+ 2. All headings and subheadings
110
+ 3. Table data (if any)
111
+ 4. Image descriptions and position information
112
+ 5. Overall document structure analysis
113
+
114
+ Output format: JSON format for easy subsequent processing.
115
+ - id: convert-format
116
+ title:
117
+ zh: 格式转换
118
+ en: Format Conversion
119
+ description:
120
+ zh: 将 Word 文档转换为其他格式或调整文档格式
121
+ en: Convert Word documents to other formats or adjust document formatting
122
+ prompt:
123
+ zh: |-
124
+ 我需要转换和优化这个 Word 文档:
125
+
126
+ 源文档:{{源文档路径}}
127
+ 目标格式:{{目标格式,如 PDF、HTML 等}}
128
+
129
+ 转换要求:
130
+ 1. 保持原有的格式和布局
131
+ 2. 优化字体和段落间距
132
+ 3. 确保图片清晰度
133
+ 4. 添加水印(可选)
134
+ 5. 设置页面边距和纸张大小
135
+
136
+ 如果是转换为 PDF,请确保:
137
+ - 所有链接可点击
138
+ - 书签结构完整
139
+ - 文件大小适中
140
+
141
+ 请处理并提供转换后的文件。
142
+ en: |-
143
+ I need to convert and optimize this Word document:
144
+
145
+ Source document: {{Source document path}}
146
+ Target format: {{Target format, such as PDF, HTML, etc.}}
147
+
148
+ Conversion requirements:
149
+ 1. Maintain original formatting and layout
150
+ 2. Optimize fonts and paragraph spacing
151
+ 3. Ensure image clarity
152
+ 4. Add watermark (optional)
153
+ 5. Set page margins and paper size
154
+
155
+ If converting to PDF, please ensure:
156
+ - All links are clickable
157
+ - Bookmark structure is complete
158
+ - File size is appropriate
159
+
160
+ Please process and provide the converted file.
161
+ - id: template-fill
162
+ title:
163
+ zh: 模板填充
164
+ en: Template Filling
165
+ description:
166
+ zh: 使用数据自动填充 Word 模板文档
167
+ en: Automatically fill Word template documents with data
168
+ prompt:
169
+ zh: |-
170
+ 请帮我使用以下数据填充 Word 模板:
171
+
172
+ 模板文件:{{模板文件路径}}
173
+ 数据来源:{{JSON数据或表格数据}}
174
+
175
+ 需要替换的占位符:
176
+ - {{姓名}} -> 实际姓名
177
+ - {{日期}} -> 当前日期
178
+ - {{项目名称}} -> 项目名称
179
+ - {{金额}} -> 数值金额
180
+ - {{部门}} -> 部门名称
181
+
182
+ 特殊要求:
183
+ 1. 保持模板原有格式
184
+ 2. 自动计算合计金额(如果有)
185
+ 3. 根据数据动态调整表格行数
186
+ 4. 添加适当的条件格式
187
+
188
+ 请生成填充完成的文档。
189
+ en: |-
190
+ Please help me fill the Word template with the following data:
191
+
192
+ Template file: {{Template file path}}
193
+ Data source: {{JSON data or table data}}
194
+
195
+ Placeholders to replace:
196
+ - {{Name}} -> Actual name
197
+ - {{Date}} -> Current date
198
+ - {{Project Name}} -> Project name
199
+ - {{Amount}} -> Numeric amount
200
+ - {{Department}} -> Department name
201
+
202
+ Special requirements:
203
+ 1. Maintain original template formatting
204
+ 2. Automatically calculate total amounts (if any)
205
+ 3. Dynamically adjust table rows based on data
206
+ 4. Add appropriate conditional formatting
207
+
208
+ Please generate the completed filled document.
@@ -0,0 +1,30 @@
1
+ © 2025 Anthropic, PBC. All rights reserved.
2
+
3
+ LICENSE: Use of these materials (including all code, prompts, assets, files,
4
+ and other components of this Skill) is governed by your agreement with
5
+ Anthropic regarding use of Anthropic's services. If no separate agreement
6
+ exists, use is governed by Anthropic's Consumer Terms of Service or
7
+ Commercial Terms of Service, as applicable:
8
+ https://www.anthropic.com/legal/consumer-terms
9
+ https://www.anthropic.com/legal/commercial-terms
10
+ Your applicable agreement is referred to as the "Agreement." "Services" are
11
+ as defined in the Agreement.
12
+
13
+ ADDITIONAL RESTRICTIONS: Notwithstanding anything in the Agreement to the
14
+ contrary, users may not:
15
+
16
+ - Extract these materials from the Services or retain copies of these
17
+ materials outside the Services
18
+ - Reproduce or copy these materials, except for temporary copies created
19
+ automatically during authorized use of the Services
20
+ - Create derivative works based on these materials
21
+ - Distribute, sublicense, or transfer these materials to any third party
22
+ - Make, offer to sell, sell, or import any inventions embodied in these
23
+ materials
24
+ - Reverse engineer, decompile, or disassemble these materials
25
+
26
+ The receipt, viewing, or possession of these materials does not convey or
27
+ imply any license or right beyond those expressly granted above.
28
+
29
+ Anthropic retains all right, title, and interest in these materials,
30
+ including all copyrights, patents, and other intellectual property rights.