apps 0.0.1-beta.8 → 0.0.1-beta.81

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 (180) hide show
  1. package/README.md +25 -22
  2. package/framework-reference.json +1 -1
  3. package/js/{chunk-72JNVHPK.js → chunk-4NFSABEA.js} +4 -3
  4. package/js/chunk-5FHWNLCI.js +88 -0
  5. package/js/chunk-5WGONRKQ.js +426 -0
  6. package/js/{chunk-M3B3DE4K.js → chunk-74YVXBKY.js} +463 -218
  7. package/js/chunk-CDXQDN7W.js +92 -0
  8. package/js/{chunk-UK573G7W.js → chunk-EOPQ727L.js} +87 -51
  9. package/js/{chunk-27F7W2LG.js → chunk-H2CJWXA3.js} +2 -2
  10. package/js/{chunk-JU7VHODU.js → chunk-H72MEDMN.js} +65 -10
  11. package/js/{chunk-FL2QR3XW.js → chunk-HJG4RBYM.js} +333 -69
  12. package/js/chunk-I6Q7ZPKJ.js +49 -0
  13. package/js/{chunk-CDL5PM2Q.js → chunk-IFJU5SYQ.js} +19082 -18402
  14. package/js/{chunk-VFZKSM3T.js → chunk-JPEUKEV4.js} +3 -3
  15. package/js/{chunk-5T57N25Q.js → chunk-KGCTYL2S.js} +511 -63
  16. package/js/{chunk-KUMBKVJD.js → chunk-KLYSEHUD.js} +2 -2
  17. package/js/{chunk-WLE7WX2U.js → chunk-NG56RPCA.js} +2348 -472
  18. package/js/chunk-OD3KFKZD.js +1617 -0
  19. package/js/{chunk-Z5M2LQOZ.js → chunk-OY47QPQY.js} +67 -55
  20. package/js/{chunk-57RKNWL2.js → chunk-PD6I2SDG.js} +4 -4
  21. package/js/chunk-PL5KOEZD.js +334 -0
  22. package/js/chunk-Q4IZAUIF.js +285 -0
  23. package/js/{chunk-RJDDBDSN.js → chunk-QWQM3CLH.js} +795 -177
  24. package/js/{chunk-RFVIONFX.js → chunk-TE25A7D6.js} +123 -44
  25. package/js/{chunk-IJX4CYZO.js → chunk-TUMGL2OC.js} +228 -264
  26. package/js/chunk-W6XCQAXP.js +171 -0
  27. package/js/chunk-WCGAO3X5.js +348 -0
  28. package/js/{chunk-IPI4MFSN.js → chunk-XBG7HHXC.js} +2 -2
  29. package/js/{chunk-CMYUWAX7.js → chunk-YQUG4CES.js} +126 -31
  30. package/js/{chunk-UESPOTUI.js → chunk-Z2SWTZCF.js} +861 -231
  31. package/js/client.js +142 -94
  32. package/js/contracts.js +127 -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 +131 -46
  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 +4071 -1357
  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 +8604 -223
  50. package/package.json +3 -4
  51. package/runtime.json +1 -1
  52. package/types/app-cache/src/contracts/cache.d.ts +18 -0
  53. package/types/app-cache/src/index.d.ts +34 -2
  54. package/types/apps/src/contracts/api-response-error.d.ts +4 -0
  55. package/types/apps/src/contracts/app.d.ts +7 -3
  56. package/types/apps/src/contracts/cache.d.ts +20 -0
  57. package/types/apps/src/contracts/context.d.ts +19 -11
  58. package/types/apps/src/contracts/elicitation.d.ts +23 -7
  59. package/types/apps/src/contracts/events.d.ts +93 -0
  60. package/types/apps/src/contracts/failure.d.ts +30 -1
  61. package/types/apps/src/contracts/graphql.d.ts +2 -1
  62. package/types/apps/src/contracts/host.d.ts +649 -17
  63. package/types/apps/src/contracts/live.d.ts +2 -0
  64. package/types/apps/src/contracts/mcp.d.ts +80 -10
  65. package/types/apps/src/contracts/network.d.ts +120 -0
  66. package/types/apps/src/contracts/openapi-compile.d.ts +82 -3
  67. package/types/apps/src/contracts/openapi.d.ts +41 -9
  68. package/types/apps/src/contracts/operations.d.ts +8 -4
  69. package/types/apps/src/contracts/placement.d.ts +102 -0
  70. package/types/apps/src/contracts/protocol-version.d.ts +2 -2
  71. package/types/apps/src/contracts/protocols/1.d.ts +733 -81
  72. package/types/apps/src/contracts/protocols/10.d.ts +1450 -0
  73. package/types/apps/src/contracts/protocols/2.d.ts +69 -26
  74. package/types/apps/src/contracts/protocols/3.d.ts +133 -33
  75. package/types/apps/src/contracts/protocols/4.d.ts +122 -45
  76. package/types/apps/src/contracts/protocols/5.d.ts +157 -47
  77. package/types/apps/src/contracts/protocols/6.d.ts +1629 -0
  78. package/types/apps/src/contracts/protocols/7.d.ts +1785 -0
  79. package/types/apps/src/contracts/protocols/8.d.ts +1182 -0
  80. package/types/apps/src/contracts/protocols/9.d.ts +1104 -0
  81. package/types/apps/src/contracts/protocols/current.d.ts +3843 -0
  82. package/types/apps/src/contracts/protocols/oauth-6.d.ts +74 -0
  83. package/types/apps/src/contracts/protocols/oauth.d.ts +134 -0
  84. package/types/apps/src/contracts/provider-error.d.ts +9 -0
  85. package/types/apps/src/contracts/provider.d.ts +90 -6
  86. package/types/apps/src/contracts/skills.d.ts +50 -13
  87. package/types/apps/src/contracts/sql.d.ts +63 -0
  88. package/types/apps/src/contracts/ui.d.ts +37 -3
  89. package/types/apps/src/contracts/workflows.d.ts +6 -0
  90. package/types/apps/src/facet.d.ts +4 -5
  91. package/types/apps/src/host.d.ts +5 -0
  92. package/types/apps/src/implementation/account-router.d.ts +4 -3
  93. package/types/apps/src/implementation/authoring.d.ts +25 -5
  94. package/types/apps/src/implementation/browser-scripts.gen.d.ts +6 -0
  95. package/types/apps/src/implementation/cache.d.ts +28 -1
  96. package/types/apps/src/implementation/catalog-cache.d.ts +35 -4
  97. package/types/apps/src/implementation/elicitation.d.ts +18 -15
  98. package/types/apps/src/implementation/events.d.ts +59 -0
  99. package/types/apps/src/implementation/failure-detail.d.ts +25 -3
  100. package/types/apps/src/implementation/graphql-catalog.d.ts +3 -3
  101. package/types/apps/src/implementation/graphql.d.ts +4 -3
  102. package/types/apps/src/implementation/input-problems.d.ts +6 -2
  103. package/types/apps/src/implementation/invocation-timing.d.ts +18 -0
  104. package/types/apps/src/implementation/live.d.ts +2 -2
  105. package/types/apps/src/implementation/mcp-call.d.ts +6 -5
  106. package/types/apps/src/implementation/mcp-catalog.d.ts +6 -4
  107. package/types/apps/src/implementation/mcp-client.d.ts +17 -9
  108. package/types/apps/src/implementation/mcp-stdio.d.ts +1 -1
  109. package/types/apps/src/implementation/mcp-tools.d.ts +2 -1
  110. package/types/apps/src/implementation/mcp.d.ts +20 -9
  111. package/types/apps/src/implementation/network.d.ts +16 -0
  112. package/types/apps/src/implementation/openapi-compile.d.ts +26 -6
  113. package/types/apps/src/implementation/openapi-document.d.ts +46 -19
  114. package/types/apps/src/implementation/openapi-names.d.ts +9 -4
  115. package/types/apps/src/implementation/openapi-request.d.ts +10 -2
  116. package/types/apps/src/implementation/openapi-source.d.ts +18 -0
  117. package/types/apps/src/implementation/openapi-upgrade.d.ts +4 -0
  118. package/types/apps/src/implementation/operations.d.ts +17 -2
  119. package/types/apps/src/implementation/optimistic.d.ts +1 -1
  120. package/types/apps/src/implementation/placement.d.ts +60 -0
  121. package/types/apps/src/implementation/protocol-operations.d.ts +3 -0
  122. package/types/apps/src/implementation/provider-error.d.ts +28 -1
  123. package/types/apps/src/implementation/provider.d.ts +18 -3
  124. package/types/apps/src/implementation/query-commit.d.ts +1 -1
  125. package/types/apps/src/implementation/router-catalog.d.ts +11 -13
  126. package/types/apps/src/implementation/router.d.ts +16 -5
  127. package/types/apps/src/implementation/runtime-yield.d.ts +7 -0
  128. package/types/apps/src/implementation/schema.d.ts +90 -10
  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 +28 -9
  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/workflows.d.ts +1 -1
  141. package/types/apps/src/index.d.ts +55 -13
  142. package/types/apps/src/mcp.d.ts +20 -1
  143. package/types/apps/src/openapi.d.ts +1 -1
  144. package/types/apps/src/react.d.ts +1 -1
  145. package/types/apps/src/skills.d.ts +10 -8
  146. package/types/apps/src/ui-serving.d.ts +1 -1
  147. package/types/telemetry/src/app-records.d.ts +42 -0
  148. package/types/telemetry/src/browser-operations.d.ts +2 -2
  149. package/types/telemetry/src/browser.d.ts +8 -3
  150. package/types/telemetry/src/config.d.ts +2 -2
  151. package/types/telemetry/src/index.d.ts +2 -1
  152. package/types/telemetry/src/layer.d.ts +10 -4
  153. package/types/telemetry/src/measurements.d.ts +1 -1
  154. package/types/telemetry/src/ownership.d.ts +60 -0
  155. package/types/telemetry/src/recorded-failure.d.ts +29 -0
  156. package/types/telemetry/src/relay.d.ts +16 -6
  157. package/types/telemetry/src/span-attributes.d.ts +17 -1
  158. package/types/telemetry/src/transport.d.ts +8 -1
  159. package/types/utils/src/api-error.d.ts +55 -0
  160. package/types/utils/src/connection-failure.d.ts +33 -0
  161. package/types/utils/src/recorded-message.d.ts +18 -0
  162. package/types/utils/src/user-facing-error.d.ts +83 -0
  163. package/js/chunk-MKWZPDR6.js +0 -63
  164. package/js/chunk-N7YDVXYJ.js +0 -186
  165. package/js/chunk-NKLWZJLE.js +0 -172
  166. package/js/chunk-OCYUEU47.js +0 -224
  167. package/js/chunk-PJJ24GU7.js +0 -877
  168. package/js/chunk-PZB6T6KU.js +0 -19
  169. package/js/chunk-R3EV5FTO.js +0 -97
  170. package/js/chunk-YXQHV65J.js +0 -242
  171. package/js/chunk-ZQINWV4W.js +0 -630
  172. package/types/app-data/src/implementation/cursor.d.ts +0 -10
  173. package/types/app-data/src/implementation/index-key.d.ts +0 -7
  174. package/types/app-data/src/implementation/promise.d.ts +0 -68
  175. package/types/app-data/src/implementation/range.d.ts +0 -8
  176. package/types/app-data/src/implementation/schema.d.ts +0 -18
  177. package/types/app-data/src/implementation/sqlite.d.ts +0 -11
  178. package/types/app-data/src/index.d.ts +0 -4
  179. package/types/apps/src/contracts/storage.d.ts +0 -68
  180. package/types/apps/src/implementation/storage.d.ts +0 -15
package/js/index.js CHANGED
@@ -1,27 +1,34 @@
1
1
  import {
2
2
  ResponseDecodeError,
3
3
  ResponseStatusError,
4
+ base64,
5
+ basic,
6
+ bearer,
7
+ declarePlacements,
4
8
  defineApp,
5
- defineDatabase,
6
- table,
9
+ event,
10
+ header,
11
+ query,
12
+ t,
7
13
  workflow
8
- } from "./chunk-YXQHV65J.js";
9
- import "./chunk-ZQINWV4W.js";
14
+ } from "./chunk-5WGONRKQ.js";
10
15
  import {
11
16
  dynamicRouter,
12
- fromPromise,
13
17
  mutation,
14
18
  nativeOperation,
15
19
  nativeRouter,
16
20
  operationDeclaration,
17
- query,
21
+ query as query2,
18
22
  router,
19
23
  routerDeclaration,
20
- withApproval
21
- } from "./chunk-Z5M2LQOZ.js";
24
+ toolAnnotations,
25
+ withApproval,
26
+ withApprovals
27
+ } from "./chunk-OY47QPQY.js";
22
28
  import {
23
- accountProviderError
24
- } from "./chunk-MKWZPDR6.js";
29
+ accountProviderError,
30
+ fromPromise
31
+ } from "./chunk-W6XCQAXP.js";
25
32
  import {
26
33
  CalendarSchedule,
27
34
  ElicitationFailed,
@@ -36,19 +43,21 @@ import {
36
43
  ScheduleTiming,
37
44
  SecretsMethod,
38
45
  WorkflowFailure
39
- } from "./chunk-WLE7WX2U.js";
40
- import "./chunk-N7YDVXYJ.js";
46
+ } from "./chunk-NG56RPCA.js";
41
47
  import {
42
48
  CacheError,
49
+ FetchOptionUnsupported,
50
+ NetworkRefused,
43
51
  ProviderError
44
- } from "./chunk-R3EV5FTO.js";
45
- import "./chunk-JU7VHODU.js";
52
+ } from "./chunk-Q4IZAUIF.js";
53
+ import "./chunk-H72MEDMN.js";
46
54
  import {
47
55
  array,
48
56
  boolean,
49
57
  decoderOf,
50
- id,
58
+ fieldExposure,
51
59
  importedJsonSchema,
60
+ isSchema,
52
61
  json,
53
62
  jsonSchema,
54
63
  literal,
@@ -57,22 +66,27 @@ import {
57
66
  object,
58
67
  once,
59
68
  parse,
69
+ plain,
70
+ raw,
60
71
  record,
61
72
  string,
62
- userId,
63
73
  withLazyJsonSchemaDocument,
64
74
  wrap
65
- } from "./chunk-5T57N25Q.js";
66
- import "./chunk-PZB6T6KU.js";
75
+ } from "./chunk-KGCTYL2S.js";
76
+ import "./chunk-QWQM3CLH.js";
77
+ import "./chunk-PD6I2SDG.js";
78
+ import "./chunk-5FHWNLCI.js";
67
79
  import {
68
80
  JsonObject,
69
81
  JsonValue,
70
82
  ValidationError
71
- } from "./chunk-27F7W2LG.js";
83
+ } from "./chunk-H2CJWXA3.js";
84
+ import "./chunk-TUMGL2OC.js";
85
+ import "./chunk-EOPQ727L.js";
72
86
  import {
73
87
  Effect_exports,
74
88
  Schema_exports
75
- } from "./chunk-CDL5PM2Q.js";
89
+ } from "./chunk-IFJU5SYQ.js";
76
90
  import "./chunk-CZ7CSFO4.js";
77
91
 
78
92
  // src/implementation/http.ts
@@ -86,27 +100,43 @@ var decodeJson = (response, schema) => Effect_exports.gen(function* () {
86
100
 
87
101
  // src/implementation/provider.ts
88
102
  var secrets = (options) => new SecretsMethod(options);
89
- var oauth2 = (config, response) => parse(OAuth2Config, config).pipe(Effect_exports.map((config2) => new OAuth2Method({ config: config2, response })));
103
+ var oauth2 = (config, response, exposure, request) => parse(OAuth2Config, config).pipe(
104
+ Effect_exports.map(
105
+ (config2) => new OAuth2Method({
106
+ config: config2,
107
+ response,
108
+ ...exposure === void 0 ? {} : { exposure },
109
+ ...request === void 0 ? {} : { request }
110
+ })
111
+ )
112
+ );
90
113
  var defineProvider = ({
91
114
  health,
92
115
  ...options
93
116
  }) => {
117
+ const placed = Object.entries(options.auth).filter(([, method]) => method.request !== void 0);
118
+ if (options.hosts === void 0 && placed.length > 0)
119
+ throw new TypeError(
120
+ `Provider "${options.name}" declares a request for ${placed.map(([name]) => name).join(", ")} but no hosts. Declare the hosts its credentials may be sent to.`
121
+ );
94
122
  if (health === void 0) return new Provider(options);
95
- const run = fromPromise(health);
123
+ const run = fromPromise(health, "check");
96
124
  return new Provider({ ...options, health: { run } });
97
125
  };
98
126
 
99
127
  // src/implementation/account-router.ts
100
- var inputDocument = (operation) => {
101
- const imported = importedJsonSchema(operation.input);
128
+ var decoderDocument = (decoder) => {
129
+ const imported = importedJsonSchema(decoder);
102
130
  if (imported !== void 0) return Schema_exports.decodeUnknownSync(JsonObject)(imported);
103
- const document = Schema_exports.toJsonSchemaDocument(operation.input);
131
+ const document = Schema_exports.toJsonSchemaDocument(decoder);
104
132
  return Schema_exports.decodeUnknownSync(JsonObject)({ ...document.schema, $defs: document.definitions });
105
133
  };
106
134
  var declaresOutput = (operation) => {
135
+ if (operation.output !== void 0) return true;
107
136
  const property = Object.getOwnPropertyDescriptor(operation, "outputSchema");
108
137
  return property !== void 0 && (property.get !== void 0 || property.value !== void 0);
109
138
  };
139
+ var outputDocument = (operation) => operation.output === void 0 ? operation.outputSchema : decoderDocument(operation.output);
110
140
  var combineOperation = (accounts) => {
111
141
  const variants = [...accounts.values()];
112
142
  const first = variants[0];
@@ -129,7 +159,10 @@ var combineOperation = (accounts) => {
129
159
  type: "object",
130
160
  properties: {
131
161
  accountId: { type: "string", const: accountId },
132
- input: nestJsonSchema(inputDocument(operation), `#/anyOf/${index}/properties/input`)
162
+ input: nestJsonSchema(
163
+ decoderDocument(operation.input),
164
+ `#/anyOf/${index}/properties/input`
165
+ )
133
166
  },
134
167
  required: ["accountId", "input"]
135
168
  }))
@@ -159,9 +192,10 @@ var combineOperation = (accounts) => {
159
192
  });
160
193
  if (variants.every(declaresOutput)) {
161
194
  const outputSchema = once(() => ({
162
- anyOf: variants.flatMap(
163
- (operation) => operation.outputSchema === void 0 ? [] : [operation.outputSchema]
164
- ).map((output, index) => nestJsonSchema(output, `#/anyOf/${index}`))
195
+ anyOf: variants.flatMap((operation) => {
196
+ const output = outputDocument(operation);
197
+ return output === void 0 ? [] : [output];
198
+ }).map((output, index) => nestJsonSchema(output, `#/anyOf/${index}`))
165
199
  }));
166
200
  const native2 = nativeOperation(declaration2);
167
201
  if (native2 !== void 0)
@@ -218,7 +252,7 @@ var combineDynamic = (sources) => {
218
252
  );
219
253
  for (const tool of tools) {
220
254
  const variants = groups.get(tool.name) ?? [];
221
- if (variants.some(([id2]) => id2 === accountId))
255
+ if (variants.some(([id]) => id === accountId))
222
256
  return yield* Effect_exports.die(new Error("Duplicate source operation"));
223
257
  variants.push([accountId, tool]);
224
258
  groups.set(tool.name, variants);
@@ -307,7 +341,7 @@ var accountRouter = (accounts, discover, options) => Effect_exports.runPromise(
307
341
  const routers = /* @__PURE__ */ new Map();
308
342
  for (const account of accounts) {
309
343
  const declaration2 = yield* Effect_exports.tryPromise({
310
- try: () => discover(account),
344
+ try: async () => discover(account),
311
345
  catch: (error) => accountProviderError(error, account.id)
312
346
  });
313
347
  if (routers.has(account.id))
@@ -327,7 +361,7 @@ var accountRouter = (accounts, discover, options) => Effect_exports.runPromise(
327
361
 
328
362
  // src/implementation/dynamic-skills.ts
329
363
  var dynamicSkills = (source) => ({
330
- list: fromPromise(async () => source.list())
364
+ list: fromPromise(async () => source.list(), "skills")
331
365
  });
332
366
 
333
367
  // src/contracts/app.ts
@@ -366,29 +400,74 @@ var cron = (calendar, operation, input) => declaration(
366
400
  );
367
401
 
368
402
  // src/index.ts
403
+ var isFields = (value) => typeof value === "object" && value !== null && Object.values(value).every(isSchema);
404
+ var accountDecoder = (schema) => (
405
+ // SAFETY: the brand exists only in types; secret values are strings at runtime.
406
+ decoderOf(schema)
407
+ );
408
+ var exposureOf = (schema) => {
409
+ const marked = "fields" in schema && isFields(schema.fields) ? fieldExposure(schema.fields) : {};
410
+ return Object.keys(marked).length === 0 ? {} : { exposure: marked };
411
+ };
412
+ var fieldNames = (schema) => "fields" in schema && isFields(schema.fields) ? Object.keys(schema.fields) : schema === OAuth2AccessToken2 ? ["access_token"] : [];
413
+ var placementsOf = (method, schema, request) => request === void 0 ? {} : {
414
+ request: declarePlacements(
415
+ method,
416
+ fieldNames(schema),
417
+ exposureOf(schema).exposure,
418
+ request
419
+ )
420
+ };
369
421
  var OAuth2AccessToken2 = wrap(OAuth2AccessToken, false);
370
- var secrets2 = (options) => secrets({ label: options.label, fields: decoderOf(options.fields) });
422
+ var secrets2 = (options) => secrets({
423
+ label: options.label,
424
+ fields: accountDecoder(options.fields),
425
+ ...exposureOf(options.fields),
426
+ // SAFETY: the callback receives references named by the schema's own keys.
427
+ ...placementsOf(
428
+ `"${options.label}"`,
429
+ options.fields,
430
+ options.request
431
+ )
432
+ });
371
433
  function oauth22(options) {
372
- const { response = OAuth2AccessToken2, ...config } = options;
373
- return Effect_exports.runSync(oauth2(config, decoderOf(response)));
434
+ const { response = OAuth2AccessToken2, request, ...config } = options;
435
+ return Effect_exports.runSync(
436
+ oauth2(
437
+ config,
438
+ accountDecoder(response),
439
+ exposureOf(response).exposure,
440
+ // SAFETY: the callback receives references named by the response projection's own keys.
441
+ placementsOf("OAuth", response, request).request
442
+ )
443
+ );
374
444
  }
375
445
  var decodeJson2 = (response, schema) => {
376
446
  const native = {
377
447
  status: response.status,
378
- json: () => Effect_exports.tryPromise({
379
- try: () => response.json(),
380
- catch: (error) => error
381
- }).pipe(
382
- Effect_exports.catch(
383
- (error) => error instanceof SyntaxError ? Effect_exports.fail(new ResponseDecodeError()) : Effect_exports.die(error)
448
+ json: () => (
449
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- a Response the app passes from its own code
450
+ Effect_exports.tryPromise({
451
+ try: () => response.json(),
452
+ catch: (error) => error
453
+ }).pipe(
454
+ Effect_exports.catch(
455
+ (error) => error instanceof SyntaxError ? Effect_exports.fail(new ResponseDecodeError()) : Effect_exports.die(error)
456
+ )
384
457
  )
385
458
  )
386
459
  };
387
460
  return Effect_exports.runPromise(decodeJson(native, decoderOf(schema)));
388
461
  };
462
+ function query3(first, second) {
463
+ if (typeof first === "string") return query(first, second);
464
+ return query2(...[first, second]);
465
+ }
389
466
  export {
390
467
  CacheError,
391
468
  ElicitationFailed,
469
+ FetchOptionUnsupported,
470
+ NetworkRefused,
392
471
  NonRetryableError,
393
472
  NotImplemented,
394
473
  OAuth2AccessToken2 as OAuth2AccessToken,
@@ -399,15 +478,18 @@ export {
399
478
  WorkflowFailure,
400
479
  accountRouter,
401
480
  array,
481
+ base64,
482
+ basic,
483
+ bearer,
402
484
  boolean,
403
485
  cron,
404
486
  decodeJson2 as decodeJson,
405
487
  defineApp,
406
- defineDatabase,
407
488
  defineProvider,
408
489
  dynamicRouter,
409
490
  dynamicSkills,
410
- id,
491
+ event,
492
+ header,
411
493
  interval,
412
494
  json,
413
495
  jsonSchema,
@@ -416,13 +498,16 @@ export {
416
498
  number,
417
499
  oauth22 as oauth2,
418
500
  object,
419
- query,
501
+ plain,
502
+ query3 as query,
503
+ raw,
420
504
  record,
421
505
  router,
422
506
  secrets2 as secrets,
423
507
  string,
424
- table,
425
- userId,
508
+ t,
509
+ toolAnnotations,
426
510
  withApproval,
511
+ withApprovals,
427
512
  workflow
428
513
  };
package/js/mcp/effect.js CHANGED
@@ -1,30 +1,32 @@
1
1
  import {
2
2
  mcpClientEffect,
3
+ mcpHealthEffect,
3
4
  mcpToolsEffect
4
- } from "../chunk-OCYUEU47.js";
5
- import "../chunk-CMYUWAX7.js";
5
+ } from "../chunk-WCGAO3X5.js";
6
+ import "../chunk-YQUG4CES.js";
6
7
  import "../chunk-BCSNKUAC.js";
7
- import "../chunk-UESPOTUI.js";
8
- import "../chunk-NKLWZJLE.js";
9
- import "../chunk-FL2QR3XW.js";
10
- import "../chunk-IPI4MFSN.js";
11
- import "../chunk-YXQHV65J.js";
12
- import "../chunk-ZQINWV4W.js";
13
- import "../chunk-Z5M2LQOZ.js";
14
- import "../chunk-MKWZPDR6.js";
15
- import "../chunk-WLE7WX2U.js";
16
- import "../chunk-N7YDVXYJ.js";
17
- import "../chunk-R3EV5FTO.js";
18
- import "../chunk-JU7VHODU.js";
19
- import "../chunk-RJDDBDSN.js";
20
- import "../chunk-57RKNWL2.js";
21
- import "../chunk-UK573G7W.js";
22
- import "../chunk-5T57N25Q.js";
23
- import "../chunk-PZB6T6KU.js";
24
- import "../chunk-27F7W2LG.js";
25
- import "../chunk-CDL5PM2Q.js";
8
+ import "../chunk-Z2SWTZCF.js";
9
+ import "../chunk-PL5KOEZD.js";
10
+ import "../chunk-HJG4RBYM.js";
11
+ import "../chunk-I6Q7ZPKJ.js";
12
+ import "../chunk-XBG7HHXC.js";
13
+ import "../chunk-5WGONRKQ.js";
14
+ import "../chunk-OY47QPQY.js";
15
+ import "../chunk-W6XCQAXP.js";
16
+ import "../chunk-NG56RPCA.js";
17
+ import "../chunk-Q4IZAUIF.js";
18
+ import "../chunk-H72MEDMN.js";
19
+ import "../chunk-KGCTYL2S.js";
20
+ import "../chunk-QWQM3CLH.js";
21
+ import "../chunk-PD6I2SDG.js";
22
+ import "../chunk-5FHWNLCI.js";
23
+ import "../chunk-H2CJWXA3.js";
24
+ import "../chunk-TUMGL2OC.js";
25
+ import "../chunk-EOPQ727L.js";
26
+ import "../chunk-IFJU5SYQ.js";
26
27
  import "../chunk-CZ7CSFO4.js";
27
28
  export {
28
29
  mcpClientEffect,
30
+ mcpHealthEffect,
29
31
  mcpToolsEffect
30
32
  };
package/js/mcp/stdio.js CHANGED
@@ -1,37 +1,40 @@
1
1
  import {
2
2
  adaptMcpTools,
3
+ answeredError,
3
4
  mcpClient,
4
5
  mcpJsonSchemaValidator
5
- } from "../chunk-CMYUWAX7.js";
6
+ } from "../chunk-YQUG4CES.js";
6
7
  import {
7
8
  protocolRouter
8
- } from "../chunk-72JNVHPK.js";
9
+ } from "../chunk-4NFSABEA.js";
9
10
  import "../chunk-BCSNKUAC.js";
10
- import "../chunk-UESPOTUI.js";
11
- import "../chunk-NKLWZJLE.js";
12
- import "../chunk-FL2QR3XW.js";
13
- import "../chunk-IPI4MFSN.js";
14
- import "../chunk-YXQHV65J.js";
15
- import "../chunk-ZQINWV4W.js";
16
- import "../chunk-Z5M2LQOZ.js";
17
- import "../chunk-MKWZPDR6.js";
11
+ import "../chunk-Z2SWTZCF.js";
12
+ import "../chunk-PL5KOEZD.js";
13
+ import "../chunk-HJG4RBYM.js";
14
+ import "../chunk-I6Q7ZPKJ.js";
15
+ import "../chunk-XBG7HHXC.js";
16
+ import "../chunk-5WGONRKQ.js";
17
+ import "../chunk-OY47QPQY.js";
18
+ import "../chunk-W6XCQAXP.js";
18
19
  import {
19
20
  McpError,
20
21
  ProcessConfig
21
- } from "../chunk-WLE7WX2U.js";
22
- import "../chunk-N7YDVXYJ.js";
23
- import "../chunk-R3EV5FTO.js";
24
- import "../chunk-JU7VHODU.js";
25
- import "../chunk-RJDDBDSN.js";
26
- import "../chunk-57RKNWL2.js";
27
- import "../chunk-UK573G7W.js";
28
- import "../chunk-5T57N25Q.js";
29
- import "../chunk-PZB6T6KU.js";
30
- import "../chunk-27F7W2LG.js";
22
+ } from "../chunk-NG56RPCA.js";
23
+ import "../chunk-Q4IZAUIF.js";
24
+ import "../chunk-H72MEDMN.js";
25
+ import "../chunk-KGCTYL2S.js";
26
+ import {
27
+ owned
28
+ } from "../chunk-QWQM3CLH.js";
29
+ import "../chunk-PD6I2SDG.js";
30
+ import "../chunk-5FHWNLCI.js";
31
+ import "../chunk-H2CJWXA3.js";
32
+ import "../chunk-TUMGL2OC.js";
33
+ import "../chunk-EOPQ727L.js";
31
34
  import {
32
35
  Effect_exports,
33
36
  Schema_exports
34
- } from "../chunk-CDL5PM2Q.js";
37
+ } from "../chunk-IFJU5SYQ.js";
35
38
  import "../chunk-CZ7CSFO4.js";
36
39
 
37
40
  // src/implementation/mcp-stdio.ts
@@ -59,10 +62,14 @@ var OwnedTransport = class extends StdioClientTransport {
59
62
  })();
60
63
  }
61
64
  };
62
- var failure = (phase, error) => new McpError({
63
- phase,
64
- reason: error instanceof ProtocolError && error.code === ErrorCode.RequestTimeout ? "timeout" : "request"
65
- });
65
+ var failure = (phase, error) => {
66
+ const upstream = answeredError(error);
67
+ return new McpError({
68
+ phase,
69
+ reason: error instanceof ProtocolError && error.code === ErrorCode.RequestTimeout ? "timeout" : "request",
70
+ ...upstream === void 0 ? {} : { upstream }
71
+ });
72
+ };
66
73
  function withClient(config, mode, use) {
67
74
  return Effect_exports.scoped(
68
75
  Effect_exports.gen(function* () {
@@ -83,22 +90,25 @@ function withClient(config, mode, use) {
83
90
  stderr: "ignore"
84
91
  })
85
92
  })),
86
- ({ client: client2, transport: transport2 }) => Effect_exports.tryPromise(async () => {
87
- try {
88
- await client2.close();
89
- } finally {
90
- await transport2.close();
91
- }
92
- }).pipe(Effect_exports.withSpan("provider.mcp.close"), Effect_exports.orDie)
93
+ ({ client: client2, transport: transport2 }) => (
94
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- MCP SDK
95
+ Effect_exports.tryPromise(async () => {
96
+ try {
97
+ await client2.close();
98
+ } finally {
99
+ await transport2.close();
100
+ }
101
+ }).pipe(owned("upstream", "provider.mcp.close"), Effect_exports.orDie)
102
+ )
93
103
  );
94
104
  yield* Effect_exports.tryPromise({
95
105
  try: (signal) => client.connect(transport, { signal, timeout: config.timeoutMs }),
96
106
  catch: (error) => failure("connect", error)
97
- }).pipe(Effect_exports.timeout(config.timeoutMs), Effect_exports.withSpan("provider.mcp.connect"));
107
+ }).pipe(Effect_exports.timeout(config.timeoutMs), owned("upstream", "provider.mcp.connect"));
98
108
  return yield* use(client);
99
109
  })
100
110
  ).pipe(
101
- Effect_exports.withSpan("provider.mcp.session", {
111
+ owned("upstream", "provider.mcp.session", {
102
112
  attributes: { "mcp.transport": "stdio", "mcp.operation": mode }
103
113
  }),
104
114
  (operation) => mode === "discover" ? operation.pipe(Effect_exports.timeout(config.timeoutMs)) : operation,