@h-ai/api-contract 0.1.0-alpha.36 → 0.1.0-alpha.37

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
@@ -10,6 +10,7 @@
10
10
  - `apiContract.haiResultSchema()` / `apiContract.voidResultSchema` / `apiContract.paginatedSchema()`:公共 DTO Schema 工厂。
11
11
  - 公共 DTO Schema:所有 HTTP 输出统一包装为 `HaiResult<T>`。
12
12
  - IAM token DTO 兼容 httpOnly cookie 模式:响应体中 `refreshToken` 可能不存在,由服务端 `Set-Cookie` 管理。
13
+ - IAM `auth.currentUser` 返回用户资料以及服务端当前会话的 `roles` / `permissions`,客户端恢复会话时无需持久化权限快照。
13
14
 
14
15
  ## 快速开始
15
16
 
@@ -1,7 +1,84 @@
1
- import * as _orpc_contract from '@orpc/contract';
2
- import * as zod_v4_core from 'zod/v4/core';
3
1
  import * as zod from 'zod';
4
2
  import { z } from 'zod';
3
+ import * as _orpc_contract from '@orpc/contract';
4
+ import * as zod_v4_core from 'zod/v4/core';
5
+
6
+ /**
7
+ * Audio WebSocket 传输协议的运行时 Schema。
8
+ *
9
+ * 该协议同时被 AI 客户端与 Serv 服务端消费,因此由 api-contract 维护单一事实源,
10
+ * 避免 Serv 根入口为了校验可选 Audio 消息而静态加载整个 `@h-ai/ai` 包。
11
+ */
12
+
13
+ /** 统一语音入口的默认路径(相对 API 前缀)。 */
14
+ declare const AUDIO_WS_PATH = "/ai/audio";
15
+ /** 合法音频格式。 */
16
+ declare const AudioFormatSchema: z.ZodEnum<{
17
+ pcm16: "pcm16";
18
+ wav: "wav";
19
+ mp3: "mp3";
20
+ opus: "opus";
21
+ }>;
22
+ /** 会话起始帧 Schema。 */
23
+ declare const AudioWsStartMessageSchema: z.ZodObject<{
24
+ type: z.ZodLiteral<"start">;
25
+ operation: z.ZodEnum<{
26
+ transcribe: "transcribe";
27
+ synthesize: "synthesize";
28
+ }>;
29
+ stream: z.ZodOptional<z.ZodBoolean>;
30
+ model: z.ZodOptional<z.ZodString>;
31
+ language: z.ZodOptional<z.ZodString>;
32
+ contextHints: z.ZodOptional<z.ZodArray<z.ZodString>>;
33
+ voice: z.ZodOptional<z.ZodString>;
34
+ instruction: z.ZodOptional<z.ZodString>;
35
+ format: z.ZodOptional<z.ZodEnum<{
36
+ pcm16: "pcm16";
37
+ wav: "wav";
38
+ mp3: "mp3";
39
+ opus: "opus";
40
+ }>>;
41
+ sampleRate: z.ZodOptional<z.ZodNumber>;
42
+ channels: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
43
+ }, z.core.$strip>;
44
+ /** 文本输入帧 Schema。 */
45
+ declare const AudioWsTextMessageSchema: z.ZodObject<{
46
+ type: z.ZodLiteral<"text">;
47
+ segmentId: z.ZodString;
48
+ text: z.ZodString;
49
+ }, z.core.$strip>;
50
+ /** 输入结束帧 Schema。 */
51
+ declare const AudioWsDoneMessageSchema: z.ZodObject<{
52
+ type: z.ZodLiteral<"done">;
53
+ }, z.core.$strip>;
54
+ /** 客户端 JSON 控制消息 Schema。 */
55
+ declare const AudioWsClientMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
56
+ type: z.ZodLiteral<"start">;
57
+ operation: z.ZodEnum<{
58
+ transcribe: "transcribe";
59
+ synthesize: "synthesize";
60
+ }>;
61
+ stream: z.ZodOptional<z.ZodBoolean>;
62
+ model: z.ZodOptional<z.ZodString>;
63
+ language: z.ZodOptional<z.ZodString>;
64
+ contextHints: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
+ voice: z.ZodOptional<z.ZodString>;
66
+ instruction: z.ZodOptional<z.ZodString>;
67
+ format: z.ZodOptional<z.ZodEnum<{
68
+ pcm16: "pcm16";
69
+ wav: "wav";
70
+ mp3: "mp3";
71
+ opus: "opus";
72
+ }>>;
73
+ sampleRate: z.ZodOptional<z.ZodNumber>;
74
+ channels: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
75
+ }, z.core.$strip>, z.ZodObject<{
76
+ type: z.ZodLiteral<"text">;
77
+ segmentId: z.ZodString;
78
+ text: z.ZodString;
79
+ }, z.core.$strip>, z.ZodObject<{
80
+ type: z.ZodLiteral<"done">;
81
+ }, z.core.$strip>], "type">;
5
82
 
6
83
  /**
7
84
  * @h-ai/api-contract — AI 领域 contract
@@ -240,11 +317,11 @@ declare const aiContract: {
240
317
  query: zod.ZodString;
241
318
  topK: zod.ZodOptional<zod.ZodNumber>;
242
319
  types: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
320
+ instruction: "instruction";
243
321
  fact: "fact";
244
322
  preference: "preference";
245
323
  event: "event";
246
324
  entity: "entity";
247
- instruction: "instruction";
248
325
  }>>>;
249
326
  minImportance: zod.ZodOptional<zod.ZodNumber>;
250
327
  objectId: zod.ZodOptional<zod.ZodString>;
@@ -255,11 +332,11 @@ declare const aiContract: {
255
332
  id: zod.ZodString;
256
333
  content: zod.ZodString;
257
334
  type: zod.ZodEnum<{
335
+ instruction: "instruction";
258
336
  fact: "fact";
259
337
  preference: "preference";
260
338
  event: "event";
261
339
  entity: "entity";
262
- instruction: "instruction";
263
340
  }>;
264
341
  importance: zod.ZodNumber;
265
342
  objectId: zod.ZodOptional<zod.ZodString>;
@@ -284,11 +361,11 @@ declare const aiContract: {
284
361
  }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
285
362
  list: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
286
363
  types: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
364
+ instruction: "instruction";
287
365
  fact: "fact";
288
366
  preference: "preference";
289
367
  event: "event";
290
368
  entity: "entity";
291
- instruction: "instruction";
292
369
  }>>>;
293
370
  objectId: zod.ZodOptional<zod.ZodString>;
294
371
  offset: zod.ZodOptional<zod.ZodNumber>;
@@ -300,11 +377,11 @@ declare const aiContract: {
300
377
  id: zod.ZodString;
301
378
  content: zod.ZodString;
302
379
  type: zod.ZodEnum<{
380
+ instruction: "instruction";
303
381
  fact: "fact";
304
382
  preference: "preference";
305
383
  event: "event";
306
384
  entity: "entity";
307
- instruction: "instruction";
308
385
  }>;
309
386
  importance: zod.ZodNumber;
310
387
  objectId: zod.ZodOptional<zod.ZodString>;
@@ -628,22 +705,22 @@ declare const AiSendMessageDataSchema: z.ZodObject<{
628
705
  }, z.core.$strip>;
629
706
  /** 记忆类型 Schema。 */
630
707
  declare const AiMemoryTypeSchema: z.ZodEnum<{
708
+ instruction: "instruction";
631
709
  fact: "fact";
632
710
  preference: "preference";
633
711
  event: "event";
634
712
  entity: "entity";
635
- instruction: "instruction";
636
713
  }>;
637
714
  /** 记忆条目 Schema。 */
638
715
  declare const AiMemoryEntrySchema: z.ZodObject<{
639
716
  id: z.ZodString;
640
717
  content: z.ZodString;
641
718
  type: z.ZodEnum<{
719
+ instruction: "instruction";
642
720
  fact: "fact";
643
721
  preference: "preference";
644
722
  event: "event";
645
723
  entity: "entity";
646
- instruction: "instruction";
647
724
  }>;
648
725
  importance: z.ZodNumber;
649
726
  objectId: z.ZodOptional<z.ZodString>;
@@ -657,11 +734,11 @@ declare const AiMemoryRecallInputSchema: z.ZodObject<{
657
734
  query: z.ZodString;
658
735
  topK: z.ZodOptional<z.ZodNumber>;
659
736
  types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
737
+ instruction: "instruction";
660
738
  fact: "fact";
661
739
  preference: "preference";
662
740
  event: "event";
663
741
  entity: "entity";
664
- instruction: "instruction";
665
742
  }>>>;
666
743
  minImportance: z.ZodOptional<z.ZodNumber>;
667
744
  objectId: z.ZodOptional<z.ZodString>;
@@ -672,11 +749,11 @@ declare const AiMemoryRecallDataSchema: z.ZodObject<{
672
749
  id: z.ZodString;
673
750
  content: z.ZodString;
674
751
  type: z.ZodEnum<{
752
+ instruction: "instruction";
675
753
  fact: "fact";
676
754
  preference: "preference";
677
755
  event: "event";
678
756
  entity: "entity";
679
- instruction: "instruction";
680
757
  }>;
681
758
  importance: z.ZodNumber;
682
759
  objectId: z.ZodOptional<z.ZodString>;
@@ -689,11 +766,11 @@ declare const AiMemoryRecallDataSchema: z.ZodObject<{
689
766
  /** 记忆列表入参 Schema。 */
690
767
  declare const AiMemoryListInputSchema: z.ZodObject<{
691
768
  types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
769
+ instruction: "instruction";
692
770
  fact: "fact";
693
771
  preference: "preference";
694
772
  event: "event";
695
773
  entity: "entity";
696
- instruction: "instruction";
697
774
  }>>>;
698
775
  objectId: z.ZodOptional<z.ZodString>;
699
776
  offset: z.ZodOptional<z.ZodNumber>;
@@ -705,11 +782,11 @@ declare const AiMemoryListDataSchema: z.ZodObject<{
705
782
  id: z.ZodString;
706
783
  content: z.ZodString;
707
784
  type: z.ZodEnum<{
785
+ instruction: "instruction";
708
786
  fact: "fact";
709
787
  preference: "preference";
710
788
  event: "event";
711
789
  entity: "entity";
712
- instruction: "instruction";
713
790
  }>;
714
791
  importance: z.ZodNumber;
715
792
  objectId: z.ZodOptional<z.ZodString>;
@@ -952,11 +1029,11 @@ declare const AiMemoryRecallOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
952
1029
  id: z.ZodString;
953
1030
  content: z.ZodString;
954
1031
  type: z.ZodEnum<{
1032
+ instruction: "instruction";
955
1033
  fact: "fact";
956
1034
  preference: "preference";
957
1035
  event: "event";
958
1036
  entity: "entity";
959
- instruction: "instruction";
960
1037
  }>;
961
1038
  importance: z.ZodNumber;
962
1039
  objectId: z.ZodOptional<z.ZodString>;
@@ -986,11 +1063,11 @@ declare const AiMemoryListOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
986
1063
  id: z.ZodString;
987
1064
  content: z.ZodString;
988
1065
  type: z.ZodEnum<{
1066
+ instruction: "instruction";
989
1067
  fact: "fact";
990
1068
  preference: "preference";
991
1069
  event: "event";
992
1070
  entity: "entity";
993
- instruction: "instruction";
994
1071
  }>;
995
1072
  importance: z.ZodNumber;
996
1073
  objectId: z.ZodOptional<z.ZodString>;
@@ -1126,4 +1203,4 @@ type AiSessionListInput = z.infer<typeof AiSessionListInputSchema>;
1126
1203
  type AiChatHistoryInput = z.infer<typeof AiChatHistoryInputSchema>;
1127
1204
  type AiChatRecord = z.infer<typeof AiChatRecordSchema>;
1128
1205
 
1129
- export { AiAssistantMessageSchema, AiChatCompletionChoiceSchema, type AiChatCompletionData, AiChatCompletionDataSchema, type AiChatCompletionInput, AiChatCompletionInputSchema, type AiChatCompletionOutput, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, type AiChatHistoryInput, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, type AiChatRecord, AiChatRecordSchema, type AiContract, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, type AiMemoryListInput, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, type AiMemoryRecallInput, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, type AiSendMessageData, AiSendMessageDataSchema, type AiSendMessageInput, AiSendMessageInputSchema, type AiSendMessageOutput, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, type AiSessionListInput, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema, aiContract };
1206
+ export { AUDIO_WS_PATH, AiAssistantMessageSchema, AiChatCompletionChoiceSchema, type AiChatCompletionData, AiChatCompletionDataSchema, type AiChatCompletionInput, AiChatCompletionInputSchema, type AiChatCompletionOutput, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, type AiChatHistoryInput, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, type AiChatRecord, AiChatRecordSchema, type AiContract, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, type AiMemoryListInput, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, type AiMemoryRecallInput, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, type AiSendMessageData, AiSendMessageDataSchema, type AiSendMessageInput, AiSendMessageInputSchema, type AiSendMessageOutput, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, type AiSessionListInput, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema, AudioFormatSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema, aiContract };
package/dist/ai/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { AiAssistantMessageSchema, AiChatCompletionChoiceSchema, AiChatCompletionDataSchema, AiChatCompletionInputSchema, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, AiChatRecordSchema, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, AiSendMessageDataSchema, AiSendMessageInputSchema, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema, aiContract } from '../chunk-HPKGSAHN.js';
1
+ export { AUDIO_WS_PATH, AiAssistantMessageSchema, AiChatCompletionChoiceSchema, AiChatCompletionDataSchema, AiChatCompletionInputSchema, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, AiChatRecordSchema, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, AiSendMessageDataSchema, AiSendMessageInputSchema, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema, AudioFormatSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema, aiContract } from '../chunk-EZVXYX3T.js';
2
2
  import '../chunk-3GZQUVY3.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,40 @@
1
1
  import { haiResultSchema, route } from './chunk-3GZQUVY3.js';
2
2
  import { z } from 'zod';
3
3
 
4
+ var AUDIO_WS_PATH = "/ai/audio";
5
+ var AudioFormatSchema = z.enum(["pcm16", "wav", "mp3", "opus"]);
6
+ var MAX_CONTROL_FIELD_LEN = 512;
7
+ var MAX_HINT_LEN = 256;
8
+ var MAX_HINTS = 64;
9
+ var MAX_SEGMENT_ID_LEN = 128;
10
+ var MIN_SAMPLE_RATE = 8e3;
11
+ var MAX_SAMPLE_RATE = 192e3;
12
+ var AudioWsStartMessageSchema = z.object({
13
+ type: z.literal("start"),
14
+ operation: z.enum(["transcribe", "synthesize"]),
15
+ stream: z.boolean().optional(),
16
+ model: z.string().max(MAX_CONTROL_FIELD_LEN).optional(),
17
+ language: z.string().max(MAX_CONTROL_FIELD_LEN).optional(),
18
+ contextHints: z.array(z.string().max(MAX_HINT_LEN)).max(MAX_HINTS).optional(),
19
+ voice: z.string().max(MAX_CONTROL_FIELD_LEN).optional(),
20
+ instruction: z.string().max(MAX_CONTROL_FIELD_LEN).optional(),
21
+ format: AudioFormatSchema.optional(),
22
+ sampleRate: z.number().int().min(MIN_SAMPLE_RATE).max(MAX_SAMPLE_RATE).optional(),
23
+ channels: z.union([z.literal(1), z.literal(2)]).optional()
24
+ });
25
+ var AudioWsTextMessageSchema = z.object({
26
+ type: z.literal("text"),
27
+ segmentId: z.string().min(1).max(MAX_SEGMENT_ID_LEN),
28
+ text: z.string()
29
+ });
30
+ var AudioWsDoneMessageSchema = z.object({
31
+ type: z.literal("done")
32
+ });
33
+ var AudioWsClientMessageSchema = z.discriminatedUnion("type", [
34
+ AudioWsStartMessageSchema,
35
+ AudioWsTextMessageSchema,
36
+ AudioWsDoneMessageSchema
37
+ ]);
4
38
  var AiMessageRoleSchema = z.enum(["system", "user", "assistant", "tool"]);
5
39
  var AiTextContentSchema = z.object({
6
40
  type: z.literal("text"),
@@ -191,6 +225,6 @@ var aiContract = {
191
225
  }
192
226
  };
193
227
 
194
- export { AiAssistantMessageSchema, AiChatCompletionChoiceSchema, AiChatCompletionDataSchema, AiChatCompletionInputSchema, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, AiChatRecordSchema, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, AiSendMessageDataSchema, AiSendMessageInputSchema, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema, aiContract };
195
- //# sourceMappingURL=chunk-HPKGSAHN.js.map
196
- //# sourceMappingURL=chunk-HPKGSAHN.js.map
228
+ export { AUDIO_WS_PATH, AiAssistantMessageSchema, AiChatCompletionChoiceSchema, AiChatCompletionDataSchema, AiChatCompletionInputSchema, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, AiChatRecordSchema, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, AiSendMessageDataSchema, AiSendMessageInputSchema, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema, AudioFormatSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema, aiContract };
229
+ //# sourceMappingURL=chunk-EZVXYX3T.js.map
230
+ //# sourceMappingURL=chunk-EZVXYX3T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ai/ai-audio-ws-schemas.ts","../src/ai/ai-schemas.ts","../src/ai/ai-contract.ts"],"names":["z"],"mappings":"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","file":"chunk-EZVXYX3T.js","sourcesContent":["/**\n * Audio WebSocket 传输协议的运行时 Schema。\n *\n * 该协议同时被 AI 客户端与 Serv 服务端消费,因此由 api-contract 维护单一事实源,\n * 避免 Serv 根入口为了校验可选 Audio 消息而静态加载整个 `@h-ai/ai` 包。\n */\nimport { z } from 'zod'\n\n/** 统一语音入口的默认路径(相对 API 前缀)。 */\nexport const AUDIO_WS_PATH = '/ai/audio'\n\n/** 合法音频格式。 */\nexport const AudioFormatSchema = z.enum(['pcm16', 'wav', 'mp3', 'opus'])\n\nconst MAX_CONTROL_FIELD_LEN = 512\nconst MAX_HINT_LEN = 256\nconst MAX_HINTS = 64\nconst MAX_SEGMENT_ID_LEN = 128\nconst MIN_SAMPLE_RATE = 8000\nconst MAX_SAMPLE_RATE = 192000\n\n/** 会话起始帧 Schema。 */\nexport const AudioWsStartMessageSchema = z.object({\n type: z.literal('start'),\n operation: z.enum(['transcribe', 'synthesize']),\n stream: z.boolean().optional(),\n model: z.string().max(MAX_CONTROL_FIELD_LEN).optional(),\n language: z.string().max(MAX_CONTROL_FIELD_LEN).optional(),\n contextHints: z.array(z.string().max(MAX_HINT_LEN)).max(MAX_HINTS).optional(),\n voice: z.string().max(MAX_CONTROL_FIELD_LEN).optional(),\n instruction: z.string().max(MAX_CONTROL_FIELD_LEN).optional(),\n format: AudioFormatSchema.optional(),\n sampleRate: z.number().int().min(MIN_SAMPLE_RATE).max(MAX_SAMPLE_RATE).optional(),\n channels: z.union([z.literal(1), z.literal(2)]).optional(),\n})\n\n/** 文本输入帧 Schema。 */\nexport const AudioWsTextMessageSchema = z.object({\n type: z.literal('text'),\n segmentId: z.string().min(1).max(MAX_SEGMENT_ID_LEN),\n text: z.string(),\n})\n\n/** 输入结束帧 Schema。 */\nexport const AudioWsDoneMessageSchema = z.object({\n type: z.literal('done'),\n})\n\n/** 客户端 JSON 控制消息 Schema。 */\nexport const AudioWsClientMessageSchema = z.discriminatedUnion('type', [\n AudioWsStartMessageSchema,\n AudioWsTextMessageSchema,\n AudioWsDoneMessageSchema,\n])\n","/**\n * @h-ai/api-contract — AI 领域 Schema\n *\n * 包含聊天补全、消息占位、记忆召回与历史会话相关的 input/output Zod Schema。\n * 聊天补全结构对齐 OpenAI Chat Completions API,支持 tool calling。\n * 所有 Output Schema 均用 `haiResultSchema()` 封装。\n * @module ai-schemas\n */\n\nimport { z } from 'zod'\nimport { haiResultSchema } from '../common/result-schemas.js'\n\n/** 消息角色 Schema。 */\nexport const AiMessageRoleSchema = z.enum(['system', 'user', 'assistant', 'tool'])\n\n/** 文本内容 Schema。 */\nexport const AiTextContentSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n})\n\n/** 图片内容 Schema。 */\nexport const AiImageContentSchema = z.object({\n type: z.literal('image_url'),\n image_url: z.object({\n url: z.string(),\n detail: z.enum(['auto', 'low', 'high']).optional(),\n }),\n})\n\n/** 消息内容 Schema。 */\nexport const AiMessageContentSchema = z.union([\n z.string(),\n z.array(z.union([AiTextContentSchema, AiImageContentSchema])),\n])\n\n/** 工具调用 Schema。 */\nexport const AiToolCallSchema = z.object({\n id: z.string(),\n type: z.literal('function'),\n function: z.object({\n name: z.string(),\n arguments: z.string(),\n }),\n})\n\n/** 聊天消息 Schema。 */\nexport const AiChatMessageSchema = z.object({\n role: AiMessageRoleSchema,\n content: AiMessageContentSchema.optional(),\n name: z.string().optional(),\n tool_calls: z.array(AiToolCallSchema).optional(),\n tool_call_id: z.string().optional(),\n})\n\n/** 工具参数 Schema。 */\nexport const AiToolParameterSchema = z.object({\n type: z.string(),\n description: z.string().optional(),\n enum: z.array(z.string()).optional(),\n})\n\n/** 工具定义 Schema。 */\nexport const AiToolDefinitionSchema = z.object({\n type: z.literal('function'),\n function: z.object({\n name: z.string(),\n description: z.string().optional(),\n parameters: z.object({\n type: z.literal('object'),\n properties: z.record(z.string(), AiToolParameterSchema).optional(),\n required: z.array(z.string()).optional(),\n }).optional(),\n }),\n})\n\n/** 聊天完成入参 Schema。 */\nexport const AiChatCompletionInputSchema = z.object({\n model: z.string().optional(),\n messages: z.array(AiChatMessageSchema).min(1),\n temperature: z.number().min(0).max(2).optional(),\n top_p: z.number().min(0).max(1).optional(),\n max_tokens: z.number().int().min(1).optional(),\n stream: z.boolean().optional(),\n tools: z.array(AiToolDefinitionSchema).optional(),\n tool_choice: z.union([\n z.literal('auto'),\n z.literal('none'),\n z.object({ type: z.literal('function'), function: z.object({ name: z.string() }) }),\n ]).optional(),\n})\n\n/** Token 使用统计 Schema。 */\nexport const AiTokenUsageSchema = z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n})\n\n/** 助手消息 Schema。 */\nexport const AiAssistantMessageSchema = z.object({\n role: z.literal('assistant'),\n content: z.string().nullable().optional(),\n tool_calls: z.array(AiToolCallSchema).optional(),\n})\n\n/** 聊天完成选择 Schema。 */\nexport const AiChatCompletionChoiceSchema = z.object({\n index: z.number(),\n message: AiAssistantMessageSchema,\n finish_reason: z.enum(['stop', 'length', 'tool_calls', 'content_filter']),\n})\n\n/** 聊天完成业务数据 Schema。 */\nexport const AiChatCompletionDataSchema = z.object({\n id: z.string(),\n object: z.literal('chat.completion'),\n created: z.number(),\n model: z.string(),\n choices: z.array(AiChatCompletionChoiceSchema),\n usage: AiTokenUsageSchema,\n})\n\n/** 简单消息入参 Schema。 */\nexport const AiSendMessageInputSchema = z.object({\n message: z.string().min(1),\n systemPrompt: z.string().optional(),\n model: z.string().optional(),\n temperature: z.number().min(0).max(2).optional(),\n})\n\n/** 简单消息业务数据 Schema。 */\nexport const AiSendMessageDataSchema = z.object({\n content: z.string(),\n model: z.string(),\n usage: AiTokenUsageSchema.optional(),\n})\n\n/** 记忆类型 Schema。 */\nexport const AiMemoryTypeSchema = z.enum(['fact', 'preference', 'event', 'entity', 'instruction'])\n\n/** 记忆条目 Schema。 */\nexport const AiMemoryEntrySchema = z.object({\n id: z.string(),\n content: z.string(),\n type: AiMemoryTypeSchema,\n importance: z.number(),\n objectId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n createdAt: z.number(),\n lastAccessedAt: z.number(),\n accessCount: z.number(),\n})\n\n/** 记忆检索入参 Schema。 */\nexport const AiMemoryRecallInputSchema = z.object({\n query: z.string().min(1),\n topK: z.number().int().min(1).optional(),\n types: z.array(AiMemoryTypeSchema).optional(),\n minImportance: z.number().min(0).max(1).optional(),\n objectId: z.string().optional(),\n})\n\n/** 记忆检索业务数据 Schema。 */\nexport const AiMemoryRecallDataSchema = z.object({\n items: z.array(AiMemoryEntrySchema),\n})\n\n/** 记忆列表入参 Schema。 */\nexport const AiMemoryListInputSchema = z.object({\n types: z.array(AiMemoryTypeSchema).optional(),\n objectId: z.string().optional(),\n offset: z.number().int().min(0).optional(),\n limit: z.number().int().min(1).max(100).optional(),\n})\n\n/** 记忆列表业务数据 Schema。 */\nexport const AiMemoryListDataSchema = z.object({\n items: z.array(AiMemoryEntrySchema),\n total: z.number(),\n})\n\n/** 会话信息 Schema。 */\nexport const AiSessionInfoSchema = z.object({\n objectId: z.string(),\n sessionId: z.string(),\n createdAt: z.number(),\n updatedAt: z.number(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n/** 会话列表入参 Schema。 */\nexport const AiSessionListInputSchema = z.object({\n objectId: z.string().min(1),\n})\n\n/** 会话列表业务数据 Schema。 */\nexport const AiSessionListDataSchema = z.object({\n items: z.array(AiSessionInfoSchema),\n})\n\n/** 对话记录 Schema。 */\nexport const AiChatRecordSchema = z.object({\n id: z.string(),\n objectId: z.string(),\n sessionId: z.string(),\n request: z.object({\n model: z.string(),\n messages: z.array(AiChatMessageSchema),\n }),\n response: z.object({\n content: z.string(),\n toolCalls: z.array(AiToolCallSchema).optional(),\n finishReason: z.string(),\n usage: AiTokenUsageSchema,\n }),\n createdAt: z.number(),\n duration: z.number(),\n})\n\n/** 对话历史入参 Schema。 */\nexport const AiChatHistoryInputSchema = z.object({\n objectId: z.string().min(1),\n sessionId: z.string().min(1),\n limit: z.number().int().min(1).max(200).optional(),\n order: z.enum(['asc', 'desc']).optional(),\n})\n\n/** 对话历史业务数据 Schema。 */\nexport const AiChatHistoryDataSchema = z.object({\n items: z.array(AiChatRecordSchema),\n})\n\nexport const AiChatCompletionOutputSchema = haiResultSchema(AiChatCompletionDataSchema)\nexport const AiSendMessageOutputSchema = haiResultSchema(AiSendMessageDataSchema)\nexport const AiMemoryRecallOutputSchema = haiResultSchema(AiMemoryRecallDataSchema)\nexport const AiMemoryListOutputSchema = haiResultSchema(AiMemoryListDataSchema)\nexport const AiSessionListOutputSchema = haiResultSchema(AiSessionListDataSchema)\nexport const AiChatHistoryOutputSchema = haiResultSchema(AiChatHistoryDataSchema)\n\nexport type AiChatCompletionInput = z.infer<typeof AiChatCompletionInputSchema>\nexport type AiChatCompletionData = z.infer<typeof AiChatCompletionDataSchema>\nexport type AiChatCompletionOutput = z.infer<typeof AiChatCompletionOutputSchema>\nexport type AiSendMessageInput = z.infer<typeof AiSendMessageInputSchema>\nexport type AiSendMessageData = z.infer<typeof AiSendMessageDataSchema>\nexport type AiSendMessageOutput = z.infer<typeof AiSendMessageOutputSchema>\nexport type AiMemoryRecallInput = z.infer<typeof AiMemoryRecallInputSchema>\nexport type AiMemoryListInput = z.infer<typeof AiMemoryListInputSchema>\nexport type AiSessionListInput = z.infer<typeof AiSessionListInputSchema>\nexport type AiChatHistoryInput = z.infer<typeof AiChatHistoryInputSchema>\nexport type AiChatRecord = z.infer<typeof AiChatRecordSchema>\n","/**\n * @h-ai/api-contract — AI 领域 contract\n *\n * 定义 AI 功能相关 API 的接口边界:聊天补全、记忆管理与会话管理。\n * 聊天补全使用 OpenAI 兼容结构(`messages` 数组 + `choices` 数组)。\n * 所有接口均需 Bearer Token 认证(由 `@h-ai/serv` 的 feature 层强制)。\n * @module ai-contract\n */\n\nimport { route } from '../common/route.js'\nimport {\n AiChatCompletionInputSchema,\n AiChatCompletionOutputSchema,\n AiChatHistoryInputSchema,\n AiChatHistoryOutputSchema,\n AiMemoryListInputSchema,\n AiMemoryListOutputSchema,\n AiMemoryRecallInputSchema,\n AiMemoryRecallOutputSchema,\n AiSendMessageInputSchema,\n AiSendMessageOutputSchema,\n AiSessionListInputSchema,\n AiSessionListOutputSchema,\n} from './ai-schemas.js'\n\n/** AI 领域 oRPC contract。 */\nexport const aiContract = {\n chats: {\n createCompletion: route({ method: 'POST', path: '/ai/chats/completions', operationId: 'ai.chats.createCompletion', summary: 'Create chat completion', tags: ['ai', 'chats'] })\n .input(AiChatCompletionInputSchema)\n .output(AiChatCompletionOutputSchema),\n sendMessage: route({ method: 'POST', path: '/ai/chats/messages', operationId: 'ai.chats.sendMessage', summary: 'Send a single chat message', tags: ['ai', 'chats'] })\n .input(AiSendMessageInputSchema)\n .output(AiSendMessageOutputSchema),\n listHistory: route({ method: 'POST', path: '/ai/chats/history', operationId: 'ai.chats.listHistory', summary: 'List chat history', tags: ['ai', 'chats'] })\n .input(AiChatHistoryInputSchema)\n .output(AiChatHistoryOutputSchema),\n },\n memories: {\n recall: route({ method: 'POST', path: '/ai/memories/recall', operationId: 'ai.memories.recall', summary: 'Recall relevant memories', tags: ['ai', 'memories'] })\n .input(AiMemoryRecallInputSchema)\n .output(AiMemoryRecallOutputSchema),\n list: route({ method: 'POST', path: '/ai/memories/list', operationId: 'ai.memories.list', summary: 'List memories', tags: ['ai', 'memories'] })\n .input(AiMemoryListInputSchema)\n .output(AiMemoryListOutputSchema),\n },\n sessions: {\n list: route({ method: 'POST', path: '/ai/sessions/list', operationId: 'ai.sessions.list', summary: 'List sessions', tags: ['ai', 'sessions'] })\n .input(AiSessionListInputSchema)\n .output(AiSessionListOutputSchema),\n },\n}\n\nexport type AiContract = typeof aiContract\n"]}
@@ -46,6 +46,10 @@ var IamAuthResultSchema = z.object({
46
46
  permissions: z.array(z.string()).default([]),
47
47
  agreements: IamAgreementDisplaySchema.optional()
48
48
  });
49
+ var IamCurrentUserSchema = IamUserSchema.extend({
50
+ roles: z.array(z.string()),
51
+ permissions: z.array(z.string())
52
+ });
49
53
  var IamLoginInputSchema = z.object({
50
54
  identifier: z.string().min(1),
51
55
  password: z.string().min(1),
@@ -168,6 +172,7 @@ var IamCreatePermissionInputSchema = z.object({
168
172
  type: IamPermissionTypeSchema.optional()
169
173
  });
170
174
  var IamAuthResultOutputSchema = haiResultSchema(IamAuthResultSchema);
175
+ var IamCurrentUserOutputSchema = haiResultSchema(IamCurrentUserSchema);
171
176
  var IamRefreshTokenOutputSchema = haiResultSchema(IamRefreshTokenDataSchema);
172
177
  var IamSendOtpOutputSchema = haiResultSchema(IamSendOtpDataSchema);
173
178
  var IamUserOutputSchema = haiResultSchema(IamUserSchema);
@@ -194,7 +199,7 @@ var iamContract = {
194
199
  login: route({ method: "POST", path: IAM_AUTH_ROUTES.login, operationId: "iam.auth.login", summary: "Password login", tags: ["iam", "auth"] }).input(IamLoginInputSchema).output(IamAuthResultOutputSchema),
195
200
  loginWithOtp: route({ method: "POST", path: IAM_AUTH_ROUTES.loginWithOtp, operationId: "iam.auth.loginWithOtp", summary: "OTP login", tags: ["iam", "auth"] }).input(IamOtpLoginInputSchema).output(IamAuthResultOutputSchema),
196
201
  logout: route({ method: "POST", path: IAM_AUTH_ROUTES.logout, operationId: "iam.auth.logout", summary: "Logout", tags: ["iam", "auth"] }).input(IamLogoutInputSchema).output(IamVoidOutputSchema),
197
- currentUser: route({ method: "GET", path: "/auth/me", operationId: "iam.auth.currentUser", summary: "Get current user", tags: ["iam", "auth"] }).output(IamUserOutputSchema),
202
+ currentUser: route({ method: "GET", path: "/auth/me", operationId: "iam.auth.currentUser", summary: "Get current user and access scope", tags: ["iam", "auth"] }).output(IamCurrentUserOutputSchema),
198
203
  refresh: route({ method: "POST", path: IAM_AUTH_ROUTES.refresh, operationId: "iam.auth.refresh", summary: "Refresh access token", tags: ["iam", "auth"] }).input(IamRefreshTokenInputSchema).output(IamRefreshTokenOutputSchema),
199
204
  sendOtp: route({ method: "POST", path: "/auth/otp/send", operationId: "iam.auth.sendOtp", summary: "Send OTP", tags: ["iam", "auth"] }).input(IamSendOtpInputSchema).output(IamSendOtpOutputSchema),
200
205
  register: route({ method: "POST", path: IAM_AUTH_ROUTES.register, operationId: "iam.auth.register", summary: "Register and login", tags: ["iam", "auth"] }).input(IamRegisterInputSchema).output(IamAuthResultOutputSchema),
@@ -224,6 +229,6 @@ var iamContract = {
224
229
  }
225
230
  };
226
231
 
227
- export { IAM_AUTH_ROUTES, IamAdminCreateUserInputSchema, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultOutputSchema, IamAuthResultSchema, IamChangePasswordInputSchema, IamCreatePermissionInputSchema, IamCreateRoleInputSchema, IamListPermissionsInputSchema, IamListUsersInputSchema, IamLoginInputSchema, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, IamRefreshTokenInputSchema, IamRefreshTokenOutputSchema, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, IamUpdateCurrentUserInputSchema, IamUpdateRoleInputSchema, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema, PaginationQuerySchema, iamContract, paginatedSchema };
228
- //# sourceMappingURL=chunk-ZK43WHUQ.js.map
229
- //# sourceMappingURL=chunk-ZK43WHUQ.js.map
232
+ export { IAM_AUTH_ROUTES, IamAdminCreateUserInputSchema, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultOutputSchema, IamAuthResultSchema, IamChangePasswordInputSchema, IamCreatePermissionInputSchema, IamCreateRoleInputSchema, IamCurrentUserOutputSchema, IamCurrentUserSchema, IamListPermissionsInputSchema, IamListUsersInputSchema, IamLoginInputSchema, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, IamRefreshTokenInputSchema, IamRefreshTokenOutputSchema, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, IamUpdateCurrentUserInputSchema, IamUpdateRoleInputSchema, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema, PaginationQuerySchema, iamContract, paginatedSchema };
233
+ //# sourceMappingURL=chunk-OUYWNVEX.js.map
234
+ //# sourceMappingURL=chunk-OUYWNVEX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/pagination-schemas.ts","../src/iam/iam-schemas.ts","../src/iam/iam-contract.ts"],"names":["z"],"mappings":";;;AAuBO,IAAM,qBAAA,GAAwB,EAAE,MAAA,CAAO;AAAA,EAC5C,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,MAAA,EAAO,CAAE,KAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,EAC9C,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,EAAE,QAAA;AACpD,CAAC;AAoBM,SAAS,gBAAqC,UAAA,EAAe;AAClE,EAAA,OAAO,EAAE,MAAA,CAAO;AAAA,IACd,KAAA,EAAO,CAAA,CAAE,KAAA,CAAM,UAAU,CAAA;AAAA,IACzB,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,IAChB,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,IACf,QAAA,EAAU,EAAE,MAAA;AAAO,GACpB,CAAA;AACH;ACxCO,IAAM,aAAA,GAAgBA,EAAE,MAAA,CAAO;AAAA,EACpC,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,aAAA,EAAeA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACpC,aAAA,EAAeA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EACpC,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAO,IAAA,EAAK;AAAA,EACzB,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAO,IAAA,EAAK;AAAA,EACzB,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAGM,IAAM,kBAAA,GAAqBA,EAAE,MAAA,CAAO;AAAA,EACzC,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,SAAA,EAAWA,CAAAA,CAAE,OAAA,CAAQ,QAAQ;AAC/B,CAAC;AAGM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACtC,gBAAA,EAAkBA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACtC,cAAA,EAAgBA,EAAE,OAAA,EAAQ;AAAA,EAC1B,WAAA,EAAaA,EAAE,OAAA;AACjB,CAAC;AAGM,IAAM,mBAAA,GAAsBA,EAAE,MAAA,CAAO;AAAA,EAC1C,IAAA,EAAM,aAAA;AAAA,EACN,MAAA,EAAQ,kBAAA;AAAA,EACR,KAAA,EAAOA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EACrC,WAAA,EAAaA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC3C,UAAA,EAAY,0BAA0B,QAAA;AACxC,CAAC;AAGM,IAAM,oBAAA,GAAuB,cAAc,MAAA,CAAO;AAAA,EACvD,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA;AAAA,EACzB,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ;AACjC,CAAC;AAGM,IAAM,mBAAA,GAAsBA,EAAE,MAAA,CAAO;AAAA,EAC1C,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC5B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC1B,UAAA,EAAYA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAC1B,CAAC;AAGM,IAAM,sBAAA,GAAyBA,EAAE,MAAA,CAAO;AAAA,EAC7C,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC5B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AACxB,CAAC;AAGM,IAAM,oBAAA,GAAuBA,EAAE,MAAA,CAAO;AAAA,EAC3C,aAAaA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA;AACjC,CAAC;AAGM,IAAM,qBAAA,GAAwBA,EAAE,MAAA,CAAO;AAAA,EAC5C,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAC9B,CAAC;AAGM,IAAM,oBAAA,GAAuBA,EAAE,MAAA,CAAO;AAAA,EAC3C,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAO,IAAA;AACtB,CAAC;AAGM,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EACjD,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAChC,CAAC;AAGM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,MAAA,EAAQ;AACV,CAAC;AAGM,IAAM,sBAAA,GAAyBA,EAAE,MAAA,CAAO;AAAA,EAC7C,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC1B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC1B,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA,EAAS;AAAA,EACnC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAGM,IAAM,4BAAA,GAA+BA,EAAE,MAAA,CAAO;AAAA,EACnD,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC7B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAC/B,CAAC;AAGM,IAAM,+BAAA,GAAkCA,EAAE,MAAA,CAAO;AAAA,EACtD,UAAUA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,EACrC,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA,EAAS;AAAA,EACnC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAGM,IAAM,uBAAA,GAA0B,sBAAsB,MAAA,CAAO;AAAA,EAClE,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAE5B,SAASA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,OAAO,CAAC,CAAA,CAAE,QAAA,EAAS,CAAE,UAAU,CAAA,CAAA,KAAK,CAAA,KAAM,MAAA,GAAY,MAAA,GAAY,MAAM,MAAM;AACzG,CAAC;AAGM,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EACpD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC1B,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA,EAAS;AAAA,EACnC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EAC1B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,EACrD,SAASA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EACtC,OAAA,EAASA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACvB,CAAC;AAGM,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EACpD,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACpB,UAAUA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,EACrC,OAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,KAAA,GAAQ,QAAA,EAAS;AAAA,EACnC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,EACrD,OAAA,EAASA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC9B,SAASA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAC/B,CAAC;AAGM,IAAM,oBAAA,GAAuBA,EAAE,MAAA,CAAO;AAAA,EAC3C,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AACtB,CAAC;AAGM,IAAM,gCAAA,GAAmCA,EAAE,MAAA,CAAO;AAAA,EACvD,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACpB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC;AAC/B,CAAC;AAGM,IAAM,aAAA,GAAgBA,EAAE,MAAA,CAAO;AAAA,EACpC,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAO,IAAA,EAAK;AAAA,EACzB,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAO,IAAA;AACtB,CAAC;AAGM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACtB,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACtB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACxB,CAAC;AAGM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACpB,MAAMA,CAAAA,CAAE,MAAA,GAAS,GAAA,CAAI,CAAC,EAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC1B,CAAC;AAGM,IAAM,0BAA0BA,CAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,KAAA,EAAO,QAAQ,CAAC;AAGhE,IAAM,mBAAA,GAAsBA,EAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,IAAA,EAAM,wBAAwB,QAAA,EAAS;AAAA,EACvC,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAO,IAAA,EAAK;AAAA,EACzB,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAO,IAAA;AACtB,CAAC;AAGM,IAAM,6BAAA,GAAgC,sBAAsB,MAAA,CAAO;AAAA,EACxE,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,IAAA,EAAM,wBAAwB,QAAA;AAChC,CAAC;AAGM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACtB,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA;AAAA,EACtB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,IAAA,EAAM,wBAAwB,QAAA;AAChC,CAAC;AAEM,IAAM,yBAAA,GAA4B,gBAAgB,mBAAmB;AACrE,IAAM,0BAAA,GAA6B,gBAAgB,oBAAoB;AACvE,IAAM,2BAAA,GAA8B,gBAAgB,yBAAyB;AAC7E,IAAM,sBAAA,GAAyB,gBAAgB,oBAAoB;AACnE,IAAM,mBAAA,GAAsB,gBAAgB,aAAa;AACzD,IAAM,2BAAA,GAA8B,eAAA,CAAgB,aAAA,CAAc,QAAA,EAAU;AAC5E,IAAM,wBAAA,GAA2B,eAAA,CAAgB,eAAA,CAAgB,aAAa,CAAC;AAC/E,IAAM,mBAAA,GAAsB,gBAAgB,aAAa;AACzD,IAAM,2BAAA,GAA8B,eAAA,CAAgB,aAAA,CAAc,QAAA,EAAU;AAC5E,IAAM,wBAAA,GAA2B,eAAA,CAAgB,eAAA,CAAgB,aAAa,CAAC;AAC/E,IAAM,yBAAA,GAA4B,gBAAgB,mBAAmB;AACrE,IAAM,iCAAA,GAAoC,eAAA,CAAgB,mBAAA,CAAoB,QAAA,EAAU;AACxF,IAAM,8BAAA,GAAiC,eAAA,CAAgB,eAAA,CAAgB,mBAAmB,CAAC;AAC3F,IAAM,mBAAA,GAAsB,eAAA,CAAgBA,CAAAA,CAAE,IAAA,EAAM;;;ACzLpD,IAAM,eAAA,GAAkB;AAAA,EAC7B,KAAA,EAAO,aAAA;AAAA,EACP,YAAA,EAAc,iBAAA;AAAA,EACd,QAAA,EAAU,gBAAA;AAAA,EACV,MAAA,EAAQ,cAAA;AAAA,EACR,OAAA,EAAS;AACX;AAGO,IAAM,WAAA,GAAc;AAAA,EACzB,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,eAAA,CAAgB,KAAA,EAAO,WAAA,EAAa,gBAAA,EAAkB,OAAA,EAAS,kBAAkB,IAAA,EAAM,CAAC,KAAA,EAAO,MAAM,CAAA,EAAG,EAC1I,KAAA,CAAM,mBAAmB,CAAA,CACzB,MAAA,CAAO,yBAAyB,CAAA;AAAA,IACnC,YAAA,EAAc,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,eAAA,CAAgB,YAAA,EAAc,WAAA,EAAa,uBAAA,EAAyB,OAAA,EAAS,aAAa,IAAA,EAAM,CAAC,KAAA,EAAO,MAAM,CAAA,EAAG,EAC1J,KAAA,CAAM,sBAAsB,CAAA,CAC5B,MAAA,CAAO,yBAAyB,CAAA;AAAA,IACnC,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,eAAA,CAAgB,MAAA,EAAQ,WAAA,EAAa,iBAAA,EAAmB,OAAA,EAAS,UAAU,IAAA,EAAM,CAAC,KAAA,EAAO,MAAM,CAAA,EAAG,EACrI,KAAA,CAAM,oBAAoB,CAAA,CAC1B,MAAA,CAAO,mBAAmB,CAAA;AAAA,IAC7B,aAAa,KAAA,CAAM,EAAE,QAAQ,KAAA,EAAO,IAAA,EAAM,YAAY,WAAA,EAAa,sBAAA,EAAwB,SAAS,mCAAA,EAAqC,IAAA,EAAM,CAAC,KAAA,EAAO,MAAM,GAAG,CAAA,CAC7J,OAAO,0BAA0B,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,eAAA,CAAgB,OAAA,EAAS,WAAA,EAAa,kBAAA,EAAoB,OAAA,EAAS,wBAAwB,IAAA,EAAM,CAAC,KAAA,EAAO,MAAM,CAAA,EAAG,EACtJ,KAAA,CAAM,0BAA0B,CAAA,CAChC,MAAA,CAAO,2BAA2B,CAAA;AAAA,IACrC,OAAA,EAAS,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,gBAAA,EAAkB,WAAA,EAAa,kBAAA,EAAoB,OAAA,EAAS,UAAA,EAAY,MAAM,CAAC,KAAA,EAAO,MAAM,CAAA,EAAG,EACnI,KAAA,CAAM,qBAAqB,CAAA,CAC3B,MAAA,CAAO,sBAAsB,CAAA;AAAA,IAChC,QAAA,EAAU,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,eAAA,CAAgB,QAAA,EAAU,WAAA,EAAa,mBAAA,EAAqB,OAAA,EAAS,sBAAsB,IAAA,EAAM,CAAC,KAAA,EAAO,MAAM,CAAA,EAAG,EACvJ,KAAA,CAAM,sBAAsB,CAAA,CAC5B,MAAA,CAAO,yBAAyB,CAAA;AAAA,IACnC,cAAA,EAAgB,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,uBAAA,EAAyB,WAAA,EAAa,yBAAA,EAA2B,OAAA,EAAS,8BAAA,EAAgC,MAAM,CAAC,KAAA,EAAO,MAAM,CAAA,EAAG,EAC5K,KAAA,CAAM,4BAA4B,CAAA,CAClC,MAAA,CAAO,mBAAmB,CAAA;AAAA,IAC7B,iBAAA,EAAmB,MAAM,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,UAAA,EAAY,WAAA,EAAa,4BAAA,EAA8B,OAAA,EAAS,qBAAA,EAAuB,MAAM,CAAC,KAAA,EAAO,MAAM,CAAA,EAAG,EAC3J,KAAA,CAAM,+BAA+B,CAAA,CACrC,MAAA,CAAO,mBAAmB;AAAA,GAC/B;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,MAAM,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,YAAA,EAAc,WAAA,EAAa,gBAAA,EAAkB,OAAA,EAAS,YAAA,EAAc,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EAC5H,KAAA,CAAM,uBAAuB,CAAA,CAC7B,MAAA,CAAO,wBAAwB,CAAA;AAAA,IAClC,GAAA,EAAK,MAAM,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,iBAAA,EAAmB,WAAA,EAAa,eAAA,EAAiB,OAAA,EAAS,UAAA,EAAY,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EAC7H,KAAA,CAAM,oBAAoB,CAAA,CAC1B,MAAA,CAAO,2BAA2B,CAAA;AAAA,IACrC,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,YAAA,EAAc,WAAA,EAAa,kBAAA,EAAoB,OAAA,EAAS,aAAA,EAAe,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EAClI,KAAA,CAAM,6BAA6B,CAAA,CACnC,MAAA,CAAO,mBAAmB,CAAA;AAAA,IAC7B,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,iBAAA,EAAmB,WAAA,EAAa,kBAAA,EAAoB,OAAA,EAAS,aAAA,EAAe,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EACtI,KAAA,CAAM,6BAA6B,CAAA,CACnC,MAAA,CAAO,mBAAmB,CAAA;AAAA,IAC7B,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,UAAU,IAAA,EAAM,iBAAA,EAAmB,WAAA,EAAa,kBAAA,EAAoB,OAAA,EAAS,aAAA,EAAe,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EACzI,KAAA,CAAM,oBAAoB,CAAA,CAC1B,MAAA,CAAO,mBAAmB,CAAA;AAAA,IAC7B,aAAA,EAAe,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,gCAAA,EAAkC,WAAA,EAAa,yBAAA,EAA2B,OAAA,EAAS,qBAAA,EAAuB,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EAC5K,KAAA,CAAM,gCAAgC,CAAA,CACtC,MAAA,CAAO,mBAAmB;AAAA,GAC/B;AAAA,EACA,KAAA,EAAO;AAAA,IACL,MAAM,KAAA,CAAM,EAAE,QAAQ,KAAA,EAAO,IAAA,EAAM,cAAc,WAAA,EAAa,gBAAA,EAAkB,SAAS,YAAA,EAAc,IAAA,EAAM,CAAC,KAAA,EAAO,OAAO,GAAG,CAAA,CAC5H,OAAO,wBAAwB,CAAA;AAAA,IAClC,GAAA,EAAK,MAAM,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,iBAAA,EAAmB,WAAA,EAAa,eAAA,EAAiB,OAAA,EAAS,UAAA,EAAY,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EAC7H,KAAA,CAAM,oBAAoB,CAAA,CAC1B,MAAA,CAAO,2BAA2B,CAAA;AAAA,IACrC,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,YAAA,EAAc,WAAA,EAAa,kBAAA,EAAoB,OAAA,EAAS,aAAA,EAAe,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EAClI,KAAA,CAAM,wBAAwB,CAAA,CAC9B,MAAA,CAAO,mBAAmB,CAAA;AAAA,IAC7B,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,iBAAA,EAAmB,WAAA,EAAa,kBAAA,EAAoB,OAAA,EAAS,aAAA,EAAe,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EACtI,KAAA,CAAM,wBAAwB,CAAA,CAC9B,MAAA,CAAO,mBAAmB,CAAA;AAAA,IAC7B,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,UAAU,IAAA,EAAM,iBAAA,EAAmB,WAAA,EAAa,kBAAA,EAAoB,OAAA,EAAS,aAAA,EAAe,MAAM,CAAC,KAAA,EAAO,OAAO,CAAA,EAAG,EACzI,KAAA,CAAM,oBAAoB,CAAA,CAC1B,MAAA,CAAO,mBAAmB;AAAA,GAC/B;AAAA,EACA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,MAAM,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,kBAAA,EAAoB,WAAA,EAAa,sBAAA,EAAwB,OAAA,EAAS,kBAAA,EAAoB,MAAM,CAAC,KAAA,EAAO,aAAa,CAAA,EAAG,EACpJ,KAAA,CAAM,6BAA6B,CAAA,CACnC,MAAA,CAAO,8BAA8B,CAAA;AAAA,IACxC,GAAA,EAAK,MAAM,EAAE,MAAA,EAAQ,OAAO,IAAA,EAAM,uBAAA,EAAyB,WAAA,EAAa,qBAAA,EAAuB,OAAA,EAAS,gBAAA,EAAkB,MAAM,CAAC,KAAA,EAAO,aAAa,CAAA,EAAG,EACrJ,KAAA,CAAM,oBAAoB,CAAA,CAC1B,MAAA,CAAO,iCAAiC,CAAA;AAAA,IAC3C,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,QAAQ,IAAA,EAAM,kBAAA,EAAoB,WAAA,EAAa,wBAAA,EAA0B,OAAA,EAAS,mBAAA,EAAqB,MAAM,CAAC,KAAA,EAAO,aAAa,CAAA,EAAG,EAC1J,KAAA,CAAM,8BAA8B,CAAA,CACpC,MAAA,CAAO,yBAAyB,CAAA;AAAA,IACnC,MAAA,EAAQ,MAAM,EAAE,MAAA,EAAQ,UAAU,IAAA,EAAM,uBAAA,EAAyB,WAAA,EAAa,wBAAA,EAA0B,OAAA,EAAS,mBAAA,EAAqB,MAAM,CAAC,KAAA,EAAO,aAAa,CAAA,EAAG,EACjK,KAAA,CAAM,oBAAoB,CAAA,CAC1B,MAAA,CAAO,mBAAmB;AAAA;AAEjC","file":"chunk-OUYWNVEX.js","sourcesContent":["/**\n * @h-ai/api-contract — 分页 Schema\n *\n * 提供通用分页查询参数与分页结果封装,供各领域 contract 扩展复用。\n * @module pagination-schemas\n */\n\nimport { z } from 'zod'\n\n/**\n * 通用分页查询参数 Schema。\n *\n * 页码和页大小均为可选,由服务端提供合理默认值(page=1, pageSize=20)。\n * 支持字符串 coerce,适配 GET 请求 query string 场景。\n *\n * @example\n * ```ts\n * // 扩展为领域专属查询参数\n * const IamListUsersInputSchema = PaginationQuerySchema.extend({\n * search: z.string().optional(),\n * })\n * ```\n */\nexport const PaginationQuerySchema = z.object({\n page: z.coerce.number().int().min(1).optional(),\n pageSize: z.coerce.number().int().min(1).max(100).optional(),\n})\n\n/**\n * 创建分页结果 Schema。\n *\n * 生成标准分页响应结构 `{ items, total, page, pageSize }`,\n * 与 `@h-ai/reldb` 的 `PageResult<T>` 保持对齐。\n *\n * @param itemSchema - 分页项的 Zod Schema\n * @returns 包含 items/total/page/pageSize 的对象 Schema\n *\n * @example\n * ```ts\n * const IamUsersPageOutputSchema = haiResultSchema(\n * paginatedSchema(IamUserSchema)\n * )\n * // 解析结果形如:\n * // { success: true, data: { items: [...], total: 100, page: 1, pageSize: 20 } }\n * ```\n */\nexport function paginatedSchema<T extends z.ZodType>(itemSchema: T) {\n return z.object({\n items: z.array(itemSchema),\n total: z.number(),\n page: z.number(),\n pageSize: z.number(),\n })\n}\n","/**\n * @h-ai/api-contract — IAM 领域 Schema\n *\n * 包含用户、Token、角色、权限以及相关 input/output 的 Zod Schema 定义。\n * 所有 Output Schema 均用 `haiResultSchema()` 封装,与 `@h-ai/core` HaiResult<T> 保持一致。\n * @module iam-schemas\n */\n\nimport { z } from 'zod'\nimport { paginatedSchema, PaginationQuerySchema } from '../common/pagination-schemas.js'\nimport { haiResultSchema } from '../common/result-schemas.js'\n\n/** 用户基础信息 Schema。 */\nexport const IamUserSchema = z.object({\n id: z.string(),\n username: z.string(),\n email: z.string().optional(),\n phone: z.string().optional(),\n displayName: z.string().optional(),\n avatarUrl: z.string().optional(),\n enabled: z.boolean(),\n emailVerified: z.boolean().optional(),\n phoneVerified: z.boolean().optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n/** Token 对 Schema。 */\nexport const IamTokenPairSchema = z.object({\n accessToken: z.string(),\n refreshToken: z.string().optional(),\n expiresIn: z.number(),\n tokenType: z.literal('Bearer'),\n})\n\n/** 协议展示 Schema。 */\nexport const IamAgreementDisplaySchema = z.object({\n userAgreementUrl: z.string().optional(),\n privacyPolicyUrl: z.string().optional(),\n showOnRegister: z.boolean(),\n showOnLogin: z.boolean(),\n})\n\n/** 登录结果业务数据 Schema。 */\nexport const IamAuthResultSchema = z.object({\n user: IamUserSchema,\n tokens: IamTokenPairSchema,\n roles: z.array(z.string()).default([]),\n permissions: z.array(z.string()).default([]),\n agreements: IamAgreementDisplaySchema.optional(),\n})\n\n/** 当前会话用户信息;包含服务端重新校验后的角色与权限快照。 */\nexport const IamCurrentUserSchema = IamUserSchema.extend({\n roles: z.array(z.string()),\n permissions: z.array(z.string()),\n})\n\n/** 密码登录入参 Schema。 */\nexport const IamLoginInputSchema = z.object({\n identifier: z.string().min(1),\n password: z.string().min(1),\n rememberMe: z.boolean().optional(),\n})\n\n/** OTP 登录入参 Schema。 */\nexport const IamOtpLoginInputSchema = z.object({\n identifier: z.string().min(1),\n code: z.string().min(1),\n})\n\n/** 登出入参 Schema。 */\nexport const IamLogoutInputSchema = z.object({\n accessToken: z.string().min(1).optional(),\n})\n\n/** 发送 OTP 入参 Schema。 */\nexport const IamSendOtpInputSchema = z.object({\n identifier: z.string().min(1),\n})\n\n/** 发送 OTP 业务数据 Schema。 */\nexport const IamSendOtpDataSchema = z.object({\n expiresAt: z.coerce.date(),\n})\n\n/** Token 刷新入参 Schema。 */\nexport const IamRefreshTokenInputSchema = z.object({\n refreshToken: z.string().min(1),\n})\n\n/** Token 刷新业务数据 Schema。 */\nexport const IamRefreshTokenDataSchema = z.object({\n tokens: IamTokenPairSchema,\n})\n\n/** 注册入参 Schema。 */\nexport const IamRegisterInputSchema = z.object({\n username: z.string().min(1),\n password: z.string().min(6),\n email: z.string().email().optional(),\n phone: z.string().optional(),\n displayName: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n/** 修改密码入参 Schema。 */\nexport const IamChangePasswordInputSchema = z.object({\n oldPassword: z.string().min(1),\n newPassword: z.string().min(6),\n})\n\n/** 当前用户更新入参 Schema。 */\nexport const IamUpdateCurrentUserInputSchema = z.object({\n username: z.string().min(1).optional(),\n email: z.string().email().optional(),\n displayName: z.string().optional(),\n avatarUrl: z.string().optional(),\n phone: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n/** 用户列表查询入参 Schema。 */\nexport const IamListUsersInputSchema = PaginationQuerySchema.extend({\n search: z.string().optional(),\n // 注意:HTTP query 是字符串,使用枚举 + transform 避免 z.coerce.boolean 的 'false' → true 陷阱。\n enabled: z.enum(['true', 'false']).optional().transform(v => v === undefined ? undefined : v === 'true'),\n})\n\n/** Admin 创建用户入参 Schema。 */\nexport const IamAdminCreateUserInputSchema = z.object({\n username: z.string().min(1),\n email: z.string().email().optional(),\n phone: z.string().optional(),\n password: z.string().min(6),\n displayName: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n roleIds: z.array(z.string()).optional(),\n enabled: z.boolean().optional(),\n})\n\n/** Admin 更新用户入参 Schema。 */\nexport const IamAdminUpdateUserInputSchema = z.object({\n id: z.string().min(1),\n username: z.string().min(1).optional(),\n email: z.string().email().optional(),\n phone: z.string().optional(),\n displayName: z.string().optional(),\n avatarUrl: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n enabled: z.boolean().optional(),\n roleIds: z.array(z.string()).optional(),\n})\n\n/** Admin 删除用户入参 Schema。 */\nexport const IamUserIdInputSchema = z.object({\n id: z.string().min(1),\n})\n\n/** Admin 重置密码入参 Schema。 */\nexport const IamAdminResetPasswordInputSchema = z.object({\n id: z.string().min(1),\n newPassword: z.string().min(6),\n})\n\n/** 角色基础信息 Schema。 */\nexport const IamRoleSchema = z.object({\n id: z.string(),\n code: z.string(),\n name: z.string(),\n description: z.string().optional(),\n isSystem: z.boolean().optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\n\n/** 创建角色入参 Schema。 */\nexport const IamCreateRoleInputSchema = z.object({\n code: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n isSystem: z.boolean().optional(),\n})\n\n/** 更新角色入参 Schema。 */\nexport const IamUpdateRoleInputSchema = z.object({\n id: z.string().min(1),\n name: z.string().min(1).optional(),\n description: z.string().optional(),\n})\n\n/** 权限类型 Schema。 */\nexport const IamPermissionTypeSchema = z.enum(['menu', 'api', 'button'])\n\n/** 权限基础信息 Schema。 */\nexport const IamPermissionSchema = z.object({\n id: z.string(),\n code: z.string(),\n name: z.string(),\n description: z.string().optional(),\n type: IamPermissionTypeSchema.optional(),\n resource: z.string().optional(),\n action: z.string().optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\n\n/** 权限列表查询入参 Schema。 */\nexport const IamListPermissionsInputSchema = PaginationQuerySchema.extend({\n search: z.string().optional(),\n type: IamPermissionTypeSchema.optional(),\n})\n\n/** 创建权限入参 Schema。 */\nexport const IamCreatePermissionInputSchema = z.object({\n code: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n resource: z.string().optional(),\n action: z.string().optional(),\n type: IamPermissionTypeSchema.optional(),\n})\n\nexport const IamAuthResultOutputSchema = haiResultSchema(IamAuthResultSchema)\nexport const IamCurrentUserOutputSchema = haiResultSchema(IamCurrentUserSchema)\nexport const IamRefreshTokenOutputSchema = haiResultSchema(IamRefreshTokenDataSchema)\nexport const IamSendOtpOutputSchema = haiResultSchema(IamSendOtpDataSchema)\nexport const IamUserOutputSchema = haiResultSchema(IamUserSchema)\nexport const IamNullableUserOutputSchema = haiResultSchema(IamUserSchema.nullable())\nexport const IamUsersPageOutputSchema = haiResultSchema(paginatedSchema(IamUserSchema))\nexport const IamRoleOutputSchema = haiResultSchema(IamRoleSchema)\nexport const IamNullableRoleOutputSchema = haiResultSchema(IamRoleSchema.nullable())\nexport const IamRolesPageOutputSchema = haiResultSchema(paginatedSchema(IamRoleSchema))\nexport const IamPermissionOutputSchema = haiResultSchema(IamPermissionSchema)\nexport const IamNullablePermissionOutputSchema = haiResultSchema(IamPermissionSchema.nullable())\nexport const IamPermissionsPageOutputSchema = haiResultSchema(paginatedSchema(IamPermissionSchema))\nexport const IamVoidOutputSchema = haiResultSchema(z.void())\n\nexport type IamLoginInput = z.infer<typeof IamLoginInputSchema>\nexport type IamOtpLoginInput = z.infer<typeof IamOtpLoginInputSchema>\nexport type IamLogoutInput = z.infer<typeof IamLogoutInputSchema>\nexport type IamSendOtpInput = z.infer<typeof IamSendOtpInputSchema>\nexport type IamAuthResultOutput = z.infer<typeof IamAuthResultOutputSchema>\nexport type IamCurrentUser = z.infer<typeof IamCurrentUserSchema>\nexport type IamCurrentUserOutput = z.infer<typeof IamCurrentUserOutputSchema>\nexport type IamRefreshTokenInput = z.infer<typeof IamRefreshTokenInputSchema>\nexport type IamRefreshTokenOutput = z.infer<typeof IamRefreshTokenOutputSchema>\nexport type IamRegisterInput = z.infer<typeof IamRegisterInputSchema>\nexport type IamChangePasswordInput = z.infer<typeof IamChangePasswordInputSchema>\nexport type IamUpdateCurrentUserInput = z.infer<typeof IamUpdateCurrentUserInputSchema>\nexport type IamListUsersInput = z.infer<typeof IamListUsersInputSchema>\nexport type IamAdminCreateUserInput = z.infer<typeof IamAdminCreateUserInputSchema>\nexport type IamAdminUpdateUserInput = z.infer<typeof IamAdminUpdateUserInputSchema>\nexport type IamUserIdInput = z.infer<typeof IamUserIdInputSchema>\nexport type IamAdminResetPasswordInput = z.infer<typeof IamAdminResetPasswordInputSchema>\nexport type IamCreateRoleInput = z.infer<typeof IamCreateRoleInputSchema>\nexport type IamUpdateRoleInput = z.infer<typeof IamUpdateRoleInputSchema>\nexport type IamListPermissionsInput = z.infer<typeof IamListPermissionsInputSchema>\nexport type IamCreatePermissionInput = z.infer<typeof IamCreatePermissionInputSchema>\n","/**\n * @h-ai/api-contract — IAM 领域 contract\n *\n * 定义身份认证与权限管理相关 API 的接口边界:\n * - auth:登录、登出、OTP、刷新 Token、注册、修改密码\n * - users:Admin 管理用户(CRUD + 重置密码)\n * - roles:Admin 管理角色(CRUD)\n * - permissions:Admin 管理权限(CRUD)\n *\n * auth.* 入口址前缀为 `/auth`;users/roles/permissions 前缀为 `/iam`。\n * @module iam-contract\n */\n\nimport { route } from '../common/route.js'\nimport {\n IamAdminCreateUserInputSchema,\n IamAdminResetPasswordInputSchema,\n IamAdminUpdateUserInputSchema,\n IamAuthResultOutputSchema,\n IamChangePasswordInputSchema,\n IamCreatePermissionInputSchema,\n IamCreateRoleInputSchema,\n IamCurrentUserOutputSchema,\n IamListPermissionsInputSchema,\n IamListUsersInputSchema,\n IamLoginInputSchema,\n IamLogoutInputSchema,\n IamNullablePermissionOutputSchema,\n IamNullableRoleOutputSchema,\n IamNullableUserOutputSchema,\n IamOtpLoginInputSchema,\n IamPermissionOutputSchema,\n IamPermissionsPageOutputSchema,\n IamRefreshTokenInputSchema,\n IamRefreshTokenOutputSchema,\n IamRegisterInputSchema,\n IamRoleOutputSchema,\n IamRolesPageOutputSchema,\n IamSendOtpInputSchema,\n IamSendOtpOutputSchema,\n IamUpdateCurrentUserInputSchema,\n IamUpdateRoleInputSchema,\n IamUserIdInputSchema,\n IamUserOutputSchema,\n IamUsersPageOutputSchema,\n IamVoidOutputSchema,\n} from './iam-schemas.js'\n\n/**\n * IAM auth 端点的路由路径(相对于 apiPrefix)。\n * 作为单一事实来源,供 `@h-ai/serv` 的 cookie 中间件复用,避免硬编码。\n */\nexport const IAM_AUTH_ROUTES = {\n login: '/auth/login',\n loginWithOtp: '/auth/login/otp',\n register: '/auth/register',\n logout: '/auth/logout',\n refresh: '/auth/refresh',\n} as const\n\n/** IAM 领域 oRPC contract。 */\nexport const iamContract = {\n auth: {\n login: route({ method: 'POST', path: IAM_AUTH_ROUTES.login, operationId: 'iam.auth.login', summary: 'Password login', tags: ['iam', 'auth'] })\n .input(IamLoginInputSchema)\n .output(IamAuthResultOutputSchema),\n loginWithOtp: route({ method: 'POST', path: IAM_AUTH_ROUTES.loginWithOtp, operationId: 'iam.auth.loginWithOtp', summary: 'OTP login', tags: ['iam', 'auth'] })\n .input(IamOtpLoginInputSchema)\n .output(IamAuthResultOutputSchema),\n logout: route({ method: 'POST', path: IAM_AUTH_ROUTES.logout, operationId: 'iam.auth.logout', summary: 'Logout', tags: ['iam', 'auth'] })\n .input(IamLogoutInputSchema)\n .output(IamVoidOutputSchema),\n currentUser: route({ method: 'GET', path: '/auth/me', operationId: 'iam.auth.currentUser', summary: 'Get current user and access scope', tags: ['iam', 'auth'] })\n .output(IamCurrentUserOutputSchema),\n refresh: route({ method: 'POST', path: IAM_AUTH_ROUTES.refresh, operationId: 'iam.auth.refresh', summary: 'Refresh access token', tags: ['iam', 'auth'] })\n .input(IamRefreshTokenInputSchema)\n .output(IamRefreshTokenOutputSchema),\n sendOtp: route({ method: 'POST', path: '/auth/otp/send', operationId: 'iam.auth.sendOtp', summary: 'Send OTP', tags: ['iam', 'auth'] })\n .input(IamSendOtpInputSchema)\n .output(IamSendOtpOutputSchema),\n register: route({ method: 'POST', path: IAM_AUTH_ROUTES.register, operationId: 'iam.auth.register', summary: 'Register and login', tags: ['iam', 'auth'] })\n .input(IamRegisterInputSchema)\n .output(IamAuthResultOutputSchema),\n changePassword: route({ method: 'POST', path: '/auth/change-password', operationId: 'iam.auth.changePassword', summary: 'Change current user password', tags: ['iam', 'auth'] })\n .input(IamChangePasswordInputSchema)\n .output(IamVoidOutputSchema),\n updateCurrentUser: route({ method: 'PUT', path: '/auth/me', operationId: 'iam.auth.updateCurrentUser', summary: 'Update current user', tags: ['iam', 'auth'] })\n .input(IamUpdateCurrentUserInputSchema)\n .output(IamUserOutputSchema),\n },\n users: {\n list: route({ method: 'GET', path: '/iam/users', operationId: 'iam.users.list', summary: 'List users', tags: ['iam', 'users'] })\n .input(IamListUsersInputSchema)\n .output(IamUsersPageOutputSchema),\n get: route({ method: 'GET', path: '/iam/users/{id}', operationId: 'iam.users.get', summary: 'Get user', tags: ['iam', 'users'] })\n .input(IamUserIdInputSchema)\n .output(IamNullableUserOutputSchema),\n create: route({ method: 'POST', path: '/iam/users', operationId: 'iam.users.create', summary: 'Create user', tags: ['iam', 'users'] })\n .input(IamAdminCreateUserInputSchema)\n .output(IamUserOutputSchema),\n update: route({ method: 'PUT', path: '/iam/users/{id}', operationId: 'iam.users.update', summary: 'Update user', tags: ['iam', 'users'] })\n .input(IamAdminUpdateUserInputSchema)\n .output(IamUserOutputSchema),\n delete: route({ method: 'DELETE', path: '/iam/users/{id}', operationId: 'iam.users.delete', summary: 'Delete user', tags: ['iam', 'users'] })\n .input(IamUserIdInputSchema)\n .output(IamVoidOutputSchema),\n resetPassword: route({ method: 'POST', path: '/iam/users/{id}/reset-password', operationId: 'iam.users.resetPassword', summary: 'Reset user password', tags: ['iam', 'users'] })\n .input(IamAdminResetPasswordInputSchema)\n .output(IamVoidOutputSchema),\n },\n roles: {\n list: route({ method: 'GET', path: '/iam/roles', operationId: 'iam.roles.list', summary: 'List roles', tags: ['iam', 'roles'] })\n .output(IamRolesPageOutputSchema),\n get: route({ method: 'GET', path: '/iam/roles/{id}', operationId: 'iam.roles.get', summary: 'Get role', tags: ['iam', 'roles'] })\n .input(IamUserIdInputSchema)\n .output(IamNullableRoleOutputSchema),\n create: route({ method: 'POST', path: '/iam/roles', operationId: 'iam.roles.create', summary: 'Create role', tags: ['iam', 'roles'] })\n .input(IamCreateRoleInputSchema)\n .output(IamRoleOutputSchema),\n update: route({ method: 'PUT', path: '/iam/roles/{id}', operationId: 'iam.roles.update', summary: 'Update role', tags: ['iam', 'roles'] })\n .input(IamUpdateRoleInputSchema)\n .output(IamRoleOutputSchema),\n delete: route({ method: 'DELETE', path: '/iam/roles/{id}', operationId: 'iam.roles.delete', summary: 'Delete role', tags: ['iam', 'roles'] })\n .input(IamUserIdInputSchema)\n .output(IamVoidOutputSchema),\n },\n permissions: {\n list: route({ method: 'GET', path: '/iam/permissions', operationId: 'iam.permissions.list', summary: 'List permissions', tags: ['iam', 'permissions'] })\n .input(IamListPermissionsInputSchema)\n .output(IamPermissionsPageOutputSchema),\n get: route({ method: 'GET', path: '/iam/permissions/{id}', operationId: 'iam.permissions.get', summary: 'Get permission', tags: ['iam', 'permissions'] })\n .input(IamUserIdInputSchema)\n .output(IamNullablePermissionOutputSchema),\n create: route({ method: 'POST', path: '/iam/permissions', operationId: 'iam.permissions.create', summary: 'Create permission', tags: ['iam', 'permissions'] })\n .input(IamCreatePermissionInputSchema)\n .output(IamPermissionOutputSchema),\n delete: route({ method: 'DELETE', path: '/iam/permissions/{id}', operationId: 'iam.permissions.delete', summary: 'Delete permission', tags: ['iam', 'permissions'] })\n .input(IamUserIdInputSchema)\n .output(IamVoidOutputSchema),\n },\n}\n\nexport type IamContract = typeof iamContract\n"]}
@@ -159,6 +159,8 @@ declare const iamContract: {
159
159
  createdAt: zod.ZodCoercedDate<unknown>;
160
160
  updatedAt: zod.ZodCoercedDate<unknown>;
161
161
  metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
162
+ roles: zod.ZodArray<zod.ZodString>;
163
+ permissions: zod.ZodArray<zod.ZodString>;
162
164
  }, zod_v4_core.$strip>;
163
165
  }, zod_v4_core.$strip>, zod.ZodObject<{
164
166
  success: zod.ZodLiteral<false>;
@@ -855,6 +857,23 @@ declare const IamAuthResultSchema: z.ZodObject<{
855
857
  showOnLogin: z.ZodBoolean;
856
858
  }, z.core.$strip>>;
857
859
  }, z.core.$strip>;
860
+ /** 当前会话用户信息;包含服务端重新校验后的角色与权限快照。 */
861
+ declare const IamCurrentUserSchema: z.ZodObject<{
862
+ id: z.ZodString;
863
+ username: z.ZodString;
864
+ email: z.ZodOptional<z.ZodString>;
865
+ phone: z.ZodOptional<z.ZodString>;
866
+ displayName: z.ZodOptional<z.ZodString>;
867
+ avatarUrl: z.ZodOptional<z.ZodString>;
868
+ enabled: z.ZodBoolean;
869
+ emailVerified: z.ZodOptional<z.ZodBoolean>;
870
+ phoneVerified: z.ZodOptional<z.ZodBoolean>;
871
+ createdAt: z.ZodCoercedDate<unknown>;
872
+ updatedAt: z.ZodCoercedDate<unknown>;
873
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
874
+ roles: z.ZodArray<z.ZodString>;
875
+ permissions: z.ZodArray<z.ZodString>;
876
+ }, z.core.$strip>;
858
877
  /** 密码登录入参 Schema。 */
859
878
  declare const IamLoginInputSchema: z.ZodObject<{
860
879
  identifier: z.ZodString;
@@ -1070,6 +1089,37 @@ declare const IamAuthResultOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1070
1089
  ext: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1071
1090
  }, z.core.$strip>;
1072
1091
  }, z.core.$strip>], "success">;
1092
+ declare const IamCurrentUserOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1093
+ success: z.ZodLiteral<true>;
1094
+ data: z.ZodObject<{
1095
+ id: z.ZodString;
1096
+ username: z.ZodString;
1097
+ email: z.ZodOptional<z.ZodString>;
1098
+ phone: z.ZodOptional<z.ZodString>;
1099
+ displayName: z.ZodOptional<z.ZodString>;
1100
+ avatarUrl: z.ZodOptional<z.ZodString>;
1101
+ enabled: z.ZodBoolean;
1102
+ emailVerified: z.ZodOptional<z.ZodBoolean>;
1103
+ phoneVerified: z.ZodOptional<z.ZodBoolean>;
1104
+ createdAt: z.ZodCoercedDate<unknown>;
1105
+ updatedAt: z.ZodCoercedDate<unknown>;
1106
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1107
+ roles: z.ZodArray<z.ZodString>;
1108
+ permissions: z.ZodArray<z.ZodString>;
1109
+ }, z.core.$strip>;
1110
+ }, z.core.$strip>, z.ZodObject<{
1111
+ success: z.ZodLiteral<false>;
1112
+ error: z.ZodObject<{
1113
+ code: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
1114
+ message: z.ZodString;
1115
+ httpStatus: z.ZodOptional<z.ZodNumber>;
1116
+ system: z.ZodOptional<z.ZodString>;
1117
+ module: z.ZodOptional<z.ZodString>;
1118
+ cause: z.ZodOptional<z.ZodUnknown>;
1119
+ suggestion: z.ZodOptional<z.ZodString>;
1120
+ ext: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1121
+ }, z.core.$strip>;
1122
+ }, z.core.$strip>], "success">;
1073
1123
  declare const IamRefreshTokenOutputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1074
1124
  success: z.ZodLiteral<true>;
1075
1125
  data: z.ZodObject<{
@@ -1396,6 +1446,8 @@ type IamOtpLoginInput = z.infer<typeof IamOtpLoginInputSchema>;
1396
1446
  type IamLogoutInput = z.infer<typeof IamLogoutInputSchema>;
1397
1447
  type IamSendOtpInput = z.infer<typeof IamSendOtpInputSchema>;
1398
1448
  type IamAuthResultOutput = z.infer<typeof IamAuthResultOutputSchema>;
1449
+ type IamCurrentUser = z.infer<typeof IamCurrentUserSchema>;
1450
+ type IamCurrentUserOutput = z.infer<typeof IamCurrentUserOutputSchema>;
1399
1451
  type IamRefreshTokenInput = z.infer<typeof IamRefreshTokenInputSchema>;
1400
1452
  type IamRefreshTokenOutput = z.infer<typeof IamRefreshTokenOutputSchema>;
1401
1453
  type IamRegisterInput = z.infer<typeof IamRegisterInputSchema>;
@@ -1411,4 +1463,4 @@ type IamUpdateRoleInput = z.infer<typeof IamUpdateRoleInputSchema>;
1411
1463
  type IamListPermissionsInput = z.infer<typeof IamListPermissionsInputSchema>;
1412
1464
  type IamCreatePermissionInput = z.infer<typeof IamCreatePermissionInputSchema>;
1413
1465
 
1414
- export { IAM_AUTH_ROUTES, type IamAdminCreateUserInput, IamAdminCreateUserInputSchema, type IamAdminResetPasswordInput, IamAdminResetPasswordInputSchema, type IamAdminUpdateUserInput, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, type IamAuthResultOutput, IamAuthResultOutputSchema, IamAuthResultSchema, type IamChangePasswordInput, IamChangePasswordInputSchema, type IamContract, type IamCreatePermissionInput, IamCreatePermissionInputSchema, type IamCreateRoleInput, IamCreateRoleInputSchema, type IamListPermissionsInput, IamListPermissionsInputSchema, type IamListUsersInput, IamListUsersInputSchema, type IamLoginInput, IamLoginInputSchema, type IamLogoutInput, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, type IamOtpLoginInput, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, type IamRefreshTokenInput, IamRefreshTokenInputSchema, type IamRefreshTokenOutput, IamRefreshTokenOutputSchema, type IamRegisterInput, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, type IamSendOtpInput, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, type IamUpdateCurrentUserInput, IamUpdateCurrentUserInputSchema, type IamUpdateRoleInput, IamUpdateRoleInputSchema, type IamUserIdInput, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema, iamContract };
1466
+ export { IAM_AUTH_ROUTES, type IamAdminCreateUserInput, IamAdminCreateUserInputSchema, type IamAdminResetPasswordInput, IamAdminResetPasswordInputSchema, type IamAdminUpdateUserInput, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, type IamAuthResultOutput, IamAuthResultOutputSchema, IamAuthResultSchema, type IamChangePasswordInput, IamChangePasswordInputSchema, type IamContract, type IamCreatePermissionInput, IamCreatePermissionInputSchema, type IamCreateRoleInput, IamCreateRoleInputSchema, type IamCurrentUser, type IamCurrentUserOutput, IamCurrentUserOutputSchema, IamCurrentUserSchema, type IamListPermissionsInput, IamListPermissionsInputSchema, type IamListUsersInput, IamListUsersInputSchema, type IamLoginInput, IamLoginInputSchema, type IamLogoutInput, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, type IamOtpLoginInput, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, type IamRefreshTokenInput, IamRefreshTokenInputSchema, type IamRefreshTokenOutput, IamRefreshTokenOutputSchema, type IamRegisterInput, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, type IamSendOtpInput, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, type IamUpdateCurrentUserInput, IamUpdateCurrentUserInputSchema, type IamUpdateRoleInput, IamUpdateRoleInputSchema, type IamUserIdInput, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema, iamContract };
package/dist/iam/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { IAM_AUTH_ROUTES, IamAdminCreateUserInputSchema, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultOutputSchema, IamAuthResultSchema, IamChangePasswordInputSchema, IamCreatePermissionInputSchema, IamCreateRoleInputSchema, IamListPermissionsInputSchema, IamListUsersInputSchema, IamLoginInputSchema, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, IamRefreshTokenInputSchema, IamRefreshTokenOutputSchema, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, IamUpdateCurrentUserInputSchema, IamUpdateRoleInputSchema, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema, iamContract } from '../chunk-ZK43WHUQ.js';
1
+ export { IAM_AUTH_ROUTES, IamAdminCreateUserInputSchema, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultOutputSchema, IamAuthResultSchema, IamChangePasswordInputSchema, IamCreatePermissionInputSchema, IamCreateRoleInputSchema, IamCurrentUserOutputSchema, IamCurrentUserSchema, IamListPermissionsInputSchema, IamListUsersInputSchema, IamLoginInputSchema, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, IamRefreshTokenInputSchema, IamRefreshTokenOutputSchema, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, IamUpdateCurrentUserInputSchema, IamUpdateRoleInputSchema, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema, iamContract } from '../chunk-OUYWNVEX.js';
2
2
  import '../chunk-3GZQUVY3.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export { AiAssistantMessageSchema, AiChatCompletionChoiceSchema, AiChatCompletionData, AiChatCompletionDataSchema, AiChatCompletionInput, AiChatCompletionInputSchema, AiChatCompletionOutput, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, AiChatHistoryInput, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, AiChatRecord, AiChatRecordSchema, AiContract, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, AiMemoryListInput, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, AiMemoryRecallInput, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, AiSendMessageData, AiSendMessageDataSchema, AiSendMessageInput, AiSendMessageInputSchema, AiSendMessageOutput, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, AiSessionListInput, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema } from './ai/index.js';
1
+ export { AUDIO_WS_PATH, AiAssistantMessageSchema, AiChatCompletionChoiceSchema, AiChatCompletionData, AiChatCompletionDataSchema, AiChatCompletionInput, AiChatCompletionInputSchema, AiChatCompletionOutput, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, AiChatHistoryInput, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, AiChatRecord, AiChatRecordSchema, AiContract, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, AiMemoryListInput, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, AiMemoryRecallInput, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, AiSendMessageData, AiSendMessageDataSchema, AiSendMessageInput, AiSendMessageInputSchema, AiSendMessageOutput, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, AiSessionListInput, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema, AudioFormatSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema } from './ai/index.js';
2
2
  import * as _orpc_contract from '@orpc/contract';
3
3
  import { AnyContractRouter } from '@orpc/contract';
4
4
  import * as zod_v4_core from 'zod/v4/core';
5
5
  import * as zod from 'zod';
6
6
  import { z } from 'zod';
7
- export { IAM_AUTH_ROUTES, IamAdminCreateUserInput, IamAdminCreateUserInputSchema, IamAdminResetPasswordInput, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInput, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultOutput, IamAuthResultOutputSchema, IamAuthResultSchema, IamChangePasswordInput, IamChangePasswordInputSchema, IamContract, IamCreatePermissionInput, IamCreatePermissionInputSchema, IamCreateRoleInput, IamCreateRoleInputSchema, IamListPermissionsInput, IamListPermissionsInputSchema, IamListUsersInput, IamListUsersInputSchema, IamLoginInput, IamLoginInputSchema, IamLogoutInput, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, IamOtpLoginInput, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, IamRefreshTokenInput, IamRefreshTokenInputSchema, IamRefreshTokenOutput, IamRefreshTokenOutputSchema, IamRegisterInput, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, IamSendOtpInput, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, IamUpdateCurrentUserInput, IamUpdateCurrentUserInputSchema, IamUpdateRoleInput, IamUpdateRoleInputSchema, IamUserIdInput, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema } from './iam/index.js';
7
+ export { IAM_AUTH_ROUTES, IamAdminCreateUserInput, IamAdminCreateUserInputSchema, IamAdminResetPasswordInput, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInput, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultOutput, IamAuthResultOutputSchema, IamAuthResultSchema, IamChangePasswordInput, IamChangePasswordInputSchema, IamContract, IamCreatePermissionInput, IamCreatePermissionInputSchema, IamCreateRoleInput, IamCreateRoleInputSchema, IamCurrentUser, IamCurrentUserOutput, IamCurrentUserOutputSchema, IamCurrentUserSchema, IamListPermissionsInput, IamListPermissionsInputSchema, IamListUsersInput, IamListUsersInputSchema, IamLoginInput, IamLoginInputSchema, IamLogoutInput, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, IamOtpLoginInput, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, IamRefreshTokenInput, IamRefreshTokenInputSchema, IamRefreshTokenOutput, IamRefreshTokenOutputSchema, IamRegisterInput, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, IamSendOtpInput, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, IamUpdateCurrentUserInput, IamUpdateCurrentUserInputSchema, IamUpdateRoleInput, IamUpdateRoleInputSchema, IamUserIdInput, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema } from './iam/index.js';
8
8
  export { PaymentContract, PaymentCreateOrderDataSchema, PaymentCreateOrderInput, PaymentCreateOrderInputSchema, PaymentCreateOrderOutput, PaymentCreateOrderOutputSchema, PaymentNotifyMessageOutputSchema, PaymentNotifyMessageSchema, PaymentOrderSchema, PaymentProviderSchema, PaymentQueryOrderInputSchema, PaymentQueryOrderOutputSchema, PaymentRefundDataSchema, PaymentRefundInput, PaymentRefundInputSchema, PaymentRefundOutputSchema, PaymentStripeNotifyDataSchema, PaymentStripeNotifyOutputSchema, PaymentTradeTypeSchema } from './payment/index.js';
9
9
  export { StorageContract, StorageDeleteFilesInput, StorageDeleteFilesInputSchema, StorageFileKeyInput, StorageFileKeyInputSchema, StorageFileMetadataOutputSchema, StorageFileMetadataSchema, StorageListFilesDataSchema, StorageListFilesInput, StorageListFilesInputSchema, StorageListFilesOutputSchema, StoragePresignDownloadInput, StoragePresignDownloadInputSchema, StoragePresignUploadInput, StoragePresignUploadInputSchema, StoragePresignedUrlOutput, StoragePresignedUrlOutputSchema, StoragePresignedUrlSchema, StorageVoidOutputSchema } from './storage/index.js';
10
10
 
@@ -305,6 +305,8 @@ declare const apiContract: {
305
305
  createdAt: zod.ZodCoercedDate<unknown>;
306
306
  updatedAt: zod.ZodCoercedDate<unknown>;
307
307
  metadata: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodUnknown>>;
308
+ roles: zod.ZodArray<zod.ZodString>;
309
+ permissions: zod.ZodArray<zod.ZodString>;
308
310
  }, zod_v4_core.$strip>;
309
311
  }, zod_v4_core.$strip>, zod.ZodObject<{
310
312
  success: zod.ZodLiteral<false>;
@@ -1309,11 +1311,11 @@ declare const apiContract: {
1309
1311
  query: zod.ZodString;
1310
1312
  topK: zod.ZodOptional<zod.ZodNumber>;
1311
1313
  types: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
1314
+ instruction: "instruction";
1312
1315
  fact: "fact";
1313
1316
  preference: "preference";
1314
1317
  event: "event";
1315
1318
  entity: "entity";
1316
- instruction: "instruction";
1317
1319
  }>>>;
1318
1320
  minImportance: zod.ZodOptional<zod.ZodNumber>;
1319
1321
  objectId: zod.ZodOptional<zod.ZodString>;
@@ -1324,11 +1326,11 @@ declare const apiContract: {
1324
1326
  id: zod.ZodString;
1325
1327
  content: zod.ZodString;
1326
1328
  type: zod.ZodEnum<{
1329
+ instruction: "instruction";
1327
1330
  fact: "fact";
1328
1331
  preference: "preference";
1329
1332
  event: "event";
1330
1333
  entity: "entity";
1331
- instruction: "instruction";
1332
1334
  }>;
1333
1335
  importance: zod.ZodNumber;
1334
1336
  objectId: zod.ZodOptional<zod.ZodString>;
@@ -1353,11 +1355,11 @@ declare const apiContract: {
1353
1355
  }, zod_v4_core.$strip>], "success">, Record<never, never>, Record<never, never>>;
1354
1356
  list: _orpc_contract.ContractProcedureBuilderWithInputOutput<zod.ZodObject<{
1355
1357
  types: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
1358
+ instruction: "instruction";
1356
1359
  fact: "fact";
1357
1360
  preference: "preference";
1358
1361
  event: "event";
1359
1362
  entity: "entity";
1360
- instruction: "instruction";
1361
1363
  }>>>;
1362
1364
  objectId: zod.ZodOptional<zod.ZodString>;
1363
1365
  offset: zod.ZodOptional<zod.ZodNumber>;
@@ -1369,11 +1371,11 @@ declare const apiContract: {
1369
1371
  id: zod.ZodString;
1370
1372
  content: zod.ZodString;
1371
1373
  type: zod.ZodEnum<{
1374
+ instruction: "instruction";
1372
1375
  fact: "fact";
1373
1376
  preference: "preference";
1374
1377
  event: "event";
1375
1378
  entity: "entity";
1376
- instruction: "instruction";
1377
1379
  }>;
1378
1380
  importance: zod.ZodNumber;
1379
1381
  objectId: zod.ZodOptional<zod.ZodString>;
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- import { iamContract, paginatedSchema } from './chunk-ZK43WHUQ.js';
2
- export { IAM_AUTH_ROUTES, IamAdminCreateUserInputSchema, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultOutputSchema, IamAuthResultSchema, IamChangePasswordInputSchema, IamCreatePermissionInputSchema, IamCreateRoleInputSchema, IamListPermissionsInputSchema, IamListUsersInputSchema, IamLoginInputSchema, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, IamRefreshTokenInputSchema, IamRefreshTokenOutputSchema, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, IamUpdateCurrentUserInputSchema, IamUpdateRoleInputSchema, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema, PaginationQuerySchema, paginatedSchema } from './chunk-ZK43WHUQ.js';
1
+ import { iamContract, paginatedSchema } from './chunk-OUYWNVEX.js';
2
+ export { IAM_AUTH_ROUTES, IamAdminCreateUserInputSchema, IamAdminResetPasswordInputSchema, IamAdminUpdateUserInputSchema, IamAgreementDisplaySchema, IamAuthResultOutputSchema, IamAuthResultSchema, IamChangePasswordInputSchema, IamCreatePermissionInputSchema, IamCreateRoleInputSchema, IamCurrentUserOutputSchema, IamCurrentUserSchema, IamListPermissionsInputSchema, IamListUsersInputSchema, IamLoginInputSchema, IamLogoutInputSchema, IamNullablePermissionOutputSchema, IamNullableRoleOutputSchema, IamNullableUserOutputSchema, IamOtpLoginInputSchema, IamPermissionOutputSchema, IamPermissionSchema, IamPermissionTypeSchema, IamPermissionsPageOutputSchema, IamRefreshTokenDataSchema, IamRefreshTokenInputSchema, IamRefreshTokenOutputSchema, IamRegisterInputSchema, IamRoleOutputSchema, IamRoleSchema, IamRolesPageOutputSchema, IamSendOtpDataSchema, IamSendOtpInputSchema, IamSendOtpOutputSchema, IamTokenPairSchema, IamUpdateCurrentUserInputSchema, IamUpdateRoleInputSchema, IamUserIdInputSchema, IamUserOutputSchema, IamUserSchema, IamUsersPageOutputSchema, IamVoidOutputSchema, PaginationQuerySchema, paginatedSchema } from './chunk-OUYWNVEX.js';
3
3
  import { storageContract } from './chunk-DKBPLQMI.js';
4
4
  export { StorageDeleteFilesInputSchema, StorageFileKeyInputSchema, StorageFileMetadataOutputSchema, StorageFileMetadataSchema, StorageListFilesDataSchema, StorageListFilesInputSchema, StorageListFilesOutputSchema, StoragePresignDownloadInputSchema, StoragePresignUploadInputSchema, StoragePresignedUrlOutputSchema, StoragePresignedUrlSchema, StorageVoidOutputSchema } from './chunk-DKBPLQMI.js';
5
- import { aiContract } from './chunk-HPKGSAHN.js';
6
- export { AiAssistantMessageSchema, AiChatCompletionChoiceSchema, AiChatCompletionDataSchema, AiChatCompletionInputSchema, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, AiChatRecordSchema, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, AiSendMessageDataSchema, AiSendMessageInputSchema, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema } from './chunk-HPKGSAHN.js';
5
+ import { aiContract } from './chunk-EZVXYX3T.js';
6
+ export { AUDIO_WS_PATH, AiAssistantMessageSchema, AiChatCompletionChoiceSchema, AiChatCompletionDataSchema, AiChatCompletionInputSchema, AiChatCompletionOutputSchema, AiChatHistoryDataSchema, AiChatHistoryInputSchema, AiChatHistoryOutputSchema, AiChatMessageSchema, AiChatRecordSchema, AiImageContentSchema, AiMemoryEntrySchema, AiMemoryListDataSchema, AiMemoryListInputSchema, AiMemoryListOutputSchema, AiMemoryRecallDataSchema, AiMemoryRecallInputSchema, AiMemoryRecallOutputSchema, AiMemoryTypeSchema, AiMessageContentSchema, AiMessageRoleSchema, AiSendMessageDataSchema, AiSendMessageInputSchema, AiSendMessageOutputSchema, AiSessionInfoSchema, AiSessionListDataSchema, AiSessionListInputSchema, AiSessionListOutputSchema, AiTextContentSchema, AiTokenUsageSchema, AiToolCallSchema, AiToolDefinitionSchema, AiToolParameterSchema, AudioFormatSchema, AudioWsClientMessageSchema, AudioWsDoneMessageSchema, AudioWsStartMessageSchema, AudioWsTextMessageSchema } from './chunk-EZVXYX3T.js';
7
7
  import { paymentContract } from './chunk-HJMSMLTZ.js';
8
8
  export { PaymentCreateOrderDataSchema, PaymentCreateOrderInputSchema, PaymentCreateOrderOutputSchema, PaymentNotifyMessageOutputSchema, PaymentNotifyMessageSchema, PaymentOrderSchema, PaymentProviderSchema, PaymentQueryOrderInputSchema, PaymentQueryOrderOutputSchema, PaymentRefundDataSchema, PaymentRefundInputSchema, PaymentRefundOutputSchema, PaymentStripeNotifyDataSchema, PaymentStripeNotifyOutputSchema, PaymentTradeTypeSchema } from './chunk-HJMSMLTZ.js';
9
9
  import { route, HaiVoidResultSchema, haiResultSchema } from './chunk-3GZQUVY3.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@h-ai/api-contract",
3
3
  "type": "module",
4
- "version": "0.1.0-alpha.36",
4
+ "version": "0.1.0-alpha.37",
5
5
  "description": "Hai Framework public API contracts powered by oRPC and Zod.",
6
6
  "license": "Apache-2.0",
7
7
  "exports": {
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@orpc/contract": "^1.14.3",
40
40
  "zod": "^4.4.3",
41
- "@h-ai/core": "0.1.0-alpha.36"
41
+ "@h-ai/core": "0.1.0-alpha.37"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/node": "^25.9.1",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ai/ai-schemas.ts","../src/ai/ai-contract.ts"],"names":[],"mappings":"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","file":"chunk-HPKGSAHN.js","sourcesContent":["/**\n * @h-ai/api-contract — AI 领域 Schema\n *\n * 包含聊天补全、消息占位、记忆召回与历史会话相关的 input/output Zod Schema。\n * 聊天补全结构对齐 OpenAI Chat Completions API,支持 tool calling。\n * 所有 Output Schema 均用 `haiResultSchema()` 封装。\n * @module ai-schemas\n */\n\nimport { z } from 'zod'\nimport { haiResultSchema } from '../common/result-schemas.js'\n\n/** 消息角色 Schema。 */\nexport const AiMessageRoleSchema = z.enum(['system', 'user', 'assistant', 'tool'])\n\n/** 文本内容 Schema。 */\nexport const AiTextContentSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n})\n\n/** 图片内容 Schema。 */\nexport const AiImageContentSchema = z.object({\n type: z.literal('image_url'),\n image_url: z.object({\n url: z.string(),\n detail: z.enum(['auto', 'low', 'high']).optional(),\n }),\n})\n\n/** 消息内容 Schema。 */\nexport const AiMessageContentSchema = z.union([\n z.string(),\n z.array(z.union([AiTextContentSchema, AiImageContentSchema])),\n])\n\n/** 工具调用 Schema。 */\nexport const AiToolCallSchema = z.object({\n id: z.string(),\n type: z.literal('function'),\n function: z.object({\n name: z.string(),\n arguments: z.string(),\n }),\n})\n\n/** 聊天消息 Schema。 */\nexport const AiChatMessageSchema = z.object({\n role: AiMessageRoleSchema,\n content: AiMessageContentSchema.optional(),\n name: z.string().optional(),\n tool_calls: z.array(AiToolCallSchema).optional(),\n tool_call_id: z.string().optional(),\n})\n\n/** 工具参数 Schema。 */\nexport const AiToolParameterSchema = z.object({\n type: z.string(),\n description: z.string().optional(),\n enum: z.array(z.string()).optional(),\n})\n\n/** 工具定义 Schema。 */\nexport const AiToolDefinitionSchema = z.object({\n type: z.literal('function'),\n function: z.object({\n name: z.string(),\n description: z.string().optional(),\n parameters: z.object({\n type: z.literal('object'),\n properties: z.record(z.string(), AiToolParameterSchema).optional(),\n required: z.array(z.string()).optional(),\n }).optional(),\n }),\n})\n\n/** 聊天完成入参 Schema。 */\nexport const AiChatCompletionInputSchema = z.object({\n model: z.string().optional(),\n messages: z.array(AiChatMessageSchema).min(1),\n temperature: z.number().min(0).max(2).optional(),\n top_p: z.number().min(0).max(1).optional(),\n max_tokens: z.number().int().min(1).optional(),\n stream: z.boolean().optional(),\n tools: z.array(AiToolDefinitionSchema).optional(),\n tool_choice: z.union([\n z.literal('auto'),\n z.literal('none'),\n z.object({ type: z.literal('function'), function: z.object({ name: z.string() }) }),\n ]).optional(),\n})\n\n/** Token 使用统计 Schema。 */\nexport const AiTokenUsageSchema = z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n})\n\n/** 助手消息 Schema。 */\nexport const AiAssistantMessageSchema = z.object({\n role: z.literal('assistant'),\n content: z.string().nullable().optional(),\n tool_calls: z.array(AiToolCallSchema).optional(),\n})\n\n/** 聊天完成选择 Schema。 */\nexport const AiChatCompletionChoiceSchema = z.object({\n index: z.number(),\n message: AiAssistantMessageSchema,\n finish_reason: z.enum(['stop', 'length', 'tool_calls', 'content_filter']),\n})\n\n/** 聊天完成业务数据 Schema。 */\nexport const AiChatCompletionDataSchema = z.object({\n id: z.string(),\n object: z.literal('chat.completion'),\n created: z.number(),\n model: z.string(),\n choices: z.array(AiChatCompletionChoiceSchema),\n usage: AiTokenUsageSchema,\n})\n\n/** 简单消息入参 Schema。 */\nexport const AiSendMessageInputSchema = z.object({\n message: z.string().min(1),\n systemPrompt: z.string().optional(),\n model: z.string().optional(),\n temperature: z.number().min(0).max(2).optional(),\n})\n\n/** 简单消息业务数据 Schema。 */\nexport const AiSendMessageDataSchema = z.object({\n content: z.string(),\n model: z.string(),\n usage: AiTokenUsageSchema.optional(),\n})\n\n/** 记忆类型 Schema。 */\nexport const AiMemoryTypeSchema = z.enum(['fact', 'preference', 'event', 'entity', 'instruction'])\n\n/** 记忆条目 Schema。 */\nexport const AiMemoryEntrySchema = z.object({\n id: z.string(),\n content: z.string(),\n type: AiMemoryTypeSchema,\n importance: z.number(),\n objectId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n createdAt: z.number(),\n lastAccessedAt: z.number(),\n accessCount: z.number(),\n})\n\n/** 记忆检索入参 Schema。 */\nexport const AiMemoryRecallInputSchema = z.object({\n query: z.string().min(1),\n topK: z.number().int().min(1).optional(),\n types: z.array(AiMemoryTypeSchema).optional(),\n minImportance: z.number().min(0).max(1).optional(),\n objectId: z.string().optional(),\n})\n\n/** 记忆检索业务数据 Schema。 */\nexport const AiMemoryRecallDataSchema = z.object({\n items: z.array(AiMemoryEntrySchema),\n})\n\n/** 记忆列表入参 Schema。 */\nexport const AiMemoryListInputSchema = z.object({\n types: z.array(AiMemoryTypeSchema).optional(),\n objectId: z.string().optional(),\n offset: z.number().int().min(0).optional(),\n limit: z.number().int().min(1).max(100).optional(),\n})\n\n/** 记忆列表业务数据 Schema。 */\nexport const AiMemoryListDataSchema = z.object({\n items: z.array(AiMemoryEntrySchema),\n total: z.number(),\n})\n\n/** 会话信息 Schema。 */\nexport const AiSessionInfoSchema = z.object({\n objectId: z.string(),\n sessionId: z.string(),\n createdAt: z.number(),\n updatedAt: z.number(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n/** 会话列表入参 Schema。 */\nexport const AiSessionListInputSchema = z.object({\n objectId: z.string().min(1),\n})\n\n/** 会话列表业务数据 Schema。 */\nexport const AiSessionListDataSchema = z.object({\n items: z.array(AiSessionInfoSchema),\n})\n\n/** 对话记录 Schema。 */\nexport const AiChatRecordSchema = z.object({\n id: z.string(),\n objectId: z.string(),\n sessionId: z.string(),\n request: z.object({\n model: z.string(),\n messages: z.array(AiChatMessageSchema),\n }),\n response: z.object({\n content: z.string(),\n toolCalls: z.array(AiToolCallSchema).optional(),\n finishReason: z.string(),\n usage: AiTokenUsageSchema,\n }),\n createdAt: z.number(),\n duration: z.number(),\n})\n\n/** 对话历史入参 Schema。 */\nexport const AiChatHistoryInputSchema = z.object({\n objectId: z.string().min(1),\n sessionId: z.string().min(1),\n limit: z.number().int().min(1).max(200).optional(),\n order: z.enum(['asc', 'desc']).optional(),\n})\n\n/** 对话历史业务数据 Schema。 */\nexport const AiChatHistoryDataSchema = z.object({\n items: z.array(AiChatRecordSchema),\n})\n\nexport const AiChatCompletionOutputSchema = haiResultSchema(AiChatCompletionDataSchema)\nexport const AiSendMessageOutputSchema = haiResultSchema(AiSendMessageDataSchema)\nexport const AiMemoryRecallOutputSchema = haiResultSchema(AiMemoryRecallDataSchema)\nexport const AiMemoryListOutputSchema = haiResultSchema(AiMemoryListDataSchema)\nexport const AiSessionListOutputSchema = haiResultSchema(AiSessionListDataSchema)\nexport const AiChatHistoryOutputSchema = haiResultSchema(AiChatHistoryDataSchema)\n\nexport type AiChatCompletionInput = z.infer<typeof AiChatCompletionInputSchema>\nexport type AiChatCompletionData = z.infer<typeof AiChatCompletionDataSchema>\nexport type AiChatCompletionOutput = z.infer<typeof AiChatCompletionOutputSchema>\nexport type AiSendMessageInput = z.infer<typeof AiSendMessageInputSchema>\nexport type AiSendMessageData = z.infer<typeof AiSendMessageDataSchema>\nexport type AiSendMessageOutput = z.infer<typeof AiSendMessageOutputSchema>\nexport type AiMemoryRecallInput = z.infer<typeof AiMemoryRecallInputSchema>\nexport type AiMemoryListInput = z.infer<typeof AiMemoryListInputSchema>\nexport type AiSessionListInput = z.infer<typeof AiSessionListInputSchema>\nexport type AiChatHistoryInput = z.infer<typeof AiChatHistoryInputSchema>\nexport type AiChatRecord = z.infer<typeof AiChatRecordSchema>\n","/**\n * @h-ai/api-contract — AI 领域 contract\n *\n * 定义 AI 功能相关 API 的接口边界:聊天补全、记忆管理与会话管理。\n * 聊天补全使用 OpenAI 兼容结构(`messages` 数组 + `choices` 数组)。\n * 所有接口均需 Bearer Token 认证(由 `@h-ai/serv` 的 feature 层强制)。\n * @module ai-contract\n */\n\nimport { route } from '../common/route.js'\nimport {\n AiChatCompletionInputSchema,\n AiChatCompletionOutputSchema,\n AiChatHistoryInputSchema,\n AiChatHistoryOutputSchema,\n AiMemoryListInputSchema,\n AiMemoryListOutputSchema,\n AiMemoryRecallInputSchema,\n AiMemoryRecallOutputSchema,\n AiSendMessageInputSchema,\n AiSendMessageOutputSchema,\n AiSessionListInputSchema,\n AiSessionListOutputSchema,\n} from './ai-schemas.js'\n\n/** AI 领域 oRPC contract。 */\nexport const aiContract = {\n chats: {\n createCompletion: route({ method: 'POST', path: '/ai/chats/completions', operationId: 'ai.chats.createCompletion', summary: 'Create chat completion', tags: ['ai', 'chats'] })\n .input(AiChatCompletionInputSchema)\n .output(AiChatCompletionOutputSchema),\n sendMessage: route({ method: 'POST', path: '/ai/chats/messages', operationId: 'ai.chats.sendMessage', summary: 'Send a single chat message', tags: ['ai', 'chats'] })\n .input(AiSendMessageInputSchema)\n .output(AiSendMessageOutputSchema),\n listHistory: route({ method: 'POST', path: '/ai/chats/history', operationId: 'ai.chats.listHistory', summary: 'List chat history', tags: ['ai', 'chats'] })\n .input(AiChatHistoryInputSchema)\n .output(AiChatHistoryOutputSchema),\n },\n memories: {\n recall: route({ method: 'POST', path: '/ai/memories/recall', operationId: 'ai.memories.recall', summary: 'Recall relevant memories', tags: ['ai', 'memories'] })\n .input(AiMemoryRecallInputSchema)\n .output(AiMemoryRecallOutputSchema),\n list: route({ method: 'POST', path: '/ai/memories/list', operationId: 'ai.memories.list', summary: 'List memories', tags: ['ai', 'memories'] })\n .input(AiMemoryListInputSchema)\n .output(AiMemoryListOutputSchema),\n },\n sessions: {\n list: route({ method: 'POST', path: '/ai/sessions/list', operationId: 'ai.sessions.list', summary: 'List sessions', tags: ['ai', 'sessions'] })\n .input(AiSessionListInputSchema)\n .output(AiSessionListOutputSchema),\n },\n}\n\nexport type AiContract = typeof aiContract\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/pagination-schemas.ts","../src/iam/iam-schemas.ts","../src/iam/iam-contract.ts"],"names":["z"],"mappings":"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","file":"chunk-ZK43WHUQ.js","sourcesContent":["/**\n * @h-ai/api-contract — 分页 Schema\n *\n * 提供通用分页查询参数与分页结果封装,供各领域 contract 扩展复用。\n * @module pagination-schemas\n */\n\nimport { z } from 'zod'\n\n/**\n * 通用分页查询参数 Schema。\n *\n * 页码和页大小均为可选,由服务端提供合理默认值(page=1, pageSize=20)。\n * 支持字符串 coerce,适配 GET 请求 query string 场景。\n *\n * @example\n * ```ts\n * // 扩展为领域专属查询参数\n * const IamListUsersInputSchema = PaginationQuerySchema.extend({\n * search: z.string().optional(),\n * })\n * ```\n */\nexport const PaginationQuerySchema = z.object({\n page: z.coerce.number().int().min(1).optional(),\n pageSize: z.coerce.number().int().min(1).max(100).optional(),\n})\n\n/**\n * 创建分页结果 Schema。\n *\n * 生成标准分页响应结构 `{ items, total, page, pageSize }`,\n * 与 `@h-ai/reldb` 的 `PageResult<T>` 保持对齐。\n *\n * @param itemSchema - 分页项的 Zod Schema\n * @returns 包含 items/total/page/pageSize 的对象 Schema\n *\n * @example\n * ```ts\n * const IamUsersPageOutputSchema = haiResultSchema(\n * paginatedSchema(IamUserSchema)\n * )\n * // 解析结果形如:\n * // { success: true, data: { items: [...], total: 100, page: 1, pageSize: 20 } }\n * ```\n */\nexport function paginatedSchema<T extends z.ZodType>(itemSchema: T) {\n return z.object({\n items: z.array(itemSchema),\n total: z.number(),\n page: z.number(),\n pageSize: z.number(),\n })\n}\n","/**\n * @h-ai/api-contract — IAM 领域 Schema\n *\n * 包含用户、Token、角色、权限以及相关 input/output 的 Zod Schema 定义。\n * 所有 Output Schema 均用 `haiResultSchema()` 封装,与 `@h-ai/core` HaiResult<T> 保持一致。\n * @module iam-schemas\n */\n\nimport { z } from 'zod'\nimport { paginatedSchema, PaginationQuerySchema } from '../common/pagination-schemas.js'\nimport { haiResultSchema } from '../common/result-schemas.js'\n\n/** 用户基础信息 Schema。 */\nexport const IamUserSchema = z.object({\n id: z.string(),\n username: z.string(),\n email: z.string().optional(),\n phone: z.string().optional(),\n displayName: z.string().optional(),\n avatarUrl: z.string().optional(),\n enabled: z.boolean(),\n emailVerified: z.boolean().optional(),\n phoneVerified: z.boolean().optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n/** Token 对 Schema。 */\nexport const IamTokenPairSchema = z.object({\n accessToken: z.string(),\n refreshToken: z.string().optional(),\n expiresIn: z.number(),\n tokenType: z.literal('Bearer'),\n})\n\n/** 协议展示 Schema。 */\nexport const IamAgreementDisplaySchema = z.object({\n userAgreementUrl: z.string().optional(),\n privacyPolicyUrl: z.string().optional(),\n showOnRegister: z.boolean(),\n showOnLogin: z.boolean(),\n})\n\n/** 登录结果业务数据 Schema。 */\nexport const IamAuthResultSchema = z.object({\n user: IamUserSchema,\n tokens: IamTokenPairSchema,\n roles: z.array(z.string()).default([]),\n permissions: z.array(z.string()).default([]),\n agreements: IamAgreementDisplaySchema.optional(),\n})\n\n/** 密码登录入参 Schema。 */\nexport const IamLoginInputSchema = z.object({\n identifier: z.string().min(1),\n password: z.string().min(1),\n rememberMe: z.boolean().optional(),\n})\n\n/** OTP 登录入参 Schema。 */\nexport const IamOtpLoginInputSchema = z.object({\n identifier: z.string().min(1),\n code: z.string().min(1),\n})\n\n/** 登出入参 Schema。 */\nexport const IamLogoutInputSchema = z.object({\n accessToken: z.string().min(1).optional(),\n})\n\n/** 发送 OTP 入参 Schema。 */\nexport const IamSendOtpInputSchema = z.object({\n identifier: z.string().min(1),\n})\n\n/** 发送 OTP 业务数据 Schema。 */\nexport const IamSendOtpDataSchema = z.object({\n expiresAt: z.coerce.date(),\n})\n\n/** Token 刷新入参 Schema。 */\nexport const IamRefreshTokenInputSchema = z.object({\n refreshToken: z.string().min(1),\n})\n\n/** Token 刷新业务数据 Schema。 */\nexport const IamRefreshTokenDataSchema = z.object({\n tokens: IamTokenPairSchema,\n})\n\n/** 注册入参 Schema。 */\nexport const IamRegisterInputSchema = z.object({\n username: z.string().min(1),\n password: z.string().min(6),\n email: z.string().email().optional(),\n phone: z.string().optional(),\n displayName: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n/** 修改密码入参 Schema。 */\nexport const IamChangePasswordInputSchema = z.object({\n oldPassword: z.string().min(1),\n newPassword: z.string().min(6),\n})\n\n/** 当前用户更新入参 Schema。 */\nexport const IamUpdateCurrentUserInputSchema = z.object({\n username: z.string().min(1).optional(),\n email: z.string().email().optional(),\n displayName: z.string().optional(),\n avatarUrl: z.string().optional(),\n phone: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n})\n\n/** 用户列表查询入参 Schema。 */\nexport const IamListUsersInputSchema = PaginationQuerySchema.extend({\n search: z.string().optional(),\n // 注意:HTTP query 是字符串,使用枚举 + transform 避免 z.coerce.boolean 的 'false' → true 陷阱。\n enabled: z.enum(['true', 'false']).optional().transform(v => v === undefined ? undefined : v === 'true'),\n})\n\n/** Admin 创建用户入参 Schema。 */\nexport const IamAdminCreateUserInputSchema = z.object({\n username: z.string().min(1),\n email: z.string().email().optional(),\n phone: z.string().optional(),\n password: z.string().min(6),\n displayName: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n roleIds: z.array(z.string()).optional(),\n enabled: z.boolean().optional(),\n})\n\n/** Admin 更新用户入参 Schema。 */\nexport const IamAdminUpdateUserInputSchema = z.object({\n id: z.string().min(1),\n username: z.string().min(1).optional(),\n email: z.string().email().optional(),\n phone: z.string().optional(),\n displayName: z.string().optional(),\n avatarUrl: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n enabled: z.boolean().optional(),\n roleIds: z.array(z.string()).optional(),\n})\n\n/** Admin 删除用户入参 Schema。 */\nexport const IamUserIdInputSchema = z.object({\n id: z.string().min(1),\n})\n\n/** Admin 重置密码入参 Schema。 */\nexport const IamAdminResetPasswordInputSchema = z.object({\n id: z.string().min(1),\n newPassword: z.string().min(6),\n})\n\n/** 角色基础信息 Schema。 */\nexport const IamRoleSchema = z.object({\n id: z.string(),\n code: z.string(),\n name: z.string(),\n description: z.string().optional(),\n isSystem: z.boolean().optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\n\n/** 创建角色入参 Schema。 */\nexport const IamCreateRoleInputSchema = z.object({\n code: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n isSystem: z.boolean().optional(),\n})\n\n/** 更新角色入参 Schema。 */\nexport const IamUpdateRoleInputSchema = z.object({\n id: z.string().min(1),\n name: z.string().min(1).optional(),\n description: z.string().optional(),\n})\n\n/** 权限类型 Schema。 */\nexport const IamPermissionTypeSchema = z.enum(['menu', 'api', 'button'])\n\n/** 权限基础信息 Schema。 */\nexport const IamPermissionSchema = z.object({\n id: z.string(),\n code: z.string(),\n name: z.string(),\n description: z.string().optional(),\n type: IamPermissionTypeSchema.optional(),\n resource: z.string().optional(),\n action: z.string().optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n})\n\n/** 权限列表查询入参 Schema。 */\nexport const IamListPermissionsInputSchema = PaginationQuerySchema.extend({\n search: z.string().optional(),\n type: IamPermissionTypeSchema.optional(),\n})\n\n/** 创建权限入参 Schema。 */\nexport const IamCreatePermissionInputSchema = z.object({\n code: z.string().min(1),\n name: z.string().min(1),\n description: z.string().optional(),\n resource: z.string().optional(),\n action: z.string().optional(),\n type: IamPermissionTypeSchema.optional(),\n})\n\nexport const IamAuthResultOutputSchema = haiResultSchema(IamAuthResultSchema)\nexport const IamRefreshTokenOutputSchema = haiResultSchema(IamRefreshTokenDataSchema)\nexport const IamSendOtpOutputSchema = haiResultSchema(IamSendOtpDataSchema)\nexport const IamUserOutputSchema = haiResultSchema(IamUserSchema)\nexport const IamNullableUserOutputSchema = haiResultSchema(IamUserSchema.nullable())\nexport const IamUsersPageOutputSchema = haiResultSchema(paginatedSchema(IamUserSchema))\nexport const IamRoleOutputSchema = haiResultSchema(IamRoleSchema)\nexport const IamNullableRoleOutputSchema = haiResultSchema(IamRoleSchema.nullable())\nexport const IamRolesPageOutputSchema = haiResultSchema(paginatedSchema(IamRoleSchema))\nexport const IamPermissionOutputSchema = haiResultSchema(IamPermissionSchema)\nexport const IamNullablePermissionOutputSchema = haiResultSchema(IamPermissionSchema.nullable())\nexport const IamPermissionsPageOutputSchema = haiResultSchema(paginatedSchema(IamPermissionSchema))\nexport const IamVoidOutputSchema = haiResultSchema(z.void())\n\nexport type IamLoginInput = z.infer<typeof IamLoginInputSchema>\nexport type IamOtpLoginInput = z.infer<typeof IamOtpLoginInputSchema>\nexport type IamLogoutInput = z.infer<typeof IamLogoutInputSchema>\nexport type IamSendOtpInput = z.infer<typeof IamSendOtpInputSchema>\nexport type IamAuthResultOutput = z.infer<typeof IamAuthResultOutputSchema>\nexport type IamRefreshTokenInput = z.infer<typeof IamRefreshTokenInputSchema>\nexport type IamRefreshTokenOutput = z.infer<typeof IamRefreshTokenOutputSchema>\nexport type IamRegisterInput = z.infer<typeof IamRegisterInputSchema>\nexport type IamChangePasswordInput = z.infer<typeof IamChangePasswordInputSchema>\nexport type IamUpdateCurrentUserInput = z.infer<typeof IamUpdateCurrentUserInputSchema>\nexport type IamListUsersInput = z.infer<typeof IamListUsersInputSchema>\nexport type IamAdminCreateUserInput = z.infer<typeof IamAdminCreateUserInputSchema>\nexport type IamAdminUpdateUserInput = z.infer<typeof IamAdminUpdateUserInputSchema>\nexport type IamUserIdInput = z.infer<typeof IamUserIdInputSchema>\nexport type IamAdminResetPasswordInput = z.infer<typeof IamAdminResetPasswordInputSchema>\nexport type IamCreateRoleInput = z.infer<typeof IamCreateRoleInputSchema>\nexport type IamUpdateRoleInput = z.infer<typeof IamUpdateRoleInputSchema>\nexport type IamListPermissionsInput = z.infer<typeof IamListPermissionsInputSchema>\nexport type IamCreatePermissionInput = z.infer<typeof IamCreatePermissionInputSchema>\n","/**\n * @h-ai/api-contract — IAM 领域 contract\n *\n * 定义身份认证与权限管理相关 API 的接口边界:\n * - auth:登录、登出、OTP、刷新 Token、注册、修改密码\n * - users:Admin 管理用户(CRUD + 重置密码)\n * - roles:Admin 管理角色(CRUD)\n * - permissions:Admin 管理权限(CRUD)\n *\n * auth.* 入口址前缀为 `/auth`;users/roles/permissions 前缀为 `/iam`。\n * @module iam-contract\n */\n\nimport { route } from '../common/route.js'\nimport {\n IamAdminCreateUserInputSchema,\n IamAdminResetPasswordInputSchema,\n IamAdminUpdateUserInputSchema,\n IamAuthResultOutputSchema,\n IamChangePasswordInputSchema,\n IamCreatePermissionInputSchema,\n IamCreateRoleInputSchema,\n IamListPermissionsInputSchema,\n IamListUsersInputSchema,\n IamLoginInputSchema,\n IamLogoutInputSchema,\n IamNullablePermissionOutputSchema,\n IamNullableRoleOutputSchema,\n IamNullableUserOutputSchema,\n IamOtpLoginInputSchema,\n IamPermissionOutputSchema,\n IamPermissionsPageOutputSchema,\n IamRefreshTokenInputSchema,\n IamRefreshTokenOutputSchema,\n IamRegisterInputSchema,\n IamRoleOutputSchema,\n IamRolesPageOutputSchema,\n IamSendOtpInputSchema,\n IamSendOtpOutputSchema,\n IamUpdateCurrentUserInputSchema,\n IamUpdateRoleInputSchema,\n IamUserIdInputSchema,\n IamUserOutputSchema,\n IamUsersPageOutputSchema,\n IamVoidOutputSchema,\n} from './iam-schemas.js'\n\n/**\n * IAM auth 端点的路由路径(相对于 apiPrefix)。\n * 作为单一事实来源,供 `@h-ai/serv` 的 cookie 中间件复用,避免硬编码。\n */\nexport const IAM_AUTH_ROUTES = {\n login: '/auth/login',\n loginWithOtp: '/auth/login/otp',\n register: '/auth/register',\n logout: '/auth/logout',\n refresh: '/auth/refresh',\n} as const\n\n/** IAM 领域 oRPC contract。 */\nexport const iamContract = {\n auth: {\n login: route({ method: 'POST', path: IAM_AUTH_ROUTES.login, operationId: 'iam.auth.login', summary: 'Password login', tags: ['iam', 'auth'] })\n .input(IamLoginInputSchema)\n .output(IamAuthResultOutputSchema),\n loginWithOtp: route({ method: 'POST', path: IAM_AUTH_ROUTES.loginWithOtp, operationId: 'iam.auth.loginWithOtp', summary: 'OTP login', tags: ['iam', 'auth'] })\n .input(IamOtpLoginInputSchema)\n .output(IamAuthResultOutputSchema),\n logout: route({ method: 'POST', path: IAM_AUTH_ROUTES.logout, operationId: 'iam.auth.logout', summary: 'Logout', tags: ['iam', 'auth'] })\n .input(IamLogoutInputSchema)\n .output(IamVoidOutputSchema),\n currentUser: route({ method: 'GET', path: '/auth/me', operationId: 'iam.auth.currentUser', summary: 'Get current user', tags: ['iam', 'auth'] })\n .output(IamUserOutputSchema),\n refresh: route({ method: 'POST', path: IAM_AUTH_ROUTES.refresh, operationId: 'iam.auth.refresh', summary: 'Refresh access token', tags: ['iam', 'auth'] })\n .input(IamRefreshTokenInputSchema)\n .output(IamRefreshTokenOutputSchema),\n sendOtp: route({ method: 'POST', path: '/auth/otp/send', operationId: 'iam.auth.sendOtp', summary: 'Send OTP', tags: ['iam', 'auth'] })\n .input(IamSendOtpInputSchema)\n .output(IamSendOtpOutputSchema),\n register: route({ method: 'POST', path: IAM_AUTH_ROUTES.register, operationId: 'iam.auth.register', summary: 'Register and login', tags: ['iam', 'auth'] })\n .input(IamRegisterInputSchema)\n .output(IamAuthResultOutputSchema),\n changePassword: route({ method: 'POST', path: '/auth/change-password', operationId: 'iam.auth.changePassword', summary: 'Change current user password', tags: ['iam', 'auth'] })\n .input(IamChangePasswordInputSchema)\n .output(IamVoidOutputSchema),\n updateCurrentUser: route({ method: 'PUT', path: '/auth/me', operationId: 'iam.auth.updateCurrentUser', summary: 'Update current user', tags: ['iam', 'auth'] })\n .input(IamUpdateCurrentUserInputSchema)\n .output(IamUserOutputSchema),\n },\n users: {\n list: route({ method: 'GET', path: '/iam/users', operationId: 'iam.users.list', summary: 'List users', tags: ['iam', 'users'] })\n .input(IamListUsersInputSchema)\n .output(IamUsersPageOutputSchema),\n get: route({ method: 'GET', path: '/iam/users/{id}', operationId: 'iam.users.get', summary: 'Get user', tags: ['iam', 'users'] })\n .input(IamUserIdInputSchema)\n .output(IamNullableUserOutputSchema),\n create: route({ method: 'POST', path: '/iam/users', operationId: 'iam.users.create', summary: 'Create user', tags: ['iam', 'users'] })\n .input(IamAdminCreateUserInputSchema)\n .output(IamUserOutputSchema),\n update: route({ method: 'PUT', path: '/iam/users/{id}', operationId: 'iam.users.update', summary: 'Update user', tags: ['iam', 'users'] })\n .input(IamAdminUpdateUserInputSchema)\n .output(IamUserOutputSchema),\n delete: route({ method: 'DELETE', path: '/iam/users/{id}', operationId: 'iam.users.delete', summary: 'Delete user', tags: ['iam', 'users'] })\n .input(IamUserIdInputSchema)\n .output(IamVoidOutputSchema),\n resetPassword: route({ method: 'POST', path: '/iam/users/{id}/reset-password', operationId: 'iam.users.resetPassword', summary: 'Reset user password', tags: ['iam', 'users'] })\n .input(IamAdminResetPasswordInputSchema)\n .output(IamVoidOutputSchema),\n },\n roles: {\n list: route({ method: 'GET', path: '/iam/roles', operationId: 'iam.roles.list', summary: 'List roles', tags: ['iam', 'roles'] })\n .output(IamRolesPageOutputSchema),\n get: route({ method: 'GET', path: '/iam/roles/{id}', operationId: 'iam.roles.get', summary: 'Get role', tags: ['iam', 'roles'] })\n .input(IamUserIdInputSchema)\n .output(IamNullableRoleOutputSchema),\n create: route({ method: 'POST', path: '/iam/roles', operationId: 'iam.roles.create', summary: 'Create role', tags: ['iam', 'roles'] })\n .input(IamCreateRoleInputSchema)\n .output(IamRoleOutputSchema),\n update: route({ method: 'PUT', path: '/iam/roles/{id}', operationId: 'iam.roles.update', summary: 'Update role', tags: ['iam', 'roles'] })\n .input(IamUpdateRoleInputSchema)\n .output(IamRoleOutputSchema),\n delete: route({ method: 'DELETE', path: '/iam/roles/{id}', operationId: 'iam.roles.delete', summary: 'Delete role', tags: ['iam', 'roles'] })\n .input(IamUserIdInputSchema)\n .output(IamVoidOutputSchema),\n },\n permissions: {\n list: route({ method: 'GET', path: '/iam/permissions', operationId: 'iam.permissions.list', summary: 'List permissions', tags: ['iam', 'permissions'] })\n .input(IamListPermissionsInputSchema)\n .output(IamPermissionsPageOutputSchema),\n get: route({ method: 'GET', path: '/iam/permissions/{id}', operationId: 'iam.permissions.get', summary: 'Get permission', tags: ['iam', 'permissions'] })\n .input(IamUserIdInputSchema)\n .output(IamNullablePermissionOutputSchema),\n create: route({ method: 'POST', path: '/iam/permissions', operationId: 'iam.permissions.create', summary: 'Create permission', tags: ['iam', 'permissions'] })\n .input(IamCreatePermissionInputSchema)\n .output(IamPermissionOutputSchema),\n delete: route({ method: 'DELETE', path: '/iam/permissions/{id}', operationId: 'iam.permissions.delete', summary: 'Delete permission', tags: ['iam', 'permissions'] })\n .input(IamUserIdInputSchema)\n .output(IamVoidOutputSchema),\n },\n}\n\nexport type IamContract = typeof iamContract\n"]}