@c956180462/awbs 0.0.1

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.
Files changed (50) hide show
  1. package/AWBS_CORE_DESIGN.md +983 -0
  2. package/AWBS_CURRENT_FEATURES.md +463 -0
  3. package/LICENSE +21 -0
  4. package/README.md +265 -0
  5. package/TASK_001_VIEW_AUTHORITY.md +446 -0
  6. package/TASK_003_AUTHORITY_LEDGER_AND_DB_AUDIT.md +268 -0
  7. package/TASK_004_TRUSTED_AUTHORITY_LAYER.md +547 -0
  8. package/TASK_005_AUTHORITY_SESSION.md +218 -0
  9. package/TASK_006_TRUST_BOUNDARY_HARDENING.md +381 -0
  10. package/TASK_007_TRUSTED_OPERATION_ENTRY.md +129 -0
  11. package/bin/awbs.js +2 -0
  12. package/docs/DEVELOPMENT_LEARNING.md +319 -0
  13. package/docs/FULL_CHAIN.md +295 -0
  14. package/docs/PRODUCT.md +188 -0
  15. package/docs/USAGE.md +294 -0
  16. package/package.json +45 -0
  17. package/src/adapters/file-summary-store.ts +88 -0
  18. package/src/adapters/git-cli.ts +107 -0
  19. package/src/adapters/local-authority-session.ts +606 -0
  20. package/src/adapters/local-file-database.ts +199 -0
  21. package/src/adapters/sealed-authority.ts +725 -0
  22. package/src/adapters/session-authority-client.ts +176 -0
  23. package/src/adapters/sqlite-index-store.ts +176 -0
  24. package/src/cli.ts +491 -0
  25. package/src/domain/authority-types.ts +194 -0
  26. package/src/domain/constants.ts +11 -0
  27. package/src/domain/errors.ts +6 -0
  28. package/src/domain/hash.ts +27 -0
  29. package/src/domain/path-policy.ts +36 -0
  30. package/src/domain/paths.ts +65 -0
  31. package/src/domain/session-proof.ts +140 -0
  32. package/src/domain/session-types.ts +101 -0
  33. package/src/domain/types.ts +94 -0
  34. package/src/ports/authority-session.ts +8 -0
  35. package/src/ports/authority.ts +26 -0
  36. package/src/ports/file-database.ts +18 -0
  37. package/src/ports/git.ts +23 -0
  38. package/src/ports/index-store.ts +7 -0
  39. package/src/ports/summary-store.ts +16 -0
  40. package/src/runtime.ts +56 -0
  41. package/src/session-entry.ts +1 -0
  42. package/src/usecases/authority.ts +53 -0
  43. package/src/usecases/changeset.ts +437 -0
  44. package/src/usecases/db.ts +192 -0
  45. package/src/usecases/index.ts +136 -0
  46. package/src/usecases/init.ts +48 -0
  47. package/src/usecases/ledger.ts +146 -0
  48. package/src/usecases/session.ts +48 -0
  49. package/src/usecases/trusted-chain.ts +56 -0
  50. package/src/usecases/view.ts +166 -0
@@ -0,0 +1,295 @@
1
+ # AWBS 全链路文档
2
+
3
+ 本文档描述 AWBS 初版的完整运行链路。它关注一件事:
4
+
5
+ ```text
6
+ 开放文件系统中的业务内容
7
+ -> 被投影成 agent 工作空间
8
+ -> 产出 changeset
9
+ -> 经过 authority 认证
10
+ -> 推进 AWBS trusted chain
11
+ ```
12
+
13
+ AWBS 不是沙箱系统。它不承诺阻止人或进程直接修改文件系统、Git HEAD 或工作区。AWBS 的承诺是:**只有 AWBS 可信链承认的 operation,才进入 AWBS 认证数据库事实。**
14
+
15
+ ## 1. 核心事实源
16
+
17
+ AWBS 初版里有三类事实:
18
+
19
+ ```text
20
+ 业务事实
21
+ 普通目录和文件
22
+
23
+ 版本事实
24
+ Git commit / tree / diff
25
+
26
+ 认证事实
27
+ .awbs/authority/*
28
+ refs/awbs/trusted
29
+ ```
30
+
31
+ 普通 Git `HEAD` 不等于 AWBS 认证数据库。当前工作区也不等于 AWBS 认证数据库。
32
+
33
+ AWBS 认证数据库定义为:
34
+
35
+ ```text
36
+ refs/awbs/trusted 指向的 Git commit 对应的 tree
37
+ + sealed authority ledger 中可验证的 head entry
38
+ ```
39
+
40
+ ## 2. 初始化链路
41
+
42
+ 命令:
43
+
44
+ ```powershell
45
+ awbs init
46
+ ```
47
+
48
+ 发生的事情:
49
+
50
+ - 如果当前目录不是 Git repo,执行 `git init`。
51
+ - 创建 `.awbs/` 基础结构。
52
+ - 初始化 `.awbs/authority/repo.json`。
53
+ - 生成 `.awbs/private/local.json`。
54
+ - 创建 sealed authority catalog。
55
+ - 写入 `.awbs/.gitignore`,忽略 index、views、changesets、private。
56
+
57
+ 随后用户需要创建初始 Git commit:
58
+
59
+ ```powershell
60
+ git add .
61
+ git commit -m "initialize database"
62
+ ```
63
+
64
+ AWBS 不自动创建 initial commit,因为初始数据库内容应该由上层应用或用户明确决定。
65
+
66
+ ## 3. Authority Session 链路
67
+
68
+ 命令:
69
+
70
+ ```powershell
71
+ '{"recoverySecret":"dev-recovery","controllerToken":"dev-controller"}' |
72
+ awbs authority session start --control-stdin
73
+ ```
74
+
75
+ 发生的事情:
76
+
77
+ - host controller 通过 stdin 注入 `recoverySecret` 和 `controllerToken`。
78
+ - AWBS 读取 `.awbs/private/local.json`。
79
+ - 用 `recoverySecret` 加密 local material,写入 `recovery.seal.json`。
80
+ - 启动同用户后台 session daemon。
81
+ - 删除磁盘上的 `local.json`。
82
+ - key 只保留在 daemon 内存中。
83
+
84
+ 可信写入命令不把 raw `controllerToken` 发给 daemon。CLI 会生成:
85
+
86
+ ```text
87
+ controller proof
88
+ = HMAC(controllerToken, requestHash + nonce + createdAt)
89
+ ```
90
+
91
+ daemon 会拒绝重复 nonce。可信写入成功响应必须带 response proof,CLI 验证后才承认成功。
92
+
93
+ ## 4. Trusted Chain Bootstrap
94
+
95
+ 命令:
96
+
97
+ ```powershell
98
+ 'dev-controller' | awbs ledger bootstrap --control-token-stdin
99
+ ```
100
+
101
+ 前提:
102
+
103
+ - Git HEAD 存在。
104
+ - 工作树干净。
105
+ - authority session 可用。
106
+ - controller capability 有效。
107
+
108
+ 发生的事情:
109
+
110
+ - 当前 Git HEAD 被作为 `parentTrustedCommit`。
111
+ - authority 创建第一条 ledger entry。
112
+ - Git commit 写入 sealed ledger。
113
+ - `refs/awbs/trusted` 指向 bootstrap 后的 commit。
114
+
115
+ 从这一刻起,AWBS 认证数据库不再跟着普通 HEAD 自动变化。
116
+
117
+ ## 5. 索引链路
118
+
119
+ 命令:
120
+
121
+ ```powershell
122
+ awbs index rebuild
123
+ awbs index query [term]
124
+ ```
125
+
126
+ 发生的事情:
127
+
128
+ - AWBS 读取 `refs/awbs/trusted`。
129
+ - 从 trusted commit 创建临时 Git worktree。
130
+ - 扫描 trusted tree,而不是当前污染工作区。
131
+ - 写入 `.awbs/index/files.sqlite`。
132
+ - 使用 FTS5 索引 path 和 summary。
133
+
134
+ 索引是可重建材料,不是事实源。
135
+
136
+ ## 6. 摘要链路
137
+
138
+ 命令:
139
+
140
+ ```powershell
141
+ awbs summary set B/draft.md --text "业务层写入的摘要"
142
+ awbs summary get B/draft.md
143
+ awbs summary list
144
+ ```
145
+
146
+ 原则:
147
+
148
+ - AWBS 永远不内置 AI 摘要。
149
+ - AWBS 不保存 AI API key。
150
+ - AWBS 不配置模型、提示词或 provider。
151
+ - 摘要由上层业务生成后写入 AWBS。
152
+
153
+ `summary set` 会基于当前 trusted commit 计算目标文件 sha。文件内容变化后,旧 exact summary 不会静默套到新内容上。
154
+
155
+ ## 7. View Projection 链路
156
+
157
+ 命令:
158
+
159
+ ```powershell
160
+ 'dev-controller' |
161
+ awbs view create --out ..\awbs-workspace --read A --write B --control-token-stdin
162
+ ```
163
+
164
+ 发生的事情:
165
+
166
+ - AWBS 读取当前 trusted commit。
167
+ - 从 trusted tree 复制 `A/`、`B/` 到 workspace。
168
+ - 保持原目录结构,不重命名。
169
+ - 保存 baseline 到 `.awbs/views/<viewId>/baseline/`。
170
+ - 创建 sealed view contract。
171
+ - workspace 中写入 `.awbs-view.json`。
172
+
173
+ 权限事实源不是 workspace 里的 `.awbs-view.json`,而是 sealed view contract。
174
+
175
+ 系统路径永远不能作为业务路径投影:
176
+
177
+ ```text
178
+ .git
179
+ .awbs
180
+ .awbs-view.json
181
+ ```
182
+
183
+ 大小写变体也会被拒绝。
184
+
185
+ ## 8. Workspace 工作链路
186
+
187
+ agent 只在 workspace 中工作。它可以:
188
+
189
+ - 新增允许写路径下的文件。
190
+ - 修改允许写路径下的文件。
191
+ - 删除允许写路径下的文件。
192
+ - 误改只读路径。
193
+ - 误建 `.git` / `.awbs` 等保留路径。
194
+
195
+ AWBS 不阻止 workspace 中出现混乱。AWBS 控制的是:哪些变化可以进入认证数据库。
196
+
197
+ ## 9. Changeset Collect 链路
198
+
199
+ 命令:
200
+
201
+ ```powershell
202
+ awbs changeset collect --workspace ..\awbs-workspace
203
+ ```
204
+
205
+ 发生的事情:
206
+
207
+ - 读取 workspace `.awbs-view.json` 取得 viewId。
208
+ - 回查 sealed view contract。
209
+ - 比较 baseline 和 workspace。
210
+ - 生成 `.awbs/changesets/<changesetId>/`。
211
+ - 写入 `manifest.json`、`diff.patch`、`files/`。
212
+ - 计算 `payloadHash` 和 `operationHash`。
213
+ - 生成 sealed changeset receipt。
214
+
215
+ 只读路径或保留路径变化会进入 violations,changeset 状态为 `invalid`。
216
+
217
+ ## 10. Changeset Apply 链路
218
+
219
+ 命令:
220
+
221
+ ```powershell
222
+ 'dev-controller' |
223
+ awbs changeset apply <changesetId> --control-token-stdin
224
+ ```
225
+
226
+ apply 前检查:
227
+
228
+ - authority verify 无 sealed error。
229
+ - changeset manifest 完整。
230
+ - payload 文件 sha256 匹配。
231
+ - payloadHash 匹配。
232
+ - operationHash 匹配。
233
+ - sealed receipt 匹配 manifest / payload。
234
+ - view contract 未撤销。
235
+ - changeset baseCommit 等于当前 trusted commit。
236
+ - 所有变更都在 writePaths 内。
237
+
238
+ 成功后:
239
+
240
+ - 将允许的文件变化写入目标 tree。
241
+ - authority 记录 changeset apply ledger entry。
242
+ - 修复 mirror。
243
+ - Git commit。
244
+ - 推进 `refs/awbs/trusted`。
245
+
246
+ 如果当前工作区被污染,AWBS 不在污染 HEAD 上继续写,而是从 trusted commit 创建临时 worktree 完成可信 apply。
247
+
248
+ ## 11. Audit 与 Clean Rebuild
249
+
250
+ 命令:
251
+
252
+ ```powershell
253
+ awbs db audit
254
+ awbs db clean-rebuild
255
+ ```
256
+
257
+ `db audit` 报告:
258
+
259
+ - HEAD 是否等于 trusted commit。
260
+ - 工作树是否 dirty。
261
+ - 是否存在外部 commits。
262
+ - ledger 是否可验证。
263
+
264
+ `db clean-rebuild`:
265
+
266
+ - 从 trusted commit 克隆/检出干净目录。
267
+ - 复制 `.awbs/private`。
268
+ - 校验 authority。
269
+ - 原目录整体改名为 backup。
270
+ - 干净目录接管原路径。
271
+
272
+ 它不在污染目录里做复杂递归删除,也不自动 purge backup。
273
+
274
+ ## 12. 失败语义
275
+
276
+ AWBS 初版坚持:
277
+
278
+ ```text
279
+ 失败不能伪装成功。
280
+ ```
281
+
282
+ 典型拒绝情况:
283
+
284
+ - 未启动 trusted chain。
285
+ - authority session 不可用。
286
+ - controller proof 无效。
287
+ - response proof 缺失或无效。
288
+ - view 被 revoke。
289
+ - changeset 修改只读路径。
290
+ - changeset payload 被篡改。
291
+ - sealed contract 被篡改。
292
+ - base commit stale。
293
+ - symlink 触达不明确文件边界。
294
+
295
+ 这些情况会显式失败,保留诊断,不推进 trusted chain。
@@ -0,0 +1,188 @@
1
+ # AWBS 产品文档
2
+
3
+ AWBS 是 **Agent Work Base Space** 的缩写。
4
+
5
+ 一句话定位:
6
+
7
+ ```text
8
+ AWBS 是面向 agent 工作流的文件系统数据库底座。
9
+ ```
10
+
11
+ 它把普通文件系统作为数据库主体,把 Git 作为版本管理器,把某一步工作需要的文件投影成独立工作空间,再用 changeset 和 trusted authority layer 控制哪些变更能进入认证数据库。
12
+
13
+ ## AWBS 解决什么问题
14
+
15
+ 传统应用常常假设:
16
+
17
+ - 数据结构稳定。
18
+ - 表结构清晰。
19
+ - 写入入口固定。
20
+ - 用户行为可枚举。
21
+
22
+ 但 agent 工作流经常不是这样:
23
+
24
+ - 输入开放。
25
+ - 文件类型复杂。
26
+ - 任务上下文不断变化。
27
+ - agent 可能读写大量文件。
28
+ - 上层业务不一定能提前设计好所有表结构。
29
+
30
+ AWBS 解决的是:
31
+
32
+ ```text
33
+ 如何让 agent 在一个明确的工作空间里工作,
34
+ 并把它的产出以可审计、可拒绝、可重放的方式写回文件系统数据库。
35
+ ```
36
+
37
+ ## AWBS 不是什么
38
+
39
+ AWBS 不是:
40
+
41
+ - 沙箱系统。
42
+ - 操作系统权限系统。
43
+ - 传统 SQL 数据库。
44
+ - AI 摘要服务。
45
+ - 模型调度框架。
46
+ - workflow 编排器。
47
+
48
+ AWBS 不阻止人或程序直接修改磁盘文件。它只定义 AWBS 自己承认的数据库事实链。
49
+
50
+ ## 核心产品概念
51
+
52
+ ### 文件系统数据库
53
+
54
+ 业务数据就是普通目录和普通文件。
55
+
56
+ ```text
57
+ project/
58
+ A/
59
+ B/
60
+ assets/
61
+ reports/
62
+ ```
63
+
64
+ AWBS 不规定业务目录应该怎么组织。上层应用可以按小说、仿真、文档、代码、素材等业务自由设计目录。
65
+
66
+ ### Git 版本管理
67
+
68
+ Git 保存文件历史、diff、commit 和 tree。
69
+
70
+ AWBS 不重新发明文件版本系统,而是借用 Git 已经成熟的能力。
71
+
72
+ ### 工作空间视图
73
+
74
+ 某一步工作不一定需要看到整个数据库。
75
+
76
+ AWBS 可以创建 copy-based workspace view:
77
+
78
+ ```text
79
+ database trusted commit
80
+ -> selected paths
81
+ -> workspace
82
+ ```
83
+
84
+ agent 在 workspace 中工作。workspace 可以混乱,但正式写回必须经过 changeset。
85
+
86
+ ### Changeset
87
+
88
+ changeset 是 AWBS 的最小变更单元。
89
+
90
+ 它包含:
91
+
92
+ - manifest。
93
+ - diff。
94
+ - payload files。
95
+ - payloadHash。
96
+ - operationHash。
97
+ - sealed receipt。
98
+
99
+ 增、删、改都统一为 changeset。
100
+
101
+ ### Trusted Authority Layer
102
+
103
+ AWBS 认证数据库不等于普通 Git HEAD。
104
+
105
+ AWBS 认证数据库等于:
106
+
107
+ ```text
108
+ refs/awbs/trusted
109
+ + sealed authority ledger
110
+ ```
111
+
112
+ 只有 authority 承认的 changeset apply 才能推进 trusted chain。
113
+
114
+ ### Authority Session
115
+
116
+ A 模式 authority session 会把本机 key 从磁盘移到后台 daemon 内存中。
117
+
118
+ 可信写入必须由 host controller 提供 controller capability。
119
+
120
+ 普通 workflow agent 可以生成请求和 changeset,但不能直接推进 AWBS 可信事实。
121
+
122
+ ## 当前已实现能力
123
+
124
+ 当前初版已经实现:
125
+
126
+ - CLI 初始化。
127
+ - Git repo 初始化。
128
+ - 磁盘 SQLite + FTS5 索引。
129
+ - 外部摘要读写接口。
130
+ - copy-based view create / inspect / revoke。
131
+ - sealed view contract。
132
+ - changeset collect / inspect / apply。
133
+ - read/write path 权限判断。
134
+ - readonly violation 拒绝 apply。
135
+ - changeset payload 防篡改。
136
+ - hash-linked trusted ledger。
137
+ - `refs/awbs/trusted` 可信链头。
138
+ - authority verify / repair-mirrors。
139
+ - A 模式 authority session。
140
+ - controller proof / response proof。
141
+ - db audit。
142
+ - db clean-rebuild。
143
+ - npm CLI 包形态。
144
+
145
+ ## 典型用户
146
+
147
+ AWBS 适合:
148
+
149
+ - 想让 agent 处理复杂项目文件的人。
150
+ - 想把“文件系统作为数据库”产品化的人。
151
+ - 需要 agent 分步读写上下文的工具作者。
152
+ - 小说、仿真、文档、代码、素材等混合型工作流系统。
153
+ - 想研究 agent trusted workflow 的开发者。
154
+
155
+ AWBS 不适合:
156
+
157
+ - 只需要简单 CRUD 表单的系统。
158
+ - 需要强隔离安全沙箱的系统。
159
+ - 需要高并发 OLTP 的业务数据库。
160
+ - 希望内置 AI 摘要或模型服务的应用。
161
+
162
+ ## 产品边界
163
+
164
+ 长期边界:
165
+
166
+ - AWBS 永远不内置 AI 摘要。
167
+ - AWBS 不规定业务目录结构。
168
+ - AWBS 不默认兼容开发期旧仓库,除非明确开 migration 任务。
169
+ - AWBS 不把普通 Git HEAD 当作认证数据库。
170
+ - AWBS 不承诺对抗 admin/root。
171
+
172
+ ## 当前阶段
173
+
174
+ 当前阶段可以称为:
175
+
176
+ ```text
177
+ AWBS v0 trusted CLI prototype
178
+ ```
179
+
180
+ 它已经能作为公开初版发布、学习和试用。
181
+
182
+ 后续方向包括:
183
+
184
+ - workflow / run / step 记录层。
185
+ - 更强的 Authority Service。
186
+ - OS keychain / 独立 OS 身份的 B 模式。
187
+ - 更多业务写回策略和视图投影策略。
188
+ - 更好的包发布和版本化流程。