apps 0.0.1-beta.87 → 0.0.1-beta.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/framework-reference.json +1 -1
  2. package/js/{chunk-I6Q7ZPKJ.js → chunk-5ZVAYXLT.js} +1 -1
  3. package/js/{chunk-XBHWCCNB.js → chunk-6FUJH3T4.js} +4 -4
  4. package/js/{chunk-OEZI25CT.js → chunk-7Z3NUCTP.js} +10 -5
  5. package/js/{chunk-W6XCQAXP.js → chunk-BZFFXNWA.js} +2 -2
  6. package/js/{chunk-H2CJWXA3.js → chunk-DDHBUKXX.js} +16 -0
  7. package/js/{chunk-FVYCYTYL.js → chunk-EKZLPXHK.js} +5 -5
  8. package/js/{chunk-EZUX2YJS.js → chunk-ELSILABS.js} +13 -12
  9. package/js/{chunk-Q4IZAUIF.js → chunk-F2G534HD.js} +1 -1
  10. package/js/{chunk-JF6FO6YA.js → chunk-GLXEYET6.js} +3 -3
  11. package/js/{chunk-A3HPRNJC.js → chunk-GQ33QSNB.js} +29 -1
  12. package/js/{chunk-7R73XVF3.js → chunk-H6NFR354.js} +7 -7
  13. package/js/{chunk-2P7BTRWZ.js → chunk-I46RIOKQ.js} +6 -6
  14. package/js/{chunk-CDXQDN7W.js → chunk-JJH3MBAM.js} +1 -1
  15. package/js/{chunk-WUPLD4VN.js → chunk-NQW2E44U.js} +41 -3
  16. package/js/{chunk-7NTL2NOR.js → chunk-ZK7JDZJS.js} +2 -2
  17. package/js/client.js +3 -3
  18. package/js/contracts.js +11 -3
  19. package/js/effect.js +11 -11
  20. package/js/graphql.js +13 -13
  21. package/js/host.js +11 -11
  22. package/js/index.js +18 -8
  23. package/js/mcp/effect.js +12 -12
  24. package/js/mcp.js +14 -14
  25. package/js/openapi.js +9 -9
  26. package/js/skills.js +7 -7
  27. package/js/ui/contracts.js +2 -2
  28. package/js/ui/serving.js +2 -2
  29. package/package.json +1 -1
  30. package/runtime.json +1 -1
  31. package/types/apps/src/contracts/app.d.ts +2 -0
  32. package/types/apps/src/contracts/context.d.ts +6 -0
  33. package/types/apps/src/contracts/host.d.ts +2 -1
  34. package/types/apps/src/contracts/icons.d.ts +28 -0
  35. package/types/apps/src/contracts/protocols/current.d.ts +14 -0
  36. package/types/apps/src/contracts/schema.d.ts +21 -0
  37. package/types/apps/src/implementation/openapi-compile.d.ts +2 -2
  38. package/types/apps/src/implementation/provider.d.ts +2 -2
  39. package/types/apps/src/implementation/router-catalog.d.ts +3 -3
  40. package/types/apps/src/implementation/schema.d.ts +8 -1
  41. package/types/apps/src/index.d.ts +2 -1
@@ -5,7 +5,7 @@ import {
5
5
  networkRefusalHeader,
6
6
  networkRefusalStatus,
7
7
  supportedFetchOptions
8
- } from "./chunk-Q4IZAUIF.js";
8
+ } from "./chunk-F2G534HD.js";
9
9
  import {
10
10
  invocationFetch
11
11
  } from "./chunk-QWQM3CLH.js";
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  appInvocationFetch
3
- } from "./chunk-I6Q7ZPKJ.js";
3
+ } from "./chunk-5ZVAYXLT.js";
4
4
  import {
5
5
  fromPromise,
6
6
  method,
7
7
  toPromise
8
- } from "./chunk-W6XCQAXP.js";
8
+ } from "./chunk-BZFFXNWA.js";
9
9
  import {
10
10
  CacheAcquired,
11
11
  CacheEntry,
12
12
  CacheError,
13
13
  cacheLimits
14
- } from "./chunk-Q4IZAUIF.js";
14
+ } from "./chunk-F2G534HD.js";
15
15
  import {
16
16
  decoderOf
17
- } from "./chunk-A3HPRNJC.js";
17
+ } from "./chunk-GQ33QSNB.js";
18
18
  import {
19
19
  captureTelemetry,
20
20
  owned,
@@ -2,30 +2,31 @@ import {
2
2
  declaredOperations,
3
3
  nativeOperation,
4
4
  nativeRouter
5
- } from "./chunk-JF6FO6YA.js";
5
+ } from "./chunk-GLXEYET6.js";
6
6
  import {
7
7
  fromPromise,
8
8
  method
9
- } from "./chunk-W6XCQAXP.js";
9
+ } from "./chunk-BZFFXNWA.js";
10
10
  import {
11
11
  EmittedEvent,
12
12
  EventName,
13
13
  Placement,
14
14
  ScheduleTiming,
15
+ appIconsProblem,
15
16
  defaultEventLimits,
16
17
  normalizePlacements,
17
18
  placementFields,
18
19
  renderPlacement
19
- } from "./chunk-WUPLD4VN.js";
20
+ } from "./chunk-NQW2E44U.js";
20
21
  import {
21
22
  decoderOf,
22
23
  isSchema,
23
24
  jsonSchemaDocument,
24
25
  schemaArgument
25
- } from "./chunk-A3HPRNJC.js";
26
+ } from "./chunk-GQ33QSNB.js";
26
27
  import {
27
28
  JsonValue
28
- } from "./chunk-H2CJWXA3.js";
29
+ } from "./chunk-DDHBUKXX.js";
29
30
  import {
30
31
  Effect_exports,
31
32
  Result_exports,
@@ -393,9 +394,13 @@ var defineApp = (requirements, definition) => {
393
394
  return [name, native2];
394
395
  })
395
396
  );
397
+ const iconsProblem = requirements.icons === void 0 ? void 0 : appIconsProblem(requirements.icons);
398
+ if (iconsProblem !== void 0)
399
+ throw new TypeError(`The app's icons are invalid: ${iconsProblem}`);
396
400
  const native = {
397
401
  accounts: requirements.accounts,
398
402
  ...events === void 0 ? {} : { events },
403
+ ...requirements.icons === void 0 || requirements.icons.length === 0 ? {} : { icons: requirements.icons },
399
404
  evaluate: (context) => factory(context).pipe(Effect_exports.map((value2) => adaptDefinition(value2)))
400
405
  };
401
406
  return {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  ProviderError,
3
3
  maxUpstreamMessageLength
4
- } from "./chunk-Q4IZAUIF.js";
4
+ } from "./chunk-F2G534HD.js";
5
5
  import {
6
6
  owned
7
7
  } from "./chunk-QWQM3CLH.js";
8
8
  import {
9
9
  AccountId
10
- } from "./chunk-H2CJWXA3.js";
10
+ } from "./chunk-DDHBUKXX.js";
11
11
  import {
12
12
  Effect_exports,
13
13
  Option_exports,
@@ -19,6 +19,21 @@ var HttpUrl = Schema_exports.String.check(
19
19
  }
20
20
  })
21
21
  );
22
+ var DeclarationIssue = Schema_exports.Struct({
23
+ path: Schema_exports.Array(Schema_exports.String),
24
+ message: Schema_exports.String
25
+ });
26
+ var DeclarationInvalid = class extends Schema_exports.TaggedError()(
27
+ "DeclarationInvalid",
28
+ { declaration: Schema_exports.String, issues: Schema_exports.Array(DeclarationIssue) }
29
+ ) {
30
+ get message() {
31
+ const problems = this.issues.map(
32
+ (issue) => issue.path.length === 0 ? issue.message : `${issue.path.join(".")}: ${issue.message}`
33
+ );
34
+ return `The ${this.declaration} declaration is invalid. ${problems.join("; ")}`;
35
+ }
36
+ };
22
37
  var ValidationError = class extends Schema_exports.TaggedError()("ValidationError", {}) {
23
38
  get message() {
24
39
  return "Value did not match the schema";
@@ -30,5 +45,6 @@ export {
30
45
  JsonObject,
31
46
  AccountId,
32
47
  HttpUrl,
48
+ DeclarationInvalid,
33
49
  ValidationError
34
50
  };
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  getWithReads
3
- } from "./chunk-XBHWCCNB.js";
3
+ } from "./chunk-6FUJH3T4.js";
4
4
  import {
5
5
  fromPromise,
6
6
  method,
7
7
  toPromise
8
- } from "./chunk-W6XCQAXP.js";
8
+ } from "./chunk-BZFFXNWA.js";
9
9
  import {
10
10
  CacheError
11
- } from "./chunk-Q4IZAUIF.js";
11
+ } from "./chunk-F2G534HD.js";
12
12
  import {
13
13
  wrap
14
- } from "./chunk-A3HPRNJC.js";
14
+ } from "./chunk-GQ33QSNB.js";
15
15
  import {
16
16
  JsonObject
17
- } from "./chunk-H2CJWXA3.js";
17
+ } from "./chunk-DDHBUKXX.js";
18
18
  import {
19
19
  Deferred_exports,
20
20
  Duration_exports,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  authorCache,
3
3
  unavailableCache
4
- } from "./chunk-XBHWCCNB.js";
4
+ } from "./chunk-6FUJH3T4.js";
5
5
  import {
6
6
  accountSecrets,
7
7
  boundFailureMessage,
@@ -12,10 +12,10 @@ import {
12
12
  parseSkillLoadFailed,
13
13
  readCatalog,
14
14
  routerSkills
15
- } from "./chunk-2P7BTRWZ.js";
15
+ } from "./chunk-I46RIOKQ.js";
16
16
  import {
17
17
  appInvocationFetch
18
- } from "./chunk-I6Q7ZPKJ.js";
18
+ } from "./chunk-5ZVAYXLT.js";
19
19
  import {
20
20
  folderSkillsEffect
21
21
  } from "./chunk-XBG7HHXC.js";
@@ -26,12 +26,12 @@ import {
26
26
  makeEmitter,
27
27
  toEffectApp,
28
28
  withPlacements
29
- } from "./chunk-OEZI25CT.js";
29
+ } from "./chunk-7Z3NUCTP.js";
30
30
  import {
31
31
  declaredOperations,
32
32
  locate,
33
33
  nativeOperation
34
- } from "./chunk-JF6FO6YA.js";
34
+ } from "./chunk-GLXEYET6.js";
35
35
  import {
36
36
  accountProviderError,
37
37
  appCode,
@@ -39,7 +39,7 @@ import {
39
39
  httpProviderError,
40
40
  parseProviderError,
41
41
  toPromise
42
- } from "./chunk-W6XCQAXP.js";
42
+ } from "./chunk-BZFFXNWA.js";
43
43
  import {
44
44
  AccountCheckResult,
45
45
  DeclaredProvider,
@@ -91,7 +91,7 @@ import {
91
91
  reservedTablePrefix,
92
92
  sqlBindingsLimit,
93
93
  workflowDurationMillis
94
- } from "./chunk-WUPLD4VN.js";
94
+ } from "./chunk-NQW2E44U.js";
95
95
  import {
96
96
  AppSkills,
97
97
  SkillFile
@@ -108,7 +108,7 @@ import {
108
108
  missingKeyText,
109
109
  objectShape,
110
110
  unionShape
111
- } from "./chunk-A3HPRNJC.js";
111
+ } from "./chunk-GQ33QSNB.js";
112
112
  import {
113
113
  captureTelemetry,
114
114
  makeOwnershipAccounting,
@@ -118,7 +118,7 @@ import {
118
118
  import {
119
119
  JsonObject,
120
120
  JsonValue
121
- } from "./chunk-H2CJWXA3.js";
121
+ } from "./chunk-DDHBUKXX.js";
122
122
  import {
123
123
  Base64_exports,
124
124
  Cause_exports,
@@ -1153,7 +1153,7 @@ function providerDeclaration(provider) {
1153
1153
  `Account provider "${provider.name}" has an invalid declaration`
1154
1154
  );
1155
1155
  }
1156
- function requirements(slots, sql, events) {
1156
+ function requirements(slots, sql, events, icons) {
1157
1157
  return Effect_exports.gen(function* () {
1158
1158
  const accounts = /* @__PURE__ */ new Map();
1159
1159
  for (const [slot, selection] of Object.entries(slots)) {
@@ -1173,7 +1173,8 @@ function requirements(slots, sql, events) {
1173
1173
  () => declaredEvents(events),
1174
1174
  "The app's event declarations are invalid"
1175
1175
  )
1176
- }
1176
+ },
1177
+ ...icons === void 0 ? {} : { icons }
1177
1178
  }).pipe(
1178
1179
  Effect_exports.mapError(
1179
1180
  (cause) => declarationInvalid("The app's account declarations are invalid", cause)
@@ -1293,7 +1294,7 @@ function dispatch(app, request, context, signal, emitted) {
1293
1294
  const native = toEffectApp(app);
1294
1295
  const secrets = accountSecrets(context.accounts);
1295
1296
  const ownsSql = hasMigrations(context.files ?? []);
1296
- const declared = yield* requirements(native.accounts, ownsSql, native.events);
1297
+ const declared = yield* requirements(native.accounts, ownsSql, native.events, native.icons);
1297
1298
  if (request.operation === "requirements")
1298
1299
  return yield* safe2(
1299
1300
  () => Schema_exports.decodeUnknownEffect(JsonValue)(declared),
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AccountId
3
- } from "./chunk-H2CJWXA3.js";
3
+ } from "./chunk-DDHBUKXX.js";
4
4
  import {
5
5
  Schema_exports
6
6
  } from "./chunk-IFJU5SYQ.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  fromPromise
3
- } from "./chunk-W6XCQAXP.js";
3
+ } from "./chunk-BZFFXNWA.js";
4
4
  import {
5
5
  HostedTool,
6
6
  RouterKey,
7
7
  RouterMeta,
8
8
  reservedRouterKeys
9
- } from "./chunk-WUPLD4VN.js";
9
+ } from "./chunk-NQW2E44U.js";
10
10
  import {
11
11
  decoderOf,
12
12
  schemaArgument
13
- } from "./chunk-A3HPRNJC.js";
13
+ } from "./chunk-GQ33QSNB.js";
14
14
  import {
15
15
  Effect_exports,
16
16
  Schema_exports
@@ -1,7 +1,8 @@
1
1
  import {
2
+ DeclarationInvalid,
2
3
  JsonObject,
3
4
  ValidationError
4
- } from "./chunk-H2CJWXA3.js";
5
+ } from "./chunk-DDHBUKXX.js";
5
6
  import {
6
7
  Cause_exports,
7
8
  Effect_exports,
@@ -1101,6 +1102,32 @@ var schemaArgument = (value, role) => {
1101
1102
  var parse = (decoder, input) => Effect_exports.suspend(() => Schema_exports.decodeUnknownEffect(decoder)(input)).pipe(
1102
1103
  Effect_exports.mapError(() => new ValidationError())
1103
1104
  );
1105
+ var declarationIssues = SchemaIssue_exports.makeFormatterStandardSchemaV1({
1106
+ leafHook: SchemaIssue_exports.defaultLeafHook
1107
+ });
1108
+ var parseDeclaration = (decoder, input, declaration, intended = () => decoder) => Effect_exports.suspend(() => Schema_exports.decodeUnknownEffect(decoder)(input)).pipe(
1109
+ Effect_exports.catch(
1110
+ (failed) => Effect_exports.suspend(
1111
+ () => Schema_exports.decodeUnknownEffect(intended(input))(input, { errors: "all" })
1112
+ ).pipe(
1113
+ Effect_exports.flip,
1114
+ Effect_exports.orElseSucceed(() => failed),
1115
+ Effect_exports.flatMap(
1116
+ (error) => Effect_exports.fail(
1117
+ new DeclarationInvalid({
1118
+ declaration,
1119
+ issues: declarationIssues(error.issue).issues.map((issue) => ({
1120
+ path: (issue.path ?? []).map(
1121
+ (segment) => String(typeof segment === "object" ? segment.key : segment)
1122
+ ),
1123
+ message: issue.message
1124
+ }))
1125
+ })
1126
+ )
1127
+ )
1128
+ )
1129
+ )
1130
+ );
1104
1131
  function wrap(decoder, optionalValue) {
1105
1132
  return {
1106
1133
  [Decoder]: decoder,
@@ -1880,6 +1907,7 @@ export {
1880
1907
  isSchema,
1881
1908
  schemaArgument,
1882
1909
  parse,
1910
+ parseDeclaration,
1883
1911
  wrap,
1884
1912
  string,
1885
1913
  number,
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  prepareElicitation
3
- } from "./chunk-EZUX2YJS.js";
3
+ } from "./chunk-ELSILABS.js";
4
4
  import {
5
5
  failOnNetworkRefusal
6
- } from "./chunk-I6Q7ZPKJ.js";
6
+ } from "./chunk-5ZVAYXLT.js";
7
7
  import {
8
8
  accountProviderError,
9
9
  bodyUpstreamError,
10
10
  fromPromise,
11
11
  httpProviderError,
12
12
  providerErrorDetail
13
- } from "./chunk-W6XCQAXP.js";
13
+ } from "./chunk-BZFFXNWA.js";
14
14
  import {
15
15
  ElicitationFailed,
16
16
  McpCredentialsUnverified,
@@ -26,16 +26,16 @@ import {
26
26
  defaultMcpClientLimits,
27
27
  mcpHealthReserveMs,
28
28
  mcpSdkTimerCeilingMs
29
- } from "./chunk-WUPLD4VN.js";
29
+ } from "./chunk-NQW2E44U.js";
30
30
  import {
31
31
  NetworkRefused,
32
32
  ProviderError
33
- } from "./chunk-Q4IZAUIF.js";
33
+ } from "./chunk-F2G534HD.js";
34
34
  import {
35
35
  jsonSchemaDecoder,
36
36
  nestJsonSchema,
37
37
  preparedJsonSchemaDecoder
38
- } from "./chunk-A3HPRNJC.js";
38
+ } from "./chunk-GQ33QSNB.js";
39
39
  import {
40
40
  captureTelemetry,
41
41
  owned
@@ -45,7 +45,7 @@ import {
45
45
  } from "./chunk-PD6I2SDG.js";
46
46
  import {
47
47
  JsonObject
48
- } from "./chunk-H2CJWXA3.js";
48
+ } from "./chunk-DDHBUKXX.js";
49
49
  import {
50
50
  HttpClientRequest_exports,
51
51
  HttpClient_exports
@@ -4,12 +4,12 @@ import {
4
4
  import {
5
5
  joinPath,
6
6
  mergeMeta
7
- } from "./chunk-JF6FO6YA.js";
7
+ } from "./chunk-GLXEYET6.js";
8
8
  import {
9
9
  isShortenedUpstream,
10
10
  parseProviderError,
11
11
  providerError
12
- } from "./chunk-W6XCQAXP.js";
12
+ } from "./chunk-BZFFXNWA.js";
13
13
  import {
14
14
  ApiErrorResponse,
15
15
  HostDeclarationInvalid,
@@ -21,7 +21,7 @@ import {
21
21
  McpError,
22
22
  McpError2,
23
23
  SkillLoadFailed as SkillLoadFailed2
24
- } from "./chunk-WUPLD4VN.js";
24
+ } from "./chunk-NQW2E44U.js";
25
25
  import {
26
26
  CacheError,
27
27
  FailureCode,
@@ -33,19 +33,19 @@ import {
33
33
  maxFailureFields,
34
34
  maxFailureMessageLength,
35
35
  maxUpstreamMessageLength
36
- } from "./chunk-Q4IZAUIF.js";
36
+ } from "./chunk-F2G534HD.js";
37
37
  import {
38
38
  SkillLoadFailed,
39
39
  skillFormatLimits
40
40
  } from "./chunk-H72MEDMN.js";
41
41
  import {
42
42
  jsonSchemaDocument
43
- } from "./chunk-A3HPRNJC.js";
43
+ } from "./chunk-GQ33QSNB.js";
44
44
  import {
45
45
  AccountId,
46
46
  HttpUrl,
47
47
  JsonObject
48
- } from "./chunk-H2CJWXA3.js";
48
+ } from "./chunk-DDHBUKXX.js";
49
49
  import {
50
50
  Cause_exports,
51
51
  Effect_exports,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  JsonValue
3
- } from "./chunk-H2CJWXA3.js";
3
+ } from "./chunk-DDHBUKXX.js";
4
4
  import {
5
5
  HttpApiEndpoint_exports,
6
6
  HttpApiGroup_exports,
@@ -6,7 +6,7 @@ import {
6
6
  FailureName,
7
7
  ProviderError,
8
8
  UpstreamError
9
- } from "./chunk-Q4IZAUIF.js";
9
+ } from "./chunk-F2G534HD.js";
10
10
  import {
11
11
  AppSkillName,
12
12
  AppSkills
@@ -19,7 +19,7 @@ import {
19
19
  HttpUrl,
20
20
  JsonObject as JsonObject2,
21
21
  JsonValue
22
- } from "./chunk-H2CJWXA3.js";
22
+ } from "./chunk-DDHBUKXX.js";
23
23
  import {
24
24
  Any,
25
25
  ArraySchema,
@@ -2100,6 +2100,37 @@ var EmittedEvents = Schema_exports.Array(EmittedEvent).check(
2100
2100
  Schema_exports.isMaxLength(defaultEventLimits.maxEventsPerInvocation)
2101
2101
  );
2102
2102
 
2103
+ // src/contracts/icons.ts
2104
+ var appIconLimits = { icons: 8, characters: 32 * 1024 };
2105
+ var appIconSource = /^(?:data:image\/(?:svg\+xml|png|webp|jpeg);base64,[A-Za-z0-9+/]*={0,2}|https:\/\/\S+)$/u;
2106
+ var AppIcon = Schema_exports.Struct({
2107
+ ...RouterIcon.fields,
2108
+ src: Schema_exports.String.check(
2109
+ Schema_exports.isPattern(appIconSource),
2110
+ Schema_exports.isMaxLength(appIconLimits.characters)
2111
+ )
2112
+ });
2113
+ var AppIcons = Schema_exports.Array(AppIcon).check(
2114
+ Schema_exports.isMaxLength(appIconLimits.icons),
2115
+ Schema_exports.makeFilter((icons) => JSON.stringify(icons).length <= appIconLimits.characters, {
2116
+ message: `An app's icons total at most ${appIconLimits.characters} characters`
2117
+ })
2118
+ );
2119
+ var appIconsProblem = (icons) => {
2120
+ if (!Array.isArray(icons)) return "icons must be an array of { src, mimeType?, sizes?, theme? }";
2121
+ if (icons.length > appIconLimits.icons)
2122
+ return `An app declares at most ${appIconLimits.icons} icons; this one declares ${icons.length}`;
2123
+ for (const [index, icon] of icons.entries()) {
2124
+ const src = typeof icon === "object" && icon !== null ? icon.src : void 0;
2125
+ if (typeof src !== "string" || !appIconSource.test(src))
2126
+ return `icons[${index}].src must be a base64 data:image/svg+xml, image/png, image/webp or image/jpeg URI, or an https: URL`;
2127
+ }
2128
+ const size = JSON.stringify(icons).length;
2129
+ if (size > appIconLimits.characters)
2130
+ return `An app's icons total at most 32 KiB; these take ${Math.ceil(size / 1024)} KiB`;
2131
+ return Schema_exports.is(AppIcons)(icons) ? void 0 : 'Each icon is { src, mimeType?: string, sizes?: string[], theme?: "light" | "dark" }';
2132
+ };
2133
+
2103
2134
  // src/contracts/placement.ts
2104
2135
  var PlacementField = Schema_exports.Struct({ field: Schema_exports.NonEmptyString });
2105
2136
  var PlacementText = Schema_exports.Union([Schema_exports.String, PlacementField]);
@@ -4007,7 +4038,9 @@ var DeclaredRequirements6 = Schema_exports.Struct({
4007
4038
  /** The build has SQL files in `migrations/` and owns a raw SQLite database. */
4008
4039
  sql: Schema_exports.optionalKey(Schema_exports.Literal(true)),
4009
4040
  /** The events the app declares, so a host lists them without evaluating the app. */
4010
- events: Schema_exports.optionalKey(DeclaredEvents)
4041
+ events: Schema_exports.optionalKey(DeclaredEvents),
4042
+ /** The icons the app declares, so a host shows them without evaluating the app. */
4043
+ icons: Schema_exports.optionalKey(AppIcons)
4011
4044
  });
4012
4045
  var ResolvedAccount4 = Schema_exports.Struct({
4013
4046
  id: AccountId,
@@ -4342,6 +4375,7 @@ export {
4342
4375
  SecretsMethod,
4343
4376
  OAuthClientAuth,
4344
4377
  OAuthSecretClientAuth,
4378
+ reservedAuthorizationParams,
4345
4379
  OAuthAuthorizationParams,
4346
4380
  OAuthTokenRequestFormat,
4347
4381
  OAuthTokenResponse,
@@ -4436,6 +4470,10 @@ export {
4436
4470
  DeclaredEvents,
4437
4471
  EmittedEvent,
4438
4472
  EmittedEvents,
4473
+ appIconLimits,
4474
+ AppIcon,
4475
+ AppIcons,
4476
+ appIconsProblem,
4439
4477
  frameworkProtocol,
4440
4478
  protocol1,
4441
4479
  protocol2,
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  fixedRouter
3
- } from "./chunk-2P7BTRWZ.js";
3
+ } from "./chunk-I46RIOKQ.js";
4
4
  import {
5
5
  nativeOperation,
6
6
  operationDeclaration,
7
7
  routerDeclaration
8
- } from "./chunk-JF6FO6YA.js";
8
+ } from "./chunk-GLXEYET6.js";
9
9
 
10
10
  // src/implementation/protocol-operations.ts
11
11
  var protocolOperations = (operations, kinds = {}) => {
package/js/client.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  UiContext,
4
4
  UiDeploymentChanged,
5
5
  UiFailed
6
- } from "./chunk-CDXQDN7W.js";
6
+ } from "./chunk-JJH3MBAM.js";
7
7
  import {
8
8
  AsyncResult_exports,
9
9
  AtomRegistry_exports,
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-74YVXBKY.js";
13
13
  import {
14
14
  decoderOf
15
- } from "./chunk-A3HPRNJC.js";
15
+ } from "./chunk-GQ33QSNB.js";
16
16
  import {
17
17
  OtlpExporter_exports,
18
18
  externalTrace,
@@ -26,7 +26,7 @@ import {
26
26
  import "./chunk-5FHWNLCI.js";
27
27
  import {
28
28
  JsonValue
29
- } from "./chunk-H2CJWXA3.js";
29
+ } from "./chunk-DDHBUKXX.js";
30
30
  import {
31
31
  HttpApiClient_exports
32
32
  } from "./chunk-TUMGL2OC.js";
package/js/contracts.js CHANGED
@@ -3,6 +3,8 @@ import {
3
3
  AccountCheckResult,
4
4
  AccountInfo,
5
5
  ApiErrorResponse,
6
+ AppIcon,
7
+ AppIcons,
6
8
  ApprovalElicitation,
7
9
  ApprovalResponse,
8
10
  CalendarSchedule,
@@ -113,6 +115,7 @@ import {
113
115
  WorkflowRunPage,
114
116
  WorkflowStepOptions,
115
117
  WorkflowValue,
118
+ appIconLimits,
116
119
  approvalElicitation,
117
120
  current,
118
121
  defaultElicitationLimits,
@@ -142,11 +145,12 @@ import {
142
145
  protocol8,
143
146
  protocol9,
144
147
  renderPlacement,
148
+ reservedAuthorizationParams,
145
149
  selectTools,
146
150
  skillCatalog,
147
151
  skillsCommand,
148
152
  workflowDurationMillis
149
- } from "./chunk-WUPLD4VN.js";
153
+ } from "./chunk-NQW2E44U.js";
150
154
  import {
151
155
  FailureCode,
152
156
  FailureDetail,
@@ -169,7 +173,7 @@ import {
169
173
  networkRefusalHeader,
170
174
  networkRefusalResponse,
171
175
  networkRefusalStatus
172
- } from "./chunk-Q4IZAUIF.js";
176
+ } from "./chunk-F2G534HD.js";
173
177
  import {
174
178
  AppSkillMetadata,
175
179
  AppSkillName,
@@ -186,7 +190,7 @@ import "./chunk-5FHWNLCI.js";
186
190
  import {
187
191
  AccountId,
188
192
  HttpUrl
189
- } from "./chunk-H2CJWXA3.js";
193
+ } from "./chunk-DDHBUKXX.js";
190
194
  import "./chunk-TUMGL2OC.js";
191
195
  import "./chunk-EOPQ727L.js";
192
196
  import "./chunk-IFJU5SYQ.js";
@@ -197,6 +201,8 @@ export {
197
201
  AccountId,
198
202
  AccountInfo,
199
203
  ApiErrorResponse,
204
+ AppIcon,
205
+ AppIcons,
200
206
  AppSkillMetadata,
201
207
  AppSkillName,
202
208
  AppSkillSource,
@@ -330,6 +336,7 @@ export {
330
336
  WorkflowRunPage,
331
337
  WorkflowStepOptions,
332
338
  WorkflowValue,
339
+ appIconLimits,
333
340
  approvalElicitation,
334
341
  defaultElicitationLimits,
335
342
  defaultEventLimits,
@@ -366,6 +373,7 @@ export {
366
373
  protocol8,
367
374
  protocol9,
368
375
  renderPlacement,
376
+ reservedAuthorizationParams,
369
377
  selectTools,
370
378
  skillCatalog,
371
379
  skillFormatLimits,
package/js/effect.js CHANGED
@@ -3,25 +3,25 @@ import {
3
3
  ApprovalDecision,
4
4
  createAppHandler,
5
5
  prepareElicitation
6
- } from "./chunk-EZUX2YJS.js";
7
- import "./chunk-XBHWCCNB.js";
8
- import "./chunk-2P7BTRWZ.js";
9
- import "./chunk-I6Q7ZPKJ.js";
6
+ } from "./chunk-ELSILABS.js";
7
+ import "./chunk-6FUJH3T4.js";
8
+ import "./chunk-I46RIOKQ.js";
9
+ import "./chunk-5ZVAYXLT.js";
10
10
  import "./chunk-XBG7HHXC.js";
11
- import "./chunk-OEZI25CT.js";
12
- import "./chunk-JF6FO6YA.js";
13
- import "./chunk-W6XCQAXP.js";
11
+ import "./chunk-7Z3NUCTP.js";
12
+ import "./chunk-GLXEYET6.js";
13
+ import "./chunk-BZFFXNWA.js";
14
14
  import {
15
15
  ToolAnnotations
16
- } from "./chunk-WUPLD4VN.js";
17
- import "./chunk-Q4IZAUIF.js";
16
+ } from "./chunk-NQW2E44U.js";
17
+ import "./chunk-F2G534HD.js";
18
18
  import "./chunk-H72MEDMN.js";
19
19
  import {
20
20
  compileJsonSchemaDecoder,
21
21
  decoderOf,
22
22
  jsonSchemaDecoder,
23
23
  wrap
24
- } from "./chunk-A3HPRNJC.js";
24
+ } from "./chunk-GQ33QSNB.js";
25
25
  import "./chunk-QWQM3CLH.js";
26
26
  import "./chunk-PD6I2SDG.js";
27
27
  import "./chunk-5FHWNLCI.js";
@@ -29,7 +29,7 @@ import {
29
29
  HttpUrl,
30
30
  JsonObject,
31
31
  ValidationError
32
- } from "./chunk-H2CJWXA3.js";
32
+ } from "./chunk-DDHBUKXX.js";
33
33
  import "./chunk-TUMGL2OC.js";
34
34
  import "./chunk-EOPQ727L.js";
35
35
  import "./chunk-IFJU5SYQ.js";