agent-loft 0.2.8 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,9 +1,22 @@
1
+ <p align="center"><img src="web/icon.svg" width="120" alt="agent-loft"></p>
2
+
1
3
  # agent-loft
2
4
 
3
- 用飞书(以后还有 Telegram 等)和 Web 页面,驱动本机的 **Claude Code** 和 **Codex**。
5
+ **多个 agent 的工作台。** 把本机的 **Claude Code**、**Codex**(以后还有更多)放到同一张台面上统一管理,用飞书(以后还有 Telegram 等)和 Web 页面随时随地驱动它们。
4
6
 
5
7
  由 `feishu-claude-bridge` 和 `feishu-codex-bridge` 合并而来:一个进程、一份配置,飞书和网页共用同一套会话、审批和模型切换。
6
8
 
9
+ ## 理念
10
+
11
+ 这里的 Loft 不是阁楼,是**工作台**:agent 是干活的人,agent-loft 是它们共用的那张台面。
12
+
13
+ - **多 agent,一张台面**:Claude Code、Codex 各有所长,不该各开一个窗口、各记一套会话。它们在这里共用工作目录、会话列表、审批和模型切换,同一条对话里随时换人接手,各自的上下文都还在。
14
+ - **统一管理,而不是再造一个 agent**:agent-loft 不自己做模型、不改 agent 的行为,只负责把官方的 agent 接进来、管起来。新的 agent 接一个驱动就能上台。
15
+ - **人在哪,台面就在哪**:电脑上用网页,手机上用 PWA 或飞书。同一个会话、同一个授权请求,在哪个渠道处理都行,其他地方自动同步。
16
+ - **跑在你自己的机器上**:代码、凭据和会话都留在本机,agent-loft 只是一层安全的遥控。
17
+
18
+ Logo 就是这个意思:一大两小几颗星(多个 agent)站在同一张台面上。
19
+
7
20
  ## 能做什么
8
21
 
9
22
  - **多个 agent**:Claude Code(官方 Claude Agent SDK)、Codex(官方 `codex app-server`)。在同一条会话里 `/agent` 切换,各 agent 的上下文各自保留。
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "agent-loft",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "type": "module",
5
- "description": "把飞书(以及以后的 Telegram 等)和 Web 页面桥接到本机 Claude Code / Codex:聊天驱动、卡片审批、会话与模型切换",
5
+ "description": "多个 agent 的工作台:把本机 Claude Code / Codex 放到一处统一管理,用飞书和 Web 页面随时驱动——会话、审批、模型切换都共用",
6
6
  "keywords": [
7
7
  "feishu",
8
8
  "lark",
Binary file
@@ -1,13 +1,12 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
2
- <defs>
3
- <linearGradient id="g" x1="0" y1="0" x2="1" y2="1">
4
- <stop offset="0" stop-color="#3b82f6"/>
5
- <stop offset="1" stop-color="#06b6d4"/>
6
- </linearGradient>
7
- </defs>
2
+ <!-- Agent Loft:agent 工作台 —— 一大两小几颗星(多个 agent)站在同一张台面上,统一管理 -->
3
+ <defs><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="104" y1="104" x2="408" y2="408"><stop offset="0" stop-color="#3b82f6"/><stop offset="1" stop-color="#06b6d4"/></linearGradient></defs>
8
4
  <rect width="512" height="512" fill="#fff"/>
9
- <g transform="translate(256 262) scale(1.2) translate(-256 -262)">
10
- <path d="M196 140H316A64 64 0 0 1 380 204V276A64 64 0 0 1 316 340H236L180 380C173 385 164 380 166 372L173 336A64 64 0 0 1 132 276V204A64 64 0 0 1 196 140Z" fill="none" stroke="url(#g)" stroke-width="26" stroke-linejoin="round"/>
11
- <path d="M256 178C262 222 274 234 318 240C274 246 262 258 256 302C250 258 238 246 194 240C238 234 250 222 256 178Z" fill="url(#g)"/>
5
+ <g transform="translate(256 257) scale(0.8) translate(-256 -257)">
6
+ <path d="M256 296L404 364L256 432L108 364Z" fill="url(#g)" fill-opacity=".3"/>
7
+ <path d="M256 252L404 320L256 388L108 320Z" fill="url(#g)"/>
8
+ <path d="M256 82C268.92 145.08 268.92 145.08 332 158C268.92 170.92 268.92 170.92 256 234C243.08 170.92 243.08 170.92 180 158C243.08 145.08 243.08 145.08 256 82Z" fill="url(#g)"/>
9
+ <path d="M152 186C158.46 217.54 158.46 217.54 190 224C158.46 230.46 158.46 230.46 152 262C145.54 230.46 145.54 230.46 114 224C145.54 217.54 145.54 217.54 152 186Z" fill="url(#g)" fill-opacity=".85"/>
10
+ <path d="M360 186C366.46 217.54 366.46 217.54 398 224C366.46 230.46 366.46 230.46 360 262C353.54 230.46 353.54 230.46 322 224C353.54 217.54 353.54 217.54 360 186Z" fill="url(#g)" fill-opacity=".85"/>
12
11
  </g>
13
12
  </svg>
package/web/icon.svg CHANGED
@@ -1,12 +1,12 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
2
- <defs>
3
- <linearGradient id="g" x1="0" y1="0" x2="1" y2="1">
4
- <stop offset="0" stop-color="#3b82f6"/>
5
- <stop offset="1" stop-color="#06b6d4"/>
6
- </linearGradient>
7
- </defs>
8
- <g transform="translate(256 262) scale(1.4) translate(-256 -262)">
9
- <path d="M196 140H316A64 64 0 0 1 380 204V276A64 64 0 0 1 316 340H236L180 380C173 385 164 380 166 372L173 336A64 64 0 0 1 132 276V204A64 64 0 0 1 196 140Z" fill="none" stroke="url(#g)" stroke-width="26" stroke-linejoin="round"/>
10
- <path d="M256 178C262 222 274 234 318 240C274 246 262 258 256 302C250 258 238 246 194 240C238 234 250 222 256 178Z" fill="url(#g)"/>
2
+ <!-- Agent Loft:agent 工作台 —— 一大两小几颗星(多个 agent)站在同一张台面上,统一管理 -->
3
+ <defs><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="104" y1="104" x2="408" y2="408"><stop offset="0" stop-color="#3b82f6"/><stop offset="1" stop-color="#06b6d4"/></linearGradient></defs>
4
+ <rect width="512" height="512" rx="116" fill="#fff"/>
5
+ <g transform="translate(256 257) scale(1.0) translate(-256 -257)">
6
+ <path d="M256 296L404 364L256 432L108 364Z" fill="url(#g)" fill-opacity=".3"/>
7
+ <path d="M256 252L404 320L256 388L108 320Z" fill="url(#g)"/>
8
+ <path d="M256 82C268.92 145.08 268.92 145.08 332 158C268.92 170.92 268.92 170.92 256 234C243.08 170.92 243.08 170.92 180 158C243.08 145.08 243.08 145.08 256 82Z" fill="url(#g)"/>
9
+ <path d="M152 186C158.46 217.54 158.46 217.54 190 224C158.46 230.46 158.46 230.46 152 262C145.54 230.46 145.54 230.46 114 224C145.54 217.54 145.54 217.54 152 186Z" fill="url(#g)" fill-opacity=".85"/>
10
+ <path d="M360 186C366.46 217.54 366.46 217.54 398 224C366.46 230.46 366.46 230.46 360 262C353.54 230.46 353.54 230.46 322 224C353.54 217.54 353.54 217.54 360 186Z" fill="url(#g)" fill-opacity=".85"/>
11
11
  </g>
12
12
  </svg>
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "Agent Loft",
3
3
  "short_name": "Agent Loft",
4
- "description": "在手机和电脑上驱动本机的 Claude Code / Codex",
4
+ "description": "多个 agent 的工作台:在手机和电脑上统一管理本机的 Claude Code / Codex",
5
5
  "start_url": "/",
6
6
  "scope": "/",
7
7
  "display": "standalone",