@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
package/README.md ADDED
@@ -0,0 +1,265 @@
1
+ # AWBS
2
+
3
+ AWBS is short for **Agent Work Base Space**.
4
+
5
+ 中文:AWBS 是一个面向 agent 工作流的文件系统数据库底座。它把标准文件系统当作数据库主体,把 Git 当作版本管理器,把某一步工作需要的文件复制成独立的工作空间视图,再通过 changeset 把允许的变更写回数据库。
6
+
7
+ English: AWBS is an agent-oriented file-system database foundation. It treats ordinary files as the database body, Git as the version manager, copy-based workspace views as the working surface, and changesets as the write-back format.
8
+
9
+ AWBS is intentionally **not** a sandbox system. Its core concern is workflow workspace management: what an agent can see for this step, what it is allowed to change, how those changes are collected, and how valid changes return to the Git-managed database.
10
+
11
+ AWBS 不是沙箱系统。它关心的是 agent 工作流的工作目录管理:这一步能看到什么、允许改什么、改完后如何收集变更、哪些变更可以写回 Git 管理的文件系统数据库。
12
+
13
+ ## 文档入口
14
+
15
+ - [产品文档](./docs/PRODUCT.md):AWBS 是什么、解决什么问题、不解决什么问题。
16
+ - [使用文档](./docs/USAGE.md):从安装、初始化、创建 view 到 apply changeset 的操作手册。
17
+ - [全链路文档](./docs/FULL_CHAIN.md):AWBS 从 init 到 trusted chain 推进的完整数据流。
18
+ - [开发学习文档](./docs/DEVELOPMENT_LEARNING.md):源码分层、关键机制和学习顺序。
19
+ - [当前特性总览](./AWBS_CURRENT_FEATURES.md):当前初版已经实现的能力清单。
20
+ - [核心设计文档](./AWBS_CORE_DESIGN.md):设计思想、架构、可信事实层和长期边界。
21
+
22
+ ## 当前效果
23
+
24
+ 这个仓库现在已经是一个可运行的 v0/001/002/003/005/006/007 CLI 原型,已经打通了最小闭环:
25
+
26
+ ```text
27
+ init
28
+ -> authority session start
29
+ -> ledger bootstrap
30
+ -> index rebuild/query
31
+ -> summary set/get/list
32
+ -> view create/inspect/revoke
33
+ -> workspace 工作
34
+ -> changeset collect/inspect/apply
35
+ -> Git commit
36
+ ```
37
+
38
+ 当前已经具备这些能力:
39
+
40
+ - 可以在一个目录中初始化 AWBS 数据库;如果不是 Git repo,会自动 `git init`。
41
+ - 可以使用磁盘 SQLite + FTS5 建立持久索引:默认写入 `.awbs/index/files.sqlite`。
42
+ - 可以查询文件路径、摘要和 active/removed 状态。
43
+ - 可以通过 `summary` 命令写入、读取、列出外部摘要;摘要永远由上层业务或外部工具生成。
44
+ - 可以创建 copy-based 工作空间视图,不重命名目录,只按原路径复制。
45
+ - 每个 view 都有唯一 UUID,并在 `.awbs/authority` 下生成密封契约。
46
+ - workspace 里的 `.awbs-view.json` 只作为展示/索引,不再作为权限事实源。
47
+ - collect/apply 会回查密封 authority contract,而不是信任 workspace 明文。
48
+ - 只读路径被修改时,changeset 会变成 invalid,apply 永远拒绝。
49
+ - view revoke 后,基于该 view 的新 collect/apply 会被拒绝。
50
+ - `awbs ledger bootstrap` 会创建 AWBS 可信数据链,并维护 `refs/awbs/trusted`。
51
+ - `awbs authority session start` 会把本地 authority key 托管到同用户后台 session daemon,并删除磁盘 `local.json`。
52
+ - 可信写入命令必须由 host controller 通过 stdin 提供 `controllerToken`。
53
+ - `controllerToken` 不直接进入 session IPC;AWBS 使用带 nonce 的 HMAC controller proof,并要求可信写入成功响应带 response proof。
54
+ - session 异常退出后,可以用上层应用提供的 `recoverySecret` 显式恢复 `local.json`。
55
+ - `view create` 和 `index rebuild` 默认基于 AWBS trusted commit,不读取污染工作区。
56
+ - `changeset apply` 只接受基于当前 trusted commit 的 valid changeset;成功后推进 AWBS trusted chain。
57
+ - 外部 Git commit 可以存在,但不会自动进入 AWBS 认证数据库。
58
+ - `db audit` 可以报告当前 `HEAD`、工作树和 trusted chain 的偏离。
59
+ - `db clean-rebuild` 可以从 trusted commit 重建干净数据库目录,并把旧目录整体保留为 backup。
60
+ - 已经有 Node 内置测试覆盖架构、authority、changeset、SQLite 索引和 CLI 闭环。
61
+ - 当前仓库已经是 public GitHub repository,并带 MIT License。
62
+
63
+ 摘要边界是硬边界:AWBS 永远不会内置 AI 摘要模型、API 配置、提示词或业务理解逻辑。AWBS 只保存和索引上层写入的摘要。
64
+
65
+ ## 还没有做什么
66
+
67
+ - 还没有发布到 npm registry;目前可以从本地 checkout 全局安装。
68
+ - 还没有实现操作系统级只读属性、文件级 ACL 或强安全沙箱。
69
+ - 还没有实现跨机器 authority key 迁移。
70
+ - 还没有实现 workflow/run/step 的完整记录层。
71
+ - 还没有实现 backup purge;003 只保留 backup,不自动删除。
72
+ - 还没有实现 B 模式:独立 OS 用户、系统 keychain、系统服务形式的 AWBS Authority Service。
73
+
74
+ ## 安装与运行
75
+
76
+ 要求:
77
+
78
+ - Node.js `>=24.0.0`
79
+ - Git
80
+
81
+ 从 npm 安装:
82
+
83
+ ```powershell
84
+ npm install -g @c956180462/awbs
85
+ awbs --help
86
+ ```
87
+
88
+ 从本地仓库全局安装:
89
+
90
+ ```powershell
91
+ npm install -g .
92
+ awbs --help
93
+ ```
94
+
95
+ 开发时也可以直接运行:
96
+
97
+ ```powershell
98
+ npm run awbs -- --help
99
+ node src\cli.ts --help
100
+ ```
101
+
102
+ ## 基本使用流程
103
+
104
+ ```powershell
105
+ awbs init
106
+ git add .
107
+ git commit -m "initialize database"
108
+
109
+ # recoverySecret / controllerToken 应由上层应用的非 AI 控制层注入。
110
+ '{"recoverySecret":"dev-recovery","controllerToken":"dev-controller"}' | awbs authority session start --control-stdin
111
+ 'dev-controller' | awbs ledger bootstrap --control-token-stdin
112
+
113
+ awbs index rebuild
114
+ awbs index query
115
+
116
+ 'dev-controller' | awbs view create --out ..\awbs-workspace --read A --write B --control-token-stdin
117
+ # 在 ..\awbs-workspace 里工作
118
+
119
+ awbs changeset collect --workspace ..\awbs-workspace
120
+ awbs changeset inspect <changesetId>
121
+ 'dev-controller' | awbs changeset apply <changesetId> --control-token-stdin
122
+ 'dev-controller' | awbs authority session stop --control-token-stdin
123
+ ```
124
+
125
+ ## CLI 命令
126
+
127
+ ```text
128
+ awbs init
129
+ awbs index rebuild
130
+ awbs index query [term] [--status active|removed|all] [--json]
131
+ awbs summary set <path> (--text <summary> | --file <file>)
132
+ awbs summary get <path> [--json]
133
+ awbs summary list [--json]
134
+ awbs view create --out <workspace> [--read A] [--write B] --control-token-stdin
135
+ awbs view inspect <viewId> [--json]
136
+ awbs view revoke <viewId> --control-token-stdin
137
+ awbs changeset collect --workspace <workspace>
138
+ awbs changeset inspect <changesetDir|id> [--json]
139
+ awbs changeset apply <changesetDir|id> --control-token-stdin
140
+ awbs ledger bootstrap [--json] --control-token-stdin
141
+ awbs ledger inspect [--json]
142
+ awbs ledger verify [--json]
143
+ awbs db audit [--json]
144
+ awbs db clean-rebuild [--json]
145
+ awbs db backups list [--json]
146
+ awbs authority session start --control-stdin [--json]
147
+ awbs authority session status [--json]
148
+ awbs authority session stop --control-token-stdin [--json]
149
+ awbs authority session recover --recovery-secret-stdin [--json]
150
+ awbs authority verify [--json]
151
+ awbs authority repair-mirrors --control-token-stdin [--json]
152
+ ```
153
+
154
+ ## 设计文档
155
+
156
+ - [docs/PRODUCT.md](./docs/PRODUCT.md):产品定位、适用场景和边界。
157
+ - [docs/USAGE.md](./docs/USAGE.md):CLI 使用手册。
158
+ - [docs/FULL_CHAIN.md](./docs/FULL_CHAIN.md):全链路运行机制。
159
+ - [docs/DEVELOPMENT_LEARNING.md](./docs/DEVELOPMENT_LEARNING.md):开发学习路径和源码结构。
160
+ - [AWBS_CORE_DESIGN.md](./AWBS_CORE_DESIGN.md):核心思想、当前能力、技术架构、索引设计和 npm 包状态。
161
+ - [AWBS_CURRENT_FEATURES.md](./AWBS_CURRENT_FEATURES.md):当前系统已实现特性的集中总览。
162
+ - [TASK_001_VIEW_AUTHORITY.md](./TASK_001_VIEW_AUTHORITY.md):视图鉴权器、密封契约、明文镜像和鉴权目录总账。
163
+ - [TASK_003_AUTHORITY_LEDGER_AND_DB_AUDIT.md](./TASK_003_AUTHORITY_LEDGER_AND_DB_AUDIT.md):AWBS 可信数据链、数据库审计和可信重建设计。
164
+ - [TASK_004_TRUSTED_AUTHORITY_LAYER.md](./TASK_004_TRUSTED_AUTHORITY_LAYER.md):可信事实层、hash-linked ledger、Authority Service 和 trust anchor 设计。
165
+ - [TASK_005_AUTHORITY_SESSION.md](./TASK_005_AUTHORITY_SESSION.md):A 模式运行期本地钥匙托管、controller token 和恢复流程。
166
+ - [TASK_006_TRUST_BOUNDARY_HARDENING.md](./TASK_006_TRUST_BOUNDARY_HARDENING.md):可信边界加固、路径策略和 changeset payload 校验。
167
+ - [TASK_007_TRUSTED_OPERATION_ENTRY.md](./TASK_007_TRUSTED_OPERATION_ENTRY.md):可信操作入口与 verify / repair 拆分。
168
+
169
+ ## Development Status
170
+
171
+ This repository is currently a runnable CLI prototype for AWBS v0/001/002/003/005/006/007.
172
+
173
+ It already supports:
174
+
175
+ - Git-backed AWBS project initialization.
176
+ - Persistent disk SQLite indexing with FTS5.
177
+ - External summary read/write commands.
178
+ - Copy-based workspace view creation.
179
+ - Sealed view authority contracts.
180
+ - View inspection and revocation.
181
+ - Changeset collection, inspection, and apply.
182
+ - Readonly-path violation detection.
183
+ - Stale base commit rejection.
184
+ - Read-only authority verification and controller-token-gated mirror repair.
185
+ - AWBS trusted chain bootstrap and verification.
186
+ - Ephemeral local authority sessions for trusted writes.
187
+ - Controller-token-gated trusted write commands.
188
+ - Recovery-secret-based local key recovery after a crashed session.
189
+ - Trusted-commit-based view projection and index rebuild.
190
+ - Database audit for divergence from the AWBS trusted chain.
191
+ - Clean database rebuild from the trusted commit with backup preservation.
192
+ - Node test coverage for the main closed loop.
193
+
194
+ Summary generation is deliberately outside AWBS. AWBS never ships a built-in AI summarizer, model configuration, API key flow, prompt layer, or business-specific content understanding. Upper-layer applications may generate summaries however they want and write them through AWBS summary commands.
195
+
196
+ It does not yet provide:
197
+
198
+ - npm registry publishing.
199
+ - OS-level readonly enforcement.
200
+ - File-level ACL.
201
+ - Strong sandbox isolation.
202
+ - Cross-machine authority key migration.
203
+ - Full workflow/run/step history.
204
+ - Backup purge.
205
+ - OS-level B mode with an independent OS user, OS keychain, or standalone AWBS Authority Service.
206
+
207
+ ## English Quick Start
208
+
209
+ Requirements:
210
+
211
+ - Node.js `>=24.0.0`
212
+ - Git
213
+
214
+ Install from npm:
215
+
216
+ ```powershell
217
+ npm install -g @c956180462/awbs
218
+ awbs --help
219
+ ```
220
+
221
+ Install from a local checkout:
222
+
223
+ ```powershell
224
+ npm install -g .
225
+ awbs --help
226
+ ```
227
+
228
+ Basic flow:
229
+
230
+ ```powershell
231
+ awbs init
232
+ git add .
233
+ git commit -m "initialize database"
234
+
235
+ '{"recoverySecret":"dev-recovery","controllerToken":"dev-controller"}' | awbs authority session start --control-stdin
236
+ 'dev-controller' | awbs ledger bootstrap --control-token-stdin
237
+
238
+ awbs index rebuild
239
+ awbs index query
240
+
241
+ 'dev-controller' | awbs view create --out ..\awbs-workspace --read A --write B --control-token-stdin
242
+ # Work inside ..\awbs-workspace
243
+
244
+ awbs changeset collect --workspace ..\awbs-workspace
245
+ awbs changeset inspect <changesetId>
246
+ 'dev-controller' | awbs changeset apply <changesetId> --control-token-stdin
247
+ 'dev-controller' | awbs authority session stop --control-token-stdin
248
+ ```
249
+
250
+ ## Maintenance And Contributions
251
+
252
+ 中文:这个仓库是公开的个人研究型开源项目,更新节奏随缘。你可以阅读、fork、改造和自用;issue 或 pull request 可以提,但不保证处理,也不承诺接受外部代码合入。本仓库不会开放外部直接提交权限。
253
+
254
+ English: This is a public personal research project with irregular maintenance. You are welcome to read, fork, modify, and use it for your own work. Issues and pull requests may be opened, but there is no guarantee of review, merge, or ongoing support. External direct commit access is not granted.
255
+
256
+ ## Development
257
+
258
+ ```powershell
259
+ npm test
260
+ npm pack --dry-run
261
+ ```
262
+
263
+ ## License
264
+
265
+ MIT