@kalenkevich/agent_007 0.0.1

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 (247) hide show
  1. package/dist/agent/agent.d.ts +17 -0
  2. package/dist/agent/agent.js +6 -0
  3. package/dist/agent/agent.js.map +1 -0
  4. package/dist/agent/agent_event.d.ts +108 -0
  5. package/dist/agent/agent_event.js +56 -0
  6. package/dist/agent/agent_event.js.map +1 -0
  7. package/dist/agent/agent_event_utils.d.ts +5 -0
  8. package/dist/agent/agent_event_utils.js +66 -0
  9. package/dist/agent/agent_event_utils.js.map +1 -0
  10. package/dist/agent/cli_agent/cli_agent.d.ts +41 -0
  11. package/dist/agent/cli_agent/cli_agent.js +324 -0
  12. package/dist/agent/cli_agent/cli_agent.js.map +1 -0
  13. package/dist/agent/cli_agent/system_prompt.d.ts +1 -0
  14. package/dist/agent/cli_agent/system_prompt.js +58 -0
  15. package/dist/agent/cli_agent/system_prompt.js.map +1 -0
  16. package/dist/agent/cli_agent.d.ts +34 -0
  17. package/dist/agent/cli_agent.js +91 -0
  18. package/dist/agent/cli_agent.js.map +1 -0
  19. package/dist/agent/planner_agent/planner_agent.d.ts +28 -0
  20. package/dist/agent/planner_agent/planner_agent.js +102 -0
  21. package/dist/agent/planner_agent/planner_agent.js.map +1 -0
  22. package/dist/agent/request_processor/basic_request_processor.d.ts +17 -0
  23. package/dist/agent/request_processor/basic_request_processor.js +28 -0
  24. package/dist/agent/request_processor/basic_request_processor.js.map +1 -0
  25. package/dist/agent/request_processor/compaction_processor.d.ts +17 -0
  26. package/dist/agent/request_processor/compaction_processor.js +118 -0
  27. package/dist/agent/request_processor/compaction_processor.js.map +1 -0
  28. package/dist/agent/request_processor/request_processor.d.ts +11 -0
  29. package/dist/agent/request_processor/request_processor.js +2 -0
  30. package/dist/agent/request_processor/request_processor.js.map +1 -0
  31. package/dist/cli/init_project_command_handler.d.ts +3 -0
  32. package/dist/cli/init_project_command_handler.js +58 -0
  33. package/dist/cli/init_project_command_handler.js.map +1 -0
  34. package/dist/cli/loader.d.ts +6 -0
  35. package/dist/cli/loader.js +27 -0
  36. package/dist/cli/loader.js.map +1 -0
  37. package/dist/cli/prompt_utils.d.ts +11 -0
  38. package/dist/cli/prompt_utils.js +18 -0
  39. package/dist/cli/prompt_utils.js.map +1 -0
  40. package/dist/cli/run_command.d.ts +6 -0
  41. package/dist/cli/run_command.js +72 -0
  42. package/dist/cli/run_command.js.map +1 -0
  43. package/dist/cli/run_interactive_command.d.ts +6 -0
  44. package/dist/cli/run_interactive_command.js +282 -0
  45. package/dist/cli/run_interactive_command.js.map +1 -0
  46. package/dist/cli/run_noninteractive_command.d.ts +6 -0
  47. package/dist/cli/run_noninteractive_command.js +60 -0
  48. package/dist/cli/run_noninteractive_command.js.map +1 -0
  49. package/dist/cli_entrypoint.d.ts +2 -0
  50. package/dist/cli_entrypoint.js +110 -0
  51. package/dist/cli_entrypoint.js.map +1 -0
  52. package/dist/command/commnad_handler.d.ts +3 -0
  53. package/dist/command/commnad_handler.js +2 -0
  54. package/dist/command/commnad_handler.js.map +1 -0
  55. package/dist/command/init_project_command_handler.d.ts +4 -0
  56. package/dist/command/init_project_command_handler.js +58 -0
  57. package/dist/command/init_project_command_handler.js.map +1 -0
  58. package/dist/config/app_dir.d.ts +1 -0
  59. package/dist/config/app_dir.js +4 -0
  60. package/dist/config/app_dir.js.map +1 -0
  61. package/dist/config/config.d.ts +21 -0
  62. package/dist/config/config.js +2 -0
  63. package/dist/config/config.js.map +1 -0
  64. package/dist/config/config_loader.d.ts +2 -0
  65. package/dist/config/config_loader.js +47 -0
  66. package/dist/config/config_loader.js.map +1 -0
  67. package/dist/config/config_store.d.ts +10 -0
  68. package/dist/config/config_store.js +44 -0
  69. package/dist/config/config_store.js.map +1 -0
  70. package/dist/content.d.ts +51 -0
  71. package/dist/content.js +16 -0
  72. package/dist/content.js.map +1 -0
  73. package/dist/core/functions.d.ts +1 -0
  74. package/dist/core/functions.js +6 -0
  75. package/dist/core/functions.js.map +1 -0
  76. package/dist/core/loop.d.ts +20 -0
  77. package/dist/core/loop.js +121 -0
  78. package/dist/core/loop.js.map +1 -0
  79. package/dist/core/project_service.d.ts +11 -0
  80. package/dist/core/project_service.js +26 -0
  81. package/dist/core/project_service.js.map +1 -0
  82. package/dist/core/run.d.ts +6 -0
  83. package/dist/core/run.js +25 -0
  84. package/dist/core/run.js.map +1 -0
  85. package/dist/index.d.ts +1 -0
  86. package/dist/index.js +2 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/logger.d.ts +27 -0
  89. package/dist/logger.js +98 -0
  90. package/dist/logger.js.map +1 -0
  91. package/dist/model/adaptive_model.d.ts +16 -0
  92. package/dist/model/adaptive_model.js +57 -0
  93. package/dist/model/adaptive_model.js.map +1 -0
  94. package/dist/model/google/gemini_model.d.ts +15 -0
  95. package/dist/model/google/gemini_model.js +131 -0
  96. package/dist/model/google/gemini_model.js.map +1 -0
  97. package/dist/model/google/gemini_response_utils.d.ts +3 -0
  98. package/dist/model/google/gemini_response_utils.js +36 -0
  99. package/dist/model/google/gemini_response_utils.js.map +1 -0
  100. package/dist/model/google/gemini_streaming_utils.d.ts +28 -0
  101. package/dist/model/google/gemini_streaming_utils.js +235 -0
  102. package/dist/model/google/gemini_streaming_utils.js.map +1 -0
  103. package/dist/model/google/gen_ai_convert_utils.d.ts +6 -0
  104. package/dist/model/google/gen_ai_convert_utils.js +117 -0
  105. package/dist/model/google/gen_ai_convert_utils.js.map +1 -0
  106. package/dist/model/model.d.ts +11 -0
  107. package/dist/model/model.js +2 -0
  108. package/dist/model/model.js.map +1 -0
  109. package/dist/model/registry.d.ts +19 -0
  110. package/dist/model/registry.js +47 -0
  111. package/dist/model/registry.js.map +1 -0
  112. package/dist/model/request.d.ts +13 -0
  113. package/dist/model/request.js +2 -0
  114. package/dist/model/request.js.map +1 -0
  115. package/dist/model/request_builder_utils.d.ts +19 -0
  116. package/dist/model/request_builder_utils.js +43 -0
  117. package/dist/model/request_builder_utils.js.map +1 -0
  118. package/dist/model/response.d.ts +60 -0
  119. package/dist/model/response.js +2 -0
  120. package/dist/model/response.js.map +1 -0
  121. package/dist/model/util_llm.d.ts +10 -0
  122. package/dist/model/util_llm.js +149 -0
  123. package/dist/model/util_llm.js.map +1 -0
  124. package/dist/session/session.d.ts +14 -0
  125. package/dist/session/session.js +2 -0
  126. package/dist/session/session.js.map +1 -0
  127. package/dist/session/session_file_service.d.ts +23 -0
  128. package/dist/session/session_file_service.js +147 -0
  129. package/dist/session/session_file_service.js.map +1 -0
  130. package/dist/skills/skill.d.ts +23 -0
  131. package/dist/skills/skill.js +12 -0
  132. package/dist/skills/skill.js.map +1 -0
  133. package/dist/tools/build_in/find.d.ts +3 -0
  134. package/dist/tools/build_in/find.js +71 -0
  135. package/dist/tools/build_in/find.js.map +1 -0
  136. package/dist/tools/build_in/grep.d.ts +3 -0
  137. package/dist/tools/build_in/grep.js +97 -0
  138. package/dist/tools/build_in/grep.js.map +1 -0
  139. package/dist/tools/build_in/index.d.ts +1 -0
  140. package/dist/tools/build_in/index.js +13 -0
  141. package/dist/tools/build_in/index.js.map +1 -0
  142. package/dist/tools/build_in/list_dir.d.ts +3 -0
  143. package/dist/tools/build_in/list_dir.js +46 -0
  144. package/dist/tools/build_in/list_dir.js.map +1 -0
  145. package/dist/tools/build_in/view_file.d.ts +3 -0
  146. package/dist/tools/build_in/view_file.js +44 -0
  147. package/dist/tools/build_in/view_file.js.map +1 -0
  148. package/dist/tools/build_in/write_file.d.ts +3 -0
  149. package/dist/tools/build_in/write_file.js +50 -0
  150. package/dist/tools/build_in/write_file.js.map +1 -0
  151. package/dist/tools/functional_tool.d.ts +18 -0
  152. package/dist/tools/functional_tool.js +20 -0
  153. package/dist/tools/functional_tool.js.map +1 -0
  154. package/dist/tools/schema.d.ts +86 -0
  155. package/dist/tools/schema.js +37 -0
  156. package/dist/tools/schema.js.map +1 -0
  157. package/dist/tools/tool.d.ts +30 -0
  158. package/dist/tools/tool.js +9 -0
  159. package/dist/tools/tool.js.map +1 -0
  160. package/dist/tools/tool_call_policy.d.ts +4 -0
  161. package/dist/tools/tool_call_policy.js +4 -0
  162. package/dist/tools/tool_call_policy.js.map +1 -0
  163. package/dist/tools/tool_policy.d.ts +4 -0
  164. package/dist/tools/tool_policy.js +4 -0
  165. package/dist/tools/tool_policy.js.map +1 -0
  166. package/dist/ui/ui.d.ts +1 -0
  167. package/dist/ui/ui.js +2 -0
  168. package/dist/ui/ui.js.map +1 -0
  169. package/dist/user_input.d.ts +20 -0
  170. package/dist/user_input.js +21 -0
  171. package/dist/user_input.js.map +1 -0
  172. package/package.json +44 -0
  173. package/src/agent/agent.ts +18 -0
  174. package/src/agent/agent_event.ts +171 -0
  175. package/src/agent/agent_event_utils.ts +87 -0
  176. package/src/agent/cli_agent/cli_agent.ts +418 -0
  177. package/src/agent/cli_agent/system_prompt.ts +57 -0
  178. package/src/agent/planner_agent/planner_agent.ts +136 -0
  179. package/src/agent/request_processor/basic_request_processor.ts +46 -0
  180. package/src/agent/request_processor/compaction_processor.ts +164 -0
  181. package/src/agent/request_processor/request_processor.ts +13 -0
  182. package/src/cli/loader.ts +27 -0
  183. package/src/cli/prompt_utils.ts +19 -0
  184. package/src/cli/run_interactive_command.ts +337 -0
  185. package/src/cli/run_noninteractive_command.ts +74 -0
  186. package/src/cli_entrypoint.ts +128 -0
  187. package/src/command/commnad_handler.ts +3 -0
  188. package/src/command/init_project_command_handler.ts +66 -0
  189. package/src/config/app_dir.ts +4 -0
  190. package/src/config/config.ts +24 -0
  191. package/src/config/config_loader.ts +57 -0
  192. package/src/config/config_store.ts +50 -0
  193. package/src/content.ts +87 -0
  194. package/src/core/functions.ts +7 -0
  195. package/src/core/loop.ts +165 -0
  196. package/src/core/project_service.ts +38 -0
  197. package/src/core/run.ts +36 -0
  198. package/src/index.ts +1 -0
  199. package/src/logger.ts +128 -0
  200. package/src/model/adaptive_model.ts +77 -0
  201. package/src/model/google/gemini_model.ts +194 -0
  202. package/src/model/google/gemini_response_utils.ts +46 -0
  203. package/src/model/google/gemini_streaming_utils.ts +294 -0
  204. package/src/model/google/gen_ai_convert_utils.ts +149 -0
  205. package/src/model/model.ts +18 -0
  206. package/src/model/registry.ts +61 -0
  207. package/src/model/request.ts +15 -0
  208. package/src/model/request_builder_utils.ts +79 -0
  209. package/src/model/response.ts +66 -0
  210. package/src/model/util_llm.ts +167 -0
  211. package/src/session/session.ts +16 -0
  212. package/src/session/session_file_service.ts +207 -0
  213. package/src/skills/skill.ts +38 -0
  214. package/src/tools/build_in/find.ts +80 -0
  215. package/src/tools/build_in/grep.ts +101 -0
  216. package/src/tools/build_in/index.ts +13 -0
  217. package/src/tools/build_in/list_dir.ts +50 -0
  218. package/src/tools/build_in/view_file.ts +47 -0
  219. package/src/tools/build_in/write_file.ts +53 -0
  220. package/src/tools/functional_tool.ts +59 -0
  221. package/src/tools/schema.ts +87 -0
  222. package/src/tools/tool.ts +68 -0
  223. package/src/tools/tool_call_policy.ts +7 -0
  224. package/src/ui/ui.ts +0 -0
  225. package/src/user_input.ts +51 -0
  226. package/tests/integration/util_llm_test.ts +42 -0
  227. package/tests/unit/adaptive_model_test.ts +122 -0
  228. package/tests/unit/agent/request_processor/compaction_processor_test.ts +121 -0
  229. package/tests/unit/cli/prompt_utils_test.ts +47 -0
  230. package/tests/unit/cli_agent_test.ts +476 -0
  231. package/tests/unit/content_test.ts +56 -0
  232. package/tests/unit/logger_test.ts +109 -0
  233. package/tests/unit/loop_test.ts +141 -0
  234. package/tests/unit/model/gemini_model_test.ts +111 -0
  235. package/tests/unit/planner_agent_test.ts +52 -0
  236. package/tests/unit/project_service_test.ts +102 -0
  237. package/tests/unit/session_file_service_test.ts +160 -0
  238. package/tests/unit/tools/find_test.ts +40 -0
  239. package/tests/unit/tools/grep_test.ts +43 -0
  240. package/tests/unit/tools/list_dir_test.ts +32 -0
  241. package/tests/unit/tools/view_file_test.ts +32 -0
  242. package/tests/unit/tools/write_file_test.ts +44 -0
  243. package/tests/unit/user_input_test.ts +55 -0
  244. package/tests/unit/util_llm_test.ts +61 -0
  245. package/todo.md +29 -0
  246. package/tsconfig.json +33 -0
  247. package/vitest.config.ts +33 -0
@@ -0,0 +1,17 @@
1
+ import { type UserInput } from "../user_input.js";
2
+ import { type LlmModel } from "../model/model.js";
3
+ import { type Tool } from "../tools/tool.js";
4
+ import { type Skill } from "../skills/skill.js";
5
+ import { type AgentEvent } from "./agent_event.js";
6
+ export interface Agent {
7
+ id: string;
8
+ name: string;
9
+ description: string;
10
+ instructions: string;
11
+ model: LlmModel;
12
+ tools?: Tool[];
13
+ skills?: Skill[];
14
+ run(input: UserInput): AsyncGenerator<AgentEvent, void, unknown>;
15
+ abort(): Promise<void>;
16
+ getHistory(): AgentEvent[];
17
+ }
@@ -0,0 +1,6 @@
1
+ import {} from "../user_input.js";
2
+ import {} from "../model/model.js";
3
+ import {} from "../tools/tool.js";
4
+ import {} from "../skills/skill.js";
5
+ import {} from "./agent_event.js";
6
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAmB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,108 @@
1
+ import type { ContentPart } from "../content.js";
2
+ export declare enum AgentEventType {
3
+ START = "START",
4
+ END = "END",
5
+ MESSAGE = "MESSAGE",
6
+ TOOL_CALL = "TOOL_CALL",
7
+ TOOL_RESPONSE = "TOOL_RESPONSE",
8
+ USER_INPUT_REQUEST = "USER_INPUT_REQUEST",
9
+ USER_INPUT_RESPONSE = "USER_INPUT_RESPONSE",
10
+ ERROR = "ERROR",
11
+ USAGE = "USAGE",
12
+ COMPACTION = "COMPACTION"
13
+ }
14
+ export declare enum AgentEndReason {
15
+ COMPLETED = "completed",
16
+ FAILED = "failed",
17
+ ABORTED = "aborted",
18
+ MAX_TURNS = "max_turns",
19
+ MAX_BUDGET = "max_budget",
20
+ MAX_TIME = "max_time",
21
+ REFUSAL = "refusal",
22
+ USER_RESPONSE_PENDING = "user_response_pending"
23
+ }
24
+ export type AgentEvent = AgentStartEvent | AgentEndEvent | MessageEvent | ToolCallEvent | ToolResponseEvent | UserInputRequestEvent | UserInputResponseEvent | ErrorEvent | UsageEvent | CompactionEvent;
25
+ export interface BaseAgentEvent {
26
+ id: string;
27
+ streamId: string;
28
+ timestamp: string;
29
+ role: "user" | "agent";
30
+ parts?: ContentPart[];
31
+ partial?: boolean;
32
+ }
33
+ export interface AgentStartEvent extends BaseAgentEvent {
34
+ type: AgentEventType.START;
35
+ }
36
+ export declare function isAgentStartEvent(event: AgentEvent): event is AgentStartEvent;
37
+ export interface AgentEndEvent extends BaseAgentEvent {
38
+ type: AgentEventType.END;
39
+ reason: AgentEndReason;
40
+ userRequestIds?: string[];
41
+ data?: Record<string, unknown>;
42
+ }
43
+ export declare function isAgentEndEvent(event: AgentEvent): event is AgentEndEvent;
44
+ export interface MessageEvent extends BaseAgentEvent {
45
+ type: AgentEventType.MESSAGE;
46
+ parts: ContentPart[];
47
+ }
48
+ export declare function isMessageEvent(event: AgentEvent): event is MessageEvent;
49
+ export interface ToolCallEvent extends BaseAgentEvent {
50
+ type: AgentEventType.TOOL_CALL;
51
+ requestId: string;
52
+ name: string;
53
+ args: Record<string, unknown>;
54
+ }
55
+ export declare function isToolCallEvent(event: AgentEvent): event is ToolCallEvent;
56
+ export interface ToolResponseEvent extends BaseAgentEvent {
57
+ type: AgentEventType.TOOL_RESPONSE;
58
+ requestId: string;
59
+ name: string;
60
+ /** Multi-part content to be sent to the model. */
61
+ parts?: ContentPart[];
62
+ /** Structured data to be sent to the model. */
63
+ result: Record<string, unknown> | string;
64
+ /** The tool call encountered an error that will be sent to the model. */
65
+ error?: string;
66
+ }
67
+ export declare function isToolResponseEvent(event: AgentEvent): event is ToolResponseEvent;
68
+ export interface UserInputRequestEvent extends BaseAgentEvent {
69
+ type: AgentEventType.USER_INPUT_REQUEST;
70
+ title?: string;
71
+ /** A unique ID for the elicitation request, correlated in response. */
72
+ requestId: string;
73
+ /** The question / content to display to the user. */
74
+ message: string;
75
+ requestSchema?: Record<string, unknown>;
76
+ }
77
+ export declare function isUserInputRequestEvent(event: AgentEvent): event is UserInputRequestEvent;
78
+ export interface UserInputResponseEvent extends BaseAgentEvent {
79
+ type: AgentEventType.USER_INPUT_RESPONSE;
80
+ requestId: string;
81
+ data?: Record<string, unknown>;
82
+ action?: "accept" | "decline" | "cancel";
83
+ }
84
+ export declare function isUserInputResponseEvent(event: unknown): event is UserInputResponseEvent;
85
+ export interface ErrorEvent extends BaseAgentEvent {
86
+ type: AgentEventType.ERROR;
87
+ statusCode: number;
88
+ errorMessage?: string;
89
+ fatal?: boolean;
90
+ }
91
+ export declare function isErrorEvent(event: AgentEvent): event is ErrorEvent;
92
+ export interface UsageEvent extends BaseAgentEvent {
93
+ type: AgentEventType.USAGE;
94
+ model: string;
95
+ inputTokens?: number;
96
+ outputTokens?: number;
97
+ cachedTokens?: number;
98
+ cost?: {
99
+ amount: number;
100
+ currency?: string;
101
+ };
102
+ }
103
+ export declare function isUsageEvent(event: AgentEvent): event is UsageEvent;
104
+ export interface CompactionEvent extends BaseAgentEvent {
105
+ type: AgentEventType.COMPACTION;
106
+ strategy: "truncate" | "summarize";
107
+ }
108
+ export declare function isCompactionEvent(event: AgentEvent): event is CompactionEvent;
@@ -0,0 +1,56 @@
1
+ export var AgentEventType;
2
+ (function (AgentEventType) {
3
+ AgentEventType["START"] = "START";
4
+ AgentEventType["END"] = "END";
5
+ AgentEventType["MESSAGE"] = "MESSAGE";
6
+ AgentEventType["TOOL_CALL"] = "TOOL_CALL";
7
+ AgentEventType["TOOL_RESPONSE"] = "TOOL_RESPONSE";
8
+ AgentEventType["USER_INPUT_REQUEST"] = "USER_INPUT_REQUEST";
9
+ AgentEventType["USER_INPUT_RESPONSE"] = "USER_INPUT_RESPONSE";
10
+ AgentEventType["ERROR"] = "ERROR";
11
+ AgentEventType["USAGE"] = "USAGE";
12
+ AgentEventType["COMPACTION"] = "COMPACTION";
13
+ })(AgentEventType || (AgentEventType = {}));
14
+ export var AgentEndReason;
15
+ (function (AgentEndReason) {
16
+ AgentEndReason["COMPLETED"] = "completed";
17
+ AgentEndReason["FAILED"] = "failed";
18
+ AgentEndReason["ABORTED"] = "aborted";
19
+ AgentEndReason["MAX_TURNS"] = "max_turns";
20
+ AgentEndReason["MAX_BUDGET"] = "max_budget";
21
+ AgentEndReason["MAX_TIME"] = "max_time";
22
+ AgentEndReason["REFUSAL"] = "refusal";
23
+ AgentEndReason["USER_RESPONSE_PENDING"] = "user_response_pending";
24
+ })(AgentEndReason || (AgentEndReason = {}));
25
+ export function isAgentStartEvent(event) {
26
+ return event.type === AgentEventType.START;
27
+ }
28
+ export function isAgentEndEvent(event) {
29
+ return event.type === AgentEventType.END;
30
+ }
31
+ export function isMessageEvent(event) {
32
+ return event.type === AgentEventType.MESSAGE;
33
+ }
34
+ export function isToolCallEvent(event) {
35
+ return event.type === AgentEventType.TOOL_CALL;
36
+ }
37
+ export function isToolResponseEvent(event) {
38
+ return event.type === AgentEventType.TOOL_RESPONSE;
39
+ }
40
+ export function isUserInputRequestEvent(event) {
41
+ return event.type === AgentEventType.USER_INPUT_REQUEST;
42
+ }
43
+ export function isUserInputResponseEvent(event) {
44
+ return (event.type ===
45
+ AgentEventType.USER_INPUT_RESPONSE);
46
+ }
47
+ export function isErrorEvent(event) {
48
+ return event.type === AgentEventType.ERROR;
49
+ }
50
+ export function isUsageEvent(event) {
51
+ return event.type === AgentEventType.USAGE;
52
+ }
53
+ export function isCompactionEvent(event) {
54
+ return event.type === AgentEventType.COMPACTION;
55
+ }
56
+ //# sourceMappingURL=agent_event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent_event.js","sourceRoot":"","sources":["../../src/agent/agent_event.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,6BAAW,CAAA;IACX,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;IACvB,iDAA+B,CAAA;IAC/B,2DAAyC,CAAA;IACzC,6DAA2C,CAAA;IAC3C,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,2CAAyB,CAAA;AAC3B,CAAC,EAXW,cAAc,KAAd,cAAc,QAWzB;AAED,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;IACvB,2CAAyB,CAAA;IACzB,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,iEAA+C,CAAA;AACjD,CAAC,EATW,cAAc,KAAd,cAAc,QASzB;AA6BD,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC;AAC7C,CAAC;AASD,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,GAAG,CAAC;AAC3C,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,KAAiB;IAC9C,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,CAAC;AAC/C,CAAC;AASD,MAAM,UAAU,eAAe,CAAC,KAAiB;IAC/C,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,SAAS,CAAC;AACjD,CAAC;AAcD,MAAM,UAAU,mBAAmB,CACjC,KAAiB;IAEjB,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,aAAa,CAAC;AACrD,CAAC;AAYD,MAAM,UAAU,uBAAuB,CACrC,KAAiB;IAEjB,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,kBAAkB,CAAC;AAC1D,CAAC;AAUD,MAAM,UAAU,wBAAwB,CACtC,KAAc;IAEd,OAAO,CACJ,KAAgC,CAAC,IAAI;QACtC,cAAc,CAAC,mBAAmB,CACnC,CAAC;AACJ,CAAC;AASD,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC;AAC7C,CAAC;AAWD,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC;AAC7C,CAAC;AAOD,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,CAAC;AAClD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type AgentEvent } from "./agent_event.js";
2
+ import type { LlmResponse } from "../model/response.js";
3
+ import type { Content } from "../content.js";
4
+ export declare function getContentFromAgentEvent(agentEvent: AgentEvent): Content | undefined;
5
+ export declare function llmResponseToAgentEvents(response: LlmResponse): Partial<AgentEvent>[];
@@ -0,0 +1,66 @@
1
+ import { AgentEventType, isUsageEvent, isAgentStartEvent, isAgentEndEvent, } from "./agent_event.js";
2
+ export function getContentFromAgentEvent(agentEvent) {
3
+ if (isUsageEvent(agentEvent) ||
4
+ isAgentStartEvent(agentEvent) ||
5
+ isAgentEndEvent(agentEvent) ||
6
+ agentEvent.partial) {
7
+ return undefined;
8
+ }
9
+ return {
10
+ role: agentEvent.role,
11
+ parts: agentEvent.parts ?? [],
12
+ };
13
+ }
14
+ export function llmResponseToAgentEvents(response) {
15
+ if (response.errorCode || response.errorMessage) {
16
+ return [
17
+ {
18
+ type: AgentEventType.ERROR,
19
+ role: "agent",
20
+ errorMessage: response.errorMessage || "Unknown error",
21
+ statusCode: 500,
22
+ partial: response.partial,
23
+ },
24
+ ];
25
+ }
26
+ const events = [];
27
+ for (const part of response.content?.parts ?? []) {
28
+ if (part.type === "text" || part.type === "thought") {
29
+ const contentEvent = {
30
+ type: AgentEventType.MESSAGE,
31
+ role: "agent",
32
+ parts: [part],
33
+ partial: response.partial,
34
+ };
35
+ events.push(contentEvent);
36
+ continue;
37
+ }
38
+ if (part.type === "function_call") {
39
+ const contentEvent = {
40
+ type: AgentEventType.TOOL_CALL,
41
+ role: "agent",
42
+ parts: [part],
43
+ requestId: part.id,
44
+ name: part.name,
45
+ args: part.args,
46
+ partial: response.partial,
47
+ };
48
+ events.push(contentEvent);
49
+ continue;
50
+ }
51
+ if (part.type === "function_response") {
52
+ const contentEvent = {
53
+ type: AgentEventType.TOOL_RESPONSE,
54
+ role: "agent",
55
+ parts: [part],
56
+ requestId: part.id,
57
+ name: part.name,
58
+ result: part.response,
59
+ partial: response.partial,
60
+ };
61
+ events.push(contentEvent);
62
+ }
63
+ }
64
+ return events;
65
+ }
66
+ //# sourceMappingURL=agent_event_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent_event_utils.js","sourceRoot":"","sources":["../../src/agent/agent_event_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAI1B,MAAM,UAAU,wBAAwB,CACtC,UAAsB;IAEtB,IACE,YAAY,CAAC,UAAU,CAAC;QACxB,iBAAiB,CAAC,UAAU,CAAC;QAC7B,eAAe,CAAC,UAAU,CAAC;QAC3B,UAAU,CAAC,OAAO,EAClB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,QAAqB;IAErB,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAChD,OAAO;YACL;gBACE,IAAI,EAAE,cAAc,CAAC,KAAK;gBAC1B,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,eAAe;gBACtD,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACpD,MAAM,YAAY,GAAwB;gBACxC,IAAI,EAAE,cAAc,CAAC,OAAO;gBAC5B,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,YAAY,GAAwB;gBACxC,IAAI,EAAE,cAAc,CAAC,SAAS;gBAC9B,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,IAAI,CAAC;gBACb,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,YAAY,GAAwB;gBACxC,IAAI,EAAE,cAAc,CAAC,aAAa;gBAClC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC,IAAI,CAAC;gBACb,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,QAAQ;gBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { Agent } from "../agent.js";
2
+ import type { LlmModel } from "../../model/model.js";
3
+ import type { Skill } from "../../skills/skill.js";
4
+ import type { Tool } from "../../tools/tool.js";
5
+ import { type AgentEvent } from "../agent_event.js";
6
+ import { type UserInput } from "../../user_input.js";
7
+ import type { ThinkingConfig } from "../../model/request.js";
8
+ import { type ToolCallPolicy } from "../../tools/tool_call_policy.js";
9
+ import type { CompactionConfig } from "../../config/config.js";
10
+ export interface CliAgentOptions {
11
+ model: LlmModel;
12
+ history?: AgentEvent[];
13
+ skills?: Skill[];
14
+ thinkingConfig?: ThinkingConfig;
15
+ compactionConfig?: CompactionConfig;
16
+ toolPolicies?: Record<string, ToolCallPolicy>;
17
+ tools?: Tool[];
18
+ instructions?: string;
19
+ }
20
+ export declare class CliAgent implements Agent {
21
+ readonly id = "cli_agent";
22
+ readonly name = "Agent 007";
23
+ readonly description = "Agent 007";
24
+ readonly instructions: string;
25
+ readonly tools: Tool[];
26
+ readonly skills?: Skill[];
27
+ readonly model: LlmModel;
28
+ private streamId?;
29
+ private history;
30
+ private historyContent;
31
+ private thinkingConfig?;
32
+ private toolPolicies;
33
+ private compactionConfig?;
34
+ private abortController?;
35
+ constructor(options: CliAgentOptions);
36
+ run(userInput: UserInput): AsyncGenerator<AgentEvent, void, unknown>;
37
+ private runInternal;
38
+ private createEvent;
39
+ getHistory(): AgentEvent[];
40
+ abort(): Promise<void>;
41
+ }
@@ -0,0 +1,324 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import * as fs from "node:fs/promises";
3
+ import { AgentEventType, AgentEndReason, isUserInputResponseEvent, } from "../agent_event.js";
4
+ import { isUserCommand, toContentParts, UserCommandType, } from "../../user_input.js";
5
+ import { getContentFromAgentEvent, llmResponseToAgentEvents, } from "../agent_event_utils.js";
6
+ import { logger } from "../../logger.js";
7
+ import { CLI_AGENT_SYSTEM_PROMPT } from "./system_prompt.js";
8
+ import { BUILD_IN_TOOLS } from "../../tools/build_in/index.js";
9
+ import { PlannerAgent } from "../planner_agent/planner_agent.js";
10
+ import { DEFAULT_POLICY, } from "../../tools/tool_call_policy.js";
11
+ import { BasicRequestProcessor } from "../request_processor/basic_request_processor.js";
12
+ import { CompactionProcessor } from "../request_processor/compaction_processor.js";
13
+ export class CliAgent {
14
+ constructor(options) {
15
+ this.id = "cli_agent";
16
+ this.name = "Agent 007";
17
+ this.description = "Agent 007";
18
+ this.history = [];
19
+ this.historyContent = [];
20
+ this.model = options.model;
21
+ this.thinkingConfig = options.thinkingConfig;
22
+ this.skills = options.skills;
23
+ this.history = options.history || [];
24
+ this.historyContent = this.history
25
+ .map((c) => getContentFromAgentEvent(c))
26
+ .filter(Boolean);
27
+ this.toolPolicies = options.toolPolicies || {};
28
+ this.tools = options.tools || BUILD_IN_TOOLS;
29
+ this.compactionConfig = options.compactionConfig;
30
+ this.instructions = options.instructions || CLI_AGENT_SYSTEM_PROMPT;
31
+ }
32
+ async *run(userInput) {
33
+ for await (const agentEvent of this.runInternal(userInput)) {
34
+ this.history.push(agentEvent);
35
+ const content = getContentFromAgentEvent(agentEvent);
36
+ if (content) {
37
+ this.historyContent.push(content);
38
+ }
39
+ yield agentEvent;
40
+ }
41
+ }
42
+ async *runInternal(userInput) {
43
+ if (isUserCommand(userInput)) {
44
+ if (userInput.command === UserCommandType.PLAN) {
45
+ const planner = new PlannerAgent({
46
+ model: this.model,
47
+ tools: this.tools,
48
+ skills: this.skills,
49
+ });
50
+ yield* planner.run(userInput.task);
51
+ }
52
+ return;
53
+ }
54
+ logger.debug("[CliAgent] runInternal started");
55
+ const lastEvent = this.history[this.history.length - 1];
56
+ let skipInitialEvents = false;
57
+ if (lastEvent && lastEvent.type === AgentEventType.USER_INPUT_REQUEST) {
58
+ logger.debug("[CliAgent] Resuming from USER_INPUT_REQUEST");
59
+ this.streamId = lastEvent.streamId;
60
+ skipInitialEvents = true;
61
+ const requestId = lastEvent.requestId;
62
+ if (lastEvent.requestSchema?.type === "plan_approval") {
63
+ const isAccepted = isUserInputResponseEvent(userInput) && userInput.action === "accept";
64
+ if (isAccepted) {
65
+ const planFilePath = lastEvent.requestSchema
66
+ .planFilePath;
67
+ try {
68
+ const planContent = await fs.readFile(planFilePath, "utf-8");
69
+ yield this.createEvent(AgentEventType.MESSAGE, {
70
+ role: "user",
71
+ parts: [
72
+ {
73
+ type: "text",
74
+ text: `Plan approved. Please execute the following plan:\n\n${planContent}`,
75
+ },
76
+ ],
77
+ });
78
+ }
79
+ catch (error) {
80
+ logger.error(`Failed to read plan file: ${error.message}`);
81
+ yield this.createEvent(AgentEventType.MESSAGE, {
82
+ role: "user",
83
+ parts: [
84
+ {
85
+ type: "text",
86
+ text: `Plan approved, but failed to read plan file: ${error.message}. Please proceed if you know the plan.`,
87
+ },
88
+ ],
89
+ });
90
+ }
91
+ }
92
+ else {
93
+ yield this.createEvent(AgentEventType.MESSAGE, {
94
+ role: "user",
95
+ parts: [{ type: "text", text: "Plan declined." }],
96
+ });
97
+ }
98
+ }
99
+ else {
100
+ const toolCall = this.history.find((e) => e.type === AgentEventType.TOOL_CALL && e.requestId === requestId);
101
+ if (toolCall) {
102
+ const isAccepted = isUserInputResponseEvent(userInput) &&
103
+ userInput.action === "accept";
104
+ if (isAccepted) {
105
+ const tool = this.tools.find((t) => t.name === toolCall.name);
106
+ if (tool) {
107
+ try {
108
+ logger.debug(`[CliAgent] Executing tool ${toolCall.name} after confirmation`);
109
+ const result = await tool.execute(toolCall.args);
110
+ yield this.createEvent(AgentEventType.TOOL_RESPONSE, {
111
+ role: "user",
112
+ requestId: toolCall.requestId,
113
+ name: toolCall.name,
114
+ result: result,
115
+ parts: [
116
+ {
117
+ type: "function_response",
118
+ id: toolCall.requestId,
119
+ name: toolCall.name,
120
+ response: typeof result === "object"
121
+ ? result
122
+ : { result },
123
+ },
124
+ ],
125
+ });
126
+ }
127
+ catch (error) {
128
+ logger.error(`[CliAgent] Tool execution failed: ${error.message}`);
129
+ yield this.createEvent(AgentEventType.TOOL_RESPONSE, {
130
+ role: "user",
131
+ requestId: toolCall.requestId,
132
+ name: toolCall.name,
133
+ error: error.message,
134
+ result: {},
135
+ parts: [
136
+ {
137
+ type: "function_response",
138
+ id: toolCall.requestId,
139
+ name: toolCall.name,
140
+ response: { error: error.message },
141
+ },
142
+ ],
143
+ });
144
+ }
145
+ }
146
+ }
147
+ else {
148
+ logger.debug(`[CliAgent] Tool ${toolCall.name} execution declined by user`);
149
+ yield this.createEvent(AgentEventType.TOOL_RESPONSE, {
150
+ role: "user",
151
+ requestId: toolCall.requestId,
152
+ name: toolCall.name,
153
+ error: "User declined tool execution",
154
+ result: {},
155
+ parts: [
156
+ {
157
+ type: "function_response",
158
+ id: toolCall.requestId,
159
+ name: toolCall.name,
160
+ response: { error: "User declined tool execution" },
161
+ },
162
+ ],
163
+ });
164
+ }
165
+ }
166
+ else {
167
+ if (isUserInputResponseEvent(userInput)) {
168
+ yield this.createEvent(userInput.type, userInput);
169
+ }
170
+ }
171
+ }
172
+ }
173
+ if (!skipInitialEvents) {
174
+ const userContent = toContentParts(userInput);
175
+ this.abortController = new AbortController();
176
+ this.streamId = randomUUID();
177
+ yield this.createEvent(AgentEventType.START);
178
+ yield this.createEvent(AgentEventType.MESSAGE, {
179
+ role: "user",
180
+ parts: userContent,
181
+ });
182
+ }
183
+ let continueTurn = true;
184
+ while (continueTurn) {
185
+ const basicProcessor = new BasicRequestProcessor({
186
+ agentName: this.name,
187
+ description: this.description,
188
+ instructions: this.instructions,
189
+ tools: this.tools,
190
+ skills: this.skills,
191
+ thinkingConfig: this.thinkingConfig,
192
+ });
193
+ const compactionProcessor = new CompactionProcessor({
194
+ model: this.model,
195
+ compactionConfig: this.compactionConfig,
196
+ requestBuilderOptions: {
197
+ agentName: this.name,
198
+ description: this.description,
199
+ instructions: this.instructions,
200
+ tools: this.tools,
201
+ skills: this.skills,
202
+ thinkingConfig: this.thinkingConfig,
203
+ },
204
+ streamId: this.streamId,
205
+ });
206
+ let state = {
207
+ historyContent: this.historyContent,
208
+ events: [],
209
+ };
210
+ state = await basicProcessor.process(state);
211
+ state = await compactionProcessor.process(state);
212
+ this.historyContent = state.historyContent;
213
+ for (const event of state.events) {
214
+ yield event;
215
+ }
216
+ const llmRequest = state.llmRequest;
217
+ if (!llmRequest) {
218
+ throw new Error("LlmRequest is missing after processors");
219
+ }
220
+ logger.debug("[CliAgent] calling model.run");
221
+ const toolCalls = [];
222
+ for await (const modelResponse of this.model.run(llmRequest, {
223
+ stream: true,
224
+ abortSignal: this.abortController?.signal,
225
+ })) {
226
+ for (const agentEvent of llmResponseToAgentEvents(modelResponse)) {
227
+ logger.debug("[CliAgent] yielding event:", agentEvent.type);
228
+ yield this.createEvent(agentEvent.type, agentEvent);
229
+ if (agentEvent.type === AgentEventType.TOOL_CALL &&
230
+ !agentEvent.partial) {
231
+ toolCalls.push(agentEvent);
232
+ }
233
+ }
234
+ }
235
+ if (toolCalls.length === 0) {
236
+ continueTurn = false;
237
+ break;
238
+ }
239
+ for (const toolCall of toolCalls) {
240
+ const tool = this.tools.find((t) => t.name === toolCall.name);
241
+ if (!tool) {
242
+ logger.error(`[CliAgent] Tool not found: ${toolCall.name}`);
243
+ yield this.createEvent(AgentEventType.TOOL_RESPONSE, {
244
+ role: "user",
245
+ requestId: toolCall.requestId,
246
+ name: toolCall.name,
247
+ error: `Tool ${toolCall.name} not found`,
248
+ result: {},
249
+ });
250
+ continue;
251
+ }
252
+ const policy = this.toolPolicies[toolCall.name] || DEFAULT_POLICY;
253
+ if (policy.confirmationRequired) {
254
+ logger.debug(`[CliAgent] Tool ${toolCall.name} requires confirmation`);
255
+ yield this.createEvent(AgentEventType.USER_INPUT_REQUEST, {
256
+ role: "agent",
257
+ requestId: toolCall.requestId,
258
+ message: `Do you want to allow execution of tool ${toolCall.name}?`,
259
+ });
260
+ return;
261
+ }
262
+ try {
263
+ logger.debug(`[CliAgent] Executing tool ${toolCall.name}`);
264
+ const result = await tool.execute(toolCall.args);
265
+ yield this.createEvent(AgentEventType.TOOL_RESPONSE, {
266
+ role: "user",
267
+ requestId: toolCall.requestId,
268
+ name: toolCall.name,
269
+ result: result,
270
+ parts: [
271
+ {
272
+ type: "function_response",
273
+ id: toolCall.requestId,
274
+ name: toolCall.name,
275
+ response: typeof result === "object"
276
+ ? result
277
+ : { result },
278
+ },
279
+ ],
280
+ });
281
+ }
282
+ catch (error) {
283
+ logger.error(`[CliAgent] Tool execution failed: ${error.message}`);
284
+ yield this.createEvent(AgentEventType.TOOL_RESPONSE, {
285
+ role: "user",
286
+ requestId: toolCall.requestId,
287
+ name: toolCall.name,
288
+ error: error.message,
289
+ result: {},
290
+ parts: [
291
+ {
292
+ type: "function_response",
293
+ id: toolCall.requestId,
294
+ name: toolCall.name,
295
+ response: { error: error.message },
296
+ },
297
+ ],
298
+ });
299
+ }
300
+ }
301
+ }
302
+ yield this.createEvent(AgentEventType.END, {
303
+ role: "agent",
304
+ type: AgentEventType.END,
305
+ reason: AgentEndReason.COMPLETED,
306
+ });
307
+ }
308
+ createEvent(type, data = {}) {
309
+ return {
310
+ type,
311
+ id: randomUUID(),
312
+ streamId: this.streamId,
313
+ timestamp: new Date().toISOString(),
314
+ ...data,
315
+ };
316
+ }
317
+ getHistory() {
318
+ return [...this.history];
319
+ }
320
+ async abort() {
321
+ this.abortController?.abort();
322
+ }
323
+ }
324
+ //# sourceMappingURL=cli_agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli_agent.js","sourceRoot":"","sources":["../../../src/agent/cli_agent/cli_agent.ts"],"names":[],"mappings":"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"}