@auto-ai/agent 2.1.216 → 2.1.219

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 (47) hide show
  1. package/dist/safe-a/404/index.html +1 -1
  2. package/dist/safe-a/404.html +1 -1
  3. package/dist/safe-a/index.html +2 -2
  4. package/dist/safe-a/index.txt +1 -1
  5. package/dist/safe-a/manage/about/index.html +2 -2
  6. package/dist/safe-a/manage/about/index.txt +1 -1
  7. package/dist/safe-a/manage/env/index.html +2 -2
  8. package/dist/safe-a/manage/env/index.txt +1 -1
  9. package/dist/safe-a/manage/geelib/index.html +2 -2
  10. package/dist/safe-a/manage/geelib/index.txt +1 -1
  11. package/dist/safe-a/manage/general/index.html +2 -2
  12. package/dist/safe-a/manage/general/index.txt +1 -1
  13. package/dist/safe-a/manage/git/index.html +2 -2
  14. package/dist/safe-a/manage/git/index.txt +1 -1
  15. package/dist/safe-a/manage/im/index.html +2 -2
  16. package/dist/safe-a/manage/im/index.txt +1 -1
  17. package/dist/safe-a/manage/index.html +2 -2
  18. package/dist/safe-a/manage/index.txt +1 -1
  19. package/dist/safe-a/manage/library/index.html +2 -2
  20. package/dist/safe-a/manage/library/index.txt +1 -1
  21. package/dist/safe-a/manage/mcp/index.html +2 -2
  22. package/dist/safe-a/manage/mcp/index.txt +1 -1
  23. package/dist/safe-a/manage/permissions/index.html +2 -2
  24. package/dist/safe-a/manage/permissions/index.txt +1 -1
  25. package/dist/safe-a/manage/skills/index.html +2 -2
  26. package/dist/safe-a/manage/skills/index.txt +1 -1
  27. package/dist/safe-a/manage/task/index.html +2 -2
  28. package/dist/safe-a/manage/task/index.txt +1 -1
  29. package/dist/safe-a/manage/teams/index.html +2 -2
  30. package/dist/safe-a/manage/teams/index.txt +1 -1
  31. package/dist/safe-a/manage/tools/index.html +2 -2
  32. package/dist/safe-a/manage/tools/index.txt +1 -1
  33. package/mcps-runtime/claude-geelib-channel/server/boot.mjs +0 -1
  34. package/mcps-runtime/claude-geelib-channel/server/index.mjs +17 -0
  35. package/mcps-runtime/claude-tuitui-channel/server/index.mjs +24 -0
  36. package/mcps-runtime/claude-tuitui-channel/server/tuitui-api.mjs +1 -0
  37. package/mcps-runtime/shared/linuxParentDeathSig.mjs +31 -0
  38. package/package.json +6 -6
  39. package/tools-runtime/code-tool/index.cjs +1 -1
  40. package/tools-runtime/code-tool/src/index.ts +2 -1
  41. package/mcps-runtime/claude-ws-channel/.mcp.json +0 -18
  42. package/mcps-runtime/claude-ws-channel/server/boot.mjs +0 -30
  43. package/mcps-runtime/claude-ws-channel/server/gateway.bundle.mjs +0 -413974
  44. package/mcps-runtime/claude-ws-channel/server/index.mjs +0 -144
  45. /package/dist/safe-a/_next/static/{fJY87EWm4q7Foe1k9iCt0 → uUFkPsDuD-7lOu6Lp5qqZ}/_buildManifest.js +0 -0
  46. /package/dist/safe-a/_next/static/{fJY87EWm4q7Foe1k9iCt0 → uUFkPsDuD-7lOu6Lp5qqZ}/_clientMiddlewareManifest.json +0 -0
  47. /package/dist/safe-a/_next/static/{fJY87EWm4q7Foe1k9iCt0 → uUFkPsDuD-7lOu6Lp5qqZ}/_ssgManifest.js +0 -0
@@ -1,144 +0,0 @@
1
- import { appendFileSync, mkdirSync } from 'node:fs'
2
- import { dirname, join } from 'node:path'
3
- import { homedir } from 'node:os'
4
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
5
- import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
6
- import * as z from 'zod'
7
- import { startWsMcpGateway } from './gateway.bundle.mjs'
8
-
9
- const stateDir =
10
- process.env.WS_STATE_DIR ||
11
- join(homedir(), '.claude', 'channels', 'ws')
12
- const bootLog = join(stateDir, 'boot.log')
13
- mkdirSync(dirname(bootLog), { recursive: true })
14
-
15
- function logBoot(line) {
16
- try {
17
- appendFileSync(bootLog, `${new Date().toISOString()} ${line}\n`, {
18
- encoding: 'utf8',
19
- mode: 0o600,
20
- flag: 'a',
21
- })
22
- } catch {}
23
- }
24
-
25
- logBoot(`[BOOT] ws-channel index.mjs pid=${process.pid}`)
26
-
27
- const server = new McpServer(
28
- { name: 'ws-channel', version: '0.1.0' },
29
- {
30
- capabilities: {
31
- experimental: {
32
- 'claude/channel': {},
33
- 'claude/ws_control': {},
34
- },
35
- tools: {},
36
- },
37
- instructions: [
38
- 'Browser WebSocket clients connect to this channel HTTP gateway.',
39
- 'Inbound prompts arrive via notifications/claude/channel.',
40
- 'Outbound uses ws_push_event and ws_reply tools.',
41
- ].join('\n'),
42
- },
43
- )
44
-
45
- /** sessionId → push 函数,由 gateway 注册 */
46
- let pushToSession = (_sessionId, _envelope) => {}
47
-
48
- server.tool(
49
- 'ws_push_event',
50
- 'Push a v3 protocol envelope to a browser WebSocket session',
51
- {
52
- session_id: z.string(),
53
- envelope: z.record(z.string(), z.unknown()),
54
- },
55
- async ({ session_id, envelope }) => {
56
- pushToSession(session_id, envelope)
57
- return { content: [{ type: 'text', text: 'ok' }] }
58
- },
59
- )
60
-
61
- server.tool(
62
- 'ws_reply',
63
- 'Send turn-end assistant text to a browser WebSocket session',
64
- {
65
- session_id: z.string(),
66
- text: z.string(),
67
- },
68
- async ({ session_id, text }) => {
69
- pushToSession(session_id, { type: 'assistant', text })
70
- return { content: [{ type: 'text', text: 'ok' }] }
71
- },
72
- )
73
-
74
- async function emitChannelNotification(content, meta) {
75
- await server.server.notification({
76
- method: 'notifications/claude/channel',
77
- params: { content, meta },
78
- })
79
- }
80
-
81
- async function emitWsControl(params) {
82
- await server.server.notification({
83
- method: 'notifications/claude/ws_control',
84
- params,
85
- })
86
- }
87
-
88
- const rawPort = process.env.WS_PORT?.trim()
89
- const port = rawPort ? Number(rawPort) : 0
90
- const rpcSocket = process.env.WS_MAIN_RPC_SOCKET?.trim() ?? ''
91
-
92
- if (Number.isFinite(port) && port > 0 && rpcSocket.length > 0) {
93
- const gw = startWsMcpGateway({
94
- port,
95
- mainRpcSocket: rpcSocket,
96
- hooks: {
97
- onPrompt: async ({ agent, sessionId, text, meta }) => {
98
- await emitChannelNotification(text, {
99
- ...meta,
100
- agent,
101
- channel_type: 'ws',
102
- ...(sessionId ? { peer_id: sessionId } : {}),
103
- })
104
- },
105
- onControl: async event => {
106
- if (event.type === 'open') {
107
- await emitWsControl({
108
- controlType: 'open',
109
- agent: event.data.agent,
110
- sessionId: event.data.sessionId ?? '',
111
- workspaceDir: event.data.workspaceDir,
112
- agentEnv: event.data.agentEnv,
113
- envOverrides: event.data.envOverrides,
114
- providerOverride: event.data.providerOverride ?? '',
115
- modelOverride: event.data.modelOverride ?? '',
116
- })
117
- return
118
- }
119
- if (event.type === 'close') {
120
- await emitWsControl({
121
- controlType: 'close',
122
- agent: event.agent,
123
- sessionId: event.sessionId ?? '',
124
- })
125
- return
126
- }
127
- await emitWsControl({
128
- controlType: 'message',
129
- agent: event.agent,
130
- sessionId: event.sessionId ?? '',
131
- payload: JSON.stringify(event.payload ?? {}),
132
- })
133
- },
134
- },
135
- })
136
- pushToSession = gw.pushToSession
137
- logBoot(`[BOOT] ws gateway listening port=${port}`)
138
- } else {
139
- logBoot('[BOOT] ws gateway skipped: WS_PORT or WS_MAIN_RPC_SOCKET invalid')
140
- }
141
-
142
- const transport = new StdioServerTransport()
143
- await server.connect(transport)
144
- logBoot('[BOOT] mcp stdio connected')