daemora 1.0.3 → 1.0.5

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 (121) hide show
  1. package/LICENSE +663 -0
  2. package/README.md +69 -19
  3. package/SOUL.md +25 -24
  4. package/daemora-ui/README.md +11 -0
  5. package/package.json +12 -2
  6. package/skills/api-development.md +35 -0
  7. package/skills/artifacts-builder/SKILL.md +74 -0
  8. package/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  9. package/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
  10. package/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  11. package/skills/brand-guidelines.md +73 -0
  12. package/skills/browser.md +77 -0
  13. package/skills/changelog-generator.md +104 -0
  14. package/skills/coding.md +26 -10
  15. package/skills/content-research-writer.md +538 -0
  16. package/skills/data-analysis.md +27 -0
  17. package/skills/debugging.md +33 -0
  18. package/skills/devops.md +37 -0
  19. package/skills/document-docx.md +197 -0
  20. package/skills/document-pdf.md +294 -0
  21. package/skills/document-pptx.md +484 -0
  22. package/skills/document-xlsx.md +289 -0
  23. package/skills/domain-name-brainstormer.md +212 -0
  24. package/skills/file-organizer.md +433 -0
  25. package/skills/frontend-design.md +42 -0
  26. package/skills/image-enhancer.md +99 -0
  27. package/skills/invoice-organizer.md +446 -0
  28. package/skills/lead-research-assistant.md +199 -0
  29. package/skills/mcp-builder/SKILL.md +328 -0
  30. package/skills/mcp-builder/reference/evaluation.md +602 -0
  31. package/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
  32. package/skills/mcp-builder/reference/node_mcp_server.md +916 -0
  33. package/skills/mcp-builder/reference/python_mcp_server.md +752 -0
  34. package/skills/mcp-builder/scripts/connections.py +151 -0
  35. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  36. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  37. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  38. package/skills/meeting-insights-analyzer.md +327 -0
  39. package/skills/orchestration.md +93 -0
  40. package/skills/raffle-winner-picker.md +159 -0
  41. package/skills/slack-gif-creator/SKILL.md +646 -0
  42. package/skills/slack-gif-creator/core/color_palettes.py +302 -0
  43. package/skills/slack-gif-creator/core/easing.py +230 -0
  44. package/skills/slack-gif-creator/core/frame_composer.py +469 -0
  45. package/skills/slack-gif-creator/core/gif_builder.py +246 -0
  46. package/skills/slack-gif-creator/core/typography.py +357 -0
  47. package/skills/slack-gif-creator/core/validators.py +264 -0
  48. package/skills/slack-gif-creator/core/visual_effects.py +494 -0
  49. package/skills/slack-gif-creator/requirements.txt +4 -0
  50. package/skills/slack-gif-creator/templates/bounce.py +106 -0
  51. package/skills/slack-gif-creator/templates/explode.py +331 -0
  52. package/skills/slack-gif-creator/templates/fade.py +329 -0
  53. package/skills/slack-gif-creator/templates/flip.py +291 -0
  54. package/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
  55. package/skills/slack-gif-creator/templates/morph.py +329 -0
  56. package/skills/slack-gif-creator/templates/move.py +293 -0
  57. package/skills/slack-gif-creator/templates/pulse.py +268 -0
  58. package/skills/slack-gif-creator/templates/shake.py +127 -0
  59. package/skills/slack-gif-creator/templates/slide.py +291 -0
  60. package/skills/slack-gif-creator/templates/spin.py +269 -0
  61. package/skills/slack-gif-creator/templates/wiggle.py +300 -0
  62. package/skills/slack-gif-creator/templates/zoom.py +312 -0
  63. package/skills/system-admin.md +44 -0
  64. package/skills/tailored-resume-generator.md +345 -0
  65. package/skills/theme-factory/SKILL.md +59 -0
  66. package/skills/theme-factory/theme-showcase.pdf +0 -0
  67. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  68. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  69. package/skills/theme-factory/themes/desert-rose.md +19 -0
  70. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  71. package/skills/theme-factory/themes/golden-hour.md +19 -0
  72. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  73. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  74. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  75. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  76. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  77. package/skills/video-downloader.md +99 -0
  78. package/skills/web-development.md +32 -0
  79. package/skills/webapp-testing/SKILL.md +96 -0
  80. package/skills/webapp-testing/examples/console_logging.py +35 -0
  81. package/skills/webapp-testing/examples/element_discovery.py +40 -0
  82. package/skills/webapp-testing/examples/static_html_automation.py +33 -0
  83. package/skills/webapp-testing/scripts/with_server.py +106 -0
  84. package/src/agents/SubAgentManager.js +57 -12
  85. package/src/api/openai-compat.js +212 -0
  86. package/src/channels/TelegramChannel.js +5 -2
  87. package/src/channels/index.js +7 -10
  88. package/src/cli.js +129 -50
  89. package/src/config/agentProfiles.js +1 -0
  90. package/src/config/default.js +10 -0
  91. package/src/config/models.js +317 -71
  92. package/src/config/permissions.js +12 -0
  93. package/src/core/AgentLoop.js +70 -50
  94. package/src/core/Compaction.js +84 -2
  95. package/src/core/MessageQueue.js +90 -0
  96. package/src/core/Task.js +13 -0
  97. package/src/core/TaskQueue.js +1 -1
  98. package/src/core/TaskRunner.js +80 -5
  99. package/src/index.js +328 -48
  100. package/src/mcp/MCPAgentRunner.js +48 -11
  101. package/src/mcp/MCPManager.js +40 -2
  102. package/src/models/ModelRouter.js +67 -1
  103. package/src/safety/DockerSandbox.js +212 -0
  104. package/src/safety/ExecApproval.js +118 -0
  105. package/src/scheduler/Heartbeat.js +56 -21
  106. package/src/services/cleanup.js +106 -0
  107. package/src/services/sessions.js +39 -1
  108. package/src/setup/wizard.js +75 -4
  109. package/src/skills/SkillLoader.js +104 -17
  110. package/src/storage/TaskStore.js +19 -1
  111. package/src/systemPrompt.js +171 -328
  112. package/src/tools/browserAutomation.js +615 -104
  113. package/src/tools/executeCommand.js +19 -1
  114. package/src/tools/index.js +6 -0
  115. package/src/tools/manageAgents.js +55 -4
  116. package/src/tools/replyWithFile.js +62 -0
  117. package/src/tools/screenCapture.js +12 -1
  118. package/src/tools/taskManager.js +164 -0
  119. package/src/tools/useMCP.js +3 -1
  120. package/src/utils/Embeddings.js +157 -10
  121. package/src/webhooks/WebhookHandler.js +107 -0
@@ -1,112 +1,358 @@
1
1
  /**
2
2
  * Model registry - metadata for all supported models.
3
3
  * Used by ModelRouter for selection, cost tracking, and compaction thresholds.
4
+ *
5
+ * Pricing: costPer1kInput / costPer1kOutput in USD per 1,000 tokens.
6
+ * Source: Official provider pricing pages (as of March 2026).
4
7
  */
5
8
  export const models = {
6
- // OpenAI
7
- "openai:gpt-4.1-mini": {
8
- provider: "openai",
9
- model: "gpt-4.1-mini",
10
- contextWindow: 128_000,
11
- compactAt: 90_000,
12
- costPer1kInput: 0.0004,
13
- costPer1kOutput: 0.0016,
9
+ // ─── OpenAI ──────────────────────────────────────────────────────────────────
10
+
11
+ // GPT-5.4
12
+ "openai:gpt-5.4": {
13
+ provider: "openai", model: "gpt-5.4",
14
+ contextWindow: 128_000, compactAt: 90_000,
15
+ costPer1kInput: 0.0025, costPer1kOutput: 0.015,
16
+ capabilities: ["text", "tools", "structured-output"],
17
+ tier: "expensive",
18
+ },
19
+ "openai:gpt-5.4-pro": {
20
+ provider: "openai", model: "gpt-5.4-pro",
21
+ contextWindow: 128_000, compactAt: 90_000,
22
+ costPer1kInput: 0.030, costPer1kOutput: 0.180,
23
+ capabilities: ["text", "tools", "structured-output", "reasoning"],
24
+ tier: "expensive",
25
+ },
26
+
27
+ // GPT-5.2
28
+ "openai:gpt-5.2": {
29
+ provider: "openai", model: "gpt-5.2",
30
+ contextWindow: 128_000, compactAt: 90_000,
31
+ costPer1kInput: 0.00175, costPer1kOutput: 0.014,
32
+ capabilities: ["text", "tools", "structured-output"],
33
+ tier: "standard",
34
+ },
35
+ "openai:gpt-5.2-pro": {
36
+ provider: "openai", model: "gpt-5.2-pro",
37
+ contextWindow: 128_000, compactAt: 90_000,
38
+ costPer1kInput: 0.021, costPer1kOutput: 0.168,
39
+ capabilities: ["text", "tools", "structured-output", "reasoning"],
40
+ tier: "expensive",
41
+ },
42
+
43
+ // GPT-5.1
44
+ "openai:gpt-5.1": {
45
+ provider: "openai", model: "gpt-5.1",
46
+ contextWindow: 128_000, compactAt: 90_000,
47
+ costPer1kInput: 0.00125, costPer1kOutput: 0.010,
48
+ capabilities: ["text", "tools", "structured-output"],
49
+ tier: "standard",
50
+ },
51
+
52
+ // GPT-5
53
+ "openai:gpt-5": {
54
+ provider: "openai", model: "gpt-5",
55
+ contextWindow: 128_000, compactAt: 90_000,
56
+ costPer1kInput: 0.00125, costPer1kOutput: 0.010,
57
+ capabilities: ["text", "tools", "structured-output"],
58
+ tier: "standard",
59
+ },
60
+ "openai:gpt-5-pro": {
61
+ provider: "openai", model: "gpt-5-pro",
62
+ contextWindow: 128_000, compactAt: 90_000,
63
+ costPer1kInput: 0.015, costPer1kOutput: 0.120,
64
+ capabilities: ["text", "tools", "structured-output", "reasoning"],
65
+ tier: "expensive",
66
+ },
67
+ "openai:gpt-5-mini": {
68
+ provider: "openai", model: "gpt-5-mini",
69
+ contextWindow: 128_000, compactAt: 90_000,
70
+ costPer1kInput: 0.00025, costPer1kOutput: 0.002,
71
+ capabilities: ["text", "tools", "structured-output"],
72
+ tier: "cheap",
73
+ },
74
+ "openai:gpt-5-nano": {
75
+ provider: "openai", model: "gpt-5-nano",
76
+ contextWindow: 128_000, compactAt: 90_000,
77
+ costPer1kInput: 0.00005, costPer1kOutput: 0.0004,
14
78
  capabilities: ["text", "tools", "structured-output"],
15
79
  tier: "cheap",
16
80
  },
81
+
82
+ // GPT-5 Codex
83
+ "openai:gpt-5.3-codex": {
84
+ provider: "openai", model: "gpt-5.3-codex",
85
+ contextWindow: 128_000, compactAt: 90_000,
86
+ costPer1kInput: 0.00175, costPer1kOutput: 0.014,
87
+ capabilities: ["text", "tools", "structured-output"],
88
+ tier: "standard",
89
+ },
90
+ "openai:gpt-5.1-codex": {
91
+ provider: "openai", model: "gpt-5.1-codex",
92
+ contextWindow: 128_000, compactAt: 90_000,
93
+ costPer1kInput: 0.00125, costPer1kOutput: 0.010,
94
+ capabilities: ["text", "tools", "structured-output"],
95
+ tier: "standard",
96
+ },
97
+ "openai:gpt-5-codex": {
98
+ provider: "openai", model: "gpt-5-codex",
99
+ contextWindow: 128_000, compactAt: 90_000,
100
+ costPer1kInput: 0.00125, costPer1kOutput: 0.010,
101
+ capabilities: ["text", "tools", "structured-output"],
102
+ tier: "standard",
103
+ },
104
+
105
+ // GPT-4.1 (1M context)
17
106
  "openai:gpt-4.1": {
18
- provider: "openai",
19
- model: "gpt-4.1",
20
- contextWindow: 128_000,
21
- compactAt: 90_000,
22
- costPer1kInput: 0.002,
23
- costPer1kOutput: 0.008,
107
+ provider: "openai", model: "gpt-4.1",
108
+ contextWindow: 1_000_000, compactAt: 700_000,
109
+ costPer1kInput: 0.002, costPer1kOutput: 0.008,
110
+ capabilities: ["text", "tools", "structured-output"],
111
+ tier: "standard",
112
+ },
113
+ "openai:gpt-4.1-mini": {
114
+ provider: "openai", model: "gpt-4.1-mini",
115
+ contextWindow: 1_000_000, compactAt: 700_000,
116
+ costPer1kInput: 0.0004, costPer1kOutput: 0.0016,
117
+ capabilities: ["text", "tools", "structured-output"],
118
+ tier: "cheap",
119
+ },
120
+ "openai:gpt-4.1-nano": {
121
+ provider: "openai", model: "gpt-4.1-nano",
122
+ contextWindow: 1_000_000, compactAt: 700_000,
123
+ costPer1kInput: 0.0001, costPer1kOutput: 0.0004,
24
124
  capabilities: ["text", "tools", "structured-output"],
125
+ tier: "cheap",
126
+ },
127
+
128
+ // GPT-4o
129
+ "openai:gpt-4o": {
130
+ provider: "openai", model: "gpt-4o",
131
+ contextWindow: 128_000, compactAt: 90_000,
132
+ costPer1kInput: 0.0025, costPer1kOutput: 0.010,
133
+ capabilities: ["text", "tools", "structured-output", "vision"],
134
+ tier: "standard",
135
+ },
136
+ "openai:gpt-4o-mini": {
137
+ provider: "openai", model: "gpt-4o-mini",
138
+ contextWindow: 128_000, compactAt: 90_000,
139
+ costPer1kInput: 0.00015, costPer1kOutput: 0.0006,
140
+ capabilities: ["text", "tools", "structured-output", "vision"],
141
+ tier: "cheap",
142
+ },
143
+
144
+ // o-series reasoning
145
+ "openai:o1": {
146
+ provider: "openai", model: "o1",
147
+ contextWindow: 200_000, compactAt: 140_000,
148
+ costPer1kInput: 0.015, costPer1kOutput: 0.060,
149
+ capabilities: ["text", "tools", "reasoning"],
150
+ tier: "expensive",
151
+ },
152
+ "openai:o1-pro": {
153
+ provider: "openai", model: "o1-pro",
154
+ contextWindow: 200_000, compactAt: 140_000,
155
+ costPer1kInput: 0.150, costPer1kOutput: 0.600,
156
+ capabilities: ["text", "tools", "reasoning"],
157
+ tier: "expensive",
158
+ },
159
+ "openai:o3-pro": {
160
+ provider: "openai", model: "o3-pro",
161
+ contextWindow: 200_000, compactAt: 140_000,
162
+ costPer1kInput: 0.020, costPer1kOutput: 0.080,
163
+ capabilities: ["text", "tools", "reasoning"],
164
+ tier: "expensive",
165
+ },
166
+ "openai:o3": {
167
+ provider: "openai", model: "o3",
168
+ contextWindow: 200_000, compactAt: 140_000,
169
+ costPer1kInput: 0.002, costPer1kOutput: 0.008,
170
+ capabilities: ["text", "tools", "reasoning"],
171
+ tier: "standard",
172
+ },
173
+ "openai:o4-mini": {
174
+ provider: "openai", model: "o4-mini",
175
+ contextWindow: 200_000, compactAt: 140_000,
176
+ costPer1kInput: 0.0011, costPer1kOutput: 0.0044,
177
+ capabilities: ["text", "tools", "reasoning"],
25
178
  tier: "standard",
26
179
  },
27
180
  "openai:o3-mini": {
28
- provider: "openai",
29
- model: "o3-mini",
30
- contextWindow: 200_000,
31
- compactAt: 140_000,
32
- costPer1kInput: 0.0011,
33
- costPer1kOutput: 0.0044,
181
+ provider: "openai", model: "o3-mini",
182
+ contextWindow: 200_000, compactAt: 140_000,
183
+ costPer1kInput: 0.0011, costPer1kOutput: 0.0044,
34
184
  capabilities: ["text", "tools", "reasoning"],
35
185
  tier: "standard",
36
186
  },
37
187
 
38
- // Anthropic
39
- "anthropic:claude-sonnet-4-6": {
40
- provider: "anthropic",
41
- model: "claude-sonnet-4-6",
42
- contextWindow: 200_000,
43
- compactAt: 140_000,
44
- costPer1kInput: 0.003,
45
- costPer1kOutput: 0.015,
46
- capabilities: ["text", "tools", "structured-output"],
188
+ // Specialized
189
+ "openai:computer-use-preview": {
190
+ provider: "openai", model: "computer-use-preview",
191
+ contextWindow: 128_000, compactAt: 90_000,
192
+ costPer1kInput: 0.003, costPer1kOutput: 0.012,
193
+ capabilities: ["text", "tools", "computer-use"],
47
194
  tier: "standard",
48
195
  },
196
+
197
+ // ─── Anthropic ───────────────────────────────────────────────────────────────
198
+
49
199
  "anthropic:claude-opus-4-6": {
50
- provider: "anthropic",
51
- model: "claude-opus-4-6",
52
- contextWindow: 200_000,
53
- compactAt: 140_000,
54
- costPer1kInput: 0.015,
55
- costPer1kOutput: 0.075,
56
- capabilities: ["text", "tools", "structured-output"],
200
+ provider: "anthropic", model: "claude-opus-4-6",
201
+ contextWindow: 200_000, compactAt: 140_000,
202
+ costPer1kInput: 0.005, costPer1kOutput: 0.025,
203
+ capabilities: ["text", "tools", "structured-output", "vision"],
204
+ tier: "expensive",
205
+ },
206
+ "anthropic:claude-opus-4-5": {
207
+ provider: "anthropic", model: "claude-opus-4-5",
208
+ contextWindow: 200_000, compactAt: 140_000,
209
+ costPer1kInput: 0.005, costPer1kOutput: 0.025,
210
+ capabilities: ["text", "tools", "structured-output", "vision"],
57
211
  tier: "expensive",
58
212
  },
213
+ "anthropic:claude-opus-4-1": {
214
+ provider: "anthropic", model: "claude-opus-4-1",
215
+ contextWindow: 200_000, compactAt: 140_000,
216
+ costPer1kInput: 0.015, costPer1kOutput: 0.075,
217
+ capabilities: ["text", "tools", "structured-output", "vision"],
218
+ tier: "expensive",
219
+ },
220
+ "anthropic:claude-opus-4": {
221
+ provider: "anthropic", model: "claude-opus-4",
222
+ contextWindow: 200_000, compactAt: 140_000,
223
+ costPer1kInput: 0.015, costPer1kOutput: 0.075,
224
+ capabilities: ["text", "tools", "structured-output", "vision"],
225
+ tier: "expensive",
226
+ },
227
+ "anthropic:claude-sonnet-4-6": {
228
+ provider: "anthropic", model: "claude-sonnet-4-6",
229
+ contextWindow: 200_000, compactAt: 140_000,
230
+ costPer1kInput: 0.003, costPer1kOutput: 0.015,
231
+ capabilities: ["text", "tools", "structured-output", "vision"],
232
+ tier: "standard",
233
+ },
234
+ "anthropic:claude-sonnet-4-5": {
235
+ provider: "anthropic", model: "claude-sonnet-4-5",
236
+ contextWindow: 200_000, compactAt: 140_000,
237
+ costPer1kInput: 0.003, costPer1kOutput: 0.015,
238
+ capabilities: ["text", "tools", "structured-output", "vision"],
239
+ tier: "standard",
240
+ },
241
+ "anthropic:claude-sonnet-4": {
242
+ provider: "anthropic", model: "claude-sonnet-4",
243
+ contextWindow: 200_000, compactAt: 140_000,
244
+ costPer1kInput: 0.003, costPer1kOutput: 0.015,
245
+ capabilities: ["text", "tools", "structured-output", "vision"],
246
+ tier: "standard",
247
+ },
59
248
  "anthropic:claude-haiku-4-5": {
60
- provider: "anthropic",
61
- model: "claude-haiku-4-5",
62
- contextWindow: 200_000,
63
- compactAt: 140_000,
64
- costPer1kInput: 0.0008,
65
- costPer1kOutput: 0.004,
249
+ provider: "anthropic", model: "claude-haiku-4-5",
250
+ contextWindow: 200_000, compactAt: 140_000,
251
+ costPer1kInput: 0.001, costPer1kOutput: 0.005,
252
+ capabilities: ["text", "tools", "structured-output", "vision"],
253
+ tier: "cheap",
254
+ },
255
+ "anthropic:claude-haiku-3-5": {
256
+ provider: "anthropic", model: "claude-haiku-3-5",
257
+ contextWindow: 200_000, compactAt: 140_000,
258
+ costPer1kInput: 0.0008, costPer1kOutput: 0.004,
66
259
  capabilities: ["text", "tools", "structured-output"],
67
260
  tier: "cheap",
68
261
  },
262
+ "anthropic:claude-haiku-3": {
263
+ provider: "anthropic", model: "claude-haiku-3",
264
+ contextWindow: 200_000, compactAt: 140_000,
265
+ costPer1kInput: 0.00025, costPer1kOutput: 0.00125,
266
+ capabilities: ["text", "tools"],
267
+ tier: "cheap",
268
+ },
69
269
 
70
- // Google
270
+ // ─── Google ──────────────────────────────────────────────────────────────────
271
+
272
+ "google:gemini-3.1-pro-preview": {
273
+ provider: "google", model: "gemini-3.1-pro-preview",
274
+ contextWindow: 1_000_000, compactAt: 700_000,
275
+ costPer1kInput: 0.002, costPer1kOutput: 0.012,
276
+ capabilities: ["text", "tools", "structured-output"],
277
+ tier: "standard",
278
+ },
279
+ "google:gemini-3.1-flash-lite-preview": {
280
+ provider: "google", model: "gemini-3.1-flash-lite-preview",
281
+ contextWindow: 1_000_000, compactAt: 700_000,
282
+ costPer1kInput: 0.00025, costPer1kOutput: 0.0015,
283
+ capabilities: ["text", "tools", "structured-output"],
284
+ tier: "cheap",
285
+ },
286
+ "google:gemini-3-pro-preview": {
287
+ provider: "google", model: "gemini-3-pro-preview",
288
+ contextWindow: 1_000_000, compactAt: 700_000,
289
+ costPer1kInput: 0.002, costPer1kOutput: 0.012,
290
+ capabilities: ["text", "tools", "structured-output"],
291
+ tier: "standard",
292
+ },
293
+ "google:gemini-3-flash-preview": {
294
+ provider: "google", model: "gemini-3-flash-preview",
295
+ contextWindow: 1_000_000, compactAt: 700_000,
296
+ costPer1kInput: 0.0005, costPer1kOutput: 0.003,
297
+ capabilities: ["text", "tools", "structured-output"],
298
+ tier: "cheap",
299
+ },
300
+ "google:gemini-2.5-pro": {
301
+ provider: "google", model: "gemini-2.5-pro",
302
+ contextWindow: 1_000_000, compactAt: 700_000,
303
+ costPer1kInput: 0.00125, costPer1kOutput: 0.010,
304
+ capabilities: ["text", "tools", "structured-output"],
305
+ tier: "standard",
306
+ },
307
+ "google:gemini-2.5-flash": {
308
+ provider: "google", model: "gemini-2.5-flash",
309
+ contextWindow: 1_000_000, compactAt: 700_000,
310
+ costPer1kInput: 0.0003, costPer1kOutput: 0.0025,
311
+ capabilities: ["text", "tools", "structured-output"],
312
+ tier: "cheap",
313
+ },
314
+ "google:gemini-2.5-flash-lite": {
315
+ provider: "google", model: "gemini-2.5-flash-lite",
316
+ contextWindow: 1_000_000, compactAt: 700_000,
317
+ costPer1kInput: 0.0001, costPer1kOutput: 0.0004,
318
+ capabilities: ["text", "tools", "structured-output"],
319
+ tier: "cheap",
320
+ },
71
321
  "google:gemini-2.0-flash": {
72
- provider: "google",
73
- model: "gemini-2.0-flash",
74
- contextWindow: 1_000_000,
75
- compactAt: 700_000,
76
- costPer1kInput: 0.0001,
77
- costPer1kOutput: 0.0004,
322
+ provider: "google", model: "gemini-2.0-flash",
323
+ contextWindow: 1_000_000, compactAt: 700_000,
324
+ costPer1kInput: 0.00015, costPer1kOutput: 0.0006,
78
325
  capabilities: ["text", "tools", "structured-output"],
79
326
  tier: "cheap",
80
327
  },
328
+ "google:gemini-2.0-flash-lite": {
329
+ provider: "google", model: "gemini-2.0-flash-lite",
330
+ contextWindow: 1_000_000, compactAt: 700_000,
331
+ costPer1kInput: 0.000075, costPer1kOutput: 0.0003,
332
+ capabilities: ["text", "tools", "structured-output"],
333
+ tier: "cheap",
334
+ },
335
+
336
+ // ─── Ollama (local — no cost) ────────────────────────────────────────────────
81
337
 
82
- // Ollama (local - no cost)
83
338
  "ollama:llama3": {
84
- provider: "ollama",
85
- model: "llama3",
86
- contextWindow: 8_192,
87
- compactAt: 5_600,
88
- costPer1kInput: 0,
89
- costPer1kOutput: 0,
339
+ provider: "ollama", model: "llama3",
340
+ contextWindow: 8_192, compactAt: 5_600,
341
+ costPer1kInput: 0, costPer1kOutput: 0,
90
342
  capabilities: ["text"],
91
343
  tier: "free",
92
344
  },
93
345
  "ollama:llama3.1": {
94
- provider: "ollama",
95
- model: "llama3.1",
96
- contextWindow: 128_000,
97
- compactAt: 90_000,
98
- costPer1kInput: 0,
99
- costPer1kOutput: 0,
346
+ provider: "ollama", model: "llama3.1",
347
+ contextWindow: 128_000, compactAt: 90_000,
348
+ costPer1kInput: 0, costPer1kOutput: 0,
100
349
  capabilities: ["text", "tools"],
101
350
  tier: "free",
102
351
  },
103
352
  "ollama:qwen2.5-coder": {
104
- provider: "ollama",
105
- model: "qwen2.5-coder",
106
- contextWindow: 32_000,
107
- compactAt: 22_000,
108
- costPer1kInput: 0,
109
- costPer1kOutput: 0,
353
+ provider: "ollama", model: "qwen2.5-coder",
354
+ contextWindow: 32_000, compactAt: 22_000,
355
+ costPer1kInput: 0, costPer1kOutput: 0,
110
356
  capabilities: ["text", "tools"],
111
357
  tier: "free",
112
358
  },
@@ -116,8 +362,8 @@ export const models = {
116
362
  * Fallback chains - if preferred model fails, try next in chain.
117
363
  */
118
364
  export const fallbackChains = {
119
- cheap: ["openai:gpt-4.1-mini", "anthropic:claude-haiku-4-5", "google:gemini-2.0-flash"],
120
- standard: ["openai:gpt-4.1", "anthropic:claude-sonnet-4-6", "openai:gpt-4.1-mini"],
121
- expensive: ["anthropic:claude-opus-4-6", "anthropic:claude-sonnet-4-6", "openai:gpt-4.1"],
365
+ cheap: ["openai:gpt-5-mini", "openai:gpt-4.1-mini", "anthropic:claude-haiku-4-5", "google:gemini-2.5-flash"],
366
+ standard: ["openai:gpt-5.2", "openai:gpt-4.1", "anthropic:claude-sonnet-4-6", "google:gemini-2.5-pro"],
367
+ expensive: ["anthropic:claude-opus-4-6", "openai:gpt-5.4", "anthropic:claude-sonnet-4-6", "openai:o3-pro"],
122
368
  local: ["ollama:llama3.1", "ollama:qwen2.5-coder", "ollama:llama3"],
123
369
  };
@@ -58,6 +58,17 @@ export const permissionTiers = {
58
58
  "pruneMemory",
59
59
  // Screen
60
60
  "screenCapture",
61
+ "replyWithFile",
62
+ "sendFile",
63
+ // Media
64
+ "transcribeAudio",
65
+ "textToSpeech",
66
+ // Task management & agents
67
+ "taskManager",
68
+ "spawnAgent",
69
+ "parallelAgents",
70
+ "manageAgents",
71
+ "useMCP",
61
72
  // Project tracking
62
73
  "projectTracker",
63
74
  // MCP inspection (read-only - no side effects)
@@ -92,6 +103,7 @@ export const permissionTiers = {
92
103
  "writeDailyLog",
93
104
  "pruneMemory",
94
105
  "screenCapture",
106
+ "replyWithFile",
95
107
  // Full-only: communication
96
108
  "sendEmail",
97
109
  "messageChannel",