apps 0.0.1-beta.11 → 0.0.1-beta.110

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 (197) hide show
  1. package/README.md +60 -42
  2. package/framework-reference.json +1 -1
  3. package/js/chunk-2RGJMA7N.js +5186 -0
  4. package/js/chunk-3BI34I5S.js +449 -0
  5. package/js/chunk-3BOEMXAJ.js +713 -0
  6. package/js/{chunk-JU7VHODU.js → chunk-4PIQKACY.js} +65 -10
  7. package/js/{chunk-VFZKSM3T.js → chunk-4X2UI4R2.js} +3 -3
  8. package/js/{chunk-KUMBKVJD.js → chunk-62NVUKED.js} +2 -2
  9. package/js/chunk-74H25C4X.js +95 -0
  10. package/js/chunk-7HG422GB.js +90 -0
  11. package/js/{chunk-UK573G7W.js → chunk-ACQXVKVQ.js} +87 -51
  12. package/js/chunk-BKIQCV72.js +994 -0
  13. package/js/{chunk-IJX4CYZO.js → chunk-DILSCQPJ.js} +228 -264
  14. package/js/chunk-HLMJBE4T.js +49 -0
  15. package/js/{chunk-RELFXUOO.js → chunk-JCX2K2SI.js} +931 -289
  16. package/js/{chunk-M3B3DE4K.js → chunk-KLSEU35Y.js} +463 -218
  17. package/js/chunk-OD3KFKZD.js +1617 -0
  18. package/js/chunk-OIH73VFM.js +175 -0
  19. package/js/chunk-OWN3DP2W.js +88 -0
  20. package/js/{chunk-IPI4MFSN.js → chunk-PBGPES67.js} +2 -2
  21. package/js/{chunk-WVVV4TX2.js → chunk-RIV62DRM.js} +4 -3
  22. package/js/{chunk-RFVIONFX.js → chunk-SXQVVXJE.js} +123 -44
  23. package/js/chunk-UPTAFF6L.js +335 -0
  24. package/js/{chunk-ODEIDRGW.js → chunk-URKOTNDA.js} +795 -176
  25. package/js/{chunk-5T57N25Q.js → chunk-VAI3EVCS.js} +643 -69
  26. package/js/{chunk-57RKNWL2.js → chunk-YDW7DX3A.js} +4 -4
  27. package/js/{chunk-CDL5PM2Q.js → chunk-ZKDXML77.js} +19239 -18404
  28. package/js/{chunk-GPFVWWDZ.js → chunk-ZXG7RMCB.js} +113 -58
  29. package/js/client.js +148 -84
  30. package/js/contracts.js +150 -21
  31. package/js/effect.js +18 -19
  32. package/js/{es-APDZKREY.js → es-DIULA3ZF.js} +62 -1659
  33. package/js/graphql.js +231 -188
  34. package/js/host.js +116 -78
  35. package/js/index.js +213 -98
  36. package/js/mcp/effect.js +21 -21
  37. package/js/mcp.js +91 -57
  38. package/js/openapi.js +4349 -1415
  39. package/js/react.js +2 -3
  40. package/js/skills/effect.js +6 -3
  41. package/js/skills.js +208 -81
  42. package/js/storage/facet.js +1 -540
  43. package/js/ui/auth/contracts.js +2 -2
  44. package/js/ui/auth.js +5 -5
  45. package/js/ui/contracts.js +9 -8
  46. package/js/ui/serving.js +8609 -228
  47. package/package.json +3 -8
  48. package/runtime.json +1 -1
  49. package/types/app-cache/src/contracts/cache.d.ts +18 -0
  50. package/types/app-cache/src/index.d.ts +34 -2
  51. package/types/apps/src/contracts/api-response-error.d.ts +4 -0
  52. package/types/apps/src/contracts/app.d.ts +56 -11
  53. package/types/apps/src/contracts/cache.d.ts +20 -0
  54. package/types/apps/src/contracts/context.d.ts +60 -17
  55. package/types/apps/src/contracts/elicitation.d.ts +23 -7
  56. package/types/apps/src/contracts/events.d.ts +94 -0
  57. package/types/apps/src/contracts/failure.d.ts +30 -1
  58. package/types/apps/src/contracts/graphql.d.ts +40 -2
  59. package/types/apps/src/contracts/host.d.ts +1456 -20
  60. package/types/apps/src/contracts/icons.d.ts +28 -0
  61. package/types/apps/src/contracts/live.d.ts +2 -0
  62. package/types/apps/src/contracts/mcp.d.ts +81 -20
  63. package/types/apps/src/contracts/network.d.ts +120 -0
  64. package/types/apps/src/contracts/openapi-compile.d.ts +82 -3
  65. package/types/apps/src/contracts/openapi-document.d.ts +1 -1
  66. package/types/apps/src/contracts/openapi.d.ts +41 -9
  67. package/types/apps/src/contracts/operations.d.ts +14 -7
  68. package/types/apps/src/contracts/placement.d.ts +102 -0
  69. package/types/apps/src/contracts/protocol-version.d.ts +2 -2
  70. package/types/apps/src/contracts/protocols/1.d.ts +733 -81
  71. package/types/apps/src/contracts/protocols/10.d.ts +1450 -0
  72. package/types/apps/src/contracts/protocols/11.d.ts +1149 -0
  73. package/types/apps/src/contracts/protocols/12.d.ts +3310 -0
  74. package/types/apps/src/contracts/protocols/2.d.ts +69 -26
  75. package/types/apps/src/contracts/protocols/3.d.ts +133 -33
  76. package/types/apps/src/contracts/protocols/4.d.ts +122 -45
  77. package/types/apps/src/contracts/protocols/5.d.ts +157 -47
  78. package/types/apps/src/contracts/protocols/6.d.ts +1629 -0
  79. package/types/apps/src/contracts/protocols/7.d.ts +1785 -0
  80. package/types/apps/src/contracts/protocols/8.d.ts +1182 -0
  81. package/types/apps/src/contracts/protocols/9.d.ts +1104 -0
  82. package/types/apps/src/contracts/protocols/current.d.ts +6869 -0
  83. package/types/apps/src/contracts/protocols/oauth-6.d.ts +74 -0
  84. package/types/apps/src/contracts/protocols/oauth.d.ts +134 -0
  85. package/types/apps/src/contracts/provider-error.d.ts +9 -0
  86. package/types/apps/src/contracts/provider.d.ts +85 -6
  87. package/types/apps/src/contracts/router.d.ts +2 -1
  88. package/types/apps/src/contracts/schedules.d.ts +7 -1
  89. package/types/apps/src/contracts/schema.d.ts +21 -0
  90. package/types/apps/src/contracts/shared-catalog.d.ts +11 -0
  91. package/types/apps/src/contracts/skills.d.ts +50 -13
  92. package/types/apps/src/contracts/sql.d.ts +63 -0
  93. package/types/apps/src/contracts/ui.d.ts +70 -30
  94. package/types/apps/src/contracts/webhooks.d.ts +24 -7
  95. package/types/apps/src/contracts/workflows.d.ts +56 -34
  96. package/types/apps/src/facet.d.ts +4 -5
  97. package/types/apps/src/host.d.ts +5 -0
  98. package/types/apps/src/implementation/account-router.d.ts +4 -3
  99. package/types/apps/src/implementation/app.d.ts +41 -14
  100. package/types/apps/src/implementation/authoring.d.ts +25 -5
  101. package/types/apps/src/implementation/browser-scripts.gen.d.ts +6 -0
  102. package/types/apps/src/implementation/cache.d.ts +29 -2
  103. package/types/apps/src/implementation/catalog-cache.d.ts +35 -4
  104. package/types/apps/src/implementation/elicitation.d.ts +18 -15
  105. package/types/apps/src/implementation/events.d.ts +64 -0
  106. package/types/apps/src/implementation/failure-detail.d.ts +28 -5
  107. package/types/apps/src/implementation/graphql-catalog.d.ts +3 -3
  108. package/types/apps/src/implementation/graphql.d.ts +4 -3
  109. package/types/apps/src/implementation/input-problems.d.ts +6 -2
  110. package/types/apps/src/implementation/invocation-timing.d.ts +18 -0
  111. package/types/apps/src/implementation/live.d.ts +2 -2
  112. package/types/apps/src/implementation/mcp-call.d.ts +6 -5
  113. package/types/apps/src/implementation/mcp-catalog.d.ts +6 -4
  114. package/types/apps/src/implementation/mcp-client.d.ts +17 -9
  115. package/types/apps/src/implementation/mcp-tools.d.ts +2 -1
  116. package/types/apps/src/implementation/mcp.d.ts +20 -9
  117. package/types/apps/src/implementation/network.d.ts +16 -0
  118. package/types/apps/src/implementation/openapi-compile.d.ts +38 -7
  119. package/types/apps/src/implementation/openapi-document.d.ts +50 -20
  120. package/types/apps/src/implementation/openapi-names.d.ts +9 -4
  121. package/types/apps/src/implementation/openapi-request.d.ts +10 -2
  122. package/types/apps/src/implementation/openapi-source.d.ts +23 -1
  123. package/types/apps/src/implementation/openapi-upgrade.d.ts +4 -0
  124. package/types/apps/src/implementation/operations.d.ts +58 -7
  125. package/types/apps/src/implementation/optimistic.d.ts +1 -1
  126. package/types/apps/src/implementation/placement.d.ts +60 -0
  127. package/types/apps/src/implementation/protocol-operations.d.ts +3 -0
  128. package/types/apps/src/implementation/provider-error.d.ts +28 -1
  129. package/types/apps/src/implementation/provider.d.ts +19 -4
  130. package/types/apps/src/implementation/query-commit.d.ts +1 -1
  131. package/types/apps/src/implementation/router-catalog.d.ts +24 -18
  132. package/types/apps/src/implementation/router.d.ts +26 -6
  133. package/types/apps/src/implementation/runtime-yield.d.ts +7 -0
  134. package/types/apps/src/implementation/schedules.d.ts +39 -8
  135. package/types/apps/src/implementation/schema.d.ts +108 -11
  136. package/types/apps/src/implementation/skills.d.ts +18 -24
  137. package/types/apps/src/implementation/sql.d.ts +71 -0
  138. package/types/apps/src/implementation/ui-account-notice.d.ts +9 -0
  139. package/types/apps/src/implementation/ui-auth.d.ts +1 -1
  140. package/types/apps/src/implementation/ui-client.d.ts +3 -3
  141. package/types/apps/src/implementation/ui-document.d.ts +5 -0
  142. package/types/apps/src/implementation/ui-errors.d.ts +1 -1
  143. package/types/apps/src/implementation/ui-serving.d.ts +28 -11
  144. package/types/apps/src/implementation/ui-watch.d.ts +1 -1
  145. package/types/apps/src/implementation/upstream-error.d.ts +17 -0
  146. package/types/apps/src/implementation/webhooks.d.ts +15 -6
  147. package/types/apps/src/implementation/workflow-context.d.ts +6 -2
  148. package/types/apps/src/implementation/workflows.d.ts +11 -4
  149. package/types/apps/src/index.d.ts +51 -16
  150. package/types/apps/src/mcp.d.ts +20 -1
  151. package/types/apps/src/openapi.d.ts +22 -1
  152. package/types/apps/src/react.d.ts +1 -1
  153. package/types/apps/src/skills.d.ts +10 -8
  154. package/types/apps/src/ui-serving.d.ts +1 -1
  155. package/types/telemetry/src/app-records.d.ts +42 -0
  156. package/types/telemetry/src/browser-operations.d.ts +2 -2
  157. package/types/telemetry/src/browser.d.ts +8 -3
  158. package/types/telemetry/src/config.d.ts +2 -2
  159. package/types/telemetry/src/index.d.ts +2 -1
  160. package/types/telemetry/src/layer.d.ts +10 -4
  161. package/types/telemetry/src/measurements.d.ts +1 -1
  162. package/types/telemetry/src/ownership.d.ts +60 -0
  163. package/types/telemetry/src/recorded-failure.d.ts +29 -0
  164. package/types/telemetry/src/relay.d.ts +16 -6
  165. package/types/telemetry/src/span-attributes.d.ts +17 -1
  166. package/types/telemetry/src/transport.d.ts +8 -1
  167. package/types/utils/src/api-error.d.ts +55 -0
  168. package/types/utils/src/connection-failure.d.ts +33 -0
  169. package/types/utils/src/legacy-keys.d.ts +20 -0
  170. package/types/utils/src/recorded-message.d.ts +18 -0
  171. package/types/utils/src/schema-definitions.d.ts +13 -0
  172. package/types/utils/src/user-facing-error.d.ts +83 -0
  173. package/js/chunk-27F7W2LG.js +0 -34
  174. package/js/chunk-EFAPIRVB.js +0 -299
  175. package/js/chunk-KRSCJDTW.js +0 -2668
  176. package/js/chunk-MKWZPDR6.js +0 -63
  177. package/js/chunk-N7YDVXYJ.js +0 -186
  178. package/js/chunk-NKLWZJLE.js +0 -172
  179. package/js/chunk-PJJ24GU7.js +0 -877
  180. package/js/chunk-PZB6T6KU.js +0 -19
  181. package/js/chunk-R3EV5FTO.js +0 -97
  182. package/js/chunk-TYVDBQSI.js +0 -242
  183. package/js/chunk-YBRC463S.js +0 -224
  184. package/js/chunk-Z2QY3YTF.js +0 -507
  185. package/js/chunk-ZQINWV4W.js +0 -630
  186. package/js/mcp/stdio.js +0 -128
  187. package/types/app-data/src/implementation/cursor.d.ts +0 -10
  188. package/types/app-data/src/implementation/index-key.d.ts +0 -7
  189. package/types/app-data/src/implementation/promise.d.ts +0 -68
  190. package/types/app-data/src/implementation/range.d.ts +0 -8
  191. package/types/app-data/src/implementation/schema.d.ts +0 -18
  192. package/types/app-data/src/implementation/sqlite.d.ts +0 -11
  193. package/types/app-data/src/index.d.ts +0 -4
  194. package/types/apps/src/contracts/storage.d.ts +0 -68
  195. package/types/apps/src/implementation/mcp-stdio.d.ts +0 -4
  196. package/types/apps/src/implementation/storage.d.ts +0 -15
  197. package/types/apps/src/mcp-stdio.d.ts +0 -5
package/js/host.js CHANGED
@@ -1,19 +1,23 @@
1
1
  import {
2
2
  createAppHandler
3
- } from "./chunk-RELFXUOO.js";
4
- import "./chunk-NKLWZJLE.js";
5
- import "./chunk-Z2QY3YTF.js";
6
- import "./chunk-IPI4MFSN.js";
7
- import "./chunk-TYVDBQSI.js";
8
- import "./chunk-ZQINWV4W.js";
9
- import "./chunk-GPFVWWDZ.js";
10
- import "./chunk-MKWZPDR6.js";
3
+ } from "./chunk-JCX2K2SI.js";
4
+ import "./chunk-UPTAFF6L.js";
5
+ import "./chunk-BKIQCV72.js";
6
+ import "./chunk-HLMJBE4T.js";
7
+ import "./chunk-PBGPES67.js";
8
+ import "./chunk-3BI34I5S.js";
9
+ import "./chunk-ZXG7RMCB.js";
10
+ import "./chunk-OIH73VFM.js";
11
11
  import {
12
+ CacheCommand,
13
+ CacheError,
14
+ CacheReply,
12
15
  ElicitationFailed,
13
16
  ElicitationReply,
14
17
  HostAccountsInvalid,
15
18
  HostInputInvalid,
16
19
  HostResponse,
20
+ InvocationTimingSink,
17
21
  ResolvedAccounts,
18
22
  TrustedToolApproval,
19
23
  WorkflowFailure,
@@ -21,30 +25,26 @@ import {
21
25
  WorkflowRun,
22
26
  WorkflowRunId,
23
27
  WorkflowRunPage
24
- } from "./chunk-KRSCJDTW.js";
25
- import "./chunk-N7YDVXYJ.js";
26
- import {
27
- CacheCommand,
28
- CacheError,
29
- CacheReply
30
- } from "./chunk-R3EV5FTO.js";
31
- import "./chunk-JU7VHODU.js";
28
+ } from "./chunk-2RGJMA7N.js";
29
+ import "./chunk-4PIQKACY.js";
30
+ import "./chunk-VAI3EVCS.js";
32
31
  import {
33
32
  collectTelemetry,
34
33
  withRemoteSpan
35
- } from "./chunk-ODEIDRGW.js";
36
- import "./chunk-57RKNWL2.js";
37
- import "./chunk-UK573G7W.js";
38
- import "./chunk-5T57N25Q.js";
39
- import "./chunk-PZB6T6KU.js";
40
- import "./chunk-27F7W2LG.js";
34
+ } from "./chunk-URKOTNDA.js";
35
+ import "./chunk-YDW7DX3A.js";
36
+ import "./chunk-OWN3DP2W.js";
37
+ import "./chunk-7HG422GB.js";
38
+ import "./chunk-DILSCQPJ.js";
39
+ import "./chunk-ACQXVKVQ.js";
41
40
  import {
42
41
  Cause_exports,
42
+ Clock_exports,
43
43
  Effect_exports,
44
44
  Redacted_exports,
45
45
  Scheduler_exports,
46
46
  Schema_exports
47
- } from "./chunk-CDL5PM2Q.js";
47
+ } from "./chunk-ZKDXML77.js";
48
48
  import "./chunk-CZ7CSFO4.js";
49
49
 
50
50
  // src/implementation/cache-session.ts
@@ -52,14 +52,17 @@ var isolatedCacheSession = (callback) => {
52
52
  const controller = new AbortController();
53
53
  const pending = /* @__PURE__ */ new Set();
54
54
  const cache = {
55
- transport: (command) => Effect_exports.tryPromise({
56
- try: () => callback(Schema_exports.encodeSync(CacheCommand)(command)),
57
- catch: () => new CacheError({ reason: "storage" })
58
- }).pipe(
59
- Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(CacheReply)),
60
- Effect_exports.mapError(() => new CacheError({ reason: "storage" })),
61
- Effect_exports.flatMap(
62
- (reply) => reply.ok ? Effect_exports.succeed(reply.value) : Effect_exports.fail(reply.error)
55
+ transport: (command) => (
56
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- the host's cache RPC
57
+ 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)
65
+ )
63
66
  )
64
67
  ),
65
68
  background: (task) => Effect_exports.gen(function* () {
@@ -97,14 +100,17 @@ var isolatedCacheSession = (callback) => {
97
100
  // src/implementation/workflow-rpc.ts
98
101
  var isolatedWorkflowExecution = (run, deliver, signal) => {
99
102
  const runId = Schema_exports.decodeUnknownSync(WorkflowRunId)(run);
100
- const request = (input, callback) => Effect_exports.tryPromise({
101
- try: () => deliver(input, callback),
102
- catch: () => new WorkflowFailure({ reason: "engine", retryable: true })
103
- }).pipe(
104
- Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(WorkflowRpcResult)),
105
- Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true })),
106
- Effect_exports.flatMap(
107
- (reply) => reply.ok ? Effect_exports.succeed(reply.value) : Effect_exports.fail(reply.error)
103
+ const request = (input, callback) => (
104
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- the host's workflow RPC
105
+ Effect_exports.tryPromise({
106
+ try: () => deliver(input, callback),
107
+ catch: () => new WorkflowFailure({ reason: "engine", retryable: true })
108
+ }).pipe(
109
+ Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(WorkflowRpcResult)),
110
+ Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true })),
111
+ Effect_exports.flatMap(
112
+ (reply) => reply.ok ? Effect_exports.succeed(reply.value) : Effect_exports.fail(reply.error)
113
+ )
108
114
  )
109
115
  );
110
116
  return {
@@ -145,35 +151,53 @@ var isolatedWorkflowExecution = (run, deliver, signal) => {
145
151
  invoke: (input) => request({ operation: "invoke", ...input })
146
152
  };
147
153
  };
154
+ var unanswered = ({ operation, key }, unread) => {
155
+ const cause = unread ? `This app's apps release could not read Executor's reply to ctx.workflows.${operation}; redeploy the app on the current apps release.` : `Executor did not answer ctx.workflows.${operation}.`;
156
+ switch (operation) {
157
+ case "start":
158
+ return new WorkflowFailure({
159
+ reason: "engine",
160
+ retryable: false,
161
+ message: key === void 0 ? `${cause} The run may have started. This start had no key, so check ctx.workflows.list before starting again: another start creates another run.` : `${cause} The run may have started. Start it again with the same key and input, which returns the run if it exists, or check ctx.workflows.list before starting another.`
162
+ });
163
+ case "terminate":
164
+ return new WorkflowFailure({
165
+ reason: "engine",
166
+ retryable: false,
167
+ message: `${cause} The run may have stopped. Read it with ctx.workflows.get before terminating it again.`
168
+ });
169
+ default:
170
+ return new WorkflowFailure({
171
+ reason: "engine",
172
+ retryable: !unread,
173
+ message: unread ? cause : `${cause} Try again.`
174
+ });
175
+ }
176
+ };
148
177
  var isolatedWorkflowControls = (deliver) => {
149
- const request = (input) => Effect_exports.tryPromise({
150
- try: () => deliver(input),
151
- catch: () => new WorkflowFailure({ reason: "engine", retryable: true })
152
- }).pipe(
153
- Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(WorkflowRpcResult)),
154
- Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true })),
155
- Effect_exports.flatMap(
156
- (result) => result.ok ? Effect_exports.succeed(result.value) : Effect_exports.fail(result.error)
157
- )
158
- );
159
- const run = (input) => request(input).pipe(
160
- Effect_exports.flatMap(
161
- (value) => Schema_exports.decodeUnknownEffect(WorkflowRun)(value).pipe(
162
- Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true }))
163
- )
164
- )
165
- );
166
- return {
167
- start: (input) => run({ operation: "start", ...input }),
168
- get: (input) => run({ operation: "get", ...input }),
169
- terminate: (input) => run({ operation: "terminate", ...input }),
170
- list: (input) => request({ operation: "list", ...input }).pipe(
178
+ const request = (input, schema) => (
179
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- the host's workflow RPC
180
+ Effect_exports.tryPromise({
181
+ try: () => deliver(input),
182
+ catch: () => unanswered(input, false)
183
+ }).pipe(
171
184
  Effect_exports.flatMap(
172
- (value) => Schema_exports.decodeUnknownEffect(WorkflowRunPage)(value).pipe(
173
- Effect_exports.mapError(() => new WorkflowFailure({ reason: "engine", retryable: true }))
185
+ (reply) => Schema_exports.decodeUnknownEffect(WorkflowRpcResult)(reply).pipe(
186
+ Effect_exports.mapError(() => unanswered(input, true))
174
187
  )
188
+ ),
189
+ Effect_exports.flatMap(
190
+ (result) => result.ok ? Schema_exports.decodeUnknownEffect(schema)(result.value).pipe(
191
+ Effect_exports.mapError(() => unanswered(input, true))
192
+ ) : Effect_exports.fail(result.error)
175
193
  )
176
194
  )
195
+ );
196
+ return {
197
+ start: (input) => request({ operation: "start", ...input }, WorkflowRun),
198
+ get: (input) => request({ operation: "get", ...input }, WorkflowRun),
199
+ terminate: (input) => request({ operation: "terminate", ...input }, WorkflowRun),
200
+ list: (input) => request({ operation: "list", ...input }, WorkflowRunPage)
177
201
  };
178
202
  };
179
203
 
@@ -202,17 +226,27 @@ var createAppHandler2 = (app) => {
202
226
  );
203
227
  };
204
228
  };
229
+ var isolatedClock = () => Effect_exports.runSync(Clock_exports.currentTimeNanos);
205
230
  var createIsolatedAppHandler = (app) => {
206
231
  const handler = createAppHandler(app);
207
232
  return (request, context) => Effect_exports.runPromise(
208
233
  Effect_exports.gen(function* () {
234
+ let timing;
209
235
  const { value, telemetry } = yield* collectTelemetry(
210
- handler(request, context).pipe(withRemoteSpan(request, "app.dispatch"))
236
+ handler(request, context).pipe(
237
+ withRemoteSpan(request, "app.dispatch"),
238
+ Effect_exports.provideService(InvocationTimingSink, (reported) => {
239
+ timing = reported;
240
+ })
241
+ )
211
242
  );
212
243
  const body = yield* Effect_exports.promise(() => value.json()).pipe(
213
244
  Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(HostResponse))
214
245
  );
215
- return Response.json({ ...body, telemetry }, { status: value.status });
246
+ return Response.json(
247
+ { ...body, telemetry, ...timing === void 0 ? {} : { timing } },
248
+ { status: value.status }
249
+ );
216
250
  }),
217
251
  {
218
252
  signal: request.signal,
@@ -222,20 +256,23 @@ var createIsolatedAppHandler = (app) => {
222
256
  }
223
257
  );
224
258
  };
225
- var isolatedElicitation = (deliver, lifetime) => (request) => Effect_exports.tryPromise({
226
- try: () => deliver(request),
227
- catch: () => {
228
- lifetime.abort();
229
- return new ElicitationFailed({ reason: "transport" });
230
- }
231
- }).pipe(
232
- Effect_exports.flatMap(
233
- (reply) => Schema_exports.decodeUnknownEffect(ElicitationReply)(reply).pipe(
234
- Effect_exports.mapError(() => new ElicitationFailed({ reason: "transport" }))
259
+ var isolatedElicitation = (deliver, lifetime) => (request) => (
260
+ // oxlint-disable-next-line executor/authored-code-through-adapter -- the host's elicitation RPC
261
+ Effect_exports.tryPromise({
262
+ try: () => deliver(request),
263
+ catch: () => {
264
+ lifetime.abort();
265
+ return new ElicitationFailed({ reason: "transport" });
266
+ }
267
+ }).pipe(
268
+ Effect_exports.flatMap(
269
+ (reply) => Schema_exports.decodeUnknownEffect(ElicitationReply)(reply).pipe(
270
+ Effect_exports.mapError(() => new ElicitationFailed({ reason: "transport" }))
271
+ )
272
+ ),
273
+ Effect_exports.flatMap(
274
+ (reply) => reply.ok ? Effect_exports.succeed(reply.response) : Effect_exports.fail(reply.error)
235
275
  )
236
- ),
237
- Effect_exports.flatMap(
238
- (reply) => reply.ok ? Effect_exports.succeed(reply.response) : Effect_exports.fail(reply.error)
239
276
  )
240
277
  );
241
278
  export {
@@ -243,6 +280,7 @@ export {
243
280
  createIsolatedAppHandler,
244
281
  hostContext,
245
282
  isolatedCacheSession,
283
+ isolatedClock,
246
284
  isolatedElicitation,
247
285
  isolatedWorkflowControls,
248
286
  isolatedWorkflowExecution