agent-tower 0.7.1-beta.2 → 0.7.1-beta.4
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.
- package/dist/executors/__tests__/base.executor.test.js +2 -2
- package/dist/executors/__tests__/base.executor.test.js.map +1 -1
- package/dist/executors/__tests__/codex.executor.test.js +137 -25
- package/dist/executors/__tests__/codex.executor.test.js.map +1 -1
- package/dist/executors/__tests__/providers.test.js +69 -2
- package/dist/executors/__tests__/providers.test.js.map +1 -1
- package/dist/executors/__tests__/stdin-prompt.executors.test.js +61 -3
- package/dist/executors/__tests__/stdin-prompt.executors.test.js.map +1 -1
- package/dist/executors/base.executor.d.ts +8 -1
- package/dist/executors/base.executor.d.ts.map +1 -1
- package/dist/executors/base.executor.js +22 -8
- package/dist/executors/base.executor.js.map +1 -1
- package/dist/executors/claude-code.executor.d.ts +2 -0
- package/dist/executors/claude-code.executor.d.ts.map +1 -1
- package/dist/executors/claude-code.executor.js +51 -41
- package/dist/executors/claude-code.executor.js.map +1 -1
- package/dist/executors/codex.executor.d.ts +3 -0
- package/dist/executors/codex.executor.d.ts.map +1 -1
- package/dist/executors/codex.executor.js +35 -1
- package/dist/executors/codex.executor.js.map +1 -1
- package/dist/executors/cursor-agent.executor.d.ts +1 -0
- package/dist/executors/cursor-agent.executor.d.ts.map +1 -1
- package/dist/executors/cursor-agent.executor.js +2 -0
- package/dist/executors/cursor-agent.executor.js.map +1 -1
- package/dist/executors/default-providers.json +45 -39
- package/dist/executors/gemini-cli.executor.d.ts +3 -1
- package/dist/executors/gemini-cli.executor.d.ts.map +1 -1
- package/dist/executors/gemini-cli.executor.js +18 -12
- package/dist/executors/gemini-cli.executor.js.map +1 -1
- package/dist/executors/index.d.ts +4 -0
- package/dist/executors/index.d.ts.map +1 -1
- package/dist/executors/index.js +14 -4
- package/dist/executors/index.js.map +1 -1
- package/dist/executors/providers.d.ts +4 -1
- package/dist/executors/providers.d.ts.map +1 -1
- package/dist/executors/providers.js +20 -5
- package/dist/executors/providers.js.map +1 -1
- package/dist/output/__tests__/claude-code-parser-lifecycle.test.d.ts +2 -0
- package/dist/output/__tests__/claude-code-parser-lifecycle.test.d.ts.map +1 -0
- package/dist/output/__tests__/claude-code-parser-lifecycle.test.js +84 -0
- package/dist/output/__tests__/claude-code-parser-lifecycle.test.js.map +1 -0
- package/dist/output/claude-code-parser.d.ts +14 -2
- package/dist/output/claude-code-parser.d.ts.map +1 -1
- package/dist/output/claude-code-parser.js +55 -8
- package/dist/output/claude-code-parser.js.map +1 -1
- package/dist/pipeline/__tests__/agent-pipeline.test.js +48 -1
- package/dist/pipeline/__tests__/agent-pipeline.test.js.map +1 -1
- package/dist/pipeline/agent-pipeline.d.ts +6 -1
- package/dist/pipeline/agent-pipeline.d.ts.map +1 -1
- package/dist/pipeline/agent-pipeline.js +42 -4
- package/dist/pipeline/agent-pipeline.js.map +1 -1
- package/dist/routes/__tests__/providers.test.js +287 -12
- package/dist/routes/__tests__/providers.test.js.map +1 -1
- package/dist/routes/__tests__/sessions-runtime.test.js +9 -0
- package/dist/routes/__tests__/sessions-runtime.test.js.map +1 -1
- package/dist/routes/__tests__/workspaces.test.js +48 -6
- package/dist/routes/__tests__/workspaces.test.js.map +1 -1
- package/dist/routes/providers.d.ts +2 -0
- package/dist/routes/providers.d.ts.map +1 -1
- package/dist/routes/providers.js +79 -34
- package/dist/routes/providers.js.map +1 -1
- package/dist/routes/sessions.js +2 -2
- package/dist/routes/sessions.js.map +1 -1
- package/dist/runtime/__tests__/acp-agent-definitions.test.js +54 -6
- package/dist/runtime/__tests__/acp-agent-definitions.test.js.map +1 -1
- package/dist/runtime/__tests__/acp-driver-lifecycle.test.js +85 -12
- package/dist/runtime/__tests__/acp-driver-lifecycle.test.js.map +1 -1
- package/dist/runtime/__tests__/acp-driver.test.js +38 -1
- package/dist/runtime/__tests__/acp-driver.test.js.map +1 -1
- package/dist/runtime/__tests__/claude-cli-control.test.d.ts +2 -0
- package/dist/runtime/__tests__/claude-cli-control.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/claude-cli-control.test.js +147 -0
- package/dist/runtime/__tests__/claude-cli-control.test.js.map +1 -0
- package/dist/runtime/__tests__/claude-cli-driver.test.d.ts +2 -0
- package/dist/runtime/__tests__/claude-cli-driver.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/claude-cli-driver.test.js +327 -0
- package/dist/runtime/__tests__/claude-cli-driver.test.js.map +1 -0
- package/dist/runtime/__tests__/cli-driver-lifecycle.test.js +107 -2
- package/dist/runtime/__tests__/cli-driver-lifecycle.test.js.map +1 -1
- package/dist/runtime/__tests__/codex-cli-control.test.d.ts +2 -0
- package/dist/runtime/__tests__/codex-cli-control.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/codex-cli-control.test.js +287 -0
- package/dist/runtime/__tests__/codex-cli-control.test.js.map +1 -0
- package/dist/runtime/__tests__/codex-cli-identity.test.d.ts +2 -0
- package/dist/runtime/__tests__/codex-cli-identity.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/codex-cli-identity.test.js +166 -0
- package/dist/runtime/__tests__/codex-cli-identity.test.js.map +1 -0
- package/dist/runtime/__tests__/codex-runtime-resolution.test.js +34 -0
- package/dist/runtime/__tests__/codex-runtime-resolution.test.js.map +1 -1
- package/dist/runtime/__tests__/runtime-coordinator.test.js +74 -0
- package/dist/runtime/__tests__/runtime-coordinator.test.js.map +1 -1
- package/dist/runtime/acp/acp-driver.d.ts.map +1 -1
- package/dist/runtime/acp/acp-driver.js +27 -9
- package/dist/runtime/acp/acp-driver.js.map +1 -1
- package/dist/runtime/acp/agents/claude-code.d.ts.map +1 -1
- package/dist/runtime/acp/agents/claude-code.js +6 -11
- package/dist/runtime/acp/agents/claude-code.js.map +1 -1
- package/dist/runtime/acp/agents/codex.d.ts.map +1 -1
- package/dist/runtime/acp/agents/codex.js +15 -6
- package/dist/runtime/acp/agents/codex.js.map +1 -1
- package/dist/runtime/acp/agents/cursor-agent.d.ts.map +1 -1
- package/dist/runtime/acp/agents/cursor-agent.js +2 -1
- package/dist/runtime/acp/agents/cursor-agent.js.map +1 -1
- package/dist/runtime/acp/agents/deepseek-hermes.js +3 -3
- package/dist/runtime/acp/agents/deepseek-hermes.js.map +1 -1
- package/dist/runtime/acp/agents/gemini-cli.d.ts.map +1 -1
- package/dist/runtime/acp/agents/gemini-cli.js +1 -0
- package/dist/runtime/acp/agents/gemini-cli.js.map +1 -1
- package/dist/runtime/acp/agents/grok-build.d.ts.map +1 -1
- package/dist/runtime/acp/agents/grok-build.js +4 -1
- package/dist/runtime/acp/agents/grok-build.js.map +1 -1
- package/dist/runtime/acp/agents/kiro-cli.d.ts.map +1 -1
- package/dist/runtime/acp/agents/kiro-cli.js +2 -1
- package/dist/runtime/acp/agents/kiro-cli.js.map +1 -1
- package/dist/runtime/acp/agents/minion-code.js +1 -1
- package/dist/runtime/acp/agents/minion-code.js.map +1 -1
- package/dist/runtime/acp/agents/native-agent.d.ts +2 -0
- package/dist/runtime/acp/agents/native-agent.d.ts.map +1 -1
- package/dist/runtime/acp/agents/native-agent.js +12 -16
- package/dist/runtime/acp/agents/native-agent.js.map +1 -1
- package/dist/runtime/acp/agents/opencode.d.ts.map +1 -1
- package/dist/runtime/acp/agents/opencode.js +50 -2
- package/dist/runtime/acp/agents/opencode.js.map +1 -1
- package/dist/runtime/acp/agents/pi-coding-agent.d.ts.map +1 -1
- package/dist/runtime/acp/agents/pi-coding-agent.js +2 -5
- package/dist/runtime/acp/agents/pi-coding-agent.js.map +1 -1
- package/dist/runtime/acp/agents/qwen-code.d.ts.map +1 -1
- package/dist/runtime/acp/agents/qwen-code.js +9 -11
- package/dist/runtime/acp/agents/qwen-code.js.map +1 -1
- package/dist/runtime/acp/agents/types.d.ts +4 -2
- package/dist/runtime/acp/agents/types.d.ts.map +1 -1
- package/dist/runtime/acp/codex-cli-identity.d.ts +52 -0
- package/dist/runtime/acp/codex-cli-identity.d.ts.map +1 -0
- package/dist/runtime/acp/codex-cli-identity.js +179 -0
- package/dist/runtime/acp/codex-cli-identity.js.map +1 -0
- package/dist/runtime/acp/codex-provider-config.d.ts +15 -2
- package/dist/runtime/acp/codex-provider-config.d.ts.map +1 -1
- package/dist/runtime/acp/codex-provider-config.js +42 -5
- package/dist/runtime/acp/codex-provider-config.js.map +1 -1
- package/dist/runtime/claude-cli-control.d.ts +32 -0
- package/dist/runtime/claude-cli-control.d.ts.map +1 -0
- package/dist/runtime/claude-cli-control.js +156 -0
- package/dist/runtime/claude-cli-control.js.map +1 -0
- package/dist/runtime/cli-action-summary.d.ts +3 -0
- package/dist/runtime/cli-action-summary.d.ts.map +1 -0
- package/dist/runtime/cli-action-summary.js +13 -0
- package/dist/runtime/cli-action-summary.js.map +1 -0
- package/dist/runtime/cli-driver.d.ts.map +1 -1
- package/dist/runtime/cli-driver.js +119 -26
- package/dist/runtime/cli-driver.js.map +1 -1
- package/dist/runtime/cli-parser.d.ts +4 -1
- package/dist/runtime/cli-parser.d.ts.map +1 -1
- package/dist/runtime/cli-parser.js +2 -2
- package/dist/runtime/cli-parser.js.map +1 -1
- package/dist/runtime/codex-cli-control.d.ts +63 -0
- package/dist/runtime/codex-cli-control.d.ts.map +1 -0
- package/dist/runtime/codex-cli-control.js +311 -0
- package/dist/runtime/codex-cli-control.js.map +1 -0
- package/dist/runtime/codex-cli-projector.d.ts +17 -0
- package/dist/runtime/codex-cli-projector.d.ts.map +1 -0
- package/dist/runtime/codex-cli-projector.js +80 -0
- package/dist/runtime/codex-cli-projector.js.map +1 -0
- package/dist/runtime/contracts.d.ts +12 -2
- package/dist/runtime/contracts.d.ts.map +1 -1
- package/dist/runtime/runtime-coordinator.d.ts +1 -1
- package/dist/runtime/runtime-coordinator.d.ts.map +1 -1
- package/dist/runtime/runtime-coordinator.js +40 -6
- package/dist/runtime/runtime-coordinator.js.map +1 -1
- package/dist/services/__tests__/claude-cli-capabilities.service.test.d.ts +2 -0
- package/dist/services/__tests__/claude-cli-capabilities.service.test.d.ts.map +1 -0
- package/dist/services/__tests__/claude-cli-capabilities.service.test.js +37 -0
- package/dist/services/__tests__/claude-cli-capabilities.service.test.js.map +1 -0
- package/dist/services/__tests__/codex-cli-capabilities.service.test.d.ts +2 -0
- package/dist/services/__tests__/codex-cli-capabilities.service.test.d.ts.map +1 -0
- package/dist/services/__tests__/codex-cli-capabilities.service.test.js +35 -0
- package/dist/services/__tests__/codex-cli-capabilities.service.test.js.map +1 -0
- package/dist/services/__tests__/codex-model-capabilities.service.test.js +23 -2
- package/dist/services/__tests__/codex-model-capabilities.service.test.js.map +1 -1
- package/dist/services/__tests__/execution-permission.service.test.d.ts +2 -0
- package/dist/services/__tests__/execution-permission.service.test.d.ts.map +1 -0
- package/dist/services/__tests__/execution-permission.service.test.js +111 -0
- package/dist/services/__tests__/execution-permission.service.test.js.map +1 -0
- package/dist/services/__tests__/provider-config.service.test.js +1 -0
- package/dist/services/__tests__/provider-config.service.test.js.map +1 -1
- package/dist/services/__tests__/session-manager.lifecycle.test.js +151 -3
- package/dist/services/__tests__/session-manager.lifecycle.test.js.map +1 -1
- package/dist/services/__tests__/workspace.service.test.js +38 -0
- package/dist/services/__tests__/workspace.service.test.js.map +1 -1
- package/dist/services/claude-cli-capabilities.service.d.ts +11 -0
- package/dist/services/claude-cli-capabilities.service.d.ts.map +1 -0
- package/dist/services/claude-cli-capabilities.service.js +54 -0
- package/dist/services/claude-cli-capabilities.service.js.map +1 -0
- package/dist/services/codex-cli-capabilities.service.d.ts +12 -0
- package/dist/services/codex-cli-capabilities.service.d.ts.map +1 -0
- package/dist/services/codex-cli-capabilities.service.js +65 -0
- package/dist/services/codex-cli-capabilities.service.js.map +1 -0
- package/dist/services/codex-model-capabilities.service.d.ts.map +1 -1
- package/dist/services/codex-model-capabilities.service.js +12 -1
- package/dist/services/codex-model-capabilities.service.js.map +1 -1
- package/dist/services/execution-permission.service.d.ts +30 -0
- package/dist/services/execution-permission.service.d.ts.map +1 -0
- package/dist/services/execution-permission.service.js +149 -0
- package/dist/services/execution-permission.service.js.map +1 -0
- package/dist/services/provider-config.service.d.ts.map +1 -1
- package/dist/services/provider-config.service.js +19 -29
- package/dist/services/provider-config.service.js.map +1 -1
- package/dist/services/session-manager.d.ts +9 -7
- package/dist/services/session-manager.d.ts.map +1 -1
- package/dist/services/session-manager.js +46 -7
- package/dist/services/session-manager.js.map +1 -1
- package/dist/services/task.service.d.ts +4 -4
- package/dist/services/workspace.service.d.ts +13 -7
- package/dist/services/workspace.service.d.ts.map +1 -1
- package/dist/services/workspace.service.js +1 -0
- package/dist/services/workspace.service.js.map +1 -1
- package/dist/utils/cli-duplex-channel.d.ts +21 -0
- package/dist/utils/cli-duplex-channel.d.ts.map +1 -0
- package/dist/utils/cli-duplex-channel.js +200 -0
- package/dist/utils/cli-duplex-channel.js.map +1 -0
- package/dist/utils/cli-duplex-channel.test.d.ts +2 -0
- package/dist/utils/cli-duplex-channel.test.d.ts.map +1 -0
- package/dist/utils/cli-duplex-channel.test.js +191 -0
- package/dist/utils/cli-duplex-channel.test.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/process-launch.d.ts +3 -0
- package/dist/utils/process-launch.d.ts.map +1 -1
- package/dist/utils/process-launch.js +129 -10
- package/dist/utils/process-launch.js.map +1 -1
- package/dist/utils/process-launch.test.js +103 -0
- package/dist/utils/process-launch.test.js.map +1 -1
- package/dist/web/assets/{AgentDemoPage-B6pABvRL.js → AgentDemoPage-B__0_CPX.js} +1 -1
- package/dist/web/assets/{AgentEnvironmentSettingsPage-CqMfdwkM.js → AgentEnvironmentSettingsPage-uSnG5iV3.js} +1 -1
- package/dist/web/assets/{AgentLogo-Ntqe3_Mx.js → AgentLogo-CoAT8dNB.js} +1 -1
- package/dist/web/assets/ConversationPage-BOfzGTyj.js +3 -0
- package/dist/web/assets/CreateTaskInput-DwQsAlWX.js +1 -0
- package/dist/web/assets/{DemoPage-D1Ki6sJ0.js → DemoPage-CuDLCuUQ.js} +1 -1
- package/dist/web/assets/ExecutionPermissionSelector-Cu7Z72Yk.js +29 -0
- package/dist/web/assets/{GeneralSettingsPage-DoAXPabw.js → GeneralSettingsPage-CmG_TW4-.js} +1 -1
- package/dist/web/assets/{Icons-KJJd6C8K.js → Icons-B6q-ul89.js} +1 -1
- package/dist/web/assets/{LoadingPreviewPage-BqCKBvgv.js → LoadingPreviewPage-Db5WcYw_.js} +1 -1
- package/dist/web/assets/{McpSettingsPage-QXVD4XCW.js → McpSettingsPage-CQV1RaHW.js} +1 -1
- package/dist/web/assets/{MemberAvatar-kbJEoyh0.js → MemberAvatar-BQA5sE4L.js} +1 -1
- package/dist/web/assets/{NotificationSettingsPage-BrqSeU--.js → NotificationSettingsPage-BGKJ6wO0.js} +1 -1
- package/dist/web/assets/{ProfileSettingsPage-BmWgVdnG.js → ProfileSettingsPage-dTvp-LFa.js} +1 -1
- package/dist/web/assets/{ProjectKanbanPage-D7RJm4yg.js → ProjectKanbanPage-CHZc9WB7.js} +35 -35
- package/dist/web/assets/{ProjectSettingsPage-BVINN99w.js → ProjectSettingsPage-CwLXTwwe.js} +1 -1
- package/dist/web/assets/ProviderSettingsPage-Ced1VN2f.js +67 -0
- package/dist/web/assets/{SettingsMasterDetail-OF28cvPV.js → SettingsMasterDetail-CEZsOwjq.js} +1 -1
- package/dist/web/assets/{TeamSettingsPage-BWGm0m7s.js → TeamSettingsPage-lErIz31n.js} +1 -1
- package/dist/web/assets/{arc-CqFgRaZU.js → arc-CgQPLQJF.js} +1 -1
- package/dist/web/assets/{architectureDiagram-3BPJPVTR-C0PMdIZJ.js → architectureDiagram-3BPJPVTR-BRns2_cB.js} +1 -1
- package/dist/web/assets/{blockDiagram-GPEHLZMM-SqqtxqkX.js → blockDiagram-GPEHLZMM-DUIPlzPN.js} +1 -1
- package/dist/web/assets/{c4Diagram-AAUBKEIU-DYJXB3xL.js → c4Diagram-AAUBKEIU-BfWsGU4R.js} +1 -1
- package/dist/web/assets/channel-CYUMBIeW.js +1 -0
- package/dist/web/assets/check-C_RQ5zOf.js +1 -0
- package/dist/web/assets/{chevron-down-BZfpVhYr.js → chevron-down-Dz61D9cJ.js} +1 -1
- package/dist/web/assets/{chevron-right-D52zUyOF.js → chevron-right-q_hHAFb1.js} +1 -1
- package/dist/web/assets/{chevron-up-CFOy5dmW.js → chevron-up-ChWM4fJS.js} +1 -1
- package/dist/web/assets/{chunk-2J33WTMH-DQCbv8W_.js → chunk-2J33WTMH-DOverrRX.js} +1 -1
- package/dist/web/assets/{chunk-4BX2VUAB-B_68_oNW.js → chunk-4BX2VUAB-BakE7rwb.js} +1 -1
- package/dist/web/assets/{chunk-55IACEB6-Bb-pPIxs.js → chunk-55IACEB6-BJY_hqWJ.js} +1 -1
- package/dist/web/assets/{chunk-727SXJPM-CAiaySk6.js → chunk-727SXJPM-Bz_y_ixN.js} +1 -1
- package/dist/web/assets/{chunk-AQP2D5EJ-ChCLJ4Wv.js → chunk-AQP2D5EJ-DPrP1E5u.js} +1 -1
- package/dist/web/assets/{chunk-FMBD7UC4-Kz0Cc0mv.js → chunk-FMBD7UC4--yjwIi92.js} +1 -1
- package/dist/web/assets/{chunk-ND2GUHAM-BttoT7UR.js → chunk-ND2GUHAM-BlN7Zpnx.js} +1 -1
- package/dist/web/assets/{chunk-QZHKN3VN-BcVhzXXK.js → chunk-QZHKN3VN-b97Y7iON.js} +1 -1
- package/dist/web/assets/{circle-alert-D67xfWMs.js → circle-alert-B3BU6yxp.js} +1 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-KLi01tMF.js +1 -0
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-KLi01tMF.js +1 -0
- package/dist/web/assets/{code-block-OCS4YCEC-CMA1utSp.js → code-block-OCS4YCEC-pXxp6Ipb.js} +1 -1
- package/dist/web/assets/{confirm-dialog-BWvZEHpu.js → confirm-dialog-CeNfH2ZR.js} +1 -1
- package/dist/web/assets/{cose-bilkent-S5V4N54A-B391zTey.js → cose-bilkent-S5V4N54A-BE-ASlGZ.js} +1 -1
- package/dist/web/assets/cssMode-B8d06lCF.js +1 -0
- package/dist/web/assets/{dagre-BM42HDAG-CymH_FEZ.js → dagre-BM42HDAG-lAvNJn8H.js} +1 -1
- package/dist/web/assets/{diagram-2AECGRRQ-DXOIiLDr.js → diagram-2AECGRRQ-DBgI60j-.js} +1 -1
- package/dist/web/assets/{diagram-5GNKFQAL-B9ocgjdh.js → diagram-5GNKFQAL-BqFMhpcI.js} +1 -1
- package/dist/web/assets/{diagram-KO2AKTUF-DLMpk9Wg.js → diagram-KO2AKTUF-8dtMJ7XC.js} +1 -1
- package/dist/web/assets/{diagram-LMA3HP47-BBnF83je.js → diagram-LMA3HP47-CEbAGy_U.js} +1 -1
- package/dist/web/assets/{diagram-OG6HWLK6-AK4FunVI.js → diagram-OG6HWLK6-BTy4Wqho.js} +1 -1
- package/dist/web/assets/{erDiagram-TEJ5UH35-B1mryURg.js → erDiagram-TEJ5UH35-Fe0pjB7H.js} +1 -1
- package/dist/web/assets/{flowDiagram-I6XJVG4X-BjIG_1l5.js → flowDiagram-I6XJVG4X-Cn5xoMyS.js} +1 -1
- package/dist/web/assets/{folder-picker-CaM_drIJ.js → folder-picker-DlJ9hExj.js} +1 -1
- package/dist/web/assets/{freemarker2-Dj1C_6Ng.js → freemarker2-WBCTYbCf.js} +2 -2
- package/dist/web/assets/{ganttDiagram-6RSMTGT7-DjR6lyIQ.js → ganttDiagram-6RSMTGT7-Bwf7sOJW.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-PVQCEYII-BpW2L4ry.js → gitGraphDiagram-PVQCEYII-DEqHf_N3.js} +1 -1
- package/dist/web/assets/handlebars-aoMw8XNP.js +1 -0
- package/dist/web/assets/html-mP4L-gn5.js +1 -0
- package/dist/web/assets/htmlMode-BRkGssBX.js +1 -0
- package/dist/web/assets/index-BoQh7Rhc.css +1 -0
- package/dist/web/assets/{index-DaRxJqVy.js → index-DxE1UagD.js} +4 -4
- package/dist/web/assets/index-_mroLJ3-.js +122 -0
- package/dist/web/assets/{infoDiagram-5YYISTIA-Cu-PA_-6.js → infoDiagram-5YYISTIA-BzITBBR6.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-S6Esbkdw.js → ishikawaDiagram-YF4QCWOH-Bd9MT4ne.js} +1 -1
- package/dist/web/assets/javascript-CzeLwCQy.js +1 -0
- package/dist/web/assets/{journeyDiagram-JHISSGLW-wPF9FT9V.js → journeyDiagram-JHISSGLW-CR2x5gV0.js} +1 -1
- package/dist/web/assets/{jsonMode-D6IoFlQF.js → jsonMode-BixD4b0P.js} +4 -4
- package/dist/web/assets/{kanban-definition-UN3LZRKU-C4jl9zOj.js → kanban-definition-UN3LZRKU-DZx-6dHw.js} +1 -1
- package/dist/web/assets/{layers-hQUUT3Gb.js → layers-DOM1D0GC.js} +1 -1
- package/dist/web/assets/{linear-D83xDp0H.js → linear-BBLqccsD.js} +1 -1
- package/dist/web/assets/liquid-DGETTZ3q.js +1 -0
- package/dist/web/assets/{lspLanguageFeatures-CUyibjAN.js → lspLanguageFeatures-DLBGi3go.js} +1 -1
- package/dist/web/assets/mdx-Co95_1jL.js +1 -0
- package/dist/web/assets/{mermaid-NOHMQCX5-CGCWmHha.js → mermaid-NOHMQCX5-K1Nm51AP.js} +45 -45
- package/dist/web/assets/{message-square-B-uYQiTq.js → message-square-eTP8tZLX.js} +1 -1
- package/dist/web/assets/{mindmap-definition-RKZ34NQL-D5v2uvjn.js → mindmap-definition-RKZ34NQL-BuB-92St.js} +1 -1
- package/dist/web/assets/{modal-D87uszzb.js → modal-CSnK65Cb.js} +1 -1
- package/dist/web/assets/{monaco-B25-2nEB.js → monaco-C17UmdbS.js} +3 -3
- package/dist/web/assets/{pencil-CY2RnQrx.js → pencil-l1-UifOH.js} +1 -1
- package/dist/web/assets/{pieDiagram-4H26LBE5-6wdFz_7x.js → pieDiagram-4H26LBE5--40xP_i_.js} +1 -1
- package/dist/web/assets/python-CQw9WtC1.js +1 -0
- package/dist/web/assets/{quadrantDiagram-W4KKPZXB-C1CrGMEK.js → quadrantDiagram-W4KKPZXB-BxiOfFTG.js} +1 -1
- package/dist/web/assets/razor-Du_XbZEg.js +1 -0
- package/dist/web/assets/{requirementDiagram-4Y6WPE33-mDtZrxpp.js → requirementDiagram-4Y6WPE33-GR0Dtr4T.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-5OEKKPKP-hBlj0XoH.js → sankeyDiagram-5OEKKPKP-tWpKambG.js} +1 -1
- package/dist/web/assets/select-DB6L9-KB.js +1 -0
- package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DsWmMm20.js → sequenceDiagram-3UESZ5HK-ByVTWC_r.js} +1 -1
- package/dist/web/assets/{server-qlZupTvg.js → server-CrODl9NC.js} +1 -1
- package/dist/web/assets/{stateDiagram-AJRCARHV-VNyX1L66.js → stateDiagram-AJRCARHV-Bd8b6zV5.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-A6YN_ZNd.js +1 -0
- package/dist/web/assets/{switch-1pvXCcP-.js → switch-DvXJc47w.js} +1 -1
- package/dist/web/assets/{textarea-D9oaz-Ba.js → textarea-CSKljQWP.js} +1 -1
- package/dist/web/assets/{timeline-definition-PNZ67QCA-DuBxxd9E.js → timeline-definition-PNZ67QCA-BZhaE4Q8.js} +1 -1
- package/dist/web/assets/{trash-2-C0P8jNpJ.js → trash-2-DdOhDOCv.js} +1 -1
- package/dist/web/assets/{tsMode-ogL-3MSe.js → tsMode-D9Lc5Ctp.js} +2 -2
- package/dist/web/assets/typescript-jsG0idOk.js +1 -0
- package/dist/web/assets/{upload-BYgsDplu.js → upload-9nN5Lg83.js} +1 -1
- package/dist/web/assets/{use-profiles-BkGnmson.js → use-profiles-8YJrKR2I.js} +1 -1
- package/dist/web/assets/{use-projects-B4w00h5I.js → use-projects-BdSJ4zPv.js} +1 -1
- package/dist/web/assets/use-providers-BlqWIGOP.js +1 -0
- package/dist/web/assets/{useNormalizedLogs-MsDkcnRQ.js → useNormalizedLogs-B_LoDoiT.js} +1 -1
- package/dist/web/assets/{vennDiagram-CIIHVFJN-RbPPOLBo.js → vennDiagram-CIIHVFJN-COnwMBZG.js} +1 -1
- package/dist/web/assets/{wardley-L42UT6IY-DXzUbdMF.js → wardley-L42UT6IY-DnIbpfhs.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-YWT4CUSO-B0QXobQM.js → wardleyDiagram-YWT4CUSO-QNFL1GWo.js} +1 -1
- package/dist/web/assets/xml-C_Zqe3tk.js +1 -0
- package/dist/web/assets/{xychartDiagram-2RQKCTM6-C7bFJItM.js → xychartDiagram-2RQKCTM6-CW7FVlM3.js} +1 -1
- package/dist/web/assets/yaml-CETOqGaS.js +1 -0
- package/dist/web/index.html +2 -2
- package/node_modules/@agent-tower/shared/dist/execution-permission.d.ts +19 -0
- package/node_modules/@agent-tower/shared/dist/execution-permission.d.ts.map +1 -0
- package/node_modules/@agent-tower/shared/dist/execution-permission.js +53 -0
- package/node_modules/@agent-tower/shared/dist/execution-permission.js.map +1 -0
- package/node_modules/@agent-tower/shared/dist/index.d.ts +1 -0
- package/node_modules/@agent-tower/shared/dist/index.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/index.js +1 -0
- package/node_modules/@agent-tower/shared/dist/index.js.map +1 -1
- package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts +6 -5
- package/node_modules/@agent-tower/shared/dist/provider-capabilities.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/provider-capabilities.js.map +1 -1
- package/node_modules/@agent-tower/shared/dist/types.d.ts +49 -2
- package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/web/assets/ConversationPage-BINGA8XL.js +0 -3
- package/dist/web/assets/CreateTaskInput-8bLhHYOc.js +0 -1
- package/dist/web/assets/ProviderSettingsPage-BlgfQMwe.js +0 -95
- package/dist/web/assets/channel-B8s9dqlX.js +0 -1
- package/dist/web/assets/check-C1zWgxFO.js +0 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-61bPx188.js +0 -1
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-61bPx188.js +0 -1
- package/dist/web/assets/cssMode-CNU1q_Gl.js +0 -1
- package/dist/web/assets/handlebars-DNXOgRZc.js +0 -1
- package/dist/web/assets/html-C20FgNS-.js +0 -1
- package/dist/web/assets/htmlMode-CtcV1Ktd.js +0 -1
- package/dist/web/assets/index-dElqH2UR.css +0 -1
- package/dist/web/assets/index-oC5eh7mZ.js +0 -122
- package/dist/web/assets/javascript-CFAVZ6Tb.js +0 -1
- package/dist/web/assets/liquid-CuzuRJIN.js +0 -1
- package/dist/web/assets/mdx-C3rxTvel.js +0 -1
- package/dist/web/assets/python-BYGLbOzO.js +0 -1
- package/dist/web/assets/razor-m0U9iUAj.js +0 -1
- package/dist/web/assets/select-D7WkUiad.js +0 -1
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DHz3oGyD.js +0 -1
- package/dist/web/assets/typescript-rHoDxTY8.js +0 -1
- package/dist/web/assets/use-providers-B70-BYNu.js +0 -1
- package/dist/web/assets/xml-BqnpQrAq.js +0 -1
- package/dist/web/assets/yaml-mz2Zn_K2.js +0 -1
|
@@ -3,7 +3,7 @@ import { constants } from 'node:fs';
|
|
|
3
3
|
import { access, stat } from 'node:fs/promises';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import * as acp from '@agentclientprotocol/sdk';
|
|
6
|
-
import {
|
|
6
|
+
import { resolveProviderExecutionPermission, RuntimeType } from '@agent-tower/shared';
|
|
7
7
|
import { which } from '../../../utils/index.js';
|
|
8
8
|
import { AgentRuntimeError } from '../../errors.js';
|
|
9
9
|
export function createNativeAcpAgentDefinition(options) {
|
|
@@ -18,11 +18,7 @@ export function createNativeAcpAgentDefinition(options) {
|
|
|
18
18
|
const model = readNonEmptyString(provider?.config.model);
|
|
19
19
|
const effort = readNonEmptyString(provider?.config.effort);
|
|
20
20
|
const appendPrompt = readNonEmptyString(provider?.config.appendPrompt);
|
|
21
|
-
const
|
|
22
|
-
const permissionEnabled = options.permissionConfigKeys?.some(key => provider?.config[key] === true) ?? false;
|
|
23
|
-
const permissionMode = configuredMode === undefined
|
|
24
|
-
? permissionEnabled ? 'UNRESTRICTED' : 'ASK'
|
|
25
|
-
: normalizeRuntimePermissionMode(configuredMode);
|
|
21
|
+
const permissionMode = resolveProviderExecutionPermission(provider ?? { agentType: options.agentType, runtimeType: RuntimeType.ACP }).mode;
|
|
26
22
|
return {
|
|
27
23
|
agentType: options.agentType,
|
|
28
24
|
environment,
|
|
@@ -36,6 +32,7 @@ export function createNativeAcpAgentDefinition(options) {
|
|
|
36
32
|
return {
|
|
37
33
|
agentType: options.agentType,
|
|
38
34
|
displayName: options.displayName,
|
|
35
|
+
supportsPermissionRestore: options.supportsPermissionRestore,
|
|
39
36
|
...(options.initializeTimeoutMs ? { initializeTimeoutMs: options.initializeTimeoutMs } : {}),
|
|
40
37
|
...(options.maxStdoutFrameBytes ? { maxStdoutFrameBytes: options.maxStdoutFrameBytes } : {}),
|
|
41
38
|
...(options.transformStdoutFrame ? { transformStdoutFrame: options.transformStdoutFrame } : {}),
|
|
@@ -75,16 +72,14 @@ export function createNativeAcpAgentDefinition(options) {
|
|
|
75
72
|
value: sessionModel,
|
|
76
73
|
});
|
|
77
74
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
const modeId = profile.permissionMode === 'FULL_ACCESS' ? options.unrestrictedModeId : options.askModeId;
|
|
76
|
+
if (modeId) {
|
|
77
|
+
if (!response.modes?.availableModes.some(mode => mode.id === modeId)) {
|
|
78
|
+
throw new AgentRuntimeError('permission_mode_unsupported', 'session', `${options.displayName} did not advertise '${modeId}'`, false);
|
|
79
|
+
}
|
|
80
|
+
if (response.modes.currentModeId !== modeId) {
|
|
81
|
+
await context.request(acp.methods.agent.session.setMode, { sessionId, modeId });
|
|
83
82
|
}
|
|
84
|
-
await context.request(acp.methods.agent.session.setMode, {
|
|
85
|
-
sessionId,
|
|
86
|
-
modeId: options.unrestrictedModeId,
|
|
87
|
-
});
|
|
88
83
|
}
|
|
89
84
|
},
|
|
90
85
|
};
|
|
@@ -95,7 +90,8 @@ export async function geminiAcpArguments(_input, profile, executablePath) {
|
|
|
95
90
|
return [
|
|
96
91
|
acpFlag,
|
|
97
92
|
...(profile.model ? ['--model', profile.model] : []),
|
|
98
|
-
|
|
93
|
+
'--approval-mode', profile.permissionMode === 'FULL_ACCESS' ? 'yolo' : 'default',
|
|
94
|
+
...(profile.permissionMode === 'FULL_ACCESS' ? ['--no-sandbox'] : []),
|
|
99
95
|
];
|
|
100
96
|
}
|
|
101
97
|
async function resolveNativeExecutable(environment, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-agent.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/native-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"native-agent.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/native-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/opencode.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/opencode.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,yCAkDrC,CAAC"}
|
|
@@ -13,12 +13,32 @@ export const openCodeAcpAgentDefinition = createNativeAcpAgentDefinition({
|
|
|
13
13
|
buildEnvironment(profile) {
|
|
14
14
|
const apiKey = profile.environment.OPENAI_API_KEY;
|
|
15
15
|
const model = profile.model;
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const raw = profile.environment.OPENCODE_CONFIG_CONTENT;
|
|
17
|
+
const inherited = raw ? JSON.parse(raw) : {};
|
|
18
|
+
// OPENCODE_PERMISSION is applied after config files by upstream. Project it as well.
|
|
19
|
+
const envPermission = profile.environment.OPENCODE_PERMISSION
|
|
20
|
+
? JSON.parse(profile.environment.OPENCODE_PERMISSION) : undefined;
|
|
21
|
+
const baseline = profile.permissionMode === 'FULL_ACCESS' ? 'allow' : 'ask';
|
|
22
|
+
const permission = projectPermission([inherited.permission, envPermission], baseline);
|
|
23
|
+
const projectAgents = (value) => !value || typeof value !== 'object' || Array.isArray(value)
|
|
24
|
+
? value : Object.fromEntries(Object.entries(value).map(([name, options]) => [name,
|
|
25
|
+
options && typeof options === 'object' && !Array.isArray(options)
|
|
26
|
+
? { ...options, permission: projectPermission([inherited.permission, envPermission, options.permission], baseline) }
|
|
27
|
+
: options,
|
|
28
|
+
]));
|
|
29
|
+
const config = { ...inherited, permission,
|
|
30
|
+
...(inherited.agent ? { agent: projectAgents(inherited.agent) } : {}),
|
|
31
|
+
...(inherited.mode ? { mode: projectAgents(inherited.mode) } : {}),
|
|
32
|
+
};
|
|
33
|
+
const permissionEnvironment = { OPENCODE_PERMISSION: JSON.stringify(permission) };
|
|
34
|
+
if (!apiKey || !model || raw)
|
|
35
|
+
return { ...permissionEnvironment, OPENCODE_CONFIG_CONTENT: JSON.stringify(config) };
|
|
18
36
|
const baseUrl = profile.environment.OPENAI_BASE_URL ?? 'https://api.openai.com/v1';
|
|
19
37
|
const usesChatCompletions = profile.environment.OPENAI_WIRE_API === 'chat_completions';
|
|
20
38
|
return {
|
|
39
|
+
...permissionEnvironment,
|
|
21
40
|
OPENCODE_CONFIG_CONTENT: JSON.stringify({
|
|
41
|
+
permission,
|
|
22
42
|
model: `agent-tower/${model}`,
|
|
23
43
|
provider: {
|
|
24
44
|
'agent-tower': {
|
|
@@ -32,4 +52,32 @@ export const openCodeAcpAgentDefinition = createNativeAcpAgentDefinition({
|
|
|
32
52
|
};
|
|
33
53
|
},
|
|
34
54
|
});
|
|
55
|
+
/** Retain explicit native deny rules from every source; all other rules use the selected mode. */
|
|
56
|
+
function projectPermission(values, baseline) {
|
|
57
|
+
const denies = {};
|
|
58
|
+
const merge = (target, value) => {
|
|
59
|
+
if (value === 'deny') {
|
|
60
|
+
target['*'] = 'deny';
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
64
|
+
return;
|
|
65
|
+
for (const [key, rule] of Object.entries(value)) {
|
|
66
|
+
if (rule === 'deny')
|
|
67
|
+
target[key] = 'deny';
|
|
68
|
+
else if (rule && typeof rule === 'object' && !Array.isArray(rule) && target[key] !== 'deny') {
|
|
69
|
+
const nested = target[key] ?? {};
|
|
70
|
+
merge(nested, rule);
|
|
71
|
+
if (Object.keys(nested).length)
|
|
72
|
+
target[key] = nested;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
for (const value of values)
|
|
77
|
+
merge(denies, value);
|
|
78
|
+
const fill = (value) => value['*'] === 'deny' ? { '*': 'deny' } : ({ '*': baseline,
|
|
79
|
+
...Object.fromEntries(Object.entries(value).map(([key, rule]) => [key, rule === 'deny' ? rule : fill(rule)])),
|
|
80
|
+
});
|
|
81
|
+
return fill(denies);
|
|
82
|
+
}
|
|
35
83
|
//# sourceMappingURL=opencode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,CAAC,MAAM,0BAA0B,GAAG,8BAA8B,CAAC;IACvE,SAAS,EAAE,SAAS,CAAC,QAAQ;IAC7B,WAAW,EAAE,UAAU;IACvB,oBAAoB,EAAE,CAAC,UAAU,CAAC;IAClC,iBAAiB,EAAE,CAAC,eAAe,CAAC;IACpC,SAAS,EAAE,CAAC,KAAK,CAAC;IAClB,sBAAsB,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1D,mBAAmB,EAAE,MAAM;IAC3B,oBAAoB,EAAE,CAAC,aAAa,CAAC;IACrC,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;IACxF,gBAAgB,CAAC,OAAO;QACtB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/opencode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-coding-agent.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/pi-coding-agent.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,YAAY,CAAC;AAItE,eAAO,MAAM,+BAA+B,EAAE,
|
|
1
|
+
{"version":3,"file":"pi-coding-agent.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/pi-coding-agent.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,YAAY,CAAC;AAItE,eAAO,MAAM,+BAA+B,EAAE,kBAkG7C,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { existsSync } from 'node:fs';
|
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import * as acp from '@agentclientprotocol/sdk';
|
|
5
|
-
import { AgentType,
|
|
5
|
+
import { AgentType, resolveProviderExecutionPermission } from '@agent-tower/shared';
|
|
6
6
|
import { which } from '../../../utils/index.js';
|
|
7
7
|
import { buildMcpConfigResponse } from '../../../services/mcp-config.service.js';
|
|
8
8
|
import { AgentRuntimeError } from '../../errors.js';
|
|
@@ -22,10 +22,7 @@ export const piCodingAgentAcpAgentDefinition = {
|
|
|
22
22
|
const model = readNonEmptyString(provider?.config.model);
|
|
23
23
|
const effort = readNonEmptyString(provider?.config.effort);
|
|
24
24
|
const appendPrompt = readNonEmptyString(provider?.config.appendPrompt);
|
|
25
|
-
const
|
|
26
|
-
const permissionMode = configuredMode === undefined
|
|
27
|
-
? provider?.config.autoApprove === true ? 'UNRESTRICTED' : 'ASK'
|
|
28
|
-
: normalizeRuntimePermissionMode(configuredMode);
|
|
25
|
+
const permissionMode = resolveProviderExecutionPermission(provider ?? { agentType: AgentType.PI_CODING_AGENT }).mode;
|
|
29
26
|
const supportsImages = provider?.config.supportsImages === true;
|
|
30
27
|
return {
|
|
31
28
|
agentType: AgentType.PI_CODING_AGENT,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi-coding-agent.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/pi-coding-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"pi-coding-agent.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/pi-coding-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-code.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/qwen-code.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"qwen-code.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/qwen-code.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,YAAY,CAAC;AAgCtE,eAAO,MAAM,0BAA0B,EAAE,kBA+CxC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import * as acp from '@agentclientprotocol/sdk';
|
|
3
|
-
import { AgentType,
|
|
3
|
+
import { AgentType, resolveProviderExecutionPermission } from '@agent-tower/shared';
|
|
4
4
|
import { which } from '../../../utils/index.js';
|
|
5
5
|
import { AgentRuntimeError } from '../../errors.js';
|
|
6
6
|
function projectQwenProvider(provider, inheritedEnvironment) {
|
|
@@ -11,13 +11,10 @@ function projectQwenProvider(provider, inheritedEnvironment) {
|
|
|
11
11
|
const model = typeof provider?.config.model === 'string' && provider.config.model.trim()
|
|
12
12
|
? provider.config.model.trim()
|
|
13
13
|
: undefined;
|
|
14
|
-
const configuredMode = provider?.config.permissionMode ?? provider?.config.acpPermissionMode;
|
|
15
14
|
const appendPrompt = typeof provider?.config.appendPrompt === 'string' && provider.config.appendPrompt
|
|
16
15
|
? provider.config.appendPrompt
|
|
17
16
|
: undefined;
|
|
18
|
-
const permissionMode =
|
|
19
|
-
? 'UNRESTRICTED'
|
|
20
|
-
: normalizeRuntimePermissionMode(configuredMode);
|
|
17
|
+
const permissionMode = resolveProviderExecutionPermission(provider ?? { agentType: AgentType.QWEN_CODE }).mode;
|
|
21
18
|
return {
|
|
22
19
|
agentType: AgentType.QWEN_CODE,
|
|
23
20
|
environment,
|
|
@@ -46,7 +43,8 @@ export const qwenCodeAcpAgentDefinition = {
|
|
|
46
43
|
args: [
|
|
47
44
|
'--acp',
|
|
48
45
|
'--experimental-skills',
|
|
49
|
-
|
|
46
|
+
'--approval-mode', profile.permissionMode === 'FULL_ACCESS' ? 'yolo' : 'default',
|
|
47
|
+
...(profile.permissionMode === 'FULL_ACCESS' ? ['--no-sandbox'] : []),
|
|
50
48
|
...(profile.model ? ['--model', profile.model] : []),
|
|
51
49
|
...(profile.environment.OPENAI_API_KEY ? ['--auth-type=openai'] : []),
|
|
52
50
|
],
|
|
@@ -61,12 +59,12 @@ export const qwenCodeAcpAgentDefinition = {
|
|
|
61
59
|
: { type: 'NOT_FOUND', error: 'Qwen Code CLI was not found' };
|
|
62
60
|
},
|
|
63
61
|
async configureSession(context, sessionId, response, profile) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (!response.modes?.availableModes.some(mode => mode.id ===
|
|
67
|
-
throw new AgentRuntimeError('permission_mode_unsupported', 'session',
|
|
62
|
+
const modeId = profile.permissionMode === 'FULL_ACCESS' ? 'yolo' : 'default';
|
|
63
|
+
if (response.modes?.currentModeId !== modeId) {
|
|
64
|
+
if (!response.modes?.availableModes.some(mode => mode.id === modeId)) {
|
|
65
|
+
throw new AgentRuntimeError('permission_mode_unsupported', 'session', `Qwen Code did not advertise '${modeId}'`, false);
|
|
68
66
|
}
|
|
69
|
-
await context.request(acp.methods.agent.session.setMode, { sessionId, modeId
|
|
67
|
+
await context.request(acp.methods.agent.session.setMode, { sessionId, modeId });
|
|
70
68
|
}
|
|
71
69
|
},
|
|
72
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-code.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/qwen-code.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"qwen-code.js","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/qwen-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type * as acp from '@agentclientprotocol/sdk';
|
|
2
|
-
import type { AgentType,
|
|
2
|
+
import type { AgentType, ExecutionPermissionMode } from '@agent-tower/shared';
|
|
3
3
|
import type { AvailabilityInfo } from '../../../executors/base.executor.js';
|
|
4
4
|
import type { Provider } from '../../../executors/providers.js';
|
|
5
5
|
import type { RuntimeOpenInput } from '../../contracts.js';
|
|
6
6
|
export interface AcpAgentProfile {
|
|
7
7
|
agentType: AgentType;
|
|
8
8
|
environment: Record<string, string>;
|
|
9
|
-
permissionMode:
|
|
9
|
+
permissionMode: ExecutionPermissionMode;
|
|
10
10
|
authenticationRequest?: acp.AuthenticateRequest;
|
|
11
11
|
appendPrompt?: string;
|
|
12
12
|
model?: string;
|
|
@@ -28,6 +28,8 @@ export type AcpSessionBootstrapResponse = Pick<acp.NewSessionResponse, 'modes' |
|
|
|
28
28
|
export interface AcpAgentDefinition {
|
|
29
29
|
readonly agentType: AgentType;
|
|
30
30
|
readonly displayName: string;
|
|
31
|
+
/** False when a loaded native session cannot reliably have its permissions reapplied. */
|
|
32
|
+
readonly supportsPermissionRestore?: boolean;
|
|
31
33
|
readonly initializeTimeoutMs?: number;
|
|
32
34
|
readonly maxStdoutFrameBytes?: number;
|
|
33
35
|
readonly transformStdoutFrame?: AcpStdoutFrameTransform;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EACV,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/runtime/acp/agents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `originator` and `user-agent` prefix used by non-interactive `codex exec`.
|
|
3
|
+
*
|
|
4
|
+
* Agent Tower drives Codex through the ACP adapter, which otherwise identifies
|
|
5
|
+
* itself as `@agentclientprotocol/codex-acp` in the `user-agent` header.
|
|
6
|
+
* Some OpenAI-compatible gateways only accept traffic that looks like the
|
|
7
|
+
* native Codex CLI, so the identity is rewritten to match `codex exec`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const CODEX_CLI_ORIGINATOR = "codex_exec";
|
|
10
|
+
/** Cache probe results for the lifetime of the process; the runtime rarely changes. */
|
|
11
|
+
export declare function resetCodexCliIdentityCache(): void;
|
|
12
|
+
/**
|
|
13
|
+
* Full `user-agent` value a native `codex exec` process would send.
|
|
14
|
+
*
|
|
15
|
+
* Format verified against Codex CLI 0.156.0:
|
|
16
|
+
* `{name}/{codexVersion} ({platform}) {terminal} ({name}; {clientVersion})`
|
|
17
|
+
* e.g. `codex_exec/0.156.0 (Mac OS 15.6.1; arm64) Apple_Terminal/455.1 (codex_exec; 0.156.0)`
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatCodexCliUserAgent(parts: {
|
|
20
|
+
clientName: string;
|
|
21
|
+
codexVersion: string;
|
|
22
|
+
platform: string;
|
|
23
|
+
terminal: string;
|
|
24
|
+
clientVersion: string;
|
|
25
|
+
}): string;
|
|
26
|
+
/**
|
|
27
|
+
* Terminal segment of the Codex user-agent.
|
|
28
|
+
*
|
|
29
|
+
* Codex prefers `TERM_PROGRAM`, then falls back to well-known session markers
|
|
30
|
+
* and finally reports `unknown`; verified against Codex CLI 0.156.0.
|
|
31
|
+
*/
|
|
32
|
+
export declare function detectCodexTerminal(environment: NodeJS.ProcessEnv): string;
|
|
33
|
+
/** `Mac OS 15.6.1; arm64` — the parenthesised segment of the Codex user-agent. */
|
|
34
|
+
export declare function resolveCodexPlatformDescription(): Promise<string>;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve `codex --version` for the binary Agent Tower is about to launch.
|
|
37
|
+
*
|
|
38
|
+
* Best effort: callers must tolerate `undefined` and leave headers untouched.
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveCodexVersion(codexPath: string | undefined, environment: NodeJS.ProcessEnv): Promise<string | undefined>;
|
|
41
|
+
/** `codex-cli 0.156.0` -> `0.156.0` */
|
|
42
|
+
export declare function parseCodexVersion(output: string): string | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Build the `user-agent` that makes an ACP-launched Codex indistinguishable
|
|
45
|
+
* from a native `codex exec` process, or `undefined` when the runtime version
|
|
46
|
+
* cannot be determined.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveCodexCliUserAgent(options: {
|
|
49
|
+
codexPath: string | undefined;
|
|
50
|
+
environment: NodeJS.ProcessEnv;
|
|
51
|
+
}): Promise<string | undefined>;
|
|
52
|
+
//# sourceMappingURL=codex-cli-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-cli-identity.d.ts","sourceRoot":"","sources":["../../../src/runtime/acp/codex-cli-identity.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAQjD,uFAAuF;AACvF,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAS1E;AAcD,kFAAkF;AAClF,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,MAAM,CAAC,CAGvE;AAuDD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,MAAM,CAAC,UAAU,GAC7B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B;AAqBD,uCAAuC;AACvC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGpE;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,EAAE;IACtD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAU9B"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import { promisify } from 'node:util';
|
|
5
|
+
const execFileAsync = promisify(execFile);
|
|
6
|
+
const VERSION_PROBE_TIMEOUT_MS = 5_000;
|
|
7
|
+
/**
|
|
8
|
+
* `originator` and `user-agent` prefix used by non-interactive `codex exec`.
|
|
9
|
+
*
|
|
10
|
+
* Agent Tower drives Codex through the ACP adapter, which otherwise identifies
|
|
11
|
+
* itself as `@agentclientprotocol/codex-acp` in the `user-agent` header.
|
|
12
|
+
* Some OpenAI-compatible gateways only accept traffic that looks like the
|
|
13
|
+
* native Codex CLI, so the identity is rewritten to match `codex exec`.
|
|
14
|
+
*/
|
|
15
|
+
export const CODEX_CLI_ORIGINATOR = 'codex_exec';
|
|
16
|
+
/** Terminal name Codex reports when it cannot detect a terminal at all. */
|
|
17
|
+
const UNKNOWN_TERMINAL = 'unknown';
|
|
18
|
+
const versionCache = new Map();
|
|
19
|
+
let platformDescription;
|
|
20
|
+
/** Cache probe results for the lifetime of the process; the runtime rarely changes. */
|
|
21
|
+
export function resetCodexCliIdentityCache() {
|
|
22
|
+
versionCache.clear();
|
|
23
|
+
platformDescription = undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Full `user-agent` value a native `codex exec` process would send.
|
|
27
|
+
*
|
|
28
|
+
* Format verified against Codex CLI 0.156.0:
|
|
29
|
+
* `{name}/{codexVersion} ({platform}) {terminal} ({name}; {clientVersion})`
|
|
30
|
+
* e.g. `codex_exec/0.156.0 (Mac OS 15.6.1; arm64) Apple_Terminal/455.1 (codex_exec; 0.156.0)`
|
|
31
|
+
*/
|
|
32
|
+
export function formatCodexCliUserAgent(parts) {
|
|
33
|
+
return `${parts.clientName}/${parts.codexVersion} (${parts.platform}) ${parts.terminal}`
|
|
34
|
+
+ ` (${parts.clientName}; ${parts.clientVersion})`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Terminal segment of the Codex user-agent.
|
|
38
|
+
*
|
|
39
|
+
* Codex prefers `TERM_PROGRAM`, then falls back to well-known session markers
|
|
40
|
+
* and finally reports `unknown`; verified against Codex CLI 0.156.0.
|
|
41
|
+
*/
|
|
42
|
+
export function detectCodexTerminal(environment) {
|
|
43
|
+
const program = environment.TERM_PROGRAM?.trim();
|
|
44
|
+
if (program) {
|
|
45
|
+
const version = environment.TERM_PROGRAM_VERSION?.trim();
|
|
46
|
+
return version ? `${program}/${version}` : program;
|
|
47
|
+
}
|
|
48
|
+
if (environment.WT_SESSION?.trim())
|
|
49
|
+
return 'WindowsTerminal';
|
|
50
|
+
if (environment.TERM_SESSION_ID?.trim())
|
|
51
|
+
return 'Apple_Terminal';
|
|
52
|
+
return UNKNOWN_TERMINAL;
|
|
53
|
+
}
|
|
54
|
+
/** Architecture token as reported by the Rust `os_info` crate Codex uses. */
|
|
55
|
+
function describeArchitecture() {
|
|
56
|
+
switch (process.arch) {
|
|
57
|
+
case 'x64':
|
|
58
|
+
return 'x86_64';
|
|
59
|
+
case 'ia32':
|
|
60
|
+
return 'i686';
|
|
61
|
+
default:
|
|
62
|
+
return process.arch;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/** `Mac OS 15.6.1; arm64` — the parenthesised segment of the Codex user-agent. */
|
|
66
|
+
export async function resolveCodexPlatformDescription() {
|
|
67
|
+
platformDescription ??= buildPlatformDescription();
|
|
68
|
+
return await platformDescription;
|
|
69
|
+
}
|
|
70
|
+
async function buildPlatformDescription() {
|
|
71
|
+
const architecture = describeArchitecture();
|
|
72
|
+
if (process.platform === 'darwin') {
|
|
73
|
+
return `Mac OS ${await readMacOsProductVersion()}; ${architecture}`;
|
|
74
|
+
}
|
|
75
|
+
if (process.platform === 'linux') {
|
|
76
|
+
return `${await readLinuxDistributionName()}; ${architecture}`;
|
|
77
|
+
}
|
|
78
|
+
if (process.platform === 'win32') {
|
|
79
|
+
return `Windows ${os.release()}; ${architecture}`;
|
|
80
|
+
}
|
|
81
|
+
return `${process.platform}; ${architecture}`;
|
|
82
|
+
}
|
|
83
|
+
async function readMacOsProductVersion() {
|
|
84
|
+
try {
|
|
85
|
+
const { stdout } = await execFileAsync('sw_vers', ['-productVersion'], {
|
|
86
|
+
encoding: 'utf8',
|
|
87
|
+
timeout: VERSION_PROBE_TIMEOUT_MS,
|
|
88
|
+
});
|
|
89
|
+
const version = String(stdout).trim();
|
|
90
|
+
if (version)
|
|
91
|
+
return version;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// Fall through to the Darwin kernel mapping below.
|
|
95
|
+
}
|
|
96
|
+
// Darwin 24.6.0 -> macOS 15.6.0; the kernel release omits the patch version.
|
|
97
|
+
const [major, minor] = os.release().split('.');
|
|
98
|
+
const macosMajor = Number(major);
|
|
99
|
+
if (Number.isFinite(macosMajor) && macosMajor >= 20) {
|
|
100
|
+
return `${macosMajor - 9}.${minor ?? '0'}.0`;
|
|
101
|
+
}
|
|
102
|
+
return os.release();
|
|
103
|
+
}
|
|
104
|
+
async function readLinuxDistributionName() {
|
|
105
|
+
try {
|
|
106
|
+
const contents = await readFile('/etc/os-release', 'utf8');
|
|
107
|
+
const fields = new Map();
|
|
108
|
+
for (const line of contents.split('\n')) {
|
|
109
|
+
const separator = line.indexOf('=');
|
|
110
|
+
if (separator <= 0)
|
|
111
|
+
continue;
|
|
112
|
+
fields.set(line.slice(0, separator).trim(), line.slice(separator + 1).trim().replace(/^"|"$/g, ''));
|
|
113
|
+
}
|
|
114
|
+
const name = fields.get('NAME');
|
|
115
|
+
const version = fields.get('VERSION_ID');
|
|
116
|
+
if (name && version)
|
|
117
|
+
return `${name} ${version}`;
|
|
118
|
+
if (name)
|
|
119
|
+
return name;
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// Unknown distributions keep the generic platform name.
|
|
123
|
+
}
|
|
124
|
+
return 'Linux';
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Resolve `codex --version` for the binary Agent Tower is about to launch.
|
|
128
|
+
*
|
|
129
|
+
* Best effort: callers must tolerate `undefined` and leave headers untouched.
|
|
130
|
+
*/
|
|
131
|
+
export async function resolveCodexVersion(codexPath, environment) {
|
|
132
|
+
if (!codexPath)
|
|
133
|
+
return undefined;
|
|
134
|
+
const cached = versionCache.get(codexPath);
|
|
135
|
+
if (cached)
|
|
136
|
+
return await cached;
|
|
137
|
+
const pending = probeCodexVersion(codexPath, environment);
|
|
138
|
+
versionCache.set(codexPath, pending);
|
|
139
|
+
return await pending;
|
|
140
|
+
}
|
|
141
|
+
async function probeCodexVersion(codexPath, environment) {
|
|
142
|
+
try {
|
|
143
|
+
const { stdout } = await execFileAsync(codexPath, ['--version'], {
|
|
144
|
+
encoding: 'utf8',
|
|
145
|
+
timeout: VERSION_PROBE_TIMEOUT_MS,
|
|
146
|
+
env: environment,
|
|
147
|
+
windowsHide: true,
|
|
148
|
+
// `.cmd` shims on Windows are not directly executable without a shell.
|
|
149
|
+
shell: process.platform === 'win32',
|
|
150
|
+
});
|
|
151
|
+
return parseCodexVersion(String(stdout));
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/** `codex-cli 0.156.0` -> `0.156.0` */
|
|
158
|
+
export function parseCodexVersion(output) {
|
|
159
|
+
const match = /(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)/.exec(output);
|
|
160
|
+
return match?.[1];
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Build the `user-agent` that makes an ACP-launched Codex indistinguishable
|
|
164
|
+
* from a native `codex exec` process, or `undefined` when the runtime version
|
|
165
|
+
* cannot be determined.
|
|
166
|
+
*/
|
|
167
|
+
export async function resolveCodexCliUserAgent(options) {
|
|
168
|
+
const codexVersion = await resolveCodexVersion(options.codexPath, options.environment);
|
|
169
|
+
if (!codexVersion)
|
|
170
|
+
return undefined;
|
|
171
|
+
return formatCodexCliUserAgent({
|
|
172
|
+
clientName: CODEX_CLI_ORIGINATOR,
|
|
173
|
+
codexVersion,
|
|
174
|
+
platform: await resolveCodexPlatformDescription(),
|
|
175
|
+
terminal: detectCodexTerminal(options.environment),
|
|
176
|
+
clientVersion: codexVersion,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=codex-cli-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-cli-identity.js","sourceRoot":"","sources":["../../../src/runtime/acp/codex-cli-identity.ts"],"names":[],"mappings":"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"}
|