@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.
- package/dist/safe-a/404/index.html +1 -1
- package/dist/safe-a/404.html +1 -1
- package/dist/safe-a/index.html +2 -2
- package/dist/safe-a/index.txt +1 -1
- package/dist/safe-a/manage/about/index.html +2 -2
- package/dist/safe-a/manage/about/index.txt +1 -1
- package/dist/safe-a/manage/env/index.html +2 -2
- package/dist/safe-a/manage/env/index.txt +1 -1
- package/dist/safe-a/manage/geelib/index.html +2 -2
- package/dist/safe-a/manage/geelib/index.txt +1 -1
- package/dist/safe-a/manage/general/index.html +2 -2
- package/dist/safe-a/manage/general/index.txt +1 -1
- package/dist/safe-a/manage/git/index.html +2 -2
- package/dist/safe-a/manage/git/index.txt +1 -1
- package/dist/safe-a/manage/im/index.html +2 -2
- package/dist/safe-a/manage/im/index.txt +1 -1
- package/dist/safe-a/manage/index.html +2 -2
- package/dist/safe-a/manage/index.txt +1 -1
- package/dist/safe-a/manage/library/index.html +2 -2
- package/dist/safe-a/manage/library/index.txt +1 -1
- package/dist/safe-a/manage/mcp/index.html +2 -2
- package/dist/safe-a/manage/mcp/index.txt +1 -1
- package/dist/safe-a/manage/permissions/index.html +2 -2
- package/dist/safe-a/manage/permissions/index.txt +1 -1
- package/dist/safe-a/manage/skills/index.html +2 -2
- package/dist/safe-a/manage/skills/index.txt +1 -1
- package/dist/safe-a/manage/task/index.html +2 -2
- package/dist/safe-a/manage/task/index.txt +1 -1
- package/dist/safe-a/manage/teams/index.html +2 -2
- package/dist/safe-a/manage/teams/index.txt +1 -1
- package/dist/safe-a/manage/tools/index.html +2 -2
- package/dist/safe-a/manage/tools/index.txt +1 -1
- package/mcps-runtime/claude-geelib-channel/server/boot.mjs +0 -1
- package/mcps-runtime/claude-geelib-channel/server/index.mjs +17 -0
- package/mcps-runtime/claude-tuitui-channel/server/index.mjs +24 -0
- package/mcps-runtime/claude-tuitui-channel/server/tuitui-api.mjs +1 -0
- package/mcps-runtime/shared/linuxParentDeathSig.mjs +31 -0
- package/package.json +6 -6
- package/tools-runtime/code-tool/index.cjs +1 -1
- package/tools-runtime/code-tool/src/index.ts +2 -1
- package/mcps-runtime/claude-ws-channel/.mcp.json +0 -18
- package/mcps-runtime/claude-ws-channel/server/boot.mjs +0 -30
- package/mcps-runtime/claude-ws-channel/server/gateway.bundle.mjs +0 -413974
- package/mcps-runtime/claude-ws-channel/server/index.mjs +0 -144
- /package/dist/safe-a/_next/static/{fJY87EWm4q7Foe1k9iCt0 → uUFkPsDuD-7lOu6Lp5qqZ}/_buildManifest.js +0 -0
- /package/dist/safe-a/_next/static/{fJY87EWm4q7Foe1k9iCt0 → uUFkPsDuD-7lOu6Lp5qqZ}/_clientMiddlewareManifest.json +0 -0
- /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')
|
/package/dist/safe-a/_next/static/{fJY87EWm4q7Foe1k9iCt0 → uUFkPsDuD-7lOu6Lp5qqZ}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/safe-a/_next/static/{fJY87EWm4q7Foe1k9iCt0 → uUFkPsDuD-7lOu6Lp5qqZ}/_ssgManifest.js
RENAMED
|
File without changes
|