Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion apps/adk-py/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ The SDK includes extension support for:

- **Citations** - Source attribution (`CitationExtensionServer`, `CitationExtensionSpec`)
- **Trajectory** - Agent decision logging (`TrajectoryExtensionServer`, `TrajectoryExtensionSpec`)
- **Settings** - User-configurable agent parameters (`SettingsExtensionServer`, `SettingsExtensionSpec`)
- **LLM Services** - Platform-managed language models (`LLMServiceExtensionServer`, `LLMServiceExtensionSpec`)
- **Agent Details** - Metadata and UI enhancements (`AgentDetail`)
- **And more** - See [Documentation](https://github.com/kagenti/adk/blob/main/docs/stable/agent-development/overview)
Expand Down
1 change: 0 additions & 1 deletion apps/adk-ts/src/client/a2a/extensions/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,4 @@ export * from './ui/canvas';
export * from './ui/citation';
export * from './ui/error';
export * from './ui/form-request';
export * from './ui/settings';
export * from './ui/trajectory';
1 change: 0 additions & 1 deletion apps/adk-ts/src/client/a2a/extensions/schemas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,4 @@ export * from './ui/agent-detail/schemas';
export * from './ui/canvas/schemas';
export * from './ui/citation/schemas';
export * from './ui/error/schemas';
export * from './ui/settings/schemas';
export * from './ui/trajectory/schemas';
1 change: 0 additions & 1 deletion apps/adk-ts/src/client/a2a/extensions/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,4 @@ export * from './ui/agent-detail/types';
export * from './ui/canvas/types';
export * from './ui/citation/types';
export * from './ui/error/types';
export * from './ui/settings/types';
export * from './ui/trajectory/types';
23 changes: 0 additions & 23 deletions apps/adk-ts/src/client/a2a/extensions/ui/settings/index.ts

This file was deleted.

65 changes: 0 additions & 65 deletions apps/adk-ts/src/client/a2a/extensions/ui/settings/schemas.ts

This file was deleted.

38 changes: 0 additions & 38 deletions apps/adk-ts/src/client/a2a/extensions/ui/settings/types.ts

This file was deleted.

5 changes: 0 additions & 5 deletions apps/adk-ts/src/client/core/extensions/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import type { FormDemands, FormFulfillments } from '../../a2a/extensions/service
import type { LLMDemands, LLMFulfillments } from '../../a2a/extensions/services/llm/types';
import type { MCPDemands, MCPFulfillments } from '../../a2a/extensions/services/mcp/types';
import type { CanvasEditRequest } from '../../a2a/extensions/ui/canvas/types';
import type { SettingsDemands, SettingsFulfillments } from '../../a2a/extensions/ui/settings/types';
import type { ContextToken } from '../../api/contexts/types';

export interface A2AExtension<U extends string> {
Expand All @@ -35,10 +34,6 @@ export type Fulfillments = Partial<{
embedding: (demand: EmbeddingDemands) => Promise<EmbeddingFulfillments>;
mcp: (demand: MCPDemands) => Promise<MCPFulfillments>;
oauth: (demand: OAuthDemands) => Promise<OAuthFulfillments>;
/**
* @deprecated - keeping this for backwards compatibility, use form extension with "settings_form" demand instead
*/
settings: (demand: SettingsDemands) => Promise<SettingsFulfillments>;
secrets: (demand: SecretDemands) => Promise<SecretFulfillments>;
form: (demand: FormDemands) => Promise<FormFulfillments>;
oauthRedirectUri: () => string | null;
Expand Down
9 changes: 0 additions & 9 deletions apps/adk-ts/src/client/core/handle-agent-card.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import { formExtension } from '../a2a/extensions/services/form';
import { llmExtension } from '../a2a/extensions/services/llm';
import { mcpExtension } from '../a2a/extensions/services/mcp';
import { platformApiExtension } from '../a2a/extensions/services/platform-api';
import { settingsExtension } from '../a2a/extensions/ui/settings';
import type { AgentCapabilities } from '../a2a/protocol/types';
import { extractServiceExtensionDemands } from './extensions/extract';
import { fulfillServiceExtensionDemand } from './extensions/fulfill';
Expand All @@ -20,15 +19,13 @@ const mcpExtensionExtractor = extractServiceExtensionDemands(mcpExtension);
const llmExtensionExtractor = extractServiceExtensionDemands(llmExtension);
const embeddingExtensionExtractor = extractServiceExtensionDemands(embeddingExtension);
const oauthExtensionExtractor = extractServiceExtensionDemands(oauthExtension);
const settingsExtensionExtractor = extractServiceExtensionDemands(settingsExtension);
const secretExtensionExtractor = extractServiceExtensionDemands(secretsExtension);
const formExtensionExtractor = extractServiceExtensionDemands(formExtension);

const fulfillMcpDemand = fulfillServiceExtensionDemand(mcpExtension);
const fulfillLlmDemand = fulfillServiceExtensionDemand(llmExtension);
const fulfillEmbeddingDemand = fulfillServiceExtensionDemand(embeddingExtension);
const fulfillOAuthDemand = fulfillServiceExtensionDemand(oauthExtension);
const fulfillSettingsDemand = fulfillServiceExtensionDemand(settingsExtension);
const fulfillSecretDemand = fulfillServiceExtensionDemand(secretsExtension);
const fulfillFormDemand = fulfillServiceExtensionDemand(formExtension);

Expand All @@ -39,7 +36,6 @@ export const handleAgentCard = (agentCard: { capabilities: AgentCapabilities })
const embeddingDemands = embeddingExtensionExtractor(extensions);
const mcpDemands = mcpExtensionExtractor(extensions);
const oauthDemands = oauthExtensionExtractor(extensions);
const settingsDemands = settingsExtensionExtractor(extensions);
const secretDemands = secretExtensionExtractor(extensions);
const formDemands = formExtensionExtractor(extensions);

Expand All @@ -66,10 +62,6 @@ export const handleAgentCard = (agentCard: { capabilities: AgentCapabilities })
fulfilledMetadata = fulfillOAuthDemand(fulfilledMetadata, await fulfillments.oauth(oauthDemands));
}

if (settingsDemands && fulfillments.settings) {
fulfilledMetadata = fulfillSettingsDemand(fulfilledMetadata, await fulfillments.settings(settingsDemands));
}

if (secretDemands && fulfillments.secrets) {
fulfilledMetadata = fulfillSecretDemand(fulfilledMetadata, await fulfillments.secrets(secretDemands));
}
Expand Down Expand Up @@ -99,7 +91,6 @@ export const handleAgentCard = (agentCard: { capabilities: AgentCapabilities })
embeddingDemands,
mcpDemands,
oauthDemands,
settingsDemands,
secretDemands,
formDemands,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,14 @@
* SPDX-License-Identifier: Apache-2.0
*/

import type { FormFulfillments, SettingsFormRender, SettingsFormValues } from '@kagenti/adk';
import type { FormFulfillments, SettingsFormValues } from '@kagenti/adk';
import { ModelCapability } from '@kagenti/adk';
import mapValues from 'lodash/mapValues';
import { type PropsWithChildren, useCallback, useMemo, useRef, useState } from 'react';

import { useListConnectors } from '#modules/connectors/api/queries/useListConnectors.ts';
import { useMatchModelProviders } from '#modules/platform-context/api/mutations/useMatchModelProviders.ts';
import {
getInitialSettingsFormValues,
transformLegacySettingsDemandsToSettingsForm,
} from '#modules/runs/settings/utils.ts';
import { getInitialSettingsFormValues } from '#modules/runs/settings/utils.ts';

import { useA2AClient } from '../a2a-client';
import { useAgentSecrets } from '../agent-secrets';
Expand All @@ -28,17 +25,12 @@ export function AgentDemandsProvider({ children }: PropsWithChildren) {
const [selectedEmbeddingProviders, setSelectedEmbeddingProviders] = useState<Record<string, string>>({});
const [selectedLLMProviders, setSelectedLLMProviders] = useState<Record<string, string>>({});

const legacySettingsDemands = agentClient.demands.settingsDemands;
const formDemands = agentClient.demands.formDemands;
const settingsFormDemand = formDemands?.form_demands.settings_form;
const settingsFormDemanded = Boolean(settingsFormDemand);

const settingsForm: SettingsFormRender | null =
formDemands?.form_demands.settings_form ?? transformLegacySettingsDemandsToSettingsForm(legacySettingsDemands);
const settingsForm = formDemands?.form_demands.settings_form ?? null;

const initialSettingsFormValues = getInitialSettingsFormValues(settingsForm);
const formFulfillmentsRef = useRef<FormFulfillments>({
form_fulfillments: settingsFormDemanded
form_fulfillments: settingsForm
? {
settings_form: {
values: initialSettingsFormValues,
Expand All @@ -47,8 +39,6 @@ export function AgentDemandsProvider({ children }: PropsWithChildren) {
: {},
});

const [selectedSettings, setSelectedSettings] = useState<SettingsFormValues>(initialSettingsFormValues);

const setDefaultSelectedLLMProviders = useCallback(
(data: Record<string, string[]>) => {
setSelectedLLMProviders(
Expand Down Expand Up @@ -125,16 +115,12 @@ export function AgentDemandsProvider({ children }: PropsWithChildren) {

const onUpdateSettings = useCallback(
(values: SettingsFormValues) => {
setSelectedSettings(values);

if (settingsFormDemanded) {
provideFormValues({
formId: 'settings_form',
values,
});
}
provideFormValues({
formId: 'settings_form',
values,
});
},
[provideFormValues, settingsFormDemanded],
[provideFormValues],
);

const { data: connectorsData } = useListConnectors();
Expand All @@ -159,24 +145,12 @@ export function AgentDemandsProvider({ children }: PropsWithChildren) {
selectedLLMProviders,
selectedEmbeddingProviders,
providedSecrets,
selectedSettings,
legacySettingsDemands,
settingsFormDemanded,
formFulfillments: formFulfillmentsRef.current,
oauthRedirectUri: oauthRedirectUri ?? null,
connectors: connectorsData?.items ?? [],
});
},
[
contextToken,
selectedLLMProviders,
selectedEmbeddingProviders,
selectedSettings,
legacySettingsDemands,
settingsFormDemanded,
demandedSecrets,
connectorsData,
],
[contextToken, selectedLLMProviders, selectedEmbeddingProviders, demandedSecrets, connectorsData],
);

const value = useMemo(
Expand All @@ -197,7 +171,7 @@ export function AgentDemandsProvider({ children }: PropsWithChildren) {
},
formDemands,
settingsForm,
selectedSettings,
initialSettingsFormValues,
getFulfillments,
provideFormValues,
onUpdateSettings,
Expand All @@ -214,11 +188,11 @@ export function AgentDemandsProvider({ children }: PropsWithChildren) {
provideFormValues,
formDemands,
settingsForm,
initialSettingsFormValues,
selectEmbeddingProvider,
selectLLMProvider,
selectedEmbeddingProviders,
selectedLLMProviders,
selectedSettings,
],
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ interface AgentDemandsContextValue {
embeddingProviders: ModelProvidersContextValue;
formDemands: FormDemands | null;
settingsForm: SettingsFormRender | null;
selectedSettings: SettingsFormValues | undefined;
initialSettingsFormValues: SettingsFormValues;
getFulfillments: (context: FulfillmentsContext) => Promise<Fulfillments>;
provideFormValues: ({ formId, values }: ProvideFormValuesParams) => void;
onUpdateSettings: (settings: SettingsFormValues) => void;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,16 @@ import type {
FormFulfillments,
Fulfillments,
MCPFulfillments,
SettingsDemands,
SettingsFormValues,
} from '@kagenti/adk';
import { ConnectorState, MCPTransportType } from '@kagenti/adk';

import { transformSettingsFormValuesToLegacySettingsValues } from '#modules/runs/settings/utils.ts';
import { BASE_URL } from '#utils/constants.ts';

interface BuildFulfillmentsParams {
contextToken: ContextToken;
selectedLLMProviders: Record<string, string>;
selectedEmbeddingProviders: Record<string, string>;
providedSecrets: Record<string, string>;
legacySettingsDemands: SettingsDemands | null;
settingsFormDemanded: boolean;
selectedSettings: SettingsFormValues;
formFulfillments: FormFulfillments;
oauthRedirectUri: string | null;
connectors: Connector[];
Expand All @@ -35,9 +29,6 @@ export const buildFulfillments = ({
contextToken,
selectedLLMProviders,
selectedEmbeddingProviders,
selectedSettings,
legacySettingsDemands,
settingsFormDemanded,
providedSecrets,
formFulfillments,
oauthRedirectUri,
Expand Down Expand Up @@ -164,12 +155,5 @@ export const buildFulfillments = ({
},
};

if (legacySettingsDemands && !settingsFormDemanded) {
// @deprecated - use form extension with "settings_form" demand instead
fulfillments.settings = async () => ({
values: transformSettingsFormValuesToLegacySettingsValues(selectedSettings),
});
}

return fulfillments;
};
Loading
Loading