@sparkelf/dsh-patch-responses-reasoning-status 0.2.0-rc.9 → 0.2.1-alpha.2

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 CHANGED
@@ -4,11 +4,11 @@
4
4
  "formatVersion": 1,
5
5
  "variants": [
6
6
  {
7
- "dsh": ">=0.1.6-alpha.1",
7
+ "dsh": ">=0.2.0-rc.2",
8
8
  "file": "./patches/responses-reasoning-status.patch",
9
9
  "id": "responses-omit-reasoning-input-status",
10
10
  "target": {
11
- "baseRevision": "ddefc45fbc7f8e46dd73185e68295696d1297887",
11
+ "baseRevision": "5badb15009ae1756c3afe0ae0cef1faafc290ccc",
12
12
  "kind": "dsh-source",
13
13
  "paths": [
14
14
  "packages/llm/llm-pi-ai/",
@@ -32,5 +32,5 @@
32
32
  "url": "git+https://github.com/SparkElf/deepseek-harness-plus.git"
33
33
  },
34
34
  "type": "module",
35
- "version": "0.2.0-rc.9"
35
+ "version": "0.2.1-alpha.2"
36
36
  }
@@ -1,8 +1,8 @@
1
1
  diff --git a/packages/client/ui-settings-models/src/client/ModelsSection.module.css b/packages/client/ui-settings-models/src/client/ModelsSection.module.css
2
- index 15b8933..415126d 100644
2
+ index 2074fc6a07..c9575dedae 100644
3
3
  --- a/packages/client/ui-settings-models/src/client/ModelsSection.module.css
4
4
  +++ b/packages/client/ui-settings-models/src/client/ModelsSection.module.css
5
- @@ -397,6 +397,32 @@
5
+ @@ -415,6 +415,32 @@
6
6
  padding-top: 12px;
7
7
  }
8
8
 
@@ -36,10 +36,10 @@ index 15b8933..415126d 100644
36
36
  display: flex;
37
37
  flex-direction: column;
38
38
  diff --git a/packages/client/ui-settings-models/src/client/ProviderEditor.tsx b/packages/client/ui-settings-models/src/client/ProviderEditor.tsx
39
- index bc89f43..2533cae 100644
39
+ index 41dac376d1..0e5d0bafd0 100644
40
40
  --- a/packages/client/ui-settings-models/src/client/ProviderEditor.tsx
41
41
  +++ b/packages/client/ui-settings-models/src/client/ProviderEditor.tsx
42
- @@ -44,6 +44,9 @@ type EditorLayout = 'deepseek' | 'pi-ai' | 'unknown'
42
+ @@ -45,6 +45,9 @@ type EditorLayout = 'deepseek' | 'pi-ai' | 'unknown'
43
43
 
44
44
 
45
45
 
@@ -49,7 +49,7 @@ index bc89f43..2533cae 100644
49
49
  /** Props of {@link ProviderEditor}. */
50
50
  export interface ProviderEditorProps {
51
51
  /** Provider route id. */
52
- @@ -171,6 +174,10 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
52
+ @@ -181,6 +184,10 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
53
53
  const root = useMemo(() => schema.rehydrate(namespace.schema), [namespace.schema, schema])
54
54
  const node = useMemo(() => schema.nodeAtPath(root, settingsPath), [root, schema, settingsPath])
55
55
  const fallback = schema.getPath(namespace.value, settingsPath)
@@ -58,9 +58,9 @@ index bc89f43..2533cae 100644
58
58
  + [...settingsPath, ...OMIT_REASONING_INPUT_STATUS_PATH],
59
59
  + ) === true
60
60
  const disabled = props.readOnly || busy
61
- const layout = layoutOf(namespace.ns)
62
- const keyRef = refFor(schema, namespace, settingsPath, props.provider)
63
- @@ -199,6 +206,11 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
61
+ const accountProvider = props.provider === 'deepseek-account'
62
+ // Account settings use a configurable Cordis entry id.
63
+ @@ -212,6 +219,11 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
64
64
  const value = schema.getPath(source, [key])
65
65
  return typeof value === 'string' && value.trim().length > 0 ? value : undefined
66
66
  }
@@ -72,7 +72,7 @@ index bc89f43..2533cae 100644
72
72
  const setField = (key: string, next: string | undefined): void => {
73
73
  // A value of nothing but whitespace is cleared, not stored: `stringAt`
74
74
  // already reports it as absent, so the field would otherwise render empty
75
- @@ -227,6 +239,9 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
75
+ @@ -240,6 +252,9 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
76
76
  // What the form currently shows, which is what an interrogation must ask:
77
77
  // an edited-but-unsaved endpoint, and a key typed but not yet stored.
78
78
  const probeApi = stringAt(draft, 'api') ?? stringAt(fallback, 'api')
@@ -82,7 +82,7 @@ index bc89f43..2533cae 100644
82
82
  const probeBaseURL = stringAt(draft, 'baseURL') ?? stringAt(fallback, 'baseURL')
83
83
  const probe = {
84
84
  settingsNs: namespace.ns,
85
- @@ -436,7 +451,15 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
85
+ @@ -452,7 +467,15 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
86
86
  value={probeApi ?? ''}
87
87
  aria-label={t('customApi')}
88
88
  disabled={disabled}
@@ -98,8 +98,8 @@ index bc89f43..2533cae 100644
98
98
  + }}
99
99
  >
100
100
  {/* A profile naming no protocol — hand-written into
101
- settings.yaml with no model to need one — selects
102
- @@ -450,6 +473,24 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
101
+ cordis.patch.yml with no model to need one — selects
102
+ @@ -466,6 +489,24 @@ export function ProviderEditor(props: ProviderEditorProps): ReactNode {
103
103
  </div>
104
104
  )
105
105
  : null}
@@ -125,27 +125,29 @@ index bc89f43..2533cae 100644
125
125
  the extras differ — DeepSeek's inherited capacities, pi-ai's
126
126
  endpoint interrogation. */}
127
127
  diff --git a/packages/client/ui-settings-models/src/client/locales.ts b/packages/client/ui-settings-models/src/client/locales.ts
128
- index d06ee79..9a623ba 100644
128
+ index bba0b85288..5bd2602ad5 100644
129
129
  --- a/packages/client/ui-settings-models/src/client/locales.ts
130
130
  +++ b/packages/client/ui-settings-models/src/client/locales.ts
131
- @@ -89,6 +89,7 @@ export const en = {
132
- customDisplayName: 'Display name',
133
- customApi: 'API protocol',
134
- customApiUnset: 'Not selected',
131
+ @@ -97,6 +97,7 @@ export const en = {
132
+ protocolOpenAiCompletions: 'OpenAI Chat Completions',
133
+ protocolOpenAiResponses: 'OpenAI Responses',
134
+ protocolAnthropicMessages: 'Anthropic Messages',
135
135
  + omitReasoningInputStatus: 'Gateway compatibility mode',
136
136
  customNeedsBaseUrl: 'A custom provider needs a base URL.',
137
137
  customBaseUrlInvalid: 'Enter a valid HTTP or HTTPS URL.',
138
138
  customNeedsModels: 'A custom provider needs at least one model.',
139
- @@ -200,6 +201,7 @@ export const zh: { [Key in keyof typeof en]: string } = {
140
- customDisplayName: '显示名称',
141
- customApi: 'API 协议',
142
- customApiUnset: '未选择',
139
+ @@ -217,7 +218,8 @@ export const zh: { [Key in keyof typeof en]: string } = {
140
+ protocolOpenAiCompletions: 'OpenAI Chat Completions',
141
+ protocolOpenAiResponses: 'OpenAI Responses',
142
+ protocolAnthropicMessages: 'Anthropic Messages',
143
+ - customNeedsBaseUrl: '自定义模型 API 需要填写 API 地址。',
143
144
  + omitReasoningInputStatus: '中转站兼容模式',
144
- customNeedsBaseUrl: '自定义提供方需要填写 API 地址。',
145
+ + customNeedsBaseUrl: '自定义提供方需要填写 API 地址。',
145
146
  customBaseUrlInvalid: '请输入有效的 HTTP 或 HTTPS 地址。',
146
- customNeedsModels: '自定义提供方至少需要一个模型。',
147
+ customNeedsModels: '自定义模型 API 至少需要一个模型。',
148
+ customBaseUrlPlaceholder: 'https://gateway.example/v1',
147
149
  diff --git a/packages/llm/llm-pi-ai/src/adapter.ts b/packages/llm/llm-pi-ai/src/adapter.ts
148
- index de9f3e0..404b66d 100644
150
+ index de9f3e0e42..404b66d173 100644
149
151
  --- a/packages/llm/llm-pi-ai/src/adapter.ts
150
152
  +++ b/packages/llm/llm-pi-ai/src/adapter.ts
151
153
  @@ -111,6 +111,24 @@ export interface PiAiAuthInjection {
@@ -182,10 +184,10 @@ index de9f3e0..404b66d 100644
182
184
  maxRetries: 0,
183
185
  }
184
186
  diff --git a/packages/llm/llm-pi-ai/src/config.ts b/packages/llm/llm-pi-ai/src/config.ts
185
- index 2f9e563..7eda300 100644
187
+ index b07cd57bfb..0907f511c9 100644
186
188
  --- a/packages/llm/llm-pi-ai/src/config.ts
187
189
  +++ b/packages/llm/llm-pi-ai/src/config.ts
188
- @@ -87,6 +87,12 @@ export type {
190
+ @@ -88,6 +88,12 @@ export type {
189
191
  PiAiThinkingFormat,
190
192
  } from './catalog.ts'
191
193
 
@@ -198,7 +200,7 @@ index 2f9e563..7eda300 100644
198
200
  /** Configuration for one pi-ai provider route; the `providers` dict key IS the route. */
199
201
  export interface PiAiProviderProfile {
200
202
  /** Credential reference (environment-variable name) resolved per request through `ctx.credentials`. */
201
- @@ -124,6 +130,8 @@ export interface PiAiProviderProfile {
203
+ @@ -125,6 +131,8 @@ export interface PiAiProviderProfile {
202
204
  * refused rather than left looking applied.
203
205
  */
204
206
  compat?: PiAiCompatProfile
@@ -207,7 +209,7 @@ index 2f9e563..7eda300 100644
207
209
  /**
208
210
  * Context capacity for a model this route lists that neither the entry nor
209
211
  * the installed catalog sizes (default 262,144). A guess by construction, so
210
- @@ -319,6 +327,10 @@ const modelProfile: z<PiAiModelProfile> = z.object({
212
+ @@ -323,6 +331,10 @@ const modelProfile: z<PiAiModelProfile> = z.object({
211
213
  /** A {@link modelProfile} whose id lives in the `modelOverrides` dict key. */
212
214
  const modelOverride: z<PiAiModelOverride> = z.object(modelFields)
213
215
 
@@ -218,7 +220,7 @@ index 2f9e563..7eda300 100644
218
220
  const profile = z.object({
219
221
  apiKeyEnv: z.string().role('credential-ref'),
220
222
  displayName: z.string(),
221
- @@ -327,6 +339,7 @@ const profile = z.object({
223
+ @@ -331,6 +343,7 @@ const profile = z.object({
222
224
  models: z.array(modelProfile),
223
225
  modelOverrides: z.dict(modelOverride),
224
226
  compat: compatProfile,
@@ -226,7 +228,7 @@ index 2f9e563..7eda300 100644
226
228
  defaultContextWindow: z.number().step(1).min(1).default(DEFAULT_CONTEXT_WINDOW),
227
229
  defaultMaxTokens: z.number().step(1).min(1).default(DEFAULT_MAX_TOKENS),
228
230
  defaultInput: z.array(z.union(MODALITIES)).default([...DEFAULT_INPUT]),
229
- @@ -422,6 +435,11 @@ export function resolveProfiles(
231
+ @@ -426,6 +439,11 @@ export function resolveProfiles(
230
232
  throw new Error(`llm-pi-ai: provider "${provider}" has an empty displayName`)
231
233
  }
232
234
  assertValidHeaders(provider, source.headers)