apps 0.0.1-beta.10 → 0.0.1-beta.100
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.
- package/README.md +60 -42
- package/framework-reference.json +1 -1
- package/js/{chunk-Z5M2LQOZ.js → chunk-2CURR5Y7.js} +113 -58
- package/js/{chunk-72JNVHPK.js → chunk-2LSGC7XY.js} +4 -3
- package/js/{chunk-JU7VHODU.js → chunk-4PIQKACY.js} +65 -10
- package/js/chunk-4UPC36ZL.js +5185 -0
- package/js/{chunk-VFZKSM3T.js → chunk-4X2UI4R2.js} +3 -3
- package/js/chunk-5C6RAGAS.js +335 -0
- package/js/{chunk-KUMBKVJD.js → chunk-62NVUKED.js} +2 -2
- package/js/chunk-74H25C4X.js +95 -0
- package/js/chunk-7HG422GB.js +90 -0
- package/js/chunk-7STIP5CS.js +171 -0
- package/js/{chunk-UK573G7W.js → chunk-ACQXVKVQ.js} +87 -51
- package/js/{chunk-IJX4CYZO.js → chunk-DILSCQPJ.js} +228 -264
- package/js/chunk-ILYCJ3HV.js +449 -0
- package/js/chunk-K6TSCYAO.js +712 -0
- package/js/{chunk-M3B3DE4K.js → chunk-KLSEU35Y.js} +463 -218
- package/js/chunk-OD3KFKZD.js +1617 -0
- package/js/chunk-OWN3DP2W.js +88 -0
- package/js/{chunk-IPI4MFSN.js → chunk-PBGPES67.js} +2 -2
- package/js/{chunk-FL2QR3XW.js → chunk-QI66R4FP.js} +355 -76
- package/js/{chunk-V5KNQVCT.js → chunk-RN4YB4JT.js} +931 -289
- package/js/{chunk-ODEIDRGW.js → chunk-URKOTNDA.js} +795 -176
- package/js/{chunk-5T57N25Q.js → chunk-VAI3EVCS.js} +643 -69
- package/js/chunk-VCYWAA4N.js +49 -0
- package/js/{chunk-57RKNWL2.js → chunk-YDW7DX3A.js} +4 -4
- package/js/{chunk-RFVIONFX.js → chunk-YWVISRZD.js} +123 -44
- package/js/{chunk-CDL5PM2Q.js → chunk-ZKDXML77.js} +19239 -18404
- package/js/client.js +148 -84
- package/js/contracts.js +150 -21
- package/js/effect.js +18 -19
- package/js/{es-APDZKREY.js → es-DIULA3ZF.js} +62 -1659
- package/js/graphql.js +49 -40
- package/js/host.js +85 -62
- package/js/index.js +212 -98
- package/js/mcp/effect.js +21 -21
- package/js/mcp.js +84 -57
- package/js/openapi.js +4189 -1411
- package/js/react.js +2 -3
- package/js/skills/effect.js +6 -3
- package/js/skills.js +208 -81
- package/js/storage/facet.js +1 -540
- package/js/ui/auth/contracts.js +2 -2
- package/js/ui/auth.js +5 -5
- package/js/ui/contracts.js +9 -8
- package/js/ui/serving.js +8609 -228
- package/package.json +3 -8
- package/runtime.json +1 -1
- package/types/app-cache/src/contracts/cache.d.ts +18 -0
- package/types/app-cache/src/index.d.ts +34 -2
- package/types/apps/src/contracts/api-response-error.d.ts +4 -0
- package/types/apps/src/contracts/app.d.ts +56 -11
- package/types/apps/src/contracts/cache.d.ts +20 -0
- package/types/apps/src/contracts/context.d.ts +60 -17
- package/types/apps/src/contracts/elicitation.d.ts +23 -7
- package/types/apps/src/contracts/events.d.ts +94 -0
- package/types/apps/src/contracts/failure.d.ts +30 -1
- package/types/apps/src/contracts/graphql.d.ts +2 -1
- package/types/apps/src/contracts/host.d.ts +1456 -20
- package/types/apps/src/contracts/icons.d.ts +28 -0
- package/types/apps/src/contracts/live.d.ts +2 -0
- package/types/apps/src/contracts/mcp.d.ts +81 -20
- package/types/apps/src/contracts/network.d.ts +120 -0
- package/types/apps/src/contracts/openapi-compile.d.ts +82 -3
- package/types/apps/src/contracts/openapi-document.d.ts +1 -1
- package/types/apps/src/contracts/openapi.d.ts +41 -9
- package/types/apps/src/contracts/operations.d.ts +14 -7
- package/types/apps/src/contracts/placement.d.ts +102 -0
- package/types/apps/src/contracts/protocol-version.d.ts +2 -2
- package/types/apps/src/contracts/protocols/1.d.ts +733 -81
- package/types/apps/src/contracts/protocols/10.d.ts +1450 -0
- package/types/apps/src/contracts/protocols/11.d.ts +1149 -0
- package/types/apps/src/contracts/protocols/12.d.ts +3310 -0
- package/types/apps/src/contracts/protocols/2.d.ts +69 -26
- package/types/apps/src/contracts/protocols/3.d.ts +133 -33
- package/types/apps/src/contracts/protocols/4.d.ts +122 -45
- package/types/apps/src/contracts/protocols/5.d.ts +157 -47
- package/types/apps/src/contracts/protocols/6.d.ts +1629 -0
- package/types/apps/src/contracts/protocols/7.d.ts +1785 -0
- package/types/apps/src/contracts/protocols/8.d.ts +1182 -0
- package/types/apps/src/contracts/protocols/9.d.ts +1104 -0
- package/types/apps/src/contracts/protocols/current.d.ts +6857 -0
- package/types/apps/src/contracts/protocols/oauth-6.d.ts +74 -0
- package/types/apps/src/contracts/protocols/oauth.d.ts +134 -0
- package/types/apps/src/contracts/provider-error.d.ts +9 -0
- package/types/apps/src/contracts/provider.d.ts +90 -6
- package/types/apps/src/contracts/schedules.d.ts +7 -1
- package/types/apps/src/contracts/schema.d.ts +21 -0
- package/types/apps/src/contracts/shared-catalog.d.ts +11 -0
- package/types/apps/src/contracts/skills.d.ts +50 -13
- package/types/apps/src/contracts/sql.d.ts +63 -0
- package/types/apps/src/contracts/ui.d.ts +70 -30
- package/types/apps/src/contracts/webhooks.d.ts +24 -7
- package/types/apps/src/contracts/workflows.d.ts +56 -34
- package/types/apps/src/facet.d.ts +4 -5
- package/types/apps/src/host.d.ts +5 -0
- package/types/apps/src/implementation/account-router.d.ts +4 -3
- package/types/apps/src/implementation/app.d.ts +41 -14
- package/types/apps/src/implementation/authoring.d.ts +25 -5
- package/types/apps/src/implementation/browser-scripts.gen.d.ts +6 -0
- package/types/apps/src/implementation/cache.d.ts +29 -2
- package/types/apps/src/implementation/catalog-cache.d.ts +35 -4
- package/types/apps/src/implementation/elicitation.d.ts +18 -15
- package/types/apps/src/implementation/events.d.ts +64 -0
- package/types/apps/src/implementation/failure-detail.d.ts +28 -5
- package/types/apps/src/implementation/graphql-catalog.d.ts +3 -3
- package/types/apps/src/implementation/graphql.d.ts +4 -3
- package/types/apps/src/implementation/input-problems.d.ts +6 -2
- package/types/apps/src/implementation/invocation-timing.d.ts +18 -0
- package/types/apps/src/implementation/live.d.ts +2 -2
- package/types/apps/src/implementation/mcp-call.d.ts +6 -5
- package/types/apps/src/implementation/mcp-catalog.d.ts +6 -4
- package/types/apps/src/implementation/mcp-client.d.ts +17 -9
- package/types/apps/src/implementation/mcp-tools.d.ts +2 -1
- package/types/apps/src/implementation/mcp.d.ts +20 -9
- package/types/apps/src/implementation/network.d.ts +16 -0
- package/types/apps/src/implementation/openapi-compile.d.ts +28 -7
- package/types/apps/src/implementation/openapi-document.d.ts +46 -19
- package/types/apps/src/implementation/openapi-names.d.ts +9 -4
- package/types/apps/src/implementation/openapi-request.d.ts +10 -2
- package/types/apps/src/implementation/openapi-source.d.ts +23 -1
- package/types/apps/src/implementation/openapi-upgrade.d.ts +4 -0
- package/types/apps/src/implementation/operations.d.ts +58 -7
- package/types/apps/src/implementation/optimistic.d.ts +1 -1
- package/types/apps/src/implementation/placement.d.ts +60 -0
- package/types/apps/src/implementation/protocol-operations.d.ts +3 -0
- package/types/apps/src/implementation/provider-error.d.ts +28 -1
- package/types/apps/src/implementation/provider.d.ts +19 -4
- package/types/apps/src/implementation/query-commit.d.ts +1 -1
- package/types/apps/src/implementation/router-catalog.d.ts +20 -18
- package/types/apps/src/implementation/router.d.ts +24 -5
- package/types/apps/src/implementation/runtime-yield.d.ts +7 -0
- package/types/apps/src/implementation/schedules.d.ts +39 -8
- package/types/apps/src/implementation/schema.d.ts +108 -11
- package/types/apps/src/implementation/skills.d.ts +18 -24
- package/types/apps/src/implementation/sql.d.ts +71 -0
- package/types/apps/src/implementation/ui-account-notice.d.ts +9 -0
- package/types/apps/src/implementation/ui-auth.d.ts +1 -1
- package/types/apps/src/implementation/ui-client.d.ts +3 -3
- package/types/apps/src/implementation/ui-document.d.ts +5 -0
- package/types/apps/src/implementation/ui-errors.d.ts +1 -1
- package/types/apps/src/implementation/ui-serving.d.ts +28 -11
- package/types/apps/src/implementation/ui-watch.d.ts +1 -1
- package/types/apps/src/implementation/upstream-error.d.ts +7 -0
- package/types/apps/src/implementation/webhooks.d.ts +15 -6
- package/types/apps/src/implementation/workflow-context.d.ts +6 -2
- package/types/apps/src/implementation/workflows.d.ts +11 -4
- package/types/apps/src/index.d.ts +68 -19
- package/types/apps/src/mcp.d.ts +20 -1
- package/types/apps/src/openapi.d.ts +6 -1
- package/types/apps/src/react.d.ts +1 -1
- package/types/apps/src/skills.d.ts +10 -8
- package/types/apps/src/ui-serving.d.ts +1 -1
- package/types/telemetry/src/app-records.d.ts +42 -0
- package/types/telemetry/src/browser-operations.d.ts +2 -2
- package/types/telemetry/src/browser.d.ts +8 -3
- package/types/telemetry/src/config.d.ts +2 -2
- package/types/telemetry/src/index.d.ts +2 -1
- package/types/telemetry/src/layer.d.ts +10 -4
- package/types/telemetry/src/measurements.d.ts +1 -1
- package/types/telemetry/src/ownership.d.ts +60 -0
- package/types/telemetry/src/recorded-failure.d.ts +29 -0
- package/types/telemetry/src/relay.d.ts +16 -6
- package/types/telemetry/src/span-attributes.d.ts +17 -1
- package/types/telemetry/src/transport.d.ts +8 -1
- package/types/utils/src/api-error.d.ts +55 -0
- package/types/utils/src/connection-failure.d.ts +33 -0
- package/types/utils/src/legacy-keys.d.ts +20 -0
- package/types/utils/src/recorded-message.d.ts +18 -0
- package/types/utils/src/schema-definitions.d.ts +13 -0
- package/types/utils/src/user-facing-error.d.ts +83 -0
- package/js/chunk-27F7W2LG.js +0 -34
- package/js/chunk-CRDWFA74.js +0 -299
- package/js/chunk-EPT3ZP52.js +0 -224
- package/js/chunk-MKWZPDR6.js +0 -63
- package/js/chunk-N7YDVXYJ.js +0 -186
- package/js/chunk-NKLWZJLE.js +0 -172
- package/js/chunk-PJJ24GU7.js +0 -877
- package/js/chunk-PZB6T6KU.js +0 -19
- package/js/chunk-R3EV5FTO.js +0 -97
- package/js/chunk-WLE7WX2U.js +0 -2645
- package/js/chunk-YXQHV65J.js +0 -242
- package/js/chunk-ZQINWV4W.js +0 -630
- package/js/mcp/stdio.js +0 -128
- package/types/app-data/src/implementation/cursor.d.ts +0 -10
- package/types/app-data/src/implementation/index-key.d.ts +0 -7
- package/types/app-data/src/implementation/promise.d.ts +0 -68
- package/types/app-data/src/implementation/range.d.ts +0 -8
- package/types/app-data/src/implementation/schema.d.ts +0 -18
- package/types/app-data/src/implementation/sqlite.d.ts +0 -11
- package/types/app-data/src/index.d.ts +0 -4
- package/types/apps/src/contracts/storage.d.ts +0 -68
- package/types/apps/src/implementation/mcp-stdio.d.ts +0 -4
- package/types/apps/src/implementation/storage.d.ts +0 -15
- package/types/apps/src/mcp-stdio.d.ts +0 -5
|
@@ -1,48 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
fromPromise
|
|
3
|
+
} from "./chunk-7STIP5CS.js";
|
|
1
4
|
import {
|
|
2
5
|
HostedTool,
|
|
3
6
|
RouterKey,
|
|
4
7
|
RouterMeta,
|
|
5
8
|
reservedRouterKeys
|
|
6
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4UPC36ZL.js";
|
|
7
10
|
import {
|
|
8
|
-
decoderOf
|
|
9
|
-
|
|
11
|
+
decoderOf,
|
|
12
|
+
schemaArgument
|
|
13
|
+
} from "./chunk-VAI3EVCS.js";
|
|
10
14
|
import {
|
|
11
15
|
Effect_exports,
|
|
12
16
|
Schema_exports
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
|
|
15
|
-
// src/implementation/authoring.ts
|
|
16
|
-
var NativeCallback = /* @__PURE__ */ Symbol("apps.NativeCallback");
|
|
17
|
-
var fromPromise = (callback) => (...args) => {
|
|
18
|
-
if (NativeCallback in callback) {
|
|
19
|
-
const native = callback[NativeCallback];
|
|
20
|
-
return native(...args);
|
|
21
|
-
}
|
|
22
|
-
return Effect_exports.tryPromise({ try: () => callback(...args), catch: (error) => error });
|
|
23
|
-
};
|
|
24
|
-
var toPromise = (operation, signal) => {
|
|
25
|
-
const native = (...args) => Effect_exports.suspend(() => {
|
|
26
|
-
if (signal === void 0) return operation(...args);
|
|
27
|
-
if (signal.aborted) return Effect_exports.interrupt;
|
|
28
|
-
const cancelled = Effect_exports.callback((resume) => {
|
|
29
|
-
if (signal.aborted) {
|
|
30
|
-
resume(Effect_exports.interrupt);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const abort = () => resume(Effect_exports.interrupt);
|
|
34
|
-
signal.addEventListener("abort", abort, { once: true });
|
|
35
|
-
return Effect_exports.sync(() => signal.removeEventListener("abort", abort));
|
|
36
|
-
});
|
|
37
|
-
return Effect_exports.raceFirst(
|
|
38
|
-
cancelled,
|
|
39
|
-
Effect_exports.suspend(() => operation(...args))
|
|
40
|
-
);
|
|
41
|
-
});
|
|
42
|
-
return Object.assign((...args) => Effect_exports.runPromise(native(...args)), {
|
|
43
|
-
[NativeCallback]: native
|
|
44
|
-
});
|
|
45
|
-
};
|
|
17
|
+
} from "./chunk-ZKDXML77.js";
|
|
46
18
|
|
|
47
19
|
// src/implementation/operations.ts
|
|
48
20
|
var NativeOperation = /* @__PURE__ */ Symbol("apps.Operation");
|
|
@@ -64,31 +36,38 @@ var operationOptions = (options) => {
|
|
|
64
36
|
...options._meta === void 0 ? {} : { _meta: options._meta },
|
|
65
37
|
input: decoderOf(options.input),
|
|
66
38
|
...approval === void 0 ? {} : {
|
|
67
|
-
approval: (context) =>
|
|
39
|
+
approval: (context) => fromPromise(async () => approval(context), "approval")()
|
|
68
40
|
}
|
|
69
41
|
};
|
|
70
42
|
};
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
43
|
+
var approvedOperation = (operation, approval) => {
|
|
44
|
+
const copy = Object.defineProperties({}, Object.getOwnPropertyDescriptors(operation));
|
|
45
|
+
return Object.defineProperty(copy, "approval", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
value: (context) => fromPromise(async () => approval(context), "approval")()
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
var withApproval = (operation, approval) => (
|
|
51
|
+
// SAFETY: `Approved` is a type-only mark; the native operation now carries the approval.
|
|
52
|
+
{
|
|
53
|
+
...operation,
|
|
54
|
+
[NativeOperation]: approvedOperation(operation[NativeOperation], approval)
|
|
76
55
|
}
|
|
77
|
-
|
|
56
|
+
);
|
|
57
|
+
var toolAnnotations = (operation) => nativeOperation(operation)?.annotations;
|
|
78
58
|
var make = (kind, options, run) => operationDeclaration({
|
|
79
|
-
...operationOptions(options),
|
|
59
|
+
...operationOptions({ ...options, input: schemaArgument(options.input, `The ${kind} input`) }),
|
|
80
60
|
kind,
|
|
81
61
|
// The host always validates JSON serialization, even without a stronger output declaration.
|
|
82
|
-
...options.output === void 0 ? {} : { output: decoderOf(options.output) },
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
try: () => run(context, input),
|
|
87
|
-
catch: (error) => error
|
|
88
|
-
})
|
|
62
|
+
...options.output === void 0 ? {} : { output: decoderOf(schemaArgument(options.output, `The ${kind} output`)) },
|
|
63
|
+
// SAFETY: defineApp checks the handler context against its requirements.
|
|
64
|
+
// The host validates account bindings and creates the matching storage facade.
|
|
65
|
+
run: (context, input) => fromPromise(run, "handler")(context, input)
|
|
89
66
|
});
|
|
90
67
|
var query = (options, run) => make("query", options, run);
|
|
91
|
-
|
|
68
|
+
function mutation(options, run) {
|
|
69
|
+
return make("mutation", options, run);
|
|
70
|
+
}
|
|
92
71
|
|
|
93
72
|
// src/implementation/router.ts
|
|
94
73
|
var routerDeclaration = (node) => ({
|
|
@@ -133,14 +112,14 @@ var dynamicRouter = (source) => {
|
|
|
133
112
|
return routerDeclaration({
|
|
134
113
|
kind: "dynamic",
|
|
135
114
|
...meta === void 0 ? {} : {
|
|
136
|
-
meta: () => fromPromise(async () => meta())().pipe(
|
|
115
|
+
meta: () => fromPromise(async () => meta(), "router")().pipe(
|
|
137
116
|
Effect_exports.flatMap((options) => Schema_exports.decodeUnknownEffect(RouterMeta)(options))
|
|
138
117
|
)
|
|
139
118
|
},
|
|
140
|
-
list: () => fromPromise(async () => source.list())().pipe(
|
|
119
|
+
list: () => fromPromise(async () => source.list(), "router")().pipe(
|
|
141
120
|
Effect_exports.flatMap(Schema_exports.decodeUnknownEffect(Schema_exports.Array(HostedTool)))
|
|
142
121
|
),
|
|
143
|
-
resolve: (name) => fromPromise(async () => source.resolve(name))().pipe(
|
|
122
|
+
resolve: (name) => fromPromise(async () => source.resolve(name), "router")().pipe(
|
|
144
123
|
Effect_exports.map((value) => {
|
|
145
124
|
if (value === void 0) return void 0;
|
|
146
125
|
const operation = nativeOperation(value);
|
|
@@ -189,13 +168,87 @@ var declaredOperations = (root, path = "") => Object.entries(root?.children ?? {
|
|
|
189
168
|
return [];
|
|
190
169
|
}
|
|
191
170
|
});
|
|
171
|
+
var withApprovals = (source, policy) => {
|
|
172
|
+
const native = nativeRouter(source);
|
|
173
|
+
if (native === void 0) throw new Error("withApprovals expects a router");
|
|
174
|
+
const operation = (node, name) => {
|
|
175
|
+
const approval = policy(operationDeclaration(node), name);
|
|
176
|
+
return approval === void 0 ? node : approvedOperation(node, approval);
|
|
177
|
+
};
|
|
178
|
+
const child = (node, name) => {
|
|
179
|
+
switch (node.kind) {
|
|
180
|
+
case "query":
|
|
181
|
+
case "mutation":
|
|
182
|
+
return operation(node, name);
|
|
183
|
+
case "router":
|
|
184
|
+
case "dynamic":
|
|
185
|
+
return walk(node, name);
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
const walk = (node, path) => node.kind === "dynamic" ? {
|
|
189
|
+
...node,
|
|
190
|
+
resolve: (name) => node.resolve(name).pipe(
|
|
191
|
+
Effect_exports.flatMap(
|
|
192
|
+
(resolved) => resolved === void 0 ? Effect_exports.succeed(void 0) : Effect_exports.try({
|
|
193
|
+
try: () => operation(resolved, joinPath(path, name)),
|
|
194
|
+
catch: (error) => error
|
|
195
|
+
})
|
|
196
|
+
)
|
|
197
|
+
)
|
|
198
|
+
} : {
|
|
199
|
+
...node,
|
|
200
|
+
children: Object.fromEntries(
|
|
201
|
+
Object.entries(node.children).map(([key, value]) => [
|
|
202
|
+
key,
|
|
203
|
+
child(value, joinPath(path, key))
|
|
204
|
+
])
|
|
205
|
+
)
|
|
206
|
+
};
|
|
207
|
+
return routerDeclaration(walk(native, ""));
|
|
208
|
+
};
|
|
209
|
+
var renameTools = (source, rename) => {
|
|
210
|
+
const native = nativeRouter(source);
|
|
211
|
+
if (native?.kind !== "dynamic") throw new Error("renameTools expects a protocol router");
|
|
212
|
+
const exposed = (tools) => {
|
|
213
|
+
const seen = /* @__PURE__ */ new Set();
|
|
214
|
+
return tools.flatMap((tool) => {
|
|
215
|
+
const name = rename(tool.name);
|
|
216
|
+
if (name === void 0 || seen.has(name)) return [];
|
|
217
|
+
seen.add(name);
|
|
218
|
+
return [{ ...tool, name, source: tool.name }];
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
const listed = native.summaries ?? native.list;
|
|
222
|
+
const original = (name) => listed().pipe(Effect_exports.map((tools) => exposed(tools).find((tool) => tool.name === name)?.source));
|
|
223
|
+
const strip = ({
|
|
224
|
+
source: _source,
|
|
225
|
+
...tool
|
|
226
|
+
}) => tool;
|
|
227
|
+
return routerDeclaration({
|
|
228
|
+
...native,
|
|
229
|
+
list: () => native.list().pipe(Effect_exports.map((tools) => exposed(tools).map(strip))),
|
|
230
|
+
...native.summaries === void 0 ? {} : {
|
|
231
|
+
summaries: () => listed().pipe(Effect_exports.map((tools) => exposed(tools).map(strip)))
|
|
232
|
+
},
|
|
233
|
+
describe: (name) => original(name).pipe(
|
|
234
|
+
Effect_exports.flatMap(
|
|
235
|
+
(found) => found === void 0 ? Effect_exports.succeed(void 0) : native.describe?.(found) ?? native.list().pipe(Effect_exports.map((tools) => tools.find((tool) => tool.name === found)))
|
|
236
|
+
),
|
|
237
|
+
Effect_exports.map((tool) => tool === void 0 ? void 0 : { ...tool, name })
|
|
238
|
+
),
|
|
239
|
+
resolve: (name) => original(name).pipe(
|
|
240
|
+
Effect_exports.flatMap(
|
|
241
|
+
(found) => found === void 0 ? Effect_exports.succeed(void 0) : native.resolve(found)
|
|
242
|
+
)
|
|
243
|
+
)
|
|
244
|
+
});
|
|
245
|
+
};
|
|
192
246
|
|
|
193
247
|
export {
|
|
194
|
-
fromPromise,
|
|
195
|
-
toPromise,
|
|
196
248
|
operationDeclaration,
|
|
197
249
|
nativeOperation,
|
|
198
250
|
withApproval,
|
|
251
|
+
toolAnnotations,
|
|
199
252
|
query,
|
|
200
253
|
mutation,
|
|
201
254
|
routerDeclaration,
|
|
@@ -205,5 +258,7 @@ export {
|
|
|
205
258
|
dynamicRouter,
|
|
206
259
|
joinPath,
|
|
207
260
|
locate,
|
|
208
|
-
declaredOperations
|
|
261
|
+
declaredOperations,
|
|
262
|
+
withApprovals,
|
|
263
|
+
renameTools
|
|
209
264
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fixedRouter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QI66R4FP.js";
|
|
4
4
|
import {
|
|
5
5
|
nativeOperation,
|
|
6
6
|
operationDeclaration,
|
|
7
7
|
routerDeclaration
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-2CURR5Y7.js";
|
|
9
9
|
|
|
10
10
|
// src/implementation/protocol-operations.ts
|
|
11
11
|
var protocolOperations = (operations, kinds = {}) => {
|
|
@@ -18,10 +18,11 @@ var protocolOperations = (operations, kinds = {}) => {
|
|
|
18
18
|
...operation.annotations === void 0 ? {} : { annotations: operation.annotations },
|
|
19
19
|
...operation._meta === void 0 ? {} : { _meta: operation._meta },
|
|
20
20
|
input: operation.input,
|
|
21
|
+
...operation.output === void 0 ? {} : { output: operation.output },
|
|
21
22
|
run: operation.run
|
|
22
23
|
};
|
|
23
24
|
const output = Object.getOwnPropertyDescriptor(operation, "outputSchema");
|
|
24
|
-
const withOutput = (target) => output === void 0 || output.get === void 0 && output.value === void 0 ? target : Object.defineProperty(target, "outputSchema", { ...output, enumerable: true });
|
|
25
|
+
const withOutput = (target) => operation.output !== void 0 || output === void 0 || output.get === void 0 && output.value === void 0 ? target : Object.defineProperty(target, "outputSchema", { ...output, enumerable: true });
|
|
25
26
|
declared[name] = operationDeclaration(withOutput({ ...native, kind }));
|
|
26
27
|
}
|
|
27
28
|
return declared;
|
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
import {
|
|
2
|
+
RecordedMessage
|
|
3
|
+
} from "./chunk-OWN3DP2W.js";
|
|
4
|
+
import {
|
|
5
|
+
SchemaGetter_exports,
|
|
2
6
|
Schema_exports
|
|
3
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZKDXML77.js";
|
|
8
|
+
|
|
9
|
+
// ../utils/src/api-error.ts
|
|
10
|
+
var MessageField = Schema_exports.String.pipe(
|
|
11
|
+
Schema_exports.decodeTo(Schema_exports.optionalKey(Schema_exports.String), {
|
|
12
|
+
decode: SchemaGetter_exports.omit(),
|
|
13
|
+
encode: SchemaGetter_exports.passthrough()
|
|
14
|
+
})
|
|
15
|
+
);
|
|
16
|
+
function withFields(definition) {
|
|
17
|
+
const fields = definition.fields;
|
|
18
|
+
const message = definition.message;
|
|
19
|
+
const documentation = typeof message === "string" ? { description: message } : {};
|
|
20
|
+
const DefinedError = Schema_exports.Error(definition.tag)(
|
|
21
|
+
Schema_exports.TaggedStruct(definition.tag, { ...fields, message: MessageField }).annotate(
|
|
22
|
+
documentation
|
|
23
|
+
),
|
|
24
|
+
{ httpApiStatus: definition.status, ...documentation }
|
|
25
|
+
);
|
|
26
|
+
const recorded = definition.recorded ?? (typeof message === "string" ? () => message : void 0);
|
|
27
|
+
Object.defineProperties(DefinedError.prototype, {
|
|
28
|
+
message: {
|
|
29
|
+
get() {
|
|
30
|
+
return typeof message === "string" ? message : message(this);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
...recorded === void 0 ? {} : {
|
|
34
|
+
[RecordedMessage]: {
|
|
35
|
+
get() {
|
|
36
|
+
return recorded(this);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return DefinedError;
|
|
42
|
+
}
|
|
43
|
+
function define(definition) {
|
|
44
|
+
return "fields" in definition ? withFields(definition) : withFields({ ...definition, fields: {} });
|
|
45
|
+
}
|
|
46
|
+
var ApiError = { define };
|
|
4
47
|
|
|
5
48
|
// src/contracts/skills.ts
|
|
6
49
|
var SkillFilePath = Schema_exports.NonEmptyString.check(
|
|
@@ -45,9 +88,18 @@ var AppSkillSource = Schema_exports.Struct({
|
|
|
45
88
|
)
|
|
46
89
|
)
|
|
47
90
|
});
|
|
48
|
-
var
|
|
49
|
-
|
|
50
|
-
{
|
|
91
|
+
var skillDefinitionFailures = {
|
|
92
|
+
files: (file) => `The skill files of \u201C${file}\u201D are invalid: each needs a unique relative path, text content and a SKILL.md document.`,
|
|
93
|
+
directory: (file) => `\u201C${file}\u201D is not a valid skill directory. Skill directory names use lowercase letters and digits separated by single hyphens.`,
|
|
94
|
+
"missing-document": (file) => `\u201C${file}\u201D is missing.`,
|
|
95
|
+
frontmatter: (file) => `\u201C${file}\u201D must start with valid YAML frontmatter between --- lines.`,
|
|
96
|
+
metadata: (file) => `The frontmatter of \u201C${file}\u201D needs a valid name and description within the Agent Skills limits.`,
|
|
97
|
+
"name-mismatch": (file) => `The name in \u201C${file}\u201D does not match its skill directory.`
|
|
98
|
+
};
|
|
99
|
+
var SkillDefinitionInvalid = ApiError.define({
|
|
100
|
+
tag: "SkillDefinitionInvalid",
|
|
101
|
+
status: 400,
|
|
102
|
+
fields: {
|
|
51
103
|
file: SkillFilePath,
|
|
52
104
|
reason: Schema_exports.Literals([
|
|
53
105
|
"files",
|
|
@@ -58,14 +110,14 @@ var SkillDefinitionInvalid = class extends Schema_exports.TaggedError()(
|
|
|
58
110
|
"name-mismatch"
|
|
59
111
|
])
|
|
60
112
|
},
|
|
61
|
-
{
|
|
62
|
-
) {
|
|
63
|
-
};
|
|
113
|
+
message: ({ file, reason }) => skillDefinitionFailures[reason](file),
|
|
114
|
+
recorded: ({ reason }) => `The app's skill definition is invalid (${reason})`
|
|
115
|
+
});
|
|
64
116
|
var AppSkills = Schema_exports.Array(AppSkillSource).check(
|
|
65
117
|
Schema_exports.makeFilter((skills) => new Set(skills.map((skill) => skill.name)).size === skills.length)
|
|
66
118
|
);
|
|
67
119
|
var SkillServiceName = Schema_exports.String.check(
|
|
68
|
-
Schema_exports.isPattern(/^[A-Za-z0-9](?:[A-Za-z0-9 .-]{0,98}[A-Za-z0-9])?$/)
|
|
120
|
+
Schema_exports.isPattern(/^[A-Za-z0-9](?:[A-Za-z0-9 .-]{0,98}[A-Za-z0-9])?$/u)
|
|
69
121
|
);
|
|
70
122
|
var SkillLoadFailed = class extends Schema_exports.TaggedError()("SkillLoadFailed", {
|
|
71
123
|
reason: Schema_exports.Literals([
|
|
@@ -79,14 +131,17 @@ var SkillLoadFailed = class extends Schema_exports.TaggedError()("SkillLoadFaile
|
|
|
79
131
|
]),
|
|
80
132
|
// Error instances read an omitted message as "", so an empty message means none was given.
|
|
81
133
|
message: Schema_exports.optional(Schema_exports.String.check(Schema_exports.isMaxLength(500))),
|
|
82
|
-
status: Schema_exports.optional(Schema_exports.Int.check(Schema_exports.isBetween({ minimum: 100, maximum: 599 })))
|
|
134
|
+
status: Schema_exports.optional(Schema_exports.Int.check(Schema_exports.isBetween({ minimum: 100, maximum: 599 }))),
|
|
135
|
+
missing: Schema_exports.optional(Schema_exports.Literals(["repository", "ref"]))
|
|
83
136
|
}) {
|
|
84
137
|
};
|
|
85
138
|
var skillLoadLimits = {
|
|
86
139
|
files: 1e3,
|
|
87
140
|
fileBytes: 2e6,
|
|
88
141
|
totalBytes: 2e7,
|
|
89
|
-
concurrency: 8
|
|
142
|
+
concurrency: 8,
|
|
143
|
+
/** The request that checks whether a kept catalog's publication changed. */
|
|
144
|
+
checkMillis: 5e3
|
|
90
145
|
};
|
|
91
146
|
|
|
92
147
|
export {
|