apps 0.0.1-beta.5 → 0.0.1-beta.55

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 (188) hide show
  1. package/README.md +68 -44
  2. package/framework-reference.json +1 -1
  3. package/js/chunk-47F7VXST.js +221 -0
  4. package/js/chunk-5FHWNLCI.js +88 -0
  5. package/js/{chunk-M3B3DE4K.js → chunk-74YVXBKY.js} +463 -218
  6. package/js/chunk-7UUHJR2Q.js +49 -0
  7. package/js/{chunk-CYYBFC2K.js → chunk-AQU56EPI.js} +9 -5
  8. package/js/chunk-BTSIG4NQ.js +1885 -0
  9. package/js/chunk-CDXQDN7W.js +92 -0
  10. package/js/{chunk-UK573G7W.js → chunk-EOPQ727L.js} +87 -51
  11. package/js/{chunk-27F7W2LG.js → chunk-H2CJWXA3.js} +2 -2
  12. package/js/{chunk-JU7VHODU.js → chunk-H72MEDMN.js} +65 -10
  13. package/js/{chunk-CDL5PM2Q.js → chunk-IFJU5SYQ.js} +19082 -18402
  14. package/js/{chunk-UDDE5KOR.js → chunk-JK5S2N2S.js} +148 -34
  15. package/js/{chunk-RJDDBDSN.js → chunk-JM7LOD2W.js} +628 -85
  16. package/js/{chunk-VFZKSM3T.js → chunk-JPEUKEV4.js} +3 -3
  17. package/js/{chunk-FWQC6I3C.js → chunk-KGCTYL2S.js} +523 -63
  18. package/js/{chunk-KUMBKVJD.js → chunk-KLYSEHUD.js} +2 -2
  19. package/js/chunk-L4K2K22P.js +42 -0
  20. package/js/chunk-LTDHQJ2Z.js +171 -0
  21. package/js/chunk-MWKHKOTL.js +240 -0
  22. package/js/chunk-OD3KFKZD.js +1617 -0
  23. package/js/{chunk-57RKNWL2.js → chunk-PD6I2SDG.js} +4 -4
  24. package/js/chunk-PXXZ6ABC.js +266 -0
  25. package/js/chunk-QEBRH5AP.js +729 -0
  26. package/js/chunk-TLWLJ7PD.js +4342 -0
  27. package/js/{chunk-IJX4CYZO.js → chunk-TUMGL2OC.js} +228 -264
  28. package/js/{chunk-XHO2ZX6W.js → chunk-UM62MBJQ.js} +96 -41
  29. package/js/{chunk-IPI4MFSN.js → chunk-XBG7HHXC.js} +2 -2
  30. package/js/chunk-XCSG7FT7.js +340 -0
  31. package/js/client.js +142 -94
  32. package/js/contracts.js +123 -33
  33. package/js/effect.js +19 -21
  34. package/js/{es-APDZKREY.js → es-DIULA3ZF.js} +62 -1659
  35. package/js/graphql.js +63 -60
  36. package/js/host.js +83 -60
  37. package/js/index.js +262 -222
  38. package/js/mcp/effect.js +23 -23
  39. package/js/mcp/stdio.js +48 -40
  40. package/js/mcp.js +109 -72
  41. package/js/openapi.js +4129 -1419
  42. package/js/react.js +2 -3
  43. package/js/skills/effect.js +6 -3
  44. package/js/skills.js +208 -82
  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 +9 -8
  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 +57 -18
  62. package/types/apps/src/contracts/live.d.ts +2 -0
  63. package/types/apps/src/contracts/mcp.d.ts +96 -10
  64. package/types/apps/src/contracts/network.d.ts +84 -0
  65. package/types/apps/src/contracts/openapi-compile.d.ts +32 -3
  66. package/types/apps/src/contracts/openapi.d.ts +45 -9
  67. package/types/apps/src/contracts/operations.d.ts +8 -9
  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 +1306 -0
  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/router.d.ts +59 -0
  85. package/types/apps/src/contracts/skills.d.ts +50 -13
  86. package/types/apps/src/contracts/sql.d.ts +58 -0
  87. package/types/apps/src/contracts/ui.d.ts +19 -1
  88. package/types/apps/src/contracts/workflows.d.ts +6 -0
  89. package/types/apps/src/facet.d.ts +4 -5
  90. package/types/apps/src/graphql.d.ts +1 -3
  91. package/types/apps/src/host.d.ts +5 -0
  92. package/types/apps/src/implementation/account-router.d.ts +13 -0
  93. package/types/apps/src/implementation/app.d.ts +5 -4
  94. package/types/apps/src/implementation/authoring.d.ts +25 -5
  95. package/types/apps/src/implementation/browser-scripts.gen.d.ts +6 -0
  96. package/types/apps/src/implementation/cache.d.ts +4 -0
  97. package/types/apps/src/implementation/catalog-cache.d.ts +43 -5
  98. package/types/apps/src/implementation/elicitation.d.ts +18 -15
  99. package/types/apps/src/implementation/events.d.ts +59 -0
  100. package/types/apps/src/implementation/failure-detail.d.ts +25 -3
  101. package/types/apps/src/implementation/graphql-catalog.d.ts +4 -7
  102. package/types/apps/src/implementation/graphql.d.ts +4 -3
  103. package/types/apps/src/implementation/input-problems.d.ts +6 -2
  104. package/types/apps/src/implementation/invocation-timing.d.ts +16 -0
  105. package/types/apps/src/implementation/live.d.ts +2 -2
  106. package/types/apps/src/implementation/mcp-call.d.ts +6 -5
  107. package/types/apps/src/implementation/mcp-catalog.d.ts +7 -8
  108. package/types/apps/src/implementation/mcp-client.d.ts +49 -25
  109. package/types/apps/src/implementation/mcp-stdio.d.ts +1 -1
  110. package/types/apps/src/implementation/mcp-tools.d.ts +2 -1
  111. package/types/apps/src/implementation/mcp.d.ts +52 -25
  112. package/types/apps/src/implementation/network.d.ts +16 -0
  113. package/types/apps/src/implementation/openapi-compile.d.ts +27 -6
  114. package/types/apps/src/implementation/openapi-document.d.ts +46 -19
  115. package/types/apps/src/implementation/openapi-names.d.ts +9 -4
  116. package/types/apps/src/implementation/openapi-request.d.ts +10 -2
  117. package/types/apps/src/implementation/openapi-source.d.ts +8 -6
  118. package/types/apps/src/implementation/openapi-upgrade.d.ts +4 -0
  119. package/types/apps/src/implementation/operations.d.ts +43 -5
  120. package/types/apps/src/implementation/optimistic.d.ts +1 -1
  121. package/types/apps/src/implementation/protocol-operations.d.ts +6 -4
  122. package/types/apps/src/implementation/provider-error.d.ts +28 -1
  123. package/types/apps/src/implementation/provider.d.ts +19 -5
  124. package/types/apps/src/implementation/query-commit.d.ts +1 -1
  125. package/types/apps/src/implementation/router-catalog.d.ts +223 -0
  126. package/types/apps/src/implementation/router.d.ts +70 -0
  127. package/types/apps/src/implementation/runtime-yield.d.ts +7 -0
  128. package/types/apps/src/implementation/schema.d.ts +95 -11
  129. package/types/apps/src/implementation/skills.d.ts +18 -24
  130. package/types/apps/src/implementation/sql.d.ts +71 -0
  131. package/types/apps/src/implementation/ui-account-notice.d.ts +9 -0
  132. package/types/apps/src/implementation/ui-auth.d.ts +1 -1
  133. package/types/apps/src/implementation/ui-client.d.ts +2 -2
  134. package/types/apps/src/implementation/ui-document.d.ts +5 -0
  135. package/types/apps/src/implementation/ui-errors.d.ts +1 -1
  136. package/types/apps/src/implementation/ui-serving.d.ts +11 -5
  137. package/types/apps/src/implementation/ui-watch.d.ts +1 -1
  138. package/types/apps/src/implementation/upstream-error.d.ts +7 -0
  139. package/types/apps/src/implementation/webhooks.d.ts +1 -1
  140. package/types/apps/src/implementation/workflow-context.d.ts +1 -1
  141. package/types/apps/src/implementation/workflows.d.ts +1 -1
  142. package/types/apps/src/index.d.ts +32 -13
  143. package/types/apps/src/mcp-stdio.d.ts +2 -5
  144. package/types/apps/src/mcp.d.ts +25 -5
  145. package/types/apps/src/openapi.d.ts +6 -6
  146. package/types/apps/src/react.d.ts +1 -1
  147. package/types/apps/src/skills.d.ts +10 -8
  148. package/types/telemetry/src/app-records.d.ts +42 -0
  149. package/types/telemetry/src/browser-operations.d.ts +7 -4
  150. package/types/telemetry/src/browser.d.ts +8 -3
  151. package/types/telemetry/src/config.d.ts +2 -2
  152. package/types/telemetry/src/index.d.ts +1 -0
  153. package/types/telemetry/src/layer.d.ts +2 -2
  154. package/types/telemetry/src/ownership.d.ts +56 -0
  155. package/types/telemetry/src/recorded-failure.d.ts +29 -0
  156. package/types/telemetry/src/relay.d.ts +2 -2
  157. package/types/telemetry/src/transport.d.ts +8 -1
  158. package/types/utils/src/api-error.d.ts +55 -0
  159. package/types/utils/src/connection-failure.d.ts +33 -0
  160. package/types/utils/src/recorded-message.d.ts +18 -0
  161. package/types/utils/src/user-facing-error.d.ts +83 -0
  162. package/js/chunk-3XKZDQLM.js +0 -93
  163. package/js/chunk-4M277YTM.js +0 -136
  164. package/js/chunk-67EVWIGJ.js +0 -224
  165. package/js/chunk-C3VAOK5B.js +0 -215
  166. package/js/chunk-DQAZTA4I.js +0 -2375
  167. package/js/chunk-G7T27IWB.js +0 -63
  168. package/js/chunk-LUVSFETN.js +0 -1347
  169. package/js/chunk-N7YDVXYJ.js +0 -186
  170. package/js/chunk-PJJ24GU7.js +0 -877
  171. package/js/chunk-PZB6T6KU.js +0 -19
  172. package/js/chunk-SB3V4YVR.js +0 -18
  173. package/js/chunk-TDNYXSIX.js +0 -29
  174. package/js/chunk-W4DMKWAB.js +0 -35
  175. package/js/chunk-YEPYT6SD.js +0 -85
  176. package/js/chunk-ZQINWV4W.js +0 -630
  177. package/types/app-data/src/implementation/cursor.d.ts +0 -10
  178. package/types/app-data/src/implementation/index-key.d.ts +0 -7
  179. package/types/app-data/src/implementation/promise.d.ts +0 -68
  180. package/types/app-data/src/implementation/range.d.ts +0 -8
  181. package/types/app-data/src/implementation/schema.d.ts +0 -18
  182. package/types/app-data/src/implementation/sqlite.d.ts +0 -11
  183. package/types/app-data/src/index.d.ts +0 -4
  184. package/types/apps/src/contracts/dynamic-tools.d.ts +0 -13
  185. package/types/apps/src/contracts/storage.d.ts +0 -68
  186. package/types/apps/src/implementation/account-operations.d.ts +0 -151
  187. package/types/apps/src/implementation/dynamic-tools.d.ts +0 -8
  188. package/types/apps/src/implementation/storage.d.ts +0 -15
package/js/graphql.js CHANGED
@@ -1,56 +1,61 @@
1
1
  import {
2
- catalogCache
3
- } from "./chunk-XHO2ZX6W.js";
2
+ catalogCache,
3
+ catalogScope
4
+ } from "./chunk-UM62MBJQ.js";
4
5
  import {
5
6
  protocolOperations
6
- } from "./chunk-TDNYXSIX.js";
7
+ } from "./chunk-L4K2K22P.js";
7
8
  import "./chunk-BCSNKUAC.js";
8
- import "./chunk-LUVSFETN.js";
9
+ import "./chunk-BTSIG4NQ.js";
9
10
  import {
10
11
  cacheKey
11
- } from "./chunk-CYYBFC2K.js";
12
- import "./chunk-IPI4MFSN.js";
13
- import "./chunk-4M277YTM.js";
14
- import "./chunk-C3VAOK5B.js";
15
- import "./chunk-ZQINWV4W.js";
12
+ } from "./chunk-AQU56EPI.js";
13
+ import "./chunk-QEBRH5AP.js";
16
14
  import {
17
- nativeOperation
18
- } from "./chunk-3XKZDQLM.js";
15
+ failOnNetworkRefusal
16
+ } from "./chunk-7UUHJR2Q.js";
17
+ import "./chunk-XBG7HHXC.js";
18
+ import "./chunk-PXXZ6ABC.js";
19
+ import {
20
+ nativeOperation,
21
+ routerDeclaration
22
+ } from "./chunk-47F7VXST.js";
19
23
  import {
20
24
  accountProviderError,
21
25
  graphqlProviderError,
22
26
  httpProviderError
23
- } from "./chunk-G7T27IWB.js";
24
- import "./chunk-DQAZTA4I.js";
25
- import "./chunk-N7YDVXYJ.js";
26
- import "./chunk-YEPYT6SD.js";
27
- import "./chunk-JU7VHODU.js";
28
- import "./chunk-W4DMKWAB.js";
27
+ } from "./chunk-LTDHQJ2Z.js";
28
+ import "./chunk-TLWLJ7PD.js";
29
29
  import {
30
+ NetworkRefused,
30
31
  ProviderError
31
- } from "./chunk-SB3V4YVR.js";
32
- import "./chunk-RJDDBDSN.js";
32
+ } from "./chunk-MWKHKOTL.js";
33
+ import "./chunk-H72MEDMN.js";
33
34
  import {
34
- FetchHttpClient_exports
35
- } from "./chunk-57RKNWL2.js";
35
+ jsonSchemaDecoder
36
+ } from "./chunk-KGCTYL2S.js";
36
37
  import {
37
- HttpClientRequest_exports,
38
- HttpClient_exports
39
- } from "./chunk-UK573G7W.js";
38
+ owned
39
+ } from "./chunk-JM7LOD2W.js";
40
40
  import {
41
- jsonSchemaDecoder
42
- } from "./chunk-FWQC6I3C.js";
43
- import "./chunk-PZB6T6KU.js";
41
+ FetchHttpClient_exports
42
+ } from "./chunk-PD6I2SDG.js";
43
+ import "./chunk-5FHWNLCI.js";
44
44
  import {
45
45
  AccountId,
46
46
  HttpUrl,
47
47
  JsonObject
48
- } from "./chunk-27F7W2LG.js";
48
+ } from "./chunk-H2CJWXA3.js";
49
+ import "./chunk-TUMGL2OC.js";
50
+ import {
51
+ HttpClientRequest_exports,
52
+ HttpClient_exports
53
+ } from "./chunk-EOPQ727L.js";
49
54
  import {
50
55
  Effect_exports,
51
56
  Redacted_exports,
52
57
  Schema_exports
53
- } from "./chunk-CDL5PM2Q.js";
58
+ } from "./chunk-IFJU5SYQ.js";
54
59
  import "./chunk-CZ7CSFO4.js";
55
60
 
56
61
  // src/contracts/graphql.ts
@@ -86,7 +91,7 @@ var GraphqlError = class extends Schema_exports.TaggedError()("GraphqlError", {
86
91
  status: Schema_exports.optional(Schema_exports.Number)
87
92
  }) {
88
93
  };
89
- var Name = Schema_exports.String.check(Schema_exports.isPattern(/^[_A-Za-z][_0-9A-Za-z]*$/));
94
+ var Name = Schema_exports.String.check(Schema_exports.isPattern(/^[_A-Za-z][_0-9A-Za-z]*$/u));
90
95
  var Kind = Schema_exports.Literals([
91
96
  "SCALAR",
92
97
  "OBJECT",
@@ -269,10 +274,11 @@ var graphqlClientEffect = (input) => Effect_exports.gen(function* () {
269
274
  HttpClientRequest_exports.bodyJsonUnsafe({ query, variables })
270
275
  )
271
276
  );
277
+ yield* failOnNetworkRefusal(response);
272
278
  if (response.status < 200 || response.status >= 300)
273
279
  return yield* httpProviderError(response.status, response.headers) ?? new GraphqlError({ phase, reason: "request", status: response.status });
274
280
  const result = yield* response.json.pipe(
275
- Effect_exports.withSpan("provider.http.response.read"),
281
+ owned("upstream", "provider.http.response.read"),
276
282
  Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(GraphqlResponse)),
277
283
  Effect_exports.mapError(() => new GraphqlError({ phase, reason: "invalid_response" }))
278
284
  );
@@ -283,7 +289,7 @@ var graphqlClientEffect = (input) => Effect_exports.gen(function* () {
283
289
  return result.data;
284
290
  })
285
291
  ).pipe(
286
- Effect_exports.withSpan("provider.graphql.request", {
292
+ owned("upstream", "provider.graphql.request", {
287
293
  attributes: {
288
294
  "executor.operation": phase,
289
295
  "server.address": url.hostname
@@ -297,13 +303,13 @@ var graphqlClientEffect = (input) => Effect_exports.gen(function* () {
297
303
  orElse: () => Effect_exports.fail(new GraphqlError({ phase, reason: "timeout" }))
298
304
  }),
299
305
  Effect_exports.mapError(
300
- (error) => error instanceof ProviderError && options.accountId !== void 0 ? accountProviderError(error, options.accountId) : error instanceof GraphqlError || error instanceof ProviderError ? error : new GraphqlError({ phase, reason: "request" })
306
+ (error) => error instanceof ProviderError && options.accountId !== void 0 ? accountProviderError(error, options.accountId) : error instanceof GraphqlError || error instanceof ProviderError || error instanceof NetworkRefused ? error : new GraphqlError({ phase, reason: "request" })
301
307
  )
302
308
  );
303
309
  const discover = request("discover", getIntrospectionQuery()).pipe(
304
310
  Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(GraphqlIntrospection)),
305
311
  Effect_exports.mapError(
306
- (error) => error instanceof GraphqlError || error instanceof ProviderError ? error : new GraphqlError({ phase: "discover", reason: "invalid_response" })
312
+ (error) => error instanceof GraphqlError || error instanceof ProviderError || error instanceof NetworkRefused ? error : new GraphqlError({ phase: "discover", reason: "invalid_response" })
307
313
  )
308
314
  );
309
315
  return { request, discover };
@@ -412,7 +418,7 @@ var adaptGraphqlTool = (client, definition) => Effect_exports.gen(function* () {
412
418
  return yield* new GraphqlError({ phase: "call", reason: "invalid_response" });
413
419
  return value;
414
420
  }).pipe(
415
- Effect_exports.withSpan("provider.graphql.call", {
421
+ owned("upstream", "provider.graphql.call", {
416
422
  attributes: {
417
423
  "graphql.operation.type": kind,
418
424
  "executor.tool.name": name
@@ -430,17 +436,20 @@ var GraphqlToolSummary = GraphqlToolDefinition.mapFields(({ name, kind, descript
430
436
  description
431
437
  }));
432
438
  var graphqlCatalog = (options, kinds) => Effect_exports.gen(function* () {
433
- const parsed = yield* Schema_exports.decodeUnknownEffect(GraphqlToolsOptions)(options).pipe(
434
- Effect_exports.mapError(() => new GraphqlError({ phase: "discover", reason: "invalid_input" }))
435
- );
436
- const headers = {};
437
- new Headers(parsed.headers).forEach((value, name) => {
438
- headers[name] = value;
439
- });
440
- const id = yield* cacheKey({ url: parsed.url, headers, accountId: parsed.accountId ?? null });
439
+ const invalid = () => new GraphqlError({ phase: "discover", reason: "invalid_input" });
440
+ const parsed = yield* Schema_exports.decodeUnknownEffect(GraphqlToolsOptions)({
441
+ url: options.url,
442
+ accountId: options.account?.id,
443
+ headers: options.headers,
444
+ signal: options.signal,
445
+ timeoutMs: options.timeoutMs
446
+ }).pipe(Effect_exports.mapError(invalid));
447
+ const cache = yield* catalogScope(options, options.headers, invalid);
448
+ const id = yield* cacheKey({ url: parsed.url });
441
449
  const client = yield* graphqlClientEffect(parsed);
442
450
  const catalog = yield* catalogCache({
443
451
  ...options,
452
+ cache,
444
453
  prefix: ["graphql-catalog-v2", id],
445
454
  schema: GraphqlToolDefinition,
446
455
  summary: {
@@ -449,13 +458,13 @@ var graphqlCatalog = (options, kinds) => Effect_exports.gen(function* () {
449
458
  },
450
459
  load: (context) => (context === void 0 ? Effect_exports.succeed(client) : graphqlClientEffect({ ...parsed, signal: context.signal })).pipe(
451
460
  Effect_exports.flatMap((source) => source.discover),
452
- Effect_exports.flatMap(graphqlDefinitions)
461
+ Effect_exports.flatMap(graphqlDefinitions),
462
+ Effect_exports.map((tools) => ({ tools }))
453
463
  )
454
464
  });
455
465
  const kindOf = (tool) => Object.hasOwn(kinds, tool.name) ? kinds[tool.name] ?? "mutation" : tool.kind;
456
- const qualified = (tool) => `${kindOf(tool) === "query" ? "queries" : "mutations"}.${tool.name}`;
457
466
  const summarize = (tool) => ({
458
- name: qualified(tool),
467
+ name: tool.name,
459
468
  description: tool.description,
460
469
  readOnly: kindOf(tool) === "query"
461
470
  });
@@ -463,34 +472,28 @@ var graphqlCatalog = (options, kinds) => Effect_exports.gen(function* () {
463
472
  ...summarize(tool),
464
473
  inputSchema: tool.inputSchema
465
474
  });
466
- const selected = (name) => Effect_exports.gen(function* () {
467
- if (!name.startsWith("queries.") && !name.startsWith("mutations.")) return void 0;
468
- const tool = yield* catalog.resolve(name.slice(name.indexOf(".") + 1));
469
- return tool === void 0 || qualified(tool) !== name ? void 0 : tool;
470
- });
471
- const dynamicTools = {
475
+ const router = {
476
+ kind: "dynamic",
472
477
  list: () => catalog.list().pipe(Effect_exports.map((tools) => tools.map(describe))),
473
478
  summaries: () => catalog.summaries().pipe(Effect_exports.map((tools) => tools.map(summarize))),
474
- describe: (name) => selected(name).pipe(
475
- Effect_exports.map((tool) => tool === void 0 ? void 0 : describe(tool))
476
- ),
479
+ describe: (name) => catalog.resolve(name).pipe(Effect_exports.map((tool) => tool === void 0 ? void 0 : describe(tool))),
477
480
  resolve: (name) => Effect_exports.gen(function* () {
478
- const tool = yield* selected(name);
481
+ const tool = yield* catalog.resolve(name);
479
482
  if (tool === void 0) return void 0;
480
483
  const adapted = yield* adaptGraphqlTool(client, tool);
481
484
  const operations = protocolOperations({ selected: adapted }, { selected: kindOf(tool) });
482
- return nativeOperation(operations.queries.selected ?? operations.mutations.selected);
485
+ return nativeOperation(operations.selected);
483
486
  })
484
487
  };
485
- return { dynamicTools };
488
+ return routerDeclaration(router);
486
489
  });
487
490
 
488
491
  // src/graphql.ts
489
- var graphqlOperations = (options, kinds = {}) => Effect_exports.runPromise(
492
+ var graphqlRouter = (options, kinds = {}) => Effect_exports.runPromise(
490
493
  graphqlCatalog(options, kinds),
491
494
  options.signal === void 0 ? {} : { signal: options.signal }
492
495
  );
493
496
  export {
494
497
  GraphqlError,
495
- graphqlOperations
498
+ graphqlRouter
496
499
  };
package/js/host.js CHANGED
@@ -1,19 +1,20 @@
1
1
  import {
2
2
  createAppHandler
3
- } from "./chunk-LUVSFETN.js";
4
- import "./chunk-CYYBFC2K.js";
5
- import "./chunk-IPI4MFSN.js";
6
- import "./chunk-4M277YTM.js";
7
- import "./chunk-C3VAOK5B.js";
8
- import "./chunk-ZQINWV4W.js";
9
- import "./chunk-3XKZDQLM.js";
10
- import "./chunk-G7T27IWB.js";
3
+ } from "./chunk-BTSIG4NQ.js";
4
+ import "./chunk-AQU56EPI.js";
5
+ import "./chunk-QEBRH5AP.js";
6
+ import "./chunk-7UUHJR2Q.js";
7
+ import "./chunk-XBG7HHXC.js";
8
+ import "./chunk-PXXZ6ABC.js";
9
+ import "./chunk-47F7VXST.js";
10
+ import "./chunk-LTDHQJ2Z.js";
11
11
  import {
12
12
  ElicitationFailed,
13
13
  ElicitationReply,
14
14
  HostAccountsInvalid,
15
15
  HostInputInvalid,
16
16
  HostResponse,
17
+ InvocationTimingSink,
17
18
  ResolvedAccounts,
18
19
  TrustedToolApproval,
19
20
  WorkflowFailure,
@@ -21,32 +22,31 @@ import {
21
22
  WorkflowRun,
22
23
  WorkflowRunId,
23
24
  WorkflowRunPage
24
- } from "./chunk-DQAZTA4I.js";
25
- import "./chunk-N7YDVXYJ.js";
25
+ } from "./chunk-TLWLJ7PD.js";
26
26
  import {
27
27
  CacheCommand,
28
28
  CacheError,
29
29
  CacheReply
30
- } from "./chunk-YEPYT6SD.js";
31
- import "./chunk-JU7VHODU.js";
32
- import "./chunk-W4DMKWAB.js";
33
- import "./chunk-SB3V4YVR.js";
30
+ } from "./chunk-MWKHKOTL.js";
31
+ import "./chunk-H72MEDMN.js";
32
+ import "./chunk-KGCTYL2S.js";
34
33
  import {
35
34
  collectTelemetry,
36
35
  withRemoteSpan
37
- } from "./chunk-RJDDBDSN.js";
38
- import "./chunk-57RKNWL2.js";
39
- import "./chunk-UK573G7W.js";
40
- import "./chunk-FWQC6I3C.js";
41
- import "./chunk-PZB6T6KU.js";
42
- import "./chunk-27F7W2LG.js";
36
+ } from "./chunk-JM7LOD2W.js";
37
+ import "./chunk-PD6I2SDG.js";
38
+ import "./chunk-5FHWNLCI.js";
39
+ import "./chunk-H2CJWXA3.js";
40
+ import "./chunk-TUMGL2OC.js";
41
+ import "./chunk-EOPQ727L.js";
43
42
  import {
44
43
  Cause_exports,
44
+ Clock_exports,
45
45
  Effect_exports,
46
46
  Redacted_exports,
47
47
  Scheduler_exports,
48
48
  Schema_exports
49
- } from "./chunk-CDL5PM2Q.js";
49
+ } from "./chunk-IFJU5SYQ.js";
50
50
  import "./chunk-CZ7CSFO4.js";
51
51
 
52
52
  // src/implementation/cache-session.ts
@@ -54,14 +54,17 @@ var isolatedCacheSession = (callback) => {
54
54
  const controller = new AbortController();
55
55
  const pending = /* @__PURE__ */ new Set();
56
56
  const cache = {
57
- transport: (command) => Effect_exports.tryPromise({
58
- try: () => callback(Schema_exports.encodeSync(CacheCommand)(command)),
59
- catch: () => new CacheError({ reason: "storage" })
60
- }).pipe(
61
- Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(CacheReply)),
62
- Effect_exports.mapError(() => new CacheError({ reason: "storage" })),
63
- Effect_exports.flatMap(
64
- (reply) => reply.ok ? Effect_exports.succeed(reply.value) : Effect_exports.fail(reply.error)
57
+ transport: (command) => (
58
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- the host's cache RPC
59
+ Effect_exports.tryPromise({
60
+ try: () => callback(Schema_exports.encodeSync(CacheCommand)(command)),
61
+ catch: () => new CacheError({ reason: "storage" })
62
+ }).pipe(
63
+ Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(CacheReply)),
64
+ Effect_exports.mapError(() => new CacheError({ reason: "storage" })),
65
+ Effect_exports.flatMap(
66
+ (reply) => reply.ok ? Effect_exports.succeed(reply.value) : Effect_exports.fail(reply.error)
67
+ )
65
68
  )
66
69
  ),
67
70
  background: (task) => Effect_exports.gen(function* () {
@@ -99,14 +102,17 @@ var isolatedCacheSession = (callback) => {
99
102
  // src/implementation/workflow-rpc.ts
100
103
  var isolatedWorkflowExecution = (run, deliver, signal) => {
101
104
  const runId = Schema_exports.decodeUnknownSync(WorkflowRunId)(run);
102
- const request = (input, callback) => Effect_exports.tryPromise({
103
- try: () => deliver(input, callback),
104
- catch: () => new WorkflowFailure({ reason: "engine", retryable: true })
105
- }).pipe(
106
- Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(WorkflowRpcResult)),
107
- Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true })),
108
- Effect_exports.flatMap(
109
- (reply) => reply.ok ? Effect_exports.succeed(reply.value) : Effect_exports.fail(reply.error)
105
+ const request = (input, callback) => (
106
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- the host's workflow RPC
107
+ Effect_exports.tryPromise({
108
+ try: () => deliver(input, callback),
109
+ catch: () => new WorkflowFailure({ reason: "engine", retryable: true })
110
+ }).pipe(
111
+ Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(WorkflowRpcResult)),
112
+ Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true })),
113
+ Effect_exports.flatMap(
114
+ (reply) => reply.ok ? Effect_exports.succeed(reply.value) : Effect_exports.fail(reply.error)
115
+ )
110
116
  )
111
117
  );
112
118
  return {
@@ -148,14 +154,17 @@ var isolatedWorkflowExecution = (run, deliver, signal) => {
148
154
  };
149
155
  };
150
156
  var isolatedWorkflowControls = (deliver) => {
151
- const request = (input) => Effect_exports.tryPromise({
152
- try: () => deliver(input),
153
- catch: () => new WorkflowFailure({ reason: "engine", retryable: true })
154
- }).pipe(
155
- Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(WorkflowRpcResult)),
156
- Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true })),
157
- Effect_exports.flatMap(
158
- (result) => result.ok ? Effect_exports.succeed(result.value) : Effect_exports.fail(result.error)
157
+ const request = (input) => (
158
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- the host's workflow RPC
159
+ Effect_exports.tryPromise({
160
+ try: () => deliver(input),
161
+ catch: () => new WorkflowFailure({ reason: "engine", retryable: true })
162
+ }).pipe(
163
+ Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(WorkflowRpcResult)),
164
+ Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true })),
165
+ Effect_exports.flatMap(
166
+ (result) => result.ok ? Effect_exports.succeed(result.value) : Effect_exports.fail(result.error)
167
+ )
159
168
  )
160
169
  );
161
170
  const run = (input) => request(input).pipe(
@@ -204,17 +213,27 @@ var createAppHandler2 = (app) => {
204
213
  );
205
214
  };
206
215
  };
216
+ var isolatedClock = () => Effect_exports.runSync(Clock_exports.currentTimeNanos);
207
217
  var createIsolatedAppHandler = (app) => {
208
218
  const handler = createAppHandler(app);
209
219
  return (request, context) => Effect_exports.runPromise(
210
220
  Effect_exports.gen(function* () {
221
+ let timing;
211
222
  const { value, telemetry } = yield* collectTelemetry(
212
- handler(request, context).pipe(withRemoteSpan(request, "app.dispatch"))
223
+ handler(request, context).pipe(
224
+ withRemoteSpan(request, "app.dispatch"),
225
+ Effect_exports.provideService(InvocationTimingSink, (reported) => {
226
+ timing = reported;
227
+ })
228
+ )
213
229
  );
214
230
  const body = yield* Effect_exports.promise(() => value.json()).pipe(
215
231
  Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(HostResponse))
216
232
  );
217
- return Response.json({ ...body, telemetry }, { status: value.status });
233
+ return Response.json(
234
+ { ...body, telemetry, ...timing === void 0 ? {} : { timing } },
235
+ { status: value.status }
236
+ );
218
237
  }),
219
238
  {
220
239
  signal: request.signal,
@@ -224,20 +243,23 @@ var createIsolatedAppHandler = (app) => {
224
243
  }
225
244
  );
226
245
  };
227
- var isolatedElicitation = (deliver, lifetime) => (request) => Effect_exports.tryPromise({
228
- try: () => deliver(request),
229
- catch: () => {
230
- lifetime.abort();
231
- return new ElicitationFailed({ reason: "transport" });
232
- }
233
- }).pipe(
234
- Effect_exports.flatMap(
235
- (reply) => Schema_exports.decodeUnknownEffect(ElicitationReply)(reply).pipe(
236
- Effect_exports.mapError(() => new ElicitationFailed({ reason: "transport" }))
246
+ var isolatedElicitation = (deliver, lifetime) => (request) => (
247
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- the host's elicitation RPC
248
+ Effect_exports.tryPromise({
249
+ try: () => deliver(request),
250
+ catch: () => {
251
+ lifetime.abort();
252
+ return new ElicitationFailed({ reason: "transport" });
253
+ }
254
+ }).pipe(
255
+ Effect_exports.flatMap(
256
+ (reply) => Schema_exports.decodeUnknownEffect(ElicitationReply)(reply).pipe(
257
+ Effect_exports.mapError(() => new ElicitationFailed({ reason: "transport" }))
258
+ )
259
+ ),
260
+ Effect_exports.flatMap(
261
+ (reply) => reply.ok ? Effect_exports.succeed(reply.response) : Effect_exports.fail(reply.error)
237
262
  )
238
- ),
239
- Effect_exports.flatMap(
240
- (reply) => reply.ok ? Effect_exports.succeed(reply.response) : Effect_exports.fail(reply.error)
241
263
  )
242
264
  );
243
265
  export {
@@ -245,6 +267,7 @@ export {
245
267
  createIsolatedAppHandler,
246
268
  hostContext,
247
269
  isolatedCacheSession,
270
+ isolatedClock,
248
271
  isolatedElicitation,
249
272
  isolatedWorkflowControls,
250
273
  isolatedWorkflowExecution