ccjk 12.0.7 → 12.0.8
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/package.json +1 -1
- package/dist/chunks/agent-teams.mjs +0 -136
- package/dist/chunks/agent.mjs +0 -1439
- package/dist/chunks/agents.mjs +0 -3778
- package/dist/chunks/api-cli.mjs +0 -132
- package/dist/chunks/api-providers.mjs +0 -129
- package/dist/chunks/api.mjs +0 -112
- package/dist/chunks/auto-bootstrap.mjs +0 -358
- package/dist/chunks/auto-init.mjs +0 -7584
- package/dist/chunks/auto-updater.mjs +0 -410
- package/dist/chunks/banner.mjs +0 -188
- package/dist/chunks/bash.mjs +0 -187
- package/dist/chunks/boost.mjs +0 -397
- package/dist/chunks/ccjk-agents.mjs +0 -414
- package/dist/chunks/ccjk-all.mjs +0 -1028
- package/dist/chunks/ccjk-config.mjs +0 -261
- package/dist/chunks/ccjk-hooks.mjs +0 -1074
- package/dist/chunks/ccjk-mcp.mjs +0 -761
- package/dist/chunks/ccjk-setup.mjs +0 -763
- package/dist/chunks/ccjk-skills.mjs +0 -514
- package/dist/chunks/ccr.mjs +0 -98
- package/dist/chunks/ccu.mjs +0 -40
- package/dist/chunks/check-updates.mjs +0 -108
- package/dist/chunks/claude-code-config-manager.mjs +0 -750
- package/dist/chunks/claude-code-incremental-manager.mjs +0 -623
- package/dist/chunks/claude-config.mjs +0 -236
- package/dist/chunks/claude-wrapper.mjs +0 -85
- package/dist/chunks/cleanup-migration.mjs +0 -20
- package/dist/chunks/cli-hook.mjs +0 -2285
- package/dist/chunks/cloud-sync.mjs +0 -29
- package/dist/chunks/codex-config-switch.mjs +0 -451
- package/dist/chunks/codex-provider-manager.mjs +0 -236
- package/dist/chunks/codex-uninstaller.mjs +0 -404
- package/dist/chunks/codex.mjs +0 -2077
- package/dist/chunks/commands.mjs +0 -108
- package/dist/chunks/commands2.mjs +0 -413
- package/dist/chunks/commit.mjs +0 -138
- package/dist/chunks/completion.mjs +0 -515
- package/dist/chunks/config-consolidator.mjs +0 -172
- package/dist/chunks/config-switch.mjs +0 -317
- package/dist/chunks/config.mjs +0 -379
- package/dist/chunks/config2.mjs +0 -477
- package/dist/chunks/config3.mjs +0 -470
- package/dist/chunks/constants.mjs +0 -133
- package/dist/chunks/context-loader.mjs +0 -343
- package/dist/chunks/context.mjs +0 -372
- package/dist/chunks/convoy-manager.mjs +0 -880
- package/dist/chunks/dashboard.mjs +0 -476
- package/dist/chunks/doctor.mjs +0 -964
- package/dist/chunks/evolution.mjs +0 -382
- package/dist/chunks/features.mjs +0 -698
- package/dist/chunks/fish.mjs +0 -181
- package/dist/chunks/fs-operations.mjs +0 -192
- package/dist/chunks/health-alerts.mjs +0 -304
- package/dist/chunks/health-check.mjs +0 -532
- package/dist/chunks/help.mjs +0 -340
- package/dist/chunks/hook-installer.mjs +0 -45
- package/dist/chunks/index.mjs +0 -24
- package/dist/chunks/index10.mjs +0 -1171
- package/dist/chunks/index11.mjs +0 -1008
- package/dist/chunks/index12.mjs +0 -193
- package/dist/chunks/index13.mjs +0 -218
- package/dist/chunks/index14.mjs +0 -663
- package/dist/chunks/index2.mjs +0 -19
- package/dist/chunks/index3.mjs +0 -19092
- package/dist/chunks/index4.mjs +0 -8
- package/dist/chunks/index5.mjs +0 -7600
- package/dist/chunks/index6.mjs +0 -171
- package/dist/chunks/index7.mjs +0 -3583
- package/dist/chunks/index8.mjs +0 -19
- package/dist/chunks/index9.mjs +0 -616
- package/dist/chunks/init.mjs +0 -1606
- package/dist/chunks/installer.mjs +0 -690
- package/dist/chunks/installer2.mjs +0 -179
- package/dist/chunks/interview.mjs +0 -2927
- package/dist/chunks/json-config.mjs +0 -60
- package/dist/chunks/linux.mjs +0 -3863
- package/dist/chunks/macos.mjs +0 -69
- package/dist/chunks/main.mjs +0 -635
- package/dist/chunks/manager.mjs +0 -1048
- package/dist/chunks/marketplace.mjs +0 -949
- package/dist/chunks/mcp-cli.mjs +0 -204
- package/dist/chunks/mcp-performance.mjs +0 -187
- package/dist/chunks/mcp.mjs +0 -1231
- package/dist/chunks/menu.mjs +0 -652
- package/dist/chunks/metrics-display.mjs +0 -153
- package/dist/chunks/migrator.mjs +0 -178
- package/dist/chunks/monitor.mjs +0 -1856
- package/dist/chunks/notification.mjs +0 -1864
- package/dist/chunks/onboarding.mjs +0 -385
- package/dist/chunks/package.mjs +0 -3
- package/dist/chunks/paradigm.mjs +0 -74
- package/dist/chunks/permission-manager.mjs +0 -132
- package/dist/chunks/permissions.mjs +0 -265
- package/dist/chunks/persistence-manager.mjs +0 -794
- package/dist/chunks/persistence.mjs +0 -667
- package/dist/chunks/platform.mjs +0 -391
- package/dist/chunks/plugin.mjs +0 -1936
- package/dist/chunks/powershell.mjs +0 -213
- package/dist/chunks/prompts.mjs +0 -241
- package/dist/chunks/providers.mjs +0 -260
- package/dist/chunks/quick-actions.mjs +0 -320
- package/dist/chunks/quick-provider.mjs +0 -682
- package/dist/chunks/quick-setup.mjs +0 -412
- package/dist/chunks/remote.mjs +0 -497
- package/dist/chunks/session.mjs +0 -878
- package/dist/chunks/sessions.mjs +0 -106
- package/dist/chunks/silent-updater.mjs +0 -396
- package/dist/chunks/simple-config.mjs +0 -98
- package/dist/chunks/skill.mjs +0 -117
- package/dist/chunks/skill2.mjs +0 -9003
- package/dist/chunks/skills-sync.mjs +0 -6460
- package/dist/chunks/skills.mjs +0 -567
- package/dist/chunks/slash-commands.mjs +0 -207
- package/dist/chunks/smart-defaults.mjs +0 -412
- package/dist/chunks/smart-guide.mjs +0 -194
- package/dist/chunks/startup.mjs +0 -487
- package/dist/chunks/stats.mjs +0 -410
- package/dist/chunks/status.mjs +0 -289
- package/dist/chunks/team.mjs +0 -63
- package/dist/chunks/thinking.mjs +0 -626
- package/dist/chunks/trace.mjs +0 -57
- package/dist/chunks/uninstall.mjs +0 -849
- package/dist/chunks/update.mjs +0 -167
- package/dist/chunks/upgrade-manager.mjs +0 -204
- package/dist/chunks/version-checker.mjs +0 -881
- package/dist/chunks/vim.mjs +0 -903
- package/dist/chunks/windows.mjs +0 -14
- package/dist/chunks/workflows.mjs +0 -633
- package/dist/chunks/wsl.mjs +0 -129
- package/dist/chunks/zero-config.mjs +0 -374
- package/dist/chunks/zsh.mjs +0 -182
- package/dist/cli.d.mts +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.mjs +0 -2199
- package/dist/i18n/locales/en/agent-teams.json +0 -18
- package/dist/i18n/locales/en/agentBrowser.json +0 -79
- package/dist/i18n/locales/en/agents.json +0 -135
- package/dist/i18n/locales/en/api.json +0 -63
- package/dist/i18n/locales/en/ccjk-agents.json +0 -33
- package/dist/i18n/locales/en/ccjk-all.json +0 -23
- package/dist/i18n/locales/en/ccjk-skills.json +0 -22
- package/dist/i18n/locales/en/ccjk.json +0 -276
- package/dist/i18n/locales/en/ccr.json +0 -65
- package/dist/i18n/locales/en/claude-md.json +0 -73
- package/dist/i18n/locales/en/cli.json +0 -152
- package/dist/i18n/locales/en/cloud-setup.json +0 -31
- package/dist/i18n/locales/en/cloud-sync.json +0 -147
- package/dist/i18n/locales/en/cloud.json +0 -40
- package/dist/i18n/locales/en/cloudPlugins.json +0 -118
- package/dist/i18n/locales/en/codex.json +0 -127
- package/dist/i18n/locales/en/cometix.json +0 -29
- package/dist/i18n/locales/en/common.json +0 -68
- package/dist/i18n/locales/en/config.json +0 -108
- package/dist/i18n/locales/en/configuration.json +0 -226
- package/dist/i18n/locales/en/context.json +0 -85
- package/dist/i18n/locales/en/dashboard.json +0 -78
- package/dist/i18n/locales/en/errors.json +0 -26
- package/dist/i18n/locales/en/evolution.json +0 -54
- package/dist/i18n/locales/en/hooks.json +0 -74
- package/dist/i18n/locales/en/hooksSync.json +0 -133
- package/dist/i18n/locales/en/installation.json +0 -83
- package/dist/i18n/locales/en/interview.json +0 -104
- package/dist/i18n/locales/en/language.json +0 -19
- package/dist/i18n/locales/en/lsp.json +0 -78
- package/dist/i18n/locales/en/marketplace.json +0 -116
- package/dist/i18n/locales/en/mcp.json +0 -178
- package/dist/i18n/locales/en/memory.json +0 -92
- package/dist/i18n/locales/en/menu.json +0 -143
- package/dist/i18n/locales/en/multi-config.json +0 -79
- package/dist/i18n/locales/en/notification.json +0 -307
- package/dist/i18n/locales/en/permissions.json +0 -95
- package/dist/i18n/locales/en/persistence.json +0 -127
- package/dist/i18n/locales/en/plugins.json +0 -146
- package/dist/i18n/locales/en/quick-actions.json +0 -78
- package/dist/i18n/locales/en/registry.json +0 -54
- package/dist/i18n/locales/en/remote.json +0 -93
- package/dist/i18n/locales/en/sandbox.json +0 -44
- package/dist/i18n/locales/en/setup.json +0 -44
- package/dist/i18n/locales/en/shencha.json +0 -14
- package/dist/i18n/locales/en/skills.json +0 -100
- package/dist/i18n/locales/en/skillsSync.json +0 -74
- package/dist/i18n/locales/en/smartGuide.json +0 -49
- package/dist/i18n/locales/en/stats.json +0 -20
- package/dist/i18n/locales/en/subagent.json +0 -69
- package/dist/i18n/locales/en/superpowers.json +0 -117
- package/dist/i18n/locales/en/team.json +0 -7
- package/dist/i18n/locales/en/thinking.json +0 -65
- package/dist/i18n/locales/en/tools.json +0 -42
- package/dist/i18n/locales/en/uninstall.json +0 -56
- package/dist/i18n/locales/en/updater.json +0 -29
- package/dist/i18n/locales/en/vim.json +0 -169
- package/dist/i18n/locales/en/workflow.json +0 -55
- package/dist/i18n/locales/en/workspace.json +0 -108
- package/dist/i18n/locales/zh-CN/agent-teams.json +0 -18
- package/dist/i18n/locales/zh-CN/agentBrowser.json +0 -79
- package/dist/i18n/locales/zh-CN/agents.json +0 -135
- package/dist/i18n/locales/zh-CN/api.json +0 -63
- package/dist/i18n/locales/zh-CN/ccjk-agents.json +0 -33
- package/dist/i18n/locales/zh-CN/ccjk-all.json +0 -23
- package/dist/i18n/locales/zh-CN/ccjk-skills.json +0 -22
- package/dist/i18n/locales/zh-CN/ccjk.json +0 -276
- package/dist/i18n/locales/zh-CN/ccr.json +0 -65
- package/dist/i18n/locales/zh-CN/claude-md.json +0 -73
- package/dist/i18n/locales/zh-CN/cli.json +0 -152
- package/dist/i18n/locales/zh-CN/cloud-setup.json +0 -31
- package/dist/i18n/locales/zh-CN/cloud-sync.json +0 -147
- package/dist/i18n/locales/zh-CN/cloud.json +0 -40
- package/dist/i18n/locales/zh-CN/cloudPlugins.json +0 -118
- package/dist/i18n/locales/zh-CN/codex.json +0 -127
- package/dist/i18n/locales/zh-CN/cometix.json +0 -29
- package/dist/i18n/locales/zh-CN/common.json +0 -68
- package/dist/i18n/locales/zh-CN/config.json +0 -108
- package/dist/i18n/locales/zh-CN/configuration.json +0 -224
- package/dist/i18n/locales/zh-CN/context.json +0 -85
- package/dist/i18n/locales/zh-CN/dashboard.json +0 -78
- package/dist/i18n/locales/zh-CN/errors.json +0 -26
- package/dist/i18n/locales/zh-CN/evolution.json +0 -54
- package/dist/i18n/locales/zh-CN/hooks.json +0 -74
- package/dist/i18n/locales/zh-CN/hooksSync.json +0 -133
- package/dist/i18n/locales/zh-CN/installation.json +0 -83
- package/dist/i18n/locales/zh-CN/interview.json +0 -104
- package/dist/i18n/locales/zh-CN/language.json +0 -19
- package/dist/i18n/locales/zh-CN/lsp.json +0 -78
- package/dist/i18n/locales/zh-CN/marketplace.json +0 -116
- package/dist/i18n/locales/zh-CN/mcp.json +0 -178
- package/dist/i18n/locales/zh-CN/memory.json +0 -92
- package/dist/i18n/locales/zh-CN/menu.json +0 -143
- package/dist/i18n/locales/zh-CN/multi-config.json +0 -79
- package/dist/i18n/locales/zh-CN/notification.json +0 -307
- package/dist/i18n/locales/zh-CN/permissions.json +0 -95
- package/dist/i18n/locales/zh-CN/persistence.json +0 -127
- package/dist/i18n/locales/zh-CN/plugins.json +0 -146
- package/dist/i18n/locales/zh-CN/quick-actions.json +0 -78
- package/dist/i18n/locales/zh-CN/registry.json +0 -54
- package/dist/i18n/locales/zh-CN/remote.json +0 -93
- package/dist/i18n/locales/zh-CN/sandbox.json +0 -44
- package/dist/i18n/locales/zh-CN/setup.json +0 -44
- package/dist/i18n/locales/zh-CN/shencha.json +0 -14
- package/dist/i18n/locales/zh-CN/skills.json +0 -100
- package/dist/i18n/locales/zh-CN/skillsSync.json +0 -74
- package/dist/i18n/locales/zh-CN/smartGuide.json +0 -49
- package/dist/i18n/locales/zh-CN/stats.json +0 -20
- package/dist/i18n/locales/zh-CN/subagent.json +0 -69
- package/dist/i18n/locales/zh-CN/superpowers.json +0 -117
- package/dist/i18n/locales/zh-CN/team.json +0 -7
- package/dist/i18n/locales/zh-CN/thinking.json +0 -65
- package/dist/i18n/locales/zh-CN/tools.json +0 -42
- package/dist/i18n/locales/zh-CN/uninstall.json +0 -56
- package/dist/i18n/locales/zh-CN/updater.json +0 -29
- package/dist/i18n/locales/zh-CN/vim.json +0 -169
- package/dist/i18n/locales/zh-CN/workflow.json +0 -55
- package/dist/i18n/locales/zh-CN/workspace.json +0 -108
- package/dist/index.d.mts +0 -5295
- package/dist/index.d.ts +0 -5295
- package/dist/index.mjs +0 -4941
- package/dist/shared/ccjk.B364Fu0N.mjs +0 -1819
- package/dist/shared/ccjk.BAGoDD49.mjs +0 -36
- package/dist/shared/ccjk.BBtCGd_g.mjs +0 -899
- package/dist/shared/ccjk.BFQ7yr5S.mjs +0 -16
- package/dist/shared/ccjk.BFxsJM0k.mjs +0 -599
- package/dist/shared/ccjk.BIxuVL3_.mjs +0 -25
- package/dist/shared/ccjk.BRZ9ww8S.mjs +0 -142
- package/dist/shared/ccjk.BoApaI4j.mjs +0 -28
- package/dist/shared/ccjk.BrPUmTqm.mjs +0 -266
- package/dist/shared/ccjk.BtB1e5jm.mjs +0 -171
- package/dist/shared/ccjk.BwfbSKN2.mjs +0 -1051
- package/dist/shared/ccjk.BxSmJ8B7.mjs +0 -243
- package/dist/shared/ccjk.Bx_rmYfN.mjs +0 -69
- package/dist/shared/ccjk.C2jHOZVP.mjs +0 -52
- package/dist/shared/ccjk.CL4Yat0G.mjs +0 -303
- package/dist/shared/ccjk.COweQ1RR.mjs +0 -5
- package/dist/shared/ccjk.CePkJq2S.mjs +0 -223
- package/dist/shared/ccjk.CfKKcvWy.mjs +0 -126
- package/dist/shared/ccjk.Cjgrln_h.mjs +0 -297
- package/dist/shared/ccjk.Cjj8SVrn.mjs +0 -54
- package/dist/shared/ccjk.CxpGa6MC.mjs +0 -2724
- package/dist/shared/ccjk.D5MFQT7w.mjs +0 -400
- package/dist/shared/ccjk.D6ycHbak.mjs +0 -270
- package/dist/shared/ccjk.D8ZLYSZZ.mjs +0 -299
- package/dist/shared/ccjk.DG_o24cZ.mjs +0 -88
- package/dist/shared/ccjk.DLLw-h4Y.mjs +0 -460
- package/dist/shared/ccjk.DOwtZMk8.mjs +0 -4019
- package/dist/shared/ccjk.DS7UESmF.mjs +0 -2451
- package/dist/shared/ccjk.DTdjs-qK.mjs +0 -1447
- package/dist/shared/ccjk.DXRAZcix.mjs +0 -66
- package/dist/shared/ccjk.DsYaCCx4.mjs +0 -317
- package/dist/shared/ccjk.J8YiPsOw.mjs +0 -259
- package/dist/shared/ccjk.KfSWcGlE.mjs +0 -38
- package/dist/shared/ccjk.RyizuzOI.mjs +0 -21
- package/dist/shared/ccjk.SPoXMvZD.mjs +0 -1242
- package/dist/shared/ccjk.T_cX87dY.mjs +0 -15
- package/dist/shared/ccjk.UIvifqNE.mjs +0 -1486
- package/dist/shared/ccjk._dESH4Rk.mjs +0 -111
- package/dist/shared/ccjk.bQ7Dh1g4.mjs +0 -249
- package/dist/shared/ccjk.c-ETfBZ_.mjs +0 -617
- package/dist/shared/ccjk.gDEDGD_t.mjs +0 -38
- package/dist/shared/ccjk.hoqrwWdN.mjs +0 -333
- package/dist/shared/ccjk.waa2ikKJ.mjs +0 -351
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'node:fs';
|
|
2
|
-
import { glob } from 'tinyglobby';
|
|
3
|
-
import { j as join } from './ccjk.bQ7Dh1g4.mjs';
|
|
4
|
-
|
|
5
|
-
const PARADIGMS = [
|
|
6
|
-
{
|
|
7
|
-
type: "monorepo",
|
|
8
|
-
name: "Monorepo",
|
|
9
|
-
description: "Multi-package repository (pnpm workspace, Turborepo, Nx)",
|
|
10
|
-
indicators: ["pnpm-workspace.yaml", "turbo.json", "nx.json", "lerna.json"],
|
|
11
|
-
patterns: [
|
|
12
|
-
{ pattern: "packages/*/src/**/*.ts", role: "source", priority: 90, description: "Package source" },
|
|
13
|
-
{ pattern: "apps/*/src/**/*.ts", role: "source", priority: 90, description: "App source" },
|
|
14
|
-
{ pattern: "packages/*/test/**/*.test.ts", role: "test", priority: 80, description: "Package tests" },
|
|
15
|
-
{ pattern: "**/package.json", role: "config", priority: 100, description: "Package configs" }
|
|
16
|
-
],
|
|
17
|
-
conventions: {
|
|
18
|
-
sourceDir: "packages/*/src",
|
|
19
|
-
testDir: "packages/*/test",
|
|
20
|
-
configDir: ".",
|
|
21
|
-
buildDir: "packages/*/dist"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
type: "fullstack",
|
|
26
|
-
name: "Full-Stack",
|
|
27
|
-
description: "Frontend + Backend in one repo",
|
|
28
|
-
indicators: ["client/", "server/", "frontend/", "backend/"],
|
|
29
|
-
patterns: [
|
|
30
|
-
{ pattern: "client/src/**/*.{ts,tsx}", role: "source", priority: 90, description: "Frontend source" },
|
|
31
|
-
{ pattern: "server/src/**/*.ts", role: "source", priority: 90, description: "Backend source" },
|
|
32
|
-
{ pattern: "shared/**/*.ts", role: "source", priority: 85, description: "Shared code" },
|
|
33
|
-
{ pattern: "**/*.test.ts", role: "test", priority: 80, description: "Tests" }
|
|
34
|
-
],
|
|
35
|
-
conventions: {
|
|
36
|
-
sourceDir: "src",
|
|
37
|
-
testDir: "test",
|
|
38
|
-
configDir: ".",
|
|
39
|
-
buildDir: "dist"
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
type: "frontend",
|
|
44
|
-
name: "Frontend",
|
|
45
|
-
description: "React, Vue, Angular, etc.",
|
|
46
|
-
indicators: ["src/components/", "src/pages/", "src/views/", "public/", "vite.config.ts", "next.config.js"],
|
|
47
|
-
patterns: [
|
|
48
|
-
{ pattern: "src/components/**/*.{tsx,vue}", role: "source", priority: 95, description: "Components" },
|
|
49
|
-
{ pattern: "src/pages/**/*.{tsx,vue}", role: "source", priority: 90, description: "Pages" },
|
|
50
|
-
{ pattern: "src/hooks/**/*.ts", role: "source", priority: 85, description: "Hooks" },
|
|
51
|
-
{ pattern: "src/utils/**/*.ts", role: "source", priority: 80, description: "Utils" },
|
|
52
|
-
{ pattern: "src/**/*.test.{ts,tsx}", role: "test", priority: 80, description: "Tests" },
|
|
53
|
-
{ pattern: "public/**/*", role: "assets", priority: 60, description: "Static assets" }
|
|
54
|
-
],
|
|
55
|
-
conventions: {
|
|
56
|
-
sourceDir: "src",
|
|
57
|
-
testDir: "src",
|
|
58
|
-
configDir: ".",
|
|
59
|
-
buildDir: "dist"
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
type: "backend",
|
|
64
|
-
name: "Backend",
|
|
65
|
-
description: "Node.js API, Express, Fastify, etc.",
|
|
66
|
-
indicators: ["src/routes/", "src/controllers/", "src/models/", "src/api/"],
|
|
67
|
-
patterns: [
|
|
68
|
-
{ pattern: "src/routes/**/*.ts", role: "source", priority: 95, description: "Routes" },
|
|
69
|
-
{ pattern: "src/controllers/**/*.ts", role: "source", priority: 90, description: "Controllers" },
|
|
70
|
-
{ pattern: "src/models/**/*.ts", role: "source", priority: 90, description: "Models" },
|
|
71
|
-
{ pattern: "src/middleware/**/*.ts", role: "source", priority: 85, description: "Middleware" },
|
|
72
|
-
{ pattern: "src/services/**/*.ts", role: "source", priority: 85, description: "Services" },
|
|
73
|
-
{ pattern: "test/**/*.test.ts", role: "test", priority: 80, description: "Tests" }
|
|
74
|
-
],
|
|
75
|
-
conventions: {
|
|
76
|
-
sourceDir: "src",
|
|
77
|
-
testDir: "test",
|
|
78
|
-
configDir: ".",
|
|
79
|
-
buildDir: "dist"
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
type: "library",
|
|
84
|
-
name: "Library",
|
|
85
|
-
description: "Reusable library or package",
|
|
86
|
-
indicators: ["src/index.ts", "lib/", "build.config.ts"],
|
|
87
|
-
patterns: [
|
|
88
|
-
{ pattern: "src/**/*.ts", role: "source", priority: 90, description: "Source" },
|
|
89
|
-
{ pattern: "test/**/*.test.ts", role: "test", priority: 80, description: "Tests" },
|
|
90
|
-
{ pattern: "types/**/*.d.ts", role: "types", priority: 85, description: "Type definitions" }
|
|
91
|
-
],
|
|
92
|
-
conventions: {
|
|
93
|
-
sourceDir: "src",
|
|
94
|
-
testDir: "test",
|
|
95
|
-
configDir: ".",
|
|
96
|
-
buildDir: "dist"
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
type: "cli",
|
|
101
|
-
name: "CLI Tool",
|
|
102
|
-
description: "Command-line interface tool",
|
|
103
|
-
indicators: ["src/cli.ts", "src/commands/", "bin/"],
|
|
104
|
-
patterns: [
|
|
105
|
-
{ pattern: "src/commands/**/*.ts", role: "source", priority: 95, description: "Commands" },
|
|
106
|
-
{ pattern: "src/cli.ts", role: "source", priority: 100, description: "CLI entry" },
|
|
107
|
-
{ pattern: "src/utils/**/*.ts", role: "source", priority: 80, description: "Utils" },
|
|
108
|
-
{ pattern: "test/**/*.test.ts", role: "test", priority: 80, description: "Tests" }
|
|
109
|
-
],
|
|
110
|
-
conventions: {
|
|
111
|
-
sourceDir: "src",
|
|
112
|
-
testDir: "test",
|
|
113
|
-
configDir: ".",
|
|
114
|
-
buildDir: "dist"
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
];
|
|
118
|
-
class FsParadigm {
|
|
119
|
-
cache = /* @__PURE__ */ new Map();
|
|
120
|
-
/**
|
|
121
|
-
* Detect project paradigm
|
|
122
|
-
*/
|
|
123
|
-
async detect(projectRoot) {
|
|
124
|
-
const cached = this.cache.get(projectRoot);
|
|
125
|
-
if (cached) return cached;
|
|
126
|
-
const scores = await Promise.all(
|
|
127
|
-
PARADIGMS.map(async (paradigm) => ({
|
|
128
|
-
paradigm,
|
|
129
|
-
score: await this.scoreParadigm(paradigm, projectRoot)
|
|
130
|
-
}))
|
|
131
|
-
);
|
|
132
|
-
const best = scores.reduce((a, b) => b.score > a.score ? b : a);
|
|
133
|
-
const fileMap = await this.buildFileMap(best.paradigm, projectRoot);
|
|
134
|
-
const structure = {
|
|
135
|
-
paradigm: best.paradigm.type,
|
|
136
|
-
root: projectRoot,
|
|
137
|
-
conventions: best.paradigm.conventions,
|
|
138
|
-
fileMap,
|
|
139
|
-
confidence: best.score
|
|
140
|
-
};
|
|
141
|
-
this.cache.set(projectRoot, structure);
|
|
142
|
-
return structure;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Score how well a paradigm matches the project
|
|
146
|
-
*/
|
|
147
|
-
async scoreParadigm(paradigm, projectRoot) {
|
|
148
|
-
let score = 0;
|
|
149
|
-
for (const indicator of paradigm.indicators) {
|
|
150
|
-
const exists = await this.checkPath(projectRoot, indicator);
|
|
151
|
-
if (exists) {
|
|
152
|
-
score += 30;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
for (const pattern of paradigm.patterns) {
|
|
156
|
-
const files = await glob([pattern.pattern], {
|
|
157
|
-
cwd: projectRoot,
|
|
158
|
-
absolute: false,
|
|
159
|
-
ignore: ["**/node_modules/**", "**/dist/**", "**/.git/**"]
|
|
160
|
-
});
|
|
161
|
-
if (files.length > 0) {
|
|
162
|
-
score += Math.min(files.length * 2, 20);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
return Math.min(score, 100);
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Build file map for paradigm
|
|
169
|
-
*/
|
|
170
|
-
async buildFileMap(paradigm, projectRoot) {
|
|
171
|
-
const fileMap = /* @__PURE__ */ new Map();
|
|
172
|
-
for (const pattern of paradigm.patterns) {
|
|
173
|
-
const files = await glob([pattern.pattern], {
|
|
174
|
-
cwd: projectRoot,
|
|
175
|
-
absolute: true,
|
|
176
|
-
ignore: ["**/node_modules/**", "**/dist/**", "**/.git/**"]
|
|
177
|
-
});
|
|
178
|
-
const existing = fileMap.get(pattern.role) || [];
|
|
179
|
-
fileMap.set(pattern.role, [...existing, ...files]);
|
|
180
|
-
}
|
|
181
|
-
return fileMap;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Check if path exists (supports glob patterns)
|
|
185
|
-
*/
|
|
186
|
-
async checkPath(root, pattern) {
|
|
187
|
-
if (!pattern.includes("*")) {
|
|
188
|
-
return existsSync(join(root, pattern));
|
|
189
|
-
}
|
|
190
|
-
const files = await glob([pattern], {
|
|
191
|
-
cwd: root,
|
|
192
|
-
absolute: false,
|
|
193
|
-
ignore: ["**/node_modules/**"]
|
|
194
|
-
});
|
|
195
|
-
return files.length > 0;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Get files by role
|
|
199
|
-
*/
|
|
200
|
-
getFilesByRole(structure, role) {
|
|
201
|
-
return structure.fileMap.get(role) || [];
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Get paradigm definition
|
|
205
|
-
*/
|
|
206
|
-
getParadigm(type) {
|
|
207
|
-
return PARADIGMS.find((p) => p.type === type);
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Clear cache
|
|
211
|
-
*/
|
|
212
|
-
clearCache() {
|
|
213
|
-
this.cache.clear();
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Format structure for display
|
|
217
|
-
*/
|
|
218
|
-
formatStructure(structure) {
|
|
219
|
-
const lines = [];
|
|
220
|
-
lines.push(`Paradigm: ${structure.paradigm} (${structure.confidence}% confidence)`);
|
|
221
|
-
lines.push(`Root: ${structure.root}`);
|
|
222
|
-
lines.push("");
|
|
223
|
-
lines.push("Conventions:");
|
|
224
|
-
if (structure.conventions.sourceDir) {
|
|
225
|
-
lines.push(` Source: ${structure.conventions.sourceDir}`);
|
|
226
|
-
}
|
|
227
|
-
if (structure.conventions.testDir) {
|
|
228
|
-
lines.push(` Test: ${structure.conventions.testDir}`);
|
|
229
|
-
}
|
|
230
|
-
if (structure.conventions.buildDir) {
|
|
231
|
-
lines.push(` Build: ${structure.conventions.buildDir}`);
|
|
232
|
-
}
|
|
233
|
-
lines.push("");
|
|
234
|
-
lines.push("File Map:");
|
|
235
|
-
for (const [role, files] of structure.fileMap) {
|
|
236
|
-
lines.push(` ${role}: ${files.length} files`);
|
|
237
|
-
}
|
|
238
|
-
return lines.join("\n");
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
const fsParadigm = new FsParadigm();
|
|
242
|
-
|
|
243
|
-
export { fsParadigm as f };
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import process__default from 'node:process';
|
|
2
|
-
import path__default from 'node:path';
|
|
3
|
-
import fs__default, { promises } from 'node:fs';
|
|
4
|
-
|
|
5
|
-
const resolvePath = (cwd, sourcePath, destinationPath) => {
|
|
6
|
-
sourcePath = path__default.resolve(cwd, sourcePath);
|
|
7
|
-
destinationPath = path__default.resolve(cwd, destinationPath);
|
|
8
|
-
|
|
9
|
-
return {
|
|
10
|
-
sourcePath,
|
|
11
|
-
destinationPath,
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const validatePathsExist = (sourcePath, destinationPath, suffix = 'Path') => {
|
|
16
|
-
if (!sourcePath || !destinationPath) {
|
|
17
|
-
throw new TypeError(`\`source${suffix}\` and \`destination${suffix}\` required`);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const validateSameDirectory = (source, destination) => {
|
|
22
|
-
if (path__default.dirname(source) !== path__default.dirname(destination)) {
|
|
23
|
-
throw new Error('`source` and `destination` must be in the same directory');
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const _moveFile = async (sourcePath, destinationPath, {overwrite = true, cwd = process__default.cwd(), directoryMode, validateDirectory = false} = {}) => {
|
|
28
|
-
if (cwd) {
|
|
29
|
-
({sourcePath, destinationPath} = resolvePath(cwd, sourcePath, destinationPath));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (validateDirectory) {
|
|
33
|
-
validateSameDirectory(sourcePath, destinationPath);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
if (!overwrite && fs__default.existsSync(destinationPath)) {
|
|
37
|
-
throw new Error(`The destination file exists: ${destinationPath}`);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
await promises.mkdir(path__default.dirname(destinationPath), {
|
|
41
|
-
recursive: true,
|
|
42
|
-
mode: directoryMode,
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
await promises.rename(sourcePath, destinationPath);
|
|
47
|
-
} catch (error) {
|
|
48
|
-
if (error.code === 'EXDEV') {
|
|
49
|
-
const stats = await promises.lstat(sourcePath);
|
|
50
|
-
if (stats.isSymbolicLink()) {
|
|
51
|
-
const target = await promises.readlink(sourcePath);
|
|
52
|
-
await promises.symlink(target, destinationPath);
|
|
53
|
-
await promises.unlink(sourcePath);
|
|
54
|
-
} else {
|
|
55
|
-
await promises.cp(sourcePath, destinationPath, {recursive: true, preserveTimestamps: true});
|
|
56
|
-
await promises.rm(sourcePath, {recursive: true});
|
|
57
|
-
}
|
|
58
|
-
} else {
|
|
59
|
-
throw error;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
async function moveFile(sourcePath, destinationPath, options) {
|
|
65
|
-
validatePathsExist(sourcePath, destinationPath);
|
|
66
|
-
return _moveFile(sourcePath, destinationPath, options);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export { moveFile as m };
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
function extractString(val, fallback, preferredLang = "en") {
|
|
2
|
-
if (val === void 0 || val === null) {
|
|
3
|
-
return fallback;
|
|
4
|
-
}
|
|
5
|
-
if (typeof val === "string") {
|
|
6
|
-
return val || fallback;
|
|
7
|
-
}
|
|
8
|
-
if (typeof val === "object") {
|
|
9
|
-
const preferred = val[preferredLang];
|
|
10
|
-
if (typeof preferred === "string" && preferred) {
|
|
11
|
-
return preferred;
|
|
12
|
-
}
|
|
13
|
-
const en = val.en || val["en-US"];
|
|
14
|
-
if (typeof en === "string" && en) {
|
|
15
|
-
return en;
|
|
16
|
-
}
|
|
17
|
-
const zhCN = val["zh-CN"] || val.zh || val["zh-Hans"];
|
|
18
|
-
if (typeof zhCN === "string" && zhCN) {
|
|
19
|
-
return zhCN;
|
|
20
|
-
}
|
|
21
|
-
const values = Object.values(val);
|
|
22
|
-
for (const v of values) {
|
|
23
|
-
if (typeof v === "string" && v) {
|
|
24
|
-
return v;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return fallback;
|
|
29
|
-
}
|
|
30
|
-
function extractDisplayName(val, isZh = false, fallback = "Unknown") {
|
|
31
|
-
return extractString(val, fallback, isZh ? "zh-CN" : "en");
|
|
32
|
-
}
|
|
33
|
-
function normalizeRecommendation(rec, preferredLang = "en") {
|
|
34
|
-
return {
|
|
35
|
-
...rec,
|
|
36
|
-
name: extractString(rec.name, rec.id || "Unknown", preferredLang),
|
|
37
|
-
description: extractString(rec.description, "No description available", preferredLang)
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
function normalizeRecommendations(recommendations, preferredLang = "en") {
|
|
41
|
-
return recommendations.map((rec) => normalizeRecommendation(rec, preferredLang));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const i18nHelpers = {
|
|
45
|
-
__proto__: null,
|
|
46
|
-
extractDisplayName: extractDisplayName,
|
|
47
|
-
extractString: extractString,
|
|
48
|
-
normalizeRecommendation: normalizeRecommendation,
|
|
49
|
-
normalizeRecommendations: normalizeRecommendations
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
export { extractDisplayName as a, normalizeRecommendations as b, extractString as e, i18nHelpers as i, normalizeRecommendation as n };
|
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
const PROVIDER_PRESETS = [
|
|
2
|
-
// === Official Anthropic ===
|
|
3
|
-
{
|
|
4
|
-
id: "anthropic",
|
|
5
|
-
name: "Anthropic (Official)",
|
|
6
|
-
nameZh: "Anthropic (\u5B98\u65B9)",
|
|
7
|
-
description: "Official Anthropic API - Best quality and reliability",
|
|
8
|
-
descriptionZh: "\u5B98\u65B9 Anthropic API - \u6700\u4F73\u8D28\u91CF\u548C\u7A33\u5B9A\u6027",
|
|
9
|
-
category: "official",
|
|
10
|
-
website: "https://console.anthropic.com",
|
|
11
|
-
requiresApiKey: true,
|
|
12
|
-
baseUrl: "https://api.anthropic.com",
|
|
13
|
-
models: [
|
|
14
|
-
"claude-sonnet-4-20250514",
|
|
15
|
-
"claude-opus-4-20250514",
|
|
16
|
-
"claude-3-5-sonnet-20241022",
|
|
17
|
-
"claude-3-5-haiku-20241022"
|
|
18
|
-
],
|
|
19
|
-
defaultModel: "claude-sonnet-4-20250514",
|
|
20
|
-
features: ["chat", "vision", "tools", "streaming", "thinking", "code"],
|
|
21
|
-
instructions: {
|
|
22
|
-
en: "Get your API key from https://console.anthropic.com/settings/keys",
|
|
23
|
-
zh: "\u4ECE https://console.anthropic.com/settings/keys \u83B7\u53D6 API \u5BC6\u94A5"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
// === OpenAI-Compatible Providers ===
|
|
27
|
-
{
|
|
28
|
-
id: "302ai",
|
|
29
|
-
name: "302.AI",
|
|
30
|
-
nameZh: "302.AI",
|
|
31
|
-
description: "Multi-model API platform with Claude support",
|
|
32
|
-
descriptionZh: "\u591A\u6A21\u578B API \u5E73\u53F0\uFF0C\u652F\u6301 Claude",
|
|
33
|
-
category: "openai-compatible",
|
|
34
|
-
website: "https://302.ai",
|
|
35
|
-
requiresApiKey: true,
|
|
36
|
-
baseUrl: "https://api.302.ai/v1",
|
|
37
|
-
models: [
|
|
38
|
-
"claude-sonnet-4-20250514",
|
|
39
|
-
"claude-3-5-sonnet-20241022",
|
|
40
|
-
"gpt-4o",
|
|
41
|
-
"gpt-4-turbo"
|
|
42
|
-
],
|
|
43
|
-
defaultModel: "claude-sonnet-4-20250514",
|
|
44
|
-
features: ["chat", "vision", "tools", "streaming", "code"],
|
|
45
|
-
instructions: {
|
|
46
|
-
en: "Register at 302.ai and get your API key from dashboard",
|
|
47
|
-
zh: "\u5728 302.ai \u6CE8\u518C\u5E76\u4ECE\u63A7\u5236\u53F0\u83B7\u53D6 API \u5BC6\u94A5"
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
id: "openrouter",
|
|
52
|
-
name: "OpenRouter",
|
|
53
|
-
nameZh: "OpenRouter",
|
|
54
|
-
description: "Unified API for multiple AI models",
|
|
55
|
-
descriptionZh: "\u7EDF\u4E00\u591A\u6A21\u578B API \u63A5\u53E3",
|
|
56
|
-
category: "openai-compatible",
|
|
57
|
-
website: "https://openrouter.ai",
|
|
58
|
-
requiresApiKey: true,
|
|
59
|
-
baseUrl: "https://openrouter.ai/api/v1",
|
|
60
|
-
models: [
|
|
61
|
-
"anthropic/claude-sonnet-4",
|
|
62
|
-
"anthropic/claude-3.5-sonnet",
|
|
63
|
-
"anthropic/claude-3.7-sonnet:thinking",
|
|
64
|
-
"google/gemini-2.5-pro-preview"
|
|
65
|
-
],
|
|
66
|
-
defaultModel: "anthropic/claude-sonnet-4",
|
|
67
|
-
features: ["chat", "vision", "tools", "streaming", "thinking", "code"],
|
|
68
|
-
transformer: {
|
|
69
|
-
use: ["openrouter"]
|
|
70
|
-
},
|
|
71
|
-
instructions: {
|
|
72
|
-
en: "Get your API key from https://openrouter.ai/keys",
|
|
73
|
-
zh: "\u4ECE https://openrouter.ai/keys \u83B7\u53D6 API \u5BC6\u94A5"
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
// === Chinese Providers ===
|
|
77
|
-
{
|
|
78
|
-
id: "deepseek",
|
|
79
|
-
name: "DeepSeek",
|
|
80
|
-
nameZh: "DeepSeek \u6DF1\u5EA6\u6C42\u7D22",
|
|
81
|
-
description: "High-performance Chinese AI with reasoning capabilities",
|
|
82
|
-
descriptionZh: "\u9AD8\u6027\u80FD\u56FD\u4EA7 AI\uFF0C\u652F\u6301\u6DF1\u5EA6\u63A8\u7406",
|
|
83
|
-
category: "chinese",
|
|
84
|
-
website: "https://platform.deepseek.com",
|
|
85
|
-
requiresApiKey: true,
|
|
86
|
-
baseUrl: "https://api.deepseek.com",
|
|
87
|
-
models: ["deepseek-chat", "deepseek-reasoner"],
|
|
88
|
-
defaultModel: "deepseek-chat",
|
|
89
|
-
features: ["chat", "tools", "streaming", "thinking", "code"],
|
|
90
|
-
transformer: {
|
|
91
|
-
"use": ["deepseek"],
|
|
92
|
-
"deepseek-chat": { use: ["tooluse"] }
|
|
93
|
-
},
|
|
94
|
-
instructions: {
|
|
95
|
-
en: "Get your API key from https://platform.deepseek.com/api_keys",
|
|
96
|
-
zh: "\u4ECE https://platform.deepseek.com/api_keys \u83B7\u53D6 API \u5BC6\u94A5"
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
id: "qwen",
|
|
101
|
-
name: "Qwen (Alibaba)",
|
|
102
|
-
nameZh: "\u901A\u4E49\u5343\u95EE (\u963F\u91CC\u5DF4\u5DF4)",
|
|
103
|
-
description: "Alibaba Cloud Qwen models via DashScope",
|
|
104
|
-
descriptionZh: "\u963F\u91CC\u4E91\u901A\u4E49\u5343\u95EE\u5927\u6A21\u578B",
|
|
105
|
-
category: "chinese",
|
|
106
|
-
website: "https://dashscope.console.aliyun.com",
|
|
107
|
-
requiresApiKey: true,
|
|
108
|
-
baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
109
|
-
models: ["qwen3-coder-plus", "qwen-max", "qwen-turbo"],
|
|
110
|
-
defaultModel: "qwen3-coder-plus",
|
|
111
|
-
features: ["chat", "vision", "tools", "streaming", "code"],
|
|
112
|
-
transformer: {
|
|
113
|
-
"use": [["maxtoken", { max_tokens: 65536 }]],
|
|
114
|
-
"qwen3-coder-plus": { use: ["enhancetool"] }
|
|
115
|
-
},
|
|
116
|
-
instructions: {
|
|
117
|
-
en: "Get your API key from Alibaba Cloud DashScope console",
|
|
118
|
-
zh: "\u4ECE\u963F\u91CC\u4E91 DashScope \u63A7\u5236\u53F0\u83B7\u53D6 API \u5BC6\u94A5"
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
id: "siliconflow",
|
|
123
|
-
name: "SiliconFlow",
|
|
124
|
-
nameZh: "SiliconFlow \u7845\u57FA\u6D41\u52A8",
|
|
125
|
-
description: "High-speed inference for multiple models",
|
|
126
|
-
descriptionZh: "\u9AD8\u901F\u591A\u6A21\u578B\u63A8\u7406\u5E73\u53F0",
|
|
127
|
-
category: "chinese",
|
|
128
|
-
website: "https://siliconflow.cn",
|
|
129
|
-
requiresApiKey: true,
|
|
130
|
-
baseUrl: "https://api.siliconflow.cn/v1",
|
|
131
|
-
models: ["moonshotai/Kimi-K2-Instruct", "deepseek-ai/DeepSeek-V3"],
|
|
132
|
-
defaultModel: "moonshotai/Kimi-K2-Instruct",
|
|
133
|
-
features: ["chat", "tools", "streaming", "code"],
|
|
134
|
-
transformer: {
|
|
135
|
-
use: [["maxtoken", { max_tokens: 16384 }]]
|
|
136
|
-
},
|
|
137
|
-
instructions: {
|
|
138
|
-
en: "Get your API key from https://cloud.siliconflow.cn",
|
|
139
|
-
zh: "\u4ECE https://cloud.siliconflow.cn \u83B7\u53D6 API \u5BC6\u94A5"
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
id: "modelscope",
|
|
144
|
-
name: "ModelScope",
|
|
145
|
-
nameZh: "ModelScope \u9B54\u642D",
|
|
146
|
-
description: "Alibaba ModelScope inference platform",
|
|
147
|
-
descriptionZh: "\u963F\u91CC\u5DF4\u5DF4\u9B54\u642D\u63A8\u7406\u5E73\u53F0",
|
|
148
|
-
category: "chinese",
|
|
149
|
-
website: "https://modelscope.cn",
|
|
150
|
-
requiresApiKey: true,
|
|
151
|
-
baseUrl: "https://api-inference.modelscope.cn/v1",
|
|
152
|
-
models: [
|
|
153
|
-
"Qwen/Qwen3-Coder-480B-A35B-Instruct",
|
|
154
|
-
"Qwen/Qwen3-235B-A22B-Thinking-2507",
|
|
155
|
-
"ZhipuAI/GLM-4.5"
|
|
156
|
-
],
|
|
157
|
-
defaultModel: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
|
|
158
|
-
features: ["chat", "tools", "streaming", "thinking", "code"],
|
|
159
|
-
transformer: {
|
|
160
|
-
"use": [["maxtoken", { max_tokens: 65536 }]],
|
|
161
|
-
"Qwen/Qwen3-Coder-480B-A35B-Instruct": { use: ["enhancetool"] },
|
|
162
|
-
"Qwen/Qwen3-235B-A22B-Thinking-2507": { use: ["reasoning"] }
|
|
163
|
-
},
|
|
164
|
-
instructions: {
|
|
165
|
-
en: "Get your API key from ModelScope console",
|
|
166
|
-
zh: "\u4ECE\u9B54\u642D\u63A7\u5236\u53F0\u83B7\u53D6 API \u5BC6\u94A5"
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
id: "volcengine",
|
|
171
|
-
name: "Volcengine (ByteDance)",
|
|
172
|
-
nameZh: "\u706B\u5C71\u5F15\u64CE (\u5B57\u8282\u8DF3\u52A8)",
|
|
173
|
-
description: "ByteDance AI platform with DeepSeek models",
|
|
174
|
-
descriptionZh: "\u5B57\u8282\u8DF3\u52A8 AI \u5E73\u53F0\uFF0C\u652F\u6301 DeepSeek",
|
|
175
|
-
category: "chinese",
|
|
176
|
-
website: "https://console.volcengine.com",
|
|
177
|
-
requiresApiKey: true,
|
|
178
|
-
baseUrl: "https://ark.cn-beijing.volces.com/api/v3",
|
|
179
|
-
models: ["deepseek-v3-250324", "deepseek-r1-250528"],
|
|
180
|
-
defaultModel: "deepseek-v3-250324",
|
|
181
|
-
features: ["chat", "tools", "streaming", "thinking", "code"],
|
|
182
|
-
transformer: {
|
|
183
|
-
use: ["deepseek"]
|
|
184
|
-
},
|
|
185
|
-
instructions: {
|
|
186
|
-
en: "Get your API key from Volcengine console",
|
|
187
|
-
zh: "\u4ECE\u706B\u5C71\u5F15\u64CE\u63A7\u5236\u53F0\u83B7\u53D6 API \u5BC6\u94A5"
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
id: "kimi",
|
|
192
|
-
name: "Kimi (Moonshot)",
|
|
193
|
-
nameZh: "Kimi (\u6708\u4E4B\u6697\u9762)",
|
|
194
|
-
description: "Moonshot AI with long context support",
|
|
195
|
-
descriptionZh: "\u6708\u4E4B\u6697\u9762 AI\uFF0C\u652F\u6301\u8D85\u957F\u4E0A\u4E0B\u6587",
|
|
196
|
-
category: "chinese",
|
|
197
|
-
website: "https://platform.moonshot.cn",
|
|
198
|
-
requiresApiKey: true,
|
|
199
|
-
baseUrl: "https://api.moonshot.cn/v1",
|
|
200
|
-
models: ["moonshot-v1-128k", "moonshot-v1-32k", "moonshot-v1-8k"],
|
|
201
|
-
defaultModel: "moonshot-v1-128k",
|
|
202
|
-
features: ["chat", "tools", "streaming", "code"],
|
|
203
|
-
instructions: {
|
|
204
|
-
en: "Get your API key from https://platform.moonshot.cn/console/api-keys",
|
|
205
|
-
zh: "\u4ECE https://platform.moonshot.cn/console/api-keys \u83B7\u53D6 API \u5BC6\u94A5"
|
|
206
|
-
}
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
id: "glm",
|
|
210
|
-
name: "GLM (Zhipu AI)",
|
|
211
|
-
nameZh: "GLM (\u667A\u8C31 AI)",
|
|
212
|
-
description: "Zhipu AI ChatGLM models",
|
|
213
|
-
descriptionZh: "\u667A\u8C31 AI ChatGLM \u5927\u6A21\u578B",
|
|
214
|
-
category: "chinese",
|
|
215
|
-
website: "https://open.bigmodel.cn",
|
|
216
|
-
requiresApiKey: true,
|
|
217
|
-
baseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
218
|
-
models: ["glm-4-plus", "glm-4", "glm-4-flash"],
|
|
219
|
-
defaultModel: "glm-4-plus",
|
|
220
|
-
features: ["chat", "vision", "tools", "streaming", "code"],
|
|
221
|
-
instructions: {
|
|
222
|
-
en: "Get your API key from https://open.bigmodel.cn/usercenter/apikeys",
|
|
223
|
-
zh: "\u4ECE https://open.bigmodel.cn/usercenter/apikeys \u83B7\u53D6 API \u5BC6\u94A5"
|
|
224
|
-
}
|
|
225
|
-
},
|
|
226
|
-
// === Google Gemini ===
|
|
227
|
-
{
|
|
228
|
-
id: "gemini",
|
|
229
|
-
name: "Google Gemini",
|
|
230
|
-
nameZh: "Google Gemini",
|
|
231
|
-
description: "Google AI models with multimodal capabilities",
|
|
232
|
-
descriptionZh: "Google AI \u591A\u6A21\u6001\u6A21\u578B",
|
|
233
|
-
category: "openai-compatible",
|
|
234
|
-
website: "https://aistudio.google.com",
|
|
235
|
-
requiresApiKey: true,
|
|
236
|
-
baseUrl: "https://generativelanguage.googleapis.com/v1beta/models/",
|
|
237
|
-
models: ["gemini-2.5-flash", "gemini-2.5-pro", "gemini-pro"],
|
|
238
|
-
defaultModel: "gemini-2.5-flash",
|
|
239
|
-
features: ["chat", "vision", "tools", "streaming", "thinking", "code"],
|
|
240
|
-
transformer: {
|
|
241
|
-
use: ["gemini"]
|
|
242
|
-
},
|
|
243
|
-
instructions: {
|
|
244
|
-
en: "Get your API key from https://aistudio.google.com/app/apikey",
|
|
245
|
-
zh: "\u4ECE https://aistudio.google.com/app/apikey \u83B7\u53D6 API \u5BC6\u94A5"
|
|
246
|
-
}
|
|
247
|
-
},
|
|
248
|
-
// === Free Tier Providers ===
|
|
249
|
-
{
|
|
250
|
-
id: "groq",
|
|
251
|
-
name: "Groq",
|
|
252
|
-
nameZh: "Groq",
|
|
253
|
-
description: "Ultra-fast inference with free tier",
|
|
254
|
-
descriptionZh: "\u8D85\u5FEB\u63A8\u7406\uFF0C\u6709\u514D\u8D39\u989D\u5EA6",
|
|
255
|
-
category: "free",
|
|
256
|
-
website: "https://console.groq.com",
|
|
257
|
-
requiresApiKey: true,
|
|
258
|
-
baseUrl: "https://api.groq.com/openai/v1",
|
|
259
|
-
models: ["llama-3.3-70b-versatile", "mixtral-8x7b-32768"],
|
|
260
|
-
defaultModel: "llama-3.3-70b-versatile",
|
|
261
|
-
features: ["chat", "tools", "streaming", "code"],
|
|
262
|
-
instructions: {
|
|
263
|
-
en: "Get your free API key from https://console.groq.com/keys",
|
|
264
|
-
zh: "\u4ECE https://console.groq.com/keys \u83B7\u53D6\u514D\u8D39 API \u5BC6\u94A5"
|
|
265
|
-
}
|
|
266
|
-
},
|
|
267
|
-
// === Local Providers ===
|
|
268
|
-
{
|
|
269
|
-
id: "ollama",
|
|
270
|
-
name: "Ollama (Local)",
|
|
271
|
-
nameZh: "Ollama (\u672C\u5730)",
|
|
272
|
-
description: "Run AI models locally with Ollama",
|
|
273
|
-
descriptionZh: "\u4F7F\u7528 Ollama \u672C\u5730\u8FD0\u884C AI \u6A21\u578B",
|
|
274
|
-
category: "local",
|
|
275
|
-
website: "https://ollama.ai",
|
|
276
|
-
requiresApiKey: false,
|
|
277
|
-
baseUrl: "http://localhost:11434/v1",
|
|
278
|
-
models: ["llama3.2", "codellama", "qwen2.5-coder"],
|
|
279
|
-
defaultModel: "llama3.2",
|
|
280
|
-
features: ["chat", "streaming", "code"],
|
|
281
|
-
instructions: {
|
|
282
|
-
en: "Install Ollama from https://ollama.ai and run: ollama pull llama3.2",
|
|
283
|
-
zh: "\u4ECE https://ollama.ai \u5B89\u88C5 Ollama \u5E76\u8FD0\u884C: ollama pull llama3.2"
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
];
|
|
287
|
-
function getAllPresets() {
|
|
288
|
-
return PROVIDER_PRESETS;
|
|
289
|
-
}
|
|
290
|
-
function getPresetById(id) {
|
|
291
|
-
return PROVIDER_PRESETS.find((p) => p.id === id);
|
|
292
|
-
}
|
|
293
|
-
function getRecommendedPresets() {
|
|
294
|
-
const recommendedIds = ["anthropic", "302ai", "deepseek", "openrouter", "qwen"];
|
|
295
|
-
return recommendedIds.map((id) => getPresetById(id)).filter((p) => p !== void 0);
|
|
296
|
-
}
|
|
297
|
-
function getChinesePresets() {
|
|
298
|
-
return PROVIDER_PRESETS.filter(
|
|
299
|
-
(p) => p.category === "chinese" || p.id === "302ai"
|
|
300
|
-
);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
export { PROVIDER_PRESETS as P, getChinesePresets as a, getPresetById as b, getRecommendedPresets as c, getAllPresets as g };
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
function commonjsRequire(path) {
|
|
2
|
-
throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export { commonjsRequire as c };
|