pi-cc-extensions 0.1.1

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 (39) hide show
  1. package/README.md +141 -0
  2. package/assets/readme/context-preview.webp +0 -0
  3. package/assets/readme/context-usage.webp +0 -0
  4. package/assets/readme/hero.svg +101 -0
  5. package/assets/readme/session-reference.webp +0 -0
  6. package/assets/readme/showcase.webp +0 -0
  7. package/extensions/README.md +3 -0
  8. package/extensions/ccstyle-powerline/bash-mode/completion.ts +556 -0
  9. package/extensions/ccstyle-powerline/bash-mode/editor.ts +442 -0
  10. package/extensions/ccstyle-powerline/bash-mode/history.ts +151 -0
  11. package/extensions/ccstyle-powerline/bash-mode/shell-session.ts +286 -0
  12. package/extensions/ccstyle-powerline/bash-mode/transcript.ts +108 -0
  13. package/extensions/ccstyle-powerline/bash-mode/types.ts +59 -0
  14. package/extensions/ccstyle-powerline/colors.ts +69 -0
  15. package/extensions/ccstyle-powerline/context-usage.ts +46 -0
  16. package/extensions/ccstyle-powerline/fixed-editor/cluster.ts +107 -0
  17. package/extensions/ccstyle-powerline/fixed-editor/terminal-split.ts +1317 -0
  18. package/extensions/ccstyle-powerline/git-status.ts +218 -0
  19. package/extensions/ccstyle-powerline/icons.ts +181 -0
  20. package/extensions/ccstyle-powerline/powerline-config.ts +234 -0
  21. package/extensions/ccstyle-powerline/powerline.ts +3150 -0
  22. package/extensions/ccstyle-powerline/presets.ts +109 -0
  23. package/extensions/ccstyle-powerline/render-scheduler.ts +24 -0
  24. package/extensions/ccstyle-powerline/segments.ts +476 -0
  25. package/extensions/ccstyle-powerline/separators.ts +41 -0
  26. package/extensions/ccstyle-powerline/shortcuts.ts +57 -0
  27. package/extensions/ccstyle-powerline/theme.json +26 -0
  28. package/extensions/ccstyle-powerline/theme.ts +241 -0
  29. package/extensions/ccstyle-powerline/types.ts +197 -0
  30. package/extensions/ccstyle-powerline/welcome-dismiss.ts +34 -0
  31. package/extensions/ccstyle-powerline/welcome.ts +611 -0
  32. package/extensions/ccstyle-powerline/working-vibes.ts +695 -0
  33. package/extensions/claude-code-style.ts +987 -0
  34. package/extensions/context.ts +362 -0
  35. package/extensions/session-reference/README.md +28 -0
  36. package/extensions/session-reference/core.test.ts +74 -0
  37. package/extensions/session-reference/core.ts +258 -0
  38. package/extensions/session-reference/index.ts +379 -0
  39. package/package.json +33 -0
package/README.md ADDED
@@ -0,0 +1,141 @@
1
+ <p align="center">
2
+ <img src="./assets/readme/hero.svg" width="100%" alt="pi-cc-extensions:为 Pi 提供 Claude Code 风格界面、上下文洞察和历史 Session 引用">
3
+ </p>
4
+
5
+ <p align="center">
6
+ <a href="#安装"><img alt="Pi package" src="https://img.shields.io/badge/Pi-package-58B7FF?style=flat-square"></a>
7
+ <a href="./package.json"><img alt="Version 0.1.1" src="https://img.shields.io/badge/version-0.1.1-66E3C4?style=flat-square"></a>
8
+ <a href="#兼容性"><img alt="Node.js 22.19 or newer" src="https://img.shields.io/badge/Node.js-%E2%89%A522.19-66E3C4?style=flat-square"></a>
9
+ <a href="./extensions"><img alt="TypeScript extensions" src="https://img.shields.io/badge/TypeScript-extensions-3178C6?style=flat-square"></a>
10
+ </p>
11
+
12
+ <p align="center">
13
+ 为 Pi 补充一套更接近 Claude Code 的终端工作流 · 上下文洞察 · 历史 Session 引用
14
+ </p>
15
+
16
+ ---
17
+
18
+ ## 截图
19
+
20
+ <table>
21
+ <tr>
22
+ <td width="50%" align="center">
23
+ <img src="./assets/readme/showcase.webp" width="100%" alt="Pi 终端中的 Claude Code 风格扩展界面,包含工具调用摘要、Diff 预览和 Powerline 状态栏">
24
+ <br>
25
+ <sub><b>Claude Code 风格界面</b><br>工具调用摘要、Diff 预览与 Powerline 状态栏</sub>
26
+ </td>
27
+ <td width="50%" align="center">
28
+ <img src="./assets/readme/session-reference.webp" width="100%" alt="在 Pi 中通过 @ 补全选择历史 Session">
29
+ <br>
30
+ <sub><b>历史 Session 引用</b><br>通过 @ 补全快速找到并引用历史会话</sub>
31
+ </td>
32
+ </tr>
33
+ <tr>
34
+ <td width="50%" align="center">
35
+ <img src="./assets/readme/context-usage.webp" width="100%" alt="Pi 上下文窗口用量查看器">
36
+ <br>
37
+ <sub><b>上下文用量</b><br>查看 System prompt、Tools、Skills 等占用分布</sub>
38
+ </td>
39
+ <td width="50%" align="center">
40
+ <img src="./assets/readme/context-preview.webp" width="100%" alt="Pi 中展开查看 System Prompt 内容">
41
+ <br>
42
+ <sub><b>上下文预览</b><br>按类别展开查看实际注入的上下文内容</sub>
43
+ </td>
44
+ </tr>
45
+ </table>
46
+
47
+ ## 功能
48
+
49
+ ### Claude Code 风格界面
50
+
51
+ `extensions/claude-code-style.ts` 提供:
52
+
53
+ - Claude Code 风格的工具调用行与结果摘要
54
+ - Powerline 状态栏和工作状态提示
55
+ - Edit / Write 的 Diff 预览
56
+ - 工具结果的折叠与展开
57
+ - `/ccstyle` 配置命令和 `Ctrl+Shift+O` 快捷键
58
+
59
+ 常用命令:
60
+
61
+ ```text
62
+ /ccstyle # 切换开关
63
+ /ccstyle status # 查看状态
64
+ /ccstyle compact # 紧凑摘要
65
+ /ccstyle minimal # 最小化输出
66
+ /ccstyle powerline # 查看 Powerline 预设
67
+ ```
68
+
69
+ ### 上下文窗口查看
70
+
71
+ `extensions/context.ts` 注册 `/context`,展示当前上下文窗口的使用分布,并可进一步预览:
72
+
73
+ - System prompt
74
+ - Tools
75
+ - Context files
76
+ - Skills
77
+ - User / assistant messages
78
+ - Tool results
79
+ - Compaction summaries
80
+
81
+ ### 历史 Session 引用
82
+
83
+ `extensions/session-reference/index.ts` 将历史 Session 接入 `@` 补全:
84
+
85
+ 1. 在提示词中输入 `@`。
86
+ 2. 从 `[Session] ...` 或 `[SubAgent] ...` 补全项中选择要引用的上下文。
87
+ 3. 提交时以 `@session:<session-id>` 引用其当前有效上下文。
88
+
89
+ Session 模糊查询默认显示 3 个候选;若已加载 `pi-subagents`,也可直接引用现有 SubAgent。一次提示词可以引用多个 Session;扩展会自动去重,并限制注入规模以避免上下文无限膨胀。更多细节见 [`extensions/session-reference/README.md`](./extensions/session-reference/README.md)。
90
+
91
+ ## 安装
92
+
93
+ 从 Git 安装指定版本:
94
+
95
+ ```bash
96
+ pi install git:github.com/minuque/pi-cc-extensions@v0.1.0
97
+ ```
98
+
99
+ 安装后启动 Pi,即可使用上述扩展。更新到主分支版本:
100
+
101
+ ```bash
102
+ pi install git:github.com/minuque/pi-cc-extensions
103
+ ```
104
+
105
+ 安装后可以先运行:
106
+
107
+ ```text
108
+ /context
109
+ /ccstyle status
110
+ ```
111
+
112
+ ## 本地开发
113
+
114
+ ```bash
115
+ npm test
116
+ pi -e .
117
+ ```
118
+
119
+ 也可以把当前仓库作为本地 Pi 包安装:
120
+
121
+ ```bash
122
+ pi install /absolute/path/to/pi-cc-extensions
123
+ ```
124
+
125
+ 修改扩展后,在 Pi 中执行:
126
+
127
+ ```text
128
+ /reload
129
+ ```
130
+
131
+ ## 兼容性
132
+
133
+ - Node.js `>=22.19.0`
134
+ - 作为 Pi package 加载,入口由根目录 `package.json` 的 `pi.extensions` 显式声明
135
+
136
+ ## 发布检查
137
+
138
+ ```bash
139
+ npm test
140
+ npm pack --dry-run
141
+ ```
Binary file
@@ -0,0 +1,101 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="400" viewBox="0 0 1200 400" role="img" aria-labelledby="title desc">
2
+ <title id="title">pi-cc-extensions
3
+ </title>
4
+ <desc id="desc">Claude 与 Pi 品牌图标组合连接三项扩展能力:Claude Code 风格界面、上下文洞察和历史 Session 引用。
5
+ </desc>
6
+ <defs>
7
+ <linearGradient id="panel" x1="0" y1="0" x2="1" y2="1">
8
+ <stop offset="0" stop-color="#0D131B"/>
9
+ <stop offset="1" stop-color="#090D12"/>
10
+ </linearGradient>
11
+ </defs>
12
+ <rect width="1200" height="400" rx="28" fill="url(#panel)"/>
13
+ <rect x="1" y="1" width="1198" height="398" rx="27" fill="none" stroke="#263241" stroke-width="2"/>
14
+ <g id="title-block" transform="translate(64 58)" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', sans-serif">
15
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="16" font-weight="600" letter-spacing="1.4">
16
+ <text x="0" y="0" fill="#66E3C4">PI EXTENSION
17
+ </text>
18
+ </g>
19
+ <text x="0" y="82" fill="#F4F7FA" font-size="54" font-weight="750" letter-spacing="-1.5">pi-cc-extensions
20
+ </text>
21
+ <text x="0" y="130" fill="#B8C3CF" font-size="23">让 Pi 工作时表现像 Claude code 🙃
22
+ </text>
23
+ <g transform="translate(0 180)" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="17">
24
+ <rect width="488" height="58" rx="12" fill="#111923" stroke="#2B3948"/>
25
+ <text x="20" y="36" fill="#66E3C4">›
26
+ </text>
27
+ <text x="44" y="36" fill="#F4F7FA">/ccstyle
28
+ </text>
29
+ <text x="155" y="36" fill="#536172">·
30
+ </text>
31
+ <text x="178" y="36" fill="#7CC7FF">/context
32
+ </text>
33
+ <text x="292" y="36" fill="#536172">·
34
+ </text>
35
+ <text x="315" y="36" fill="#F2C879">@session:
36
+ </text>
37
+ <rect x="411" y="22" width="9" height="20" rx="2" fill="#66E3C4"/>
38
+ </g>
39
+ <g transform="translate(0 282)" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="15">
40
+ <circle cx="6" cy="-5" r="6" fill="#66E3C4"/>
41
+ <text x="22" y="0" fill="#8B9AAD">3 EXTENSIONS
42
+ </text>
43
+ <text x="160" y="0" fill="#3B4857">•
44
+ </text>
45
+ <text x="183" y="0" fill="#8B9AAD">TYPESCRIPT
46
+ </text>
47
+ <text x="303" y="0" fill="#3B4857">•
48
+ </text>
49
+ <text x="326" y="0" fill="#8B9AAD">NODE ≥ 22.19
50
+ </text>
51
+ </g>
52
+ </g>
53
+ <g id="extension-map" transform="translate(662 48)" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', sans-serif">
54
+ <g id="claude-pi-mark" transform="translate(0 0)">
55
+ <!-- Official Claude starburst vector; source: Anthropic Claude brand mark. -->
56
+ <path transform="translate(2 2) scale(.34)" fill="#D97757" d="m19.6 66.5 19.7-11 .3-1-.3-.5h-1l-3.3-.2-11.2-.3L14 53l-9.5-.5-2.4-.5L0 49l.2-1.5 2-1.3 2.9.2 6.3.5 9.5.6 6.9.4L38 49.1h1.6l.2-.7-.5-.4-.4-.4L29 41l-10.6-7-5.6-4.1-3-2-1.5-2-.6-4.2 2.7-3 3.7.3.9.2 3.7 2.9 8 6.1L37 36l1.5 1.2.6-.4.1-.3-.7-1.1L33 25l-6-10.4-2.7-4.3-.7-2.6c-.3-1-.4-2-.4-3l3-4.2L28 0l4.2.6L33.8 2l2.6 6 4.1 9.3L47 29.9l2 3.8 1 3.4.3 1h.7v-.5l.5-7.2 1-8.7 1-11.2.3-3.2 1.6-3.8 3-2L61 2.6l2 2.9-.3 1.8-1.1 7.7L59 27.1l-1.5 8.2h.9l1-1.1 4.1-5.4 6.9-8.6 3-3.5L77 13l2.3-1.8h4.3l3.1 4.7-1.4 4.9-4.4 5.6-3.7 4.7-5.3 7.1-3.2 5.7.3.4h.7l12-2.6 6.4-1.1 7.6-1.3 3.5 1.6.4 1.6-1.4 3.4-8.2 2-9.6 2-14.3 3.3-.2.1.2.3 6.4.6 2.8.2h6.8l12.6 1 3.3 2 1.9 2.7-.3 2-5.1 2.6-6.8-1.6-16-3.8-5.4-1.3h-.8v.4l4.6 4.5 8.3 7.5L89 80.1l.5 2.4-1.3 2-1.4-.2-9.2-7-3.6-3-8-6.8h-.5v.7l1.8 2.7 9.8 14.7.5 4.5-.7 1.4-2.6 1-2.7-.6-5.8-8-6-9-4.7-8.2-.5.4-2.9 30.2-1.3 1.5-3 1.2-2.5-2-1.4-3 1.4-6.2 1.6-8 1.3-6.4 1.2-7.9.7-2.6v-.2H49L43 72l-9 12.3-7.2 7.6-1.7.7-3-1.5.3-2.8L24 86l10-12.8 6-7.9 4-4.6-.1-.5h-.3L17.2 77.4l-4.7.6-2-2 .2-3 1-1 8-5.5Z"/>
57
+ <path d="M50 3V35" stroke="#3A4857" stroke-width="2"/>
58
+ <!-- Official Pi logo vectors; source: https://pi.dev/logo-auto.svg -->
59
+ <g transform="translate(52 -5) scale(.06)" fill="#F4F7FA">
60
+ <path fill-rule="evenodd" d="M165.29 165.29H517.36V400H400V517.36H282.65V634.72H165.29ZM282.65 282.65V400H400V282.65Z"/>
61
+ <path d="M517.36 400H634.72V634.72H517.36Z"/>
62
+ </g>
63
+ <text x="104" y="15" fill="#F4F7FA" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="15" font-weight="700" letter-spacing=".8">CLAUDE CODE UX
64
+ </text>
65
+ <text x="104" y="34" fill="#7F8D9C" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="13" letter-spacing="1.2">FOR PI
66
+ </text>
67
+ </g>
68
+ <g transform="translate(0 52)">
69
+ <rect width="474" height="82" rx="14" fill="#101821" stroke="#2C3A48"/>
70
+ <rect width="5" height="82" rx="2.5" fill="#66E3C4"/>
71
+ <text x="26" y="32" fill="#F4F7FA" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18" font-weight="700">/ccstyle
72
+ </text>
73
+ <text x="26" y="59" fill="#8B9AAD" font-size="16">工具摘要 · Diff · 状态栏
74
+ </text>
75
+ <circle cx="438" cy="29" r="9" fill="#66E3C4" opacity=".18"/>
76
+ <path d="M434 29l3 3 6-7" fill="none" stroke="#66E3C4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
77
+ </g>
78
+ <g transform="translate(0 144)">
79
+ <rect width="474" height="82" rx="14" fill="#101821" stroke="#2C3A48"/>
80
+ <rect width="5" height="82" rx="2.5" fill="#7CC7FF"/>
81
+ <text x="26" y="32" fill="#F4F7FA" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18" font-weight="700">/context
82
+ </text>
83
+ <text x="26" y="59" fill="#8B9AAD" font-size="16">用量分布 · 注入内容预览
84
+ </text>
85
+ <g transform="translate(416 23)">
86
+ <rect width="42" height="14" rx="7" fill="#1C2B38"/>
87
+ <rect width="27" height="14" rx="7" fill="#7CC7FF"/>
88
+ </g>
89
+ </g>
90
+ <g transform="translate(0 236)">
91
+ <rect width="474" height="82" rx="14" fill="#101821" stroke="#2C3A48"/>
92
+ <rect width="5" height="82" rx="2.5" fill="#F2C879"/>
93
+ <text x="26" y="32" fill="#F4F7FA" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18" font-weight="700">@session:
94
+ </text>
95
+ <text x="26" y="59" fill="#8B9AAD" font-size="16">历史补全 · 跨会话引用
96
+ </text>
97
+ <text x="431" y="40" fill="#F2C879" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="26">@
98
+ </text>
99
+ </g>
100
+ </g>
101
+ </svg>
Binary file
@@ -0,0 +1,3 @@
1
+ # Extensions
2
+
3
+ 扩展入口由根目录 `package.json` 的 `pi.extensions` 显式声明。辅助模块和测试文件不会被 Pi 当作独立扩展加载。