@jini-ai/ui 0.3.3 → 0.3.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 (41) hide show
  1. package/dist/features/execution/constants.d.ts +30 -0
  2. package/dist/features/execution/constants.d.ts.map +1 -1
  3. package/dist/features/execution/constants.js +45 -0
  4. package/dist/features/execution/constants.js.map +1 -1
  5. package/dist/features/execution/index.d.ts +3 -3
  6. package/dist/features/execution/index.d.ts.map +1 -1
  7. package/dist/features/execution/index.js +2 -2
  8. package/dist/features/execution/index.js.map +1 -1
  9. package/dist/features/execution/react/components/AgentCliEnvFields.d.ts.map +1 -1
  10. package/dist/features/execution/react/components/AgentCliEnvFields.js +8 -1
  11. package/dist/features/execution/react/components/AgentCliEnvFields.js.map +1 -1
  12. package/dist/features/execution/react/components/ByokProviderForm.d.ts +28 -1
  13. package/dist/features/execution/react/components/ByokProviderForm.d.ts.map +1 -1
  14. package/dist/features/execution/react/components/ByokProviderForm.js +40 -21
  15. package/dist/features/execution/react/components/ByokProviderForm.js.map +1 -1
  16. package/dist/features/execution/react/components/ExecutionTab.d.ts +2 -1
  17. package/dist/features/execution/react/components/ExecutionTab.d.ts.map +1 -1
  18. package/dist/features/execution/react/components/ExecutionTab.js +7 -3
  19. package/dist/features/execution/react/components/ExecutionTab.js.map +1 -1
  20. package/dist/features/execution/react/components/LocalCliAgentCard.d.ts.map +1 -1
  21. package/dist/features/execution/react/components/LocalCliAgentCard.js +17 -27
  22. package/dist/features/execution/react/components/LocalCliAgentCard.js.map +1 -1
  23. package/dist/features/execution/react/hooks/useReasoningControl.d.ts +72 -0
  24. package/dist/features/execution/react/hooks/useReasoningControl.d.ts.map +1 -0
  25. package/dist/features/execution/react/hooks/useReasoningControl.js +111 -0
  26. package/dist/features/execution/react/hooks/useReasoningControl.js.map +1 -0
  27. package/dist/features/execution/rules.d.ts +87 -1
  28. package/dist/features/execution/rules.d.ts.map +1 -1
  29. package/dist/features/execution/rules.js +210 -1
  30. package/dist/features/execution/rules.js.map +1 -1
  31. package/dist/features/execution/types.d.ts +82 -0
  32. package/dist/features/execution/types.d.ts.map +1 -1
  33. package/dist/features/mcp-ui/sandbox-proxy.d.ts +41 -0
  34. package/dist/features/mcp-ui/sandbox-proxy.d.ts.map +1 -1
  35. package/dist/features/mcp-ui/sandbox-proxy.js +88 -0
  36. package/dist/features/mcp-ui/sandbox-proxy.js.map +1 -1
  37. package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts.map +1 -1
  38. package/dist/features/media-providers/react/components/MediaProvidersTab.js +6 -1
  39. package/dist/features/media-providers/react/components/MediaProvidersTab.js.map +1 -1
  40. package/dist/features/settings/dialog/styles/settings-dialog.css +53 -0
  41. package/package.json +1 -1
@@ -2,7 +2,8 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import { useState } from 'react';
3
3
  import { useT } from '../../../i18n/index.js';
4
4
  import { CUSTOM_MODEL_SENTINEL, DEFAULT_AGENT_DESCRIPTIONS } from '../../constants.js';
5
- import { agentExecutableRepairState, agentMetaLabel, agentModelSummary, binPathEnvField, selectedAgentModel, selectedAgentReasoning, shouldShowCustomModelInput, } from '../../rules.js';
5
+ import { agentExecutableRepairState, agentMetaLabel, agentModelSummary, binPathEnvField, } from '../../rules.js';
6
+ import { useReasoningControl } from '../hooks/useReasoningControl.js';
6
7
  import { AgentCliEnvFields } from './AgentCliEnvFields.js';
7
8
  import { AgentDiagnosticRow } from './AgentDiagnosticRow.js';
8
9
  import { SearchableModelSelect } from './SearchableModelSelect.js';
@@ -38,27 +39,8 @@ export function LocalCliAgentCard({ agent, config, selected, onSelect, onModelCh
38
39
  installed: t('Installed'),
39
40
  notInstalled: t('Not installed'),
40
41
  });
41
- const models = agent.models ?? [];
42
- const hasModels = models.length > 0;
43
- const reasoningOptions = agent.reasoningOptions ?? [];
44
- const hasReasoning = reasoningOptions.length > 0;
45
- const resolvedModel = selectedAgentModel(config, agent);
46
- const rawModel = config.modelByAgentId?.[agent.id] ?? '';
47
42
  const summary = agentModelSummary(config, agent);
48
- const reasoningValue = selectedAgentReasoning(config, agent);
49
- // Adapters opt out via `supportsCustomModel: false` when their CLI has no
50
- // free-text model flag, or validates the id against a live catalog and
51
- // rejects unknown ones. `undefined` allows it, matching every adapter's
52
- // default before this field existed.
53
- const allowCustomModel = agent.supportsCustomModel !== false;
54
- const knownModelIds = models.map((model) => model.id);
55
- const customActive = allowCustomModel && hasModels && shouldShowCustomModelInput(resolvedModel, knownModelIds, explicitCustomMode);
56
- const selectValue = customActive ? CUSTOM_MODEL_SENTINEL : resolvedModel;
57
- // While the custom box is open, the text field must show the operator's raw
58
- // typed text (which may not resolve to anything yet) rather than the
59
- // resolved-with-fallback value — otherwise every keystroke would show a
60
- // stale fallback model instead of what was actually typed.
61
- const customModelInputValue = explicitCustomMode ? rawModel : resolvedModel;
43
+ const { hasModels, reasoningOptions, hasReasoning, reasoningValue, reasoningDisabled, allowCustomModel, customActive, modelChoices, selectValue, customModelInputValue, resolveNextModelId, resolveReasoningModelId, } = useReasoningControl({ agent, config, explicitCustomMode });
62
44
  // `modelsSource` is optional in the contract, so an absent value means the
63
45
  // host did not say where the list came from — NOT that it came from a
64
46
  // built-in fallback. Defaulting to 'fallback' rendered "Built-in list" over
@@ -107,15 +89,23 @@ export function LocalCliAgentCard({ agent, config, selected, onSelect, onModelCh
107
89
  };
108
90
  return (_jsxs("div", { className: 'jini-agent-card' +
109
91
  (selected ? ' is-selected' : '') +
110
- (agent.installed ? ' is-installed' : ' is-missing'), "data-testid": `jini-agent-card-${agent.id}`, children: [_jsxs("div", { className: "jini-agent-card-main", children: [_jsxs("button", { type: "button", className: "jini-agent-card-select", "data-testid": `jini-agent-select-${agent.id}`, "aria-pressed": selected, disabled: !agent.installed, onClick: () => onSelect(agent.id), children: [_jsx("span", { className: "jini-agent-card-icon", "aria-hidden": "true", children: renderIcon ? renderIcon(agent) : agent.label.slice(0, 1).toUpperCase() }), _jsxs("span", { className: "jini-agent-card-body", children: [_jsxs("span", { className: "jini-agent-card-name", children: [_jsx("span", { className: "jini-agent-card-title", children: agent.label }), description ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "jini-agent-card-name-divider", "aria-hidden": "true", children: "\u00B7" }), _jsx("span", { className: "jini-agent-card-tagline", children: description })] })) : null] }), agent.badges?.length ? (_jsx("span", { className: "jini-agent-card-badges", children: agent.badges.map((badge) => (_jsx("span", { className: "jini-agent-card-badge", children: badge }, badge))) })) : null, meta.text ? (_jsx("span", { className: "jini-agent-card-meta", children: _jsx("span", { title: meta.title || undefined, children: meta.text }) })) : null, !selected && summary ? (_jsxs("span", { className: "jini-agent-card-model-summary", children: [_jsx("span", { children: t('Model') }), _jsx("strong", { children: summary })] })) : null] })] }), selected && onTest ? (_jsx("button", { type: "button", className: 'jini-btn jini-agent-card-test' + (testing ? ' is-loading' : ''), "data-testid": `jini-agent-test-${agent.id}`, disabled: testing, onClick: () => onTest(agent), children: testing ? t('Testing…') : t('Test') })) : null] }), (agent.diagnostics ?? []).map((diagnostic, index) => (_jsx(AgentDiagnosticRow, { diagnostic: diagnostic, handlers: diagnosticHandlers }, `${diagnostic.reason}-${index}`))), selected && (hasModels || hasReasoning) ? (_jsxs("div", { className: "jini-agent-card-config", children: [hasModels ? (_jsxs(_Fragment, { children: [_jsxs("label", { className: "jini-field", children: [_jsxs("span", { className: "jini-field-label", children: [t('Model'), sourceLabel ? (_jsx("span", { className: `jini-agent-model-source ${source}`, children: sourceLabel })) : null] }), _jsx(SearchableModelSelect, { className: "jini-input jini-agent-model-select", ariaLabel: t('Model'), searchPlaceholder: t('Search models'), testId: `jini-agent-model-${agent.id}`, searchInputTestId: `jini-agent-model-search-${agent.id}`, value: selectValue, models: models, additionalOptions: allowCustomModel ? [{ value: CUSTOM_MODEL_SENTINEL, label: t('Custom…') }] : undefined, onChange: (nextValue) => {
92
+ (agent.installed ? ' is-installed' : ' is-missing'), "data-testid": `jini-agent-card-${agent.id}`, children: [_jsxs("div", { className: "jini-agent-card-main", children: [_jsxs("button", { type: "button", className: "jini-agent-card-select", "data-testid": `jini-agent-select-${agent.id}`, "aria-pressed": selected, disabled: !agent.installed, onClick: () => onSelect(agent.id), children: [_jsx("span", { className: "jini-agent-card-icon", "aria-hidden": "true", children: renderIcon ? renderIcon(agent) : agent.label.slice(0, 1).toUpperCase() }), _jsxs("span", { className: "jini-agent-card-body", children: [_jsxs("span", { className: "jini-agent-card-name", children: [_jsx("span", { className: "jini-agent-card-title", children: agent.label }), description ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "jini-agent-card-name-divider", "aria-hidden": "true", children: "\u00B7" }), _jsx("span", { className: "jini-agent-card-tagline", children: description })] })) : null] }), agent.badges?.length ? (_jsx("span", { className: "jini-agent-card-badges", children: agent.badges.map((badge) => (_jsx("span", { className: "jini-agent-card-badge", children: badge }, badge))) })) : null, meta.text ? (_jsx("span", { className: "jini-agent-card-meta", children: _jsx("span", { title: meta.title || undefined, children: meta.text }) })) : null, !selected && summary ? (_jsxs("span", { className: "jini-agent-card-model-summary", children: [_jsx("span", { children: t('Model') }), _jsx("strong", { children: summary })] })) : null] })] }), selected && onTest ? (_jsx("button", { type: "button", className: 'jini-btn jini-agent-card-test' + (testing ? ' is-loading' : ''), "data-testid": `jini-agent-test-${agent.id}`, disabled: testing, onClick: () => onTest(agent), children: testing ? t('Testing…') : t('Test') })) : null] }), (agent.diagnostics ?? []).map((diagnostic, index) => (_jsx(AgentDiagnosticRow, { diagnostic: diagnostic, handlers: diagnosticHandlers }, `${diagnostic.reason}-${index}`))), selected && (hasModels || hasReasoning) ? (_jsxs("div", { className: "jini-agent-card-config", children: [hasModels ? (_jsxs(_Fragment, { children: [_jsxs("label", { className: "jini-field", children: [_jsxs("span", { className: "jini-field-label", children: [t('Model'), sourceLabel ? (_jsx("span", { className: `jini-agent-model-source ${source}`, children: sourceLabel })) : null] }), _jsx(SearchableModelSelect, { className: "jini-input jini-agent-model-select", ariaLabel: t('Model'), searchPlaceholder: t('Search models'), testId: `jini-agent-model-${agent.id}`, searchInputTestId: `jini-agent-model-search-${agent.id}`, value: selectValue, models: modelChoices, additionalOptions: allowCustomModel ? [{ value: CUSTOM_MODEL_SENTINEL, label: t('Custom…') }] : undefined, onChange: (nextValue) => {
111
93
  if (nextValue === CUSTOM_MODEL_SENTINEL) {
112
94
  setExplicitCustomMode(true);
113
95
  onModelChange(agent.id, '');
96
+ return;
114
97
  }
115
- else {
116
- setExplicitCustomMode(false);
117
- onModelChange(agent.id, nextValue);
118
- }
119
- } })] }), sourceHint ? _jsx("p", { className: "jini-field-hint", children: sourceHint }) : null] })) : null, customActive ? (_jsxs("label", { className: "jini-field", children: [_jsx("span", { className: "jini-field-label", children: t('Custom model id') }), _jsx("input", { className: "jini-input", type: "text", "data-testid": `jini-agent-model-custom-${agent.id}`, value: customModelInputValue, placeholder: t('e.g. my-fine-tuned-model'), spellCheck: false, onChange: (event) => onModelChange(agent.id, event.target.value.trim()) })] })) : null, hasReasoning ? (_jsxs("label", { className: "jini-field", children: [_jsx("span", { className: "jini-field-label", children: t('Reasoning effort') }), _jsx("select", { className: "jini-input", "data-testid": `jini-agent-reasoning-${agent.id}`, value: reasoningValue, onChange: (event) => onReasoningChange(agent.id, event.target.value), children: reasoningOptions.map((option) => (_jsx("option", { value: option.id, children: option.label }, option.id))) })] })) : null] })) : null, selected ? (_jsx(AgentCliEnvFields, { agentId: agent.id, fields: cliEnvFields, config: config, onChange: onEnvChange })) : null, result ? (_jsx("p", { className: 'jini-agent-card-test-result is-' + result.status, role: result.status === 'error' ? 'alert' : 'status', children: result.message ?? (result.status === 'ok' ? t('Agent is ready.') : t('Agent check failed')) })) : null, repair && repairField ? (_jsxs("div", { className: "jini-agent-card-path-repair", children: [_jsx("span", { className: "jini-field-hint", children: t('A custom path override did not work, so this used the automatically detected binary instead.') }), _jsxs("div", { className: "jini-agent-card-path-repair-actions", children: [repair.canUseDetected ? (_jsx("button", { type: "button", className: "jini-btn", "data-testid": `jini-agent-path-repair-use-${agent.id}`, onClick: () => onEnvChange(agent.id, repairField.envKey, repair.detectedPath), children: t('Use detected path') })) : null, _jsx("button", { type: "button", className: "jini-btn jini-btn-ghost", "data-testid": `jini-agent-path-repair-clear-${agent.id}`, onClick: () => onEnvChange(agent.id, repairField.envKey, ''), children: t('Clear custom path') })] })] })) : null] }));
98
+ setExplicitCustomMode(false);
99
+ onModelChange(agent.id, resolveNextModelId(nextValue));
100
+ } })] }), sourceHint ? _jsx("p", { className: "jini-field-hint", children: sourceHint }) : null] })) : null, customActive ? (_jsxs("label", { className: "jini-field", children: [_jsx("span", { className: "jini-field-label", children: t('Custom model id') }), _jsx("input", { className: "jini-input", type: "text", "data-testid": `jini-agent-model-custom-${agent.id}`, value: customModelInputValue, placeholder: t('e.g. my-fine-tuned-model'), spellCheck: false, onChange: (event) => onModelChange(agent.id, event.target.value.trim()) })] })) : null, hasReasoning ? (_jsxs("label", { className: "jini-field", children: [_jsx("span", { className: "jini-field-label", children: t('Reasoning effort') }), _jsx("select", { className: "jini-input", "data-testid": `jini-agent-reasoning-${agent.id}`, value: reasoningValue, disabled: reasoningDisabled, onChange: (event) => {
101
+ // A model-suffix agent has no reasoning value of its own to record: the choice
102
+ // is which model id runs, so it goes back out through `onModelChange`.
103
+ const suffixModelId = resolveReasoningModelId(event.target.value);
104
+ if (suffixModelId !== null) {
105
+ onModelChange(agent.id, suffixModelId);
106
+ return;
107
+ }
108
+ onReasoningChange(agent.id, event.target.value);
109
+ }, children: reasoningOptions.map((option) => (_jsx("option", { value: option.id, children: option.label }, option.id))) })] })) : null] })) : null, selected ? (_jsx(AgentCliEnvFields, { agentId: agent.id, fields: cliEnvFields, config: config, onChange: onEnvChange })) : null, result ? (_jsx("p", { className: 'jini-agent-card-test-result is-' + result.status, role: result.status === 'error' ? 'alert' : 'status', children: result.message ?? (result.status === 'ok' ? t('Agent is ready.') : t('Agent check failed')) })) : null, repair && repairField ? (_jsxs("div", { className: "jini-agent-card-path-repair", children: [_jsx("span", { className: "jini-field-hint", children: t('A custom path override did not work, so this used the automatically detected binary instead.') }), _jsxs("div", { className: "jini-agent-card-path-repair-actions", children: [repair.canUseDetected ? (_jsx("button", { type: "button", className: "jini-btn", "data-testid": `jini-agent-path-repair-use-${agent.id}`, onClick: () => onEnvChange(agent.id, repairField.envKey, repair.detectedPath), children: t('Use detected path') })) : null, _jsx("button", { type: "button", className: "jini-btn jini-btn-ghost", "data-testid": `jini-agent-path-repair-clear-${agent.id}`, onClick: () => onEnvChange(agent.id, repairField.envKey, ''), children: t('Clear custom path') })] })] })) : null] }));
120
110
  }
121
111
  //# sourceMappingURL=LocalCliAgentCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalCliAgentCard.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/LocalCliAgentCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalCliAgentCard.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/LocalCliAgentCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import type { AgentModelOption, DetectedAgent, LocalCliConfig, ReasoningModelGroup } from '../../types.js';
2
+ export interface UseReasoningControlOptions {
3
+ agent: DetectedAgent;
4
+ config: LocalCliConfig;
5
+ explicitCustomMode?: boolean | undefined;
6
+ }
7
+ export interface UseReasoningControlResult {
8
+ /** The agent's model list, or empty array if not defined. */
9
+ models: readonly AgentModelOption[];
10
+ /** Whether the agent has any models defined. */
11
+ hasModels: boolean;
12
+ /** The model that will run, with fallback to first model or empty string. */
13
+ resolvedModel: string;
14
+ /** The raw model string configured for this agent in `config.modelByAgentId`. */
15
+ rawModel: string;
16
+ /** Vocabulary of suffix levels declared in `agent.reasoningInModelId.levels`. */
17
+ suffixLevels: readonly AgentModelOption[];
18
+ /** IDs of the suffix levels. */
19
+ suffixLevelIds: readonly string[];
20
+ /** Model groups when `reasoningInModelId` is declared, or `null` otherwise. */
21
+ modelGroups: readonly ReasoningModelGroup[] | null;
22
+ /** Active group corresponding to the resolved model, or `null`. */
23
+ activeGroup: ReasoningModelGroup | null;
24
+ /** Active effort level split from the resolved model, or `null`. */
25
+ activeLevel: string | null;
26
+ /** Flat reasoning options declared in `agent.reasoningOptions`. */
27
+ flatReasoningOptions: readonly AgentModelOption[];
28
+ /** Effort options to render in the reasoning dropdown: either flat options or the active group's levels. */
29
+ reasoningOptions: readonly AgentModelOption[];
30
+ /** Whether reasoning effort controls should be displayed. */
31
+ hasReasoning: boolean;
32
+ /** Current value for the reasoning select input. */
33
+ reasoningValue: string;
34
+ /** Whether the reasoning select should be disabled (e.g. single-variant base model). */
35
+ reasoningDisabled: boolean;
36
+ /** Whether custom model free-text input is supported. */
37
+ allowCustomModel: boolean;
38
+ /** Known model IDs in the agent's catalog. */
39
+ knownModelIds: readonly string[];
40
+ /** Whether the custom model input is currently active. */
41
+ customActive: boolean;
42
+ /** Options for the model select: base models for suffix agents, or raw models list. */
43
+ modelChoices: readonly AgentModelOption[];
44
+ /** Selected value for the model select element. */
45
+ selectValue: string;
46
+ /** Display value for the custom model text input. */
47
+ customModelInputValue: string;
48
+ /**
49
+ * Resolves the next full model ID when the base model selection changes.
50
+ * For model-suffix agents, carries over the active level if supported by the new base,
51
+ * or falls back to a valid level for the target group.
52
+ */
53
+ resolveNextModelId: (nextValue: string) => string;
54
+ /**
55
+ * Resolves the full model ID when a reasoning level is selected for a model-suffix agent.
56
+ * Returns `null` if the agent does not use suffix-in-model-id reasoning.
57
+ */
58
+ resolveReasoningModelId: (level: string) => string | null;
59
+ }
60
+ /**
61
+ * Orchestrates reasoning-effort and model selection derivation for a local CLI agent.
62
+ *
63
+ * Supports two distinct reasoning shapes:
64
+ * 1. `reasoningOptions` — Flat vocabulary sent via dedicated CLI flags (`--effort high`).
65
+ * Persisted independently via `onReasoningChange`.
66
+ * 2. `reasoningInModelId` — Effort level is encoded as a model slug suffix (`gemini-3.1-pro-high`).
67
+ * The selection is recombined into the model ID itself via `onModelChange`, with base model
68
+ * and effort levels derived from the agent's model catalog via `reasoningModelGroups`.
69
+ */
70
+ export declare function useReasoningControl(options: UseReasoningControlOptions): UseReasoningControlResult;
71
+ export declare function useReasoningControl(agent: DetectedAgent, config: LocalCliConfig, explicitCustomMode?: boolean): UseReasoningControlResult;
72
+ //# sourceMappingURL=useReasoningControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReasoningControl.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/hooks/useReasoningControl.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,6DAA6D;IAC7D,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpC,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC1C,gCAAgC;IAChC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,+EAA+E;IAC/E,WAAW,EAAE,SAAS,mBAAmB,EAAE,GAAG,IAAI,CAAC;IACnD,mEAAmE;IACnE,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACxC,oEAAoE;IACpE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mEAAmE;IACnE,oBAAoB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClD,4GAA4G;IAC5G,gBAAgB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,6DAA6D;IAC7D,YAAY,EAAE,OAAO,CAAC;IACtB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,0DAA0D;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,uFAAuF;IACvF,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC1C,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD;;;OAGG;IACH,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,yBAAyB,CAAC;AACpG,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,cAAc,EACtB,kBAAkB,CAAC,EAAE,OAAO,GAC3B,yBAAyB,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { useCallback } from 'react';
2
+ import { CUSTOM_MODEL_SENTINEL } from '../../constants.js';
3
+ import { modelIdForReasoningLevel, reasoningModelGroupFor, reasoningModelGroups, selectedAgentModel, selectedAgentReasoning, shouldShowCustomModelInput, splitReasoningModelId, } from '../../rules.js';
4
+ export function useReasoningControl(optionsOrAgent, maybeConfig, maybeExplicitCustomMode) {
5
+ const { agent, config, explicitCustomMode = false } = 'agent' in optionsOrAgent && 'config' in optionsOrAgent
6
+ ? optionsOrAgent
7
+ : {
8
+ agent: optionsOrAgent,
9
+ config: maybeConfig,
10
+ explicitCustomMode: maybeExplicitCustomMode ?? false,
11
+ };
12
+ const models = agent.models ?? [];
13
+ const hasModels = models.length > 0;
14
+ const resolvedModel = selectedAgentModel(config, agent);
15
+ const rawModel = config.modelByAgentId?.[agent.id] ?? '';
16
+ // Two ways an agent can expose a reasoning-effort axis, and the card branches on the DECLARATION
17
+ // rather than on the agent's id — adding a third runtime with either shape is a def change, not
18
+ // an edit here.
19
+ //
20
+ // `reasoningOptions` — one flat vocabulary that travels to the CLI as its own flag
21
+ // (`claude --effort high`, codex's `-c model_reasoning_effort=...`).
22
+ // The choice is its own persisted value; `onReasoningChange` owns it.
23
+ // `reasoningInModelId` — no effort flag exists; the level is a suffix on the model id itself
24
+ // (antigravity's `gemini-3.1-pro-high`). The choice IS the model, so
25
+ // it goes through `onModelChange`, and the available levels are
26
+ // derived PER BASE MODEL from the agent's own catalog — they are not
27
+ // uniform (`gemini-3.1-pro` has no `-medium`, and `agy --model`
28
+ // rejects one), so a fixed dropdown would offer ids the CLI refuses.
29
+ const suffixLevels = agent.reasoningInModelId?.levels ?? [];
30
+ const suffixLevelIds = suffixLevels.map((level) => level.id);
31
+ const modelGroups = suffixLevels.length > 0 ? reasoningModelGroups(models, suffixLevels) : null;
32
+ const activeGroup = modelGroups ? reasoningModelGroupFor(modelGroups, resolvedModel, suffixLevelIds) : null;
33
+ const activeLevel = modelGroups ? splitReasoningModelId(resolvedModel, suffixLevelIds).level : null;
34
+ const flatReasoningOptions = agent.reasoningOptions ?? [];
35
+ // Exactly one effort control, whichever shape declared it. `reasoningOptions` wins if a def ever
36
+ // declares both, rather than rendering two controls that disagree about where the choice lands.
37
+ const reasoningOptions = flatReasoningOptions.length > 0 ? flatReasoningOptions : (activeGroup?.levels ?? []);
38
+ const hasReasoning = reasoningOptions.length > 0;
39
+ const reasoningValue = flatReasoningOptions.length > 0
40
+ ? selectedAgentReasoning(config, agent)
41
+ : (activeLevel ?? reasoningOptions[0]?.id ?? '');
42
+ // A base model with exactly one variant has a real, fixed level worth showing — but nothing to
43
+ // choose between, so the control is shown disabled rather than offering an illusion of choice.
44
+ const reasoningDisabled = flatReasoningOptions.length === 0 && reasoningOptions.length < 2;
45
+ // Adapters opt out via `supportsCustomModel: false` when their CLI has no
46
+ // free-text model flag, or validates the id against a live catalog and
47
+ // rejects unknown ones. `undefined` allows it, matching every adapter's
48
+ // default before this field existed.
49
+ const allowCustomModel = agent.supportsCustomModel !== false && modelGroups === null;
50
+ const knownModelIds = models.map((model) => model.id);
51
+ const customActive = allowCustomModel && hasModels && shouldShowCustomModelInput(resolvedModel, knownModelIds, explicitCustomMode);
52
+ // A model-suffix agent picks a BASE model here; the effort control below supplies the rest of the
53
+ // id. Everything else about the field — search, labels, provenance badge — is unchanged.
54
+ const modelChoices = modelGroups
55
+ ? modelGroups.map((group) => ({ id: group.baseId, label: group.label }))
56
+ : models;
57
+ const selectValue = customActive
58
+ ? CUSTOM_MODEL_SENTINEL
59
+ : modelGroups
60
+ ? (activeGroup?.baseId ?? '')
61
+ : resolvedModel;
62
+ // While the custom box is open, the text field must show the operator's raw
63
+ // typed text (which may not resolve to anything yet) rather than the
64
+ // resolved-with-fallback value — otherwise every keystroke would show a
65
+ // stale fallback model instead of what was actually typed.
66
+ const customModelInputValue = explicitCustomMode ? rawModel : resolvedModel;
67
+ const resolveNextModelId = useCallback((nextValue) => {
68
+ if (!modelGroups) {
69
+ return nextValue;
70
+ }
71
+ // Switching base carries the current effort level over when the new base
72
+ // really has it, and lands on one it does have otherwise — never composes a
73
+ // slug (see `modelIdForReasoningLevel`), so `gemini-3.1-pro-medium` cannot be
74
+ // produced from a `medium` carried off `gemini-3.8-flash`.
75
+ const nextGroup = modelGroups.find((group) => group.baseId === nextValue);
76
+ return nextGroup ? modelIdForReasoningLevel(nextGroup, activeLevel) : nextValue;
77
+ }, [modelGroups, activeLevel]);
78
+ const resolveReasoningModelId = useCallback((level) => {
79
+ // A model-suffix agent has no reasoning value of its own to record: the choice
80
+ // is which model id runs, so it goes back out through `onModelChange`.
81
+ if (activeGroup) {
82
+ return modelIdForReasoningLevel(activeGroup, level);
83
+ }
84
+ return null;
85
+ }, [activeGroup]);
86
+ return {
87
+ models,
88
+ hasModels,
89
+ resolvedModel,
90
+ rawModel,
91
+ suffixLevels,
92
+ suffixLevelIds,
93
+ modelGroups,
94
+ activeGroup,
95
+ activeLevel,
96
+ flatReasoningOptions,
97
+ reasoningOptions,
98
+ hasReasoning,
99
+ reasoningValue,
100
+ reasoningDisabled,
101
+ allowCustomModel,
102
+ knownModelIds,
103
+ customActive,
104
+ modelChoices,
105
+ selectValue,
106
+ customModelInputValue,
107
+ resolveNextModelId,
108
+ resolveReasoningModelId,
109
+ };
110
+ }
111
+ //# sourceMappingURL=useReasoningControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReasoningControl.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/hooks/useReasoningControl.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentCliEnvFieldSpec, AgentDiagnostic, AgentExecutableRepair, AgentExecutableSource, AgentModelOption, ByokConfig, ByokProviderCredentials, ByokRequiredField, DetectedAgent, ExecutionConfig, ExecutionMode, LocalCliConfig, ProviderPreset } from './types.js';
1
+ import type { AgentCliEnvFieldSpec, AgentDiagnostic, AgentExecutableRepair, AgentExecutableSource, AgentModelOption, ApiKeyWarning, ByokConfig, ByokProviderCredentials, ByokRequiredField, DetectedAgent, ExecutionConfig, ExecutionMode, LocalCliConfig, ProviderPreset, ReasoningModelGroup } from './types.js';
2
2
  /**
3
3
  * Pure decision logic for the execution tab. Everything here is total and
4
4
  * side-effect free so the React layer stays a thin renderer — same split the
@@ -47,6 +47,36 @@ export declare function showsBaseUrlField(preset: ProviderPreset | null): boolea
47
47
  * so a caller can surface the first offender without re-sorting.
48
48
  */
49
49
  export declare function missingRequiredFields(config: ByokConfig, preset: ProviderPreset | null): readonly ByokRequiredField[];
50
+ /**
51
+ * The advisory "that key looks wrong" remark for the current draft, or `null` for silence.
52
+ *
53
+ * Warns ONLY on what it can positively recognise as wrong, and there are exactly two such things:
54
+ * a key wearing another catalogued vendor's prefix (pasted into the wrong provider's field), and a
55
+ * key shorter than {@link MIN_PLAUSIBLE_API_KEY_LENGTH} (the reported Chrome-autofilled PASSWORD).
56
+ * Everything else — including every shape this package has never seen — is silence.
57
+ *
58
+ * That direction is the whole design, and it is the fix for a real reported defect. This function
59
+ * used to ask "does the key match the selected preset's pattern?" and warn when it did not: a
60
+ * positive allowlist, which false-positives the instant a vendor issues a shape the catalog has not
61
+ * been taught. That happened within hours of shipping — an operator pasted a working Google Gemini
62
+ * key and was told it did not look like a Google API key. A catalog can prove a string belongs to
63
+ * vendor X; it can never prove a string belongs to nobody. Do not re-derive an allowlist here, and
64
+ * do not add a per-provider branch: the conditions above are the only two that hold without one.
65
+ *
66
+ * ADVISORY ONLY, also by construction: this returns a message, not a validity verdict. No caller may
67
+ * use it to disable a control or gate a submit — a client-side guess must never be able to block a
68
+ * working credential. It is deliberately absent from {@link missingRequiredFields}, which IS a gate.
69
+ *
70
+ * @param config - The active BYOK draft; only `apiKey` is read.
71
+ * @param preset - The resolved preset, or `null` on custom/manual, which is exempt from the
72
+ * cross-vendor arm (see {@link foreignKeyOwner}) but not from the length floor.
73
+ * @param presets - The catalog to recognise foreign keys against. Defaults to empty, which is why
74
+ * omitting it costs the cross-vendor arm and gains nothing else: an under-informed rule must
75
+ * degrade toward silence, never toward guessing.
76
+ * @returns A translatable {@link ApiKeyWarning}, or `null` when there is nothing to say.
77
+ * @complexity O(n·m) via {@link foreignKeyOwner}; the length check is O(1).
78
+ */
79
+ export declare function apiKeyFormatWarning(config: ByokConfig, preset: ProviderPreset | null, presets?: readonly ProviderPreset[]): ApiKeyWarning | null;
50
80
  /**
51
81
  * The credentials a given preset would use — the active selection's live
52
82
  * top-level fields when `preset` IS the current selection, otherwise that
@@ -215,4 +245,60 @@ export declare function filterAgentModelOptions(options: readonly AgentModelOpti
215
245
  * nothing beyond the always-visible one-line `message`. Origin: the
216
246
  * `tooltip` computation inside `AgentDiagnosticRow`. */
217
247
  export declare function agentDiagnosticTooltip(diagnostic: AgentDiagnostic): string;
248
+ /**
249
+ * Splits a model id into its base and its reasoning-effort suffix, for a runtime that encodes
250
+ * effort inside the id (`DetectedAgent.reasoningInModelId`).
251
+ *
252
+ * Only a trailing `-<token>` whose token appears in `levelIds` is a level. Everything else stays
253
+ * part of the base id — which is the whole point: `claude-opus-4-6-thinking` ends in `-thinking`,
254
+ * which LOOKS like a modifier and is not an effort level, and reading it as one would invent a
255
+ * `claude-opus-4-6` base that has no variants and a `thinking` level no control can render.
256
+ *
257
+ * @param modelId - A full model id from the agent's own catalog.
258
+ * @param levelIds - The declared effort vocabulary (`reasoningInModelId.levels`, ids only).
259
+ * @returns The base id and the level, or `level: null` when the id carries no recognized suffix.
260
+ * @complexity O(k) in `levelIds.length`.
261
+ */
262
+ export declare function splitReasoningModelId(modelId: string, levelIds: readonly string[]): {
263
+ baseId: string;
264
+ level: string | null;
265
+ };
266
+ /**
267
+ * Groups an agent's model list by base model, recording for each base the effort levels it
268
+ * ACTUALLY has.
269
+ *
270
+ * Derived, never declared — that is the correctness property this function exists for. Verified
271
+ * against `agy models`' real output: `gemini-3.8-flash` has high/medium/low, `gemini-3.1-pro` has
272
+ * ONLY high and low, `gpt-oss-120b` only medium, and `claude-sonnet-4-6` none. A fixed
273
+ * high/medium/low control would offer `gemini-3.1-pro-medium`, which does not exist and which
274
+ * `agy --model` rejects outright. Running the same derivation over whichever list the host
275
+ * supplied — live from the CLI or the def's `fallbackModels` — is also what makes an offline
276
+ * degrade behave consistently rather than differently.
277
+ *
278
+ * @param models - The agent's model catalog, in the order it should be offered.
279
+ * @param levels - The declared effort vocabulary, in display order.
280
+ * @returns One group per base id, in first-appearance order. With an empty vocabulary every id is
281
+ * its own bare group, so a caller needs no special case for "this agent declares nothing".
282
+ * @complexity O(n * k) in the catalog size and the vocabulary size.
283
+ */
284
+ export declare function reasoningModelGroups(models: readonly AgentModelOption[], levels: readonly AgentModelOption[]): ReasoningModelGroup[];
285
+ /** The group a full model id belongs to, or `null` when the id is not in this catalog at all — a
286
+ * saved pick from an older/different catalog must not be silently attached to some other base. */
287
+ export declare function reasoningModelGroupFor(groups: readonly ReasoningModelGroup[], modelId: string, levelIds: readonly string[]): ReasoningModelGroup | null;
288
+ /**
289
+ * Recombines a base model and an effort level back into one model id — the value `--model`
290
+ * actually receives.
291
+ *
292
+ * Never composes a string: every id it can return came out of the agent's own catalog. That is
293
+ * what makes "switch base while a level is selected" safe — carrying `medium` from
294
+ * `gemini-3.8-flash` over to `gemini-3.1-pro` cannot produce `gemini-3.1-pro-medium`, because
295
+ * that base's table has no `medium` entry and the fallback below lands on a level it does have.
296
+ *
297
+ * @param group - The target base's derived group.
298
+ * @param level - The level to prefer, or `null` for "no preference".
299
+ * @returns An id from the catalog: the requested level's, else the base's bare id, else its first
300
+ * available level's, else the bare base id (only reachable for a group built from nothing).
301
+ * @complexity O(1).
302
+ */
303
+ export declare function modelIdForReasoningLevel(group: ReasoningModelGroup, level: string | null): string;
218
304
  //# sourceMappingURL=rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/features/execution/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/features/execution/rules.ts"],"names":[],"mappings":"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"}