@crazyhappyone/dsh-tui 0.1.0-alpha.39 → 0.1.0-alpha.40

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.
Files changed (2) hide show
  1. package/dist/index.js +34 -0
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -81501,6 +81501,7 @@ function customProviderProfileFrom(head, models) {
81501
81501
  baseURL: head.baseURL.replace(/\/+$/, ""),
81502
81502
  apiKeyEnv: head.apiKeyEnv ?? credentialEnvName(head.name),
81503
81503
  displayName: head.displayName ?? head.name,
81504
+ ...head.defaultInput === void 0 ? {} : { defaultInput: head.defaultInput },
81504
81505
  models: models.map(profileModelEntryFor)
81505
81506
  };
81506
81507
  }
@@ -81615,6 +81616,12 @@ function stringifySettingsFieldValue(namespace, field, value) {
81615
81616
  }
81616
81617
  return `${String(keys.length)} \u4E2A Provider (${keys.join(", ")})`;
81617
81618
  }
81619
+ if (field === "defaultInput" || field.endsWith(".defaultInput")) {
81620
+ if (Array.isArray(value)) {
81621
+ return value.includes("image") ? "text, image (\u652F\u6301\u89C6\u89C9)" : "text (\u4EC5\u6587\u672C)";
81622
+ }
81623
+ return "text, image (\u9ED8\u8BA4)";
81624
+ }
81618
81625
  return stringifySettingValue(value);
81619
81626
  }
81620
81627
  function parseSettingsFieldValue(namespace, field, current, draft, knownProviders = []) {
@@ -81712,6 +81719,25 @@ function parseSettingsFieldValue(namespace, field, current, draft, knownProvider
81712
81719
  }
81713
81720
  return trimmed;
81714
81721
  }
81722
+ if (field === "defaultInput" || field.endsWith(".defaultInput")) {
81723
+ const trimmed = draft.trim().toLowerCase();
81724
+ if (trimmed === "") return ["text", "image"];
81725
+ const tokens = trimmed.split(/[,\s]+/).filter((t) => t !== "");
81726
+ const result = [];
81727
+ for (const token of tokens) {
81728
+ if (token === "text" || token === "\u6587\u672C") {
81729
+ if (!result.includes("text")) result.push("text");
81730
+ } else if (token === "image" || token === "vision" || token === "\u89C6\u89C9" || token === "\u56FE\u7247") {
81731
+ if (!result.includes("text")) result.push("text");
81732
+ if (!result.includes("image")) result.push("image");
81733
+ } else if (token === "all" || token === "\u5168\u90E8") {
81734
+ return ["text", "image"];
81735
+ } else {
81736
+ throw new TypeError(`\u672A\u77E5\u8F93\u5165\u6A21\u6001 "${token}"\uFF1B\u53EF\u9009 text\uFF08\u4EC5\u6587\u672C\uFF09\u6216 text, image\uFF08\u652F\u6301\u89C6\u89C9\uFF09`);
81737
+ }
81738
+ }
81739
+ return result.length > 0 ? result : ["text"];
81740
+ }
81715
81741
  return parseSettingValue(current, draft);
81716
81742
  }
81717
81743
  function settingsRowsFromDescribe(descriptors, read, options) {
@@ -81769,6 +81795,14 @@ function settingsRowsFromDescribe(descriptors, read, options) {
81769
81795
  required: true,
81770
81796
  label: `providers \xB7 ${pId} \xB7 \u51ED\u636E\u53D8\u91CF (apiKeyEnv)`
81771
81797
  });
81798
+ rows.push({
81799
+ namespace: "llm-pi-ai",
81800
+ field: `providers.${pId}.defaultInput`,
81801
+ value: stringifySettingsFieldValue("llm-pi-ai", `providers.${pId}.defaultInput`, profile.defaultInput),
81802
+ required: false,
81803
+ label: `providers \xB7 ${pId} \xB7 \u8F93\u5165\u6A21\u6001 (defaultInput: text/image)`,
81804
+ editValue: Array.isArray(profile.defaultInput) ? profile.defaultInput.join(", ") : "text, image"
81805
+ });
81772
81806
  rows.push({
81773
81807
  namespace: "llm-pi-ai",
81774
81808
  field: `providers.${pId}.displayName`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crazyhappyone/dsh-tui",
3
- "version": "0.1.0-alpha.39",
3
+ "version": "0.1.0-alpha.40",
4
4
  "description": "Source-runtime launcher for the DeepSeek Harness terminal interface",
5
5
  "type": "module",
6
6
  "license": "MIT",