@awiki/cli 0.0.1-beta.2
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/release.yml +44 -0
- package/.goreleaser.yml +44 -0
- package/AGENTS.md +60 -0
- package/CLAUDE.md +192 -0
- package/README.md +2 -0
- package/docs/architecture/awiki-command-v2.md +955 -0
- package/docs/architecture/awiki-skill-architecture.md +475 -0
- package/docs/architecture/awiki-v2-architecture.md +1063 -0
- package/docs/architecture//345/217/202/350/200/203/346/226/207/346/241/243/cli-init.md +1008 -0
- package/docs/architecture//345/217/202/350/200/203/346/226/207/346/241/243/output-format.md +407 -0
- package/docs/architecture//345/217/202/350/200/203/346/226/207/346/241/243/overall-init.md +741 -0
- package/docs/harness/review-spec.md +474 -0
- package/docs/installation.md +372 -0
- package/docs/plan/awiki-v2-implementation-plan.md +903 -0
- package/docs/plan/phase-0/adr-index.md +56 -0
- package/docs/plan/phase-0/audit-findings.md +251 -0
- package/docs/plan/phase-0/capability-mapping.md +108 -0
- package/docs/plan/phase-0/implementation-constraints.md +363 -0
- package/docs/publish.md +169 -0
- package/go.mod +29 -0
- package/go.sum +73 -0
- package/internal/anpsdk/registry.go +63 -0
- package/internal/authsdk/session.go +351 -0
- package/internal/buildinfo/buildinfo.go +34 -0
- package/internal/cli/app.go +136 -0
- package/internal/cli/app_test.go +88 -0
- package/internal/cli/debug.go +104 -0
- package/internal/cli/group.go +263 -0
- package/internal/cli/id.go +473 -0
- package/internal/cli/init.go +134 -0
- package/internal/cli/msg.go +228 -0
- package/internal/cli/page.go +267 -0
- package/internal/cli/root.go +499 -0
- package/internal/cli/runtime.go +232 -0
- package/internal/cli/upgrade.go +60 -0
- package/internal/cmdmeta/catalog.go +203 -0
- package/internal/cmdmeta/catalog_test.go +21 -0
- package/internal/config/config.go +399 -0
- package/internal/config/config_test.go +104 -0
- package/internal/config/write.go +37 -0
- package/internal/content/service.go +314 -0
- package/internal/content/service_test.go +165 -0
- package/internal/content/types.go +44 -0
- package/internal/docs/topics.go +110 -0
- package/internal/doctor/doctor.go +306 -0
- package/internal/identity/client.go +267 -0
- package/internal/identity/did.go +85 -0
- package/internal/identity/did_test.go +50 -0
- package/internal/identity/layout.go +206 -0
- package/internal/identity/legacy.go +378 -0
- package/internal/identity/public.go +70 -0
- package/internal/identity/public_test.go +73 -0
- package/internal/identity/readiness.go +74 -0
- package/internal/identity/service.go +826 -0
- package/internal/identity/store.go +385 -0
- package/internal/identity/store_test.go +180 -0
- package/internal/identity/types.go +204 -0
- package/internal/message/auth.go +167 -0
- package/internal/message/group_service.go +838 -0
- package/internal/message/group_wire.go +350 -0
- package/internal/message/group_wire_test.go +67 -0
- package/internal/message/helpers.go +61 -0
- package/internal/message/http_client.go +334 -0
- package/internal/message/proof.go +156 -0
- package/internal/message/proof_test.go +61 -0
- package/internal/message/service.go +696 -0
- package/internal/message/service_test.go +97 -0
- package/internal/message/types.go +155 -0
- package/internal/message/wire.go +100 -0
- package/internal/message/wire_test.go +49 -0
- package/internal/message/ws_proxy_client.go +151 -0
- package/internal/output/output.go +350 -0
- package/internal/output/output_test.go +48 -0
- package/internal/runtime/config.go +117 -0
- package/internal/runtime/config_test.go +46 -0
- package/internal/runtime/listener/files.go +65 -0
- package/internal/runtime/listener/manager.go +142 -0
- package/internal/runtime/listener/server.go +983 -0
- package/internal/runtime/listener/server_test.go +319 -0
- package/internal/runtime/listener/sysproc_unix.go +17 -0
- package/internal/runtime/listener/sysproc_windows.go +13 -0
- package/internal/runtime/listener/types.go +21 -0
- package/internal/runtime/listener/wsclient.go +299 -0
- package/internal/runtime/listener/wsclient_test.go +41 -0
- package/internal/store/dao.go +632 -0
- package/internal/store/dao_test.go +87 -0
- package/internal/store/helpers.go +197 -0
- package/internal/store/import.go +499 -0
- package/internal/store/import_test.go +103 -0
- package/internal/store/open.go +71 -0
- package/internal/store/query.go +151 -0
- package/internal/store/schema.go +277 -0
- package/internal/store/schema_test.go +56 -0
- package/internal/store/types.go +177 -0
- package/internal/update/update.go +368 -0
- package/package.json +17 -0
- package/scripts/install.js +171 -0
- package/scripts/release/release-prerelease.sh +86 -0
- package/scripts/release/tag-release.sh +66 -0
- package/scripts/release/withdraw-release.sh +78 -0
- package/scripts/run.js +69 -0
- package/skills/README.md +32 -0
- package/skills/awiki-bundle/SKILL.md +76 -0
- package/skills/awiki-debug/SKILL.md +80 -0
- package/skills/awiki-group/SKILL.md +111 -0
- package/skills/awiki-id/SKILL.md +123 -0
- package/skills/awiki-msg/SKILL.md +131 -0
- package/skills/awiki-page/SKILL.md +93 -0
- package/skills/awiki-people/SKILL.md +66 -0
- package/skills/awiki-runtime/SKILL.md +137 -0
- package/skills/awiki-shared/SKILL.md +124 -0
- package/skills/awiki-workflow-discovery/SKILL.md +93 -0
- package/skills/awiki-workflow-onboarding/SKILL.md +119 -0
- package/skills/manifests/skills.yaml +260 -0
- package/skills/templates/bundle-skill-template.md +42 -0
- package/skills/templates/debug-skill-template.md +44 -0
- package/skills/templates/domain-skill-template.md +56 -0
- package/skills/templates/shared-skill-template.md +46 -0
- package/skills/templates/workflow-skill-template.md +46 -0
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
# awiki-cli 安装说明
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
awiki-cli 是 awiki 的命令行客户端,用 Go 编写,通过 CLI 命令编排对后端服务的 API 调用。支持 DID 身份管理、消息收发(私聊 / 群聊)、群组管理、WebSocket 实时监听等能力。
|
|
6
|
+
|
|
7
|
+
**技术栈**: Go 1.22 (pure Go, no CGO) + Cobra + SQLite + ANP SDK
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. 编译工具
|
|
12
|
+
|
|
13
|
+
### 1.1 Go 1.22
|
|
14
|
+
|
|
15
|
+
版本基线固定为 Go 1.22.x,不使用 CGO。
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# macOS (Homebrew)
|
|
19
|
+
brew install go@1.22
|
|
20
|
+
|
|
21
|
+
# 或从官网下载
|
|
22
|
+
# https://go.dev/dl/
|
|
23
|
+
|
|
24
|
+
# 验证版本
|
|
25
|
+
go version
|
|
26
|
+
# go version go1.22.x darwin/arm64
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 1.2 ANP Go SDK(远端模块依赖)
|
|
30
|
+
|
|
31
|
+
awiki-cli 直接使用远端 ANP Go SDK 模块,版本固定为 `v0.7.2`:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
go get github.com/agent-network-protocol/anp/golang@v0.7.2
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
首次拉取依赖时请确保本机可以访问公开 Go module proxy 或对应源码仓库。
|
|
38
|
+
|
|
39
|
+
### 1.3 Docker 备选(无本地 Go 时)
|
|
40
|
+
|
|
41
|
+
如本机未安装 Go,可使用 Docker 镜像:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
docker run --rm -v "$PWD":/app -w /app golang:1.22 go build ./...
|
|
45
|
+
docker run --rm -v "$PWD":/app -w /app golang:1.22 go test ./...
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 2. 数据库
|
|
51
|
+
|
|
52
|
+
awiki-cli 使用 **pure Go SQLite** 作为本地存储,无需安装外部数据库。
|
|
53
|
+
|
|
54
|
+
### 2.1 自动初始化
|
|
55
|
+
|
|
56
|
+
数据库文件在首次运行时自动创建和初始化(`EnsureSchema`),位于 awiki-cli 工作目录下:
|
|
57
|
+
|
|
58
|
+
- 默认工作目录(AWIKI_HOME):
|
|
59
|
+
- macOS / Linux:`$HOME/.awiki-cli`
|
|
60
|
+
- Windows:`%LOCALAPPDATA%\AwikiCli`
|
|
61
|
+
- 数据库路径:`$AWIKI_HOME/db/awiki-cli.db`
|
|
62
|
+
|
|
63
|
+
Schema 版本为 v11,包含以下本地表:
|
|
64
|
+
|
|
65
|
+
| 表名 | 用途 |
|
|
66
|
+
|------|------|
|
|
67
|
+
| `contacts` | 联系人(owner_did 分区) |
|
|
68
|
+
| `messages` | 消息本地缓存(私聊 + 群聊) |
|
|
69
|
+
| `e2ee_outbox` | E2EE 加密消息发件箱 |
|
|
70
|
+
| `groups` | 群组本地缓存 |
|
|
71
|
+
| `group_members` | 群成员本地缓存 |
|
|
72
|
+
| `relationship_events` | 关系事件记录 |
|
|
73
|
+
| `e2ee_sessions` | E2EE 会话密钥状态 |
|
|
74
|
+
|
|
75
|
+
视图:`threads`(会话列表)、`inbox`(收件箱)、`outbox`(发件箱)
|
|
76
|
+
|
|
77
|
+
### 2.2 工作目录覆盖(AWIKI_HOME / init)
|
|
78
|
+
|
|
79
|
+
awiki-cli 使用一个统一的“工作目录”存放所有本地数据、配置和日志。
|
|
80
|
+
|
|
81
|
+
日常使用推荐通过 `awiki-cli init` 来初始化工作目录:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# 使用默认工作目录(例如 ~/.awiki-cli)
|
|
85
|
+
./awiki-cli init
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
高级场景(如 CI、系统测试或一次性试验)可以通过环境变量 `AWIKI_HOME` 覆盖默认位置:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
export AWIKI_HOME="$HOME/my-awiki"
|
|
92
|
+
# 数据库: $AWIKI_HOME/db/awiki-cli.db
|
|
93
|
+
# 配置文件: $AWIKI_HOME/config.json
|
|
94
|
+
# 身份数据: $AWIKI_HOME/identities/
|
|
95
|
+
# 运行日志: $AWIKI_HOME/logs/
|
|
96
|
+
# 缓存与临时: $AWIKI_HOME/cache/ / $AWIKI_HOME/tmp/
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
> 提示:awiki-cli 会在需要时自动创建上述目录,权限为 `0700`,数据库和敏感文件权限为 `0600`。普通用户可以直接使用默认工作目录;在多环境 / CI 场景下再通过 `AWIKI_HOME` 明确指定工作目录根。
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 3. 配置与工作目录
|
|
104
|
+
|
|
105
|
+
### 3.1 目录布局
|
|
106
|
+
|
|
107
|
+
本轮改造后,awiki-cli 的本地文件全部收敛到单一工作目录(`AWIKI_HOME`):
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
$AWIKI_HOME/
|
|
111
|
+
config.json # 运行期主配置
|
|
112
|
+
db/awiki-cli.db # SQLite 数据库
|
|
113
|
+
identities/ # 本地身份与密钥
|
|
114
|
+
logs/ # 运行日志
|
|
115
|
+
cache/ # 缓存数据
|
|
116
|
+
tmp/ # 临时文件 / runtime 状态
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
- macOS / Linux 默认工作目录根:`$HOME/.awiki-cli`
|
|
120
|
+
- Windows 默认工作目录根:`%LOCALAPPDATA%\AwikiCli`
|
|
121
|
+
- 运行时解析工作目录根的规则:
|
|
122
|
+
1. 若设置环境变量 `AWIKI_HOME`,本次运行优先使用该路径(高级/临时覆写入口);
|
|
123
|
+
2. 否则使用默认根本身。
|
|
124
|
+
|
|
125
|
+
### 3.2 config.json 结构
|
|
126
|
+
|
|
127
|
+
配置文件为标准 JSON(不支持注释、尾逗号),路径为:`$AWIKI_HOME/config.json`。
|
|
128
|
+
|
|
129
|
+
示例:
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"services": {
|
|
134
|
+
"domain": "awiki.ai"
|
|
135
|
+
},
|
|
136
|
+
"identity": {
|
|
137
|
+
"active": "default"
|
|
138
|
+
},
|
|
139
|
+
"runtime": {
|
|
140
|
+
"mode": "http"
|
|
141
|
+
},
|
|
142
|
+
"output": {
|
|
143
|
+
"format": "json",
|
|
144
|
+
"no_color": false
|
|
145
|
+
},
|
|
146
|
+
"update": {
|
|
147
|
+
"disable_strict_version": false,
|
|
148
|
+
"metadata_cache_ttl_seconds": 0
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
字段说明(与实现保持一致):
|
|
154
|
+
|
|
155
|
+
- `services.domain`:后端域名(例如 `awiki.ai` / `awiki.test`),CLI 内部据此推导各服务 URL:
|
|
156
|
+
- user-service:`https://<domain>`
|
|
157
|
+
- message-service:`https://<domain>/message-service`
|
|
158
|
+
- WebSocket:`wss://<domain>/message-service/ws`
|
|
159
|
+
- `identity.active`:当前活跃身份名称(如 `default`)。
|
|
160
|
+
- `runtime.mode`:运行模式,`"http"` 或 `"websocket"`。
|
|
161
|
+
- `output.format`:输出格式,如 `"json"` / `"table"` 等。
|
|
162
|
+
- `output.no_color`:是否禁用彩色输出。
|
|
163
|
+
- `update.disable_strict_version`:是否关闭严格版本校验;一般保持 `false` 即可,仅用于调试或紧急逃生(也可通过 `AWIKI_CLI_DISABLE_STRICT_VERSION` 环境变量临时关闭)。
|
|
164
|
+
- `update.metadata_cache_ttl_seconds`:版本元数据缓存 TTL(0 表示使用内部默认值)。
|
|
165
|
+
|
|
166
|
+
首次运行如果没有 `config.json`,awiki-cli 使用内置默认值;当通过后续命令需要持久化配置时,会自动创建该文件并写入当前生效值。
|
|
167
|
+
|
|
168
|
+
### 3.3 运行期环境变量覆盖
|
|
169
|
+
|
|
170
|
+
运行期只保留少量 `AWIKI_*` 环境变量,用于临时覆盖配置(优先级:**命令行 flag > 环境变量 > config.json > 默认值**):
|
|
171
|
+
|
|
172
|
+
| 环境变量 | 用途 | 默认值 |
|
|
173
|
+
|----------|------|--------|
|
|
174
|
+
| `AWIKI_HOME` | 临时覆盖工作目录根路径(高级/CI/测试用) | 见 3.1 |
|
|
175
|
+
| `AWIKI_IDENTITY` | 临时覆盖活跃身份 (`identity.active`) | 空(使用 config.json 或身份索引) |
|
|
176
|
+
| `AWIKI_RUNTIME_MODE` | 临时覆盖运行模式 (`runtime.mode`) | `http` |
|
|
177
|
+
| `AWIKI_FORMAT` | 临时覆盖输出格式 (`output.format`) | `json` |
|
|
178
|
+
| `AWIKI_NO_COLOR` | 临时覆盖是否禁用颜色 (`output.no_color`) | `false` |
|
|
179
|
+
|
|
180
|
+
另外,与版本强制升级相关还预留了两个高级开关(通常只在调试或 CI 场景下使用):`AWIKI_CLI_DISABLE_STRICT_VERSION` 和 `AWIKI_CLI_UPDATE_CACHE_TTL`,分别用于临时关闭严格版本校验、调整版本元数据缓存 TTL(秒)。正常用户无需设置它们。
|
|
181
|
+
|
|
182
|
+
> 注意:不再提供 `AWIKI_CONFIG_DIR` / `AWIKI_DATA_DIR` / `AWIKI_STATE_DIR` / `AWIKI_CACHE_DIR`,也不再提供 `AWIKI_USER_SERVICE_URL` 等 URL 级环境变量,更不再兼容任何 `AVIKI_*` / `E2E_*` 变量。服务端域名等长期配置统一通过 `config.json` 管理。
|
|
183
|
+
|
|
184
|
+
### 3.4 身份文件布局
|
|
185
|
+
|
|
186
|
+
DID 身份存储在 `$AWIKI_HOME/identities/` 下,每个身份一个子目录:
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
identities/
|
|
190
|
+
├── index.json # 身份索引(默认身份、凭证列表)
|
|
191
|
+
└── <identity-dir>/
|
|
192
|
+
├── identity.json # 身份元数据
|
|
193
|
+
├── auth.json # JWT token 缓存
|
|
194
|
+
├── did_document.json # DID 文档
|
|
195
|
+
├── key-1-private.pem # secp256k1 身份私钥
|
|
196
|
+
├── key-1-public.pem # secp256k1 身份公钥
|
|
197
|
+
├── e2ee-signing-private.pem # E2EE 签名私钥
|
|
198
|
+
├── e2ee-agreement-private.pem # E2EE 密钥协商私钥
|
|
199
|
+
└── e2ee-state.json # E2EE 会话状态
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
- 目录权限:`0700`
|
|
203
|
+
- 私钥 / 凭证文件权限:`0600`
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 4. 编译与运行
|
|
208
|
+
|
|
209
|
+
### 4.1 安装依赖
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
cd awiki-cli
|
|
213
|
+
go mod tidy
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### 4.2 编译
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
# pure Go 编译(必须 CGO_ENABLED=0)
|
|
220
|
+
CGO_ENABLED=0 go build -o awiki-cli ./cmd/awiki-cli/
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### 4.3 验证
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# 版本信息
|
|
227
|
+
./awiki-cli version
|
|
228
|
+
|
|
229
|
+
# 初始化工作目录(推荐在首次安装后执行一次)
|
|
230
|
+
./awiki-cli init
|
|
231
|
+
# ./awiki-cli init --home "$HOME/my-awiki" # 可选:自定义工作目录
|
|
232
|
+
|
|
233
|
+
# 系统诊断(检查配置、身份、数据库、运行环境)
|
|
234
|
+
./awiki-cli doctor
|
|
235
|
+
|
|
236
|
+
# 查看当前配置
|
|
237
|
+
./awiki-cli config show
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### 4.4 运行测试
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
CGO_ENABLED=0 go test ./...
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### 4.5 代码格式化
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
gofmt -w $(find cmd internal -name '*.go')
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## 5. 快速上手
|
|
255
|
+
|
|
256
|
+
### 5.1 创建身份
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# 创建本地 DID 身份
|
|
260
|
+
./awiki-cli id create --name my-identity
|
|
261
|
+
|
|
262
|
+
# 查看身份列表
|
|
263
|
+
./awiki-cli id list
|
|
264
|
+
|
|
265
|
+
# 查看当前身份
|
|
266
|
+
./awiki-cli id current
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### 5.2 注册 Handle
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
# 注册 handle(需要后端服务可用)
|
|
273
|
+
./awiki-cli id register --handle myname
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### 5.3 发送消息
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# 私聊
|
|
280
|
+
./awiki-cli msg send --to <handle> --content "hello"
|
|
281
|
+
|
|
282
|
+
# 群聊
|
|
283
|
+
./awiki-cli msg send --group <group-id> --content "hello"
|
|
284
|
+
|
|
285
|
+
# 查看收件箱
|
|
286
|
+
./awiki-cli msg inbox
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### 5.4 WebSocket 模式
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# 切换到 WebSocket 模式
|
|
293
|
+
./awiki-cli runtime mode set websocket
|
|
294
|
+
|
|
295
|
+
# 启动后台监听器
|
|
296
|
+
./awiki-cli runtime listener start
|
|
297
|
+
|
|
298
|
+
# 查看监听器状态
|
|
299
|
+
./awiki-cli runtime listener status
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 6. 依赖服务
|
|
305
|
+
|
|
306
|
+
awiki-cli 是纯客户端,不需要本地数据库服务,但需要连接以下后端:
|
|
307
|
+
|
|
308
|
+
| 服务 | 用途 | 默认地址 |
|
|
309
|
+
|------|------|----------|
|
|
310
|
+
| user-service | 用户认证、DID 注册、Handle 管理、群组管理 | `https://awiki.ai` |
|
|
311
|
+
| message-service | 消息收发、WebSocket 推送 | `https://awiki.ai` |
|
|
312
|
+
|
|
313
|
+
本地开发时需先启动这两个后端服务,参考各自的安装说明:
|
|
314
|
+
|
|
315
|
+
- user-service 安装说明:`../../user-service/docs/installation.md`
|
|
316
|
+
- message-service 安装说明:`../../message-service/docs/installation.md`
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## 7. 常见问题
|
|
321
|
+
|
|
322
|
+
### Q: 编译报错 `CGO_ENABLED` 相关
|
|
323
|
+
|
|
324
|
+
本项目必须以 `CGO_ENABLED=0` 编译。SQLite 使用的是 pure Go 实现 (`modernc.org/sqlite`),不依赖 C 库:
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
CGO_ENABLED=0 go build ./cmd/awiki-cli/
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Q: 编译报错找不到 ANP SDK
|
|
331
|
+
|
|
332
|
+
确认当前模块依赖已成功下载,并且 `go.mod` 中使用的是远端版本 `github.com/agent-network-protocol/anp/golang v0.7.2`:
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
go get github.com/agent-network-protocol/anp/golang@v0.7.2
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### Q: `go mod tidy` 报错
|
|
339
|
+
|
|
340
|
+
可能是远端依赖下载失败,或 Go 版本不匹配。确认使用 Go 1.22.x:
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
go version
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### Q: doctor 命令报数据库异常
|
|
347
|
+
|
|
348
|
+
数据库在首次使用相关命令时自动创建。如需重置:
|
|
349
|
+
|
|
350
|
+
```bash
|
|
351
|
+
rm -rf "$AWIKI_HOME/db/awiki-cli.db"
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
下次运行会自动重建 schema。
|
|
355
|
+
|
|
356
|
+
### Q: 连接本地后端服务失败
|
|
357
|
+
|
|
358
|
+
检查 `config.json` 是否正确指向本地服务域名,或通过环境变量临时覆盖:
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
./awiki-cli config show | jq '.data.user_service_url, .data.message_service_url'
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Q: v1 身份迁移
|
|
365
|
+
|
|
366
|
+
如果之前使用 Python 版 CLI(awiki-agent-id-message),可导入旧身份:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
./awiki-cli id import-v1
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
旧身份目录默认扫描 `~/.openclaw/credentials/awiki-agent-id-message/`。
|