myaiforone 1.0.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 (315) hide show
  1. package/README.md +113 -0
  2. package/agents/_template/CLAUDE.md +18 -0
  3. package/agents/_template/agent.json +7 -0
  4. package/agents/platform/agentcreator/CLAUDE.md +300 -0
  5. package/agents/platform/appcreator/CLAUDE.md +158 -0
  6. package/agents/platform/gym/CLAUDE.md +486 -0
  7. package/agents/platform/gym/agent.json +40 -0
  8. package/agents/platform/gym/programs/agent-building/program.json +160 -0
  9. package/agents/platform/gym/programs/automations-mastery/program.json +129 -0
  10. package/agents/platform/gym/programs/getting-started/program.json +124 -0
  11. package/agents/platform/gym/programs/mcp-integrations/program.json +116 -0
  12. package/agents/platform/gym/programs/multi-model-strategy/program.json +115 -0
  13. package/agents/platform/gym/programs/prompt-engineering/program.json +136 -0
  14. package/agents/platform/gym/souls/alex.md +12 -0
  15. package/agents/platform/gym/souls/jordan.md +12 -0
  16. package/agents/platform/gym/souls/morgan.md +12 -0
  17. package/agents/platform/gym/souls/riley.md +12 -0
  18. package/agents/platform/gym/souls/sam.md +12 -0
  19. package/agents/platform/hub/CLAUDE.md +372 -0
  20. package/agents/platform/promptcreator/CLAUDE.md +130 -0
  21. package/agents/platform/skillcreator/CLAUDE.md +163 -0
  22. package/bin/cli.js +566 -0
  23. package/config.example.json +310 -0
  24. package/dist/agent-registry.d.ts +32 -0
  25. package/dist/agent-registry.d.ts.map +1 -0
  26. package/dist/agent-registry.js +144 -0
  27. package/dist/agent-registry.js.map +1 -0
  28. package/dist/channels/discord.d.ts +17 -0
  29. package/dist/channels/discord.d.ts.map +1 -0
  30. package/dist/channels/discord.js +114 -0
  31. package/dist/channels/discord.js.map +1 -0
  32. package/dist/channels/imessage.d.ts +23 -0
  33. package/dist/channels/imessage.d.ts.map +1 -0
  34. package/dist/channels/imessage.js +214 -0
  35. package/dist/channels/imessage.js.map +1 -0
  36. package/dist/channels/slack.d.ts +19 -0
  37. package/dist/channels/slack.d.ts.map +1 -0
  38. package/dist/channels/slack.js +167 -0
  39. package/dist/channels/slack.js.map +1 -0
  40. package/dist/channels/telegram.d.ts +19 -0
  41. package/dist/channels/telegram.d.ts.map +1 -0
  42. package/dist/channels/telegram.js +274 -0
  43. package/dist/channels/telegram.js.map +1 -0
  44. package/dist/channels/types.d.ts +44 -0
  45. package/dist/channels/types.d.ts.map +1 -0
  46. package/dist/channels/types.js +18 -0
  47. package/dist/channels/types.js.map +1 -0
  48. package/dist/channels/whatsapp.d.ts +23 -0
  49. package/dist/channels/whatsapp.d.ts.map +1 -0
  50. package/dist/channels/whatsapp.js +189 -0
  51. package/dist/channels/whatsapp.js.map +1 -0
  52. package/dist/config.d.ts +134 -0
  53. package/dist/config.d.ts.map +1 -0
  54. package/dist/config.js +127 -0
  55. package/dist/config.js.map +1 -0
  56. package/dist/cron.d.ts +8 -0
  57. package/dist/cron.d.ts.map +1 -0
  58. package/dist/cron.js +35 -0
  59. package/dist/cron.js.map +1 -0
  60. package/dist/decrypt-keys.d.ts +7 -0
  61. package/dist/decrypt-keys.d.ts.map +1 -0
  62. package/dist/decrypt-keys.js +53 -0
  63. package/dist/decrypt-keys.js.map +1 -0
  64. package/dist/encrypt-keys.d.ts +8 -0
  65. package/dist/encrypt-keys.d.ts.map +1 -0
  66. package/dist/encrypt-keys.js +62 -0
  67. package/dist/encrypt-keys.js.map +1 -0
  68. package/dist/executor.d.ts +31 -0
  69. package/dist/executor.d.ts.map +1 -0
  70. package/dist/executor.js +2009 -0
  71. package/dist/executor.js.map +1 -0
  72. package/dist/gemini-executor.d.ts +27 -0
  73. package/dist/gemini-executor.d.ts.map +1 -0
  74. package/dist/gemini-executor.js +160 -0
  75. package/dist/gemini-executor.js.map +1 -0
  76. package/dist/goals.d.ts +24 -0
  77. package/dist/goals.d.ts.map +1 -0
  78. package/dist/goals.js +189 -0
  79. package/dist/goals.js.map +1 -0
  80. package/dist/gym/activity-digest.d.ts +30 -0
  81. package/dist/gym/activity-digest.d.ts.map +1 -0
  82. package/dist/gym/activity-digest.js +506 -0
  83. package/dist/gym/activity-digest.js.map +1 -0
  84. package/dist/gym/dimension-scorer.d.ts +76 -0
  85. package/dist/gym/dimension-scorer.d.ts.map +1 -0
  86. package/dist/gym/dimension-scorer.js +236 -0
  87. package/dist/gym/dimension-scorer.js.map +1 -0
  88. package/dist/gym/gym-router.d.ts +7 -0
  89. package/dist/gym/gym-router.d.ts.map +1 -0
  90. package/dist/gym/gym-router.js +718 -0
  91. package/dist/gym/gym-router.js.map +1 -0
  92. package/dist/gym/index.d.ts +11 -0
  93. package/dist/gym/index.d.ts.map +1 -0
  94. package/dist/gym/index.js +11 -0
  95. package/dist/gym/index.js.map +1 -0
  96. package/dist/heartbeat.d.ts +21 -0
  97. package/dist/heartbeat.d.ts.map +1 -0
  98. package/dist/heartbeat.js +163 -0
  99. package/dist/heartbeat.js.map +1 -0
  100. package/dist/index.d.ts +2 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +254 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/keystore.d.ts +22 -0
  105. package/dist/keystore.d.ts.map +1 -0
  106. package/dist/keystore.js +178 -0
  107. package/dist/keystore.js.map +1 -0
  108. package/dist/logger.d.ts +9 -0
  109. package/dist/logger.d.ts.map +1 -0
  110. package/dist/logger.js +45 -0
  111. package/dist/logger.js.map +1 -0
  112. package/dist/memory/daily.d.ts +22 -0
  113. package/dist/memory/daily.d.ts.map +1 -0
  114. package/dist/memory/daily.js +82 -0
  115. package/dist/memory/daily.js.map +1 -0
  116. package/dist/memory/embeddings.d.ts +15 -0
  117. package/dist/memory/embeddings.d.ts.map +1 -0
  118. package/dist/memory/embeddings.js +154 -0
  119. package/dist/memory/embeddings.js.map +1 -0
  120. package/dist/memory/index.d.ts +32 -0
  121. package/dist/memory/index.d.ts.map +1 -0
  122. package/dist/memory/index.js +159 -0
  123. package/dist/memory/index.js.map +1 -0
  124. package/dist/memory/search.d.ts +21 -0
  125. package/dist/memory/search.d.ts.map +1 -0
  126. package/dist/memory/search.js +77 -0
  127. package/dist/memory/search.js.map +1 -0
  128. package/dist/memory/store.d.ts +23 -0
  129. package/dist/memory/store.d.ts.map +1 -0
  130. package/dist/memory/store.js +144 -0
  131. package/dist/memory/store.js.map +1 -0
  132. package/dist/ollama-executor.d.ts +17 -0
  133. package/dist/ollama-executor.d.ts.map +1 -0
  134. package/dist/ollama-executor.js +112 -0
  135. package/dist/ollama-executor.js.map +1 -0
  136. package/dist/openai-executor.d.ts +38 -0
  137. package/dist/openai-executor.d.ts.map +1 -0
  138. package/dist/openai-executor.js +197 -0
  139. package/dist/openai-executor.js.map +1 -0
  140. package/dist/router.d.ts +11 -0
  141. package/dist/router.d.ts.map +1 -0
  142. package/dist/router.js +185 -0
  143. package/dist/router.js.map +1 -0
  144. package/dist/test-message.d.ts +2 -0
  145. package/dist/test-message.d.ts.map +1 -0
  146. package/dist/test-message.js +60 -0
  147. package/dist/test-message.js.map +1 -0
  148. package/dist/utils/imsg-db-reader.d.ts +24 -0
  149. package/dist/utils/imsg-db-reader.d.ts.map +1 -0
  150. package/dist/utils/imsg-db-reader.js +92 -0
  151. package/dist/utils/imsg-db-reader.js.map +1 -0
  152. package/dist/utils/imsg-rpc.d.ts +25 -0
  153. package/dist/utils/imsg-rpc.d.ts.map +1 -0
  154. package/dist/utils/imsg-rpc.js +149 -0
  155. package/dist/utils/imsg-rpc.js.map +1 -0
  156. package/dist/utils/message-formatter.d.ts +3 -0
  157. package/dist/utils/message-formatter.d.ts.map +1 -0
  158. package/dist/utils/message-formatter.js +69 -0
  159. package/dist/utils/message-formatter.js.map +1 -0
  160. package/dist/web-ui.d.ts +12 -0
  161. package/dist/web-ui.d.ts.map +1 -0
  162. package/dist/web-ui.js +5784 -0
  163. package/dist/web-ui.js.map +1 -0
  164. package/dist/whatsapp-chats.d.ts +2 -0
  165. package/dist/whatsapp-chats.d.ts.map +1 -0
  166. package/dist/whatsapp-chats.js +76 -0
  167. package/dist/whatsapp-chats.js.map +1 -0
  168. package/dist/whatsapp-login.d.ts +2 -0
  169. package/dist/whatsapp-login.d.ts.map +1 -0
  170. package/dist/whatsapp-login.js +90 -0
  171. package/dist/whatsapp-login.js.map +1 -0
  172. package/dist/wiki-sync.d.ts +21 -0
  173. package/dist/wiki-sync.d.ts.map +1 -0
  174. package/dist/wiki-sync.js +147 -0
  175. package/dist/wiki-sync.js.map +1 -0
  176. package/docs/AddNewAgentGuide.md +100 -0
  177. package/docs/AddNewMcpGuide.md +72 -0
  178. package/docs/Architecture.md +795 -0
  179. package/docs/CLAUDE-AI-SETUP.md +166 -0
  180. package/docs/Setup.md +297 -0
  181. package/docs/ai-gym-architecture.md +1040 -0
  182. package/docs/ai-gym-build-plan.md +343 -0
  183. package/docs/ai-gym-onboarding.md +122 -0
  184. package/docs/appcreator_plan.md +348 -0
  185. package/docs/platform-mcp-audit.md +320 -0
  186. package/docs/server-deployment-plan.md +503 -0
  187. package/docs/superpowers/plans/2026-03-25-marketplace.md +1281 -0
  188. package/docs/superpowers/specs/2026-03-25-marketplace-design.md +287 -0
  189. package/docs/user-guide.md +2016 -0
  190. package/mcp-catalog.json +628 -0
  191. package/package.json +63 -0
  192. package/public/MyAIforOne-logomark-512.svg +16 -0
  193. package/public/MyAIforOne-logomark-transparent.svg +15 -0
  194. package/public/activity.html +314 -0
  195. package/public/admin.html +1674 -0
  196. package/public/agent-dashboard.html +670 -0
  197. package/public/api-docs.html +1106 -0
  198. package/public/automations.html +722 -0
  199. package/public/canvas.css +223 -0
  200. package/public/canvas.js +588 -0
  201. package/public/changelog.html +231 -0
  202. package/public/gym.html +2766 -0
  203. package/public/home.html +1930 -0
  204. package/public/index.html +2809 -0
  205. package/public/lab.html +1643 -0
  206. package/public/library.html +1442 -0
  207. package/public/marketplace.html +1101 -0
  208. package/public/mcp-docs.html +441 -0
  209. package/public/mini.html +390 -0
  210. package/public/monitor.html +584 -0
  211. package/public/org.html +4304 -0
  212. package/public/projects.html +734 -0
  213. package/public/settings.html +645 -0
  214. package/public/tasks.html +932 -0
  215. package/public/trainers/alex.svg +12 -0
  216. package/public/trainers/jordan.svg +12 -0
  217. package/public/trainers/morgan.svg +12 -0
  218. package/public/trainers/riley.svg +12 -0
  219. package/public/trainers/sam.svg +12 -0
  220. package/public/user-guide.html +218 -0
  221. package/registry/agents.json +3 -0
  222. package/registry/apps.json +20 -0
  223. package/registry/installed-drafts.json +3 -0
  224. package/registry/mcps.json +1084 -0
  225. package/registry/prompts/personal/mcp-test-prompt.md +6 -0
  226. package/registry/prompts/personal/memory-recall.md +6 -0
  227. package/registry/prompts/platform/brainstorm.md +15 -0
  228. package/registry/prompts/platform/code-review.md +16 -0
  229. package/registry/prompts/platform/explain.md +16 -0
  230. package/registry/prompts.json +58 -0
  231. package/registry/skills/external/brainstorming.md +5 -0
  232. package/registry/skills/external/code-review.md +40 -0
  233. package/registry/skills/external/frontend-patterns.md +642 -0
  234. package/registry/skills/external/frontend-slides.md +184 -0
  235. package/registry/skills/external/systematic-debugging.md +5 -0
  236. package/registry/skills/external/tdd.md +328 -0
  237. package/registry/skills/external/verification-before-completion.md +5 -0
  238. package/registry/skills/external/writing-plans.md +5 -0
  239. package/registry/skills/platform/ai41_app_build.md +930 -0
  240. package/registry/skills/platform/ai41_app_deploy.md +168 -0
  241. package/registry/skills/platform/ai41_app_orchestrator.md +239 -0
  242. package/registry/skills/platform/ai41_app_patterns.md +359 -0
  243. package/registry/skills/platform/ai41_app_register.md +85 -0
  244. package/registry/skills/platform/ai41_app_scaffold.md +421 -0
  245. package/registry/skills/platform/ai41_app_verify.md +107 -0
  246. package/registry/skills/platform/opProjectCreate.md +239 -0
  247. package/registry/skills/platform/op_devbrowser.md +136 -0
  248. package/registry/skills/platform/sop_brandguidelines.md +103 -0
  249. package/registry/skills/platform/sop_docx.md +117 -0
  250. package/registry/skills/platform/sop_frontenddesign.md +44 -0
  251. package/registry/skills/platform/sop_frontenddesign_v2.md +659 -0
  252. package/registry/skills/platform/sop_mcpbuilder.md +133 -0
  253. package/registry/skills/platform/sop_pdf.md +172 -0
  254. package/registry/skills/platform/sop_pptx.md +133 -0
  255. package/registry/skills/platform/sop_skillcreator.md +104 -0
  256. package/registry/skills/platform/sop_themefactory.md +128 -0
  257. package/registry/skills/platform/sop_webapptesting.md +75 -0
  258. package/registry/skills/platform/sop_webartifactsbuilder.md +97 -0
  259. package/registry/skills/platform/sop_xlsx.md +134 -0
  260. package/registry/skills.json +1055 -0
  261. package/scripts/discover-chats.sh +11 -0
  262. package/scripts/install-service-windows.ps1 +87 -0
  263. package/scripts/install-service.sh +52 -0
  264. package/scripts/seed-registry.ts +195 -0
  265. package/scripts/test-send.sh +5 -0
  266. package/scripts/tray-indicator.ps1 +35 -0
  267. package/scripts/uninstall-service-windows.ps1 +23 -0
  268. package/scripts/uninstall-service.sh +15 -0
  269. package/scripts/xbar-myagent.5s.sh +32 -0
  270. package/server/mcp-server/dist/index.d.ts +11 -0
  271. package/server/mcp-server/dist/index.js +1332 -0
  272. package/server/mcp-server/dist/lib/api-client.d.ts +165 -0
  273. package/server/mcp-server/dist/lib/api-client.js +241 -0
  274. package/server/mcp-server/index.ts +1545 -0
  275. package/server/mcp-server/lib/api-client.ts +366 -0
  276. package/server/mcp-server/tsconfig.json +14 -0
  277. package/src/agent-registry.ts +180 -0
  278. package/src/channels/discord.ts +129 -0
  279. package/src/channels/imessage.ts +261 -0
  280. package/src/channels/slack.ts +208 -0
  281. package/src/channels/telegram.ts +307 -0
  282. package/src/channels/types.ts +62 -0
  283. package/src/channels/whatsapp.ts +227 -0
  284. package/src/config.ts +281 -0
  285. package/src/cron.ts +43 -0
  286. package/src/decrypt-keys.ts +60 -0
  287. package/src/encrypt-keys.ts +70 -0
  288. package/src/executor.ts +2190 -0
  289. package/src/gemini-executor.ts +212 -0
  290. package/src/goals.ts +240 -0
  291. package/src/gym/activity-digest.ts +546 -0
  292. package/src/gym/dimension-scorer.ts +297 -0
  293. package/src/gym/gym-router.ts +801 -0
  294. package/src/gym/index.ts +19 -0
  295. package/src/heartbeat.ts +220 -0
  296. package/src/index.ts +275 -0
  297. package/src/keystore.ts +190 -0
  298. package/src/logger.ts +51 -0
  299. package/src/memory/daily.ts +101 -0
  300. package/src/memory/embeddings.ts +185 -0
  301. package/src/memory/index.ts +218 -0
  302. package/src/memory/search.ts +124 -0
  303. package/src/memory/store.ts +189 -0
  304. package/src/ollama-executor.ts +126 -0
  305. package/src/openai-executor.ts +259 -0
  306. package/src/router.ts +230 -0
  307. package/src/test-message.ts +72 -0
  308. package/src/utils/imsg-db-reader.ts +109 -0
  309. package/src/utils/imsg-rpc.ts +178 -0
  310. package/src/utils/message-formatter.ts +90 -0
  311. package/src/web-ui.ts +5778 -0
  312. package/src/whatsapp-chats.ts +91 -0
  313. package/src/whatsapp-login.ts +110 -0
  314. package/src/wiki-sync.ts +199 -0
  315. package/tsconfig.json +19 -0
@@ -0,0 +1,165 @@
1
+ /**
2
+ * MyAIforOne API Client
3
+ * Wraps all REST API endpoints for use by MCP tools.
4
+ */
5
+ export declare const health: () => Promise<any>;
6
+ export declare const dashboard: () => Promise<any>;
7
+ export declare const agentRegistry: () => Promise<any>;
8
+ export declare const listAgents: (org?: string) => Promise<any>;
9
+ export declare const getAgent: (id: string) => Promise<any>;
10
+ export declare const getAgentInstructions: (id: string) => Promise<any>;
11
+ export declare const createAgent: (body: any) => Promise<any>;
12
+ export declare const updateAgent: (id: string, body: any) => Promise<any>;
13
+ export declare const deleteAgent: (id: string, confirmAlias: string) => Promise<any>;
14
+ export declare const recoverAgent: (id: string, userText?: string, response?: string) => Promise<any>;
15
+ export declare const sendMessage: (agentId: string, text: string, accountOverride?: string) => Promise<any>;
16
+ export declare const startStream: (agentId: string, text: string, accountOverride?: string) => Promise<any>;
17
+ export declare const stopJob: (jobId: string) => Promise<any>;
18
+ export declare const delegate: (agentId: string, text: string) => Promise<any>;
19
+ export declare const listSessions: (agentId: string) => Promise<any>;
20
+ export declare const resetSession: (agentId: string, senderId?: string) => Promise<any>;
21
+ export declare const deleteSession: (agentId: string, senderId: string) => Promise<any>;
22
+ export declare const createSessionTab: (agentId: string, tabId: string, label: string, targetAgentId?: string) => Promise<any>;
23
+ export declare const listSessionTabs: (agentId: string) => Promise<any>;
24
+ export declare const getSessionTabHistory: (agentId: string, tabId: string) => Promise<any>;
25
+ export declare const renameSessionTab: (agentId: string, tabId: string, label: string) => Promise<any>;
26
+ export declare const deleteSessionTab: (agentId: string, tabId: string) => Promise<any>;
27
+ export declare const getModel: (agentId: string) => Promise<any>;
28
+ export declare const setModel: (agentId: string, model: string) => Promise<any>;
29
+ export declare const clearModel: (agentId: string) => Promise<any>;
30
+ export declare const getAgentCost: (agentId: string) => Promise<any>;
31
+ export declare const getAllCosts: () => Promise<any>;
32
+ export declare const getAgentSkills: (agentId: string) => Promise<any>;
33
+ export declare const getOrgSkills: (orgName: string) => Promise<any>;
34
+ export declare const listTasks: (agentId: string) => Promise<any>;
35
+ export declare const taskStats: (agentId: string) => Promise<any>;
36
+ export declare const createTask: (agentId: string, body: any) => Promise<any>;
37
+ export declare const updateTask: (agentId: string, taskId: string, body: any) => Promise<any>;
38
+ export declare const deleteTask: (agentId: string, taskId: string) => Promise<any>;
39
+ export declare const allTasks: () => Promise<any>;
40
+ export declare const listAutomations: () => Promise<any>;
41
+ export declare const createGoal: (agentId: string, body: any) => Promise<any>;
42
+ export declare const toggleGoal: (agentId: string, goalId: string) => Promise<any>;
43
+ export declare const triggerGoal: (agentId: string, goalId: string) => Promise<any>;
44
+ export declare const goalHistory: (agentId: string, goalId: string) => Promise<any>;
45
+ export declare const deleteGoal: (agentId: string, goalId: string) => Promise<any>;
46
+ export declare const createCron: (agentId: string, body: any) => Promise<any>;
47
+ export declare const toggleCron: (agentId: string, index: number) => Promise<any>;
48
+ export declare const triggerCron: (agentId: string, index: number) => Promise<any>;
49
+ export declare const cronHistory: (agentId: string, index: number) => Promise<any>;
50
+ export declare const deleteCron: (agentId: string, index: number) => Promise<any>;
51
+ export declare const listMcps: () => Promise<any>;
52
+ export declare const mcpCatalog: () => Promise<any>;
53
+ export declare const listMcpKeys: (agentId: string) => Promise<any>;
54
+ export declare const saveMcpKey: (agentId: string, mcpName: string, envVar: string, value: string) => Promise<any>;
55
+ export declare const deleteMcpKey: (agentId: string, mcpName: string) => Promise<any>;
56
+ export declare const listMcpConnections: (agentId: string) => Promise<any>;
57
+ export declare const createMcpConnection: (agentId: string, body: any) => Promise<any>;
58
+ export declare const deleteMcpConnection: (agentId: string, instanceName: string) => Promise<any>;
59
+ export declare const listChannels: () => Promise<any>;
60
+ export declare const updateChannel: (name: string, body: any) => Promise<any>;
61
+ export declare const addAgentRoute: (channelName: string, body: any) => Promise<any>;
62
+ export declare const removeAgentRoute: (channelName: string, agentId: string) => Promise<any>;
63
+ export declare const stickyRouting: () => Promise<any>;
64
+ export declare const marketplace: (type: string) => Promise<any>;
65
+ export declare const installMarketplace: (id: string, type: string) => Promise<any>;
66
+ export declare const assignToAgent: (agentId: string, itemId: string, type: string) => Promise<any>;
67
+ export declare const listApps: () => Promise<any>;
68
+ export declare const createApp: (body: any) => Promise<any>;
69
+ export declare const updateApp: (id: string, body: any) => Promise<any>;
70
+ export declare const deleteApp: (id: string) => Promise<any>;
71
+ export declare const activity: (limit?: number) => Promise<any>;
72
+ export declare const agentLogs: (agentId: string, limit?: number, offset?: number, search?: string) => Promise<any>;
73
+ export declare const agentMemory: (agentId: string, limit?: number) => Promise<any>;
74
+ export declare const searchMemory: (agentId: string, query: string) => Promise<any>;
75
+ export declare const clearMemoryContext: (agentId: string) => Promise<any>;
76
+ export declare const listPairing: () => Promise<any>;
77
+ export declare const pairSender: (senderKey: string) => Promise<any>;
78
+ export declare const unpairSender: (senderKey: string) => Promise<any>;
79
+ export declare const listAccounts: () => Promise<any>;
80
+ export declare const addAccount: (name: string, path: string) => Promise<any>;
81
+ export declare const deleteAccount: (name: string) => Promise<any>;
82
+ export declare const accountStatus: (name: string) => Promise<any>;
83
+ export declare const getServiceConfig: () => Promise<any>;
84
+ export declare const updateServiceConfig: (body: any) => Promise<any>;
85
+ export declare const testProvider: (provider: string) => Promise<any>;
86
+ export declare const getProfile: () => Promise<any>;
87
+ export declare const updateProfile: (body: any) => Promise<any>;
88
+ export declare const listFiles: (agentId: string) => Promise<any>;
89
+ export declare const downloadFile: (agentId: string, path: string) => Promise<any>;
90
+ export declare const createProject: (agentId: string, name: string) => Promise<any>;
91
+ export declare const listProjects: () => Promise<any>;
92
+ export declare const getProject: (id: string) => Promise<any>;
93
+ export declare const createInitiative: (body: any) => Promise<any>;
94
+ export declare const updateProject: (id: string, body: any) => Promise<any>;
95
+ export declare const deleteProject: (id: string) => Promise<any>;
96
+ export declare const linkToProject: (id: string, type: string, value: any) => Promise<any>;
97
+ export declare const unlinkFromProject: (id: string, type: string, value: any) => Promise<any>;
98
+ export declare const getProjectStatus: (id: string) => Promise<any>;
99
+ export declare const executeProject: (id: string, body?: any) => Promise<any>;
100
+ export declare const pauseProject: (id: string) => Promise<any>;
101
+ export declare const addMonitoredChat: (channelName: string, chatId: string) => Promise<any>;
102
+ export declare const removeMonitoredChat: (channelName: string, chatId: string) => Promise<any>;
103
+ export declare const scanSkills: (dir?: string) => Promise<any>;
104
+ export declare const createPrompt: (id: string, name: string, content: string) => Promise<any>;
105
+ export declare const createSkill: (id: string, name: string, description: string, content: string, scope: string, orgName?: string, agentId?: string) => Promise<any>;
106
+ export declare const addMcpToRegistry: (body: any) => Promise<any>;
107
+ export declare const checkAppHealth: (id: string) => Promise<any>;
108
+ export declare const startLogin: (name: string, path: string) => Promise<any>;
109
+ export declare const submitLoginCode: (accountName: string, code: string) => Promise<any>;
110
+ export declare const setPlatformDefault: (type: string, id: string) => Promise<any>;
111
+ export declare const importSkills: (agentId: string, skills: string[]) => Promise<any>;
112
+ export declare const getPromptTrigger: () => Promise<any>;
113
+ export declare const setPromptTrigger: (trigger: string) => Promise<any>;
114
+ export declare const getChatJobRaw: (jobId: string, after?: number) => Promise<any>;
115
+ export declare const triggerHeartbeat: (agentId: string, triggeredBy?: string) => Promise<any>;
116
+ export declare const heartbeatHistory: (agentId: string, limit?: number) => Promise<any>;
117
+ export declare const triggerWikiSync: (agentId: string, triggeredBy?: string) => Promise<any>;
118
+ export declare const wikiSyncHistory: (agentId: string, limit?: number) => Promise<any>;
119
+ export declare const whoami: (agentId: string) => Promise<any>;
120
+ export declare const changelog: () => Promise<any>;
121
+ export declare const sendWebhook: (agentId: string, text: string, secret?: string, channel?: string, chatId?: string) => Promise<any>;
122
+ export declare const installXbar: () => Promise<any>;
123
+ export declare const getPlatformAgents: () => Promise<any>;
124
+ export declare const browseDirs: (path?: string) => Promise<any>;
125
+ export declare const getSaasConfig: () => Promise<any>;
126
+ export declare const updateSaasConfig: (baseUrl?: string, apiKey?: string) => Promise<any>;
127
+ export declare const testSaasConnection: (baseUrl?: string, apiKey?: string) => Promise<any>;
128
+ export declare const publishToSaas: (type: string, id: string, destination?: string) => Promise<any>;
129
+ export declare const uploadFile: (agentId: string, fileName: string, base64Content: string, mode?: string) => Promise<any>;
130
+ export declare const getUserGuide: () => Promise<any>;
131
+ export declare const writeMemory: (agentId: string, content: string, target?: string) => Promise<any>;
132
+ export declare const getSkillContent: (path: string) => Promise<any>;
133
+ export declare const updateGoal: (agentId: string, goalId: string, body: any) => Promise<any>;
134
+ export declare const updateCron: (agentId: string, index: number, body: any) => Promise<any>;
135
+ export declare const restart: () => Promise<any>;
136
+ export declare const listCapabilities: () => Promise<any>;
137
+ export declare const browseDrive: (path?: string) => Promise<any>;
138
+ export declare const readDriveFile: (path: string) => Promise<any>;
139
+ export declare const searchDrive: (q: string, path?: string, limit?: number, types?: string) => Promise<any>;
140
+ export declare const getGymLearnerProfile: () => Promise<any>;
141
+ export declare const updateGymLearnerProfile: (body: any) => Promise<any>;
142
+ export declare const getGymPlan: () => Promise<any>;
143
+ export declare const updateGymPlan: (body: any) => Promise<any>;
144
+ export declare const getGymProgress: () => Promise<any>;
145
+ export declare const updateGymProgress: (body: any) => Promise<any>;
146
+ export declare const listGymCards: () => Promise<any>;
147
+ export declare const createGymCard: (body: any) => Promise<any>;
148
+ export declare const dismissGymCard: (id: string) => Promise<any>;
149
+ export declare const snapshotDimensions: (body: any) => Promise<any>;
150
+ export declare const listGymPrograms: () => Promise<any>;
151
+ export declare const getGymProgram: (slug: string) => Promise<any>;
152
+ export declare const createGymProgram: (body: any) => Promise<any>;
153
+ export declare const importGymProgram: (body: any) => Promise<any>;
154
+ export declare const updateGymProgram: (slug: string, body: any) => Promise<any>;
155
+ export declare const deleteGymProgram: (slug: string) => Promise<any>;
156
+ export declare const getGymDimensionHistory: () => Promise<any>;
157
+ export declare const runGymDigest: () => Promise<any>;
158
+ export declare const getAgentActivitySummary: (id: string) => Promise<any>;
159
+ export declare const searchAgentLogs: (q: string, agentIds?: string) => Promise<any>;
160
+ export declare const getGymFeed: () => Promise<any>;
161
+ export declare const getGymConfig: () => Promise<any>;
162
+ export declare const listGymGuides: () => Promise<any>;
163
+ export declare const createGymGuide: (data: Record<string, unknown>) => Promise<any>;
164
+ export declare const getGymInsights: () => Promise<any>;
165
+ export declare const saveGymInsights: (data: Record<string, unknown>) => Promise<any>;
@@ -0,0 +1,241 @@
1
+ /**
2
+ * MyAIforOne API Client
3
+ * Wraps all REST API endpoints for use by MCP tools.
4
+ */
5
+ const BASE_URL = process.env.MYAGENT_API_URL || "http://localhost:4888";
6
+ async function api(path, opts = {}) {
7
+ let url = `${BASE_URL}${path}`;
8
+ if (opts.query) {
9
+ const params = new URLSearchParams();
10
+ for (const [k, v] of Object.entries(opts.query)) {
11
+ if (v !== undefined && v !== "")
12
+ params.set(k, String(v));
13
+ }
14
+ const qs = params.toString();
15
+ if (qs)
16
+ url += `?${qs}`;
17
+ }
18
+ const headers = {};
19
+ if (opts.body)
20
+ headers["Content-Type"] = "application/json";
21
+ const res = await fetch(url, {
22
+ method: opts.method || "GET",
23
+ headers,
24
+ body: opts.body ? JSON.stringify(opts.body) : undefined,
25
+ });
26
+ const text = await res.text();
27
+ try {
28
+ return JSON.parse(text);
29
+ }
30
+ catch {
31
+ return text;
32
+ }
33
+ }
34
+ // ─── Dashboard & Health ───────────────────────────────────────────
35
+ export const health = () => api("/health");
36
+ export const dashboard = () => api("/api/dashboard");
37
+ export const agentRegistry = () => api("/api/agent-registry");
38
+ // ─── Agents ───────────────────────────────────────────────────────
39
+ export const listAgents = (org) => api("/api/agents", { query: { org } });
40
+ export const getAgent = (id) => api(`/api/agents/${id}`);
41
+ export const getAgentInstructions = (id) => api(`/api/agents/${id}/instructions`);
42
+ export const createAgent = (body) => api("/api/agents", { method: "POST", body });
43
+ export const updateAgent = (id, body) => api(`/api/agents/${id}`, { method: "PUT", body });
44
+ export const deleteAgent = (id, confirmAlias) => api(`/api/agents/${id}`, { method: "DELETE", body: { confirmAlias } });
45
+ export const recoverAgent = (id, userText, response) => api(`/api/agents/${id}/recover`, { method: "POST", body: { userText: userText || "Session recovery triggered via MCP tool", response } });
46
+ // ─── Chat ─────────────────────────────────────────────────────────
47
+ export const sendMessage = (agentId, text, accountOverride) => api(`/api/chat/${agentId}`, { method: "POST", body: { text, accountOverride } });
48
+ export const startStream = (agentId, text, accountOverride) => api(`/api/chat/${agentId}/stream`, { method: "POST", body: { text, accountOverride } });
49
+ export const stopJob = (jobId) => api(`/api/chat/jobs/${jobId}/stop`, { method: "POST" });
50
+ export const delegate = (agentId, text) => api("/api/delegate", { method: "POST", body: { agentId, text } });
51
+ // ─── Sessions ─────────────────────────────────────────────────────
52
+ export const listSessions = (agentId) => api(`/api/agents/${agentId}/sessions`);
53
+ export const resetSession = (agentId, senderId) => api(`/api/agents/${agentId}/sessions/reset`, { method: "POST", body: { senderId } });
54
+ export const deleteSession = (agentId, senderId) => api(`/api/agents/${agentId}/sessions/${senderId}`, { method: "DELETE" });
55
+ // ─── Named Session Tabs ────────────────────────────────────────────
56
+ export const createSessionTab = (agentId, tabId, label, targetAgentId) => api(`/api/agents/${agentId}/session-tabs`, { method: "POST", body: { tabId, label, ...(targetAgentId ? { targetAgentId } : {}) } });
57
+ export const listSessionTabs = (agentId) => api(`/api/agents/${agentId}/session-tabs`);
58
+ export const getSessionTabHistory = (agentId, tabId) => api(`/api/agents/${agentId}/session-tabs/${tabId}/history`);
59
+ export const renameSessionTab = (agentId, tabId, label) => api(`/api/agents/${agentId}/session-tabs/${tabId}`, { method: "PUT", body: { label } });
60
+ export const deleteSessionTab = (agentId, tabId) => api(`/api/agents/${agentId}/session-tabs/${tabId}`, { method: "DELETE" });
61
+ // ─── Model ────────────────────────────────────────────────────────
62
+ export const getModel = (agentId) => api(`/api/agents/${agentId}/model`);
63
+ export const setModel = (agentId, model) => api(`/api/agents/${agentId}/model`, { method: "PUT", body: { model } });
64
+ export const clearModel = (agentId) => api(`/api/agents/${agentId}/model`, { method: "DELETE" });
65
+ // ─── Cost ─────────────────────────────────────────────────────────
66
+ export const getAgentCost = (agentId) => api(`/api/agents/${agentId}/cost`);
67
+ export const getAllCosts = () => api("/api/cost/all");
68
+ // ─── Skills ───────────────────────────────────────────────────────
69
+ export const getAgentSkills = (agentId) => api(`/api/agents/${agentId}/skills`);
70
+ export const getOrgSkills = (orgName) => api(`/api/skills/org/${orgName}`);
71
+ // ─── Tasks ────────────────────────────────────────────────────────
72
+ export const listTasks = (agentId) => api(`/api/agents/${agentId}/tasks`);
73
+ export const taskStats = (agentId) => api(`/api/agents/${agentId}/tasks/stats`);
74
+ export const createTask = (agentId, body) => api(`/api/agents/${agentId}/tasks`, { method: "POST", body });
75
+ export const updateTask = (agentId, taskId, body) => api(`/api/agents/${agentId}/tasks/${taskId}`, { method: "PUT", body });
76
+ export const deleteTask = (agentId, taskId) => api(`/api/agents/${agentId}/tasks/${taskId}`, { method: "DELETE" });
77
+ export const allTasks = () => api("/api/tasks/all");
78
+ // ─── Automations ──────────────────────────────────────────────────
79
+ export const listAutomations = () => api("/api/automations");
80
+ export const createGoal = (agentId, body) => api(`/api/agents/${agentId}/goals`, { method: "POST", body });
81
+ export const toggleGoal = (agentId, goalId) => api(`/api/agents/${agentId}/goals/${goalId}/toggle`, { method: "POST" });
82
+ export const triggerGoal = (agentId, goalId) => api(`/api/agents/${agentId}/goals/${goalId}/trigger`, { method: "POST" });
83
+ export const goalHistory = (agentId, goalId) => api(`/api/agents/${agentId}/goals/${goalId}/history`);
84
+ export const deleteGoal = (agentId, goalId) => api(`/api/agents/${agentId}/goals/${goalId}`, { method: "DELETE" });
85
+ export const createCron = (agentId, body) => api(`/api/agents/${agentId}/cron`, { method: "POST", body });
86
+ export const toggleCron = (agentId, index) => api(`/api/agents/${agentId}/cron/${index}/toggle`, { method: "POST" });
87
+ export const triggerCron = (agentId, index) => api(`/api/agents/${agentId}/cron/${index}/trigger`, { method: "POST" });
88
+ export const cronHistory = (agentId, index) => api(`/api/agents/${agentId}/cron/${index}/history`);
89
+ export const deleteCron = (agentId, index) => api(`/api/agents/${agentId}/cron/${index}`, { method: "DELETE" });
90
+ // ─── MCPs ─────────────────────────────────────────────────────────
91
+ export const listMcps = () => api("/api/mcps");
92
+ export const mcpCatalog = () => api("/api/mcp-catalog");
93
+ export const listMcpKeys = (agentId) => api(`/api/agents/${agentId}/mcp-keys`);
94
+ export const saveMcpKey = (agentId, mcpName, envVar, value) => api(`/api/agents/${agentId}/mcp-keys`, { method: "POST", body: { mcpName, envVar, value } });
95
+ export const deleteMcpKey = (agentId, mcpName) => api(`/api/agents/${agentId}/mcp-keys/${mcpName}`, { method: "DELETE" });
96
+ export const listMcpConnections = (agentId) => api(`/api/agents/${agentId}/mcp-connections`);
97
+ export const createMcpConnection = (agentId, body) => api(`/api/agents/${agentId}/mcp-connections`, { method: "POST", body });
98
+ export const deleteMcpConnection = (agentId, instanceName) => api(`/api/agents/${agentId}/mcp-connections/${instanceName}`, { method: "DELETE" });
99
+ // ─── Channels ─────────────────────────────────────────────────────
100
+ export const listChannels = () => api("/api/channels");
101
+ export const updateChannel = (name, body) => api(`/api/channels/${name}`, { method: "PUT", body });
102
+ export const addAgentRoute = (channelName, body) => api(`/api/channels/${channelName}/agents`, { method: "POST", body });
103
+ export const removeAgentRoute = (channelName, agentId) => api(`/api/channels/${channelName}/agents/${agentId}`, { method: "DELETE" });
104
+ export const stickyRouting = () => api("/api/sticky-routing");
105
+ // ─── Registry / Marketplace ───────────────────────────────────────
106
+ export const marketplace = (type) => api(`/api/marketplace/${type}`);
107
+ export const installMarketplace = (id, type) => api("/api/marketplace/install", { method: "POST", body: { id, type } });
108
+ export const assignToAgent = (agentId, itemId, type) => api("/api/marketplace/assign", { method: "POST", body: { agentIds: [agentId], id: itemId, type } });
109
+ // ─── Apps ─────────────────────────────────────────────────────────
110
+ export const listApps = () => api("/api/apps");
111
+ export const createApp = (body) => api("/api/apps", { method: "POST", body });
112
+ export const updateApp = (id, body) => api(`/api/apps/${id}`, { method: "PUT", body });
113
+ export const deleteApp = (id) => api(`/api/apps/${id}`, { method: "DELETE" });
114
+ // ─── Activity & Logs ──────────────────────────────────────────────
115
+ export const activity = (limit) => api("/api/activity", { query: { limit } });
116
+ export const agentLogs = (agentId, limit, offset, search) => api(`/api/agents/${agentId}/logs`, { query: { limit, offset, search } });
117
+ // ─── Memory ───────────────────────────────────────────────────────
118
+ export const agentMemory = (agentId, limit) => api(`/api/agents/${agentId}/memory`, { query: { limit } });
119
+ export const searchMemory = (agentId, query) => api(`/api/agents/${agentId}/memory/search`, { method: "POST", body: { query } });
120
+ export const clearMemoryContext = (agentId) => api(`/api/agents/${agentId}/memory/context`, { method: "DELETE" });
121
+ // ─── Pairing ──────────────────────────────────────────────────────
122
+ export const listPairing = () => api("/api/pairing");
123
+ export const pairSender = (senderKey) => api("/api/pairing", { method: "POST", body: { senderKey } });
124
+ export const unpairSender = (senderKey) => api(`/api/pairing/${encodeURIComponent(senderKey)}`, { method: "DELETE" });
125
+ // ─── Config ───────────────────────────────────────────────────────
126
+ export const listAccounts = () => api("/api/config/accounts");
127
+ export const addAccount = (name, path) => api("/api/config/accounts", { method: "POST", body: { name, path } });
128
+ export const deleteAccount = (name) => api(`/api/config/accounts/${encodeURIComponent(name)}`, { method: "DELETE" });
129
+ export const accountStatus = (name) => api(`/api/config/accounts/${encodeURIComponent(name)}/status`);
130
+ export const getServiceConfig = () => api("/api/config/service");
131
+ export const updateServiceConfig = (body) => api("/api/config/service", { method: "PUT", body });
132
+ export const testProvider = (provider) => api("/api/config/provider-test", { method: "POST", body: { provider } });
133
+ // ─── Profile ────────────────────────────────────────────────────────
134
+ export const getProfile = () => api("/api/profile");
135
+ export const updateProfile = (body) => api("/api/profile", { method: "PUT", body });
136
+ // ─── Files ────────────────────────────────────────────────────────
137
+ export const listFiles = (agentId) => api(`/api/agents/${agentId}/files`);
138
+ export const downloadFile = (agentId, path) => api(`/api/agents/${agentId}/download`, { query: { path } });
139
+ // ─── Additional ──────────────────────────────────────────────────
140
+ export const createProject = (agentId, name) => api(`/api/agents/${agentId}/projects`, { method: "POST", body: { id: name.toLowerCase().replace(/[^a-z0-9]+/g, "-"), name } });
141
+ // ─── Projects (cross-agent initiatives) ─────────────────────────
142
+ export const listProjects = () => api("/api/projects");
143
+ export const getProject = (id) => api(`/api/projects/${id}`);
144
+ export const createInitiative = (body) => api("/api/projects", { method: "POST", body });
145
+ export const updateProject = (id, body) => api(`/api/projects/${id}`, { method: "PUT", body });
146
+ export const deleteProject = (id) => api(`/api/projects/${id}`, { method: "DELETE" });
147
+ export const linkToProject = (id, type, value) => api(`/api/projects/${id}/link`, { method: "POST", body: { type, value } });
148
+ export const unlinkFromProject = (id, type, value) => api(`/api/projects/${id}/unlink`, { method: "POST", body: { type, value } });
149
+ export const getProjectStatus = (id) => api(`/api/projects/${id}/status`);
150
+ export const executeProject = (id, body) => api(`/api/projects/${id}/execute`, { method: "POST", body: body || {} });
151
+ export const pauseProject = (id) => api(`/api/projects/${id}/pause`, { method: "POST" });
152
+ export const addMonitoredChat = (channelName, chatId) => api(`/api/channels/${channelName}/monitored`, { method: "POST", body: { chatId: Number(chatId) } });
153
+ export const removeMonitoredChat = (channelName, chatId) => api(`/api/channels/${channelName}/monitored`, { method: "DELETE", body: { chatId: Number(chatId) } });
154
+ export const scanSkills = (dir) => api("/api/marketplace/scan-skills", { query: { dir } });
155
+ export const createPrompt = (id, name, content) => api("/api/marketplace/create-prompt", { method: "POST", body: { id, name, content } });
156
+ export const createSkill = (id, name, description, content, scope, orgName, agentId) => api("/api/skills/create", { method: "POST", body: { id, name, description, content, scope, orgName, agentId } });
157
+ export const addMcpToRegistry = (body) => api("/api/marketplace/add-mcp", { method: "POST", body });
158
+ export const checkAppHealth = (id) => api(`/api/apps/${id}/check-health`, { method: "POST" });
159
+ export const startLogin = (name, path) => api("/api/config/accounts/login", { method: "POST", body: { name, path } });
160
+ // ─── Login ───────────────────────────────────────────────────────
161
+ export const submitLoginCode = (accountName, code) => api("/api/config/accounts/login/code", { method: "POST", body: { accountName, code } });
162
+ // ─── Marketplace Extras ─────────────────────────────────────────
163
+ export const setPlatformDefault = (type, id) => api("/api/marketplace/platform-default", { method: "POST", body: { type, id } });
164
+ export const importSkills = (agentId, skills) => api("/api/marketplace/import-skills", { method: "POST", body: { agentId, skills } });
165
+ export const getPromptTrigger = () => api("/api/marketplace/prompt-trigger");
166
+ export const setPromptTrigger = (trigger) => api("/api/marketplace/prompt-trigger", { method: "POST", body: { trigger } });
167
+ // ─── Chat Streaming ─────────────────────────────────────────────
168
+ export const getChatJobRaw = (jobId, after) => api(`/api/chat/jobs/${jobId}/raw`, { query: { after } });
169
+ // ─── Heartbeat ──────────────────────────────────────────────────
170
+ export const triggerHeartbeat = (agentId, triggeredBy) => api(`/api/agents/${agentId}/heartbeat`, { method: "POST", body: { triggeredBy } });
171
+ export const heartbeatHistory = (agentId, limit) => api(`/api/agents/${agentId}/heartbeat-history`, { query: { limit } });
172
+ // ─── Wiki Sync ──────────────────────────────────────────────────
173
+ export const triggerWikiSync = (agentId, triggeredBy) => api(`/api/agents/${agentId}/wiki-sync`, { method: "POST", body: { triggeredBy } });
174
+ export const wikiSyncHistory = (agentId, limit) => api(`/api/agents/${agentId}/wiki-sync-history`, { query: { limit } });
175
+ // ─── Whoami ─────────────────────────────────────────────────────
176
+ export const whoami = (agentId) => api(`/api/whoami/${agentId}`);
177
+ // ─── Changelog ──────────────────────────────────────────────────
178
+ export const changelog = () => api("/api/changelog");
179
+ // ─── Webhook ────────────────────────────────────────────────────
180
+ export const sendWebhook = (agentId, text, secret, channel, chatId) => {
181
+ const headers = { "Content-Type": "application/json" };
182
+ if (secret)
183
+ headers["x-webhook-secret"] = secret;
184
+ return api(`/webhook/${agentId}`, { method: "POST", body: { text, channel, chatId } });
185
+ };
186
+ // ─── Install xbar ───────────────────────────────────────────────
187
+ export const installXbar = () => api("/api/install-xbar", { method: "POST" });
188
+ // ─── Lab / Platform Agents ───────────────────────────────────────
189
+ export const getPlatformAgents = () => api("/api/platform-agents");
190
+ export const browseDirs = (path) => api("/api/browse-dirs", { query: { path } });
191
+ // ─── SaaS Integration ───────────────────────────────────────────
192
+ export const getSaasConfig = () => api("/api/saas/config");
193
+ export const updateSaasConfig = (baseUrl, apiKey) => api("/api/saas/config", { method: "PUT", body: { baseUrl, apiKey } });
194
+ export const testSaasConnection = (baseUrl, apiKey) => api("/api/saas/test", { method: "POST", body: { baseUrl, apiKey } });
195
+ export const publishToSaas = (type, id, destination) => api("/api/saas/publish", { method: "POST", body: { type, id, destination } });
196
+ // ─── File Upload ────────────────────────────────────────────────
197
+ export const uploadFile = (agentId, fileName, base64Content, mode) => api(`/api/upload/${agentId}/json`, { method: "POST", body: { fileName, base64Content, mode } });
198
+ // ─── User Guide ─────────────────────────────────────────────────
199
+ export const getUserGuide = () => api("/api/user-guide");
200
+ // ─── Memory Write ───────────────────────────────────────────────
201
+ export const writeMemory = (agentId, content, target) => api(`/api/agents/${agentId}/memory/write`, { method: "POST", body: { content, target } });
202
+ // ─── Skill Content ──────────────────────────────────────────────
203
+ export const getSkillContent = (path) => api("/api/skills/content", { query: { path } });
204
+ // ─── Goal/Cron Update ───────────────────────────────────────────
205
+ export const updateGoal = (agentId, goalId, body) => api(`/api/agents/${agentId}/goals/${goalId}`, { method: "PUT", body });
206
+ export const updateCron = (agentId, index, body) => api(`/api/agents/${agentId}/cron/${index}`, { method: "PUT", body });
207
+ // ─── Service Restart ────────────────────────────────────────────
208
+ export const restart = () => api("/api/restart", { method: "POST" });
209
+ // ─── Discovery ──────────────────────────────────────────────────
210
+ export const listCapabilities = () => api("/api/capabilities");
211
+ // ─── Drive ──────────────────────────────────────────────────────
212
+ export const browseDrive = (path) => api("/api/drive/browse", { query: { path } });
213
+ export const readDriveFile = (path) => api("/api/drive/read", { query: { path } });
214
+ export const searchDrive = (q, path, limit, types) => api("/api/drive/search", { query: { q, path, limit, types } });
215
+ // ─── Gym ─────────────────────────────────────────────────────────
216
+ export const getGymLearnerProfile = () => api("/api/gym/learner-profile");
217
+ export const updateGymLearnerProfile = (body) => api("/api/gym/learner-profile", { method: "PUT", body });
218
+ export const getGymPlan = () => api("/api/gym/plan");
219
+ export const updateGymPlan = (body) => api("/api/gym/plan", { method: "PUT", body });
220
+ export const getGymProgress = () => api("/api/gym/progress");
221
+ export const updateGymProgress = (body) => api("/api/gym/progress", { method: "PUT", body });
222
+ export const listGymCards = () => api("/api/gym/cards");
223
+ export const createGymCard = (body) => api("/api/gym/cards", { method: "POST", body });
224
+ export const dismissGymCard = (id) => api(`/api/gym/cards/${id}`, { method: "DELETE" });
225
+ export const snapshotDimensions = (body) => api("/api/gym/dimensions/snapshot", { method: "POST", body });
226
+ export const listGymPrograms = () => api("/api/gym/programs");
227
+ export const getGymProgram = (slug) => api(`/api/gym/programs/${slug}`);
228
+ export const createGymProgram = (body) => api("/api/gym/programs", { method: "POST", body });
229
+ export const importGymProgram = (body) => api("/api/gym/programs/import-markdown", { method: "POST", body });
230
+ export const updateGymProgram = (slug, body) => api(`/api/gym/programs/${slug}`, { method: "PATCH", body });
231
+ export const deleteGymProgram = (slug) => api(`/api/gym/programs/${slug}`, { method: "DELETE" });
232
+ export const getGymDimensionHistory = () => api("/api/gym/dimensions/history");
233
+ export const runGymDigest = () => api("/api/gym/digest/run", { method: "POST" });
234
+ export const getAgentActivitySummary = (id) => api(`/api/agents/${id}/activity-summary`);
235
+ export const searchAgentLogs = (q, agentIds) => api("/api/agents/logs/search", { query: { q, agentIds } });
236
+ export const getGymFeed = () => api("/api/gym/feed");
237
+ export const getGymConfig = () => api("/api/gym/config");
238
+ export const listGymGuides = () => api("/api/gym/guides");
239
+ export const createGymGuide = (data) => api("/api/gym/guides", { method: "POST", body: data });
240
+ export const getGymInsights = () => api("/api/gym/insights");
241
+ export const saveGymInsights = (data) => api("/api/gym/insights", { method: "POST", body: data });