Skip to content

Commit c1fdc7c

Browse files
committed
fix: align openclaw template replacement
1 parent a1711bf commit c1fdc7c

File tree

11 files changed

+129
-188
lines changed

11 files changed

+129
-188
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ccmam",
3-
"version": "3.3.14-beta.0",
3+
"version": "3.3.14-beta.1",
44
"private": true,
55
"description": "Manage Codex, Claude Code, Gemini CLI, and MCP API service provider configurations",
66
"scripts": {

packages/aicoding/bin/aicoding.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ function configureOpenClaw(apiKey) {
328328
ensureDir(path.dirname(openclawPath))
329329
ensureDir(path.dirname(modelsPath))
330330

331-
const providerKey = 'sub2api'
331+
const providerKey = 'gmn'
332332
const primaryModelId = 'gpt-5.3-codex'
333333
const secondaryModelId = 'gpt-5.2-codex'
334334

@@ -351,7 +351,19 @@ function configureOpenClaw(apiKey) {
351351
const openclawConfig = {
352352
models: {
353353
mode: 'merge',
354-
providers: {},
354+
providers: {
355+
[providerKey]: {
356+
baseUrl: GMN_BASE_URLS.openclaw,
357+
apiKey,
358+
api: 'openai-responses',
359+
headers: {
360+
'User-Agent': 'curl/8.0',
361+
'OpenAI-Beta': 'responses=v1',
362+
},
363+
authHeader: true,
364+
models: [createOpenClawModel(primaryModelId), createOpenClawModel(secondaryModelId)],
365+
},
366+
},
355367
},
356368
agents: {
357369
defaults: {

packages/aicoding/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@2ue/aicoding",
3-
"version": "3.3.14-beta.0",
3+
"version": "3.3.14-beta.1",
44
"description": "一键配置 GMN 到 Codex、OpenCode、OpenClaw",
55
"type": "module",
66
"bin": {

packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ccman",
3-
"version": "3.3.14-beta.0",
3+
"version": "3.3.14-beta.1",
44
"type": "module",
55
"description": "Manage Codex, Claude Code, Gemini CLI, OpenCode, OpenClaw, and MCP API service provider configurations",
66
"main": "./dist/index.js",

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ccman/core",
3-
"version": "3.3.14-beta.0",
3+
"version": "3.3.14-beta.1",
44
"type": "module",
55
"description": "Core business logic for ccman - Manage Codex, Claude Code, Gemini CLI, OpenCode, OpenClaw, and MCP configurations",
66
"main": "./dist/index.js",

packages/core/src/tool-manager.openclaw.test.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ describe('OpenClaw ToolManager', () => {
3030
name: providerName,
3131
baseUrl: 'https://gmn.chuangzuoli.com/v1',
3232
apiKey: 'sk-openclaw-provider',
33-
model: JSON.stringify({
34-
providerKey: 'sub2api',
35-
primaryModelId: 'gpt-5.3-codex',
36-
}),
3733
})
3834

3935
manager.switch(provider.id)
@@ -47,7 +43,7 @@ describe('OpenClaw ToolManager', () => {
4743

4844
const openclawConfig = JSON.parse(fs.readFileSync(openclawPath, 'utf-8'))
4945
const modelsConfig = JSON.parse(fs.readFileSync(modelsPath, 'utf-8'))
50-
expect(openclawConfig.agents.defaults.model.primary).toBe('sub2api/gpt-5.3-codex')
51-
expect(modelsConfig.providers.sub2api.baseUrl).toBe('https://gmn.chuangzuoli.com/v1')
46+
expect(openclawConfig.agents.defaults.model.primary).toBe(`${providerName}/gpt-5.3-codex`)
47+
expect(modelsConfig.providers[providerName].baseUrl).toBe('https://gmn.chuangzuoli.com/v1')
5248
})
5349
})

packages/core/src/writers/openclaw.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ describe('OpenClaw Writer', () => {
4949
const openclawConfig = JSON.parse(fs.readFileSync(configPath, 'utf-8'))
5050
const modelsConfig = JSON.parse(fs.readFileSync(modelsPath, 'utf-8'))
5151

52-
expect(openclawConfig.agents?.defaults?.model?.primary).toBe('sub2api/gpt-5.3-codex')
52+
expect(openclawConfig.agents?.defaults?.model?.primary).toBe('GMN/gpt-5.3-codex')
5353
expect(typeof openclawConfig.agents?.defaults?.workspace).toBe('string')
5454

55-
const provider = modelsConfig.providers?.sub2api
55+
const provider = modelsConfig.providers?.GMN
5656
expect(provider.baseUrl).toBe('https://gmn.chuangzuoli.com/v1')
5757
expect(provider.apiKey).toBe('sk-openclaw-test')
5858
expect(provider.api).toBe('openai-responses')
@@ -114,7 +114,7 @@ describe('OpenClaw Writer', () => {
114114
expect(openclawConfig.customField).toBeUndefined()
115115
expect(modelsConfig.customField).toBeUndefined()
116116
expect(modelsConfig.providers?.legacy).toBeUndefined()
117-
expect(modelsConfig.providers?.sub2api?.apiKey).toBe('sk-new-openclaw')
117+
expect(modelsConfig.providers?.GMN?.apiKey).toBe('sk-new-openclaw')
118118
})
119119

120120
it('should fallback to built-in templates when template files are unavailable', () => {
@@ -137,8 +137,8 @@ describe('OpenClaw Writer', () => {
137137
const openclawConfig = JSON.parse(fs.readFileSync(configPath, 'utf-8'))
138138
const modelsConfig = JSON.parse(fs.readFileSync(modelsPath, 'utf-8'))
139139

140-
expect(openclawConfig.agents?.defaults?.model?.primary).toBe('sub2api/gpt-5.3-codex')
141-
expect(modelsConfig.providers?.sub2api?.api).toBe('openai-responses')
140+
expect(openclawConfig.agents?.defaults?.model?.primary).toBe('GMN/gpt-5.3-codex')
141+
expect(modelsConfig.providers?.GMN?.api).toBe('openai-responses')
142142
} finally {
143143
fs.renameSync(openclawTemplateBackupPath, openclawTemplatePath)
144144
fs.renameSync(modelsTemplateBackupPath, modelsTemplatePath)

0 commit comments

Comments
 (0)