@crewx/sdk 0.8.0-rc.58

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 (303) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1022 -0
  3. package/dist/adapters/MastraToolAdapter.d.ts +9 -0
  4. package/dist/adapters/MastraToolAdapter.js +66 -0
  5. package/dist/adapters/MastraToolAdapter.js.map +1 -0
  6. package/dist/api/index.d.ts +2 -0
  7. package/dist/api/index.js +8 -0
  8. package/dist/api/index.js.map +1 -0
  9. package/dist/boxing/box-storage.interface.d.ts +13 -0
  10. package/dist/boxing/box-storage.interface.js +3 -0
  11. package/dist/boxing/box-storage.interface.js.map +1 -0
  12. package/dist/boxing/box.service.d.ts +15 -0
  13. package/dist/boxing/box.service.js +70 -0
  14. package/dist/boxing/box.service.js.map +1 -0
  15. package/dist/boxing/box.types.d.ts +86 -0
  16. package/dist/boxing/box.types.js +3 -0
  17. package/dist/boxing/box.types.js.map +1 -0
  18. package/dist/boxing/context-builder.d.ts +8 -0
  19. package/dist/boxing/context-builder.js +76 -0
  20. package/dist/boxing/context-builder.js.map +1 -0
  21. package/dist/boxing/index.d.ts +6 -0
  22. package/dist/boxing/index.js +11 -0
  23. package/dist/boxing/index.js.map +1 -0
  24. package/dist/boxing/tokenizer.d.ts +3 -0
  25. package/dist/boxing/tokenizer.js +11 -0
  26. package/dist/boxing/tokenizer.js.map +1 -0
  27. package/dist/config/api-provider-parser.d.ts +58 -0
  28. package/dist/config/api-provider-parser.js +212 -0
  29. package/dist/config/api-provider-parser.js.map +1 -0
  30. package/dist/config/index.d.ts +3 -0
  31. package/dist/config/index.js +20 -0
  32. package/dist/config/index.js.map +1 -0
  33. package/dist/config/log.config.d.ts +7 -0
  34. package/dist/config/log.config.js +20 -0
  35. package/dist/config/log.config.js.map +1 -0
  36. package/dist/config/pricing.d.ts +10 -0
  37. package/dist/config/pricing.js +44 -0
  38. package/dist/config/pricing.js.map +1 -0
  39. package/dist/config/timeout.config.d.ts +14 -0
  40. package/dist/config/timeout.config.js +34 -0
  41. package/dist/config/timeout.config.js.map +1 -0
  42. package/dist/config/yaml-loader.d.ts +8 -0
  43. package/dist/config/yaml-loader.js +155 -0
  44. package/dist/config/yaml-loader.js.map +1 -0
  45. package/dist/constants/index.d.ts +4 -0
  46. package/dist/constants/index.js +8 -0
  47. package/dist/constants/index.js.map +1 -0
  48. package/dist/constants.d.ts +1 -0
  49. package/dist/constants.js +18 -0
  50. package/dist/constants.js.map +1 -0
  51. package/dist/conversation/conversation-config.d.ts +9 -0
  52. package/dist/conversation/conversation-config.js +22 -0
  53. package/dist/conversation/conversation-config.js.map +1 -0
  54. package/dist/conversation/conversation-history.interface.d.ts +36 -0
  55. package/dist/conversation/conversation-history.interface.js +3 -0
  56. package/dist/conversation/conversation-history.interface.js.map +1 -0
  57. package/dist/conversation/conversation-storage.service.d.ts +16 -0
  58. package/dist/conversation/conversation-storage.service.js +213 -0
  59. package/dist/conversation/conversation-storage.service.js.map +1 -0
  60. package/dist/conversation/index.d.ts +3 -0
  61. package/dist/conversation/index.js +20 -0
  62. package/dist/conversation/index.js.map +1 -0
  63. package/dist/core/agent/agent-factory.d.ts +37 -0
  64. package/dist/core/agent/agent-factory.js +68 -0
  65. package/dist/core/agent/agent-factory.js.map +1 -0
  66. package/dist/core/agent/agent-runtime.d.ts +52 -0
  67. package/dist/core/agent/agent-runtime.js +206 -0
  68. package/dist/core/agent/agent-runtime.js.map +1 -0
  69. package/dist/core/agent/event-bus.d.ts +44 -0
  70. package/dist/core/agent/event-bus.js +43 -0
  71. package/dist/core/agent/event-bus.js.map +1 -0
  72. package/dist/core/agent/index.d.ts +3 -0
  73. package/dist/core/agent/index.js +13 -0
  74. package/dist/core/agent/index.js.map +1 -0
  75. package/dist/core/env-defaults.d.ts +1 -0
  76. package/dist/core/env-defaults.js +7 -0
  77. package/dist/core/env-defaults.js.map +1 -0
  78. package/dist/core/parallel/helpers.d.ts +27 -0
  79. package/dist/core/parallel/helpers.js +252 -0
  80. package/dist/core/parallel/helpers.js.map +1 -0
  81. package/dist/core/parallel/index.d.ts +4 -0
  82. package/dist/core/parallel/index.js +11 -0
  83. package/dist/core/parallel/index.js.map +1 -0
  84. package/dist/core/parallel/parallel-runner.d.ts +16 -0
  85. package/dist/core/parallel/parallel-runner.js +230 -0
  86. package/dist/core/parallel/parallel-runner.js.map +1 -0
  87. package/dist/core/parallel/types.d.ts +41 -0
  88. package/dist/core/parallel/types.js +3 -0
  89. package/dist/core/parallel/types.js.map +1 -0
  90. package/dist/core/providers/MastraAPIProvider.d.ts +31 -0
  91. package/dist/core/providers/MastraAPIProvider.js +365 -0
  92. package/dist/core/providers/MastraAPIProvider.js.map +1 -0
  93. package/dist/core/providers/ai-provider.interface.d.ts +78 -0
  94. package/dist/core/providers/ai-provider.interface.js +23 -0
  95. package/dist/core/providers/ai-provider.interface.js.map +1 -0
  96. package/dist/core/providers/base-ai.provider.d.ts +80 -0
  97. package/dist/core/providers/base-ai.provider.js +1183 -0
  98. package/dist/core/providers/base-ai.provider.js.map +1 -0
  99. package/dist/core/providers/base-ai.types.d.ts +26 -0
  100. package/dist/core/providers/base-ai.types.js +3 -0
  101. package/dist/core/providers/base-ai.types.js.map +1 -0
  102. package/dist/core/providers/claude.provider.d.ts +19 -0
  103. package/dist/core/providers/claude.provider.js +170 -0
  104. package/dist/core/providers/claude.provider.js.map +1 -0
  105. package/dist/core/providers/codex.provider.d.ts +21 -0
  106. package/dist/core/providers/codex.provider.js +134 -0
  107. package/dist/core/providers/codex.provider.js.map +1 -0
  108. package/dist/core/providers/copilot.provider.d.ts +24 -0
  109. package/dist/core/providers/copilot.provider.js +146 -0
  110. package/dist/core/providers/copilot.provider.js.map +1 -0
  111. package/dist/core/providers/dynamic-provider.factory.d.ts +74 -0
  112. package/dist/core/providers/dynamic-provider.factory.js +643 -0
  113. package/dist/core/providers/dynamic-provider.factory.js.map +1 -0
  114. package/dist/core/providers/gemini.provider.d.ts +16 -0
  115. package/dist/core/providers/gemini.provider.js +101 -0
  116. package/dist/core/providers/gemini.provider.js.map +1 -0
  117. package/dist/core/providers/index.d.ts +8 -0
  118. package/dist/core/providers/index.js +20 -0
  119. package/dist/core/providers/index.js.map +1 -0
  120. package/dist/core/providers/mock.provider.d.ts +13 -0
  121. package/dist/core/providers/mock.provider.js +55 -0
  122. package/dist/core/providers/mock.provider.js.map +1 -0
  123. package/dist/core/providers/provider-factory.d.ts +3 -0
  124. package/dist/core/providers/provider-factory.js +65 -0
  125. package/dist/core/providers/provider-factory.js.map +1 -0
  126. package/dist/core/providers/tool-call.types.d.ts +39 -0
  127. package/dist/core/providers/tool-call.types.js +3 -0
  128. package/dist/core/providers/tool-call.types.js.map +1 -0
  129. package/dist/core/remote/index.d.ts +3 -0
  130. package/dist/core/remote/index.js +20 -0
  131. package/dist/core/remote/index.js.map +1 -0
  132. package/dist/core/remote/remote-agent-manager.d.ts +24 -0
  133. package/dist/core/remote/remote-agent-manager.js +195 -0
  134. package/dist/core/remote/remote-agent-manager.js.map +1 -0
  135. package/dist/core/remote/remote-transport.d.ts +15 -0
  136. package/dist/core/remote/remote-transport.js +70 -0
  137. package/dist/core/remote/remote-transport.js.map +1 -0
  138. package/dist/core/remote/types.d.ts +79 -0
  139. package/dist/core/remote/types.js +3 -0
  140. package/dist/core/remote/types.js.map +1 -0
  141. package/dist/index.d.ts +56 -0
  142. package/dist/index.js +133 -0
  143. package/dist/index.js.map +1 -0
  144. package/dist/internal/index.d.ts +1 -0
  145. package/dist/internal/index.js +6 -0
  146. package/dist/internal/index.js.map +1 -0
  147. package/dist/knowledge/DocumentManager.d.ts +4 -0
  148. package/dist/knowledge/DocumentManager.js +119 -0
  149. package/dist/knowledge/DocumentManager.js.map +1 -0
  150. package/dist/knowledge/index.d.ts +1 -0
  151. package/dist/knowledge/index.js +18 -0
  152. package/dist/knowledge/index.js.map +1 -0
  153. package/dist/parsers/agent-call.util.d.ts +3 -0
  154. package/dist/parsers/agent-call.util.js +17 -0
  155. package/dist/parsers/agent-call.util.js.map +1 -0
  156. package/dist/parsers/claude.parser.d.ts +2 -0
  157. package/dist/parsers/claude.parser.js +46 -0
  158. package/dist/parsers/claude.parser.js.map +1 -0
  159. package/dist/parsers/codex.parser.d.ts +2 -0
  160. package/dist/parsers/codex.parser.js +89 -0
  161. package/dist/parsers/codex.parser.js.map +1 -0
  162. package/dist/parsers/copilot.parser.d.ts +2 -0
  163. package/dist/parsers/copilot.parser.js +58 -0
  164. package/dist/parsers/copilot.parser.js.map +1 -0
  165. package/dist/parsers/gemini.parser.d.ts +2 -0
  166. package/dist/parsers/gemini.parser.js +36 -0
  167. package/dist/parsers/gemini.parser.js.map +1 -0
  168. package/dist/parsers/index.d.ts +7 -0
  169. package/dist/parsers/index.js +45 -0
  170. package/dist/parsers/index.js.map +1 -0
  171. package/dist/schema/skills-parser.d.ts +8 -0
  172. package/dist/schema/skills-parser.js +438 -0
  173. package/dist/schema/skills-parser.js.map +1 -0
  174. package/dist/schema/skills.types.d.ts +158 -0
  175. package/dist/schema/skills.types.js +41 -0
  176. package/dist/schema/skills.types.js.map +1 -0
  177. package/dist/schemas/api-provider.schema.d.ts +432 -0
  178. package/dist/schemas/api-provider.schema.js +50 -0
  179. package/dist/schemas/api-provider.schema.js.map +1 -0
  180. package/dist/services/index.d.ts +2 -0
  181. package/dist/services/index.js +19 -0
  182. package/dist/services/index.js.map +1 -0
  183. package/dist/services/layout-loader.service.d.ts +18 -0
  184. package/dist/services/layout-loader.service.js +271 -0
  185. package/dist/services/layout-loader.service.js.map +1 -0
  186. package/dist/services/layout-renderer.service.d.ts +34 -0
  187. package/dist/services/layout-renderer.service.js +325 -0
  188. package/dist/services/layout-renderer.service.js.map +1 -0
  189. package/dist/services/props-validator.service.d.ts +29 -0
  190. package/dist/services/props-validator.service.js +332 -0
  191. package/dist/services/props-validator.service.js.map +1 -0
  192. package/dist/skills/adapter/claude-skill-adapter.d.ts +11 -0
  193. package/dist/skills/adapter/claude-skill-adapter.js +222 -0
  194. package/dist/skills/adapter/claude-skill-adapter.js.map +1 -0
  195. package/dist/skills/index.d.ts +6 -0
  196. package/dist/skills/index.js +31 -0
  197. package/dist/skills/index.js.map +1 -0
  198. package/dist/skills/runtime/progressive-loader.d.ts +27 -0
  199. package/dist/skills/runtime/progressive-loader.js +186 -0
  200. package/dist/skills/runtime/progressive-loader.js.map +1 -0
  201. package/dist/skills/runtime/runtime-requirements-validator.d.ts +23 -0
  202. package/dist/skills/runtime/runtime-requirements-validator.js +248 -0
  203. package/dist/skills/runtime/runtime-requirements-validator.js.map +1 -0
  204. package/dist/skills/runtime/skill-runtime.service.d.ts +42 -0
  205. package/dist/skills/runtime/skill-runtime.service.js +434 -0
  206. package/dist/skills/runtime/skill-runtime.service.js.map +1 -0
  207. package/dist/tools/file-system.service.d.ts +10 -0
  208. package/dist/tools/file-system.service.js +33 -0
  209. package/dist/tools/file-system.service.js.map +1 -0
  210. package/dist/tools/find.tool.d.ts +85 -0
  211. package/dist/tools/find.tool.js +139 -0
  212. package/dist/tools/find.tool.js.map +1 -0
  213. package/dist/tools/glob.tool.d.ts +100 -0
  214. package/dist/tools/glob.tool.js +153 -0
  215. package/dist/tools/glob.tool.js.map +1 -0
  216. package/dist/tools/grep.tool.d.ts +30 -0
  217. package/dist/tools/grep.tool.js +137 -0
  218. package/dist/tools/grep.tool.js.map +1 -0
  219. package/dist/tools/index.d.ts +12 -0
  220. package/dist/tools/index.js +40 -0
  221. package/dist/tools/index.js.map +1 -0
  222. package/dist/tools/ls.tool.d.ts +24 -0
  223. package/dist/tools/ls.tool.js +94 -0
  224. package/dist/tools/ls.tool.js.map +1 -0
  225. package/dist/tools/read-file.tool.d.ts +30 -0
  226. package/dist/tools/read-file.tool.js +69 -0
  227. package/dist/tools/read-file.tool.js.map +1 -0
  228. package/dist/tools/replace.tool.d.ts +36 -0
  229. package/dist/tools/replace.tool.js +68 -0
  230. package/dist/tools/replace.tool.js.map +1 -0
  231. package/dist/tools/run-shell-command.tool.d.ts +24 -0
  232. package/dist/tools/run-shell-command.tool.js +64 -0
  233. package/dist/tools/run-shell-command.tool.js.map +1 -0
  234. package/dist/tools/tree.tool.d.ts +24 -0
  235. package/dist/tools/tree.tool.js +109 -0
  236. package/dist/tools/tree.tool.js.map +1 -0
  237. package/dist/tools/types.d.ts +42 -0
  238. package/dist/tools/types.js +13 -0
  239. package/dist/tools/types.js.map +1 -0
  240. package/dist/tools/utils/file-utils.d.ts +5 -0
  241. package/dist/tools/utils/file-utils.js +221 -0
  242. package/dist/tools/utils/file-utils.js.map +1 -0
  243. package/dist/tools/write-file.tool.d.ts +24 -0
  244. package/dist/tools/write-file.tool.js +55 -0
  245. package/dist/tools/write-file.tool.js.map +1 -0
  246. package/dist/types/agent.types.d.ts +134 -0
  247. package/dist/types/agent.types.js +16 -0
  248. package/dist/types/agent.types.js.map +1 -0
  249. package/dist/types/api-provider.types.d.ts +85 -0
  250. package/dist/types/api-provider.types.js +65 -0
  251. package/dist/types/api-provider.types.js.map +1 -0
  252. package/dist/types/index.d.ts +6 -0
  253. package/dist/types/index.js +23 -0
  254. package/dist/types/index.js.map +1 -0
  255. package/dist/types/layout.types.d.ts +115 -0
  256. package/dist/types/layout.types.js +22 -0
  257. package/dist/types/layout.types.js.map +1 -0
  258. package/dist/types/provider.types.d.ts +12 -0
  259. package/dist/types/provider.types.js +3 -0
  260. package/dist/types/provider.types.js.map +1 -0
  261. package/dist/types/skill-runtime.types.d.ts +244 -0
  262. package/dist/types/skill-runtime.types.js +44 -0
  263. package/dist/types/skill-runtime.types.js.map +1 -0
  264. package/dist/types/structured-payload.types.d.ts +46 -0
  265. package/dist/types/structured-payload.types.js +65 -0
  266. package/dist/types/structured-payload.types.js.map +1 -0
  267. package/dist/types/task-log.types.d.ts +14 -0
  268. package/dist/types/task-log.types.js +3 -0
  269. package/dist/types/task-log.types.js.map +1 -0
  270. package/dist/types/template.types.d.ts +38 -0
  271. package/dist/types/template.types.js +3 -0
  272. package/dist/types/template.types.js.map +1 -0
  273. package/dist/types.d.ts +1 -0
  274. package/dist/types.js +18 -0
  275. package/dist/types.js.map +1 -0
  276. package/dist/utils/api-provider-normalizer.d.ts +16 -0
  277. package/dist/utils/api-provider-normalizer.js +135 -0
  278. package/dist/utils/api-provider-normalizer.js.map +1 -0
  279. package/dist/utils/base-message-formatter.d.ts +32 -0
  280. package/dist/utils/base-message-formatter.js +170 -0
  281. package/dist/utils/base-message-formatter.js.map +1 -0
  282. package/dist/utils/error-utils.d.ts +3 -0
  283. package/dist/utils/error-utils.js +27 -0
  284. package/dist/utils/error-utils.js.map +1 -0
  285. package/dist/utils/index.d.ts +4 -0
  286. package/dist/utils/index.js +21 -0
  287. package/dist/utils/index.js.map +1 -0
  288. package/dist/utils/math-utils.d.ts +3 -0
  289. package/dist/utils/math-utils.js +10 -0
  290. package/dist/utils/math-utils.js.map +1 -0
  291. package/dist/utils/mention-parser.d.ts +18 -0
  292. package/dist/utils/mention-parser.js +136 -0
  293. package/dist/utils/mention-parser.js.map +1 -0
  294. package/dist/utils/string-utils.d.ts +1 -0
  295. package/dist/utils/string-utils.js +10 -0
  296. package/dist/utils/string-utils.js.map +1 -0
  297. package/dist/utils.d.ts +3 -0
  298. package/dist/utils.js +20 -0
  299. package/dist/utils.js.map +1 -0
  300. package/package.json +134 -0
  301. package/schema/api-provider-config.json +138 -0
  302. package/schema/crewx-config.json +224 -0
  303. package/schema/skills-config.json +306 -0
@@ -0,0 +1,16 @@
1
+ import { APIProviderConfig, ProviderExecutionMode } from '../types/api-provider.types';
2
+ export interface ModePermissionBuckets {
3
+ tools: string[];
4
+ mcp: string[];
5
+ }
6
+ export interface NormalizedAPIProviderConfigResult {
7
+ config: APIProviderConfig;
8
+ permissionsByMode: Record<string, ModePermissionBuckets>;
9
+ }
10
+ export declare class APIProviderNormalizationError extends Error {
11
+ constructor(message: string);
12
+ }
13
+ export declare function normalizeAPIProviderConfig(config: APIProviderConfig): NormalizedAPIProviderConfigResult;
14
+ export declare function getModePermissions(normalized: NormalizedAPIProviderConfigResult, mode: ProviderExecutionMode): ModePermissionBuckets;
15
+ export declare function isAPIProviderConfig(candidate: unknown): candidate is APIProviderConfig;
16
+ export declare function assertAPIProviderConfig(candidate: unknown): asserts candidate is APIProviderConfig;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.APIProviderNormalizationError = void 0;
4
+ exports.normalizeAPIProviderConfig = normalizeAPIProviderConfig;
5
+ exports.getModePermissions = getModePermissions;
6
+ exports.isAPIProviderConfig = isAPIProviderConfig;
7
+ exports.assertAPIProviderConfig = assertAPIProviderConfig;
8
+ const api_provider_schema_1 = require("../schemas/api-provider.schema");
9
+ const api_provider_types_1 = require("../types/api-provider.types");
10
+ class APIProviderNormalizationError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = 'APIProviderNormalizationError';
14
+ }
15
+ }
16
+ exports.APIProviderNormalizationError = APIProviderNormalizationError;
17
+ function normalizeAPIProviderConfig(config) {
18
+ const normalizedConfig = {
19
+ ...config,
20
+ };
21
+ const normalizedOptions = {};
22
+ const permissionsByMode = {};
23
+ const parsedOptions = parseOptions(config.options);
24
+ mergeOptions(normalizedOptions, parsedOptions, permissionsByMode);
25
+ if ((0, api_provider_types_1.isLegacyProviderPermissionConfig)(config)) {
26
+ const legacyOptions = (0, api_provider_types_1.convertLegacyPermissionsToProviderOptions)(config);
27
+ mergeOptions(normalizedOptions, legacyOptions, permissionsByMode);
28
+ }
29
+ ensureDefaultModes(normalizedOptions, permissionsByMode);
30
+ normalizedConfig.options = normalizedOptions;
31
+ return {
32
+ config: normalizedConfig,
33
+ permissionsByMode,
34
+ };
35
+ }
36
+ function getModePermissions(normalized, mode) {
37
+ return normalized.permissionsByMode[mode] ?? { tools: [], mcp: [] };
38
+ }
39
+ function isAPIProviderConfig(candidate) {
40
+ return api_provider_schema_1.APIProviderConfigSchema.safeParse(candidate).success;
41
+ }
42
+ function assertAPIProviderConfig(candidate) {
43
+ const result = api_provider_schema_1.APIProviderConfigSchema.safeParse(candidate);
44
+ if (!result.success) {
45
+ throw new APIProviderNormalizationError(`Invalid API provider configuration: ${result.error.message}`);
46
+ }
47
+ }
48
+ function parseOptions(rawOptions) {
49
+ if (!rawOptions) {
50
+ return {};
51
+ }
52
+ const parsed = api_provider_schema_1.ProviderOptionsSchema.safeParse(rawOptions);
53
+ if (!parsed.success) {
54
+ throw new APIProviderNormalizationError(`Invalid provider options: ${parsed.error.message}`);
55
+ }
56
+ return parsed.data ?? {};
57
+ }
58
+ function mergeOptions(target, source, permissionsByMode) {
59
+ for (const [mode, rawModeOptions] of Object.entries(source)) {
60
+ if (!rawModeOptions) {
61
+ continue;
62
+ }
63
+ const normalizedMode = normalizeModeOptions(rawModeOptions);
64
+ const existingMode = target[mode] ?? { tools: [], mcp: [] };
65
+ const mergedTools = mergeStringLists(existingMode.tools ?? [], normalizedMode.tools ?? []);
66
+ const mergedMcp = mergeStringLists(existingMode.mcp ?? [], normalizedMode.mcp ?? []);
67
+ target[mode] = {
68
+ tools: mergedTools,
69
+ mcp: mergedMcp,
70
+ };
71
+ permissionsByMode[mode] = {
72
+ tools: [...mergedTools],
73
+ mcp: [...mergedMcp],
74
+ };
75
+ }
76
+ }
77
+ function ensureDefaultModes(options, permissionsByMode) {
78
+ const defaultModes = ['query', 'execute'];
79
+ for (const mode of defaultModes) {
80
+ const modeOptions = options[mode] ?? { tools: [], mcp: [] };
81
+ const normalizedMode = normalizeModeOptions(modeOptions);
82
+ options[mode] = normalizedMode;
83
+ permissionsByMode[mode] = {
84
+ tools: [...(normalizedMode.tools ?? [])],
85
+ mcp: [...(normalizedMode.mcp ?? [])],
86
+ };
87
+ }
88
+ }
89
+ function normalizeModeOptions(modeOptions) {
90
+ const parsed = api_provider_schema_1.ProviderModeOptionsSchema.safeParse(modeOptions ?? {});
91
+ if (!parsed.success) {
92
+ throw new APIProviderNormalizationError(`Invalid mode configuration: ${parsed.error.message}`);
93
+ }
94
+ const tools = dedupeStrings(parsed.data.tools);
95
+ const mcp = dedupeStrings(parsed.data.mcp);
96
+ return {
97
+ tools,
98
+ mcp,
99
+ };
100
+ }
101
+ function mergeStringLists(base, additions) {
102
+ if (base.length === 0 && additions.length === 0) {
103
+ return [];
104
+ }
105
+ const merged = new Set();
106
+ for (const value of base) {
107
+ if (value) {
108
+ merged.add(value);
109
+ }
110
+ }
111
+ for (const value of additions) {
112
+ if (value) {
113
+ merged.add(value);
114
+ }
115
+ }
116
+ return Array.from(merged);
117
+ }
118
+ function dedupeStrings(values) {
119
+ if (!values) {
120
+ return [];
121
+ }
122
+ const normalized = new Set();
123
+ for (const value of values) {
124
+ if (typeof value !== 'string') {
125
+ continue;
126
+ }
127
+ const trimmed = value.trim();
128
+ if (trimmed.length === 0) {
129
+ continue;
130
+ }
131
+ normalized.add(trimmed);
132
+ }
133
+ return Array.from(normalized);
134
+ }
135
+ //# sourceMappingURL=api-provider-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-provider-normalizer.js","sourceRoot":"","sources":["../../src/utils/api-provider-normalizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { ConversationMessage } from '../conversation/conversation-history.interface';
2
+ export interface StructuredMessage {
3
+ id?: string;
4
+ userId?: string;
5
+ text: string;
6
+ timestamp?: Date | string;
7
+ isAssistant: boolean;
8
+ metadata?: Record<string, any>;
9
+ }
10
+ export interface FormatterOptions {
11
+ platform?: 'cli' | 'slack' | string;
12
+ includeUserId?: boolean;
13
+ includeTimestamp?: boolean;
14
+ maxLength?: number;
15
+ userPrefix?: string;
16
+ assistantPrefix?: string;
17
+ }
18
+ export declare abstract class BaseMessageFormatter {
19
+ formatHistory(messages: StructuredMessage[], options?: FormatterOptions): string;
20
+ formatMessage(msg: StructuredMessage, options?: FormatterOptions): string;
21
+ buildContext(payload: any, options?: FormatterOptions): string;
22
+ convertToStructured(message: ConversationMessage): StructuredMessage;
23
+ convertToStructuredArray(messages: ConversationMessage[]): StructuredMessage[];
24
+ protected formatMetadata(metadata: Record<string, any>): string;
25
+ protected normalizeTimestamp(timestamp: Date | string): string;
26
+ protected sanitizeText(text: string, maxLength?: number): string;
27
+ protected truncateText(text: string, maxLength: number): string;
28
+ protected getDefaultOptions(options?: FormatterOptions): FormatterOptions;
29
+ protected resolveDisplayName(msg: StructuredMessage): string | undefined;
30
+ }
31
+ export declare class DefaultMessageFormatter extends BaseMessageFormatter {
32
+ }
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultMessageFormatter = exports.BaseMessageFormatter = void 0;
4
+ class BaseMessageFormatter {
5
+ formatHistory(messages, options) {
6
+ if (!messages || messages.length === 0) {
7
+ return '';
8
+ }
9
+ const formattedMessages = messages.map(msg => this.formatMessage(msg, options));
10
+ return formattedMessages.join('\n\n');
11
+ }
12
+ formatMessage(msg, options) {
13
+ if (!msg || !msg.text) {
14
+ return '';
15
+ }
16
+ const opts = this.getDefaultOptions(options);
17
+ const customUserPrefix = options?.userPrefix;
18
+ const customAssistantPrefix = options?.assistantPrefix;
19
+ const parts = [];
20
+ const displayName = this.resolveDisplayName(msg);
21
+ if (msg.isAssistant) {
22
+ const assistantLabel = customAssistantPrefix ||
23
+ opts.assistantPrefix ||
24
+ (displayName ? `🤖 ${displayName}` : '🤖 Assistant');
25
+ parts.push(assistantLabel);
26
+ }
27
+ else {
28
+ if (customUserPrefix) {
29
+ parts.push(customUserPrefix);
30
+ }
31
+ else if (displayName) {
32
+ parts.push(`👤 ${displayName}`);
33
+ }
34
+ else {
35
+ parts.push(opts.userPrefix || '👤 User');
36
+ }
37
+ }
38
+ if (opts.includeUserId && msg.userId) {
39
+ parts.push(`(${msg.userId})`);
40
+ }
41
+ if (opts.includeTimestamp && msg.timestamp) {
42
+ const timestamp = this.normalizeTimestamp(msg.timestamp);
43
+ parts.push(`[${timestamp}]`);
44
+ }
45
+ const header = parts.join(' ');
46
+ const safeText = this.sanitizeText(msg.text, opts.maxLength);
47
+ return `${header}:\n${safeText}`;
48
+ }
49
+ buildContext(payload, options) {
50
+ if (!payload) {
51
+ return '';
52
+ }
53
+ const parts = [];
54
+ if (payload.prompt) {
55
+ parts.push(`**Prompt:**\n${payload.prompt}`);
56
+ }
57
+ if (payload.context) {
58
+ parts.push(`**Context:**\n${payload.context}`);
59
+ }
60
+ if (payload.messages && Array.isArray(payload.messages)) {
61
+ const history = this.formatHistory(payload.messages, options);
62
+ if (history) {
63
+ parts.push(`**Conversation History:**\n${history}`);
64
+ }
65
+ }
66
+ if (payload.metadata) {
67
+ const metadataStr = this.formatMetadata(payload.metadata);
68
+ if (metadataStr) {
69
+ parts.push(`**Metadata:**\n${metadataStr}`);
70
+ }
71
+ }
72
+ return parts.join('\n\n');
73
+ }
74
+ convertToStructured(message) {
75
+ return {
76
+ id: message.id,
77
+ userId: message.userId,
78
+ text: message.text,
79
+ timestamp: message.timestamp,
80
+ isAssistant: message.isAssistant,
81
+ metadata: message.metadata,
82
+ };
83
+ }
84
+ convertToStructuredArray(messages) {
85
+ if (!messages || messages.length === 0) {
86
+ return [];
87
+ }
88
+ return messages.map(msg => this.convertToStructured(msg));
89
+ }
90
+ formatMetadata(metadata) {
91
+ if (!metadata || Object.keys(metadata).length === 0) {
92
+ return '';
93
+ }
94
+ const lines = Object.entries(metadata)
95
+ .filter(([_, value]) => value !== undefined && value !== null)
96
+ .map(([key, value]) => {
97
+ const valueStr = typeof value === 'object' ? JSON.stringify(value) : String(value);
98
+ return `- ${key}: ${valueStr}`;
99
+ });
100
+ return lines.join('\n');
101
+ }
102
+ normalizeTimestamp(timestamp) {
103
+ if (!timestamp) {
104
+ return '';
105
+ }
106
+ try {
107
+ const date = timestamp instanceof Date ? timestamp : new Date(timestamp);
108
+ if (isNaN(date.getTime())) {
109
+ return String(timestamp);
110
+ }
111
+ return date.toISOString();
112
+ }
113
+ catch (error) {
114
+ return String(timestamp);
115
+ }
116
+ }
117
+ sanitizeText(text, maxLength) {
118
+ if (!text) {
119
+ return '';
120
+ }
121
+ let sanitized = text;
122
+ if (maxLength && sanitized.length > maxLength) {
123
+ sanitized = this.truncateText(sanitized, maxLength);
124
+ }
125
+ return sanitized;
126
+ }
127
+ truncateText(text, maxLength) {
128
+ if (!text || text.length <= maxLength) {
129
+ return text;
130
+ }
131
+ const searchStart = Math.max(0, maxLength - 100);
132
+ let breakPoint = maxLength - 20;
133
+ const lastNewline = text.lastIndexOf('\n', breakPoint);
134
+ if (lastNewline > searchStart) {
135
+ breakPoint = lastNewline;
136
+ }
137
+ else {
138
+ const lastPeriod = text.lastIndexOf('. ', breakPoint);
139
+ if (lastPeriod > searchStart) {
140
+ breakPoint = lastPeriod + 1;
141
+ }
142
+ }
143
+ const truncated = text.substring(0, breakPoint);
144
+ const remaining = text.length - breakPoint;
145
+ return `${truncated}\n\n...[truncated ${remaining} characters]`;
146
+ }
147
+ getDefaultOptions(options) {
148
+ return {
149
+ platform: 'cli',
150
+ includeUserId: true,
151
+ includeTimestamp: false,
152
+ userPrefix: '👤 User',
153
+ assistantPrefix: '🤖 Assistant',
154
+ ...options,
155
+ };
156
+ }
157
+ resolveDisplayName(msg) {
158
+ const metadata = msg.metadata || {};
159
+ return (metadata.realName ||
160
+ metadata.displayName ||
161
+ metadata.username ||
162
+ metadata.agentName ||
163
+ undefined);
164
+ }
165
+ }
166
+ exports.BaseMessageFormatter = BaseMessageFormatter;
167
+ class DefaultMessageFormatter extends BaseMessageFormatter {
168
+ }
169
+ exports.DefaultMessageFormatter = DefaultMessageFormatter;
170
+ //# sourceMappingURL=base-message-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-message-formatter.js","sourceRoot":"","sources":["../../src/utils/base-message-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function isError(error: unknown): error is Error;
2
+ export declare function getErrorMessage(error: unknown): string;
3
+ export declare function getErrorStack(error: unknown): string | undefined;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isError = isError;
4
+ exports.getErrorMessage = getErrorMessage;
5
+ exports.getErrorStack = getErrorStack;
6
+ function isError(error) {
7
+ return error instanceof Error;
8
+ }
9
+ function getErrorMessage(error) {
10
+ if (isError(error)) {
11
+ return error.message;
12
+ }
13
+ if (typeof error === 'string') {
14
+ return error;
15
+ }
16
+ if (error && typeof error === 'object' && 'message' in error) {
17
+ return String(error.message);
18
+ }
19
+ return 'An unknown error occurred';
20
+ }
21
+ function getErrorStack(error) {
22
+ if (isError(error)) {
23
+ return error.stack;
24
+ }
25
+ return undefined;
26
+ }
27
+ //# sourceMappingURL=error-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../../src/utils/error-utils.ts"],"names":[],"mappings":";;AAIA,0BAEC;AAED,0CAWC;AAED,sCAKC;AAtBD,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './error-utils';
2
+ export * from './string-utils';
3
+ export * from './math-utils';
4
+ export * from './mention-parser';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./error-utils"), exports);
18
+ __exportStar(require("./string-utils"), exports);
19
+ __exportStar(require("./math-utils"), exports);
20
+ __exportStar(require("./mention-parser"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,mDAAiC"}
@@ -0,0 +1,3 @@
1
+ export declare const add: (a: number, b: number) => number;
2
+ export declare const multiply: (a: number, b: number) => number;
3
+ export declare const subtract: (a: number, b: number) => number;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.subtract = exports.multiply = exports.add = void 0;
4
+ const add = (a, b) => a + b;
5
+ exports.add = add;
6
+ const multiply = (a, b) => a * b;
7
+ exports.multiply = multiply;
8
+ const subtract = (a, b) => a - b;
9
+ exports.subtract = subtract;
10
+ //# sourceMappingURL=math-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-utils.js","sourceRoot":"","sources":["../../src/utils/math-utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAA9C,QAAA,GAAG,OAA2C;AACpD,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAAnD,QAAA,QAAQ,YAA2C;AACzD,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAAnD,QAAA,QAAQ,YAA2C"}
@@ -0,0 +1,18 @@
1
+ export interface MentionTask {
2
+ agents: string[];
3
+ task: string;
4
+ type: 'shared' | 'individual';
5
+ models?: Map<string, string>;
6
+ }
7
+ export interface ParsedMentions {
8
+ tasks: MentionTask[];
9
+ unmatchedText: string[];
10
+ errors: string[];
11
+ }
12
+ export declare class MentionParser {
13
+ private readonly agentPattern;
14
+ private readonly validAgents;
15
+ constructor(validAgents: string[]);
16
+ parse(text: string): ParsedMentions;
17
+ }
18
+ export declare function loadAvailableAgents(configPath?: string): Promise<string[]>;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MentionParser = void 0;
37
+ exports.loadAvailableAgents = loadAvailableAgents;
38
+ const fs = __importStar(require("fs"));
39
+ const yaml = __importStar(require("js-yaml"));
40
+ class MentionParser {
41
+ constructor(validAgents) {
42
+ this.agentPattern = /(@[a-zA-Z0-9_]+(?::[a-zA-Z0-9._-]+)?)/g;
43
+ this.validAgents = new Set(validAgents);
44
+ }
45
+ parse(text) {
46
+ const tasks = [];
47
+ const errors = [];
48
+ const unmatchedText = [];
49
+ const parts = text.split(this.agentPattern);
50
+ let agentGroup = [];
51
+ let modelMap = new Map();
52
+ let taskText = '';
53
+ let leadingText = '';
54
+ if (parts.length > 0 && parts[0] && !parts[0].startsWith('@')) {
55
+ leadingText = parts.shift()?.trim() ?? '';
56
+ }
57
+ for (const part of parts) {
58
+ if (!part)
59
+ continue;
60
+ if (part.startsWith('@')) {
61
+ const mentionPart = part.substring(1);
62
+ const [agentId, model] = mentionPart.split(':');
63
+ if (!agentId)
64
+ continue;
65
+ if (this.validAgents.has(agentId)) {
66
+ if (taskText.trim() && agentGroup.length > 0) {
67
+ tasks.push({
68
+ agents: agentGroup,
69
+ task: taskText.trim(),
70
+ type: agentGroup.length > 1 ? 'shared' : 'individual',
71
+ models: modelMap.size > 0 ? modelMap : undefined,
72
+ });
73
+ agentGroup = [agentId];
74
+ modelMap = new Map();
75
+ if (model) {
76
+ modelMap.set(agentId, model);
77
+ }
78
+ taskText = '';
79
+ }
80
+ else {
81
+ agentGroup.push(agentId);
82
+ if (model) {
83
+ modelMap.set(agentId, model);
84
+ }
85
+ }
86
+ }
87
+ else {
88
+ errors.push(`Unknown agent: @${agentId}`);
89
+ }
90
+ }
91
+ else {
92
+ taskText += part;
93
+ }
94
+ }
95
+ if (agentGroup.length > 0) {
96
+ const trimmedTask = taskText.trim();
97
+ if (trimmedTask) {
98
+ tasks.push({
99
+ agents: agentGroup,
100
+ task: trimmedTask,
101
+ type: agentGroup.length > 1 ? 'shared' : 'individual',
102
+ models: modelMap.size > 0 ? modelMap : undefined,
103
+ });
104
+ }
105
+ }
106
+ else if (taskText.trim()) {
107
+ unmatchedText.push(taskText.trim());
108
+ }
109
+ if (leadingText) {
110
+ if (tasks.length > 0 && tasks[0]) {
111
+ tasks[0].task = `${leadingText} ${tasks[0].task ?? ''}`.trim();
112
+ }
113
+ else {
114
+ unmatchedText.push(leadingText);
115
+ }
116
+ }
117
+ return { tasks, unmatchedText, errors };
118
+ }
119
+ }
120
+ exports.MentionParser = MentionParser;
121
+ async function loadAvailableAgents(configPath = 'agents.yaml') {
122
+ try {
123
+ const fileContents = await fs.promises.readFile(configPath, 'utf8');
124
+ const config = yaml.load(fileContents);
125
+ if (config && Array.isArray(config.agents)) {
126
+ return config.agents.map((agent) => agent.id);
127
+ }
128
+ console.warn(`Warning: Could not find agents in ${configPath}.`);
129
+ return [];
130
+ }
131
+ catch (error) {
132
+ console.error(`Error loading or parsing ${configPath}:`, error);
133
+ return [];
134
+ }
135
+ }
136
+ //# sourceMappingURL=mention-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-parser.js","sourceRoot":"","sources":["../../src/utils/mention-parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGA,kDAeC;AAvHD,uCAAyB;AACzB,8CAAgC;AAgBhC,MAAa,aAAa;IAIxB,YAAY,WAAqB;QAHhB,iBAAY,GAAG,wCAAwC,CAAC;QAIvE,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAa,EAAE,CAAC;QAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5C,IAAI,UAAU,GAAa,EAAE,CAAC;QAC9B,IAAI,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEhD,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClC,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7C,KAAK,CAAC,IAAI,CAAC;4BACT,MAAM,EAAE,UAAU;4BAClB,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;4BACrB,IAAI,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;4BACrD,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;yBACjD,CAAC,CAAC;wBACH,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC;wBACvB,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;wBACrC,IAAI,KAAK,EAAE,CAAC;4BACV,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBAC/B,CAAC;wBACD,QAAQ,GAAG,EAAE,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACzB,IAAI,KAAK,EAAE,CAAC;4BACV,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,IAAI,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC;oBACT,MAAM,EAAE,UAAU;oBAClB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;oBACrD,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;iBACjD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAC1C,CAAC;CACF;AArFD,sCAqFC;AAEM,KAAK,UAAU,mBAAmB,CAAC,aAAqB,aAAa;IAC1E,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAiB,CAAC;QAEvD,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,GAAG,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function capitalizeFirstLetter(str: string): string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.capitalizeFirstLetter = capitalizeFirstLetter;
4
+ function capitalizeFirstLetter(str) {
5
+ if (!str || str.length === 0) {
6
+ return str;
7
+ }
8
+ return str.charAt(0).toUpperCase() + str.slice(1);
9
+ }
10
+ //# sourceMappingURL=string-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../src/utils/string-utils.ts"],"names":[],"mappings":";;AAIA,sDAKC;AALD,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './utils/error-utils';
2
+ export * from './utils/string-utils';
3
+ export * from './utils/math-utils';