moderado 0.3.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 (275) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +208 -0
  3. package/dist/args.d.ts +26 -0
  4. package/dist/args.d.ts.map +1 -0
  5. package/dist/args.js +108 -0
  6. package/dist/args.js.map +1 -0
  7. package/dist/commands/chat.d.ts +121 -0
  8. package/dist/commands/chat.d.ts.map +1 -0
  9. package/dist/commands/chat.js +1484 -0
  10. package/dist/commands/chat.js.map +1 -0
  11. package/dist/commands/doctor.d.ts +3 -0
  12. package/dist/commands/doctor.d.ts.map +1 -0
  13. package/dist/commands/doctor.js +61 -0
  14. package/dist/commands/doctor.js.map +1 -0
  15. package/dist/commands/init.d.ts +27 -0
  16. package/dist/commands/init.d.ts.map +1 -0
  17. package/dist/commands/init.js +172 -0
  18. package/dist/commands/init.js.map +1 -0
  19. package/dist/commands/interactive_menu.d.ts +3 -0
  20. package/dist/commands/interactive_menu.d.ts.map +1 -0
  21. package/dist/commands/interactive_menu.js +98 -0
  22. package/dist/commands/interactive_menu.js.map +1 -0
  23. package/dist/commands/models.d.ts +8 -0
  24. package/dist/commands/models.d.ts.map +1 -0
  25. package/dist/commands/models.js +81 -0
  26. package/dist/commands/models.js.map +1 -0
  27. package/dist/commands/run.d.ts +3 -0
  28. package/dist/commands/run.d.ts.map +1 -0
  29. package/dist/commands/run.js +140 -0
  30. package/dist/commands/run.js.map +1 -0
  31. package/dist/config.d.ts +44 -0
  32. package/dist/config.d.ts.map +1 -0
  33. package/dist/config.js +195 -0
  34. package/dist/config.js.map +1 -0
  35. package/dist/credentials.d.ts +14 -0
  36. package/dist/credentials.d.ts.map +1 -0
  37. package/dist/credentials.js +23 -0
  38. package/dist/credentials.js.map +1 -0
  39. package/dist/diagnostic_log.d.ts +2 -0
  40. package/dist/diagnostic_log.d.ts.map +1 -0
  41. package/dist/diagnostic_log.js +21 -0
  42. package/dist/diagnostic_log.js.map +1 -0
  43. package/dist/index.d.ts +3 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +83 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/model_pricing.d.ts +4 -0
  48. package/dist/model_pricing.d.ts.map +1 -0
  49. package/dist/model_pricing.js +10 -0
  50. package/dist/model_pricing.js.map +1 -0
  51. package/dist/sessions.d.ts +203 -0
  52. package/dist/sessions.d.ts.map +1 -0
  53. package/dist/sessions.js +82 -0
  54. package/dist/sessions.js.map +1 -0
  55. package/dist/ui/box.d.ts +14 -0
  56. package/dist/ui/box.d.ts.map +1 -0
  57. package/dist/ui/box.js +52 -0
  58. package/dist/ui/box.js.map +1 -0
  59. package/dist/ui/file_mentions.d.ts +38 -0
  60. package/dist/ui/file_mentions.d.ts.map +1 -0
  61. package/dist/ui/file_mentions.js +119 -0
  62. package/dist/ui/file_mentions.js.map +1 -0
  63. package/dist/ui/help_modal.d.ts +2 -0
  64. package/dist/ui/help_modal.d.ts.map +1 -0
  65. package/dist/ui/help_modal.js +101 -0
  66. package/dist/ui/help_modal.js.map +1 -0
  67. package/dist/ui/model_selector.d.ts +48 -0
  68. package/dist/ui/model_selector.d.ts.map +1 -0
  69. package/dist/ui/model_selector.js +829 -0
  70. package/dist/ui/model_selector.js.map +1 -0
  71. package/dist/ui/popup.d.ts +78 -0
  72. package/dist/ui/popup.d.ts.map +1 -0
  73. package/dist/ui/popup.js +274 -0
  74. package/dist/ui/popup.js.map +1 -0
  75. package/dist/ui/prompt.d.ts +21 -0
  76. package/dist/ui/prompt.d.ts.map +1 -0
  77. package/dist/ui/prompt.js +128 -0
  78. package/dist/ui/prompt.js.map +1 -0
  79. package/dist/ui/provider_connect.d.ts +33 -0
  80. package/dist/ui/provider_connect.d.ts.map +1 -0
  81. package/dist/ui/provider_connect.js +175 -0
  82. package/dist/ui/provider_connect.js.map +1 -0
  83. package/dist/ui/renderer.d.ts +19 -0
  84. package/dist/ui/renderer.d.ts.map +1 -0
  85. package/dist/ui/renderer.js +147 -0
  86. package/dist/ui/renderer.js.map +1 -0
  87. package/dist/ui/session_screen.d.ts +32 -0
  88. package/dist/ui/session_screen.d.ts.map +1 -0
  89. package/dist/ui/session_screen.js +148 -0
  90. package/dist/ui/session_screen.js.map +1 -0
  91. package/dist/ui/session_terminal.d.ts +46 -0
  92. package/dist/ui/session_terminal.d.ts.map +1 -0
  93. package/dist/ui/session_terminal.js +342 -0
  94. package/dist/ui/session_terminal.js.map +1 -0
  95. package/dist/ui/terminal_approval.d.ts +14 -0
  96. package/dist/ui/terminal_approval.d.ts.map +1 -0
  97. package/dist/ui/terminal_approval.js +98 -0
  98. package/dist/ui/terminal_approval.js.map +1 -0
  99. package/dist/ui/welcome.d.ts +130 -0
  100. package/dist/ui/welcome.d.ts.map +1 -0
  101. package/dist/ui/welcome.js +990 -0
  102. package/dist/ui/welcome.js.map +1 -0
  103. package/dist/vendor/contracts/approvals.d.ts +91 -0
  104. package/dist/vendor/contracts/approvals.d.ts.map +1 -0
  105. package/dist/vendor/contracts/approvals.js +22 -0
  106. package/dist/vendor/contracts/approvals.js.map +1 -0
  107. package/dist/vendor/contracts/events.d.ts +1215 -0
  108. package/dist/vendor/contracts/events.d.ts.map +1 -0
  109. package/dist/vendor/contracts/events.js +94 -0
  110. package/dist/vendor/contracts/events.js.map +1 -0
  111. package/dist/vendor/contracts/index.d.ts +7 -0
  112. package/dist/vendor/contracts/index.d.ts.map +1 -0
  113. package/dist/vendor/contracts/index.js +7 -0
  114. package/dist/vendor/contracts/index.js.map +1 -0
  115. package/dist/vendor/contracts/messages.d.ts +181 -0
  116. package/dist/vendor/contracts/messages.d.ts.map +1 -0
  117. package/dist/vendor/contracts/messages.js +40 -0
  118. package/dist/vendor/contracts/messages.js.map +1 -0
  119. package/dist/vendor/contracts/models.d.ts +117 -0
  120. package/dist/vendor/contracts/models.d.ts.map +1 -0
  121. package/dist/vendor/contracts/models.js +37 -0
  122. package/dist/vendor/contracts/models.js.map +1 -0
  123. package/dist/vendor/contracts/provider.d.ts +121 -0
  124. package/dist/vendor/contracts/provider.d.ts.map +1 -0
  125. package/dist/vendor/contracts/provider.js +64 -0
  126. package/dist/vendor/contracts/provider.js.map +1 -0
  127. package/dist/vendor/contracts/tools.d.ts +305 -0
  128. package/dist/vendor/contracts/tools.d.ts.map +1 -0
  129. package/dist/vendor/contracts/tools.js +65 -0
  130. package/dist/vendor/contracts/tools.js.map +1 -0
  131. package/dist/vendor/core/agent.d.ts +39 -0
  132. package/dist/vendor/core/agent.d.ts.map +1 -0
  133. package/dist/vendor/core/agent.js +710 -0
  134. package/dist/vendor/core/agent.js.map +1 -0
  135. package/dist/vendor/core/host_event_stream.d.ts +9 -0
  136. package/dist/vendor/core/host_event_stream.d.ts.map +1 -0
  137. package/dist/vendor/core/host_event_stream.js +12 -0
  138. package/dist/vendor/core/host_event_stream.js.map +1 -0
  139. package/dist/vendor/core/index.d.ts +7 -0
  140. package/dist/vendor/core/index.d.ts.map +1 -0
  141. package/dist/vendor/core/index.js +7 -0
  142. package/dist/vendor/core/index.js.map +1 -0
  143. package/dist/vendor/core/policy.d.ts +19 -0
  144. package/dist/vendor/core/policy.d.ts.map +1 -0
  145. package/dist/vendor/core/policy.js +31 -0
  146. package/dist/vendor/core/policy.js.map +1 -0
  147. package/dist/vendor/core/router.d.ts +26 -0
  148. package/dist/vendor/core/router.d.ts.map +1 -0
  149. package/dist/vendor/core/router.js +222 -0
  150. package/dist/vendor/core/router.js.map +1 -0
  151. package/dist/vendor/core/subagent.d.ts +29 -0
  152. package/dist/vendor/core/subagent.d.ts.map +1 -0
  153. package/dist/vendor/core/subagent.js +66 -0
  154. package/dist/vendor/core/subagent.js.map +1 -0
  155. package/dist/vendor/core/think_filter.d.ts +14 -0
  156. package/dist/vendor/core/think_filter.d.ts.map +1 -0
  157. package/dist/vendor/core/think_filter.js +136 -0
  158. package/dist/vendor/core/think_filter.js.map +1 -0
  159. package/dist/vendor/providers/fake/fake_provider.d.ts +16 -0
  160. package/dist/vendor/providers/fake/fake_provider.d.ts.map +1 -0
  161. package/dist/vendor/providers/fake/fake_provider.js +89 -0
  162. package/dist/vendor/providers/fake/fake_provider.js.map +1 -0
  163. package/dist/vendor/providers/index.d.ts +6 -0
  164. package/dist/vendor/providers/index.d.ts.map +1 -0
  165. package/dist/vendor/providers/index.js +6 -0
  166. package/dist/vendor/providers/index.js.map +1 -0
  167. package/dist/vendor/providers/model_discovery.d.ts +28 -0
  168. package/dist/vendor/providers/model_discovery.d.ts.map +1 -0
  169. package/dist/vendor/providers/model_discovery.js +106 -0
  170. package/dist/vendor/providers/model_discovery.js.map +1 -0
  171. package/dist/vendor/providers/nvidia/nvidia_adapter.d.ts +23 -0
  172. package/dist/vendor/providers/nvidia/nvidia_adapter.d.ts.map +1 -0
  173. package/dist/vendor/providers/nvidia/nvidia_adapter.js +197 -0
  174. package/dist/vendor/providers/nvidia/nvidia_adapter.js.map +1 -0
  175. package/dist/vendor/providers/nvidia/sse_parser.d.ts +3 -0
  176. package/dist/vendor/providers/nvidia/sse_parser.d.ts.map +1 -0
  177. package/dist/vendor/providers/nvidia/sse_parser.js +84 -0
  178. package/dist/vendor/providers/nvidia/sse_parser.js.map +1 -0
  179. package/dist/vendor/providers/openai_compatible_adapter.d.ts +10 -0
  180. package/dist/vendor/providers/openai_compatible_adapter.d.ts.map +1 -0
  181. package/dist/vendor/providers/openai_compatible_adapter.js +8 -0
  182. package/dist/vendor/providers/openai_compatible_adapter.js.map +1 -0
  183. package/dist/vendor/tools/checkpoints.d.ts +27 -0
  184. package/dist/vendor/tools/checkpoints.d.ts.map +1 -0
  185. package/dist/vendor/tools/checkpoints.js +145 -0
  186. package/dist/vendor/tools/checkpoints.js.map +1 -0
  187. package/dist/vendor/tools/diagnostics.d.ts +11 -0
  188. package/dist/vendor/tools/diagnostics.d.ts.map +1 -0
  189. package/dist/vendor/tools/diagnostics.js +16 -0
  190. package/dist/vendor/tools/diagnostics.js.map +1 -0
  191. package/dist/vendor/tools/diff.d.ts +7 -0
  192. package/dist/vendor/tools/diff.d.ts.map +1 -0
  193. package/dist/vendor/tools/diff.js +48 -0
  194. package/dist/vendor/tools/diff.js.map +1 -0
  195. package/dist/vendor/tools/errors.d.ts +17 -0
  196. package/dist/vendor/tools/errors.d.ts.map +1 -0
  197. package/dist/vendor/tools/errors.js +33 -0
  198. package/dist/vendor/tools/errors.js.map +1 -0
  199. package/dist/vendor/tools/git_workspace.d.ts +14 -0
  200. package/dist/vendor/tools/git_workspace.d.ts.map +1 -0
  201. package/dist/vendor/tools/git_workspace.js +42 -0
  202. package/dist/vendor/tools/git_workspace.js.map +1 -0
  203. package/dist/vendor/tools/index.d.ts +22 -0
  204. package/dist/vendor/tools/index.d.ts.map +1 -0
  205. package/dist/vendor/tools/index.js +22 -0
  206. package/dist/vendor/tools/index.js.map +1 -0
  207. package/dist/vendor/tools/jail.d.ts +17 -0
  208. package/dist/vendor/tools/jail.d.ts.map +1 -0
  209. package/dist/vendor/tools/jail.js +221 -0
  210. package/dist/vendor/tools/jail.js.map +1 -0
  211. package/dist/vendor/tools/lsp.d.ts +3 -0
  212. package/dist/vendor/tools/lsp.d.ts.map +1 -0
  213. package/dist/vendor/tools/lsp.js +43 -0
  214. package/dist/vendor/tools/lsp.js.map +1 -0
  215. package/dist/vendor/tools/mcp.d.ts +9 -0
  216. package/dist/vendor/tools/mcp.d.ts.map +1 -0
  217. package/dist/vendor/tools/mcp.js +54 -0
  218. package/dist/vendor/tools/mcp.js.map +1 -0
  219. package/dist/vendor/tools/mcp_adapter.d.ts +15 -0
  220. package/dist/vendor/tools/mcp_adapter.d.ts.map +1 -0
  221. package/dist/vendor/tools/mcp_adapter.js +29 -0
  222. package/dist/vendor/tools/mcp_adapter.js.map +1 -0
  223. package/dist/vendor/tools/registry.d.ts +10 -0
  224. package/dist/vendor/tools/registry.d.ts.map +1 -0
  225. package/dist/vendor/tools/registry.js +126 -0
  226. package/dist/vendor/tools/registry.js.map +1 -0
  227. package/dist/vendor/tools/tools/apply_patch.d.ts +3 -0
  228. package/dist/vendor/tools/tools/apply_patch.d.ts.map +1 -0
  229. package/dist/vendor/tools/tools/apply_patch.js +49 -0
  230. package/dist/vendor/tools/tools/apply_patch.js.map +1 -0
  231. package/dist/vendor/tools/tools/edit_file.d.ts +3 -0
  232. package/dist/vendor/tools/tools/edit_file.d.ts.map +1 -0
  233. package/dist/vendor/tools/tools/edit_file.js +71 -0
  234. package/dist/vendor/tools/tools/edit_file.js.map +1 -0
  235. package/dist/vendor/tools/tools/git_diff.d.ts +3 -0
  236. package/dist/vendor/tools/tools/git_diff.d.ts.map +1 -0
  237. package/dist/vendor/tools/tools/git_diff.js +91 -0
  238. package/dist/vendor/tools/tools/git_diff.js.map +1 -0
  239. package/dist/vendor/tools/tools/language_intelligence.d.ts +4 -0
  240. package/dist/vendor/tools/tools/language_intelligence.d.ts.map +1 -0
  241. package/dist/vendor/tools/tools/language_intelligence.js +13 -0
  242. package/dist/vendor/tools/tools/language_intelligence.js.map +1 -0
  243. package/dist/vendor/tools/tools/list_files.d.ts +9 -0
  244. package/dist/vendor/tools/tools/list_files.d.ts.map +1 -0
  245. package/dist/vendor/tools/tools/list_files.js +165 -0
  246. package/dist/vendor/tools/tools/list_files.js.map +1 -0
  247. package/dist/vendor/tools/tools/read_file.d.ts +3 -0
  248. package/dist/vendor/tools/tools/read_file.d.ts.map +1 -0
  249. package/dist/vendor/tools/tools/read_file.js +72 -0
  250. package/dist/vendor/tools/tools/read_file.js.map +1 -0
  251. package/dist/vendor/tools/tools/run_command.d.ts +12 -0
  252. package/dist/vendor/tools/tools/run_command.d.ts.map +1 -0
  253. package/dist/vendor/tools/tools/run_command.js +421 -0
  254. package/dist/vendor/tools/tools/run_command.js.map +1 -0
  255. package/dist/vendor/tools/tools/run_diagnostics.d.ts +3 -0
  256. package/dist/vendor/tools/tools/run_diagnostics.d.ts.map +1 -0
  257. package/dist/vendor/tools/tools/run_diagnostics.js +11 -0
  258. package/dist/vendor/tools/tools/run_diagnostics.js.map +1 -0
  259. package/dist/vendor/tools/tools/search_files.d.ts +3 -0
  260. package/dist/vendor/tools/tools/search_files.d.ts.map +1 -0
  261. package/dist/vendor/tools/tools/search_files.js +120 -0
  262. package/dist/vendor/tools/tools/search_files.js.map +1 -0
  263. package/dist/vendor/tools/tools/web_search.d.ts +46 -0
  264. package/dist/vendor/tools/tools/web_search.d.ts.map +1 -0
  265. package/dist/vendor/tools/tools/web_search.js +187 -0
  266. package/dist/vendor/tools/tools/web_search.js.map +1 -0
  267. package/dist/vendor/tools/tools/write_file.d.ts +3 -0
  268. package/dist/vendor/tools/tools/write_file.d.ts.map +1 -0
  269. package/dist/vendor/tools/tools/write_file.js +52 -0
  270. package/dist/vendor/tools/tools/write_file.js.map +1 -0
  271. package/dist/windows_credentials.d.ts +15 -0
  272. package/dist/windows_credentials.d.ts.map +1 -0
  273. package/dist/windows_credentials.js +23 -0
  274. package/dist/windows_credentials.js.map +1 -0
  275. package/package.json +28 -0
@@ -0,0 +1,64 @@
1
+ import { z } from 'zod';
2
+ // --- Error Taxonomy ---
3
+ export class ProviderError extends Error {
4
+ code;
5
+ statusCode;
6
+ constructor(message, code, statusCode) {
7
+ super(message);
8
+ this.code = code;
9
+ this.statusCode = statusCode;
10
+ this.name = 'ProviderError';
11
+ }
12
+ }
13
+ export class AuthenticationError extends ProviderError {
14
+ constructor(message = 'Authentication failed: invalid or expired provider API key', statusCode = 401) {
15
+ super(message, 'ERR_PROVIDER_AUTHENTICATION', statusCode);
16
+ this.name = 'AuthenticationError';
17
+ }
18
+ }
19
+ export class RateLimitError extends ProviderError {
20
+ retryAfterSeconds;
21
+ constructor(message = 'Rate limit exceeded', retryAfterSeconds, statusCode = 429) {
22
+ super(message, 'ERR_PROVIDER_RATE_LIMIT', statusCode);
23
+ this.retryAfterSeconds = retryAfterSeconds;
24
+ this.name = 'RateLimitError';
25
+ }
26
+ }
27
+ export class ModelUnavailableError extends ProviderError {
28
+ constructor(message = 'Requested model is currently unavailable', statusCode = 503) {
29
+ super(message, 'ERR_MODEL_UNAVAILABLE', statusCode);
30
+ this.name = 'ModelUnavailableError';
31
+ }
32
+ }
33
+ export class EmptyResponseError extends ProviderError {
34
+ constructor(message = 'Provider returned no assistant content or tool calls') {
35
+ super(message, 'ERR_EMPTY_RESPONSE');
36
+ this.name = 'EmptyResponseError';
37
+ }
38
+ }
39
+ export class MalformedResponseError extends ProviderError {
40
+ constructor(message = 'Provider returned malformed or unparseable response') {
41
+ super(message, 'ERR_MALFORMED_RESPONSE');
42
+ this.name = 'MalformedResponseError';
43
+ }
44
+ }
45
+ export class ProviderTimeoutError extends ProviderError {
46
+ constructor(message = 'Provider request timed out') {
47
+ super(message, 'ERR_PROVIDER_TIMEOUT', 408);
48
+ this.name = 'ProviderTimeoutError';
49
+ }
50
+ }
51
+ // --- Streaming Contracts ---
52
+ export const ChatUsageSchema = z.object({
53
+ promptTokens: z.number().int().nonnegative(),
54
+ completionTokens: z.number().int().nonnegative(),
55
+ totalTokens: z.number().int().nonnegative(),
56
+ });
57
+ export const ChatCompletionChunkSchema = z.object({
58
+ contentDelta: z.string().optional(),
59
+ reasoningDelta: z.string().optional(),
60
+ toolCallChunks: z.array(z.custom()).optional(),
61
+ finishReason: z.enum(['stop', 'tool_calls', 'length', 'error']).nullable().optional(),
62
+ usage: ChatUsageSchema.optional(),
63
+ });
64
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,305 @@
1
+ import { z } from 'zod';
2
+ import type { ProviderToolDeclaration } from './provider.js';
3
+ export declare const ToolExecutionStatusSchema: z.ZodEnum<["success", "error", "denied"]>;
4
+ export type ToolExecutionStatus = z.infer<typeof ToolExecutionStatusSchema>;
5
+ export declare const ToolResultSchema: z.ZodObject<{
6
+ toolName: z.ZodString;
7
+ status: z.ZodEnum<["success", "error", "denied"]>;
8
+ output: z.ZodString;
9
+ truncated: z.ZodOptional<z.ZodBoolean>;
10
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ status: "denied" | "success" | "error";
13
+ toolName: string;
14
+ output: string;
15
+ truncated?: boolean | undefined;
16
+ metadata?: Record<string, unknown> | undefined;
17
+ }, {
18
+ status: "denied" | "success" | "error";
19
+ toolName: string;
20
+ output: string;
21
+ truncated?: boolean | undefined;
22
+ metadata?: Record<string, unknown> | undefined;
23
+ }>;
24
+ export type ToolResult = z.infer<typeof ToolResultSchema>;
25
+ export interface ToolExecutionContext {
26
+ workspaceRoot: string;
27
+ abortSignal?: AbortSignal;
28
+ }
29
+ export interface IToolDefinition<TParams = unknown> {
30
+ readonly name: string;
31
+ readonly description: string;
32
+ readonly requiresApproval: boolean;
33
+ readonly parametersSchema: z.ZodType<TParams, any, any>;
34
+ preview?(params: TParams, context: ToolExecutionContext): Promise<string | undefined>;
35
+ execute(params: TParams, context: ToolExecutionContext): Promise<ToolResult>;
36
+ }
37
+ export interface IToolRegistry {
38
+ register(tool: IToolDefinition<any>): void;
39
+ get(name: string): IToolDefinition<any> | undefined;
40
+ list(): IToolDefinition<any>[];
41
+ getDeclarations(): ProviderToolDeclaration[];
42
+ }
43
+ export declare const McpServerConfigSchema: z.ZodObject<{
44
+ executable: z.ZodString;
45
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
46
+ enabled: z.ZodDefault<z.ZodBoolean>;
47
+ }, "strip", z.ZodTypeAny, {
48
+ executable: string;
49
+ args: string[];
50
+ enabled: boolean;
51
+ }, {
52
+ executable: string;
53
+ args?: string[] | undefined;
54
+ enabled?: boolean | undefined;
55
+ }>;
56
+ export type McpServerConfig = z.infer<typeof McpServerConfigSchema>;
57
+ export declare const SourcePositionSchema: z.ZodObject<{
58
+ path: z.ZodString;
59
+ line: z.ZodNumber;
60
+ column: z.ZodNumber;
61
+ }, "strip", z.ZodTypeAny, {
62
+ path: string;
63
+ line: number;
64
+ column: number;
65
+ }, {
66
+ path: string;
67
+ line: number;
68
+ column: number;
69
+ }>;
70
+ export type SourcePosition = z.infer<typeof SourcePositionSchema>;
71
+ export declare const SourceLocationSchema: z.ZodObject<{
72
+ path: z.ZodString;
73
+ line: z.ZodNumber;
74
+ column: z.ZodNumber;
75
+ } & {
76
+ endLine: z.ZodOptional<z.ZodNumber>;
77
+ endColumn: z.ZodOptional<z.ZodNumber>;
78
+ preview: z.ZodOptional<z.ZodString>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ path: string;
81
+ line: number;
82
+ column: number;
83
+ endLine?: number | undefined;
84
+ endColumn?: number | undefined;
85
+ preview?: string | undefined;
86
+ }, {
87
+ path: string;
88
+ line: number;
89
+ column: number;
90
+ endLine?: number | undefined;
91
+ endColumn?: number | undefined;
92
+ preview?: string | undefined;
93
+ }>;
94
+ export type SourceLocation = z.infer<typeof SourceLocationSchema>;
95
+ export declare const GetDefinitionParamsSchema: z.ZodObject<{
96
+ path: z.ZodString;
97
+ line: z.ZodNumber;
98
+ column: z.ZodNumber;
99
+ }, "strip", z.ZodTypeAny, {
100
+ path: string;
101
+ line: number;
102
+ column: number;
103
+ }, {
104
+ path: string;
105
+ line: number;
106
+ column: number;
107
+ }>;
108
+ export type GetDefinitionParams = z.infer<typeof GetDefinitionParamsSchema>;
109
+ export declare const FindReferencesParamsSchema: z.ZodObject<{
110
+ path: z.ZodString;
111
+ line: z.ZodNumber;
112
+ column: z.ZodNumber;
113
+ }, "strip", z.ZodTypeAny, {
114
+ path: string;
115
+ line: number;
116
+ column: number;
117
+ }, {
118
+ path: string;
119
+ line: number;
120
+ column: number;
121
+ }>;
122
+ export type FindReferencesParams = z.infer<typeof FindReferencesParamsSchema>;
123
+ export declare const DiagnosticSeveritySchema: z.ZodEnum<["error", "warning", "info"]>;
124
+ export type DiagnosticSeverity = z.infer<typeof DiagnosticSeveritySchema>;
125
+ export declare const DiagnosticSchema: z.ZodObject<{
126
+ severity: z.ZodEnum<["error", "warning", "info"]>;
127
+ message: z.ZodString;
128
+ file: z.ZodOptional<z.ZodString>;
129
+ line: z.ZodOptional<z.ZodNumber>;
130
+ column: z.ZodOptional<z.ZodNumber>;
131
+ code: z.ZodOptional<z.ZodString>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ message: string;
134
+ severity: "error" | "warning" | "info";
135
+ code?: string | undefined;
136
+ line?: number | undefined;
137
+ column?: number | undefined;
138
+ file?: string | undefined;
139
+ }, {
140
+ message: string;
141
+ severity: "error" | "warning" | "info";
142
+ code?: string | undefined;
143
+ line?: number | undefined;
144
+ column?: number | undefined;
145
+ file?: string | undefined;
146
+ }>;
147
+ export type Diagnostic = z.infer<typeof DiagnosticSchema>;
148
+ export declare const RunDiagnosticsParamsSchema: z.ZodObject<{
149
+ script: z.ZodEnum<["typecheck", "lint", "test"]>;
150
+ }, "strip", z.ZodTypeAny, {
151
+ script: "typecheck" | "lint" | "test";
152
+ }, {
153
+ script: "typecheck" | "lint" | "test";
154
+ }>;
155
+ export type RunDiagnosticsParams = z.infer<typeof RunDiagnosticsParamsSchema>;
156
+ export declare const WebSearchParamsSchema: z.ZodObject<{
157
+ query: z.ZodString;
158
+ objective: z.ZodOptional<z.ZodString>;
159
+ endpoint: z.ZodOptional<z.ZodString>;
160
+ maxResults: z.ZodDefault<z.ZodNumber>;
161
+ }, "strip", z.ZodTypeAny, {
162
+ query: string;
163
+ maxResults: number;
164
+ objective?: string | undefined;
165
+ endpoint?: string | undefined;
166
+ }, {
167
+ query: string;
168
+ objective?: string | undefined;
169
+ endpoint?: string | undefined;
170
+ maxResults?: number | undefined;
171
+ }>;
172
+ export type WebSearchParams = z.infer<typeof WebSearchParamsSchema>;
173
+ export declare const ReadFileParamsSchema: z.ZodObject<{
174
+ path: z.ZodString;
175
+ offset: z.ZodDefault<z.ZodNumber>;
176
+ limit: z.ZodDefault<z.ZodNumber>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ path: string;
179
+ offset: number;
180
+ limit: number;
181
+ }, {
182
+ path: string;
183
+ offset?: number | undefined;
184
+ limit?: number | undefined;
185
+ }>;
186
+ export type ReadFileParams = z.infer<typeof ReadFileParamsSchema>;
187
+ export declare const WriteFileParamsSchema: z.ZodObject<{
188
+ path: z.ZodString;
189
+ content: z.ZodString;
190
+ }, "strip", z.ZodTypeAny, {
191
+ path: string;
192
+ content: string;
193
+ }, {
194
+ path: string;
195
+ content: string;
196
+ }>;
197
+ export type WriteFileParams = z.infer<typeof WriteFileParamsSchema>;
198
+ export declare const EditFileParamsSchema: z.ZodObject<{
199
+ path: z.ZodString;
200
+ targetContent: z.ZodString;
201
+ replacementContent: z.ZodString;
202
+ }, "strip", z.ZodTypeAny, {
203
+ path: string;
204
+ targetContent: string;
205
+ replacementContent: string;
206
+ }, {
207
+ path: string;
208
+ targetContent: string;
209
+ replacementContent: string;
210
+ }>;
211
+ export type EditFileParams = z.infer<typeof EditFileParamsSchema>;
212
+ export declare const ApplyPatchParamsSchema: z.ZodObject<{
213
+ edits: z.ZodArray<z.ZodObject<{
214
+ path: z.ZodString;
215
+ targetContent: z.ZodString;
216
+ replacementContent: z.ZodString;
217
+ }, "strip", z.ZodTypeAny, {
218
+ path: string;
219
+ targetContent: string;
220
+ replacementContent: string;
221
+ }, {
222
+ path: string;
223
+ targetContent: string;
224
+ replacementContent: string;
225
+ }>, "many">;
226
+ }, "strip", z.ZodTypeAny, {
227
+ edits: {
228
+ path: string;
229
+ targetContent: string;
230
+ replacementContent: string;
231
+ }[];
232
+ }, {
233
+ edits: {
234
+ path: string;
235
+ targetContent: string;
236
+ replacementContent: string;
237
+ }[];
238
+ }>;
239
+ export type ApplyPatchParams = z.infer<typeof ApplyPatchParamsSchema>;
240
+ export declare const ListFilesParamsSchema: z.ZodObject<{
241
+ subpath: z.ZodDefault<z.ZodString>;
242
+ recursive: z.ZodDefault<z.ZodBoolean>;
243
+ maxDepth: z.ZodDefault<z.ZodNumber>;
244
+ limit: z.ZodDefault<z.ZodNumber>;
245
+ }, "strip", z.ZodTypeAny, {
246
+ limit: number;
247
+ subpath: string;
248
+ recursive: boolean;
249
+ maxDepth: number;
250
+ }, {
251
+ limit?: number | undefined;
252
+ subpath?: string | undefined;
253
+ recursive?: boolean | undefined;
254
+ maxDepth?: number | undefined;
255
+ }>;
256
+ export type ListFilesParams = z.infer<typeof ListFilesParamsSchema>;
257
+ export declare const SearchFilesParamsSchema: z.ZodObject<{
258
+ query: z.ZodString;
259
+ isRegex: z.ZodDefault<z.ZodBoolean>;
260
+ caseSensitive: z.ZodDefault<z.ZodBoolean>;
261
+ includes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
262
+ maxResults: z.ZodDefault<z.ZodNumber>;
263
+ }, "strip", z.ZodTypeAny, {
264
+ query: string;
265
+ maxResults: number;
266
+ isRegex: boolean;
267
+ caseSensitive: boolean;
268
+ includes?: string[] | undefined;
269
+ }, {
270
+ query: string;
271
+ includes?: string[] | undefined;
272
+ maxResults?: number | undefined;
273
+ isRegex?: boolean | undefined;
274
+ caseSensitive?: boolean | undefined;
275
+ }>;
276
+ export type SearchFilesParams = z.infer<typeof SearchFilesParamsSchema>;
277
+ export declare const RunCommandParamsSchema: z.ZodObject<{
278
+ command: z.ZodString;
279
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
280
+ timeoutSeconds: z.ZodDefault<z.ZodNumber>;
281
+ }, "strip", z.ZodTypeAny, {
282
+ command: string;
283
+ args: string[];
284
+ timeoutSeconds: number;
285
+ }, {
286
+ command: string;
287
+ args?: string[] | undefined;
288
+ timeoutSeconds?: number | undefined;
289
+ }>;
290
+ export type RunCommandParams = z.infer<typeof RunCommandParamsSchema>;
291
+ export declare const GitDiffParamsSchema: z.ZodObject<{
292
+ staged: z.ZodDefault<z.ZodBoolean>;
293
+ targetRef: z.ZodOptional<z.ZodString>;
294
+ filePaths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
295
+ }, "strip", z.ZodTypeAny, {
296
+ staged: boolean;
297
+ targetRef?: string | undefined;
298
+ filePaths?: string[] | undefined;
299
+ }, {
300
+ staged?: boolean | undefined;
301
+ targetRef?: string | undefined;
302
+ filePaths?: string[] | undefined;
303
+ }>;
304
+ export type GitDiffParams = z.infer<typeof GitDiffParamsSchema>;
305
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { z } from 'zod';
2
+ export const ToolExecutionStatusSchema = z.enum(['success', 'error', 'denied']);
3
+ export const ToolResultSchema = z.object({
4
+ toolName: z.string().min(1),
5
+ status: ToolExecutionStatusSchema,
6
+ output: z.string(),
7
+ truncated: z.boolean().optional(),
8
+ metadata: z.record(z.unknown()).optional(),
9
+ });
10
+ export const McpServerConfigSchema = z.object({ executable: z.string().min(1), args: z.array(z.string()).max(32).default([]), enabled: z.boolean().default(true) });
11
+ export const SourcePositionSchema = z.object({ path: z.string().min(1), line: z.number().int().positive(), column: z.number().int().positive() });
12
+ export const SourceLocationSchema = SourcePositionSchema.extend({ endLine: z.number().int().positive().optional(), endColumn: z.number().int().positive().optional(), preview: z.string().max(500).optional() });
13
+ export const GetDefinitionParamsSchema = SourcePositionSchema;
14
+ export const FindReferencesParamsSchema = SourcePositionSchema;
15
+ export const DiagnosticSeveritySchema = z.enum(['error', 'warning', 'info']);
16
+ export const DiagnosticSchema = z.object({ severity: DiagnosticSeveritySchema, message: z.string().min(1), file: z.string().min(1).optional(), line: z.number().int().positive().optional(), column: z.number().int().positive().optional(), code: z.string().min(1).optional() });
17
+ export const RunDiagnosticsParamsSchema = z.object({ script: z.enum(['typecheck', 'lint', 'test']) });
18
+ export const WebSearchParamsSchema = z.object({
19
+ query: z.string().min(1).max(500).describe('Describe the ideal source page to find, for example "current weather conditions and today forecast in San Jose California".'),
20
+ objective: z.string().min(1).max(1000).describe('The facts the answer must contain, for example the specific figures to report.').optional(),
21
+ endpoint: z.string().min(1).describe('Advanced override for the configured search endpoint. Anything that is not an HTTPS or localhost URL is rejected, so omit this to use the configured search provider.').optional(),
22
+ maxResults: z.number().int().min(1).max(10).describe('Number of search results to use as evidence.').default(5),
23
+ });
24
+ // --- Specific Parameter Schemas for the 7 Workspace Tools ---
25
+ export const ReadFileParamsSchema = z.object({
26
+ path: z.string().min(1, 'File path cannot be empty'),
27
+ offset: z.number().int().min(1).default(1),
28
+ limit: z.number().int().min(1).max(2000).default(500),
29
+ });
30
+ export const WriteFileParamsSchema = z.object({
31
+ path: z.string().min(1, 'File path cannot be empty'),
32
+ content: z.string(),
33
+ });
34
+ export const EditFileParamsSchema = z.object({
35
+ path: z.string().min(1, 'File path cannot be empty'),
36
+ targetContent: z.string().min(1, 'Target content must not be empty'),
37
+ replacementContent: z.string(),
38
+ });
39
+ export const ApplyPatchParamsSchema = z.object({
40
+ edits: z.array(EditFileParamsSchema).min(1).max(20),
41
+ });
42
+ export const ListFilesParamsSchema = z.object({
43
+ subpath: z.string().default('.'),
44
+ recursive: z.boolean().default(false),
45
+ maxDepth: z.number().int().min(1).max(10).default(3),
46
+ limit: z.number().int().min(1).max(500).default(200),
47
+ });
48
+ export const SearchFilesParamsSchema = z.object({
49
+ query: z.string().min(1, 'Search query cannot be empty'),
50
+ isRegex: z.boolean().default(false),
51
+ caseSensitive: z.boolean().default(true),
52
+ includes: z.array(z.string()).optional(),
53
+ maxResults: z.number().int().min(1).max(100).default(50),
54
+ });
55
+ export const RunCommandParamsSchema = z.object({
56
+ command: z.string().min(1, 'Command cannot be empty'),
57
+ args: z.array(z.string()).default([]),
58
+ timeoutSeconds: z.number().int().min(1).max(300).default(60),
59
+ });
60
+ export const GitDiffParamsSchema = z.object({
61
+ staged: z.boolean().default(false),
62
+ targetRef: z.string().regex(/^[a-zA-Z0-9_\-\.\/]+$/).optional(),
63
+ filePaths: z.array(z.string()).optional(),
64
+ });
65
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { AgentEventListener, HostEventListener, ChatUsage, ChatMessage, DiscoveredModel, IApprovalHandler, IProviderAdapter, IToolRegistry, ModelInventoryEntry, ToolResult } from '@moderado/contracts';
2
+ import { Router, RouteSelectionOptions } from './router.js';
3
+ import { PolicyManager } from './policy.js';
4
+ export declare const DEFAULT_MAX_OUTPUT_TOKENS = 4096;
5
+ export interface AgentRunOptions {
6
+ workspaceRoot: string;
7
+ provider: IProviderAdapter;
8
+ tools: IToolRegistry;
9
+ approvalHandler: IApprovalHandler;
10
+ router?: Router;
11
+ policy?: PolicyManager;
12
+ routeOptions?: RouteSelectionOptions;
13
+ eventListener?: AgentEventListener;
14
+ hostEventListener?: HostEventListener;
15
+ signal?: AbortSignal;
16
+ conversationHistory?: ChatMessage[];
17
+ modelInventory?: ModelInventoryEntry[];
18
+ onMutationApproved?: (toolName: string, parameters: unknown) => Promise<void> | void;
19
+ onMutationCompleted?: (toolName: string, parameters: unknown, result: ToolResult) => Promise<void> | void;
20
+ /** Internal boundary: child loops must not create further subagents. */
21
+ allowSubagentDelegation?: boolean;
22
+ /** Hard cap on generated output tokens to prevent runaway token spend. Defaults to DEFAULT_MAX_OUTPUT_TOKENS (4096). */
23
+ maxOutputTokens?: number;
24
+ }
25
+ export interface AgentRunResult {
26
+ status: 'completed' | 'step_limit_reached' | 'cancelled' | 'failed';
27
+ totalSteps: number;
28
+ finalMessage: string | null;
29
+ selectedModel: DiscoveredModel;
30
+ messages: ChatMessage[];
31
+ usage?: ChatUsage;
32
+ }
33
+ export declare const DEFAULT_SYSTEM_PROMPT = "CRITICAL DIRECTIVE \u2014 EXTREME BREVITY (DEFAULT MODE):\n- Extreme brevity is mandatory. Answer in 1 to 2 short sentences or under 35 words.\n- Zero conversational filler: Never output greetings, pleasantries, preambles (\"Sure\", \"Here is\", \"Certainly\", \"I'd be happy to\"), or sign-offs (\"Hope this helps\", \"Let me know\").\n- Never restate, rephrase, or echo the user's question before answering. Start immediately with the direct answer.\n- Zero markdown headers (no ## or ###), no bullet lists unless specifically requested, no conclusion sections.\n- For code, commands, or file edits: Output ONLY the raw code or command block. Do NOT explain what it does or how it works.\n- State only direct, factual answers. Do NOT provide unsolicited background, tips, or commentary.\n\nYou are Moderado, a lightweight, pragmatic, bloat-free AI coding agent.\nYou follow the Ponytail Decision Ladder: YAGNI, standard library first, zero unnecessary dependencies, and minimal code.\nUse the provided workspace tools to inspect, read, search, modify, and test files within the workspace.\n\nCORE OPERATIONAL RULES:\n- If the user prompt is a greeting, question, explanation request, or conversational query, output regular markdown text directly without calling any tools.\n- ONLY invoke tools when explicitly needed to inspect or modify the workspace as requested by the user.\n- NEVER create, write, or overwrite any files (including documentation, project summaries, or boilerplate) unless the user explicitly commanded you to create or modify that file in their prompt.\n- Do NOT create unsolicited files on your own initiative.\n- Always inspect existing code (with list_files, read_file, search_files) before editing. Keep edits focused, clean, and test-driven.\n- Do NOT invent tool names.\n- For anything that changes over time (weather, news, scores, prices, schedules, releases), call the web_search tool immediately with a clear query. Never fetch this with run_command, and never ask the user to look it up themselves. Answer with the facts and values only, in the fewest readable lines, without listing sources or URLs.";
34
+ export declare function buildSystemPrompt(modelId: string, workspaceRoot: string): string;
35
+ export declare function cleanConversationalFiller(text: string): string;
36
+ export declare class AgentLoop {
37
+ run(task: string, options: AgentRunOptions): Promise<AgentRunResult>;
38
+ }
39
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAIjB,SAAS,EACT,WAAW,EACX,eAAe,EAEf,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EAKnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,eAAe,EAAE,gBAAgB,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACvC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrF,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1G,wEAAwE;IACxE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wHAAwH;IACxH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,GAAG,oBAAoB,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,eAAe,CAAC;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,eAAO,MAAM,qBAAqB,4lEAmB6S,CAAC;AAEhV,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB9D;AA8BD,qBAAa,SAAS;IACd,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAoqB3E"}