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 CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  ## 下载发布的包
3
- https://registry.npmjs.org/base_parts_ai/-/base_parts_ai-1.0.43.tgz
3
+ https://registry.npmjs.org/base_parts_ai/-/base_parts_ai-1.0.45.tgz
4
4
 
5
5
  ## 然后放在jdwfiles目录下
6
6
  https://jdwfiles.oss-cn-hangzhou.aliyuncs.com/npm_pkg/base_parts_ai-1.0.34.tgz
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "base_parts_ai",
3
- "version": "1.0.45",
3
+ "version": "1.0.46",
4
4
  "description": "jaskle base_parts_ai",
5
5
  "main": "./main.js",
6
6
  "registry": true,
@@ -4,6 +4,9 @@ model_provider = "jcodex"
4
4
  [tui]
5
5
  theme = "dark"
6
6
 
7
+ [tui.keymap.editor]
8
+ insert_newline = "alt-enter"
9
+
7
10
  [model_providers.jcodex]
8
11
  name = "jcodex"
9
12
  base_url = "https://version.example.com/v1"
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);