@shepai/cli 1.171.0 → 1.172.0-pr528.619145
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/apis/json-schema/AgentType.yaml +1 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +1 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +1 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +3 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +23 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.js +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts +63 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.js +494 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/codex.json +32 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/copilot.json +32 -0
- package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
- package/dist/src/presentation/tui/prompts/agent-select.prompt.js +5 -0
- package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/check-agent-auth.js +18 -0
- package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/get-all-agent-models.js +4 -2
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +2 -0
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.js +1 -0
- package/dist/src/presentation/web/components/common/repo-group/repo-group.js +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +7 -0
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +11 -3
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +8 -0
- package/dist/translations/ar/tui.json +4 -0
- package/dist/translations/de/tui.json +4 -0
- package/dist/translations/en/tui.json +4 -0
- package/dist/translations/es/tui.json +4 -0
- package/dist/translations/fr/tui.json +4 -0
- package/dist/translations/he/tui.json +4 -0
- package/dist/translations/pt/tui.json +4 -0
- package/dist/translations/ru/tui.json +4 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
- package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
- package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_d50cde79._.js → _39147808._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_d50cde79._.js.map → _39147808._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_f778f3ef._.js → _3cfb4ce1._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_f778f3ef._.js.map → _3cfb4ce1._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_49447b3c._.js → _8e3828d3._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_49447b3c._.js.map → _8e3828d3._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
- package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
- package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_df737cce._.js +1 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
- package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
- package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +50 -50
- package/web/.next/static/chunks/109f58becff0eaa2.js +1 -0
- package/web/.next/static/chunks/{9705f2a5695a4995.js → 3dbdf0c81a29f5a5.js} +1 -1
- package/web/.next/static/chunks/{a80bbfca8ee3d79b.js → 49f2125c4881efbc.js} +1 -1
- package/web/.next/static/chunks/4d53de52318846f4.js +1 -0
- package/web/.next/static/chunks/{5983ef48d50d2d2a.js → 539b4b3ff91bd762.js} +1 -1
- package/web/.next/static/chunks/{aa077ab14015a8fd.js → 5ea512f99e0640fe.js} +1 -1
- package/web/.next/static/chunks/{6ee5d45de67d3547.js → 64f42c465e85ae70.js} +3 -3
- package/web/.next/static/chunks/{67a430796dea42a7.js → 724db95300328e0d.js} +1 -1
- package/web/.next/static/chunks/{b93a918712cd4987.js → 79363cfd15eac50d.js} +1 -1
- package/web/.next/static/chunks/{3d182168cdc4c15c.js → 8c1e3f6dbbbb59e7.js} +1 -1
- package/web/.next/static/chunks/{4383bcae769740e7.js → ab32ef049942210e.js} +1 -1
- package/web/.next/static/chunks/{24dd6b3021c2d849.js → ae79dcb88796c551.js} +1 -1
- package/web/.next/static/chunks/{02fe1303471793b9.js → beb5358e4841c286.js} +2 -2
- package/web/.next/static/chunks/{0ce50b34df07306b.js → d51a12d63fb56be7.js} +1 -1
- package/web/.next/static/chunks/dcf8bb4389557a76.css +1 -0
- package/web/.next/static/chunks/{eff45ffddd85918c.js → de69c00721590908.js} +3 -3
- package/web/public/icons/agents/copilot.svg +12 -0
- package/web/.next/static/chunks/18d4601f068c700d.js +0 -1
- package/web/.next/static/chunks/b14085e99b88e7f7.css +0 -1
- package/web/.next/static/chunks/bb962a996814718a.js +0 -1
- /package/web/.next/static/{akDn2qFk1krSwrjt4345P → Gv_GqdT_QwPhH-8wWF2nQ}/_buildManifest.js +0 -0
- /package/web/.next/static/{akDn2qFk1krSwrjt4345P → Gv_GqdT_QwPhH-8wWF2nQ}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{akDn2qFk1krSwrjt4345P → Gv_GqdT_QwPhH-8wWF2nQ}/_ssgManifest.js +0 -0
|
@@ -21,6 +21,7 @@ DevAgentIcon.displayName = 'DevAgentIcon';
|
|
|
21
21
|
const agentTypeIconMap = {
|
|
22
22
|
'claude-code': createBrandIcon('/icons/agents/claude-ai-icon.svg', 'Claude Code'),
|
|
23
23
|
'codex-cli': createBrandIcon('/icons/agents/openai.svg', 'Codex CLI'),
|
|
24
|
+
'copilot-cli': createBrandIcon('/icons/agents/copilot.svg', 'Copilot CLI'),
|
|
24
25
|
cursor: createBrandIcon('/icons/agents/cursor.jpeg', 'Cursor'),
|
|
25
26
|
'gemini-cli': createBrandIcon('/icons/agents/gemini-cli.jpeg', 'Gemini CLI'),
|
|
26
27
|
aider: createBrandIcon('/icons/agents/aider.png', 'Aider'),
|
|
@@ -31,6 +32,7 @@ const agentTypeIconMap = {
|
|
|
31
32
|
export const agentTypeLabels = {
|
|
32
33
|
'claude-code': 'Claude Code',
|
|
33
34
|
'codex-cli': 'Codex CLI',
|
|
35
|
+
'copilot-cli': 'Copilot CLI',
|
|
34
36
|
cursor: 'Cursor',
|
|
35
37
|
'gemini-cli': 'Gemini CLI',
|
|
36
38
|
aider: 'Aider',
|
package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-type-icons.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/agent-type-icons.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-type-icons.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-node/agent-type-icons.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA2CvD,QAAA,MAAM,IAAI,EAAE,IAIX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAExB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAa1B,CAAC"}
|
package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.js
CHANGED
|
@@ -3,6 +3,7 @@ import { getAgentTypeIcon, DefaultAgentIcon } from './agent-type-icons.js';
|
|
|
3
3
|
const allAgentTypes = [
|
|
4
4
|
{ type: 'claude-code', label: 'Claude Code' },
|
|
5
5
|
{ type: 'codex-cli', label: 'Codex CLI' },
|
|
6
|
+
{ type: 'copilot-cli', label: 'Copilot CLI' },
|
|
6
7
|
{ type: 'cursor', label: 'Cursor' },
|
|
7
8
|
{ type: 'gemini-cli', label: 'Gemini CLI' },
|
|
8
9
|
{ type: 'aider', label: 'Aider' },
|
|
@@ -8,5 +8,5 @@ export function RepoGroup({ repoName, featureCount, children, defaultOpen = true
|
|
|
8
8
|
return (_jsxs("div", { "data-testid": "repo-group", className: "group/repo mb-1", children: [_jsxs("div", { className: "flex items-center", children: [_jsxs("button", { type: "button", onClick: () => setOpen(!open), className: cn('text-sidebar-foreground hover:bg-sidebar-accent flex min-w-0 flex-1 items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-semibold', 'transition-colors duration-100'), "aria-expanded": open, children: [_jsx(ChevronDown, { className: cn('text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform duration-200', !open && '-rotate-90') }), _jsx(GitFork, { className: "text-muted-foreground h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "min-w-0 flex-1 truncate", children: repoName }), _jsx("span", { "aria-label": `${featureCount} features`, className: "bg-sidebar-accent text-sidebar-accent-foreground ml-auto inline-flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums", role: "img", children: featureCount })] }), onAddFeature ? (_jsx("button", { type: "button", "data-testid": "repo-add-feature", onClick: (e) => {
|
|
9
9
|
e.stopPropagation();
|
|
10
10
|
onAddFeature();
|
|
11
|
-
}, className: cn('text-muted-foreground hover:text-sidebar-foreground hover:bg-sidebar-accent shrink-0 rounded-md p-1 opacity-0 transition-all duration-100 group-hover/repo:opacity-100', 'focus-visible:ring-ring focus-visible:opacity-100 focus-visible:ring-1 focus-visible:outline-none'), "aria-label": `Add feature to ${repoName}`, children: _jsx(Plus, { className: "h-3.5 w-3.5" }) })) : null] }), open ? _jsx("div", { className: "pl-2", children: children }) : null] }));
|
|
11
|
+
}, className: cn('text-muted-foreground hover:text-sidebar-foreground hover:bg-sidebar-accent mr-2 shrink-0 rounded-md p-1 opacity-0 transition-all duration-100 group-hover/repo:opacity-100', 'focus-visible:ring-ring focus-visible:opacity-100 focus-visible:ring-1 focus-visible:outline-none'), "aria-label": `Add feature to ${repoName}`, children: _jsx(Plus, { className: "h-3.5 w-3.5" }) })) : null] }), open ? _jsx("div", { className: "pl-2", children: children }) : null] }));
|
|
12
12
|
}
|
|
@@ -8,6 +8,7 @@ export declare const CursorSelected: Story;
|
|
|
8
8
|
export declare const GeminiCli: Story;
|
|
9
9
|
export declare const CodexCliSelected: Story;
|
|
10
10
|
export declare const DemoAgent: Story;
|
|
11
|
+
export declare const CopilotCli: Story;
|
|
11
12
|
export declare const OverrideMode: Story;
|
|
12
13
|
export declare const Disabled: Story;
|
|
13
14
|
export declare const SavingState: Story;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentModelPicker.stories.d.ts","sourceRoot":"","sources":["../../../../../../../../src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAevC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAqBnC,eAAO,MAAM,iBAAiB,EAAE,KAM/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAM5B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAM9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KASnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"AgentModelPicker.stories.d.ts","sourceRoot":"","sources":["../../../../../../../../src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAevC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAqBnC,eAAO,MAAM,iBAAiB,EAAE,KAM/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAM5B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAM9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAMxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KASnC,CAAC"}
|
|
@@ -60,6 +60,13 @@ export const DemoAgent = {
|
|
|
60
60
|
mode: 'settings',
|
|
61
61
|
},
|
|
62
62
|
};
|
|
63
|
+
export const CopilotCli = {
|
|
64
|
+
args: {
|
|
65
|
+
initialAgentType: 'copilot-cli',
|
|
66
|
+
initialModel: 'claude-sonnet-4.5',
|
|
67
|
+
mode: 'settings',
|
|
68
|
+
},
|
|
69
|
+
};
|
|
63
70
|
export const OverrideMode = {
|
|
64
71
|
args: {
|
|
65
72
|
initialAgentType: 'claude-code',
|
package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-settings-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/agent-settings-section.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-settings-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/agent-settings-section.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAqBxE,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,yBAAyB,2CAiKxE"}
|
|
@@ -14,12 +14,15 @@ import { getAgentTypeIcon } from '../../common/feature-node/agent-type-icons.js'
|
|
|
14
14
|
const AGENT_TYPE_OPTIONS = [
|
|
15
15
|
{ value: AgentType.ClaudeCode, label: 'Claude Code' },
|
|
16
16
|
{ value: AgentType.CodexCli, label: 'Codex CLI' },
|
|
17
|
+
{ value: AgentType.CopilotCli, label: 'Copilot CLI' },
|
|
17
18
|
{ value: AgentType.Cursor, label: 'Cursor' },
|
|
18
19
|
{ value: AgentType.GeminiCli, label: 'Gemini CLI' },
|
|
19
20
|
{ value: AgentType.Aider, label: 'Aider' },
|
|
20
21
|
{ value: AgentType.Continue, label: 'Continue' },
|
|
21
22
|
{ value: AgentType.Dev, label: 'Dev' },
|
|
22
23
|
];
|
|
24
|
+
/** Agent types that only support session-based auth (no API token). */
|
|
25
|
+
const SESSION_ONLY_AGENTS = new Set([AgentType.CopilotCli]);
|
|
23
26
|
const AUTH_METHOD_OPTIONS = [
|
|
24
27
|
{ value: AgentAuthMethod.Session, label: 'Session' },
|
|
25
28
|
{ value: AgentAuthMethod.Token, label: 'Token' },
|
|
@@ -57,8 +60,13 @@ export function AgentSettingsSection({ agent }) {
|
|
|
57
60
|
return { agent: result };
|
|
58
61
|
}
|
|
59
62
|
function handleAgentTypeChange(value) {
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
const newType = value;
|
|
64
|
+
const newAuthMethod = SESSION_ONLY_AGENTS.has(newType) ? AgentAuthMethod.Session : authMethod;
|
|
65
|
+
setAgentType(newType);
|
|
66
|
+
if (newAuthMethod !== authMethod) {
|
|
67
|
+
setAuthMethod(newAuthMethod);
|
|
68
|
+
}
|
|
69
|
+
save(buildPayload({ type: newType, authMethod: newAuthMethod }));
|
|
62
70
|
}
|
|
63
71
|
function handleAuthMethodChange(value) {
|
|
64
72
|
setAuthMethod(value);
|
|
@@ -72,5 +80,5 @@ export function AgentSettingsSection({ agent }) {
|
|
|
72
80
|
return (_jsxs(Card, { id: "agent", className: "scroll-mt-6", "data-testid": "agent-settings-section", children: [_jsxs(CardHeader, { children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Bot, { className: "text-muted-foreground h-4 w-4" }), _jsx(CardTitle, { children: "Preferred Agent" })] }), isPending ? _jsx("span", { className: "text-muted-foreground text-xs", children: "Saving..." }) : null, showSaved && !isPending ? (_jsxs("span", { className: "flex items-center gap-1 text-xs text-green-600", children: [_jsx(Check, { className: "h-3 w-3" }), "Saved"] })) : null] }), _jsx(CardDescription, { children: "Choose your AI coding agent and authentication method" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "agent-type", children: "Agent Type" }), _jsxs(Select, { value: agentType, onValueChange: handleAgentTypeChange, children: [_jsx(SelectTrigger, { id: "agent-type", "data-testid": "agent-type-select", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: AGENT_TYPE_OPTIONS.map((opt) => {
|
|
73
81
|
const Icon = getAgentTypeIcon(opt.value);
|
|
74
82
|
return (_jsx(SelectItem, { value: opt.value, children: _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(Icon, { className: "h-4 w-4 shrink-0" }), opt.label] }) }, opt.value));
|
|
75
|
-
}) })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "auth-method", children: "Authentication Method" }), _jsxs(Select, { value: authMethod, onValueChange: handleAuthMethodChange, children: [_jsx(SelectTrigger, { id: "auth-method", "data-testid": "auth-method-select", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: AUTH_METHOD_OPTIONS.map((opt) => (_jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value))) })] })] }), authMethod === AgentAuthMethod.Token && (_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "agent-token", children: "API Token" }), _jsxs("div", { className: "relative", children: [_jsx(Input, { id: "agent-token", "data-testid": "agent-token-input", type: showToken ? 'text' : 'password', value: token, onChange: (e) => setToken(e.target.value), onBlur: handleTokenBlur, placeholder: "Enter your API token", className: "pe-10" }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", className: "absolute top-0 right-0 h-full px-3 hover:bg-transparent", onClick: () => setShowToken(!showToken), "data-testid": "toggle-token-visibility", "aria-label": showToken ? 'Hide token' : 'Show token', children: showToken ? _jsx(EyeOff, { className: "h-4 w-4" }) : _jsx(Eye, { className: "h-4 w-4" }) })] }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Saves automatically when you leave the field" })] }))] })] }));
|
|
83
|
+
}) })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "auth-method", children: "Authentication Method" }), _jsxs(Select, { value: authMethod, onValueChange: handleAuthMethodChange, disabled: SESSION_ONLY_AGENTS.has(agentType), children: [_jsx(SelectTrigger, { id: "auth-method", "data-testid": "auth-method-select", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: AUTH_METHOD_OPTIONS.filter((opt) => !SESSION_ONLY_AGENTS.has(agentType) || opt.value === AgentAuthMethod.Session).map((opt) => (_jsx(SelectItem, { value: opt.value, children: opt.label }, opt.value))) })] }), SESSION_ONLY_AGENTS.has(agentType) && (_jsxs("p", { className: "text-muted-foreground text-xs", children: ["Copilot CLI uses GitHub OAuth \u2014 authenticate with", ' ', _jsx("code", { className: "font-mono", children: "copilot auth login" }), ". No API token needed."] }))] }), authMethod === AgentAuthMethod.Token && (_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "agent-token", children: "API Token" }), _jsxs("div", { className: "relative", children: [_jsx(Input, { id: "agent-token", "data-testid": "agent-token-input", type: showToken ? 'text' : 'password', value: token, onChange: (e) => setToken(e.target.value), onBlur: handleTokenBlur, placeholder: "Enter your API token", className: "pe-10" }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", className: "absolute top-0 right-0 h-full px-3 hover:bg-transparent", onClick: () => setShowToken(!showToken), "data-testid": "toggle-token-visibility", "aria-label": showToken ? 'Hide token' : 'Show token', children: showToken ? _jsx(EyeOff, { className: "h-4 w-4" }) : _jsx(Eye, { className: "h-4 w-4" }) })] }), _jsx("p", { className: "text-muted-foreground text-xs", children: "Saves automatically when you leave the field" })] }))] })] }));
|
|
76
84
|
}
|
package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts
CHANGED
|
@@ -14,4 +14,5 @@ export declare const Default: Story;
|
|
|
14
14
|
export declare const TokenAuth: Story;
|
|
15
15
|
export declare const CodexCli: Story;
|
|
16
16
|
export declare const AiderSession: Story;
|
|
17
|
+
export declare const CopilotCli: Story;
|
|
17
18
|
//# sourceMappingURL=agent-settings-section.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-settings-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/agent-settings-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,QAAA,MAAM,IAAI;;;;;;;CAOmC,CAAC;AAE9C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAO1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"agent-settings-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/agent-settings-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,QAAA,MAAM,IAAI;;;;;;;CAOmC,CAAC;AAE9C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAQvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAO1B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC"}
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"name": "Codex CLI",
|
|
16
16
|
"description": "وكيل Codex CLI من OpenAI للطرفية (نماذج GPT)"
|
|
17
17
|
},
|
|
18
|
+
"copilotCli": {
|
|
19
|
+
"name": "Copilot CLI",
|
|
20
|
+
"description": "GitHub Copilot CLI (الإعداد الافتراضي: Claude Sonnet 4.5، يتطلب اشتراك Copilot)"
|
|
21
|
+
},
|
|
18
22
|
"cursor": {
|
|
19
23
|
"name": "Cursor",
|
|
20
24
|
"description": "وكيل البرمجة بالذكاء الاصطناعي Cursor"
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
"name": "Codex CLI",
|
|
10
10
|
"description": "OpenAI Codex CLI Terminal-Agent (GPT-Modelle)"
|
|
11
11
|
},
|
|
12
|
+
"copilotCli": {
|
|
13
|
+
"name": "Copilot CLI",
|
|
14
|
+
"description": "GitHub Copilot CLI (Standard: Claude Sonnet 4.5, erfordert Copilot-Abonnement)"
|
|
15
|
+
},
|
|
12
16
|
"cursor": { "name": "Cursor", "description": "Cursor KI-Coding-Agent" },
|
|
13
17
|
"devMock": {
|
|
14
18
|
"name": "Dev (Mock)",
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"name": "Codex CLI",
|
|
16
16
|
"description": "OpenAI's Codex CLI terminal agent (GPT models)"
|
|
17
17
|
},
|
|
18
|
+
"copilotCli": {
|
|
19
|
+
"name": "Copilot CLI",
|
|
20
|
+
"description": "GitHub Copilot CLI (Claude Sonnet 4.5 default, requires Copilot subscription)"
|
|
21
|
+
},
|
|
18
22
|
"cursor": {
|
|
19
23
|
"name": "Cursor",
|
|
20
24
|
"description": "Cursor AI coding agent"
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"name": "Codex CLI",
|
|
16
16
|
"description": "Agente de terminal Codex CLI de OpenAI (modelos GPT)"
|
|
17
17
|
},
|
|
18
|
+
"copilotCli": {
|
|
19
|
+
"name": "Copilot CLI",
|
|
20
|
+
"description": "GitHub Copilot CLI (Claude Sonnet 4.5 por defecto, requiere suscripción a Copilot)"
|
|
21
|
+
},
|
|
18
22
|
"cursor": {
|
|
19
23
|
"name": "Cursor",
|
|
20
24
|
"description": "Agente de codificación AI Cursor"
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"name": "Codex CLI",
|
|
16
16
|
"description": "Agent terminal Codex CLI d'OpenAI (modèles GPT)"
|
|
17
17
|
},
|
|
18
|
+
"copilotCli": {
|
|
19
|
+
"name": "Copilot CLI",
|
|
20
|
+
"description": "GitHub Copilot CLI (Claude Sonnet 4.5 par défaut, abonnement Copilot requis)"
|
|
21
|
+
},
|
|
18
22
|
"cursor": {
|
|
19
23
|
"name": "Cursor",
|
|
20
24
|
"description": "Agent de codage IA Cursor"
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"name": "Codex CLI",
|
|
16
16
|
"description": "סוכן טרמינל Codex CLI של OpenAI (מודלי GPT)"
|
|
17
17
|
},
|
|
18
|
+
"copilotCli": {
|
|
19
|
+
"name": "Copilot CLI",
|
|
20
|
+
"description": "GitHub Copilot CLI (ברירת מחדל: Claude Sonnet 4.5, דורש מנוי Copilot)"
|
|
21
|
+
},
|
|
18
22
|
"cursor": {
|
|
19
23
|
"name": "Cursor",
|
|
20
24
|
"description": "סוכן קידוד Cursor AI"
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"name": "Codex CLI",
|
|
16
16
|
"description": "Agente de terminal Codex CLI da OpenAI (modelos GPT)"
|
|
17
17
|
},
|
|
18
|
+
"copilotCli": {
|
|
19
|
+
"name": "Copilot CLI",
|
|
20
|
+
"description": "GitHub Copilot CLI (padrão: Claude Sonnet 4.5, requer assinatura Copilot)"
|
|
21
|
+
},
|
|
18
22
|
"cursor": {
|
|
19
23
|
"name": "Cursor",
|
|
20
24
|
"description": "Agente de codificação AI Cursor"
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"name": "Codex CLI",
|
|
16
16
|
"description": "Терминальный агент OpenAI Codex CLI (модели GPT)"
|
|
17
17
|
},
|
|
18
|
+
"copilotCli": {
|
|
19
|
+
"name": "Copilot CLI",
|
|
20
|
+
"description": "GitHub Copilot CLI (по умолчанию: Claude Sonnet 4.5, требуется подписка Copilot)"
|
|
21
|
+
},
|
|
18
22
|
"cursor": {
|
|
19
23
|
"name": "Cursor",
|
|
20
24
|
"description": "AI-агент для кодирования Cursor"
|