background-agents 0.1.2 → 1.0.2

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 (236) hide show
  1. package/README.md +46 -297
  2. package/app/assets/icon.png +0 -0
  3. package/app/assets/tray-icon.png +0 -0
  4. package/app/assets/tray-icon.svg +4 -0
  5. package/app/dist/main.js +932 -0
  6. package/app/dist/preload.cjs +70 -0
  7. package/app/package.json +6 -0
  8. package/bin/background-agents.js +298 -0
  9. package/lib/ui.js +110 -0
  10. package/package.json +33 -57
  11. package/dist/agents/claude/index.d.ts +0 -11
  12. package/dist/agents/claude/index.d.ts.map +0 -1
  13. package/dist/agents/claude/index.js +0 -78
  14. package/dist/agents/claude/index.js.map +0 -1
  15. package/dist/agents/claude/parser.d.ts +0 -16
  16. package/dist/agents/claude/parser.d.ts.map +0 -1
  17. package/dist/agents/claude/parser.js +0 -87
  18. package/dist/agents/claude/parser.js.map +0 -1
  19. package/dist/agents/claude/tools.d.ts +0 -7
  20. package/dist/agents/claude/tools.d.ts.map +0 -1
  21. package/dist/agents/claude/tools.js +0 -15
  22. package/dist/agents/claude/tools.js.map +0 -1
  23. package/dist/agents/codex/index.d.ts +0 -11
  24. package/dist/agents/codex/index.d.ts.map +0 -1
  25. package/dist/agents/codex/index.js +0 -60
  26. package/dist/agents/codex/index.js.map +0 -1
  27. package/dist/agents/codex/parser.d.ts +0 -12
  28. package/dist/agents/codex/parser.d.ts.map +0 -1
  29. package/dist/agents/codex/parser.js +0 -108
  30. package/dist/agents/codex/parser.js.map +0 -1
  31. package/dist/agents/codex/tools.d.ts +0 -11
  32. package/dist/agents/codex/tools.d.ts.map +0 -1
  33. package/dist/agents/codex/tools.js +0 -40
  34. package/dist/agents/codex/tools.js.map +0 -1
  35. package/dist/agents/eliza/bundle-content.d.ts +0 -6
  36. package/dist/agents/eliza/bundle-content.d.ts.map +0 -1
  37. package/dist/agents/eliza/bundle-content.js +0 -7
  38. package/dist/agents/eliza/bundle-content.js.map +0 -1
  39. package/dist/agents/eliza/cli.bundle.js +0 -579
  40. package/dist/agents/eliza/cli.d.ts +0 -10
  41. package/dist/agents/eliza/cli.d.ts.map +0 -1
  42. package/dist/agents/eliza/cli.js +0 -342
  43. package/dist/agents/eliza/cli.js.map +0 -1
  44. package/dist/agents/eliza/index.d.ts +0 -22
  45. package/dist/agents/eliza/index.d.ts.map +0 -1
  46. package/dist/agents/eliza/index.js +0 -54
  47. package/dist/agents/eliza/index.js.map +0 -1
  48. package/dist/agents/eliza/parser.d.ts +0 -16
  49. package/dist/agents/eliza/parser.d.ts.map +0 -1
  50. package/dist/agents/eliza/parser.js +0 -67
  51. package/dist/agents/eliza/parser.js.map +0 -1
  52. package/dist/agents/eliza/patterns.d.ts +0 -41
  53. package/dist/agents/eliza/patterns.d.ts.map +0 -1
  54. package/dist/agents/eliza/patterns.js +0 -259
  55. package/dist/agents/eliza/patterns.js.map +0 -1
  56. package/dist/agents/eliza/tools.d.ts +0 -7
  57. package/dist/agents/eliza/tools.d.ts.map +0 -1
  58. package/dist/agents/eliza/tools.js +0 -14
  59. package/dist/agents/eliza/tools.js.map +0 -1
  60. package/dist/agents/gemini/index.d.ts +0 -11
  61. package/dist/agents/gemini/index.d.ts.map +0 -1
  62. package/dist/agents/gemini/index.js +0 -46
  63. package/dist/agents/gemini/index.js.map +0 -1
  64. package/dist/agents/gemini/parser.d.ts +0 -31
  65. package/dist/agents/gemini/parser.d.ts.map +0 -1
  66. package/dist/agents/gemini/parser.js +0 -106
  67. package/dist/agents/gemini/parser.js.map +0 -1
  68. package/dist/agents/gemini/tools.d.ts +0 -7
  69. package/dist/agents/gemini/tools.d.ts.map +0 -1
  70. package/dist/agents/gemini/tools.js +0 -23
  71. package/dist/agents/gemini/tools.js.map +0 -1
  72. package/dist/agents/goose/index.d.ts +0 -11
  73. package/dist/agents/goose/index.d.ts.map +0 -1
  74. package/dist/agents/goose/index.js +0 -73
  75. package/dist/agents/goose/index.js.map +0 -1
  76. package/dist/agents/goose/parser.d.ts +0 -24
  77. package/dist/agents/goose/parser.d.ts.map +0 -1
  78. package/dist/agents/goose/parser.js +0 -86
  79. package/dist/agents/goose/parser.js.map +0 -1
  80. package/dist/agents/goose/tools.d.ts +0 -10
  81. package/dist/agents/goose/tools.d.ts.map +0 -1
  82. package/dist/agents/goose/tools.js +0 -30
  83. package/dist/agents/goose/tools.js.map +0 -1
  84. package/dist/agents/index.d.ts +0 -27
  85. package/dist/agents/index.d.ts.map +0 -1
  86. package/dist/agents/index.js +0 -46
  87. package/dist/agents/index.js.map +0 -1
  88. package/dist/agents/opencode/index.d.ts +0 -12
  89. package/dist/agents/opencode/index.d.ts.map +0 -1
  90. package/dist/agents/opencode/index.js +0 -53
  91. package/dist/agents/opencode/index.js.map +0 -1
  92. package/dist/agents/opencode/parser.d.ts +0 -15
  93. package/dist/agents/opencode/parser.d.ts.map +0 -1
  94. package/dist/agents/opencode/parser.js +0 -71
  95. package/dist/agents/opencode/parser.js.map +0 -1
  96. package/dist/agents/opencode/tools.d.ts +0 -7
  97. package/dist/agents/opencode/tools.d.ts.map +0 -1
  98. package/dist/agents/opencode/tools.js +0 -10
  99. package/dist/agents/opencode/tools.js.map +0 -1
  100. package/dist/agents/openhands/index.d.ts +0 -17
  101. package/dist/agents/openhands/index.d.ts.map +0 -1
  102. package/dist/agents/openhands/index.js +0 -67
  103. package/dist/agents/openhands/index.js.map +0 -1
  104. package/dist/agents/openhands/parser.d.ts +0 -16
  105. package/dist/agents/openhands/parser.d.ts.map +0 -1
  106. package/dist/agents/openhands/parser.js +0 -93
  107. package/dist/agents/openhands/parser.js.map +0 -1
  108. package/dist/agents/openhands/tools.d.ts +0 -7
  109. package/dist/agents/openhands/tools.d.ts.map +0 -1
  110. package/dist/agents/openhands/tools.js +0 -24
  111. package/dist/agents/openhands/tools.js.map +0 -1
  112. package/dist/agents/pi/index.d.ts +0 -14
  113. package/dist/agents/pi/index.d.ts.map +0 -1
  114. package/dist/agents/pi/index.js +0 -54
  115. package/dist/agents/pi/index.js.map +0 -1
  116. package/dist/agents/pi/parser.d.ts +0 -21
  117. package/dist/agents/pi/parser.d.ts.map +0 -1
  118. package/dist/agents/pi/parser.js +0 -91
  119. package/dist/agents/pi/parser.js.map +0 -1
  120. package/dist/agents/pi/tools.d.ts +0 -8
  121. package/dist/agents/pi/tools.d.ts.map +0 -1
  122. package/dist/agents/pi/tools.js +0 -16
  123. package/dist/agents/pi/tools.js.map +0 -1
  124. package/dist/agents/picocode/index.d.ts +0 -18
  125. package/dist/agents/picocode/index.d.ts.map +0 -1
  126. package/dist/agents/picocode/index.js +0 -68
  127. package/dist/agents/picocode/index.js.map +0 -1
  128. package/dist/agents/picocode/parser.d.ts +0 -19
  129. package/dist/agents/picocode/parser.d.ts.map +0 -1
  130. package/dist/agents/picocode/parser.js +0 -104
  131. package/dist/agents/picocode/parser.js.map +0 -1
  132. package/dist/agents/picocode/tools.d.ts +0 -9
  133. package/dist/agents/picocode/tools.d.ts.map +0 -1
  134. package/dist/agents/picocode/tools.js +0 -27
  135. package/dist/agents/picocode/tools.js.map +0 -1
  136. package/dist/background/index.d.ts +0 -6
  137. package/dist/background/index.d.ts.map +0 -1
  138. package/dist/background/index.js +0 -5
  139. package/dist/background/index.js.map +0 -1
  140. package/dist/background/session.d.ts +0 -47
  141. package/dist/background/session.d.ts.map +0 -1
  142. package/dist/background/session.js +0 -481
  143. package/dist/background/session.js.map +0 -1
  144. package/dist/background/types.d.ts +0 -55
  145. package/dist/background/types.d.ts.map +0 -1
  146. package/dist/background/types.js +0 -5
  147. package/dist/background/types.js.map +0 -1
  148. package/dist/core/agent.d.ts +0 -95
  149. package/dist/core/agent.d.ts.map +0 -1
  150. package/dist/core/agent.js +0 -8
  151. package/dist/core/agent.js.map +0 -1
  152. package/dist/core/index.d.ts +0 -7
  153. package/dist/core/index.d.ts.map +0 -1
  154. package/dist/core/index.js +0 -6
  155. package/dist/core/index.js.map +0 -1
  156. package/dist/core/registry.d.ts +0 -48
  157. package/dist/core/registry.d.ts.map +0 -1
  158. package/dist/core/registry.js +0 -68
  159. package/dist/core/registry.js.map +0 -1
  160. package/dist/core/tools.d.ts +0 -31
  161. package/dist/core/tools.d.ts.map +0 -1
  162. package/dist/core/tools.js +0 -82
  163. package/dist/core/tools.js.map +0 -1
  164. package/dist/debug.d.ts +0 -7
  165. package/dist/debug.d.ts.map +0 -1
  166. package/dist/debug.js +0 -19
  167. package/dist/debug.js.map +0 -1
  168. package/dist/factory.d.ts +0 -28
  169. package/dist/factory.d.ts.map +0 -1
  170. package/dist/factory.js +0 -44
  171. package/dist/factory.js.map +0 -1
  172. package/dist/index.d.ts +0 -48
  173. package/dist/index.d.ts.map +0 -1
  174. package/dist/index.js +0 -62
  175. package/dist/index.js.map +0 -1
  176. package/dist/providers/base.d.ts +0 -187
  177. package/dist/providers/base.d.ts.map +0 -1
  178. package/dist/providers/base.js +0 -619
  179. package/dist/providers/base.js.map +0 -1
  180. package/dist/providers/claude.d.ts +0 -14
  181. package/dist/providers/claude.d.ts.map +0 -1
  182. package/dist/providers/claude.js +0 -122
  183. package/dist/providers/claude.js.map +0 -1
  184. package/dist/providers/codex.d.ts +0 -14
  185. package/dist/providers/codex.d.ts.map +0 -1
  186. package/dist/providers/codex.js +0 -160
  187. package/dist/providers/codex.js.map +0 -1
  188. package/dist/providers/gemini.d.ts +0 -16
  189. package/dist/providers/gemini.d.ts.map +0 -1
  190. package/dist/providers/gemini.js +0 -101
  191. package/dist/providers/gemini.js.map +0 -1
  192. package/dist/providers/index.d.ts +0 -6
  193. package/dist/providers/index.d.ts.map +0 -1
  194. package/dist/providers/index.js +0 -6
  195. package/dist/providers/index.js.map +0 -1
  196. package/dist/providers/opencode.d.ts +0 -14
  197. package/dist/providers/opencode.d.ts.map +0 -1
  198. package/dist/providers/opencode.js +0 -100
  199. package/dist/providers/opencode.js.map +0 -1
  200. package/dist/sandbox/daytona.d.ts +0 -8
  201. package/dist/sandbox/daytona.d.ts.map +0 -1
  202. package/dist/sandbox/daytona.js +0 -181
  203. package/dist/sandbox/daytona.js.map +0 -1
  204. package/dist/sandbox/index.d.ts +0 -14
  205. package/dist/sandbox/index.d.ts.map +0 -1
  206. package/dist/sandbox/index.js +0 -15
  207. package/dist/sandbox/index.js.map +0 -1
  208. package/dist/session.d.ts +0 -75
  209. package/dist/session.d.ts.map +0 -1
  210. package/dist/session.js +0 -117
  211. package/dist/session.js.map +0 -1
  212. package/dist/types/events.d.ts +0 -114
  213. package/dist/types/events.d.ts.map +0 -1
  214. package/dist/types/events.js +0 -50
  215. package/dist/types/events.js.map +0 -1
  216. package/dist/types/index.d.ts +0 -3
  217. package/dist/types/index.d.ts.map +0 -1
  218. package/dist/types/index.js +0 -3
  219. package/dist/types/index.js.map +0 -1
  220. package/dist/types/provider.d.ts +0 -67
  221. package/dist/types/provider.d.ts.map +0 -1
  222. package/dist/types/provider.js +0 -5
  223. package/dist/types/provider.js.map +0 -1
  224. package/dist/utils/index.d.ts +0 -3
  225. package/dist/utils/index.d.ts.map +0 -1
  226. package/dist/utils/index.js +0 -3
  227. package/dist/utils/index.js.map +0 -1
  228. package/dist/utils/install.d.ts +0 -37
  229. package/dist/utils/install.d.ts.map +0 -1
  230. package/dist/utils/install.js +0 -122
  231. package/dist/utils/install.js.map +0 -1
  232. package/dist/utils/json.d.ts +0 -8
  233. package/dist/utils/json.d.ts.map +0 -1
  234. package/dist/utils/json.js +0 -15
  235. package/dist/utils/json.js.map +0 -1
  236. package/src/index.ts +0 -156
@@ -1,259 +0,0 @@
1
- /**
2
- * ELIZA pattern matching - Classic therapist bot patterns
3
- *
4
- * All responses are deterministic based on input hash, not random.
5
- */
6
- /**
7
- * Classic ELIZA patterns with therapeutic file operations
8
- */
9
- export const ELIZA_PATTERNS = [
10
- // Greeting patterns
11
- {
12
- pattern: /^(hello|hi|hey|greetings|good morning|good afternoon|good evening)[\s!.,?]*$/i,
13
- responses: [
14
- "Hello. How are you feeling today?",
15
- "Hi there. What brings you to therapy?",
16
- "Greetings. Tell me what's on your mind.",
17
- "Hello. Please tell me what's troubling you.",
18
- ],
19
- },
20
- // "I am" patterns
21
- {
22
- pattern: /i am (.*)/i,
23
- responses: [
24
- "Why do you say you are {0}?",
25
- "How long have you been {0}?",
26
- "Do you believe it is normal to be {0}?",
27
- "Do you enjoy being {0}?",
28
- ],
29
- },
30
- // "I feel" patterns - triggers file writing
31
- {
32
- pattern: /i feel (.*)/i,
33
- responses: [
34
- "Tell me more about feeling {0}.",
35
- "Do you often feel {0}?",
36
- "What makes you feel {0}?",
37
- "When did you first notice feeling {0}?",
38
- ],
39
- fileAction: {
40
- type: "write",
41
- fileNameTemplate: "eliza_feeling_journal.txt",
42
- contentTemplate: "Session Note\n============\nPatient reported feeling: {0}\nDate: {date}\n\nThis feeling deserves further exploration in future sessions.\n\n",
43
- },
44
- },
45
- // Family patterns
46
- {
47
- pattern: /my (mother|father|mom|dad|family|parents|sister|brother) (.*)/i,
48
- responses: [
49
- "Tell me more about your {0}.",
50
- "How does that make you feel about your {0}?",
51
- "What else comes to mind when you think of your {0}?",
52
- "How is your relationship with your {0}?",
53
- ],
54
- },
55
- // Want/need patterns
56
- {
57
- pattern: /i (want|need) (.*)/i,
58
- responses: [
59
- "Why do you {0} {1}?",
60
- "What would it mean if you got {1}?",
61
- "Suppose you got {1} - what then?",
62
- "What is stopping you from getting {1}?",
63
- ],
64
- },
65
- // Can't patterns
66
- {
67
- pattern: /i can'?t (.*)/i,
68
- responses: [
69
- "What makes you think you can't {0}?",
70
- "Have you tried to {0}?",
71
- "Perhaps you could {0} if you tried.",
72
- "What would happen if you could {0}?",
73
- ],
74
- },
75
- // Because patterns
76
- {
77
- pattern: /because (.*)/i,
78
- responses: [
79
- "Is that the real reason?",
80
- "What other reasons might there be?",
81
- "Does that reason seem to explain anything else?",
82
- "Are you sure that's why?",
83
- ],
84
- },
85
- // Sorry patterns
86
- {
87
- pattern: /sorry/i,
88
- responses: [
89
- "There's no need to apologize.",
90
- "Apologies aren't necessary here.",
91
- "What feelings does apologizing bring up?",
92
- "Why do you feel the need to apologize?",
93
- ],
94
- },
95
- // Yes patterns
96
- {
97
- pattern: /^yes[\s!.,?]*$/i,
98
- responses: [
99
- "You seem quite sure.",
100
- "Tell me more about that.",
101
- "I see. Please continue.",
102
- "And how does that make you feel?",
103
- ],
104
- },
105
- // No patterns
106
- {
107
- pattern: /^no[\s!.,?]*$/i,
108
- responses: [
109
- "Why not?",
110
- "Are you sure about that?",
111
- "You seem quite certain.",
112
- "Can you tell me more about why not?",
113
- ],
114
- },
115
- // Dream patterns
116
- {
117
- pattern: /dream(s|ed|ing)? (about |of )?(.*)/i,
118
- responses: [
119
- "What do you think that dream means?",
120
- "Dreams can be very revealing. Tell me more.",
121
- "Do you often dream about {2}?",
122
- "How did that dream make you feel?",
123
- ],
124
- },
125
- // Think patterns
126
- {
127
- pattern: /i think (.*)/i,
128
- responses: [
129
- "Why do you think {0}?",
130
- "Do you really think so?",
131
- "But you're not sure {0}?",
132
- "What makes you think {0}?",
133
- ],
134
- },
135
- // Remember patterns
136
- {
137
- pattern: /i remember (.*)/i,
138
- responses: [
139
- "Why do you remember {0} now?",
140
- "What else do you remember?",
141
- "How does remembering {0} make you feel?",
142
- "Is that a significant memory for you?",
143
- ],
144
- },
145
- // File creation trigger - requires "file" or "note" keyword
146
- {
147
- pattern: /(?:create|make|write) (?:a )?(?:file|note) (?:called |named )?["']?([a-zA-Z0-9_\-\.]+)["']?/i,
148
- responses: ["I'll create that file for you as a therapeutic exercise."],
149
- fileAction: {
150
- type: "write",
151
- fileNameTemplate: "{0}",
152
- contentTemplate: "Therapeutic Note\n================\nCreated during ELIZA therapy session.\nDate: {date}\n\nUse this space to write your thoughts.\n",
153
- },
154
- },
155
- // File deletion trigger - requires "file" keyword to avoid matching general "delete" usage
156
- {
157
- pattern: /(?:delete|remove) (?:the )?file ["']?([a-zA-Z0-9_\-\.]+)["']?/i,
158
- responses: [
159
- "Sometimes letting go is therapeutic. I'll help you delete that.",
160
- ],
161
- fileAction: {
162
- type: "delete",
163
- fileNameTemplate: "{0}",
164
- },
165
- },
166
- // File reading trigger - requires "file" keyword
167
- {
168
- pattern: /(?:read|show|open) (?:the )?file ["']?([a-zA-Z0-9_\-\.]+)["']?/i,
169
- responses: ["Let me read that file for you."],
170
- fileAction: {
171
- type: "read",
172
- fileNameTemplate: "{0}",
173
- },
174
- },
175
- // Question patterns
176
- {
177
- pattern: /\?$/,
178
- responses: [
179
- "Why do you ask?",
180
- "What do you think?",
181
- "Does that question relate to your feelings?",
182
- "What answer would make you feel better?",
183
- ],
184
- },
185
- // Default fallback - must be last
186
- {
187
- pattern: /.*/,
188
- responses: [
189
- "Please tell me more.",
190
- "Can you elaborate on that?",
191
- "That's interesting. Please continue.",
192
- "I see. And how does that make you feel?",
193
- "Hmm. Let's explore that further.",
194
- "Go on.",
195
- "What does that suggest to you?",
196
- "I understand. Please continue.",
197
- ],
198
- },
199
- ];
200
- /**
201
- * Deterministic hash function for reproducible response selection.
202
- * Uses a simple djb2-like hash.
203
- */
204
- export function hashString(str) {
205
- let hash = 5381;
206
- for (let i = 0; i < str.length; i++) {
207
- hash = (hash << 5) + hash + str.charCodeAt(i);
208
- hash = hash & hash; // Convert to 32-bit integer
209
- }
210
- return Math.abs(hash);
211
- }
212
- /**
213
- * Substitute template placeholders with matched groups and date.
214
- */
215
- export function substituteTemplate(template, match) {
216
- if (!template)
217
- return "";
218
- let result = template;
219
- // Replace capture group placeholders {0}, {1}, etc.
220
- for (let i = 1; i < match.length; i++) {
221
- result = result.replace(new RegExp(`\\{${i - 1}\\}`, "g"), match[i] || "");
222
- }
223
- // Replace {date} placeholder
224
- result = result.replace(/\{date\}/g, new Date().toISOString());
225
- return result;
226
- }
227
- /**
228
- * Match input against ELIZA patterns and return deterministic response.
229
- */
230
- export function matchPattern(input) {
231
- const normalized = input.trim();
232
- for (const pattern of ELIZA_PATTERNS) {
233
- const match = normalized.match(pattern.pattern);
234
- if (match) {
235
- // Select response deterministically based on input hash
236
- const responseIndex = hashString(normalized) % pattern.responses.length;
237
- let response = pattern.responses[responseIndex];
238
- // Replace capture groups in response
239
- for (let i = 1; i < match.length; i++) {
240
- response = response.replace(new RegExp(`\\{${i - 1}\\}`, "g"), match[i] || "");
241
- }
242
- // Prepare file action if any
243
- let fileAction;
244
- if (pattern.fileAction) {
245
- const fileName = substituteTemplate(pattern.fileAction.fileNameTemplate, match).trim();
246
- const content = substituteTemplate(pattern.fileAction.contentTemplate, match);
247
- fileAction = {
248
- type: pattern.fileAction.type,
249
- fileName,
250
- content: content || undefined,
251
- };
252
- }
253
- return { response, fileAction };
254
- }
255
- }
256
- // Should never reach here due to fallback pattern, but just in case
257
- return { response: "Please tell me more." };
258
- }
259
- //# sourceMappingURL=patterns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/agents/eliza/patterns.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * ELIZA tool name mappings
3
- *
4
- * Maps ELIZA tool names (Claude-compatible) to canonical tool names.
5
- */
6
- export declare const ELIZA_TOOL_MAPPINGS: Record<string, string>;
7
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/agents/eliza/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOtD,CAAA"}
@@ -1,14 +0,0 @@
1
- /**
2
- * ELIZA tool name mappings
3
- *
4
- * Maps ELIZA tool names (Claude-compatible) to canonical tool names.
5
- */
6
- export const ELIZA_TOOL_MAPPINGS = {
7
- Write: "write",
8
- Read: "read",
9
- Bash: "shell",
10
- Edit: "edit",
11
- Glob: "glob",
12
- Grep: "grep",
13
- };
14
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/agents/eliza/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAA"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Google Gemini CLI Agent Definition
3
- */
4
- import type { AgentDefinition } from "../../core/agent";
5
- /**
6
- * Google Gemini CLI agent definition.
7
- *
8
- * Interacts with the Gemini CLI tool which outputs JSON lines.
9
- */
10
- export declare const geminiAgent: AgentDefinition;
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/gemini/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,kBAAkB,CAAA;AAKzB;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,eA4CzB,CAAA"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Google Gemini CLI Agent Definition
3
- */
4
- import { parseGeminiLine } from "./parser";
5
- import { GEMINI_TOOL_MAPPINGS } from "./tools";
6
- /**
7
- * Google Gemini CLI agent definition.
8
- *
9
- * Interacts with the Gemini CLI tool which outputs JSON lines.
10
- */
11
- export const geminiAgent = {
12
- name: "gemini",
13
- toolMappings: GEMINI_TOOL_MAPPINGS,
14
- capabilities: {
15
- supportsSystemPrompt: false,
16
- supportsResume: true,
17
- },
18
- buildCommand(options) {
19
- const args = [];
20
- // Stream JSON for event parsing
21
- args.push("--output-format", "stream-json");
22
- // Enable full tool access (shell, file writes, etc.) - safe in sandbox environment
23
- args.push("--yolo");
24
- // Add model if specified (e.g., "gemini-2.0-flash", "gemini-1.5-pro")
25
- if (options.model) {
26
- args.push("--model", options.model);
27
- }
28
- // Resume session if provided
29
- if (options.sessionId) {
30
- args.push("--resume", options.sessionId);
31
- }
32
- // Add prompt with -p flag if provided
33
- if (options.prompt) {
34
- args.push("-p", options.prompt);
35
- }
36
- return {
37
- cmd: "gemini",
38
- args,
39
- env: options.env,
40
- };
41
- },
42
- parse(line, context) {
43
- return parseGeminiLine(line, this.toolMappings, context);
44
- },
45
- };
46
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/gemini/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,IAAI,EAAE,QAAQ;IAEd,YAAY,EAAE,oBAAoB;IAElC,YAAY,EAAE;QACZ,oBAAoB,EAAE,KAAK;QAC3B,cAAc,EAAE,IAAI;KACrB;IAED,YAAY,CAAC,OAAmB;QAC9B,MAAM,IAAI,GAAa,EAAE,CAAA;QAEzB,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;QAE3C,mFAAmF;QACnF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEnB,sEAAsE;QACtE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1C,CAAC;QAED,sCAAsC;QACtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACjC,CAAC;QAED,OAAO;YACL,GAAG,EAAE,QAAQ;YACb,IAAI;YACJ,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAAqB;QACvC,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;CACF,CAAA"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Gemini CLI output parser
3
- *
4
- * Pure function for parsing Gemini CLI JSON output.
5
- * Note: Gemini requires stateful parsing for tool output buffering.
6
- *
7
- * Reference schema (from actual CLI output):
8
- * { type: "init", session_id }
9
- * { type: "message", role, content, delta? }
10
- * { type: "tool_use", tool_name, tool_id, parameters } ← tool starts
11
- * { type: "tool_result", tool_id, status, output? } ← tool ends
12
- * { type: "result", status, stats } ← turn end
13
- *
14
- * Legacy schema (older CLI versions — kept for compatibility):
15
- * { type: "assistant.delta", text }
16
- * { type: "tool.start", name, input? }
17
- * { type: "tool.delta", text }
18
- * { type: "tool.end" }
19
- * { type: "assistant.complete" }
20
- */
21
- import type { Event } from "../../types/events";
22
- import type { ParseContext } from "../../core/agent";
23
- /**
24
- * Parse a line of Gemini CLI output into event(s).
25
- *
26
- * Uses context.state for stateful tracking:
27
- * - pendingToolIds: Map<tool_id, true> — tracks tool_use events awaiting their tool_result
28
- * - toolOutputBuffer: string — legacy streaming buffer
29
- */
30
- export declare function parseGeminiLine(line: string, toolMappings: Record<string, string>, context: ParseContext): Event | Event[] | null;
31
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/agents/gemini/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AA6EpD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,EAAE,YAAY,GACpB,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,CAwFxB"}
@@ -1,106 +0,0 @@
1
- /**
2
- * Gemini CLI output parser
3
- *
4
- * Pure function for parsing Gemini CLI JSON output.
5
- * Note: Gemini requires stateful parsing for tool output buffering.
6
- *
7
- * Reference schema (from actual CLI output):
8
- * { type: "init", session_id }
9
- * { type: "message", role, content, delta? }
10
- * { type: "tool_use", tool_name, tool_id, parameters } ← tool starts
11
- * { type: "tool_result", tool_id, status, output? } ← tool ends
12
- * { type: "result", status, stats } ← turn end
13
- *
14
- * Legacy schema (older CLI versions — kept for compatibility):
15
- * { type: "assistant.delta", text }
16
- * { type: "tool.start", name, input? }
17
- * { type: "tool.delta", text }
18
- * { type: "tool.end" }
19
- * { type: "assistant.complete" }
20
- */
21
- import { createToolStartEvent, normalizeToolName } from "../../core/tools";
22
- import { safeJsonParse } from "../../utils/json";
23
- /**
24
- * Parse a line of Gemini CLI output into event(s).
25
- *
26
- * Uses context.state for stateful tracking:
27
- * - pendingToolIds: Map<tool_id, true> — tracks tool_use events awaiting their tool_result
28
- * - toolOutputBuffer: string — legacy streaming buffer
29
- */
30
- export function parseGeminiLine(line, toolMappings, context) {
31
- const json = safeJsonParse(line);
32
- if (!json) {
33
- return null;
34
- }
35
- // Session init
36
- if (json.type === "init") {
37
- return { type: "session", id: json.session_id };
38
- }
39
- // Assistant text delta (legacy format)
40
- if (json.type === "assistant.delta") {
41
- return { type: "token", text: json.text };
42
- }
43
- // Message event (current Gemini format) — text only, tool calls are separate
44
- if (json.type === "message") {
45
- if (json.role === "assistant" && json.content) {
46
- return { type: "token", text: json.content };
47
- }
48
- // Skip user messages
49
- return null;
50
- }
51
- // Result event — marks turn completion
52
- if (json.type === "result") {
53
- return { type: "end" };
54
- }
55
- // ── Current Gemini format: tool_use + tool_result ──────────────────────────
56
- // tool_use: the agent is invoking a tool.
57
- // We emit tool_start immediately, and stash the tool_id so we can pair the output.
58
- if (json.type === "tool_use") {
59
- const name = normalizeToolName(json.tool_name.toLowerCase(), toolMappings);
60
- // Track pending tool_id → tool event pairing in parse context
61
- if (!context.state.pendingToolIds) {
62
- context.state.pendingToolIds = {};
63
- }
64
- // Store the normalized name so tool_result can reference it (not strictly needed but aids debugging)
65
- ;
66
- context.state.pendingToolIds[json.tool_id] = name;
67
- return createToolStartEvent(name, json.parameters, toolMappings);
68
- }
69
- // tool_result: the tool invocation completed, contains stdout/stderr in output.
70
- // We pair it with the most recently started tool_use via tool_id.
71
- if (json.type === "tool_result") {
72
- // Clean up the tracked tool_id
73
- if (context.state.pendingToolIds) {
74
- delete context.state.pendingToolIds[json.tool_id];
75
- }
76
- const output = typeof json.output === "string" && json.output.trim()
77
- ? json.output.trim()
78
- : undefined;
79
- return { type: "tool_end", output };
80
- }
81
- // ── Legacy Gemini streaming format ────────────────────────────────────────
82
- // Tool start (legacy)
83
- if (json.type === "tool.start") {
84
- context.state.toolOutputBuffer = "";
85
- const name = normalizeToolName(json.name.toLowerCase(), toolMappings);
86
- return createToolStartEvent(name, json.input, toolMappings);
87
- }
88
- // Tool delta (streaming tool input or output)
89
- if (json.type === "tool.delta") {
90
- const buffer = context.state.toolOutputBuffer ?? "";
91
- context.state.toolOutputBuffer = buffer + json.text;
92
- return { type: "tool_delta", text: json.text };
93
- }
94
- // Tool end
95
- if (json.type === "tool.end") {
96
- const output = (context.state.toolOutputBuffer ?? "").trim() || undefined;
97
- context.state.toolOutputBuffer = "";
98
- return { type: "tool_end", output };
99
- }
100
- // Assistant complete (legacy format)
101
- if (json.type === "assistant.complete") {
102
- return { type: "end" };
103
- }
104
- return null;
105
- }
106
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/agents/gemini/parser.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Gemini tool name mappings
3
- *
4
- * Maps Gemini CLI tool names to canonical tool names.
5
- */
6
- export declare const GEMINI_TOOL_MAPPINGS: Record<string, string>;
7
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/agents/gemini/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgBvD,CAAA"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Gemini tool name mappings
3
- *
4
- * Maps Gemini CLI tool names to canonical tool names.
5
- */
6
- export const GEMINI_TOOL_MAPPINGS = {
7
- // Shell / command execution
8
- execute_code: "shell",
9
- run_command: "shell",
10
- run_shell_command: "shell",
11
- bash: "shell",
12
- // File operations
13
- write_file: "write",
14
- write_todos: "write",
15
- read_file: "read",
16
- apply_patch: "edit",
17
- replace: "edit",
18
- // Search
19
- glob_file_search: "glob",
20
- list_directory: "glob",
21
- grep_search: "grep",
22
- };
23
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/agents/gemini/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,4BAA4B;IAC5B,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,OAAO;IACpB,iBAAiB,EAAE,OAAO;IAC1B,IAAI,EAAE,OAAO;IACb,kBAAkB;IAClB,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,OAAO;IACpB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,MAAM;IACf,SAAS;IACT,gBAAgB,EAAE,MAAM;IACxB,cAAc,EAAE,MAAM;IACtB,WAAW,EAAE,MAAM;CACpB,CAAA"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Goose CLI Agent Definition
3
- */
4
- import type { AgentDefinition } from "../../core/agent";
5
- /**
6
- * Goose CLI agent definition.
7
- *
8
- * Interacts with the Goose CLI tool (Block's open source AI coding agent).
9
- */
10
- export declare const gooseAgent: AgentDefinition;
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agents/goose/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAyC,MAAM,kBAAkB,CAAA;AA2B9F;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,eAyDxB,CAAA"}
@@ -1,73 +0,0 @@
1
- /**
2
- * Goose CLI Agent Definition
3
- */
4
- import { parseGooseLine } from "./parser";
5
- import { GOOSE_TOOL_MAPPINGS } from "./tools";
6
- /**
7
- * Determine the goose provider and model based on the model name and environment.
8
- * Goose supports multiple providers: openai, anthropic, ollama, etc.
9
- */
10
- function getGooseProviderAndModel(model, env) {
11
- // If model contains "claude", use anthropic provider
12
- if (model?.toLowerCase().includes("claude")) {
13
- return { provider: "anthropic", model: model };
14
- }
15
- // If ANTHROPIC_API_KEY is set but not OPENAI_API_KEY, use anthropic
16
- if (env?.ANTHROPIC_API_KEY && !env?.OPENAI_API_KEY) {
17
- return { provider: "anthropic", model: model || "claude-sonnet-4-5" };
18
- }
19
- // Default to OpenAI provider
20
- return { provider: "openai", model: model || "gpt-4o" };
21
- }
22
- /**
23
- * Goose CLI agent definition.
24
- *
25
- * Interacts with the Goose CLI tool (Block's open source AI coding agent).
26
- */
27
- export const gooseAgent = {
28
- name: "goose",
29
- toolMappings: GOOSE_TOOL_MAPPINGS,
30
- capabilities: {
31
- supportsSystemPrompt: true,
32
- supportsResume: true,
33
- },
34
- buildCommand(options) {
35
- const gooseArgs = [];
36
- // Use run subcommand for non-interactive execution
37
- gooseArgs.push("run");
38
- // Enable JSON streaming output for machine-readable events
39
- gooseArgs.push("--output-format", "stream-json");
40
- // Determine provider and model based on model name and environment
41
- const { provider, model } = getGooseProviderAndModel(options.model, options.env);
42
- gooseArgs.push("--provider", provider);
43
- gooseArgs.push("--model", model);
44
- // Add prompt as text input
45
- if (options.prompt) {
46
- gooseArgs.push("--text", options.prompt);
47
- }
48
- // Apply system prompt via --system flag when provided
49
- if (options.systemPrompt) {
50
- gooseArgs.push("--system", options.systemPrompt);
51
- }
52
- // Session handling: goose resumes the most recent session when --resume is used
53
- // First message (no sessionId): creates new session
54
- // Subsequent messages (has sessionId): resumes most recent session
55
- if (options.sessionId) {
56
- gooseArgs.push("--resume");
57
- }
58
- // Build the goose command string (will be passed to bash -c)
59
- const gooseCmd = ["goose", ...gooseArgs].map(arg => {
60
- return `'${arg.replace(/'/g, "'\\''")}'`;
61
- }).join(" ");
62
- // Wrap in bash to ensure PATH includes ~/.local/bin where goose installs
63
- return {
64
- cmd: "bash",
65
- args: ["-c", `export PATH="$HOME/.local/bin:$PATH" && ${gooseCmd}`],
66
- env: options.env,
67
- };
68
- },
69
- parse(line, context) {
70
- return parseGooseLine(line, this.toolMappings, context);
71
- },
72
- };
73
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agents/goose/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C;;;GAGG;AACH,SAAS,wBAAwB,CAC/B,KAAyB,EACzB,GAAuC;IAEvC,qDAAqD;IACrD,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IAChD,CAAC;IAED,oEAAoE;IACpE,IAAI,GAAG,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC;QACnD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,IAAI,mBAAmB,EAAE,CAAA;IACvE,CAAC;IAED,6BAA6B;IAC7B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,QAAQ,EAAE,CAAA;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,IAAI,EAAE,OAAO;IAEb,YAAY,EAAE,mBAAmB;IAEjC,YAAY,EAAE;QACZ,oBAAoB,EAAE,IAAI;QAC1B,cAAc,EAAE,IAAI;KACrB;IAED,YAAY,CAAC,OAAmB;QAC9B,MAAM,SAAS,GAAa,EAAE,CAAA;QAE9B,mDAAmD;QACnD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAErB,2DAA2D;QAC3D,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;QAEhD,mEAAmE;QACnE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAChF,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QACtC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAEhC,2BAA2B;QAC3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAC1C,CAAC;QAED,sDAAsD;QACtD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QAClD,CAAC;QAED,gFAAgF;QAChF,oDAAoD;QACpD,mEAAmE;QACnE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC5B,CAAC;QAED,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjD,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAA;QAC1C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEZ,yEAAyE;QACzE,OAAO;YACL,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,CAAC,IAAI,EAAE,2CAA2C,QAAQ,EAAE,CAAC;YACnE,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,OAAqB;QACvC,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;CACF,CAAA"}