base_parts_ai 1.0.45 → 1.0.46
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/README.md +1 -1
- package/lib/setapi_cx.js +16 -0
- package/package.json +1 -1
- package/test_home/.codex/config.toml +3 -0
- package/test_jcx.js +19 -0
package/README.md
CHANGED
package/lib/setapi_cx.js
CHANGED
|
@@ -151,6 +151,20 @@ function ensureSandboxMode(toml) {
|
|
|
151
151
|
return stringifyTomlConfig(config);
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
/**
|
|
155
|
+
* 强制写入 Codex TUI 编辑器换行快捷键,已有值会被覆盖为 alt-enter
|
|
156
|
+
* @param {string} toml TOML 内容
|
|
157
|
+
* @returns {string}
|
|
158
|
+
*/
|
|
159
|
+
function ensureEditorInsertNewlineKeymap(toml) {
|
|
160
|
+
var config = parseTomlConfig(toml);
|
|
161
|
+
var tui = ensureTable(config, 'tui');
|
|
162
|
+
var keymap = ensureTable(tui, 'keymap');
|
|
163
|
+
var editor = ensureTable(keymap, 'editor');
|
|
164
|
+
editor.insert_newline = 'alt-enter';
|
|
165
|
+
return stringifyTomlConfig(config);
|
|
166
|
+
}
|
|
167
|
+
|
|
154
168
|
/**
|
|
155
169
|
* 删除顶层 model_provider 字段,保留其它配置段落
|
|
156
170
|
* @param {string} toml TOML 内容
|
|
@@ -418,6 +432,7 @@ async function setapiCx(cmd, buildCfg) {
|
|
|
418
432
|
toml = wireApi ? setJcodexWireApi(toml, wireApi) : removeJcodexWireApi(toml);
|
|
419
433
|
}
|
|
420
434
|
toml = ensureSandboxMode(toml);
|
|
435
|
+
toml = ensureEditorInsertNewlineKeymap(toml);
|
|
421
436
|
writeTextFile(buildCfg.codexConfigPath, toml);
|
|
422
437
|
|
|
423
438
|
await refreshAgentsFile(buildCfg.codexAgentsPath);
|
|
@@ -437,6 +452,7 @@ setapiCx._private = {
|
|
|
437
452
|
escapeTomlString: escapeTomlString,
|
|
438
453
|
hasTopLevelKey: hasTopLevelKey,
|
|
439
454
|
ensureSandboxMode: ensureSandboxMode,
|
|
455
|
+
ensureEditorInsertNewlineKeymap: ensureEditorInsertNewlineKeymap,
|
|
440
456
|
removeTopLevelModelProvider: removeTopLevelModelProvider,
|
|
441
457
|
removeJcodexProviderBlock: removeJcodexProviderBlock,
|
|
442
458
|
removeJcodexWireApi: removeJcodexWireApi,
|
package/package.json
CHANGED
package/test_jcx.js
CHANGED
|
@@ -172,6 +172,23 @@ async function runTests() {
|
|
|
172
172
|
if (!ok) { process.exit(1); }
|
|
173
173
|
})();
|
|
174
174
|
|
|
175
|
+
// ============================================================
|
|
176
|
+
// 测试 2.2:强制写入 TUI 编辑器换行快捷键
|
|
177
|
+
// ============================================================
|
|
178
|
+
console.log('\n======= jcx Test 2.2: 强制写入 TUI keymap =======');
|
|
179
|
+
(function () {
|
|
180
|
+
var original = '[tui]\ntheme = "dark"\n\n[tui.keymap.editor]\ninsert_newline = "enter"\n';
|
|
181
|
+
var updated = privateApi.ensureEditorInsertNewlineKeymap(original);
|
|
182
|
+
var ok = true;
|
|
183
|
+
ok = ok && updated.indexOf('[tui]') !== -1;
|
|
184
|
+
ok = ok && updated.indexOf('theme = "dark"') !== -1;
|
|
185
|
+
ok = ok && updated.indexOf('[tui.keymap.editor]') !== -1;
|
|
186
|
+
ok = ok && updated.indexOf('insert_newline = "alt-enter"') !== -1;
|
|
187
|
+
ok = ok && updated.indexOf('insert_newline = "enter"') === -1;
|
|
188
|
+
console.log('✅ Test 2.2 通过:', ok);
|
|
189
|
+
if (!ok) { process.exit(1); }
|
|
190
|
+
})();
|
|
191
|
+
|
|
175
192
|
// ============================================================
|
|
176
193
|
// 测试 3:空 base_url 删除顶层 model_provider,保留 provider 段
|
|
177
194
|
// ============================================================
|
|
@@ -218,6 +235,8 @@ async function runTests() {
|
|
|
218
235
|
ok = ok && toml.indexOf('sandbox_mode = "danger-full-access"') !== -1;
|
|
219
236
|
ok = ok && toml.indexOf('base_url = "https://forced.example.com/v1"') !== -1;
|
|
220
237
|
ok = ok && toml.indexOf('wire_api = "wire-forced-provider-key"') !== -1;
|
|
238
|
+
ok = ok && toml.indexOf('[tui.keymap.editor]') !== -1;
|
|
239
|
+
ok = ok && toml.indexOf('insert_newline = "alt-enter"') !== -1;
|
|
221
240
|
ok = ok && agents.indexOf('cli=cx') !== -1;
|
|
222
241
|
ok = ok && agents.indexOf('cli=cx-' + utils.getAiTipOsParam()) !== -1;
|
|
223
242
|
console.log('✅ Test 4 通过:', ok);
|