@goodandready/dsh-subscriptions 0.6.35 → 0.6.36

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.
@@ -5,7 +5,7 @@ import {
5
5
  antigravityIdentityHeaders,
6
6
  } from './code-assist.js'
7
7
 
8
- export async function enrichAntigravityAccount(slot, info, store, fetch) {
8
+ async function enrichAntigravityAccount(slot, info, store, fetch) {
9
9
  if (!info.configured || slot.provider !== 'antigravity') return info
10
10
  let blob
11
11
  try { blob = await store.loadBlob(slot.ref) } catch { return info }
package/lib/client.js CHANGED
@@ -2180,16 +2180,6 @@ const cssId = 'dsh-subscriptions/settings.module.css'
2180
2180
  ))
2181
2181
  if (typeof un2 === 'function') cleanups.push(un2)
2182
2182
 
2183
- const un3 = ctx.slots.inject('settings.plugin.item', () => ctx.slots.register(
2184
- {
2185
- name: 'settings.plugin.item',
2186
- key: NS,
2187
- locale: NS,
2188
- inject: () => ({ ctx: ctx }),
2189
- },
2190
- PluginCard,
2191
- ))
2192
- if (typeof un3 === 'function') cleanups.push(un3)
2193
2183
  }
2194
2184
  } catch {
2195
2185
  // Slot system not available — expected on headless / non-web profiles.
@@ -1,6 +1,14 @@
1
1
  import z from '@deepseek-ai/schemastery'
2
2
  import { PROVIDERS } from './refs.js'
3
3
 
4
+ // Defensive polyfill for environments / runners with schemastery < 3.18.4
5
+ const proto = z?.Schema?.prototype || (typeof z?.number === "function" ? Object.getPrototypeOf(z.number()) : null)
6
+ if (proto && typeof proto.volatile !== "function") {
7
+ proto.volatile = function volatile() {
8
+ return typeof this.extra === "function" ? this.extra("volatile", true) : this
9
+ }
10
+ }
11
+
4
12
  export const Slot = z.object({
5
13
  provider: z.string().default('codex')
6
14
  .description('One of: codex, claude, grok, antigravity.'),
@@ -2,7 +2,7 @@ import { maskText } from './mask.js'
2
2
  import { normalizeSlots } from './accounts.js'
3
3
  import { PROVIDERS } from './refs.js'
4
4
 
5
- export function scrubReport(v) {
5
+ function scrubReport(v) {
6
6
  if (typeof v === 'string') return maskText(v)
7
7
  if (Array.isArray(v)) return v.map(scrubReport)
8
8
  if (v && typeof v === 'object') {
package/lib/index.js CHANGED
@@ -151,7 +151,7 @@ export function apply(ctx, rawConfig) {
151
151
  if (!settingsSvc) return
152
152
  const served = describeRow()
153
153
  if (served && served.value) {
154
- try { cachedConfig = plainConfig(Config(plainConfig(served.value))) } catch { /* keep current */ }
154
+ try { syncSnapshot(plainConfig(Config(plainConfig(served.value)))) } catch { /* keep current */ }
155
155
  }
156
156
  if (typeof sctx.effect === 'function') {
157
157
  sctx.effect(() => () => { settingsSvc = null })
@@ -168,7 +168,7 @@ export function apply(ctx, rawConfig) {
168
168
  const onSettingsChanged = () => {
169
169
  try {
170
170
  const row = describeRow()
171
- if (row && row.value) cachedConfig = plainConfig(Config(plainConfig(row.value)))
171
+ if (row && row.value) syncSnapshot(plainConfig(Config(plainConfig(row.value))))
172
172
  else syncSnapshot()
173
173
  reconcileSlots().catch(() => {})
174
174
  } catch { /* keep existing snapshot on error */ }
package/lib/jwt.js CHANGED
@@ -1,4 +1,4 @@
1
- export function decodeJwtPayload(token) {
1
+ function decodeJwtPayload(token) {
2
2
  const raw = String(token || '')
3
3
  const parts = raw.split('.')
4
4
  if (parts.length < 2) return null
package/lib/messages.js CHANGED
@@ -102,7 +102,7 @@ export function openaiTools(options) {
102
102
  }))
103
103
  }
104
104
 
105
- export function reconcileResponsesInput(items) {
105
+ function reconcileResponsesInput(items) {
106
106
  const result = []
107
107
  const callsSeen = new Set()
108
108
  const outputsSeen = new Set()
@@ -133,7 +133,7 @@ export async function listModels(blob, cfg) {
133
133
  // Advertise adaptive thinking + effort only for models whose capability table
134
134
  // declares the chosen level; anything else (unsupported family, 'off', no
135
135
  // selection) leaves the request untouched so behavior stays opt-in.
136
- export function applyClaudeThinking(payload, options) {
136
+ function applyClaudeThinking(payload, options) {
137
137
  const effort = options && String(options.reasoningEffort || '')
138
138
  if (!effort || effort === 'off') return payload
139
139
  const levels = effortLevelsForModel(payload && payload.model)
@@ -14,7 +14,7 @@ const USAGE = 'https://chatgpt.com/backend-api/wham/usage'
14
14
  // code_verifier server-side; we finish with the normal PKCE exchange.
15
15
  const DEVICE_USERCODE_URL = 'https://auth.openai.com/api/accounts/deviceauth/usercode'
16
16
  const DEVICE_TOKEN_URL = 'https://auth.openai.com/api/accounts/deviceauth/token'
17
- export const DEVICE_AUTH_URL = 'https://auth.openai.com/codex/device'
17
+ const DEVICE_AUTH_URL = 'https://auth.openai.com/codex/device'
18
18
  const DEVICE_REDIRECT_URI = 'https://auth.openai.com/deviceauth/callback'
19
19
  const SCOPE = 'openid profile email offline_access api.connectors.read api.connectors.invoke'
20
20
  const INSTRUCTIONS = 'You are a coding assistant using a ChatGPT Codex subscription.'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodandready/dsh-subscriptions",
3
- "version": "0.6.35",
3
+ "version": "0.6.36",
4
4
  "description": "Use ChatGPT Codex, Claude, Grok, Antigravity, Kimi, GLM, Cursor, Kiro, Copilot, Qwen, ERNIE, Spark, JetBrains, Perplexity, Replit, and Cody subscriptions as DeepSeek Harness LLM providers via OAuth.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -70,6 +70,7 @@
70
70
  "devDependencies": {
71
71
  "@deepseek-ai/dsh-llm": "0.1.0-rc.8",
72
72
  "@types/node": "^22.20.2",
73
- "typescript": "^7.0.2"
73
+ "typescript": "^7.0.2",
74
+ "@deepseek-ai/schemastery": "^3.18.4"
74
75
  }
75
76
  }