@winmatrix/protocol 1.0.5 → 1.0.7

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 @@
1
+ {"version":3,"file":"conversationTerminal.d.ts","sourceRoot":"","sources":["../src/conversationTerminal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { z } from 'zod';
2
+ export const TERMINAL_SCHEMA_VERSION = 1;
3
+ export const MAX_SYNC_CONVERSATIONS = 20;
4
+ export const ConversationTurnTerminalStatusSchema = z.enum([
5
+ 'completed',
6
+ 'failed',
7
+ 'stopped',
8
+ 'waiting_user_input',
9
+ ]);
10
+ export const ConversationRuntimePhaseSchema = z.enum([
11
+ 'idle',
12
+ 'running',
13
+ 'waiting_async',
14
+ 'waiting_user_input',
15
+ 'completed',
16
+ 'failed',
17
+ 'stopped',
18
+ ]);
19
+ export const ConnectionStatusSchema = z.enum([
20
+ 'connecting',
21
+ 'syncing',
22
+ 'connected',
23
+ 'reconnecting',
24
+ 'degraded',
25
+ 'closed_by_user',
26
+ ]);
27
+ export const TriggerIdentitySchema = z.object({
28
+ triggerUserMessageId: z.string().min(1).max(200).optional(),
29
+ });
30
+ export const ConversationTerminalMessageSchema = z.object({
31
+ messageId: z.string().min(1).max(200),
32
+ role: z.literal('assistant'),
33
+ content: z.string().max(50_000),
34
+ createdAt: z.string().min(1),
35
+ });
36
+ export const ConversationHumanInteractionProjectionSchema = z.object({
37
+ interactionId: z.string().min(1).max(200),
38
+ requestKey: z.string().min(1).max(500),
39
+ agentRunId: z.string().min(1).max(200),
40
+ intent: z.enum(['ask', 'decide']),
41
+ answerChannel: z.enum(['chat', 'workitem', 'both']),
42
+ kind: z.enum(['clarification', 'approval', 'risk_confirmation', 'credential_request', 'acceptance']),
43
+ status: z.enum(['open', 'resolving', 'answered', 'approved', 'rejected', 'cancelled', 'expired', 'delivery_failed']),
44
+ question: z.string().min(1).max(2000),
45
+ responseSchema: z.object({
46
+ version: z.number().int().positive(),
47
+ submitLabel: z.string().min(1).max(20),
48
+ fields: z.array(z.object({
49
+ key: z.string().min(1).max(64),
50
+ label: z.string().min(1).max(80),
51
+ control: z.enum(['text', 'textarea', 'number', 'select', 'multi_select']),
52
+ description: z.string().max(300).optional(),
53
+ required: z.boolean(),
54
+ defaultValue: z.union([z.string(), z.number(), z.array(z.string())]).optional(),
55
+ options: z.array(z.object({
56
+ value: z.string().min(1).max(128),
57
+ label: z.string().min(1).max(80),
58
+ description: z.string().max(300).optional(),
59
+ })).max(20).optional(),
60
+ validation: z.object({
61
+ minLength: z.number().int().optional(),
62
+ maxLength: z.number().int().optional(),
63
+ min: z.number().optional(),
64
+ max: z.number().optional(),
65
+ maxItems: z.number().int().optional(),
66
+ }).optional(),
67
+ })).min(1).max(10),
68
+ }).optional(),
69
+ reasonCode: z.string().min(1).max(200),
70
+ version: z.number().int().positive(),
71
+ allowedActions: z.array(z.enum(['submit_form', 'approve', 'reject', 'credential_ready', 'cancel'])),
72
+ stepId: z.string().min(1).max(200).optional(),
73
+ briefId: z.string().min(1).max(200).optional(),
74
+ workerExecutionId: z.string().min(1).max(200).optional(),
75
+ canAnswer: z.boolean(),
76
+ canCancel: z.boolean(),
77
+ lastErrorCode: z.string().min(1).max(200).optional(),
78
+ resolvedAt: z.string().min(1).optional(),
79
+ });
80
+ export const TerminalErrorStructureSchema = z.object({
81
+ code: z.string().min(1).max(100),
82
+ message: z.string().min(1).max(500),
83
+ });
84
+ export const ConversationTurnTerminalV1Schema = z.object({
85
+ type: z.literal('conversation:turn_terminal'),
86
+ schemaVersion: z.literal(TERMINAL_SCHEMA_VERSION),
87
+ conversationId: z.string().min(1).max(200),
88
+ runId: z.string().min(1).max(200),
89
+ status: ConversationTurnTerminalStatusSchema,
90
+ triggerUserMessageId: TriggerIdentitySchema.shape.triggerUserMessageId,
91
+ assistantMessage: ConversationTerminalMessageSchema.optional(),
92
+ error: TerminalErrorStructureSchema.optional(),
93
+ humanInteraction: ConversationHumanInteractionProjectionSchema.optional(),
94
+ stateUpdatedAt: z.string().min(1),
95
+ });
96
+ export const ConnectionSyncConversationEntrySchema = z.object({
97
+ conversationId: z.string().min(1).max(200),
98
+ expectedRunId: z.string().min(1).max(200).optional(),
99
+ expectedTriggerUserMessageId: z.string().min(1).max(200).optional(),
100
+ });
101
+ export const ConnectionSyncV1Schema = z.object({
102
+ type: z.literal('connection:sync'),
103
+ schemaVersion: z.literal(TERMINAL_SCHEMA_VERSION),
104
+ connectionGeneration: z.number().int().min(0),
105
+ conversations: z.array(ConnectionSyncConversationEntrySchema).min(1).max(MAX_SYNC_CONVERSATIONS),
106
+ });
107
+ export const ConversationRuntimeSnapshotSchema = z.object({
108
+ conversationId: z.string().min(1).max(200),
109
+ runId: z.string().min(1).max(200).optional(),
110
+ phase: ConversationRuntimePhaseSchema,
111
+ triggerUserMessageId: TriggerIdentitySchema.shape.triggerUserMessageId,
112
+ assistantMessage: ConversationTerminalMessageSchema.optional(),
113
+ humanInteraction: ConversationHumanInteractionProjectionSchema.optional(),
114
+ error: TerminalErrorStructureSchema.optional(),
115
+ stateUpdatedAt: z.string().min(1),
116
+ });
117
+ export const ConnectionSyncResultV1Schema = z.object({
118
+ type: z.literal('connection:sync_result'),
119
+ schemaVersion: z.literal(TERMINAL_SCHEMA_VERSION),
120
+ connectionGeneration: z.number().int().min(0),
121
+ snapshots: z.array(ConversationRuntimeSnapshotSchema),
122
+ resultStatus: z.enum(['ok', 'degraded', 'inconsistent']),
123
+ });
124
+ export const ConversationStateStreamPayloadSchema = z.object({
125
+ mode: z.enum(['interactive', 'coordinator', 'cdw', 'react']),
126
+ pipelineStatus: z.enum([
127
+ 'running',
128
+ 'completed',
129
+ 'failed',
130
+ 'waiting_user_input',
131
+ 'waiting_async',
132
+ ]).optional(),
133
+ triggerUserMessageId: TriggerIdentitySchema.shape.triggerUserMessageId,
134
+ });
135
+ export function parseConnectionSyncV1(raw) {
136
+ const result = ConnectionSyncV1Schema.safeParse(raw);
137
+ return result.success ? result.data : null;
138
+ }
139
+ export function isConversationTurnTerminal(raw) {
140
+ return ConversationTurnTerminalV1Schema.safeParse(raw).success;
141
+ }
142
+ export function isConnectionSyncResult(raw) {
143
+ return ConnectionSyncResultV1Schema.safeParse(raw).success;
144
+ }
145
+ //# sourceMappingURL=conversationTerminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversationTerminal.js","sourceRoot":"","sources":["../src/conversationTerminal.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,4 +3,8 @@ export * from './agentEngine.js';
3
3
  export * from './constants.js';
4
4
  export * from './types.js';
5
5
  export * from './helpers.js';
6
+ export * from './chatPresentation.js';
7
+ export * from './messageView.js';
8
+ export * from './conversationTerminal.js';
9
+ export * from './mcpUrl.js';
6
10
  //# 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,kBAAkB,CAAC;AACjC,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,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -3,4 +3,8 @@ export * from './agentEngine.js';
3
3
  export * from './constants.js';
4
4
  export * from './types.js';
5
5
  export * from './helpers.js';
6
+ export * from './chatPresentation.js';
7
+ export * from './messageView.js';
8
+ export * from './conversationTerminal.js';
9
+ export * from './mcpUrl.js';
6
10
  //# 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,kBAAkB,CAAC;AACjC,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,2BAA2B,CAAC;AAC1C,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,165 @@
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
+ workerStepId: z.ZodOptional<z.ZodString>;
50
+ attemptNo: z.ZodOptional<z.ZodNumber>;
51
+ repairRound: z.ZodOptional<z.ZodNumber>;
52
+ presentationOrder: z.ZodString;
53
+ author: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
54
+ kind: z.ZodLiteral<"user">;
55
+ displayName: z.ZodOptional<z.ZodString>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ kind: "user";
58
+ displayName?: string | undefined;
59
+ }, {
60
+ kind: "user";
61
+ displayName?: string | undefined;
62
+ }>, z.ZodObject<{
63
+ kind: z.ZodLiteral<"employee">;
64
+ roleId: z.ZodString;
65
+ digitalEmployeeName: z.ZodString;
66
+ digitalEmployeeId: z.ZodOptional<z.ZodString>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ roleId: string;
69
+ kind: "employee";
70
+ digitalEmployeeName: string;
71
+ digitalEmployeeId?: string | undefined;
72
+ }, {
73
+ roleId: string;
74
+ kind: "employee";
75
+ digitalEmployeeName: string;
76
+ digitalEmployeeId?: string | undefined;
77
+ }>, z.ZodObject<{
78
+ kind: z.ZodLiteral<"system">;
79
+ displayName: z.ZodString;
80
+ }, "strip", z.ZodTypeAny, {
81
+ kind: "system";
82
+ displayName: string;
83
+ }, {
84
+ kind: "system";
85
+ displayName: string;
86
+ }>]>;
87
+ content: z.ZodString;
88
+ attachments: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
89
+ anchor: z.ZodOptional<z.ZodObject<{
90
+ afterMessageId: z.ZodString;
91
+ slot: z.ZodNumber;
92
+ tieBreaker: z.ZodNumber;
93
+ }, "strip", z.ZodTypeAny, {
94
+ afterMessageId: string;
95
+ slot: number;
96
+ tieBreaker: number;
97
+ }, {
98
+ afterMessageId: string;
99
+ slot: number;
100
+ tieBreaker: number;
101
+ }>>;
102
+ createdAt: z.ZodNumber;
103
+ }, "strip", z.ZodTypeAny, {
104
+ id: string;
105
+ content: string;
106
+ createdAt: number;
107
+ kind: "artifacts" | "final-response" | "final-draft" | "transient-thinking" | "tool-execution" | "orchestration" | "execution-surface";
108
+ turnKey: string;
109
+ parentUserMessageId: string;
110
+ presentationOrder: string;
111
+ author: {
112
+ kind: "user";
113
+ displayName?: string | undefined;
114
+ } | {
115
+ roleId: string;
116
+ kind: "employee";
117
+ digitalEmployeeName: string;
118
+ digitalEmployeeId?: string | undefined;
119
+ } | {
120
+ kind: "system";
121
+ displayName: string;
122
+ };
123
+ workerBriefId?: string | undefined;
124
+ workerStepId?: string | undefined;
125
+ attemptNo?: number | undefined;
126
+ repairRound?: number | undefined;
127
+ attachments?: unknown[] | undefined;
128
+ anchor?: {
129
+ afterMessageId: string;
130
+ slot: number;
131
+ tieBreaker: number;
132
+ } | undefined;
133
+ }, {
134
+ id: string;
135
+ content: string;
136
+ createdAt: number;
137
+ kind: "artifacts" | "final-response" | "final-draft" | "transient-thinking" | "tool-execution" | "orchestration" | "execution-surface";
138
+ turnKey: string;
139
+ parentUserMessageId: string;
140
+ presentationOrder: string;
141
+ author: {
142
+ kind: "user";
143
+ displayName?: string | undefined;
144
+ } | {
145
+ roleId: string;
146
+ kind: "employee";
147
+ digitalEmployeeName: string;
148
+ digitalEmployeeId?: string | undefined;
149
+ } | {
150
+ kind: "system";
151
+ displayName: string;
152
+ };
153
+ workerBriefId?: string | undefined;
154
+ workerStepId?: string | undefined;
155
+ attemptNo?: number | undefined;
156
+ repairRound?: number | undefined;
157
+ attachments?: unknown[] | undefined;
158
+ anchor?: {
159
+ afterMessageId: string;
160
+ slot: number;
161
+ tieBreaker: number;
162
+ } | undefined;
163
+ }>;
164
+ export type MessageView = z.infer<typeof MessageViewSchema>;
165
+ //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,32 @@
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
+ workerStepId: z.string().optional(), // step 身份投影(converge-message-id-identity)
23
+ attemptNo: z.number().int().positive().optional(),
24
+ repairRound: z.number().int().positive().optional(),
25
+ presentationOrder: z.string().min(1), // BigInt 十进制字符串,稀疏
26
+ author: MessageAuthorSchema,
27
+ content: z.string(),
28
+ attachments: z.array(z.unknown()).optional(),
29
+ anchor: z.object({ afterMessageId: z.string(), slot: z.number().int(), tieBreaker: z.number().int() }).optional(),
30
+ createdAt: z.number().int(), // epoch ms,禁 toISOString 字符串
31
+ });
32
+ //# 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,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAW,0CAA0C;IACxF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACnD,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"}