skyloom 1.13.6 → 1.13.7
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/.github/workflows/ci.yml +36 -36
- package/README.md +220 -159
- package/config/providers.yaml +39 -39
- package/config/skills/api_integrator/SKILL.md +15 -15
- package/config/skills/arch_designer/SKILL.md +13 -13
- package/config/skills/ci_cd_manager/SKILL.md +14 -14
- package/config/skills/code_analysis/SKILL.md +13 -13
- package/config/skills/code_generator/SKILL.md +12 -12
- package/config/skills/code_reviewer/SKILL.md +13 -13
- package/config/skills/content_writer/SKILL.md +14 -14
- package/config/skills/data_transformer/SKILL.md +15 -15
- package/config/skills/document_analysis/SKILL.md +13 -13
- package/config/skills/emotional_companion/SKILL.md +15 -15
- package/config/skills/performance_checker/SKILL.md +14 -14
- package/config/skills/security_auditor/SKILL.md +14 -14
- package/config/skills/self_evolve/SKILL.md +13 -13
- package/config/skills/sys_operator/SKILL.md +15 -15
- package/config/skills/task_planner/SKILL.md +14 -14
- package/config/skills/web_research/SKILL.md +14 -14
- package/config/skills/workflow_designer/SKILL.md +13 -13
- package/dist/agents/dew.js +52 -52
- package/dist/agents/fair.js +84 -84
- package/dist/agents/fog.js +30 -30
- package/dist/agents/frost.js +32 -32
- package/dist/agents/rain.js +32 -32
- package/dist/agents/snow.js +68 -68
- package/dist/cli/commands_md.d.ts +41 -0
- package/dist/cli/commands_md.d.ts.map +1 -0
- package/dist/cli/commands_md.js +140 -0
- package/dist/cli/commands_md.js.map +1 -0
- package/dist/cli/input_macros.d.ts +28 -0
- package/dist/cli/input_macros.d.ts.map +1 -0
- package/dist/cli/input_macros.js +120 -0
- package/dist/cli/input_macros.js.map +1 -0
- package/dist/cli/loom.d.ts +220 -0
- package/dist/cli/loom.d.ts.map +1 -0
- package/dist/cli/loom.js +1094 -0
- package/dist/cli/loom.js.map +1 -0
- package/dist/cli/loom_chat.d.ts +20 -0
- package/dist/cli/loom_chat.d.ts.map +1 -0
- package/dist/cli/loom_chat.js +685 -0
- package/dist/cli/loom_chat.js.map +1 -0
- package/dist/cli/main.js +310 -14
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/tui.d.ts.map +1 -1
- package/dist/cli/tui.js +7 -1
- package/dist/cli/tui.js.map +1 -1
- package/dist/core/agent.d.ts +17 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +173 -7
- package/dist/core/agent.js.map +1 -1
- package/dist/core/factory.d.ts.map +1 -1
- package/dist/core/factory.js +34 -2
- package/dist/core/factory.js.map +1 -1
- package/dist/core/file_checkpoint.d.ts +57 -0
- package/dist/core/file_checkpoint.d.ts.map +1 -0
- package/dist/core/file_checkpoint.js +162 -0
- package/dist/core/file_checkpoint.js.map +1 -0
- package/dist/core/hooks.d.ts +43 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +110 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/llm.d.ts.map +1 -1
- package/dist/core/llm.js +15 -9
- package/dist/core/llm.js.map +1 -1
- package/dist/core/longdoc.js +5 -5
- package/dist/core/mcp.d.ts +16 -0
- package/dist/core/mcp.d.ts.map +1 -1
- package/dist/core/mcp.js +55 -0
- package/dist/core/mcp.js.map +1 -1
- package/dist/core/model_config.d.ts +40 -0
- package/dist/core/model_config.d.ts.map +1 -0
- package/dist/core/model_config.js +191 -0
- package/dist/core/model_config.js.map +1 -0
- package/dist/core/skill.d.ts +7 -0
- package/dist/core/skill.d.ts.map +1 -1
- package/dist/core/skill.js +47 -0
- package/dist/core/skill.js.map +1 -1
- package/dist/core/skymd.d.ts +39 -0
- package/dist/core/skymd.d.ts.map +1 -0
- package/dist/core/skymd.js +177 -0
- package/dist/core/skymd.js.map +1 -0
- package/dist/core/tool.d.ts +12 -0
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +30 -0
- package/dist/core/tool.js.map +1 -1
- package/dist/core/verify.d.ts +27 -0
- package/dist/core/verify.d.ts.map +1 -0
- package/dist/core/verify.js +62 -0
- package/dist/core/verify.js.map +1 -0
- package/dist/skills/loader.d.ts +22 -2
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +45 -15
- package/dist/skills/loader.js.map +1 -1
- package/dist/tools/builtin.d.ts.map +1 -1
- package/dist/tools/builtin.js +13 -3
- package/dist/tools/builtin.js.map +1 -1
- package/dist/tools/model_tool.d.ts +11 -0
- package/dist/tools/model_tool.d.ts.map +1 -0
- package/dist/tools/model_tool.js +71 -0
- package/dist/tools/model_tool.js.map +1 -0
- package/dist/tools/todo.d.ts +30 -0
- package/dist/tools/todo.d.ts.map +1 -0
- package/dist/tools/todo.js +78 -0
- package/dist/tools/todo.js.map +1 -0
- package/docs/AESTHETIC_DESIGN.md +152 -144
- package/docs/OPTIMIZATION_PLAN.md +178 -178
- package/package.json +68 -68
- package/scripts/install.js +48 -48
- package/scripts/link.js +10 -10
- package/setup.bat +79 -79
- package/skill-test-ty2fOA/test.md +10 -10
- package/src/agents/dew.ts +70 -70
- package/src/agents/fair.ts +102 -102
- package/src/agents/fog.ts +48 -48
- package/src/agents/frost.ts +50 -50
- package/src/agents/rain.ts +50 -50
- package/src/agents/snow.ts +239 -239
- package/src/cli/commands_md.ts +112 -0
- package/src/cli/input_macros.ts +83 -0
- package/src/cli/loom.ts +982 -0
- package/src/cli/loom_chat.ts +598 -0
- package/src/cli/main.ts +255 -9
- package/src/cli/mode.ts +58 -58
- package/src/cli/tui.ts +228 -222
- package/src/core/agent/guard.ts +134 -134
- package/src/core/agent/task.ts +100 -100
- package/src/core/agent.ts +169 -7
- package/src/core/arbitrate.ts +162 -162
- package/src/core/catalog.ts +178 -178
- package/src/core/checkpoint.ts +94 -94
- package/src/core/estimate.ts +104 -104
- package/src/core/evolve.ts +191 -191
- package/src/core/factory.ts +31 -2
- package/src/core/file_checkpoint.ts +136 -0
- package/src/core/filter.ts +103 -103
- package/src/core/graph.ts +156 -156
- package/src/core/hooks.ts +126 -0
- package/src/core/icons.ts +53 -53
- package/src/core/index.ts +37 -37
- package/src/core/learn.ts +146 -146
- package/src/core/llm.ts +15 -9
- package/src/core/longdoc.ts +155 -155
- package/src/core/mcp.ts +48 -0
- package/src/core/mcp_server.ts +176 -176
- package/src/core/model_config.ts +157 -0
- package/src/core/profile.ts +255 -255
- package/src/core/router.ts +124 -124
- package/src/core/sandbox.ts +142 -142
- package/src/core/security.ts +243 -243
- package/src/core/skill.ts +42 -0
- package/src/core/skymd.ts +143 -0
- package/src/core/theme.ts +65 -65
- package/src/core/tool.ts +30 -0
- package/src/core/tool_router.ts +193 -193
- package/src/core/vector.ts +152 -152
- package/src/core/verify.ts +71 -0
- package/src/core/workspace.ts +150 -150
- package/src/plugins/loader.ts +66 -66
- package/src/skills/loader.ts +45 -16
- package/src/sql.js.d.ts +29 -29
- package/src/tools/builtin.ts +13 -3
- package/src/tools/computer.ts +269 -269
- package/src/tools/delegate.ts +49 -49
- package/src/tools/model_tool.ts +74 -0
- package/src/tools/todo.ts +76 -0
- package/src/web/tts.ts +93 -93
- package/tests/agent.test.ts +159 -159
- package/tests/agent_helpers.test.ts +48 -48
- package/tests/bus.test.ts +121 -121
- package/tests/catalog.test.ts +86 -86
- package/tests/checkpoint_commands.test.ts +124 -0
- package/tests/claude_compat.test.ts +110 -0
- package/tests/config.test.ts +41 -41
- package/tests/guard.test.ts +75 -75
- package/tests/icons.test.ts +45 -45
- package/tests/loom.test.ts +248 -0
- package/tests/memory.test.ts +170 -170
- package/tests/model_config.test.ts +109 -0
- package/tests/router.test.ts +86 -86
- package/tests/schemas.test.ts +51 -51
- package/tests/semantic.test.ts +83 -83
- package/tests/setup.ts +10 -10
- package/tests/skill.test.ts +172 -172
- package/tests/skymd.test.ts +146 -0
- package/tests/task.test.ts +60 -60
- package/tests/todo_toolstats.test.ts +94 -0
- package/tests/tool.test.ts +108 -108
- package/tests/tool_router.test.ts +71 -71
- package/tests/tui.test.ts +67 -67
- package/vitest.config.ts +17 -17
- package/=12 +0 -0
- package/=8 +0 -0
package/.github/workflows/ci.yml
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main, master ]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [ main, master ]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
build-and-test:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
|
|
13
|
-
strategy:
|
|
14
|
-
matrix:
|
|
15
|
-
node-version: [18, 20, 22]
|
|
16
|
-
|
|
17
|
-
steps:
|
|
18
|
-
- uses: actions/checkout@v4
|
|
19
|
-
|
|
20
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
21
|
-
uses: actions/setup-node@v4
|
|
22
|
-
with:
|
|
23
|
-
node-version: ${{ matrix.node-version }}
|
|
24
|
-
cache: 'npm'
|
|
25
|
-
|
|
26
|
-
- name: Install dependencies
|
|
27
|
-
run: npm ci
|
|
28
|
-
|
|
29
|
-
- name: TypeScript compile check
|
|
30
|
-
run: npx tsc --noEmit
|
|
31
|
-
|
|
32
|
-
- name: Run tests
|
|
33
|
-
run: npx vitest run
|
|
34
|
-
|
|
35
|
-
- name: Build
|
|
36
|
-
run: npm run build
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, master ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main, master ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build-and-test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
node-version: [18, 20, 22]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
21
|
+
uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: ${{ matrix.node-version }}
|
|
24
|
+
cache: 'npm'
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: npm ci
|
|
28
|
+
|
|
29
|
+
- name: TypeScript compile check
|
|
30
|
+
run: npx tsc --noEmit
|
|
31
|
+
|
|
32
|
+
- name: Run tests
|
|
33
|
+
run: npx vitest run
|
|
34
|
+
|
|
35
|
+
- name: Build
|
|
36
|
+
run: npm run build
|
package/README.md
CHANGED
|
@@ -1,159 +1,220 @@
|
|
|
1
|
-
# 天空织机 · Skyloom
|
|
2
|
-
|
|
3
|
-
<div align="center">
|
|
4
|
-
|
|
5
|
-
**≋ 雾 · ⸽ 雨 · ✱ 霜 · ❉ 雪 · ∘ 露 · ☼ 晴**
|
|
6
|
-
|
|
7
|
-
*六位 Agent,一支团队 —— 一座水墨气象台。*
|
|
8
|
-
|
|
9
|
-
[](https://github.com/susurrune/skyloom-ts/actions)
|
|
10
|
-
[](https://www.npmjs.com/package/skyloom)
|
|
11
|
-
[](LICENSE)
|
|
12
|
-
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
**Skyloom** 是一个本地优先的多智能体终端框架。六个 Agent 各司其职,通过事件总线、三层记忆、DAG 编排引擎协作完成完整工作流。不是又一个 LLM 聊天客户端,而是一个**分工明确的 AI 团队**——而且,它好看。
|
|
18
|
-
|
|
19
|
-
每个 Agent 是一种天气、一味矿物颜料、一句古诗。这套贯穿 CLI、TUI 与 Web 的「水墨气象台」意象,是 Skyloom 的辨识度所在。设计理念见 **[美学设计系统](docs/AESTHETIC_DESIGN.md)**。
|
|
20
|
-
|
|
21
|
-
## 安装
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
npm install -g skyloom
|
|
25
|
-
sky
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
首次启动自动进入设置向导 — 选 provider → 输 API Key → 选模型,全部交互式完成。Key 保存在 `~/.skyloom/config.yaml`,更新不丢。随时 `/setup` 切换。
|
|
29
|
-
|
|
30
|
-
### 支持的 Provider(9 家)
|
|
31
|
-
|
|
32
|
-
| Provider | 可调模型 |
|
|
33
|
-
|----------|------|
|
|
34
|
-
| **DeepSeek** | deepseek-chat, deepseek-reasoner, deepseek-v4-flash, deepseek-v4-pro |
|
|
35
|
-
| **OpenAI** | gpt-4.1, gpt-4.1-mini, gpt-4o, gpt-4o-mini, o4-mini |
|
|
36
|
-
| **Anthropic** | claude-sonnet-4-6, claude-opus-4-7, claude-haiku-4-5 |
|
|
37
|
-
| **Google** | gemini-2.5-pro, gemini-2.5-flash |
|
|
38
|
-
| **Groq** | llama-4-scout, llama-3.3-70b, mixtral-8x7b |
|
|
39
|
-
| **OpenRouter** | gpt-4.1, claude-sonnet-4-6, gemini-2.5-flash, llama-4-maverick |
|
|
40
|
-
| **Mistral** | mistral-large, mistral-small |
|
|
41
|
-
| **xAI** | grok-4 |
|
|
42
|
-
| **Ollama** | llama3, qwen2.5, deepseek-r1(本地) |
|
|
43
|
-
|
|
44
|
-
> 模型目录是单一事实源,含上下文窗口与成本数据,参见 [`config/models.yaml`](config/models.yaml)。
|
|
45
|
-
|
|
46
|
-
## 命令
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
sky #
|
|
50
|
-
sky
|
|
51
|
-
sky
|
|
52
|
-
sky
|
|
53
|
-
sky
|
|
54
|
-
sky
|
|
55
|
-
sky
|
|
56
|
-
sky
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
|
107
|
-
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
npm run
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
1
|
+
# 天空织机 · Skyloom
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**≋ 雾 · ⸽ 雨 · ✱ 霜 · ❉ 雪 · ∘ 露 · ☼ 晴**
|
|
6
|
+
|
|
7
|
+
*六位 Agent,一支团队 —— 一座水墨气象台。*
|
|
8
|
+
|
|
9
|
+
[](https://github.com/susurrune/skyloom-ts/actions)
|
|
10
|
+
[](https://www.npmjs.com/package/skyloom)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
**Skyloom** 是一个本地优先的多智能体终端框架。六个 Agent 各司其职,通过事件总线、三层记忆、DAG 编排引擎协作完成完整工作流。不是又一个 LLM 聊天客户端,而是一个**分工明确的 AI 团队**——而且,它好看。
|
|
18
|
+
|
|
19
|
+
每个 Agent 是一种天气、一味矿物颜料、一句古诗。这套贯穿 CLI、TUI 与 Web 的「水墨气象台」意象,是 Skyloom 的辨识度所在。设计理念见 **[美学设计系统](docs/AESTHETIC_DESIGN.md)**。
|
|
20
|
+
|
|
21
|
+
## 安装
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install -g skyloom
|
|
25
|
+
sky
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
首次启动自动进入设置向导 — 选 provider → 输 API Key → 选模型,全部交互式完成。Key 保存在 `~/.skyloom/config.yaml`,更新不丢。随时 `/setup` 切换。
|
|
29
|
+
|
|
30
|
+
### 支持的 Provider(9 家)
|
|
31
|
+
|
|
32
|
+
| Provider | 可调模型 |
|
|
33
|
+
|----------|------|
|
|
34
|
+
| **DeepSeek** | deepseek-chat, deepseek-reasoner, deepseek-v4-flash, deepseek-v4-pro |
|
|
35
|
+
| **OpenAI** | gpt-4.1, gpt-4.1-mini, gpt-4o, gpt-4o-mini, o4-mini |
|
|
36
|
+
| **Anthropic** | claude-sonnet-4-6, claude-opus-4-7, claude-haiku-4-5 |
|
|
37
|
+
| **Google** | gemini-2.5-pro, gemini-2.5-flash |
|
|
38
|
+
| **Groq** | llama-4-scout, llama-3.3-70b, mixtral-8x7b |
|
|
39
|
+
| **OpenRouter** | gpt-4.1, claude-sonnet-4-6, gemini-2.5-flash, llama-4-maverick |
|
|
40
|
+
| **Mistral** | mistral-large, mistral-small |
|
|
41
|
+
| **xAI** | grok-4 |
|
|
42
|
+
| **Ollama** | llama3, qwen2.5, deepseek-r1(本地) |
|
|
43
|
+
|
|
44
|
+
> 模型目录是单一事实源,含上下文窗口与成本数据,参见 [`config/models.yaml`](config/models.yaml)。
|
|
45
|
+
|
|
46
|
+
## 命令
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
sky # 进入交互对话(全屏「立轴」水墨 TUI)
|
|
50
|
+
sky --classic # 线性滚动界面(管道/窄终端会自动回退)
|
|
51
|
+
sky fog # 直接和雾对话
|
|
52
|
+
sky task "写一个CLI" # 多 Agent 编排
|
|
53
|
+
sky web # Web UI → http://localhost:3000
|
|
54
|
+
sky apikey set <p> # 保存 API Key
|
|
55
|
+
sky config # 查看配置
|
|
56
|
+
sky mcp # MCP Server
|
|
57
|
+
sky init # 初始化
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 交互界面
|
|
61
|
+
|
|
62
|
+
### 立轴(默认 · 全屏水墨气象台)
|
|
63
|
+
|
|
64
|
+
`sky` 在真实终端中进入全屏**立轴**模式:顶部印章随当前灵换色,天幕一行气象粒子按灵的动势飘动(雾飘 · 雨落 · 霜结 · 雪降 · 露凝 · 晴升),远山剪影随会话渐渐生长;左栏常驻六灵,右侧正文真流式逐字「晕染」入场。差量重绘只刷新变化的行,流式与动效互不干扰。
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
┌─ 天空织机 Skyloom ──────────────────────────────────────── 霧 ─┐
|
|
68
|
+
│ ≋ ≋ ≋ 气象粒子 ≋ ≋ │
|
|
69
|
+
│ ▁▂▃▅▃▂▁▁▂▄▂▁ 远山随会话生长 ▁▁▂▃▂▁▁▁▂▄▃▂▁▁▁▂▃▅▃▂▁▁▁▂▃▂▁▁▁ │
|
|
70
|
+
│ ● 霧 fog ✓1 │ ❯ 帮我调研并起草一份方案 │
|
|
71
|
+
│ ⸽ 雨 rain │ │
|
|
72
|
+
│ · 霜 frost │ ✦ 织谱 · 3 梭 ← /task 多灵织造 │
|
|
73
|
+
│ · 雪 snow │ ✓ ① 霧 调研竞品现状 (3.2s) │
|
|
74
|
+
│ · 露 dew │ ⸽ ② 雨 起草方案 ←① ← 执行中,符号脉冲 │
|
|
75
|
+
│ · 晴 fair │ · ③ 霜 审校精炼 ←② │
|
|
76
|
+
│ ╌╌╌╌╌╌╌╌╌╌╌╌╌ │ ⸙ web_search 检索中… │
|
|
77
|
+
│ 山色有无中 │ │
|
|
78
|
+
│ 織 1/3 梭 │ │
|
|
79
|
+
├ ≋ 织造 1/3 ·· ──────────────────── gpt-4o · $0.02 · ▰▰▱▱▱ 41% ┤
|
|
80
|
+
│ ≋ ❯ █ │
|
|
81
|
+
└─ /help 命令 · Tab 补全 · PgUp 回看 · Ctrl-C 退出 ──────────────┘
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
多灵编排(`/task`)时整张挂轴活起来:**织谱**逐梭列出子任务与依赖、原位更新状态与耗时;左栏为每位灵亮起脉冲与 ✓/✗ 战绩;天幕上各灵的梭子拖着矿物色丝线来回穿行——一座看得见的织机。
|
|
85
|
+
|
|
86
|
+
### 经典线性(`--classic` / 管道环境)
|
|
87
|
+
|
|
88
|
+
线性对话流(如 Claude Code)—— 真实行编辑(←→ / Home·End / 退格 / 粘贴 / 中文均正确)、`↑↓` 历史、`/` 命令 `Tab` 补全。回复**真流式**逐字呈现,按终端宽度智能换行(中英文/长链接都不溢出)。每位灵以矿物色印章入场:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
≋ 霧 ❯ 帮我写一个读取 CSV 的脚本
|
|
92
|
+
|
|
93
|
+
≋ 雾 fog
|
|
94
|
+
好的。下面是一个最小实现,先看清需求再动手 ——
|
|
95
|
+
|
|
96
|
+
≋ web_search "node csv parser" …
|
|
97
|
+
✓ web_search
|
|
98
|
+
|
|
99
|
+
这里用零依赖的方式读取并解析,按行流式处理避免一次性载入大文件……
|
|
100
|
+
|
|
101
|
+
≋ 霧 ❯ / ← 输入 / 看命令面板,Tab 补全
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Slash 命令
|
|
105
|
+
|
|
106
|
+
| 类别 | 命令 |
|
|
107
|
+
|------|------|
|
|
108
|
+
| **Agent** | `/fog /rain /frost /snow /dew /fair` — 切换 |
|
|
109
|
+
| **配置** | `/setup /apikey /model` — 安装向导、设置 Key、模型 |
|
|
110
|
+
| **信息** | `/status /cost /memory /workspace /version` |
|
|
111
|
+
| **会话** | `/sessions` 列表 · `/resume <序号\|id>` 恢复 · `/new` 新会话 |
|
|
112
|
+
| **操作** | `/compact /retry /clear /task <goal>` |
|
|
113
|
+
| **退出** | `/quit /exit` |
|
|
114
|
+
|
|
115
|
+
## 六灵
|
|
116
|
+
|
|
117
|
+
| Agent | 矿物色 | 职责 | 技能 |
|
|
118
|
+
|-------|--------|------|------|
|
|
119
|
+
| ≋ **雾** Fog | 松烟墨 `#4a4a44` | 探索洞察 | web_research, code_analysis |
|
|
120
|
+
| ⸽ **雨** Rain | 石青 `#2a5c8a` | 创造产出 | code_generator, content_writer |
|
|
121
|
+
| ✱ **霜** Frost | 石绿 `#3a7a6e` | 精炼品质 | code_reviewer, security_auditor |
|
|
122
|
+
| ❉ **雪** Snow | 铅白 `#8a8a82` | 架构规划 | task_planner, arch_designer |
|
|
123
|
+
| ∘ **露** Dew | 赭石 `#8b6914` | 可靠守护 | sys_operator, ci_cd_manager |
|
|
124
|
+
| ☼ **晴** Fair | 朱砂 `#b3342d` | 情感陪伴 | emotional_companion, self_evolve |
|
|
125
|
+
|
|
126
|
+
## 工作流(Claude Code 级)
|
|
127
|
+
|
|
128
|
+
| 功能 | 用法 | 说明 |
|
|
129
|
+
|------|------|------|
|
|
130
|
+
| **项目记忆 SKY.md** | `/init` 生成 · `#内容` 快速追加 | 三层加载:`~/.skyloom/SKY.md`(用户级)→ `./SKY.md`(项目级,兼容 `CLAUDE.md`/`AGENTS.md`)→ `./SKY.local.md`,自动注入所有 agent 的系统提示 |
|
|
131
|
+
| **计划模式** | `Shift+Tab` 或 `/plan` | 只读工具集 + 先出编号方案,批准后切回执行;`/auto` 免审批模式 |
|
|
132
|
+
| **验证闭环** | config `verify.commands` 或 SKY.md `## Verify` 代码块 | 任务写文件后自动跑测试/lint,失败回灌自动修复(默认 2 轮);`/verify` 手动触发 |
|
|
133
|
+
| **Headless** | `sky -p "问题" [--agent fog] [--json\|--stream-json]` | 管道/CI/外部编排接入;`cat err.log \| sky -p "归类错误"` |
|
|
134
|
+
| **输入宏** | `@文件` `!命令` `#记忆` | 文件注入上下文 / shell 输出入上下文(不耗 LLM)/ 一句话存进 SKY.md |
|
|
135
|
+
| **Hooks** | config `hooks.pre_tool/post_tool/session_start` | 强制执行的 shell 钩子,`pre_tool` 非零退出可拦截工具调用 |
|
|
136
|
+
| **上下文明细** | `/context` | 按角色分解 token 占用 + 系统提示/工具/技能开销 |
|
|
137
|
+
| **文件检查点** | `/rewind [n]` | 每轮自动快照被改文件,一键回退 n 轮(不依赖 git;`run_bash` 副作用除外) |
|
|
138
|
+
| **自定义命令** | `.sky/commands/*.md`(项目)/ `~/.skyloom/commands/`(用户) | frontmatter 可指定 `description`/`agent`,正文支持 `$ARGUMENTS` `$1…$9`,子目录命名空间 `git/commit.md` → `/git:commit`,改完即生效 |
|
|
139
|
+
| **模型配置** | `/model [id\|unified <id>\|reset\|key <key>]` | 统一默认 + 每灵独立覆盖(模型与 API key 均可),即改即生效并持久化;agent 也能用 `set_my_model` 工具**自己换自己的模型**(「换成 deepseek-chat」直接说就行) |
|
|
140
|
+
| **任务清单** | agent 自动调 `todo_write` | 3 步以上任务 agent 先列清单、逐项更新状态(✓ ◐ ·),存工作记忆不怕压缩,立轴/CLI 实时原位渲染 |
|
|
141
|
+
| **工具可观测** | `/tools` | 每工具调用次数/失败/缓存命中/平均耗时/熔断状态 |
|
|
142
|
+
| **上下文保护** | 自动 | 超大工具结果头尾保留中间截断(默认 12k 字符,`llm.tool_result_limit` 可调)并提示精确重取;`read_file` 支持 `offset/limit` 分页 |
|
|
143
|
+
| **Claude Code 技能迁移** | 把 skill 文件夹丢进 `.claude/skills/` 或 `.sky/skills/` | SKILL.md 同架构(frontmatter `name/description/allowed-tools`,`Bash/Read` 等工具名自动映射);扫描 `~/.claude/skills` `~/.skyloom/skills` `.claude/skills` `.sky/skills`,**零拷贝迁移**、改完即生效 |
|
|
144
|
+
| **MCP 标准配置** | 项目根 `.mcp.json` | Claude Code 同款 schema(`mcpServers` + stdio/http + `${ENV_VAR}` 展开),与 config.yaml / `sky mcp` 添加的服务器合并(项目级优先) |
|
|
145
|
+
|
|
146
|
+
```yaml
|
|
147
|
+
# ~/.skyloom/config.yaml 示例
|
|
148
|
+
verify:
|
|
149
|
+
commands: ["npm run -s type-check", "npm test -s"]
|
|
150
|
+
max_fix_rounds: 2
|
|
151
|
+
hooks:
|
|
152
|
+
post_tool:
|
|
153
|
+
- matcher: "write_file|edit_file"
|
|
154
|
+
command: "npx prettier --write \"$SKY_FILE\""
|
|
155
|
+
pre_tool:
|
|
156
|
+
- matcher: "run_bash"
|
|
157
|
+
command: "./scripts/guard.sh" # 非零退出 = 拦截
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## 核心能力
|
|
161
|
+
|
|
162
|
+
| 模块 | 说明 |
|
|
163
|
+
|------|------|
|
|
164
|
+
| **真流式** | CLI 逐字渲染、Web SSE 推流;推理/正文/工具调用分层呈现 |
|
|
165
|
+
| **智能路由** | 输入自动分 direct/single/orchestrate 三级,< 1ms |
|
|
166
|
+
| **Pipeline 模板** | 9 种预定义工作流,命中后跳过 LLM 拆解 |
|
|
167
|
+
| **三层记忆** | Short-term(SQLite) + Working(内存) + Long-term(持久化) |
|
|
168
|
+
| **技能系统** | 17 个内置 SKILL.md,运行时动态激活 |
|
|
169
|
+
| **安全体系** | 5 级危险等级、红线拦截、沙箱隔离、审计日志 |
|
|
170
|
+
| **自进化** | 失败模式分析、Prompt 自动优化、经验库去重 |
|
|
171
|
+
| **向量搜索** | TF-IDF + Cosine,零依赖语义检索 |
|
|
172
|
+
| **知识图谱** | 实体-关系三重存储,自动从对话提取 |
|
|
173
|
+
| **输出过滤** | API Key/密码/私钥/邮箱/内网IP 自动脱敏 |
|
|
174
|
+
| **电脑操作** | 10 个跨平台工具(应用/诊断/进程/软件/服务) |
|
|
175
|
+
| **MCP** | 双向桥:Client 连接外部 + Server 暴露给 Claude Desktop |
|
|
176
|
+
|
|
177
|
+
## Web UI · 水墨气象台
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
sky web
|
|
181
|
+
# 打开 http://localhost:3000
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
宣纸质感、六矿物颜料、按 Agent 切换的气象粒子(雾飘/雨落/霜结/雪降/露凝/晴升)与印章汉字。`⌘1-6` 唤灵切换。回复经 SSE **真流式**推送,工具调用呈现为"气象事件"。
|
|
185
|
+
|
|
186
|
+
## 架构
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
src/
|
|
190
|
+
├── cli/ main.ts (命令注册+对话循环), tui.ts (行编辑+流式渲染), mode.ts
|
|
191
|
+
├── core/ agent, factory, llm, memory, tool, bus, security, learn,
|
|
192
|
+
│ evolve, sandbox, vector, graph, filter, estimate, arbitrate, ...
|
|
193
|
+
├── agents/ 6 Agent (fog/rain/frost/snow/dew/fair)
|
|
194
|
+
├── tools/ builtin, computer, delegate
|
|
195
|
+
├── web/ server (水墨气象台 HTTP+UI), tts
|
|
196
|
+
├── skills/ 技能加载器
|
|
197
|
+
├── plugins/ 插件加载器
|
|
198
|
+
config/
|
|
199
|
+
├── skills/ 17 个内置 SKILL.md
|
|
200
|
+
├── default.yaml providers.yaml models.yaml
|
|
201
|
+
tests/ 16 套件 · 154 Vitest 用例
|
|
202
|
+
docs/ OPTIMIZATION_PLAN.md AESTHETIC_DESIGN.md
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## 开发
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
npm test # vitest
|
|
209
|
+
npm run build # tsc
|
|
210
|
+
npm run dev # watch
|
|
211
|
+
npm run type-check
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## 路线图
|
|
215
|
+
|
|
216
|
+
Skyloom 正朝「顶级开源 Agent 框架」演进,对标 [opencode](https://github.com/sst/opencode) 的架构与 Claude Code 的交互范式。完整规划见 **[优化计划](docs/OPTIMIZATION_PLAN.md)**:统一模型目录 → 真流式 → `agent.ts` 分层 → Session 与自动上下文压缩 → 工具/插件健壮性 → 测试门禁 → 美学工程化。
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
**[MIT License](LICENSE)** · **v1.13.6** · 全功能迁移自 [Python 原版](https://github.com/susurrune/skyloom)
|
package/config/providers.yaml
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
# Provider catalog — API key env vars, base URLs, docs
|
|
2
|
-
openai:
|
|
3
|
-
env_var: OPENAI_API_KEY
|
|
4
|
-
base_url: https://api.openai.com/v1
|
|
5
|
-
docs_url: https://platform.openai.com/api-keys
|
|
6
|
-
|
|
7
|
-
anthropic:
|
|
8
|
-
env_var: ANTHROPIC_API_KEY
|
|
9
|
-
base_url: https://api.anthropic.com/v1
|
|
10
|
-
docs_url: https://console.anthropic.com/settings/keys
|
|
11
|
-
|
|
12
|
-
deepseek:
|
|
13
|
-
env_var: DEEPSEEK_API_KEY
|
|
14
|
-
base_url: https://api.deepseek.com/v1
|
|
15
|
-
docs_url: https://platform.deepseek.com/api_keys
|
|
16
|
-
|
|
17
|
-
groq:
|
|
18
|
-
env_var: GROQ_API_KEY
|
|
19
|
-
base_url: https://api.groq.com/openai/v1
|
|
20
|
-
|
|
21
|
-
mistral:
|
|
22
|
-
env_var: MISTRAL_API_KEY
|
|
23
|
-
base_url: https://api.mistral.ai/v1
|
|
24
|
-
|
|
25
|
-
cohere:
|
|
26
|
-
env_var: COHERE_API_KEY
|
|
27
|
-
base_url: https://api.cohere.ai/v1
|
|
28
|
-
|
|
29
|
-
openrouter:
|
|
30
|
-
env_var: OPENROUTER_API_KEY
|
|
31
|
-
base_url: https://openrouter.ai/api/v1
|
|
32
|
-
|
|
33
|
-
gemini:
|
|
34
|
-
env_var: GEMINI_API_KEY
|
|
35
|
-
base_url: https://generativelanguage.googleapis.com/v1beta
|
|
36
|
-
|
|
37
|
-
ollama:
|
|
38
|
-
base_url: http://localhost:11434/v1
|
|
39
|
-
env_var: OLLAMA_HOST
|
|
1
|
+
# Provider catalog — API key env vars, base URLs, docs
|
|
2
|
+
openai:
|
|
3
|
+
env_var: OPENAI_API_KEY
|
|
4
|
+
base_url: https://api.openai.com/v1
|
|
5
|
+
docs_url: https://platform.openai.com/api-keys
|
|
6
|
+
|
|
7
|
+
anthropic:
|
|
8
|
+
env_var: ANTHROPIC_API_KEY
|
|
9
|
+
base_url: https://api.anthropic.com/v1
|
|
10
|
+
docs_url: https://console.anthropic.com/settings/keys
|
|
11
|
+
|
|
12
|
+
deepseek:
|
|
13
|
+
env_var: DEEPSEEK_API_KEY
|
|
14
|
+
base_url: https://api.deepseek.com/v1
|
|
15
|
+
docs_url: https://platform.deepseek.com/api_keys
|
|
16
|
+
|
|
17
|
+
groq:
|
|
18
|
+
env_var: GROQ_API_KEY
|
|
19
|
+
base_url: https://api.groq.com/openai/v1
|
|
20
|
+
|
|
21
|
+
mistral:
|
|
22
|
+
env_var: MISTRAL_API_KEY
|
|
23
|
+
base_url: https://api.mistral.ai/v1
|
|
24
|
+
|
|
25
|
+
cohere:
|
|
26
|
+
env_var: COHERE_API_KEY
|
|
27
|
+
base_url: https://api.cohere.ai/v1
|
|
28
|
+
|
|
29
|
+
openrouter:
|
|
30
|
+
env_var: OPENROUTER_API_KEY
|
|
31
|
+
base_url: https://openrouter.ai/api/v1
|
|
32
|
+
|
|
33
|
+
gemini:
|
|
34
|
+
env_var: GEMINI_API_KEY
|
|
35
|
+
base_url: https://generativelanguage.googleapis.com/v1beta
|
|
36
|
+
|
|
37
|
+
ollama:
|
|
38
|
+
base_url: http://localhost:11434/v1
|
|
39
|
+
env_var: OLLAMA_HOST
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: api_integrator
|
|
3
|
-
description: "API integration specialist — REST, GraphQL, OAuth, webhooks"
|
|
4
|
-
triggers:
|
|
5
|
-
- "api"
|
|
6
|
-
- "integration"
|
|
7
|
-
- "rest"
|
|
8
|
-
- "graphql"
|
|
9
|
-
- "oauth"
|
|
10
|
-
- "webhook"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## API integration specialist
|
|
14
|
-
|
|
15
|
-
Integrate external REST/GraphQL APIs. Use http_get and http_post to explore endpoints. Verify responses before writing integration code. Always handle errors and rate limits.
|
|
1
|
+
---
|
|
2
|
+
name: api_integrator
|
|
3
|
+
description: "API integration specialist — REST, GraphQL, OAuth, webhooks"
|
|
4
|
+
triggers:
|
|
5
|
+
- "api"
|
|
6
|
+
- "integration"
|
|
7
|
+
- "rest"
|
|
8
|
+
- "graphql"
|
|
9
|
+
- "oauth"
|
|
10
|
+
- "webhook"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## API integration specialist
|
|
14
|
+
|
|
15
|
+
Integrate external REST/GraphQL APIs. Use http_get and http_post to explore endpoints. Verify responses before writing integration code. Always handle errors and rate limits.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arch_designer
|
|
3
|
-
description: "Software architecture design — patterns, trade-offs, system diagrams"
|
|
4
|
-
triggers:
|
|
5
|
-
- "architecture"
|
|
6
|
-
- "design"
|
|
7
|
-
- "system design"
|
|
8
|
-
- "patterns"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Software architecture design
|
|
12
|
-
|
|
13
|
-
Design software architecture with clear trade-offs. Present 2-3 options with pros/cons. Use write_file for architecture decision records.
|
|
1
|
+
---
|
|
2
|
+
name: arch_designer
|
|
3
|
+
description: "Software architecture design — patterns, trade-offs, system diagrams"
|
|
4
|
+
triggers:
|
|
5
|
+
- "architecture"
|
|
6
|
+
- "design"
|
|
7
|
+
- "system design"
|
|
8
|
+
- "patterns"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Software architecture design
|
|
12
|
+
|
|
13
|
+
Design software architecture with clear trade-offs. Present 2-3 options with pros/cons. Use write_file for architecture decision records.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ci_cd_manager
|
|
3
|
-
description: "CI/CD pipeline setup — GitHub Actions, Docker, deployment"
|
|
4
|
-
triggers:
|
|
5
|
-
- "ci"
|
|
6
|
-
- "cd"
|
|
7
|
-
- "deploy"
|
|
8
|
-
- "docker"
|
|
9
|
-
- "pipeline"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## CI/CD pipeline setup
|
|
13
|
-
|
|
14
|
-
Set up CI/CD pipelines. Write GitHub Actions workflows, Dockerfiles, and deployment scripts. Use run_bash to test pipelines locally.
|
|
1
|
+
---
|
|
2
|
+
name: ci_cd_manager
|
|
3
|
+
description: "CI/CD pipeline setup — GitHub Actions, Docker, deployment"
|
|
4
|
+
triggers:
|
|
5
|
+
- "ci"
|
|
6
|
+
- "cd"
|
|
7
|
+
- "deploy"
|
|
8
|
+
- "docker"
|
|
9
|
+
- "pipeline"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## CI/CD pipeline setup
|
|
13
|
+
|
|
14
|
+
Set up CI/CD pipelines. Write GitHub Actions workflows, Dockerfiles, and deployment scripts. Use run_bash to test pipelines locally.
|