@bolloon/bolloon-agent 0.4.33 → 0.5.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.
Files changed (143) hide show
  1. package/dist/agents/contacts/chain.js +27 -7
  2. package/dist/agents/execution-supervisor.js +493 -35
  3. package/dist/agents/external-events.js +35 -6
  4. package/dist/agents/gateway-group.js +100 -12
  5. package/dist/agents/goal-criteria.js +10 -3
  6. package/dist/agents/goal-flywheel/block-executor.js +346 -0
  7. package/dist/agents/goal-flywheel/continuation-decision.js +592 -0
  8. package/dist/agents/goal-flywheel/goal-change.js +754 -0
  9. package/dist/agents/goal-flywheel/index.js +26 -0
  10. package/dist/agents/goal-flywheel/memory-layers.js +227 -0
  11. package/dist/agents/goal-flywheel/run-closure.js +809 -0
  12. package/dist/agents/goal-flywheel/skill-candidate.js +628 -0
  13. package/dist/agents/goal-flywheel/types.js +329 -0
  14. package/dist/agents/goal-flywheel/wiring/change.js +288 -0
  15. package/dist/agents/goal-flywheel/wiring/closure.js +697 -0
  16. package/dist/agents/goal-flywheel/wiring/continuation.js +432 -0
  17. package/dist/agents/goal-flywheel/wiring/contract.js +270 -0
  18. package/dist/agents/goal-flywheel/wiring/index.js +26 -0
  19. package/dist/agents/goal-flywheel/wiring/monitor.js +254 -0
  20. package/dist/agents/goal-flywheel/wiring/seams.js +592 -0
  21. package/dist/agents/goal-flywheel/work-contract.js +478 -0
  22. package/dist/agents/goal-flywheel/work-monitor.js +488 -0
  23. package/dist/agents/goal-flywheel-wiring.js +1870 -0
  24. package/dist/agents/goal-state-reducer.js +406 -0
  25. package/dist/agents/goal-store.js +35 -1
  26. package/dist/agents/mobile-flywheel-view.js +144 -0
  27. package/dist/agents/mobile-task-actions-verify.js +74 -0
  28. package/dist/agents/mobile-task-actions.js +178 -0
  29. package/dist/agents/mobile-task-views.js +199 -0
  30. package/dist/agents/network-pulse.js +304 -18
  31. package/dist/agents/pi-sdk.js +75 -20
  32. package/dist/agents/run-store.js +18 -5
  33. package/dist/agents/skill-readiness.js +52 -10
  34. package/dist/agents/subagent-manager.js +209 -3
  35. package/dist/agents/task/task-runner.js +9 -3
  36. package/dist/agents/task-group.js +8 -51
  37. package/dist/agents/task-public-text.js +89 -0
  38. package/dist/cli/commands/index.js +1 -0
  39. package/dist/cli/commands/tasks.js +350 -2
  40. package/dist/cli/identity-command.js +177 -0
  41. package/dist/cli/setup-wizard.js +71 -0
  42. package/dist/cli/update-commands.js +150 -24
  43. package/dist/cli-entry.js +12 -2
  44. package/dist/electron-build/agents/contacts/chain.js +26 -6
  45. package/dist/electron-build/agents/contacts/chain.js.map +1 -1
  46. package/dist/electron-build/agents/execution-supervisor.js +492 -34
  47. package/dist/electron-build/agents/execution-supervisor.js.map +1 -1
  48. package/dist/electron-build/agents/external-events.js +34 -5
  49. package/dist/electron-build/agents/external-events.js.map +1 -1
  50. package/dist/electron-build/agents/goal-criteria.js +10 -3
  51. package/dist/electron-build/agents/goal-criteria.js.map +1 -1
  52. package/dist/electron-build/agents/goal-flywheel/continuation-decision.js +598 -0
  53. package/dist/electron-build/agents/goal-flywheel/continuation-decision.js.map +1 -0
  54. package/dist/electron-build/agents/goal-flywheel/goal-change.js +773 -0
  55. package/dist/electron-build/agents/goal-flywheel/goal-change.js.map +1 -0
  56. package/dist/electron-build/agents/goal-flywheel/memory-layers.js +269 -0
  57. package/dist/electron-build/agents/goal-flywheel/memory-layers.js.map +1 -0
  58. package/dist/electron-build/agents/goal-flywheel/run-closure.js +818 -0
  59. package/dist/electron-build/agents/goal-flywheel/run-closure.js.map +1 -0
  60. package/dist/electron-build/agents/goal-flywheel/skill-candidate.js +642 -0
  61. package/dist/electron-build/agents/goal-flywheel/skill-candidate.js.map +1 -0
  62. package/dist/electron-build/agents/goal-flywheel/types.js +333 -0
  63. package/dist/electron-build/agents/goal-flywheel/types.js.map +1 -0
  64. package/dist/electron-build/agents/goal-flywheel/wiring/change.js +294 -0
  65. package/dist/electron-build/agents/goal-flywheel/wiring/change.js.map +1 -0
  66. package/dist/electron-build/agents/goal-flywheel/wiring/closure.js +742 -0
  67. package/dist/electron-build/agents/goal-flywheel/wiring/closure.js.map +1 -0
  68. package/dist/electron-build/agents/goal-flywheel/wiring/continuation.js +444 -0
  69. package/dist/electron-build/agents/goal-flywheel/wiring/continuation.js.map +1 -0
  70. package/dist/electron-build/agents/goal-flywheel/wiring/contract.js +279 -0
  71. package/dist/electron-build/agents/goal-flywheel/wiring/contract.js.map +1 -0
  72. package/dist/electron-build/agents/goal-flywheel/wiring/index.js +111 -0
  73. package/dist/electron-build/agents/goal-flywheel/wiring/index.js.map +1 -0
  74. package/dist/electron-build/agents/goal-flywheel/wiring/monitor.js +264 -0
  75. package/dist/electron-build/agents/goal-flywheel/wiring/monitor.js.map +1 -0
  76. package/dist/electron-build/agents/goal-flywheel/wiring/seams.js +612 -0
  77. package/dist/electron-build/agents/goal-flywheel/wiring/seams.js.map +1 -0
  78. package/dist/electron-build/agents/goal-flywheel/work-contract.js +488 -0
  79. package/dist/electron-build/agents/goal-flywheel/work-contract.js.map +1 -0
  80. package/dist/electron-build/agents/goal-flywheel/work-monitor.js +501 -0
  81. package/dist/electron-build/agents/goal-flywheel/work-monitor.js.map +1 -0
  82. package/dist/electron-build/agents/goal-flywheel-wiring.js +1962 -0
  83. package/dist/electron-build/agents/goal-flywheel-wiring.js.map +1 -0
  84. package/dist/electron-build/agents/goal-state-reducer.js +414 -0
  85. package/dist/electron-build/agents/goal-state-reducer.js.map +1 -0
  86. package/dist/electron-build/agents/goal-store.js +35 -1
  87. package/dist/electron-build/agents/goal-store.js.map +1 -1
  88. package/dist/electron-build/agents/network-pulse.js +307 -19
  89. package/dist/electron-build/agents/network-pulse.js.map +1 -1
  90. package/dist/electron-build/agents/pi-sdk.js +74 -19
  91. package/dist/electron-build/agents/pi-sdk.js.map +1 -1
  92. package/dist/electron-build/agents/run-store.js +20 -5
  93. package/dist/electron-build/agents/run-store.js.map +1 -1
  94. package/dist/electron-build/agents/skill-readiness.js +52 -9
  95. package/dist/electron-build/agents/skill-readiness.js.map +1 -1
  96. package/dist/electron-build/agents/task/task-runner.js +8 -2
  97. package/dist/electron-build/agents/task/task-runner.js.map +1 -1
  98. package/dist/electron-build/orbitdb/cid-database.js +83 -17
  99. package/dist/electron-build/orbitdb/cid-database.js.map +1 -1
  100. package/dist/electron-build/orbitdb/ipfs-node.js +31 -2
  101. package/dist/electron-build/orbitdb/ipfs-node.js.map +1 -1
  102. package/dist/electron-build/utils/dual-source.js +471 -0
  103. package/dist/electron-build/utils/dual-source.js.map +1 -0
  104. package/dist/electron-build/utils/update-manager.js +331 -57
  105. package/dist/electron-build/utils/update-manager.js.map +1 -1
  106. package/dist/electron-build/utils/update-state.js +16 -1
  107. package/dist/electron-build/utils/update-state.js.map +1 -1
  108. package/dist/electron-build/utils/version-info.js +82 -2
  109. package/dist/electron-build/utils/version-info.js.map +1 -1
  110. package/dist/index.js +103 -12
  111. package/dist/ios/chain-explorer.js +617 -0
  112. package/dist/ios/explorer.html +163 -0
  113. package/dist/ios/index.html +96 -0
  114. package/dist/ios/mobile-agent.js +2 -2
  115. package/dist/ios/mobile-contacts.js +329 -0
  116. package/dist/ios/mobile-core.js +1379 -226
  117. package/dist/ios/mobile-privacy.js +185 -0
  118. package/dist/ios/mobile.css +19 -0
  119. package/dist/ios/mobile.html +96 -0
  120. package/dist/ios/mobile.js +706 -7
  121. package/dist/ios/routes-chain-index.js +108 -0
  122. package/dist/ios/routes-contacts.js +420 -0
  123. package/dist/ios/routes-onchain-trade.js +99 -0
  124. package/dist/ios/routes-x402-info.js +1 -0
  125. package/dist/ios/server.js +762 -0
  126. package/dist/ios/task-frame-server.js +211 -0
  127. package/dist/orbitdb/cid-database.js +81 -16
  128. package/dist/orbitdb/ipfs-node.js +31 -2
  129. package/dist/utils/dual-source.js +426 -0
  130. package/dist/utils/update-cli.js +16 -21
  131. package/dist/utils/update-health.js +35 -5
  132. package/dist/utils/update-manager.js +329 -57
  133. package/dist/utils/update-state.js +16 -1
  134. package/dist/utils/version-info.js +75 -1
  135. package/dist/web/mobile-contacts.js +44 -11
  136. package/dist/web/mobile-core.js +1197 -513
  137. package/dist/web/mobile-tasks.js +339 -0
  138. package/dist/web/mobile.css +19 -0
  139. package/dist/web/mobile.html +64 -0
  140. package/dist/web/mobile.js +531 -1
  141. package/dist/web/routes-mobile-tasks.js +353 -0
  142. package/dist/web/server.js +163 -4
  143. package/package.json +3 -1
@@ -53,7 +53,7 @@ var __importStar = (this && this.__importStar) || (function () {
53
53
  };
54
54
  })();
55
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
- exports.OrbitDBAdapter = void 0;
56
+ exports.OrbitDBAdapter = exports.OrbitDBStoreUnreachableError = void 0;
57
57
  exports.contentToCid = contentToCid;
58
58
  exports.getCIDDatabase = getCIDDatabase;
59
59
  const cid_1 = require("multiformats/cid");
@@ -61,9 +61,42 @@ const dagCbor = __importStar(require("@ipld/dag-cbor"));
61
61
  const sha2_1 = require("multiformats/hashes/sha2");
62
62
  const concat_1 = require("uint8arrays/concat");
63
63
  const core_1 = require("@orbitdb/core");
64
+ const orbitdbCoreNs = __importStar(require("@orbitdb/core"));
65
+ /**
66
+ * 运行时取 `IPFSAccessController` (2026-09-24)。
67
+ *
68
+ * 它在运行时是**真具名导出** (`@orbitdb/core` 4.0.0 `src/index.js:26`, 经
69
+ * `./access-controllers/index.js` 二级再导出), 但该包是**纯 JS 包**: `package.json`
70
+ * 既无 `types` 也无 `exports`、包内没有任何 `.d.ts` —— TS7 从 JS 推断导出集时看不见
71
+ * 这个二级再导出, `import { IPFSAccessController }` 直接 TS2305。
72
+ * 所以从命名空间按需取一次并显式收窄到已知形状; 不给整个模块上 `any`
73
+ * (createOrbitDB / OrbitDB / KeyValue 仍照旧受类型检查)。
74
+ */
75
+ const IPFSAccessController = orbitdbCoreNs.IPFSAccessController;
64
76
  const ipfs_node_js_1 = require("./ipfs-node.js");
65
77
  const path = __importStar(require("path"));
66
78
  const os = __importStar(require("os"));
79
+ /**
80
+ * store 打不开 (地址不可解析 / 区块不在本地且没有 block broker 能去网上取)。
81
+ *
82
+ * 2026-09-24: 原来 `openStoreByAddress` 失败返回 null, 上游 (gateway-group) 把它当"空群",
83
+ * 于是"读不到"被显示成"没有消息"。改成**抛**: 打不开 ≠ 没内容。
84
+ */
85
+ class OrbitDBStoreUnreachableError extends Error {
86
+ address;
87
+ cause;
88
+ dataDir;
89
+ code = 'STORE_UNREACHABLE';
90
+ constructor(address, cause, dataDir) {
91
+ const why = String(cause?.message ?? cause ?? '未知原因').slice(0, 200);
92
+ super(`store 不可达 (${address}): ${why}`);
93
+ this.address = address;
94
+ this.cause = cause;
95
+ this.dataDir = dataDir;
96
+ this.name = 'OrbitDBStoreUnreachableError';
97
+ }
98
+ }
99
+ exports.OrbitDBStoreUnreachableError = OrbitDBStoreUnreachableError;
67
100
  /** 内容 → CID (dag-cbor, sha2-256, codec 0x71); 先 JSON 清洗 (dag-cbor 不支持 undefined) */
68
101
  async function contentToCid(obj) {
69
102
  const cleaned = JSON.parse(JSON.stringify(obj)); // 丢弃 undefined 字段
@@ -72,6 +105,26 @@ async function contentToCid(obj) {
72
105
  return cid_1.CID.createV1(0x71, hash).toString();
73
106
  }
74
107
  const home = () => process.env.HOME || os.homedir() || '/tmp';
108
+ /**
109
+ * OrbitDB 身份在 keystore 里的槽名 (2026-09-24)。
110
+ * 固定槽名 = 同一 dataDir 下每个进程读到**同一对密钥 / 同一个身份**。
111
+ * 不固定 (@orbitdb/core 默认 createId() 随机 32 位) 会让每个进程变成新写入者,
112
+ * 于是 `canAppend` 拿新身份去比对老 manifest 的 write 列表 → 一律拒绝。
113
+ */
114
+ const ORBITDB_IDENTITY_ID = 'bolloon';
115
+ /**
116
+ * `opts.accessController.write` → OrbitDB v4 的大写 `AccessController` 工厂 (2026-09-24)。
117
+ *
118
+ * @orbitdb/core v4 的 `open(address, options)` **只认大写 `AccessController`** (一个构造函数),
119
+ * 小写 `accessController: { write: [...] }` 会被静默丢弃 → 新 store 落回默认策略
120
+ * (`IPFSAccessController`: `write = write || [创建者身份 id]`, 即创建者独占写)。
121
+ * 于是 gateway-group 一直传的 `write:['*']` (「群成员可广播」) **从来没生效过**。
122
+ * 这里把已成文的选项接上; 对已存在的地址, manifest 里的 AC 仍优先 (这里不改变既有群)。
123
+ */
124
+ function accessControllerOption(opts) {
125
+ const write = opts?.accessController?.write;
126
+ return Array.isArray(write) && write.length ? { AccessController: IPFSAccessController({ write }) } : {};
127
+ }
75
128
  /**
76
129
  * OrbitDB 后端实现。单例: 同一进程只建一个 (helia/OrbitDB 都是重量级节点)。
77
130
  */
@@ -84,15 +137,29 @@ class OrbitDBAdapter {
84
137
  constructor(dataDir = path.join(home(), '.bolloon', 'orbitdb')) {
85
138
  this.dataDir = dataDir;
86
139
  }
140
+ /** 落盘位置 (未初始化时 null; 诊断/验收用) */
141
+ get ipfsPaths() {
142
+ return this.node?.paths ?? null;
143
+ }
87
144
  /** 懒初始化: 首次使用时启动 helia + OrbitDB + 打开 keyvalue store */
88
145
  async ensure() {
89
146
  if (this.db)
90
147
  return;
91
148
  this.node = await (0, ipfs_node_js_1.createBolloonIpfs)(path.join(this.dataDir, 'ipfs'));
92
- this._orbitdb = await (0, core_1.createOrbitDB)({
149
+ // 2026-09-24: 身份必须**跨进程稳定**。不给 id 时 @orbitdb/core 用 createId()
150
+ // (32 位随机串) 当 keystore 槽名 (src/orbitdb.js:43 `id = id || await createId()`
151
+ // → :61 `createIdentity({ id })`) → 每个进程一对新密钥 → 新身份 → 写自己的 store
152
+ // 会被访问控制拒掉 ("Key … is not allowed to write to the log")。
153
+ // 给固定槽名后, 密钥从 <dataDir>/stores/keystore 读出复用 → 同 dataDir 同身份。
154
+ // 类型注: `id` 是 @orbitdb/core 的真选项 (src/orbitdb.js:33), 但 TS7 从 JS 推断出的
155
+ // 参数类型漏了它 → 显式取 Parameters<typeof createOrbitDB>[0] 再补 { id }
156
+ // (不裸 any 掉整个入参)。
157
+ const init = {
93
158
  ipfs: this.node.helia,
94
159
  directory: path.join(this.dataDir, 'stores'),
95
- });
160
+ id: ORBITDB_IDENTITY_ID,
161
+ };
162
+ this._orbitdb = await (0, core_1.createOrbitDB)(init);
96
163
  this.db = await this._orbitdb.open('bolloon-cid-store', { type: 'keyvalue' });
97
164
  // 共享底层实例 (只读暴露)
98
165
  this.orbitdb = this._orbitdb;
@@ -230,33 +297,32 @@ class OrbitDBAdapter {
230
297
  */
231
298
  async openStore(name, type = 'keyvalue', opts) {
232
299
  await this.ensure();
233
- const options = { type };
234
- if (opts?.accessController)
235
- options.accessController = opts.accessController;
300
+ const options = { type, ...accessControllerOption(opts) };
236
301
  const raw = (await this._orbitdb.open(name, options));
237
302
  return this.wrapStore(raw);
238
303
  }
239
304
  /**
240
305
  * 2026-08-14: 按地址打开远端 store (Agent Gateway 共享网络 / 群组)。
241
- * replica=true → 只读副本: 拉取复制但不写回 (自动加入网络不污染他人 registry)。
242
- * replica=false → 可写 (群组: events store 配 write:'*' 时成员可广播)。
306
+ *
307
+ * 2026-09-24: 失败改为**抛 OrbitDBStoreUnreachableError** (含原始错误原因),
308
+ * 不再 `console.warn` + return null —— 那让"整个群读不到"在上层显示成"群里没有消息"。
309
+ *
310
+ * 2026-09-24 (修正既有错述): **不再往 OrbitDB 传 `replica`** ——
311
+ * `@orbitdb/core` 4.0.0 的 `open()` 参数表里没有它 (src/orbitdb.js:118), 传了也被丢,
312
+ * 之前的"replica=true 只读副本"是**不存在的语义**(等于什么都没做)。入参保留以兼容
313
+ * 既有调用点, 但不再冒充 OrbitDB 选项。可写与否由 manifest 里的 ACL + 调用方是否 `put` 决定。
314
+ * `opts.accessController` 在**打开既有地址**时同样不生效 (见接口注释: AC 由 manifest 决定)。
243
315
  */
244
316
  async openStoreByAddress(address, type = 'keyvalue', opts) {
245
317
  await this.ensure();
246
318
  try {
247
- const options = { type };
248
- if (opts?.replica === false)
249
- options.replica = false;
250
- else
251
- options.replica = true;
252
- if (opts?.accessController)
253
- options.accessController = opts.accessController;
319
+ const options = { type, ...accessControllerOption(opts) };
254
320
  const raw = (await this._orbitdb.open(address, options));
255
321
  return this.wrapStore(raw);
256
322
  }
257
323
  catch (err) {
258
- console.warn(`[orbitdb] openStoreByAddress 失败: ${String(err?.message || err).slice(0, 160)}`);
259
- return null;
324
+ // 大声失败: 带上地址 + 原始原因 (最常见: "No block brokers capable of retrieving blocks ...")
325
+ throw new OrbitDBStoreUnreachableError(address, err, this.dataDir);
260
326
  }
261
327
  }
262
328
  async close() {
@@ -1 +1 @@
1
- {"version":3,"file":"cid-database.js","sourceRoot":"","sources":["../../../src/orbitdb/cid-database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cid-database.js","sourceRoot":"","sources":["../../../src/orbitdb/cid-database.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * ipfs-node.ts — Bolloon 的 OrbitDB 底层 IPFS 节点工厂 (2026-08-06)
3
+ * ipfs-node.ts — Bolloon 的 OrbitDB 底层 IPFS 节点工厂 (2026-08-06; 落盘 2026-09-24)
4
4
  *
5
5
  * 基于 helia 7:
6
6
  * - createHelia() 内部已 withLibp2p 但**不传 opts** → 无法自定义 services
@@ -11,6 +11,20 @@
11
11
  * 必须显式列出要保留的默认服务 (dht/identify/keychain/...)
12
12
  * - withLibp2p().start() 之后 libp2p getter 才可用 (之前抛 NotStartedError)
13
13
  *
14
+ * 2026-09-24 **区块/datastore 落盘修复** (跨进程可重开的根因):
15
+ * 原来 createHeliaLight 只传 codecs/hashers → helia 用默认 MemoryBlockstore / MemoryDatastore,
16
+ * 而 OrbitDB 的 manifest 与 oplog 条目都走 IPFSBlockStorage(ipfs.blockstore) 存
17
+ * (@orbitdb/core/src/storage/ipfs-block.js)。于是 `~/.bolloon/orbitdb/` 下只有 stores/
18
+ * (keystore + log/_heads 的 LevelDB), 没有 ipfs/ 块存储 —— store 只活在创建它的那个进程里。
19
+ * 新进程用地址重开必挂在 manifestStore.get():
20
+ * "No block brokers capable of retrieving blocks are configured, the CID bafyrei… cannot be fetched"
21
+ * 现在: FsBlockstore(dataDir/blocks) + FsDatastore(dataDir/datastore) 真落盘。
22
+ * · datastore 顺带持久化 pin (helia pins) 与 libp2p 私钥
23
+ * (@helia/libp2p: loadOrCreateSelfKey(helia.datastore) + opts.datastore ??= helia.datastore)
24
+ * → 同一 dataDir 的 peerId 跨进程稳定。
25
+ * · 这两个包是 Node 专用 (node:fs / node:path); 本文件只被 Node 侧 import,
26
+ * 浏览器入口 (client.ts / mobile-core.ts / a2ui-client.tsx) 到不了这里 —— 不伤 Web 包。
27
+ *
14
28
  * 跑法: npx tsx scripts/smoke-orbitdb.ts
15
29
  */
16
30
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -51,6 +65,8 @@ exports.createBolloonIpfs = createBolloonIpfs;
51
65
  exports.dbNameFromAddress = dbNameFromAddress;
52
66
  const helia_1 = require("helia");
53
67
  const libp2p_1 = require("@helia/libp2p");
68
+ const blockstore_fs_1 = require("blockstore-fs");
69
+ const datastore_fs_1 = require("datastore-fs");
54
70
  const dagCbor = __importStar(require("@ipld/dag-cbor"));
55
71
  const dagJson = __importStar(require("@ipld/dag-json"));
56
72
  const json = __importStar(require("multiformats/codecs/json"));
@@ -74,13 +90,25 @@ const os = __importStar(require("os"));
74
90
  /**
75
91
  * 创建 Bolloon 用的 helia 节点 (libp2p 完整默认服务 + gossipsub pubsub)。
76
92
  * dataDir 持久化节点身份/数据 (默认 ~/.bolloon/orbitdb-ipfs)。
93
+ *
94
+ * 2026-09-24: dataDir 下真落两个目录 —— `blocks/` (区块) 与 `datastore/` (pin + peerkey)。
95
+ * 目录不可写时**直接抛** (不退回内存: 静默退回正好是"新进程读不到群"的根因)。
77
96
  */
78
97
  async function createBolloonIpfs(dataDir) {
79
- const dir = dataDir ?? path.join(process.env.HOME || os.homedir() || '/tmp', '.bolloon', 'orbitdb-ipfs');
98
+ const dir = path.resolve(dataDir ?? path.join(process.env.HOME || os.homedir() || '/tmp', '.bolloon', 'orbitdb-ipfs'));
99
+ const blocksDir = path.join(dir, 'blocks');
100
+ const datastoreDir = path.join(dir, 'datastore');
101
+ // 落盘存储: 不传这两个, helia 默认 MemoryBlockstore/MemoryDatastore → 进程退出即丢区块
102
+ const blockstore = new blockstore_fs_1.FsBlockstore(blocksDir);
103
+ const datastore = new datastore_fs_1.FsDatastore(datastoreDir);
104
+ await blockstore.open(); // 建目录 + F_OK|W_OK 探测, 失败抛 OpenFailedError (不静默)
105
+ await datastore.open();
80
106
  // createHeliaLight 无 libp2p → withLibp2p 手动装配 (可传 services)
81
107
  // codecs/hashers 照抄 createHelia 默认: OrbitDB 的 log entry 用 dag-cbor (codec 113),
82
108
  // 不注册会报 "Could not load codec for 113"
83
109
  const helia = (0, libp2p_1.withLibp2p)((0, helia_1.createHeliaLight)({
110
+ blockstore,
111
+ datastore,
84
112
  codecs: [dagCbor, dagJson, json],
85
113
  hashers: [sha2_1.sha512],
86
114
  }), {
@@ -108,6 +136,7 @@ async function createBolloonIpfs(dataDir) {
108
136
  return {
109
137
  helia,
110
138
  peerId,
139
+ paths: { dataDir: dir, blocksDir, datastoreDir },
111
140
  start: async () => { await helia.start(); },
112
141
  stop: async () => { await helia.stop(); },
113
142
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs-node.js","sourceRoot":"","sources":["../../../src/orbitdb/ipfs-node.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iCAAqD;AACrD,0CAA2C;AAC3C,MAAY,OAAO,2CAAuB;AAC1C,MAAY,OAAO,2CAAuB;AAC1C,MAAY,IAAI,qDAAiC;AACjD,mDAAkD;AAClD,iDAA8C;AAC9C,+CAA0D;AAC1D,6CAAyC;AACzC,+CAA4C;AAC5C,6CAA0C;AAC1C,+CAA2C;AAC3C,uCAAoC;AACpC,uCAAoC;AACpC,+DAA8D;AAC9D,yCAAsC;AACtC,uCAAoC;AACpC,sGAAwJ;AACxJ,8EAA+E;AAC/E,iEAAsD;AACtD,MAAY,IAAI,iCAAa;AAC7B,MAAY,EAAE,+BAAW;AASzB;;;GAGG;AACI,KAAK,4BAA4B,OAAgB;IACtD,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAEzG,4DAA4D;IAC5D,gFAAgF;IAChF,uCAAuC;IACvC,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAA,wBAAgB,EAAC;QACxC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;QAChC,OAAO,EAAE,CAAC,aAAM,CAAC;KAClB,CAAC,EAAE;QACF,yCAAyC;QACzC,QAAQ,EAAE;YACR,MAAM,EAAE,IAAA,qBAAS,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,qEAAqE;YAC5G,OAAO,EAAE,IAAA,iBAAO,GAAE;YAClB,OAAO,EAAE,IAAA,yBAAO,GAAE;YAClB,KAAK,EAAE,IAAA,aAAK,GAAE;YACd,oBAAoB,EAAE,IAAA,iFAA0C,EAAC,IAAA,uDAA4B,GAAE,CAAC;YAChG,uBAAuB,EAAE,IAAA,oFAA6C,EAAC,IAAA,uDAA4B,GAAE,CAAC;YACtG,GAAG,EAAE,IAAA,gBAAM,GAAE;YACb,QAAQ,EAAE,IAAA,mBAAQ,GAAE;YACpB,YAAY,EAAE,IAAA,uBAAY,GAAE;YAC5B,QAAQ,EAAE,IAAA,mBAAQ,EAAC,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;YAClE,IAAI,EAAE,IAAA,WAAI,GAAE;YACZ,KAAK,EAAE,IAAA,qCAAkB,GAAE;YAC3B,IAAI,EAAE,IAAA,kBAAO,GAAE;YACf,IAAI,EAAE,IAAA,WAAI,GAAE;YACZ,IAAI,EAAE,IAAA,WAAI,GAAE;SACb;KACK,CAAC,CAAC;IAEV,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,MAAM,MAAM,GAAI,KAAa,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAEvD,OAAO;QACL,KAAK;QACL,MAAM;QACN,KAAK,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,2BAAkC,OAAe;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"ipfs-node.js","sourceRoot":"","sources":["../../../src/orbitdb/ipfs-node.ts"],"names":[],"mappings":"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"}