@jini-ai/ui 0.3.2 → 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.
- package/README.md +6 -4
- package/dist/features/execution/constants.d.ts +30 -0
- package/dist/features/execution/constants.d.ts.map +1 -1
- package/dist/features/execution/constants.js +45 -0
- package/dist/features/execution/constants.js.map +1 -1
- package/dist/features/execution/index.d.ts +3 -3
- package/dist/features/execution/index.d.ts.map +1 -1
- package/dist/features/execution/index.js +2 -2
- package/dist/features/execution/index.js.map +1 -1
- package/dist/features/execution/react/components/AgentCliEnvFields.d.ts.map +1 -1
- package/dist/features/execution/react/components/AgentCliEnvFields.js +8 -1
- package/dist/features/execution/react/components/AgentCliEnvFields.js.map +1 -1
- package/dist/features/execution/react/components/ByokProviderForm.d.ts +28 -1
- package/dist/features/execution/react/components/ByokProviderForm.d.ts.map +1 -1
- package/dist/features/execution/react/components/ByokProviderForm.js +40 -21
- package/dist/features/execution/react/components/ByokProviderForm.js.map +1 -1
- package/dist/features/execution/react/components/ExecutionTab.d.ts +2 -1
- package/dist/features/execution/react/components/ExecutionTab.d.ts.map +1 -1
- package/dist/features/execution/react/components/ExecutionTab.js +7 -3
- package/dist/features/execution/react/components/ExecutionTab.js.map +1 -1
- package/dist/features/execution/react/components/LocalCliAgentCard.d.ts.map +1 -1
- package/dist/features/execution/react/components/LocalCliAgentCard.js +17 -27
- package/dist/features/execution/react/components/LocalCliAgentCard.js.map +1 -1
- package/dist/features/execution/react/hooks/useReasoningControl.d.ts +72 -0
- package/dist/features/execution/react/hooks/useReasoningControl.d.ts.map +1 -0
- package/dist/features/execution/react/hooks/useReasoningControl.js +111 -0
- package/dist/features/execution/react/hooks/useReasoningControl.js.map +1 -0
- package/dist/features/execution/rules.d.ts +87 -1
- package/dist/features/execution/rules.d.ts.map +1 -1
- package/dist/features/execution/rules.js +210 -1
- package/dist/features/execution/rules.js.map +1 -1
- package/dist/features/execution/types.d.ts +82 -0
- package/dist/features/execution/types.d.ts.map +1 -1
- package/dist/features/mcp-ui/sandbox-proxy.d.ts +41 -0
- package/dist/features/mcp-ui/sandbox-proxy.d.ts.map +1 -1
- package/dist/features/mcp-ui/sandbox-proxy.js +88 -0
- package/dist/features/mcp-ui/sandbox-proxy.js.map +1 -1
- package/dist/features/media-providers/react/components/MediaProvidersTab.d.ts.map +1 -1
- package/dist/features/media-providers/react/components/MediaProvidersTab.js +6 -1
- package/dist/features/media-providers/react/components/MediaProvidersTab.js.map +1 -1
- package/dist/features/settings/dialog/styles/settings-dialog.css +53 -0
- package/dist/react/components/WorkingDirPicker.d.ts.map +1 -1
- package/dist/react/components/WorkingDirPicker.js +12 -6
- package/dist/react/components/WorkingDirPicker.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,10 +24,12 @@ but its reusable tabbed-dialog *shell* and 6 of its small, clean, generic
|
|
|
24
24
|
tabs (`appearance`, `notifications`, `language`, `instructions`,
|
|
25
25
|
`integrations`, `privacy`) shipped as `src/features/settings-dialog/`; see
|
|
26
26
|
`packages/ui/source-map.md`.
|
|
27
|
-
Also not here: chat/artifact UI — that's `@jini-ai/chat
|
|
28
|
-
`@jini-ai/chat-
|
|
29
|
-
|
|
30
|
-
`
|
|
27
|
+
Also not here: chat/artifact UI — that's `@jini-ai/chat`'s `./core` and `./react` subpaths (the
|
|
28
|
+
former standalone `@jini-ai/chat-core` package was retired into `./core` on 2026-08-03), and this
|
|
29
|
+
package's own `./renderers` subpath (the artifact-renderer registry, once planned as a separate
|
|
30
|
+
`renderers-react` package) — kept as separate subpaths deliberately, not folded into this
|
|
31
|
+
package's own React layer. See the chat-core/chat-react split discussion in
|
|
32
|
+
`ADS-memory/reports/jini-port/` session notes.
|
|
31
33
|
|
|
32
34
|
## Internal structure
|
|
33
35
|
|
|
@@ -15,6 +15,36 @@ export declare const CUSTOM_PRESET_ID = "custom";
|
|
|
15
15
|
* a legitimate pick — see `shouldShowCustomModelInput`). Origin:
|
|
16
16
|
* `CUSTOM_MODEL_SENTINEL`. */
|
|
17
17
|
export declare const CUSTOM_MODEL_SENTINEL = "__custom__";
|
|
18
|
+
/**
|
|
19
|
+
* The shortest string `apiKeyFormatWarning` will let pass without remark.
|
|
20
|
+
*
|
|
21
|
+
* Chosen from evidence rather than taste. The shortest real key shape any preset in
|
|
22
|
+
* {@link DEFAULT_PROVIDER_PRESETS} describes is Azure OpenAI's bare 32-character hex string;
|
|
23
|
+
* Google's is `AIza` + 35 = 39, OpenAI's `sk-` + 48 = 51, OpenRouter's `sk-or-v1-` + 64 = 73, and
|
|
24
|
+
* Anthropic's longer again. 20 therefore sits 12 characters below that floor, so no credential this
|
|
25
|
+
* catalog knows about can trip it, while it still catches the failure the check exists for: the
|
|
26
|
+
* ~15-character saved PASSWORD Chrome autofilled into the key field (see
|
|
27
|
+
* `ByokProviderForm.credential-hygiene.test.tsx`).
|
|
28
|
+
*
|
|
29
|
+
* A single global floor rather than a per-preset field on purpose — "shorter than any bearer secret
|
|
30
|
+
* anyone issues" is a fact about secrets, not about a vendor, so a host adding a provider inherits
|
|
31
|
+
* it without having to know it exists.
|
|
32
|
+
*/
|
|
33
|
+
export declare const MIN_PLAUSIBLE_API_KEY_LENGTH = 20;
|
|
34
|
+
/**
|
|
35
|
+
* Shown when a pasted key carries ANOTHER catalog entry's key prefix. `{vendor}` is the provider
|
|
36
|
+
* the key appears to belong to, `{provider}` the one currently selected.
|
|
37
|
+
*
|
|
38
|
+
* Names what was actually noticed, which the message it replaced did not: "this does not look like
|
|
39
|
+
* a Google API key" was a claim about Google's formats, made without knowing them. This one needs a
|
|
40
|
+
* positive match against a prefix some other row claims, so it cannot fire on a key that is merely
|
|
41
|
+
* unfamiliar. English string as i18n key, per `DEFAULT_AGENT_DESCRIPTIONS`; the closing sentence is
|
|
42
|
+
* load-bearing — this is advice, not a gate.
|
|
43
|
+
*/
|
|
44
|
+
export declare const API_KEY_CROSS_VENDOR_WARNING = "This looks like an API key for {vendor}, not {provider}. You can still save and test it.";
|
|
45
|
+
/** Shown when a key is shorter than {@link MIN_PLAUSIBLE_API_KEY_LENGTH}. Carries no placeholders:
|
|
46
|
+
* the length floor is global, so there is no vendor to name. */
|
|
47
|
+
export declare const API_KEY_TOO_SHORT_WARNING = "This is shorter than any provider API key \u2014 check that the whole key was pasted. You can still save and test it.";
|
|
18
48
|
/**
|
|
19
49
|
* A small, vendor-shaped starting catalog. Deliberately NOT the origin's full
|
|
20
50
|
* ~30-entry list: that list is hand-curated product content that goes stale,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/features/execution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpF;qFACqF;AACrF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAK9E,CAAC;AAEF;2EAC2E;AAC3E,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAK9E,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;;+BAG+B;AAC/B,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/features/execution/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpF;qFACqF;AACrF,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAK9E,CAAC;AAEF;2EAC2E;AAC3E,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAK9E,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC;;;+BAG+B;AAC/B,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,6FACmD,CAAC;AAE7F;iEACiE;AACjE,eAAO,MAAM,yBAAyB,0HAC8E,CAAC;AAErH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAsE7D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBvE,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,oBAAoB,EAqDvE,CAAC"}
|
|
@@ -21,6 +21,36 @@ export const CUSTOM_PRESET_ID = 'custom';
|
|
|
21
21
|
* a legitimate pick — see `shouldShowCustomModelInput`). Origin:
|
|
22
22
|
* `CUSTOM_MODEL_SENTINEL`. */
|
|
23
23
|
export const CUSTOM_MODEL_SENTINEL = '__custom__';
|
|
24
|
+
/**
|
|
25
|
+
* The shortest string `apiKeyFormatWarning` will let pass without remark.
|
|
26
|
+
*
|
|
27
|
+
* Chosen from evidence rather than taste. The shortest real key shape any preset in
|
|
28
|
+
* {@link DEFAULT_PROVIDER_PRESETS} describes is Azure OpenAI's bare 32-character hex string;
|
|
29
|
+
* Google's is `AIza` + 35 = 39, OpenAI's `sk-` + 48 = 51, OpenRouter's `sk-or-v1-` + 64 = 73, and
|
|
30
|
+
* Anthropic's longer again. 20 therefore sits 12 characters below that floor, so no credential this
|
|
31
|
+
* catalog knows about can trip it, while it still catches the failure the check exists for: the
|
|
32
|
+
* ~15-character saved PASSWORD Chrome autofilled into the key field (see
|
|
33
|
+
* `ByokProviderForm.credential-hygiene.test.tsx`).
|
|
34
|
+
*
|
|
35
|
+
* A single global floor rather than a per-preset field on purpose — "shorter than any bearer secret
|
|
36
|
+
* anyone issues" is a fact about secrets, not about a vendor, so a host adding a provider inherits
|
|
37
|
+
* it without having to know it exists.
|
|
38
|
+
*/
|
|
39
|
+
export const MIN_PLAUSIBLE_API_KEY_LENGTH = 20;
|
|
40
|
+
/**
|
|
41
|
+
* Shown when a pasted key carries ANOTHER catalog entry's key prefix. `{vendor}` is the provider
|
|
42
|
+
* the key appears to belong to, `{provider}` the one currently selected.
|
|
43
|
+
*
|
|
44
|
+
* Names what was actually noticed, which the message it replaced did not: "this does not look like
|
|
45
|
+
* a Google API key" was a claim about Google's formats, made without knowing them. This one needs a
|
|
46
|
+
* positive match against a prefix some other row claims, so it cannot fire on a key that is merely
|
|
47
|
+
* unfamiliar. English string as i18n key, per `DEFAULT_AGENT_DESCRIPTIONS`; the closing sentence is
|
|
48
|
+
* load-bearing — this is advice, not a gate.
|
|
49
|
+
*/
|
|
50
|
+
export const API_KEY_CROSS_VENDOR_WARNING = 'This looks like an API key for {vendor}, not {provider}. You can still save and test it.';
|
|
51
|
+
/** Shown when a key is shorter than {@link MIN_PLAUSIBLE_API_KEY_LENGTH}. Carries no placeholders:
|
|
52
|
+
* the length floor is global, so there is no vendor to name. */
|
|
53
|
+
export const API_KEY_TOO_SHORT_WARNING = 'This is shorter than any provider API key — check that the whole key was pasted. You can still save and test it.';
|
|
24
54
|
/**
|
|
25
55
|
* A small, vendor-shaped starting catalog. Deliberately NOT the origin's full
|
|
26
56
|
* ~30-entry list: that list is hand-curated product content that goes stale,
|
|
@@ -35,6 +65,7 @@ export const DEFAULT_PROVIDER_PRESETS = [
|
|
|
35
65
|
baseUrl: 'https://api.anthropic.com',
|
|
36
66
|
preferredModels: ['claude-sonnet-4-5', 'claude-opus-4-5', 'claude-haiku-4-5'],
|
|
37
67
|
kind: 'protocol',
|
|
68
|
+
apiKeyPrefix: 'sk-ant-',
|
|
38
69
|
},
|
|
39
70
|
{
|
|
40
71
|
id: 'openai',
|
|
@@ -43,6 +74,7 @@ export const DEFAULT_PROVIDER_PRESETS = [
|
|
|
43
74
|
baseUrl: 'https://api.openai.com/v1',
|
|
44
75
|
preferredModels: ['gpt-4o', 'gpt-4o-mini', 'o3', 'o4-mini'],
|
|
45
76
|
kind: 'protocol',
|
|
77
|
+
apiKeyPrefix: 'sk-',
|
|
46
78
|
},
|
|
47
79
|
{
|
|
48
80
|
id: 'azure-openai',
|
|
@@ -51,6 +83,11 @@ export const DEFAULT_PROVIDER_PRESETS = [
|
|
|
51
83
|
baseUrl: '',
|
|
52
84
|
preferredModels: [],
|
|
53
85
|
kind: 'protocol',
|
|
86
|
+
// No `apiKeyPrefix` deliberately: an Azure OpenAI key is a bare hex string with no vendor
|
|
87
|
+
// prefix, so any value here would be a guess — and a wrong prefix claim does not merely stay
|
|
88
|
+
// silent, it lets some OTHER vendor's valid key be announced as Azure's. Its 32 hex characters
|
|
89
|
+
// are also the shortest real key shape in this catalog, which is what sets
|
|
90
|
+
// `MIN_PLAUSIBLE_API_KEY_LENGTH`.
|
|
54
91
|
},
|
|
55
92
|
{
|
|
56
93
|
id: 'google-gemini',
|
|
@@ -64,6 +101,11 @@ export const DEFAULT_PROVIDER_PRESETS = [
|
|
|
64
101
|
// prefers live `listModels` discovery and drops back here when that call fails.
|
|
65
102
|
preferredModels: ['gemini-3.6-flash', 'gemini-2.5-flash', 'gemini-2.5-pro'],
|
|
66
103
|
kind: 'protocol',
|
|
104
|
+
// `AIza` + 35 characters is the classic Google key shape, and it is recorded here so a key of
|
|
105
|
+
// this shape is recognised as GOOGLE'S when it turns up in some other provider's field.
|
|
106
|
+
// Emphatically not a test that a Google key must look like this: an operator pasted a real,
|
|
107
|
+
// working Gemini key in a newer shape and the old allowlist told them it was not a Google key.
|
|
108
|
+
apiKeyPrefix: 'AIza',
|
|
67
109
|
},
|
|
68
110
|
{
|
|
69
111
|
id: 'openrouter',
|
|
@@ -72,6 +114,9 @@ export const DEFAULT_PROVIDER_PRESETS = [
|
|
|
72
114
|
baseUrl: 'https://openrouter.ai/api/v1',
|
|
73
115
|
preferredModels: ['anthropic/claude-3.7-sonnet', 'google/gemini-2.5-pro', 'openai/gpt-4o'],
|
|
74
116
|
kind: 'gateway',
|
|
117
|
+
// Longer than OpenAI's `sk-`, and deliberately so: `apiKeyFormatWarning` resolves a key to the
|
|
118
|
+
// MOST specific prefix that claims it, so `sk-or-v1-…` is attributed here rather than to OpenAI.
|
|
119
|
+
apiKeyPrefix: 'sk-or-',
|
|
75
120
|
},
|
|
76
121
|
{
|
|
77
122
|
id: 'ollama',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/features/execution/constants.ts"],"names":[],"mappings":"AAEA;qFACqF;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAA0C;IACjF,SAAS,EAAE,2BAA2B;IACtC,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,2CAA2C;CACpD,CAAC;AAEF;2EAC2E;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAsD;IACjF,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACvC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACjC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE;IACtC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;CACzC,CAAC;AAEF,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAEzC;;;+BAG+B;AAC/B,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,2BAA2B;QACpC,eAAe,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;QAC7E,IAAI,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/features/execution/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { CUSTOM_MODEL_SENTINEL, CUSTOM_PRESET_ID, DEFAULT_AGENT_CLI_ENV_FIELDS, DEFAULT_AGENT_DESCRIPTIONS, DEFAULT_BASE_URL_BY_PROTOCOL, DEFAULT_PROVIDER_PRESETS, PROTOCOL_OPTIONS, } from './constants.js';
|
|
1
|
+
export { API_KEY_CROSS_VENDOR_WARNING, API_KEY_TOO_SHORT_WARNING, CUSTOM_MODEL_SENTINEL, CUSTOM_PRESET_ID, DEFAULT_AGENT_CLI_ENV_FIELDS, DEFAULT_AGENT_DESCRIPTIONS, DEFAULT_BASE_URL_BY_PROTOCOL, DEFAULT_PROVIDER_PRESETS, MIN_PLAUSIBLE_API_KEY_LENGTH, PROTOCOL_OPTIONS, } from './constants.js';
|
|
2
2
|
export { createFakeExecutionPort, type FakeExecutionPortOptions } from './dependencies.js';
|
|
3
3
|
export type { ExecutionPort } from './ports.js';
|
|
4
|
-
export { agentCliEnvValue, agentDiagnosticTooltip, agentExecutableRepairState, agentMetaLabel, type AgentMetaLabels, agentModelSummary, binPathEnvField, cleanAgentVersionLabel, cliEnvFieldsForAgent, credentialsForPreset, customPreset, filterAgentModelOptions, groupPresets, isBaseUrlInvalid, isProviderConfigured, isValidApiBaseUrl, missingRequiredFields, nextConfigForAgentCliEnvChange, nextConfigForAgentModel, nextConfigForAgentReasoning, nextConfigForAgentSelect, nextConfigForModeChange, nextConfigForPresetSelect, nextConfigForProtocolSelect, parseMaxTokens, presetRequiresApiKey, presetsForProtocol, resolveSelectedPreset, selectedAgentModel, selectedAgentReasoning, shouldShowCustomModelInput, showsBaseUrlField, sortDetectedAgents, } from './rules.js';
|
|
5
|
-
export type { AgentAuthStatus, AgentCliEnvFieldSpec, AgentDiagnostic, AgentDiagnosticReason, AgentDiagnosticSeverity, AgentExecutableRepair, AgentExecutableSource, AgentFixIntent, AgentModelOption, AgentModelSource, AgentScanState, AgentSupportsCustomModel, AgentTestState, ApiProtocol, ByokConfig, ByokProviderCredentials, ByokRequiredField, ConnectionTestState, DetectedAgent, ExecutionConfig, ExecutionMode, LocalCliConfig, ModelDiscoveryState, ProviderPreset, ProviderPresetKind, } from './types.js';
|
|
4
|
+
export { agentCliEnvValue, agentDiagnosticTooltip, agentExecutableRepairState, agentMetaLabel, type AgentMetaLabels, agentModelSummary, apiKeyFormatWarning, binPathEnvField, cleanAgentVersionLabel, cliEnvFieldsForAgent, credentialsForPreset, customPreset, filterAgentModelOptions, groupPresets, isBaseUrlInvalid, isProviderConfigured, isValidApiBaseUrl, missingRequiredFields, modelIdForReasoningLevel, nextConfigForAgentCliEnvChange, nextConfigForAgentModel, nextConfigForAgentReasoning, nextConfigForAgentSelect, nextConfigForModeChange, nextConfigForPresetSelect, nextConfigForProtocolSelect, parseMaxTokens, presetRequiresApiKey, presetsForProtocol, reasoningModelGroupFor, reasoningModelGroups, resolveSelectedPreset, selectedAgentModel, selectedAgentReasoning, shouldShowCustomModelInput, showsBaseUrlField, sortDetectedAgents, splitReasoningModelId, } from './rules.js';
|
|
5
|
+
export type { AgentAuthStatus, AgentCliEnvFieldSpec, AgentDiagnostic, AgentDiagnosticReason, AgentDiagnosticSeverity, AgentExecutableRepair, AgentExecutableSource, AgentFixIntent, AgentModelOption, AgentModelSource, AgentScanState, ApiKeyWarning, AgentSupportsCustomModel, AgentTestState, ApiProtocol, ByokConfig, ByokProviderCredentials, ByokRequiredField, ConnectionTestState, DetectedAgent, ExecutionConfig, ExecutionMode, LocalCliConfig, ModelDiscoveryState, ProviderPreset, ProviderPresetKind, ReasoningModelGroup, } from './types.js';
|
|
6
6
|
export { ExecutionTab } from './react/components/ExecutionTab.js';
|
|
7
7
|
export type { ExecutionTabProps } from './react/components/ExecutionTab.js';
|
|
8
8
|
export { ByokProviderForm } from './react/components/ByokProviderForm.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,EACd,KAAK,eAAe,EACpB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,EACd,KAAK,eAAe,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,YAAY,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,YAAY,EACV,0BAA0B,EAC1B,qCAAqC,GACtC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { CUSTOM_MODEL_SENTINEL, CUSTOM_PRESET_ID, DEFAULT_AGENT_CLI_ENV_FIELDS, DEFAULT_AGENT_DESCRIPTIONS, DEFAULT_BASE_URL_BY_PROTOCOL, DEFAULT_PROVIDER_PRESETS, PROTOCOL_OPTIONS, } from './constants.js';
|
|
1
|
+
export { API_KEY_CROSS_VENDOR_WARNING, API_KEY_TOO_SHORT_WARNING, CUSTOM_MODEL_SENTINEL, CUSTOM_PRESET_ID, DEFAULT_AGENT_CLI_ENV_FIELDS, DEFAULT_AGENT_DESCRIPTIONS, DEFAULT_BASE_URL_BY_PROTOCOL, DEFAULT_PROVIDER_PRESETS, MIN_PLAUSIBLE_API_KEY_LENGTH, PROTOCOL_OPTIONS, } from './constants.js';
|
|
2
2
|
export { createFakeExecutionPort } from './dependencies.js';
|
|
3
|
-
export { agentCliEnvValue, agentDiagnosticTooltip, agentExecutableRepairState, agentMetaLabel, agentModelSummary, binPathEnvField, cleanAgentVersionLabel, cliEnvFieldsForAgent, credentialsForPreset, customPreset, filterAgentModelOptions, groupPresets, isBaseUrlInvalid, isProviderConfigured, isValidApiBaseUrl, missingRequiredFields, nextConfigForAgentCliEnvChange, nextConfigForAgentModel, nextConfigForAgentReasoning, nextConfigForAgentSelect, nextConfigForModeChange, nextConfigForPresetSelect, nextConfigForProtocolSelect, parseMaxTokens, presetRequiresApiKey, presetsForProtocol, resolveSelectedPreset, selectedAgentModel, selectedAgentReasoning, shouldShowCustomModelInput, showsBaseUrlField, sortDetectedAgents, } from './rules.js';
|
|
3
|
+
export { agentCliEnvValue, agentDiagnosticTooltip, agentExecutableRepairState, agentMetaLabel, agentModelSummary, apiKeyFormatWarning, binPathEnvField, cleanAgentVersionLabel, cliEnvFieldsForAgent, credentialsForPreset, customPreset, filterAgentModelOptions, groupPresets, isBaseUrlInvalid, isProviderConfigured, isValidApiBaseUrl, missingRequiredFields, modelIdForReasoningLevel, nextConfigForAgentCliEnvChange, nextConfigForAgentModel, nextConfigForAgentReasoning, nextConfigForAgentSelect, nextConfigForModeChange, nextConfigForPresetSelect, nextConfigForProtocolSelect, parseMaxTokens, presetRequiresApiKey, presetsForProtocol, reasoningModelGroupFor, reasoningModelGroups, resolveSelectedPreset, selectedAgentModel, selectedAgentReasoning, shouldShowCustomModelInput, showsBaseUrlField, sortDetectedAgents, splitReasoningModelId, } from './rules.js';
|
|
4
4
|
export { ExecutionTab } from './react/components/ExecutionTab.js';
|
|
5
5
|
export { ByokProviderForm } from './react/components/ByokProviderForm.js';
|
|
6
6
|
export { LocalCliAgentList } from './react/components/LocalCliAgentList.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAiC,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,EAEd,iBAAiB,EACjB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EAC9B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAiC,MAAM,mBAAmB,CAAC;AAE3F,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,EAEd,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AA+BpB,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAKpF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentCliEnvFields.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/AgentCliEnvFields.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB;;qDAEiD;IACjD,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"AgentCliEnvFields.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/AgentCliEnvFields.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB;;qDAEiD;IACjD,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,sBAAsB,sCAoC9F"}
|
|
@@ -20,6 +20,13 @@ export function AgentCliEnvFields({ agentId, fields, config, onChange }) {
|
|
|
20
20
|
const relevant = cliEnvFieldsForAgent(fields, agentId);
|
|
21
21
|
if (relevant.length === 0)
|
|
22
22
|
return null;
|
|
23
|
-
return (_jsxs("details", { className: "jini-agent-cli-env", "data-testid": `jini-agent-cli-env-${agentId}`, children: [_jsx("summary", { className: "jini-agent-cli-env-summary", children: t('Advanced: proxy & custom paths') }), _jsxs("div", { className: "jini-agent-cli-env-body", children: [_jsx("p", { className: "jini-field-hint", children: t("Environment variables passed to this CLI when it runs.") }), _jsx("div", { className: "jini-agent-cli-env-grid", children: relevant.map((field) => (_jsxs("label", { className: "jini-field", children: [_jsx("span", { className: "jini-field-label", children: field.label }), _jsx("input", { className: "jini-input", type: field.secret ? 'password' : 'text', value: agentCliEnvValue(config, agentId, field.envKey), placeholder: field.placeholder, spellCheck: false,
|
|
23
|
+
return (_jsxs("details", { className: "jini-agent-cli-env", "data-testid": `jini-agent-cli-env-${agentId}`, children: [_jsx("summary", { className: "jini-agent-cli-env-summary", children: t('Advanced: proxy & custom paths') }), _jsxs("div", { className: "jini-agent-cli-env-body", children: [_jsx("p", { className: "jini-field-hint", children: t("Environment variables passed to this CLI when it runs.") }), _jsx("div", { className: "jini-agent-cli-env-grid", children: relevant.map((field) => (_jsxs("label", { className: "jini-field", children: [_jsx("span", { className: "jini-field-label", children: field.label }), _jsx("input", { className: "jini-input", type: field.secret ? 'password' : 'text', value: agentCliEnvValue(config, agentId, field.envKey), placeholder: field.placeholder, spellCheck: false,
|
|
24
|
+
/* Per-field, because this input is both kinds at once. A `secret` field renders
|
|
25
|
+
`type="password"`, and Chrome deliberately ignores `autoComplete="off"` on
|
|
26
|
+
credential-shaped fields — the same defect fixed on `ByokProviderForm`'s API-key
|
|
27
|
+
input; see its comment for the full reasoning. A NON-secret field (a proxy URL, a
|
|
28
|
+
config path) keeps `off`: `new-password` there would invite Chrome to offer to
|
|
29
|
+
GENERATE a password for a field that holds a file path. */
|
|
30
|
+
autoComplete: field.secret ? 'new-password' : 'off', "data-testid": `jini-agent-cli-env-${agentId}-${field.envKey}`, onChange: (event) => onChange(agentId, field.envKey, event.target.value) })] }, `${field.agentId}:${field.envKey}`))) })] })] }));
|
|
24
31
|
}
|
|
25
32
|
//# sourceMappingURL=AgentCliEnvFields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentCliEnvFields.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/AgentCliEnvFields.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAaxE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAA0B;IAC7F,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,OAAO,CACL,mBAAS,SAAS,EAAC,oBAAoB,iBAAc,sBAAsB,OAAO,EAAE,aAClF,kBAAS,SAAS,EAAC,4BAA4B,YAAE,CAAC,CAAC,gCAAgC,CAAC,GAAW,EAC/F,eAAK,SAAS,EAAC,yBAAyB,aACtC,YAAG,SAAS,EAAC,iBAAiB,YAAE,CAAC,CAAC,wDAAwD,CAAC,GAAK,EAChG,cAAK,SAAS,EAAC,yBAAyB,YACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACvB,iBAAO,SAAS,EAAC,YAAY,aAC3B,eAAM,SAAS,EAAC,kBAAkB,YAAE,KAAK,CAAC,KAAK,GAAQ,EACvD,gBACE,SAAS,EAAC,YAAY,EACtB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EACxC,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtD,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,UAAU,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"AgentCliEnvFields.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/AgentCliEnvFields.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAaxE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAA0B;IAC7F,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,OAAO,CACL,mBAAS,SAAS,EAAC,oBAAoB,iBAAc,sBAAsB,OAAO,EAAE,aAClF,kBAAS,SAAS,EAAC,4BAA4B,YAAE,CAAC,CAAC,gCAAgC,CAAC,GAAW,EAC/F,eAAK,SAAS,EAAC,yBAAyB,aACtC,YAAG,SAAS,EAAC,iBAAiB,YAAE,CAAC,CAAC,wDAAwD,CAAC,GAAK,EAChG,cAAK,SAAS,EAAC,yBAAyB,YACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACvB,iBAAO,SAAS,EAAC,YAAY,aAC3B,eAAM,SAAS,EAAC,kBAAkB,YAAE,KAAK,CAAC,KAAK,GAAQ,EACvD,gBACE,SAAS,EAAC,YAAY,EACtB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EACxC,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EACtD,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,UAAU,EAAE,KAAK;oCACjB;;;;;iGAK6D;oCAC7D,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,iBACtC,sBAAsB,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,EAC5D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GACxE,KAjB+B,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAkB7D,CACT,CAAC,GACE,IACF,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -5,6 +5,17 @@ export interface ByokProviderFormProps {
|
|
|
5
5
|
onConfigChange: (config: ByokConfig) => void;
|
|
6
6
|
/** The resolved preset, or `null` when the operator is on custom/manual. */
|
|
7
7
|
preset: ProviderPreset | null;
|
|
8
|
+
/**
|
|
9
|
+
* The catalog {@link preset} was resolved from. Read for one thing only: recognising a pasted key
|
|
10
|
+
* as ANOTHER row's, so `apiKeyFormatWarning` can say whose it looks like. Never used to validate
|
|
11
|
+
* the selected preset's own key — see that function for why that direction is forbidden.
|
|
12
|
+
*
|
|
13
|
+
* Defaults to `DEFAULT_PROVIDER_PRESETS`, matching `ExecutionTab`'s own default for the same
|
|
14
|
+
* prop, so a host rendering this card standalone still gets the shipped vendor prefixes rather
|
|
15
|
+
* than losing the check silently. A host with its own catalog should pass it, exactly as
|
|
16
|
+
* `ExecutionTab` does.
|
|
17
|
+
*/
|
|
18
|
+
presets?: readonly ProviderPreset[];
|
|
8
19
|
/** Live model-discovery result. `'ok'` suggestions win over the preset's
|
|
9
20
|
* static `preferredModels`; any other status (including `'error'`) falls
|
|
10
21
|
* back to them so the field stays usable — but an `'error'` is ALSO
|
|
@@ -31,6 +42,22 @@ export interface ByokProviderFormProps {
|
|
|
31
42
|
* Omitted by every existing caller, so the rendered output is byte-identical without it.
|
|
32
43
|
*/
|
|
33
44
|
apiKeyFooter?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Host-supplied content rendered at the FOOT of the card, below every field and below the
|
|
47
|
+
* "Test connection" row.
|
|
48
|
+
*
|
|
49
|
+
* The sibling of {@link apiKeyFooter}, and separate from it for the same "put the control beside
|
|
50
|
+
* what it acts on" reason. A host whose credential store is write-only has two distinct saves to
|
|
51
|
+
* offer — one that writes the KEY and one that writes base URL / max tokens / model — and a single
|
|
52
|
+
* control doing both cannot honestly report which of the two it just did. Splitting them needs two
|
|
53
|
+
* places to put them: under the key field, and under the settings fields.
|
|
54
|
+
*
|
|
55
|
+
* Without this slot such a host had to hang the second control outside the card, where it reads as
|
|
56
|
+
* belonging to the page rather than to the fields it writes, or fork the component.
|
|
57
|
+
*
|
|
58
|
+
* Omitted by every existing caller, so the rendered output is byte-identical without it.
|
|
59
|
+
*/
|
|
60
|
+
formFooter?: ReactNode;
|
|
34
61
|
/**
|
|
35
62
|
* `true` when a key is already held somewhere the browser cannot read — so the API-key input is
|
|
36
63
|
* legitimately empty and must NOT be treated as a missing required field.
|
|
@@ -69,5 +96,5 @@ export interface ByokProviderFormProps {
|
|
|
69
96
|
* `ByokModelField`, `ByokConnectionTestControl`) — already factored out
|
|
70
97
|
* upstream, so this is assembly plus the origin's required-field marking.
|
|
71
98
|
*/
|
|
72
|
-
export declare function ByokProviderForm({ config, onConfigChange, preset, modelDiscovery, connectionTest, onTestConnection, canTestConnection, apiKeyFooter, apiKeyStoredExternally, apiKeyPlaceholder, }: ByokProviderFormProps): import("react").JSX.Element;
|
|
99
|
+
export declare function ByokProviderForm({ config, onConfigChange, preset, presets, modelDiscovery, connectionTest, onTestConnection, canTestConnection, apiKeyFooter, formFooter, apiKeyStoredExternally, apiKeyPlaceholder, }: ByokProviderFormProps): import("react").JSX.Element;
|
|
73
100
|
//# sourceMappingURL=ByokProviderForm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ByokProviderForm.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/ByokProviderForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ByokProviderForm.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/ByokProviderForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAa5D,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,4EAA4E;IAC5E,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC;;;0EAGsE;IACtE,cAAc,EAAE,mBAAmB,CAAC;IACpC,cAAc,EAAE,mBAAmB,CAAC;IACpC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,cAAc,EACd,MAAM,EACN,OAAkC,EAClC,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAwB,EACxB,YAAY,EACZ,UAAU,EACV,sBAA8B,EAC9B,iBAAiB,GAClB,EAAE,qBAAqB,+BA4SvB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { useT } from '../../../i18n/index.js';
|
|
4
|
-
import { CUSTOM_MODEL_SENTINEL } from '../../constants.js';
|
|
5
|
-
import { isBaseUrlInvalid, missingRequiredFields, parseMaxTokens, presetRequiresApiKey, shouldShowCustomModelInput, showsBaseUrlField, } from '../../rules.js';
|
|
4
|
+
import { CUSTOM_MODEL_SENTINEL, DEFAULT_PROVIDER_PRESETS } from '../../constants.js';
|
|
5
|
+
import { apiKeyFormatWarning, isBaseUrlInvalid, missingRequiredFields, parseMaxTokens, presetRequiresApiKey, shouldShowCustomModelInput, showsBaseUrlField, } from '../../rules.js';
|
|
6
6
|
import { SearchableModelSelect } from './SearchableModelSelect.js';
|
|
7
7
|
/**
|
|
8
8
|
* The BYOK credential card: API key, base URL, optional token cap, and model.
|
|
@@ -10,7 +10,7 @@ import { SearchableModelSelect } from './SearchableModelSelect.js';
|
|
|
10
10
|
* `ByokModelField`, `ByokConnectionTestControl`) — already factored out
|
|
11
11
|
* upstream, so this is assembly plus the origin's required-field marking.
|
|
12
12
|
*/
|
|
13
|
-
export function ByokProviderForm({ config, onConfigChange, preset, modelDiscovery, connectionTest, onTestConnection, canTestConnection = true, apiKeyFooter, apiKeyStoredExternally = false, apiKeyPlaceholder, }) {
|
|
13
|
+
export function ByokProviderForm({ config, onConfigChange, preset, presets = DEFAULT_PROVIDER_PRESETS, modelDiscovery, connectionTest, onTestConnection, canTestConnection = true, apiKeyFooter, formFooter, apiKeyStoredExternally = false, apiKeyPlaceholder, }) {
|
|
14
14
|
const t = useT();
|
|
15
15
|
const [revealKey, setRevealKey] = useState(false);
|
|
16
16
|
/** Whether the operator explicitly picked "Custom…" in the model picker — distinct from "the
|
|
@@ -39,6 +39,9 @@ export function ByokProviderForm({ config, onConfigChange, preset, modelDiscover
|
|
|
39
39
|
if (apiKeyStoredExternally)
|
|
40
40
|
missing.delete('apiKey');
|
|
41
41
|
const baseUrlInvalid = isBaseUrlInvalid(config);
|
|
42
|
+
/** Deliberately NOT folded into `missing` above: that set drives `is-missing` styling and the
|
|
43
|
+
* Test-connection disable, and a wrong-SHAPED key must never reach either. */
|
|
44
|
+
const keyFormatWarning = apiKeyFormatWarning(config, preset, presets);
|
|
42
45
|
const suggestions = modelDiscovery.status === 'ok' ? modelDiscovery.models : (preset?.preferredModels ?? []);
|
|
43
46
|
const modelListId = 'jini-byok-model-options';
|
|
44
47
|
/**
|
|
@@ -66,23 +69,39 @@ export function ByokProviderForm({ config, onConfigChange, preset, modelDiscover
|
|
|
66
69
|
// a hydrated or hand-typed id is never silently replaced by whatever sorts first.
|
|
67
70
|
const customModelActive = showModelPicker && shouldShowCustomModelInput(config.model, liveModels, explicitCustomModel);
|
|
68
71
|
const patch = (next) => onConfigChange({ ...config, ...next });
|
|
69
|
-
return (_jsxs("div", { className: "jini-byok-card", children: [_jsx("div", { className: "jini-byok-card-head", children: _jsx("h4", { className: "jini-byok-card-title", children: preset ? preset.title : t('Custom endpoint') }) }), presetRequiresApiKey(preset) ? (_jsxs(_Fragment, { children: [_jsxs("label", { className: "jini-field", children: [_jsxs("span", { className: "jini-field-label", children: [t('API key'), _jsx("span", { className: "jini-field-required", "aria-hidden": "true", children: "*" }), preset?.apiKeyConsoleUrl ? (_jsx("a", { className: "jini-field-link", href: preset.apiKeyConsoleUrl, target: "_blank", rel: "noreferrer noopener", children: t('Get key') })) : null] }), _jsxs("span", { className: "jini-field-input-row", children: [_jsx("input", { className: 'jini-input' + (missing.has('apiKey') ? ' is-missing' : ''), type: revealKey ? 'text' : 'password',
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
72
|
+
return (_jsxs("div", { className: "jini-byok-card", children: [_jsx("div", { className: "jini-byok-card-head", children: _jsx("h4", { className: "jini-byok-card-title", children: preset ? preset.title : t('Custom endpoint') }) }), presetRequiresApiKey(preset) ? (_jsxs(_Fragment, { children: [_jsxs("label", { className: "jini-field", children: [_jsxs("span", { className: "jini-field-label", children: [t('API key'), _jsx("span", { className: "jini-field-required", "aria-hidden": "true", children: "*" }), preset?.apiKeyConsoleUrl ? (_jsx("a", { className: "jini-field-link", href: preset.apiKeyConsoleUrl, target: "_blank", rel: "noreferrer noopener", children: t('Get key') })) : null] }), _jsxs("span", { className: "jini-field-input-row", children: [_jsx("input", { className: 'jini-input' + (missing.has('apiKey') ? ' is-missing' : ''), type: revealKey ? 'text' : 'password',
|
|
73
|
+
/* `new-password`, NOT `"off"` — Chrome deliberately ignores `off` on credential-shaped
|
|
74
|
+
fields (a long-standing intentional decision, not a bug). `off` here is what let the
|
|
75
|
+
reported autofill through: Chrome filled this field with the admin's own saved
|
|
76
|
+
PASSWORD, the form sent it, and the provider answered with its own "API key not
|
|
77
|
+
valid" — a true message about a string the operator never typed. `new-password` is
|
|
78
|
+
the value Chrome/Safari/Firefox actually honor for "this is not a saved-login
|
|
79
|
+
field", which suppresses both the credential dropdown and the silent fill.
|
|
80
|
+
|
|
81
|
+
Known trade-off, not fixed here: Chrome may now offer to GENERATE a password on
|
|
82
|
+
this field — a suggestion popup, not a silently wrong value. */
|
|
83
|
+
autoComplete: "new-password", spellCheck: false, placeholder: apiKeyPlaceholder, value: config.apiKey, onChange: (event) => patch({ apiKey: event.target.value }) }), _jsx("button", { type: "button", className: "jini-input-affix-btn", "aria-pressed": revealKey, onClick: () => setRevealKey((shown) => !shown), children: revealKey ? t('Hide') : t('Show') })] }), _jsx("span", { className: "jini-field-hint", children: t('Stored only by this host.') }), keyFormatWarning ? (_jsx("span", { className: "jini-field-hint is-error", role: "status", children: t(keyFormatWarning.message, keyFormatWarning.vars) })) : null] }), apiKeyFooter ? _jsx("div", { className: "jini-byok-key-footer", children: apiKeyFooter }) : null] })) : null, _jsxs("div", { className: "jini-byok-field-row", children: [showsBaseUrlField(preset) ? (_jsxs("label", { className: "jini-field", children: [_jsxs("span", { className: "jini-field-label", children: [t('Base URL'), _jsx("span", { className: "jini-field-required", "aria-hidden": "true", children: "*" })] }), _jsx("input", { className: 'jini-input' + (baseUrlInvalid || missing.has('baseUrl') ? ' is-missing' : ''), type: "url", inputMode: "url", spellCheck: false, value: config.baseUrl, onChange: (event) => patch({ baseUrl: event.target.value }) }), _jsx("span", { className: 'jini-field-hint' + (baseUrlInvalid ? ' is-error' : ''), children: baseUrlInvalid
|
|
84
|
+
? t('Enter an absolute http(s) URL.')
|
|
85
|
+
: t('Default endpoint. Usually no need to change this.') })] })) : null, _jsxs("label", { className: "jini-field", children: [_jsx("span", { className: "jini-field-label", children: t('Max tokens (optional)') }), _jsx("input", { className: "jini-input", type: "number", min: 1, step: 1, value: config.maxTokens ?? '', onChange: (event) => patch({ maxTokens: parseMaxTokens(event.target.value) }) }), _jsx("span", { className: "jini-field-hint", children: t('Cap on the response length. Leave blank to use the model default.') })] })] }), _jsxs("div", { className: "jini-byok-model-row", children: [_jsxs("label", { className: "jini-field", children: [_jsxs("span", { className: "jini-field-label", children: [t('Model'), _jsx("span", { className: "jini-field-required", "aria-hidden": "true", children: "*" })] }), showModelPicker ? (_jsx(SearchableModelSelect, { className: 'jini-input' + (missing.has('model') ? ' is-missing' : ''), ariaLabel: t('Model'), searchPlaceholder: t('Search models'), testId: "jini-byok-model-select", searchInputTestId: "jini-byok-model-search", value: customModelActive ? CUSTOM_MODEL_SENTINEL : config.model, models: liveModels.map((model) => ({ id: model, label: model })), additionalOptions: [{ value: CUSTOM_MODEL_SENTINEL, label: t('Custom…') }], onChange: (next) => {
|
|
86
|
+
if (next === CUSTOM_MODEL_SENTINEL) {
|
|
87
|
+
// Open the free-text box WITHOUT clearing `config.model`. Blanking it here would
|
|
88
|
+
// discard a working model the moment someone opened the picker to look at it.
|
|
89
|
+
setExplicitCustomModel(true);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
setExplicitCustomModel(false);
|
|
93
|
+
patch({ model: next });
|
|
94
|
+
} })) : null, !showModelPicker || customModelActive ? (_jsx("input", { className: 'jini-input' + (missing.has('model') ? ' is-missing' : ''), list: !showModelPicker && suggestions.length > 0 ? modelListId : undefined, spellCheck: false, value: config.model, onChange: (event) => patch({ model: event.target.value }) })) : null, !showModelPicker && suggestions.length > 0 ? (_jsx("datalist", { id: modelListId, children: suggestions.map((model) => (_jsx("option", { value: model }, model))) })) : null] }), canTestConnection ? (_jsx("button", { type: "button", className: "jini-btn jini-byok-test-btn", disabled: connectionTest.status === 'testing' || missing.size > 0, onClick: onTestConnection, children: connectionTest.status === 'testing' ? t('Testing…') : t('Test connection') })) : null] }), modelDiscovery.status === 'error' ? (
|
|
95
|
+
// Non-blocking (the field above stays editable, with the preset's static
|
|
96
|
+
// suggestions) but never silent — a discovery failure is an operator-actionable
|
|
97
|
+
// fact (bad key, wrong base URL, unreachable endpoint), not "no models exist".
|
|
98
|
+
//
|
|
99
|
+
// Moved out of the Model `<label>` when the probe button moved up beside it: as a label
|
|
100
|
+
// child it grew the field and pushed the bottom-aligned button off the input's line every
|
|
101
|
+
// time discovery failed. Same element, same `.jini-field-hint.is-error[role="status"]`
|
|
102
|
+
// identity host suites locate it by — only its parent changed.
|
|
103
|
+
_jsx("span", { className: "jini-field-hint is-error", role: "status", children: t('Could not load live models: {message}', { message: modelDiscovery.message }) })) : null, canTestConnection && (connectionTest.status === 'ok' || connectionTest.status === 'error') ? (_jsx("div", { className: "jini-byok-test-row", children: _jsx("span", { className: `jini-byok-test-status is-${connectionTest.status}`, role: connectionTest.status === 'error' ? 'alert' : 'status', children: connectionTest.status === 'ok'
|
|
104
|
+
? (connectionTest.message ?? t('Connection succeeded'))
|
|
105
|
+
: connectionTest.message }) })) : null, formFooter ? _jsx("div", { className: "jini-byok-form-footer", children: formFooter }) : null] }));
|
|
87
106
|
}
|
|
88
107
|
//# sourceMappingURL=ByokProviderForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ByokProviderForm.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/ByokProviderForm.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ByokProviderForm.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/ByokProviderForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,7 @@ export interface ExecutionTabProps {
|
|
|
41
41
|
* without them.
|
|
42
42
|
*/
|
|
43
43
|
apiKeyFooter?: ReactNode;
|
|
44
|
+
formFooter?: ReactNode;
|
|
44
45
|
apiKeyStoredExternally?: boolean;
|
|
45
46
|
apiKeyPlaceholder?: string;
|
|
46
47
|
}
|
|
@@ -56,5 +57,5 @@ export interface ExecutionTabProps {
|
|
|
56
57
|
* wallet — balance polling, top-up, sign-in coachmarks — is deliberately not
|
|
57
58
|
* ported; it is product-bound, not generic.
|
|
58
59
|
*/
|
|
59
|
-
export declare function ExecutionTab({ config, onConfigChange, port, presets, cliEnvFields, localCliUnavailableReason, renderAgentIcon, localCliScopeLabel, autoDetect, ariaLabel, apiKeyFooter, apiKeyStoredExternally, apiKeyPlaceholder, }: ExecutionTabProps): import("react").JSX.Element;
|
|
60
|
+
export declare function ExecutionTab({ config, onConfigChange, port, presets, cliEnvFields, localCliUnavailableReason, renderAgentIcon, localCliScopeLabel, autoDetect, ariaLabel, apiKeyFooter, formFooter, apiKeyStoredExternally, apiKeyPlaceholder, }: ExecutionTabProps): import("react").JSX.Element;
|
|
60
61
|
//# sourceMappingURL=ExecutionTab.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/ExecutionTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAapD,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,eAAe,EAEf,cAAc,EACf,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,IAAI,EAAE,aAAa,CAAC;IACpB;8EAC0E;IAC1E,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC;;;+DAG2D;IAC3D,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC/C;yDACqD;IACrD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;wDACoD;IACpD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACtD;;6DAEyD;IACzD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,cAAc,EACd,IAAI,EACJ,OAAkC,EAClC,YAA2C,EAC3C,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,UAAiB,EACjB,SAAS,EACT,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,GAClB,EAAE,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"ExecutionTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/ExecutionTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAapD,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,eAAe,EAEf,cAAc,EACf,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,IAAI,EAAE,aAAa,CAAC;IACpB;8EAC0E;IAC1E,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC;;;+DAG2D;IAC3D,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC/C;yDACqD;IACrD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;wDACoD;IACpD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACtD;;6DAEyD;IACzD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,cAAc,EACd,IAAI,EACJ,OAAkC,EAClC,YAA2C,EAC3C,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,UAAiB,EACjB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,iBAAiB,GAClB,EAAE,iBAAiB,+BA+KnB"}
|
|
@@ -19,7 +19,7 @@ import { ProviderChipGroup } from './ProviderChipGroup.js';
|
|
|
19
19
|
* wallet — balance polling, top-up, sign-in coachmarks — is deliberately not
|
|
20
20
|
* ported; it is product-bound, not generic.
|
|
21
21
|
*/
|
|
22
|
-
export function ExecutionTab({ config, onConfigChange, port, presets = DEFAULT_PROVIDER_PRESETS, cliEnvFields = DEFAULT_AGENT_CLI_ENV_FIELDS, localCliUnavailableReason, renderAgentIcon, localCliScopeLabel, autoDetect = true, ariaLabel, apiKeyFooter, apiKeyStoredExternally, apiKeyPlaceholder, }) {
|
|
22
|
+
export function ExecutionTab({ config, onConfigChange, port, presets = DEFAULT_PROVIDER_PRESETS, cliEnvFields = DEFAULT_AGENT_CLI_ENV_FIELDS, localCliUnavailableReason, renderAgentIcon, localCliScopeLabel, autoDetect = true, ariaLabel, apiKeyFooter, formFooter, apiKeyStoredExternally, apiKeyPlaceholder, }) {
|
|
23
23
|
const t = useT();
|
|
24
24
|
const { agents, scan, connectionTest, modelDiscovery, agentTest, rescan, testConnection, testAgent, loadModels, canRescan, canTestAgent, } = useExecutionTab({
|
|
25
25
|
port,
|
|
@@ -75,7 +75,11 @@ export function ExecutionTab({ config, onConfigChange, port, presets = DEFAULT_P
|
|
|
75
75
|
return (_jsxs("button", { type: "button", role: "tab", "aria-selected": config.mode === mode.id, disabled: disabled, title: disabled ? localCliUnavailableReason : undefined, className: 'jini-seg-btn' + (config.mode === mode.id ? ' active' : ''), onClick: () => setMode(mode.id), children: [_jsx("span", { className: "jini-seg-title", children: mode.title }), _jsx("span", { className: "jini-seg-meta", children: disabled ? localCliUnavailableReason : mode.meta })] }, mode.id));
|
|
76
76
|
}) }), config.mode === 'local-cli' ? (_jsx(LocalCliAgentList, { agents: agents, config: config.localCli, scan: scan, agentTest: agentTest, onSelect: (agentId) => onConfigChange(nextConfigForAgentSelect(config, agentId)), onModelChange: (agentId, model) => onConfigChange(nextConfigForAgentModel(config, agentId, model)), onReasoningChange: (agentId, reasoning) => onConfigChange(nextConfigForAgentReasoning(config, agentId, reasoning)), onEnvChange: (agentId, envKey, value) => onConfigChange(nextConfigForAgentCliEnvChange(config, agentId, envKey, value)), cliEnvFields: cliEnvFields, onRescan: canRescan ? rescan : undefined, onTest: canTestAgent
|
|
77
77
|
? (agent) => testAgent(agent.id, selectedAgentModel(config.localCli, agent) || undefined)
|
|
78
|
-
: undefined, renderAgentIcon: renderAgentIcon, scopeLabel: localCliScopeLabel })) : (_jsxs("section", { className: "jini-settings-section jini-settings-byok", children: [_jsx(ProviderChipGroup, { label: t('Protocols'), presets: protocols, selectedPresetId: selectedPreset?.id ?? null, configuredPresetIds: configuredPresetIds, onSelect: selectPreset, configuredLabel: t('Configured'), unsetLabel: t('Not configured') }), _jsx(ProviderChipGroup, { label: t('Gateways'), presets: gateways, selectedPresetId: selectedPreset?.id ?? null, configuredPresetIds: configuredPresetIds, onSelect: selectPreset, configuredLabel: t('Configured'), unsetLabel: t('Not configured') }), _jsx(ByokProviderForm, { config: config.byok, onConfigChange: (byok) => onConfigChange({ ...config, byok }), preset: selectedPreset,
|
|
78
|
+
: undefined, renderAgentIcon: renderAgentIcon, scopeLabel: localCliScopeLabel })) : (_jsxs("section", { className: "jini-settings-section jini-settings-byok", children: [_jsx(ProviderChipGroup, { label: t('Protocols'), presets: protocols, selectedPresetId: selectedPreset?.id ?? null, configuredPresetIds: configuredPresetIds, onSelect: selectPreset, configuredLabel: t('Configured'), unsetLabel: t('Not configured') }), _jsx(ProviderChipGroup, { label: t('Gateways'), presets: gateways, selectedPresetId: selectedPreset?.id ?? null, configuredPresetIds: configuredPresetIds, onSelect: selectPreset, configuredLabel: t('Configured'), unsetLabel: t('Not configured') }), _jsx(ByokProviderForm, { config: config.byok, onConfigChange: (byok) => onConfigChange({ ...config, byok }), preset: selectedPreset,
|
|
79
|
+
// The WHOLE catalog, not the `protocols`/`gateways` halves the chip rows take: the card
|
|
80
|
+
// only reads it to recognise a pasted key as some other row's, and a key pasted from a
|
|
81
|
+
// gateway into a protocol field is exactly the mistake worth naming.
|
|
82
|
+
presets: presets, modelDiscovery: modelDiscovery, connectionTest: connectionTest,
|
|
79
83
|
// Also re-runs discovery with the CURRENT byok config, not just the
|
|
80
84
|
// connectivity probe — see this file's model-discovery effect above
|
|
81
85
|
// for why that matters: a stale "could not load live models" error
|
|
@@ -86,6 +90,6 @@ export function ExecutionTab({ config, onConfigChange, port, presets = DEFAULT_P
|
|
|
86
90
|
testConnection(config.byok);
|
|
87
91
|
if (typeof port.listModels === 'function')
|
|
88
92
|
loadModels(config.byok);
|
|
89
|
-
}, ...(apiKeyFooter !== undefined ? { apiKeyFooter } : {}), ...(apiKeyStoredExternally !== undefined ? { apiKeyStoredExternally } : {}), ...(apiKeyPlaceholder !== undefined ? { apiKeyPlaceholder } : {}) })] }))] }));
|
|
93
|
+
}, ...(apiKeyFooter !== undefined ? { apiKeyFooter } : {}), ...(formFooter !== undefined ? { formFooter } : {}), ...(apiKeyStoredExternally !== undefined ? { apiKeyStoredExternally } : {}), ...(apiKeyPlaceholder !== undefined ? { apiKeyPlaceholder } : {}) })] }))] }));
|
|
90
94
|
}
|
|
91
95
|
//# sourceMappingURL=ExecutionTab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionTab.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/ExecutionTab.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAsC,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExecutionTab.js","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/ExecutionTab.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAsC,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,8BAA8B,EAC9B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA+C3D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,MAAM,EACN,cAAc,EACd,IAAI,EACJ,OAAO,GAAG,wBAAwB,EAClC,YAAY,GAAG,4BAA4B,EAC3C,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,UAAU,GAAG,IAAI,EACjB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,iBAAiB,GACC;IAClB,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,MAAM,EACJ,MAAM,EACN,IAAI,EACJ,cAAc,EACd,cAAc,EACd,SAAS,EACT,MAAM,EACN,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,GACb,GAAG,eAAe,CAAC;QAClB,IAAI;QACJ,UAAU,EAAE,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;KACtD,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;;OAKG;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAEvD,0EAA0E;IAC1E,4EAA4E;IAC5E,oDAAoD;IACpD,EAAE;IACF,8EAA8E;IAC9E,qEAAqE;IACrE,8EAA8E;IAC9E,qEAAqE;IACrE,EAAE;IACF,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,uEAAuE;IACvE,6EAA6E;IAC7E,uEAAuE;IACvE,sBAAsB;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO;QAC5E,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAClH,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CACjG,CAAC;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,IAAmB,EAAE,EAAE;QACtC,IAAI,IAAI,KAAK,WAAW,IAAI,gBAAgB;YAAE,OAAO;QACrD,cAAc,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAE,EAAE,CAC9C,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEtF,MAAM,KAAK,GAAsE;QAC/E,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,wCAAwC,CAAC,EAAE;QAC7F,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE;KAC1E,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,gBAAa,SAAS,IAAI,CAAC,CAAC,gBAAgB,CAAC,aACnF,cACE,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAC,SAAS,gBACF,CAAC,CAAC,gBAAgB,CAAC,EAC/B,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAmB,YAErD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,gBAAgB,CAAC;oBAC7D,OAAO,CACL,kBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EACtC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,EACvD,SAAS,EAAE,cAAc,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EACtE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAE/B,eAAM,SAAS,EAAC,gBAAgB,YAAE,IAAI,CAAC,KAAK,GAAQ,EACpD,eAAM,SAAS,EAAC,eAAe,YAC5B,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAC5C,KAZF,IAAI,CAAC,EAAE,CAaL,CACV,CAAC;gBACJ,CAAC,CAAC,GACE,EAEL,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAC7B,KAAC,iBAAiB,IAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChF,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAChC,cAAc,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAEjE,iBAAiB,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CACxC,cAAc,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,EAEzE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CACtC,cAAc,CAAC,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAEhF,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACxC,MAAM,EACJ,YAAY;oBACV,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC;oBACzF,CAAC,CAAC,SAAS,EAEf,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,kBAAkB,GAC9B,CACH,CAAC,CAAC,CAAC,CACF,mBAAS,SAAS,EAAC,0CAA0C,aAC3D,KAAC,iBAAiB,IAChB,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,EACrB,OAAO,EAAE,SAAS,EAClB,gBAAgB,EAAE,cAAc,EAAE,EAAE,IAAI,IAAI,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,EAChC,UAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAC/B,EACF,KAAC,iBAAiB,IAChB,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,EACpB,OAAO,EAAE,QAAQ,EACjB,gBAAgB,EAAE,cAAc,EAAE,EAAE,IAAI,IAAI,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,EAChC,UAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAC/B,EACF,KAAC,gBAAgB,IACf,MAAM,EAAE,MAAM,CAAC,IAAI,EACnB,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC,EAC7D,MAAM,EAAE,cAAc;wBACtB,wFAAwF;wBACxF,uFAAuF;wBACvF,qEAAqE;wBACrE,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc;wBAC9B,oEAAoE;wBACpE,oEAAoE;wBACpE,mEAAmE;wBACnE,8DAA8D;wBAC9D,kEAAkE;wBAClE,0CAA0C;wBAC1C,gBAAgB,EAAE,GAAG,EAAE;4BACrB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAC5B,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU;gCAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACrE,CAAC,KACG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACpD,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAChD,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxE,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAClE,IACM,CACX,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalCliAgentCard.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/LocalCliAgentCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalCliAgentCard.d.ts","sourceRoot":"","sources":["../../../../../src/features/execution/react/components/LocalCliAgentCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AASjD,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,cAAc,EACf,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE;6CACyC;IACzC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9C;2EACuE;IACvE,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,SAAS,EAAE,cAAc,CAAC;IAC1B;;;+DAG2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE,sBAAsB,+BA8SxB"}
|