apps 0.0.1-beta.0 → 0.0.1-beta.10
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 +145 -30
- package/framework-reference.json +1 -1
- package/js/browser-XIPJGLH2.js +65 -0
- package/js/{chunk-36DNRFZQ.js → chunk-27F7W2LG.js} +1 -1
- package/js/{chunk-VFUZI3NY.js → chunk-57RKNWL2.js} +4 -4
- package/js/{chunk-BPEFS4YF.js → chunk-5T57N25Q.js} +122 -18
- package/js/chunk-72JNVHPK.js +41 -0
- package/js/{chunk-2OTCEKL2.js → chunk-CDL5PM2Q.js} +2643 -1646
- package/js/{chunk-KWTCHVLT.js → chunk-CRDWFA74.js} +69 -54
- package/js/chunk-CZ7CSFO4.js +39 -0
- package/js/{chunk-WIDTG42X.js → chunk-EPT3ZP52.js} +79 -26
- package/js/chunk-FL2QR3XW.js +507 -0
- package/js/{chunk-3ANFZFCV.js → chunk-IJX4CYZO.js} +15 -18
- package/js/chunk-IPI4MFSN.js +78 -0
- package/js/chunk-JU7VHODU.js +104 -0
- package/js/chunk-KUMBKVJD.js +39 -0
- package/js/{chunk-YDR4CPJA.js → chunk-M3B3DE4K.js} +8 -8
- package/js/chunk-MKWZPDR6.js +63 -0
- package/js/{chunk-7JXHF5IF.js → chunk-N7YDVXYJ.js} +49 -1
- package/js/chunk-NKLWZJLE.js +172 -0
- package/js/{chunk-OWD2YICM.js → chunk-ODEIDRGW.js} +116 -88
- package/js/{chunk-D6BKYP2L.js → chunk-PJJ24GU7.js} +4 -4
- package/js/{chunk-EP6AEUZO.js → chunk-PZB6T6KU.js} +1 -1
- package/js/chunk-R3EV5FTO.js +97 -0
- package/js/chunk-RFVIONFX.js +189 -0
- package/js/{chunk-W7Q5EOTS.js → chunk-UK573G7W.js} +32 -32
- package/js/chunk-UVL56Z6E.js +6641 -0
- package/js/{chunk-Q2FD5IBM.js → chunk-V5KNQVCT.js} +505 -124
- package/js/{chunk-SBKHUC5L.js → chunk-VFZKSM3T.js} +5 -25
- package/js/{chunk-HP7E42X6.js → chunk-WLE7WX2U.js} +1158 -232
- package/js/{chunk-X3YBZCJW.js → chunk-YXQHV65J.js} +58 -62
- package/js/chunk-Z5M2LQOZ.js +209 -0
- package/js/{chunk-R6JMJSVT.js → chunk-ZQINWV4W.js} +60 -20
- package/js/client.js +11 -27
- package/js/contracts.js +138 -27
- package/js/effect.js +20 -15
- package/js/es-APDZKREY.js +40968 -0
- package/js/graphql.js +220 -123
- package/js/host.js +75 -19
- package/js/index.js +261 -117
- package/js/mcp/effect.js +24 -17
- package/js/mcp/stdio.js +26 -21
- package/js/mcp.js +127 -26
- package/js/openapi.js +3048 -150
- package/js/operations/approval.js +1 -1
- package/js/react.js +4 -4
- package/js/skills/effect.js +11 -0
- package/js/skills.js +893 -0
- package/js/storage/facet.js +7 -7
- package/js/ui/auth/contracts.js +9 -10
- package/js/ui/auth.js +17 -15
- package/js/ui/contracts.js +5 -5
- package/js/ui/serving.js +14 -13
- package/package.json +9 -1
- package/runtime.json +1 -1
- package/types/app-cache/src/contracts/cache.d.ts +119 -0
- package/types/app-cache/src/index.d.ts +93 -0
- package/types/app-data/src/contracts/database.d.ts +33 -6
- package/types/app-data/src/implementation/schema.d.ts +2 -17
- package/types/apps/src/contracts/api-response-error.d.ts +43 -0
- package/types/apps/src/contracts/app.d.ts +16 -4
- package/types/apps/src/contracts/cache.d.ts +44 -0
- package/types/apps/src/contracts/dynamic-skills.d.ts +10 -0
- package/types/apps/src/contracts/failure.d.ts +25 -0
- package/types/apps/src/contracts/graphql.d.ts +18 -1
- package/types/apps/src/contracts/host.d.ts +76 -528
- package/types/apps/src/contracts/mcp.d.ts +19 -1
- package/types/apps/src/contracts/openapi-compile.d.ts +11 -0
- package/types/apps/src/contracts/openapi-document.d.ts +53 -0
- package/types/apps/src/contracts/openapi.d.ts +160 -30
- package/types/apps/src/contracts/operations.d.ts +0 -5
- package/types/apps/src/contracts/protocol-version.d.ts +6 -0
- package/types/apps/src/contracts/protocols/1.d.ts +1589 -0
- package/types/apps/src/contracts/protocols/2.d.ts +668 -0
- package/types/apps/src/contracts/protocols/3.d.ts +676 -0
- package/types/apps/src/contracts/protocols/4.d.ts +1229 -0
- package/types/apps/src/contracts/protocols/5.d.ts +1090 -0
- package/types/apps/src/contracts/provider-error.d.ts +15 -0
- package/types/apps/src/contracts/provider.d.ts +69 -6
- package/types/apps/src/contracts/router.d.ts +59 -0
- package/types/apps/src/contracts/skills.d.ts +122 -0
- package/types/apps/src/contracts/storage.d.ts +3 -3
- package/types/apps/src/contracts/swagger-client.d.ts +29 -0
- package/types/apps/src/contracts/ui-auth.d.ts +6 -14
- package/types/apps/src/contracts/workflows.d.ts +34 -3
- package/types/apps/src/graphql.d.ts +5 -7
- package/types/apps/src/host.d.ts +1 -0
- package/types/apps/src/implementation/account-router.d.ts +12 -0
- package/types/apps/src/implementation/app.d.ts +5 -4
- package/types/apps/src/implementation/cache-session.d.ts +7 -0
- package/types/apps/src/implementation/cache.d.ts +8 -0
- package/types/apps/src/implementation/catalog-cache.d.ts +36 -0
- package/types/apps/src/implementation/dynamic-skills.d.ts +7 -0
- package/types/apps/src/implementation/elicitation.d.ts +13 -13
- package/types/apps/src/implementation/failure-detail.d.ts +25 -0
- package/types/apps/src/implementation/git.d.ts +25 -0
- package/types/apps/src/implementation/graphql-catalog.d.ts +7 -0
- package/types/apps/src/implementation/graphql.d.ts +81 -3
- package/types/apps/src/implementation/inflate.d.ts +16 -0
- package/types/apps/src/implementation/input-problems.d.ts +3 -0
- package/types/apps/src/implementation/mcp-call.d.ts +3 -2
- package/types/apps/src/implementation/mcp-catalog.d.ts +9 -0
- package/types/apps/src/implementation/mcp-client.d.ts +39 -22
- package/types/apps/src/implementation/mcp-stdio.d.ts +1 -1
- package/types/apps/src/implementation/mcp-tools.d.ts +6 -3
- package/types/apps/src/implementation/mcp.d.ts +55 -2
- package/types/apps/src/implementation/openapi-compile.d.ts +120 -0
- package/types/apps/src/implementation/openapi-document.d.ts +51 -0
- package/types/apps/src/implementation/openapi-names.d.ts +18 -0
- package/types/apps/src/implementation/openapi-request.d.ts +10 -4
- package/types/apps/src/implementation/openapi-source.d.ts +36 -0
- package/types/apps/src/implementation/openapi.d.ts +39 -3
- package/types/apps/src/implementation/operations.d.ts +26 -3
- package/types/apps/src/implementation/protocol-operations.d.ts +3 -4
- package/types/apps/src/implementation/provider-error.d.ts +10 -0
- package/types/apps/src/implementation/provider.d.ts +9 -4
- package/types/apps/src/implementation/router-catalog.d.ts +225 -0
- package/types/apps/src/implementation/router.d.ts +59 -0
- package/types/apps/src/implementation/schema.d.ts +11 -6
- package/types/apps/src/implementation/skill-files.d.ts +10 -0
- package/types/apps/src/implementation/skills.d.ts +43 -0
- package/types/apps/src/implementation/storage.d.ts +5 -3
- package/types/apps/src/implementation/swagger-client.d.ts +28 -0
- package/types/apps/src/implementation/ui-auth.d.ts +11 -5
- package/types/apps/src/implementation/ui-serving.d.ts +4 -2
- package/types/apps/src/implementation/webhooks.d.ts +1 -1
- package/types/apps/src/implementation/workflow-context.d.ts +11 -3
- package/types/apps/src/index.d.ts +11 -3
- package/types/apps/src/mcp-stdio.d.ts +2 -5
- package/types/apps/src/mcp.d.ts +8 -7
- package/types/apps/src/openapi.d.ts +8 -6
- package/types/apps/src/skills.d.ts +75 -0
- package/types/apps/src/ui-auth.d.ts +2 -2
- package/types/telemetry/src/browser-operations.d.ts +5 -2
- package/types/telemetry/src/config.d.ts +2 -0
- package/js/chunk-22WRQZT7.js +0 -389
- package/js/chunk-BKVL7XAJ.js +0 -47
- package/js/chunk-C24KEZXR.js +0 -59
- package/js/chunk-LOKGDT6B.js +0 -28
- package/js/chunk-MLKGABMK.js +0 -9
- package/types/apps/src/implementation/account-operations.d.ts +0 -32
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
import {
|
|
2
|
+
skillFromFiles
|
|
3
|
+
} from "./chunk-IPI4MFSN.js";
|
|
4
|
+
import {
|
|
5
|
+
joinPath,
|
|
6
|
+
mergeMeta
|
|
7
|
+
} from "./chunk-Z5M2LQOZ.js";
|
|
8
|
+
import {
|
|
9
|
+
parseProviderError
|
|
10
|
+
} from "./chunk-MKWZPDR6.js";
|
|
11
|
+
import {
|
|
12
|
+
ApiErrorResponse,
|
|
13
|
+
HostDeclarationInvalid,
|
|
14
|
+
HostEvaluationFailed,
|
|
15
|
+
HostedRouter,
|
|
16
|
+
HostedTool,
|
|
17
|
+
HostedToolSummary,
|
|
18
|
+
McpError,
|
|
19
|
+
maxFailureMessageLength
|
|
20
|
+
} from "./chunk-WLE7WX2U.js";
|
|
21
|
+
import {
|
|
22
|
+
AppDatabaseError
|
|
23
|
+
} from "./chunk-N7YDVXYJ.js";
|
|
24
|
+
import {
|
|
25
|
+
SkillLoadFailed,
|
|
26
|
+
skillFormatLimits
|
|
27
|
+
} from "./chunk-JU7VHODU.js";
|
|
28
|
+
import {
|
|
29
|
+
jsonSchemaDocument
|
|
30
|
+
} from "./chunk-5T57N25Q.js";
|
|
31
|
+
import {
|
|
32
|
+
AppStorageError,
|
|
33
|
+
AppStorageUnavailable
|
|
34
|
+
} from "./chunk-PZB6T6KU.js";
|
|
35
|
+
import {
|
|
36
|
+
AccountId,
|
|
37
|
+
HttpUrl,
|
|
38
|
+
JsonObject
|
|
39
|
+
} from "./chunk-27F7W2LG.js";
|
|
40
|
+
import {
|
|
41
|
+
Cause_exports,
|
|
42
|
+
Effect_exports,
|
|
43
|
+
Option_exports,
|
|
44
|
+
Predicate_exports,
|
|
45
|
+
Redacted_exports,
|
|
46
|
+
Result_exports,
|
|
47
|
+
Schema_exports
|
|
48
|
+
} from "./chunk-CDL5PM2Q.js";
|
|
49
|
+
|
|
50
|
+
// src/contracts/openapi.ts
|
|
51
|
+
var OpenapiErrorResponse = Schema_exports.Struct({
|
|
52
|
+
code: ApiErrorResponse.fields.code,
|
|
53
|
+
status: ApiErrorResponse.fields.status,
|
|
54
|
+
message: Schema_exports.Union([
|
|
55
|
+
Schema_exports.Struct({ source: Schema_exports.Literal("body") }),
|
|
56
|
+
Schema_exports.Struct({ source: Schema_exports.Literal("schema"), value: ApiErrorResponse.fields.message })
|
|
57
|
+
]),
|
|
58
|
+
schema: JsonObject
|
|
59
|
+
});
|
|
60
|
+
var OpenapiParameter = Schema_exports.Struct({
|
|
61
|
+
name: Schema_exports.String,
|
|
62
|
+
in: Schema_exports.Literals(["path", "query", "header", "cookie"]),
|
|
63
|
+
required: Schema_exports.optionalKey(Schema_exports.Boolean),
|
|
64
|
+
schema: Schema_exports.optionalKey(JsonObject),
|
|
65
|
+
style: Schema_exports.optionalKey(Schema_exports.String),
|
|
66
|
+
explode: Schema_exports.optionalKey(Schema_exports.Boolean),
|
|
67
|
+
allowReserved: Schema_exports.optionalKey(Schema_exports.Boolean),
|
|
68
|
+
allowEmptyValue: Schema_exports.optionalKey(Schema_exports.Boolean),
|
|
69
|
+
content: Schema_exports.optionalKey(JsonObject)
|
|
70
|
+
});
|
|
71
|
+
var OpenapiRequestBody = Schema_exports.Struct({
|
|
72
|
+
required: Schema_exports.optionalKey(Schema_exports.Boolean),
|
|
73
|
+
content: Schema_exports.Record(
|
|
74
|
+
Schema_exports.String,
|
|
75
|
+
Schema_exports.Struct({
|
|
76
|
+
schema: Schema_exports.optionalKey(JsonObject),
|
|
77
|
+
encoding: Schema_exports.optionalKey(JsonObject)
|
|
78
|
+
})
|
|
79
|
+
)
|
|
80
|
+
});
|
|
81
|
+
var OpenapiOperation = Schema_exports.Struct({
|
|
82
|
+
/** The tool name after `queries.` or `mutations.`, grouped as `<group>.<leaf>`. */
|
|
83
|
+
name: Schema_exports.NonEmptyString,
|
|
84
|
+
/** The document's operationId, when it declares one. `kinds` overrides are keyed by it. */
|
|
85
|
+
operationId: Schema_exports.optionalKey(Schema_exports.String),
|
|
86
|
+
description: Schema_exports.String,
|
|
87
|
+
method: Schema_exports.Literals(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]),
|
|
88
|
+
path: Schema_exports.String,
|
|
89
|
+
baseUrl: HttpUrl,
|
|
90
|
+
openapi: Schema_exports.String,
|
|
91
|
+
securitySchemes: Schema_exports.Record(Schema_exports.String, JsonObject),
|
|
92
|
+
/** The resolved OpenAPI Operation Object; Executor schemas remain separate. */
|
|
93
|
+
request: Schema_exports.Struct({
|
|
94
|
+
parameters: Schema_exports.Array(OpenapiParameter),
|
|
95
|
+
requestBody: Schema_exports.optionalKey(OpenapiRequestBody),
|
|
96
|
+
security: Schema_exports.Array(Schema_exports.Record(Schema_exports.String, Schema_exports.Array(Schema_exports.String))),
|
|
97
|
+
responses: Schema_exports.Record(Schema_exports.String, JsonObject)
|
|
98
|
+
}),
|
|
99
|
+
/** Streams remain in the metadata but cannot run through a single-result tool call. */
|
|
100
|
+
streaming: Schema_exports.optionalKey(Schema_exports.Literal(true)),
|
|
101
|
+
/** The operation's OpenAPI tags, shown to agents as labels within its router. */
|
|
102
|
+
tags: Schema_exports.optionalKey(Schema_exports.Array(Schema_exports.NonEmptyString)),
|
|
103
|
+
input: JsonObject,
|
|
104
|
+
outputSchema: Schema_exports.optionalKey(JsonObject),
|
|
105
|
+
errorResponses: Schema_exports.optionalKey(Schema_exports.Array(OpenapiErrorResponse))
|
|
106
|
+
});
|
|
107
|
+
var CredentialBinding = Schema_exports.Struct({
|
|
108
|
+
scheme: Schema_exports.String,
|
|
109
|
+
field: Schema_exports.String,
|
|
110
|
+
part: Schema_exports.Literals(["value", "username", "password"]),
|
|
111
|
+
prefix: Schema_exports.String
|
|
112
|
+
});
|
|
113
|
+
var OpenapiAccount = Schema_exports.Struct({
|
|
114
|
+
id: Schema_exports.optional(AccountId),
|
|
115
|
+
method: Schema_exports.String,
|
|
116
|
+
fields: Schema_exports.Record(Schema_exports.String, Schema_exports.Unknown)
|
|
117
|
+
});
|
|
118
|
+
var OpenapiParameterDefaults = Schema_exports.Struct({
|
|
119
|
+
path: Schema_exports.optionalKey(Schema_exports.Record(Schema_exports.String, Schema_exports.String)),
|
|
120
|
+
query: Schema_exports.optionalKey(Schema_exports.Record(Schema_exports.String, Schema_exports.String)),
|
|
121
|
+
headers: Schema_exports.optionalKey(Schema_exports.Record(Schema_exports.String, Schema_exports.String))
|
|
122
|
+
});
|
|
123
|
+
var OpenapiToolsOptions = Schema_exports.Struct({
|
|
124
|
+
operations: Schema_exports.Array(OpenapiOperation),
|
|
125
|
+
/**
|
|
126
|
+
* Component schemas stored once per app and referenced as `#/$defs/<name>`. Operations
|
|
127
|
+
* generated before shared definitions carry their own `$defs` and omit this.
|
|
128
|
+
*/
|
|
129
|
+
definitions: Schema_exports.optional(Schema_exports.Record(Schema_exports.String, JsonObject)),
|
|
130
|
+
methods: Schema_exports.Record(Schema_exports.String, Schema_exports.Array(CredentialBinding)),
|
|
131
|
+
oauth: Schema_exports.Array(Schema_exports.String),
|
|
132
|
+
account: Schema_exports.optional(OpenapiAccount),
|
|
133
|
+
parameterDefaults: Schema_exports.optional(OpenapiParameterDefaults),
|
|
134
|
+
signal: Schema_exports.optional(Schema_exports.instanceOf(AbortSignal)),
|
|
135
|
+
fetch: Schema_exports.optional(
|
|
136
|
+
Schema_exports.declare((value) => typeof value === "function")
|
|
137
|
+
)
|
|
138
|
+
});
|
|
139
|
+
var OpenapiError = class extends Schema_exports.TaggedError()("OpenapiError", {
|
|
140
|
+
reason: Schema_exports.Literals(["invalid_definition", "invalid_input", "request"]),
|
|
141
|
+
status: Schema_exports.optional(Schema_exports.Number)
|
|
142
|
+
}) {
|
|
143
|
+
};
|
|
144
|
+
var defaultOpenapiResponseLimits = {
|
|
145
|
+
maxBodyBytes: 16777216,
|
|
146
|
+
readTimeoutMs: 3e4
|
|
147
|
+
};
|
|
148
|
+
var isOpenapiTextMedia = (type) => /^(?:text\/|application\/(?:[\w.-]+\+)?(?:json|xml)|application\/(?:javascript|x-ndjson|x-www-form-urlencoded))/i.test(
|
|
149
|
+
type
|
|
150
|
+
);
|
|
151
|
+
var isOpenapiFileSchema = (shape) => shape.contentMediaType !== void 0 && shape.contentEncoding === void 0 || shape.type === "string" && shape.format === "binary";
|
|
152
|
+
var openapiBinaryResultSchema = {
|
|
153
|
+
type: "object",
|
|
154
|
+
properties: {
|
|
155
|
+
base64: { type: "string", contentEncoding: "base64" },
|
|
156
|
+
contentType: { type: "string" }
|
|
157
|
+
},
|
|
158
|
+
required: ["base64", "contentType"],
|
|
159
|
+
additionalProperties: false
|
|
160
|
+
};
|
|
161
|
+
var openapiMediaKind = (type) => type.includes("json") && !type.includes("ndjson") ? "json" : type === "application/x-www-form-urlencoded" ? "form" : type === "multipart/form-data" ? "multipart" : isOpenapiTextMedia(type) ? "text" : "binary";
|
|
162
|
+
|
|
163
|
+
// src/implementation/failure-detail.ts
|
|
164
|
+
var storageMessages = {
|
|
165
|
+
schema: "The app's database schema is invalid.",
|
|
166
|
+
schema_changed: "The app's database schema changed during this operation. Retry it.",
|
|
167
|
+
table: "The operation used a table the app's database schema does not declare.",
|
|
168
|
+
index: "The operation used an index the table does not declare, or used it incorrectly.",
|
|
169
|
+
range: "The index range is invalid for the declared index.",
|
|
170
|
+
value: "A value does not match the table's declared field schema.",
|
|
171
|
+
readonly: "Queries cannot write. Move writes into a mutation.",
|
|
172
|
+
cursor: "The pagination cursor is invalid or belongs to a different query.",
|
|
173
|
+
limit: "The operation exceeded a per-invocation app data limit.",
|
|
174
|
+
closed: "The database session closed before this operation finished.",
|
|
175
|
+
storage: "App storage failed to complete the operation.",
|
|
176
|
+
replay: "A workflow step replayed with different input than its first run."
|
|
177
|
+
};
|
|
178
|
+
var minimumSecretLength = 6;
|
|
179
|
+
var secretValues = (value, found) => {
|
|
180
|
+
if (typeof value === "string") {
|
|
181
|
+
if (value.length >= minimumSecretLength) found.add(value);
|
|
182
|
+
} else if (Array.isArray(value)) for (const item of value) secretValues(item, found);
|
|
183
|
+
else if (Predicate_exports.isObject(value))
|
|
184
|
+
for (const item of Object.values(value)) secretValues(item, found);
|
|
185
|
+
return found;
|
|
186
|
+
};
|
|
187
|
+
var accountFieldSecrets = (accounts) => {
|
|
188
|
+
const found = /* @__PURE__ */ new Set();
|
|
189
|
+
if (Predicate_exports.isObject(accounts)) {
|
|
190
|
+
for (const slot of Object.values(accounts))
|
|
191
|
+
for (const account of Array.isArray(slot) ? slot : [slot])
|
|
192
|
+
if (Predicate_exports.hasProperty(account, "fields")) secretValues(account.fields, found);
|
|
193
|
+
}
|
|
194
|
+
return [...found].sort((a, b) => b.length - a.length);
|
|
195
|
+
};
|
|
196
|
+
var accountSecrets = (accounts) => accountFieldSecrets(Redacted_exports.value(accounts));
|
|
197
|
+
var boundFailureMessage = (message, secrets) => {
|
|
198
|
+
let redacted = message;
|
|
199
|
+
for (const secret of secrets) redacted = redacted.split(secret).join("[redacted]");
|
|
200
|
+
return redacted.length <= maxFailureMessageLength ? redacted : `${redacted.slice(0, maxFailureMessageLength - 1)}\u2026`;
|
|
201
|
+
};
|
|
202
|
+
var errorName = (error) => (error.name.length > 0 ? error.name : "Error").slice(0, 128);
|
|
203
|
+
var ownMessage = (error) => {
|
|
204
|
+
const cause = error.cause;
|
|
205
|
+
const suffix = cause instanceof Error && cause.message.length > 0 ? ` (caused by ${errorName(cause)}: ${cause.message})` : "";
|
|
206
|
+
return error.message.length > 0 ? `${error.message}${suffix}` : void 0;
|
|
207
|
+
};
|
|
208
|
+
var describeFailure = (error) => error instanceof Error ? `${errorName(error)}: ${ownMessage(error) ?? "(no message)"}` : typeof error === "string" ? error : `A non-Error ${error === null ? "null" : typeof error} value was thrown`;
|
|
209
|
+
var failureDetail = (error, secrets) => {
|
|
210
|
+
if (Schema_exports.is(AppDatabaseError)(error))
|
|
211
|
+
return {
|
|
212
|
+
source: "storage",
|
|
213
|
+
errorName: "AppDatabaseError",
|
|
214
|
+
code: error.reason,
|
|
215
|
+
message: boundFailureMessage(ownMessage(error) ?? storageMessages[error.reason], secrets)
|
|
216
|
+
};
|
|
217
|
+
if (Schema_exports.is(AppStorageUnavailable)(error))
|
|
218
|
+
return {
|
|
219
|
+
source: "storage",
|
|
220
|
+
errorName: "AppStorageUnavailable",
|
|
221
|
+
message: "App storage is not available on this host."
|
|
222
|
+
};
|
|
223
|
+
if (Schema_exports.is(AppStorageError)(error))
|
|
224
|
+
return {
|
|
225
|
+
source: "storage",
|
|
226
|
+
errorName: "AppStorageError",
|
|
227
|
+
message: "App storage failed to complete the operation."
|
|
228
|
+
};
|
|
229
|
+
if (Schema_exports.is(OpenapiError)(error))
|
|
230
|
+
return {
|
|
231
|
+
source: "service",
|
|
232
|
+
errorName: "OpenapiError",
|
|
233
|
+
code: error.reason,
|
|
234
|
+
message: error.reason === "request" ? error.status === void 0 ? "The API request failed before a response arrived." : `The API responded with HTTP ${error.status}, which its OpenAPI document does not declare as an error with a message.` : error.reason === "invalid_input" ? "The input could not be encoded as a request for this API operation." : "The API's OpenAPI definition for this operation is invalid."
|
|
235
|
+
};
|
|
236
|
+
if (error instanceof Error)
|
|
237
|
+
return {
|
|
238
|
+
source: "app",
|
|
239
|
+
errorName: errorName(error),
|
|
240
|
+
message: boundFailureMessage(
|
|
241
|
+
ownMessage(error) ?? `${errorName(error)} was thrown without a message.`,
|
|
242
|
+
secrets
|
|
243
|
+
)
|
|
244
|
+
};
|
|
245
|
+
if (typeof error === "string")
|
|
246
|
+
return { source: "app", errorName: "string", message: boundFailureMessage(error, secrets) };
|
|
247
|
+
return {
|
|
248
|
+
source: "app",
|
|
249
|
+
errorName: typeof error,
|
|
250
|
+
message: `A non-Error ${error === null ? "null" : typeof error} value was thrown.`
|
|
251
|
+
};
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
// src/implementation/router-catalog.ts
|
|
255
|
+
var safeFailure = (error, secrets) => {
|
|
256
|
+
const provider = parseProviderError(error);
|
|
257
|
+
if (Option_exports.isSome(provider)) return provider.value;
|
|
258
|
+
const skills = Schema_exports.decodeUnknownOption(SkillLoadFailed)(error);
|
|
259
|
+
if (Option_exports.isSome(skills)) {
|
|
260
|
+
const { reason, message, status } = skills.value;
|
|
261
|
+
return new SkillLoadFailed({
|
|
262
|
+
reason,
|
|
263
|
+
...message ? { message } : {},
|
|
264
|
+
...status === void 0 ? {} : { status }
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
const mcp = Schema_exports.decodeUnknownOption(McpError)(error);
|
|
268
|
+
if (Option_exports.isSome(mcp)) {
|
|
269
|
+
const { phase, reason, status } = mcp.value;
|
|
270
|
+
return new McpError({ phase, reason, ...status === void 0 ? {} : { status } });
|
|
271
|
+
}
|
|
272
|
+
if (Schema_exports.is(HostDeclarationInvalid)(error)) return error;
|
|
273
|
+
return new HostEvaluationFailed(failureDetail(error, secrets));
|
|
274
|
+
};
|
|
275
|
+
var sourced = (work, secrets) => Effect_exports.suspend(work).pipe(
|
|
276
|
+
Effect_exports.catchCause(
|
|
277
|
+
(cause) => Cause_exports.hasInterrupts(cause) ? Effect_exports.interrupt : Effect_exports.fail(safeFailure(Cause_exports.squash(cause), secrets))
|
|
278
|
+
)
|
|
279
|
+
);
|
|
280
|
+
var routerMeta = (node, secrets) => node.kind === "router" ? Effect_exports.succeed(node.meta) : node.meta === void 0 ? Effect_exports.succeed(node.overrides) : sourced(node.meta, secrets).pipe(Effect_exports.map((meta) => mergeMeta(meta, node.overrides)));
|
|
281
|
+
var routerSkillPrefix = "tools";
|
|
282
|
+
var plainSegment = /^[a-z][a-z0-9]*$/;
|
|
283
|
+
var pathHash = (path) => {
|
|
284
|
+
let hash = 2166136261;
|
|
285
|
+
for (let index = 0; index < path.length; index++)
|
|
286
|
+
hash = Math.imul(hash ^ path.charCodeAt(index), 16777619) >>> 0;
|
|
287
|
+
return hash.toString().padStart(10, "0");
|
|
288
|
+
};
|
|
289
|
+
var routerSkillName = (path) => {
|
|
290
|
+
if (path === "") return routerSkillPrefix;
|
|
291
|
+
const segments = path.split(".");
|
|
292
|
+
const plain = [routerSkillPrefix, ...segments].join("-");
|
|
293
|
+
if (segments.every((segment) => plainSegment.test(segment)) && plain.length <= skillFormatLimits.nameCharacters)
|
|
294
|
+
return plain;
|
|
295
|
+
const hash = pathHash(path);
|
|
296
|
+
const slug = path.toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, skillFormatLimits.nameCharacters - routerSkillPrefix.length - hash.length - 2).replace(/^-+|-+$/g, "");
|
|
297
|
+
return [routerSkillPrefix, slug, hash].filter((part) => part !== "").join("-");
|
|
298
|
+
};
|
|
299
|
+
var entry = (path, meta, error) => Schema_exports.decodeUnknownEffect(HostedRouter)({
|
|
300
|
+
path,
|
|
301
|
+
...meta?.title === void 0 ? {} : { title: meta.title },
|
|
302
|
+
...meta?.description === void 0 ? {} : { description: meta.description },
|
|
303
|
+
...meta?.icons === void 0 ? {} : { icons: meta.icons },
|
|
304
|
+
...meta?.tags === void 0 ? {} : { tags: meta.tags },
|
|
305
|
+
...meta?.instructions === void 0 ? {} : { skill: routerSkillName(path) },
|
|
306
|
+
...error === void 0 ? {} : { error }
|
|
307
|
+
}).pipe(Effect_exports.mapError(() => new HostDeclarationInvalid()));
|
|
308
|
+
var invalid = (work) => work.pipe(
|
|
309
|
+
Effect_exports.catchCause(
|
|
310
|
+
(cause) => Cause_exports.hasInterrupts(cause) ? Effect_exports.interrupt : Effect_exports.fail(new HostDeclarationInvalid())
|
|
311
|
+
)
|
|
312
|
+
);
|
|
313
|
+
var summaryFields = (name, router, operation, schedules) => {
|
|
314
|
+
const readOnly = operation.kind === "query";
|
|
315
|
+
return {
|
|
316
|
+
name,
|
|
317
|
+
...router === "" ? {} : { router },
|
|
318
|
+
...schedules === void 0 ? {} : { schedules },
|
|
319
|
+
description: operation.description ?? `${readOnly ? "Query" : "Mutate"} ${name}`,
|
|
320
|
+
...operation.title === void 0 ? {} : { title: operation.title },
|
|
321
|
+
readOnly,
|
|
322
|
+
annotations: { ...operation.annotations, readOnlyHint: readOnly }
|
|
323
|
+
};
|
|
324
|
+
};
|
|
325
|
+
var operationSummary = (name, router, operation, schedules) => invalid(
|
|
326
|
+
Schema_exports.decodeUnknownEffect(HostedToolSummary)(
|
|
327
|
+
summaryFields(name, router, operation, schedules)
|
|
328
|
+
)
|
|
329
|
+
);
|
|
330
|
+
var operationDescription = (name, router, operation, schedules) => invalid(
|
|
331
|
+
Effect_exports.gen(function* () {
|
|
332
|
+
return yield* Schema_exports.decodeUnknownEffect(HostedTool)({
|
|
333
|
+
...summaryFields(name, router, operation, schedules),
|
|
334
|
+
inputSchema: yield* jsonSchemaDocument(operation.input),
|
|
335
|
+
...operation.output === void 0 ? operation.outputSchema === void 0 ? {} : { outputSchema: operation.outputSchema } : { outputSchema: yield* jsonSchemaDocument(operation.output) },
|
|
336
|
+
...operation._meta === void 0 ? {} : { _meta: operation._meta }
|
|
337
|
+
});
|
|
338
|
+
})
|
|
339
|
+
);
|
|
340
|
+
var fixedRouter = (operations, meta) => ({
|
|
341
|
+
kind: "dynamic",
|
|
342
|
+
...meta === void 0 ? {} : { meta: () => Effect_exports.succeed(meta) },
|
|
343
|
+
list: () => Effect_exports.forEach(
|
|
344
|
+
Object.entries(operations),
|
|
345
|
+
([name, operation]) => operationDescription(name, "", operation)
|
|
346
|
+
),
|
|
347
|
+
summaries: () => Effect_exports.forEach(
|
|
348
|
+
Object.entries(operations),
|
|
349
|
+
([name, operation]) => operationSummary(name, "", operation)
|
|
350
|
+
),
|
|
351
|
+
describe: (name) => {
|
|
352
|
+
const operation = Object.hasOwn(operations, name) ? operations[name] : void 0;
|
|
353
|
+
return operation === void 0 ? Effect_exports.succeed(void 0) : operationDescription(name, "", operation);
|
|
354
|
+
},
|
|
355
|
+
resolve: (name) => Effect_exports.succeed(Object.hasOwn(operations, name) ? operations[name] : void 0)
|
|
356
|
+
});
|
|
357
|
+
var within = (wanted, path) => [...wanted].flatMap(
|
|
358
|
+
(name) => path === "" ? [name] : name.startsWith(`${path}.`) ? [name.slice(path.length + 1)] : []
|
|
359
|
+
);
|
|
360
|
+
var readCatalog = (root, options) => Effect_exports.gen(function* () {
|
|
361
|
+
const tools = [];
|
|
362
|
+
const routers = [];
|
|
363
|
+
const { wanted, secrets } = options;
|
|
364
|
+
const readSource = (source, path, relative) => Effect_exports.gen(function* () {
|
|
365
|
+
const describe = source.describe;
|
|
366
|
+
const [meta, listed] = yield* Effect_exports.all(
|
|
367
|
+
[
|
|
368
|
+
routerMeta(source, secrets),
|
|
369
|
+
options.summary && source.summaries !== void 0 ? sourced(source.summaries, secrets) : relative !== void 0 && describe !== void 0 ? sourced(
|
|
370
|
+
() => Effect_exports.forEach(relative, (name) => describe(name), {
|
|
371
|
+
concurrency: "unbounded"
|
|
372
|
+
}),
|
|
373
|
+
secrets
|
|
374
|
+
).pipe(Effect_exports.map((tools2) => tools2.filter((tool) => tool !== void 0))) : sourced(source.list, secrets)
|
|
375
|
+
],
|
|
376
|
+
{ concurrency: "unbounded" }
|
|
377
|
+
);
|
|
378
|
+
const parsed = yield* Schema_exports.decodeUnknownEffect(
|
|
379
|
+
Schema_exports.Array(options.summary ? HostedToolSummary : HostedTool)
|
|
380
|
+
)(listed).pipe(Effect_exports.mapError(() => new HostDeclarationInvalid()));
|
|
381
|
+
const names = /* @__PURE__ */ new Set();
|
|
382
|
+
const found = [];
|
|
383
|
+
for (const tool of parsed) {
|
|
384
|
+
if (names.has(tool.name)) return yield* new HostDeclarationInvalid();
|
|
385
|
+
names.add(tool.name);
|
|
386
|
+
if (relative !== void 0 && !relative.includes(tool.name)) continue;
|
|
387
|
+
const readOnly = tool.readOnly === true;
|
|
388
|
+
found.push({
|
|
389
|
+
...tool,
|
|
390
|
+
name: joinPath(path, tool.name),
|
|
391
|
+
...path === "" ? {} : { router: path },
|
|
392
|
+
readOnly,
|
|
393
|
+
annotations: { ...tool.annotations, readOnlyHint: readOnly }
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
return { meta, found };
|
|
397
|
+
});
|
|
398
|
+
const include = (source, path, relative) => Effect_exports.gen(function* () {
|
|
399
|
+
if (path === "") {
|
|
400
|
+
const { meta, found } = yield* readSource(source, path, relative);
|
|
401
|
+
tools.push(...found);
|
|
402
|
+
return { meta, error: void 0 };
|
|
403
|
+
}
|
|
404
|
+
const result = yield* Effect_exports.result(readSource(source, path, relative));
|
|
405
|
+
if (Result_exports.isFailure(result)) return { meta: source.overrides, error: result.failure };
|
|
406
|
+
tools.push(...result.success.found);
|
|
407
|
+
return { meta: result.success.meta, error: void 0 };
|
|
408
|
+
});
|
|
409
|
+
const visit = (node, path) => Effect_exports.gen(function* () {
|
|
410
|
+
if (path !== "" || wanted === void 0 && node.meta !== void 0)
|
|
411
|
+
routers.push(yield* entry(path, node.meta));
|
|
412
|
+
for (const [key, child] of Object.entries(node.children)) {
|
|
413
|
+
const name = joinPath(path, key);
|
|
414
|
+
switch (child.kind) {
|
|
415
|
+
case "query":
|
|
416
|
+
case "mutation":
|
|
417
|
+
if (options.scheduled === true && options.schedules(name).length === 0) break;
|
|
418
|
+
if (wanted === void 0 || wanted.has(name))
|
|
419
|
+
tools.push(
|
|
420
|
+
options.summary ? yield* operationSummary(name, path, child, options.schedules(name)) : yield* operationDescription(name, path, child, options.schedules(name))
|
|
421
|
+
);
|
|
422
|
+
break;
|
|
423
|
+
case "router":
|
|
424
|
+
if (wanted === void 0 || within(wanted, name).length > 0)
|
|
425
|
+
yield* visit(child, name);
|
|
426
|
+
break;
|
|
427
|
+
case "dynamic": {
|
|
428
|
+
if (options.scheduled === true) break;
|
|
429
|
+
const relative = wanted === void 0 ? void 0 : within(wanted, name);
|
|
430
|
+
if (relative !== void 0 && relative.length === 0) break;
|
|
431
|
+
const read = yield* include(child, name, relative);
|
|
432
|
+
routers.push(yield* entry(name, read.meta, read.error));
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
});
|
|
437
|
+
if (root?.kind === "router") yield* visit(root, "");
|
|
438
|
+
else if (root?.kind === "dynamic" && options.scheduled !== true) {
|
|
439
|
+
const read = yield* include(root, "", wanted === void 0 ? void 0 : [...wanted]);
|
|
440
|
+
if (wanted === void 0 && read.meta !== void 0)
|
|
441
|
+
routers.push(yield* entry("", read.meta));
|
|
442
|
+
}
|
|
443
|
+
return { tools, routers };
|
|
444
|
+
});
|
|
445
|
+
var routerSkills = (root) => Effect_exports.gen(function* () {
|
|
446
|
+
const nodes = [];
|
|
447
|
+
const collect = (node, path) => {
|
|
448
|
+
nodes.push({ path, node });
|
|
449
|
+
if (node.kind === "router") {
|
|
450
|
+
for (const [key, child] of Object.entries(node.children))
|
|
451
|
+
if (child.kind === "router" || child.kind === "dynamic")
|
|
452
|
+
collect(child, joinPath(path, key));
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
if (root !== void 0) collect(root, "");
|
|
456
|
+
const skills = yield* Effect_exports.forEach(
|
|
457
|
+
nodes,
|
|
458
|
+
({ path, node }) => (
|
|
459
|
+
// Skills that fail are skipped, so their failures are never reported.
|
|
460
|
+
routerMeta(node, []).pipe(
|
|
461
|
+
Effect_exports.flatMap((meta) => routerSkill(path, meta)),
|
|
462
|
+
Effect_exports.orElseSucceed(() => void 0)
|
|
463
|
+
)
|
|
464
|
+
),
|
|
465
|
+
{ concurrency: "unbounded" }
|
|
466
|
+
);
|
|
467
|
+
const names = /* @__PURE__ */ new Set();
|
|
468
|
+
return skills.filter((skill) => {
|
|
469
|
+
if (skill === void 0 || names.has(skill.name)) return false;
|
|
470
|
+
names.add(skill.name);
|
|
471
|
+
return true;
|
|
472
|
+
});
|
|
473
|
+
});
|
|
474
|
+
var routerSkill = (path, meta) => Effect_exports.gen(function* () {
|
|
475
|
+
if (meta?.instructions === void 0) return void 0;
|
|
476
|
+
const name = routerSkillName(path);
|
|
477
|
+
const description = ([meta.description, meta.title].find((text) => text !== void 0 && text.trim() !== "") ?? (path === "" ? "How to use this app's tools" : `How to use the ${path} tools`)).slice(0, skillFormatLimits.descriptionCharacters);
|
|
478
|
+
const content = `---
|
|
479
|
+
name: ${name}
|
|
480
|
+
description: ${JSON.stringify(description)}
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
${meta.instructions}
|
|
484
|
+
`;
|
|
485
|
+
return yield* skillFromFiles([{ path: "SKILL.md", content }], { name });
|
|
486
|
+
});
|
|
487
|
+
|
|
488
|
+
export {
|
|
489
|
+
OpenapiErrorResponse,
|
|
490
|
+
OpenapiParameter,
|
|
491
|
+
OpenapiRequestBody,
|
|
492
|
+
OpenapiOperation,
|
|
493
|
+
OpenapiToolsOptions,
|
|
494
|
+
OpenapiError,
|
|
495
|
+
defaultOpenapiResponseLimits,
|
|
496
|
+
isOpenapiTextMedia,
|
|
497
|
+
isOpenapiFileSchema,
|
|
498
|
+
openapiBinaryResultSchema,
|
|
499
|
+
openapiMediaKind,
|
|
500
|
+
accountSecrets,
|
|
501
|
+
boundFailureMessage,
|
|
502
|
+
describeFailure,
|
|
503
|
+
failureDetail,
|
|
504
|
+
fixedRouter,
|
|
505
|
+
readCatalog,
|
|
506
|
+
routerSkills
|
|
507
|
+
};
|
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
text,
|
|
20
20
|
uint8Array,
|
|
21
21
|
urlParams
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-UK573G7W.js";
|
|
23
23
|
import {
|
|
24
24
|
JsonValue
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-27F7W2LG.js";
|
|
26
26
|
import {
|
|
27
27
|
Cause,
|
|
28
28
|
Defect,
|
|
@@ -118,12 +118,12 @@ import {
|
|
|
118
118
|
transformEffect,
|
|
119
119
|
transformPull,
|
|
120
120
|
void_2 as void_
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-CDL5PM2Q.js";
|
|
122
122
|
import {
|
|
123
123
|
__export
|
|
124
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-CZ7CSFO4.js";
|
|
125
125
|
|
|
126
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
126
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/HttpApi.js
|
|
127
127
|
var HttpApi_exports = {};
|
|
128
128
|
__export(HttpApi_exports, {
|
|
129
129
|
AdditionalSchemas: () => AdditionalSchemas,
|
|
@@ -133,7 +133,7 @@ __export(HttpApi_exports, {
|
|
|
133
133
|
reflect: () => reflect
|
|
134
134
|
});
|
|
135
135
|
|
|
136
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
136
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/HttpApiEndpoint.js
|
|
137
137
|
var HttpApiEndpoint_exports = {};
|
|
138
138
|
__export(HttpApiEndpoint_exports, {
|
|
139
139
|
delete: () => del,
|
|
@@ -151,7 +151,7 @@ __export(HttpApiEndpoint_exports, {
|
|
|
151
151
|
query: () => query
|
|
152
152
|
});
|
|
153
153
|
|
|
154
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
154
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/HttpApiSchema.js
|
|
155
155
|
var HttpApiSchema_exports = {};
|
|
156
156
|
__export(HttpApiSchema_exports, {
|
|
157
157
|
Accepted: () => Accepted,
|
|
@@ -192,7 +192,7 @@ __export(HttpApiSchema_exports, {
|
|
|
192
192
|
withHeaders: () => withHeaders
|
|
193
193
|
});
|
|
194
194
|
|
|
195
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
195
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/encoding/Sse.js
|
|
196
196
|
var SseErrorTypeId = "~effect/encoding/Sse/SseError";
|
|
197
197
|
var EventTooLarge = class extends (/* @__PURE__ */ TaggedError("EventTooLarge")) {
|
|
198
198
|
get message() {
|
|
@@ -425,7 +425,7 @@ var Retry = class _Retry extends (/* @__PURE__ */ TaggedClass("Retry")) {
|
|
|
425
425
|
}
|
|
426
426
|
};
|
|
427
427
|
|
|
428
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
428
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/HttpApiSchema.js
|
|
429
429
|
var StreamSchemaTypeId = "~effect/httpapi/HttpApiSchema/Stream";
|
|
430
430
|
function status(code) {
|
|
431
431
|
const statusCode = typeof code === "string" ? fromLiteral(code) : code;
|
|
@@ -655,14 +655,14 @@ function getStatusErrorSchema(schema) {
|
|
|
655
655
|
return getStatusError(schema.ast);
|
|
656
656
|
}
|
|
657
657
|
|
|
658
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
658
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/internal/mediaType.js
|
|
659
659
|
function normalize(contentType) {
|
|
660
660
|
const normalized = contentType.toLowerCase().trim();
|
|
661
661
|
const index = normalized.indexOf(";");
|
|
662
662
|
return index === -1 ? normalized : normalized.slice(0, index).trim();
|
|
663
663
|
}
|
|
664
664
|
|
|
665
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
665
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/HttpApiEndpoint.js
|
|
666
666
|
var TypeId = "~effect/httpapi/HttpApiEndpoint";
|
|
667
667
|
var isHttpApiEndpoint = (u) => hasProperty(u, TypeId);
|
|
668
668
|
function getPayloadSchemas(endpoint2) {
|
|
@@ -989,7 +989,7 @@ var del = /* @__PURE__ */ make3("DELETE");
|
|
|
989
989
|
var head = /* @__PURE__ */ make3("HEAD");
|
|
990
990
|
var options = /* @__PURE__ */ make3("OPTIONS");
|
|
991
991
|
|
|
992
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
992
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/HttpApi.js
|
|
993
993
|
var TypeId2 = "~effect/httpapi/HttpApi";
|
|
994
994
|
var isHttpApi = (u) => hasProperty(u, TypeId2);
|
|
995
995
|
var Proto2 = {
|
|
@@ -1109,7 +1109,7 @@ var AdditionalSchemas = class extends (/* @__PURE__ */ Service()("effect/httpapi
|
|
|
1109
1109
|
var ParseOptions = class extends (/* @__PURE__ */ Service()("effect/httpapi/HttpApi/ParseOptions")) {
|
|
1110
1110
|
};
|
|
1111
1111
|
|
|
1112
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
1112
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/internal/path.js
|
|
1113
1113
|
var emptyParamNames = /* @__PURE__ */ new Set();
|
|
1114
1114
|
function getParamNames(schema) {
|
|
1115
1115
|
if (schema === void 0) return emptyParamNames;
|
|
@@ -1117,7 +1117,7 @@ function getParamNames(schema) {
|
|
|
1117
1117
|
return isObjects(ast) && ast.indexSignatures.length === 0 ? new Set(ast.propertySignatures.map((ps) => String(ps.name))) : void 0;
|
|
1118
1118
|
}
|
|
1119
1119
|
|
|
1120
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
1120
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/HttpApiClient.js
|
|
1121
1121
|
var HttpApiClient_exports = {};
|
|
1122
1122
|
__export(HttpApiClient_exports, {
|
|
1123
1123
|
endpoint: () => endpoint,
|
|
@@ -1632,7 +1632,7 @@ function getEncodePayloadSchemaFromBody(schema, method) {
|
|
|
1632
1632
|
return out;
|
|
1633
1633
|
}
|
|
1634
1634
|
|
|
1635
|
-
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@
|
|
1635
|
+
// ../../node_modules/.bun/effect@https+++pkg.pr.new+Effect-TS+effect+effect@c7d1ffff31a3e2ae0b0b+a654a55b752bdb24/node_modules/effect/dist/unstable/httpapi/HttpApiGroup.js
|
|
1636
1636
|
var HttpApiGroup_exports = {};
|
|
1637
1637
|
__export(HttpApiGroup_exports, {
|
|
1638
1638
|
isHttpApiGroup: () => isHttpApiGroup,
|
|
@@ -1784,10 +1784,7 @@ var AppUiApi = HttpApi_exports.make("app-ui").add(
|
|
|
1784
1784
|
);
|
|
1785
1785
|
|
|
1786
1786
|
export {
|
|
1787
|
-
HttpApiEndpoint_exports,
|
|
1788
|
-
HttpApi_exports,
|
|
1789
1787
|
HttpApiClient_exports,
|
|
1790
|
-
HttpApiGroup_exports,
|
|
1791
1788
|
UiContext,
|
|
1792
1789
|
UiOperation,
|
|
1793
1790
|
UiUnauthorized,
|