/** * The root of the declarative agent manifest document is a JSON object that contains * members that describe the declarative agent. */ export interface DeclarativeAgentManifestV1D6 { /** * Required. Not localizable. The version of the schema this manifest is using. */ version: "v1.6"; /** * Optional. Not localizable. */ id?: string; /** * Required. Localizable. The name of the declarative agent. It MUST contain at least one * nonwhitespace character and MUST be 100 characters or less. */ name: string; /** * Required. Localizable. The description of the declarative agent. It MUST contain at least * one nonwhitespace character and MUST be 1,000 characters or less. */ description: string; disclaimer?: Disclaimer; /** * This member is an object that specifies the sensitivity label for the DA. It is an * optional member. */ sensitivity_label?: SensitivityLabel; /** * Optional. Not localizable. The detailed instructions or guidelines on how the declarative * agent should behave, its functions, and any behaviors to avoid. It MUST contain at least * one nonwhitespace character and MUST be 8,000 characters or less. */ instructions?: string; /** * Optional. A JSON object that contains configuration settings that modify the behavior of * the DA orchestration. */ behavior_overrides?: BehaviorOverrides; /** * Optional. Contains an array of objects that define capabilities of the declarative agent. */ capabilities?: CapabilityElement[]; /** * Optional. A list of examples of questions that the declarative agent can answer. There * MUST NOT be more than twelve objects in the array. */ conversation_starters?: ConversationStarterElement[]; /** * Optional. A list of objects that identify API plugins that provide actions accessible to * the declarative agent. */ actions?: ActionElement[]; /** * Optional. A list of objects that identify declarative agents to act as worker agents. */ worker_agents?: WorkerAgentElement[]; /** * Optional. A list of objects that allow the DA author to specify capabilities that can be * modified by users and the allowed actions. */ user_overrides?: UserOverrideElement[]; [property: string]: any; } /** * Identifies an API plugin manifest for a plugin used as an action by the declarative agent. */ export interface ActionElement { /** * Required. Not localizable. A unique identifier for the action. It MAY be represented by a * GUID. */ id: string; /** * Required. Not localizable. A path to the API plugin manifest for this action. */ file: string; [property: string]: any; } /** * Optional. A JSON object that contains configuration settings that modify the behavior of * the DA orchestration. * * A JSON object that contains configuration settings that modify the behavior of the DA * orchestration. */ export interface BehaviorOverrides { /** * An object that contains special instructions for the declarative agent. */ special_instructions?: SpecialInstructions; /** * An object that contains suggestions for behavior overrides for the declarative agent. */ suggestions?: Suggestions; [property: string]: any; } /** * An object that contains special instructions for the declarative agent. * * A JSON object that contains members used for injecting special instructions into the * prompt. The object has a discourage_model_knowledge boolean property. If this property is * set to true, the DA will be discouraged from using model knowledge when generating * responses. The default value is false */ export interface SpecialInstructions { /** * A boolean value that indicates whether the declarative agent should be discouraged from * using model knowledge when generating responses. */ discourage_model_knowledge?: boolean; [property: string]: any; } /** * An object that contains suggestions for behavior overrides for the declarative agent. * * A JSON object that contains configuration settings for the suggestions feature. The * object has a required disabled boolean property. If this property is set to true, the * suggestions feature will be disabled. The default value is false. */ export interface Suggestions { /** * A boolean value that indicates whether the suggestions feature is disabled. If this * property is set to true, the suggestions feature will be disabled. The default value is * false. */ disabled?: boolean; [property: string]: any; } /** * Represents a base capability object. * * Indicates that the declarative agent can search the web for grounding information. * * Indicates that the declarative agent can search a user's SharePoint and OneDrive for * grounding information. * * Indicates that the declarative agent can search selected Microsoft Graph connectors for * grounding information. * * Indicates that the declarative agent can generate and execute code. * * Indicates that the declarative agent can images and art based on the text input from the * user. * * Indicates that the declarative agent can search through Teams channels, teams, meetings, * 1:1 chats and group chats. * * A JSON object whose presence indicates that the DA will be able to search within Email * Messages in the mailboxes user has access to. * * Indicates that the DA will be able to search people data in the organization. * * A JSON object whose presence indicates that the DA will be using tenant/task specific * models. * * Indicates that the DA can search through meetings. * * A JSON object whose presence indicates that the DA will be able to use files locally in * the app package as knowledge. */ export interface CapabilityElement { /** * Required. The name of the capability. Allowed values are WebSearch, CodeInterpreter, * OneDriveAndSharePoint, GraphConnectors, TeamsMessages, Dataverse, Email, ScenarioModels, * People, GraphicArt, Meetings and EmbeddedKnowledge. * * Required. Must be set to WebSearch. * * Required. Must be set to OneDriveAndSharePoint. * * Required. Must be set to GraphConnectors. * * Required. Must be set to CodeInterpreter. * * Required. Must be set to GraphicArt. * * Required. Must be set to TeamsMessages. * * Required: Must be set to Dataverse * * Required: Must be set to Email * * Required. Must be set to People. * * Required. Must be set to the string literal `ScenarioModels` * * Required. Must be set to Meetings. * * Required. Must be set to EmbeddedKnowledge. */ name: Name; /** * Optional. An array of sites used to constrain the content accessible to the DA to just * the content identified via the items of array. */ sites?: SiteElement[]; /** * Optional. An array of objects that identify SharePoint or OneDrive sources using IDs. */ items_by_sharepoint_ids?: ItemsBySharepointIDElement[]; /** * Optional. An array of objects that identify SharePoint or OneDrive sources by URL. */ items_by_url?: ItemsByURLElement[]; /** * Optional. An array of objects that identify the Microsoft Graph connectors available to * the declarative agent */ connections?: ConnectionElement[]; /** * This member can be used to constrain the content accessible to the DA to just the content * identified via the members of each Teams url */ urls?: URLElement[]; /** * An array of Objects that represent the knowledge sources for the Dataverse in the * Declarative Agent */ knowledge_sources?: KnowledgeSourceElement[]; /** * A JSON array of Folder Object. This member can be used to constrain the content * accessible to the DA to just the emails present in the folders identified by members of * each Folder Object. */ folders?: FolderElement[]; /** * A JSON string that contains SMTP address of the shared mailbox. The presence of this * field indicates that the DA constrain its search for relevant emails only to that * mailbox. Emails from user's primary mailbox is not searched when this field is present. */ shared_mailbox?: string; /** * A JSON array of strings containing SMTP addresses of group mailboxes. The presence of * this field indicates that the DA can search for relevant emails in the specified group * mailboxes. A maximum of 25 mailboxes are supported. */ group_mailboxes?: string[]; /** * Boolean. If true, include related documents, emails, and Teams messages worked on by * people in your organization when searching People data. If false or omitted, only basic * org info (org charts, names, email addresses, skills). Default false. */ include_related_content?: boolean; /** * A list of Scenario Model objects denoting supported models */ models?: ModelElement[]; /** * A JSON array of objects that identify meetings. This array constrains the DA content * access to only the meetings specified by the members of each Meeting Identifier Object. */ items_by_id?: ItemsByIDElement[]; /** * A JSON array of File Object. List of objects identifying files that contain knowledge the * Agent can use for grounding. */ files?: FileElement[]; [property: string]: any; } /** * Identifies a Microsoft Graph connector. */ export interface ConnectionElement { /** * Required. Not localizable The unique identifier of the Microsoft Graph connector. */ connection_id: string; /** * KQL based string containing the query filter */ additional_search_terms?: string; /** * A list of objects to store urls for external items. */ items_by_external_url?: ItemsByExternalURLElement[]; /** * A list of objects to store identifiers for external items */ items_by_external_id?: ItemsByExternalIDElement[]; /** * A list of objects to store the container paths to items within a connection */ items_by_path?: ItemsByPathElement[]; /** * A list of objects to store containers names */ items_by_container_name?: ItemsByContainerNameElement[]; /** * A list of objects to store urls of containers */ items_by_container_url?: ItemsByContainerURLElement[]; [property: string]: any; } /** * Identifies an item by its container name. */ export interface ItemsByContainerNameElement { /** * A unique identifier for a container name */ container_name: string; [property: string]: any; } /** * Identifies an item by its container URL. */ export interface ItemsByContainerURLElement { /** * Url for external graph connector item container */ container_url: string; [property: string]: any; } /** * Identifies an item by its external ID. */ export interface ItemsByExternalIDElement { /** * A unique identifier for an external item. */ item_id: string; [property: string]: any; } /** * Identifies an item by its external URL. */ export interface ItemsByExternalURLElement { /** * Url for external graph connector item. */ url: string; [property: string]: any; } /** * Identifies an item by its path. */ export interface ItemsByPathElement { /** * A container path to an external item */ path: string; [property: string]: any; } /** * A JSON object that identifies a file via the relative path. */ export interface FileElement { /** * A JSON string that contains the file relative path for the embedded file. It is a * required member. */ file: string; [property: string]: any; } export interface FolderElement { /** * A JSON string that identifies an email folder. This can either be id of the folder or one * of the well known names. */ folder_id: string; [property: string]: any; } /** * A JSON object that identifies a meeting by its ICalUID. */ export interface ItemsByIDElement { /** * A JSON string that contains the ICalUID of a specific meeting. This member is required. */ id: string; /** * A JSON boolean that indicates whether the meeting is a series. This member is required. */ is_series: boolean; [property: string]: any; } /** * Contains one or more object identifiers that identify a SharePoint or OneDrive resource. */ export interface ItemsBySharepointIDElement { /** * Optional. Not localizable. The GUID identifier of a SharePoint or OneDrive site. */ site_id?: string; /** * Optional. Not localizable. The GUID identifier of a SharePoint or OneDrive web. */ web_id?: string; /** * Optional. Not localizable. The GUID identifier of a SharePoint or OneDrive list. */ list_id?: string; /** * Optional. Not localizable. The GUID identifier of a SharePoint or OneDrive item. */ unique_id?: string; /** * A JSON String that uniquely identifies a part of a SharePoint item. e.g a OneNote page. */ part_id?: string; /** * A String that qualifies the kind of part that the "part_id" refers to. Currently this * value can only be equal to the string literal: "OneNotePart". */ part_type?: "OneNotePart"; /** * Boolean value indicating whether to enable searching associated sites. This value is only * applicable when the site_id value references a SharePoint HubSite. */ search_associated_sites?: boolean; } /** * A String that qualifies the kind of part that the "part_id" refers to. Currently this * value can only be equal to the string literal: "OneNotePart". */ /** * Represents the URL of a SharePoint or OneDrive resource. */ export interface ItemsByURLElement { /** * Optional. Not localizable. An absolute URL to a SharePoint or OneDrive resource. */ url?: string; } export interface KnowledgeSourceElement { /** * A unique identifier for the host in Dataverse. */ host_name?: string; /** * A unique identifier that defines the configuration for how the copilot agent interacts * with Dataverse knowledge. */ skill?: string; /** * An array of table_name objects which contain table names in DataVerse to scope the * knowledge of the Declarative Agent */ tables?: TableElement[]; [property: string]: any; } export interface TableElement { /** * A string to represent the table name. */ table_name?: string; [property: string]: any; } /** * An Object representing a scenario model. */ export interface ModelElement { /** * A unique ID used to identify a Scenario Model */ id: string; [property: string]: any; } export type Name = "WebSearch" | "CodeInterpreter" | "OneDriveAndSharePoint" | "GraphConnectors" | "GraphicArt" | "TeamsMessages" | "Dataverse" | "Email" | "People" | "ScenarioModels" | "Meetings" | "EmbeddedKnowledge"; /** * An object that identifies a site used to constrain the content accessible to the * declarative agent. */ export interface SiteElement { /** * An absolute URL to a site. */ url: string; [property: string]: any; } /** * Identifies a Teams channel, team or meeting chat */ export interface URLElement { /** * A string that contains a well formed, Teams url to a Teams channel, team or meeting chat * (join url) */ url: string; [property: string]: any; } /** * Contains hints that are displayed to the user to demonstrate how they can get started * using the declarative agent. */ export interface ConversationStarterElement { /** * Required. Localizable. A suggestion that the user can use to obtain the desired result * from the DC. It MUST contain at least one nonwhitespace character. */ text: string; /** * Optional. Localizable. A unique title for the conversation starter. It MUST contain at * least one nonwhitespace character. */ title?: string; [property: string]: any; } /** * An optional JSON object containing a disclaimer message that, if provided, will be * displayed to users at the start of a conversation to satisfy legal or compliance * requirements. The object contains a required 'text' string property that MUST NOT be null * and MUST contain at least 1 non-whitespace character. */ export interface Disclaimer { /** * A JSON string that contains the disclaimer message. Characters beyond 500 MAY be ignored. */ text: string; [property: string]: any; } /** * This member is an object that specifies the sensitivity label for the DA. It is an * optional member. * * A JSON object, when specified should match one of the GUIDs of the published sensitivity * labels within the tenant to which it is being published. This label should be at least as * restrictive as the most restrictive label on any knowledge files included in the agent. * See https://learn.microsoft.com/en-us/purview/create-sensitivity-labels for more * information on sensitivity labels. */ export interface SensitivityLabel { /** * The GUID of the sensitivity_label that is pulled from Purview API */ id?: string; [property: string]: any; } /** * A JSON object that allows the DA author to specify the path of a capability that can be * modified and a set of allowed actions for those capabilities. */ export interface UserOverrideElement { /** * Required. A JSON string that contains a JSONPath expression identifying the capability or * configuration element that users can modify. The JSONPath expression allows targeting * specific capabilities by name only. */ path: string; /** * Required. A JSON array of strings that specifies what actions can be taken for the * specified path. The only supported action is 'remove'. */ allowed_actions: "remove"[]; [property: string]: any; } /** * A JSON object used to identify a declarative agent to act as a worker agent. Declarative * agents can be referenced via their id (Agent Id). */ export interface WorkerAgentElement { /** * Required. Not localizable. A unique identifier for a declarative agent. */ id: string; [property: string]: any; } export declare class Convert { static toDeclarativeAgentManifestV1D6(json: string): DeclarativeAgentManifestV1D6; static declarativeAgentManifestV1D6ToJson(value: DeclarativeAgentManifestV1D6): string; }