@apolloyh/apollo-agent 0.1.10 → 0.2.0
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/.env.example +7 -0
- package/README.md +1 -0
- package/dist/brand.d.ts +1 -1
- package/dist/brand.js +1 -1
- package/dist/config.d.ts +4 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +28 -15
- package/dist/index.js +55 -23
- package/dist/llm/anthropic.d.ts +21 -10
- package/dist/llm/anthropic.d.ts.map +1 -1
- package/dist/llm/anthropic.js +38 -10
- package/dist/llm/openai.d.ts +8 -0
- package/dist/llm/openai.d.ts.map +1 -0
- package/dist/llm/openai.js +214 -0
- package/dist/runtime/query-engine.d.ts +8 -0
- package/dist/runtime/query-engine.d.ts.map +1 -1
- package/dist/runtime/query-engine.js +26 -6
- package/dist/sdk.d.ts +2 -0
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +2 -1
- package/dist/thought-fold.d.ts +6 -21
- package/dist/thought-fold.d.ts.map +1 -1
- package/dist/thought-fold.js +23 -98
- package/dist/trace.d.ts.map +1 -1
- package/dist/trace.js +19 -5
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/guide.md +13 -2
- package/docs/npm-release.md +251 -0
- package/docs/sdk.md +4 -0
- package/package.json +3 -2
package/dist/trace.js
CHANGED
|
@@ -280,14 +280,12 @@ export class CliTraceRenderer {
|
|
|
280
280
|
}
|
|
281
281
|
renderInteractiveToolResult(event, denied) {
|
|
282
282
|
this.bullet(formatInteractiveToolResult(event.tool, event.content, event.isError, event.input), denied ? "yellow" : event.isError ? "red" : "green");
|
|
283
|
-
if (event.
|
|
283
|
+
if (event.isError || event.content === "(no output)")
|
|
284
284
|
return;
|
|
285
|
-
const lines =
|
|
286
|
-
for (const [index, line] of lines.
|
|
285
|
+
const lines = toolOutputLines(event.tool, event.content);
|
|
286
|
+
for (const [index, line] of lines.entries()) {
|
|
287
287
|
this.out(` ${this.paint(index === 0 ? "└" : " ", "gray")} ${this.paint(truncateDisplayLine(line, 140), "gray")}\n`);
|
|
288
288
|
}
|
|
289
|
-
if (lines.length > 6)
|
|
290
|
-
this.out(` ${this.paint(`… +${lines.length - 6} lines`, "gray")}\n`);
|
|
291
289
|
}
|
|
292
290
|
renderCodeChange(change) {
|
|
293
291
|
const width = Math.max(40, Math.min(this.options.stdout?.columns ?? 120, 160));
|
|
@@ -597,6 +595,22 @@ function toolLabel(tool) {
|
|
|
597
595
|
.map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`)
|
|
598
596
|
.join(" ");
|
|
599
597
|
}
|
|
598
|
+
function toolOutputLines(tool, content) {
|
|
599
|
+
if (tool === "web_search") {
|
|
600
|
+
try {
|
|
601
|
+
const results = JSON.parse(content).results ?? [];
|
|
602
|
+
return results.slice(0, 5).map((result) => [result.title, result.url].filter(Boolean).join(" — "));
|
|
603
|
+
}
|
|
604
|
+
catch {
|
|
605
|
+
return [compactValue(content, 140)];
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
const lines = stripTerminalEscapes(content).split(/\r?\n/);
|
|
609
|
+
const visible = lines.slice(0, 6);
|
|
610
|
+
if (lines.length > 6)
|
|
611
|
+
visible.push(`… +${lines.length - 6} lines`);
|
|
612
|
+
return visible;
|
|
613
|
+
}
|
|
600
614
|
function isPermissionDenied(content) {
|
|
601
615
|
return content.startsWith("Permission denied for tool ");
|
|
602
616
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,6 +2,10 @@ export type JsonObject = Record<string, unknown>;
|
|
|
2
2
|
export type ContentBlock = {
|
|
3
3
|
type: "text";
|
|
4
4
|
text: string;
|
|
5
|
+
} | {
|
|
6
|
+
type: "thinking";
|
|
7
|
+
thinking: string;
|
|
8
|
+
signature?: string;
|
|
5
9
|
} | {
|
|
6
10
|
type: "tool_use";
|
|
7
11
|
id: string;
|
|
@@ -59,6 +63,9 @@ export type TraceEvent = {
|
|
|
59
63
|
} | {
|
|
60
64
|
type: "assistant_delta";
|
|
61
65
|
text: string;
|
|
66
|
+
} | {
|
|
67
|
+
type: "thinking_delta";
|
|
68
|
+
text: string;
|
|
62
69
|
} | {
|
|
63
70
|
type: "llm_tool_delta";
|
|
64
71
|
bytes: number;
|
|
@@ -161,12 +168,14 @@ export type ToolExecutionContext = {
|
|
|
161
168
|
planMode?: boolean;
|
|
162
169
|
};
|
|
163
170
|
export type LlmConfig = {
|
|
171
|
+
protocol?: "anthropic" | "openai";
|
|
164
172
|
authToken: string;
|
|
165
173
|
baseUrl: string;
|
|
166
174
|
model: string;
|
|
167
175
|
maxTokens: number;
|
|
168
176
|
timeoutMs?: number;
|
|
169
177
|
cacheTtl?: "5m" | "1h";
|
|
178
|
+
openaiMaxTokensParam?: "max_tokens" | "max_completion_tokens";
|
|
170
179
|
};
|
|
171
180
|
export type McpServerConfig = {
|
|
172
181
|
command: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/docs/guide.md
CHANGED
|
@@ -43,7 +43,18 @@ EXA_API_KEY=your_exa_key
|
|
|
43
43
|
# ANTHROPIC_CACHE_TTL=5m
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
Apollo
|
|
46
|
+
Apollo 默认使用 Anthropic Messages API,也支持 OpenAI-compatible Chat Completions。切换为 OpenAI 协议:
|
|
47
|
+
|
|
48
|
+
```dotenv
|
|
49
|
+
APOLLO_LLM_PROTOCOL=openai
|
|
50
|
+
OPENAI_API_KEY=your_openai_token
|
|
51
|
+
OPENAI_BASE_URL=https://api.openai.com/v1
|
|
52
|
+
OPENAI_MODEL=gpt-4o-mini
|
|
53
|
+
# OPENAI_MAX_TOKENS=4096
|
|
54
|
+
# OPENAI_MAX_TOKENS_PARAM=max_tokens
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
OpenAI 兼容层支持流式文本、公开的 reasoning/thinking 字段、并行工具调用、工具结果回传、usage/cache token 和标准重试错误。模型供应商不返回 reasoning 正文时,Apollo 无法展示该内容。
|
|
47
58
|
|
|
48
59
|
环境文件发现顺序:
|
|
49
60
|
|
|
@@ -243,7 +254,7 @@ Apollo 不伪造本地 Prompt Cache 命中;`/status` 只使用模型厂商响
|
|
|
243
254
|
|
|
244
255
|
## 故障排查
|
|
245
256
|
|
|
246
|
-
- `Missing ANTHROPIC_AUTH_TOKEN
|
|
257
|
+
- `Missing model API token`:配置 `ANTHROPIC_AUTH_TOKEN` 或 `OPENAI_API_KEY` 后重启。
|
|
247
258
|
- `EEXIST .../bin/apollo`:先确认 `which apollo`;移除旧的手动软链接或旧全局包后重装。
|
|
248
259
|
- 搜索不可用:检查 `EXA_API_KEY`,普通文件和代码搜索不依赖 Exa。
|
|
249
260
|
- 修改配置没有生效:重启 Apollo;配置和提示词在当前 Engine 中冻结。
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# Apollo npm 打包与发布手册
|
|
2
|
+
|
|
3
|
+
本文说明如何把 `@apolloyh/apollo-agent` 构建为 npm tarball、发布到 npm,并把同一份 tarball 上传到 GitHub Release。
|
|
4
|
+
|
|
5
|
+
## 前置条件
|
|
6
|
+
|
|
7
|
+
- Node.js 20 或更高版本
|
|
8
|
+
- npm 发布账号拥有 `@apolloyh/apollo-agent` 权限
|
|
9
|
+
- npm 已登录:`npm whoami`
|
|
10
|
+
- GitHub CLI 已登录:`gh auth status`
|
|
11
|
+
- 工作目录为 Apollo 仓库的 `agent/`
|
|
12
|
+
|
|
13
|
+
不要把 npm token、模型密钥、`.env` 或用户配置提交到仓库或放进安装包。
|
|
14
|
+
|
|
15
|
+
## 1. 确定新版本号
|
|
16
|
+
|
|
17
|
+
先查看 registry 当前版本:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm view @apolloyh/apollo-agent version dist-tags.latest --json --prefer-online
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
npm 不允许覆盖已经发布的同名版本。按语义化版本选择升级类型:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm version patch --no-git-tag-version # 0.1.10 -> 0.1.11
|
|
27
|
+
npm version minor --no-git-tag-version # 0.1.10 -> 0.2.0
|
|
28
|
+
npm version major --no-git-tag-version # 0.1.10 -> 1.0.0
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
该命令会更新 `package.json` 和 `package-lock.json`。Apollo 还在 `src/brand.ts` 中显示版本号,必须同步修改:
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
export const PRODUCT = {
|
|
35
|
+
version: "0.1.11",
|
|
36
|
+
// ...
|
|
37
|
+
};
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
确认三处一致:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
node -p "require('./package.json').version"
|
|
44
|
+
node -p "require('./package-lock.json').version"
|
|
45
|
+
rg 'version:' src/brand.ts
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 2. 构建与验证
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm run typecheck
|
|
52
|
+
npm test
|
|
53
|
+
git diff --check
|
|
54
|
+
git status --short
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
`npm test` 会先清理并重新生成 `dist/`,然后执行回归测试。发布前必须确认测试全部通过,并检查工作区没有混入无关修改或秘密。
|
|
58
|
+
|
|
59
|
+
## 3. 打包 tarball
|
|
60
|
+
|
|
61
|
+
Apollo 将历史安装包集中在 `releases/npm-packages/`。直接输出到该目录:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
mkdir -p releases/npm-packages
|
|
65
|
+
npm pack --json --pack-destination releases/npm-packages
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`prepack` 会再次运行构建。生成文件形如:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
releases/npm-packages/apolloyh-apollo-agent-0.1.11.tgz
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
检查包内容:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
tar -tzf releases/npm-packages/apolloyh-apollo-agent-0.1.11.tgz
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
重点确认包含:
|
|
81
|
+
|
|
82
|
+
- `dist/`
|
|
83
|
+
- `bundled-skills/`
|
|
84
|
+
- `README.md`
|
|
85
|
+
- `docs/`
|
|
86
|
+
- `.apollo/config.example.json`
|
|
87
|
+
- `.apollo/hooks.example.json`
|
|
88
|
+
- `.env.example`
|
|
89
|
+
|
|
90
|
+
同时确认不包含:
|
|
91
|
+
|
|
92
|
+
- `.env`、API key、token
|
|
93
|
+
- `node_modules/`
|
|
94
|
+
- `.apollo/config.json`、sessions、memory、logs
|
|
95
|
+
- 用户工作区的 `skills/`
|
|
96
|
+
- 源码仓库中无关的大文件
|
|
97
|
+
|
|
98
|
+
可先使用 `npm pack --dry-run` 只预览,不生成 tarball:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npm pack --dry-run
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 4. 本地安装冒烟测试
|
|
105
|
+
|
|
106
|
+
在临时目录安装刚生成的真实 tarball:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
110
|
+
TARBALL="releases/npm-packages/apolloyh-apollo-agent-${VERSION}.tgz"
|
|
111
|
+
PREFIX=$(mktemp -d)
|
|
112
|
+
|
|
113
|
+
npm install --prefix "$PREFIX" "$TARBALL" --ignore-scripts
|
|
114
|
+
test -x "$PREFIX/node_modules/.bin/apollo"
|
|
115
|
+
node --input-type=module -e "await import('$PREFIX/node_modules/@apolloyh/apollo-agent/dist/sdk.js'); console.log('SDK import ok')"
|
|
116
|
+
rm -rf "$PREFIX"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## 5. 提交并推送源码
|
|
120
|
+
|
|
121
|
+
发布前让 GitHub 的 `main` 与将要发布的代码一致:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
git add package.json package-lock.json src/brand.ts README.md docs
|
|
125
|
+
git commit -m "Release v$(node -p \"require('./package.json').version\")"
|
|
126
|
+
git push origin main
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
不要使用 `git add -f skills/`。项目级 skills 属于用户工作区,不应跟踪或打进 npm 包;只有源码目录 `bundled-skills/` 属于产品内置资源。
|
|
130
|
+
|
|
131
|
+
## 6. 发布到 npm
|
|
132
|
+
|
|
133
|
+
Apollo 使用 npm 的浏览器 WebAuthn 流程,不需要 OTP:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
137
|
+
TARBALL="releases/npm-packages/apolloyh-apollo-agent-${VERSION}.tgz"
|
|
138
|
+
|
|
139
|
+
npx --yes npm@12.0.1 publish "$TARBALL" \
|
|
140
|
+
--access public \
|
|
141
|
+
--auth-type=web
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
终端显示 npm 官方授权地址后:
|
|
145
|
+
|
|
146
|
+
1. 按 Enter 打开浏览器。
|
|
147
|
+
2. 使用 Touch ID 或本机安全密钥确认。
|
|
148
|
+
3. 保持终端运行,直到看到 `+ @apolloyh/apollo-agent@<version>`。
|
|
149
|
+
|
|
150
|
+
不要复制浏览器授权链接到公开日志;该链接是临时登录流程的一部分。
|
|
151
|
+
|
|
152
|
+
## 7. 验证 npm registry
|
|
153
|
+
|
|
154
|
+
发布后 registry 可能需要数秒传播:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
158
|
+
|
|
159
|
+
npm view "@apolloyh/apollo-agent@${VERSION}" \
|
|
160
|
+
version dist.shasum --json --prefer-online
|
|
161
|
+
|
|
162
|
+
npm view @apolloyh/apollo-agent \
|
|
163
|
+
version dist-tags.latest --json --prefer-online
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
只有目标版本可查询且 `latest` 指向目标版本,才算 npm 发布完成。
|
|
167
|
+
|
|
168
|
+
最后进行公开安装验证:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
npm install -g @apolloyh/apollo-agent@latest --prefer-online
|
|
172
|
+
apollo
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 8. 创建 GitHub Release
|
|
176
|
+
|
|
177
|
+
把与 npm 发布完全相同的 tarball 作为 Release 附件:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
VERSION=$(node -p "require('./package.json').version")
|
|
181
|
+
TARBALL="releases/npm-packages/apolloyh-apollo-agent-${VERSION}.tgz"
|
|
182
|
+
|
|
183
|
+
gh release create "v${VERSION}" "$TARBALL" \
|
|
184
|
+
--target main \
|
|
185
|
+
--title "Apollo v${VERSION}" \
|
|
186
|
+
--generate-notes
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
验证 Release 和附件:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
gh release view "v${VERSION}" \
|
|
193
|
+
--json tagName,name,isDraft,isPrerelease,url,assets
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
如果 Release 已存在,只补传或替换附件:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
gh release upload "v${VERSION}" "$TARBALL" --clobber
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## 9. 完整发布清单
|
|
203
|
+
|
|
204
|
+
- [ ] npm registry 上的旧版本已确认
|
|
205
|
+
- [ ] `package.json`、`package-lock.json`、`src/brand.ts` 版本一致
|
|
206
|
+
- [ ] 类型检查、构建和测试通过
|
|
207
|
+
- [ ] tarball 内容正确且不含秘密
|
|
208
|
+
- [ ] 真实 tarball 本地安装通过
|
|
209
|
+
- [ ] 源码已提交并推送到 `main`
|
|
210
|
+
- [ ] npm WebAuthn 发布成功
|
|
211
|
+
- [ ] 目标版本可从 registry 查询
|
|
212
|
+
- [ ] `latest` 指向目标版本
|
|
213
|
+
- [ ] GitHub Release 已创建并附加同一 tarball
|
|
214
|
+
- [ ] 工作区干净且本地分支与远端同步
|
|
215
|
+
|
|
216
|
+
## 常见错误
|
|
217
|
+
|
|
218
|
+
### `E403` 或版本已存在
|
|
219
|
+
|
|
220
|
+
npm 版本不可覆盖。重新增加版本号、重新测试并打包,不要尝试覆盖旧版本。
|
|
221
|
+
|
|
222
|
+
### `E404 Not Found`
|
|
223
|
+
|
|
224
|
+
发布后短时间查询不到通常是 registry 传播延迟。等待几秒并使用 `--prefer-online` 重试。如果持续失败,再检查包权限和登录账号。
|
|
225
|
+
|
|
226
|
+
### `EEXIST .../bin/apollo`
|
|
227
|
+
|
|
228
|
+
本机已有旧的命令或手动软链接:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
which apollo
|
|
232
|
+
npm uninstall -g @apolloyh/apollo-agent
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
确认旧路径后再重新安装。不要直接使用 `--force`,除非已确认覆盖目标。
|
|
236
|
+
|
|
237
|
+
### npm 要求 OTP
|
|
238
|
+
|
|
239
|
+
本项目使用 WebAuthn 发布,应指定 `--auth-type=web`。按 Enter 打开 npm 官方授权页,然后使用 Touch ID 或安全密钥,不需要输入 OTP。
|
|
240
|
+
|
|
241
|
+
### npm 发布成功但 GitHub Release 失败
|
|
242
|
+
|
|
243
|
+
不要重新发布 npm。修复 GitHub 登录或网络问题后,重新执行 `gh release create` 或 `gh release upload` 即可。
|
|
244
|
+
|
|
245
|
+
### 发布了有问题的版本
|
|
246
|
+
|
|
247
|
+
已发布版本不能安全地原地替换。修复问题并发布新的 patch 版本。必要时可先标记旧版本:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
npm deprecate @apolloyh/apollo-agent@0.1.11 "Please upgrade to a newer version."
|
|
251
|
+
```
|
package/docs/sdk.md
CHANGED
|
@@ -82,6 +82,8 @@ const engine = await createQueryEngine({
|
|
|
82
82
|
| 参数 | 类型 | 说明 |
|
|
83
83
|
|---|---|---|
|
|
84
84
|
| `configPath` | `string` | Agent 显式配置路径;在用户配置和项目配置之后覆盖,默认还会发现 `~/.apollo/config.json`、`.apollo/config.json`,并兼容旧 `agent.config.json` |
|
|
85
|
+
| `configMode` | `"layered" \| "isolated"` | `isolated` 只读取显式 `configPath`,适合 Web 服务;默认保持 CLI 分层发现 |
|
|
86
|
+
| `workspaceRoot` | `string` | 覆盖会话、记忆和工具使用的工作目录,不改变配置文件来源 |
|
|
85
87
|
| `envPath` | `string` | 可选环境变量文件;未提供模型配置时默认发现 `.apollo/.env`,然后 `.env` |
|
|
86
88
|
| `agentConfig` | `AgentConfig` | 直接传入完整 Agent 配置;优先于 `configPath` |
|
|
87
89
|
| `llmConfig` | `LlmConfig` | 直接传入模型配置;优先于环境变量 |
|
|
@@ -94,6 +96,8 @@ const engine = await createQueryEngine({
|
|
|
94
96
|
|
|
95
97
|
如果同时传入 `agentConfig` 和 `configPath`,使用 `agentConfig`;如果同时传入 `llmConfig` 和环境变量,使用 `llmConfig`。
|
|
96
98
|
|
|
99
|
+
`LlmConfig.protocol` 可设为 `anthropic` 或 `openai`。OpenAI 协议使用 `/v1/chat/completions`,并将响应归一为 Apollo 内部的 text、thinking、tool_use 和 usage 事件。
|
|
100
|
+
|
|
97
101
|
## 系统提示词与缓存
|
|
98
102
|
|
|
99
103
|
`~/.apollo/config.json` 和项目的 `.apollo/config.json` 都可以配置:
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apolloyh/apollo-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Apollo — your personal agent. Answer first, act when needed, with tools, skills, and isolated Task subagents.",
|
|
6
6
|
"bin": {
|
|
7
|
-
"apollo": "
|
|
7
|
+
"apollo": "dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"main": "./dist/sdk.js",
|
|
10
10
|
"types": "./dist/sdk.d.ts",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"README.md",
|
|
25
25
|
"docs/guide.md",
|
|
26
26
|
"docs/features-cc.md",
|
|
27
|
+
"docs/npm-release.md",
|
|
27
28
|
"docs/sdk.md",
|
|
28
29
|
".apollo/config.example.json",
|
|
29
30
|
".apollo/hooks.example.json",
|