@x-otto/service 0.0.1-alpha.0 → 0.0.1-alpha.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/README.md CHANGED
@@ -1,59 +1,59 @@
1
1
  # @x-otto/service
2
2
 
3
- ## 模块定位
3
+ ## Module Purpose
4
4
 
5
- Otto 的网络传输层:基于 Hono HTTP API + WebSocket 实时通信 + 事件桥接 +
6
- 独立持久化存储服务(persistenced)。
5
+ Otto's network transport layer: Hono-based HTTP API + WebSocket real-time communication + event bridging +
6
+ a standalone persistence storage service (persistenced).
7
7
 
8
- ## 核心功能
8
+ ## Core Features
9
9
 
10
- | 模块/导出 | 功能 |
10
+ | Module/Export | Function |
11
11
  |-----------|------|
12
- | `CodingService` | Hono 应用生命周期 + 组件编排(WS Manager / DebugBridge / InboundRouter |
13
- | `WebSocketManager` | WebSocket 连接管理 + 会话订阅 + 鉴权(origin/token |
14
- | `EventBridge` | AgentSession 事件 WS `Session.event` 的单向映射 |
15
- | `TraceBridge` | per-session trace tail → WS(`Trace.event`) |
16
- | `DebugBridge` | devtools 调试协议桥接到 HTTP/WebSocket |
17
- | `InboundRouter` | 前端 服务端入站消息分发 |
18
- | `EventBus` | 进程内事件总线(`append / subscribe`) |
19
- | `startPersistenced` | 独立持久化存储服务启动器(SQLite + HTTP API |
20
-
21
- ## HTTP API 路由
22
-
23
- | 路由前缀 | 端点 | 说明 |
12
+ | `CodingService` | Hono app lifecycle + component orchestration (WS Manager / DebugBridge / InboundRouter) |
13
+ | `WebSocketManager` | WebSocket connection management + session subscription + auth (origin/token) |
14
+ | `EventBridge` | One-way mapping from AgentSession events to WS `Session.event` |
15
+ | `TraceBridge` | Per-session trace tail → WS (`Trace.event`) |
16
+ | `DebugBridge` | Bridges the devtools debug protocol to HTTP/WebSocket |
17
+ | `InboundRouter` | Dispatches inbound messages from frontend to backend |
18
+ | `EventBus` | In-process event bus (`append / subscribe`) |
19
+ | `startPersistenced` | Standalone persistence storage service launcher (SQLite + HTTP API) |
20
+
21
+ ## HTTP API Routes
22
+
23
+ | Route Prefix | Endpoint | Description |
24
24
  |----------|------|------|
25
- | `/api/health` | `GET /` | 健康检查 |
26
- | `/api/chat` | `POST /query` / `GET /messages` / `POST /interrupt` / `DELETE /clear` | 会话对话 |
27
- | `/api/sessions` | `GET/POST /` / `GET /current` / `GET /:id/messages` / `POST /:id/resume` (501) / `GET /:id/trace` / `GET /:id/export` / `GET/PUT/DELETE /:id/model` | 会话 CRUD |
28
- | `/api/sessions` (子域) | `POST /verify-path` / `POST /browse-directory` / `GET /files` (workspace) + 时间旅行端点 | workspace + timetravel |
29
- | `/api/storage` | `GET /:namespace` / `GET/PUT/DELETE /:namespace/:id` | RemotePersistence 线缆协议服务端 |
30
- | `/api/setting` | `GET/PUT /` (PUT 501) / `GET /providers` / `GET /models` / `POST /verify-model` / `POST /mode\|autonomy\|thinking` (501) | 设置管理 |
31
- | `/api/devtools` | `GET /status` / `GET /breakpoints` | Devtools Worker 桥接 |
32
- | `/api/debugger` | 断点 CRUD / pause / resume / inject / state | 调试器 API |
33
- | `/api/logs` | `GET /history` / `GET /stream` (SSE) | 日志查询与流式推送 |
34
- | `/api/catalog` | Extension/sigil 目录暴露给前端 | 插件目录 |
25
+ | `/api/health` | `GET /` | Health check |
26
+ | `/api/chat` | `POST /query` / `GET /messages` / `POST /interrupt` / `DELETE /clear` | Session conversation |
27
+ | `/api/sessions` | `GET/POST /` / `GET /current` / `GET /:id/messages` / `POST /:id/resume` (501) / `GET /:id/trace` / `GET /:id/export` / `GET/PUT/DELETE /:id/model` | Session CRUD |
28
+ | `/api/sessions` (subdomain) | `POST /verify-path` / `POST /browse-directory` / `GET /files` (workspace) + time-travel endpoints | workspace + timetravel |
29
+ | `/api/storage` | `GET /:namespace` / `GET/PUT/DELETE /:namespace/:id` | RemotePersistence wire protocol server |
30
+ | `/api/setting` | `GET/PUT /` (PUT 501) / `GET /providers` / `GET /models` / `POST /verify-model` / `POST /mode\|autonomy\|thinking` (501) | Settings management |
31
+ | `/api/devtools` | `GET /status` / `GET /breakpoints` | Devtools worker bridge |
32
+ | `/api/debugger` | Breakpoint CRUD / pause / resume / inject / state | Debugger API |
33
+ | `/api/logs` | `GET /history` / `GET /stream` (SSE) | Log query and streaming |
34
+ | `/api/catalog` | Exposes extension/sigil catalog to the frontend | Plugin catalog |
35
35
 
36
36
  ## WebSocket
37
37
 
38
- - 升级路由:`/ws`
39
- - 可选 origin 白名单 + `?token=` Bearer 鉴权(fail-closedtimingSafeEqual
40
- - 客户端连接后订阅指定 session 的事件流(`Session.subscribe` / `Session.unsubscribe`)
41
- - 消息格式:服务端→客户端为 discriminated union `{ type, data }`;客户端→服务端为
42
- `{ method, params }` JSON-RPC 风格
38
+ - Upgrade route: `/ws`
39
+ - Optional origin allowlist + `?token=` bearer auth (fail-closed, timingSafeEqual)
40
+ - After connecting, clients subscribe to a given session's event stream (`Session.subscribe` / `Session.unsubscribe`)
41
+ - Message format: server→client is a discriminated union `{ type, data }`; client→server is
42
+ JSON-RPC-style `{ method, params }`
43
43
 
44
- ## 安装
44
+ ## Installation
45
45
 
46
46
  ```bash
47
47
  pnpm add @x-otto/service
48
48
  ```
49
49
 
50
- 或从仓库构建:
50
+ Or build from the repo:
51
51
 
52
52
  ```bash
53
53
  pnpm --filter @x-otto/service build
54
54
  ```
55
55
 
56
- ## 快速开始
56
+ ## Quick Start
57
57
 
58
58
  ```ts
59
59
  import { createApp } from '@x-otto/coding'
@@ -68,43 +68,43 @@ await service.start()
68
68
 
69
69
  ## API
70
70
 
71
- | 导出 | 类型 | 说明 |
71
+ | Export | Type | Description |
72
72
  |------|------|------|
73
- | `CodingService` | `class` | 核心服务类(编排 WS Manager / bridges / InboundRouter |
74
- | `createCodingService` | `function` | 工厂函数 |
75
- | `WebSocketManager` | `class` | WebSocket 连接管理 + 订阅 + 广播 |
76
- | `EventBridge` | `class` | AgentSession 事件 → WS 映射 |
77
- | `DebugBridge` | `class` | 调试协议桥接 |
78
- | `InboundRouter` | `class` | 入站消息分发 |
79
- | `encodeSessionEvent` | `function` | 会话事件 → Session.event 信封 |
80
- | `createProjectorState` | `function` | 投影累加器创建 |
81
- | `startPersistenced` | `function` | 独立存储服务启动 |
82
- | `eventBus` | `instance` | 进程内 EventBus 单例 |
83
- | `EventBus` | `class` | 事件总线类 |
84
-
85
- ## 目录概览
73
+ | `CodingService` | `class` | Core service class (orchestrates WS Manager / bridges / InboundRouter) |
74
+ | `createCodingService` | `function` | Factory function |
75
+ | `WebSocketManager` | `class` | WebSocket connection management + subscription + broadcast |
76
+ | `EventBridge` | `class` | AgentSession event → WS mapping |
77
+ | `DebugBridge` | `class` | Debug protocol bridge |
78
+ | `InboundRouter` | `class` | Inbound message dispatch |
79
+ | `encodeSessionEvent` | `function` | Session event → Session.event envelope |
80
+ | `createProjectorState` | `function` | Creates a projection accumulator |
81
+ | `startPersistenced` | `function` | Starts the standalone storage service |
82
+ | `eventBus` | `instance` | In-process EventBus singleton |
83
+ | `EventBus` | `class` | Event bus class |
84
+
85
+ ## Directory Overview
86
86
 
87
87
  ```
88
88
  src/
89
- coding-service.ts # 核心编排
90
- create-app.ts # Hono 应用组装
91
- websocket-manager.ts # WebSocket 连接管理
92
- event-bridge.ts # 事件桥接
93
- event-bus.ts # 进程内事件总线
89
+ coding-service.ts # core orchestration
90
+ create-app.ts # Hono app assembly
91
+ websocket-manager.ts # WebSocket connection management
92
+ event-bridge.ts # event bridging
93
+ event-bus.ts # in-process event bus
94
94
  trace-bridge.ts # trace tail → WS
95
- debug-bridge.ts # 调试桥接
96
- debug-event-router.ts # devtools 事件 → WS
97
- inbound-router.ts # 入站消息分发
98
- session-event-wire.ts # 会话事件中性 SessionEvent(脱敏+封装)
99
- message-serializer.ts # 消息序列化
100
- persistenced-app.ts # 独立存储服务
101
- types.ts # 核心类型
102
- routes/ # 路由实现(chat/sessions/setting/storage/debugger/devtools/logs/catalog 等)
103
- middleware/ # 中间件(request-id / access-log / rate-limit / storage-auth
95
+ debug-bridge.ts # debug bridging
96
+ debug-event-router.ts # devtools events → WS
97
+ inbound-router.ts # inbound message dispatch
98
+ session-event-wire.ts # session events neutral SessionEvent (sanitized + wrapped)
99
+ message-serializer.ts # message serialization
100
+ persistenced-app.ts # standalone storage service
101
+ types.ts # core types
102
+ routes/ # route implementations (chat/sessions/setting/storage/debugger/devtools/logs/catalog, etc.)
103
+ middleware/ # middleware (request-id / access-log / rate-limit / storage-auth)
104
104
  index.ts
105
105
  ```
106
106
 
107
- ## 开发命令
107
+ ## Development Commands
108
108
 
109
109
  ```bash
110
110
  pnpm --filter @x-otto/service build
@@ -112,8 +112,8 @@ pnpm --filter @x-otto/service typecheck
112
112
  pnpm --filter @x-otto/service clean
113
113
  ```
114
114
 
115
- ## 关联包
115
+ ## Related Packages
116
116
 
117
- `@x-otto/agent`、`@x-otto/ai`、`@x-otto/coding`、`@x-otto/schedule`、`@x-otto/devtools`、`@x-otto/otel`、
118
- `@x-otto/hooks`、`@x-otto/persistence`、`@x-otto/session-contract`、`@x-otto/shared`、`@x-otto/trace-view`、
119
- `@x-otto/workspace`;外部依赖 `hono`、`@hono/node-server`、`ws`
117
+ `@x-otto/agent`, `@x-otto/ai`, `@x-otto/coding`, `@x-otto/schedule`, `@x-otto/devtools`, `@x-otto/otel`,
118
+ `@x-otto/hooks`, `@x-otto/persistence`, `@x-otto/session-contract`, `@x-otto/shared`, `@x-otto/trace-view`,
119
+ `@x-otto/workspace`; external dependencies `hono`, `@hono/node-server`, `ws`
package/dist/index.d.ts CHANGED
@@ -330,8 +330,23 @@ declare class WebSocketManager extends TypedEventEmitter<WebSocketManagerEvents>
330
330
  private readonly maxMessagesPerSecond;
331
331
  private readonly maxConnections;
332
332
  private clientId;
333
+ /**
334
+ * RFC-354 R1:连接 id → 身份 id(token 派生)映射。
335
+ *
336
+ * **两个概念必须分开**:
337
+ * - 连接 id(`clients` 的键、`sendToClient` 的寻址依据):每连接唯一自增,
338
+ * 否则同一 token 开第二个连接会覆盖第一个的 socket 句柄。
339
+ * - 身份 id(write-lease owner、授权判定依据):从 token 派生,与 HTTP 侧同构,
340
+ * 使同一凭据的 WS/HTTP 属于同一身份(修复 attach 自我拒绝回归)。
341
+ */
342
+ private readonly clientIdentities;
333
343
  /** RFC-335 S4:client 断连触发点——InboundRouter 释放 write-lease。 */
334
344
  onClientDisconnected?: (clientId: string) => void;
345
+ /**
346
+ * RFC-354 R1:连接 id → 授权身份 id。未知连接回落到连接 id 本身(fail-safe:
347
+ * 宁可退化成"仅该连接可写",也不要误放行)。
348
+ */
349
+ identityOf(connectionId: string): string;
335
350
  get clientCount(): number;
336
351
  constructor(options?: WebSocketManagerOptions);
337
352
  handleUpgrade(request: IncomingMessage, socket: Socket, head: Buffer, pathname: string): boolean;
@@ -345,6 +360,14 @@ declare class WebSocketManager extends TypedEventEmitter<WebSocketManagerEvents>
345
360
  unsubscribeClient(clientId: string, sessionId: string): void;
346
361
  clearSessionSubscriptions(sessionId: string): void;
347
362
  sendToClient(clientId: string, message: WebSocketMessage): void;
363
+ /**
364
+ * RFC-354 R1:按**授权身份**投递到其名下全部在线连接。
365
+ *
366
+ * 用于以 lease owner(身份 id)为收件人的定向通知——`sendToClient` 收的是连接 id,
367
+ * 直接把 owner 喂进去会静默投递失败(Map 查不到)。同一身份可能有多条连接
368
+ * (多个 attach 窗口 / web-ui 与 CLI 共用 token),全部通知。
369
+ */
370
+ sendToIdentity(identity: string, message: WebSocketMessage): void;
348
371
  close(): void;
349
372
  private onConnection;
350
373
  private handleSystemClientMessage;
@@ -399,6 +422,98 @@ declare class DebugBridge extends TypedEventEmitter<DebugBridgeEvents> {
399
422
  private normalizeLevel;
400
423
  }
401
424
  //#endregion
425
+ //#region src/write-lease-manager.d.ts
426
+ /**
427
+ * RFC-335 S4 协议面:写租约管理器(write lease)。
428
+ *
429
+ * 唯一写权语义(同一 session 至多 1 client 持有写权):
430
+ * - acquire(idempotent by same clientId):同 clientId 重复 acquire 视为 no-op;
431
+ * 另一 clientId 申请在 released 前 deny。
432
+ * - release:仅持有者可 release;非持有者 release 视为 no-op(不报错——防下线风暴)。
433
+ * - releaseAllForClient:该 client 断连重置——唯一强清理端点。
434
+ *
435
+ * 实现主调点是 inbound-router:WS 显式 verb 派单 acquire/release,
436
+ * ws.onclose / server-shutdown 走 releaseAllForClient。无 timer、无心跳。
437
+ * 死租约终态:kill -9 / 网络断 → 下一 attach 收到 denied,
438
+ * receive 明确报错(deny reason 含另一 clientId), 下 a client 需
439
+ * explicit `--force` 类 override(后续 PR)或人工冻结老 client。
440
+ * 这是 RFC-335 §S4 第一期在我 5 明文「不扩服务新 timer/state machine」
441
+ * 的最低必要面——deny-early反馈 &amp;后面的 disconnect 释放点。
442
+ */
443
+ interface WriteLeaseManager {
444
+ /** 申请 sessionId 的唯一写权。返回结果不抛错:denied/acquired 当事儿类型。 */
445
+ acquire(sessionId: string, clientId: string): WriteLeaseAcquireResult;
446
+ /** 释放 sessionId 的写权。仅持有者可 release。返回是否真释放了(幂等)。 */
447
+ release(sessionId: string, clientId: string): boolean;
448
+ /** 清理某个 client 名下的所有写租约(断连清理点)。返回被释放的 sessionId 列表。 */
449
+ releaseAllForClient(clientId: string): string[];
450
+ /** ownerOf:debug/UI 需要现处 leaseOwner。 */
451
+ ownerOf(sessionId: string): string | undefined;
452
+ /** canClientWrite(sessionId, clientId):Chat.query/Chat.* 的前置校验。 */
453
+ canClientWrite(sessionId: string, clientId: string): boolean;
454
+ /**
455
+ * RFC-335 S4 补丁:force_acquire——强抢走 sessionId 的写权(不论原持有者问同)。
456
+ * 用于 kill -9 后原来 client 占着 lease 没释放的人工接管场景。
457
+ * 返回原 owner(若有)及新 owner 状态。
458
+ * **审计语义**:调用方负责把本 action 记为「显式人工 force」——非普通共享;
459
+ * 原 owner 后续才需改为「写权被剥夺」。
460
+ */
461
+ forceAcquire(sessionId: string, clientId: string): {
462
+ previousOwner: string | undefined;
463
+ newOwner: string;
464
+ };
465
+ }
466
+ type WriteLeaseAcquireResult = {
467
+ kind: 'acquired';
468
+ } | {
469
+ kind: 'denied'; /** 强 owner clientId——拒绝反馈调用方需呈现 owner */
470
+ leaseOwner: string;
471
+ };
472
+ //#endregion
473
+ //#region src/inbound-router.d.ts
474
+ declare class InboundRouter {
475
+ private readonly ws;
476
+ private readonly app;
477
+ private readonly bridge;
478
+ /**
479
+ * RFC-335 M3:按 cursor 读取待补发事件。以回调注入而非直接依赖 CodingService,
480
+ * 避免 router ↔ service 循环依赖(CodingService 已持有 router)。
481
+ * 未注入时 `since` 参数被忽略,退化为纯实时订阅(旧行为)。
482
+ */
483
+ private readonly readEventsSince?;
484
+ /** RFC-335 S4 协议面:session 写租约 per-session 单持有者裁决。仅由 dispatch 路径 mutation。 */
485
+ readonly writeLease: WriteLeaseManager;
486
+ constructor(ws: WebSocketManager, app: ServiceHostPort, bridge: DebugBridge | null,
487
+ /**
488
+ * RFC-335 M3:按 cursor 读取待补发事件。以回调注入而非直接依赖 CodingService,
489
+ * 避免 router ↔ service 循环依赖(CodingService 已持有 router)。
490
+ * 未注入时 `since` 参数被忽略,退化为纯实时订阅(旧行为)。
491
+ */
492
+
493
+ readEventsSince?: ((sessionId: string, after: number) => EventLogRead) | undefined);
494
+ dispatch(clientId: string, message: WebSocketClientMessage): void;
495
+ /**
496
+ * RFC-335 M3:补发 `after` 之后的事件,衔接 snapshot 与实时流。
497
+ *
498
+ * 缺口(cursor 已被环形缓冲逐出)时**必须**显式告知客户端重新水合,绝不静默补发
499
+ * "能补的那部分"——那会让客户端以为序列完整,实则中间缺一段且永远无法察觉。
500
+ */
501
+ private replaySince;
502
+ private resolveSession;
503
+ /**
504
+ * RFC-222 D2:prompt 被拒绝(如并发 isBusy 守卫)时的错误必须**定向**发给触发本次
505
+ * 请求的客户端(`sendToClient`),不得广播给该 session 的全部订阅者(`sendToSession`)
506
+ * ——多端场景下正在正常执行中的其他客户端不应收到与自己无关的 "prompt failed"。
507
+ */
508
+ private handleQuery;
509
+ private handleApproval;
510
+ private handleAskUserResponse;
511
+ private handlePlanApprovalResponse;
512
+ private handleDebugCommand;
513
+ private handleDebugSetBreakpoint;
514
+ private handleDebugSetBreakpointsActive;
515
+ }
516
+ //#endregion
402
517
  //#region src/coding-service.d.ts
403
518
  declare class CodingService {
404
519
  readonly app: ServiceHostPort;
@@ -415,7 +530,7 @@ declare class CodingService {
415
530
  private readonly eventLog;
416
531
  private readonly bridges;
417
532
  private readonly traceBridges;
418
- private readonly router;
533
+ readonly router: InboundRouter;
419
534
  private started;
420
535
  readonly bridge: DebugBridge | null;
421
536
  readonly ws: WebSocketManager;
@@ -491,50 +606,6 @@ declare class EventBridge {
491
606
  detach(): void;
492
607
  }
493
608
  //#endregion
494
- //#region src/inbound-router.d.ts
495
- declare class InboundRouter {
496
- private readonly ws;
497
- private readonly app;
498
- private readonly bridge;
499
- /**
500
- * RFC-335 M3:按 cursor 读取待补发事件。以回调注入而非直接依赖 CodingService,
501
- * 避免 router ↔ service 循环依赖(CodingService 已持有 router)。
502
- * 未注入时 `since` 参数被忽略,退化为纯实时订阅(旧行为)。
503
- */
504
- private readonly readEventsSince?;
505
- /** RFC-335 S4 协议面:session 写租约 per-session 单持有者裁决。仅由 dispatch 路径 mutation。 */
506
- private readonly writeLease;
507
- constructor(ws: WebSocketManager, app: ServiceHostPort, bridge: DebugBridge | null,
508
- /**
509
- * RFC-335 M3:按 cursor 读取待补发事件。以回调注入而非直接依赖 CodingService,
510
- * 避免 router ↔ service 循环依赖(CodingService 已持有 router)。
511
- * 未注入时 `since` 参数被忽略,退化为纯实时订阅(旧行为)。
512
- */
513
-
514
- readEventsSince?: ((sessionId: string, after: number) => EventLogRead) | undefined);
515
- dispatch(clientId: string, message: WebSocketClientMessage): void;
516
- /**
517
- * RFC-335 M3:补发 `after` 之后的事件,衔接 snapshot 与实时流。
518
- *
519
- * 缺口(cursor 已被环形缓冲逐出)时**必须**显式告知客户端重新水合,绝不静默补发
520
- * "能补的那部分"——那会让客户端以为序列完整,实则中间缺一段且永远无法察觉。
521
- */
522
- private replaySince;
523
- private resolveSession;
524
- /**
525
- * RFC-222 D2:prompt 被拒绝(如并发 isBusy 守卫)时的错误必须**定向**发给触发本次
526
- * 请求的客户端(`sendToClient`),不得广播给该 session 的全部订阅者(`sendToSession`)
527
- * ——多端场景下正在正常执行中的其他客户端不应收到与自己无关的 "prompt failed"。
528
- */
529
- private handleQuery;
530
- private handleApproval;
531
- private handleAskUserResponse;
532
- private handlePlanApprovalResponse;
533
- private handleDebugCommand;
534
- private handleDebugSetBreakpoint;
535
- private handleDebugSetBreakpointsActive;
536
- }
537
- //#endregion
538
609
  //#region src/session-event-wire.d.ts
539
610
  /** 投影 + 脱敏 + 包装为 WS `Session.event`。projector 为调用方持有的 per-session 累加器。 */
540
611
  declare function encodeSessionEvent(event: AgentSessionEvent, projector: ProjectorState): WebSocketMessage[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/message-serializer.ts","../src/types.ts","../src/session-event-log.ts","../src/websocket-manager.ts","../src/debug-bridge.ts","../src/coding-service.ts","../src/event-bridge.ts","../src/inbound-router.ts","../src/session-event-wire.ts","../src/persistenced-app.ts","../src/event-bus.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/message-serializer.ts","../src/types.ts","../src/session-event-log.ts","../src/websocket-manager.ts","../src/debug-bridge.ts","../src/write-lease-manager.ts","../src/inbound-router.ts","../src/coding-service.ts","../src/event-bridge.ts","../src/session-event-wire.ts","../src/persistenced-app.ts","../src/event-bus.ts"],"mappings":"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"}