cmdr-agent 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +238 -0
  3. package/dist/bin/cmdr.d.ts +9 -0
  4. package/dist/bin/cmdr.d.ts.map +1 -0
  5. package/dist/bin/cmdr.js +49 -0
  6. package/dist/bin/cmdr.js.map +1 -0
  7. package/dist/src/cli/args.d.ts +19 -0
  8. package/dist/src/cli/args.d.ts.map +1 -0
  9. package/dist/src/cli/args.js +89 -0
  10. package/dist/src/cli/args.js.map +1 -0
  11. package/dist/src/cli/commands.d.ts +12 -0
  12. package/dist/src/cli/commands.d.ts.map +1 -0
  13. package/dist/src/cli/commands.js +400 -0
  14. package/dist/src/cli/commands.js.map +1 -0
  15. package/dist/src/cli/renderer.d.ts +8 -0
  16. package/dist/src/cli/renderer.d.ts.map +1 -0
  17. package/dist/src/cli/renderer.js +47 -0
  18. package/dist/src/cli/renderer.js.map +1 -0
  19. package/dist/src/cli/repl.d.ts +18 -0
  20. package/dist/src/cli/repl.d.ts.map +1 -0
  21. package/dist/src/cli/repl.js +751 -0
  22. package/dist/src/cli/repl.js.map +1 -0
  23. package/dist/src/cli/spinner.d.ts +16 -0
  24. package/dist/src/cli/spinner.d.ts.map +1 -0
  25. package/dist/src/cli/spinner.js +233 -0
  26. package/dist/src/cli/spinner.js.map +1 -0
  27. package/dist/src/cli/theme.d.ts +95 -0
  28. package/dist/src/cli/theme.d.ts.map +1 -0
  29. package/dist/src/cli/theme.js +178 -0
  30. package/dist/src/cli/theme.js.map +1 -0
  31. package/dist/src/communication/message-bus.d.ts +35 -0
  32. package/dist/src/communication/message-bus.d.ts.map +1 -0
  33. package/dist/src/communication/message-bus.js +60 -0
  34. package/dist/src/communication/message-bus.js.map +1 -0
  35. package/dist/src/communication/shared-memory.d.ts +19 -0
  36. package/dist/src/communication/shared-memory.d.ts.map +1 -0
  37. package/dist/src/communication/shared-memory.js +37 -0
  38. package/dist/src/communication/shared-memory.js.map +1 -0
  39. package/dist/src/communication/task-queue.d.ts +50 -0
  40. package/dist/src/communication/task-queue.d.ts.map +1 -0
  41. package/dist/src/communication/task-queue.js +158 -0
  42. package/dist/src/communication/task-queue.js.map +1 -0
  43. package/dist/src/config/config-loader.d.ts +23 -0
  44. package/dist/src/config/config-loader.d.ts.map +1 -0
  45. package/dist/src/config/config-loader.js +91 -0
  46. package/dist/src/config/config-loader.js.map +1 -0
  47. package/dist/src/config/defaults.d.ts +6 -0
  48. package/dist/src/config/defaults.d.ts.map +1 -0
  49. package/dist/src/config/defaults.js +21 -0
  50. package/dist/src/config/defaults.js.map +1 -0
  51. package/dist/src/config/schema.d.ts +135 -0
  52. package/dist/src/config/schema.d.ts.map +1 -0
  53. package/dist/src/config/schema.js +35 -0
  54. package/dist/src/config/schema.js.map +1 -0
  55. package/dist/src/config/telemetry.d.ts +41 -0
  56. package/dist/src/config/telemetry.d.ts.map +1 -0
  57. package/dist/src/config/telemetry.js +57 -0
  58. package/dist/src/config/telemetry.js.map +1 -0
  59. package/dist/src/core/agent-pool.d.ts +40 -0
  60. package/dist/src/core/agent-pool.d.ts.map +1 -0
  61. package/dist/src/core/agent-pool.js +66 -0
  62. package/dist/src/core/agent-pool.js.map +1 -0
  63. package/dist/src/core/agent-runner.d.ts +51 -0
  64. package/dist/src/core/agent-runner.d.ts.map +1 -0
  65. package/dist/src/core/agent-runner.js +251 -0
  66. package/dist/src/core/agent-runner.js.map +1 -0
  67. package/dist/src/core/agent.d.ts +34 -0
  68. package/dist/src/core/agent.d.ts.map +1 -0
  69. package/dist/src/core/agent.js +143 -0
  70. package/dist/src/core/agent.js.map +1 -0
  71. package/dist/src/core/intent.d.ts +33 -0
  72. package/dist/src/core/intent.d.ts.map +1 -0
  73. package/dist/src/core/intent.js +91 -0
  74. package/dist/src/core/intent.js.map +1 -0
  75. package/dist/src/core/orchestrator.d.ts +43 -0
  76. package/dist/src/core/orchestrator.d.ts.map +1 -0
  77. package/dist/src/core/orchestrator.js +115 -0
  78. package/dist/src/core/orchestrator.js.map +1 -0
  79. package/dist/src/core/permissions.d.ts +36 -0
  80. package/dist/src/core/permissions.d.ts.map +1 -0
  81. package/dist/src/core/permissions.js +129 -0
  82. package/dist/src/core/permissions.js.map +1 -0
  83. package/dist/src/core/presets.d.ts +12 -0
  84. package/dist/src/core/presets.d.ts.map +1 -0
  85. package/dist/src/core/presets.js +148 -0
  86. package/dist/src/core/presets.js.map +1 -0
  87. package/dist/src/core/team.d.ts +44 -0
  88. package/dist/src/core/team.d.ts.map +1 -0
  89. package/dist/src/core/team.js +156 -0
  90. package/dist/src/core/team.js.map +1 -0
  91. package/dist/src/core/types.d.ts +257 -0
  92. package/dist/src/core/types.d.ts.map +1 -0
  93. package/dist/src/core/types.js +7 -0
  94. package/dist/src/core/types.js.map +1 -0
  95. package/dist/src/index.d.ts +44 -0
  96. package/dist/src/index.d.ts.map +1 -0
  97. package/dist/src/index.js +45 -0
  98. package/dist/src/index.js.map +1 -0
  99. package/dist/src/llm/adapter.d.ts +5 -0
  100. package/dist/src/llm/adapter.d.ts.map +1 -0
  101. package/dist/src/llm/adapter.js +5 -0
  102. package/dist/src/llm/adapter.js.map +1 -0
  103. package/dist/src/llm/model-registry.d.ts +14 -0
  104. package/dist/src/llm/model-registry.d.ts.map +1 -0
  105. package/dist/src/llm/model-registry.js +30 -0
  106. package/dist/src/llm/model-registry.js.map +1 -0
  107. package/dist/src/llm/ollama.d.ts +26 -0
  108. package/dist/src/llm/ollama.d.ts.map +1 -0
  109. package/dist/src/llm/ollama.js +375 -0
  110. package/dist/src/llm/ollama.js.map +1 -0
  111. package/dist/src/llm/token-counter.d.ts +11 -0
  112. package/dist/src/llm/token-counter.d.ts.map +1 -0
  113. package/dist/src/llm/token-counter.js +35 -0
  114. package/dist/src/llm/token-counter.js.map +1 -0
  115. package/dist/src/plugins/mcp-client.d.ts +38 -0
  116. package/dist/src/plugins/mcp-client.d.ts.map +1 -0
  117. package/dist/src/plugins/mcp-client.js +113 -0
  118. package/dist/src/plugins/mcp-client.js.map +1 -0
  119. package/dist/src/plugins/plugin-manager.d.ts +37 -0
  120. package/dist/src/plugins/plugin-manager.d.ts.map +1 -0
  121. package/dist/src/plugins/plugin-manager.js +146 -0
  122. package/dist/src/plugins/plugin-manager.js.map +1 -0
  123. package/dist/src/scheduling/semaphore.d.ts +20 -0
  124. package/dist/src/scheduling/semaphore.d.ts.map +1 -0
  125. package/dist/src/scheduling/semaphore.js +52 -0
  126. package/dist/src/scheduling/semaphore.js.map +1 -0
  127. package/dist/src/scheduling/strategies.d.ts +39 -0
  128. package/dist/src/scheduling/strategies.d.ts.map +1 -0
  129. package/dist/src/scheduling/strategies.js +88 -0
  130. package/dist/src/scheduling/strategies.js.map +1 -0
  131. package/dist/src/session/compaction.d.ts +32 -0
  132. package/dist/src/session/compaction.d.ts.map +1 -0
  133. package/dist/src/session/compaction.js +172 -0
  134. package/dist/src/session/compaction.js.map +1 -0
  135. package/dist/src/session/cost-tracker.d.ts +41 -0
  136. package/dist/src/session/cost-tracker.d.ts.map +1 -0
  137. package/dist/src/session/cost-tracker.js +76 -0
  138. package/dist/src/session/cost-tracker.js.map +1 -0
  139. package/dist/src/session/project-context.d.ts +6 -0
  140. package/dist/src/session/project-context.d.ts.map +1 -0
  141. package/dist/src/session/project-context.js +147 -0
  142. package/dist/src/session/project-context.js.map +1 -0
  143. package/dist/src/session/prompt-builder.d.ts +11 -0
  144. package/dist/src/session/prompt-builder.d.ts.map +1 -0
  145. package/dist/src/session/prompt-builder.js +30 -0
  146. package/dist/src/session/prompt-builder.js.map +1 -0
  147. package/dist/src/session/session-manager.d.ts +32 -0
  148. package/dist/src/session/session-manager.d.ts.map +1 -0
  149. package/dist/src/session/session-manager.js +84 -0
  150. package/dist/src/session/session-manager.js.map +1 -0
  151. package/dist/src/session/session-persistence.d.ts +44 -0
  152. package/dist/src/session/session-persistence.d.ts.map +1 -0
  153. package/dist/src/session/session-persistence.js +150 -0
  154. package/dist/src/session/session-persistence.js.map +1 -0
  155. package/dist/src/session/undo-manager.d.ts +35 -0
  156. package/dist/src/session/undo-manager.d.ts.map +1 -0
  157. package/dist/src/session/undo-manager.js +79 -0
  158. package/dist/src/session/undo-manager.js.map +1 -0
  159. package/dist/src/tools/built-in/ask-user.d.ts +7 -0
  160. package/dist/src/tools/built-in/ask-user.d.ts.map +1 -0
  161. package/dist/src/tools/built-in/ask-user.js +28 -0
  162. package/dist/src/tools/built-in/ask-user.js.map +1 -0
  163. package/dist/src/tools/built-in/bash.d.ts +9 -0
  164. package/dist/src/tools/built-in/bash.d.ts.map +1 -0
  165. package/dist/src/tools/built-in/bash.js +67 -0
  166. package/dist/src/tools/built-in/bash.js.map +1 -0
  167. package/dist/src/tools/built-in/file-edit.d.ts +9 -0
  168. package/dist/src/tools/built-in/file-edit.d.ts.map +1 -0
  169. package/dist/src/tools/built-in/file-edit.js +39 -0
  170. package/dist/src/tools/built-in/file-edit.js.map +1 -0
  171. package/dist/src/tools/built-in/file-read.d.ts +9 -0
  172. package/dist/src/tools/built-in/file-read.d.ts.map +1 -0
  173. package/dist/src/tools/built-in/file-read.js +41 -0
  174. package/dist/src/tools/built-in/file-read.js.map +1 -0
  175. package/dist/src/tools/built-in/file-write.d.ts +8 -0
  176. package/dist/src/tools/built-in/file-write.d.ts.map +1 -0
  177. package/dist/src/tools/built-in/file-write.js +29 -0
  178. package/dist/src/tools/built-in/file-write.js.map +1 -0
  179. package/dist/src/tools/built-in/git-commit.d.ts +12 -0
  180. package/dist/src/tools/built-in/git-commit.d.ts.map +1 -0
  181. package/dist/src/tools/built-in/git-commit.js +96 -0
  182. package/dist/src/tools/built-in/git-commit.js.map +1 -0
  183. package/dist/src/tools/built-in/git-diff.d.ts +8 -0
  184. package/dist/src/tools/built-in/git-diff.d.ts.map +1 -0
  185. package/dist/src/tools/built-in/git-diff.js +43 -0
  186. package/dist/src/tools/built-in/git-diff.js.map +1 -0
  187. package/dist/src/tools/built-in/git-log.d.ts +8 -0
  188. package/dist/src/tools/built-in/git-log.d.ts.map +1 -0
  189. package/dist/src/tools/built-in/git-log.js +39 -0
  190. package/dist/src/tools/built-in/git-log.js.map +1 -0
  191. package/dist/src/tools/built-in/glob.d.ts +8 -0
  192. package/dist/src/tools/built-in/glob.d.ts.map +1 -0
  193. package/dist/src/tools/built-in/glob.js +60 -0
  194. package/dist/src/tools/built-in/glob.js.map +1 -0
  195. package/dist/src/tools/built-in/grep.d.ts +9 -0
  196. package/dist/src/tools/built-in/grep.d.ts.map +1 -0
  197. package/dist/src/tools/built-in/grep.js +115 -0
  198. package/dist/src/tools/built-in/grep.js.map +1 -0
  199. package/dist/src/tools/built-in/index.d.ts +21 -0
  200. package/dist/src/tools/built-in/index.d.ts.map +1 -0
  201. package/dist/src/tools/built-in/index.js +30 -0
  202. package/dist/src/tools/built-in/index.js.map +1 -0
  203. package/dist/src/tools/built-in/think.d.ts +7 -0
  204. package/dist/src/tools/built-in/think.d.ts.map +1 -0
  205. package/dist/src/tools/built-in/think.js +18 -0
  206. package/dist/src/tools/built-in/think.js.map +1 -0
  207. package/dist/src/tools/built-in/web-fetch.d.ts +11 -0
  208. package/dist/src/tools/built-in/web-fetch.d.ts.map +1 -0
  209. package/dist/src/tools/built-in/web-fetch.js +70 -0
  210. package/dist/src/tools/built-in/web-fetch.js.map +1 -0
  211. package/dist/src/tools/executor.d.ts +25 -0
  212. package/dist/src/tools/executor.d.ts.map +1 -0
  213. package/dist/src/tools/executor.js +61 -0
  214. package/dist/src/tools/executor.js.map +1 -0
  215. package/dist/src/tools/registry.d.ts +25 -0
  216. package/dist/src/tools/registry.d.ts.map +1 -0
  217. package/dist/src/tools/registry.js +135 -0
  218. package/dist/src/tools/registry.js.map +1 -0
  219. package/package.json +63 -0
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Configuration schema — Zod validation for cmdr config.
3
+ */
4
+ import { z } from 'zod';
5
+ export declare const McpServerSchema: z.ZodObject<{
6
+ name: z.ZodString;
7
+ url: z.ZodString;
8
+ apiKey: z.ZodOptional<z.ZodString>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ name: string;
11
+ url: string;
12
+ apiKey?: string | undefined;
13
+ }, {
14
+ name: string;
15
+ url: string;
16
+ apiKey?: string | undefined;
17
+ }>;
18
+ export declare const CmdrConfigSchema: z.ZodObject<{
19
+ ollamaUrl: z.ZodOptional<z.ZodDefault<z.ZodString>>;
20
+ defaultModel: z.ZodOptional<z.ZodDefault<z.ZodString>>;
21
+ defaultProvider: z.ZodOptional<z.ZodDefault<z.ZodEnum<["ollama", "openai", "anthropic"]>>>;
22
+ maxConcurrency: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
23
+ contextBudget: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
24
+ autoCompact: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
25
+ permissions: z.ZodOptional<z.ZodDefault<z.ZodObject<{
26
+ allowBash: z.ZodDefault<z.ZodBoolean>;
27
+ allowFileWrite: z.ZodDefault<z.ZodBoolean>;
28
+ allowNetwork: z.ZodDefault<z.ZodBoolean>;
29
+ sandboxDir: z.ZodOptional<z.ZodString>;
30
+ }, "strip", z.ZodTypeAny, {
31
+ allowBash: boolean;
32
+ allowFileWrite: boolean;
33
+ allowNetwork: boolean;
34
+ sandboxDir?: string | undefined;
35
+ }, {
36
+ allowBash?: boolean | undefined;
37
+ allowFileWrite?: boolean | undefined;
38
+ allowNetwork?: boolean | undefined;
39
+ sandboxDir?: string | undefined;
40
+ }>>>;
41
+ mcp: z.ZodOptional<z.ZodDefault<z.ZodObject<{
42
+ servers: z.ZodDefault<z.ZodArray<z.ZodObject<{
43
+ name: z.ZodString;
44
+ url: z.ZodString;
45
+ apiKey: z.ZodOptional<z.ZodString>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ name: string;
48
+ url: string;
49
+ apiKey?: string | undefined;
50
+ }, {
51
+ name: string;
52
+ url: string;
53
+ apiKey?: string | undefined;
54
+ }>, "many">>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ servers: {
57
+ name: string;
58
+ url: string;
59
+ apiKey?: string | undefined;
60
+ }[];
61
+ }, {
62
+ servers?: {
63
+ name: string;
64
+ url: string;
65
+ apiKey?: string | undefined;
66
+ }[] | undefined;
67
+ }>>>;
68
+ plugins: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
69
+ spinner: z.ZodOptional<z.ZodOptional<z.ZodObject<{
70
+ verbs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
71
+ mode: z.ZodDefault<z.ZodEnum<["append", "replace"]>>;
72
+ }, "strip", z.ZodTypeAny, {
73
+ mode: "replace" | "append";
74
+ verbs?: string[] | undefined;
75
+ }, {
76
+ verbs?: string[] | undefined;
77
+ mode?: "replace" | "append" | undefined;
78
+ }>>>;
79
+ telemetry: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ ollamaUrl?: string | undefined;
82
+ defaultModel?: string | undefined;
83
+ defaultProvider?: "ollama" | "openai" | "anthropic" | undefined;
84
+ maxConcurrency?: number | undefined;
85
+ contextBudget?: number | undefined;
86
+ autoCompact?: boolean | undefined;
87
+ permissions?: {
88
+ allowBash: boolean;
89
+ allowFileWrite: boolean;
90
+ allowNetwork: boolean;
91
+ sandboxDir?: string | undefined;
92
+ } | undefined;
93
+ mcp?: {
94
+ servers: {
95
+ name: string;
96
+ url: string;
97
+ apiKey?: string | undefined;
98
+ }[];
99
+ } | undefined;
100
+ plugins?: string[] | undefined;
101
+ spinner?: {
102
+ mode: "replace" | "append";
103
+ verbs?: string[] | undefined;
104
+ } | undefined;
105
+ telemetry?: boolean | undefined;
106
+ }, {
107
+ ollamaUrl?: string | undefined;
108
+ defaultModel?: string | undefined;
109
+ defaultProvider?: "ollama" | "openai" | "anthropic" | undefined;
110
+ maxConcurrency?: number | undefined;
111
+ contextBudget?: number | undefined;
112
+ autoCompact?: boolean | undefined;
113
+ permissions?: {
114
+ allowBash?: boolean | undefined;
115
+ allowFileWrite?: boolean | undefined;
116
+ allowNetwork?: boolean | undefined;
117
+ sandboxDir?: string | undefined;
118
+ } | undefined;
119
+ mcp?: {
120
+ servers?: {
121
+ name: string;
122
+ url: string;
123
+ apiKey?: string | undefined;
124
+ }[] | undefined;
125
+ } | undefined;
126
+ plugins?: string[] | undefined;
127
+ spinner?: {
128
+ verbs?: string[] | undefined;
129
+ mode?: "replace" | "append" | undefined;
130
+ } | undefined;
131
+ telemetry?: boolean | undefined;
132
+ }>;
133
+ export type CmdrConfigInput = z.input<typeof CmdrConfigSchema>;
134
+ export type CmdrConfigParsed = z.output<typeof CmdrConfigSchema>;
135
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,eAAe;;;;;;;;;;;;EAI1B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBjB,CAAA;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Configuration schema — Zod validation for cmdr config.
3
+ */
4
+ import { z } from 'zod';
5
+ export const McpServerSchema = z.object({
6
+ name: z.string(),
7
+ url: z.string().url(),
8
+ apiKey: z.string().optional(),
9
+ });
10
+ export const CmdrConfigSchema = z.object({
11
+ ollamaUrl: z.string().url().default('http://localhost:11434'),
12
+ defaultModel: z.string().default('qwen2.5-coder:14b'),
13
+ defaultProvider: z.enum(['ollama', 'openai', 'anthropic']).default('ollama'),
14
+ maxConcurrency: z.number().int().min(1).max(16).default(2),
15
+ contextBudget: z.number().int().min(1024).default(32768),
16
+ autoCompact: z.boolean().default(true),
17
+ permissions: z.object({
18
+ allowBash: z.boolean().default(true),
19
+ allowFileWrite: z.boolean().default(true),
20
+ allowNetwork: z.boolean().default(false),
21
+ sandboxDir: z.string().optional(),
22
+ }).default({}),
23
+ mcp: z.object({
24
+ servers: z.array(McpServerSchema).default([]),
25
+ }).default({}),
26
+ plugins: z.array(z.string()).default([]),
27
+ // Spinner customization
28
+ spinner: z.object({
29
+ verbs: z.array(z.string()).optional(),
30
+ mode: z.enum(['append', 'replace']).default('append'),
31
+ }).optional(),
32
+ // Telemetry opt-in
33
+ telemetry: z.boolean().default(false),
34
+ }).partial();
35
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC7D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;IACrD,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC5E,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACxD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACpC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACzC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACxC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACd,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KAC9C,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,wBAAwB;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;KACtD,CAAC,CAAC,QAAQ,EAAE;IACb,mBAAmB;IACnB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACtC,CAAC,CAAC,OAAO,EAAE,CAAA"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Telemetry — opt-in anonymous session telemetry.
3
+ *
4
+ * No data is sent unless the user explicitly enables it in ~/.cmdr/config.toml:
5
+ * [telemetry]
6
+ * enabled = true
7
+ *
8
+ * When enabled, session summaries are written to ~/.cmdr/telemetry/ as JSON
9
+ * for the user's own analysis. No network calls are made.
10
+ */
11
+ export interface TelemetryEvent {
12
+ readonly id: string;
13
+ readonly timestamp: string;
14
+ readonly sessionId: string;
15
+ readonly event: string;
16
+ readonly data: Record<string, unknown>;
17
+ }
18
+ export declare class Telemetry {
19
+ private enabled;
20
+ private readonly sessionId;
21
+ private readonly dir;
22
+ /** Enable or disable telemetry. */
23
+ setEnabled(enabled: boolean): void;
24
+ isEnabled(): boolean;
25
+ /**
26
+ * Record a telemetry event to disk.
27
+ * Only writes if telemetry is enabled. No data leaves the machine.
28
+ */
29
+ record(event: string, data: Record<string, unknown>): Promise<void>;
30
+ /**
31
+ * Record a session summary at exit.
32
+ */
33
+ recordSessionEnd(summary: {
34
+ model: string;
35
+ turns: number;
36
+ totalTokens: number;
37
+ toolCalls: number;
38
+ durationSeconds: number;
39
+ }): Promise<void>;
40
+ }
41
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../src/config/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACvC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwC;IAE5D,mCAAmC;IACnC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzE;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE;QAC9B,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,eAAe,EAAE,MAAM,CAAA;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlB"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Telemetry — opt-in anonymous session telemetry.
3
+ *
4
+ * No data is sent unless the user explicitly enables it in ~/.cmdr/config.toml:
5
+ * [telemetry]
6
+ * enabled = true
7
+ *
8
+ * When enabled, session summaries are written to ~/.cmdr/telemetry/ as JSON
9
+ * for the user's own analysis. No network calls are made.
10
+ */
11
+ import { writeFile, mkdir } from 'fs/promises';
12
+ import { join } from 'path';
13
+ import { homedir } from 'os';
14
+ import { randomUUID } from 'crypto';
15
+ export class Telemetry {
16
+ enabled = false;
17
+ sessionId = randomUUID();
18
+ dir = join(homedir(), '.cmdr', 'telemetry');
19
+ /** Enable or disable telemetry. */
20
+ setEnabled(enabled) {
21
+ this.enabled = enabled;
22
+ }
23
+ isEnabled() {
24
+ return this.enabled;
25
+ }
26
+ /**
27
+ * Record a telemetry event to disk.
28
+ * Only writes if telemetry is enabled. No data leaves the machine.
29
+ */
30
+ async record(event, data) {
31
+ if (!this.enabled)
32
+ return;
33
+ const entry = {
34
+ id: randomUUID(),
35
+ timestamp: new Date().toISOString(),
36
+ sessionId: this.sessionId,
37
+ event,
38
+ data,
39
+ };
40
+ try {
41
+ await mkdir(this.dir, { recursive: true });
42
+ const filename = `${this.sessionId}.jsonl`;
43
+ const line = JSON.stringify(entry) + '\n';
44
+ await writeFile(join(this.dir, filename), line, { flag: 'a' });
45
+ }
46
+ catch {
47
+ // best-effort — never break the REPL for telemetry
48
+ }
49
+ }
50
+ /**
51
+ * Record a session summary at exit.
52
+ */
53
+ async recordSessionEnd(summary) {
54
+ await this.record('session_end', summary);
55
+ }
56
+ }
57
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/config/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAUnC,MAAM,OAAO,SAAS;IACZ,OAAO,GAAG,KAAK,CAAA;IACN,SAAS,GAAG,UAAU,EAAE,CAAA;IACxB,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAE5D,mCAAmC;IACnC,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAA6B;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEzB,MAAM,KAAK,GAAmB;YAC5B,EAAE,EAAE,UAAU,EAAE;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK;YACL,IAAI;SACL,CAAA;QAED,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC1C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAA;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YACzC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAMtB;QACC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * AgentPool — parallel agent execution with semaphore-controlled concurrency.
3
+ */
4
+ import { Agent } from './agent.js';
5
+ import type { AgentConfig, AgentRunResult, LLMAdapter } from './types.js';
6
+ import type { ToolRegistry } from '../tools/registry.js';
7
+ import type { PermissionManager } from './permissions.js';
8
+ export interface PoolOptions {
9
+ readonly maxConcurrency: number;
10
+ readonly cwd?: string;
11
+ }
12
+ export declare class AgentPool {
13
+ private readonly adapter;
14
+ private readonly toolRegistry;
15
+ private readonly options;
16
+ private readonly permissionManager?;
17
+ private readonly agents;
18
+ private readonly semaphore;
19
+ private readonly cwd;
20
+ constructor(adapter: LLMAdapter, toolRegistry: ToolRegistry, options: PoolOptions, permissionManager?: PermissionManager | undefined);
21
+ /** Create or get an agent by config. */
22
+ getOrCreate(config: AgentConfig): Agent;
23
+ /** Run a task on a named agent, respecting concurrency limits. */
24
+ runTask(agentName: string, task: string): Promise<AgentRunResult>;
25
+ /** Run tasks in parallel across multiple agents. */
26
+ runParallel(assignments: Array<{
27
+ agentName: string;
28
+ task: string;
29
+ }>): Promise<Map<string, AgentRunResult>>;
30
+ /** Get the current load of each agent. */
31
+ getLoads(): Array<{
32
+ name: string;
33
+ status: string;
34
+ }>;
35
+ /** Get all agents in the pool. */
36
+ getAgents(): Map<string, Agent>;
37
+ /** Reset all agents. */
38
+ resetAll(): void;
39
+ }
40
+ //# sourceMappingURL=agent-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-pool.d.ts","sourceRoot":"","sources":["../../../src/core/agent-pool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,EACV,WAAW,EAAE,cAAc,EAAE,UAAU,EACxC,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGzD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,SAAS;IAMlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IARrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAGT,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA;IAMxD,wCAAwC;IACxC,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK;IASvC,kEAAkE;IAC5D,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMvE,oDAAoD;IAC9C,WAAW,CACf,WAAW,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GACtD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAYvC,0CAA0C;IAC1C,QAAQ,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAOnD,kCAAkC;IAClC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAI/B,wBAAwB;IACxB,QAAQ,IAAI,IAAI;CAKjB"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * AgentPool — parallel agent execution with semaphore-controlled concurrency.
3
+ */
4
+ import { Agent } from './agent.js';
5
+ import { Semaphore } from '../scheduling/semaphore.js';
6
+ export class AgentPool {
7
+ adapter;
8
+ toolRegistry;
9
+ options;
10
+ permissionManager;
11
+ agents = new Map();
12
+ semaphore;
13
+ cwd;
14
+ constructor(adapter, toolRegistry, options, permissionManager) {
15
+ this.adapter = adapter;
16
+ this.toolRegistry = toolRegistry;
17
+ this.options = options;
18
+ this.permissionManager = permissionManager;
19
+ this.semaphore = new Semaphore(options.maxConcurrency);
20
+ this.cwd = options.cwd ?? process.cwd();
21
+ }
22
+ /** Create or get an agent by config. */
23
+ getOrCreate(config) {
24
+ let agent = this.agents.get(config.name);
25
+ if (!agent) {
26
+ agent = new Agent(config, this.adapter, this.toolRegistry, this.cwd, this.permissionManager);
27
+ this.agents.set(config.name, agent);
28
+ }
29
+ return agent;
30
+ }
31
+ /** Run a task on a named agent, respecting concurrency limits. */
32
+ async runTask(agentName, task) {
33
+ const agent = this.agents.get(agentName);
34
+ if (!agent)
35
+ throw new Error(`Agent "${agentName}" not found in pool`);
36
+ return this.semaphore.run(() => agent.run(task));
37
+ }
38
+ /** Run tasks in parallel across multiple agents. */
39
+ async runParallel(assignments) {
40
+ const results = new Map();
41
+ const promises = assignments.map(async ({ agentName, task }) => {
42
+ const result = await this.runTask(agentName, task);
43
+ results.set(agentName, result);
44
+ });
45
+ await Promise.all(promises);
46
+ return results;
47
+ }
48
+ /** Get the current load of each agent. */
49
+ getLoads() {
50
+ return Array.from(this.agents.entries()).map(([name, agent]) => ({
51
+ name,
52
+ status: agent.getState().status,
53
+ }));
54
+ }
55
+ /** Get all agents in the pool. */
56
+ getAgents() {
57
+ return new Map(this.agents);
58
+ }
59
+ /** Reset all agents. */
60
+ resetAll() {
61
+ for (const agent of this.agents.values()) {
62
+ agent.reset();
63
+ }
64
+ }
65
+ }
66
+ //# sourceMappingURL=agent-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-pool.js","sourceRoot":"","sources":["../../../src/core/agent-pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * AgentRunner — the core conversation loop engine for cmdr.
3
+ *
4
+ * Drives: LLM call -> tool extraction -> parallel execution -> tool results -> loop
5
+ */
6
+ import type { LLMMessage, ToolCallRecord, TokenUsage, StreamEvent, ToolResult, LLMAdapter, ApprovalCallback } from '../core/types.js';
7
+ import type { ToolRegistry } from '../tools/registry.js';
8
+ import type { ToolExecutor } from '../tools/executor.js';
9
+ import type { PermissionManager } from './permissions.js';
10
+ export interface RunnerOptions {
11
+ readonly model: string;
12
+ readonly systemPrompt?: string;
13
+ readonly maxTurns?: number;
14
+ readonly maxTokens?: number;
15
+ readonly temperature?: number;
16
+ readonly abortSignal?: AbortSignal;
17
+ readonly allowedTools?: readonly string[];
18
+ readonly agentName?: string;
19
+ readonly agentRole?: string;
20
+ readonly cwd?: string;
21
+ }
22
+ export interface RunCallbacks {
23
+ readonly onToolCall?: (name: string, input: Record<string, unknown>) => void;
24
+ readonly onToolResult?: (name: string, result: ToolResult) => void;
25
+ readonly onMessage?: (message: LLMMessage) => void;
26
+ readonly onText?: (text: string) => void;
27
+ /** If provided, the runner will ask for approval before executing write/dangerous tools. */
28
+ readonly onToolApproval?: ApprovalCallback;
29
+ }
30
+ export interface RunResult {
31
+ readonly messages: LLMMessage[];
32
+ readonly output: string;
33
+ readonly toolCalls: ToolCallRecord[];
34
+ readonly tokenUsage: TokenUsage;
35
+ readonly turns: number;
36
+ }
37
+ export declare class AgentRunner {
38
+ private readonly adapter;
39
+ private readonly toolRegistry;
40
+ private readonly toolExecutor;
41
+ private readonly options;
42
+ private readonly permissionManager?;
43
+ private readonly maxTurns;
44
+ constructor(adapter: LLMAdapter, toolRegistry: ToolRegistry, toolExecutor: ToolExecutor, options: RunnerOptions, permissionManager?: PermissionManager | undefined);
45
+ /** Run a complete conversation, collecting all stream events internally. */
46
+ run(messages: LLMMessage[], callbacks?: RunCallbacks): Promise<RunResult>;
47
+ /** Run the conversation and yield StreamEvents incrementally.
48
+ * Uses the adapter's stream() for real-time token-by-token output. */
49
+ stream(initialMessages: LLMMessage[], callbacks?: RunCallbacks): AsyncGenerator<StreamEvent>;
50
+ }
51
+ //# sourceMappingURL=agent-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../../src/core/agent-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EACnD,UAAU,EAA+B,gBAAgB,EAC1D,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAOzD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAA;IAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,4FAA4F;IAC5F,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAA;CAC3C;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAAA;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AA8BD,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAPrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAGd,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,aAAa,EACtB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA;IAKxD,4EAA4E;IACtE,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,SAAS,GAAE,YAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IAkBnF;2EACuE;IAChE,MAAM,CACX,eAAe,EAAE,UAAU,EAAE,EAC7B,SAAS,GAAE,YAAiB,GAC3B,cAAc,CAAC,WAAW,CAAC;CAwN/B"}