@praveencs/agent 0.9.29 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/README.md +55 -9
  2. package/ROADMAP.md +42 -50
  3. package/agent-skills/README.md +192 -0
  4. package/agent-skills/plugins/aws/plugin.json +22 -0
  5. package/agent-skills/plugins/aws/skills/aws-manager.md +17 -0
  6. package/agent-skills/plugins/aws/tools/aws.js +152 -0
  7. package/agent-skills/plugins/discord/plugin.json +22 -0
  8. package/agent-skills/plugins/discord/skills/discord-manager.md +15 -0
  9. package/agent-skills/plugins/discord/tools/discord.js +150 -0
  10. package/agent-skills/plugins/docker/plugin.json +21 -0
  11. package/agent-skills/plugins/docker/skills/docker-manager.md +15 -0
  12. package/agent-skills/plugins/docker/tools/docker.js +135 -0
  13. package/agent-skills/plugins/firebase/plugin.json +22 -0
  14. package/agent-skills/plugins/firebase/skills/firebase-manager.md +14 -0
  15. package/agent-skills/plugins/firebase/tools/firebase.js +157 -0
  16. package/agent-skills/plugins/github/plugin.json +23 -0
  17. package/agent-skills/plugins/github/skills/github-manager.md +15 -0
  18. package/agent-skills/plugins/github/tools/github.js +133 -0
  19. package/agent-skills/plugins/huggingface/plugin.json +22 -0
  20. package/agent-skills/plugins/huggingface/skills/huggingface-manager.md +16 -0
  21. package/agent-skills/plugins/huggingface/tools/huggingface.js +149 -0
  22. package/agent-skills/plugins/linear/plugin.json +22 -0
  23. package/agent-skills/plugins/linear/skills/linear-manager.md +16 -0
  24. package/agent-skills/plugins/linear/tools/linear.js +199 -0
  25. package/agent-skills/plugins/mongodb/plugin.json +21 -0
  26. package/agent-skills/plugins/mongodb/skills/mongodb-manager.md +14 -0
  27. package/agent-skills/plugins/mongodb/tools/mongodb.js +123 -0
  28. package/agent-skills/plugins/notion/plugin.json +22 -0
  29. package/agent-skills/plugins/notion/skills/notion-manager.md +16 -0
  30. package/agent-skills/plugins/notion/tools/notion.js +158 -0
  31. package/agent-skills/plugins/openai/plugin.json +23 -0
  32. package/agent-skills/plugins/openai/skills/openai-manager.md +15 -0
  33. package/agent-skills/plugins/openai/tools/openai.js +137 -0
  34. package/agent-skills/plugins/resend/plugin.json +21 -0
  35. package/agent-skills/plugins/resend/skills/resend-manager.md +15 -0
  36. package/agent-skills/plugins/resend/tools/resend.js +102 -0
  37. package/agent-skills/plugins/slack/plugin.json +22 -0
  38. package/agent-skills/plugins/slack/skills/slack-manager.md +15 -0
  39. package/agent-skills/plugins/slack/tools/slack.js +168 -0
  40. package/agent-skills/plugins/stripe/plugin.json +22 -0
  41. package/agent-skills/plugins/stripe/skills/stripe-manager.md +16 -0
  42. package/agent-skills/plugins/stripe/tools/stripe.js +174 -0
  43. package/agent-skills/plugins/supabase/plugin.json +22 -0
  44. package/agent-skills/plugins/supabase/skills/supabase-manager.md +16 -0
  45. package/agent-skills/plugins/supabase/tools/supabase.js +153 -0
  46. package/agent-skills/plugins/telegram/plugin.json +21 -0
  47. package/agent-skills/plugins/telegram/skills/telegram-manager.md +14 -0
  48. package/agent-skills/plugins/telegram/tools/telegram.js +131 -0
  49. package/agent-skills/plugins/vercel/plugin.json +22 -0
  50. package/agent-skills/plugins/vercel/skills/vercel-manager.md +15 -0
  51. package/agent-skills/plugins/vercel/tools/vercel.js +145 -0
  52. package/agent-skills/registry.json +675 -0
  53. package/agent-skills/skills/api-tester/prompt.md +27 -0
  54. package/agent-skills/skills/api-tester/skill.json +16 -0
  55. package/agent-skills/skills/backup/prompt.md +12 -0
  56. package/agent-skills/skills/backup/skill.json +1 -0
  57. package/agent-skills/skills/code-review/prompt.md +29 -0
  58. package/agent-skills/skills/code-review/skill.json +18 -0
  59. package/agent-skills/skills/create-note/prompt.md +21 -0
  60. package/agent-skills/skills/create-note/skill.json +15 -0
  61. package/agent-skills/skills/cron-scheduler/prompt.md +25 -0
  62. package/agent-skills/skills/cron-scheduler/skill.json +1 -0
  63. package/agent-skills/skills/db-query/prompt.md +12 -0
  64. package/agent-skills/skills/db-query/skill.json +1 -0
  65. package/agent-skills/skills/docker-deploy/prompt.md +21 -0
  66. package/agent-skills/skills/docker-deploy/skill.json +16 -0
  67. package/agent-skills/skills/file-organizer/prompt.md +32 -0
  68. package/agent-skills/skills/file-organizer/skill.json +19 -0
  69. package/agent-skills/skills/git-commit/prompt.md +21 -0
  70. package/agent-skills/skills/git-commit/skill.json +17 -0
  71. package/agent-skills/skills/log-analyzer/prompt.md +16 -0
  72. package/agent-skills/skills/log-analyzer/skill.json +1 -0
  73. package/agent-skills/skills/npm-publish/prompt.md +24 -0
  74. package/agent-skills/skills/npm-publish/skill.json +20 -0
  75. package/agent-skills/skills/open-vscode/prompt.md +8 -0
  76. package/agent-skills/skills/open-vscode/skill.json +15 -0
  77. package/agent-skills/skills/project-scaffold/prompt.md +43 -0
  78. package/agent-skills/skills/project-scaffold/skill.json +17 -0
  79. package/agent-skills/skills/send-email/prompt.md +19 -0
  80. package/agent-skills/skills/send-email/send.js +60 -0
  81. package/agent-skills/skills/send-email/skill.json +16 -0
  82. package/agent-skills/skills/system-monitor/prompt.md +27 -0
  83. package/agent-skills/skills/system-monitor/skill.json +15 -0
  84. package/agent-skills/skills/web-search/prompt.md +26 -0
  85. package/agent-skills/skills/web-search/skill.json +16 -0
  86. package/dist/src/cli/commands/desktop.d.ts +3 -0
  87. package/dist/src/cli/commands/desktop.d.ts.map +1 -0
  88. package/dist/src/cli/commands/desktop.js +80 -0
  89. package/dist/src/cli/commands/desktop.js.map +1 -0
  90. package/dist/src/cli/commands/multimodal.d.ts +3 -0
  91. package/dist/src/cli/commands/multimodal.d.ts.map +1 -0
  92. package/dist/src/cli/commands/multimodal.js +78 -0
  93. package/dist/src/cli/commands/multimodal.js.map +1 -0
  94. package/dist/src/cli/commands/plugins.d.ts.map +1 -1
  95. package/dist/src/cli/commands/plugins.js +63 -12
  96. package/dist/src/cli/commands/plugins.js.map +1 -1
  97. package/dist/src/cli/commands/sandbox.d.ts +3 -0
  98. package/dist/src/cli/commands/sandbox.d.ts.map +1 -0
  99. package/dist/src/cli/commands/sandbox.js +89 -0
  100. package/dist/src/cli/commands/sandbox.js.map +1 -0
  101. package/dist/src/cli/commands/skills.d.ts.map +1 -1
  102. package/dist/src/cli/commands/skills.js +52 -121
  103. package/dist/src/cli/commands/skills.js.map +1 -1
  104. package/dist/src/cli/commands/swarm.d.ts +3 -0
  105. package/dist/src/cli/commands/swarm.d.ts.map +1 -0
  106. package/dist/src/cli/commands/swarm.js +120 -0
  107. package/dist/src/cli/commands/swarm.js.map +1 -0
  108. package/dist/src/cli/index.d.ts.map +1 -1
  109. package/dist/src/cli/index.js +8 -0
  110. package/dist/src/cli/index.js.map +1 -1
  111. package/dist/src/config/defaults.d.ts.map +1 -1
  112. package/dist/src/config/defaults.js +42 -0
  113. package/dist/src/config/defaults.js.map +1 -1
  114. package/dist/src/config/loader.d.ts +4 -0
  115. package/dist/src/config/loader.d.ts.map +1 -1
  116. package/dist/src/config/loader.js +27 -6
  117. package/dist/src/config/loader.js.map +1 -1
  118. package/dist/src/config/schema.d.ts +261 -0
  119. package/dist/src/config/schema.d.ts.map +1 -1
  120. package/dist/src/config/schema.js +58 -0
  121. package/dist/src/config/schema.js.map +1 -1
  122. package/dist/src/desktop/engine.d.ts +42 -0
  123. package/dist/src/desktop/engine.d.ts.map +1 -0
  124. package/dist/src/desktop/engine.js +77 -0
  125. package/dist/src/desktop/engine.js.map +1 -0
  126. package/dist/src/desktop/index.d.ts +6 -0
  127. package/dist/src/desktop/index.d.ts.map +1 -0
  128. package/dist/src/desktop/index.js +6 -0
  129. package/dist/src/desktop/index.js.map +1 -0
  130. package/dist/src/desktop/input.d.ts +20 -0
  131. package/dist/src/desktop/input.d.ts.map +1 -0
  132. package/dist/src/desktop/input.js +160 -0
  133. package/dist/src/desktop/input.js.map +1 -0
  134. package/dist/src/desktop/screen.d.ts +17 -0
  135. package/dist/src/desktop/screen.d.ts.map +1 -0
  136. package/dist/src/desktop/screen.js +120 -0
  137. package/dist/src/desktop/screen.js.map +1 -0
  138. package/dist/src/desktop/types.d.ts +50 -0
  139. package/dist/src/desktop/types.d.ts.map +1 -0
  140. package/dist/src/desktop/types.js +10 -0
  141. package/dist/src/desktop/types.js.map +1 -0
  142. package/dist/src/hub/lockfile.d.ts +29 -0
  143. package/dist/src/hub/lockfile.d.ts.map +1 -0
  144. package/dist/src/hub/lockfile.js +72 -0
  145. package/dist/src/hub/lockfile.js.map +1 -0
  146. package/dist/src/hub/publisher.d.ts +13 -0
  147. package/dist/src/hub/publisher.d.ts.map +1 -0
  148. package/dist/src/hub/publisher.js +159 -0
  149. package/dist/src/hub/publisher.js.map +1 -0
  150. package/dist/src/hub/registry.d.ts +40 -0
  151. package/dist/src/hub/registry.d.ts.map +1 -0
  152. package/dist/src/hub/registry.js +123 -0
  153. package/dist/src/hub/registry.js.map +1 -0
  154. package/dist/src/multimodal/engine.d.ts +33 -0
  155. package/dist/src/multimodal/engine.d.ts.map +1 -0
  156. package/dist/src/multimodal/engine.js +63 -0
  157. package/dist/src/multimodal/engine.js.map +1 -0
  158. package/dist/src/multimodal/index.d.ts +7 -0
  159. package/dist/src/multimodal/index.d.ts.map +1 -0
  160. package/dist/src/multimodal/index.js +7 -0
  161. package/dist/src/multimodal/index.js.map +1 -0
  162. package/dist/src/multimodal/tts.d.ts +11 -0
  163. package/dist/src/multimodal/tts.d.ts.map +1 -0
  164. package/dist/src/multimodal/tts.js +48 -0
  165. package/dist/src/multimodal/tts.js.map +1 -0
  166. package/dist/src/multimodal/types.d.ts +55 -0
  167. package/dist/src/multimodal/types.d.ts.map +1 -0
  168. package/dist/src/multimodal/types.js +20 -0
  169. package/dist/src/multimodal/types.js.map +1 -0
  170. package/dist/src/multimodal/vision.d.ts +15 -0
  171. package/dist/src/multimodal/vision.d.ts.map +1 -0
  172. package/dist/src/multimodal/vision.js +98 -0
  173. package/dist/src/multimodal/vision.js.map +1 -0
  174. package/dist/src/multimodal/voice.d.ts +11 -0
  175. package/dist/src/multimodal/voice.d.ts.map +1 -0
  176. package/dist/src/multimodal/voice.js +43 -0
  177. package/dist/src/multimodal/voice.js.map +1 -0
  178. package/dist/src/plans/types.d.ts +18 -18
  179. package/dist/src/plugins/loader.d.ts.map +1 -1
  180. package/dist/src/plugins/loader.js +10 -0
  181. package/dist/src/plugins/loader.js.map +1 -1
  182. package/dist/src/sandbox/docker.d.ts +42 -0
  183. package/dist/src/sandbox/docker.d.ts.map +1 -0
  184. package/dist/src/sandbox/docker.js +131 -0
  185. package/dist/src/sandbox/docker.js.map +1 -0
  186. package/dist/src/sandbox/engine.d.ts +50 -0
  187. package/dist/src/sandbox/engine.d.ts.map +1 -0
  188. package/dist/src/sandbox/engine.js +133 -0
  189. package/dist/src/sandbox/engine.js.map +1 -0
  190. package/dist/src/sandbox/index.d.ts +5 -0
  191. package/dist/src/sandbox/index.d.ts.map +1 -0
  192. package/dist/src/sandbox/index.js +5 -0
  193. package/dist/src/sandbox/index.js.map +1 -0
  194. package/dist/src/sandbox/types.d.ts +41 -0
  195. package/dist/src/sandbox/types.d.ts.map +1 -0
  196. package/dist/src/sandbox/types.js +12 -0
  197. package/dist/src/sandbox/types.js.map +1 -0
  198. package/dist/src/scripts/types.d.ts +2 -2
  199. package/dist/src/server/app.d.ts.map +1 -1
  200. package/dist/src/server/app.js +133 -0
  201. package/dist/src/server/app.js.map +1 -1
  202. package/dist/src/skills/loader.d.ts.map +1 -1
  203. package/dist/src/skills/loader.js +10 -0
  204. package/dist/src/skills/loader.js.map +1 -1
  205. package/dist/src/swarm/bus.d.ts +27 -0
  206. package/dist/src/swarm/bus.d.ts.map +1 -0
  207. package/dist/src/swarm/bus.js +64 -0
  208. package/dist/src/swarm/bus.js.map +1 -0
  209. package/dist/src/swarm/index.d.ts +6 -0
  210. package/dist/src/swarm/index.d.ts.map +1 -0
  211. package/dist/src/swarm/index.js +6 -0
  212. package/dist/src/swarm/index.js.map +1 -0
  213. package/dist/src/swarm/orchestrator.d.ts +79 -0
  214. package/dist/src/swarm/orchestrator.d.ts.map +1 -0
  215. package/dist/src/swarm/orchestrator.js +271 -0
  216. package/dist/src/swarm/orchestrator.js.map +1 -0
  217. package/dist/src/swarm/roles.d.ts +18 -0
  218. package/dist/src/swarm/roles.d.ts.map +1 -0
  219. package/dist/src/swarm/roles.js +83 -0
  220. package/dist/src/swarm/roles.js.map +1 -0
  221. package/dist/src/swarm/types.d.ts +58 -0
  222. package/dist/src/swarm/types.d.ts.map +1 -0
  223. package/dist/src/swarm/types.js +10 -0
  224. package/dist/src/swarm/types.js.map +1 -0
  225. package/dist/src/tools/core/cmd.d.ts.map +1 -1
  226. package/dist/src/tools/core/cmd.js +28 -0
  227. package/dist/src/tools/core/cmd.js.map +1 -1
  228. package/dist/src/utils/paths.d.ts +4 -4
  229. package/dist/src/utils/paths.d.ts.map +1 -1
  230. package/dist/src/utils/paths.js +8 -8
  231. package/dist/src/utils/paths.js.map +1 -1
  232. package/docs/DOCUMENTATION.md +137 -0
  233. package/package.json +4 -2
  234. package/studio/README.md +73 -0
  235. package/studio/eslint.config.js +23 -0
  236. package/studio/index.html +13 -0
  237. package/studio/package-lock.json +4350 -0
  238. package/studio/package.json +44 -0
  239. package/studio/postcss.config.js +6 -0
  240. package/studio/public/vite.svg +1 -0
  241. package/studio/src/App.tsx +243 -0
  242. package/studio/src/assets/react.svg +1 -0
  243. package/studio/src/components/Capabilities.tsx +80 -0
  244. package/studio/src/components/CommandsManager.tsx +94 -0
  245. package/studio/src/components/CostDashboard.tsx +182 -0
  246. package/studio/src/components/CredentialCapture.tsx +196 -0
  247. package/studio/src/components/CredentialsManager.tsx +257 -0
  248. package/studio/src/components/DaemonPanel.tsx +91 -0
  249. package/studio/src/components/DesktopPanel.tsx +118 -0
  250. package/studio/src/components/GoalTemplates.tsx +190 -0
  251. package/studio/src/components/GoalsPanel.tsx +235 -0
  252. package/studio/src/components/MemoryExplorer.tsx +152 -0
  253. package/studio/src/components/MultimodalPanel.tsx +150 -0
  254. package/studio/src/components/NotificationsPanel.tsx +175 -0
  255. package/studio/src/components/PluginsManager.tsx +60 -0
  256. package/studio/src/components/SandboxPanel.tsx +118 -0
  257. package/studio/src/components/ScriptsManager.tsx +269 -0
  258. package/studio/src/components/SkillsManager.tsx +123 -0
  259. package/studio/src/components/SwarmPanel.tsx +149 -0
  260. package/studio/src/components/TaskStreaming.tsx +189 -0
  261. package/studio/src/components/Terminal.tsx +200 -0
  262. package/studio/src/index.css +51 -0
  263. package/studio/src/main.tsx +13 -0
  264. package/studio/tailwind.config.js +47 -0
  265. package/studio/tsconfig.app.json +28 -0
  266. package/studio/tsconfig.json +7 -0
  267. package/studio/tsconfig.node.json +26 -0
  268. package/studio/vite.config.ts +7 -0
@@ -0,0 +1,58 @@
1
+ export type AgentRole = 'planner' | 'coder' | 'reviewer' | 'researcher' | 'tester' | 'custom';
2
+ export interface SwarmConfig {
3
+ /** Enable swarm mode */
4
+ enabled: boolean;
5
+ /** Max concurrent agents */
6
+ maxAgents: number;
7
+ /** Default model for swarm agents */
8
+ model: string;
9
+ /** Whether agents can spawn sub-agents */
10
+ allowDelegation: boolean;
11
+ /** Max depth of delegation chain */
12
+ maxDelegationDepth: number;
13
+ /** Timeout for each agent task (ms) */
14
+ agentTimeout: number;
15
+ }
16
+ export declare const DEFAULT_SWARM_CONFIG: SwarmConfig;
17
+ export interface SwarmMessage {
18
+ id: string;
19
+ from: string;
20
+ to: string;
21
+ type: SwarmMessageType;
22
+ payload: unknown;
23
+ timestamp: Date;
24
+ }
25
+ export type SwarmMessageType = 'task_assign' | 'task_result' | 'task_error' | 'delegate' | 'status_update' | 'artifact' | 'review_request' | 'review_response' | 'broadcast';
26
+ export interface AgentTask {
27
+ id: string;
28
+ description: string;
29
+ role: AgentRole;
30
+ assignedTo?: string;
31
+ status: 'pending' | 'running' | 'completed' | 'failed';
32
+ result?: string;
33
+ error?: string;
34
+ createdAt: Date;
35
+ completedAt?: Date;
36
+ parentTaskId?: string;
37
+ subtasks?: string[];
38
+ }
39
+ export interface SwarmAgent {
40
+ id: string;
41
+ role: AgentRole;
42
+ name: string;
43
+ status: 'idle' | 'busy' | 'done' | 'error';
44
+ currentTask?: string;
45
+ model: string;
46
+ depth: number;
47
+ completedTasks: number;
48
+ }
49
+ export interface SwarmState {
50
+ id: string;
51
+ status: 'idle' | 'running' | 'completed' | 'failed';
52
+ agents: SwarmAgent[];
53
+ tasks: AgentTask[];
54
+ startedAt?: Date;
55
+ completedAt?: Date;
56
+ goalDescription?: string;
57
+ }
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/swarm/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9F,MAAM,WAAW,WAAW;IACxB,wBAAwB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,eAAe,EAAE,OAAO,CAAC;IACzB,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,EAAE,WAOlC,CAAC;AAEF,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GACtB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,UAAU,GACV,eAAe,GACf,UAAU,GACV,gBAAgB,GAChB,iBAAiB,GACjB,WAAW,CAAC;AAElB,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,10 @@
1
+ // ─── Swarm Types ───
2
+ export const DEFAULT_SWARM_CONFIG = {
3
+ enabled: false,
4
+ maxAgents: 5,
5
+ model: 'gpt-4o',
6
+ allowDelegation: true,
7
+ maxDelegationDepth: 3,
8
+ agentTimeout: 120000,
9
+ };
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/swarm/types.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAmBtB,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC7C,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,QAAQ;IACf,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM;CACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../../../src/tools/core/cmd.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD,eAAO,MAAM,MAAM,EAAE,cAAc,CAC/B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAClG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA+CvD,CAAC;AAEF,eAAO,MAAM,QAAQ;aAlDN,MAAM;WAAS,MAAM,EAAE;UAAQ,MAAM;cAAY,MAAM;UAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;YACtF,MAAM;YAAU,MAAM;cAAY,MAAM;IAiDtB,CAAC"}
1
+ {"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../../../src/tools/core/cmd.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,eAAO,MAAM,MAAM,EAAE,cAAc,CAC/B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAClG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA2EvD,CAAC;AAEF,eAAO,MAAM,QAAQ;aA9EN,MAAM;WAAS,MAAM,EAAE;UAAQ,MAAM;cAAY,MAAM;UAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;YACtF,MAAM;YAAU,MAAM;cAAY,MAAM;IA6EtB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { execFile } from 'node:child_process';
3
3
  import { promisify } from 'node:util';
4
+ import { getSandboxEngine } from '../../sandbox/engine.js';
4
5
  const execFileAsync = promisify(execFile);
5
6
  // ─── cmd.run ───
6
7
  export const cmdRun = {
@@ -22,6 +23,33 @@ export const cmdRun = {
22
23
  permissions: ['exec'],
23
24
  async execute(input, ctx) {
24
25
  const workDir = input.cwd ?? ctx.cwd;
26
+ // ─── Sandbox Mode ───
27
+ // If a sandbox engine is active, route the command through the Docker container
28
+ const sandbox = getSandboxEngine();
29
+ if (sandbox && sandbox.isActive) {
30
+ try {
31
+ const result = await sandbox.exec(input.command, input.args ?? [], {
32
+ cwd: workDir,
33
+ timeout: input.timeout,
34
+ env: input.env,
35
+ });
36
+ return {
37
+ success: result.exitCode === 0,
38
+ data: result,
39
+ durationMs: 0,
40
+ };
41
+ }
42
+ catch (err) {
43
+ const error = err;
44
+ return {
45
+ success: false,
46
+ data: { stdout: '', stderr: error.message ?? 'Sandbox execution failed', exitCode: 1 },
47
+ error: error.message ?? 'Sandbox execution failed',
48
+ durationMs: 0,
49
+ };
50
+ }
51
+ }
52
+ // ─── Direct Host Execution ───
25
53
  try {
26
54
  const { stdout, stderr } = await execFileAsync(input.command, input.args ?? [], {
27
55
  cwd: workDir,
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../../../src/tools/core/cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,kBAAkB;AAClB,MAAM,CAAC,MAAM,MAAM,GAGf;IACA,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,yBAAyB;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACtD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7C,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACnD,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,CAAC;IACF,WAAW,EAAE,CAAC,MAAM,CAAC;IACrB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACpB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE;gBAC5E,GAAG,EAAE,OAAO;gBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;gBACpC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE;gBACrC,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;YACH,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;gBAC3E,UAAU,EAAE,CAAC;aAChB,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,GAA4E,CAAC;YAC3F,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE;oBACF,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACtC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBACtC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;iBAC5B;gBACD,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,0BAA0B;gBAClD,UAAU,EAAE,CAAC;aAChB,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../../../src/tools/core/cmd.ts"],"names":[],"mappings":"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"}
@@ -9,19 +9,19 @@ export declare function getAgentDir(cwd?: string): string;
9
9
  /**
10
10
  * Get the skills directory
11
11
  */
12
- export declare function getSkillsDir(): string;
12
+ export declare function getSkillsDir(cwd?: string): string;
13
13
  /**
14
14
  * Get the plans directory
15
15
  */
16
- export declare function getPlansDir(): string;
16
+ export declare function getPlansDir(cwd?: string): string;
17
17
  /**
18
18
  * Get the runs directory
19
19
  */
20
- export declare function getRunsDir(): string;
20
+ export declare function getRunsDir(cwd?: string): string;
21
21
  /**
22
22
  * Get the plugins directory
23
23
  */
24
- export declare function getPluginsDir(): string;
24
+ export declare function getPluginsDir(cwd?: string): string;
25
25
  /**
26
26
  * Get the logs directory
27
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -15,26 +15,26 @@ export function getAgentDir(cwd = process.cwd()) {
15
15
  /**
16
16
  * Get the skills directory
17
17
  */
18
- export function getSkillsDir() {
19
- return path.join(getAgentDir(), 'skills');
18
+ export function getSkillsDir(cwd) {
19
+ return path.join(getAgentDir(cwd), 'skills');
20
20
  }
21
21
  /**
22
22
  * Get the plans directory
23
23
  */
24
- export function getPlansDir() {
25
- return path.join(getAgentDir(), 'plans');
24
+ export function getPlansDir(cwd) {
25
+ return path.join(getAgentDir(cwd), 'plans');
26
26
  }
27
27
  /**
28
28
  * Get the runs directory
29
29
  */
30
- export function getRunsDir() {
31
- return path.join(getAgentDir(), 'runs');
30
+ export function getRunsDir(cwd) {
31
+ return path.join(getAgentDir(cwd), 'runs');
32
32
  }
33
33
  /**
34
34
  * Get the plugins directory
35
35
  */
36
- export function getPluginsDir() {
37
- return path.join(getAgentDir(), 'plugins');
36
+ export function getPluginsDir(cwd) {
37
+ return path.join(getAgentDir(cwd), 'plugins');
38
38
  }
39
39
  /**
40
40
  * Get the logs directory
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAG,QAAkB;IACpD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IACzB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IACzB,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IACzB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,OAAO,SAAS,IAAI,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAG,QAAkB;IACpD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAY;IACpC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IACzB,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IACzB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,OAAO,SAAS,IAAI,IAAI,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC"}
@@ -464,9 +464,19 @@ my-plugin/
464
464
 
465
465
  ### Install and Manage
466
466
 
467
+ Plugins can be installed locally from a path or remotely from the official **Agent Hub** (`praveencs87/agent-skills` repository).
468
+
467
469
  ```bash
470
+ # Install the official GitHub plugin from the Agent Hub
471
+ agent plugins install github
472
+
473
+ # Install a local plugin bundle
468
474
  agent plugins install ./my-plugin
475
+
476
+ # List all installed plugins
469
477
  agent plugins list
478
+
479
+ # Remove a plugin
470
480
  agent plugins remove my-plugin
471
481
  ```
472
482
 
@@ -531,6 +541,133 @@ agent studio
531
541
  | **Daemon** | Start/stop daemon, view logs, check health |
532
542
  | **Costs** | Monitor LLM token usage and spend per model |
533
543
  | **Memory** | Search, add, and browse persistent agent memories |
544
+ | **Sandbox** | Monitor Docker sandbox status, start/stop containers |
545
+ | **Swarm** | View multi-agent sessions, agents, tasks, and delegation |
546
+ | **Desktop** | Screen capture, mouse clicks, keyboard input, hotkeys |
547
+ | **Multimodal** | Voice transcription, image analysis, text-to-speech |
548
+
549
+ ---
550
+
551
+ ## Sandboxed Docker Execution
552
+
553
+ Run all `cmd.run` commands inside isolated Docker containers for safe execution:
554
+
555
+ ```bash
556
+ agent sandbox start # Spin up an ephemeral container
557
+ agent sandbox status # Show container info and uptime
558
+ agent sandbox stop # Destroy the container
559
+ ```
560
+
561
+ ### Configuration
562
+
563
+ ```yaml
564
+ # agent.yaml
565
+ sandbox:
566
+ enabled: true
567
+ image: node:20-slim
568
+ timeout: 60000
569
+ network: bridge # bridge | host | none
570
+ mounts:
571
+ - hostPath: "."
572
+ containerPath: "/project"
573
+ readOnly: false
574
+ ```
575
+
576
+ When sandbox is active, all shell commands execute inside the Docker container via `docker exec`.
577
+
578
+ ---
579
+
580
+ ## Multi-Agent Swarm
581
+
582
+ Coordinate multiple specialized AI agents on complex goals:
583
+
584
+ ```bash
585
+ agent swarm start "Build a REST API with auth and tests"
586
+ agent swarm status # View agents, tasks, completion
587
+ agent swarm roles # List available agent roles
588
+ agent swarm stop # Stop the session
589
+ ```
590
+
591
+ ### Built-in Roles
592
+
593
+ | Role | Purpose | Tools |
594
+ |------|---------|-------|
595
+ | **Planner** | Decomposes goals into tasks, assigns to specialists | `fs.read`, `project.detect` |
596
+ | **Coder** | Writes production-ready code | `fs.read`, `fs.write`, `cmd.run`, `git.diff` |
597
+ | **Reviewer** | Reviews code for bugs, security, and style | `fs.read`, `fs.search`, `git.diff` |
598
+ | **Researcher** | Gathers information, analyzes patterns | `fs.read`, `fs.search`, `cmd.run` |
599
+ | **Tester** | Writes and runs tests | `fs.read`, `fs.write`, `cmd.run` |
600
+
601
+ ### Configuration
602
+
603
+ ```yaml
604
+ swarm:
605
+ enabled: true
606
+ maxAgents: 5
607
+ model: gpt-4o
608
+ allowDelegation: true
609
+ maxDelegationDepth: 3
610
+ ```
611
+
612
+ ---
613
+
614
+ ## Desktop Automation
615
+
616
+ Control the desktop with screenshots, mouse, and keyboard:
617
+
618
+ ```bash
619
+ agent desktop screenshot # Capture full screen
620
+ agent desktop screenshot -r 0,0,800,600 # Capture region
621
+ agent desktop click 500 300 # Click at coordinates
622
+ agent desktop type "Hello world" --enter
623
+ agent desktop hotkey ctrl+s # Keyboard shortcut
624
+ ```
625
+
626
+ ### Supported Platforms
627
+
628
+ | Platform | Screenshot Tool | Input Tool |
629
+ |----------|----------------|------------|
630
+ | **Linux** | scrot, gnome-screenshot, ImageMagick | xdotool |
631
+ | **macOS** | screencapture | osascript, cliclick |
632
+ | **Windows** | PowerShell | (planned) |
633
+
634
+ ### Configuration
635
+
636
+ ```yaml
637
+ desktop:
638
+ enabled: true
639
+ screenshotFormat: png
640
+ actionDelay: 100
641
+ tempDir: /tmp/agent-desktop
642
+ ```
643
+
644
+ ---
645
+
646
+ ## Multimodal Interfaces
647
+
648
+ Voice input, image analysis, and text-to-speech powered by OpenAI:
649
+
650
+ ```bash
651
+ agent multimodal transcribe recording.wav # Speech → Text (Whisper)
652
+ agent multimodal analyze screenshot.png -p "What UI bugs do you see?" # Vision
653
+ agent multimodal speak "Deployment complete" # Text → Speech
654
+ ```
655
+
656
+ ### Configuration
657
+
658
+ ```yaml
659
+ multimodal:
660
+ enabled: true
661
+ voice:
662
+ model: whisper-1
663
+ vision:
664
+ model: gpt-4o
665
+ detail: auto
666
+ tts:
667
+ model: tts-1
668
+ voice: alloy # alloy, echo, fable, onyx, nova, shimmer
669
+ format: mp3
670
+ ```
534
671
 
535
672
  ---
536
673
 
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "@praveencs/agent",
3
- "version": "0.9.29",
3
+ "version": "0.10.0",
4
4
  "files": [
5
5
  "dist",
6
6
  "bin",
7
+ "studio",
8
+ "agent-skills",
7
9
  "README.md",
8
10
  "ROADMAP.md",
9
11
  "docs",
@@ -87,4 +89,4 @@
87
89
  "tsx": "^4.19.2",
88
90
  "typescript": "^5.7.3"
89
91
  }
90
- }
92
+ }
@@ -0,0 +1,73 @@
1
+ # React + TypeScript + Vite
2
+
3
+ This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4
+
5
+ Currently, two official plugins are available:
6
+
7
+ - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
8
+ - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9
+
10
+ ## React Compiler
11
+
12
+ The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
13
+
14
+ ## Expanding the ESLint configuration
15
+
16
+ If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
17
+
18
+ ```js
19
+ export default defineConfig([
20
+ globalIgnores(['dist']),
21
+ {
22
+ files: ['**/*.{ts,tsx}'],
23
+ extends: [
24
+ // Other configs...
25
+
26
+ // Remove tseslint.configs.recommended and replace with this
27
+ tseslint.configs.recommendedTypeChecked,
28
+ // Alternatively, use this for stricter rules
29
+ tseslint.configs.strictTypeChecked,
30
+ // Optionally, add this for stylistic rules
31
+ tseslint.configs.stylisticTypeChecked,
32
+
33
+ // Other configs...
34
+ ],
35
+ languageOptions: {
36
+ parserOptions: {
37
+ project: ['./tsconfig.node.json', './tsconfig.app.json'],
38
+ tsconfigRootDir: import.meta.dirname,
39
+ },
40
+ // other options...
41
+ },
42
+ },
43
+ ])
44
+ ```
45
+
46
+ You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
47
+
48
+ ```js
49
+ // eslint.config.js
50
+ import reactX from 'eslint-plugin-react-x'
51
+ import reactDom from 'eslint-plugin-react-dom'
52
+
53
+ export default defineConfig([
54
+ globalIgnores(['dist']),
55
+ {
56
+ files: ['**/*.{ts,tsx}'],
57
+ extends: [
58
+ // Other configs...
59
+ // Enable lint rules for React
60
+ reactX.configs['recommended-typescript'],
61
+ // Enable lint rules for React DOM
62
+ reactDom.configs.recommended,
63
+ ],
64
+ languageOptions: {
65
+ parserOptions: {
66
+ project: ['./tsconfig.node.json', './tsconfig.app.json'],
67
+ tsconfigRootDir: import.meta.dirname,
68
+ },
69
+ // other options...
70
+ },
71
+ },
72
+ ])
73
+ ```
@@ -0,0 +1,23 @@
1
+ import js from '@eslint/js'
2
+ import globals from 'globals'
3
+ import reactHooks from 'eslint-plugin-react-hooks'
4
+ import reactRefresh from 'eslint-plugin-react-refresh'
5
+ import tseslint from 'typescript-eslint'
6
+ import { defineConfig, globalIgnores } from 'eslint/config'
7
+
8
+ export default defineConfig([
9
+ globalIgnores(['dist']),
10
+ {
11
+ files: ['**/*.{ts,tsx}'],
12
+ extends: [
13
+ js.configs.recommended,
14
+ tseslint.configs.recommended,
15
+ reactHooks.configs.flat.recommended,
16
+ reactRefresh.configs.vite,
17
+ ],
18
+ languageOptions: {
19
+ ecmaVersion: 2020,
20
+ globals: globals.browser,
21
+ },
22
+ },
23
+ ])
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>studio</title>
8
+ </head>
9
+ <body>
10
+ <div id="root"></div>
11
+ <script type="module" src="/src/main.tsx"></script>
12
+ </body>
13
+ </html>