@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,51 @@
1
+ import type * as schema from "@agentclientprotocol/sdk";
2
+ /** Inclusive-fork point selected by a client from visible assistant text. */
3
+ export interface AcpForkPoint {
4
+ messageId: string;
5
+ messageText: string;
6
+ messageOccurrence: number;
7
+ }
8
+ /** Capability advertised at `initialize.agentCapabilities._meta.jetbrains.air.fork`
9
+ * by agents that implement the inclusive `jetbrains.air.fork` v1 request meta on session/fork. */
10
+ export declare const ACP_INCLUSIVE_FORK_VERSION: 1;
11
+ export interface AcpInclusiveForkCapability {
12
+ version: typeof ACP_INCLUSIVE_FORK_VERSION;
13
+ inclusive: true;
14
+ }
15
+ export declare const ACP_INCLUSIVE_FORK_CAPABILITY: AcpInclusiveForkCapability;
16
+ /** `{ jetbrains: { air: { fork: ACP_INCLUSIVE_FORK_CAPABILITY } } }`, to deep-merge into agentCapabilities._meta. */
17
+ export declare function acpInclusiveForkCapabilityMeta(): {
18
+ jetbrains: {
19
+ air: {
20
+ fork: AcpInclusiveForkCapability;
21
+ };
22
+ };
23
+ };
24
+ export type AcpForkSupportLevel = "none" | "session" | "message";
25
+ export type AcpForkSupportReason = "not-initialized" | "session-fork-not-advertised" | "message-fork-not-advertised" | "message-fork-capability-invalid" | "message-fork-advertised" | "message-fork-verified-adapter";
26
+ export interface AcpForkSupport {
27
+ level: AcpForkSupportLevel;
28
+ reason: AcpForkSupportReason;
29
+ /** 英文、可直接展示给用户的说明,例如 "This agent can fork the whole session but not from a specific message." */
30
+ message: string;
31
+ /** level === "message" 时存在 */
32
+ messageFork?: {
33
+ version: 1;
34
+ inclusive: true;
35
+ source: "capability" | "verified-adapter";
36
+ };
37
+ }
38
+ export interface AcpForkSupportSource {
39
+ agentCapabilities?: schema.AgentCapabilities | null;
40
+ agentInfo?: schema.Implementation | null;
41
+ }
42
+ /** 接受 AcpSession(有 agentCapabilities/agentInfo getter)或 InitializeResponse。 */
43
+ export declare function forkSupport(source: AcpForkSupportSource | null | undefined): AcpForkSupport;
44
+ /** Build fork points for top-level assistant messages already merged by message id.
45
+ * `messageOccurrence` is the 1-based count of identical text in the prefix, including
46
+ * the message itself. Callers collapse `<id>:segment:<n>` ids before calling this. */
47
+ export declare function acpForkPointsFromMessages(messages: ReadonlyArray<{
48
+ messageId: string;
49
+ text: string;
50
+ }>): AcpForkPoint[];
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/acp-fork/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAExD,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;kGACkG;AAClG,eAAO,MAAM,0BAA0B,EAAG,CAAU,CAAC;AACrD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IAC3C,SAAS,EAAE,IAAI,CAAC;CACjB;AACD,eAAO,MAAM,6BAA6B,EAAE,0BAG1C,CAAC;AACH,qHAAqH;AACrH,wBAAgB,8BAA8B,IAAI;IAAE,SAAS,EAAE;QAAE,GAAG,EAAE;YAAE,IAAI,EAAE,0BAA0B,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAQ7G;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,6BAA6B,GAC7B,6BAA6B,GAC7B,iCAAiC,GACjC,yBAAyB,GACzB,+BAA+B,CAAC;AACpC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,iGAAiG;IACjG,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,CAAC;QAAC,SAAS,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAAA;KAAE,CAAC;CAC1F;AACD,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;CAC1C;AACD,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAmB3F;AAED;;sFAEsF;AACtF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC3D,YAAY,EAAE,CAWhB"}
@@ -0,0 +1,116 @@
1
+ /** Capability advertised at `initialize.agentCapabilities._meta.jetbrains.air.fork`
2
+ * by agents that implement the inclusive `jetbrains.air.fork` v1 request meta on session/fork. */
3
+ export const ACP_INCLUSIVE_FORK_VERSION = 1;
4
+ export const ACP_INCLUSIVE_FORK_CAPABILITY = Object.freeze({
5
+ version: ACP_INCLUSIVE_FORK_VERSION,
6
+ inclusive: true,
7
+ });
8
+ /** `{ jetbrains: { air: { fork: ACP_INCLUSIVE_FORK_CAPABILITY } } }`, to deep-merge into agentCapabilities._meta. */
9
+ export function acpInclusiveForkCapabilityMeta() {
10
+ return {
11
+ jetbrains: {
12
+ air: {
13
+ fork: ACP_INCLUSIVE_FORK_CAPABILITY,
14
+ },
15
+ },
16
+ };
17
+ }
18
+ /** 接受 AcpSession(有 agentCapabilities/agentInfo getter)或 InitializeResponse。 */
19
+ export function forkSupport(source) {
20
+ if (source == null || source.agentCapabilities == null) {
21
+ return describeForkSupport("none", "not-initialized");
22
+ }
23
+ const capabilities = source.agentCapabilities;
24
+ if (capabilities.sessionCapabilities?.fork == null) {
25
+ return describeForkSupport("none", "session-fork-not-advertised");
26
+ }
27
+ const capability = inclusiveForkCapabilityPresence(capabilities);
28
+ if (capability === "valid") {
29
+ return describeForkSupport("message", "message-fork-advertised", "capability");
30
+ }
31
+ if (capability === "invalid") {
32
+ return describeForkSupport("session", "message-fork-capability-invalid");
33
+ }
34
+ if (isVerifiedMessageForkAdapter(source.agentInfo)) {
35
+ return describeForkSupport("message", "message-fork-verified-adapter", "verified-adapter");
36
+ }
37
+ return describeForkSupport("session", "message-fork-not-advertised");
38
+ }
39
+ /** Build fork points for top-level assistant messages already merged by message id.
40
+ * `messageOccurrence` is the 1-based count of identical text in the prefix, including
41
+ * the message itself. Callers collapse `<id>:segment:<n>` ids before calling this. */
42
+ export function acpForkPointsFromMessages(messages) {
43
+ const seen = new Map();
44
+ return messages.map((message) => {
45
+ const messageOccurrence = (seen.get(message.text) ?? 0) + 1;
46
+ seen.set(message.text, messageOccurrence);
47
+ return {
48
+ messageId: message.messageId,
49
+ messageText: message.text,
50
+ messageOccurrence,
51
+ };
52
+ });
53
+ }
54
+ const FORK_SUPPORT_MESSAGE = {
55
+ "not-initialized": "This agent has not reported whether it can fork a session.",
56
+ "session-fork-not-advertised": "This agent does not support forking a session.",
57
+ "message-fork-not-advertised": "This agent can fork the whole session but not from a specific message.",
58
+ "message-fork-capability-invalid": "This agent advertised a message fork capability this client does not recognize.",
59
+ "message-fork-advertised": "This agent can fork from a specific message.",
60
+ "message-fork-verified-adapter": "This agent can fork from a specific message.",
61
+ };
62
+ /** Upstream adapters that implement inclusive fork but do not emit the capability key.
63
+ * Internal. Own adapters (dsh-acp, pi-acp) must advertise the capability instead. */
64
+ const VERIFIED_MESSAGE_FORK_ADAPTERS = [
65
+ { names: ["codex-acp", "@agentclientprotocol/codex-acp"], minimum: [1, 10, 0] },
66
+ { names: ["claude-acp", "@agentclientprotocol/claude-agent-acp"], minimum: [0, 75, 1] },
67
+ ];
68
+ const STRICT_XYZ_VERSION = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
69
+ function describeForkSupport(level, reason, source) {
70
+ return {
71
+ level,
72
+ reason,
73
+ message: FORK_SUPPORT_MESSAGE[reason],
74
+ ...(source
75
+ ? { messageFork: { version: 1, inclusive: true, source } }
76
+ : {}),
77
+ };
78
+ }
79
+ function inclusiveForkCapabilityPresence(capabilities) {
80
+ const meta = capabilities._meta;
81
+ if (!isRecord(meta) || !isRecord(meta.jetbrains) || !isRecord(meta.jetbrains.air)) {
82
+ return "absent";
83
+ }
84
+ if (!Object.hasOwn(meta.jetbrains.air, "fork"))
85
+ return "absent";
86
+ const fork = meta.jetbrains.air.fork;
87
+ if (!isRecord(fork))
88
+ return "invalid";
89
+ if (fork.version !== ACP_INCLUSIVE_FORK_VERSION || fork.inclusive !== true)
90
+ return "invalid";
91
+ return "valid";
92
+ }
93
+ function isVerifiedMessageForkAdapter(info) {
94
+ if (!info || typeof info.version !== "string")
95
+ return false;
96
+ const match = STRICT_XYZ_VERSION.exec(info.version);
97
+ const major = match?.[1];
98
+ const minor = match?.[2];
99
+ const patch = match?.[3];
100
+ if (major === undefined || minor === undefined || patch === undefined)
101
+ return false;
102
+ const version = [Number(major), Number(minor), Number(patch)];
103
+ return VERIFIED_MESSAGE_FORK_ADAPTERS.some((adapter) => adapter.names.includes(info.name) && compareVersion(version, adapter.minimum) >= 0);
104
+ }
105
+ function compareVersion(left, right) {
106
+ for (let index = 0; index < 3; index += 1) {
107
+ const difference = left[index] - right[index];
108
+ if (difference !== 0)
109
+ return difference;
110
+ }
111
+ return 0;
112
+ }
113
+ function isRecord(value) {
114
+ return typeof value === "object" && value !== null && !Array.isArray(value);
115
+ }
116
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/acp-fork/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { type TerminalAuthLaunchOptions } from "../acp-runtime/probe.js";
2
+ export type { TerminalAuthLaunchOptions } from "../acp-runtime/probe.js";
3
+ export interface AcpAgentSetupAuthMethod {
4
+ id: string;
5
+ name?: string;
6
+ description?: string;
7
+ type?: string;
8
+ form?: "fields";
9
+ vars?: Array<{
10
+ name: string;
11
+ label?: string;
12
+ secret?: boolean;
13
+ optional?: boolean;
14
+ }>;
15
+ link?: string;
16
+ }
17
+ export interface AcpAgentSetupAuth {
18
+ status: "configured" | "needs-auth" | "unknown";
19
+ message: string;
20
+ methodId?: string;
21
+ methodName?: string;
22
+ methods?: AcpAgentSetupAuthMethod[];
23
+ }
24
+ export interface AcpAgentCapabilityInspection {
25
+ status: "ready" | "blocked-auth" | "degraded";
26
+ inspected_at: string;
27
+ error?: string;
28
+ }
29
+ export interface AcpAgentSetupInfo {
30
+ id: string;
31
+ label: string;
32
+ icon?: string;
33
+ command: string;
34
+ installHint?: string;
35
+ homepage?: string;
36
+ featured?: boolean;
37
+ detected: boolean;
38
+ available?: boolean;
39
+ installed?: boolean;
40
+ installedVersion?: string;
41
+ latestVersion?: string;
42
+ updateAvailable?: boolean;
43
+ installable?: boolean;
44
+ installSource?: "registry" | "adapter";
45
+ custom?: boolean;
46
+ auth?: AcpAgentSetupAuth;
47
+ config_options?: unknown[];
48
+ available_commands?: unknown[];
49
+ session_modes?: unknown;
50
+ capability_inspection?: AcpAgentCapabilityInspection;
51
+ }
52
+ export interface AcpAgentSetupOverride {
53
+ id: string;
54
+ label?: string;
55
+ command?: string;
56
+ args?: readonly string[];
57
+ env?: Record<string, string | undefined> | ReadonlyArray<{
58
+ readonly name: string;
59
+ readonly value: string;
60
+ }>;
61
+ }
62
+ export interface AcpAgentSetupServiceDeps {
63
+ registryCachePath: string;
64
+ probeCachePath?: string;
65
+ acpBinDir: string;
66
+ acpInstallRoot: string;
67
+ npmCommand?: string;
68
+ npmCommandArgs?: string[];
69
+ npmEnv?: NodeJS.ProcessEnv;
70
+ npmRegistryUrls?: string[];
71
+ probeCwd?: string;
72
+ authInspectionTimeoutMs?: number;
73
+ capabilityInspectionTimeoutMs?: number;
74
+ env?: Record<string, string | undefined>;
75
+ fetchImpl?: typeof fetch;
76
+ refreshRegistry?: (opts: {
77
+ refresh?: boolean;
78
+ }) => Promise<void>;
79
+ launchInteractiveAuth?: (options: TerminalAuthLaunchOptions) => Promise<void>;
80
+ agentOverrides?: () => readonly AcpAgentSetupOverride[];
81
+ getEnabledAgentIds?: () => readonly string[];
82
+ managedByName?: string;
83
+ }
84
+ export interface AcpAgentSetupService {
85
+ warmup(): Promise<void>;
86
+ refreshEnabledAgents(): Promise<AcpAgentSetupInfo[]>;
87
+ listAgents(): Promise<AcpAgentSetupInfo[]>;
88
+ installAgent(id: string): Promise<AcpAgentSetupInfo[]>;
89
+ upgradeAgent(id: string): Promise<AcpAgentSetupInfo[]>;
90
+ uninstallAgent(id: string): Promise<AcpAgentSetupInfo[]>;
91
+ authenticateAgent(id: string, options?: {
92
+ methodId?: string;
93
+ secret?: string;
94
+ values?: Record<string, string>;
95
+ gateway?: {
96
+ baseUrl: string;
97
+ headers?: Record<string, string>;
98
+ providerName?: string;
99
+ };
100
+ }): Promise<AcpAgentSetupInfo[]>;
101
+ observeAuth(id: string, observation: {
102
+ status: "configured" | "needs-auth" | "unknown";
103
+ message?: string;
104
+ methodId?: string;
105
+ }): Promise<AcpAgentSetupAuth>;
106
+ observeSessionConfig(id: string, snapshot: {
107
+ config_options?: unknown[];
108
+ available_commands?: unknown[];
109
+ session_modes?: unknown;
110
+ }): Promise<void>;
111
+ dispose(): Promise<void>;
112
+ }
113
+ export declare function createAcpAgentSetupService(deps: AcpAgentSetupServiceDeps): AcpAgentSetupService;
114
+ export interface LaunchTerminalAuthOptions {
115
+ returnInstruction?: string;
116
+ }
117
+ export declare function launchTerminalAuth(options: TerminalAuthLaunchOptions, launchOptions?: LaunchTerminalAuthOptions): Promise<void>;
118
+ //# sourceMappingURL=agent-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-setup.d.ts","sourceRoot":"","sources":["../../src/acp-harnesses/agent-setup.ts"],"names":[],"mappings":"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"}