hive-am 1.1.0 → 1.2.1

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 (262) hide show
  1. package/CHANGELOG.md +100 -1
  2. package/README.md +9 -1
  3. package/package.json +13 -2
  4. package/server/dist/api.js +42 -762
  5. package/server/dist/connections/channel-skill.js +13 -1
  6. package/server/dist/connections/files.js +45 -1
  7. package/server/dist/connections/manager.js +41 -3
  8. package/server/dist/connections/outbound.js +2 -1
  9. package/server/dist/connections/prompt.js +4 -0
  10. package/server/dist/connections/router.js +3 -2
  11. package/server/dist/connections/store.js +4 -43
  12. package/server/dist/connections/telegram.js +43 -3
  13. package/server/dist/cron.js +2 -1
  14. package/server/dist/db/json.js +16 -0
  15. package/server/dist/db/migrations.js +199 -0
  16. package/server/dist/db.js +98 -196
  17. package/server/dist/errors.js +11 -0
  18. package/server/dist/git/browse.js +99 -0
  19. package/server/dist/git/ops.js +136 -19
  20. package/server/dist/git/repo.js +2 -1
  21. package/server/dist/history/claude.js +21 -21
  22. package/server/dist/history/index.js +17 -9
  23. package/server/dist/history/kiro.js +17 -12
  24. package/server/dist/history/lines.js +12 -0
  25. package/server/dist/history/opencode.js +18 -1
  26. package/server/dist/http/body.js +46 -0
  27. package/server/dist/http/errors.js +21 -0
  28. package/server/dist/http/guards.js +44 -0
  29. package/server/dist/http/router.js +24 -0
  30. package/server/dist/http/routes/agents.js +124 -0
  31. package/server/dist/http/routes/channel.js +16 -0
  32. package/server/dist/http/routes/colonies.js +9 -0
  33. package/server/dist/http/routes/connections.js +36 -0
  34. package/server/dist/http/routes/fs.js +22 -0
  35. package/server/dist/http/routes/git.js +90 -0
  36. package/server/dist/http/routes/meta.js +11 -0
  37. package/server/dist/http/routes/notebook.js +34 -0
  38. package/server/dist/http/routes/orchestration.js +32 -0
  39. package/server/dist/http/routes/resources.js +68 -0
  40. package/server/dist/http/routes/schedules.js +40 -0
  41. package/server/dist/http/routes/skills.js +47 -0
  42. package/server/dist/http/routes/terminals.js +18 -0
  43. package/server/dist/http/routes/types.js +36 -0
  44. package/server/dist/http/validate.js +65 -0
  45. package/server/dist/index.js +67 -5
  46. package/server/dist/instructions.js +8 -2
  47. package/server/dist/objects/agent.js +49 -0
  48. package/server/dist/objects/database.js +451 -0
  49. package/server/dist/objects/db-history.js +79 -0
  50. package/server/dist/objects/docker-info.js +75 -0
  51. package/server/dist/objects/docker.js +285 -0
  52. package/server/dist/objects/driver-props.js +196 -0
  53. package/server/dist/objects/exec.js +16 -0
  54. package/server/dist/objects/http-history.js +44 -0
  55. package/server/dist/objects/http-script.js +644 -0
  56. package/server/dist/objects/http.js +735 -0
  57. package/server/dist/objects/index.js +445 -0
  58. package/server/dist/objects/model.js +250 -0
  59. package/server/dist/objects/runner.js +211 -0
  60. package/server/dist/objects/stats.js +106 -0
  61. package/server/dist/objects/store.js +115 -0
  62. package/server/dist/objects/supervisor.js +111 -0
  63. package/server/dist/objects/templates.js +67 -0
  64. package/server/dist/providers/claude.js +3 -13
  65. package/server/dist/providers/index.js +7 -1
  66. package/server/dist/providers/kiro.js +2 -5
  67. package/server/dist/providers/opencode-server.js +45 -0
  68. package/server/dist/providers/opencode.js +52 -9
  69. package/server/dist/providers/preamble.js +2 -0
  70. package/server/dist/providers/spawn.js +31 -3
  71. package/server/dist/runtime.js +8 -6
  72. package/server/dist/schedules.js +2 -21
  73. package/server/dist/seed.js +15 -11
  74. package/server/dist/services/agents.js +90 -0
  75. package/server/dist/services/colonies.js +38 -0
  76. package/server/dist/services/connections.js +76 -0
  77. package/server/dist/services/notebook.js +22 -0
  78. package/server/dist/services/providers.js +27 -0
  79. package/server/dist/services/schedules.js +18 -0
  80. package/server/dist/sessions-summary.js +51 -0
  81. package/server/dist/skills/defaults.js +37 -0
  82. package/server/dist/skills/notebook.js +3 -8
  83. package/server/dist/terminals.js +185 -0
  84. package/server/dist/wake.js +13 -16
  85. package/server/dist/watch.js +2 -8
  86. package/server/mcp/dispatch.mjs +70 -1
  87. package/web/.next/BUILD_ID +1 -1
  88. package/web/.next/app-build-manifest.json +146 -94
  89. package/web/.next/app-path-routes-manifest.json +6 -4
  90. package/web/.next/build-manifest.json +14 -14
  91. package/web/.next/prerender-manifest.json +67 -43
  92. package/web/.next/react-loadable-manifest.json +26 -1
  93. package/web/.next/required-server-files.json +13 -1
  94. package/web/.next/routes-manifest.json +26 -0
  95. package/web/.next/server/app/_not-found/page.js +2 -2
  96. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  97. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/_not-found.html +1 -1
  99. package/web/.next/server/app/_not-found.rsc +12 -11
  100. package/web/.next/server/app/agents/[id]/page.js +4 -4
  101. package/web/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  102. package/web/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  103. package/web/.next/server/app/agents/page.js +2 -2
  104. package/web/.next/server/app/agents/page.js.nft.json +1 -1
  105. package/web/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/agents.html +1 -1
  107. package/web/.next/server/app/agents.rsc +14 -13
  108. package/web/.next/server/app/connections/page.js +2 -2
  109. package/web/.next/server/app/connections/page.js.nft.json +1 -1
  110. package/web/.next/server/app/connections/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/connections.html +1 -1
  112. package/web/.next/server/app/connections.rsc +14 -13
  113. package/web/.next/server/app/index.html +1 -1
  114. package/web/.next/server/app/index.rsc +14 -13
  115. package/web/.next/server/app/page.js +2 -2
  116. package/web/.next/server/app/page.js.nft.json +1 -1
  117. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  118. package/web/.next/server/app/relations/page.js +2 -2
  119. package/web/.next/server/app/relations/page.js.nft.json +1 -1
  120. package/web/.next/server/app/relations/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/relations.html +1 -1
  122. package/web/.next/server/app/relations.rsc +14 -13
  123. package/web/.next/server/app/resources/[id]/page.js +2 -0
  124. package/web/.next/server/app/resources/[id]/page.js.nft.json +1 -0
  125. package/web/.next/server/app/resources/[id]/page_client-reference-manifest.js +1 -0
  126. package/web/.next/server/app/resources/page.js +2 -0
  127. package/web/.next/server/app/resources/page.js.nft.json +1 -0
  128. package/web/.next/server/app/resources/page_client-reference-manifest.js +1 -0
  129. package/web/.next/server/app/resources.html +1 -0
  130. package/web/.next/server/app/resources.meta +15 -0
  131. package/web/.next/server/app/resources.rsc +25 -0
  132. package/web/.next/server/app/schedules/page.js +2 -2
  133. package/web/.next/server/app/schedules/page.js.nft.json +1 -1
  134. package/web/.next/server/app/schedules/page_client-reference-manifest.js +1 -1
  135. package/web/.next/server/app/schedules.html +1 -1
  136. package/web/.next/server/app/schedules.rsc +14 -13
  137. package/web/.next/server/app/sessions/page.js +2 -2
  138. package/web/.next/server/app/sessions/page.js.nft.json +1 -1
  139. package/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/sessions.html +1 -1
  141. package/web/.next/server/app/sessions.rsc +14 -13
  142. package/web/.next/server/app/skills/page.js +2 -2
  143. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  144. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  145. package/web/.next/server/app/skills.html +1 -1
  146. package/web/.next/server/app/skills.rsc +14 -13
  147. package/web/.next/server/app/types/page.js +2 -2
  148. package/web/.next/server/app/types/page.js.nft.json +1 -1
  149. package/web/.next/server/app/types/page_client-reference-manifest.js +1 -1
  150. package/web/.next/server/app/types.html +1 -1
  151. package/web/.next/server/app/types.rsc +14 -13
  152. package/web/.next/server/app-paths-manifest.json +6 -4
  153. package/web/.next/server/chunks/143.js +1 -1
  154. package/web/.next/server/chunks/274.js +1 -0
  155. package/web/.next/server/chunks/306.js +1 -0
  156. package/web/.next/server/chunks/423.js +1 -0
  157. package/web/.next/server/chunks/505.js +6 -0
  158. package/web/.next/server/chunks/555.js +1 -0
  159. package/web/.next/server/chunks/612.js +1 -0
  160. package/web/.next/server/chunks/638.js +1 -0
  161. package/web/.next/server/chunks/692.js +18 -0
  162. package/web/.next/server/chunks/716.js +2 -0
  163. package/web/.next/server/chunks/790.js +11 -0
  164. package/web/.next/server/chunks/802.js +1 -0
  165. package/web/.next/server/chunks/890.js +1 -1
  166. package/web/.next/server/chunks/919.js +1 -0
  167. package/web/.next/server/chunks/950.js +6 -0
  168. package/web/.next/server/middleware-build-manifest.js +1 -1
  169. package/web/.next/server/middleware-react-loadable-manifest.js +1 -1
  170. package/web/.next/server/next-font-manifest.js +1 -1
  171. package/web/.next/server/next-font-manifest.json +1 -1
  172. package/web/.next/server/pages/404.html +1 -1
  173. package/web/.next/server/pages/500.html +1 -1
  174. package/web/.next/server/server-reference-manifest.json +1 -1
  175. package/web/.next/static/Bz7onClw1BajMUCwqpU8o/_buildManifest.js +1 -0
  176. package/web/.next/static/chunks/0937d497-114a2a3de515565e.js +1 -0
  177. package/web/.next/static/chunks/176-aeaf907a6ea5627d.js +1 -0
  178. package/web/.next/static/chunks/291-efae53ea5f7ee92d.js +1 -0
  179. package/web/.next/static/chunks/2b9ff8ee-969e65cc354b2150.js +1 -0
  180. package/web/.next/static/chunks/30-9adcbe92b15a6815.js +1 -0
  181. package/web/.next/static/chunks/316-26da9cc233ba7557.js +1 -0
  182. package/web/.next/static/chunks/350-56599dc3bf06066d.js +1 -0
  183. package/web/.next/static/chunks/486-13e08542f3a1cbac.js +1 -0
  184. package/web/.next/static/chunks/491-6b4e6201f5110dff.js +1 -0
  185. package/web/.next/static/chunks/517-ccaf8cc5c733cbd8.js +1 -0
  186. package/web/.next/static/chunks/545.bfbd92b7632c09de.js +1 -0
  187. package/web/.next/static/chunks/{805-d946ebedb7e85f73.js → 562-7c2e33d838e869bf.js} +1 -1
  188. package/web/.next/static/chunks/581-3ad5c4343dad3f50.js +1 -0
  189. package/web/.next/static/chunks/586-f7017d585a84738d.js +1 -0
  190. package/web/.next/static/chunks/657.b4c39e676c3e20dc.js +1 -0
  191. package/web/.next/static/chunks/701.6abcaf5e60463eef.js +6 -0
  192. package/web/.next/static/chunks/705-c7e75806f77b880c.js +1 -0
  193. package/web/.next/static/chunks/706-fa2be0f10ffebe6a.js +1 -0
  194. package/web/.next/static/chunks/837-33c7480524f48577.js +1 -0
  195. package/web/.next/static/chunks/839-4aefe6e71be6e1ef.js +1 -0
  196. package/web/.next/static/chunks/844-fe55292e0701f436.js +1 -0
  197. package/web/.next/static/chunks/89-b194fcffe5120c44.js +1 -0
  198. package/web/.next/static/chunks/97.594543c2196de524.js +1 -0
  199. package/web/.next/static/chunks/app/_not-found/page-238a7b80bda6b4ae.js +1 -0
  200. package/web/.next/static/chunks/app/agents/[id]/page-3faf40800981a736.js +1 -0
  201. package/web/.next/static/chunks/app/agents/page-f4c4c80f955f3967.js +1 -0
  202. package/web/.next/static/chunks/app/connections/page-0936beaf02d863c6.js +1 -0
  203. package/web/.next/static/chunks/app/layout-99620746d028dda8.js +1 -0
  204. package/web/.next/static/chunks/app/page-a7f292117b7d76bf.js +1 -0
  205. package/web/.next/static/chunks/app/relations/page-fba25393c8688714.js +1 -0
  206. package/web/.next/static/chunks/app/resources/[id]/page-d110d89bb8b5fca7.js +1 -0
  207. package/web/.next/static/chunks/app/resources/page-bbd0b450d3f3131d.js +1 -0
  208. package/web/.next/static/chunks/app/schedules/page-a1124397fc760413.js +1 -0
  209. package/web/.next/static/chunks/app/sessions/page-0e322811b0cde724.js +1 -0
  210. package/web/.next/static/chunks/app/skills/page-22ea0ef89d9f7a13.js +1 -0
  211. package/web/.next/static/chunks/app/types/page-18c4e1db2724d41d.js +1 -0
  212. package/web/.next/static/chunks/fcafe1ac.366e4950d3b0d4b7.js +18 -0
  213. package/web/.next/static/chunks/framework-bbac72adbbe2d328.js +1 -0
  214. package/web/.next/static/chunks/main-app-6086068e5fb5eacd.js +1 -0
  215. package/web/.next/static/chunks/main-c15f3fee674e0303.js +1 -0
  216. package/web/.next/static/chunks/pages/_app-d1670a2c6ce392fc.js +1 -0
  217. package/web/.next/static/chunks/pages/_error-95aac014d202fa7a.js +1 -0
  218. package/web/.next/static/chunks/webpack-ef515e41a83a16ac.js +1 -0
  219. package/web/.next/static/css/945795da867f5250.css +1 -0
  220. package/web/.next/static/css/b7a03c62468f4263.css +1 -0
  221. package/web/.next/trace +29 -23
  222. package/web/.next/types/app/resources/[id]/page.ts +84 -0
  223. package/web/.next/types/app/resources/page.ts +84 -0
  224. package/web/.next/types/routes.d.ts +6 -2
  225. package/web/.next/types/validator.ts +18 -0
  226. package/web/next.config.mjs +4 -0
  227. package/web/.next/server/chunks/247.js +0 -1
  228. package/web/.next/server/chunks/484.js +0 -11
  229. package/web/.next/server/chunks/851.js +0 -1
  230. package/web/.next/server/chunks/932.js +0 -2
  231. package/web/.next/static/_z2hBOHhwiR5ytdI_8alh/_buildManifest.js +0 -1
  232. package/web/.next/static/chunks/0937d497-44abb0f9355ace92.js +0 -1
  233. package/web/.next/static/chunks/2b9ff8ee-c3b61ac1e608c57d.js +0 -1
  234. package/web/.next/static/chunks/463-6ae35cdefdc59169.js +0 -1
  235. package/web/.next/static/chunks/493-50d2adf9fd5ec680.js +0 -1
  236. package/web/.next/static/chunks/517-eb26c72f6059aa26.js +0 -1
  237. package/web/.next/static/chunks/589-8bf536f331de4269.js +0 -1
  238. package/web/.next/static/chunks/657.f1e03b7b65eba1d9.js +0 -1
  239. package/web/.next/static/chunks/687-3a4205f51be38602.js +0 -1
  240. package/web/.next/static/chunks/837-fd7623601dc78ed8.js +0 -1
  241. package/web/.next/static/chunks/850-318f32484989dd59.js +0 -1
  242. package/web/.next/static/chunks/89-ace2e1aa63babfdf.js +0 -1
  243. package/web/.next/static/chunks/951-e250b541b67da7ce.js +0 -1
  244. package/web/.next/static/chunks/app/_not-found/page-bbd54d7b9a55d7ae.js +0 -1
  245. package/web/.next/static/chunks/app/agents/[id]/page-a8b7a43d2c18483f.js +0 -1
  246. package/web/.next/static/chunks/app/agents/page-e9b17f1c3439ef98.js +0 -1
  247. package/web/.next/static/chunks/app/connections/page-477f36fcd5b13d78.js +0 -1
  248. package/web/.next/static/chunks/app/layout-a2d38e3de5911b1b.js +0 -1
  249. package/web/.next/static/chunks/app/page-6fc87fc5a128a204.js +0 -1
  250. package/web/.next/static/chunks/app/relations/page-0355a93a8eb67989.js +0 -1
  251. package/web/.next/static/chunks/app/schedules/page-39befd15b3b20586.js +0 -1
  252. package/web/.next/static/chunks/app/sessions/page-beae9a74a07d69e0.js +0 -1
  253. package/web/.next/static/chunks/app/skills/page-4f839ac913e26d32.js +0 -1
  254. package/web/.next/static/chunks/app/types/page-4f6b99af3232f861.js +0 -1
  255. package/web/.next/static/chunks/framework-0e68884e76d9a8d3.js +0 -1
  256. package/web/.next/static/chunks/main-app-d6f73ccd41f325c5.js +0 -1
  257. package/web/.next/static/chunks/main-cd22509db15764e2.js +0 -1
  258. package/web/.next/static/chunks/pages/_app-0f75d689c738a6fc.js +0 -1
  259. package/web/.next/static/chunks/pages/_error-d481f6d49fb4455d.js +0 -1
  260. package/web/.next/static/chunks/webpack-d40de72e52f65f79.js +0 -1
  261. package/web/.next/static/css/da22f0402b1c40ae.css +0 -1
  262. /package/web/.next/static/{_z2hBOHhwiR5ytdI_8alh → Bz7onClw1BajMUCwqpU8o}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=143,exports.ids=[143],exports.modules={15964:(a,b,c)=>{c.d(b,{SU:()=>q,TN:()=>n,WU:()=>m,tf:()=>p});var d=c(55322),e=c(17027),f=c(59686),g=c(28923),h=c(93884),i=c(30584),j=c(60992),k=c(60570),l=c(61162);let m=a=>({name:"",description:a?.description??"",role:a?.role??"worker",provider:a?.provider??"claude",model:a?.model??"",system_prompt:a?.system_prompt??"",permission:a?.permission??"acceptEdits",cwd:"",skill_ids:a?.skill_ids??[],skill_loads:a?.skill_loads??{},worker_ids:[],type_id:a?.id??null,colony_id:null,overrides:[]}),n=a=>({name:a.name,description:a.description,role:a.role,provider:a.provider,model:a.model,system_prompt:a.system_prompt,permission:a.permission,cwd:a.cwd,skill_ids:a.skill_ids,skill_loads:a.skill_loads,worker_ids:a.worker_ids,type_id:a.type_id,colony_id:a.colony_id,overrides:a.overrides}),o=(a,b,c)=>!!b&&b.inherit[c]&&!a.overrides.includes(c);function p(a,b,c,d=[]){let e={};a.name.trim()?b.some(b=>b.id!==c&&b.name.toLowerCase()===a.name.trim().toLowerCase())&&(e.name=(0,h.Tl)("form.err.nameTaken")):e.name=(0,h.Tl)("form.err.name");let f=d.find(b=>b.id===a.colony_id);return a.cwd.trim()||o(a,f,"cwd")&&f?.cwd||(e.cwd=(0,h.Tl)("form.err.folder")),e}function q({draft:a,onChange:b,errors:c,selfId:m,showType:n=!0,focusName:p=!1}){let{t:q}=(0,h.s9)(),{skills:s,providers:t,agents:u,types:v,colonies:w,connections:x}=(0,k.o0)(),y=(0,e.useMemo)(()=>x.filter(a=>a.agent_id===m&&a.enabled),[x,m]),z=w.find(b=>b.id===a.colony_id),A=b=>o(a,z,b),B=(c,d)=>b({...a,overrides:d?a.overrides.filter(a=>a!==c):[...new Set([...a.overrides,c])]}),C=(c,d)=>b({...a,[c]:d}),D=(0,e.useMemo)(()=>u.filter(a=>a.id!==m&&"worker"===a.role),[u,m]),E=v.find(b=>b.id===a.type_id);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.D0,{label:q("form.name"),error:c.name,hint:q("form.name.hint"),children:(0,d.jsx)("input",{className:"input",value:a.name,onChange:a=>C("name",a.target.value),placeholder:q("form.name.placeholder"),autoFocus:p})}),(0,d.jsx)(j.D0,{label:q("form.purpose"),hint:q("form.purpose.hint"),children:(0,d.jsx)("input",{className:"input",value:a.description,onChange:a=>C("description",a.target.value),placeholder:q("form.purpose.placeholder")})}),(0,d.jsxs)(j.D0,{label:q("form.role"),children:[(0,d.jsx)(j.$q,{value:a.role,onChange:a=>C("role",a),options:[{id:"worker",label:q("role.worker")},{id:"orchestrator",label:q("role.orchestrator")}]}),(0,d.jsx)("span",{className:"hint",children:q("orchestrator"===a.role?"form.role.orchestratorHint":"form.role.workerHint")})]}),n&&E&&(0,d.jsx)("p",{className:"hint",style:{margin:0},children:q("form.basedOn",{name:E.name})}),(0,d.jsx)(j.D0,{label:q("form.colony"),hint:q("form.colony.hint"),children:(0,d.jsxs)("select",{className:"select",value:a.colony_id??"",onChange:c=>b({...a,colony_id:c.target.value||null,overrides:[]}),children:[(0,d.jsx)("option",{value:"",children:q("common.noColony")}),w.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})}),(0,d.jsx)(j.D0,{label:q("form.provider"),children:(0,d.jsx)(j.YO,{value:a.provider,onChange:c=>b({...a,provider:c,model:""}),providers:t})}),(0,d.jsx)(j.CD,{provider:a.provider,value:a.model,onChange:a=>C("model",a)}),z&&z.inherit.permission&&(0,d.jsx)(r,{colony:z,on:A("permission"),onChange:a=>B("permission",a),label:q("inherit.permissions"),value:(0,l.Ck)(z.permission)}),!A("permission")&&(0,d.jsx)(j.en,{value:a.permission,onChange:a=>C("permission",a),locked:y.length?["plan"]:[]}),y.length>0&&(0,d.jsxs)("p",{className:"hint",style:{margin:0},children:[(0,d.jsxs)("b",{children:[q("form.connections"),":"]})," ",q("form.connections.hint",{names:y.map(a=>a.name).join(", ")})]}),z&&z.inherit.cwd&&z.cwd&&(0,d.jsx)(r,{colony:z,on:A("cwd"),onChange:a=>B("cwd",a),label:q("field.folder"),value:(0,l._1)(z.cwd),mono:!0}),!(A("cwd")&&z?.cwd)&&(0,d.jsx)(j.dR,{value:a.cwd,onChange:a=>C("cwd",a),error:c.cwd}),z&&z.inherit.prompt&&z.system_prompt.trim()&&(0,d.jsx)(r,{colony:z,on:A("prompt"),onChange:a=>B("prompt",a),label:q("inherit.context"),value:`${z.system_prompt.trim().slice(0,90)}${z.system_prompt.trim().length>90?"…":""}`,note:q("inherit.context.note")}),(0,d.jsx)(j.D0,{label:q(A("prompt")||z?.system_prompt?"form.ownPrompt":"form.systemPrompt"),hint:q("form.promptHint",{count:a.system_prompt.length,n:(0,i._E)(a.system_prompt.length)}),children:(0,d.jsx)(f.n,{value:a.system_prompt,onChange:a=>C("system_prompt",a),placeholder:q("form.prompt.placeholder"),defaultView:"write",minHeight:220})}),z&&z.inherit.skills&&z.skill_ids.length>0&&(0,d.jsx)(r,{colony:z,on:A("skills"),onChange:a=>B("skills",a),label:q("inherit.skills"),value:z.skill_ids.map(a=>s.find(b=>b.id===a)?.name).filter(Boolean).join(", "),note:q("inherit.skills.note")}),(0,d.jsx)(j.D0,{label:q("form.skills"),hint:q("form.skills.hint"),children:(0,d.jsx)(j.kV,{skills:s,value:a.skill_ids,loads:a.skill_loads,onChange:(c,d)=>b({...a,skill_ids:c,skill_loads:d})})}),"orchestrator"===a.role&&(0,d.jsx)(j.D0,{label:q("form.team"),hint:q("form.team.hint"),children:D.length?(0,d.jsx)("div",{className:"skillpick",children:D.map(b=>{let c=a.worker_ids.includes(b.id);return(0,d.jsxs)("button",{type:"button",className:"skillrow","aria-pressed":c,onClick:()=>C("worker_ids",c?a.worker_ids.filter(a=>a!==b.id):[...a.worker_ids,b.id]),children:[(0,d.jsx)("span",{className:"check",children:c&&(0,d.jsx)(g.A,{size:13,strokeWidth:3})}),(0,d.jsxs)("span",{children:[(0,d.jsx)("b",{style:{fontWeight:600},children:b.name}),(0,d.jsx)("span",{className:"hint",style:{display:"block"},children:b.description||b.provider})]})]},b.id)})}):(0,d.jsx)("p",{className:"hint",children:q("form.team.empty")})})]})}function r({colony:a,on:b,onChange:c,label:e,value:f,note:g,mono:i}){let{t:j}=(0,h.s9)();return(0,d.jsxs)("label",{className:`inherit-row ${b?"on":""}`,children:[(0,d.jsx)("input",{type:"checkbox",checked:b,onChange:a=>c(a.target.checked)}),(0,d.jsxs)("span",{className:"grow",children:[(0,d.jsxs)("b",{children:[e," ",(0,d.jsx)("span",{className:"muted",style:{fontWeight:500},children:j("inherit.from")})," ",(0,d.jsx)("i",{className:"cdot",style:{background:a.color||"var(--honey)"}}),a.name]}),(0,d.jsx)("span",{className:`inh-val ${i?"mono":""}`,children:f||"—"}),g&&(0,d.jsx)("span",{className:"hint",children:g})]}),(0,d.jsx)("span",{className:"inh-state",children:j(b?"inherit.following":"inherit.own")})]})}},36143:(a,b,c)=>{c.d(b,{b:()=>m});var d=c(55322),e=c(17027),f=c(66252),g=c(60992),h=c(15964),i=c(60570),j=c(7371),k=c(61162),l=c(93884);function m({onClose:a,onCreated:b,presetTypeId:c,presetColonyId:m}){let{t:n}=(0,l.s9)(),{types:o,agents:p,refresh:q,colonies:r}=(0,i.o0)(),s=(0,g.dj)(),t=(0,f.useRouter)(),[u,v]=(0,e.useState)(c?"form":"type"),[w,x]=(0,e.useState)({...(0,h.WU)(o.find(a=>a.id===c)),colony_id:m??null}),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!1),C=(0,h.tf)(w,p,void 0,r),D=async()=>{if(B(!0),!Object.keys(C).length){z(!0);try{let c=await j.F.post("/agents",w);await q(["agents","colonies"]),s(n("newAgent.created",{name:c.name})),b?.(c.id),a(),t.push(`/agents/${c.id}`)}catch(a){s(a instanceof Error?a.message:n("newAgent.failed"),"err"),z(!1)}}};return"type"===u?(0,d.jsx)(g._s,{title:n("newAgent.title"),subtitle:n("newAgent.pickType"),onClose:a,children:(0,d.jsxs)("div",{className:"col",style:{gap:10},children:[o.map(a=>(0,d.jsxs)("button",{className:"card card-pad row gap-l",style:{textAlign:"left"},onClick:()=>{x({...(0,h.WU)(a),colony_id:m??null}),v("form")},children:[(0,d.jsx)(g._h,{color:k.xq[a.provider].color,queen:"orchestrator"===a.role,label:a.name.slice(0,2).toUpperCase()}),(0,d.jsxs)("div",{className:"grow",children:[(0,d.jsx)("b",{style:{fontFamily:"var(--font-display)",fontSize:16},children:a.name}),(0,d.jsx)("div",{className:"muted small",children:a.description||n("newAgent.typeFallback",{role:n(`role.${a.role}`),provider:k.xq[a.provider].label})})]}),(0,d.jsx)("span",{className:"chip",children:k.xq[a.provider].short})]},a.id)),(0,d.jsxs)("button",{className:"card card-pad row gap-l",style:{textAlign:"left",borderStyle:"dashed"},onClick:()=>{x({...(0,h.WU)(),colony_id:m??null}),v("form")},children:[(0,d.jsx)(g._h,{color:"var(--muted)",label:"+"}),(0,d.jsxs)("div",{className:"grow",children:[(0,d.jsx)("b",{style:{fontFamily:"var(--font-display)",fontSize:16},children:n("newAgent.blank")}),(0,d.jsx)("div",{className:"muted small",children:n("newAgent.blankHint")})]})]})]})}):(0,d.jsx)(g._s,{title:n("newAgent.title"),subtitle:w.type_id?n("newAgent.fromType",{name:o.find(a=>a.id===w.type_id)?.name??""}):n("newAgent.blank"),onClose:a,footer:(0,d.jsxs)(d.Fragment,{children:[!c&&(0,d.jsx)("button",{className:"btn ghost",onClick:()=>v("type"),children:n("common.back")}),(0,d.jsx)("button",{className:"btn primary",disabled:y,onClick:D,children:y?n("newAgent.creating"):n("newAgent.create")})]}),children:(0,d.jsx)(h.SU,{draft:w,onChange:x,errors:A?C:{},focusName:!0})})}},59686:(a,b,c)=>{c.d(b,{n:()=>y});var d=c(55322),e=c(17027),f=c(37070),g=c(31826),h=c(20862),i=c(69048),j=c(97299),k=c(55674),l=c(73726),m=c(46875),n=c(98635),o=c(54143),p=c(22276),q=c(29723),r=c(93884);function s(a,b,c,d,e=d,f=""){let g=a.slice(b,c)||f;return a.slice(b-d.length,b)===d&&a.slice(c,c+e.length)===e&&b!==c?{value:a.slice(0,b-d.length)+g+a.slice(c+e.length),start:b-d.length,end:c-d.length}:{value:a.slice(0,b)+d+g+e+a.slice(c),start:b+d.length,end:b+d.length+g.length}}function t(a,b,c,d,e){let f=a.lastIndexOf("\n",b-1)+1,g=a.indexOf("\n",c),h=-1===g?a.length:g,i=a.slice(f,h).split("\n"),j=i.every(a=>e.test(a)),k=i.map((a,b)=>j?a.replace(e,""):d(b)+a.replace(e,"")).join("\n");return{value:a.slice(0,f)+k+a.slice(h),start:f,end:f+k.length}}let u=/^\s*[-*+] (\[[ x]\] )?/,v=/^\s*\d+\. /,w=/^#{1,6} /,x=/^> ?/;function y({value:a,onChange:b,placeholder:c,defaultView:y="split",minHeight:z=340,fill:A=!1}){let{t:B}=(0,r.s9)(),C=(0,e.useRef)(null),[D,E]=(0,e.useState)(y),F=a=>{let c=C.current;if(!c)return;let d=a(c.value,c.selectionStart,c.selectionEnd);b(d.value),requestAnimationFrame(()=>{c.focus(),c.setSelectionRange(d.start,d.end)})},G=[{id:"h",icon:(0,d.jsx)(h.A,{size:15}),label:B("md.heading"),run:()=>F((a,b,c)=>t(a,b,c,()=>"## ",w))},{id:"b",icon:(0,d.jsx)(i.A,{size:15}),label:B("md.bold"),keys:"B",run:()=>F((a,b,c)=>s(a,b,c,"**","**",B("md.boldPh")))},{id:"i",icon:(0,d.jsx)(j.A,{size:15}),label:B("md.italic"),keys:"I",run:()=>F((a,b,c)=>s(a,b,c,"*","*",B("md.italicPh")))},{id:"c",icon:(0,d.jsx)(k.A,{size:15}),label:B("md.code"),run:()=>F((a,b,c)=>s(a,b,c,"`","`","code"))},{id:"cb",icon:(0,d.jsx)(l.A,{size:15}),label:B("md.codeBlock"),run:()=>F((a,b,c)=>s(a,b,c,"\n```\n","\n```\n","code"))},{id:"ul",icon:(0,d.jsx)(m.A,{size:15}),label:B("md.bullets"),run:()=>F((a,b,c)=>t(a,b,c,()=>"- ",u))},{id:"ol",icon:(0,d.jsx)(n.A,{size:15}),label:B("md.numbered"),run:()=>F((a,b,c)=>t(a,b,c,a=>`${a+1}. `,v))},{id:"q",icon:(0,d.jsx)(o.A,{size:15}),label:B("md.quote"),run:()=>F((a,b,c)=>t(a,b,c,()=>"> ",x))},{id:"l",icon:(0,d.jsx)(p.A,{size:15}),label:B("md.link"),keys:"K",run:()=>F((a,b,c)=>{let d=a.slice(b,c)||B("md.linkPh"),e=`[${d}](https://)`;return{value:a.slice(0,b)+e+a.slice(c),start:b+d.length+3,end:b+d.length+11}})},{id:"hr",icon:(0,d.jsx)(q.A,{size:15}),label:B("md.rule"),run:()=>F((a,b,c)=>({value:a.slice(0,b)+"\n\n---\n\n"+a.slice(c),start:b+7,end:b+7}))}],H=a.trim()?a.trim().split(/\s+/).length:0;return(0,d.jsxs)("div",{className:`mde${A?" fill":""}`,children:[(0,d.jsxs)("div",{className:"mde-bar",role:"toolbar","aria-label":B("md.toolbar"),children:[G.map(a=>(0,d.jsx)("button",{type:"button",className:"mde-btn",title:a.keys?`${a.label} (Ctrl+${a.keys})`:a.label,"aria-label":a.label,onMouseDown:a=>a.preventDefault(),onClick:a.run,disabled:"preview"===D,children:a.icon},a.id)),(0,d.jsx)("span",{className:"grow"}),(0,d.jsx)("div",{className:"mde-views",role:"group",children:["write","split","preview"].map(a=>(0,d.jsx)("button",{type:"button",className:D===a?"on":"","aria-pressed":D===a,onClick:()=>E(a),children:B(`md.view.${a}`)},a))})]}),(0,d.jsxs)("div",{className:`mde-body v-${D}`,style:{minHeight:z},children:["preview"!==D&&(0,d.jsx)("textarea",{ref:C,className:"mde-text mono",style:{minHeight:z},value:a,onChange:a=>b(a.target.value),onKeyDown:a=>{let c=a.currentTarget;if(a.ctrlKey||a.metaKey){let b=G.find(b=>b.keys&&b.keys.toLowerCase()===a.key.toLowerCase());if(b){a.preventDefault(),b.run();return}}if("Tab"===a.key){a.preventDefault(),F((b,c,d)=>{if(c===d&&!a.shiftKey)return{value:b.slice(0,c)+" "+b.slice(d),start:c+2,end:c+2};let e=b.lastIndexOf("\n",c-1)+1,f=b.indexOf("\n",d),g=-1===f?b.length:f,h=b.slice(e,g).split("\n").map(b=>a.shiftKey?b.replace(/^ {1,2}/,""):" "+b).join("\n");return{value:b.slice(0,e)+h+b.slice(g),start:e,end:e+h.length}});return}if("Enter"===a.key&&!a.shiftKey&&c.selectionStart===c.selectionEnd){let d=c.value,e=c.selectionStart,f=d.lastIndexOf("\n",e-1)+1,g=d.slice(f,e),h=/^(\s*)([-*+] (?:\[[ x]\] )?|(\d+)\. )(.*)$/.exec(g);if(!h)return;if(a.preventDefault(),!h[4]){b(d.slice(0,f)+d.slice(e)),requestAnimationFrame(()=>c.setSelectionRange(f,f));return}let i=h[3]?`${h[1]}${Number(h[3])+1}. `:h[1]+h[2].replace("[x]","[ ]");b(d.slice(0,e)+"\n"+i+d.slice(e)),requestAnimationFrame(()=>{let a=e+1+i.length;c.setSelectionRange(a,a)})}},placeholder:c,spellCheck:!1}),"write"!==D&&(0,d.jsx)("div",{className:"mde-prev md",children:(0,d.jsx)(f.oz,{remarkPlugins:[g.A],children:a||B("skills.previewEmpty")})})]}),(0,d.jsxs)("div",{className:"mde-foot muted",children:[B("md.stats",{words:H,chars:a.length})," \xb7 ",B("md.tips")]})]})}}};
1
+ "use strict";exports.id=143,exports.ids=[143],exports.modules={13520:(a,b,c)=>{function d(a){}c.d(b,{h:()=>d}),c(17027)},15964:(a,b,c)=>{c.d(b,{SU:()=>s,TN:()=>p,WU:()=>o,tf:()=>r});var d=c(55322),e=c(17027),f=c(59686),g=c(93884),h=c(30584),i=c(5207),j=c(60570),k=c(85748),l=c(61162),m=c(89477),n=c(70226);let o=a=>({name:"",description:a?.description??"",role:a?.role??"worker",provider:a?.provider??"claude",model:a?.model??"",system_prompt:a?.system_prompt??"",permission:a?.permission??"acceptEdits",cwd:"",skill_ids:a?.skill_ids??[],skill_loads:a?.skill_loads??{},worker_ids:[],type_id:a?.id??null,colony_id:null,overrides:[],object_ids:[]}),p=(a,b=[])=>({name:a.name,description:a.description,role:a.role,provider:a.provider,model:a.model,system_prompt:a.system_prompt,permission:a.permission,cwd:a.cwd,skill_ids:a.skill_ids,skill_loads:a.skill_loads,worker_ids:a.worker_ids,type_id:a.type_id,colony_id:a.colony_id,overrides:a.overrides,object_ids:b}),q=(a,b,c)=>!!b&&b.inherit[c]&&!a.overrides.includes(c);function r(a,b,c,d=[]){let e={};a.name.trim()?b.some(b=>b.id!==c&&b.name.toLowerCase()===a.name.trim().toLowerCase())&&(e.name=(0,g.Tl)("form.err.nameTaken")):e.name=(0,g.Tl)("form.err.name");let f=d.find(b=>b.id===a.colony_id);return a.cwd.trim()||q(a,f,"cwd")&&f?.cwd||(e.cwd=(0,g.Tl)("form.err.folder")),e}function s({draft:a,onChange:b,errors:c,selfId:o,showType:p=!0,focusName:r=!1}){let{t:s}=(0,g.s9)(),{skills:u,providers:v,agents:w,types:x,colonies:y,connections:z,objects:A}=(0,j.q5)(),B=(0,e.useMemo)(()=>A.filter(a=>n.G.includes(a.kind)).map(a=>({id:a.id,label:a.name,hint:a.manager_id&&a.manager_id!==o?s("form.resources.taken",{name:w.find(b=>b.id===a.manager_id)?.name??""}):y.find(b=>b.id===a.colony_id)?.name??s("common.noColony")})),[A,w,y,o,s]),C=(0,e.useMemo)(()=>z.filter(a=>a.agent_id===o&&a.enabled),[z,o]),D=y.find(b=>b.id===a.colony_id),E=b=>q(a,D,b),F=(c,d)=>b({...a,overrides:d?a.overrides.filter(a=>a!==c):[...new Set([...a.overrides,c])]}),G=(c,d)=>b({...a,[c]:d}),H=(0,e.useMemo)(()=>w.filter(a=>a.id!==o&&"worker"===a.role),[w,o]),I=x.find(b=>b.id===a.type_id);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.D0,{label:s("form.name"),error:c.name,hint:s("form.name.hint"),children:(0,d.jsx)("input",{className:"input",value:a.name,onChange:a=>G("name",a.target.value),placeholder:s("form.name.placeholder"),"data-autofocus":r?"":void 0})}),(0,d.jsx)(i.D0,{label:s("form.purpose"),hint:s("form.purpose.hint"),children:(0,d.jsx)("input",{className:"input",value:a.description,onChange:a=>G("description",a.target.value),placeholder:s("form.purpose.placeholder")})}),(0,d.jsxs)(i.D0,{label:s("form.role"),children:[(0,d.jsx)(i.$q,{value:a.role,onChange:a=>G("role",a),options:[{id:"worker",label:s("role.worker")},{id:"orchestrator",label:s("role.orchestrator")}]}),(0,d.jsx)("span",{className:"hint",children:"orchestrator"===a.role?s("form.role.orchestratorHint"):s("form.role.workerHint")})]}),p&&I&&(0,d.jsx)("p",{className:"hint m0",children:s("form.basedOn",{name:I.name})}),(0,d.jsx)(i.D0,{label:s("form.colony"),hint:s("form.colony.hint"),children:(0,d.jsxs)("select",{className:"select",value:a.colony_id??"",onChange:c=>b({...a,colony_id:c.target.value||null,overrides:[]}),children:[(0,d.jsx)("option",{value:"",children:s("common.noColony")}),y.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})}),(0,d.jsx)(i.D0,{label:s("form.provider"),children:(0,d.jsx)(i.YO,{value:a.provider,onChange:c=>b({...a,provider:c,model:""}),providers:v})}),(0,d.jsx)(i.CD,{provider:a.provider,value:a.model,onChange:a=>G("model",a)}),D&&D.inherit.permission&&(0,d.jsx)(t,{colony:D,on:E("permission"),onChange:a=>F("permission",a),label:s("inherit.permissions"),value:(0,l.Ck)(D.permission)}),!E("permission")&&(0,d.jsx)(i.en,{value:a.permission,onChange:a=>G("permission",a),locked:C.length?["plan"]:[]}),C.length>0&&(0,d.jsxs)("p",{className:"hint m0",children:[(0,d.jsxs)("b",{children:[s("form.connections"),":"]})," ",s("form.connections.hint",{names:C.map(a=>a.name).join(", ")})]}),D&&D.inherit.cwd&&D.cwd&&(0,d.jsx)(t,{colony:D,on:E("cwd"),onChange:a=>F("cwd",a),label:s("field.folder"),value:(0,l._1)(D.cwd),mono:!0}),!(E("cwd")&&D?.cwd)&&(0,d.jsx)(i.dR,{value:a.cwd,onChange:a=>G("cwd",a),error:c.cwd}),D&&D.inherit.prompt&&D.system_prompt.trim()&&(0,d.jsx)(t,{colony:D,on:E("prompt"),onChange:a=>F("prompt",a),label:s("inherit.context"),value:`${D.system_prompt.trim().slice(0,90)}${D.system_prompt.trim().length>90?"…":""}`,note:s("inherit.context.note")}),(0,d.jsx)(i.D0,{label:E("prompt")||D?.system_prompt?s("form.ownPrompt"):s("form.systemPrompt"),hint:s("form.promptHint",{count:a.system_prompt.length,n:(0,h._E)(a.system_prompt.length)}),children:(0,d.jsx)(f.n,{value:a.system_prompt,onChange:a=>G("system_prompt",a),placeholder:s("form.prompt.placeholder"),defaultView:"write",minHeight:220})}),D&&D.inherit.skills&&D.skill_ids.length>0&&(0,d.jsx)(t,{colony:D,on:E("skills"),onChange:a=>F("skills",a),label:s("inherit.skills"),value:D.skill_ids.map(a=>u.find(b=>b.id===a)?.name).filter(Boolean).join(", "),note:s("inherit.skills.note")}),(0,d.jsx)(i.D0,{label:s("form.skills"),hint:s("form.skills.hint"),children:(0,d.jsx)(i.kV,{skills:u,value:a.skill_ids,loads:a.skill_loads,onChange:(c,d)=>b({...a,skill_ids:c,skill_loads:d})})}),B.length>0&&(0,d.jsx)(i.D0,{label:s("form.resources"),hint:s("form.resources.hint"),children:(0,d.jsx)(m.c,{multi:!0,options:B,value:a.object_ids,onChange:c=>b({...a,object_ids:c}),placeholder:s("form.resources.placeholder"),empty:s("form.resources.empty"),ariaLabel:s("form.resources")})}),"orchestrator"===a.role&&(0,d.jsx)(i.D0,{label:s("form.team"),hint:s("form.team.hint"),children:H.length?(0,d.jsx)(k.C,{items:H.map(a=>({id:a.id,name:a.name,note:a.description||a.provider})),value:a.worker_ids,onChange:a=>G("worker_ids",a)}):(0,d.jsx)("p",{className:"hint",children:s("form.team.empty")})})]})}function t({colony:a,on:b,onChange:c,label:e,value:f,note:h,mono:i}){let{t:j}=(0,g.s9)();return(0,d.jsxs)("label",{className:`inherit-row ${b?"on":""}`,children:[(0,d.jsx)("input",{type:"checkbox",checked:b,onChange:a=>c(a.target.checked)}),(0,d.jsxs)("span",{className:"grow",children:[(0,d.jsxs)("b",{children:[e," ",(0,d.jsx)("span",{className:"muted fw-500",children:j("inherit.from")})," ",(0,d.jsx)("i",{className:"cdot",style:{background:a.color||"var(--honey)"}}),a.name]}),(0,d.jsx)("span",{className:`inh-val ${i?"mono":""}`,children:f||"—"}),h&&(0,d.jsx)("span",{className:"hint",children:h})]}),(0,d.jsx)("span",{className:"inh-state",children:j(b?"inherit.following":"inherit.own")})]})}},36143:(a,b,c)=>{c.d(b,{b:()=>o,t:()=>n});var d=c(55322),e=c(17027),f=c(66252),g=c(5207),h=c(15964),i=c(60570),j=c(13520),k=c(7371),l=c(61162),m=c(93884);let n="default-objects";function o({onClose:a,onCreated:b,presetTypeId:c,presetColonyId:o,presetObjectId:p,manager:q=!1}){let{t:r}=(0,m.s9)(),{types:s,agents:t,refresh:u,colonies:v}=(0,i.q5)(),w=(0,g.dj)(),x=(0,f.useRouter)(),[y,z]=(0,e.useState)(c||q?"form":"type"),[A,B]=(0,e.useState)(()=>{let a={...(0,h.WU)(s.find(a=>a.id===c)),colony_id:o??null,object_ids:p?[p]:[]};return q?{...a,description:r("obj.manager.description"),permission:"acceptEdits",skill_ids:[...new Set([...a.skill_ids,n])],skill_loads:{...a.skill_loads,[n]:"always"}}:a}),[C,D]=(0,e.useState)(()=>JSON.stringify(A)),E=a=>{B(a),D(JSON.stringify(a)),z("form")},F=(0,e.useRef)(!1),G=JSON.stringify(A)!==C;(0,j.h)(G&&!F.current);let[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(!1),N=(0,h.tf)(A,t,void 0,v),O=async()=>{if(M(!0),!Object.keys(N).length){K(!0);try{let{object_ids:c,...d}=A,e=await k.FH.post("/agents",d);c.length&&await k.FH.put(`/agents/${e.id}/resources`,{object_ids:c}).catch(a=>w(a instanceof Error?a.message:"","err")),await u(["agents","colonies","objects"]),w(r("newAgent.created",{name:e.name})),F.current=!0,b?.(e.id),a(),x.push(`/agents/${e.id}`)}catch(a){w(a instanceof Error?a.message:r("newAgent.failed"),"err"),K(!1)}}};return"type"===y?(0,d.jsx)(g._s,{title:r("newAgent.title"),subtitle:r("newAgent.pickType"),onClose:a,children:(0,d.jsxs)("div",{className:"col gap-m",children:[s.map(a=>(0,d.jsxs)("button",{className:"card card-pad row gap-l cx-typecard",onClick:()=>{E({...(0,h.WU)(a),colony_id:o??null,object_ids:p?[p]:[]})},children:[(0,d.jsx)(g._h,{color:l.xq[a.provider].color,queen:"orchestrator"===a.role,label:a.name.slice(0,2).toUpperCase()}),(0,d.jsxs)("div",{className:"grow",children:[(0,d.jsx)("b",{className:"cx-pick-title",children:a.name}),(0,d.jsx)("div",{className:"muted small",children:a.description||r("newAgent.typeFallback",{role:r(`role.${a.role}`),provider:l.xq[a.provider].label})})]}),(0,d.jsx)("span",{className:"chip",children:l.xq[a.provider].short})]},a.id)),(0,d.jsxs)("button",{className:"card card-pad row gap-l cx-typecard blank",onClick:()=>{E({...(0,h.WU)(),colony_id:o??null,object_ids:p?[p]:[]})},children:[(0,d.jsx)(g._h,{color:"var(--muted)",label:"+"}),(0,d.jsxs)("div",{className:"grow",children:[(0,d.jsx)("b",{className:"cx-pick-title",children:r("newAgent.blank")}),(0,d.jsx)("div",{className:"muted small",children:r("newAgent.blankHint")})]})]})]})},"type"):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g._s,{title:r("newAgent.title"),subtitle:q?r("obj.manager.subtitle"):A.type_id?r("newAgent.fromType",{name:s.find(a=>a.id===A.type_id)?.name??""}):r("newAgent.blank"),onClose:()=>{!G||F.current?a():I(!0)},footer:(0,d.jsxs)(d.Fragment,{children:[!c&&!q&&(0,d.jsx)("button",{className:"btn ghost",onClick:()=>z("type"),children:r("common.back")}),(0,d.jsx)("button",{className:"btn primary",disabled:J,onClick:O,children:J?r("newAgent.creating"):r("newAgent.create")})]}),children:(0,d.jsx)(h.SU,{draft:A,onChange:B,errors:L?N:{},focusName:!0})},"form"),H&&(0,d.jsx)(g.TM,{danger:!0,title:r("fa.unsaved.title"),body:r("fa.unsaved.body"),confirmLabel:r("fa.unsaved.discard"),cancelLabel:r("fa.unsaved.keep"),onClose:()=>I(!1),onConfirm:a})]})}},59686:(a,b,c)=>{c.d(b,{n:()=>y});var d=c(55322),e=c(17027),f=c(37070),g=c(31826),h=c(20862),i=c(69048),j=c(97299),k=c(55674),l=c(73726),m=c(46875),n=c(98635),o=c(54143),p=c(22276),q=c(29723),r=c(93884);function s(a,b,c,d,e=d,f=""){let g=a.slice(b,c)||f;return a.slice(b-d.length,b)===d&&a.slice(c,c+e.length)===e&&b!==c?{value:a.slice(0,b-d.length)+g+a.slice(c+e.length),start:b-d.length,end:c-d.length}:{value:a.slice(0,b)+d+g+e+a.slice(c),start:b+d.length,end:b+d.length+g.length}}function t(a,b,c,d,e){let f=a.lastIndexOf("\n",b-1)+1,g=a.indexOf("\n",c),h=-1===g?a.length:g,i=a.slice(f,h).split("\n"),j=i.every(a=>e.test(a)),k=i.map((a,b)=>j?a.replace(e,""):d(b)+a.replace(e,"")).join("\n");return{value:a.slice(0,f)+k+a.slice(h),start:f,end:f+k.length}}let u=/^\s*[-*+] (\[[ x]\] )?/,v=/^\s*\d+\. /,w=/^#{1,6} /,x=/^> ?/;function y({value:a,onChange:b,placeholder:c,defaultView:y="split",minHeight:z=340,fill:A=!1}){let{t:B}=(0,r.s9)(),C=(0,e.useRef)(null),[D,E]=(0,e.useState)(y),F=a=>{let c=C.current;if(!c)return;let d=a(c.value,c.selectionStart,c.selectionEnd);b(d.value),requestAnimationFrame(()=>{c.focus(),c.setSelectionRange(d.start,d.end)})},G=[{id:"h",icon:(0,d.jsx)(h.A,{size:15}),label:B("md.heading"),run:()=>F((a,b,c)=>t(a,b,c,()=>"## ",w))},{id:"b",icon:(0,d.jsx)(i.A,{size:15}),label:B("md.bold"),keys:"B",run:()=>F((a,b,c)=>s(a,b,c,"**","**",B("md.boldPh")))},{id:"i",icon:(0,d.jsx)(j.A,{size:15}),label:B("md.italic"),keys:"I",run:()=>F((a,b,c)=>s(a,b,c,"*","*",B("md.italicPh")))},{id:"c",icon:(0,d.jsx)(k.A,{size:15}),label:B("md.code"),run:()=>F((a,b,c)=>s(a,b,c,"`","`","code"))},{id:"cb",icon:(0,d.jsx)(l.A,{size:15}),label:B("md.codeBlock"),run:()=>F((a,b,c)=>s(a,b,c,"\n```\n","\n```\n","code"))},{id:"ul",icon:(0,d.jsx)(m.A,{size:15}),label:B("md.bullets"),run:()=>F((a,b,c)=>t(a,b,c,()=>"- ",u))},{id:"ol",icon:(0,d.jsx)(n.A,{size:15}),label:B("md.numbered"),run:()=>F((a,b,c)=>t(a,b,c,a=>`${a+1}. `,v))},{id:"q",icon:(0,d.jsx)(o.A,{size:15}),label:B("md.quote"),run:()=>F((a,b,c)=>t(a,b,c,()=>"> ",x))},{id:"l",icon:(0,d.jsx)(p.A,{size:15}),label:B("md.link"),keys:"K",run:()=>F((a,b,c)=>{let d=a.slice(b,c)||B("md.linkPh"),e=`[${d}](https://)`;return{value:a.slice(0,b)+e+a.slice(c),start:b+d.length+3,end:b+d.length+11}})},{id:"hr",icon:(0,d.jsx)(q.A,{size:15}),label:B("md.rule"),run:()=>F((a,b,c)=>({value:a.slice(0,b)+"\n\n---\n\n"+a.slice(c),start:b+7,end:b+7}))}],H=a.trim()?a.trim().split(/\s+/).length:0;return(0,d.jsxs)("div",{className:`mde${A?" fill":""}`,children:[(0,d.jsxs)("div",{className:"mde-bar",role:"toolbar","aria-label":B("md.toolbar"),children:[G.map(a=>(0,d.jsx)("button",{type:"button",className:"mde-btn",title:a.keys?`${a.label} (Ctrl+${a.keys})`:a.label,"aria-label":a.label,onMouseDown:a=>a.preventDefault(),onClick:a.run,disabled:"preview"===D,children:a.icon},a.id)),(0,d.jsx)("span",{className:"grow"}),(0,d.jsx)("div",{className:"mde-views",role:"group",children:["write","split","preview"].map(a=>(0,d.jsx)("button",{type:"button",className:D===a?"on":"","aria-pressed":D===a,onClick:()=>E(a),children:B(`md.view.${a}`)},a))})]}),(0,d.jsxs)("div",{className:`mde-body v-${D}`,style:{minHeight:z},children:["preview"!==D&&(0,d.jsx)("textarea",{ref:C,className:"mde-text mono",style:{minHeight:z},value:a,onChange:a=>b(a.target.value),onKeyDown:a=>{let c=a.currentTarget;if(a.ctrlKey||a.metaKey){let b=G.find(b=>b.keys&&b.keys.toLowerCase()===a.key.toLowerCase());if(b){a.preventDefault(),b.run();return}}if("Tab"===a.key){a.preventDefault(),F((b,c,d)=>{if(c===d&&!a.shiftKey)return{value:b.slice(0,c)+" "+b.slice(d),start:c+2,end:c+2};let e=b.lastIndexOf("\n",c-1)+1,f=b.indexOf("\n",d),g=-1===f?b.length:f,h=b.slice(e,g).split("\n").map(b=>a.shiftKey?b.replace(/^ {1,2}/,""):" "+b).join("\n");return{value:b.slice(0,e)+h+b.slice(g),start:e,end:e+h.length}});return}if("Enter"===a.key&&!a.shiftKey&&c.selectionStart===c.selectionEnd){let d=c.value,e=c.selectionStart,f=d.lastIndexOf("\n",e-1)+1,g=d.slice(f,e),h=/^(\s*)([-*+] (?:\[[ x]\] )?|(\d+)\. )(.*)$/.exec(g);if(!h)return;if(a.preventDefault(),!h[4]){b(d.slice(0,f)+d.slice(e)),requestAnimationFrame(()=>c.setSelectionRange(f,f));return}let i=h[3]?`${h[1]}${Number(h[3])+1}. `:h[1]+h[2].replace("[x]","[ ]");b(d.slice(0,e)+"\n"+i+d.slice(e)),requestAnimationFrame(()=>{let a=e+1+i.length;c.setSelectionRange(a,a)})}},placeholder:c,spellCheck:!1}),"write"!==D&&(0,d.jsx)("div",{className:"mde-prev md",children:(0,d.jsx)(f.oz,{remarkPlugins:[g.A],children:a||B("skills.previewEmpty")})})]}),(0,d.jsxs)("div",{className:"mde-foot muted",children:[B("md.stats",{words:H,chars:a.length})," \xb7 ",B("md.tips")]})]})}},70226:(a,b,c)=>{c.d(b,{G:()=>j,I:()=>k});var d=c(55322),e=c(17027),f=c(93884),g=c(60570),h=c(5207),i=c(89477);let j=["server","docker","cluster"];function k({value:a,onChange:b}){let{t:c}=(0,f.s9)(),{agents:j,colonies:k}=(0,g.o0)(),l=(0,e.useMemo)(()=>j.map(a=>({id:a.id,label:a.name,hint:k.find(b=>b.id===a.colony_id)?.name??c("common.noColony")})),[j,k,c]);return(0,d.jsx)(h.D0,{label:c("obj.manager.label"),hint:a?c("obj.manager.hint.set"):c("obj.manager.hint.none"),children:(0,d.jsx)(i.c,{options:l,value:a?[a]:[],onChange:a=>b(a[0]??""),placeholder:c("obj.manager.placeholder"),empty:c("obj.manager.empty"),ariaLabel:c("obj.manager.label")})})}},85748:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(55322),e=c(28923);function f({items:a,value:b,onChange:c}){return(0,d.jsx)("div",{className:"skillpick",children:a.map(a=>{let f=b.includes(a.id);return(0,d.jsxs)("button",{type:"button",className:"skillrow","aria-pressed":f,onClick:()=>c(f?b.filter(b=>b!==a.id):[...b,a.id]),children:[(0,d.jsx)("span",{className:"check",children:f&&(0,d.jsx)(e.A,{size:13,strokeWidth:3})}),(0,d.jsxs)("span",{children:[(0,d.jsx)("b",{className:"fw-600",children:a.name}),(0,d.jsx)("span",{className:"hint hint-block",children:a.note})]})]},a.id)})})}},89477:(a,b,c)=>{c.d(b,{c:()=>i});var d=c(55322),e=c(17027),f=c(31251),g=c(2838),h=c(40925);function i({options:a,value:b,onChange:c,multi:i=!1,inline:j=!1,placeholder:k,empty:l,ariaLabel:m,autoFocus:n=!1}){let[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(0),u=(0,e.useRef)(null),v=(0,e.useRef)(null);(0,g.s)(q,u,()=>r(!1));let w=b.map(b=>a.find(a=>a.id===b)).filter(a=>!!a),x=(0,e.useMemo)(()=>{let c=o.trim().toLowerCase();return a.filter(a=>!b.includes(a.id)&&(!c||`${a.label} ${a.hint??""}`.toLowerCase().includes(c))).slice(0,50)},[a,b,o]),y=a=>{c(i?[...b,a.id]:[a.id]),p(""),r(i),i&&v.current?.focus()},z=a=>{c(b.filter(b=>b!==a)),requestAnimationFrame(()=>v.current?.focus())},A=!i&&w.length>0,B=q&&!A&&(x.length>0||!!l),C=(0,h.B)(B,s,x.length);return(0,d.jsxs)("div",{className:`sg ps ${j?"ps-inline":""}`,ref:u,children:[(0,d.jsxs)("div",{className:`ps-box input ${q?"open":""}`,onClick:()=>{A||(r(!0),v.current?.focus())},children:[w.map(a=>(0,d.jsxs)("span",{className:"chip ps-chip",children:[a.label,(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),z(a.id)},"aria-label":`\xd7 ${a.label}`,children:(0,d.jsx)(f.A,{size:12})})]},a.id)),!A&&(0,d.jsx)("input",{ref:v,className:"ps-input",value:o,placeholder:w.length?"":k,"aria-label":m,autoComplete:"off",spellCheck:!1,autoFocus:n,...C.input,onFocus:()=>r(!0),onChange:a=>{p(a.target.value),r(!0)},onKeyDown:a=>{"ArrowDown"===a.key?(a.preventDefault(),r(!0),t(a=>Math.min(x.length-1,a+1))):"ArrowUp"===a.key?(a.preventDefault(),t(a=>Math.max(0,a-1))):"Enter"===a.key&&q&&x[s]?(a.preventDefault(),y(x[s])):"Escape"===a.key&&q?(a.stopPropagation(),r(!1)):"Backspace"===a.key&&!o&&w.length&&z(w[w.length-1].id)}})]}),B&&(0,d.jsxs)("ul",{className:"sg-list",...C.listProps,children:[0===x.length&&(0,d.jsx)("li",{className:"sg-empty",children:l}),x.map((a,b)=>(0,d.jsx)("li",{...C.optionProps(b),children:(0,d.jsxs)("button",{type:"button",className:`sg-opt ${b===s?"hi":""}`,onMouseDown:a=>a.preventDefault(),onMouseEnter:()=>t(b),onClick:()=>y(a),children:[(0,d.jsx)("span",{className:"nm",children:a.label}),a.hint&&(0,d.jsx)("span",{className:"hint",children:a.hint})]})},a.id))]})]})}}};