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
@@ -1,27 +1,56 @@
1
+ import {
2
+ getWithReads
3
+ } from "./chunk-PL5KOEZD.js";
4
+ import {
5
+ fromPromise,
6
+ method,
7
+ toPromise
8
+ } from "./chunk-W6XCQAXP.js";
1
9
  import {
2
10
  CacheError
3
- } from "./chunk-R3EV5FTO.js";
11
+ } from "./chunk-Q4IZAUIF.js";
4
12
  import {
5
13
  wrap
6
- } from "./chunk-5T57N25Q.js";
14
+ } from "./chunk-KGCTYL2S.js";
7
15
  import {
8
16
  JsonObject
9
- } from "./chunk-27F7W2LG.js";
17
+ } from "./chunk-H2CJWXA3.js";
10
18
  import {
19
+ Deferred_exports,
11
20
  Duration_exports,
12
21
  Effect_exports,
22
+ Exit_exports,
13
23
  Schema_exports
14
- } from "./chunk-CDL5PM2Q.js";
24
+ } from "./chunk-IFJU5SYQ.js";
15
25
 
16
26
  // src/implementation/catalog-cache.ts
27
+ var catalogScope = (options, credential, invalid) => {
28
+ const { account, cache } = options;
29
+ if (account === void 0)
30
+ return credential === void 0 ? Effect_exports.succeed(cache) : Effect_exports.fail(invalid("missing-account"));
31
+ if (cache === void 0) return Effect_exports.succeed(void 0);
32
+ return Effect_exports.try({
33
+ try: () => cache.forAccount(account),
34
+ catch: () => invalid("unselected-account")
35
+ });
36
+ };
17
37
  var schema = (decoder) => wrap(decoder, false);
38
+ var seenRevisions = /* @__PURE__ */ new Map();
39
+ var seenLimit = 256;
40
+ var seen = (key, revision) => {
41
+ seenRevisions.delete(key);
42
+ seenRevisions.set(key, revision);
43
+ if (seenRevisions.size > seenLimit) {
44
+ const oldest = seenRevisions.keys().next();
45
+ if (oldest.done !== true) seenRevisions.delete(oldest.value);
46
+ }
47
+ };
18
48
  var Manifest = Schema_exports.Struct({
19
49
  revision: Schema_exports.String,
20
50
  pages: Schema_exports.Int,
21
51
  summaries: Schema_exports.Int,
22
52
  header: Schema_exports.optionalKey(JsonObject)
23
53
  });
24
- var invoke = (work) => Effect_exports.tryPromise({ try: work, catch: (error) => error });
25
54
  var catalogCache = (options) => Effect_exports.gen(function* () {
26
55
  const cache = options.cache;
27
56
  const key = [...options.prefix, "current"];
@@ -35,14 +64,42 @@ var catalogCache = (options) => Effect_exports.gen(function* () {
35
64
  const staleFor = options.staleFor ?? "1 day";
36
65
  const retention = Duration_exports.toMillis(Duration_exports.fromInputUnsafe(freshFor)) + Duration_exports.toMillis(Duration_exports.fromInputUnsafe(staleFor)) + 3e5;
37
66
  const local = yield* Effect_exports.cached(options.load());
67
+ const pages = (cache2, revision, kind, count, decoder) => Effect_exports.gen(function* () {
68
+ const batches = yield* Effect_exports.forEach(
69
+ Array.from({ length: Math.ceil(count / 4) }, (_, batch) => batch * 4),
70
+ (offset) => fromPromise(method(cache2, "readMany"), "cache")(
71
+ Array.from(
72
+ { length: Math.min(4, count - offset) },
73
+ (_, index) => part(revision, kind, offset + index)
74
+ ),
75
+ schema(Schema_exports.Array(decoder))
76
+ ),
77
+ { concurrency: "unbounded" }
78
+ );
79
+ const values = [];
80
+ for (const page of batches.flat()) {
81
+ if (page === void 0) return yield* new CacheError({ reason: "unavailable" });
82
+ values.push(...page);
83
+ }
84
+ return values;
85
+ });
86
+ const kept = (cache2) => fromPromise(method(cache2, "read"), "cache")(key, schema(Manifest)).pipe(
87
+ Effect_exports.map(
88
+ (manifest) => manifest === void 0 ? void 0 : {
89
+ header: manifest.header,
90
+ tools: pages(cache2, manifest.revision, "page", manifest.pages, options.schema)
91
+ }
92
+ )
93
+ );
38
94
  const refresh = (context) => Effect_exports.gen(function* () {
39
- const { tools, header } = yield* options.load(context);
40
- const digest = yield* invoke(
41
- () => crypto.subtle.digest(
95
+ const { tools, header } = yield* options.load(context, kept(context.cache));
96
+ const digest = yield* Effect_exports.tryPromise({
97
+ try: () => crypto.subtle.digest(
42
98
  "SHA-256",
43
99
  new TextEncoder().encode(JSON.stringify({ tools, header: header ?? null }))
44
- )
45
- );
100
+ ),
101
+ catch: (error) => error
102
+ });
46
103
  const revision = Array.from(
47
104
  new Uint8Array(digest),
48
105
  (byte) => byte.toString(16).padStart(2, "0")
@@ -62,7 +119,7 @@ var catalogCache = (options) => Effect_exports.gen(function* () {
62
119
  batch = [];
63
120
  batchBytes = 0;
64
121
  if (!entries.length) return Effect_exports.void;
65
- return invoke(() => context.cache.write(entries, retention)).pipe(
122
+ return fromPromise(method(context.cache, "write"), "cache")(entries, retention).pipe(
66
123
  Effect_exports.withSpan("app.cache.flush", {
67
124
  attributes: {
68
125
  "cache.flush.index": flushes++,
@@ -120,39 +177,54 @@ var catalogCache = (options) => Effect_exports.gen(function* () {
120
177
  schema: schema(Manifest),
121
178
  freshFor,
122
179
  staleFor,
123
- load: (context) => Effect_exports.runPromise(refresh(context), { signal: context.signal })
180
+ ...options.stale === void 0 ? {} : { stale: options.stale },
181
+ // A cache may call the loader as a Promise; its own signal cancels that load.
182
+ load: toPromise(refresh, (context) => context.signal)
124
183
  };
125
184
  let reading;
126
- const current = () => cache === void 0 ? Effect_exports.fail(new CacheError({ reason: "unavailable" })) : invoke(
127
- () => reading ??= cache.get(getOptions).finally(() => {
128
- reading = void 0;
129
- })
185
+ const read = (tool) => Effect_exports.suspend(
186
+ () => {
187
+ if (cache === void 0) return Effect_exports.fail(new CacheError({ reason: "unavailable" }));
188
+ const shared = reading;
189
+ if (shared !== void 0)
190
+ return Deferred_exports.await(shared).pipe(Effect_exports.map((manifest) => ({ manifest })));
191
+ const deferred = Deferred_exports.makeUnsafe();
192
+ reading = deferred;
193
+ const together = Object.hasOwn(cache, getWithReads) ? cache[getWithReads] : void 0;
194
+ let hinted;
195
+ const fetched = together === void 0 ? fromPromise(
196
+ method(cache, "get"),
197
+ "cache"
198
+ )(getOptions).pipe(Effect_exports.map((manifest) => ({ manifest }))) : fromPromise(method({ together }, "together"), "cache")(getOptions, (stored) => {
199
+ hinted = tool === void 0 ? void 0 : seenRevisions.get(stored);
200
+ return hinted === void 0 || tool === void 0 ? [] : [part(hinted, "tool", tool)];
201
+ }).pipe(
202
+ Effect_exports.map(({ value: manifest, key: stored, reads }) => {
203
+ seen(stored, manifest.revision);
204
+ return manifest.revision === hinted && reads !== void 0 ? { manifest, part: { value: reads[0] } } : { manifest };
205
+ })
206
+ );
207
+ return fetched.pipe(
208
+ Effect_exports.onExit(
209
+ (exit) => Effect_exports.sync(() => {
210
+ if (reading === deferred) reading = void 0;
211
+ }).pipe(
212
+ Effect_exports.andThen(
213
+ Deferred_exports.done(
214
+ deferred,
215
+ Exit_exports.map(exit, ({ manifest }) => manifest)
216
+ )
217
+ )
218
+ )
219
+ )
220
+ );
221
+ }
130
222
  );
223
+ const current = () => read().pipe(Effect_exports.map(({ manifest }) => manifest));
131
224
  if (options.revalidate) {
132
225
  if (cache === void 0) yield* local;
133
- else yield* invoke(() => cache.revalidate(getOptions));
226
+ else yield* fromPromise(method(cache, "revalidate"), "cache")(getOptions);
134
227
  }
135
- const pages = (cache2, revision, kind, count, decoder) => Effect_exports.gen(function* () {
136
- const batches = yield* Effect_exports.forEach(
137
- Array.from({ length: Math.ceil(count / 4) }, (_, batch) => batch * 4),
138
- (offset) => invoke(
139
- () => cache2.readMany(
140
- Array.from(
141
- { length: Math.min(4, count - offset) },
142
- (_, index) => part(revision, kind, offset + index)
143
- ),
144
- schema(Schema_exports.Array(decoder))
145
- )
146
- ),
147
- { concurrency: "unbounded" }
148
- );
149
- const values = [];
150
- for (const page of batches.flat()) {
151
- if (page === void 0) return yield* new CacheError({ reason: "unavailable" });
152
- values.push(...page);
153
- }
154
- return values;
155
- });
156
228
  const metadata = () => Effect_exports.gen(function* () {
157
229
  if (cache === void 0) return (yield* local).tools;
158
230
  const manifest = yield* current();
@@ -174,16 +246,23 @@ var catalogCache = (options) => Effect_exports.gen(function* () {
174
246
  options.summary.schema
175
247
  );
176
248
  }),
177
- resolve: (name) => cache === void 0 ? local.pipe(Effect_exports.map(({ tools }) => tools.find((tool) => tool.name === name))) : current().pipe(
178
- Effect_exports.flatMap(
179
- (manifest) => invoke(
180
- () => cache.read(part(manifest.revision, "tool", name), schema(options.schema))
181
- )
182
- )
249
+ resolve: (name) => cache === void 0 ? local.pipe(Effect_exports.map(({ tools }) => tools.find((tool) => tool.name === name))) : read(name).pipe(
250
+ Effect_exports.flatMap(({ manifest, part: found }) => {
251
+ const separately = fromPromise(method(cache, "read"), "cache")(
252
+ part(manifest.revision, "tool", name),
253
+ schema(options.schema)
254
+ );
255
+ if (found === void 0) return separately;
256
+ if (found.value === void 0) return Effect_exports.succeed(void 0);
257
+ return Schema_exports.decodeUnknownEffect(options.schema)(found.value).pipe(
258
+ Effect_exports.catch(() => separately)
259
+ );
260
+ })
183
261
  )
184
262
  };
185
263
  });
186
264
 
187
265
  export {
266
+ catalogScope,
188
267
  catalogCache
189
268
  };