apps 0.0.1-beta.6 → 0.0.1-beta.61

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 (173) hide show
  1. package/README.md +24 -21
  2. package/framework-reference.json +1 -1
  3. package/js/chunk-2A26IT3X.js +171 -0
  4. package/js/chunk-4HYFEAR7.js +49 -0
  5. package/js/chunk-5FHWNLCI.js +88 -0
  6. package/js/{chunk-M3B3DE4K.js → chunk-74YVXBKY.js} +463 -218
  7. package/js/{chunk-MNMNLXBL.js → chunk-7QBUFK6I.js} +316 -69
  8. package/js/{chunk-SB4HEPNJ.js → chunk-A4RQSTHG.js} +883 -189
  9. package/js/{chunk-T7GKZBLP.js → chunk-ANN7H2FL.js} +67 -55
  10. package/js/{chunk-NKLWZJLE.js → chunk-AQU56EPI.js} +9 -5
  11. package/js/chunk-CDXQDN7W.js +92 -0
  12. package/js/{chunk-UK573G7W.js → chunk-EOPQ727L.js} +87 -51
  13. package/js/{chunk-27F7W2LG.js → chunk-H2CJWXA3.js} +2 -2
  14. package/js/{chunk-JU7VHODU.js → chunk-H72MEDMN.js} +65 -10
  15. package/js/{chunk-CDL5PM2Q.js → chunk-IFJU5SYQ.js} +19082 -18402
  16. package/js/{chunk-VFZKSM3T.js → chunk-JPEUKEV4.js} +3 -3
  17. package/js/{chunk-RFVIONFX.js → chunk-JSAZHHWI.js} +79 -41
  18. package/js/{chunk-RJDDBDSN.js → chunk-K6P2US3D.js} +635 -89
  19. package/js/{chunk-5T57N25Q.js → chunk-KGCTYL2S.js} +511 -63
  20. package/js/{chunk-KUMBKVJD.js → chunk-KLYSEHUD.js} +2 -2
  21. package/js/chunk-MWKHKOTL.js +240 -0
  22. package/js/chunk-NFHURZBA.js +340 -0
  23. package/js/chunk-OD3KFKZD.js +1617 -0
  24. package/js/{chunk-57RKNWL2.js → chunk-PD6I2SDG.js} +4 -4
  25. package/js/{chunk-ITM77QPO.js → chunk-QE4JSN3X.js} +126 -31
  26. package/js/chunk-S34PXQUC.js +266 -0
  27. package/js/{chunk-B3EOZTK3.js → chunk-TLWLJ7PD.js} +2227 -453
  28. package/js/{chunk-IJX4CYZO.js → chunk-TUMGL2OC.js} +228 -264
  29. package/js/{chunk-ECQFRCH4.js → chunk-VHUR5HUL.js} +4 -3
  30. package/js/{chunk-IPI4MFSN.js → chunk-XBG7HHXC.js} +2 -2
  31. package/js/client.js +142 -94
  32. package/js/contracts.js +103 -26
  33. package/js/effect.js +19 -19
  34. package/js/{es-APDZKREY.js → es-DIULA3ZF.js} +62 -1659
  35. package/js/graphql.js +50 -40
  36. package/js/host.js +83 -58
  37. package/js/index.js +90 -61
  38. package/js/mcp/effect.js +23 -21
  39. package/js/mcp/stdio.js +44 -34
  40. package/js/mcp.js +76 -53
  41. package/js/openapi.js +4050 -1354
  42. package/js/react.js +2 -3
  43. package/js/skills/effect.js +6 -3
  44. package/js/skills.js +208 -81
  45. package/js/storage/facet.js +1 -540
  46. package/js/ui/auth/contracts.js +2 -2
  47. package/js/ui/auth.js +5 -5
  48. package/js/ui/contracts.js +5 -4
  49. package/js/ui/serving.js +8517 -214
  50. package/package.json +2 -3
  51. package/runtime.json +1 -1
  52. package/types/app-cache/src/index.d.ts +10 -1
  53. package/types/apps/src/contracts/api-response-error.d.ts +4 -0
  54. package/types/apps/src/contracts/app.d.ts +7 -3
  55. package/types/apps/src/contracts/cache.d.ts +20 -0
  56. package/types/apps/src/contracts/context.d.ts +19 -11
  57. package/types/apps/src/contracts/elicitation.d.ts +6 -6
  58. package/types/apps/src/contracts/events.d.ts +93 -0
  59. package/types/apps/src/contracts/failure.d.ts +30 -1
  60. package/types/apps/src/contracts/graphql.d.ts +2 -1
  61. package/types/apps/src/contracts/host.d.ts +48 -13
  62. package/types/apps/src/contracts/live.d.ts +2 -0
  63. package/types/apps/src/contracts/mcp.d.ts +80 -10
  64. package/types/apps/src/contracts/network.d.ts +84 -0
  65. package/types/apps/src/contracts/openapi-compile.d.ts +82 -3
  66. package/types/apps/src/contracts/openapi.d.ts +41 -9
  67. package/types/apps/src/contracts/operations.d.ts +8 -4
  68. package/types/apps/src/contracts/protocol-version.d.ts +2 -2
  69. package/types/apps/src/contracts/protocols/1.d.ts +733 -81
  70. package/types/apps/src/contracts/protocols/10.d.ts +1450 -0
  71. package/types/apps/src/contracts/protocols/2.d.ts +69 -26
  72. package/types/apps/src/contracts/protocols/3.d.ts +133 -33
  73. package/types/apps/src/contracts/protocols/4.d.ts +122 -45
  74. package/types/apps/src/contracts/protocols/5.d.ts +1200 -0
  75. package/types/apps/src/contracts/protocols/6.d.ts +1629 -0
  76. package/types/apps/src/contracts/protocols/7.d.ts +1785 -0
  77. package/types/apps/src/contracts/protocols/8.d.ts +1182 -0
  78. package/types/apps/src/contracts/protocols/9.d.ts +1104 -0
  79. package/types/apps/src/contracts/protocols/current.d.ts +2476 -0
  80. package/types/apps/src/contracts/protocols/oauth-6.d.ts +74 -0
  81. package/types/apps/src/contracts/protocols/oauth.d.ts +134 -0
  82. package/types/apps/src/contracts/provider-error.d.ts +9 -0
  83. package/types/apps/src/contracts/provider.d.ts +115 -10
  84. package/types/apps/src/contracts/skills.d.ts +50 -13
  85. package/types/apps/src/contracts/sql.d.ts +58 -0
  86. package/types/apps/src/contracts/ui.d.ts +19 -1
  87. package/types/apps/src/contracts/workflows.d.ts +6 -0
  88. package/types/apps/src/facet.d.ts +4 -5
  89. package/types/apps/src/host.d.ts +5 -0
  90. package/types/apps/src/implementation/account-router.d.ts +4 -3
  91. package/types/apps/src/implementation/authoring.d.ts +25 -5
  92. package/types/apps/src/implementation/browser-scripts.gen.d.ts +6 -0
  93. package/types/apps/src/implementation/cache.d.ts +4 -0
  94. package/types/apps/src/implementation/catalog-cache.d.ts +35 -4
  95. package/types/apps/src/implementation/elicitation.d.ts +18 -15
  96. package/types/apps/src/implementation/events.d.ts +59 -0
  97. package/types/apps/src/implementation/failure-detail.d.ts +25 -3
  98. package/types/apps/src/implementation/graphql-catalog.d.ts +3 -3
  99. package/types/apps/src/implementation/graphql.d.ts +4 -3
  100. package/types/apps/src/implementation/input-problems.d.ts +6 -2
  101. package/types/apps/src/implementation/invocation-timing.d.ts +16 -0
  102. package/types/apps/src/implementation/live.d.ts +2 -2
  103. package/types/apps/src/implementation/mcp-call.d.ts +6 -5
  104. package/types/apps/src/implementation/mcp-catalog.d.ts +6 -4
  105. package/types/apps/src/implementation/mcp-client.d.ts +17 -9
  106. package/types/apps/src/implementation/mcp-stdio.d.ts +1 -1
  107. package/types/apps/src/implementation/mcp-tools.d.ts +2 -1
  108. package/types/apps/src/implementation/mcp.d.ts +20 -9
  109. package/types/apps/src/implementation/network.d.ts +16 -0
  110. package/types/apps/src/implementation/openapi-compile.d.ts +26 -6
  111. package/types/apps/src/implementation/openapi-document.d.ts +46 -19
  112. package/types/apps/src/implementation/openapi-names.d.ts +9 -4
  113. package/types/apps/src/implementation/openapi-request.d.ts +10 -2
  114. package/types/apps/src/implementation/openapi-source.d.ts +18 -0
  115. package/types/apps/src/implementation/openapi-upgrade.d.ts +4 -0
  116. package/types/apps/src/implementation/operations.d.ts +17 -2
  117. package/types/apps/src/implementation/optimistic.d.ts +1 -1
  118. package/types/apps/src/implementation/protocol-operations.d.ts +3 -0
  119. package/types/apps/src/implementation/provider-error.d.ts +28 -1
  120. package/types/apps/src/implementation/provider.d.ts +19 -5
  121. package/types/apps/src/implementation/query-commit.d.ts +1 -1
  122. package/types/apps/src/implementation/router-catalog.d.ts +11 -13
  123. package/types/apps/src/implementation/router.d.ts +16 -5
  124. package/types/apps/src/implementation/runtime-yield.d.ts +7 -0
  125. package/types/apps/src/implementation/schema.d.ts +90 -10
  126. package/types/apps/src/implementation/skills.d.ts +18 -24
  127. package/types/apps/src/implementation/sql.d.ts +71 -0
  128. package/types/apps/src/implementation/ui-account-notice.d.ts +9 -0
  129. package/types/apps/src/implementation/ui-auth.d.ts +1 -1
  130. package/types/apps/src/implementation/ui-client.d.ts +2 -2
  131. package/types/apps/src/implementation/ui-document.d.ts +5 -0
  132. package/types/apps/src/implementation/ui-errors.d.ts +1 -1
  133. package/types/apps/src/implementation/ui-serving.d.ts +11 -5
  134. package/types/apps/src/implementation/ui-watch.d.ts +1 -1
  135. package/types/apps/src/implementation/upstream-error.d.ts +7 -0
  136. package/types/apps/src/implementation/webhooks.d.ts +1 -1
  137. package/types/apps/src/implementation/workflows.d.ts +1 -1
  138. package/types/apps/src/index.d.ts +30 -12
  139. package/types/apps/src/mcp.d.ts +20 -1
  140. package/types/apps/src/openapi.d.ts +1 -1
  141. package/types/apps/src/react.d.ts +1 -1
  142. package/types/apps/src/skills.d.ts +10 -8
  143. package/types/telemetry/src/app-records.d.ts +42 -0
  144. package/types/telemetry/src/browser-operations.d.ts +7 -4
  145. package/types/telemetry/src/browser.d.ts +8 -3
  146. package/types/telemetry/src/config.d.ts +2 -2
  147. package/types/telemetry/src/index.d.ts +1 -0
  148. package/types/telemetry/src/layer.d.ts +2 -2
  149. package/types/telemetry/src/ownership.d.ts +56 -0
  150. package/types/telemetry/src/recorded-failure.d.ts +29 -0
  151. package/types/telemetry/src/relay.d.ts +11 -3
  152. package/types/telemetry/src/transport.d.ts +8 -1
  153. package/types/utils/src/api-error.d.ts +55 -0
  154. package/types/utils/src/connection-failure.d.ts +33 -0
  155. package/types/utils/src/recorded-message.d.ts +18 -0
  156. package/types/utils/src/user-facing-error.d.ts +83 -0
  157. package/js/chunk-6BSSI67S.js +0 -224
  158. package/js/chunk-MKWZPDR6.js +0 -63
  159. package/js/chunk-N7YDVXYJ.js +0 -186
  160. package/js/chunk-OE3QQTSB.js +0 -222
  161. package/js/chunk-PJJ24GU7.js +0 -877
  162. package/js/chunk-PZB6T6KU.js +0 -19
  163. package/js/chunk-R3EV5FTO.js +0 -97
  164. package/js/chunk-ZQINWV4W.js +0 -630
  165. package/types/app-data/src/implementation/cursor.d.ts +0 -10
  166. package/types/app-data/src/implementation/index-key.d.ts +0 -7
  167. package/types/app-data/src/implementation/promise.d.ts +0 -68
  168. package/types/app-data/src/implementation/range.d.ts +0 -8
  169. package/types/app-data/src/implementation/schema.d.ts +0 -18
  170. package/types/app-data/src/implementation/sqlite.d.ts +0 -11
  171. package/types/app-data/src/index.d.ts +0 -4
  172. package/types/apps/src/contracts/storage.d.ts +0 -68
  173. package/types/apps/src/implementation/storage.d.ts +0 -15
@@ -1,48 +1,20 @@
1
+ import {
2
+ fromPromise
3
+ } from "./chunk-2A26IT3X.js";
1
4
  import {
2
5
  HostedTool,
3
6
  RouterKey,
4
7
  RouterMeta,
5
8
  reservedRouterKeys
6
- } from "./chunk-B3EOZTK3.js";
9
+ } from "./chunk-TLWLJ7PD.js";
7
10
  import {
8
- decoderOf
9
- } from "./chunk-5T57N25Q.js";
11
+ decoderOf,
12
+ schemaArgument
13
+ } from "./chunk-KGCTYL2S.js";
10
14
  import {
11
15
  Effect_exports,
12
16
  Schema_exports
13
- } from "./chunk-CDL5PM2Q.js";
14
-
15
- // src/implementation/authoring.ts
16
- var NativeCallback = /* @__PURE__ */ Symbol("apps.NativeCallback");
17
- var fromPromise = (callback) => (...args) => {
18
- if (NativeCallback in callback) {
19
- const native = callback[NativeCallback];
20
- return native(...args);
21
- }
22
- return Effect_exports.tryPromise({ try: () => callback(...args), catch: (error) => error });
23
- };
24
- var toPromise = (operation, signal) => {
25
- const native = (...args) => Effect_exports.suspend(() => {
26
- if (signal === void 0) return operation(...args);
27
- if (signal.aborted) return Effect_exports.interrupt;
28
- const cancelled = Effect_exports.callback((resume) => {
29
- if (signal.aborted) {
30
- resume(Effect_exports.interrupt);
31
- return;
32
- }
33
- const abort = () => resume(Effect_exports.interrupt);
34
- signal.addEventListener("abort", abort, { once: true });
35
- return Effect_exports.sync(() => signal.removeEventListener("abort", abort));
36
- });
37
- return Effect_exports.raceFirst(
38
- cancelled,
39
- Effect_exports.suspend(() => operation(...args))
40
- );
41
- });
42
- return Object.assign((...args) => Effect_exports.runPromise(native(...args)), {
43
- [NativeCallback]: native
44
- });
45
- };
17
+ } from "./chunk-IFJU5SYQ.js";
46
18
 
47
19
  // src/implementation/operations.ts
48
20
  var NativeOperation = /* @__PURE__ */ Symbol("apps.Operation");
@@ -64,28 +36,30 @@ var operationOptions = (options) => {
64
36
  ...options._meta === void 0 ? {} : { _meta: options._meta },
65
37
  input: decoderOf(options.input),
66
38
  ...approval === void 0 ? {} : {
67
- approval: (context) => Effect_exports.tryPromise({ try: async () => approval(context), catch: (error) => error })
39
+ approval: (context) => fromPromise(async () => approval(context), "approval")()
68
40
  }
69
41
  };
70
42
  };
43
+ var approvedOperation = (operation, approval) => {
44
+ const copy = Object.defineProperties({}, Object.getOwnPropertyDescriptors(operation));
45
+ return Object.defineProperty(copy, "approval", {
46
+ enumerable: true,
47
+ value: (context) => fromPromise(async () => approval(context), "approval")()
48
+ });
49
+ };
71
50
  var withApproval = (operation, approval) => ({
72
51
  ...operation,
73
- [NativeOperation]: {
74
- ...operation[NativeOperation],
75
- approval: (context) => Effect_exports.tryPromise({ try: async () => approval(context), catch: (error) => error })
76
- }
52
+ [NativeOperation]: approvedOperation(operation[NativeOperation], approval)
77
53
  });
54
+ var toolAnnotations = (operation) => nativeOperation(operation)?.annotations;
78
55
  var make = (kind, options, run) => operationDeclaration({
79
- ...operationOptions(options),
56
+ ...operationOptions({ ...options, input: schemaArgument(options.input, `The ${kind} input`) }),
80
57
  kind,
81
58
  // The host always validates JSON serialization, even without a stronger output declaration.
82
- ...options.output === void 0 ? {} : { output: decoderOf(options.output) },
83
- run: (context, input) => Effect_exports.tryPromise({
84
- // SAFETY: defineApp checks the handler context against its requirements.
85
- // The host validates account bindings and creates the matching storage facade.
86
- try: () => run(context, input),
87
- catch: (error) => error
88
- })
59
+ ...options.output === void 0 ? {} : { output: decoderOf(schemaArgument(options.output, `The ${kind} output`)) },
60
+ // SAFETY: defineApp checks the handler context against its requirements.
61
+ // The host validates account bindings and creates the matching storage facade.
62
+ run: (context, input) => fromPromise(run, "handler")(context, input)
89
63
  });
90
64
  var query = (options, run) => make("query", options, run);
91
65
  var mutation = (options, run) => make("mutation", options, run);
@@ -133,14 +107,14 @@ var dynamicRouter = (source) => {
133
107
  return routerDeclaration({
134
108
  kind: "dynamic",
135
109
  ...meta === void 0 ? {} : {
136
- meta: () => fromPromise(async () => meta())().pipe(
110
+ meta: () => fromPromise(async () => meta(), "router")().pipe(
137
111
  Effect_exports.flatMap((options) => Schema_exports.decodeUnknownEffect(RouterMeta)(options))
138
112
  )
139
113
  },
140
- list: () => fromPromise(async () => source.list())().pipe(
114
+ list: () => fromPromise(async () => source.list(), "router")().pipe(
141
115
  Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(Schema_exports.Array(HostedTool)))
142
116
  ),
143
- resolve: (name) => fromPromise(async () => source.resolve(name))().pipe(
117
+ resolve: (name) => fromPromise(async () => source.resolve(name), "router")().pipe(
144
118
  Effect_exports.map((value) => {
145
119
  if (value === void 0) return void 0;
146
120
  const operation = nativeOperation(value);
@@ -189,13 +163,50 @@ var declaredOperations = (root, path = "") => Object.entries(root?.children ?? {
189
163
  return [];
190
164
  }
191
165
  });
166
+ var withApprovals = (source, policy) => {
167
+ const native = nativeRouter(source);
168
+ if (native === void 0) throw new Error("withApprovals expects a router");
169
+ const operation = (node, name) => {
170
+ const approval = policy(operationDeclaration(node), name);
171
+ return approval === void 0 ? node : approvedOperation(node, approval);
172
+ };
173
+ const child = (node, name) => {
174
+ switch (node.kind) {
175
+ case "query":
176
+ case "mutation":
177
+ return operation(node, name);
178
+ case "router":
179
+ case "dynamic":
180
+ return walk(node, name);
181
+ }
182
+ };
183
+ const walk = (node, path) => node.kind === "dynamic" ? {
184
+ ...node,
185
+ resolve: (name) => node.resolve(name).pipe(
186
+ Effect_exports.flatMap(
187
+ (resolved) => resolved === void 0 ? Effect_exports.succeed(void 0) : Effect_exports.try({
188
+ try: () => operation(resolved, joinPath(path, name)),
189
+ catch: (error) => error
190
+ })
191
+ )
192
+ )
193
+ } : {
194
+ ...node,
195
+ children: Object.fromEntries(
196
+ Object.entries(node.children).map(([key, value]) => [
197
+ key,
198
+ child(value, joinPath(path, key))
199
+ ])
200
+ )
201
+ };
202
+ return routerDeclaration(walk(native, ""));
203
+ };
192
204
 
193
205
  export {
194
- fromPromise,
195
- toPromise,
196
206
  operationDeclaration,
197
207
  nativeOperation,
198
208
  withApproval,
209
+ toolAnnotations,
199
210
  query,
200
211
  mutation,
201
212
  routerDeclaration,
@@ -205,5 +216,6 @@ export {
205
216
  dynamicRouter,
206
217
  joinPath,
207
218
  locate,
208
- declaredOperations
219
+ declaredOperations,
220
+ withApprovals
209
221
  };
@@ -3,14 +3,14 @@ import {
3
3
  CacheEntry,
4
4
  CacheError,
5
5
  cacheLimits
6
- } from "./chunk-R3EV5FTO.js";
6
+ } from "./chunk-MWKHKOTL.js";
7
7
  import {
8
8
  Clock_exports,
9
9
  Duration_exports,
10
10
  Effect_exports,
11
11
  Exit_exports,
12
12
  Schema_exports
13
- } from "./chunk-CDL5PM2Q.js";
13
+ } from "./chunk-IFJU5SYQ.js";
14
14
 
15
15
  // ../app-cache/src/index.ts
16
16
  var canonical = (value) => {
@@ -111,13 +111,14 @@ var makeCache = (host, background, scope = "shared", deadline) => {
111
111
  yield* Effect_exports.annotateCurrentSpan("cache.result", "fresh");
112
112
  return yield* decode(entry.value);
113
113
  }
114
- if (!refresh && entry !== null && now < entry.staleUntil) {
114
+ const kept = !refresh && entry !== null && now < entry.staleUntil;
115
+ if (kept && options.stale !== "revalidate") {
115
116
  yield* Effect_exports.annotateCurrentSpan("cache.result", "stale");
116
117
  if (lease !== null) yield* background(load(lease).pipe(Effect_exports.asVoid));
117
118
  return yield* decode(entry.value);
118
119
  }
119
120
  if (lease !== null) {
120
- yield* Effect_exports.annotateCurrentSpan("cache.result", "miss");
121
+ yield* Effect_exports.annotateCurrentSpan("cache.result", kept ? "revalidated" : "miss");
121
122
  return yield* load(lease);
122
123
  }
123
124
  if (now >= waitUntil) {
@@ -159,7 +160,10 @@ var makeCache = (host, background, scope = "shared", deadline) => {
159
160
  Effect_exports.flatMap((key2) => transport({ operation: "invalidate", key: key2 })),
160
161
  Effect_exports.asVoid
161
162
  ),
162
- /** Read fresh data, refresh stale data in the background, or wait for the lease owner. */
163
+ /**
164
+ * Read fresh data, refresh stale data in the background (or first, with `stale: "revalidate"`),
165
+ * or wait for the lease owner.
166
+ */
163
167
  get: (options) => get(options, false),
164
168
  /** Force one awaited refresh without removing the retained value. Concurrent refreshes share a load. */
165
169
  revalidate: (options) => get(options, true)
@@ -0,0 +1,92 @@
1
+ import {
2
+ JsonValue
3
+ } from "./chunk-H2CJWXA3.js";
4
+ import {
5
+ HttpApiEndpoint_exports,
6
+ HttpApiGroup_exports,
7
+ HttpApiSchema_exports,
8
+ HttpApi_exports
9
+ } from "./chunk-TUMGL2OC.js";
10
+ import {
11
+ Schema_exports
12
+ } from "./chunk-IFJU5SYQ.js";
13
+
14
+ // src/contracts/ui.ts
15
+ var UiContext = Schema_exports.Struct({
16
+ deployment: Schema_exports.NonEmptyString,
17
+ profile: Schema_exports.optional(Schema_exports.NonEmptyString),
18
+ expectedProfileRevision: Schema_exports.optional(Schema_exports.Int)
19
+ });
20
+ var UiOperation = Schema_exports.Struct({
21
+ ...UiContext.fields,
22
+ name: Schema_exports.NonEmptyString,
23
+ input: JsonValue
24
+ });
25
+ var UiUnauthorized = class extends Schema_exports.TaggedError()(
26
+ "UiUnauthorized",
27
+ {},
28
+ { httpApiStatus: 401 }
29
+ ) {
30
+ };
31
+ var UiForbidden = class extends Schema_exports.TaggedError()(
32
+ "UiForbidden",
33
+ {},
34
+ { httpApiStatus: 403 }
35
+ ) {
36
+ };
37
+ var UiDeploymentChanged = class extends Schema_exports.TaggedError()(
38
+ "UiDeploymentChanged",
39
+ {},
40
+ { httpApiStatus: 409 }
41
+ ) {
42
+ };
43
+ var UiFailed = class extends Schema_exports.TaggedError()(
44
+ "UiFailed",
45
+ {
46
+ reason: Schema_exports.Literals(["unavailable", "operation_failed", "account_required"])
47
+ },
48
+ { httpApiStatus: 422 }
49
+ ) {
50
+ };
51
+ var UiSnapshot = Schema_exports.Union([
52
+ Schema_exports.Struct({
53
+ type: Schema_exports.Literal("snapshot"),
54
+ value: JsonValue,
55
+ trace: Schema_exports.optional(Schema_exports.Unknown)
56
+ }),
57
+ Schema_exports.Struct({ type: Schema_exports.Literal("failure"), error: UiFailed }),
58
+ Schema_exports.Struct({ type: Schema_exports.Literal("heartbeat") })
59
+ ]);
60
+ var errors = [UiUnauthorized, UiForbidden, UiDeploymentChanged, UiFailed];
61
+ var AppUiApi = HttpApi_exports.make("app-ui").add(
62
+ HttpApiGroup_exports.make("ui").add(
63
+ HttpApiEndpoint_exports.post("query", "/_executor/api/query", {
64
+ payload: UiOperation,
65
+ success: JsonValue,
66
+ error: errors
67
+ })
68
+ ).add(
69
+ HttpApiEndpoint_exports.post("mutate", "/_executor/api/mutate", {
70
+ payload: UiOperation,
71
+ success: JsonValue,
72
+ error: errors
73
+ })
74
+ ).add(
75
+ HttpApiEndpoint_exports.post("subscribe", "/_executor/api/subscribe", {
76
+ payload: UiOperation,
77
+ success: HttpApiSchema_exports.StreamSse({ data: UiSnapshot, error: Schema_exports.Union(errors) }),
78
+ error: errors
79
+ })
80
+ )
81
+ );
82
+
83
+ export {
84
+ UiContext,
85
+ UiOperation,
86
+ UiUnauthorized,
87
+ UiForbidden,
88
+ UiDeploymentChanged,
89
+ UiFailed,
90
+ UiSnapshot,
91
+ AppUiApi
92
+ };