@openma/common 0.0.0-stage → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +391 -2
  3. package/dist/acp-artifacts/binary.d.ts +35 -0
  4. package/dist/acp-artifacts/binary.d.ts.map +1 -0
  5. package/dist/acp-artifacts/binary.js +120 -0
  6. package/dist/acp-artifacts/binary.js.map +1 -0
  7. package/dist/acp-artifacts/index.d.ts +7 -0
  8. package/dist/acp-artifacts/index.d.ts.map +1 -0
  9. package/dist/acp-artifacts/index.js +7 -0
  10. package/dist/acp-artifacts/index.js.map +1 -0
  11. package/dist/acp-artifacts/node-abi.d.ts +3 -0
  12. package/dist/acp-artifacts/node-abi.d.ts.map +1 -0
  13. package/dist/acp-artifacts/node-abi.js +17 -0
  14. package/dist/acp-artifacts/node-abi.js.map +1 -0
  15. package/dist/acp-artifacts/npm-cli.d.ts +3 -0
  16. package/dist/acp-artifacts/npm-cli.d.ts.map +1 -0
  17. package/dist/acp-artifacts/npm-cli.js +9 -0
  18. package/dist/acp-artifacts/npm-cli.js.map +1 -0
  19. package/dist/acp-artifacts/npm.d.ts +37 -0
  20. package/dist/acp-artifacts/npm.d.ts.map +1 -0
  21. package/dist/acp-artifacts/npm.js +167 -0
  22. package/dist/acp-artifacts/npm.js.map +1 -0
  23. package/dist/acp-artifacts/registry.d.ts +45 -0
  24. package/dist/acp-artifacts/registry.d.ts.map +1 -0
  25. package/dist/acp-artifacts/registry.js +206 -0
  26. package/dist/acp-artifacts/registry.js.map +1 -0
  27. package/dist/acp-artifacts/shared.d.ts +45 -0
  28. package/dist/acp-artifacts/shared.d.ts.map +1 -0
  29. package/dist/acp-artifacts/shared.js +157 -0
  30. package/dist/acp-artifacts/shared.js.map +1 -0
  31. package/dist/acp-artifacts/uvx.d.ts +32 -0
  32. package/dist/acp-artifacts/uvx.d.ts.map +1 -0
  33. package/dist/acp-artifacts/uvx.js +95 -0
  34. package/dist/acp-artifacts/uvx.js.map +1 -0
  35. package/dist/acp-fork/index.d.ts +51 -0
  36. package/dist/acp-fork/index.d.ts.map +1 -0
  37. package/dist/acp-fork/index.js +116 -0
  38. package/dist/acp-fork/index.js.map +1 -0
  39. package/dist/acp-harnesses/agent-setup.d.ts +118 -0
  40. package/dist/acp-harnesses/agent-setup.d.ts.map +1 -0
  41. package/dist/acp-harnesses/agent-setup.js +717 -0
  42. package/dist/acp-harnesses/agent-setup.js.map +1 -0
  43. package/dist/acp-harnesses/custom-agents.d.ts +81 -0
  44. package/dist/acp-harnesses/custom-agents.d.ts.map +1 -0
  45. package/dist/acp-harnesses/custom-agents.js +361 -0
  46. package/dist/acp-harnesses/custom-agents.js.map +1 -0
  47. package/dist/acp-harnesses/headless-launch.d.ts +34 -0
  48. package/dist/acp-harnesses/headless-launch.d.ts.map +1 -0
  49. package/dist/acp-harnesses/headless-launch.js +67 -0
  50. package/dist/acp-harnesses/headless-launch.js.map +1 -0
  51. package/dist/acp-harnesses/index.d.ts +18 -0
  52. package/dist/acp-harnesses/index.d.ts.map +1 -0
  53. package/dist/acp-harnesses/index.js +58 -0
  54. package/dist/acp-harnesses/index.js.map +1 -0
  55. package/dist/acp-harnesses/install-state.d.ts +86 -0
  56. package/dist/acp-harnesses/install-state.d.ts.map +1 -0
  57. package/dist/acp-harnesses/install-state.js +322 -0
  58. package/dist/acp-harnesses/install-state.js.map +1 -0
  59. package/dist/acp-harnesses/installer.d.ts +145 -0
  60. package/dist/acp-harnesses/installer.d.ts.map +1 -0
  61. package/dist/acp-harnesses/installer.js +716 -0
  62. package/dist/acp-harnesses/installer.js.map +1 -0
  63. package/dist/acp-harnesses/known-agents.d.ts +154 -0
  64. package/dist/acp-harnesses/known-agents.d.ts.map +1 -0
  65. package/dist/acp-harnesses/known-agents.js +240 -0
  66. package/dist/acp-harnesses/known-agents.js.map +1 -0
  67. package/dist/acp-harnesses/launcher.d.ts +27 -0
  68. package/dist/acp-harnesses/launcher.d.ts.map +1 -0
  69. package/dist/acp-harnesses/launcher.js +64 -0
  70. package/dist/acp-harnesses/launcher.js.map +1 -0
  71. package/dist/acp-harnesses/registry-fetch.d.ts +42 -0
  72. package/dist/acp-harnesses/registry-fetch.d.ts.map +1 -0
  73. package/dist/acp-harnesses/registry-fetch.js +132 -0
  74. package/dist/acp-harnesses/registry-fetch.js.map +1 -0
  75. package/dist/acp-harnesses/registry.d.ts +36 -0
  76. package/dist/acp-harnesses/registry.d.ts.map +1 -0
  77. package/dist/acp-harnesses/registry.js +307 -0
  78. package/dist/acp-harnesses/registry.js.map +1 -0
  79. package/dist/acp-runtime/errors.d.ts +7 -0
  80. package/dist/acp-runtime/errors.d.ts.map +1 -0
  81. package/dist/acp-runtime/errors.js +17 -0
  82. package/dist/acp-runtime/errors.js.map +1 -0
  83. package/dist/acp-runtime/fork-support.d.ts +8 -0
  84. package/dist/acp-runtime/fork-support.d.ts.map +1 -0
  85. package/dist/acp-runtime/fork-support.js +20 -0
  86. package/dist/acp-runtime/fork-support.js.map +1 -0
  87. package/dist/acp-runtime/index.d.ts +11 -0
  88. package/dist/acp-runtime/index.d.ts.map +1 -0
  89. package/dist/acp-runtime/index.js +6 -0
  90. package/dist/acp-runtime/index.js.map +1 -0
  91. package/dist/acp-runtime/probe.d.ts +103 -0
  92. package/dist/acp-runtime/probe.d.ts.map +1 -0
  93. package/dist/acp-runtime/probe.js +872 -0
  94. package/dist/acp-runtime/probe.js.map +1 -0
  95. package/dist/acp-runtime/runtime.d.ts +7 -0
  96. package/dist/acp-runtime/runtime.d.ts.map +1 -0
  97. package/dist/acp-runtime/runtime.js +26 -0
  98. package/dist/acp-runtime/runtime.js.map +1 -0
  99. package/dist/acp-runtime/session.d.ts +87 -0
  100. package/dist/acp-runtime/session.d.ts.map +1 -0
  101. package/dist/acp-runtime/session.js +1071 -0
  102. package/dist/acp-runtime/session.js.map +1 -0
  103. package/dist/acp-runtime/spawners/node.d.ts +5 -0
  104. package/dist/acp-runtime/spawners/node.d.ts.map +1 -0
  105. package/dist/acp-runtime/spawners/node.js +244 -0
  106. package/dist/acp-runtime/spawners/node.js.map +1 -0
  107. package/dist/acp-runtime/types.d.ts +180 -0
  108. package/dist/acp-runtime/types.d.ts.map +1 -0
  109. package/dist/acp-runtime/types.js +2 -0
  110. package/dist/acp-runtime/types.js.map +1 -0
  111. package/dist/agent-contract/acp.d.ts +4 -0
  112. package/dist/agent-contract/acp.d.ts.map +1 -0
  113. package/dist/agent-contract/acp.js +273 -0
  114. package/dist/agent-contract/acp.js.map +1 -0
  115. package/dist/agent-contract/index.d.ts +125 -0
  116. package/dist/agent-contract/index.d.ts.map +1 -0
  117. package/dist/agent-contract/index.js +102 -0
  118. package/dist/agent-contract/index.js.map +1 -0
  119. package/dist/agent-contract/managed.d.ts +5 -0
  120. package/dist/agent-contract/managed.d.ts.map +1 -0
  121. package/dist/agent-contract/managed.js +242 -0
  122. package/dist/agent-contract/managed.js.map +1 -0
  123. package/dist/agent-ui/index.d.ts +170 -0
  124. package/dist/agent-ui/index.d.ts.map +1 -0
  125. package/dist/agent-ui/index.js +853 -0
  126. package/dist/agent-ui/index.js.map +1 -0
  127. package/dist/agent-ui/presentation.d.ts +30 -0
  128. package/dist/agent-ui/presentation.d.ts.map +1 -0
  129. package/dist/agent-ui/presentation.js +79 -0
  130. package/dist/agent-ui/presentation.js.map +1 -0
  131. package/dist/agent-ui/react.d.ts +50 -0
  132. package/dist/agent-ui/react.d.ts.map +1 -0
  133. package/dist/agent-ui/react.js +334 -0
  134. package/dist/agent-ui/react.js.map +1 -0
  135. package/dist/brand/index.d.ts +17 -0
  136. package/dist/brand/index.d.ts.map +1 -0
  137. package/dist/brand/index.js +119 -0
  138. package/dist/brand/index.js.map +1 -0
  139. package/dist/brand/openma-logo-mark.svg +7 -0
  140. package/dist/brand/tokens.css +77 -0
  141. package/dist/brand/website.css +67 -0
  142. package/dist/chat-ui/acp.d.ts +26 -0
  143. package/dist/chat-ui/acp.d.ts.map +1 -0
  144. package/dist/chat-ui/acp.js +166 -0
  145. package/dist/chat-ui/acp.js.map +1 -0
  146. package/dist/chat-ui/components.d.ts +230 -0
  147. package/dist/chat-ui/components.d.ts.map +1 -0
  148. package/dist/chat-ui/components.js +561 -0
  149. package/dist/chat-ui/components.js.map +1 -0
  150. package/dist/chat-ui/composer-drafts.d.ts +21 -0
  151. package/dist/chat-ui/composer-drafts.d.ts.map +1 -0
  152. package/dist/chat-ui/composer-drafts.js +58 -0
  153. package/dist/chat-ui/composer-drafts.js.map +1 -0
  154. package/dist/chat-ui/controller.d.ts +61 -0
  155. package/dist/chat-ui/controller.d.ts.map +1 -0
  156. package/dist/chat-ui/controller.js +218 -0
  157. package/dist/chat-ui/controller.js.map +1 -0
  158. package/dist/chat-ui/index.d.ts +8 -0
  159. package/dist/chat-ui/index.d.ts.map +1 -0
  160. package/dist/chat-ui/index.js +8 -0
  161. package/dist/chat-ui/index.js.map +1 -0
  162. package/dist/chat-ui/markdown.d.ts +37 -0
  163. package/dist/chat-ui/markdown.d.ts.map +1 -0
  164. package/dist/chat-ui/markdown.js +33 -0
  165. package/dist/chat-ui/markdown.js.map +1 -0
  166. package/dist/chat-ui/presentation.d.ts +34 -0
  167. package/dist/chat-ui/presentation.d.ts.map +1 -0
  168. package/dist/chat-ui/presentation.js +191 -0
  169. package/dist/chat-ui/presentation.js.map +1 -0
  170. package/dist/chat-ui/styles.css +815 -0
  171. package/dist/chat-ui/utils.d.ts +14 -0
  172. package/dist/chat-ui/utils.d.ts.map +1 -0
  173. package/dist/chat-ui/utils.js +71 -0
  174. package/dist/chat-ui/utils.js.map +1 -0
  175. package/dist/local-runtime/checkpoint.d.ts +28 -0
  176. package/dist/local-runtime/checkpoint.d.ts.map +1 -0
  177. package/dist/local-runtime/checkpoint.js +2 -0
  178. package/dist/local-runtime/checkpoint.js.map +1 -0
  179. package/dist/local-runtime/daemon-connection.d.ts +27 -0
  180. package/dist/local-runtime/daemon-connection.d.ts.map +1 -0
  181. package/dist/local-runtime/daemon-connection.js +161 -0
  182. package/dist/local-runtime/daemon-connection.js.map +1 -0
  183. package/dist/local-runtime/daemon-host.d.ts +39 -0
  184. package/dist/local-runtime/daemon-host.d.ts.map +1 -0
  185. package/dist/local-runtime/daemon-host.js +88 -0
  186. package/dist/local-runtime/daemon-host.js.map +1 -0
  187. package/dist/local-runtime/index.d.ts +6 -0
  188. package/dist/local-runtime/index.d.ts.map +1 -0
  189. package/dist/local-runtime/index.js +5 -0
  190. package/dist/local-runtime/index.js.map +1 -0
  191. package/dist/local-runtime/runtime.d.ts +36 -0
  192. package/dist/local-runtime/runtime.d.ts.map +1 -0
  193. package/dist/local-runtime/runtime.js +82 -0
  194. package/dist/local-runtime/runtime.js.map +1 -0
  195. package/dist/local-runtime/session-host.d.ts +62 -0
  196. package/dist/local-runtime/session-host.d.ts.map +1 -0
  197. package/dist/local-runtime/session-host.js +477 -0
  198. package/dist/local-runtime/session-host.js.map +1 -0
  199. package/dist/managed-runtime/acp-subagents.d.ts +14 -0
  200. package/dist/managed-runtime/acp-subagents.d.ts.map +1 -0
  201. package/dist/managed-runtime/acp-subagents.js +67 -0
  202. package/dist/managed-runtime/acp-subagents.js.map +1 -0
  203. package/dist/managed-runtime/claimed-environment-work.d.ts +61 -0
  204. package/dist/managed-runtime/claimed-environment-work.d.ts.map +1 -0
  205. package/dist/managed-runtime/claimed-environment-work.js +170 -0
  206. package/dist/managed-runtime/claimed-environment-work.js.map +1 -0
  207. package/dist/managed-runtime/contracts.d.ts +31 -0
  208. package/dist/managed-runtime/contracts.d.ts.map +1 -0
  209. package/dist/managed-runtime/contracts.js +2 -0
  210. package/dist/managed-runtime/contracts.js.map +1 -0
  211. package/dist/managed-runtime/http-control.d.ts +67 -0
  212. package/dist/managed-runtime/http-control.d.ts.map +1 -0
  213. package/dist/managed-runtime/http-control.js +465 -0
  214. package/dist/managed-runtime/http-control.js.map +1 -0
  215. package/dist/managed-runtime/index.d.ts +89 -0
  216. package/dist/managed-runtime/index.d.ts.map +1 -0
  217. package/dist/managed-runtime/index.js +215 -0
  218. package/dist/managed-runtime/index.js.map +1 -0
  219. package/dist/managed-runtime/input-identity.d.ts +2 -0
  220. package/dist/managed-runtime/input-identity.d.ts.map +1 -0
  221. package/dist/managed-runtime/input-identity.js +2 -0
  222. package/dist/managed-runtime/input-identity.js.map +1 -0
  223. package/dist/managed-runtime/managed-event-projector.d.ts +24 -0
  224. package/dist/managed-runtime/managed-event-projector.d.ts.map +1 -0
  225. package/dist/managed-runtime/managed-event-projector.js +333 -0
  226. package/dist/managed-runtime/managed-event-projector.js.map +1 -0
  227. package/dist/managed-runtime/semantic-recovery.d.ts +61 -0
  228. package/dist/managed-runtime/semantic-recovery.d.ts.map +1 -0
  229. package/dist/managed-runtime/semantic-recovery.js +167 -0
  230. package/dist/managed-runtime/semantic-recovery.js.map +1 -0
  231. package/dist/project-ui/CreateProjectDialog.d.ts +15 -0
  232. package/dist/project-ui/CreateProjectDialog.d.ts.map +1 -0
  233. package/dist/project-ui/CreateProjectDialog.js +87 -0
  234. package/dist/project-ui/CreateProjectDialog.js.map +1 -0
  235. package/dist/project-ui/ProjectComposer.d.ts +13 -0
  236. package/dist/project-ui/ProjectComposer.d.ts.map +1 -0
  237. package/dist/project-ui/ProjectComposer.js +70 -0
  238. package/dist/project-ui/ProjectComposer.js.map +1 -0
  239. package/dist/project-ui/ProjectConversation.d.ts +10 -0
  240. package/dist/project-ui/ProjectConversation.d.ts.map +1 -0
  241. package/dist/project-ui/ProjectConversation.js +28 -0
  242. package/dist/project-ui/ProjectConversation.js.map +1 -0
  243. package/dist/project-ui/ProjectMessageAttachments.d.ts +4 -0
  244. package/dist/project-ui/ProjectMessageAttachments.d.ts.map +1 -0
  245. package/dist/project-ui/ProjectMessageAttachments.js +28 -0
  246. package/dist/project-ui/ProjectMessageAttachments.js.map +1 -0
  247. package/dist/project-ui/ProjectSettings.d.ts +8 -0
  248. package/dist/project-ui/ProjectSettings.d.ts.map +1 -0
  249. package/dist/project-ui/ProjectSettings.js +65 -0
  250. package/dist/project-ui/ProjectSettings.js.map +1 -0
  251. package/dist/project-ui/Projects.d.ts +18 -0
  252. package/dist/project-ui/Projects.d.ts.map +1 -0
  253. package/dist/project-ui/Projects.js +377 -0
  254. package/dist/project-ui/Projects.js.map +1 -0
  255. package/dist/project-ui/client.d.ts +234 -0
  256. package/dist/project-ui/client.d.ts.map +1 -0
  257. package/dist/project-ui/client.js +42 -0
  258. package/dist/project-ui/client.js.map +1 -0
  259. package/dist/project-ui/controls.d.ts +15 -0
  260. package/dist/project-ui/controls.d.ts.map +1 -0
  261. package/dist/project-ui/controls.js +17 -0
  262. package/dist/project-ui/controls.js.map +1 -0
  263. package/dist/project-ui/index.d.ts +20 -0
  264. package/dist/project-ui/index.d.ts.map +1 -0
  265. package/dist/project-ui/index.js +17 -0
  266. package/dist/project-ui/index.js.map +1 -0
  267. package/dist/project-ui/project-coordinator.d.ts +3 -0
  268. package/dist/project-ui/project-coordinator.d.ts.map +1 -0
  269. package/dist/project-ui/project-coordinator.js +12 -0
  270. package/dist/project-ui/project-coordinator.js.map +1 -0
  271. package/dist/project-ui/project-goals.d.ts +48 -0
  272. package/dist/project-ui/project-goals.d.ts.map +1 -0
  273. package/dist/project-ui/project-goals.js +169 -0
  274. package/dist/project-ui/project-goals.js.map +1 -0
  275. package/dist/project-ui/projects-query.d.ts +19 -0
  276. package/dist/project-ui/projects-query.d.ts.map +1 -0
  277. package/dist/project-ui/projects-query.js +132 -0
  278. package/dist/project-ui/projects-query.js.map +1 -0
  279. package/dist/project-ui/styles.css +847 -0
  280. package/dist/protocol/acp/index.d.ts +52 -0
  281. package/dist/protocol/acp/index.d.ts.map +1 -0
  282. package/dist/protocol/acp/index.js +1056 -0
  283. package/dist/protocol/acp/index.js.map +1 -0
  284. package/dist/protocol/cursor-cloud/index.d.ts +74 -0
  285. package/dist/protocol/cursor-cloud/index.d.ts.map +1 -0
  286. package/dist/protocol/cursor-cloud/index.js +249 -0
  287. package/dist/protocol/cursor-cloud/index.js.map +1 -0
  288. package/dist/protocol/managed/index.d.ts +32 -0
  289. package/dist/protocol/managed/index.d.ts.map +1 -0
  290. package/dist/protocol/managed/index.js +646 -0
  291. package/dist/protocol/managed/index.js.map +1 -0
  292. package/dist/protocol/managed/input-identity.d.ts +3 -0
  293. package/dist/protocol/managed/input-identity.d.ts.map +1 -0
  294. package/dist/protocol/managed/input-identity.js +6 -0
  295. package/dist/protocol/managed/input-identity.js.map +1 -0
  296. package/dist/protocol/openai-agents/index.d.ts +102 -0
  297. package/dist/protocol/openai-agents/index.d.ts.map +1 -0
  298. package/dist/protocol/openai-agents/index.js +142 -0
  299. package/dist/protocol/openai-agents/index.js.map +1 -0
  300. package/dist/session-events/acp-system-notices.d.ts +10 -0
  301. package/dist/session-events/acp-system-notices.d.ts.map +1 -0
  302. package/dist/session-events/acp-system-notices.js +46 -0
  303. package/dist/session-events/acp-system-notices.js.map +1 -0
  304. package/dist/session-events/acp.d.ts +214 -0
  305. package/dist/session-events/acp.d.ts.map +1 -0
  306. package/dist/session-events/acp.js +956 -0
  307. package/dist/session-events/acp.js.map +1 -0
  308. package/dist/session-events/managed.d.ts +141 -0
  309. package/dist/session-events/managed.d.ts.map +1 -0
  310. package/dist/session-events/managed.js +324 -0
  311. package/dist/session-events/managed.js.map +1 -0
  312. package/dist/session-events/openma.d.ts +304 -0
  313. package/dist/session-events/openma.d.ts.map +1 -0
  314. package/dist/session-events/openma.js +438 -0
  315. package/dist/session-events/openma.js.map +1 -0
  316. package/dist/session-kernel/index.d.ts +118 -0
  317. package/dist/session-kernel/index.d.ts.map +1 -0
  318. package/dist/session-kernel/index.js +215 -0
  319. package/dist/session-kernel/index.js.map +1 -0
  320. package/dist/session-orchestrator/index.d.ts +71 -0
  321. package/dist/session-orchestrator/index.d.ts.map +1 -0
  322. package/dist/session-orchestrator/index.js +177 -0
  323. package/dist/session-orchestrator/index.js.map +1 -0
  324. package/dist/session-ui/index.d.ts +96 -0
  325. package/dist/session-ui/index.d.ts.map +1 -0
  326. package/dist/session-ui/index.js +277 -0
  327. package/dist/session-ui/index.js.map +1 -0
  328. package/package.json +222 -4
@@ -0,0 +1,847 @@
1
+ .projects-page {
2
+ height: 100%;
3
+ min-height: 0;
4
+ overflow: auto;
5
+ color: var(--fg);
6
+ background: var(--bg);
7
+ font-size: 13px;
8
+ }
9
+ .projects-page button,
10
+ .projects-page a,
11
+ .projects-page select,
12
+ .projects-page input,
13
+ .projects-page textarea {
14
+ outline-offset: 3px;
15
+ }
16
+ .projects-page button:focus-visible,
17
+ .projects-page a:focus-visible {
18
+ outline: 2px solid var(--fg-muted);
19
+ }
20
+ .projects-index {
21
+ max-width: 1000px;
22
+ margin: 0 auto;
23
+ padding: 58px 40px;
24
+ }
25
+ .projects-list-header {
26
+ display: flex;
27
+ justify-content: space-between;
28
+ gap: 24px;
29
+ align-items: center;
30
+ margin-bottom: 32px;
31
+ }
32
+ .projects-list-header h1 {
33
+ font-size: 28px;
34
+ letter-spacing: -0.025em;
35
+ font-weight: 550;
36
+ margin-bottom: 8px;
37
+ }
38
+ .projects-list-header p {
39
+ color: var(--fg-muted);
40
+ line-height: 1.6;
41
+ }
42
+ .projects-search {
43
+ max-width: 360px;
44
+ margin-bottom: 28px;
45
+ }
46
+ .projects-grid {
47
+ display: grid;
48
+ grid-template-columns: repeat(2, minmax(0, 1fr));
49
+ gap: 16px;
50
+ }
51
+ .project-card {
52
+ border: 1px solid var(--border);
53
+ border-radius: 14px;
54
+ padding: 24px;
55
+ display: block;
56
+ transition: background 0.15s;
57
+ }
58
+ .project-card:hover {
59
+ background: var(--control-bg-hover);
60
+ }
61
+ .project-card > svg {
62
+ color: var(--fg-muted);
63
+ margin-bottom: 18px;
64
+ }
65
+ .project-card h2 {
66
+ font-size: 17px;
67
+ font-weight: 550;
68
+ margin-bottom: 8px;
69
+ }
70
+ .project-card p {
71
+ color: var(--fg-muted);
72
+ overflow: hidden;
73
+ text-overflow: ellipsis;
74
+ white-space: nowrap;
75
+ margin-bottom: 28px;
76
+ }
77
+ .project-card > span {
78
+ color: var(--fg-subtle);
79
+ font-size: 11px;
80
+ }
81
+ .projects-empty,
82
+ .project-loading {
83
+ text-align: center;
84
+ padding: 56px 24px;
85
+ display: flex;
86
+ align-items: center;
87
+ flex-direction: column;
88
+ gap: 16px;
89
+ color: var(--fg-muted);
90
+ }
91
+ .projects-empty h2 {
92
+ font-size: 20px;
93
+ color: var(--fg);
94
+ font-weight: 500;
95
+ }
96
+ .projects-empty p {
97
+ max-width: 410px;
98
+ line-height: 1.7;
99
+ }
100
+ .project-columns {
101
+ display: grid;
102
+ grid-template-columns: minmax(0, 1fr);
103
+ flex: 1;
104
+ min-height: 0;
105
+ overflow: hidden;
106
+ }
107
+ .project-main {
108
+ min-width: 0;
109
+ min-height: 0;
110
+ display: flex;
111
+ flex-direction: column;
112
+ padding: 0;
113
+ }
114
+ .coordinator-siblings {
115
+ display: flex;
116
+ flex-direction: column;
117
+ gap: 2px;
118
+ padding: 8px 12px 0;
119
+ }
120
+ .project-worker-attribution {
121
+ margin: 2px 0 0;
122
+ color: var(--fg-subtle);
123
+ font-size: 11px;
124
+ line-height: 1.4;
125
+ }
126
+ .project-external-composer {
127
+ display: grid;
128
+ gap: 8px;
129
+ margin-top: 16px;
130
+ }
131
+ .project-external-composer p {
132
+ color: var(--fg-subtle);
133
+ font-size: 12px;
134
+ line-height: 1.5;
135
+ }
136
+ .project-external-steer {
137
+ display: grid;
138
+ gap: 10px;
139
+ margin: 0 12px 12px;
140
+ padding: 12px;
141
+ border-radius: 8px;
142
+ background: var(--bg-surface);
143
+ }
144
+ .project-knowledge {
145
+ overflow-y: auto;
146
+ min-height: 0;
147
+ padding: 20px;
148
+ }
149
+ .project-knowledge-heading {
150
+ display: flex;
151
+ justify-content: space-between;
152
+ align-items: center;
153
+ gap: 12px;
154
+ }
155
+ .project-knowledge h2 {
156
+ font-weight: 550;
157
+ font-size: 13px;
158
+ }
159
+ .project-knowledge h3 {
160
+ font-weight: 550;
161
+ font-size: 12px;
162
+ margin: 0 0 9px;
163
+ }
164
+ .project-knowledge section {
165
+ margin-top: 28px;
166
+ padding-bottom: 24px;
167
+ border-bottom: 1px solid var(--border);
168
+ }
169
+ .project-knowledge section:last-child {
170
+ border: 0;
171
+ }
172
+ .project-knowledge p {
173
+ color: var(--fg-muted);
174
+ font-size: 12px;
175
+ line-height: 1.7;
176
+ white-space: pre-wrap;
177
+ overflow-wrap: anywhere;
178
+ max-height: 220px;
179
+ overflow: auto;
180
+ }
181
+ .project-knowledge section > button {
182
+ font-size: 12px;
183
+ margin-top: 10px;
184
+ text-decoration: underline;
185
+ text-underline-offset: 3px;
186
+ }
187
+ .project-runtime-summary dl {
188
+ display: grid;
189
+ grid-template-columns: auto 1fr;
190
+ gap: 8px;
191
+ font-size: 11px;
192
+ }
193
+ .project-runtime-summary dt {
194
+ color: var(--fg-muted);
195
+ }
196
+ .project-runtime-summary dd {
197
+ text-align: right;
198
+ overflow-wrap: anywhere;
199
+ }
200
+ .project-user-message {
201
+ background: var(--control-bg-hover);
202
+ border-radius: 14px;
203
+ padding: 12px 16px;
204
+ width: fit-content;
205
+ max-width: min(85%, 65ch);
206
+ margin: 0 0 22px auto;
207
+ white-space: pre-wrap;
208
+ overflow-wrap: anywhere;
209
+ line-height: 1.7;
210
+ }
211
+ .project-speaker {
212
+ display: block;
213
+ font-size: 12px;
214
+ font-weight: 550;
215
+ margin-bottom: 9px;
216
+ }
217
+ .project-answer {
218
+ line-height: 1.7;
219
+ }
220
+ .project-turn-state,
221
+ .project-feedback {
222
+ color: var(--fg-muted);
223
+ font-size: 12px;
224
+ margin: 8px 0;
225
+ }
226
+ .project-work-list {
227
+ padding: 20px;
228
+ flex: 1;
229
+ min-height: 0;
230
+ overflow-y: auto;
231
+ overscroll-behavior: contain;
232
+ }
233
+ .project-section-heading {
234
+ display: flex;
235
+ align-items: center;
236
+ justify-content: space-between;
237
+ gap: 12px;
238
+ margin-bottom: 20px;
239
+ }
240
+ .project-section-heading h2 {
241
+ font-size: 16px;
242
+ font-weight: 550;
243
+ }
244
+ .project-worker {
245
+ padding: 12px 10px;
246
+ display: flex;
247
+ justify-content: space-between;
248
+ gap: 14px;
249
+ flex-wrap: wrap;
250
+ }
251
+ .project-worker h3 {
252
+ font-weight: 550;
253
+ margin-bottom: 6px;
254
+ overflow-wrap: anywhere;
255
+ }
256
+ .project-worker span,
257
+ .project-worker a {
258
+ font-size: 11px;
259
+ color: var(--fg-muted);
260
+ }
261
+ .project-worker-actions {
262
+ display: flex;
263
+ align-items: center;
264
+ gap: 10px;
265
+ }
266
+ .project-activity {
267
+ border-bottom: 1px solid var(--border);
268
+ padding: 15px 0;
269
+ }
270
+ .project-activity summary {
271
+ display: flex;
272
+ gap: 16px;
273
+ cursor: pointer;
274
+ align-items: center;
275
+ font-size: 12px;
276
+ }
277
+ .project-activity summary > span:first-child {
278
+ flex: 1;
279
+ text-transform: capitalize;
280
+ }
281
+ .project-activity time {
282
+ font-size: 11px;
283
+ color: var(--fg-muted);
284
+ font-variant-numeric: tabular-nums;
285
+ }
286
+ .project-activity pre {
287
+ white-space: pre-wrap;
288
+ overflow-wrap: anywhere;
289
+ font-size: 11px;
290
+ background: var(--control-bg-hover);
291
+ padding: 12px;
292
+ margin-top: 12px;
293
+ border-radius: 8px;
294
+ }
295
+ .project-activity p {
296
+ color: var(--fg-muted);
297
+ font-size: 11px;
298
+ margin-top: 8px;
299
+ }
300
+ .project-form {
301
+ display: flex;
302
+ flex-direction: column;
303
+ gap: 18px;
304
+ font-size: 12px;
305
+ }
306
+ .project-form label {
307
+ display: flex;
308
+ flex-direction: column;
309
+ gap: 7px;
310
+ }
311
+ .project-runs select {
312
+ height: 34px;
313
+ border: 1px solid var(--border);
314
+ border-radius: 8px;
315
+ padding: 0 10px;
316
+ background: var(--bg);
317
+ color: var(--fg);
318
+ min-width: 0;
319
+ width: 100%;
320
+ font-size: 12px;
321
+ }
322
+ .project-form footer {
323
+ display: flex;
324
+ justify-content: flex-end;
325
+ gap: 10px;
326
+ padding-top: 10px;
327
+ }
328
+ .project-help {
329
+ color: var(--fg-muted);
330
+ font-size: 12px;
331
+ line-height: 1.7;
332
+ }
333
+ .project-help a {
334
+ text-decoration: underline;
335
+ text-underline-offset: 3px;
336
+ }
337
+ .project-error {
338
+ color: var(--fg);
339
+ background: var(--control-bg-hover);
340
+ border: 1px solid var(--border);
341
+ border-radius: 8px;
342
+ padding: 12px;
343
+ margin-top: 12px;
344
+ font-size: 12px;
345
+ overflow-wrap: anywhere;
346
+ }
347
+ .project-resource {
348
+ padding: 10px 0;
349
+ border-bottom: 1px solid var(--border);
350
+ }
351
+ .project-resource summary {
352
+ display: flex;
353
+ align-items: center;
354
+ gap: 8px;
355
+ font-size: 12px;
356
+ cursor: pointer;
357
+ overflow-wrap: anywhere;
358
+ }
359
+ .project-resource p {
360
+ margin-top: 12px;
361
+ }
362
+ .project-runs {
363
+ display: flex;
364
+ align-items: center;
365
+ gap: 10px;
366
+ width: min(750px, calc(100% - 32px));
367
+ margin: 16px auto 0;
368
+ }
369
+ .project-runs select {
370
+ max-width: 220px;
371
+ }
372
+ .project-outcome {
373
+ display: flex;
374
+ align-items: center;
375
+ justify-content: space-between;
376
+ gap: 16px;
377
+ max-width: 750px;
378
+ width: 100%;
379
+ margin: 12px auto 0;
380
+ padding: 10px 12px;
381
+ border: 1px solid var(--border);
382
+ border-radius: 12px;
383
+ background: color-mix(in srgb, var(--control-bg-hover) 55%, transparent);
384
+ }
385
+ .project-outcome-copy {
386
+ min-width: 0;
387
+ display: grid;
388
+ grid-template-columns: auto minmax(0, 1fr);
389
+ align-items: baseline;
390
+ column-gap: 8px;
391
+ row-gap: 2px;
392
+ }
393
+ .project-outcome-label {
394
+ color: var(--fg-muted);
395
+ font-size: 10px;
396
+ text-transform: uppercase;
397
+ letter-spacing: .08em;
398
+ }
399
+ .project-outcome-copy strong {
400
+ min-width: 0;
401
+ overflow: hidden;
402
+ text-overflow: ellipsis;
403
+ white-space: nowrap;
404
+ font-size: 12px;
405
+ font-weight: 550;
406
+ }
407
+ .project-outcome-status {
408
+ grid-column: 2;
409
+ color: var(--fg-muted);
410
+ font-size: 11px;
411
+ }
412
+ .project-outcome-danger {
413
+ border-color: color-mix(in srgb, #d26b5e 45%, var(--border));
414
+ }
415
+ .project-outcome-success {
416
+ border-color: color-mix(in srgb, #5b9b72 45%, var(--border));
417
+ }
418
+ .project-outcome-actions {
419
+ display: flex;
420
+ align-items: center;
421
+ gap: 6px;
422
+ flex-shrink: 0;
423
+ }
424
+ .project-worker-outcome {
425
+ display: block;
426
+ margin-top: 5px;
427
+ color: var(--fg-muted);
428
+ }
429
+
430
+ .projects-page:has(.project-columns) {
431
+ position: relative;
432
+ display: flex;
433
+ flex-direction: column;
434
+ overflow: hidden;
435
+ }
436
+ .project-columns.project-panel-open {
437
+ grid-template-columns: minmax(0, 1fr) minmax(320px, 38%);
438
+ }
439
+ .project-side-panel {
440
+ display: flex;
441
+ flex-direction: column;
442
+ min-width: 0;
443
+ min-height: 0;
444
+ margin: 8px 12px 12px 0;
445
+ overflow: hidden;
446
+ border: 1px solid var(--surface-panel-border);
447
+ border-radius: 12px;
448
+ background: var(--surface-panel);
449
+ gap: 0;
450
+ }
451
+ .project-side-heading {
452
+ flex-shrink: 0;
453
+ display: flex;
454
+ align-items: center;
455
+ justify-content: space-between;
456
+ gap: 4px;
457
+ min-height: 44px;
458
+ padding: 6px 8px;
459
+ }
460
+ .project-panel-tabs[data-slot="tabs-list"] {
461
+ min-width: 0;
462
+ background: transparent;
463
+ }
464
+ .project-panel-tabs [data-slot="tabs-trigger"] {
465
+ font-size: 12px;
466
+ padding: 4px 8px;
467
+ }
468
+ .project-panel-tabs [data-slot="tabs-trigger"][data-state="active"] {
469
+ background: var(--control-bg-hover);
470
+ box-shadow: none;
471
+ }
472
+ .project-panel-content {
473
+ display: flex;
474
+ flex-direction: column;
475
+ min-height: 0;
476
+ overflow: hidden;
477
+ }
478
+ .project-side-heading h2 {
479
+ font-size: 13px;
480
+ font-weight: 550;
481
+ }
482
+ .project-side-heading button {
483
+ flex-shrink: 0;
484
+ }
485
+ .project-side-panel .project-knowledge {
486
+ flex: 1;
487
+ min-width: 0;
488
+ border: 0;
489
+ }
490
+ .project-side-panel .project-section-heading h2 {
491
+ font-size: 13px;
492
+ }
493
+ .project-panel-summary {
494
+ display: flex;
495
+ align-items: center;
496
+ justify-content: space-between;
497
+ gap: 12px;
498
+ margin-bottom: 20px;
499
+ }
500
+ .project-panel-summary h2 {
501
+ font-size: 15px;
502
+ line-height: 1.4;
503
+ font-weight: 550;
504
+ }
505
+ .project-panel-summary p {
506
+ margin-top: 4px;
507
+ color: var(--fg-muted);
508
+ font-size: 12px;
509
+ line-height: 1.5;
510
+ }
511
+ .project-panel-summary > button {
512
+ flex-shrink: 0;
513
+ }
514
+ .project-workers-empty {
515
+ padding: 24px 0;
516
+ }
517
+ .project-workers-empty h3 {
518
+ font-size: 13px;
519
+ line-height: 1.5;
520
+ font-weight: 500;
521
+ }
522
+ .project-workers-empty p {
523
+ max-width: 34ch;
524
+ margin-top: 6px;
525
+ color: var(--fg-muted);
526
+ font-size: 12px;
527
+ line-height: 1.6;
528
+ }
529
+ .project-worker-group {
530
+ margin: 0 0 20px;
531
+ min-width: 0;
532
+ }
533
+ .project-worker-group > h3 {
534
+ padding: 6px 10px;
535
+ background: var(--control-bg-hover);
536
+ border-radius: 6px;
537
+ font-size: 12px;
538
+ line-height: 1.5;
539
+ font-weight: 500;
540
+ }
541
+ .project-worker-group > h3 span {
542
+ color: var(--fg-muted);
543
+ margin-left: 6px;
544
+ font-variant-numeric: tabular-nums;
545
+ }
546
+ .project-worker,
547
+ .project-worker > div,
548
+ .project-worker-row {
549
+ min-width: 0;
550
+ max-width: 100%;
551
+ }
552
+ .project-worker-row {
553
+ display: block;
554
+ width: 100%;
555
+ padding: 12px 10px;
556
+ border-radius: 8px;
557
+ text-align: left;
558
+ }
559
+ .project-worker-row:hover {
560
+ background: var(--control-bg-hover);
561
+ }
562
+ .project-worker-title {
563
+ font-size: 13px;
564
+ font-weight: 500;
565
+ text-align: left;
566
+ overflow-wrap: anywhere;
567
+ }
568
+ .project-worker-title:hover {
569
+ text-decoration: underline;
570
+ text-underline-offset: 3px;
571
+ }
572
+ .project-worker-preview {
573
+ color: var(--fg-muted);
574
+ font-size: 12px;
575
+ line-height: 1.5;
576
+ display: -webkit-box;
577
+ -webkit-line-clamp: 2;
578
+ -webkit-box-orient: vertical;
579
+ overflow: hidden;
580
+ margin: 4px 0;
581
+ }
582
+ .project-worker details {
583
+ overflow-wrap: anywhere;
584
+ font-size: 12px;
585
+ }
586
+ .project-thread-detail {
587
+ display: flex;
588
+ flex-direction: column;
589
+ gap: 12px;
590
+ padding: 16px;
591
+ flex: 1;
592
+ min-height: 0;
593
+ }
594
+ .project-thread-transcript {
595
+ flex: 1;
596
+ min-height: 0;
597
+ overflow: auto;
598
+ overscroll-behavior: contain;
599
+ font-size: 14px;
600
+ line-height: 1.7;
601
+ }
602
+ .project-thread-transcript h2 {
603
+ font-size: 14px;
604
+ font-weight: 550;
605
+ margin-bottom: 20px;
606
+ }
607
+ .project-thread-detail .composer-stack-card {
608
+ flex-shrink: 0;
609
+ }
610
+ .project-answer,
611
+ .project-thread-transcript {
612
+ overflow-wrap: anywhere;
613
+ }
614
+ .project-answer pre,
615
+ .project-thread-transcript pre {
616
+ max-width: 100%;
617
+ overflow-x: auto;
618
+ }
619
+ .project-thread-transcript {
620
+ overflow-x: hidden;
621
+ }
622
+ @media (max-width: 1000px) {
623
+ .project-columns.project-panel-open {
624
+ grid-template-columns: minmax(0, 1fr);
625
+ }
626
+ .project-side-panel {
627
+ position: absolute;
628
+ inset: 8px 12px 12px auto;
629
+ width: min(420px, calc(100% - 24px));
630
+ margin: 0;
631
+ z-index: 2;
632
+ }
633
+ }
634
+ @media (max-width: 640px) {
635
+ .projects-index {
636
+ padding: 28px 20px;
637
+ }
638
+ .projects-list-header {
639
+ align-items: flex-start;
640
+ }
641
+ .projects-list-header h1 {
642
+ font-size: 24px;
643
+ }
644
+ .projects-grid {
645
+ grid-template-columns: 1fr;
646
+ }
647
+ }
648
+ @media (prefers-reduced-motion: reduce) {
649
+ .project-card {
650
+ transition: none;
651
+ }
652
+ }
653
+
654
+ /* Controls the shared surface owns. Hosts map --fg, --bg, --border, and
655
+ --fg-muted; this file does not import a framework or a runtime. */
656
+ .project-topbar {
657
+ display: flex;
658
+ align-items: center;
659
+ gap: 8px;
660
+ min-height: 44px;
661
+ padding: 8px 12px;
662
+ }
663
+ .project-title {
664
+ min-width: 0;
665
+ flex: 1;
666
+ overflow: hidden;
667
+ text-overflow: ellipsis;
668
+ white-space: nowrap;
669
+ text-align: left;
670
+ font-weight: 550;
671
+ background: transparent;
672
+ color: inherit;
673
+ border: 0;
674
+ }
675
+ .project-button {
676
+ display: inline-flex;
677
+ align-items: center;
678
+ justify-content: center;
679
+ gap: 6px;
680
+ min-height: 32px;
681
+ padding: 0 12px;
682
+ border-radius: 8px;
683
+ border: 1px solid transparent;
684
+ background: var(--fg);
685
+ color: var(--bg);
686
+ font: inherit;
687
+ font-size: 13px;
688
+ cursor: pointer;
689
+ }
690
+ .project-button:disabled {
691
+ cursor: default;
692
+ opacity: 0.55;
693
+ }
694
+ .project-button-ghost,
695
+ .project-button-outline {
696
+ background: transparent;
697
+ color: inherit;
698
+ }
699
+ .project-button-outline {
700
+ border-color: var(--border);
701
+ }
702
+ .project-button-icon {
703
+ width: 32px;
704
+ padding: 0;
705
+ }
706
+ .project-field {
707
+ display: grid;
708
+ gap: 6px;
709
+ font-size: 13px;
710
+ font-weight: 500;
711
+ }
712
+ .project-field input,
713
+ .project-field textarea,
714
+ .project-field select,
715
+ .project-composer textarea,
716
+ .project-search {
717
+ width: 100%;
718
+ border: 1px solid var(--border);
719
+ border-radius: 8px;
720
+ background: transparent;
721
+ color: inherit;
722
+ padding: 8px 10px;
723
+ font: inherit;
724
+ }
725
+ .project-composer {
726
+ display: flex;
727
+ flex-direction: column;
728
+ gap: 8px;
729
+ width: min(750px, calc(100% - 32px));
730
+ margin: 0 auto 16px;
731
+ }
732
+ .project-composer-surface {
733
+ display: flex;
734
+ flex-direction: column;
735
+ gap: 8px;
736
+ border: 1px solid var(--border);
737
+ border-radius: 12px;
738
+ padding: 10px;
739
+ }
740
+ .project-composer-bar {
741
+ display: flex;
742
+ align-items: center;
743
+ gap: 8px;
744
+ }
745
+ .project-composer textarea {
746
+ min-height: 72px;
747
+ resize: vertical;
748
+ }
749
+ .project-dialog-backdrop {
750
+ position: fixed;
751
+ inset: 0;
752
+ z-index: 40;
753
+ display: flex;
754
+ align-items: flex-start;
755
+ justify-content: center;
756
+ padding: 32px 16px;
757
+ background: color-mix(in srgb, var(--bg, #111) 40%, transparent);
758
+ }
759
+ .project-dialog {
760
+ width: min(520px, 100%);
761
+ max-height: min(760px, calc(100vh - 64px));
762
+ overflow: auto;
763
+ border: 1px solid var(--border);
764
+ border-radius: 12px;
765
+ background: var(--bg, Canvas);
766
+ color: var(--fg, CanvasText);
767
+ padding: 20px;
768
+ }
769
+ .project-dialog-wide {
770
+ width: min(640px, 100%);
771
+ }
772
+ .project-dialog-header {
773
+ display: grid;
774
+ gap: 6px;
775
+ margin-bottom: 16px;
776
+ }
777
+ .project-dialog-header h2 {
778
+ font-size: 16px;
779
+ font-weight: 600;
780
+ }
781
+ .project-dialog-header p,
782
+ .project-note {
783
+ color: var(--fg-muted);
784
+ font-size: 12px;
785
+ line-height: 1.5;
786
+ }
787
+ .project-actions {
788
+ display: flex;
789
+ justify-content: flex-end;
790
+ gap: 8px;
791
+ margin-top: 16px;
792
+ }
793
+ .project-tabs {
794
+ display: flex;
795
+ gap: 4px;
796
+ margin-bottom: 16px;
797
+ }
798
+ .project-tabs button[aria-selected="true"] {
799
+ background: var(--control-bg-hover, transparent);
800
+ }
801
+ .project-check {
802
+ display: flex;
803
+ align-items: center;
804
+ gap: 8px;
805
+ font-size: 13px;
806
+ text-transform: capitalize;
807
+ }
808
+ .project-card {
809
+ width: 100%;
810
+ text-align: left;
811
+ color: inherit;
812
+ background: transparent;
813
+ cursor: pointer;
814
+ }
815
+ .project-settings {
816
+ max-width: 720px;
817
+ margin: 0 auto;
818
+ padding: 32px 24px 64px;
819
+ display: grid;
820
+ gap: 20px;
821
+ }
822
+ .project-attachment-row {
823
+ display: flex;
824
+ flex-wrap: wrap;
825
+ justify-content: flex-end;
826
+ gap: 8px;
827
+ margin-bottom: 12px;
828
+ }
829
+ .project-attachment {
830
+ max-width: 100%;
831
+ border: 1px solid var(--border);
832
+ border-radius: 8px;
833
+ padding: 8px;
834
+ font-size: 12px;
835
+ color: inherit;
836
+ }
837
+ .project-sr {
838
+ position: absolute;
839
+ width: 1px;
840
+ height: 1px;
841
+ padding: 0;
842
+ margin: -1px;
843
+ overflow: hidden;
844
+ clip: rect(0, 0, 0, 0);
845
+ white-space: nowrap;
846
+ border: 0;
847
+ }