@agentdevjs/viewer 0.1.0 → 0.1.1
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/{chunk-OPBQEOJC.js → chunk-OVQA4A62.js} +150 -29
- package/dist/chunk-OVQA4A62.js.map +1 -0
- package/dist/cli/server.js +1 -1
- package/dist/cli/server.js.map +1 -1
- package/dist/cli/viewer.js +1 -1
- package/dist/cli/viewer.js.map +1 -1
- package/dist/index.d.ts +34 -3
- package/dist/index.js +1 -1
- package/package.json +59 -59
- package/dist/chunk-OPBQEOJC.js.map +0 -1
package/dist/cli/server.js
CHANGED
package/dist/cli/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/server.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * ViewerWorker 服务器启动程序\n *\n * 用途:独立启动调试查看器服务器\n * 运行:npm run server [port] [no-browser] [uds-path]\n *\n * 功能:\n * - 启动 ViewerWorker 独立进程\n * - 服务器运行期间可以被多个 Agent 连接\n * - Ctrl+C 关闭服务器\n *\n * 参数:\n * port - HTTP 端口(默认 2026)\n * no-browser - 不自动打开浏览器(传递字符串 \"false\")\n * uds-path - 自定义 UDS 路径(可选)\n *\n * 环境变量:\n * AGENTDEV_PORT - HTTP 端口(默认 2026)\n * AGENTDEV_OPEN_BROWSER - 是否打开浏览器(默认 true)\n * AGENTDEV_UDS_PATH - UDS 路径(默认自动检测平台)\n */\n\nimport { ViewerWorker } from '../viewer-worker.js';\nimport { getDefaultUDSPath } from '@agentdevjs/core';\n\nconst DEFAULT_PORT = 2026;\n\nasync function main() {\n const port = parseInt(process.env.AGENTDEV_PORT || process.argv[2] || String(DEFAULT_PORT), 10);\n const openBrowser = process.env.AGENTDEV_OPEN_BROWSER !== 'false' && process.argv[3] !== 'false';\n const udsPath = process.env.AGENTDEV_UDS_PATH || process.argv[4];\n\n console.log('='.repeat(50));\n console.log('ViewerWorker 服务器启动中...');\n console.log(` HTTP 端口: ${port}`);\n console.log(` UDS 路径: ${udsPath || getDefaultUDSPath()}`);\n console.log(` 自动打开浏览器: ${openBrowser ? '是' : '否'}`);\n console.log('='.repeat(50));\n\n const worker = new ViewerWorker(port, openBrowser, udsPath);\n\n try {\n await worker.start();\n\n console.log('\\n✓ 服务器已启动!');\n console.log(`\\n调试页面: http://localhost:${port}`);\n console.log('\\n按 Ctrl+C 停止服务器\\n');\n\n // 保持运行,直到用户中断\n } catch (err) {\n console.error('\\n✗ 服务器启动失败:', err);\n process.exit(1);\n }\n}\n\n// 优雅退出\nprocess.on('SIGINT', () => {\n console.log('\\n\\n[Server] 正在停止服务器...');\n process.exit(0);\n});\n\nprocess.on('SIGTERM', () => {\n console.log('\\n\\n[Server] 正在停止服务器...');\n process.exit(0);\n});\n\nmain().catch((err) => {\n console.error('[Server] 未处理的错误:', err);\n process.exit(1);\n});\n"],"mappings":";;;;;;AAwBA,SAAS,yBAAyB;AAElC,IAAM,eAAe;AAErB,eAAe,OAAO;AACpB,QAAM,OAAO,SAAS,QAAQ,IAAI,iBAAiB,QAAQ,KAAK,CAAC,KAAK,OAAO,YAAY,GAAG,EAAE;AAC9F,QAAM,cAAc,QAAQ,IAAI,0BAA0B,WAAW,QAAQ,KAAK,CAAC,MAAM;AACzF,QAAM,UAAU,QAAQ,IAAI,qBAAqB,QAAQ,KAAK,CAAC;AAE/D,UAAQ,IAAI,IAAI,OAAO,EAAE,CAAC;AAC1B,UAAQ,IAAI,sDAAwB;AACpC,UAAQ,IAAI,wBAAc,IAAI,EAAE;AAChC,UAAQ,IAAI,uBAAa,WAAW,kBAAkB,CAAC,EAAE;AACzD,UAAQ,IAAI,iDAAc,cAAc,WAAM,QAAG,EAAE;AACnD,UAAQ,IAAI,IAAI,OAAO,EAAE,CAAC;AAE1B,QAAM,SAAS,IAAI,aAAa,MAAM,aAAa,OAAO;AAE1D,MAAI;AACF,UAAM,OAAO,MAAM;AAEnB,YAAQ,IAAI,gDAAa;AACzB,YAAQ,IAAI;AAAA,6CAA4B,IAAI,EAAE;AAC9C,YAAQ,IAAI,kDAAoB;AAAA,EAGlC,SAAS,KAAK;AACZ,YAAQ,MAAM,wDAAgB,GAAG;AACjC,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAGA,QAAQ,GAAG,UAAU,MAAM;AACzB,UAAQ,IAAI,4DAAyB;AACrC,UAAQ,KAAK,CAAC;AAChB,CAAC;AAED,QAAQ,GAAG,WAAW,MAAM;AAC1B,UAAQ,IAAI,4DAAyB;AACrC,UAAQ,KAAK,CAAC;AAChB,CAAC;AAED,KAAK,EAAE,MAAM,CAAC,QAAQ;AACpB,UAAQ,MAAM,kDAAoB,GAAG;AACrC,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/server.ts"],"sourcesContent":["#!/usr/bin/env node\r\n/**\r\n * ViewerWorker 服务器启动程序\r\n *\r\n * 用途:独立启动调试查看器服务器\r\n * 运行:npm run server [port] [no-browser] [uds-path]\r\n *\r\n * 功能:\r\n * - 启动 ViewerWorker 独立进程\r\n * - 服务器运行期间可以被多个 Agent 连接\r\n * - Ctrl+C 关闭服务器\r\n *\r\n * 参数:\r\n * port - HTTP 端口(默认 2026)\r\n * no-browser - 不自动打开浏览器(传递字符串 \"false\")\r\n * uds-path - 自定义 UDS 路径(可选)\r\n *\r\n * 环境变量:\r\n * AGENTDEV_PORT - HTTP 端口(默认 2026)\r\n * AGENTDEV_OPEN_BROWSER - 是否打开浏览器(默认 true)\r\n * AGENTDEV_UDS_PATH - UDS 路径(默认自动检测平台)\r\n */\r\n\r\nimport { ViewerWorker } from '../viewer-worker.js';\r\nimport { getDefaultUDSPath } from '@agentdevjs/core';\r\n\r\nconst DEFAULT_PORT = 2026;\r\n\r\nasync function main() {\r\n const port = parseInt(process.env.AGENTDEV_PORT || process.argv[2] || String(DEFAULT_PORT), 10);\r\n const openBrowser = process.env.AGENTDEV_OPEN_BROWSER !== 'false' && process.argv[3] !== 'false';\r\n const udsPath = process.env.AGENTDEV_UDS_PATH || process.argv[4];\r\n\r\n console.log('='.repeat(50));\r\n console.log('ViewerWorker 服务器启动中...');\r\n console.log(` HTTP 端口: ${port}`);\r\n console.log(` UDS 路径: ${udsPath || getDefaultUDSPath()}`);\r\n console.log(` 自动打开浏览器: ${openBrowser ? '是' : '否'}`);\r\n console.log('='.repeat(50));\r\n\r\n const worker = new ViewerWorker(port, openBrowser, udsPath);\r\n\r\n try {\r\n await worker.start();\r\n\r\n console.log('\\n✓ 服务器已启动!');\r\n console.log(`\\n调试页面: http://localhost:${port}`);\r\n console.log('\\n按 Ctrl+C 停止服务器\\n');\r\n\r\n // 保持运行,直到用户中断\r\n } catch (err) {\r\n console.error('\\n✗ 服务器启动失败:', err);\r\n process.exit(1);\r\n }\r\n}\r\n\r\n// 优雅退出\r\nprocess.on('SIGINT', () => {\r\n console.log('\\n\\n[Server] 正在停止服务器...');\r\n process.exit(0);\r\n});\r\n\r\nprocess.on('SIGTERM', () => {\r\n console.log('\\n\\n[Server] 正在停止服务器...');\r\n process.exit(0);\r\n});\r\n\r\nmain().catch((err) => {\r\n console.error('[Server] 未处理的错误:', err);\r\n process.exit(1);\r\n});\r\n"],"mappings":";;;;;;AAwBA,SAAS,yBAAyB;AAElC,IAAM,eAAe;AAErB,eAAe,OAAO;AACpB,QAAM,OAAO,SAAS,QAAQ,IAAI,iBAAiB,QAAQ,KAAK,CAAC,KAAK,OAAO,YAAY,GAAG,EAAE;AAC9F,QAAM,cAAc,QAAQ,IAAI,0BAA0B,WAAW,QAAQ,KAAK,CAAC,MAAM;AACzF,QAAM,UAAU,QAAQ,IAAI,qBAAqB,QAAQ,KAAK,CAAC;AAE/D,UAAQ,IAAI,IAAI,OAAO,EAAE,CAAC;AAC1B,UAAQ,IAAI,sDAAwB;AACpC,UAAQ,IAAI,wBAAc,IAAI,EAAE;AAChC,UAAQ,IAAI,uBAAa,WAAW,kBAAkB,CAAC,EAAE;AACzD,UAAQ,IAAI,iDAAc,cAAc,WAAM,QAAG,EAAE;AACnD,UAAQ,IAAI,IAAI,OAAO,EAAE,CAAC;AAE1B,QAAM,SAAS,IAAI,aAAa,MAAM,aAAa,OAAO;AAE1D,MAAI;AACF,UAAM,OAAO,MAAM;AAEnB,YAAQ,IAAI,gDAAa;AACzB,YAAQ,IAAI;AAAA,6CAA4B,IAAI,EAAE;AAC9C,YAAQ,IAAI,kDAAoB;AAAA,EAGlC,SAAS,KAAK;AACZ,YAAQ,MAAM,wDAAgB,GAAG;AACjC,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;AAGA,QAAQ,GAAG,UAAU,MAAM;AACzB,UAAQ,IAAI,4DAAyB;AACrC,UAAQ,KAAK,CAAC;AAChB,CAAC;AAED,QAAQ,GAAG,WAAW,MAAM;AAC1B,UAAQ,IAAI,4DAAyB;AACrC,UAAQ,KAAK,CAAC;AAChB,CAAC;AAED,KAAK,EAAE,MAAM,CAAC,QAAQ;AACpB,UAAQ,MAAM,kDAAoB,GAAG;AACrC,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":[]}
|
package/dist/cli/viewer.js
CHANGED
package/dist/cli/viewer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/viewer.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * Viewer Worker Standalone CLI\n *\n * 独立启动 ViewerWorker 服务器的命令行工具\n *\n * 使用方法:\n * agentdev-viewer [port] [no-browser] [uds-path]\n *\n * 参数:\n * port - HTTP 端口(默认 2026)\n * no-browser - 不自动打开浏览器(传递 \"false\")\n * uds-path - 自定义 UDS 路径(可选)\n *\n * 环境变量:\n * AGENTDEV_UDS_PATH - UDS 路径(默认自动检测平台)\n * AGENTDEV_PORT - HTTP 端口(默认 2026)\n * AGENTDEV_OPEN_BROWSER - 是否打开浏览器(默认 true)\n */\n\nimport { ViewerWorker } from '../viewer-worker.js';\nimport { getDefaultUDSPath } from '@agentdevjs/core';\n\nconst DEFAULT_PORT = 2026;\n\nasync function main() {\n const udsPath = process.env.AGENTDEV_UDS_PATH || process.argv[4] || getDefaultUDSPath();\n const port = parseInt(process.env.AGENTDEV_PORT || process.argv[2] || String(DEFAULT_PORT), 10);\n const openBrowser = process.env.AGENTDEV_OPEN_BROWSER !== 'false' && process.argv[3] !== 'false';\n\n console.log(`[Viewer Worker] 正在启动...`);\n console.log(`[Viewer Worker] UDS: ${udsPath}`);\n console.log(`[Viewer Worker] HTTP: http://localhost:${port}`);\n\n const worker = new ViewerWorker(port, openBrowser, udsPath);\n\n try {\n await worker.start();\n console.log('[Viewer Worker] 启动成功');\n } catch (err) {\n console.error('[Viewer Worker] 启动失败:', err);\n process.exit(1);\n }\n\n // 防止进程退出(保持运行)\n process.on('SIGINT', () => {\n console.log('[Viewer Worker] 收到退出信号,正在关闭...');\n process.exit(0);\n });\n\n process.on('SIGTERM', () => {\n console.log('[Viewer Worker] 收到终止信号,正在关闭...');\n process.exit(0);\n });\n\n // 添加未捕获异常处理\n process.on('uncaughtException', (err) => {\n console.error('[Viewer Worker] 未捕获异常:', err);\n process.exit(1);\n });\n\n process.on('unhandledRejection', (reason) => {\n console.error('[Viewer Worker] 未处理的 Promise 拒绝:', reason);\n process.exit(1);\n });\n}\n\nmain();\n"],"mappings":";;;;;;AAqBA,SAAS,yBAAyB;AAElC,IAAM,eAAe;AAErB,eAAe,OAAO;AACpB,QAAM,UAAU,QAAQ,IAAI,qBAAqB,QAAQ,KAAK,CAAC,KAAK,kBAAkB;AACtF,QAAM,OAAO,SAAS,QAAQ,IAAI,iBAAiB,QAAQ,KAAK,CAAC,KAAK,OAAO,YAAY,GAAG,EAAE;AAC9F,QAAM,cAAc,QAAQ,IAAI,0BAA0B,WAAW,QAAQ,KAAK,CAAC,MAAM;AAEzF,UAAQ,IAAI,6CAAyB;AACrC,UAAQ,IAAI,wBAAwB,OAAO,EAAE;AAC7C,UAAQ,IAAI,0CAA0C,IAAI,EAAE;AAE5D,QAAM,SAAS,IAAI,aAAa,MAAM,aAAa,OAAO;AAE1D,MAAI;AACF,UAAM,OAAO,MAAM;AACnB,YAAQ,IAAI,0CAAsB;AAAA,EACpC,SAAS,KAAK;AACZ,YAAQ,MAAM,6CAAyB,GAAG;AAC1C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,UAAQ,GAAG,UAAU,MAAM;AACzB,YAAQ,IAAI,uFAAgC;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AAED,UAAQ,GAAG,WAAW,MAAM;AAC1B,YAAQ,IAAI,uFAAgC;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AAGD,UAAQ,GAAG,qBAAqB,CAAC,QAAQ;AACvC,YAAQ,MAAM,mDAA0B,GAAG;AAC3C,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AAED,UAAQ,GAAG,sBAAsB,CAAC,WAAW;AAC3C,YAAQ,MAAM,kEAAoC,MAAM;AACxD,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AACH;AAEA,KAAK;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/viewer.ts"],"sourcesContent":["#!/usr/bin/env node\r\n/**\r\n * Viewer Worker Standalone CLI\r\n *\r\n * 独立启动 ViewerWorker 服务器的命令行工具\r\n *\r\n * 使用方法:\r\n * agentdev-viewer [port] [no-browser] [uds-path]\r\n *\r\n * 参数:\r\n * port - HTTP 端口(默认 2026)\r\n * no-browser - 不自动打开浏览器(传递 \"false\")\r\n * uds-path - 自定义 UDS 路径(可选)\r\n *\r\n * 环境变量:\r\n * AGENTDEV_UDS_PATH - UDS 路径(默认自动检测平台)\r\n * AGENTDEV_PORT - HTTP 端口(默认 2026)\r\n * AGENTDEV_OPEN_BROWSER - 是否打开浏览器(默认 true)\r\n */\r\n\r\nimport { ViewerWorker } from '../viewer-worker.js';\r\nimport { getDefaultUDSPath } from '@agentdevjs/core';\r\n\r\nconst DEFAULT_PORT = 2026;\r\n\r\nasync function main() {\r\n const udsPath = process.env.AGENTDEV_UDS_PATH || process.argv[4] || getDefaultUDSPath();\r\n const port = parseInt(process.env.AGENTDEV_PORT || process.argv[2] || String(DEFAULT_PORT), 10);\r\n const openBrowser = process.env.AGENTDEV_OPEN_BROWSER !== 'false' && process.argv[3] !== 'false';\r\n\r\n console.log(`[Viewer Worker] 正在启动...`);\r\n console.log(`[Viewer Worker] UDS: ${udsPath}`);\r\n console.log(`[Viewer Worker] HTTP: http://localhost:${port}`);\r\n\r\n const worker = new ViewerWorker(port, openBrowser, udsPath);\r\n\r\n try {\r\n await worker.start();\r\n console.log('[Viewer Worker] 启动成功');\r\n } catch (err) {\r\n console.error('[Viewer Worker] 启动失败:', err);\r\n process.exit(1);\r\n }\r\n\r\n // 防止进程退出(保持运行)\r\n process.on('SIGINT', () => {\r\n console.log('[Viewer Worker] 收到退出信号,正在关闭...');\r\n process.exit(0);\r\n });\r\n\r\n process.on('SIGTERM', () => {\r\n console.log('[Viewer Worker] 收到终止信号,正在关闭...');\r\n process.exit(0);\r\n });\r\n\r\n // 添加未捕获异常处理\r\n process.on('uncaughtException', (err) => {\r\n console.error('[Viewer Worker] 未捕获异常:', err);\r\n process.exit(1);\r\n });\r\n\r\n process.on('unhandledRejection', (reason) => {\r\n console.error('[Viewer Worker] 未处理的 Promise 拒绝:', reason);\r\n process.exit(1);\r\n });\r\n}\r\n\r\nmain();\r\n"],"mappings":";;;;;;AAqBA,SAAS,yBAAyB;AAElC,IAAM,eAAe;AAErB,eAAe,OAAO;AACpB,QAAM,UAAU,QAAQ,IAAI,qBAAqB,QAAQ,KAAK,CAAC,KAAK,kBAAkB;AACtF,QAAM,OAAO,SAAS,QAAQ,IAAI,iBAAiB,QAAQ,KAAK,CAAC,KAAK,OAAO,YAAY,GAAG,EAAE;AAC9F,QAAM,cAAc,QAAQ,IAAI,0BAA0B,WAAW,QAAQ,KAAK,CAAC,MAAM;AAEzF,UAAQ,IAAI,6CAAyB;AACrC,UAAQ,IAAI,wBAAwB,OAAO,EAAE;AAC7C,UAAQ,IAAI,0CAA0C,IAAI,EAAE;AAE5D,QAAM,SAAS,IAAI,aAAa,MAAM,aAAa,OAAO;AAE1D,MAAI;AACF,UAAM,OAAO,MAAM;AACnB,YAAQ,IAAI,0CAAsB;AAAA,EACpC,SAAS,KAAK;AACZ,YAAQ,MAAM,6CAAyB,GAAG;AAC1C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,UAAQ,GAAG,UAAU,MAAM;AACzB,YAAQ,IAAI,uFAAgC;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AAED,UAAQ,GAAG,WAAW,MAAM;AAC1B,YAAQ,IAAI,uFAAgC;AAC5C,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AAGD,UAAQ,GAAG,qBAAqB,CAAC,QAAQ;AACvC,YAAQ,MAAM,mDAA0B,GAAG;AAC3C,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AAED,UAAQ,GAAG,sBAAsB,CAAC,WAAW;AAC3C,YAAQ,MAAM,kEAAoC,MAAM;AACxD,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AACH;AAEA,KAAK;","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -61,6 +61,9 @@ declare class ViewerWorker {
|
|
|
61
61
|
private resolveNpmWorkspacePackage;
|
|
62
62
|
/**
|
|
63
63
|
* GET /api/agents/:id/messages - 获取指定 Agent 的消息
|
|
64
|
+
*
|
|
65
|
+
* 增量取数(ADR-0012):?since=<n> 返回自下标 n 起的尾部切片(附 baseCount);
|
|
66
|
+
* ?tail=1 返回最后一条。无参数路径的响应形状与历史完全一致(全量数组)。
|
|
64
67
|
*/
|
|
65
68
|
private handleGetAgentMessages;
|
|
66
69
|
/**
|
|
@@ -130,6 +133,10 @@ declare class ViewerWorker {
|
|
|
130
133
|
private isSessionConnected;
|
|
131
134
|
/**
|
|
132
135
|
* 应用内存限制
|
|
136
|
+
*
|
|
137
|
+
* 字节限制基于增量缓存 _totalBytes(推送时维护,修剪时扣减):未超限
|
|
138
|
+
* 零序列化开销;未初始化(旧路径未走过推送)时先全量求和建立基线。
|
|
139
|
+
* 切点语义与原实现一致:超出 MAX_BYTES 时保留首个超限条目之后的尾部。
|
|
133
140
|
*/
|
|
134
141
|
enforceMemoryLimits(session: AgentSession): void;
|
|
135
142
|
/**
|
|
@@ -153,7 +160,10 @@ declare class ViewerWorker {
|
|
|
153
160
|
/**
|
|
154
161
|
* 处理推送消息(带去重优化)
|
|
155
162
|
*
|
|
156
|
-
*
|
|
163
|
+
* 只有在消息真正变化时才更新会话并触发前端更新。推送时刻新旧数组都在手上,
|
|
164
|
+
* 顺带完成变更分类(ADR-0012)并增量维护总字节缓存;分类为 rewrite 时
|
|
165
|
+
* 照常更新 session.messages——修正"中段变化但 count 与末条签名均不变"
|
|
166
|
+
* 被静默丢弃的盲区。
|
|
157
167
|
*/
|
|
158
168
|
handlePushMessages(msg: any): void;
|
|
159
169
|
private createEmptyOverview;
|
|
@@ -166,9 +176,30 @@ declare class ViewerWorker {
|
|
|
166
176
|
private getSessionRuntimeState;
|
|
167
177
|
private getMergedOverview;
|
|
168
178
|
/**
|
|
169
|
-
*
|
|
179
|
+
* 变更分类(ADR-0012,推送时刻新旧数组都在手上):
|
|
180
|
+
* - append:新数组以旧数组为前缀且变长(sinceIndex = 旧数组长度)
|
|
181
|
+
* - tail:条数不变,仅最后一条不同(流式输出)
|
|
182
|
+
* - rewrite:其余(中段替换 / 条数减少,含 count 与末条签名均不变的盲区)
|
|
183
|
+
* 返回 null 表示未变化。
|
|
184
|
+
*/
|
|
185
|
+
private classifyMessagesChange;
|
|
186
|
+
/**
|
|
187
|
+
* 判断两数组前 len 条是否逐条一致:先比引用(运行时对未变化条目通常
|
|
188
|
+
* 复用同一对象),不一致再退回 JSON 全等(消息对象可能被重建)。
|
|
189
|
+
*/
|
|
190
|
+
private isSameMessagePrefix;
|
|
191
|
+
/**
|
|
192
|
+
* 消息探测数据(/overview HTTP 组装用,ADR-0012)。count 取当前消息数,
|
|
193
|
+
* 其余为最近一次推送记录下的分类与假想全量字节;未走过推送路径
|
|
194
|
+
* (_totalBytes 未初始化)时返回 null,调用方据此整体省略 _messagesProbe。
|
|
195
|
+
*/
|
|
196
|
+
private getMessagesProbe;
|
|
197
|
+
/**
|
|
198
|
+
* 增量维护 session 总字节缓存(_totalBytes = 全量响应体假想字节数):
|
|
199
|
+
* append 只序列化新增条目,tail 只序列化末条新旧两份;rewrite(rollback /
|
|
200
|
+
* compact 等低频路径)与未初始化基线时全量重建。
|
|
170
201
|
*/
|
|
171
|
-
private
|
|
202
|
+
private updateTotalBytes;
|
|
172
203
|
/**
|
|
173
204
|
* 获取最后一条消息的签名(用于变化检测)
|
|
174
205
|
*
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@agentdevjs/viewer",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "AgentDev debugger viewer: ViewerWorker HTTP/UDS host, web UI, read-only debugger MCP",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
".": {
|
|
10
|
-
"types": "./dist/index.d.ts",
|
|
11
|
-
"import": "./dist/index.js"
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
"bin": {
|
|
15
|
-
"agentdev-viewer": "dist/cli/viewer.js",
|
|
16
|
-
"agentdev-server": "dist/cli/server.js"
|
|
17
|
-
},
|
|
18
|
-
"files": [
|
|
19
|
-
"dist",
|
|
20
|
-
"README.md"
|
|
21
|
-
],
|
|
22
|
-
"scripts": {
|
|
23
|
-
"build": "tsup",
|
|
24
|
-
"dev": "tsup --watch",
|
|
25
|
-
"test": "vitest run",
|
|
26
|
-
"test:watch": "vitest",
|
|
27
|
-
"typecheck": "tsc --noEmit",
|
|
28
|
-
"prepublishOnly": "npm run build"
|
|
29
|
-
},
|
|
30
|
-
"dependencies": {
|
|
31
|
-
"@agentdevjs/core": "
|
|
32
|
-
"@modelcontextprotocol/node": "^2.0.0",
|
|
33
|
-
"@modelcontextprotocol/server": "^2.0.0",
|
|
34
|
-
"open": "^11.0.0",
|
|
35
|
-
"zod": "^4.1.5"
|
|
36
|
-
},
|
|
37
|
-
"devDependencies": {
|
|
38
|
-
"@modelcontextprotocol/client": "^2.0.0",
|
|
39
|
-
"@types/node": "^20.11.0",
|
|
40
|
-
"tsup": "^8.3.5",
|
|
41
|
-
"tsx": "^4.7.0",
|
|
42
|
-
"typescript": "^5.3.3",
|
|
43
|
-
"vitest": "^4.1.10"
|
|
44
|
-
},
|
|
45
|
-
"engines": {
|
|
46
|
-
"node": ">=18.0.0"
|
|
47
|
-
},
|
|
48
|
-
"keywords": [
|
|
49
|
-
"agentdev",
|
|
50
|
-
"debugger",
|
|
51
|
-
"viewer",
|
|
52
|
-
"mcp"
|
|
53
|
-
],
|
|
54
|
-
"repository": {
|
|
55
|
-
"type": "git",
|
|
56
|
-
"url": "git+https://github.com/your-org/agentdev.git"
|
|
57
|
-
},
|
|
58
|
-
"license": "MIT"
|
|
59
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@agentdevjs/viewer",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "AgentDev debugger viewer: ViewerWorker HTTP/UDS host, web UI, read-only debugger MCP",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"agentdev-viewer": "dist/cli/viewer.js",
|
|
16
|
+
"agentdev-server": "dist/cli/server.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"README.md"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsup",
|
|
24
|
+
"dev": "tsup --watch",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"typecheck": "tsc --noEmit",
|
|
28
|
+
"prepublishOnly": "npm run build"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@agentdevjs/core": "0.1.1",
|
|
32
|
+
"@modelcontextprotocol/node": "^2.0.0",
|
|
33
|
+
"@modelcontextprotocol/server": "^2.0.0",
|
|
34
|
+
"open": "^11.0.0",
|
|
35
|
+
"zod": "^4.1.5"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@modelcontextprotocol/client": "^2.0.0",
|
|
39
|
+
"@types/node": "^20.11.0",
|
|
40
|
+
"tsup": "^8.3.5",
|
|
41
|
+
"tsx": "^4.7.0",
|
|
42
|
+
"typescript": "^5.3.3",
|
|
43
|
+
"vitest": "^4.1.10"
|
|
44
|
+
},
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=18.0.0"
|
|
47
|
+
},
|
|
48
|
+
"keywords": [
|
|
49
|
+
"agentdev",
|
|
50
|
+
"debugger",
|
|
51
|
+
"viewer",
|
|
52
|
+
"mcp"
|
|
53
|
+
],
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "git+https://github.com/your-org/agentdev.git"
|
|
57
|
+
},
|
|
58
|
+
"license": "MIT"
|
|
59
|
+
}
|