@defai.digital/ax-cli 3.8.6 → 3.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/.ax-cli/CUSTOM.md +97 -0
  2. package/.ax-cli/auto-accept-audit.json +1302 -0
  3. package/.ax-cli/index.json +43 -0
  4. package/.ax-cli/memory.json +55 -0
  5. package/.ax-cli/settings.json +12 -0
  6. package/ax.config.json +303 -0
  7. package/config-defaults/models.yaml +0 -24
  8. package/config-defaults/settings.yaml +13 -16
  9. package/dist/agent/dependency-resolver.js +22 -1
  10. package/dist/agent/dependency-resolver.js.map +1 -1
  11. package/dist/agent/llm-agent.d.ts +12 -0
  12. package/dist/agent/llm-agent.js +64 -29
  13. package/dist/agent/llm-agent.js.map +1 -1
  14. package/dist/agent/subagent.js +4 -0
  15. package/dist/agent/subagent.js.map +1 -1
  16. package/dist/analyzers/architecture/project-structure-scanner.js +6 -2
  17. package/dist/analyzers/architecture/project-structure-scanner.js.map +1 -1
  18. package/dist/checkpoint/manager.js +18 -4
  19. package/dist/checkpoint/manager.js.map +1 -1
  20. package/dist/checkpoint/storage.d.ts +6 -0
  21. package/dist/checkpoint/storage.js +90 -45
  22. package/dist/checkpoint/storage.js.map +1 -1
  23. package/dist/commands/mcp.js +14 -2
  24. package/dist/commands/mcp.js.map +1 -1
  25. package/dist/commands/setup.js +2 -2
  26. package/dist/commands/setup.js.map +1 -1
  27. package/dist/commands/status.js +36 -10
  28. package/dist/commands/status.js.map +1 -1
  29. package/dist/index.js +2 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/llm/client.d.ts +9 -0
  32. package/dist/llm/client.js +306 -45
  33. package/dist/llm/client.js.map +1 -1
  34. package/dist/llm/types.d.ts +1 -47
  35. package/dist/llm/types.js +0 -18
  36. package/dist/llm/types.js.map +1 -1
  37. package/dist/mcp/client-v2.d.ts +3 -0
  38. package/dist/mcp/client-v2.js +85 -19
  39. package/dist/mcp/client-v2.js.map +1 -1
  40. package/dist/mcp/health.js +1 -1
  41. package/dist/mcp/health.js.map +1 -1
  42. package/dist/planner/plan-storage.js +3 -2
  43. package/dist/planner/plan-storage.js.map +1 -1
  44. package/dist/planner/types.d.ts +6 -6
  45. package/dist/schemas/index.d.ts +2 -2
  46. package/dist/tools/bash.js +30 -6
  47. package/dist/tools/bash.js.map +1 -1
  48. package/dist/tools/search.js +12 -13
  49. package/dist/tools/search.js.map +1 -1
  50. package/dist/tools/text-editor.d.ts +46 -0
  51. package/dist/tools/text-editor.js +455 -11
  52. package/dist/tools/text-editor.js.map +1 -1
  53. package/dist/tools/todo-tool.js +2 -2
  54. package/dist/tools/todo-tool.js.map +1 -1
  55. package/dist/tools/web-search/cache.js +1 -1
  56. package/dist/tools/web-search/cache.js.map +1 -1
  57. package/dist/tools/web-search/engines/stackoverflow.d.ts +30 -0
  58. package/dist/tools/web-search/engines/stackoverflow.js +130 -0
  59. package/dist/tools/web-search/engines/stackoverflow.js.map +1 -0
  60. package/dist/tools/web-search/engines/wikipedia.d.ts +27 -0
  61. package/dist/tools/web-search/engines/wikipedia.js +112 -0
  62. package/dist/tools/web-search/engines/wikipedia.js.map +1 -0
  63. package/dist/tools/web-search/router.d.ts +2 -0
  64. package/dist/tools/web-search/router.js +29 -4
  65. package/dist/tools/web-search/router.js.map +1 -1
  66. package/dist/tools/web-search/web-search-tool.js +17 -1
  67. package/dist/tools/web-search/web-search-tool.js.map +1 -1
  68. package/dist/ui/components/chat-input.js +10 -1
  69. package/dist/ui/components/chat-input.js.map +1 -1
  70. package/dist/ui/components/chat-interface.js +1 -0
  71. package/dist/ui/components/chat-interface.js.map +1 -1
  72. package/dist/ui/hooks/use-input-history.js +20 -12
  73. package/dist/ui/hooks/use-input-history.js.map +1 -1
  74. package/dist/utils/api-error.d.ts +61 -0
  75. package/dist/utils/api-error.js +176 -0
  76. package/dist/utils/api-error.js.map +1 -0
  77. package/dist/utils/auto-accept-logger.js +3 -3
  78. package/dist/utils/auto-accept-logger.js.map +1 -1
  79. package/dist/utils/config-loader.js +27 -2
  80. package/dist/utils/config-loader.js.map +1 -1
  81. package/dist/utils/history-migration.js +5 -4
  82. package/dist/utils/history-migration.js.map +1 -1
  83. package/dist/utils/path-helpers.d.ts +8 -0
  84. package/dist/utils/path-helpers.js +34 -0
  85. package/dist/utils/path-helpers.js.map +1 -0
  86. package/dist/utils/retry-helper.d.ts +61 -0
  87. package/dist/utils/retry-helper.js +206 -0
  88. package/dist/utils/retry-helper.js.map +1 -0
  89. package/dist/utils/token-counter.d.ts +5 -0
  90. package/dist/utils/token-counter.js +17 -1
  91. package/dist/utils/token-counter.js.map +1 -1
  92. package/package.json +1 -1
  93. package/packages/schemas/dist/index.d.ts +14 -0
  94. package/packages/schemas/dist/index.d.ts.map +1 -0
  95. package/packages/schemas/dist/index.js +19 -0
  96. package/packages/schemas/dist/index.js.map +1 -0
  97. package/packages/schemas/dist/public/core/brand-types.d.ts +308 -0
  98. package/packages/schemas/dist/public/core/brand-types.d.ts.map +1 -0
  99. package/packages/schemas/dist/public/core/brand-types.js +243 -0
  100. package/packages/schemas/dist/public/core/brand-types.js.map +1 -0
  101. package/packages/schemas/dist/public/core/enums.d.ts +227 -0
  102. package/packages/schemas/dist/public/core/enums.d.ts.map +1 -0
  103. package/packages/schemas/dist/public/core/enums.js +222 -0
  104. package/packages/schemas/dist/public/core/enums.js.map +1 -0
  105. package/packages/schemas/dist/public/core/id-types.d.ts +286 -0
  106. package/packages/schemas/dist/public/core/id-types.d.ts.map +1 -0
  107. package/packages/schemas/dist/public/core/id-types.js +136 -0
  108. package/packages/schemas/dist/public/core/id-types.js.map +1 -0
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Centralized Enums for @ax-cli/schemas
3
+ *
4
+ * This file contains all enumeration types used across the ax-cli ecosystem.
5
+ * Using Zod enums provides:
6
+ * - Runtime validation
7
+ * - TypeScript type inference
8
+ * - Exhaustiveness checking
9
+ * - Auto-completion support
10
+ *
11
+ * SECURITY: Always validate enum values at system boundaries (API, file I/O, CLI args).
12
+ *
13
+ * @module enums
14
+ */
15
+ import { z } from 'zod';
16
+ /**
17
+ * Message Role Enum - Roles for chat messages in AI conversations
18
+ *
19
+ * Used in:
20
+ * - GrokMessageSchema (src/grok/types.ts)
21
+ * - Chat message payloads
22
+ * - Message history tracking
23
+ *
24
+ * @security MUST validate at API boundaries when accepting message objects
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const roleResult = MessageRoleEnum.safeParse(userInput);
29
+ * if (roleResult.success) {
30
+ * const role = roleResult.data; // 'system' | 'user' | 'assistant' | 'tool'
31
+ * }
32
+ * ```
33
+ */
34
+ export declare const MessageRoleEnum: z.ZodEnum<["system", "user", "assistant", "tool"]>;
35
+ /**
36
+ * Extract the TypeScript type from MessageRoleEnum
37
+ */
38
+ export type MessageRole = z.infer<typeof MessageRoleEnum>;
39
+ /**
40
+ * Finish Reason Enum - Reasons why an AI response completed
41
+ *
42
+ * Used in:
43
+ * - GrokResponseSchema (src/grok/types.ts)
44
+ * - API response tracking
45
+ * - Usage analytics
46
+ *
47
+ * Values:
48
+ * - `stop`: Natural completion (model decided to stop)
49
+ * - `length`: Stopped due to max token limit
50
+ * - `tool_calls`: Stopped to execute tool calls
51
+ * - `content_filter`: Stopped due to content policy violation
52
+ *
53
+ * @security MUST validate at API boundaries
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const result = FinishReasonEnum.safeParse(response.finish_reason);
58
+ * if (result.success) {
59
+ * switch (result.data) {
60
+ * case 'stop':
61
+ * // Natural completion
62
+ * break;
63
+ * case 'length':
64
+ * // Truncated response
65
+ * break;
66
+ * case 'tool_calls':
67
+ * // Need to execute tools
68
+ * break;
69
+ * case 'content_filter':
70
+ * // Content policy violation
71
+ * break;
72
+ * }
73
+ * }
74
+ * ```
75
+ */
76
+ export declare const FinishReasonEnum: z.ZodEnum<["stop", "length", "tool_calls", "content_filter"]>;
77
+ /**
78
+ * Extract the TypeScript type from FinishReasonEnum
79
+ */
80
+ export type FinishReason = z.infer<typeof FinishReasonEnum>;
81
+ /**
82
+ * Transport Enum - Communication protocols for MCP servers
83
+ *
84
+ * Used in:
85
+ * - MCPServerConfigSchema (src/mcp/config.ts)
86
+ * - MCP server initialization
87
+ * - Transport layer selection
88
+ *
89
+ * Values:
90
+ * - `stdio`: Standard input/output (for local processes)
91
+ * - `http`: HTTP protocol (for remote servers)
92
+ * - `sse`: Server-Sent Events (for streaming)
93
+ *
94
+ * @security MUST validate at MCP configuration boundaries
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * const config = {
99
+ * transport: TransportEnum.parse('stdio'),
100
+ * command: 'node',
101
+ * args: ['server.js']
102
+ * };
103
+ * ```
104
+ */
105
+ export declare const TransportEnum: z.ZodEnum<["stdio", "http", "sse"]>;
106
+ /**
107
+ * Extract the TypeScript type from TransportEnum
108
+ */
109
+ export type Transport = z.infer<typeof TransportEnum>;
110
+ /**
111
+ * Editor Command Enum - Commands for text editor tool
112
+ *
113
+ * Used in:
114
+ * - EditorCommand interface (src/tools/text-editor.ts)
115
+ * - Text editing operations
116
+ * - Command validation
117
+ *
118
+ * Values:
119
+ * - `view`: View file contents (read-only)
120
+ * - `str_replace`: Replace string in file (search and replace)
121
+ * - `create`: Create new file with content
122
+ * - `insert`: Insert content at specific line
123
+ * - `undo_edit`: Undo the last edit operation
124
+ *
125
+ * @security MUST validate at tool execution boundaries
126
+ * @security Command execution should be sandboxed to prevent file system abuse
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const command = EditorCommandEnum.parse('str_replace');
131
+ * switch (command) {
132
+ * case 'view':
133
+ * return viewFile(path);
134
+ * case 'str_replace':
135
+ * return replaceString(path, oldStr, newStr);
136
+ * case 'create':
137
+ * return createFile(path, content);
138
+ * case 'insert':
139
+ * return insertContent(path, line, content);
140
+ * case 'undo_edit':
141
+ * return undoLastEdit();
142
+ * }
143
+ * ```
144
+ */
145
+ export declare const EditorCommandEnum: z.ZodEnum<["view", "str_replace", "create", "insert", "undo_edit"]>;
146
+ /**
147
+ * Extract the TypeScript type from EditorCommandEnum
148
+ */
149
+ export type EditorCommand = z.infer<typeof EditorCommandEnum>;
150
+ /**
151
+ * EXHAUSTIVENESS CHECKING EXAMPLES
152
+ *
153
+ * Zod enums enable TypeScript exhaustiveness checking via switch statements:
154
+ *
155
+ * ```typescript
156
+ * function handleFinishReason(reason: FinishReason): string {
157
+ * switch (reason) {
158
+ * case 'stop':
159
+ * return 'Completed successfully';
160
+ * case 'length':
161
+ * return 'Reached token limit';
162
+ * case 'tool_calls':
163
+ * return 'Executing tools';
164
+ * case 'content_filter':
165
+ * return 'Content filtered';
166
+ * // TypeScript will error if any case is missing!
167
+ * }
168
+ * }
169
+ * ```
170
+ *
171
+ * VALIDATION AT BOUNDARIES
172
+ *
173
+ * Always validate enum values from external sources:
174
+ *
175
+ * ```typescript
176
+ * // API endpoint
177
+ * app.post('/api/message', (req, res) => {
178
+ * const roleResult = MessageRoleEnum.safeParse(req.body.role);
179
+ * if (!roleResult.success) {
180
+ * return res.status(400).json({
181
+ * error: 'Invalid message role',
182
+ * details: roleResult.error
183
+ * });
184
+ * }
185
+ *
186
+ * // Safe to use - validated
187
+ * const message = createMessage(roleResult.data, req.body.content);
188
+ * });
189
+ * ```
190
+ *
191
+ * MIGRATION FROM STRING LITERALS
192
+ *
193
+ * Before (unsafe):
194
+ * ```typescript
195
+ * type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
196
+ * const role: MessageRole = userInput as MessageRole; // No runtime validation!
197
+ * ```
198
+ *
199
+ * After (safe):
200
+ * ```typescript
201
+ * const roleResult = MessageRoleEnum.safeParse(userInput);
202
+ * if (roleResult.success) {
203
+ * const role: MessageRole = roleResult.data; // Validated!
204
+ * }
205
+ * ```
206
+ */
207
+ /**
208
+ * BEST PRACTICES SUMMARY
209
+ *
210
+ * 1. **Always validate at boundaries:**
211
+ * - Use `.safeParse()` for user input
212
+ * - Use `.parse()` when you want to throw on invalid input
213
+ *
214
+ * 2. **Use exhaustive switch statements:**
215
+ * - TypeScript will warn if you miss a case
216
+ * - Helps catch bugs when enums are extended
217
+ *
218
+ * 3. **Document enum usage:**
219
+ * - List where each enum is used
220
+ * - Explain what each value means
221
+ * - Note security implications
222
+ *
223
+ * 4. **Never cast to enum types:**
224
+ * - ❌ `const role = userInput as MessageRole`
225
+ * - ✅ `const role = MessageRoleEnum.parse(userInput)`
226
+ */
227
+ //# sourceMappingURL=enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/public/core/enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,oDAAkD,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,gBAAgB,+DAK3B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa,qCAAmC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,iBAAiB,qEAM5B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Centralized Enums for @ax-cli/schemas
3
+ *
4
+ * This file contains all enumeration types used across the ax-cli ecosystem.
5
+ * Using Zod enums provides:
6
+ * - Runtime validation
7
+ * - TypeScript type inference
8
+ * - Exhaustiveness checking
9
+ * - Auto-completion support
10
+ *
11
+ * SECURITY: Always validate enum values at system boundaries (API, file I/O, CLI args).
12
+ *
13
+ * @module enums
14
+ */
15
+ import { z } from 'zod';
16
+ /**
17
+ * Message Role Enum - Roles for chat messages in AI conversations
18
+ *
19
+ * Used in:
20
+ * - GrokMessageSchema (src/grok/types.ts)
21
+ * - Chat message payloads
22
+ * - Message history tracking
23
+ *
24
+ * @security MUST validate at API boundaries when accepting message objects
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const roleResult = MessageRoleEnum.safeParse(userInput);
29
+ * if (roleResult.success) {
30
+ * const role = roleResult.data; // 'system' | 'user' | 'assistant' | 'tool'
31
+ * }
32
+ * ```
33
+ */
34
+ export const MessageRoleEnum = z.enum(['system', 'user', 'assistant', 'tool']);
35
+ /**
36
+ * Finish Reason Enum - Reasons why an AI response completed
37
+ *
38
+ * Used in:
39
+ * - GrokResponseSchema (src/grok/types.ts)
40
+ * - API response tracking
41
+ * - Usage analytics
42
+ *
43
+ * Values:
44
+ * - `stop`: Natural completion (model decided to stop)
45
+ * - `length`: Stopped due to max token limit
46
+ * - `tool_calls`: Stopped to execute tool calls
47
+ * - `content_filter`: Stopped due to content policy violation
48
+ *
49
+ * @security MUST validate at API boundaries
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const result = FinishReasonEnum.safeParse(response.finish_reason);
54
+ * if (result.success) {
55
+ * switch (result.data) {
56
+ * case 'stop':
57
+ * // Natural completion
58
+ * break;
59
+ * case 'length':
60
+ * // Truncated response
61
+ * break;
62
+ * case 'tool_calls':
63
+ * // Need to execute tools
64
+ * break;
65
+ * case 'content_filter':
66
+ * // Content policy violation
67
+ * break;
68
+ * }
69
+ * }
70
+ * ```
71
+ */
72
+ export const FinishReasonEnum = z.enum([
73
+ 'stop',
74
+ 'length',
75
+ 'tool_calls',
76
+ 'content_filter',
77
+ ]);
78
+ /**
79
+ * Transport Enum - Communication protocols for MCP servers
80
+ *
81
+ * Used in:
82
+ * - MCPServerConfigSchema (src/mcp/config.ts)
83
+ * - MCP server initialization
84
+ * - Transport layer selection
85
+ *
86
+ * Values:
87
+ * - `stdio`: Standard input/output (for local processes)
88
+ * - `http`: HTTP protocol (for remote servers)
89
+ * - `sse`: Server-Sent Events (for streaming)
90
+ *
91
+ * @security MUST validate at MCP configuration boundaries
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const config = {
96
+ * transport: TransportEnum.parse('stdio'),
97
+ * command: 'node',
98
+ * args: ['server.js']
99
+ * };
100
+ * ```
101
+ */
102
+ export const TransportEnum = z.enum(['stdio', 'http', 'sse']);
103
+ /**
104
+ * Editor Command Enum - Commands for text editor tool
105
+ *
106
+ * Used in:
107
+ * - EditorCommand interface (src/tools/text-editor.ts)
108
+ * - Text editing operations
109
+ * - Command validation
110
+ *
111
+ * Values:
112
+ * - `view`: View file contents (read-only)
113
+ * - `str_replace`: Replace string in file (search and replace)
114
+ * - `create`: Create new file with content
115
+ * - `insert`: Insert content at specific line
116
+ * - `undo_edit`: Undo the last edit operation
117
+ *
118
+ * @security MUST validate at tool execution boundaries
119
+ * @security Command execution should be sandboxed to prevent file system abuse
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const command = EditorCommandEnum.parse('str_replace');
124
+ * switch (command) {
125
+ * case 'view':
126
+ * return viewFile(path);
127
+ * case 'str_replace':
128
+ * return replaceString(path, oldStr, newStr);
129
+ * case 'create':
130
+ * return createFile(path, content);
131
+ * case 'insert':
132
+ * return insertContent(path, line, content);
133
+ * case 'undo_edit':
134
+ * return undoLastEdit();
135
+ * }
136
+ * ```
137
+ */
138
+ export const EditorCommandEnum = z.enum([
139
+ 'view',
140
+ 'str_replace',
141
+ 'create',
142
+ 'insert',
143
+ 'undo_edit',
144
+ ]);
145
+ /**
146
+ * EXHAUSTIVENESS CHECKING EXAMPLES
147
+ *
148
+ * Zod enums enable TypeScript exhaustiveness checking via switch statements:
149
+ *
150
+ * ```typescript
151
+ * function handleFinishReason(reason: FinishReason): string {
152
+ * switch (reason) {
153
+ * case 'stop':
154
+ * return 'Completed successfully';
155
+ * case 'length':
156
+ * return 'Reached token limit';
157
+ * case 'tool_calls':
158
+ * return 'Executing tools';
159
+ * case 'content_filter':
160
+ * return 'Content filtered';
161
+ * // TypeScript will error if any case is missing!
162
+ * }
163
+ * }
164
+ * ```
165
+ *
166
+ * VALIDATION AT BOUNDARIES
167
+ *
168
+ * Always validate enum values from external sources:
169
+ *
170
+ * ```typescript
171
+ * // API endpoint
172
+ * app.post('/api/message', (req, res) => {
173
+ * const roleResult = MessageRoleEnum.safeParse(req.body.role);
174
+ * if (!roleResult.success) {
175
+ * return res.status(400).json({
176
+ * error: 'Invalid message role',
177
+ * details: roleResult.error
178
+ * });
179
+ * }
180
+ *
181
+ * // Safe to use - validated
182
+ * const message = createMessage(roleResult.data, req.body.content);
183
+ * });
184
+ * ```
185
+ *
186
+ * MIGRATION FROM STRING LITERALS
187
+ *
188
+ * Before (unsafe):
189
+ * ```typescript
190
+ * type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
191
+ * const role: MessageRole = userInput as MessageRole; // No runtime validation!
192
+ * ```
193
+ *
194
+ * After (safe):
195
+ * ```typescript
196
+ * const roleResult = MessageRoleEnum.safeParse(userInput);
197
+ * if (roleResult.success) {
198
+ * const role: MessageRole = roleResult.data; // Validated!
199
+ * }
200
+ * ```
201
+ */
202
+ /**
203
+ * BEST PRACTICES SUMMARY
204
+ *
205
+ * 1. **Always validate at boundaries:**
206
+ * - Use `.safeParse()` for user input
207
+ * - Use `.parse()` when you want to throw on invalid input
208
+ *
209
+ * 2. **Use exhaustive switch statements:**
210
+ * - TypeScript will warn if you miss a case
211
+ * - Helps catch bugs when enums are extended
212
+ *
213
+ * 3. **Document enum usage:**
214
+ * - List where each enum is used
215
+ * - Explain what each value means
216
+ * - Note security implications
217
+ *
218
+ * 4. **Never cast to enum types:**
219
+ * - ❌ `const role = userInput as MessageRole`
220
+ * - ✅ `const role = MessageRoleEnum.parse(userInput)`
221
+ */
222
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/public/core/enums.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAO/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,gBAAgB;CACjB,CAAC,CAAC;AAOH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAO9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC;IACtC,MAAM;IACN,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC;AAOH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG"}