multica/package.json
yushen dc60cb754d feat(telegram): replace Hub URL binding with connection link verification
Replace the two-step Hub URL binding flow with a multica://connect
connection link flow that uses the same verify RPC handshake as the
SDK/web clients.

Changes:
- types.ts: replace hubUrl with hubId + agentId fields
- telegram-user.store.ts: update DB schema (hub_id, agent_id columns),
  accept explicit deviceId in upsert
- telegram.service.ts: rewrite with parseConnectionCode validation,
  verify RPC via routeFromVirtualDevice, pending request map for
  RPC promise tracking, smart sendCallback for stream/message/RPC
- package.json: add @multica/store workspace dependency

Flow: user pastes multica://connect link -> parse & validate ->
check Hub online -> register virtual device -> verify RPC to Hub ->
Desktop approval -> save to DB -> route messages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:04:35 +08:00

83 lines
2.3 KiB
JSON

{
"name": "super-multica",
"version": "1.0.0",
"description": "",
"type": "module",
"main": "dist/index.js",
"bin": {
"multica": "./bin/multica.mjs",
"mu": "./bin/multica.mjs"
},
"scripts": {
"multica": "tsx src/agent/cli/index.ts",
"mu": "tsx src/agent/cli/index.ts",
"dev": "tsx src/agent/cli/index.ts dev",
"dev:desktop": "tsx src/agent/cli/index.ts dev desktop",
"dev:gateway": "tsx src/agent/cli/index.ts dev gateway",
"dev:web": "tsx src/agent/cli/index.ts dev web",
"dev:all": "tsx src/agent/cli/index.ts dev all",
"build": "turbo build",
"build:sdk": "pnpm --filter @multica/sdk build",
"build:cli": "node scripts/build-cli.js",
"start": "node dist/index.js",
"typecheck": "turbo typecheck",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage"
},
"keywords": [],
"author": "",
"license": "ISC",
"packageManager": "pnpm@10.28.2",
"pnpm": {
"onlyBuiltDependencies": [
"electron",
"esbuild"
]
},
"devDependencies": {
"@types/node": "catalog:",
"@types/turndown": "^5.0.6",
"@types/uuid": "^11.0.0",
"@vitest/coverage-v8": "^4.0.18",
"concurrently": "^9.2.1",
"esbuild": "^0.27.2",
"tsx": "^4.21.0",
"turbo": "^2.3.4",
"typescript": "catalog:",
"vitest": "^4.0.18"
},
"dependencies": {
"@mariozechner/pi-agent-core": "^0.52.9",
"@mariozechner/pi-ai": "^0.52.9",
"@mariozechner/pi-coding-agent": "^0.52.9",
"@mozilla/readability": "^0.6.0",
"@multica/sdk": "workspace:*",
"@multica/store": "workspace:*",
"@nestjs/common": "^11.1.12",
"@nestjs/core": "^11.1.12",
"@nestjs/platform-express": "^11.1.12",
"@nestjs/platform-socket.io": "^11.1.12",
"@nestjs/serve-static": "^5.0.4",
"@nestjs/websockets": "^11.1.12",
"@sinclair/typebox": "^0.34.41",
"croner": "^10.0.1",
"fast-glob": "^3.3.3",
"grammy": "^1.39.3",
"mysql2": "^3.14.1",
"json5": "^2.2.3",
"linkedom": "^0.18.12",
"nestjs-pino": "^4.5.0",
"pino": "^10.3.0",
"pino-http": "^11.0.0",
"pino-pretty": "^13.1.3",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.2",
"socket.io": "^4.8.3",
"socket.io-client": "^4.8.3",
"turndown": "^7.2.2",
"undici": "^7.19.2",
"uuid": "^13.0.0",
"yaml": "^2.8.2"
}
}