@bolloon/bolloon-agent 0.5.2 → 0.5.3

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 (53) hide show
  1. package/README.md +4 -4
  2. package/dist/agents/chain/transfer-classify.js +99 -0
  3. package/dist/agents/chain/transfer-index.js +354 -0
  4. package/dist/agents/identity/address-binding.js +613 -0
  5. package/dist/agents/network-pulse.js +706 -27
  6. package/dist/agents/x402/direct-payment.js +689 -0
  7. package/dist/agents/x402/order-identity.js +408 -0
  8. package/dist/agents/x402/paid-info-store.js +17 -0
  9. package/dist/agents/x402/seller-signing.js +614 -0
  10. package/dist/agents/x402/seller-summary.js +398 -0
  11. package/dist/cli/identity-command.js +327 -2
  12. package/dist/cli/protocol-envelope.js +4 -0
  13. package/dist/cli/update-commands.js +41 -25
  14. package/dist/cli/x402-buyer-command.js +463 -0
  15. package/dist/cli/x402-seller-command.js +289 -0
  16. package/dist/cli-entry.js +21 -5
  17. package/dist/electron-build/agents/chain/transfer-classify.js +106 -0
  18. package/dist/electron-build/agents/chain/transfer-classify.js.map +1 -0
  19. package/dist/electron-build/agents/chain/transfer-index.js +400 -0
  20. package/dist/electron-build/agents/chain/transfer-index.js.map +1 -0
  21. package/dist/electron-build/agents/identity/address-binding.js +672 -0
  22. package/dist/electron-build/agents/identity/address-binding.js.map +1 -0
  23. package/dist/electron-build/agents/network-pulse.js +714 -28
  24. package/dist/electron-build/agents/network-pulse.js.map +1 -1
  25. package/dist/electron-build/agents/x402/direct-payment.js +744 -0
  26. package/dist/electron-build/agents/x402/direct-payment.js.map +1 -0
  27. package/dist/electron-build/agents/x402/order-identity.js +458 -0
  28. package/dist/electron-build/agents/x402/order-identity.js.map +1 -0
  29. package/dist/electron-build/agents/x402/paid-info-protocol.js.map +1 -1
  30. package/dist/electron-build/agents/x402/paid-info-store.js +18 -0
  31. package/dist/electron-build/agents/x402/paid-info-store.js.map +1 -1
  32. package/dist/electron-build/agents/x402/seller-signing.js +682 -0
  33. package/dist/electron-build/agents/x402/seller-signing.js.map +1 -0
  34. package/dist/electron-build/utils/auto-update.js +2 -2
  35. package/dist/electron-build/utils/auto-update.js.map +1 -1
  36. package/dist/electron-build/utils/runtime-bootstrap.js +1 -1
  37. package/dist/electron-build/utils/runtime-bootstrap.js.map +1 -1
  38. package/dist/electron-build/utils/update-manager.js +3 -3
  39. package/dist/electron-build/utils/update-manager.js.map +1 -1
  40. package/dist/electron-build/utils/version-identity.js +1 -1
  41. package/dist/electron-build/utils/version-identity.js.map +1 -1
  42. package/dist/electron-build/web/routes-x402-info.js +28 -1
  43. package/dist/electron-build/web/routes-x402-info.js.map +1 -1
  44. package/dist/index.js +3 -3
  45. package/dist/utils/auto-update.js +2 -2
  46. package/dist/utils/runtime-bootstrap.js +1 -1
  47. package/dist/utils/update-health.js +2 -2
  48. package/dist/utils/update-manager.js +3 -3
  49. package/dist/utils/version-identity.js +1 -1
  50. package/dist/web/bolloon-web.json +3 -3
  51. package/dist/web/routes-x402-info.js +28 -1
  52. package/dist/web/sw.js +1 -1
  53. package/package.json +2 -1
@@ -56,6 +56,7 @@ const os = __importStar(require("os"));
56
56
  const paid_info_store_js_1 = require("../agents/x402/paid-info-store.js");
57
57
  const paid_info_protocol_js_1 = require("../agents/x402/paid-info-protocol.js");
58
58
  const paid_info_tools_js_1 = require("../agents/x402/paid-info-tools.js");
59
+ const direct_payment_js_1 = require("../agents/x402/direct-payment.js");
59
60
  /** 本机 DIAP 身份 (签发信封用) — 缺失时明确报错, 不静默造一个 */
60
61
  async function loadProviderKeypair() {
61
62
  try {
@@ -158,7 +159,7 @@ function registerX402InfoRoutes(app) {
158
159
  content: stored.content,
159
160
  keypair: kp,
160
161
  payment: {
161
- mode: pay.mode === 'facilitator' ? 'facilitator' : 'local-dev',
162
+ mode: pay.mode === 'facilitator' ? 'facilitator' : pay.mode === 'direct' ? 'direct' : 'local-dev',
162
163
  receipt: String(pay.receipt || ''),
163
164
  txHash: pay.txHash,
164
165
  network: pay.network || stored.item.price.network,
@@ -175,6 +176,32 @@ function registerX402InfoRoutes(app) {
175
176
  res.status(500).json({ error: e?.message });
176
177
  }
177
178
  });
179
+ // ---- 去中心化直付 (mode = 'direct'): 买方自己发 USDC, 把 txHash 交回来 ----
180
+ // POST /api/x402/info/:id/payment body: { "txHash": "0x…" }
181
+ // 服务器**只读链**: receipt.status=1 + USDC Transfer → payTo + value >= accepts.amount
182
+ // + 两条不同 RPC 交叉一致 + 确认数够 → 落待办 + 给取件 token (202); 未过 → 402 (accepts 逐字)
183
+ app.post('/api/x402/info/:id/payment', async (req, res) => {
184
+ try {
185
+ const id = String(req.params.id);
186
+ const stored = await (0, paid_info_store_js_1.getStoredInfo)(id);
187
+ if (!stored)
188
+ return res.status(404).json({ error: '信息不存在' });
189
+ const baseUrl = `${req.protocol || 'http'}://${req.headers?.host || `127.0.0.1:${process.env.PORT || 54188}`}`;
190
+ const out = await (0, direct_payment_js_1.handleDirectPayment)({
191
+ item: stored.item,
192
+ bodyText: typeof req.body === 'string' ? req.body : JSON.stringify(req.body ?? {}),
193
+ resourceUrl: `${baseUrl}${(0, direct_payment_js_1.directPaymentPath)(stored.item.id)}`,
194
+ });
195
+ return res.status(out.status).set(out.headers).send(out.body);
196
+ }
197
+ catch (e) {
198
+ res.status(500).json({ error: e?.message });
199
+ }
200
+ });
201
+ // ---- 直付模式自述 (health 用: 开关与口径必须能从机器读到) ----
202
+ app.get('/api/x402/direct', async (_req, res) => {
203
+ res.json({ enabled: (0, direct_payment_js_1.directPaymentEnabled)(), paymentPath: (0, direct_payment_js_1.directPaymentPath)(':id'), ...(0, direct_payment_js_1.directHealth)() });
204
+ });
178
205
  // ---- 买方辅助: 代付 + 验真 ----
179
206
  app.post('/api/x402/info/buy', async (req, res) => {
180
207
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"routes-x402-info.js","sourceRoot":"","sources":["../../../src/web/routes-x402-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes-x402-info.js","sourceRoot":"","sources":["../../../src/web/routes-x402-info.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3872,7 +3872,7 @@ goalFlag) {
3872
3872
  : 'ℹ 使用缓存结论';
3873
3873
  response = `${head}\n\n当前版本: ${r.currentVersion}\n最新版本: ${r.latestVersion || '未知'}\n安装方式: ${r.installMethod}\n结论: ${r.status}${r.reason ? `\n说明: ${r.reason}` : ''}`;
3874
3874
  if (r.status === 'update_available')
3875
- response += `\n\n运行 bolloon update plan 看计划, bolloon update now 执行更新`;
3875
+ response += `\n\n运行 bolloon update 直接更新 (先打印计划与风险检查; 只看计划用 --dry-run)`;
3876
3876
  if (r.status === 'offline' || r.status === 'registry_unavailable' || r.status === 'local_version_unknown')
3877
3877
  error = response;
3878
3878
  break;
@@ -4748,10 +4748,10 @@ async function main() {
4748
4748
  }
4749
4749
  // 启动时后台检查更新 (不阻塞主流程)。
4750
4750
  // 2026-09-19 行为变更: **默认只通知, 不自动安装** —— 发现新版本会打印一行提示 +
4751
- // "bolloon update plan / now"。要恢复自动安装需显式 config.json `autoInstall: true`
4751
+ // "bolloon update"。要恢复自动安装需显式 config.json `autoInstall: true`
4752
4752
  // (+ `autoRestart: true` 才自动重启)。
4753
4753
  // 关闭本次检查: --no-update / BOLLOON_SKIP_UPDATE=1; 临时开自动装: BOLLOON_AUTO_UPDATE=1
4754
- // 手动检查: bolloon update / bolloon update plan / bolloon doctor
4754
+ // 手动检查: bolloon update / bolloon update --dry-run / bolloon doctor
4755
4755
  if (!args.updateCheck && !args.updateNow) {
4756
4756
  void (async () => {
4757
4757
  try {
@@ -94,10 +94,10 @@ export async function checkAndUpdate(opts = {}) {
94
94
  case 'update_available': {
95
95
  notify(`⚠ 发现新版本: ${r.currentVersion} → ${r.latestVersion}`, YELLOW);
96
96
  if (!prefs.autoInstall) {
97
- notify(' 当前设置为**只通知不自动安装** (autoInstall=false)。更新: bolloon update plan → bolloon update now', CYAN);
97
+ notify(' 当前设置为**只通知不自动安装** (autoInstall=false)。更新: bolloon update (直接执行; 只看计划用 --dry-run)', CYAN);
98
98
  return {
99
99
  hasUpdate: true, info, updated: false,
100
- message: `发现新版 ${r.latestVersion}(未自动安装;运行 bolloon update now 更新)`,
100
+ message: `发现新版 ${r.latestVersion}(未自动安装;运行 bolloon update 更新)`,
101
101
  };
102
102
  }
103
103
  notify(' 自动安装已开启 (autoInstall=true),执行更新...', CYAN);
@@ -25,7 +25,7 @@ import { execFileSync, spawnSync } from 'child_process';
25
25
  import { resolveBolloonHome, CANONICAL_CONFIG_FILE } from '../setup/setup-store.js';
26
26
  export const RUNTIME_MIN = {
27
27
  node: { min: '18.0.0', why: 'Bolloon CLI 与依赖 (ESM / 全局 fetch / node: 前缀) 的运行时' },
28
- npm: { min: '9.0.0', why: '随 Node 18+ 发布; 全局安装与 `update now` 的安装通道' },
28
+ npm: { min: '9.0.0', why: '随 Node 18+ 发布; 全局安装与 `bolloon update` 的安装通道' },
29
29
  git: { min: '2.20.0', why: '`git -C` / `--porcelain` / worktree —— 源码更新与协作通道' },
30
30
  python: { min: '3.8.0', why: 'scripts/** (wiki 门禁/消融夹具) 与 Python Skill 执行' },
31
31
  };
@@ -345,13 +345,13 @@ export async function runDoctor(opts) {
345
345
  detail: `dev 快照: GitHub master ${st.devRef || 'refs/heads/master'} @ commit ${devSha} (比较语义 ${channelKindOf('dev')}, 非 semver)`
346
346
  + `${st.switchableTo ? ` · 可切回 stable (${st.switchableTo.source}${st.switchableTo.target ? ` @ ${st.switchableTo.target}` : ''})` : ''}`
347
347
  + ` · ${DEV_CHANNEL_WARNING}`,
348
- action: 'bolloon update now --channel stable',
348
+ action: 'bolloon update --channel stable',
349
349
  }
350
350
  : {
351
351
  id: 'update_source', label: '安装来源 (双源)', grade: 'ok',
352
352
  detail: `stable: npm registry 权威 (比较语义 ${channelKindOf('stable')})`
353
353
  + `${st.devSha ? ` · 上次用过 dev 快照 commit ${st.devSha}${st.devCheckedAt ? ` (${st.devCheckedAt})` : ''}, 已切回` : ''}`
354
- + ` · 默认通道 ${prefsChannel} · 切 dev 用: bolloon update now --channel dev`,
354
+ + ` · 默认通道 ${prefsChannel} · 切 dev 用: bolloon update --channel dev`,
355
355
  });
356
356
  }
357
357
  const inFlight = st.lastUpdate && IN_FLIGHT_RUN_STATUSES.includes(st.lastUpdate.status);
@@ -589,12 +589,12 @@ export function renderUpdatePlan(plan) {
589
589
  L.push('提醒 (不阻塞, 但建议先处理):');
590
590
  for (const a of plan.advisories)
591
591
  L.push(` - ${a}`);
592
- L.push(` 建议策略: 等当前 Run 结束后更新 (bolloon update --now --wait)`);
592
+ L.push(` 建议策略: 等当前 Run 结束后更新 (bolloon update wait)`);
593
593
  }
594
594
  L.push('');
595
- L.push(`可选: 立即更新 (bolloon update --now --channel ${plan.channel}) / 等当前 Run 结束 (bolloon update --now --wait --channel ${plan.channel}) / 取消`);
595
+ L.push(`可选: 立即更新 (bolloon update --channel ${plan.channel}) / 等当前 Run 结束 (bolloon update wait --channel ${plan.channel}) / 取消`);
596
596
  if (plan.channelKind === 'git-ref')
597
- L.push(`一键回稳定版: bolloon update now --channel stable`);
597
+ L.push(`一键回稳定版: bolloon update --channel stable`);
598
598
  L.push(`默认: ${plan.defaultStrategy === 'wait' ? '等待当前 Run 结束后更新' : '立即更新'}`);
599
599
  return L.join('\n');
600
600
  }
@@ -101,7 +101,7 @@ export function devShaFromIdentity(v) {
101
101
  */
102
102
  export const DEV_CHANNEL_WARNING = '⚠️ dev 通道 = GitHub master HEAD 的即时快照 (未走发布门): 可能中断正在跑的 Goal/Run, 且不保证可回滚到上一个 dev 版。';
103
103
  /** 一键回 stable 的提示语 (同一份措辞)。 */
104
- export const DEV_BACK_TO_STABLE_HINT = '一键回稳定版: bolloon update now --channel stable';
104
+ export const DEV_BACK_TO_STABLE_HINT = '一键回稳定版: bolloon update --channel stable';
105
105
  /** 手机端同一件事的说法 (原生层规则不同: 手机走 web 层 OTA, 不是 npm 全局安装)。 */
106
106
  export const DEV_BACK_TO_STABLE_HINT_MOBILE = '一键回稳定版: 手机端「更新」页 → 切回 stable';
107
107
  // ── 版本比较 (唯一一份) ─────────────────────────────────────────────────────
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "schema": "bolloon-mobile-web/1",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "channel": "stable",
5
5
  "build": "stable",
6
- "commit": "0f98f0fc9bbcd60f04105402a5163b85c58bc785",
7
- "builtAt": "2026-09-28T08:27:37.768Z",
6
+ "commit": "5d4b12a9059a6fa1679b349f9577e827a21fc427",
7
+ "builtAt": "2026-09-30T02:06:24.229Z",
8
8
  "layer": "web",
9
9
  "note": "web 资源层构建戳 (手机端 OTA 的身份第 ③ 级回退; 装机后以 OTA state.json 为准)"
10
10
  }
@@ -20,6 +20,7 @@ import * as os from 'os';
20
20
  import { listInfo, getStoredInfo, publishInfo, removeInfo, buildPaymentRequired, checkAndSettlePayment, buyInfo, } from '../agents/x402/paid-info-store.js';
21
21
  import { buildSignedEnvelope, verifyEnvelope, summarizeVerify } from '../agents/x402/paid-info-protocol.js';
22
22
  import { makeDidResolver } from '../agents/x402/paid-info-tools.js';
23
+ import { handleDirectPayment, directHealth, directPaymentPath, directPaymentEnabled } from '../agents/x402/direct-payment.js';
23
24
  /** 本机 DIAP 身份 (签发信封用) — 缺失时明确报错, 不静默造一个 */
24
25
  async function loadProviderKeypair() {
25
26
  try {
@@ -122,7 +123,7 @@ export function registerX402InfoRoutes(app) {
122
123
  content: stored.content,
123
124
  keypair: kp,
124
125
  payment: {
125
- mode: pay.mode === 'facilitator' ? 'facilitator' : 'local-dev',
126
+ mode: pay.mode === 'facilitator' ? 'facilitator' : pay.mode === 'direct' ? 'direct' : 'local-dev',
126
127
  receipt: String(pay.receipt || ''),
127
128
  txHash: pay.txHash,
128
129
  network: pay.network || stored.item.price.network,
@@ -139,6 +140,32 @@ export function registerX402InfoRoutes(app) {
139
140
  res.status(500).json({ error: e?.message });
140
141
  }
141
142
  });
143
+ // ---- 去中心化直付 (mode = 'direct'): 买方自己发 USDC, 把 txHash 交回来 ----
144
+ // POST /api/x402/info/:id/payment body: { "txHash": "0x…" }
145
+ // 服务器**只读链**: receipt.status=1 + USDC Transfer → payTo + value >= accepts.amount
146
+ // + 两条不同 RPC 交叉一致 + 确认数够 → 落待办 + 给取件 token (202); 未过 → 402 (accepts 逐字)
147
+ app.post('/api/x402/info/:id/payment', async (req, res) => {
148
+ try {
149
+ const id = String(req.params.id);
150
+ const stored = await getStoredInfo(id);
151
+ if (!stored)
152
+ return res.status(404).json({ error: '信息不存在' });
153
+ const baseUrl = `${req.protocol || 'http'}://${req.headers?.host || `127.0.0.1:${process.env.PORT || 54188}`}`;
154
+ const out = await handleDirectPayment({
155
+ item: stored.item,
156
+ bodyText: typeof req.body === 'string' ? req.body : JSON.stringify(req.body ?? {}),
157
+ resourceUrl: `${baseUrl}${directPaymentPath(stored.item.id)}`,
158
+ });
159
+ return res.status(out.status).set(out.headers).send(out.body);
160
+ }
161
+ catch (e) {
162
+ res.status(500).json({ error: e?.message });
163
+ }
164
+ });
165
+ // ---- 直付模式自述 (health 用: 开关与口径必须能从机器读到) ----
166
+ app.get('/api/x402/direct', async (_req, res) => {
167
+ res.json({ enabled: directPaymentEnabled(), paymentPath: directPaymentPath(':id'), ...directHealth() });
168
+ });
142
169
  // ---- 买方辅助: 代付 + 验真 ----
143
170
  app.post('/api/x402/info/buy', async (req, res) => {
144
171
  try {
package/dist/web/sw.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * 现在: 代码类资源 (html/js/css/json) 一律 **network-first** (拿不到网才回退缓存),
7
7
  * 缓存名带版本号, activate 时清掉所有旧缓存; 图标等静态资源仍 cache-first。
8
8
  */
9
- const CACHE = 'bolloon-mobile-v0.5.2';
9
+ const CACHE = 'bolloon-mobile-v0.5.3';
10
10
  const SHELL = [
11
11
  './mobile.html',
12
12
  './mobile.css',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bolloon/bolloon-agent",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "type": "module",
5
5
  "description": "P2P AI Document Agent - 全局安装后执行 `bolloon` 启动产品",
6
6
  "main": "dist/cli-entry.js",
@@ -108,6 +108,7 @@
108
108
  "qrcode": "^1.5.4",
109
109
  "react": "^19.2.8",
110
110
  "react-dom": "^19.2.8",
111
+ "undici": "^7.30.0",
111
112
  "viem": "^2.56.3"
112
113
  },
113
114
  "devDependencies": {