dsh-ssh-tui 0.6.2 → 0.6.4

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 (44) hide show
  1. package/README.en.md +67 -2
  2. package/README.md +56 -3
  3. package/lib/context-window.js +139 -0
  4. package/lib/context-window.js.map +1 -0
  5. package/lib/dialogs.js +13 -7
  6. package/lib/dialogs.js.map +1 -1
  7. package/lib/i18n/en.js +69 -3
  8. package/lib/i18n/en.js.map +1 -1
  9. package/lib/i18n/zh.js +69 -3
  10. package/lib/i18n/zh.js.map +1 -1
  11. package/lib/index.js +10 -4
  12. package/lib/index.js.map +1 -1
  13. package/lib/job-label.js +45 -0
  14. package/lib/job-label.js.map +1 -0
  15. package/lib/paint.js +3 -3
  16. package/lib/paint.js.map +1 -1
  17. package/lib/preset-label.js +73 -0
  18. package/lib/preset-label.js.map +1 -0
  19. package/lib/preset-rows.js +96 -0
  20. package/lib/preset-rows.js.map +1 -0
  21. package/lib/provider-catalog.js +12 -2
  22. package/lib/provider-catalog.js.map +1 -1
  23. package/lib/quota.js +149 -1
  24. package/lib/quota.js.map +1 -1
  25. package/lib/reasoning.js +9 -4
  26. package/lib/reasoning.js.map +1 -1
  27. package/lib/term-text.js +82 -11
  28. package/lib/term-text.js.map +1 -1
  29. package/lib/tool-present.js +14 -1
  30. package/lib/tool-present.js.map +1 -1
  31. package/lib/tui.js +363 -25
  32. package/lib/tui.js.map +1 -1
  33. package/lib/types/context-window.d.ts +46 -0
  34. package/lib/types/dialogs.d.ts +5 -4
  35. package/lib/types/job-label.d.ts +20 -0
  36. package/lib/types/preset-label.d.ts +38 -0
  37. package/lib/types/preset-rows.d.ts +47 -0
  38. package/lib/types/provider-catalog.d.ts +2 -0
  39. package/lib/types/quota.d.ts +49 -0
  40. package/lib/types/reasoning.d.ts +9 -4
  41. package/lib/types/term-text.d.ts +33 -4
  42. package/lib/types/tool-present.d.ts +1 -0
  43. package/lib/types/tui.d.ts +76 -1
  44. package/package.json +1 -1
@@ -0,0 +1,96 @@
1
+ /**
2
+ * The profile patch that mounts the agent-preset roster `/mode` needs.
3
+ *
4
+ * A terminal profile built on `dsh-base` composes no preset roster (only the
5
+ * Web bundle does), and this plugin's own bundle patch may not mount one: DSH
6
+ * STORE accepts additive rows with plugin-owned ids and no `@deepseek-ai/*`
7
+ * module names. The profile's user layer is the supported home for the row, so
8
+ * both the install script and the running TUI write the same block here — the
9
+ * TUI needs it because `dsh plugin add dsh-ssh-tui@latest` (the in-app update
10
+ * path) never runs `scripts/`, which npm installs do not ship.
11
+ *
12
+ * The roster is not cosmetic: without it `/mode` cannot switch, and the tools
13
+ * the shipped presets own (`ask_user_question`, `present`, PTC's presentation)
14
+ * are absent from the agent's catalog.
15
+ * @module dsh-ssh-tui/preset-rows
16
+ */
17
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
18
+ import { dirname, join } from 'node:path';
19
+ /**
20
+ * The exact profile patch block that mounts the roster and the two host
21
+ * services the shipped presets need. `scripts/ensure-profile-rows.sh` carries
22
+ * the same text; a test compares the two so they cannot drift.
23
+ */
24
+ export const ROSTER_PATCH_BLOCK = `# dsh-ssh-tui /mode: the agent-preset roster (standard / minimal / PTC /
25
+ # cordis, plus every preset under $DSH_HOME/.agent-presets) and the two host
26
+ # services the shipped presets need. dsh-base composes no roster in a terminal
27
+ # profile, and a third-party bundle patch may not mount an @deepseek-ai row, so
28
+ # the profile's user layer owns them.
29
+ - insert:
30
+ - id: agent-presets
31
+ name: '@deepseek-ai/dsh-agent-presets'
32
+ config:
33
+ default: standard
34
+
35
+ - id: code-runtime
36
+ name: '@deepseek-ai/dsh-code-runtime-worker-thread'
37
+
38
+ - id: subagent-model-selection-settings
39
+ name: '@deepseek-ai/dsh-tool-subagent/model-selection-settings'
40
+ `;
41
+ /** The profile patch file the roster block belongs in. */
42
+ export function rosterPatchPath(home, profile) {
43
+ return join(home, 'profiles', profile, 'cordis.patch.yml');
44
+ }
45
+ /**
46
+ * The patch text with the roster block appended, or `undefined` when the file
47
+ * already names the roster row.
48
+ *
49
+ * A file that is exactly `[]` (the profile template) is replaced, so the result
50
+ * stays a valid top-level patch list; anything else keeps its content and the
51
+ * block is appended after a blank line.
52
+ * @param existing - the patch file's current text.
53
+ * @returns the new text, or `undefined` when nothing has to change.
54
+ */
55
+ export function rosterPatchText(existing) {
56
+ if (/name:\s*'@deepseek-ai\/dsh-agent-presets'/.test(existing))
57
+ return undefined;
58
+ if (/^\s*\[\s*\]\s*$/m.test(existing))
59
+ return existing.replace(/^\s*\[\s*\]\s*$/m, ROSTER_PATCH_BLOCK.trimEnd() + '\n');
60
+ return `${existing.endsWith('\n') ? existing : `${existing}\n`}\n${ROSTER_PATCH_BLOCK}`;
61
+ }
62
+ /** The template a missing profile patch starts from. */
63
+ const PATCH_TEMPLATE = `# Your patch layer for this dsh profile, applied after every bundle layer:
64
+ # a top-level YAML array of loader patch entries (id-targeted config
65
+ # overrides, disables, and insert lists; \`!!js\` expressions allowed).
66
+ []
67
+
68
+ `;
69
+ /**
70
+ * Mount the roster in one profile, unless it is already composed.
71
+ *
72
+ * Idempotent: a profile whose patch already names the roster row (one bundling
73
+ * `@deepseek-ai/dsh-web-app`, for example) is left untouched. The write is a
74
+ * plain whole-file replace because the file is small and read once at boot; a
75
+ * half-written patch would only be seen by the next launch.
76
+ * @param home - the harness home carrying `profiles/`.
77
+ * @param profile - the profile to patch.
78
+ * @returns `present` when the row already exists, else `written`.
79
+ */
80
+ export async function ensureRosterRows(home, profile) {
81
+ const path = rosterPatchPath(home, profile);
82
+ let existing = PATCH_TEMPLATE;
83
+ try {
84
+ existing = await readFile(path, 'utf8');
85
+ }
86
+ catch {
87
+ // Missing file: start from the template the launcher would have written.
88
+ }
89
+ const next = rosterPatchText(existing);
90
+ if (next === undefined)
91
+ return 'present';
92
+ await mkdir(dirname(path), { recursive: true });
93
+ await writeFile(path, next, 'utf8');
94
+ return 'written';
95
+ }
96
+ //# sourceMappingURL=preset-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset-rows.js","sourceRoot":"","sources":["../src/preset-rows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;CAgBjC,CAAA;AAED,0DAA0D;AAC1D,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,OAAe;IAC3D,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,2CAA2C,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAA;IAChF,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;IACvH,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,kBAAkB,EAAE,CAAA;AACzF,CAAC;AAED,wDAAwD;AACxD,MAAM,cAAc,GAAG;;;;;CAKtB,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAAe;IAClE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,QAAQ,GAAG,cAAc,CAAA;IAC7B,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACxC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/C,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -56,6 +56,7 @@ export function mergeProviderEntries(templates, presets, dedupeIds, query) {
56
56
  const CHILD_SCRIPT = `
57
57
  import { existsSync } from 'node:fs'
58
58
  import { dirname, join } from 'node:path'
59
+ import { pathToFileURL } from 'node:url'
59
60
  const anchors = JSON.parse(process.env.DSH_CATALOG_ANCHORS ?? '[]')
60
61
  const pkgCandidates = []
61
62
  for (const anchor of anchors) {
@@ -80,14 +81,23 @@ for (const pkgPath of pkgCandidates) {
80
81
  const presets = []
81
82
  for (const provider of providers) {
82
83
  let modelIds = []
84
+ let capacities = {}
83
85
  try {
84
- modelIds = (provider.getModels?.() ?? []).map(m => m.id).filter(id => typeof id === 'string' && id !== '')
85
- } catch { modelIds = [] }
86
+ const models = provider.getModels?.() ?? []
87
+ modelIds = models.map(m => m.id).filter(id => typeof id === 'string' && id !== '')
88
+ for (const model of models) {
89
+ if (typeof model?.id !== 'string' || model.id === '') continue
90
+ if (typeof model.contextWindow === 'number' && model.contextWindow > 0) {
91
+ capacities[model.id.toLowerCase()] = model.contextWindow
92
+ }
93
+ }
94
+ } catch { modelIds = []; capacities = {} }
86
95
  presets.push({
87
96
  id: provider.id,
88
97
  name: typeof provider.name === 'string' && provider.name !== '' ? provider.name : provider.id,
89
98
  baseUrl: typeof provider.baseUrl === 'string' ? provider.baseUrl : '',
90
99
  modelIds,
100
+ ...(Object.keys(capacities).length === 0 ? {} : { capacities }),
91
101
  })
92
102
  }
93
103
  if (presets.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"provider-catalog.js","sourceRoot":"","sources":["../src/provider-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-catalog.js","sourceRoot":"","sources":["../src/provider-catalog.ts"],"names":[],"mappings":"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"}
package/lib/quota.js CHANGED
@@ -15,6 +15,15 @@ export const OPENCODE_GO_USAGE_URL = 'https://opencode.ai/zen/go/v1/usage';
15
15
  export const OPENCODE_ZEN_BASE_URL = 'https://opencode.ai/zen/v1';
16
16
  export const SUPERGROK_BILLING_URL = 'https://cli-chat-proxy.grok.com/v1/billing?format=credits';
17
17
  export const DEEPSEEK_PUBLIC_BASE_URL = 'https://api.deepseek.com';
18
+ /**
19
+ * Command Code's billing surface sits on the API root, not under the
20
+ * `/provider/v1` route its chat requests use, so these are fixed: a configured
21
+ * base URL only decides whether the canonical host is the right one to ask.
22
+ */
23
+ export const COMMAND_CODE_BASE_URL = 'https://api.commandcode.ai';
24
+ export const COMMAND_CODE_CREDITS_URL = `${COMMAND_CODE_BASE_URL}/alpha/billing/credits`;
25
+ export const COMMAND_CODE_SUBSCRIPTIONS_URL = `${COMMAND_CODE_BASE_URL}/alpha/billing/subscriptions`;
26
+ export const COMMAND_CODE_USAGE_URL = `${COMMAND_CODE_BASE_URL}/alpha/usage/summary`;
18
27
  /** OpenAI-completions gateways: probe these relative to the configured base URL. */
19
28
  export const OPENAI_COMPAT_BALANCE_PATHS = [
20
29
  '/user/balance',
@@ -57,6 +66,36 @@ export function openCodeSourceFor(provider, llmPiAiSection) {
57
66
  ...(baseURL === undefined ? {} : { baseURL }),
58
67
  };
59
68
  }
69
+ const COMMAND_CODE_PROVIDER_IDS = new Set(['command-code', 'commandcode']);
70
+ const COMMAND_CODE_CANONICAL_BASES = new Set([
71
+ COMMAND_CODE_BASE_URL,
72
+ `${COMMAND_CODE_BASE_URL}/provider/v1`,
73
+ ]);
74
+ /**
75
+ * Classify one route as Command Code's quota surface.
76
+ *
77
+ * Recognized by provider id or by a canonical base URL. The billing requests
78
+ * always target the canonical host, so a lookalike base URL never receives the
79
+ * credential even when the route keeps Command Code's provider id.
80
+ * @param provider - the selected provider route.
81
+ * @param llmPiAiSection - the `llm-pi-ai` settings section, if readable.
82
+ * @returns the credential reference to use, or `null` for another provider.
83
+ */
84
+ export function commandCodeSourceFor(provider, llmPiAiSection) {
85
+ const section = llmPiAiSection;
86
+ const profile = section?.providers?.[provider];
87
+ const rawBase = typeof profile?.baseURL === 'string' ? profile.baseURL.replace(/\/+$/u, '') : '';
88
+ if (!COMMAND_CODE_PROVIDER_IDS.has(provider) && !COMMAND_CODE_CANONICAL_BASES.has(rawBase.toLowerCase())) {
89
+ return null;
90
+ }
91
+ const apiKeyEnv = typeof profile?.apiKeyEnv === 'string' && profile.apiKeyEnv.trim() !== ''
92
+ ? profile.apiKeyEnv.trim()
93
+ : 'COMMAND_CODE_API_KEY';
94
+ const label = typeof profile?.displayName === 'string' && profile.displayName.trim() !== ''
95
+ ? profile.displayName.trim()
96
+ : 'Command Code';
97
+ return { provider, apiKeyEnv, label };
98
+ }
60
99
  function openCodeGoUsageWindow(value) {
61
100
  if (typeof value !== 'object' || value === null)
62
101
  return undefined;
@@ -227,6 +266,114 @@ export function parseOpenCodeGoQuota(payload, provider) {
227
266
  throw new Error(t('quota.unrecognized'));
228
267
  return { provider, plan: 'OpenCode Go', windows };
229
268
  }
269
+ /** One Command Code rolling window: `{ cap, used, resetAt }` off /alpha/billing/credits. */
270
+ function commandCodeRollingWindow(value) {
271
+ const row = recordOf(value);
272
+ const cap = commandCodeNumber(row?.cap);
273
+ const used = commandCodeNumber(row?.used);
274
+ if (cap === undefined || used === undefined || cap <= 0 || used < 0)
275
+ return undefined;
276
+ const resetsAt = commandCodeIso(row?.resetAt);
277
+ return {
278
+ remainingPercent: remainingPercentFromUsed(used / cap * 100),
279
+ ...(resetsAt === undefined ? {} : { resetsAt }),
280
+ };
281
+ }
282
+ /** A finite number field, or `undefined`. */
283
+ function commandCodeNumber(value) {
284
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
285
+ }
286
+ /** Command Code reports reset times as epoch milliseconds; QuotaWindow carries ISO strings. */
287
+ function commandCodeIso(value) {
288
+ if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0)
289
+ return undefined;
290
+ const date = new Date(value);
291
+ return Number.isNaN(date.getTime()) ? undefined : date.toISOString();
292
+ }
293
+ /** Prefer the nested `data` shell when the outer object is only an envelope. */
294
+ function commandCodeBody(value) {
295
+ const root = recordOf(value);
296
+ return recordOf(root?.data) ?? root;
297
+ }
298
+ /** Sum the remaining credit pools Command Code reports, or undefined when none is numeric. */
299
+ function commandCodeRemainingCredits(pools) {
300
+ const values = [pools?.monthlyCredits, pools?.purchasedCredits, pools?.freeCredits]
301
+ .filter((value) => typeof value === 'number' && Number.isFinite(value));
302
+ if (values.length === 0)
303
+ return undefined;
304
+ return values.reduce((sum, value) => sum + Math.max(0, value), 0);
305
+ }
306
+ /** Period spend in USD credits from `/alpha/usage/summary`. */
307
+ function commandCodePeriodSpend(summary) {
308
+ const body = commandCodeBody(summary);
309
+ for (const key of ['totalCost', 'totalMonthlyCredits', 'totalCredits']) {
310
+ const value = commandCodeNumber(body?.[key]);
311
+ if (value !== undefined && value >= 0)
312
+ return value;
313
+ }
314
+ return undefined;
315
+ }
316
+ /** The billing-period start used to scope the spend query, when reported. */
317
+ export function commandCodePeriodStart(subscription) {
318
+ const value = commandCodeBody(subscription)?.currentPeriodStart;
319
+ return typeof value === 'string' && value.trim() !== '' ? value.trim() : undefined;
320
+ }
321
+ /** The billing-period end, used as the credit window's reset time. */
322
+ function commandCodePeriodEnd(subscription) {
323
+ const value = commandCodeBody(subscription)?.currentPeriodEnd;
324
+ if (typeof value !== 'string' || value.trim() === '')
325
+ return undefined;
326
+ const date = new Date(value);
327
+ return Number.isNaN(date.getTime()) ? undefined : date.toISOString();
328
+ }
329
+ /** `/alpha/billing/subscriptions` planId as a footer-sized label. */
330
+ function commandCodePlanLabel(subscription) {
331
+ const planId = commandCodeBody(subscription)?.planId;
332
+ if (typeof planId !== 'string' || planId.trim() === '')
333
+ return 'Command Code';
334
+ const trimmed = planId.trim();
335
+ const tail = trimmed.slice(trimmed.lastIndexOf('-') + 1);
336
+ return tail === '' ? 'Command Code' : tail.toUpperCase();
337
+ }
338
+ /**
339
+ * Parse Command Code's credits reply into the shared quota snapshot.
340
+ *
341
+ * The rolling five-hour and weekly windows report used/cap; the credit pool
342
+ * reports a remaining USD balance, which becomes a third window whose percent
343
+ * divides period spend by spend plus remaining balance.
344
+ * @param payload - the billing replies already fetched.
345
+ * @param provider - the route the snapshot is labeled with.
346
+ * @throws Error when no window could be read.
347
+ */
348
+ export function parseCommandCodeQuota(payload, provider) {
349
+ const body = commandCodeBody(payload.credits);
350
+ if (body === undefined)
351
+ throw new Error(t('quota.unrecognized'));
352
+ const limits = recordOf(body.windowLimits);
353
+ const windows = [];
354
+ const fiveHour = commandCodeRollingWindow(limits?.fiveHour);
355
+ if (fiveHour !== undefined)
356
+ windows.push({ label: t('quota.windowHourly'), period: 'hourly', ...fiveHour });
357
+ const weekly = commandCodeRollingWindow(limits?.weekly);
358
+ if (weekly !== undefined)
359
+ windows.push({ label: t('quota.windowWeekly'), period: 'weekly', ...weekly });
360
+ const remainingCredits = commandCodeRemainingCredits(recordOf(body.credits));
361
+ if (remainingCredits !== undefined) {
362
+ const spent = commandCodePeriodSpend(payload.summary);
363
+ const limit = spent === undefined ? undefined : spent + remainingCredits;
364
+ const resetsAt = commandCodePeriodEnd(payload.subscription);
365
+ windows.push({
366
+ label: t('quota.windowCredits'),
367
+ period: 'monthly',
368
+ remainingPercent: limit === undefined || limit <= 0 ? 100 : remainingPercentFromUsed(spent / limit * 100),
369
+ detail: `$${remainingCredits.toFixed(2)}`,
370
+ ...(resetsAt === undefined ? {} : { resetsAt }),
371
+ });
372
+ }
373
+ if (windows.length === 0)
374
+ throw new Error(t('quota.unrecognized'));
375
+ return { provider, plan: commandCodePlanLabel(payload.subscription), windows };
376
+ }
230
377
  export function formatQuotaSnapshot(snapshot) {
231
378
  const lines = [t('quota.snapshotHeader', { plan: snapshot.plan, provider: snapshot.provider })];
232
379
  for (const window of snapshot.windows) {
@@ -234,12 +381,13 @@ export function formatQuotaSnapshot(snapshot) {
234
381
  const barWidth = 16;
235
382
  const filled = Math.round(remaining / 100 * barWidth);
236
383
  const reset = window.resetsAt === undefined ? '' : ` · ${formatQuotaReset(window.resetsAt)}`;
384
+ const detail = window.detail === undefined ? '' : ` · ${window.detail}`;
237
385
  const bar = `${'█'.repeat(filled)}${'░'.repeat(barWidth - filled)}`;
238
386
  lines.push(t('quota.snapshotWindow', {
239
387
  label: window.label,
240
388
  bar,
241
389
  percent: remaining.toFixed(1),
242
- reset,
390
+ reset: `${reset}${detail}`,
243
391
  }));
244
392
  }
245
393
  return lines.join('\n');
package/lib/quota.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"quota.js","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"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"}
package/lib/reasoning.js CHANGED
@@ -2,11 +2,16 @@
2
2
  * Shared reasoning-effort defaults for the SSH TUI.
3
3
  *
4
4
  * OpenCode / third-party (llm-pi-ai) routes carry no adapter-level reasoning
5
- * default (unlike `llm-deepseek`, whose row declares `reasoningEffort: max`).
6
- * Without an explicit effort the model streams its thinking as plain `text`
7
- * chunks instead of `reasoning` blocks, so the TUI never receives the data
8
- * needed to render the collapsible `思考中` block. This helper picks a
5
+ * default. Without an explicit effort the model streams its thinking as plain
6
+ * `text` chunks instead of `reasoning` blocks, so the TUI never receives the
7
+ * data needed to render the collapsible `思考中` block. This helper picks a
9
8
  * supported default so the fold has data to show.
9
+ *
10
+ * `llm-deepseek` is not covered here: its adapter always reports a
11
+ * `defaultEffort`, which the LLM runtime materializes into the request on its
12
+ * own. Since the 0.5.1 STORE compliance trim dropped the bundle patch's
13
+ * `reasoningEffort: max` row override, that adapter default is `high` unless a
14
+ * deployment sets it (or `/effort` picks one, remembered per route).
10
15
  */
11
16
  /**
12
17
  * Pick a default reasoning effort for a provider/model when none is selected.
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning.js","sourceRoot":"","sources":["../src/reasoning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAe,EACf,QAAgB,EAChB,KAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE,CAAA;QAC9C,IAAI,IAAI,EAAE,SAAS,EAAE,aAAa,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAA;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;eACvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC;eAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC;eAC3C,MAAM,CAAC,CAAC,CAAC,CAAA;QACd,OAAO,SAAS,EAAE,EAAE,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"reasoning.js","sourceRoot":"","sources":["../src/reasoning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAe,EACf,QAAgB,EAChB,KAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,IAAI,EAAE,CAAA;QAC9C,IAAI,IAAI,EAAE,SAAS,EAAE,aAAa,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAA;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,CAAA;QAC5D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;eACvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC;eAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC;eAC3C,MAAM,CAAC,CAAC,CAAC,CAAA;QACd,OAAO,SAAS,EAAE,EAAE,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
package/lib/term-text.js CHANGED
@@ -156,14 +156,13 @@ export function wrapWaitDetails(detail, width, maxLines = WAIT_DETAIL_MAX_LINES)
156
156
  return kept.map((line, index) => index === 0 ? `${WAIT_DETAIL_PREFIX}${line}` : `${' '.repeat(prefixWidth)}${line}`);
157
157
  }
158
158
  /**
159
- * BMP symbols with the Unicode `Emoji` property that terminals with an emoji
160
- * font draw two cells wide even without VS16 `npm test`'s / ✖, status
161
- * marks, warning signs. Keycap bases (#, *, digits) are deliberately absent:
162
- * they are only emoji when followed by VS16.
159
+ * BMP symbols carrying the Unicode `Emoji` property: a terminal with an emoji
160
+ * font may draw them with a colour glyph instead of the monospace one, so the
161
+ * painter has to decide which form it is budgeting cells for. Keycap bases
162
+ * (#, *, digits) are deliberately absent: they are only emoji after VS16.
163
163
  *
164
- * Over-counting these is safe (padding absorbs the spare cell); under-counting
165
- * spills: a row measured at the terminal width wraps its last cell onto the
166
- * next row and punches the caret/glyphs through the card below.
164
+ * Which width each one gets is decided by {@link EMOJI_PRESENTATION_SYMBOLS},
165
+ * not by this membership list.
167
166
  */
168
167
  const EMOJI_SYMBOL_RANGES = [
169
168
  [0x203c, 0x2049], [0x2122, 0x2139], [0x2194, 0x21aa],
@@ -183,7 +182,32 @@ const EMOJI_SYMBOL_RANGES = [
183
182
  [0x2763, 0x2764], [0x2795, 0x2797], [0x27a1, 0x27a1], [0x27b0, 0x27b0], [0x27bf, 0x27bf],
184
183
  [0x2934, 0x2935], [0x2b05, 0x2b07], [0x2b1b, 0x2b1c], [0x2b50, 0x2b50], [0x2b55, 0x2b55],
185
184
  ];
185
+ /**
186
+ * The subset of {@link EMOJI_SYMBOL_RANGES} whose Unicode default presentation
187
+ * is emoji (`Emoji_Presentation=Yes` in `emoji-data.txt`, Unicode 17.0): every
188
+ * terminal draws these two cells wide with no variation selector, so they are
189
+ * budgeted two cells and left alone.
190
+ *
191
+ * Everything else in the table defaults to *text* presentation. Terminals with
192
+ * an emoji fallback font often substitute a colour glyph for those anyway — and
193
+ * that glyph is wider than the cell it advances, so it collides with its
194
+ * neighbours and, because the table used to budget two cells for it, every row
195
+ * containing one ended a cell short. Those symbols are budgeted one cell and the
196
+ * painter pins the text form with VS15.
197
+ */
198
+ const EMOJI_PRESENTATION_RANGES = [
199
+ [0x231a, 0x231b], [0x23e9, 0x23ec], [0x23f0, 0x23f0], [0x23f3, 0x23f3],
200
+ [0x25fd, 0x25fe], [0x2614, 0x2615], [0x2648, 0x2653], [0x267f, 0x267f],
201
+ [0x2693, 0x2693], [0x26a1, 0x26a1], [0x26aa, 0x26ab], [0x26bd, 0x26be],
202
+ [0x26c4, 0x26c5], [0x26ce, 0x26ce], [0x26d4, 0x26d4], [0x26ea, 0x26ea],
203
+ [0x26f2, 0x26f3], [0x26f5, 0x26f5], [0x26fa, 0x26fa], [0x26fd, 0x26fd],
204
+ [0x2705, 0x2705], [0x270a, 0x270b], [0x2728, 0x2728], [0x274c, 0x274c],
205
+ [0x274e, 0x274e], [0x2753, 0x2755], [0x2757, 0x2757], [0x2795, 0x2797],
206
+ [0x27b0, 0x27b0], [0x27bf, 0x27bf], [0x2b1b, 0x2b1c], [0x2b50, 0x2b50],
207
+ [0x2b55, 0x2b55],
208
+ ];
186
209
  const EMOJI_SYMBOLS = new Set(EMOJI_SYMBOL_RANGES.flatMap(([start, end]) => Array.from({ length: end - start + 1 }, (_, index) => start + index)));
210
+ const EMOJI_PRESENTATION_SYMBOLS = new Set(EMOJI_PRESENTATION_RANGES.flatMap(([start, end]) => Array.from({ length: end - start + 1 }, (_, index) => start + index)));
187
211
  /**
188
212
  * Terminal cell width for one string.
189
213
  *
@@ -193,10 +217,13 @@ const EMOJI_SYMBOLS = new Set(EMOJI_SYMBOL_RANGES.flatMap(([start, end]) => Arra
193
217
  * those ambiguous glyphs as two made `repeatToWidth('─', cols)` paint a
194
218
  * half-width rule and parked the input cursor half a cell past the text.
195
219
  *
196
- * Emoji-bearing symbols are the exception: an emoji font draws them two cells
197
- * wide even where wcwidth says one, and / from `npm test` spilled a row
198
- * into the next card. Variation selectors are zero-width, so ✔️ counts once
199
- * for the base plus nothing for VS16.
220
+ * Emoji-bearing symbols are the exception: a terminal with an emoji font draws
221
+ * a symbol the monospace font lacks with a colour glyph that is wider than the
222
+ * cell it advances, so they are budgeted two cells. {@link pinEmojiCells} makes
223
+ * the terminal actually spend both: VS15 asks for the narrow text form, and a
224
+ * reserving space clears the second cell when the run does not already end in
225
+ * one. Budgeting two cells without clearing the second is what left `✖`
226
+ * overlapping the `|` beside it while every `▶` row came up a cell short.
200
227
  *
201
228
  * Overflow into the input box is handled by clipping/padding painted rows to
202
229
  * the measured column count, not by inflating glyph width.
@@ -238,6 +265,50 @@ export function displayWidth(text) {
238
265
  }
239
266
  return width;
240
267
  }
268
+ /**
269
+ * Make a painted row spend the two cells {@link displayWidth} budgets for every
270
+ * BMP emoji symbol.
271
+ *
272
+ * The monospace font of the terminal this was measured on covers `▶` but not
273
+ * `✖` or `ℹ`, so the two fall back to a colour emoji glyph about 1.6 cells wide
274
+ * while still advancing one cell: the `|` and `^` beside them were drawn under
275
+ * the glyph, and the row ended short because the second budgeted cell was never
276
+ * spent. The fix has two halves:
277
+ *
278
+ * - VS15 asks for the narrow text form (`emoji-variation-sequences.txt`,
279
+ * Unicode 17.0, lists `2139 FE0E` and `2716 FE0E` among 371 such sequences).
280
+ * Terminals that ignore it fall back to the colour glyph, which the next
281
+ * bullet still contains.
282
+ * - A reserving space supplies the second cell, always emitted even when the run
283
+ * already has one. That keeps the budget and the terminal in step for every
284
+ * shape: the table counts the symbol as two cells plus every space the text
285
+ * carries, and the terminal spends one cell of glyph advance, one for the
286
+ * reserving space, and one for each of those spaces.
287
+ *
288
+ * A symbol whose Unicode default presentation is emoji already advances two
289
+ * cells, so it is left untouched.
290
+ * @param text - one already-padded, already-clipped row.
291
+ * @returns the row with the text request and the second cell filled in.
292
+ */
293
+ export function pinEmojiCells(text) {
294
+ let out = '';
295
+ let index = 0;
296
+ while (index < text.length) {
297
+ const cp = text.codePointAt(index);
298
+ if (cp === undefined)
299
+ break;
300
+ const char = String.fromCodePoint(cp);
301
+ index += char.length;
302
+ out += char;
303
+ if (!EMOJI_SYMBOLS.has(cp) || EMOJI_PRESENTATION_SYMBOLS.has(cp))
304
+ continue;
305
+ const selector = text.codePointAt(index);
306
+ if (selector === 0xfe0e || selector === 0xfe0f)
307
+ index += 1;
308
+ out += '\uFE0E ';
309
+ }
310
+ return out;
311
+ }
241
312
  /** Pad or clip one already-sanitized line so it occupies exactly `width` cells. */
242
313
  export function padToWidth(text, width) {
243
314
  const safe = sanitizeTerminalText(text);