@bolloon/bolloon-agent 0.4.32 → 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 (157) hide show
  1. package/dist/agents/chain/explorer.js +52 -0
  2. package/dist/agents/chain/index.js +2 -0
  3. package/dist/agents/chain/onchain-trade.js +15 -1
  4. package/dist/agents/contacts/chain.js +27 -7
  5. package/dist/agents/execution-supervisor.js +493 -35
  6. package/dist/agents/external-events.js +35 -6
  7. package/dist/agents/gateway-group.js +100 -12
  8. package/dist/agents/goal-criteria.js +10 -3
  9. package/dist/agents/goal-flywheel/block-executor.js +346 -0
  10. package/dist/agents/goal-flywheel/continuation-decision.js +592 -0
  11. package/dist/agents/goal-flywheel/goal-change.js +754 -0
  12. package/dist/agents/goal-flywheel/index.js +26 -0
  13. package/dist/agents/goal-flywheel/memory-layers.js +227 -0
  14. package/dist/agents/goal-flywheel/run-closure.js +809 -0
  15. package/dist/agents/goal-flywheel/skill-candidate.js +628 -0
  16. package/dist/agents/goal-flywheel/types.js +329 -0
  17. package/dist/agents/goal-flywheel/wiring/change.js +288 -0
  18. package/dist/agents/goal-flywheel/wiring/closure.js +697 -0
  19. package/dist/agents/goal-flywheel/wiring/continuation.js +432 -0
  20. package/dist/agents/goal-flywheel/wiring/contract.js +270 -0
  21. package/dist/agents/goal-flywheel/wiring/index.js +26 -0
  22. package/dist/agents/goal-flywheel/wiring/monitor.js +254 -0
  23. package/dist/agents/goal-flywheel/wiring/seams.js +592 -0
  24. package/dist/agents/goal-flywheel/work-contract.js +478 -0
  25. package/dist/agents/goal-flywheel/work-monitor.js +488 -0
  26. package/dist/agents/goal-flywheel-wiring.js +1870 -0
  27. package/dist/agents/goal-state-reducer.js +406 -0
  28. package/dist/agents/goal-store.js +35 -1
  29. package/dist/agents/mobile-flywheel-view.js +144 -0
  30. package/dist/agents/mobile-task-actions-verify.js +74 -0
  31. package/dist/agents/mobile-task-actions.js +178 -0
  32. package/dist/agents/mobile-task-views.js +199 -0
  33. package/dist/agents/network-pulse.js +525 -27
  34. package/dist/agents/pi-sdk.js +75 -20
  35. package/dist/agents/run-store.js +18 -5
  36. package/dist/agents/skill-readiness.js +52 -10
  37. package/dist/agents/subagent-manager.js +209 -3
  38. package/dist/agents/task/task-onchain-runner.js +19 -1
  39. package/dist/agents/task/task-runner.js +36 -6
  40. package/dist/agents/task-board.js +702 -0
  41. package/dist/agents/task-group.js +524 -0
  42. package/dist/agents/task-public-text.js +89 -0
  43. package/dist/cli/commands/index.js +3 -0
  44. package/dist/cli/commands/tasks.js +977 -8
  45. package/dist/cli/identity-command.js +177 -0
  46. package/dist/cli/protocol-envelope.js +4 -0
  47. package/dist/cli/setup-wizard.js +71 -0
  48. package/dist/cli/update-commands.js +150 -24
  49. package/dist/cli-entry.js +12 -2
  50. package/dist/electron-build/agents/chain/explorer.js +59 -0
  51. package/dist/electron-build/agents/chain/explorer.js.map +1 -0
  52. package/dist/electron-build/agents/contacts/chain.js +26 -6
  53. package/dist/electron-build/agents/contacts/chain.js.map +1 -1
  54. package/dist/electron-build/agents/execution-supervisor.js +492 -34
  55. package/dist/electron-build/agents/execution-supervisor.js.map +1 -1
  56. package/dist/electron-build/agents/external-events.js +34 -5
  57. package/dist/electron-build/agents/external-events.js.map +1 -1
  58. package/dist/electron-build/agents/goal-criteria.js +10 -3
  59. package/dist/electron-build/agents/goal-criteria.js.map +1 -1
  60. package/dist/electron-build/agents/goal-flywheel/continuation-decision.js +598 -0
  61. package/dist/electron-build/agents/goal-flywheel/continuation-decision.js.map +1 -0
  62. package/dist/electron-build/agents/goal-flywheel/goal-change.js +773 -0
  63. package/dist/electron-build/agents/goal-flywheel/goal-change.js.map +1 -0
  64. package/dist/electron-build/agents/goal-flywheel/memory-layers.js +269 -0
  65. package/dist/electron-build/agents/goal-flywheel/memory-layers.js.map +1 -0
  66. package/dist/electron-build/agents/goal-flywheel/run-closure.js +818 -0
  67. package/dist/electron-build/agents/goal-flywheel/run-closure.js.map +1 -0
  68. package/dist/electron-build/agents/goal-flywheel/skill-candidate.js +642 -0
  69. package/dist/electron-build/agents/goal-flywheel/skill-candidate.js.map +1 -0
  70. package/dist/electron-build/agents/goal-flywheel/types.js +333 -0
  71. package/dist/electron-build/agents/goal-flywheel/types.js.map +1 -0
  72. package/dist/electron-build/agents/goal-flywheel/wiring/change.js +294 -0
  73. package/dist/electron-build/agents/goal-flywheel/wiring/change.js.map +1 -0
  74. package/dist/electron-build/agents/goal-flywheel/wiring/closure.js +742 -0
  75. package/dist/electron-build/agents/goal-flywheel/wiring/closure.js.map +1 -0
  76. package/dist/electron-build/agents/goal-flywheel/wiring/continuation.js +444 -0
  77. package/dist/electron-build/agents/goal-flywheel/wiring/continuation.js.map +1 -0
  78. package/dist/electron-build/agents/goal-flywheel/wiring/contract.js +279 -0
  79. package/dist/electron-build/agents/goal-flywheel/wiring/contract.js.map +1 -0
  80. package/dist/electron-build/agents/goal-flywheel/wiring/index.js +111 -0
  81. package/dist/electron-build/agents/goal-flywheel/wiring/index.js.map +1 -0
  82. package/dist/electron-build/agents/goal-flywheel/wiring/monitor.js +264 -0
  83. package/dist/electron-build/agents/goal-flywheel/wiring/monitor.js.map +1 -0
  84. package/dist/electron-build/agents/goal-flywheel/wiring/seams.js +612 -0
  85. package/dist/electron-build/agents/goal-flywheel/wiring/seams.js.map +1 -0
  86. package/dist/electron-build/agents/goal-flywheel/work-contract.js +488 -0
  87. package/dist/electron-build/agents/goal-flywheel/work-contract.js.map +1 -0
  88. package/dist/electron-build/agents/goal-flywheel/work-monitor.js +501 -0
  89. package/dist/electron-build/agents/goal-flywheel/work-monitor.js.map +1 -0
  90. package/dist/electron-build/agents/goal-flywheel-wiring.js +1962 -0
  91. package/dist/electron-build/agents/goal-flywheel-wiring.js.map +1 -0
  92. package/dist/electron-build/agents/goal-state-reducer.js +414 -0
  93. package/dist/electron-build/agents/goal-state-reducer.js.map +1 -0
  94. package/dist/electron-build/agents/goal-store.js +35 -1
  95. package/dist/electron-build/agents/goal-store.js.map +1 -1
  96. package/dist/electron-build/agents/local-signer.js +101 -0
  97. package/dist/electron-build/agents/local-signer.js.map +1 -0
  98. package/dist/electron-build/agents/network-pulse.js +531 -28
  99. package/dist/electron-build/agents/network-pulse.js.map +1 -1
  100. package/dist/electron-build/agents/pi-sdk.js +74 -19
  101. package/dist/electron-build/agents/pi-sdk.js.map +1 -1
  102. package/dist/electron-build/agents/run-store.js +20 -5
  103. package/dist/electron-build/agents/run-store.js.map +1 -1
  104. package/dist/electron-build/agents/skill-readiness.js +52 -9
  105. package/dist/electron-build/agents/skill-readiness.js.map +1 -1
  106. package/dist/electron-build/agents/task/task-runner.js +35 -5
  107. package/dist/electron-build/agents/task/task-runner.js.map +1 -1
  108. package/dist/electron-build/agents/task-board.js +761 -0
  109. package/dist/electron-build/agents/task-board.js.map +1 -0
  110. package/dist/electron-build/agents/task-contract.js +382 -0
  111. package/dist/electron-build/agents/task-contract.js.map +1 -0
  112. package/dist/electron-build/orbitdb/cid-database.js +83 -17
  113. package/dist/electron-build/orbitdb/cid-database.js.map +1 -1
  114. package/dist/electron-build/orbitdb/ipfs-node.js +31 -2
  115. package/dist/electron-build/orbitdb/ipfs-node.js.map +1 -1
  116. package/dist/electron-build/utils/dual-source.js +471 -0
  117. package/dist/electron-build/utils/dual-source.js.map +1 -0
  118. package/dist/electron-build/utils/update-manager.js +331 -57
  119. package/dist/electron-build/utils/update-manager.js.map +1 -1
  120. package/dist/electron-build/utils/update-state.js +16 -1
  121. package/dist/electron-build/utils/update-state.js.map +1 -1
  122. package/dist/electron-build/utils/version-info.js +82 -2
  123. package/dist/electron-build/utils/version-info.js.map +1 -1
  124. package/dist/index.js +103 -12
  125. package/dist/ios/chain-explorer.js +617 -0
  126. package/dist/ios/explorer.html +163 -0
  127. package/dist/ios/index.html +96 -0
  128. package/dist/ios/mobile-agent.js +2 -2
  129. package/dist/ios/mobile-contacts.js +329 -0
  130. package/dist/ios/mobile-core.js +1379 -226
  131. package/dist/ios/mobile-privacy.js +185 -0
  132. package/dist/ios/mobile.css +19 -0
  133. package/dist/ios/mobile.html +96 -0
  134. package/dist/ios/mobile.js +706 -7
  135. package/dist/ios/routes-chain-index.js +108 -0
  136. package/dist/ios/routes-contacts.js +420 -0
  137. package/dist/ios/routes-onchain-trade.js +99 -0
  138. package/dist/ios/routes-x402-info.js +1 -0
  139. package/dist/ios/server.js +762 -0
  140. package/dist/ios/task-frame-server.js +211 -0
  141. package/dist/orbitdb/cid-database.js +81 -16
  142. package/dist/orbitdb/ipfs-node.js +31 -2
  143. package/dist/utils/dual-source.js +426 -0
  144. package/dist/utils/update-cli.js +16 -21
  145. package/dist/utils/update-health.js +35 -5
  146. package/dist/utils/update-manager.js +329 -57
  147. package/dist/utils/update-state.js +16 -1
  148. package/dist/utils/version-info.js +75 -1
  149. package/dist/web/mobile-contacts.js +44 -11
  150. package/dist/web/mobile-core.js +1197 -513
  151. package/dist/web/mobile-tasks.js +339 -0
  152. package/dist/web/mobile.css +19 -0
  153. package/dist/web/mobile.html +64 -0
  154. package/dist/web/mobile.js +531 -1
  155. package/dist/web/routes-mobile-tasks.js +353 -0
  156. package/dist/web/server.js +163 -4
  157. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-board.js","sourceRoot":"","sources":["../../../src/agents/task-board.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,382 @@
1
+ "use strict";
2
+ /**
3
+ * task-contract.ts — bolloon-task/1 任务协议 (Phase 1)
4
+ *
5
+ * 把「任务委派」与「交易协议」统一起来: agent_delegate 是快速委派, 这里给出**标准化任务生命周期**。
6
+ * 设计要点 (leo 2026-09-21 计划 + 支付规则修正):
7
+ * · 任务状态与支付事实**严格分离** —— "已付款" 永远不等于 "任务成功"
8
+ * · requestId 幂等; taskId 生命周期; capability 匹配; budget 约束; signature 证明来源
9
+ * · 任务正文只走 P2P / 受保护链路, **绝不进公开脉冲**
10
+ * · 支付模式: manual | policy | autonomous | **agent-authorized** (受控自主签名)
11
+ * · 私钥只在**本机进程**内可用: 公共网页 / P2P 消息 / Pulse / 公开交易记录永远拿不到;
12
+ * 每次签名写审计账本; 越权网络 / 越额 / 重复 requestId 一律拒绝
13
+ *
14
+ * 本文件是纯契约层 (类型 + 状态机 + 校验 + 签名 + 审计 + 公开投影), 不做 IO 编排。
15
+ */
16
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ var desc = Object.getOwnPropertyDescriptor(m, k);
19
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
+ desc = { enumerable: true, get: function() { return m[k]; } };
21
+ }
22
+ Object.defineProperty(o, k2, desc);
23
+ }) : (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ o[k2] = m[k];
26
+ }));
27
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29
+ }) : function(o, v) {
30
+ o["default"] = v;
31
+ });
32
+ var __importStar = (this && this.__importStar) || (function () {
33
+ var ownKeys = function(o) {
34
+ ownKeys = Object.getOwnPropertyNames || function (o) {
35
+ var ar = [];
36
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
37
+ return ar;
38
+ };
39
+ return ownKeys(o);
40
+ };
41
+ return function (mod) {
42
+ if (mod && mod.__esModule) return mod;
43
+ var result = {};
44
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
45
+ __setModuleDefault(result, mod);
46
+ return result;
47
+ };
48
+ })();
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.AUDIT_FORBIDDEN_KEYS = exports.PAYMENT_MODES = exports.TASK_PAYMENT_FACTS = exports.TASK_TERMINAL_STATES = exports.TASK_TRANSITIONS = exports.TASK_STATES = exports.TASK_PROTOCOL = void 0;
51
+ exports.isTaskState = isTaskState;
52
+ exports.isTaskTerminal = isTaskTerminal;
53
+ exports.canTransitionTask = canTransitionTask;
54
+ exports.checkTaskMove = checkTaskMove;
55
+ exports.isPaymentFact = isPaymentFact;
56
+ exports.maxFactForMode = maxFactForMode;
57
+ exports.isTaskSuccessful = isTaskSuccessful;
58
+ exports.isPaymentMode = isPaymentMode;
59
+ exports.taskRequestId = taskRequestId;
60
+ exports.newTaskId = newTaskId;
61
+ exports.validateTaskRequest = validateTaskRequest;
62
+ exports.validateQuoteAgainstRequest = validateQuoteAgainstRequest;
63
+ exports.dedupeInbox = dedupeInbox;
64
+ exports.signablePayload = signablePayload;
65
+ exports.signTaskEnvelope = signTaskEnvelope;
66
+ exports.decodeSignature = decodeSignature;
67
+ exports.verifyTaskEnvelope = verifyTaskEnvelope;
68
+ exports.authorizeWalletSignature = authorizeWalletSignature;
69
+ exports.recordSignatureAudit = recordSignatureAudit;
70
+ exports.readSignatureAudit = readSignatureAudit;
71
+ exports.assertAuditSafe = assertAuditSafe;
72
+ exports.amountBucket = amountBucket;
73
+ exports.toPublicSummary = toPublicSummary;
74
+ const fs = __importStar(require("fs"));
75
+ const os = __importStar(require("os"));
76
+ const path = __importStar(require("path"));
77
+ const crypto = __importStar(require("crypto"));
78
+ const network_pulse_js_1 = require("./network-pulse.js");
79
+ exports.TASK_PROTOCOL = 'bolloon-task/1';
80
+ // ── 任务状态机 ──────────────────────────────────────────────────────────────
81
+ exports.TASK_STATES = [
82
+ 'discovered', // 发现候选
83
+ 'quoted', // 已报价
84
+ 'policy_denied', // 策略拒绝 (终态)
85
+ 'submitted', // 已签名发出
86
+ 'accepted', // 对方接受
87
+ 'payment_required', // 等付款
88
+ 'paying', // 付款中
89
+ 'paid', // 付款已提交 (≠ 成功)
90
+ 'running', // 对方执行中
91
+ 'delivered', // 已交付
92
+ 'verified', // 已验真 (终态)
93
+ 'rejected', // 对方拒绝 (终态)
94
+ 'failed', // 失败 (终态)
95
+ 'cancelled', // 取消 (终态)
96
+ ];
97
+ /** 合法迁移图 (非法迁移一律**拒绝**, 不静默修正) */
98
+ exports.TASK_TRANSITIONS = {
99
+ discovered: ['quoted', 'policy_denied', 'cancelled'],
100
+ quoted: ['submitted', 'policy_denied', 'cancelled'],
101
+ policy_denied: [],
102
+ submitted: ['accepted', 'rejected', 'payment_required', 'failed', 'cancelled'],
103
+ accepted: ['payment_required', 'paying', 'running', 'rejected', 'failed', 'cancelled'],
104
+ payment_required: ['paying', 'cancelled', 'failed'],
105
+ paying: ['paid', 'payment_required', 'failed'], // 不确定 → 回到 payment_required 等对账 (不许当失败)
106
+ paid: ['running', 'delivered', 'failed'],
107
+ running: ['delivered', 'failed'],
108
+ delivered: ['verified', 'failed'], // 交付后必须验真才算成功
109
+ verified: [],
110
+ rejected: [],
111
+ failed: [],
112
+ cancelled: [],
113
+ };
114
+ exports.TASK_TERMINAL_STATES = ['policy_denied', 'verified', 'rejected', 'failed', 'cancelled'];
115
+ function isTaskState(v) {
116
+ return typeof v === 'string' && exports.TASK_STATES.includes(v);
117
+ }
118
+ function isTaskTerminal(s) {
119
+ return exports.TASK_TERMINAL_STATES.includes(s);
120
+ }
121
+ function canTransitionTask(from, to) {
122
+ return Array.isArray(exports.TASK_TRANSITIONS[from]) && exports.TASK_TRANSITIONS[from].includes(to);
123
+ }
124
+ function checkTaskMove(from, to) {
125
+ if (!isTaskState(from) || !isTaskState(to))
126
+ return { ok: false, reason: `未知任务状态: ${String(from)} → ${String(to)}` };
127
+ if (from === to)
128
+ return { ok: true };
129
+ if (!canTransitionTask(from, to)) {
130
+ return { ok: false, reason: `非法任务迁移 ${from} → ${to} (拒绝, 不静默修正)` };
131
+ }
132
+ return { ok: true };
133
+ }
134
+ // ── 支付事实 (与任务状态分离) ───────────────────────────────────────────────
135
+ /** 与 `x402/settlement-state.ts` 的两层事实保持同一套取值 (单测里有对齐断言) */
136
+ exports.TASK_PAYMENT_FACTS = [
137
+ 'unpaid', 'payment_submitted', 'payment_verified', 'partially_settled',
138
+ 'fully_settled', 'refund_pending', 'refunded', 'unknown',
139
+ ];
140
+ function isPaymentFact(v) {
141
+ return typeof v === 'string' && exports.TASK_PAYMENT_FACTS.includes(v);
142
+ }
143
+ /** local-dev 能到哪一步 (与 x402 红线一致: 永不 fully_settled) */
144
+ function maxFactForMode(mode) {
145
+ // 与 settlement-state 的 CHAIN_BACKED_FACTS / LOCAL_DEV_MAX_FACT 对齐 (单测有断言)
146
+ return mode === 'facilitator' ? 'fully_settled' : mode === 'local-dev' ? 'payment_submitted' : 'unpaid';
147
+ }
148
+ /** "成功" 的唯一判据: 任务 verified ∧ 支付事实到链上口径 */
149
+ function isTaskSuccessful(task) {
150
+ return task.state === 'verified'
151
+ && (task.paymentFact === 'fully_settled' || task.paymentFact === 'payment_verified');
152
+ }
153
+ // ── 支付模式 (含 leo 修正的 agent-authorized) ───────────────────────────────
154
+ exports.PAYMENT_MODES = ['manual', 'policy', 'autonomous', 'agent-authorized'];
155
+ function isPaymentMode(v) {
156
+ return typeof v === 'string' && exports.PAYMENT_MODES.includes(v);
157
+ }
158
+ // ── 幂等 id ─────────────────────────────────────────────────────────────────
159
+ function sha256Hex(s) {
160
+ return crypto.createHash('sha256').update(s).digest('hex');
161
+ }
162
+ /** 由 (任务正文, capability, 买方) 确定性派生 requestId —— 重发不会产生第二笔付款 */
163
+ function taskRequestId(input) {
164
+ const h = sha256Hex(`${input.instruction.trim()}|${input.capability}|${input.buyerDid}|${input.salt || ''}`);
165
+ return `treq-${h.slice(0, 16)}`;
166
+ }
167
+ function newTaskId(now = Date.now()) {
168
+ return `task-${now.toString(36)}-${crypto.randomBytes(3).toString('hex')}`;
169
+ }
170
+ // ── 校验 ────────────────────────────────────────────────────────────────────
171
+ const ATOMIC_RE = /^[0-9]+$/; // 原子单位必须是正整数 (浮点/负数/空一律拒)
172
+ function validateTaskRequest(req, opts = {}) {
173
+ const issues = [];
174
+ const now = opts.now ?? Date.now();
175
+ if (req?.protocol !== exports.TASK_PROTOCOL)
176
+ issues.push(`协议版本不对: ${String(req?.protocol)} (要 ${exports.TASK_PROTOCOL})`);
177
+ for (const k of ['taskId', 'requestId', 'capability', 'instruction', 'buyerDid', 'providerDid']) {
178
+ if (!String(req?.[k] || '').trim())
179
+ issues.push(`缺字段 ${k}`);
180
+ }
181
+ if (!isPaymentMode(req?.paymentMode))
182
+ issues.push(`支付模式非法: ${String(req?.paymentMode)}`);
183
+ if (req?.budget) {
184
+ const b = req.budget;
185
+ if (!ATOMIC_RE.test(String(b.maxAmount ?? '')))
186
+ issues.push(`budget.maxAmount 必须是正整数原子单位字符串 (收到 ${String(b.maxAmount)})`);
187
+ if (b.currency !== 'USDC' && b.currency !== 'ETH')
188
+ issues.push(`budget.currency 只支持 USDC/ETH (收到 ${String(b.currency)})`);
189
+ if (!String(b.network || '').trim())
190
+ issues.push('budget.network 必填');
191
+ if (opts.allowedNetworks?.length && !opts.allowedNetworks.includes(String(b.network)))
192
+ issues.push(`网络不在允许列表: ${String(b.network)}`);
193
+ if (opts.maxAmountAtomic && ATOMIC_RE.test(String(b.maxAmount ?? '')) && BigInt(b.maxAmount) > BigInt(opts.maxAmountAtomic)) {
194
+ issues.push(`预算超过单笔上限: ${b.maxAmount} > ${opts.maxAmountAtomic}`);
195
+ }
196
+ }
197
+ if (req?.deadline !== undefined) {
198
+ if (!Number.isFinite(req.deadline))
199
+ issues.push('deadline 非法');
200
+ else if (req.deadline <= now)
201
+ issues.push(`deadline 已过期 (${req.deadline} <= ${now})`);
202
+ }
203
+ if (!String(req?.signature || '').trim())
204
+ issues.push('缺签名 (任务必须由发送方签名)');
205
+ // 时钟漂移 (防重放): 只看 deadline 是否荒谬地久远
206
+ const maxSkew = opts.maxSkewMs ?? 24 * 60 * 60 * 1000;
207
+ if (req?.deadline !== undefined && req.deadline > now + maxSkew * 30)
208
+ issues.push('deadline 过远 (疑似伪造)');
209
+ return { ok: issues.length === 0, issues };
210
+ }
211
+ /** 报价与请求是否自洽 (agent 不得接受被篡改的报价) */
212
+ function validateQuoteAgainstRequest(quote, req, opts = {}) {
213
+ const issues = [];
214
+ if (quote?.protocol !== exports.TASK_PROTOCOL)
215
+ issues.push(`报价协议版本不对: ${String(quote?.protocol)}`);
216
+ if (!quote?.taskId || quote.taskId !== req?.taskId)
217
+ issues.push('报价的 taskId 与请求不一致 (可能被篡改)');
218
+ if (!quote?.requestId || quote.requestId !== req?.requestId)
219
+ issues.push('报价的 requestId 与请求不一致 (回执不能跨请求复用)');
220
+ if (quote?.capability !== req?.capability)
221
+ issues.push(`报价能力与请求不一致: ${String(quote?.capability)} ≠ ${String(req?.capability)}`);
222
+ if (!ATOMIC_RE.test(String(quote?.amount ?? '')))
223
+ issues.push(`报价金额必须是正整数原子单位字符串 (收到 ${String(quote?.amount)})`);
224
+ if (req?.budget) {
225
+ if (quote?.currency !== req.budget.currency)
226
+ issues.push('报价币种与预算不一致');
227
+ if (quote?.network !== req.budget.network)
228
+ issues.push('报价网络与预算不一致');
229
+ if (ATOMIC_RE.test(String(quote?.amount ?? '')) && BigInt(String(quote?.amount)) > BigInt(req.budget.maxAmount)) {
230
+ issues.push(`报价超过任务预算: ${quote.amount} > ${req.budget.maxAmount}`);
231
+ }
232
+ }
233
+ if (opts.maxAmountAtomic && ATOMIC_RE.test(String(quote?.amount ?? '')) && BigInt(String(quote?.amount)) > BigInt(opts.maxAmountAtomic)) {
234
+ issues.push(`报价超过单笔上限: ${quote.amount} > ${opts.maxAmountAtomic}`);
235
+ }
236
+ return { ok: issues.length === 0, issues };
237
+ }
238
+ /** 接收方去重: 同一个 requestId 只接受一次 (重复请求不得重复执行/重复收费) */
239
+ function dedupeInbox(inbox, incoming) {
240
+ const hit = inbox.find((x) => x.requestId === incoming.requestId);
241
+ return hit ? { dup: true, reason: `requestId ${incoming.requestId} 已在收件箱 (幂等: 不重复接受)` } : { dup: false };
242
+ }
243
+ // ── 签名 (受控自主签名: 私钥只在本机进程) ───────────────────────────────────
244
+ /** 签名覆盖内容: 去掉 signature 字段后的规范化 JSON */
245
+ function signablePayload(payload) {
246
+ const { signature, ...rest } = payload;
247
+ void signature;
248
+ return (0, network_pulse_js_1.canonicalize)(rest);
249
+ }
250
+ async function signTaskEnvelope(payload, keypair) {
251
+ const { KeyManager } = await Promise.resolve().then(() => __importStar(require('@diap/sdk')));
252
+ // 与 src/network/agent-network.ts 一致: 签名输入是 Uint8Array
253
+ const bytes = new TextEncoder().encode(signablePayload(payload));
254
+ const sig = await KeyManager.sign(keypair, bytes);
255
+ return { ...payload, signature: typeof sig === 'string' ? sig : Buffer.from(sig).toString('base64') };
256
+ }
257
+ /**
258
+ * 信封里的签名是 **base64 字符串** (便于走 JSON/P2P), 但 @diap/sdk 的
259
+ * `KeyManager.verify` 要的是 64 字节 `Uint8Array` (ed25519) —— 必须解码回去。
260
+ * 同时容忍 128 位十六进制写法 (老格式)。
261
+ */
262
+ function decodeSignature(sig) {
263
+ if (/^[0-9a-f]{128}$/i.test(sig))
264
+ return new Uint8Array(Buffer.from(sig, 'hex'));
265
+ return new Uint8Array(Buffer.from(sig, 'base64'));
266
+ }
267
+ async function verifyTaskEnvelope(payload, publicKey) {
268
+ try {
269
+ if (!payload?.signature)
270
+ return false;
271
+ const { KeyManager } = await Promise.resolve().then(() => __importStar(require('@diap/sdk')));
272
+ const bytes = new TextEncoder().encode(signablePayload(payload));
273
+ return await KeyManager.verify(publicKey, bytes, decodeSignature(payload.signature));
274
+ }
275
+ catch {
276
+ return false;
277
+ }
278
+ }
279
+ /**
280
+ * **受控自主签名** 的唯一放行判据。任何一条不满足 → 拒绝签名 (fail-closed)。
281
+ * 注意: 私钥永远不进这里 —— 这里只决定"允不允许让本机钱包模块去签"。
282
+ */
283
+ function authorizeWalletSignature(req) {
284
+ const checks = {
285
+ modeIsAutonomous: req.mode === 'autonomous' || req.mode === 'agent-authorized',
286
+ agentAuthorized: req.agentAuthorized === true,
287
+ walletAvailable: req.walletAvailable === true,
288
+ networkAllowed: !req.allowedNetworks?.length || req.allowedNetworks.includes(req.network),
289
+ capabilityAllowed: !req.allowedCapabilities?.length || req.allowedCapabilities.includes(req.capability),
290
+ underPerTx: !req.maxPerTxAtomic || (ATOMIC_RE.test(req.amountAtomic) && BigInt(req.amountAtomic) <= BigInt(req.maxPerTxAtomic)),
291
+ underDaily: !req.dailyLimitAtomic || BigInt(req.spentTodayAtomic || '0') + BigInt(ATOMIC_RE.test(req.amountAtomic) ? req.amountAtomic : '0') <= BigInt(req.dailyLimitAtomic),
292
+ notDuplicate: !(req.signedRequestIds || []).includes(req.requestId),
293
+ amountIsInteger: ATOMIC_RE.test(req.amountAtomic),
294
+ };
295
+ const failed = Object.entries(checks).filter(([, v]) => !v).map(([k]) => k);
296
+ if (failed.length)
297
+ return { allowed: false, reason: `拒绝签名: ${failed.join(', ')}`, checks };
298
+ return { allowed: true, checks };
299
+ }
300
+ const auditFile = (h) => path.join(h || process.env.HOME || os.homedir(), '.bolloon', 'wallet-signatures.jsonl');
301
+ async function recordSignatureAudit(entry, h) {
302
+ const row = { at: Date.now(), payloadDigest: entry.payloadDigest || '', ...entry };
303
+ try {
304
+ fs.mkdirSync(path.dirname(auditFile(h)), { recursive: true });
305
+ fs.appendFileSync(auditFile(h), JSON.stringify(row) + '\n', 'utf8');
306
+ // ★ 公开观察层: 钱包签名是一次真实活动 → 计一次签名 (fire-and-forget, 只计数不记内容)
307
+ try {
308
+ const np = await Promise.resolve().then(() => __importStar(require('./network-pulse.js')));
309
+ void np.recordNetworkEvent({
310
+ type: 'wallet_signed',
311
+ did: entry.signerFingerprint,
312
+ agentId: entry.taskId || entry.requestId,
313
+ taskId: entry.taskId || entry.requestId,
314
+ signed: true,
315
+ }, h);
316
+ }
317
+ catch { /* noop */ }
318
+ }
319
+ catch { /* 审计写失败不该炸主流程, 但调用方应看到 */ }
320
+ }
321
+ async function readSignatureAudit(h, limit = 50) {
322
+ try {
323
+ const lines = fs.readFileSync(auditFile(h), 'utf8').trim().split('\n').filter(Boolean);
324
+ return lines.slice(-limit).map((l) => JSON.parse(l));
325
+ }
326
+ catch {
327
+ return [];
328
+ }
329
+ }
330
+ /** 审计条目里绝不允许出现的东西 */
331
+ exports.AUDIT_FORBIDDEN_KEYS = ['privateKey', 'secret', 'instruction', 'taskText', 'mnemonic', 'seed'];
332
+ function assertAuditSafe(entry) {
333
+ const issues = [];
334
+ const walk = (v, p) => {
335
+ if (Array.isArray(v))
336
+ return v.forEach((x, i) => walk(x, `${p}[${i}]`));
337
+ if (v && typeof v === 'object') {
338
+ for (const [k, val] of Object.entries(v)) {
339
+ if (exports.AUDIT_FORBIDDEN_KEYS.includes(k))
340
+ issues.push(`${p}.${k} 不该出现在签名审计里`);
341
+ walk(val, `${p}.${k}`);
342
+ }
343
+ }
344
+ };
345
+ walk(entry, '$');
346
+ return issues;
347
+ }
348
+ /** 金额只以**区间**对外 (不暴露精确金额) */
349
+ function amountBucket(amountAtomic) {
350
+ if (!ATOMIC_RE.test(amountAtomic))
351
+ return 'tiny';
352
+ const n = Number(amountAtomic);
353
+ if (n < 10_000)
354
+ return 'tiny'; // < 0.01 USDC
355
+ if (n < 100_000)
356
+ return 'small'; // < 0.1
357
+ if (n < 1_000_000)
358
+ return 'medium'; // < 1
359
+ return 'large';
360
+ }
361
+ /**
362
+ * 任务的**公开摘要**: 只保留可公开的粗粒度事实。
363
+ * 绝不包含: DID / 任务正文 / 精确金额 / 交易哈希 / 私有 Agent 名。
364
+ */
365
+ function toPublicSummary(task, opts = {}) {
366
+ const group = opts.capabilityGroupOf ? opts.capabilityGroupOf(task.capability) : 'other';
367
+ const settlement = task.paymentFact === 'fully_settled' ? 'chain'
368
+ : task.paymentFact === 'payment_submitted' || task.paymentMode === 'local-dev' ? 'local-dev'
369
+ : 'none';
370
+ const kind = task.state === 'verified' ? 'trade_verified'
371
+ : task.state === 'delivered' ? 'task_completed'
372
+ : task.state === 'accepted' || task.state === 'running' ? 'task_accepted'
373
+ : 'task_posted';
374
+ return {
375
+ kind,
376
+ capabilityGroup: group,
377
+ ...(task.amountAtomic ? { amountBucket: amountBucket(task.amountAtomic) } : {}),
378
+ settlement,
379
+ state: task.state,
380
+ };
381
+ }
382
+ //# sourceMappingURL=task-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-contract.js","sourceRoot":"","sources":["../../../src/agents/task-contract.ts"],"names":[],"mappings":"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"}
@@ -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() {