@microsoft/app-manifest 1.0.1-alpha.db90af69d.0 → 1.0.1-alpha.f164dbe38.0

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 CHANGED
@@ -52,7 +52,7 @@ const json = "{ \"manifestVersion\": \"1.20\", \"id\": \"app-id\", ...}";
52
52
  const manifest = TeamsManifestConverter.jsonToManifest(json);
53
53
  if (manifest.manifestVersion === "1.20") {
54
54
  // TypeScript will infer the type as TeamsManifestV1D20
55
- const manifestV1D20 = manifest as TeamsManifestV1D20;
55
+ const manifestV1D20 = manifest as TeamsManifestV1D20.TeamsManifestV1D20;
56
56
  // You can now access properties specific to TeamsManifestV1D20
57
57
  }
58
58
  ```
@@ -61,7 +61,7 @@ Convert JSON string to Teams manifest type by specifying the version at compile
61
61
 
62
62
  ```typescript
63
63
  const json = "{ \"manifestVersion\": \"1.20\", \"id\": \"app-id\", ...}";
64
- const manifest = TeamsManifestConverter.jsonToManifest(json) as TeamsManifestV1D20;
64
+ const manifest = TeamsManifestConverter.jsonToManifest(json) as TeamsManifestV1D20.TeamsManifestV1D20;
65
65
  // You can now access properties specific to TeamsManifestV1D20
66
66
  ```
67
67
 
@@ -0,0 +1,469 @@
1
+ /**
2
+ * The root of the plugin manifest document is a JSON object that contains members that
3
+ * describe the plugin.
4
+ */
5
+ export interface APIPluginManifestV2D3 {
6
+ /**
7
+ * The schema version. Previous versions are `v1`, `v2`, `v2.1`, and `v2.2`.
8
+ */
9
+ schema_version: "v2.3";
10
+ /**
11
+ * A short, human-readable name for the plugin. It MUST contain at least one nonwhitespace
12
+ * character. Characters beyond 20 MAY be ignored. This property is localizable.
13
+ */
14
+ name_for_human: string;
15
+ /**
16
+ * An identifier used to prevent name conflicts between function names from different
17
+ * plugins that are used within the same execution context. The value MUST match the regex
18
+ * ^[A-Za-z0-9_]+ as defined by [RFC9485]. This is a required member.
19
+ */
20
+ namespace: string;
21
+ /**
22
+ * The description for the plugin that is provided to the model. This description should
23
+ * describe what the plugin is for, and in what circumstances its functions are relevant.
24
+ * Characters beyond 2048 MAY be ignored. This property is localizable.
25
+ */
26
+ description_for_model?: string;
27
+ /**
28
+ * A human-readable description of the plugin. Characters beyond 100 MAY be ignored. This
29
+ * property is localizable.
30
+ */
31
+ description_for_human: string;
32
+ /**
33
+ * A URL used to fetch a logo that MAY be used by the orchestrator. Implementations MAY
34
+ * provide alternative methods to provide logos that meet their visual requirements. This
35
+ * property is localizable.
36
+ */
37
+ logo_url?: any;
38
+ /**
39
+ * An email address of a contact for safety/moderation, support, and deactivation.
40
+ */
41
+ contact_email?: string;
42
+ /**
43
+ * An absolute URL that locates a document containing the terms of service for the plugin.
44
+ * This property is localizable.
45
+ */
46
+ legal_info_url?: any;
47
+ /**
48
+ * An absolute URL that locates a document containing the privacy policy for the plugin.
49
+ * This property is localizable.
50
+ */
51
+ privacy_policy_url?: any;
52
+ /**
53
+ * A set of function objects describing the functions available to the plugin. Each function
54
+ * object name MUST be unique within the array. The order of the array isn't significant. If
55
+ * the `functions` property isn't present and there's an OpenAPI runtime, the functions are
56
+ * inferred from the OpenAPI operations.
57
+ */
58
+ functions?: FunctionObject[];
59
+ /**
60
+ * A list of runtime configurations that determine how functions are invoked.
61
+ */
62
+ runtimes?: APIPluginManifestV2D[];
63
+ /**
64
+ * Describes capabilities of the plugin.
65
+ */
66
+ capabilities?: PluginCapabilitiesObject;
67
+ [property: string]: any;
68
+ }
69
+ /**
70
+ * Describes capabilities of the plugin.
71
+ */
72
+ export interface PluginCapabilitiesObject {
73
+ /**
74
+ * Conversation starters that can be displayed to the user for suggestions on how to invoke
75
+ * the plugin.
76
+ */
77
+ conversation_starters?: ConversationStarterObject[];
78
+ [property: string]: any;
79
+ }
80
+ /**
81
+ * An example of a question that the plugin can answer.
82
+ */
83
+ export interface ConversationStarterObject {
84
+ /**
85
+ * The text of the conversation starter. This property is localizable.
86
+ */
87
+ text: string;
88
+ /**
89
+ * The title of the conversation starter. This property is localizable.
90
+ */
91
+ title?: string;
92
+ [property: string]: any;
93
+ }
94
+ /**
95
+ * Information related to how the model should interact with a function.
96
+ */
97
+ export interface FunctionObject {
98
+ id?: string;
99
+ /**
100
+ * A string that uniquely identifies this function. Runtime objects MAY reference this
101
+ * identifier to bind the runtime to the function. When the function is bound to an OpenAPI
102
+ * runtime, the value must match an `operationId` value in the OpenAPI description.
103
+ */
104
+ name: string;
105
+ /**
106
+ * A description better tailored to the model, such as token context length considerations
107
+ * or keyword usage for improved plugin prompting.
108
+ */
109
+ description?: string;
110
+ /**
111
+ * An object that contains members that describe the parameters of a function in a runtime
112
+ * agnostic way. It mirrors the shape of [json-schema][] but only supports a small subset of
113
+ * the JSON schema capabilities. If the `parameters` property isn't present, functions
114
+ * described by a runtime object of type `OpenApi` use the OpenAPI description to determine
115
+ * the parameters. Each member in the JSON object is a function parameter object that
116
+ * describes the semantics of the parameter.
117
+ */
118
+ parameters?: FunctionParametersObject;
119
+ /**
120
+ * Describes the semantics of the value returned from the function.
121
+ */
122
+ returns?: ReturnObject;
123
+ /**
124
+ * Defines state objects for orchestrator states.
125
+ */
126
+ states?: FunctionStatesObject;
127
+ /**
128
+ * Contains a collection of data used to configure optional capabilities of the orchestrator
129
+ * while invoking the function.
130
+ */
131
+ capabilities?: FunctionCapabilitiesObject;
132
+ [property: string]: any;
133
+ }
134
+ /**
135
+ * Contains a collection of data used to configure optional capabilities of the orchestrator
136
+ * while invoking the function.
137
+ */
138
+ export interface FunctionCapabilitiesObject {
139
+ /**
140
+ * Describes a confirmation dialog that SHOULD be presented to the user before invoking the
141
+ * function.
142
+ */
143
+ confirmation?: ConfirmationObject;
144
+ /**
145
+ * Describes how the orchestrator can interpret the response payload and provide a visual
146
+ * rendering.
147
+ */
148
+ response_semantics?: ResponseSemanticsObject;
149
+ /**
150
+ * Describes the security information to be used to aid in determining the relative risk of
151
+ * invoking the function.
152
+ */
153
+ security_info?: SecurityInfoObject;
154
+ [property: string]: any;
155
+ }
156
+ /**
157
+ * Describes a confirmation dialog that SHOULD be presented to the user before invoking the
158
+ * function.
159
+ *
160
+ * Describes how the orchestrator asks the user to confirm before calling a function.
161
+ */
162
+ export interface ConfirmationObject {
163
+ /**
164
+ * Specifies the type of confirmation.
165
+ */
166
+ type?: ConfirmationType;
167
+ /**
168
+ * The title of the confirmation dialog. This property is localizable.
169
+ */
170
+ title?: string;
171
+ /**
172
+ * The text of the confirmation dialog. This property is localizable.
173
+ */
174
+ body?: string;
175
+ [property: string]: any;
176
+ }
177
+ /**
178
+ * Specifies the type of confirmation.
179
+ */
180
+ export type ConfirmationType = "None" | "AdaptiveCard";
181
+ /**
182
+ * Describes how the orchestrator can interpret the response payload and provide a visual
183
+ * rendering.
184
+ *
185
+ * Contains information to identify semantics of response payload and enable rendering that
186
+ * information in a rich visual experience using [adaptive cards](https://adaptivecards.io/).
187
+ */
188
+ export interface ResponseSemanticsObject {
189
+ /**
190
+ * A JSONPath [RFC9535][] query that identifies a set of elements from the function response
191
+ * to be rendered using the template specified in each item.
192
+ */
193
+ data_path: string;
194
+ /**
195
+ * Allows mapping of JSONPath queries to well-known data elements. Each JSONPath query is
196
+ * relative to a result value.
197
+ */
198
+ properties?: ResponseSemanticsPropertiesObject;
199
+ /**
200
+ * A JSON object that conforms with the [Adaptive Card
201
+ * Schema](https://adaptivecards.io/schemas/adaptive-card.json) and templating language.
202
+ * This Adaptive Card instance is used to render a result from the plugin response. This
203
+ * value is used if the `template_selector` isn't present or fails to resolve to an adaptive
204
+ * card.
205
+ */
206
+ static_template?: {
207
+ [key: string]: any;
208
+ };
209
+ /**
210
+ * A JSON string containing a JSONPath query that when applied to the response payload will
211
+ * return an [Adaptive Card
212
+ * Template](https://learn.microsoft.com/adaptive-cards/templating/language) that will be
213
+ * used to authenticate the user.
214
+ */
215
+ oauth_card_path?: string;
216
+ [property: string]: any;
217
+ }
218
+ /**
219
+ * Allows mapping of JSONPath queries to well-known data elements. Each JSONPath query is
220
+ * relative to a result value.
221
+ */
222
+ export interface ResponseSemanticsPropertiesObject {
223
+ /**
224
+ * Title of a citation for the result.
225
+ */
226
+ title?: string;
227
+ /**
228
+ * Subtitle of a citation for the result.
229
+ */
230
+ subtitle?: string;
231
+ /**
232
+ * URL of a citation for the result.
233
+ */
234
+ url?: string;
235
+ /**
236
+ * URL of a thumbnail image for the result.
237
+ */
238
+ thumbnail_url?: string;
239
+ /**
240
+ * Data sensitivity indicator of the result contents.
241
+ */
242
+ information_protection_label?: string;
243
+ /**
244
+ * A JSONPath query that returns an [Adaptive Card
245
+ * Template](https://learn.microsoft.com/adaptive-cards/templating/language) from the API
246
+ * response to be used for rendering the result.
247
+ */
248
+ template_selector?: string;
249
+ [property: string]: any;
250
+ }
251
+ /**
252
+ * Describes the security information to be used to aid in determining the relative risk of
253
+ * invoking the function.
254
+ */
255
+ export interface SecurityInfoObject {
256
+ /**
257
+ * An array of strings that describe the data handling behavior of the plugin.
258
+ */
259
+ data_handling?: DataHandling[];
260
+ [property: string]: any;
261
+ }
262
+ export type DataHandling = "GetPublicData" | "GetPrivateData" | "DataTransform" | "ResourceStateUpdate";
263
+ /**
264
+ * An object that contains members that describe the parameters of a function in a runtime
265
+ * agnostic way. It mirrors the shape of [json-schema][] but only supports a small subset of
266
+ * the JSON schema capabilities. If the `parameters` property isn't present, functions
267
+ * described by a runtime object of type `OpenApi` use the OpenAPI description to determine
268
+ * the parameters. Each member in the JSON object is a function parameter object that
269
+ * describes the semantics of the parameter.
270
+ *
271
+ * An object that is used to identify the set of parameters that can be passed to the
272
+ * function. This object is structured to mirror the shape of a JSON Schema object but it
273
+ * only supports a subset of JSON Schema keywords.
274
+ */
275
+ export interface FunctionParametersObject {
276
+ /**
277
+ * The JSON Schema type.
278
+ */
279
+ type?: "object";
280
+ /**
281
+ * An object that maps parameter names to their definitions.
282
+ */
283
+ properties: {
284
+ [key: string]: any;
285
+ };
286
+ /**
287
+ * The names of properties that are required parameters. Unlike in JSON Schema, the values
288
+ * in this array MUST match the names listed in the `properties` property.
289
+ */
290
+ required?: string[];
291
+ [property: string]: any;
292
+ }
293
+ /**
294
+ * Describes the semantics of the value returned from the function.
295
+ *
296
+ * Contains the semantics of the value returned from the function.
297
+ *
298
+ * Indicates that the function returns a response that is compatible with the Rich Responses
299
+ * protocol.
300
+ */
301
+ export interface ReturnObject {
302
+ /**
303
+ * Specifies the type of the value returned by the API.
304
+ */
305
+ type?: "string";
306
+ /**
307
+ * A description of the value returned by the API.
308
+ */
309
+ description?: string;
310
+ $ref?: "https://copilot.microsoft.com/schemas/rich-response-v1.0.json";
311
+ [property: string]: any;
312
+ }
313
+ /**
314
+ * Specifies the type of the value returned by the API.
315
+ */
316
+ /**
317
+ * Defines state objects for orchestrator states.
318
+ */
319
+ export interface FunctionStatesObject {
320
+ /**
321
+ * The state in which the model can call functions and do computations.
322
+ */
323
+ reasoning?: StateObject;
324
+ /**
325
+ * The state in which the model can generate text that is shown to the user. The model can't
326
+ * invoke functions in the responding state.
327
+ */
328
+ responding?: StateObject;
329
+ [property: string]: any;
330
+ }
331
+ /**
332
+ * The state in which the model can call functions and do computations.
333
+ *
334
+ * Contains specific instructions for when a function is invoked in a specific orchestrator
335
+ * state.
336
+ *
337
+ * The state in which the model can generate text that is shown to the user. The model can't
338
+ * invoke functions in the responding state.
339
+ */
340
+ export interface StateObject {
341
+ /**
342
+ * Describes the purpose of a function when used in a specific orchestrator state.
343
+ */
344
+ description?: string;
345
+ /**
346
+ * A string or an array of strings that are used to provide instructions to the orchestrator
347
+ * on how to use this function while in a specific orchestrator state. Providing a single
348
+ * string indicates the intent to provide a complete set of instructions that would override
349
+ * any built-in function prompts. Providing an array of strings indicates the intent to
350
+ * augment the built-in function prompting mechanism.
351
+ */
352
+ instructions?: string[] | string;
353
+ /**
354
+ * A string or an array of strings that are used to provide examples to the orchestrator on
355
+ * how this function can be invoked.
356
+ */
357
+ examples?: string[] | string;
358
+ [property: string]: any;
359
+ }
360
+ /**
361
+ * Defines how a specific runtime invokes functions, including auth and spec details.
362
+ */
363
+ export interface APIPluginManifestV2D {
364
+ /**
365
+ * The type of runtime. Must be 'OpenApi' or 'LocalPlugin'.
366
+ */
367
+ type: RuntimeType;
368
+ auth: RuntimeAuthenticationObject;
369
+ /**
370
+ * The names of the functions that are available in this runtime. If this property is
371
+ * omitted, all functions described by the runtime are available. If a wildcard ("*") is
372
+ * specified as the only string, all functions are considered. More than one runtime MUST
373
+ * NOT declare support for the same function either implicitly or explicitly
374
+ */
375
+ run_for_functions?: string[];
376
+ /**
377
+ * Runtime-specific configuration object.
378
+ */
379
+ spec: Spec;
380
+ /**
381
+ * A Liquid template used to transform the plugin response payload.
382
+ */
383
+ output_template?: string;
384
+ }
385
+ /**
386
+ * Contains information used by the plugin to authenticate to the runtime.
387
+ */
388
+ export interface RuntimeAuthenticationObject {
389
+ /**
390
+ * Specifies the type of authentication required to invoke a function.
391
+ */
392
+ type: TypeEnum;
393
+ /**
394
+ * Specifies the type of authentication required to invoke a function.
395
+ */
396
+ Type?: TypeEnum;
397
+ /**
398
+ * A value used when `type` is `OAuthPluginVault` or `ApiKeyPluginVault`. The `reference_id`
399
+ * value is acquired independently when providing the necessary authentication configuration
400
+ * values. This mechanism exists to prevent the need for storing secret values in the plugin
401
+ * manifest.
402
+ */
403
+ reference_id?: string;
404
+ }
405
+ /**
406
+ * Specifies the type of authentication required to invoke a function.
407
+ */
408
+ export type TypeEnum = "None" | "OAuthPluginVault" | "ApiKeyPluginVault";
409
+ /**
410
+ * Runtime-specific configuration object.
411
+ *
412
+ * Configuration for invoking an OpenAPI-based runtime.
413
+ *
414
+ * Configuration for invoking a local plugin runtime.
415
+ */
416
+ export interface Spec {
417
+ /**
418
+ * The URL to the OpenAPI specification (ignored if api_description is present).
419
+ */
420
+ url?: string;
421
+ /**
422
+ * A string that contains an OpenAPI description. If this member is present, `url` isn't
423
+ * required and is ignored if present.
424
+ */
425
+ api_description?: string;
426
+ /**
427
+ * A JSON string that contains the progress style that will be used to display the progress
428
+ * of the function. The value MUST be one of the following values: None, ShowUsage,
429
+ * ShowUsageWithInput, ShowUsageWithInputAndOutput.
430
+ */
431
+ progress_style?: ProgressStyle;
432
+ /**
433
+ * A JSON string that represents a local runtime identifier that links to a specific
434
+ * function to invoke locally (e.g. in the case of Windows it will link to a particular
435
+ * app). In the case of an Office Addin that is implementing the function, the value MUST be
436
+ * the string Microsoft.Office.Addin.
437
+ */
438
+ local_endpoint?: "Microsoft.Office.Addin";
439
+ /**
440
+ * An optional JSON array of enumerated strings that can take values as mail, workbook,
441
+ * document or presentation. The value represent the host apps this LocalPlugin can run-in.
442
+ */
443
+ allowed_host?: AllowedHost;
444
+ }
445
+ /**
446
+ * An optional JSON array of enumerated strings that can take values as mail, workbook,
447
+ * document or presentation. The value represent the host apps this LocalPlugin can run-in.
448
+ */
449
+ export type AllowedHost = "mail" | "workbook" | "document" | "presentation";
450
+ /**
451
+ * A JSON string that represents a local runtime identifier that links to a specific
452
+ * function to invoke locally (e.g. in the case of Windows it will link to a particular
453
+ * app). In the case of an Office Addin that is implementing the function, the value MUST be
454
+ * the string Microsoft.Office.Addin.
455
+ */
456
+ /**
457
+ * A JSON string that contains the progress style that will be used to display the progress
458
+ * of the function. The value MUST be one of the following values: None, ShowUsage,
459
+ * ShowUsageWithInput, ShowUsageWithInputAndOutput.
460
+ */
461
+ export type ProgressStyle = "None" | "ShowUsage" | "ShowUsageWithInput" | "ShowUsageWithInputAndOutput";
462
+ /**
463
+ * The type of runtime. Must be 'OpenApi' or 'LocalPlugin'.
464
+ */
465
+ export type RuntimeType = "OpenApi" | "LocalPlugin";
466
+ export declare class Convert {
467
+ static toAPIPluginManifestV2D3(json: string): APIPluginManifestV2D3;
468
+ static aPIPluginManifestV2D3ToJson(value: APIPluginManifestV2D3): string;
469
+ }