@ebowwa/daemons 0.5.1 → 0.7.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 (121) hide show
  1. package/dist/core.d.ts +89 -0
  2. package/dist/core.d.ts.map +1 -0
  3. package/dist/core.js +346 -0
  4. package/dist/core.js.map +1 -0
  5. package/dist/index.d.ts +16 -17
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +25 -125305
  8. package/dist/index.js.map +1 -0
  9. package/dist/types.d.ts +28 -273
  10. package/dist/types.d.ts.map +1 -1
  11. package/dist/types.js +7 -0
  12. package/dist/types.js.map +1 -0
  13. package/package.json +14 -65
  14. package/src/core.ts +476 -0
  15. package/src/index.ts +23 -101
  16. package/src/types.ts +24 -301
  17. package/dist/agent.d.ts +0 -37
  18. package/dist/agent.d.ts.map +0 -1
  19. package/dist/bin/discord-cli.js +0 -124083
  20. package/dist/bin/manager.js +0 -143
  21. package/dist/bin/telegram-cli.js +0 -124079
  22. package/dist/channels/base.d.ts +0 -163
  23. package/dist/channels/base.d.ts.map +0 -1
  24. package/dist/channels/discord.d.ts +0 -61
  25. package/dist/channels/discord.d.ts.map +0 -1
  26. package/dist/channels/index.d.ts +0 -55
  27. package/dist/channels/index.d.ts.map +0 -1
  28. package/dist/channels/telegram.d.ts +0 -113
  29. package/dist/channels/telegram.d.ts.map +0 -1
  30. package/dist/daemon.d.ts +0 -119
  31. package/dist/daemon.d.ts.map +0 -1
  32. package/dist/hooks.d.ts +0 -34
  33. package/dist/hooks.d.ts.map +0 -1
  34. package/dist/memory.d.ts +0 -151
  35. package/dist/memory.d.ts.map +0 -1
  36. package/dist/skills/coding/commit.d.ts +0 -31
  37. package/dist/skills/coding/commit.d.ts.map +0 -1
  38. package/dist/skills/coding/execute-subtask.d.ts +0 -30
  39. package/dist/skills/coding/execute-subtask.d.ts.map +0 -1
  40. package/dist/skills/coding/fix-issues.d.ts +0 -29
  41. package/dist/skills/coding/fix-issues.d.ts.map +0 -1
  42. package/dist/skills/coding/index.d.ts +0 -21
  43. package/dist/skills/coding/index.d.ts.map +0 -1
  44. package/dist/skills/coding/plan-task.d.ts +0 -38
  45. package/dist/skills/coding/plan-task.d.ts.map +0 -1
  46. package/dist/skills/coding/quality-check.d.ts +0 -35
  47. package/dist/skills/coding/quality-check.d.ts.map +0 -1
  48. package/dist/skills/index.d.ts +0 -38
  49. package/dist/skills/index.d.ts.map +0 -1
  50. package/dist/skills/registry.d.ts +0 -95
  51. package/dist/skills/registry.d.ts.map +0 -1
  52. package/dist/skills/shared/index.d.ts +0 -16
  53. package/dist/skills/shared/index.d.ts.map +0 -1
  54. package/dist/skills/shared/reflect.d.ts +0 -42
  55. package/dist/skills/shared/reflect.d.ts.map +0 -1
  56. package/dist/skills/shared/review.d.ts +0 -42
  57. package/dist/skills/shared/review.d.ts.map +0 -1
  58. package/dist/skills/shared/trajectory.d.ts +0 -80
  59. package/dist/skills/shared/trajectory.d.ts.map +0 -1
  60. package/dist/skills/trading/analyze-market.d.ts +0 -43
  61. package/dist/skills/trading/analyze-market.d.ts.map +0 -1
  62. package/dist/skills/trading/check-risk.d.ts +0 -33
  63. package/dist/skills/trading/check-risk.d.ts.map +0 -1
  64. package/dist/skills/trading/execute-trade.d.ts +0 -38
  65. package/dist/skills/trading/execute-trade.d.ts.map +0 -1
  66. package/dist/skills/trading/generate-signal.d.ts +0 -57
  67. package/dist/skills/trading/generate-signal.d.ts.map +0 -1
  68. package/dist/skills/trading/index.d.ts +0 -21
  69. package/dist/skills/trading/index.d.ts.map +0 -1
  70. package/dist/skills/trading/monitor-position.d.ts +0 -37
  71. package/dist/skills/trading/monitor-position.d.ts.map +0 -1
  72. package/dist/skills/types.d.ts +0 -173
  73. package/dist/skills/types.d.ts.map +0 -1
  74. package/dist/skills/workflows.d.ts +0 -36
  75. package/dist/skills/workflows.d.ts.map +0 -1
  76. package/dist/state.d.ts +0 -31
  77. package/dist/state.d.ts.map +0 -1
  78. package/dist/tools.d.ts +0 -42
  79. package/dist/tools.d.ts.map +0 -1
  80. package/dist/workflow.d.ts +0 -182
  81. package/dist/workflow.d.ts.map +0 -1
  82. package/dist/workflows/coding.d.ts +0 -79
  83. package/dist/workflows/coding.d.ts.map +0 -1
  84. package/dist/workflows/index.d.ts +0 -24
  85. package/dist/workflows/index.d.ts.map +0 -1
  86. package/dist/workflows/trading.d.ts +0 -72
  87. package/dist/workflows/trading.d.ts.map +0 -1
  88. package/src/agent.ts +0 -111
  89. package/src/channels/base.ts +0 -574
  90. package/src/channels/discord.ts +0 -306
  91. package/src/channels/index.ts +0 -169
  92. package/src/channels/telegram.ts +0 -316
  93. package/src/daemon.ts +0 -534
  94. package/src/hooks.ts +0 -97
  95. package/src/memory.ts +0 -369
  96. package/src/skills/coding/commit.ts +0 -202
  97. package/src/skills/coding/execute-subtask.ts +0 -136
  98. package/src/skills/coding/fix-issues.ts +0 -126
  99. package/src/skills/coding/index.ts +0 -26
  100. package/src/skills/coding/plan-task.ts +0 -158
  101. package/src/skills/coding/quality-check.ts +0 -155
  102. package/src/skills/index.ts +0 -65
  103. package/src/skills/registry.ts +0 -380
  104. package/src/skills/shared/index.ts +0 -21
  105. package/src/skills/shared/reflect.ts +0 -156
  106. package/src/skills/shared/review.ts +0 -201
  107. package/src/skills/shared/trajectory.ts +0 -326
  108. package/src/skills/trading/analyze-market.ts +0 -144
  109. package/src/skills/trading/check-risk.ts +0 -176
  110. package/src/skills/trading/execute-trade.ts +0 -185
  111. package/src/skills/trading/generate-signal.ts +0 -160
  112. package/src/skills/trading/index.ts +0 -26
  113. package/src/skills/trading/monitor-position.ts +0 -179
  114. package/src/skills/types.ts +0 -235
  115. package/src/skills/workflows.ts +0 -340
  116. package/src/state.ts +0 -77
  117. package/src/tools.ts +0 -134
  118. package/src/workflow.ts +0 -341
  119. package/src/workflows/coding.ts +0 -580
  120. package/src/workflows/index.ts +0 -61
  121. package/src/workflows/trading.ts +0 -608
package/dist/memory.d.ts DELETED
@@ -1,151 +0,0 @@
1
- /**
2
- * Conversation Memory - Generic conversation tracking for any channel
3
- *
4
- * Tracks chat history per user/conversation with persistence.
5
- * Can be used by Telegram, Discord, or any other channel.
6
- *
7
- * Storage format: JSONL (JSON Lines)
8
- * Each line is a JSON object: {"id": "...", "messages": [...], "lastUpdated": timestamp}
9
- */
10
- /**
11
- * A single message in a conversation
12
- */
13
- export interface ConversationMessage {
14
- role: "user" | "assistant" | "system";
15
- content: string;
16
- timestamp?: number;
17
- }
18
- /**
19
- * Configuration for ConversationMemory
20
- */
21
- export interface ConversationMemoryConfig {
22
- /** Path to persistence file (default: ./conversations.jsonl) */
23
- file?: string;
24
- /** Maximum messages to keep per conversation (default: 10) */
25
- maxMessages?: number;
26
- /** Include timestamps in messages (default: true) */
27
- includeTimestamps?: boolean;
28
- /** Auto-migrate old .json files to .jsonl (default: true) */
29
- autoMigrate?: boolean;
30
- }
31
- /**
32
- * Generic conversation memory that tracks chat history per conversation ID.
33
- *
34
- * Uses JSONL format for efficient append-only writes and streaming reads.
35
- * Automatically migrates from old JSON format on first load.
36
- *
37
- * The ID type is generic (string | number) to support different channel types:
38
- * - Telegram: number (chatId)
39
- * - Discord: string (channelId/userId)
40
- * - Slack: string (channelId)
41
- *
42
- * @example
43
- * ```ts
44
- * const memory = new ConversationMemory({ maxMessages: 20 });
45
- * memory.add(12345, 'user', 'Hello!');
46
- * memory.add(12345, 'assistant', 'Hi there!');
47
- * const history = memory.get(12345);
48
- * ```
49
- */
50
- export declare class ConversationMemory<IdType = string | number> {
51
- private conversations;
52
- private maxMessages;
53
- private includeTimestamps;
54
- private file;
55
- private needsFullSave;
56
- constructor(config?: ConversationMemoryConfig);
57
- /**
58
- * Migrate from old JSON format to JSONL
59
- */
60
- private migrateFromJson;
61
- /**
62
- * Load conversations from JSONL file
63
- * Uses synchronous read for constructor compatibility
64
- */
65
- private load;
66
- /**
67
- * Parse string key back to original type
68
- */
69
- private parseKey;
70
- /**
71
- * Convert IdType to string for storage
72
- */
73
- private stringifyKey;
74
- /**
75
- * Save all conversations to disk (full rewrite)
76
- * Used when entries are deleted or modified
77
- */
78
- private saveFull;
79
- /**
80
- * Append a single entry to the file (efficient for adds)
81
- */
82
- private appendEntry;
83
- /**
84
- * Add a message to a conversation
85
- */
86
- add(conversationId: IdType, role: "user" | "assistant" | "system", content: string): void;
87
- /**
88
- * Get conversation history for a specific conversation
89
- */
90
- get(conversationId: IdType): ConversationMessage[];
91
- /**
92
- * Get all conversations
93
- */
94
- getAll(): Map<IdType, ConversationMessage[]>;
95
- /**
96
- * Clear a specific conversation
97
- */
98
- clear(conversationId: IdType): void;
99
- /**
100
- * Clear all conversations
101
- */
102
- clearAll(): void;
103
- /**
104
- * Check if a conversation exists
105
- */
106
- has(conversationId: IdType): boolean;
107
- /**
108
- * Get the number of conversations
109
- */
110
- size(): number;
111
- /**
112
- * Get the messages count for a specific conversation
113
- */
114
- messageCount(conversationId: IdType): number;
115
- /**
116
- * Get formatted history for API calls (OpenAI/Anthropic format)
117
- */
118
- getForAPI(conversationId: IdType): Array<{
119
- role: string;
120
- content: string;
121
- }>;
122
- /**
123
- * Force a full save (useful before shutdown)
124
- */
125
- flush(): void;
126
- /**
127
- * Get the file path being used
128
- */
129
- getFilePath(): string;
130
- /**
131
- * Check if the storage uses JSONL format
132
- */
133
- isJsonl(): boolean;
134
- }
135
- /**
136
- * Pre-configured memory for numeric IDs (like Telegram chat IDs)
137
- */
138
- export declare class NumericConversationMemory extends ConversationMemory<number> {
139
- constructor(config?: Omit<ConversationMemoryConfig, "file"> & {
140
- file?: string;
141
- });
142
- }
143
- /**
144
- * Pre-configured memory for string IDs (like Discord/Slack channel IDs)
145
- */
146
- export declare class StringConversationMemory extends ConversationMemory<string> {
147
- constructor(config?: Omit<ConversationMemoryConfig, "file"> & {
148
- file?: string;
149
- });
150
- }
151
- //# sourceMappingURL=memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAkB,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM;IACtD,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,GAAE,wBAA6B;IAejD;;OAEG;IACH,OAAO,CAAC,eAAe;IAoCvB;;;OAGG;IACH,OAAO,CAAC,IAAI;IAsBZ;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAwBhB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;OAEG;IACH,GAAG,CACD,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,EACrC,OAAO,EAAE,MAAM,GACd,IAAI;IAuBP;;OAEG;IACH,GAAG,CAAC,cAAc,EAAE,MAAM,GAAG,mBAAmB,EAAE;IAIlD;;OAEG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAI5C;;OAEG;IACH,KAAK,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAKnC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;OAEG;IACH,GAAG,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAI5C;;OAEG;IACH,SAAS,CACP,cAAc,EAAE,MAAM,GACrB,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAO3C;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,OAAO,IAAI,OAAO;CAGnB;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,kBAAkB,CAAC,MAAM,CAAC;gBAC3D,MAAM,GAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO;CAGpF;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB,CAAC,MAAM,CAAC;gBAC1D,MAAM,GAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO;CAGpF"}
@@ -1,31 +0,0 @@
1
- /**
2
- * GLM Daemon - Commit Skill
3
- *
4
- * Commit changes to git with auto-generated message.
5
- */
6
- import { z } from "zod";
7
- import type { Skill } from "../types.js";
8
- /**
9
- * Commit parameters
10
- */
11
- declare const CommitParams: z.ZodObject<{
12
- message: z.ZodOptional<z.ZodString>;
13
- push: z.ZodOptional<z.ZodBoolean>;
14
- noVerify: z.ZodOptional<z.ZodBoolean>;
15
- }, z.core.$strip>;
16
- /**
17
- * Commit result data
18
- */
19
- interface CommitData {
20
- commitHash: string;
21
- message: string;
22
- filesCount: number;
23
- pushed: boolean;
24
- }
25
- /**
26
- * Commit skill
27
- */
28
- export declare const commitSkill: Skill<z.infer<typeof CommitParams>, CommitData>;
29
- export { CommitParams };
30
- export type { CommitData };
31
- //# sourceMappingURL=commit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../../src/skills/coding/commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAKpE;;GAEG;AACH,QAAA,MAAM,YAAY;;;;iBAOhB,CAAC;AAEH;;GAEG;AACH,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,EAAE,UAAU,CA6JvE,CAAC;AAIF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * GLM Daemon - Execute Subtask Skill
3
- *
4
- * Work on the current subtask from the plan.
5
- */
6
- import { z } from "zod";
7
- import type { Skill } from "../types.js";
8
- /**
9
- * Execute subtask parameters
10
- */
11
- declare const ExecuteSubtaskParams: z.ZodObject<{
12
- subtaskId: z.ZodOptional<z.ZodString>;
13
- }, z.core.$strip>;
14
- /**
15
- * Execute subtask result data
16
- */
17
- interface ExecuteSubtaskData {
18
- subtaskId: string;
19
- title: string;
20
- result: string;
21
- completed: boolean;
22
- nextSubtaskId: string | null;
23
- }
24
- /**
25
- * Execute subtask skill
26
- */
27
- export declare const executeSubtaskSkill: Skill<z.infer<typeof ExecuteSubtaskParams>, ExecuteSubtaskData>;
28
- export { ExecuteSubtaskParams };
29
- export type { ExecuteSubtaskData };
30
- //# sourceMappingURL=execute-subtask.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute-subtask.d.ts","sourceRoot":"","sources":["../../../src/skills/coding/execute-subtask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAIpE;;GAEG;AACH,QAAA,MAAM,oBAAoB;;iBAGxB,CAAC;AAEH;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,EAAE,kBAAkB,CAiG/F,CAAC;AAIF,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * GLM Daemon - Fix Issues Skill
3
- *
4
- * Fix issues found during quality check or review.
5
- */
6
- import { z } from "zod";
7
- import type { Skill } from "../types.js";
8
- /**
9
- * Fix issues parameters
10
- */
11
- declare const FixIssuesParams: z.ZodObject<{
12
- issues: z.ZodOptional<z.ZodArray<z.ZodString>>;
13
- maxFixes: z.ZodOptional<z.ZodNumber>;
14
- }, z.core.$strip>;
15
- /**
16
- * Fix issues result data
17
- */
18
- interface FixIssuesData {
19
- fixedCount: number;
20
- remainingIssues: string[];
21
- fixes: string[];
22
- }
23
- /**
24
- * Fix issues skill
25
- */
26
- export declare const fixIssuesSkill: Skill<z.infer<typeof FixIssuesParams>, FixIssuesData>;
27
- export { FixIssuesParams };
28
- export type { FixIssuesData };
29
- //# sourceMappingURL=fix-issues.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fix-issues.d.ts","sourceRoot":"","sources":["../../../src/skills/coding/fix-issues.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAGpE;;GAEG;AACH,QAAA,MAAM,eAAe;;;iBAKnB,CAAC;AAEH;;GAEG;AACH,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,EAAE,aAAa,CAwFhF,CAAC;AAIF,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * GLM Daemon - Coding Skills
3
- *
4
- * Skills for software development workflows.
5
- */
6
- import "./plan-task.js";
7
- import "./execute-subtask.js";
8
- import "./quality-check.js";
9
- import "./fix-issues.js";
10
- import "./commit.js";
11
- export { planTaskSkill } from "./plan-task.js";
12
- export { executeSubtaskSkill } from "./execute-subtask.js";
13
- export { qualityCheckSkill } from "./quality-check.js";
14
- export { fixIssuesSkill } from "./fix-issues.js";
15
- export { commitSkill } from "./commit.js";
16
- export type { PlanTaskData, Subtask } from "./plan-task.js";
17
- export type { ExecuteSubtaskData } from "./execute-subtask.js";
18
- export type { QualityCheckData } from "./quality-check.js";
19
- export type { FixIssuesData } from "./fix-issues.js";
20
- export type { CommitData } from "./commit.js";
21
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/skills/coding/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,gBAAgB,CAAC;AACxB,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AACzB,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * GLM Daemon - Plan Task Skill
3
- *
4
- * Break down a task into subtasks for execution.
5
- */
6
- import { z } from "zod";
7
- import type { Skill } from "../types.js";
8
- /**
9
- * Plan task parameters
10
- */
11
- declare const PlanTaskParams: z.ZodObject<{
12
- maxSubtasks: z.ZodOptional<z.ZodNumber>;
13
- force: z.ZodOptional<z.ZodBoolean>;
14
- }, z.core.$strip>;
15
- /**
16
- * Subtask structure
17
- */
18
- interface Subtask {
19
- id: string;
20
- title: string;
21
- description: string;
22
- status: "pending" | "in_progress" | "completed" | "blocked" | "failed";
23
- dependencies?: string[];
24
- }
25
- /**
26
- * Plan task result data
27
- */
28
- interface PlanTaskData {
29
- subtasks: Subtask[];
30
- firstSubtaskId: string;
31
- }
32
- /**
33
- * Plan task skill
34
- */
35
- export declare const planTaskSkill: Skill<z.infer<typeof PlanTaskParams>, PlanTaskData>;
36
- export { PlanTaskParams };
37
- export type { PlanTaskData, Subtask };
38
- //# sourceMappingURL=plan-task.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-task.d.ts","sourceRoot":"","sources":["../../../src/skills/coding/plan-task.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAGpE;;GAEG;AACH,QAAA,MAAM,cAAc;;;iBAKlB,CAAC;AAEH;;GAEG;AACH,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,EAAE,YAAY,CA8G7E,CAAC;AAIF,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC"}
@@ -1,35 +0,0 @@
1
- /**
2
- * GLM Daemon - Quality Check Skill
3
- *
4
- * Paranoid review of changes made during execution.
5
- */
6
- import { z } from "zod";
7
- import type { Skill } from "../types.js";
8
- /**
9
- * Quality check parameters
10
- */
11
- declare const QualityCheckParams: z.ZodObject<{
12
- focusAreas: z.ZodOptional<z.ZodArray<z.ZodString>>;
13
- strictness: z.ZodOptional<z.ZodEnum<{
14
- relaxed: "relaxed";
15
- normal: "normal";
16
- strict: "strict";
17
- }>>;
18
- }, z.core.$strip>;
19
- /**
20
- * Quality check result data
21
- */
22
- interface QualityCheckData {
23
- passed: boolean;
24
- hasIssues: boolean;
25
- issues: string[];
26
- warnings: string[];
27
- assessment: string;
28
- }
29
- /**
30
- * Quality check skill
31
- */
32
- export declare const qualityCheckSkill: Skill<z.infer<typeof QualityCheckParams>, QualityCheckData>;
33
- export { QualityCheckParams };
34
- export type { QualityCheckData };
35
- //# sourceMappingURL=quality-check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality-check.d.ts","sourceRoot":"","sources":["../../../src/skills/coding/quality-check.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAGpE;;GAEG;AACH,QAAA,MAAM,kBAAkB;;;;;;;iBAKtB,CAAC;AAEH;;GAEG;AACH,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,EAAE,gBAAgB,CAsGzF,CAAC;AAIF,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Daemons - Skills Module
3
- *
4
- * Composable skill system for workflow phases.
5
- *
6
- * Usage:
7
- * ```typescript
8
- * import { skillRegistry, defineSkill } from '@ebowwa/daemons/skills';
9
- *
10
- * // Define a skill (auto-registers)
11
- * const mySkill = defineSkill({
12
- * id: 'my-skill',
13
- * name: 'My Skill',
14
- * description: 'Does something useful',
15
- * }, async (params, context) => {
16
- * // Do work
17
- * return { success: true, data: { result: 'done' } };
18
- * });
19
- *
20
- * // Execute a skill
21
- * const result = await skillRegistry.execute('my-skill', context, { foo: 'bar' });
22
- *
23
- * // Use built-in workflows
24
- * import { codingWorkflow, executeWorkflowSkill } from '@ebowwa/daemons/skills';
25
- * ```
26
- *
27
- * Skills are auto-registered on import. To use all built-in skills:
28
- * ```typescript
29
- * import '@ebowwa/daemons/skills'; // Core types + registry + workflows
30
- * ```
31
- */
32
- export type { Skill, SkillConfig, SkillContext, SkillResult, SkillData, SkillParams, SkillTransition, SkillTransitionCondition, SkillWorkflowConfig, SkillExecutionMeta, SkillExecutionOptions, } from "./types.js";
33
- export { SkillRegistry, skillRegistry, defineSkill } from "./registry.js";
34
- export * from "./shared/index.js";
35
- export * from "./coding/index.js";
36
- export * from "./trading/index.js";
37
- export { codingWorkflow, tradingWorkflow, workflowConfigRegistry, executeWorkflowSkill, isWorkflowComplete, } from "./workflows.js";
38
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,YAAY,EACV,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG1E,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EACL,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
@@ -1,95 +0,0 @@
1
- /**
2
- * GLM Daemon - Skill Registry
3
- *
4
- * Central registry for all available skills.
5
- * Skills register themselves on import, or can be registered manually.
6
- */
7
- import type { Skill, SkillConfig, SkillContext, SkillResult, SkillExecutionOptions, SkillExecutionMeta } from "./types.js";
8
- /**
9
- * Skill Registry - manages all available skills
10
- */
11
- export declare class SkillRegistry {
12
- private skills;
13
- private executionHistory;
14
- private maxHistorySize;
15
- /**
16
- * Register a skill
17
- */
18
- register(skill: Skill): void;
19
- /**
20
- * Register multiple skills
21
- */
22
- registerAll(skills: Skill[]): void;
23
- /**
24
- * Get a skill by ID
25
- */
26
- get(id: string): Skill | undefined;
27
- /**
28
- * Check if a skill exists
29
- */
30
- has(id: string): boolean;
31
- /**
32
- * List all registered skills
33
- */
34
- list(): Skill[];
35
- /**
36
- * List skill IDs only
37
- */
38
- listIds(): string[];
39
- /**
40
- * List skills by tag
41
- */
42
- listByTag(tag: string): Skill[];
43
- /**
44
- * Get skills info for AI/discovery
45
- */
46
- getInfo(): Array<{
47
- id: string;
48
- name: string;
49
- description: string;
50
- tags?: string[];
51
- parallelizable?: boolean;
52
- }>;
53
- /**
54
- * Execute a skill with retry logic
55
- */
56
- execute(skillId: string, context: SkillContext, params?: unknown, options?: SkillExecutionOptions): Promise<SkillResult>;
57
- /**
58
- * Execute multiple skills in parallel
59
- */
60
- executeParallel(skillIds: string[], context: SkillContext, params?: Record<string, unknown>): Promise<Map<string, SkillResult>>;
61
- /**
62
- * Execute with optional timeout
63
- */
64
- private executeWithTimeout;
65
- /**
66
- * Record execution in history
67
- */
68
- private recordExecution;
69
- /**
70
- * Get execution history
71
- */
72
- getHistory(limit?: number): SkillExecutionMeta[];
73
- /**
74
- * Get execution stats for a skill
75
- */
76
- getStats(skillId: string): {
77
- total: number;
78
- success: number;
79
- failed: number;
80
- avgDuration: number;
81
- };
82
- /**
83
- * Clear registry (useful for testing)
84
- */
85
- clear(): void;
86
- }
87
- /**
88
- * Global skill registry instance
89
- */
90
- export declare const skillRegistry: SkillRegistry;
91
- /**
92
- * Helper to create and register a skill
93
- */
94
- export declare function defineSkill<P = unknown, D extends Record<string, unknown> = Record<string, unknown>>(config: SkillConfig<P>, execute: (params: P | undefined, context: SkillContext) => Promise<SkillResult<D>>): Skill<P, D>;
95
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,cAAc,CAAQ;IAE9B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQ5B;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAMlC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIlC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,IAAI,IAAI,KAAK,EAAE;IAIf;;OAEG;IACH,OAAO,IAAI,MAAM,EAAE;IAInB;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE;IAI/B;;OAEG;IACH,OAAO,IAAI,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IAUF;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,OAAO,EAChB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,WAAW,CAAC;IA8GvB;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IA6CpC;;OAEG;YACW,kBAAkB;IAkChC;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,UAAU,CAAC,KAAK,SAAM,GAAG,kBAAkB,EAAE;IAI7C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB;IAmBD;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClG,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACjF,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAQb"}
@@ -1,16 +0,0 @@
1
- /**
2
- * GLM Daemon - Shared Skills
3
- *
4
- * Skills shared across all workflows.
5
- */
6
- import "./reflect.js";
7
- import "./review.js";
8
- import "./trajectory.js";
9
- export { reflectSkill } from "./reflect.js";
10
- export { reviewSkill } from "./review.js";
11
- export { trajectorySkill } from "./trajectory.js";
12
- export type { ReflectData } from "./reflect.js";
13
- export type { ReviewData } from "./review.js";
14
- export type { TrajectoryData, LearnedPattern } from "./trajectory.js";
15
- export { TrajectoryParams } from "./trajectory.js";
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/skills/shared/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,cAAc,CAAC;AACtB,OAAO,aAAa,CAAC;AACrB,OAAO,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,42 +0,0 @@
1
- /**
2
- * GLM Daemon - Reflect Skill
3
- *
4
- * TL;DR checkpoint for summarizing progress after N tool calls.
5
- * Used by all workflows for periodic reflection.
6
- */
7
- import { z } from "zod";
8
- import type { Skill } from "../types.js";
9
- /**
10
- * Reflect skill parameters
11
- */
12
- declare const ReflectParams: z.ZodObject<{
13
- force: z.ZodOptional<z.ZodBoolean>;
14
- }, z.core.$strip>;
15
- /**
16
- * Reflection result data (matches GLMReflectionSummary)
17
- */
18
- interface ReflectData {
19
- /** Checkpoint number */
20
- checkpoint: number;
21
- /** Summary text */
22
- summary: string;
23
- /** What was accomplished */
24
- accomplishments: string[];
25
- /** What to do next */
26
- nextSteps: string[];
27
- /** Any issues/blockers */
28
- issues: string[];
29
- /** Timestamp */
30
- timestamp: string;
31
- /** Tools used in this chunk */
32
- toolsUsed: number;
33
- /** Phase when reflection occurred */
34
- phase: string;
35
- }
36
- /**
37
- * Reflect skill definition
38
- */
39
- export declare const reflectSkill: Skill<void, ReflectData>;
40
- export { ReflectParams };
41
- export type { ReflectData };
42
- //# sourceMappingURL=reflect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../../src/skills/shared/reflect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAGpE;;GAEG;AACH,QAAA,MAAM,aAAa;;iBAGjB,CAAC;AAEH;;GAEG;AACH,UAAU,WAAW;IACnB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,CAyGjD,CAAC;AAKF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -1,42 +0,0 @@
1
- /**
2
- * GLM Daemon - Review Skill
3
- *
4
- * Quality review for code changes or trading performance.
5
- * Used by coding and trading workflows.
6
- */
7
- import { z } from "zod";
8
- import type { Skill } from "../types.js";
9
- /**
10
- * Review skill parameters
11
- */
12
- declare const ReviewParams: z.ZodObject<{
13
- type: z.ZodOptional<z.ZodEnum<{
14
- code: "code";
15
- trading: "trading";
16
- general: "general";
17
- }>>;
18
- criteria: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
- approveOnPass: z.ZodOptional<z.ZodBoolean>;
20
- }, z.core.$strip>;
21
- /**
22
- * Review result data
23
- */
24
- interface ReviewData {
25
- /** Whether the review passed */
26
- approved: boolean;
27
- /** Issues found during review */
28
- issues: string[];
29
- /** Suggestions for improvement */
30
- suggestions: string[];
31
- /** Overall assessment */
32
- assessment: string;
33
- /** Score (0-100) if applicable */
34
- score?: number;
35
- }
36
- /**
37
- * Review skill definition
38
- */
39
- export declare const reviewSkill: Skill<z.infer<typeof ReviewParams>, ReviewData>;
40
- export { ReviewParams };
41
- export type { ReviewData };
42
- //# sourceMappingURL=review.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/skills/shared/review.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAA6B,MAAM,aAAa,CAAC;AAGpE;;GAEG;AACH,QAAA,MAAM,YAAY;;;;;;;;iBAOhB,CAAC;AAEH;;GAEG;AACH,UAAU,UAAU;IAClB,gCAAgC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kCAAkC;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA2BD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,EAAE,UAAU,CA+HvE,CAAC;AAKF,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,CAAC"}