@llamaventures/cli 1.17.2 → 1.17.3
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/CHANGELOG.md +12 -0
- package/README.md +103 -375
- package/README.zh-CN.md +105 -339
- package/package.json +1 -5
- package/CONTRIBUTING.md +0 -100
- package/SECURITY.md +0 -62
- package/assets/llama-ventures-logo.svg +0 -25
- package/scripts/verify-agent-routing.mjs +0 -816
package/README.zh-CN.md
CHANGED
|
@@ -5,18 +5,16 @@
|
|
|
5
5
|
<h1 align="center">@llamaventures/cli</h1>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<strong>Llama Ventures
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
<strong>Llama Ventures 的 CLI 与 MCP server。</strong><br/>
|
|
9
|
+
一个包、两个可执行文件:<code>llama</code>——给人和脚本用的 CLI;
|
|
10
|
+
<code>llama-mcp</code>——带 58 个类型化工具的 stdio MCP server,任何
|
|
11
|
+
MCP 原生 agent 都能接。两者共享同一认证链、同一 HTTP 客户端、同一错误格式,
|
|
12
|
+
连接 <a href="https://command.llamaventures.vc">command.llamaventures.vc</a>。
|
|
12
13
|
</p>
|
|
13
14
|
|
|
14
15
|
<p align="center">
|
|
15
16
|
<a href="https://www.npmjs.com/package/@llamaventures/cli"><img alt="npm" src="https://img.shields.io/npm/v/@llamaventures/cli?label=npm&color=cb3837&logo=npm&logoColor=white"></a>
|
|
16
17
|
<a href="https://github.com/Llama-Ventures/llama-cli/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Llama-Ventures/llama-cli/actions/workflows/ci.yml/badge.svg"></a>
|
|
17
|
-
<a href="https://docs.npmjs.com/trusted-publishers"><img alt="Provenance" src="https://img.shields.io/badge/provenance-signed-2e8b57?logo=npm"></a>
|
|
18
|
-
<a href="https://nodejs.org/"><img alt="Node" src="https://img.shields.io/node/v/@llamaventures/cli?color=339933&logo=nodedotjs&logoColor=white"></a>
|
|
19
|
-
<a href="https://modelcontextprotocol.io"><img alt="MCP 2024-11-05" src="https://img.shields.io/badge/MCP-2024--11--05-7d3aed"></a>
|
|
20
18
|
<a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
|
|
21
19
|
</p>
|
|
22
20
|
|
|
@@ -25,306 +23,131 @@
|
|
|
25
23
|
</p>
|
|
26
24
|
|
|
27
25
|
<p align="center">
|
|
28
|
-
<a href="
|
|
29
|
-
<a href="#接入你的-ai-系统">接入你的 AI</a> ·
|
|
26
|
+
<a href="#给华人创业者向-llama-pitch">🚀 向 Llama pitch(无需账号)</a> ·
|
|
30
27
|
<a href="#安装">安装</a> ·
|
|
31
28
|
<a href="#认证">认证</a> ·
|
|
32
|
-
<a href="
|
|
29
|
+
<a href="#接入你的-ai-系统">接入你的 AI</a> ·
|
|
30
|
+
<a href="#cli">CLI</a> ·
|
|
33
31
|
<a href="#mcp-server">MCP</a> ·
|
|
34
|
-
<a href="AGENT_BRIEFING.md">Agent 协议</a> ·
|
|
35
|
-
<a href="SECURITY.md">安全</a> ·
|
|
36
32
|
<a href="CHANGELOG.md">更新日志</a>
|
|
37
33
|
</p>
|
|
38
34
|
|
|
39
35
|
> **公开源码、低摩擦安装;不是开源产品。** 大多数命令需要 Llama Ventures
|
|
40
|
-
>
|
|
41
|
-
>
|
|
42
|
-
> 行政助理都能用,不需要 token,详见下方
|
|
43
|
-
> [给华人创业者:向 Llama pitch](#给华人创业者-向-llama-pitch)。
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 包里有什么
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
@llamaventures/cli
|
|
51
|
-
├── bin/llama 给人 + bash 用的交互式 CLI
|
|
52
|
-
└── bin/llama-mcp 给 MCP 原生 agent 用的 stdio MCP server,58 个类型化工具
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
两个 binary 共享 `lib/client.mjs`——**同一**认证链、**同一** HTTP 客户端、
|
|
56
|
-
**同一**错误格式。CLI 与 MCP 不可能在身份或传输上漂移。CLI 自身零依赖;
|
|
57
|
-
MCP server 仅依赖 `@modelcontextprotocol/sdk`(Anthropic 维护,pin 死版本)。
|
|
58
|
-
|
|
59
|
-
```mermaid
|
|
60
|
-
flowchart LR
|
|
61
|
-
Human([🧑💻 团队成员]) --> CLI[bin/llama<br/>argv 解析]
|
|
62
|
-
Agent([🤖 MCP 原生 agent]) --> MCP[bin/llama-mcp<br/>stdio JSON-RPC]
|
|
63
|
-
CLI --> Client[lib/client.mjs<br/>认证 · fetch · 错误]
|
|
64
|
-
MCP --> Client
|
|
65
|
-
Client -- HTTPS --> API[(command.llamaventures.vc)]
|
|
66
|
-
classDef src fill:#dcfce7,stroke:#166534,color:#14532d
|
|
67
|
-
classDef edge fill:#dbeafe,stroke:#1e40af,color:#1e3a8a
|
|
68
|
-
class Human,Agent edge
|
|
69
|
-
class CLI,MCP,Client src
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
---
|
|
36
|
+
> 团队账号(token 由团队管理员在 `/settings/tokens` 签发)。
|
|
37
|
+
> **唯一例外是公开的 `pitch` 命令族**——见下一节。
|
|
73
38
|
|
|
74
39
|
## 给华人创业者:向 Llama pitch
|
|
75
40
|
|
|
76
|
-
如果你是创业者、EA、或者帮老板探索的助理,**不需要 token
|
|
77
|
-
我们专门为外部 pitch
|
|
41
|
+
如果你是创业者、EA、或者帮老板探索的助理,**不需要 token、不需要找人介绍**——
|
|
42
|
+
我们专门为外部 pitch 留了一条公开通道。它跟
|
|
78
43
|
[command.llamaventures.vc/external-agent](https://command.llamaventures.vc/external-agent)
|
|
79
|
-
|
|
80
|
-
|
|
44
|
+
网页版聊的是同一个 intake agent,结构化提取、12 维投资判断都是同一套,
|
|
45
|
+
只是入口换成了你的终端,或者你自己的 AI 助手。
|
|
81
46
|
|
|
82
47
|
```bash
|
|
83
|
-
|
|
84
|
-
npm i -g @llamaventures/cli
|
|
85
|
-
|
|
86
|
-
# 2. 起一个 session
|
|
48
|
+
npm i -g @llamaventures/cli # 不需要 Llama 账号
|
|
87
49
|
llama pitch start --name "张三" --email "you@yourstartup.com"
|
|
88
|
-
|
|
89
|
-
# 3. 跟 agent 聊——单条消息
|
|
90
50
|
llama pitch say "我们做 X,目标 Y,团队背景 Z..."
|
|
91
|
-
|
|
92
|
-
# 4. 把 deck / 一页纸传上来
|
|
93
51
|
llama pitch upload ./deck.pdf
|
|
94
|
-
|
|
95
|
-
# 5. 或者直接进交互式 REPL
|
|
96
|
-
llama pitch
|
|
52
|
+
llama pitch # 或直接进交互式 REPL
|
|
97
53
|
```
|
|
98
54
|
|
|
99
|
-
**也可以让你自己的 AI agent 帮你 pitch(A2A
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
**会被服务端约束的上限**(跟网页版一样):
|
|
106
|
-
- 单 IP 每天 5 个 session
|
|
107
|
-
- 单邮箱每天 3 个 session
|
|
108
|
-
- 30 分钟无活动自动结束
|
|
109
|
-
- 单 session 100 条消息 / 1M token
|
|
110
|
-
|
|
111
|
-
**Pitch 完成后**:agent 会调 `finalize_intake` 写入结构化档案,自动给我们团队
|
|
112
|
-
排进 inbox。我们看到后会主动联系你——不需要你再追。
|
|
55
|
+
**也可以让你自己的 AI agent 帮你 pitch(A2A)**:把本包的 MCP server 挂到
|
|
56
|
+
Claude / Cursor / 任何 MCP 客户端上(配置见 [MCP server](#mcp-server)),
|
|
57
|
+
告诉它"帮我 pitch Llama Ventures",它会用 `pitch_*` 工具跟我们的 intake
|
|
58
|
+
agent 对话。服务端有速率限制(单 IP / 单邮箱 / 单 session)。
|
|
59
|
+
Pitch 完成后档案自动进我们团队的 inbox,我们会主动联系你。
|
|
113
60
|
|
|
114
|
-
>
|
|
115
|
-
> AI、Pre-seed 到 Series A、$3-5M
|
|
116
|
-
>
|
|
117
|
-
|
|
118
|
-
---
|
|
61
|
+
> Llama Ventures 投什么?看 [llamaventures.vc](https://llamaventures.vc)——
|
|
62
|
+
> AI、Pre-seed 到 Series A、$3-5M 票,跨美中。**懂得让 AI 帮你干活的
|
|
63
|
+
> founder,我们爱看。**
|
|
119
64
|
|
|
120
65
|
## 安装
|
|
121
66
|
|
|
122
67
|
```bash
|
|
123
|
-
npm i -g @llamaventures/cli
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
需要 **Node 18+**(用了原生 `fetch` 与 ESM)。CI 矩阵覆盖 18 / 20 / 22。
|
|
127
|
-
|
|
128
|
-
验证:
|
|
129
|
-
|
|
130
|
-
```bash
|
|
68
|
+
npm i -g @llamaventures/cli # Node 18+;llama-mcp 也会一起装上 PATH
|
|
131
69
|
llama --version
|
|
132
|
-
llama auth status
|
|
70
|
+
llama auth status # 会跑一次 /api/me 验证
|
|
133
71
|
```
|
|
134
72
|
|
|
135
|
-
同一次安装会把 `llama-mcp` 也放到 `PATH` 上——MCP server 不用单独装包。
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
73
|
## 认证
|
|
140
74
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
| # | 来源 | 发送的 header | 适合谁 |
|
|
144
|
-
|---|------|--------------|--------|
|
|
145
|
-
| 1 | `llama auth login`(OAuth 2.1,存 OS Keychain) | `Authorization: Bearer …` | **所有人的推荐方式。** 浏览器一次登录,token 自动刷新、重启不丢 |
|
|
146
|
-
| 2 | `gcloud auth print-identity-token` | `Authorization: Bearer …` | 已经配好 gcloud 的工作机(零配置) |
|
|
147
|
-
| 3 | `$LLAMA_TOKEN` 环境变量 | `X-Llama-Token` | CI runner、云上 sandbox agent |
|
|
148
|
-
| 4 | `~/.llama/token`(mode `0600`) | `X-Llama-Token` | 本地常驻安装(长期 PAT) |
|
|
149
|
-
| 5 | `~/.llama-command/config.json` | `X-Llama-Token` | CLI v0.1 老路径——首次读取自动迁移到 `~/.llama/token` |
|
|
150
|
-
|
|
151
|
-
如果 Bearer 和 X-Llama-Token 同时存在,两个一起发。服务器先验 Bearer,
|
|
152
|
-
失败后回退到 X-Llama-Token。任何时候都可以用 `llama auth status`
|
|
153
|
-
看当前认证身份。
|
|
154
|
-
|
|
155
|
-
### 浏览器登录 —— 推荐
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
llama auth login # 打开浏览器 → Google 登录 → 授权 → 完成
|
|
159
|
-
llama auth status # → activeMethod=oauth,显示身份与 scope
|
|
160
|
-
llama deal search acme-ai # 直接用
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
OAuth 2.1 PKCE 流程,token 存 OS Keychain(macOS Keychain / Windows
|
|
164
|
-
Credential Manager / Linux Secret Service),自动刷新。
|
|
165
|
-
`llama auth logout` 会在服务端吊销并清空本地存储。
|
|
75
|
+
客户端按下面的顺序找凭证,每次调用都查一遍:
|
|
166
76
|
|
|
167
|
-
|
|
77
|
+
| # | 来源 | 适合谁 |
|
|
78
|
+
|---|------|--------|
|
|
79
|
+
| 1 | `llama auth login`(OAuth,存 OS Keychain,自动刷新) | **所有人的推荐方式** |
|
|
80
|
+
| 2 | `gcloud auth print-identity-token` | 已配好 gcloud 的机器 |
|
|
81
|
+
| 3 | `$LLAMA_TOKEN` 环境变量 | CI、云上 sandbox agent |
|
|
82
|
+
| 4 | `~/.llama/token`(mode `0600`) | 长期 PAT |
|
|
83
|
+
| 5 | `~/.llama-command/config.json` | v0.1 老路径,自动迁移 |
|
|
168
84
|
|
|
169
85
|
```bash
|
|
170
|
-
|
|
171
|
-
llama auth
|
|
172
|
-
llama
|
|
86
|
+
llama auth login # 浏览器登录;token 自动刷新、重启不丢
|
|
87
|
+
llama auth logout # 服务端吊销 + 清空本地
|
|
88
|
+
llama token set llc_… # /settings/tokens 签发的 PAT——落盘前先验证
|
|
89
|
+
llama auth status # 看当前身份和生效的认证方式
|
|
173
90
|
```
|
|
174
91
|
|
|
175
|
-
|
|
92
|
+
> **没账号?** 找你在 Llama Ventures 的对接人——任何邮箱都可以被签发 token。
|
|
176
93
|
|
|
177
|
-
|
|
178
|
-
2. 打开 `/settings/tokens` → **Mint Token**。
|
|
179
|
-
3. 保存 `llc_…` 值:
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
llama token set llc_paste_token_here
|
|
183
|
-
# → 写入 ~/.llama/token (mode 0600)
|
|
184
|
-
# → 落盘前会先打一次 /api/me,无效的 token 不会落到磁盘上
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
或在 CI / 一次性环境里:
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
export LLAMA_TOKEN=llc_paste_token_here
|
|
191
|
-
```
|
|
94
|
+
## 接入你的 AI 系统
|
|
192
95
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
96
|
+
这个包是 Llama Command 的**官方集成面**。自研 agent、LLM 应用都从这里接——
|
|
97
|
+
**不要直接调 HTTP API**:CLI/MCP 层负责认证链、稳定的 `Error[…]` 错误契约、
|
|
98
|
+
以及 schema 变化时的前向兼容([SemVer](#稳定性));裸 API 没有这些承诺。
|
|
196
99
|
|
|
197
|
-
|
|
100
|
+
1. **拿凭证**——`llama auth login`;无人值守系统用 PAT(`llama token set`
|
|
101
|
+
或 `$LLAMA_TOKEN`)。
|
|
102
|
+
2. **安装**——`npm i -g @llamaventures/cli`。
|
|
103
|
+
3. **接线**——MCP 原生 agent 指向 `llama-mcp`([各客户端配置](#mcp-server));
|
|
104
|
+
其它形态子进程调用 `llama …`。
|
|
105
|
+
4. **让 agent 自我入职**——会话开始跑一次 `llama agent-onboard`(或 MCP 的
|
|
106
|
+
`agent_briefing` prompt),拿到服务端下发的 Agent Runtime Contract,
|
|
107
|
+
与线上永远同步。
|
|
108
|
+
5. **验证**——`llama auth status`,然后 `llama deal search "<随便什么>"`。
|
|
198
109
|
|
|
199
|
-
##
|
|
110
|
+
## CLI
|
|
200
111
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
负责认证链、稳定的 `Error[…]` 错误契约、以及服务端 schema 变化时的
|
|
204
|
-
前向兼容([SemVer](#稳定性));裸 API 路由没有这些承诺,随时可能变。
|
|
205
|
-
|
|
206
|
-
五分钟接入路径:
|
|
207
|
-
|
|
208
|
-
1. **拿凭证** —— 团队账号直接 `llama auth login`;无人值守系统请管理员在
|
|
209
|
-
[`/settings/tokens`](https://command.llamaventures.vc/settings/tokens)
|
|
210
|
-
mint 一个 PAT,再用 `llama token set` 或 `$LLAMA_TOKEN` 配置。
|
|
211
|
-
2. **安装** —— `npm i -g @llamaventures/cli`(Node 18+)。
|
|
212
|
-
3. **接线:**
|
|
213
|
-
- **MCP 原生 agent**(Claude、Cursor、任何 stdio 客户端)→ 指向
|
|
214
|
-
`llama-mcp`:58 个类型化工具,无通用 passthrough。
|
|
215
|
-
各客户端配置见 [MCP server](#mcp-server)。
|
|
216
|
-
- **其它形态** → 子进程调用 `llama …`。输出是 agent 友好的纯文本;
|
|
217
|
-
失败带稳定的 `Error[…]` 前缀。
|
|
218
|
-
4. **让 agent 自我入职** —— 会话开始时跑一次 `llama agent-onboard`
|
|
219
|
-
(或取 MCP 的 `agent_briefing` prompt),拿到**服务端下发的 Agent
|
|
220
|
-
Runtime Contract**——最新的工作流规则、署名规范、错误恢复——
|
|
221
|
-
与线上服务器永远同步,README 永远不会成为集成瓶颈。
|
|
222
|
-
5. **验证** —— `llama auth status` 回环确认身份;
|
|
223
|
-
`llama deal search "<随便什么>"` 证明读权限通了。
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## CLI 速览
|
|
228
|
-
|
|
229
|
-
CLI 是 canonical 接口。底下的 HTTP API 也稳定,但 CLI 帮你处理了认证、错误格式、
|
|
230
|
-
schema 前向兼容——**即使你写脚本,也优先用 CLI**。
|
|
112
|
+
CLI 是 canonical 接口——认证、错误格式、schema 前向兼容都由它处理。
|
|
113
|
+
写脚本也优先用 CLI。
|
|
231
114
|
|
|
232
115
|
```bash
|
|
233
|
-
#
|
|
234
|
-
llama auth status
|
|
235
|
-
llama token set <llc_...>
|
|
236
|
-
llama token show
|
|
237
|
-
|
|
238
|
-
# Pipeline——读
|
|
239
|
-
llama deal search "acme ai"
|
|
240
|
-
llama deal list --owner alex --status Diligence # 与 search 同一套过滤参数
|
|
116
|
+
llama deal search "acme ai" # 找 deal(deal list 用同一套过滤参数)
|
|
241
117
|
llama deal show <dealId>
|
|
242
|
-
llama deal feed <dealId>
|
|
243
|
-
|
|
244
|
-
# Pipeline——写
|
|
245
|
-
llama deal create "Acme AI" --description "..." --source alex --source-direction Outbound --status Interested
|
|
118
|
+
llama deal feed <dealId> # 该 deal 的全部贡献,最新在前
|
|
119
|
+
llama deal create "Acme AI" --source alex --source-direction Outbound --status Interested
|
|
246
120
|
llama deal update <dealId> status Diligence
|
|
247
|
-
llama
|
|
248
|
-
llama
|
|
249
|
-
llama
|
|
250
|
-
llama deal agent run <dealId> --message "collect founder evidence and update typed facts"
|
|
251
|
-
llama deal delete <dealId> # 软删除(审计日志记录)
|
|
252
|
-
llama deal restore <dealId>
|
|
253
|
-
|
|
254
|
-
# Status 语义
|
|
255
|
-
# Interested = 先记录/关注,还没有 outreach、intro、回复、deck submission 或 meeting。
|
|
256
|
-
# Outreached = 只是联系/记录了,还没有回复或有效关系。
|
|
257
|
-
# Sourced = 已有回复、intro、会议,或其它真实关系信号。
|
|
258
|
-
# sourceDirection 是单独维度:
|
|
259
|
-
# Inbound = 自然流入公司。
|
|
260
|
-
# Outbound = 我们主动发现/建名单/触达。
|
|
261
|
-
|
|
262
|
-
# Deal Brief——有序的、有类型的 block(text · link · embed · callout)
|
|
263
|
-
llama brief blocks <dealId>
|
|
264
|
-
llama brief add-text <dealId> --heading "..." --body "..."
|
|
265
|
-
llama brief add-link <dealId> --url "..." --label "..."
|
|
266
|
-
llama brief add-callout <dealId> --tone insight --heading "..." --body "..."
|
|
267
|
-
llama brief edit <dealId> <blockId> [--heading ...] [--body ...]
|
|
268
|
-
llama brief history <dealId> <blockId>
|
|
269
|
-
|
|
270
|
-
# Ownership + 审批
|
|
271
|
-
llama claim <dealId>
|
|
272
|
-
llama nominate <dealId> --user <userId>
|
|
273
|
-
llama approvals list
|
|
274
|
-
llama approvals decide <approvalId> approved --note "..."
|
|
275
|
-
|
|
276
|
-
# 时间线 + 帖子
|
|
277
|
-
llama timeline <dealId>
|
|
278
|
-
llama post <dealId> "消息内容" [--link url]
|
|
279
|
-
|
|
280
|
-
# Agent runtime——Command 上的 Llama OS skill gateway
|
|
281
|
-
llama agent bootstrap
|
|
282
|
-
llama skills search "wiki delete tombstone"
|
|
283
|
-
llama skills show llama-command
|
|
284
|
-
llama explain https://command.llamaventures.vc/wiki/some-page
|
|
285
|
-
|
|
286
|
-
# Wiki
|
|
287
|
-
llama wiki search "<query>"
|
|
121
|
+
llama post <dealId> "备注内容"
|
|
122
|
+
llama brief add-text <dealId> --heading "..." --body "..."
|
|
123
|
+
llama wiki search "<查询词>"
|
|
288
124
|
llama wiki save <slug> --title "..." --content "..."
|
|
289
|
-
|
|
290
|
-
# Mentions 收件箱
|
|
291
125
|
llama mentions
|
|
292
|
-
llama
|
|
126
|
+
llama agent-onboard # 服务端下发的 agent 工作契约
|
|
293
127
|
```
|
|
294
128
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
所有删除默认软删除——可恢复,且通过 `deal_events` 留下审计痕迹。
|
|
299
|
-
|
|
300
|
-
### 错误码(给 agent 用)
|
|
129
|
+
Status 语义——`Interested`:接触前先记录关注 · `Outreached`:已联系、
|
|
130
|
+
尚无回应 · `Sourced`:已有真实关系信号。`sourceDirection` 是独立维度:
|
|
131
|
+
`Inbound` 流入,`Outbound` 我们主动。
|
|
301
132
|
|
|
302
|
-
|
|
133
|
+
`llama --help` 看分组索引,`llama help all` 看全部 100+ 命令。
|
|
134
|
+
所有删除默认软删除、有审计记录。
|
|
303
135
|
|
|
304
|
-
|
|
305
|
-
|------|------|---------|
|
|
306
|
-
| `Error[NO_AUTH]` | 一个凭证都没找到 | `gcloud auth login` **或** `llama token set` |
|
|
307
|
-
| `Error[UNAUTHORIZED]` | 服务端拒绝了我们发出去的凭证 | token 可能被 revoke / 过期 / gcloud 选错账号 |
|
|
136
|
+
### 错误码
|
|
308
137
|
|
|
309
|
-
|
|
138
|
+
| 前缀 | 含义 | 恢复 |
|
|
139
|
+
|------|------|------|
|
|
140
|
+
| `Error[NO_AUTH]` | 没找到任何凭证 | `llama auth login` 或 `llama token set` |
|
|
141
|
+
| `Error[UNAUTHORIZED]` | 服务端拒绝了凭证 | token 被吊销 / 过期 / 账号不对 |
|
|
310
142
|
|
|
311
|
-
|
|
143
|
+
MCP server 在 `isError: true` 内容里返回相同前缀。认证请求会向 Command
|
|
144
|
+
发送有界、脱敏的遥测;`llama eval good|bad --last` 把真实搜索变成评测反馈。
|
|
312
145
|
|
|
313
146
|
## MCP server
|
|
314
147
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
package 里一个能被 prompt-injection 触达的逃生通道,正是我们要避开的形状)。
|
|
319
|
-
|
|
320
|
-
覆盖面按 agent 真正会用的工作流分组:auth 诊断;live agent bootstrap;
|
|
321
|
-
授权后的 Llama OS skill search/read;Command URL/object inspect;deal search/show/create/
|
|
322
|
-
update/feed;服务端 deal agent run;deal enrichment harness;带 trust ladder 的事实;brief blocks
|
|
323
|
-
和版本历史;wiki 读写删恢复;timeline posts 和 mentions;skill corrections;
|
|
324
|
-
refresh triggers;外部 pitch intake;memo show/regenerate/save/reset;
|
|
325
|
-
以及 deal-scoped HTML docs、versions、bundles、restore/reset。
|
|
326
|
-
|
|
327
|
-
精确的 live list 以 `tools/list` 为准:
|
|
148
|
+
`llama-mcp` 是 stdio MCP server,58 个类型化工具镜像 CLI 最常用的命令面。
|
|
149
|
+
每个工具具名、有边界——**故意不提供**通用 API passthrough。认证链与 CLI
|
|
150
|
+
完全一致。精确工具清单以 `tools/list` 为准:
|
|
328
151
|
|
|
329
152
|
```bash
|
|
330
153
|
printf '%s\n' \
|
|
@@ -334,32 +157,14 @@ printf '%s\n' \
|
|
|
334
157
|
| llama-mcp
|
|
335
158
|
```
|
|
336
159
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
Agent Runtime Contract——刚装上 server 的 agent 不用离开协议就能给自己
|
|
340
|
-
onboard。包内 [`AGENT_BRIEFING.md`](AGENT_BRIEFING.md) 只是服务端 briefing
|
|
341
|
-
临时不可用时的 fallback。
|
|
342
|
-
|
|
343
|
-
要读当前 Llama OS skills,用 runtime tools:`agent_bootstrap`、
|
|
344
|
-
`skills_search`、`skills_read`、`object_inspect`。公开 npm 包不打包私有
|
|
345
|
-
skill 正文;Command 只按当前 token 的权限返回可见内容。
|
|
346
|
-
|
|
347
|
-
### 接到你的 agent 上
|
|
348
|
-
|
|
349
|
-
<details open>
|
|
350
|
-
<summary><strong>Claude Desktop</strong>(macOS 路径示例)</summary>
|
|
160
|
+
<details>
|
|
161
|
+
<summary><strong>Claude Desktop</strong></summary>
|
|
351
162
|
|
|
352
|
-
`~/Library/Application Support/Claude/claude_desktop_config.json
|
|
163
|
+
`~/Library/Application Support/Claude/claude_desktop_config.json`(macOS):
|
|
353
164
|
|
|
354
165
|
```json
|
|
355
|
-
{
|
|
356
|
-
"mcpServers": {
|
|
357
|
-
"llama": { "command": "llama-mcp" }
|
|
358
|
-
}
|
|
359
|
-
}
|
|
166
|
+
{ "mcpServers": { "llama": { "command": "llama-mcp" } } }
|
|
360
167
|
```
|
|
361
|
-
|
|
362
|
-
重启 Claude Desktop。工具会出现在 🛠️ 菜单里。
|
|
363
168
|
</details>
|
|
364
169
|
|
|
365
170
|
<details>
|
|
@@ -368,83 +173,44 @@ skill 正文;Command 只按当前 token 的权限返回可见内容。
|
|
|
368
173
|
```bash
|
|
369
174
|
claude mcp add llama -- llama-mcp
|
|
370
175
|
```
|
|
371
|
-
|
|
372
|
-
或直接编辑 `~/.claude/claude.json`——JSON 结构和 Desktop 一样。
|
|
373
|
-
</details>
|
|
374
|
-
|
|
375
|
-
<details>
|
|
376
|
-
<summary><strong>Cursor</strong></summary>
|
|
377
|
-
|
|
378
|
-
`~/.cursor/mcp.json`:
|
|
379
|
-
|
|
380
|
-
```json
|
|
381
|
-
{
|
|
382
|
-
"mcpServers": {
|
|
383
|
-
"llama": { "command": "llama-mcp" }
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
```
|
|
387
176
|
</details>
|
|
388
177
|
|
|
389
178
|
<details>
|
|
390
|
-
<summary><strong>
|
|
179
|
+
<summary><strong>Cursor / 任何 stdio MCP 客户端</strong></summary>
|
|
391
180
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
把客户端指过去就行。无需协议扩展、无需 transport flag。
|
|
181
|
+
把客户端指向 `llama-mcp` 可执行文件(`which llama-mcp`),JSON 结构同上。
|
|
182
|
+
无需协议扩展、无需 transport flag。
|
|
395
183
|
</details>
|
|
396
184
|
|
|
397
|
-
>
|
|
398
|
-
>
|
|
399
|
-
>
|
|
400
|
-
|
|
401
|
-
---
|
|
185
|
+
> 新 agent?跑 `llama agent-onboard`(CLI)或拉 `agent_briefing` prompt
|
|
186
|
+
> (MCP),拿服务端的工作契约。包内
|
|
187
|
+
> [`AGENT_BRIEFING.md`](AGENT_BRIEFING.md) 只是离线兜底。
|
|
402
188
|
|
|
403
189
|
## 稳定性
|
|
404
190
|
|
|
405
|
-
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
typed wrapper。这个包**故意不提供**裸 API passthrough——如果你需要的
|
|
412
|
-
wrapper 还没落地,开 issue,不要直接调 HTTP API。
|
|
413
|
-
|
|
414
|
-
详见 [`CHANGELOG.md`](CHANGELOG.md)。
|
|
415
|
-
|
|
416
|
-
---
|
|
191
|
+
- **[SemVer](https://semver.org)**:改名/删命令 → major;新工具/命令/flag
|
|
192
|
+
→ minor;修 bug → patch。
|
|
193
|
+
- **公开契约**:wire format(Bearer / X-Llama-Token)和 `Error[…]` 前缀
|
|
194
|
+
在 major 版本内不变。
|
|
195
|
+
- **故意没有裸 API passthrough**——需要的 wrapper 还没有就开 issue,
|
|
196
|
+
不要直接调 HTTP API。
|
|
417
197
|
|
|
418
198
|
## 安全
|
|
419
199
|
|
|
420
|
-
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
- **依赖树最小化。** CLI 本身零依赖;MCP server 只依赖
|
|
426
|
-
`@modelcontextprotocol/sdk`,pin 死版本。
|
|
427
|
-
- **Branch protection** 锁 `main`;Dependabot、secret scanning、
|
|
428
|
-
push protection 都开了。
|
|
429
|
-
- **Token:** 本地存在 `~/.llama/token`,mode `0600`。服务端只存 sha256 hash——
|
|
430
|
-
明文只会在用户手里出现,永远不在数据库里。
|
|
431
|
-
|
|
432
|
-
报告漏洞:见 [`SECURITY.md`](SECURITY.md)。**不要**在公开 issue 里报安全 bug。
|
|
433
|
-
|
|
434
|
-
---
|
|
435
|
-
|
|
436
|
-
## 贡献
|
|
437
|
-
|
|
438
|
-
这是 Llama Ventures 内部维护的工具。团队成员的 PR 欢迎——
|
|
439
|
-
详见 [`CONTRIBUTING.md`](CONTRIBUTING.md)(本地开发环、发版流程、
|
|
440
|
-
项目约定:零依赖、CLI/MCP 同步、稳定的 `Error[…]` 前缀)。
|
|
200
|
+
- 通过 npm [Trusted Publishers](https://docs.npmjs.com/trusted-publishers)
|
|
201
|
+
(OIDC)+ `--provenance` 发布——不存在可泄漏的 npm token。
|
|
202
|
+
- CLI 零运行时依赖;MCP server 只依赖 `@modelcontextprotocol/sdk`,pin 死版本。
|
|
203
|
+
- main 分支保护、Dependabot、secret scanning、push protection 全开。
|
|
204
|
+
- Token:本地 `~/.llama/token` mode `0600`;服务端只存 sha256 hash。
|
|
441
205
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
206
|
+
报告安全漏洞请走
|
|
207
|
+
[GitHub 私密通道](https://github.com/Llama-Ventures/llama-cli/security/advisories/new),
|
|
208
|
+
不要发公开 issue。详见 [`SECURITY.md`](SECURITY.md)。
|
|
445
209
|
|
|
446
|
-
|
|
210
|
+
## 贡献与 License
|
|
447
211
|
|
|
448
|
-
|
|
212
|
+
Llama Ventures 内部维护,团队 PR 欢迎(见 [`CONTRIBUTING.md`](CONTRIBUTING.md))。
|
|
213
|
+
外部:文档错漏类 issue 欢迎;想让我们看到你的项目请走
|
|
214
|
+
[pitch 通道](#给华人创业者向-llama-pitch)。
|
|
449
215
|
|
|
450
216
|
[MIT](LICENSE) — © 2026 Llama Ventures, Inc.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llamaventures/cli",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.3",
|
|
4
4
|
"description": "CLI + MCP server for the Llama Ventures investment workbench (command.llamaventures.vc).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -13,16 +13,12 @@
|
|
|
13
13
|
"llama-mcp": "bin/llama-mcp.mjs"
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
|
-
"assets/",
|
|
17
16
|
"bin/",
|
|
18
17
|
"lib/",
|
|
19
|
-
"scripts/verify-agent-routing.mjs",
|
|
20
18
|
"AGENT_BRIEFING.md",
|
|
21
19
|
"CHANGELOG.md",
|
|
22
|
-
"CONTRIBUTING.md",
|
|
23
20
|
"README.md",
|
|
24
21
|
"README.zh-CN.md",
|
|
25
|
-
"SECURITY.md",
|
|
26
22
|
"LICENSE"
|
|
27
23
|
],
|
|
28
24
|
"engines": {
|