persona-core 1.0.0

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.
Files changed (218) hide show
  1. package/dist/db/client.d.ts +55 -0
  2. package/dist/db/client.d.ts.map +1 -0
  3. package/dist/db/client.js +157 -0
  4. package/dist/db/client.js.map +1 -0
  5. package/dist/db/index.d.ts +7 -0
  6. package/dist/db/index.d.ts.map +1 -0
  7. package/dist/db/index.js +7 -0
  8. package/dist/db/index.js.map +1 -0
  9. package/dist/db/repositories/executionRepository.d.ts +15 -0
  10. package/dist/db/repositories/executionRepository.d.ts.map +1 -0
  11. package/dist/db/repositories/executionRepository.js +41 -0
  12. package/dist/db/repositories/executionRepository.js.map +1 -0
  13. package/dist/db/repositories/index.d.ts +10 -0
  14. package/dist/db/repositories/index.d.ts.map +1 -0
  15. package/dist/db/repositories/index.js +10 -0
  16. package/dist/db/repositories/index.js.map +1 -0
  17. package/dist/db/repositories/nodeRepository.d.ts +15 -0
  18. package/dist/db/repositories/nodeRepository.d.ts.map +1 -0
  19. package/dist/db/repositories/nodeRepository.js +61 -0
  20. package/dist/db/repositories/nodeRepository.js.map +1 -0
  21. package/dist/db/repositories/personaRepository.d.ts +13 -0
  22. package/dist/db/repositories/personaRepository.d.ts.map +1 -0
  23. package/dist/db/repositories/personaRepository.js +42 -0
  24. package/dist/db/repositories/personaRepository.js.map +1 -0
  25. package/dist/db/repositories/planResultRepository.d.ts +13 -0
  26. package/dist/db/repositories/planResultRepository.d.ts.map +1 -0
  27. package/dist/db/repositories/planResultRepository.js +30 -0
  28. package/dist/db/repositories/planResultRepository.js.map +1 -0
  29. package/dist/db/repositories/scheduleRepository.d.ts +27 -0
  30. package/dist/db/repositories/scheduleRepository.d.ts.map +1 -0
  31. package/dist/db/repositories/scheduleRepository.js +187 -0
  32. package/dist/db/repositories/scheduleRepository.js.map +1 -0
  33. package/dist/db/repositories/types.d.ts +132 -0
  34. package/dist/db/repositories/types.d.ts.map +1 -0
  35. package/dist/db/repositories/types.js +5 -0
  36. package/dist/db/repositories/types.js.map +1 -0
  37. package/dist/db/schema.d.ts +742 -0
  38. package/dist/db/schema.d.ts.map +1 -0
  39. package/dist/db/schema.js +85 -0
  40. package/dist/db/schema.js.map +1 -0
  41. package/dist/index.d.ts +11 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +16 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/llm/capabilities.d.ts +56 -0
  46. package/dist/llm/capabilities.d.ts.map +1 -0
  47. package/dist/llm/capabilities.js +305 -0
  48. package/dist/llm/capabilities.js.map +1 -0
  49. package/dist/llm/index.d.ts +7 -0
  50. package/dist/llm/index.d.ts.map +1 -0
  51. package/dist/llm/index.js +10 -0
  52. package/dist/llm/index.js.map +1 -0
  53. package/dist/llm/interfaces.d.ts +249 -0
  54. package/dist/llm/interfaces.d.ts.map +1 -0
  55. package/dist/llm/interfaces.js +5 -0
  56. package/dist/llm/interfaces.js.map +1 -0
  57. package/dist/llm/providers/anthropic-compatible.d.ts +48 -0
  58. package/dist/llm/providers/anthropic-compatible.d.ts.map +1 -0
  59. package/dist/llm/providers/anthropic-compatible.js +163 -0
  60. package/dist/llm/providers/anthropic-compatible.js.map +1 -0
  61. package/dist/llm/providers/index.d.ts +14 -0
  62. package/dist/llm/providers/index.d.ts.map +1 -0
  63. package/dist/llm/providers/index.js +12 -0
  64. package/dist/llm/providers/index.js.map +1 -0
  65. package/dist/llm/providers/openai-compatible.d.ts +59 -0
  66. package/dist/llm/providers/openai-compatible.d.ts.map +1 -0
  67. package/dist/llm/providers/openai-compatible.js +207 -0
  68. package/dist/llm/providers/openai-compatible.js.map +1 -0
  69. package/dist/services/actionService.d.ts +132 -0
  70. package/dist/services/actionService.d.ts.map +1 -0
  71. package/dist/services/actionService.js +971 -0
  72. package/dist/services/actionService.js.map +1 -0
  73. package/dist/services/branchService.d.ts +19 -0
  74. package/dist/services/branchService.d.ts.map +1 -0
  75. package/dist/services/branchService.js +50 -0
  76. package/dist/services/branchService.js.map +1 -0
  77. package/dist/services/expressionEvaluator.d.ts +16 -0
  78. package/dist/services/expressionEvaluator.d.ts.map +1 -0
  79. package/dist/services/expressionEvaluator.js +70 -0
  80. package/dist/services/expressionEvaluator.js.map +1 -0
  81. package/dist/services/factory.d.ts +43 -0
  82. package/dist/services/factory.d.ts.map +1 -0
  83. package/dist/services/factory.js +30 -0
  84. package/dist/services/factory.js.map +1 -0
  85. package/dist/services/index.d.ts +15 -0
  86. package/dist/services/index.d.ts.map +1 -0
  87. package/dist/services/index.js +17 -0
  88. package/dist/services/index.js.map +1 -0
  89. package/dist/services/interfaces.d.ts +117 -0
  90. package/dist/services/interfaces.d.ts.map +1 -0
  91. package/dist/services/interfaces.js +5 -0
  92. package/dist/services/interfaces.js.map +1 -0
  93. package/dist/services/loaders/fileLoader.d.ts +56 -0
  94. package/dist/services/loaders/fileLoader.d.ts.map +1 -0
  95. package/dist/services/loaders/fileLoader.js +161 -0
  96. package/dist/services/loaders/fileLoader.js.map +1 -0
  97. package/dist/services/loaders/index.d.ts +6 -0
  98. package/dist/services/loaders/index.d.ts.map +1 -0
  99. package/dist/services/loaders/index.js +6 -0
  100. package/dist/services/loaders/index.js.map +1 -0
  101. package/dist/services/loaders/transformers.d.ts +32 -0
  102. package/dist/services/loaders/transformers.d.ts.map +1 -0
  103. package/dist/services/loaders/transformers.js +78 -0
  104. package/dist/services/loaders/transformers.js.map +1 -0
  105. package/dist/services/mockAction.d.ts +65 -0
  106. package/dist/services/mockAction.d.ts.map +1 -0
  107. package/dist/services/mockAction.js +153 -0
  108. package/dist/services/mockAction.js.map +1 -0
  109. package/dist/services/mockBranch.d.ts +50 -0
  110. package/dist/services/mockBranch.d.ts.map +1 -0
  111. package/dist/services/mockBranch.js +75 -0
  112. package/dist/services/mockBranch.js.map +1 -0
  113. package/dist/services/mockThinking.d.ts +68 -0
  114. package/dist/services/mockThinking.d.ts.map +1 -0
  115. package/dist/services/mockThinking.js +89 -0
  116. package/dist/services/mockThinking.js.map +1 -0
  117. package/dist/services/thinkingService.d.ts +15 -0
  118. package/dist/services/thinkingService.d.ts.map +1 -0
  119. package/dist/services/thinkingService.js +117 -0
  120. package/dist/services/thinkingService.js.map +1 -0
  121. package/dist/temporal/activities/actionActivities.d.ts +15 -0
  122. package/dist/temporal/activities/actionActivities.d.ts.map +1 -0
  123. package/dist/temporal/activities/actionActivities.js +140 -0
  124. package/dist/temporal/activities/actionActivities.js.map +1 -0
  125. package/dist/temporal/activities/branchActivities.d.ts +13 -0
  126. package/dist/temporal/activities/branchActivities.d.ts.map +1 -0
  127. package/dist/temporal/activities/branchActivities.js +26 -0
  128. package/dist/temporal/activities/branchActivities.js.map +1 -0
  129. package/dist/temporal/activities/dbActivities.d.ts +14 -0
  130. package/dist/temporal/activities/dbActivities.d.ts.map +1 -0
  131. package/dist/temporal/activities/dbActivities.js +84 -0
  132. package/dist/temporal/activities/dbActivities.js.map +1 -0
  133. package/dist/temporal/activities/index.d.ts +9 -0
  134. package/dist/temporal/activities/index.d.ts.map +1 -0
  135. package/dist/temporal/activities/index.js +9 -0
  136. package/dist/temporal/activities/index.js.map +1 -0
  137. package/dist/temporal/activities/thinkingActivities.d.ts +17 -0
  138. package/dist/temporal/activities/thinkingActivities.d.ts.map +1 -0
  139. package/dist/temporal/activities/thinkingActivities.js +145 -0
  140. package/dist/temporal/activities/thinkingActivities.js.map +1 -0
  141. package/dist/temporal/activities/types.d.ts +100 -0
  142. package/dist/temporal/activities/types.d.ts.map +1 -0
  143. package/dist/temporal/activities/types.js +5 -0
  144. package/dist/temporal/activities/types.js.map +1 -0
  145. package/dist/temporal/client.d.ts +43 -0
  146. package/dist/temporal/client.d.ts.map +1 -0
  147. package/dist/temporal/client.js +75 -0
  148. package/dist/temporal/client.js.map +1 -0
  149. package/dist/temporal/index.d.ts +10 -0
  150. package/dist/temporal/index.d.ts.map +1 -0
  151. package/dist/temporal/index.js +12 -0
  152. package/dist/temporal/index.js.map +1 -0
  153. package/dist/temporal/personaCoreClient.d.ts +199 -0
  154. package/dist/temporal/personaCoreClient.d.ts.map +1 -0
  155. package/dist/temporal/personaCoreClient.js +233 -0
  156. package/dist/temporal/personaCoreClient.js.map +1 -0
  157. package/dist/temporal/personaWorker.d.ts +141 -0
  158. package/dist/temporal/personaWorker.d.ts.map +1 -0
  159. package/dist/temporal/personaWorker.js +93 -0
  160. package/dist/temporal/personaWorker.js.map +1 -0
  161. package/dist/temporal/worker.d.ts +66 -0
  162. package/dist/temporal/worker.d.ts.map +1 -0
  163. package/dist/temporal/worker.js +109 -0
  164. package/dist/temporal/worker.js.map +1 -0
  165. package/dist/temporal/workflows/index.d.ts +5 -0
  166. package/dist/temporal/workflows/index.d.ts.map +1 -0
  167. package/dist/temporal/workflows/index.js +5 -0
  168. package/dist/temporal/workflows/index.js.map +1 -0
  169. package/dist/temporal/workflows/scheduleWorkflow.d.ts +31 -0
  170. package/dist/temporal/workflows/scheduleWorkflow.d.ts.map +1 -0
  171. package/dist/temporal/workflows/scheduleWorkflow.js +256 -0
  172. package/dist/temporal/workflows/scheduleWorkflow.js.map +1 -0
  173. package/dist/types/common.d.ts +81 -0
  174. package/dist/types/common.d.ts.map +1 -0
  175. package/dist/types/common.js +5 -0
  176. package/dist/types/common.js.map +1 -0
  177. package/dist/types/index.d.ts +8 -0
  178. package/dist/types/index.d.ts.map +1 -0
  179. package/dist/types/index.js +12 -0
  180. package/dist/types/index.js.map +1 -0
  181. package/dist/types/nodes.d.ts +496 -0
  182. package/dist/types/nodes.d.ts.map +1 -0
  183. package/dist/types/nodes.js +5 -0
  184. package/dist/types/nodes.js.map +1 -0
  185. package/dist/types/persona.d.ts +59 -0
  186. package/dist/types/persona.d.ts.map +1 -0
  187. package/dist/types/persona.js +36 -0
  188. package/dist/types/persona.js.map +1 -0
  189. package/dist/types/schedule.d.ts +143 -0
  190. package/dist/types/schedule.d.ts.map +1 -0
  191. package/dist/types/schedule.js +155 -0
  192. package/dist/types/schedule.js.map +1 -0
  193. package/dist/utils/dateUtils.d.ts +31 -0
  194. package/dist/utils/dateUtils.d.ts.map +1 -0
  195. package/dist/utils/dateUtils.js +53 -0
  196. package/dist/utils/dateUtils.js.map +1 -0
  197. package/dist/utils/index.d.ts +8 -0
  198. package/dist/utils/index.d.ts.map +1 -0
  199. package/dist/utils/index.js +8 -0
  200. package/dist/utils/index.js.map +1 -0
  201. package/dist/utils/inputResolver.d.ts +43 -0
  202. package/dist/utils/inputResolver.d.ts.map +1 -0
  203. package/dist/utils/inputResolver.js +137 -0
  204. package/dist/utils/inputResolver.js.map +1 -0
  205. package/dist/utils/sharedDataUtils.d.ts +36 -0
  206. package/dist/utils/sharedDataUtils.d.ts.map +1 -0
  207. package/dist/utils/sharedDataUtils.js +84 -0
  208. package/dist/utils/sharedDataUtils.js.map +1 -0
  209. package/dist/utils/typeGuards.d.ts +33 -0
  210. package/dist/utils/typeGuards.d.ts.map +1 -0
  211. package/dist/utils/typeGuards.js +50 -0
  212. package/dist/utils/typeGuards.js.map +1 -0
  213. package/docs/add-llm-provider.md +353 -0
  214. package/docs/external/deepseek-v32.md +28 -0
  215. package/docs/quick-start.md +849 -0
  216. package/docs/suite-guide.md +148 -0
  217. package/docs/usage-guide.md +1487 -0
  218. package/package.json +80 -0
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Temporal Worker
3
+ */
4
+ import { Worker, NativeConnection } from '@temporalio/worker';
5
+ import { DatabaseClient } from '../db/client.js';
6
+ import { ThinkingService, ActionService, BranchService } from '../services/interfaces.js';
7
+ export interface WorkerConfig {
8
+ /** Temporal Server 地址(与 nativeConnection 二选一) */
9
+ temporalAddress?: string;
10
+ /** 已有的 NativeConnection(与 temporalAddress 二选一,用于测试) */
11
+ nativeConnection?: NativeConnection;
12
+ taskQueue: string;
13
+ db: DatabaseClient;
14
+ thinkingService: ThinkingService;
15
+ actionService: ActionService;
16
+ branchService: BranchService;
17
+ connectTimeout?: number;
18
+ }
19
+ /**
20
+ * Worker 句柄接口
21
+ * 包含 Worker 实例和优雅关闭方法
22
+ */
23
+ export interface WorkerHandle {
24
+ /** Temporal Worker 实例 */
25
+ worker: Worker;
26
+ /** 优雅关闭 Worker 和连接 */
27
+ shutdown: () => Promise<void>;
28
+ }
29
+ /**
30
+ * 创建 Temporal Worker
31
+ * 返回 WorkerHandle,包含 shutdown 方法用于优雅关闭
32
+ */
33
+ export declare function createWorker(config: WorkerConfig): Promise<WorkerHandle>;
34
+ /**
35
+ * 创建简化的活动对象(用于测试)
36
+ */
37
+ export declare function createActivities(config: {
38
+ db: DatabaseClient;
39
+ thinkingService: ThinkingService;
40
+ actionService: ActionService;
41
+ branchService: BranchService;
42
+ }): {
43
+ executeBranchNode(scheduleId: string, node: import("../index.js").NodeInstance, schedule: import("../db/repositories/types.js").ScheduleWithNodes): Promise<import("./index.js").BranchNodeResult>;
44
+ executeActionNode(scheduleId: string, node: import("../index.js").NodeInstance, schedule: import("../db/repositories/types.js").ScheduleWithNodes): Promise<import("./index.js").ActionNodeResult>;
45
+ submitAsyncTask(scheduleId: string, node: import("../index.js").NodeInstance, schedule: import("../db/repositories/types.js").ScheduleWithNodes): Promise<string>;
46
+ checkTaskStatus(taskId: string): Promise<{
47
+ completed: boolean;
48
+ failed: boolean;
49
+ error?: string;
50
+ }>;
51
+ getTaskResult(taskId: string): Promise<unknown>;
52
+ applyAsyncOutputMappings(scheduleId: string, node: import("../index.js").NodeInstance, outputs: Record<string, unknown>): Promise<void>;
53
+ executeThinkingNode(scheduleId: string, node: import("../index.js").NodeInstance, schedule: import("../db/repositories/types.js").ScheduleWithNodes): Promise<import("./index.js").ThinkingNodeResult>;
54
+ initializeSchedule(schedule: import("../index.js").Schedule): Promise<void>;
55
+ getScheduleFromDB(scheduleId: string): Promise<import("../db/repositories/types.js").ScheduleWithNodes | null>;
56
+ updateScheduleStatus(scheduleId: string, status: import("../index.js").ScheduleStatus): Promise<void>;
57
+ setCurrentNode(scheduleId: string, nodeId: string | null): Promise<void>;
58
+ updateSharedData(scheduleId: string, data: import("../index.js").SharedDataInstance): Promise<void>;
59
+ saveRuntimeState(scheduleId: string, state: import("../db/repositories/types.js").RuntimeState): Promise<void>;
60
+ getRuntimeState(scheduleId: string): Promise<import("../db/repositories/types.js").RuntimeState | null>;
61
+ recordNodeExecution(scheduleId: string, nodeId: string, result: import("./index.js").NodeExecutionResult): Promise<void>;
62
+ recordNodeFailure(scheduleId: string, nodeId: string, error: Error): Promise<void>;
63
+ recordLoopWarning(scheduleId: string, nodeId: string, recentNodeIds: string[]): Promise<void>;
64
+ getActionTypes(scheduleId: string): Promise<Record<string, import("../index.js").ActionNodeType>>;
65
+ };
66
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/temporal/worker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAWjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK1F,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,cAAc,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAoE9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,EAAE,EAAE,cAAc,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;CAC9B;;;;;;;aA9BY,CAAC;;;;;;;;;;;;;;;;EAuDb"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Temporal Worker
3
+ */
4
+ import { Worker, NativeConnection } from '@temporalio/worker';
5
+ import { fileURLToPath } from 'url';
6
+ import path from 'path';
7
+ import { ScheduleRepositoryImpl, NodeRepositoryImpl, ExecutionRepositoryImpl, PlanResultRepositoryImpl, } from '../db/repositories/index.js';
8
+ import { createDBActivities } from './activities/dbActivities.js';
9
+ import { createThinkingActivities } from './activities/thinkingActivities.js';
10
+ import { createActionActivities } from './activities/actionActivities.js';
11
+ import { createBranchActivities } from './activities/branchActivities.js';
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = path.dirname(__filename);
14
+ /**
15
+ * 创建 Temporal Worker
16
+ * 返回 WorkerHandle,包含 shutdown 方法用于优雅关闭
17
+ */
18
+ export async function createWorker(config) {
19
+ // 获取或创建 Temporal 连接
20
+ let connection;
21
+ let ownConnection = false;
22
+ if (config.nativeConnection) {
23
+ connection = config.nativeConnection;
24
+ }
25
+ else if (config.temporalAddress) {
26
+ connection = await NativeConnection.connect({
27
+ address: config.temporalAddress,
28
+ });
29
+ ownConnection = true;
30
+ }
31
+ else {
32
+ throw new Error('Either temporalAddress or nativeConnection must be provided');
33
+ }
34
+ // 创建 repositories
35
+ const scheduleRepo = new ScheduleRepositoryImpl(config.db);
36
+ const nodeRepo = new NodeRepositoryImpl(config.db);
37
+ const executionRepo = new ExecutionRepositoryImpl(config.db);
38
+ const planResultRepo = new PlanResultRepositoryImpl(config.db);
39
+ // 创建 activities
40
+ const dbActivities = createDBActivities({
41
+ scheduleRepo,
42
+ executionRepo,
43
+ });
44
+ const thinkingActivities = createThinkingActivities({
45
+ thinkingService: config.thinkingService,
46
+ nodeRepo,
47
+ planResultRepo,
48
+ scheduleRepo,
49
+ });
50
+ const actionActivities = createActionActivities({
51
+ actionService: config.actionService,
52
+ scheduleRepo,
53
+ });
54
+ const branchActivities = createBranchActivities({
55
+ branchService: config.branchService,
56
+ });
57
+ const worker = await Worker.create({
58
+ connection,
59
+ namespace: 'default',
60
+ taskQueue: config.taskQueue,
61
+ workflowsPath: path.join(__dirname, './workflows'),
62
+ activities: {
63
+ ...dbActivities,
64
+ ...thinkingActivities,
65
+ ...actionActivities,
66
+ ...branchActivities,
67
+ },
68
+ });
69
+ return {
70
+ worker,
71
+ shutdown: async () => {
72
+ // 优雅关闭 Worker(等待正在执行的 Activity 完成)
73
+ worker.shutdown();
74
+ // 只有自己创建的连接才需要关闭
75
+ if (ownConnection) {
76
+ await connection.close();
77
+ }
78
+ },
79
+ };
80
+ }
81
+ /**
82
+ * 创建简化的活动对象(用于测试)
83
+ */
84
+ export function createActivities(config) {
85
+ const scheduleRepo = new ScheduleRepositoryImpl(config.db);
86
+ const nodeRepo = new NodeRepositoryImpl(config.db);
87
+ const executionRepo = new ExecutionRepositoryImpl(config.db);
88
+ const planResultRepo = new PlanResultRepositoryImpl(config.db);
89
+ return {
90
+ ...createDBActivities({
91
+ scheduleRepo,
92
+ executionRepo,
93
+ }),
94
+ ...createThinkingActivities({
95
+ thinkingService: config.thinkingService,
96
+ nodeRepo,
97
+ planResultRepo,
98
+ scheduleRepo,
99
+ }),
100
+ ...createActionActivities({
101
+ actionService: config.actionService,
102
+ scheduleRepo,
103
+ }),
104
+ ...createBranchActivities({
105
+ branchService: config.branchService,
106
+ }),
107
+ };
108
+ }
109
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/temporal/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Workflows 导出
3
+ */
4
+ export { scheduleWorkflow, getStatusQuery, pauseSignal, resumeSignal, cancelSignal, type ScheduleWorkflowInput, type ScheduleExecutionStatus, } from './scheduleWorkflow.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/temporal/workflows/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Workflows 导出
3
+ */
4
+ export { scheduleWorkflow, getStatusQuery, pauseSignal, resumeSignal, cancelSignal, } from './scheduleWorkflow.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/temporal/workflows/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,GAGb,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Schedule Workflow
3
+ *
4
+ * 这是 Temporal Workflow 的核心实现。
5
+ * Workflow 代码必须是确定性的,不能有任何 I/O 操作。
6
+ * 所有 I/O 操作都通过 Activity 完成。
7
+ */
8
+ import type { NodeExecutionResult } from '../activities/types.js';
9
+ import type { Schedule } from '../../types/index.js';
10
+ export interface ScheduleExecutionStatus {
11
+ scheduleId: string;
12
+ currentNodeId: string | null;
13
+ totalIterations: number;
14
+ isPaused: boolean;
15
+ lastNodeResults: NodeExecutionResult[];
16
+ }
17
+ export declare const getStatusQuery: import("@temporalio/workflow").QueryDefinition<ScheduleExecutionStatus, [], string>;
18
+ export declare const pauseSignal: import("@temporalio/workflow").SignalDefinition<[], "pause">;
19
+ export declare const resumeSignal: import("@temporalio/workflow").SignalDefinition<[], "resume">;
20
+ export declare const cancelSignal: import("@temporalio/workflow").SignalDefinition<[], "cancel">;
21
+ export interface ScheduleWorkflowInput {
22
+ /** Schedule ID */
23
+ scheduleId: string;
24
+ /**
25
+ * 完整的 Schedule 定义(首次启动时传入)
26
+ * Continue-as-New 时不需要传入,会从数据库读取
27
+ */
28
+ schedule?: Schedule;
29
+ }
30
+ export declare function scheduleWorkflow(input: ScheduleWorkflowInput): Promise<void>;
31
+ //# sourceMappingURL=scheduleWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduleWorkflow.d.ts","sourceRoot":"","sources":["../../../src/temporal/workflows/scheduleWorkflow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,KAAK,EAMV,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAgB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAiCnE,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,mBAAmB,EAAE,CAAC;CACxC;AAED,eAAO,MAAM,cAAc,qFAAoD,CAAC;AAMhF,eAAO,MAAM,WAAW,8DAAwB,CAAC;AACjD,eAAO,MAAM,YAAY,+DAAyB,CAAC;AACnD,eAAO,MAAM,YAAY,+DAAyB,CAAC;AAenD,MAAM,WAAW,qBAAqB;IACpC,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AA0CD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+NlF"}
@@ -0,0 +1,256 @@
1
+ /**
2
+ * Schedule Workflow
3
+ *
4
+ * 这是 Temporal Workflow 的核心实现。
5
+ * Workflow 代码必须是确定性的,不能有任何 I/O 操作。
6
+ * 所有 I/O 操作都通过 Activity 完成。
7
+ */
8
+ import { proxyActivities, sleep, condition, defineQuery, defineSignal, setHandler, continueAsNew, ApplicationFailure, } from '@temporalio/workflow';
9
+ // Activity 配置
10
+ const dbActivityOptions = {
11
+ startToCloseTimeout: '5s',
12
+ retry: { maximumAttempts: 3, initialInterval: '100ms', backoffCoefficient: 2 },
13
+ };
14
+ const thinkingActivityOptions = {
15
+ startToCloseTimeout: '60s',
16
+ retry: { maximumAttempts: 2, initialInterval: '1s', backoffCoefficient: 2 },
17
+ };
18
+ const actionActivityOptions = {
19
+ startToCloseTimeout: '180s', // 3 分钟,用于下载图片和调用生成 API
20
+ retry: { maximumAttempts: 3, initialInterval: '500ms', backoffCoefficient: 2 },
21
+ };
22
+ const branchActivityOptions = {
23
+ startToCloseTimeout: '10s',
24
+ retry: { maximumAttempts: 3, initialInterval: '100ms', backoffCoefficient: 2 },
25
+ };
26
+ // 创建 Activity 代理
27
+ const dbActivities = proxyActivities(dbActivityOptions);
28
+ const thinkingActivities = proxyActivities(thinkingActivityOptions);
29
+ const actionActivities = proxyActivities(actionActivityOptions);
30
+ const branchActivities = proxyActivities(branchActivityOptions);
31
+ export const getStatusQuery = defineQuery('getStatus');
32
+ // ============================================================================
33
+ // Signal 定义
34
+ // ============================================================================
35
+ export const pauseSignal = defineSignal('pause');
36
+ export const resumeSignal = defineSignal('resume');
37
+ export const cancelSignal = defineSignal('cancel');
38
+ // ============================================================================
39
+ // 配置常量
40
+ // ============================================================================
41
+ const MAX_ITERATIONS_BEFORE_CONTINUE = 100; // 每 100 个节点 continue-as-new
42
+ const MAX_TOTAL_ITERATIONS = 10000; // 总迭代上限
43
+ const LOOP_DETECTION_WINDOW = 10; // 循环检测窗口
44
+ const LOOP_WARNING_THRESHOLD = 5; // 循环警告阈值
45
+ // ============================================================================
46
+ // 异步动作执行
47
+ // ============================================================================
48
+ async function executeAsyncAction(scheduleId, node, schedule, asyncConfig) {
49
+ // 提交异步任务(使用完整的节点和 schedule 信息)
50
+ const taskId = await actionActivities.submitAsyncTask(scheduleId, node, schedule);
51
+ // 轮询等待(使用循环计数器,保证确定性)
52
+ const maxAttempts = Math.ceil(asyncConfig.timeoutMs / asyncConfig.checkIntervalMs);
53
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
54
+ // 使用 Temporal Timer - 在此期间不消耗 Worker
55
+ await sleep(asyncConfig.checkIntervalMs);
56
+ // 检查任务状态
57
+ const status = await actionActivities.checkTaskStatus(taskId);
58
+ if (status.completed) {
59
+ const result = await actionActivities.getTaskResult(taskId);
60
+ return { outputs: result };
61
+ }
62
+ if (status.failed) {
63
+ throw ApplicationFailure.nonRetryable(status.error ?? 'Async task failed');
64
+ }
65
+ }
66
+ throw ApplicationFailure.nonRetryable('Async task timeout');
67
+ }
68
+ // ============================================================================
69
+ // 主 Workflow
70
+ // ============================================================================
71
+ export async function scheduleWorkflow(input) {
72
+ const { scheduleId, schedule: inputSchedule } = input;
73
+ // =========================================
74
+ // Workflow 顶层状态
75
+ // =========================================
76
+ let currentNodeId = null;
77
+ let totalIterations = 0;
78
+ let isPaused = false;
79
+ let isCancelled = false;
80
+ let loopWarningCount = 0;
81
+ const recentResults = [];
82
+ const recentNodeIds = [];
83
+ // 恢复运行时状态
84
+ const runtimeState = await dbActivities.getRuntimeState(scheduleId);
85
+ if (runtimeState) {
86
+ // Continue-as-New:恢复状态
87
+ totalIterations = runtimeState.totalIterations;
88
+ recentNodeIds.push(...runtimeState.recentNodeIds);
89
+ }
90
+ else if (inputSchedule) {
91
+ // 首次执行:Client 传入了完整 Schedule,需要初始化到数据库
92
+ await dbActivities.initializeSchedule(inputSchedule);
93
+ }
94
+ else {
95
+ // 首次执行但没有传入 Schedule(兼容 startSchedule 方式)
96
+ // 假设 Schedule 已存在于数据库中,只需更新状态
97
+ await dbActivities.updateScheduleStatus(scheduleId, 'running');
98
+ }
99
+ // =========================================
100
+ // 注册 Query 处理器
101
+ // =========================================
102
+ setHandler(getStatusQuery, () => ({
103
+ scheduleId,
104
+ currentNodeId,
105
+ totalIterations,
106
+ isPaused,
107
+ lastNodeResults: recentResults.slice(-5),
108
+ }));
109
+ // =========================================
110
+ // 注册 Signal 处理器
111
+ // =========================================
112
+ setHandler(pauseSignal, () => { isPaused = true; });
113
+ setHandler(resumeSignal, () => { isPaused = false; });
114
+ setHandler(cancelSignal, () => { isCancelled = true; });
115
+ // =========================================
116
+ // 主执行循环
117
+ // =========================================
118
+ while (true) {
119
+ // 检查取消状态
120
+ if (isCancelled) {
121
+ await dbActivities.updateScheduleStatus(scheduleId, 'cancelled');
122
+ break;
123
+ }
124
+ // 等待暂停结束
125
+ await condition(() => !isPaused || isCancelled);
126
+ if (isCancelled) {
127
+ await dbActivities.updateScheduleStatus(scheduleId, 'cancelled');
128
+ break;
129
+ }
130
+ // 从数据库读取最新状态
131
+ const schedule = await dbActivities.getScheduleFromDB(scheduleId);
132
+ if (!schedule) {
133
+ throw ApplicationFailure.nonRetryable(`Schedule ${scheduleId} not found`);
134
+ }
135
+ if (schedule.status === 'completed' || schedule.status === 'cancelled') {
136
+ break;
137
+ }
138
+ currentNodeId = schedule.currentNodeId;
139
+ if (!currentNodeId) {
140
+ await dbActivities.updateScheduleStatus(scheduleId, 'completed');
141
+ break;
142
+ }
143
+ // =====================================
144
+ // 迭代次数和循环检测
145
+ // =====================================
146
+ totalIterations++;
147
+ if (totalIterations > MAX_TOTAL_ITERATIONS) {
148
+ await dbActivities.updateScheduleStatus(scheduleId, 'failed');
149
+ throw ApplicationFailure.nonRetryable('Exceeded maximum iterations');
150
+ }
151
+ // 循环检测
152
+ recentNodeIds.push(currentNodeId);
153
+ if (recentNodeIds.length > LOOP_DETECTION_WINDOW) {
154
+ recentNodeIds.shift();
155
+ }
156
+ const nodeOccurrences = recentNodeIds.filter(id => id === currentNodeId).length;
157
+ if (nodeOccurrences > LOOP_DETECTION_WINDOW / 2) {
158
+ loopWarningCount++;
159
+ await dbActivities.recordLoopWarning(scheduleId, currentNodeId, recentNodeIds);
160
+ if (loopWarningCount >= LOOP_WARNING_THRESHOLD) {
161
+ await dbActivities.updateScheduleStatus(scheduleId, 'failed');
162
+ throw ApplicationFailure.nonRetryable(`Potential infinite loop detected at node ${currentNodeId}`);
163
+ }
164
+ }
165
+ // =====================================
166
+ // 执行当前节点
167
+ // =====================================
168
+ const node = schedule.nodes[currentNodeId];
169
+ if (!node) {
170
+ await dbActivities.updateScheduleStatus(scheduleId, 'failed');
171
+ throw ApplicationFailure.nonRetryable(`Node ${currentNodeId} not found`);
172
+ }
173
+ let result = null;
174
+ let nextNodeId = null;
175
+ let nodeSkipped = false;
176
+ try {
177
+ switch (node.kind) {
178
+ case 'thinking': {
179
+ const thinkingResult = await thinkingActivities.executeThinkingNode(scheduleId, node, schedule);
180
+ result = thinkingResult;
181
+ nextNodeId = thinkingResult.nextNodeId;
182
+ break;
183
+ }
184
+ case 'action': {
185
+ // 此时 TypeScript 已经将 node 窄化为 action 类型
186
+ const actionNode = node;
187
+ // 从 schedule.persona 获取 actionTypes
188
+ const actionTypes = await dbActivities.getActionTypes(scheduleId);
189
+ const actionType = actionTypes[actionNode.actionTypeId];
190
+ const isAsync = actionType?.asyncMode?.isAsync ?? false;
191
+ if (isAsync) {
192
+ const asyncConfig = {
193
+ timeoutMs: actionNode.asyncConfig?.timeoutMs
194
+ ?? actionType?.asyncMode?.defaultTimeoutMs
195
+ ?? 300000,
196
+ checkIntervalMs: actionNode.asyncConfig?.checkIntervalMs
197
+ ?? actionType?.asyncMode?.defaultCheckIntervalMs
198
+ ?? 5000,
199
+ };
200
+ // 传递完整的节点和 schedule 信息,由 activity 负责解析输入
201
+ result = await executeAsyncAction(scheduleId, node, schedule, asyncConfig);
202
+ // 异步动作完成后,应用输出映射更新共享数据
203
+ await actionActivities.applyAsyncOutputMappings(scheduleId, node, result.outputs);
204
+ }
205
+ else {
206
+ result = await actionActivities.executeActionNode(scheduleId, node, schedule);
207
+ }
208
+ nextNodeId = node.nextNodeId;
209
+ break;
210
+ }
211
+ case 'branch': {
212
+ const branchResult = await branchActivities.executeBranchNode(scheduleId, node, schedule);
213
+ result = branchResult;
214
+ nextNodeId = branchResult.selectedBranchTargetId ?? node.nextNodeId;
215
+ break;
216
+ }
217
+ default:
218
+ throw ApplicationFailure.nonRetryable(`Unknown node kind: ${node.kind}`);
219
+ }
220
+ recentResults.push(result);
221
+ if (recentResults.length > 10)
222
+ recentResults.shift();
223
+ }
224
+ catch (error) {
225
+ await dbActivities.recordNodeFailure(scheduleId, currentNodeId, error);
226
+ const failurePolicy = node.onFailure ?? 'terminate';
227
+ if (failurePolicy === 'skip') {
228
+ nextNodeId = node.nextNodeId;
229
+ nodeSkipped = true;
230
+ }
231
+ else if (failurePolicy === 'retry') {
232
+ throw error;
233
+ }
234
+ else {
235
+ await dbActivities.updateScheduleStatus(scheduleId, 'failed');
236
+ throw error;
237
+ }
238
+ }
239
+ // 记录执行结果
240
+ if (!nodeSkipped && result) {
241
+ await dbActivities.recordNodeExecution(scheduleId, currentNodeId, result);
242
+ }
243
+ await dbActivities.setCurrentNode(scheduleId, nextNodeId);
244
+ // 保存运行时状态
245
+ await dbActivities.saveRuntimeState(scheduleId, {
246
+ totalIterations,
247
+ recentNodeIds: recentNodeIds.slice(),
248
+ });
249
+ // Continue-as-New: 避免 Event History 过大
250
+ if (totalIterations % MAX_ITERATIONS_BEFORE_CONTINUE === 0) {
251
+ await continueAsNew({ scheduleId });
252
+ return;
253
+ }
254
+ }
255
+ }
256
+ //# sourceMappingURL=scheduleWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduleWorkflow.js","sourceRoot":"","sources":["../../../src/temporal/workflows/scheduleWorkflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * 通用类型定义
3
+ */
4
+ /** 唯一标识符类型 */
5
+ export type NodeId = string;
6
+ export type NodeInstanceId = string;
7
+ export type ScheduleId = string;
8
+ export type PersonaId = string;
9
+ export type ActionTypeId = string;
10
+ /**
11
+ * 共享数据的值类型
12
+ * 支持基础类型、对象和数组
13
+ */
14
+ export type SharedDataValue = string | number | boolean | null | {
15
+ [key: string]: SharedDataValue;
16
+ } | SharedDataValue[];
17
+ /**
18
+ * 共享数据字段定义
19
+ * isCollection: true 表示是集合类型,可以不断追加
20
+ * isCollection: false 表示是普通类型,赋值会覆盖
21
+ */
22
+ export interface SharedDataFieldDefinition {
23
+ name: string;
24
+ description?: string;
25
+ isCollection: boolean;
26
+ /** 可选的初始值 */
27
+ initialValue?: SharedDataValue;
28
+ }
29
+ /**
30
+ * 共享数据声明
31
+ * 由思考节点声明,定义整个 Schedule 中可用的共享数据字段
32
+ */
33
+ export interface SharedDataDeclaration {
34
+ fields: SharedDataFieldDefinition[];
35
+ }
36
+ /**
37
+ * 共享数据实例
38
+ * Schedule 运行时的实际数据存储
39
+ */
40
+ export interface SharedDataInstance {
41
+ /** 字段名 -> 当前值 */
42
+ data: Record<string, SharedDataValue>;
43
+ /** 字段名 -> 是否为集合类型 */
44
+ fieldTypes: Record<string, boolean>;
45
+ }
46
+ /**
47
+ * 数据引用 - 用于节点输入引用共享数据
48
+ */
49
+ export interface DataReference {
50
+ type: 'reference';
51
+ /** 引用的共享数据字段名 */
52
+ fieldName: string;
53
+ /** 可选的 JSONPath 表达式,用于提取部分数据 */
54
+ path?: string;
55
+ }
56
+ /**
57
+ * 固定值 - 用于节点输入使用固定值
58
+ */
59
+ export interface FixedValue {
60
+ type: 'fixed';
61
+ value: SharedDataValue;
62
+ }
63
+ /**
64
+ * 节点输入值类型 - 可以是固定值或数据引用
65
+ */
66
+ export type NodeInputValue = FixedValue | DataReference;
67
+ /**
68
+ * 输出映射 - 定义如何将节点输出写入共享数据
69
+ */
70
+ export interface OutputMapping {
71
+ /** 节点输出的字段名 */
72
+ outputField: string;
73
+ /** 目标共享数据字段名 */
74
+ targetField: string;
75
+ /**
76
+ * 可选的转换表达式
77
+ * 例如: "value.items[0]" 表示取 value.items 的第一个元素
78
+ */
79
+ expression?: string;
80
+ }
81
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc;AACd,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AACpC,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAChC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,GAClC,eAAe,EAAE,CAAC;AAEtB;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa;IACb,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,yBAAyB,EAAE,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtC,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 通用类型定义
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 类型定义统一导出
3
+ */
4
+ export * from './common.js';
5
+ export * from './nodes.js';
6
+ export * from './schedule.js';
7
+ export * from './persona.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * 类型定义统一导出
3
+ */
4
+ // 通用类型
5
+ export * from './common.js';
6
+ // 节点类型
7
+ export * from './nodes.js';
8
+ // Schedule 类型
9
+ export * from './schedule.js';
10
+ // Persona 类型
11
+ export * from './persona.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO;AACP,cAAc,aAAa,CAAC;AAE5B,OAAO;AACP,cAAc,YAAY,CAAC;AAE3B,cAAc;AACd,cAAc,eAAe,CAAC;AAE9B,aAAa;AACb,cAAc,cAAc,CAAC"}