@winmatrix/protocol 1.0.4 → 1.0.6

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.
@@ -0,0 +1,118 @@
1
+ import { z } from 'zod';
2
+ import { MessageKindSchema } from './messageView.js';
3
+ export const ChatPresentationFinalKind = 'final-response';
4
+ export const CONVERSATION_CHAT_ACCEPTED_SCHEMA_VERSION = 1;
5
+ const PresentationOrderCursorSchema = z.string().regex(/^(0|[1-9]\d*)$/);
6
+ /** 首条消息由服务端分配真实会话 ID 后的 WS 确认帧。 */
7
+ export const ConversationChatAcceptedSchema = z.object({
8
+ type: z.literal('conversation:chat_accepted'),
9
+ schemaVersion: z.literal(CONVERSATION_CHAT_ACCEPTED_SCHEMA_VERSION),
10
+ conversationId: z.string().min(1).max(200),
11
+ });
12
+ /**
13
+ * user 消息落库回执帧:前端 pending 区据落库 presentationOrder 转正归位。
14
+ * ack 丢失无补偿——由前端重叠窗口回读自愈(spec §4.2)。
15
+ */
16
+ export const MessageAckFrameSchema = z.object({
17
+ type: z.literal('conversation:message_ack'),
18
+ conversationId: z.string().min(1).max(200),
19
+ userMessageId: z.string().min(1).max(200),
20
+ presentationOrder: PresentationOrderCursorSchema,
21
+ turnKey: z.string().min(1).max(300),
22
+ });
23
+ export const ChatPresentationLifecycleSchema = z.enum([
24
+ 'open',
25
+ 'patch',
26
+ 'settled',
27
+ 'discarded',
28
+ ]);
29
+ export const ChatPresentationAnchorSchema = z.object({
30
+ afterMessageId: z.string().min(1),
31
+ slot: z.number().int().nonnegative(),
32
+ tieBreaker: z.string().min(1),
33
+ });
34
+ export const EmployeePresentationAuthorSchema = z.object({
35
+ kind: z.literal('employee'),
36
+ roleId: z.string().min(1),
37
+ digitalEmployeeName: z.string().min(1),
38
+ digitalEmployeeId: z.string().min(1).optional(),
39
+ });
40
+ export const SystemPresentationAuthorSchema = z.object({
41
+ kind: z.literal('system'),
42
+ displayName: z.string().min(1),
43
+ });
44
+ export const UserPresentationAuthorSchema = z.object({
45
+ kind: z.literal('user'),
46
+ displayName: z.string().min(1).optional(),
47
+ });
48
+ export const ChatPresentationAuthorSchema = z.discriminatedUnion('kind', [
49
+ UserPresentationAuthorSchema,
50
+ EmployeePresentationAuthorSchema,
51
+ SystemPresentationAuthorSchema,
52
+ ]);
53
+ export const ChatPresentationProducerSchema = z.object({
54
+ module: z.string().min(1),
55
+ runId: z.string().min(1).optional(),
56
+ sourceId: z.string().min(1).optional(),
57
+ });
58
+ const ChatPresentationEventBaseSchema = z.object({
59
+ eventId: z.string().min(1),
60
+ conversationId: z.string().min(1),
61
+ turnId: z.string().min(1),
62
+ presentationId: z.string().min(1),
63
+ kind: MessageKindSchema,
64
+ lifecycle: ChatPresentationLifecycleSchema,
65
+ revision: z.number().int().nonnegative(),
66
+ /** 服务端发布时刻;仅用于当前页的同锚点因果排序,历史仍按 presentationOrder。 */
67
+ emittedAt: z.number().int().nonnegative(),
68
+ anchor: ChatPresentationAnchorSchema,
69
+ producer: ChatPresentationProducerSchema,
70
+ author: ChatPresentationAuthorSchema.optional(),
71
+ payload: z.record(z.string(), z.unknown()),
72
+ });
73
+ export const ChatPresentationEventSchema = ChatPresentationEventBaseSchema.superRefine((event, context) => {
74
+ if (event.kind === ChatPresentationFinalKind && !event.author) {
75
+ context.addIssue({
76
+ code: z.ZodIssueCode.custom,
77
+ message: 'final-response requires an explicit employee or system author',
78
+ path: ['author'],
79
+ });
80
+ }
81
+ });
82
+ const PresentationIntentBaseSchema = z.object({
83
+ conversationId: z.string().min(1),
84
+ turnId: z.string().min(1),
85
+ presentationId: z.string().min(1).optional(),
86
+ anchor: ChatPresentationAnchorSchema.optional(),
87
+ afterMessageId: z.string().min(1).optional(),
88
+ tieBreaker: z.string().min(1).optional(),
89
+ kind: MessageKindSchema,
90
+ lifecycle: ChatPresentationLifecycleSchema,
91
+ producer: ChatPresentationProducerSchema,
92
+ author: ChatPresentationAuthorSchema.optional(),
93
+ payload: z.record(z.string(), z.unknown()),
94
+ });
95
+ export const PresentationIntentSchema = PresentationIntentBaseSchema.superRefine((intent, context) => {
96
+ if (intent.kind === ChatPresentationFinalKind && !intent.author) {
97
+ context.addIssue({
98
+ code: z.ZodIssueCode.custom,
99
+ message: 'final-response requires an explicit employee or system author',
100
+ path: ['author'],
101
+ });
102
+ }
103
+ });
104
+ export function compareHistoryPresentationOrder(left, right) {
105
+ if (left.presentationOrder !== right.presentationOrder) {
106
+ return left.presentationOrder < right.presentationOrder ? -1 : 1;
107
+ }
108
+ return left.id.localeCompare(right.id);
109
+ }
110
+ export function compareLivePresentationAnchor(left, right) {
111
+ if (left.afterMessageId !== right.afterMessageId) {
112
+ return left.afterMessageId.localeCompare(right.afterMessageId);
113
+ }
114
+ if (left.slot !== right.slot)
115
+ return left.slot - right.slot;
116
+ return left.tieBreaker.localeCompare(right.tieBreaker);
117
+ }
118
+ //# sourceMappingURL=chatPresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatPresentation.js","sourceRoot":"","sources":["../src/chatPresentation.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,17 @@ export declare const METHODS: {
7
7
  readonly TOOL_CALL: "tool.call";
8
8
  readonly SESSION_LIST: "session.list";
9
9
  readonly SESSION_GET: "session.get";
10
+ readonly TASK_EVENTS_SUBSCRIBE: "task.events.subscribe";
11
+ readonly TASK_INSPECT: "task.inspect";
12
+ readonly TASK_INTERACTION_RESPOND: "task.interaction.respond";
13
+ readonly TASK_CANCEL_RUN: "task.cancel";
14
+ readonly TASK_ACTIVE_LIST: "task.active.list";
15
+ readonly SESSION_SEARCH: "session.search";
16
+ readonly SESSION_DELETE: "session.delete";
17
+ readonly AGENT_ENGINE_LIST: "agent.engine.list";
18
+ readonly AGENT_ENGINE_MODELS: "agent.engine.models";
19
+ readonly AGENT_ENGINE_OPTIONS: "agent.engine.options";
20
+ readonly AGENT_ENGINE_PROBE: "agent.engine.probe";
10
21
  };
11
22
  export declare const EVENTS: {
12
23
  readonly TASK_DELTA: "task.delta";
@@ -24,6 +35,8 @@ export declare const EVENTS: {
24
35
  readonly AGENT_STOPPED: "agent.stopped";
25
36
  readonly AGENT_ERROR: "agent.error";
26
37
  readonly WORKSPACE_REPORT: "workspace.report";
38
+ readonly TASK_EVENT: "task.event";
39
+ readonly TASK_RESULT: "task.result";
27
40
  };
28
41
  /** AGENT_BUSY — agent is executing another task */
29
42
  export declare const ERROR_CODES: {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,eAAO,MAAM,OAAO;;;;;;;;CAQV,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CAgBT,CAAC;AAEX,mDAAmD;AACnD,eAAO,MAAM,WAAW;;CAEd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAChE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;CAoBV,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;CAmBT,CAAC;AAEX,mDAAmD;AACnD,eAAO,MAAM,WAAW;;CAEd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAChE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC"}
package/dist/constants.js CHANGED
@@ -7,6 +7,18 @@ export const METHODS = {
7
7
  TOOL_CALL: 'tool.call',
8
8
  SESSION_LIST: 'session.list',
9
9
  SESSION_GET: 'session.get',
10
+ /* ── 统一 Agent Engine Gateway Run control(需版本/capability 协商后启用) ── */
11
+ TASK_EVENTS_SUBSCRIBE: 'task.events.subscribe',
12
+ TASK_INSPECT: 'task.inspect',
13
+ TASK_INTERACTION_RESPOND: 'task.interaction.respond',
14
+ TASK_CANCEL_RUN: 'task.cancel',
15
+ TASK_ACTIVE_LIST: 'task.active.list',
16
+ SESSION_SEARCH: 'session.search',
17
+ SESSION_DELETE: 'session.delete',
18
+ AGENT_ENGINE_LIST: 'agent.engine.list',
19
+ AGENT_ENGINE_MODELS: 'agent.engine.models',
20
+ AGENT_ENGINE_OPTIONS: 'agent.engine.options',
21
+ AGENT_ENGINE_PROBE: 'agent.engine.probe',
10
22
  };
11
23
  export const EVENTS = {
12
24
  TASK_DELTA: 'task.delta',
@@ -24,6 +36,9 @@ export const EVENTS = {
24
36
  AGENT_STOPPED: 'agent.stopped',
25
37
  AGENT_ERROR: 'agent.error',
26
38
  WORKSPACE_REPORT: 'workspace.report',
39
+ /* ── 统一 Agent Engine Gateway 标准事件 ── */
40
+ TASK_EVENT: 'task.event',
41
+ TASK_RESULT: 'task.result',
27
42
  };
28
43
  /** AGENT_BUSY — agent is executing another task */
29
44
  export const ERROR_CODES = {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAEX,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,YAAY;CAChB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,UAAU;IACpB,iBAAiB,EAAE,mBAAmB;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,qEAAqE;IACrE,qBAAqB,EAAE,uBAAuB;IAC9C,YAAY,EAAE,cAAc;IAC5B,wBAAwB,EAAE,0BAA0B;IACpD,eAAe,EAAE,aAAa;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,kBAAkB;IACpC,wCAAwC;IACxC,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,YAAY;CAChB,CAAC"}
package/dist/helpers.d.ts CHANGED
@@ -42,4 +42,24 @@ export declare function isSessionGetRequest(frame: ClientInboundFrame): frame is
42
42
  params: import('./schemas.js').SessionGetParams;
43
43
  };
44
44
  export type { InboundFrame };
45
+ /**
46
+ * 通用 frame logger redaction:深拷贝输入并将 sensitive binding 值替换为
47
+ * '[redacted]'。callback token、capability token、credential reference 值
48
+ * 不得进入普通 frame 日志、RPC audit、task metadata、trace 或 crash dump。
49
+ */
50
+ export declare function redactFrameForLogging<T>(frame: T): T;
51
+ /**
52
+ * 旧 TaskAssignParams.mcpToken 的显式兼容映射。
53
+ * 新路径禁止继续直接读取 mcpToken;完成 daemon 灰度后删除旧字段。
54
+ */
55
+ export declare function mapLegacyMcpTokenToSecretBindings(params: {
56
+ mcpToken?: string;
57
+ secretBindings?: {
58
+ mcpCapabilityToken?: string;
59
+ credentialReferences?: string[];
60
+ };
61
+ }): {
62
+ mcpCapabilityToken?: string;
63
+ credentialReferences?: string[];
64
+ } | undefined;
45
65
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAgBrD,wBAAgB,uBAAuB,CACrC,CAAC,SAAS;IACR,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7E,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,EACD,MAAM,EAAE,CAAC,GAAG,CAAC,CAcd;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAMvF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,YAAY,CAM5E;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAE3E;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,CASX;AAID,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAMD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CA4BjE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAI9D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAIxD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,YAAY,CAE3E;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,SAAS,CAErE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,WAAW,CAEzE;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,WAAW,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAErD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,SAAS,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAErD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,SAAS,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAErD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,WAAW,GAAG;IAAE,MAAM,EAAE,OAAO,cAAc,EAAE,iBAAiB,CAAA;CAAE,CAE7E;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,WAAW,GAAG;IAAE,MAAM,EAAE,OAAO,cAAc,EAAE,gBAAgB,CAAA;CAAE,CAE5E;AAED,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAgBrD,wBAAgB,uBAAuB,CACrC,CAAC,SAAS;IACR,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7E,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,EACD,MAAM,EAAE,CAAC,GAAG,CAAC,CAcd;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAMvF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,YAAY,CAM5E;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAE3E;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,CASX;AAID,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAMD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CA4BjE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAI9D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAIxD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,YAAY,CAE3E;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,SAAS,CAErE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,KAAK,IAAI,WAAW,CAEzE;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,WAAW,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAErD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,SAAS,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAErD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,SAAS,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,CAErD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,WAAW,GAAG;IAAE,MAAM,EAAE,OAAO,cAAc,EAAE,iBAAiB,CAAA;CAAE,CAE7E;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,GACxB,KAAK,IAAI,WAAW,GAAG;IAAE,MAAM,EAAE,OAAO,cAAc,EAAE,gBAAgB,CAAA;CAAE,CAE5E;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAkD7B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAEpD;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnF,GAAG;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAQ/E"}
package/dist/helpers.js CHANGED
@@ -131,4 +131,68 @@ export function isSessionListRequest(frame) {
131
131
  export function isSessionGetRequest(frame) {
132
132
  return frame.type === 'req' && frame.method === METHODS.SESSION_GET;
133
133
  }
134
+ /* ── Sensitive bindings redaction(任务 1.5) ── */
135
+ /**
136
+ * 敏感字段名集合:通用 frame logger / RPC audit / trace 遇到这些 key 时
137
+ * 必须替换值,最多记录 schema version/key/count。
138
+ */
139
+ const SENSITIVE_VALUE_KEYS = new Set([
140
+ 'mcpToken',
141
+ 'mcpCapabilityToken',
142
+ 'token',
143
+ 'apiKey',
144
+ 'secretBindings',
145
+ 'dynamicSecrets',
146
+ 'credentialReferences',
147
+ 'callback',
148
+ ]);
149
+ const REDACTED = '[redacted]';
150
+ function redactValue(value) {
151
+ if (Array.isArray(value)) {
152
+ return value.map((item) => redactValue(item));
153
+ }
154
+ if (isRecord(value)) {
155
+ const out = {};
156
+ for (const [key, child] of Object.entries(value)) {
157
+ out[key] = SENSITIVE_VALUE_KEYS.has(key) ? redactSubtree(child) : redactValue(child);
158
+ }
159
+ return out;
160
+ }
161
+ return value;
162
+ }
163
+ /** 敏感子树整体脱敏:对象保留 key、值替换为 [redacted]。 */
164
+ function redactSubtree(value) {
165
+ if (Array.isArray(value)) {
166
+ return value.map(() => REDACTED);
167
+ }
168
+ if (isRecord(value)) {
169
+ const out = {};
170
+ for (const key of Object.keys(value)) {
171
+ out[key] = REDACTED;
172
+ }
173
+ return out;
174
+ }
175
+ return REDACTED;
176
+ }
177
+ /**
178
+ * 通用 frame logger redaction:深拷贝输入并将 sensitive binding 值替换为
179
+ * '[redacted]'。callback token、capability token、credential reference 值
180
+ * 不得进入普通 frame 日志、RPC audit、task metadata、trace 或 crash dump。
181
+ */
182
+ export function redactFrameForLogging(frame) {
183
+ return redactValue(frame);
184
+ }
185
+ /**
186
+ * 旧 TaskAssignParams.mcpToken 的显式兼容映射。
187
+ * 新路径禁止继续直接读取 mcpToken;完成 daemon 灰度后删除旧字段。
188
+ */
189
+ export function mapLegacyMcpTokenToSecretBindings(params) {
190
+ if (params.secretBindings) {
191
+ return params.secretBindings;
192
+ }
193
+ if (params.mcpToken) {
194
+ return { mcpCapabilityToken: params.mcpToken };
195
+ }
196
+ return undefined;
197
+ }
134
198
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  export * from './schemas.js';
2
+ export * from './agentEngine.js';
2
3
  export * from './constants.js';
3
4
  export * from './types.js';
4
5
  export * from './helpers.js';
6
+ export * from './chatPresentation.js';
7
+ export * from './messageView.js';
8
+ export * from './mcpUrl.js';
5
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,9 @@
1
1
  export * from './schemas.js';
2
+ export * from './agentEngine.js';
2
3
  export * from './constants.js';
3
4
  export * from './types.js';
4
5
  export * from './helpers.js';
6
+ export * from './chatPresentation.js';
7
+ export * from './messageView.js';
8
+ export * from './mcpUrl.js';
5
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * MCP Bridge URL 统一校验原语。
3
+ *
4
+ * 部署场景预期 cluster-internal endpoint(如 http://winmatrix:3000/mcp),
5
+ * 因此不拦截私网段/无点主机名;只校验 scheme 与 host 非空。
6
+ */
7
+ export interface McpUrlValidationResult {
8
+ valid: true;
9
+ }
10
+ export interface McpUrlValidationFailure {
11
+ valid: false;
12
+ reason: 'EMPTY' | 'INVALID_URL' | 'MISSING_SCHEME' | 'UNSUPPORTED_SCHEME' | 'MISSING_HOST';
13
+ }
14
+ export type ValidateMcpUrlResult = McpUrlValidationResult | McpUrlValidationFailure;
15
+ export declare function validateMcpUrl(url: string): ValidateMcpUrlResult;
16
+ export declare function isMcpUrlValid(url: string): boolean;
17
+ /** 人类可读 reason → 英文标签(用于日志/错误码)。 */
18
+ export declare function mcpUrlFailureReasonToCode(reason: McpUrlValidationFailure['reason']): string;
19
+ //# sourceMappingURL=mcpUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpUrl.d.ts","sourceRoot":"","sources":["../src/mcpUrl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EACF,OAAO,GACP,aAAa,GACb,gBAAgB,GAChB,oBAAoB,GACpB,cAAc,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;AAIpF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAwBhE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,oCAAoC;AACpC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAe3F"}
package/dist/mcpUrl.js ADDED
@@ -0,0 +1,51 @@
1
+ /**
2
+ * MCP Bridge URL 统一校验原语。
3
+ *
4
+ * 部署场景预期 cluster-internal endpoint(如 http://winmatrix:3000/mcp),
5
+ * 因此不拦截私网段/无点主机名;只校验 scheme 与 host 非空。
6
+ */
7
+ const SUPPORTED_SCHEMES = new Set(['http:', 'https:']);
8
+ export function validateMcpUrl(url) {
9
+ const trimmed = url.trim();
10
+ if (trimmed.length === 0) {
11
+ return { valid: false, reason: 'EMPTY' };
12
+ }
13
+ let parsed;
14
+ try {
15
+ parsed = new URL(trimmed);
16
+ }
17
+ catch {
18
+ return { valid: false, reason: 'INVALID_URL' };
19
+ }
20
+ if (!parsed.protocol || parsed.protocol.length === 0) {
21
+ return { valid: false, reason: 'MISSING_SCHEME' };
22
+ }
23
+ if (!SUPPORTED_SCHEMES.has(parsed.protocol.toLowerCase())) {
24
+ return { valid: false, reason: 'UNSUPPORTED_SCHEME' };
25
+ }
26
+ if (!parsed.hostname || parsed.hostname.length === 0) {
27
+ return { valid: false, reason: 'MISSING_HOST' };
28
+ }
29
+ return { valid: true };
30
+ }
31
+ export function isMcpUrlValid(url) {
32
+ return validateMcpUrl(url).valid;
33
+ }
34
+ /** 人类可读 reason → 英文标签(用于日志/错误码)。 */
35
+ export function mcpUrlFailureReasonToCode(reason) {
36
+ switch (reason) {
37
+ case 'EMPTY':
38
+ return 'MCP_BRIDGE_URL_EMPTY';
39
+ case 'INVALID_URL':
40
+ return 'MCP_BRIDGE_URL_INVALID';
41
+ case 'MISSING_SCHEME':
42
+ return 'MCP_BRIDGE_URL_MISSING_SCHEME';
43
+ case 'UNSUPPORTED_SCHEME':
44
+ return 'MCP_BRIDGE_URL_UNSUPPORTED_SCHEME';
45
+ case 'MISSING_HOST':
46
+ return 'MCP_BRIDGE_URL_MISSING_HOST';
47
+ default:
48
+ return 'MCP_BRIDGE_URL_INVALID';
49
+ }
50
+ }
51
+ //# sourceMappingURL=mcpUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpUrl.js","sourceRoot":"","sources":["../src/mcpUrl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEvD,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACpD,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AACnC,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,yBAAyB,CAAC,MAAyC;IACjF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,sBAAsB,CAAC;QAChC,KAAK,aAAa;YAChB,OAAO,wBAAwB,CAAC;QAClC,KAAK,gBAAgB;YACnB,OAAO,+BAA+B,CAAC;QACzC,KAAK,oBAAoB;YACvB,OAAO,mCAAmC,CAAC;QAC7C,KAAK,cAAc;YACjB,OAAO,6BAA6B,CAAC;QACvC;YACE,OAAO,wBAAwB,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,156 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * 消息上屏管线协议 v2 的消息 DTO(spec §4.1b-3)。
4
+ * MessageView 是历史/实时统一的消息投影:前端不再解释 projection envelope。
5
+ */
6
+ export declare const MessageKindSchema: z.ZodEnum<["final-response", "final-draft", "transient-thinking", "tool-execution", "orchestration", "execution-surface", "artifacts"]>;
7
+ export type MessageKind = z.infer<typeof MessageKindSchema>;
8
+ export declare const MessageAuthorSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
9
+ kind: z.ZodLiteral<"user">;
10
+ displayName: z.ZodOptional<z.ZodString>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ kind: "user";
13
+ displayName?: string | undefined;
14
+ }, {
15
+ kind: "user";
16
+ displayName?: string | undefined;
17
+ }>, z.ZodObject<{
18
+ kind: z.ZodLiteral<"employee">;
19
+ roleId: z.ZodString;
20
+ digitalEmployeeName: z.ZodString;
21
+ digitalEmployeeId: z.ZodOptional<z.ZodString>;
22
+ }, "strip", z.ZodTypeAny, {
23
+ roleId: string;
24
+ kind: "employee";
25
+ digitalEmployeeName: string;
26
+ digitalEmployeeId?: string | undefined;
27
+ }, {
28
+ roleId: string;
29
+ kind: "employee";
30
+ digitalEmployeeName: string;
31
+ digitalEmployeeId?: string | undefined;
32
+ }>, z.ZodObject<{
33
+ kind: z.ZodLiteral<"system">;
34
+ displayName: z.ZodString;
35
+ }, "strip", z.ZodTypeAny, {
36
+ kind: "system";
37
+ displayName: string;
38
+ }, {
39
+ kind: "system";
40
+ displayName: string;
41
+ }>]>;
42
+ export type MessageAuthor = z.infer<typeof MessageAuthorSchema>;
43
+ export declare const MessageViewSchema: z.ZodObject<{
44
+ id: z.ZodString;
45
+ kind: z.ZodEnum<["final-response", "final-draft", "transient-thinking", "tool-execution", "orchestration", "execution-surface", "artifacts"]>;
46
+ turnKey: z.ZodString;
47
+ parentUserMessageId: z.ZodString;
48
+ workerBriefId: z.ZodOptional<z.ZodString>;
49
+ presentationOrder: z.ZodString;
50
+ author: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
51
+ kind: z.ZodLiteral<"user">;
52
+ displayName: z.ZodOptional<z.ZodString>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ kind: "user";
55
+ displayName?: string | undefined;
56
+ }, {
57
+ kind: "user";
58
+ displayName?: string | undefined;
59
+ }>, z.ZodObject<{
60
+ kind: z.ZodLiteral<"employee">;
61
+ roleId: z.ZodString;
62
+ digitalEmployeeName: z.ZodString;
63
+ digitalEmployeeId: z.ZodOptional<z.ZodString>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ roleId: string;
66
+ kind: "employee";
67
+ digitalEmployeeName: string;
68
+ digitalEmployeeId?: string | undefined;
69
+ }, {
70
+ roleId: string;
71
+ kind: "employee";
72
+ digitalEmployeeName: string;
73
+ digitalEmployeeId?: string | undefined;
74
+ }>, z.ZodObject<{
75
+ kind: z.ZodLiteral<"system">;
76
+ displayName: z.ZodString;
77
+ }, "strip", z.ZodTypeAny, {
78
+ kind: "system";
79
+ displayName: string;
80
+ }, {
81
+ kind: "system";
82
+ displayName: string;
83
+ }>]>;
84
+ content: z.ZodString;
85
+ attachments: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
86
+ anchor: z.ZodOptional<z.ZodObject<{
87
+ afterMessageId: z.ZodString;
88
+ slot: z.ZodNumber;
89
+ tieBreaker: z.ZodNumber;
90
+ }, "strip", z.ZodTypeAny, {
91
+ afterMessageId: string;
92
+ slot: number;
93
+ tieBreaker: number;
94
+ }, {
95
+ afterMessageId: string;
96
+ slot: number;
97
+ tieBreaker: number;
98
+ }>>;
99
+ createdAt: z.ZodNumber;
100
+ }, "strip", z.ZodTypeAny, {
101
+ id: string;
102
+ content: string;
103
+ createdAt: number;
104
+ kind: "artifacts" | "final-response" | "final-draft" | "transient-thinking" | "tool-execution" | "orchestration" | "execution-surface";
105
+ turnKey: string;
106
+ parentUserMessageId: string;
107
+ presentationOrder: string;
108
+ author: {
109
+ kind: "user";
110
+ displayName?: string | undefined;
111
+ } | {
112
+ roleId: string;
113
+ kind: "employee";
114
+ digitalEmployeeName: string;
115
+ digitalEmployeeId?: string | undefined;
116
+ } | {
117
+ kind: "system";
118
+ displayName: string;
119
+ };
120
+ workerBriefId?: string | undefined;
121
+ attachments?: unknown[] | undefined;
122
+ anchor?: {
123
+ afterMessageId: string;
124
+ slot: number;
125
+ tieBreaker: number;
126
+ } | undefined;
127
+ }, {
128
+ id: string;
129
+ content: string;
130
+ createdAt: number;
131
+ kind: "artifacts" | "final-response" | "final-draft" | "transient-thinking" | "tool-execution" | "orchestration" | "execution-surface";
132
+ turnKey: string;
133
+ parentUserMessageId: string;
134
+ presentationOrder: string;
135
+ author: {
136
+ kind: "user";
137
+ displayName?: string | undefined;
138
+ } | {
139
+ roleId: string;
140
+ kind: "employee";
141
+ digitalEmployeeName: string;
142
+ digitalEmployeeId?: string | undefined;
143
+ } | {
144
+ kind: "system";
145
+ displayName: string;
146
+ };
147
+ workerBriefId?: string | undefined;
148
+ attachments?: unknown[] | undefined;
149
+ anchor?: {
150
+ afterMessageId: string;
151
+ slot: number;
152
+ tieBreaker: number;
153
+ } | undefined;
154
+ }>;
155
+ export type MessageView = z.infer<typeof MessageViewSchema>;
156
+ //# sourceMappingURL=messageView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageView.d.ts","sourceRoot":"","sources":["../src/messageView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,yIAG5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAK9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * 消息上屏管线协议 v2 的消息 DTO(spec §4.1b-3)。
4
+ * MessageView 是历史/实时统一的消息投影:前端不再解释 projection envelope。
5
+ */
6
+ export const MessageKindSchema = z.enum([
7
+ 'final-response', 'final-draft', 'transient-thinking',
8
+ 'tool-execution', 'orchestration', 'execution-surface', 'artifacts',
9
+ ]);
10
+ export const MessageAuthorSchema = z.discriminatedUnion('kind', [
11
+ z.object({ kind: z.literal('user'), displayName: z.string().min(1).optional() }),
12
+ z.object({ kind: z.literal('employee'), roleId: z.string().min(1),
13
+ digitalEmployeeName: z.string().min(1), digitalEmployeeId: z.string().optional() }),
14
+ z.object({ kind: z.literal('system'), displayName: z.string().min(1) }),
15
+ ]);
16
+ export const MessageViewSchema = z.object({
17
+ id: z.string().min(1),
18
+ kind: MessageKindSchema,
19
+ turnKey: z.string().min(1),
20
+ parentUserMessageId: z.string().min(1),
21
+ workerBriefId: z.string().optional(),
22
+ presentationOrder: z.string().min(1), // BigInt 十进制字符串,稀疏
23
+ author: MessageAuthorSchema,
24
+ content: z.string(),
25
+ attachments: z.array(z.unknown()).optional(),
26
+ anchor: z.object({ afterMessageId: z.string(), slot: z.number().int(), tieBreaker: z.number().int() }).optional(),
27
+ createdAt: z.number().int(), // epoch ms,禁 toISOString 字符串
28
+ });
29
+ //# sourceMappingURL=messageView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageView.js","sourceRoot":"","sources":["../src/messageView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC;IACtC,gBAAgB,EAAE,aAAa,EAAE,oBAAoB;IACrD,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,WAAW;CACpE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC9D,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IAChF,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC9F,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;CACxE,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAO,mBAAmB;IAC9D,MAAM,EAAE,mBAAmB;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAgB,6BAA6B;CACzE,CAAC,CAAC"}