manigent 1.3.1__py3-none-any.whl

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 (357) hide show
  1. manigent/_manigent_plugin/LICENSE +21 -0
  2. manigent/_manigent_plugin/README.md +89 -0
  3. manigent/_manigent_plugin/references/cli-reference.md +349 -0
  4. manigent/_manigent_plugin/skills/bootstrap/SKILL.md +156 -0
  5. manigent/_manigent_plugin/skills/install-agent/SKILL.md +71 -0
  6. manigent/_manigent_plugin/skills/login/SKILL.md +68 -0
  7. manigent/_manigent_plugin/skills/logout/SKILL.md +46 -0
  8. manigent/_manigent_plugin/skills/register-agent/SKILL.md +212 -0
  9. manigent/_manigent_plugin/skills/register-assistant/SKILL.md +99 -0
  10. manigent/_manigent_plugin/skills/signup/SKILL.md +78 -0
  11. manigent/_manigent_plugin/skills/start/SKILL.md +56 -0
  12. manigent/_manigent_plugin/skills/stop/SKILL.md +37 -0
  13. manigent/api/action_executor.py +404 -0
  14. manigent/api/action_validator.py +531 -0
  15. manigent/api/actions.py +221 -0
  16. manigent/api/client.py +558 -0
  17. manigent/api/control.py +806 -0
  18. manigent/api/edge_protocol.py +123 -0
  19. manigent/api/fs_protocol.py +450 -0
  20. manigent/api/host_protocol.py +298 -0
  21. manigent/api/managed_job_client.py +124 -0
  22. manigent/api/responses.py +342 -0
  23. manigent/api/retry_transport.py +178 -0
  24. manigent/api/turn_protocol.py +78 -0
  25. manigent/cli.py +161 -0
  26. manigent/cli_brief.py +197 -0
  27. manigent/cli_browser.py +441 -0
  28. manigent/cli_caldav.py +125 -0
  29. manigent/cli_client.py +700 -0
  30. manigent/cli_daemon.py +229 -0
  31. manigent/cli_doctor.py +123 -0
  32. manigent/cli_env.py +270 -0
  33. manigent/cli_fs.py +469 -0
  34. manigent/cli_gcal.py +152 -0
  35. manigent/cli_gdrive.py +85 -0
  36. manigent/cli_gdrive_write.py +134 -0
  37. manigent/cli_gmail.py +226 -0
  38. manigent/cli_homekit.py +57 -0
  39. manigent/cli_http_api.py +181 -0
  40. manigent/cli_hub.py +506 -0
  41. manigent/cli_ib.py +155 -0
  42. manigent/cli_job.py +180 -0
  43. manigent/cli_knowledge_dir.py +48 -0
  44. manigent/cli_lifecycle.py +467 -0
  45. manigent/cli_mailbox.py +113 -0
  46. manigent/cli_media.py +144 -0
  47. manigent/cli_model_config.py +545 -0
  48. manigent/cli_oauth.py +218 -0
  49. manigent/cli_osxphotos.py +78 -0
  50. manigent/cli_plan.py +1639 -0
  51. manigent/cli_runner.py +5678 -0
  52. manigent/cli_skill.py +309 -0
  53. manigent/cli_sop.py +482 -0
  54. manigent/cli_todo.py +1165 -0
  55. manigent/doctor.py +1167 -0
  56. manigent/integrations/_config_resolve.py +98 -0
  57. manigent/integrations/auth/google_oauth.py +438 -0
  58. manigent/integrations/browser/_daemon.py +293 -0
  59. manigent/integrations/browser/_lib.py +1147 -0
  60. manigent/integrations/caldav/_lib.py +354 -0
  61. manigent/integrations/gcal/_lib.py +87 -0
  62. manigent/integrations/gdrive/_lib.py +104 -0
  63. manigent/integrations/gdrive_write/_lib.py +244 -0
  64. manigent/integrations/gmail/_lib.py +220 -0
  65. manigent/integrations/homekit/_lib.py +90 -0
  66. manigent/integrations/http_api/_client.py +447 -0
  67. manigent/integrations/ib/_lib.py +953 -0
  68. manigent/integrations/mailbox/_lib.py +508 -0
  69. manigent/integrations/media/_lib.py +725 -0
  70. manigent/integrations/osxphotos/_lib.py +152 -0
  71. manigent/llm/_harness_tools.py +408 -0
  72. manigent/llm/_openai_wire.py +257 -0
  73. manigent/llm/_structured_text.py +134 -0
  74. manigent/llm/antigravity_cli.py +473 -0
  75. manigent/llm/api_provider.py +1559 -0
  76. manigent/llm/base.py +1072 -0
  77. manigent/llm/claude_cli.py +550 -0
  78. manigent/llm/codex_cli.py +505 -0
  79. manigent/llm/gemini_cli.py +458 -0
  80. manigent/llm/native_harness.py +460 -0
  81. manigent/llm/opencode_cli.py +425 -0
  82. manigent/llm/pricing.py +91 -0
  83. manigent/llm/prompt_builder.py +2450 -0
  84. manigent/llm/smart_router.py +194 -0
  85. manigent/llm/triggers.py +68 -0
  86. manigent/mcp/config_resolve.py +52 -0
  87. manigent/mcp/servers/chess_server.py +389 -0
  88. manigent/mcp/servers/chess_view.html +272 -0
  89. manigent/models/agent.py +2905 -0
  90. manigent/models/agent_bundle.py +298 -0
  91. manigent/models/brief_tab.py +311 -0
  92. manigent/models/chat_message.py +231 -0
  93. manigent/models/chatroom.py +1108 -0
  94. manigent/models/context.py +1159 -0
  95. manigent/models/desk_label.py +836 -0
  96. manigent/models/desk_read_state.py +220 -0
  97. manigent/models/desk_sign_off.py +267 -0
  98. manigent/models/desk_sop.py +965 -0
  99. manigent/models/desk_todo.py +1603 -0
  100. manigent/models/desk_todo_link.py +404 -0
  101. manigent/models/file_cache.py +75 -0
  102. manigent/models/host.py +732 -0
  103. manigent/models/install_token.py +401 -0
  104. manigent/models/invitation_code.py +162 -0
  105. manigent/models/knowledge_pack.py +552 -0
  106. manigent/models/managed_job.py +295 -0
  107. manigent/models/model_config.py +564 -0
  108. manigent/models/model_defaults.py +238 -0
  109. manigent/models/onboarding_plan.py +161 -0
  110. manigent/models/participant.py +449 -0
  111. manigent/models/persistable.py +892 -0
  112. manigent/models/plan_markdown.py +1774 -0
  113. manigent/models/project.py +1343 -0
  114. manigent/models/project_plan.py +8104 -0
  115. manigent/models/project_report.py +145 -0
  116. manigent/models/provenance.py +261 -0
  117. manigent/models/provider_agents.py +101 -0
  118. manigent/models/public_request.py +108 -0
  119. manigent/models/reflection_schedule.py +191 -0
  120. manigent/models/scheduled_message.py +285 -0
  121. manigent/models/share_token.py +190 -0
  122. manigent/models/skill_version.py +31 -0
  123. manigent/models/sop_template.py +187 -0
  124. manigent/models/thinking_partner_plan.py +187 -0
  125. manigent/models/tunnel_binding.py +129 -0
  126. manigent/models/user.py +1276 -0
  127. manigent/models/work_tracker.py +510 -0
  128. manigent/runner/agent_dir_readmes.py +262 -0
  129. manigent/runner/cost_recorder.py +95 -0
  130. manigent/runner/egress_proxy.py +409 -0
  131. manigent/runner/home_fs.py +984 -0
  132. manigent/runner/home_fs_handler.py +257 -0
  133. manigent/runner/home_fs_win.py +410 -0
  134. manigent/runner/host_report.py +172 -0
  135. manigent/runner/invocation_registry.py +187 -0
  136. manigent/runner/job_supervisor.py +318 -0
  137. manigent/runner/knowledge_dir_migration.py +113 -0
  138. manigent/runner/knowledge_pack_manager.py +388 -0
  139. manigent/runner/mcp_manager.py +324 -0
  140. manigent/runner/model_auth_proxy.py +426 -0
  141. manigent/runner/netshim.py +109 -0
  142. manigent/runner/participant_notifier.py +404 -0
  143. manigent/runner/personal_skill_manager.py +38 -0
  144. manigent/runner/reactive_loop.py +1633 -0
  145. manigent/runner/references_index.py +150 -0
  146. manigent/runner/repo_push.py +189 -0
  147. manigent/runner/resync.py +113 -0
  148. manigent/runner/skill_manager.py +202 -0
  149. manigent/runner/system_skill_manager.py +140 -0
  150. manigent/runner/turn_capability.py +492 -0
  151. manigent/runner/turn_home.py +208 -0
  152. manigent/runner/turn_sandbox.py +645 -0
  153. manigent/runner/turn_scope.py +320 -0
  154. manigent/runner/turn_session.py +401 -0
  155. manigent/sync/changelog.py +885 -0
  156. manigent/sync/console_subscriber.py +222 -0
  157. manigent/sync/runloop.py +619 -0
  158. manigent/sync/runloop_manager.py +197 -0
  159. manigent/sync/subscriber.py +98 -0
  160. manigent/system_skills/author-brief-tab/SKILL.md +227 -0
  161. manigent/system_skills/author-brief-tab/manifest.json +6 -0
  162. manigent/system_skills/bootstrap/SKILL.md +156 -0
  163. manigent/system_skills/bootstrap/manifest.json +6 -0
  164. manigent/system_skills/canvas-design/LICENSE.txt +202 -0
  165. manigent/system_skills/canvas-design/SKILL.md +130 -0
  166. manigent/system_skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  167. manigent/system_skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  168. manigent/system_skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  169. manigent/system_skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  170. manigent/system_skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  171. manigent/system_skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  172. manigent/system_skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  173. manigent/system_skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  174. manigent/system_skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  175. manigent/system_skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  176. manigent/system_skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  177. manigent/system_skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  178. manigent/system_skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  179. manigent/system_skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  180. manigent/system_skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  181. manigent/system_skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  182. manigent/system_skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  183. manigent/system_skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  184. manigent/system_skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  185. manigent/system_skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  186. manigent/system_skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  187. manigent/system_skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  188. manigent/system_skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  189. manigent/system_skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  190. manigent/system_skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  191. manigent/system_skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  192. manigent/system_skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  193. manigent/system_skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  194. manigent/system_skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  195. manigent/system_skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  196. manigent/system_skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  197. manigent/system_skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  198. manigent/system_skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  199. manigent/system_skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  200. manigent/system_skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  201. manigent/system_skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  202. manigent/system_skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  203. manigent/system_skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  204. manigent/system_skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  205. manigent/system_skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  206. manigent/system_skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  207. manigent/system_skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  208. manigent/system_skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  209. manigent/system_skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  210. manigent/system_skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  211. manigent/system_skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  212. manigent/system_skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  213. manigent/system_skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  214. manigent/system_skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  215. manigent/system_skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  216. manigent/system_skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  217. manigent/system_skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  218. manigent/system_skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  219. manigent/system_skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  220. manigent/system_skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  221. manigent/system_skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  222. manigent/system_skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  223. manigent/system_skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  224. manigent/system_skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  225. manigent/system_skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  226. manigent/system_skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  227. manigent/system_skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  228. manigent/system_skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  229. manigent/system_skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  230. manigent/system_skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  231. manigent/system_skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  232. manigent/system_skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  233. manigent/system_skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  234. manigent/system_skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  235. manigent/system_skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  236. manigent/system_skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  237. manigent/system_skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  238. manigent/system_skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  239. manigent/system_skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  240. manigent/system_skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  241. manigent/system_skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  242. manigent/system_skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  243. manigent/system_skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  244. manigent/system_skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  245. manigent/system_skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  246. manigent/system_skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  247. manigent/system_skills/canvas-design/manifest.json +6 -0
  248. manigent/system_skills/coding-philosophy/SKILL.md +114 -0
  249. manigent/system_skills/coding-philosophy/manifest.json +6 -0
  250. manigent/system_skills/coding-plan/SKILL.md +248 -0
  251. manigent/system_skills/coding-plan/manifest.json +6 -0
  252. manigent/system_skills/coding-project-completion-report/SKILL.md +594 -0
  253. manigent/system_skills/coding-project-completion-report/manifest.json +6 -0
  254. manigent/system_skills/control-agent/SKILL.md +175 -0
  255. manigent/system_skills/control-agent/manifest.json +6 -0
  256. manigent/system_skills/control-computer/SKILL.md +182 -0
  257. manigent/system_skills/control-computer/manifest.json +6 -0
  258. manigent/system_skills/create-project/SKILL.md +282 -0
  259. manigent/system_skills/create-project/manifest.json +6 -0
  260. manigent/system_skills/decide-plan-as-owner/SKILL.md +165 -0
  261. manigent/system_skills/decide-plan-as-owner/manifest.json +6 -0
  262. manigent/system_skills/desk-sop/SKILL.md +296 -0
  263. manigent/system_skills/desk-sop/manifest.json +6 -0
  264. manigent/system_skills/desk-sop-publish/SKILL.md +70 -0
  265. manigent/system_skills/desk-sop-publish/manifest.json +6 -0
  266. manigent/system_skills/desk-todo/SKILL.md +272 -0
  267. manigent/system_skills/desk-todo/manifest.json +6 -0
  268. manigent/system_skills/desk-todo-publish/SKILL.md +150 -0
  269. manigent/system_skills/desk-todo-publish/manifest.json +6 -0
  270. manigent/system_skills/direct-message/SKILL.md +147 -0
  271. manigent/system_skills/direct-message/manifest.json +6 -0
  272. manigent/system_skills/env-var/SKILL.md +112 -0
  273. manigent/system_skills/env-var/manifest.json +6 -0
  274. manigent/system_skills/explain-as-page/SKILL.md +206 -0
  275. manigent/system_skills/explain-as-page/manifest.json +6 -0
  276. manigent/system_skills/fs/SKILL.md +101 -0
  277. manigent/system_skills/fs/manifest.json +6 -0
  278. manigent/system_skills/git-workflow/SKILL.md +211 -0
  279. manigent/system_skills/git-workflow/manifest.json +6 -0
  280. manigent/system_skills/install-agent/SKILL.md +71 -0
  281. manigent/system_skills/install-agent/manifest.json +6 -0
  282. manigent/system_skills/install-mcp/SKILL.md +59 -0
  283. manigent/system_skills/install-mcp/manifest.json +6 -0
  284. manigent/system_skills/install-skill/SKILL.md +110 -0
  285. manigent/system_skills/install-skill/manifest.json +6 -0
  286. manigent/system_skills/invoke-timeout/SKILL.md +95 -0
  287. manigent/system_skills/invoke-timeout/manifest.json +6 -0
  288. manigent/system_skills/isolation-check/SKILL.md +73 -0
  289. manigent/system_skills/isolation-check/manifest.json +6 -0
  290. manigent/system_skills/login/SKILL.md +68 -0
  291. manigent/system_skills/login/manifest.json +6 -0
  292. manigent/system_skills/logout/SKILL.md +46 -0
  293. manigent/system_skills/logout/manifest.json +6 -0
  294. manigent/system_skills/manage-project-roster/SKILL.md +134 -0
  295. manigent/system_skills/manage-project-roster/manifest.json +6 -0
  296. manigent/system_skills/manage-team/SKILL.md +165 -0
  297. manigent/system_skills/manage-team/manifest.json +6 -0
  298. manigent/system_skills/managed-background-job/SKILL.md +84 -0
  299. manigent/system_skills/managed-background-job/manifest.json +6 -0
  300. manigent/system_skills/onboard-agent/SKILL.md +320 -0
  301. manigent/system_skills/onboard-agent/manifest.json +6 -0
  302. manigent/system_skills/personalize-agent/SKILL.md +191 -0
  303. manigent/system_skills/personalize-agent/manifest.json +6 -0
  304. manigent/system_skills/personalize-assistant/SKILL.md +197 -0
  305. manigent/system_skills/personalize-assistant/manifest.json +6 -0
  306. manigent/system_skills/plan/SKILL.md +1032 -0
  307. manigent/system_skills/plan/manifest.json +6 -0
  308. manigent/system_skills/post-chat-message/SKILL.md +74 -0
  309. manigent/system_skills/post-chat-message/manifest.json +6 -0
  310. manigent/system_skills/project-completion-report/SKILL.md +381 -0
  311. manigent/system_skills/project-completion-report/manifest.json +6 -0
  312. manigent/system_skills/propose-project/SKILL.md +463 -0
  313. manigent/system_skills/propose-project/manifest.json +6 -0
  314. manigent/system_skills/reconfigure-agent/SKILL.md +159 -0
  315. manigent/system_skills/reconfigure-agent/manifest.json +6 -0
  316. manigent/system_skills/reflect/SKILL.md +296 -0
  317. manigent/system_skills/reflect/manifest.json +6 -0
  318. manigent/system_skills/register-agent/SKILL.md +212 -0
  319. manigent/system_skills/register-agent/manifest.json +6 -0
  320. manigent/system_skills/register-assistant/SKILL.md +99 -0
  321. manigent/system_skills/register-assistant/manifest.json +6 -0
  322. manigent/system_skills/relay-to-agent/SKILL.md +54 -0
  323. manigent/system_skills/relay-to-agent/manifest.json +6 -0
  324. manigent/system_skills/schedule-message/SKILL.md +120 -0
  325. manigent/system_skills/schedule-message/manifest.json +6 -0
  326. manigent/system_skills/signup/SKILL.md +78 -0
  327. manigent/system_skills/signup/manifest.json +6 -0
  328. manigent/system_skills/start/SKILL.md +56 -0
  329. manigent/system_skills/start/manifest.json +6 -0
  330. manigent/system_skills/stop/SKILL.md +37 -0
  331. manigent/system_skills/stop/manifest.json +6 -0
  332. manigent/system_skills/uninstall-mcp/SKILL.md +48 -0
  333. manigent/system_skills/uninstall-mcp/manifest.json +6 -0
  334. manigent/system_skills/uninstall-skill/SKILL.md +48 -0
  335. manigent/system_skills/uninstall-skill/manifest.json +6 -0
  336. manigent/system_skills/update-mcp-config/SKILL.md +86 -0
  337. manigent/system_skills/update-mcp-config/manifest.json +6 -0
  338. manigent/system_skills/update-skill-config/SKILL.md +87 -0
  339. manigent/system_skills/update-skill-config/manifest.json +6 -0
  340. manigent/utils/agent_processes.py +276 -0
  341. manigent/utils/agent_storage.py +125 -0
  342. manigent/utils/email.py +563 -0
  343. manigent/utils/env_store.py +174 -0
  344. manigent/utils/extra_dirs.py +85 -0
  345. manigent/utils/file_io.py +485 -0
  346. manigent/utils/invoke_timeout.py +87 -0
  347. manigent/utils/jsonc.py +78 -0
  348. manigent/utils/knowledge_index.py +148 -0
  349. manigent/utils/nofollow_fs.py +279 -0
  350. manigent/utils/notification_center.py +67 -0
  351. manigent/utils/version.py +57 -0
  352. manigent-1.3.1.dist-info/METADATA +150 -0
  353. manigent-1.3.1.dist-info/RECORD +357 -0
  354. manigent-1.3.1.dist-info/WHEEL +5 -0
  355. manigent-1.3.1.dist-info/entry_points.txt +2 -0
  356. manigent-1.3.1.dist-info/licenses/LICENSE +21 -0
  357. manigent-1.3.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Manigent Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,89 @@
1
+ # manigent Plugin
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
+
5
+ Claude Code plugin for managing Manigent agent runners. Supports multiple agents per machine with knowledge base management.
6
+
7
+ ## Installation
8
+
9
+ The plugin ships inside the `manigent` runner package (as
10
+ `manigent/_manigent_plugin/`) and every agent running on the Claude CLI
11
+ loads it automatically. To use the skills in your own Claude Code session,
12
+ point Claude Code at that folder (`claude --plugin-dir <path>`). The separate
13
+ `manigent-plugin` repository is retired.
14
+
15
+ ### Local development
16
+
17
+ From a local clone of this repo, point Claude Code at the repo root:
18
+
19
+ ```bash
20
+ claude --plugin-dir .
21
+ ```
22
+
23
+ Changes to `SKILL.md` files are picked up via `/reload-plugins` — no
24
+ reinstall needed.
25
+
26
+ ### Platform support
27
+
28
+ - **macOS / Linux / WSL**: first-class. Skill commands assume a POSIX shell.
29
+ - **Windows (native)**: the CLI's `start` / `stop` / `status` branch on
30
+ `sys.platform` to use `CREATE_NEW_PROCESS_GROUP` + `CTRL_BREAK_EVENT` /
31
+ `taskkill /F` instead of POSIX process groups and SIGTERM. For the
32
+ shell snippets in `/manigent:*` skills, use **Git Bash** (ships with
33
+ Git for Windows) since they use POSIX syntax; PowerShell works for
34
+ `manigent` commands but not the skill shell blocks.
35
+
36
+ ## Skills
37
+
38
+ User-typeable slash commands (auto-generated from `manigent/system_skills/` entries whose manifest declares `surfaces: ["user_cli"]`):
39
+
40
+ | Skill | Invoke | Description |
41
+ |-------|--------|-------------|
42
+ | **bootstrap** | `/manigent:bootstrap` | Install/upgrade the `manigent` CLI via `uv` (run this first on a fresh machine) |
43
+ | **signup** | `/manigent:signup` | Register a new user account (email verification required after) |
44
+ | **login** | `/manigent:login` | Log in and persist the session on this machine (`manigent user login --save`) |
45
+ | **register-assistant** | `/manigent:register-assistant` | Create the user's personal assistant agent (`{username}-assistant`); sets up the daily reflection schedule and (by default) the personalize-trigger DM |
46
+ | **register-agent** | `/manigent:register-agent` | Register a single worker agent under the current user (uses the saved session — no password re-prompt) |
47
+ | **install-agent** | `/manigent:install-agent` | Install ONE ready-made specialist from the agent pool (`manigent agent install <name>`; `--list` shows the pool) |
48
+ | **start** | `/manigent:start` | Start agent runner(s) for the current user |
49
+ | **stop** | `/manigent:stop` | Stop agent runner(s) for the current user |
50
+ | **logout** | `/manigent:logout` | Log out (keeps user data and agents) |
51
+
52
+ Agent-runtime skills (`/manigent:reflect`, `/manigent:personalize`, install/uninstall-{skill,mcp}, propose-project, desk-sop, canvas-design) ship in `manigent/system_skills/` but are invoked by the agent runtime (via DM markers or LLM discretion), not typed by users. `/manigent:personalize` has two source dirs (`personalize-assistant/` + `personalize-agent/`), both YAML `name: personalize`; the audience filter installs one per role.
53
+
54
+ ## Quick Start
55
+
56
+ ```
57
+ > /manigent:bootstrap # one-time: install the CLI via uv
58
+ > /manigent:signup # register account, then verify email
59
+ > /manigent:login # log in + persist session
60
+ > /manigent:register-assistant # create your personal assistant
61
+ > /manigent:start # bring agents online
62
+ > /manigent:install-agent contract_reviewer # later: add a specialist
63
+ ```
64
+
65
+ To define an agent yourself, use `/manigent:register-agent` instead.
66
+
67
+ ## Multi-Agent Support
68
+
69
+ Run `/manigent:register-agent` or `/manigent:install-agent` once per agent to add more agents. Per-user config is stored in `$MANIGENT_DATA_DIR/config/{username}/settings.json` (default: `~/.manigent/config/{username}/settings.json`):
70
+
71
+ ```json
72
+ {
73
+ "server_url": "https://manigent.ai",
74
+ "name": "alice",
75
+ "user": {
76
+ "username": "alice",
77
+ "token": "jwt..."
78
+ }
79
+ }
80
+ ```
81
+
82
+ The agent registry is **derived from the filesystem** — every directory under `$MANIGENT_DATA_DIR/agents/{username}-{name}-{id}/` with a `credential.json` is a runnable agent. The current user is tracked in `config/current_user`.
83
+
84
+ ## Prerequisites
85
+
86
+ - Python 3.11–3.13 (managed automatically by `uv`; bootstrap pins 3.11). Avoid
87
+ 3.14+ as the install interpreter — `patchright` (browser stealth) has no 3.14
88
+ wheels yet, so browser-driven skills degrade.
89
+ - `manigent` CLI — installed by `/manigent:bootstrap` via `uv tool install --python 3.11 manigent`
@@ -0,0 +1,349 @@
1
+ # manigent CLI Reference
2
+
3
+ ## Setup & Lifecycle commands
4
+
5
+ The user-side onboarding flow is `bootstrap → signup → user login → assistant register → start`. Add ready-made specialists one at a time with `agent install <name>` (or define your own with `agent register`) at any point after `user login`.
6
+
7
+ ### user login
8
+
9
+ Log in and (by default) persist the session so follow-up commands don't need credentials.
10
+
11
+ ```bash
12
+ manigent user login <username> <password> [--server <url>] [--no-save] [--data-dir <dir>]
13
+ ```
14
+
15
+ **Options:**
16
+ - `--save` / `--no-save` — Persist the session by default: write the JWT into `{data-dir}/config/{username}/settings.json` and set `current_user` so `manigent assistant register`, `manigent agent install`, `manigent start`, etc. work without re-authenticating. Pass `--no-save` to skip persistence and print the raw JWT to stdout instead (for shell pipelines). `--save` is still accepted as a no-op alias (it now matches the default).
17
+ - `--server, -s` — Server URL (default: `$MANIGENT_SERVER_URL` or `https://manigent.ai`).
18
+ - `--data-dir` — Root data directory (only used when the session is saved; default: `$MANIGENT_DATA_DIR` or `~/.manigent`).
19
+
20
+ By default only a confirmation line is printed. Pass `--no-save` to print the JWT to stdout (for shell pipelines), e.g. `TOKEN=$(manigent user login alice pw --no-save)`.
21
+
22
+ ### assistant register
23
+
24
+ Create the current user's personal assistant agent (`{username}-assistant`).
25
+
26
+ ```bash
27
+ manigent assistant register \
28
+ [--llm-provider <claude|openai|gemini|opencode|antigravity>] \
29
+ [--llm-model <model>] \
30
+ [--self-learning-daily-at <HH:MM>] \
31
+ [--reflect-timezone <IANA-tz>] \
32
+ [--auto-personalize] \
33
+ [-u <username> -p <password>] \
34
+ [--server <url>] [--data-dir <dir>]
35
+ ```
36
+
37
+ Idempotent: re-running against an existing assistant refreshes local files + reflection schedule but does not re-post the personalize-trigger DM. Reads the saved JWT from `settings.json` when `-u/-p` are omitted (after `user login`, which saves by default).
38
+
39
+ **Options:**
40
+ - `--llm-provider` — LLM backend (default: `claude`).
41
+ - `--llm-model` — Provider-specific model name; omit for the provider's default.
42
+ - `--self-learning-daily-at` — Local time of day (HH:MM) to fire the daily self-learning / reflection run (default: `09:00`). `--reflect-daily-at` is a deprecated alias, accepted for one release.
43
+ - `--reflect-timezone` — IANA timezone for the reflection schedule (default: host machine's timezone).
44
+ - `--auto-personalize` — Post `<!-- manigent:personalize-trigger -->` into the assistant's DM so the assistant variant of `/manigent:personalize` kicks off USER.md on first run. **Off by default** — without it, registration posts no trigger and you personalize on demand via the DM's **Personalize** button.
45
+
46
+ ### agent install
47
+
48
+ Install ONE specialist agent from the agent pool: register it under your
49
+ account and copy its role, field knowledge, reference material and private
50
+ skills into its home, each file checked against the sha256 the pool lists.
51
+
52
+ ```bash
53
+ manigent agent install --list [--json] [--from <url|path>]
54
+ manigent agent install <name> \
55
+ [--from <url|path>] \
56
+ [--team <label> ...] \
57
+ [--llm-provider <provider>] [--llm-base-url <url>] \
58
+ [--auto-personalize] [--overwrite-local] \
59
+ [-u <username> -p <password>] [--server <url>] [--data-dir <dir>]
60
+ ```
61
+
62
+ The default pool is the public `manigent-agents` repo at the release tag this
63
+ runner pins; `--from` (or `$MANIGENT_AGENT_POOL_URL`) reads another
64
+ `setup.json`, URL or local path. An unknown name exits 2 with close matches.
65
+ Re-running updates the agent: files changed locally since the last install are
66
+ kept unless `--overwrite-local`, and nothing is deleted.
67
+
68
+ ### start
69
+
70
+ Start all agents in the background.
71
+
72
+ ```bash
73
+ manigent start [--server <url>] [--config <settings.json>]
74
+ ```
75
+
76
+ Reads `~/.manigent/config/{user}/settings.json` and starts each agent as a background process.
77
+
78
+ ### stop
79
+
80
+ Stop all running agents.
81
+
82
+ ```bash
83
+ manigent stop [--config <settings.json>]
84
+ ```
85
+
86
+ ### status
87
+
88
+ Show status of all agents.
89
+
90
+ ```bash
91
+ manigent status [--config <settings.json>]
92
+ ```
93
+
94
+ ## agent commands
95
+
96
+ ### agent register
97
+
98
+ Register a new agent with the server (any authenticated user).
99
+
100
+ ```bash
101
+ manigent agent register <name> <description> \
102
+ --token <user_jwt> \
103
+ --server <url> \
104
+ [--data-dir <dir>] \
105
+ [--discoverable/--no-discoverable] \
106
+ [--capabilities "cap1,cap2"] \
107
+ [--team <team> [--team <team> ...]] \
108
+ [--from-card <card.json>]
109
+ ```
110
+
111
+ **Arguments:**
112
+ - `name` — Agent name (required unless `--from-card`)
113
+ - `description` — Short description (required unless `--from-card`)
114
+
115
+ **Options:**
116
+ - `--token, -t` — User JWT token (required)
117
+ - `--server, -s` — Server URL (default: `$MANIGENT_SERVER_URL` or `http://localhost:4567`)
118
+ - `--data-dir` — Root data directory (default: `$MANIGENT_DATA_DIR` or `~/.manigent`); agents are written under `{data-dir}/agents/`
119
+ - `--discoverable/--no-discoverable` — Publish in the public agent registry (default: private). Pass `--discoverable` to opt in.
120
+ - `--capabilities, -c` — Comma-separated capabilities list
121
+ - `--team` — Owner-defined team for the TEAMS sidebar (repeatable). Defaults to `$MANIGENT_AGENT_TEAMS` (comma-separated) when no `--team` flag is given.
122
+ - `--from-card` — Load name, description, capabilities from a card.json file
123
+ - `--save` — Save credentials to custom path
124
+
125
+ **Output:** Creates `credential.json` and `card.json` in `{data-dir}/agents/{name}-{id}/`
126
+
127
+ ### agent run
128
+
129
+ Start the agent runner process.
130
+
131
+ ```bash
132
+ manigent agent run [credentials.json] \
133
+ --server <url> \
134
+ --agent-dir <dir> \
135
+ [--knowledge-dir <dir>] \
136
+ [--claude-plugin-dir <dir>] \
137
+ [--log-level info]
138
+ ```
139
+
140
+ **Options:**
141
+ - `--server, -s` — Server URL
142
+ - `--agent-dir` — Agent working directory (contains credential.json, card.json)
143
+ - `--knowledge-dir, -k` — Knowledge base directory (passed as `--add-dir` to Claude)
144
+ - `--claude-plugin-dir` — Claude plugin directory (passed as `--plugin-dir` to Claude CLI, repeatable)
145
+ - `--log-level` — Logging level (default: `info`)
146
+
147
+ > **Note:** Git configuration (`git_url`) is per-project, set at project creation time via the web UI or `project create --git-url`. When set, the repo is cloned into `sandbox/projects/{name}-{id}/repos/{repo_name}/`; the agent's cwd stays at the sandbox root.
148
+
149
+ ### agent list
150
+
151
+ List all registered agents on the server.
152
+
153
+ ```bash
154
+ manigent agent list [--server <url>] [--full]
155
+ ```
156
+
157
+ ## team commands
158
+
159
+ Manage owner-defined teams surfaced under the TEAMS sidebar in the web UI. Team names are free-form strings carried on each agent's `card.json` as `user_teams: list[str]`; the sidebar derives the section list from agents you own (no per-user allowlist).
160
+
161
+ ### team list
162
+
163
+ List unique teams across the agents you own (with member counts).
164
+
165
+ ```bash
166
+ manigent team list [--agents] [--server <url>]
167
+ ```
168
+
169
+ - `--agents, -a` — Also print each team's member agents.
170
+
171
+ ### team add
172
+
173
+ Add a team to an agent (no-op if already present).
174
+
175
+ ```bash
176
+ manigent team add <agent-name-or-id> <team>
177
+ ```
178
+
179
+ ### team remove
180
+
181
+ Remove a team from an agent (no-op if absent).
182
+
183
+ ```bash
184
+ manigent team remove <agent-name-or-id> <team>
185
+ ```
186
+
187
+ ### team set
188
+
189
+ Replace an agent's team list with the given values (or clear with no `--team`).
190
+
191
+ ```bash
192
+ manigent team set <agent-name-or-id> --team X --team Y # replace
193
+ manigent team set <agent-name-or-id> # clear
194
+ ```
195
+
196
+ ## reflection commands
197
+
198
+ Configure your account-level reflection schedule. One cron expression fans out to all the agents you own; on each fire, the server triggers reflection only for agents with new activity since their last reflection (idle agents are skipped). Reflection runs as a marker-tagged DM trigger that the agent answers via the `/manigent:reflect` skill, which distills recent activity into `knowledge_dir/learnings/` (and `USER.md` for the user's personal assistant) AND audits the existing wiki for contradictions / stale claims / orphan pages in the same pass.
199
+
200
+ ### reflection set
201
+
202
+ Create or update the account-level reflection schedule.
203
+
204
+ ```bash
205
+ manigent reflection set --cron "<cron-expression>" \
206
+ [--token <user_jwt>] \
207
+ [--server <url>] \
208
+ [--data-dir <dir>]
209
+ ```
210
+
211
+ **Cron examples:** `0 9 * * *` (daily at 9am), `0 */6 * * *` (every 6 hours), `0 9 * * 1` (Mondays at 9am).
212
+
213
+ ### reflection off
214
+
215
+ Deactivate the account-level reflection schedule.
216
+
217
+ ```bash
218
+ manigent reflection off [--token <user_jwt>] [--server <url>] [--data-dir <dir>]
219
+ ```
220
+
221
+ ### reflection show
222
+
223
+ Show the current schedule, including last and next fire timestamps.
224
+
225
+ ```bash
226
+ manigent reflection show [--token <user_jwt>] [--server <url>] [--data-dir <dir>]
227
+ ```
228
+
229
+ ## bootstrap commands
230
+
231
+ The `manigent bootstrap` Typer app holds machine-level install commands only (Chromium for the playwright-browser skill, etc.) — **not** agent personalization, which is CLI-driven via `assistant register` and `agent install` (those post `<!-- manigent:personalize-trigger -->` DMs only when passed `--auto-personalize`; off by default). Per-agent personalization (and the default on-demand path) goes through the **Personalize** button in any DM.
232
+
233
+ ### bootstrap browser
234
+
235
+ One-time per machine: install Chromium for the `playwright-browser` skill.
236
+
237
+ ```bash
238
+ manigent bootstrap browser [--data-dir <dir>]
239
+ ```
240
+
241
+ Verifies Node.js ≥ 20, runs `npx playwright install chromium` (~150 MB), and on Linux also `playwright install-deps chromium`. Idempotent.
242
+
243
+ ## user commands
244
+
245
+ ### user register
246
+
247
+ Self-register a new user account (requires invitation code).
248
+
249
+ ```bash
250
+ manigent user register <username> <password> <email> \
251
+ --invitation-code <code> \
252
+ [--agree-tos] \
253
+ [--server <url>] \
254
+ [--data-dir <dir>]
255
+ ```
256
+
257
+ **Options:**
258
+ - `--invitation-code, -i` — Invitation code (required). Generate codes with `admin generate-invitation-codes`.
259
+ - `--agree-tos` — Agree to Terms of Service and Privacy Policy without interactive prompt.
260
+
261
+ **Behavior:** Creates user + assistant agent. A valid invitation code is required. The user must agree to the [Terms of Service](https://manigent.ai/tos) and [Privacy Policy](https://manigent.ai/privacy) — prompted interactively unless `--agree-tos` is passed. Login is blocked until email is verified. Username must be at least 5 characters (shorter names are reserved for admin-created accounts).
262
+
263
+ ### user listen
264
+
265
+ Listen for notifications from the user's assistant.
266
+
267
+ ```bash
268
+ manigent user listen <username> <password> [script] \
269
+ [--server <url>] \
270
+ [--console] \
271
+ [--no-colors]
272
+ ```
273
+
274
+ ## dm commands
275
+
276
+ All dm commands authenticate via (in order): explicit `-u <username> -p <password>`
277
+ login, `--token <jwt-or-assistant-token>`, `$MANIGENT_ASSISTANT_TOKEN`,
278
+ `$MANIGENT_USER_TOKEN`, or the saved session from `manigent user login` (saved by default).
279
+ With a saved session none of the auth flags are needed.
280
+
281
+ ### dm send
282
+
283
+ Send a direct message to an agent.
284
+
285
+ ```bash
286
+ manigent dm send <agent-name> "<message>" \
287
+ [-u <username> -p <password>] \
288
+ [--token <token>] \
289
+ [--server <url>]
290
+ ```
291
+
292
+ ### dm list
293
+
294
+ List all DM conversations.
295
+
296
+ ```bash
297
+ manigent dm list [-u <username> -p <password>] [--token <token>] [--server <url>]
298
+ ```
299
+
300
+ ### dm history
301
+
302
+ Show DM history with an agent.
303
+
304
+ ```bash
305
+ manigent dm history <agent-name> \
306
+ [-u <username> -p <password>] \
307
+ [--token <token>] \
308
+ [-n <limit>] \
309
+ [--server <url>]
310
+ ```
311
+
312
+ ### dm schedule
313
+
314
+ Schedule a recurring DM to an agent using a cron expression (evaluated in UTC).
315
+
316
+ ```bash
317
+ manigent dm schedule <agent-name> "<message>" \
318
+ --cron "<cron-expression>" \
319
+ [-u <username> -p <password>] \
320
+ [--token <token>] \
321
+ [--end-at <iso-datetime>] \
322
+ [--server <url>]
323
+ ```
324
+
325
+ **Cron examples:** `@hourly`, `@daily`, `@weekly`, `0 9 * * *` (daily at 9am), `*/30 * * * *` (every 30 min)
326
+
327
+ ### dm schedules
328
+
329
+ List your scheduled DM messages.
330
+
331
+ ```bash
332
+ manigent dm schedules [-u <username> -p <password>] [--token <token>] [--all] [--server <url>]
333
+ ```
334
+
335
+ ### dm unschedule
336
+
337
+ Cancel a scheduled DM message.
338
+
339
+ ```bash
340
+ manigent dm unschedule <schedule-id> [-u <username> -p <password>] [--token <token>] [--server <url>]
341
+ ```
342
+
343
+ ## Environment Variables
344
+
345
+ | Variable | Default | Description |
346
+ |----------|---------|-------------|
347
+ | `MANIGENT_SERVER_URL` | `https://manigent.ai` | Default server URL |
348
+ | `MANIGENT_DATA_DIR` | `~/.manigent` | Base data directory |
349
+ | `MANIGENT_AGENT_TEAMS` | _unset_ | Default teams (comma-separated) for `manigent agent register` when no `--team` is supplied |
@@ -0,0 +1,156 @@
1
+ ---
2
+ name: bootstrap
3
+ description: >
4
+ Install or upgrade the manigent CLI on this machine so other /manigent:*
5
+ skills can run. Uses uv for an isolated, cross-platform install that does
6
+ not depend on the user's Python. Use when users say "install manigent",
7
+ "set up manigent", "bootstrap manigent", or when another skill reports
8
+ the CLI is missing or out of date.
9
+ ---
10
+
11
+ # Bootstrap manigent
12
+
13
+ Install the `manigent` CLI so the other `/manigent:*` skills can run.
14
+
15
+ Uses [uv](https://docs.astral.sh/uv/) — a single-binary installer that manages
16
+ Python toolchains and installs CLIs in isolated environments. This avoids
17
+ PEP 668 ("externally managed environment") errors, keeps the user's Python
18
+ clean, and works the same on macOS, Linux, and WSL.
19
+
20
+ ## Requirements
21
+
22
+ - **`manigent >= 1.2.4`** — bump this floor together with the plugin
23
+ manifest when the plugin depends on newer CLI features.
24
+ - **Python 3.11–3.13** — manigent does **not** support Python 3.14+.
25
+ `patchright` (browser stealth) ships no 3.14 wheels, so a 3.14 install
26
+ either fails to resolve or silently drops browser support. Bootstrap
27
+ pins the CLI to Python 3.11 (step 4) so this ceiling holds regardless of
28
+ the machine's default interpreter.
29
+
30
+ ## Steps
31
+
32
+ 1. **Check whether `manigent` is already installed and recent**:
33
+ ```bash
34
+ if command -v manigent >/dev/null 2>&1; then
35
+ INSTALLED=$(manigent --version 2>/dev/null | awk '{print $NF}')
36
+ echo "Found manigent $INSTALLED"
37
+ else
38
+ echo "manigent not installed"
39
+ fi
40
+ ```
41
+ - If installed and version >= 1.2.4: tell the user it is already set up
42
+ and skip to step 5.
43
+ - If installed but older: proceed (step 4 will use `--force` to upgrade).
44
+
45
+ 2. **Install `uv` if missing** (choose the shell that matches the user's machine):
46
+
47
+ **macOS / Linux / WSL / Git Bash:**
48
+ ```bash
49
+ if ! command -v uv >/dev/null 2>&1; then
50
+ curl -LsSf https://astral.sh/uv/install.sh | sh
51
+ export PATH="$HOME/.local/bin:$PATH"
52
+ fi
53
+ uv --version
54
+ ```
55
+
56
+ **Windows (PowerShell):**
57
+ ```powershell
58
+ if (-not (Get-Command uv -ErrorAction SilentlyContinue)) {
59
+ irm https://astral.sh/uv/install.ps1 | iex
60
+ }
61
+ uv --version
62
+ ```
63
+
64
+ Detect the platform before running — if `uname` succeeds, use the bash form;
65
+ otherwise use the PowerShell form. Or simply ask the user which shell
66
+ they're using.
67
+
68
+ - If the install fails (no network, strict shell), suggest a package
69
+ manager fallback: `brew install uv` (macOS), `apt install uv` (newer
70
+ Debian/Ubuntu), `winget install --id=astral-sh.uv -e` (Windows), or
71
+ `scoop install uv`.
72
+
73
+ 3. **Ensure Python 3.11 is available to uv**:
74
+ ```bash
75
+ uv python install 3.11
76
+ ```
77
+ This is idempotent — `uv` will pick up an existing 3.11 if present, or
78
+ download one into its managed toolchain directory.
79
+
80
+ 4. **Install (or upgrade) `manigent`**:
81
+ ```bash
82
+ # Fresh install:
83
+ uv tool install --python 3.11 'manigent>=1.2.4'
84
+
85
+ # Or, if an older version was already installed:
86
+ uv tool install --force --python 3.11 'manigent>=1.2.4'
87
+ ```
88
+ Always pass `--python 3.11` explicitly. Without it, `uv` installs the
89
+ tool against its **default** interpreter — which on a machine whose uv
90
+ default is Python 3.14+ pulls in an incompatible interpreter: `patchright`
91
+ (browser stealth) has no 3.14 wheels, so resolution either fails or
92
+ silently drops that dependency and browser-driven skills break. Pinning
93
+ 3.11 makes the install deterministic regardless of the user's uv default.
94
+
95
+ 5. **Verify**:
96
+ ```bash
97
+ manigent --version
98
+ ```
99
+ - If the command is still not found, `~/.local/bin` (uv's default tool
100
+ install prefix) is not on PATH. Tell the user to add this to their
101
+ shell rc file and reopen the shell:
102
+ ```bash
103
+ export PATH="$HOME/.local/bin:$PATH"
104
+ ```
105
+
106
+ 6. **Confirm and next steps**: tell the user the CLI is ready, and suggest:
107
+ - `/manigent:signup` to register a new account, or
108
+ - `/manigent:login` if they already have one — then `/manigent:register-assistant`.
109
+
110
+ ## Fallbacks
111
+
112
+ Only use these if `uv` cannot be installed:
113
+
114
+ - **pipx** (requires Python already on the system):
115
+ ```bash
116
+ # macOS: brew install pipx
117
+ # Debian/Ubuntu: sudo apt install pipx
118
+ # If the system default is Python 3.14+, point pipx at a 3.11–3.13
119
+ # interpreter: pipx install --python python3.11 'manigent>=1.2.4'
120
+ pipx install 'manigent>=1.2.4'
121
+ ```
122
+
123
+ - **`pip install --user`** (last resort; may require `--break-system-packages`
124
+ on PEP 668 systems like recent macOS Homebrew Python or Debian 12+):
125
+ ```bash
126
+ # Use a 3.11–3.13 interpreter here (e.g. python3.11) if the default is 3.14+.
127
+ python3 -m pip install --user 'manigent>=1.2.4'
128
+ # Or if PEP 668 blocks it:
129
+ python3 -m pip install --user --break-system-packages 'manigent>=1.2.4'
130
+ ```
131
+
132
+ ## Upgrading later
133
+
134
+ To upgrade a previously bootstrapped install:
135
+ ```bash
136
+ uv tool upgrade manigent
137
+ ```
138
+ Other plugin skills may ask for bootstrap to be re-run when they need a newer
139
+ CLI than the one currently installed — in that case use the `--force` form in
140
+ step 4 with the new minimum version.
141
+
142
+ ## Error handling
143
+
144
+ - **"curl: command not found"**: on minimal containers, install curl first
145
+ (`apt install curl`) or use `wget`: `wget -qO- https://astral.sh/uv/install.sh | sh`.
146
+ - **"uv: command not found" after install**: the install script added `uv` to
147
+ `~/.local/bin`, which is not on PATH yet in this shell. Run `export
148
+ PATH="$HOME/.local/bin:$PATH"` and re-try.
149
+ - **Corporate proxy blocks uv install**: fall back to pipx; if pipx is also
150
+ blocked, ask the user for a cached wheel and `pip install` it directly.
151
+
152
+ ## Platform notes
153
+
154
+ - **macOS / Linux / WSL**: first-class. Skill commands assume a POSIX shell (bash/zsh/Git Bash).
155
+ - **Windows native (PowerShell)**: the `uv` install, `uv tool install manigent`, and `manigent start`/`stop`/`status` all work. Under the hood the CLI branches on `sys.platform` to spawn detached processes with `CREATE_NEW_PROCESS_GROUP` and stop them via `CTRL_BREAK_EVENT` → `taskkill /F`. For the skill-shell commands in other `/manigent:*` skills, use **Git Bash** (ships with Git for Windows) since they use POSIX syntax.
156
+ - **Shared machines**: `uv tool install` installs per-user to `~/.local/share/uv/tools/` (macOS/Linux) or `%LOCALAPPDATA%\uv\tools\` (Windows), not system-wide.
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: install-agent
3
+ description: >
4
+ Install ONE ready-made specialist agent from the Manigent agent pool
5
+ (contract reviewer, financial model builder, ...). Use when the user asks
6
+ for "an agent that can <X>", "add a <specialist>", "what agents can I
7
+ install", "install <name>", or when their request needs expertise none of
8
+ their own agents has and the pool lists a specialist for it. Lists the pool,
9
+ proposes the match, and on the user's yes runs `manigent agent install
10
+ <name>` and starts it. For an agent the user wants to define themselves, use
11
+ register-agent (or onboard-agent) instead.
12
+ ---
13
+
14
+ # Install a specialist agent from the pool
15
+
16
+ The pool is a public set of specialist agents, each published only after it
17
+ beat a strong generalist on held-out tasks in its field. Installing one
18
+ registers it under the user's account and copies its role, field knowledge,
19
+ reference material and private skills into its home on this computer. Every
20
+ file is checked against the SHA-256 the pool lists.
21
+
22
+ Agents are installed **one at a time**. There is no "install a team".
23
+
24
+ ## 1. See what the pool has
25
+
26
+ ```bash
27
+ manigent agent install --list --json
28
+ ```
29
+
30
+ Each entry has a `name`, a one-line `blurb`, a longer `description` and
31
+ `sample_requests`. The default pool is the public `manigent-agents` repo at
32
+ the release this runner pins. Pass `--from <url-or-path>` only if the user
33
+ names another pool.
34
+
35
+ ## 2. Propose, then wait for a yes
36
+
37
+ Match the user's need against the blurbs and descriptions. Reply with the
38
+ one agent you recommend: its name, what it does in one sentence, and one of
39
+ its sample requests so the user can see the kind of work it takes. If two
40
+ agents fit, say which you would pick and why. If nothing fits, say so and
41
+ offer `register-agent` instead. Do not invent pool agents.
42
+
43
+ Installing creates an agent on the user's account and files on their
44
+ computer, so **ask before you run it**, unless the user already named the
45
+ agent and asked you to install it.
46
+
47
+ ## 3. Install and start it
48
+
49
+ ```bash
50
+ manigent agent install "<name>" --username "<owner-username>"
51
+ manigent start --user "<owner-username>" --agent "<name>"
52
+ ```
53
+
54
+ Useful options: `--team "<label>"` adds a TEAMS-sidebar label on top of the
55
+ pool's own; `--llm-provider <p>` picks the model (default: a copy of the
56
+ user's default model); `--auto-personalize` asks the new agent to tailor
57
+ itself to the user on its first turn.
58
+
59
+ Exit codes: `0` installed (running it again updates the agent and keeps any
60
+ file changed locally since the last install); `2` no such agent in the pool
61
+ (the error suggests close names); `1` the install was refused or a file
62
+ failed its checksum. Relay the error verbatim and do not retry with other
63
+ flags. A refusal saying the user already has an agent with that name means
64
+ they made one themselves. Ask them to rename or delete it first.
65
+
66
+ ## 4. Tell the user
67
+
68
+ Say the agent is installed and running, and give one of its sample requests
69
+ as a first thing to try in its DM. If the user wants it to learn about them
70
+ first, offer `onboard-agent` (a mentor brief and deep research, distilled
71
+ into its memory).