@keystrokehq/cli 0.1.5 → 0.1.6
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 +8 -9
- package/dist/dist-CWgqwAeq.mjs +19268 -0
- package/dist/dist-CWgqwAeq.mjs.map +1 -0
- package/dist/dist-DohqaxIM.mjs +3 -0
- package/dist/{dist-C3YClLXV.mjs → dist-H53GUsol.mjs} +775 -73
- package/dist/dist-H53GUsol.mjs.map +1 -0
- package/dist/{dist-B9XaHV_2.mjs → dist-jchdNGBU.mjs} +57 -20
- package/dist/dist-jchdNGBU.mjs.map +1 -0
- package/dist/index.mjs +551 -225
- package/dist/index.mjs.map +1 -1
- package/dist/{maybe-auto-update-DHt-mVf1.mjs → maybe-auto-update-ClXO7U-6.mjs} +2 -2
- package/dist/{maybe-auto-update-DHt-mVf1.mjs.map → maybe-auto-update-ClXO7U-6.mjs.map} +1 -1
- package/dist/pack-artifact-DVnIKrsg-CETr40a-.mjs +112 -0
- package/dist/pack-artifact-DVnIKrsg-CETr40a-.mjs.map +1 -0
- package/dist/skills-bundle/_AGENTS.md +7 -7
- package/dist/skills-bundle/skills/keystroke-actions/SKILL.md +39 -7
- package/dist/skills-bundle/skills/keystroke-actions/references/catalog-and-imports.md +25 -19
- package/dist/skills-bundle/skills/keystroke-agents/SKILL.md +7 -5
- package/dist/skills-bundle/skills/keystroke-apps/SKILL.md +133 -0
- package/dist/skills-bundle/skills/keystroke-apps/references/cli-and-catalog.md +66 -0
- package/dist/skills-bundle/skills/keystroke-cli/SKILL.md +3 -3
- package/dist/skills-bundle/skills/keystroke-cli/references/api-targets.md +6 -5
- package/dist/skills-bundle/skills/keystroke-deploy/SKILL.md +2 -2
- package/dist/skills-bundle/skills/keystroke-files/SKILL.md +6 -5
- package/dist/skills-bundle/skills/keystroke-gateways/SKILL.md +2 -2
- package/dist/skills-bundle/skills/keystroke-gateways/references/slack-setup.md +1 -1
- package/dist/skills-bundle/skills/keystroke-skills/SKILL.md +1 -1
- package/dist/skills-bundle/skills/keystroke-workflows/SKILL.md +1 -1
- package/dist/skills-bundle/skills/keystroke-workflows/references/authoring.md +2 -2
- package/dist/templates/hello-world/.env.example +1 -15
- package/dist/templates/hello-world/README.md +1 -1
- package/dist/templates/hello-world/package.json +1 -1
- package/dist/{version-BOm_5ar9.mjs → version-CiPDVUdk.mjs} +10 -14
- package/dist/version-CiPDVUdk.mjs.map +1 -0
- package/package.json +8 -2
- package/dist/dist-B9XaHV_2.mjs.map +0 -1
- package/dist/dist-C3YClLXV.mjs.map +0 -1
- package/dist/dist-D_-88U7y.mjs +0 -1887
- package/dist/dist-D_-88U7y.mjs.map +0 -1
- package/dist/dist-iKd6nzBK.mjs +0 -3
- package/dist/skills-bundle/skills/keystroke-credentials/SKILL.md +0 -108
- package/dist/skills-bundle/skills/keystroke-credentials/references/cli-and-oauth.md +0 -51
- package/dist/version-BOm_5ar9.mjs.map +0 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
//#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js
|
|
3
3
|
var _a$1;
|
|
4
|
+
/** A special constant with type `never` */
|
|
5
|
+
const NEVER = /* @__PURE__ */ Object.freeze({ status: "aborted" });
|
|
4
6
|
function $constructor(name, initializer, params) {
|
|
5
7
|
function init(inst, def) {
|
|
6
8
|
if (!inst._zod) Object.defineProperty(inst, "_zod", {
|
|
@@ -607,6 +609,7 @@ const string$1 = (params) => {
|
|
|
607
609
|
const integer = /^-?\d+$/;
|
|
608
610
|
const number$2 = /^-?\d+(?:\.\d+)?$/;
|
|
609
611
|
const boolean$1 = /^(?:true|false)$/i;
|
|
612
|
+
const _null$2 = /^null$/i;
|
|
610
613
|
const lowercase = /^[^A-Z]*$/;
|
|
611
614
|
const uppercase = /^[^a-z]*$/;
|
|
612
615
|
//#endregion
|
|
@@ -1419,6 +1422,26 @@ const $ZodBoolean = /* @__PURE__ */ $constructor("$ZodBoolean", (inst, def) => {
|
|
|
1419
1422
|
return payload;
|
|
1420
1423
|
};
|
|
1421
1424
|
});
|
|
1425
|
+
const $ZodNull = /* @__PURE__ */ $constructor("$ZodNull", (inst, def) => {
|
|
1426
|
+
$ZodType.init(inst, def);
|
|
1427
|
+
inst._zod.pattern = _null$2;
|
|
1428
|
+
inst._zod.values = new Set([null]);
|
|
1429
|
+
inst._zod.parse = (payload, _ctx) => {
|
|
1430
|
+
const input = payload.value;
|
|
1431
|
+
if (input === null) return payload;
|
|
1432
|
+
payload.issues.push({
|
|
1433
|
+
expected: "null",
|
|
1434
|
+
code: "invalid_type",
|
|
1435
|
+
input,
|
|
1436
|
+
inst
|
|
1437
|
+
});
|
|
1438
|
+
return payload;
|
|
1439
|
+
};
|
|
1440
|
+
});
|
|
1441
|
+
const $ZodAny = /* @__PURE__ */ $constructor("$ZodAny", (inst, def) => {
|
|
1442
|
+
$ZodType.init(inst, def);
|
|
1443
|
+
inst._zod.parse = (payload) => payload;
|
|
1444
|
+
});
|
|
1422
1445
|
const $ZodUnknown = /* @__PURE__ */ $constructor("$ZodUnknown", (inst, def) => {
|
|
1423
1446
|
$ZodType.init(inst, def);
|
|
1424
1447
|
inst._zod.parse = (payload) => payload;
|
|
@@ -2340,6 +2363,9 @@ function handlePipeResult(left, next, ctx) {
|
|
|
2340
2363
|
fallback: left.fallback
|
|
2341
2364
|
}, ctx);
|
|
2342
2365
|
}
|
|
2366
|
+
const $ZodPreprocess = /* @__PURE__ */ $constructor("$ZodPreprocess", (inst, def) => {
|
|
2367
|
+
$ZodPipe.init(inst, def);
|
|
2368
|
+
});
|
|
2343
2369
|
const $ZodReadonly = /* @__PURE__ */ $constructor("$ZodReadonly", (inst, def) => {
|
|
2344
2370
|
$ZodType.init(inst, def);
|
|
2345
2371
|
defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues);
|
|
@@ -2805,6 +2831,17 @@ function _boolean(Class, params) {
|
|
|
2805
2831
|
});
|
|
2806
2832
|
}
|
|
2807
2833
|
/* @__NO_SIDE_EFFECTS__ */
|
|
2834
|
+
function _null$1(Class, params) {
|
|
2835
|
+
return new Class({
|
|
2836
|
+
type: "null",
|
|
2837
|
+
...normalizeParams(params)
|
|
2838
|
+
});
|
|
2839
|
+
}
|
|
2840
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
2841
|
+
function _any(Class) {
|
|
2842
|
+
return new Class({ type: "any" });
|
|
2843
|
+
}
|
|
2844
|
+
/* @__NO_SIDE_EFFECTS__ */
|
|
2808
2845
|
function _unknown(Class) {
|
|
2809
2846
|
return new Class({ type: "unknown" });
|
|
2810
2847
|
}
|
|
@@ -3038,7 +3075,7 @@ function initializeContext(params) {
|
|
|
3038
3075
|
external: params?.external ?? void 0
|
|
3039
3076
|
};
|
|
3040
3077
|
}
|
|
3041
|
-
function process(schema, ctx, _params = {
|
|
3078
|
+
function process$1(schema, ctx, _params = {
|
|
3042
3079
|
path: [],
|
|
3043
3080
|
schemaPath: []
|
|
3044
3081
|
}) {
|
|
@@ -3075,7 +3112,7 @@ function process(schema, ctx, _params = {
|
|
|
3075
3112
|
const parent = schema._zod.parent;
|
|
3076
3113
|
if (parent) {
|
|
3077
3114
|
if (!result.ref) result.ref = parent;
|
|
3078
|
-
process(parent, ctx, params);
|
|
3115
|
+
process$1(parent, ctx, params);
|
|
3079
3116
|
ctx.seen.get(parent).isParent = true;
|
|
3080
3117
|
}
|
|
3081
3118
|
}
|
|
@@ -3295,7 +3332,7 @@ const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {
|
|
|
3295
3332
|
...params,
|
|
3296
3333
|
processors
|
|
3297
3334
|
});
|
|
3298
|
-
process(schema, ctx);
|
|
3335
|
+
process$1(schema, ctx);
|
|
3299
3336
|
extractDefs(ctx, schema);
|
|
3300
3337
|
return finalize(ctx, schema);
|
|
3301
3338
|
};
|
|
@@ -3307,7 +3344,7 @@ const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params)
|
|
|
3307
3344
|
io,
|
|
3308
3345
|
processors
|
|
3309
3346
|
});
|
|
3310
|
-
process(schema, ctx);
|
|
3347
|
+
process$1(schema, ctx);
|
|
3311
3348
|
extractDefs(ctx, schema);
|
|
3312
3349
|
return finalize(ctx, schema);
|
|
3313
3350
|
};
|
|
@@ -3473,7 +3510,7 @@ const arrayProcessor = (schema, ctx, _json, params) => {
|
|
|
3473
3510
|
if (typeof minimum === "number") json.minItems = minimum;
|
|
3474
3511
|
if (typeof maximum === "number") json.maxItems = maximum;
|
|
3475
3512
|
json.type = "array";
|
|
3476
|
-
json.items = process(def.element, ctx, {
|
|
3513
|
+
json.items = process$1(def.element, ctx, {
|
|
3477
3514
|
...params,
|
|
3478
3515
|
path: [...params.path, "items"]
|
|
3479
3516
|
});
|
|
@@ -3484,7 +3521,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
3484
3521
|
json.type = "object";
|
|
3485
3522
|
json.properties = {};
|
|
3486
3523
|
const shape = def.shape;
|
|
3487
|
-
for (const key in shape) json.properties[key] = process(shape[key], ctx, {
|
|
3524
|
+
for (const key in shape) json.properties[key] = process$1(shape[key], ctx, {
|
|
3488
3525
|
...params,
|
|
3489
3526
|
path: [
|
|
3490
3527
|
...params.path,
|
|
@@ -3502,7 +3539,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
3502
3539
|
if (def.catchall?._zod.def.type === "never") json.additionalProperties = false;
|
|
3503
3540
|
else if (!def.catchall) {
|
|
3504
3541
|
if (ctx.io === "output") json.additionalProperties = false;
|
|
3505
|
-
} else if (def.catchall) json.additionalProperties = process(def.catchall, ctx, {
|
|
3542
|
+
} else if (def.catchall) json.additionalProperties = process$1(def.catchall, ctx, {
|
|
3506
3543
|
...params,
|
|
3507
3544
|
path: [...params.path, "additionalProperties"]
|
|
3508
3545
|
});
|
|
@@ -3510,7 +3547,7 @@ const objectProcessor = (schema, ctx, _json, params) => {
|
|
|
3510
3547
|
const unionProcessor = (schema, ctx, json, params) => {
|
|
3511
3548
|
const def = schema._zod.def;
|
|
3512
3549
|
const isExclusive = def.inclusive === false;
|
|
3513
|
-
const options = def.options.map((x, i) => process(x, ctx, {
|
|
3550
|
+
const options = def.options.map((x, i) => process$1(x, ctx, {
|
|
3514
3551
|
...params,
|
|
3515
3552
|
path: [
|
|
3516
3553
|
...params.path,
|
|
@@ -3523,7 +3560,7 @@ const unionProcessor = (schema, ctx, json, params) => {
|
|
|
3523
3560
|
};
|
|
3524
3561
|
const intersectionProcessor = (schema, ctx, json, params) => {
|
|
3525
3562
|
const def = schema._zod.def;
|
|
3526
|
-
const a = process(def.left, ctx, {
|
|
3563
|
+
const a = process$1(def.left, ctx, {
|
|
3527
3564
|
...params,
|
|
3528
3565
|
path: [
|
|
3529
3566
|
...params.path,
|
|
@@ -3531,7 +3568,7 @@ const intersectionProcessor = (schema, ctx, json, params) => {
|
|
|
3531
3568
|
0
|
|
3532
3569
|
]
|
|
3533
3570
|
});
|
|
3534
|
-
const b = process(def.right, ctx, {
|
|
3571
|
+
const b = process$1(def.right, ctx, {
|
|
3535
3572
|
...params,
|
|
3536
3573
|
path: [
|
|
3537
3574
|
...params.path,
|
|
@@ -3548,7 +3585,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
3548
3585
|
json.type = "array";
|
|
3549
3586
|
const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items";
|
|
3550
3587
|
const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
|
|
3551
|
-
const prefixItems = def.items.map((x, i) => process(x, ctx, {
|
|
3588
|
+
const prefixItems = def.items.map((x, i) => process$1(x, ctx, {
|
|
3552
3589
|
...params,
|
|
3553
3590
|
path: [
|
|
3554
3591
|
...params.path,
|
|
@@ -3556,7 +3593,7 @@ const tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
3556
3593
|
i
|
|
3557
3594
|
]
|
|
3558
3595
|
}));
|
|
3559
|
-
const rest = def.rest ? process(def.rest, ctx, {
|
|
3596
|
+
const rest = def.rest ? process$1(def.rest, ctx, {
|
|
3560
3597
|
...params,
|
|
3561
3598
|
path: [
|
|
3562
3599
|
...params.path,
|
|
@@ -3587,7 +3624,7 @@ const recordProcessor = (schema, ctx, _json, params) => {
|
|
|
3587
3624
|
const keyType = def.keyType;
|
|
3588
3625
|
const patterns = keyType._zod.bag?.patterns;
|
|
3589
3626
|
if (def.mode === "loose" && patterns && patterns.size > 0) {
|
|
3590
|
-
const valueSchema = process(def.valueType, ctx, {
|
|
3627
|
+
const valueSchema = process$1(def.valueType, ctx, {
|
|
3591
3628
|
...params,
|
|
3592
3629
|
path: [
|
|
3593
3630
|
...params.path,
|
|
@@ -3598,11 +3635,11 @@ const recordProcessor = (schema, ctx, _json, params) => {
|
|
|
3598
3635
|
json.patternProperties = {};
|
|
3599
3636
|
for (const pattern of patterns) json.patternProperties[pattern.source] = valueSchema;
|
|
3600
3637
|
} else {
|
|
3601
|
-
if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") json.propertyNames = process(def.keyType, ctx, {
|
|
3638
|
+
if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") json.propertyNames = process$1(def.keyType, ctx, {
|
|
3602
3639
|
...params,
|
|
3603
3640
|
path: [...params.path, "propertyNames"]
|
|
3604
3641
|
});
|
|
3605
|
-
json.additionalProperties = process(def.valueType, ctx, {
|
|
3642
|
+
json.additionalProperties = process$1(def.valueType, ctx, {
|
|
3606
3643
|
...params,
|
|
3607
3644
|
path: [...params.path, "additionalProperties"]
|
|
3608
3645
|
});
|
|
@@ -3615,7 +3652,7 @@ const recordProcessor = (schema, ctx, _json, params) => {
|
|
|
3615
3652
|
};
|
|
3616
3653
|
const nullableProcessor = (schema, ctx, json, params) => {
|
|
3617
3654
|
const def = schema._zod.def;
|
|
3618
|
-
const inner = process(def.innerType, ctx, params);
|
|
3655
|
+
const inner = process$1(def.innerType, ctx, params);
|
|
3619
3656
|
const seen = ctx.seen.get(schema);
|
|
3620
3657
|
if (ctx.target === "openapi-3.0") {
|
|
3621
3658
|
seen.ref = def.innerType;
|
|
@@ -3624,27 +3661,27 @@ const nullableProcessor = (schema, ctx, json, params) => {
|
|
|
3624
3661
|
};
|
|
3625
3662
|
const nonoptionalProcessor = (schema, ctx, _json, params) => {
|
|
3626
3663
|
const def = schema._zod.def;
|
|
3627
|
-
process(def.innerType, ctx, params);
|
|
3664
|
+
process$1(def.innerType, ctx, params);
|
|
3628
3665
|
const seen = ctx.seen.get(schema);
|
|
3629
3666
|
seen.ref = def.innerType;
|
|
3630
3667
|
};
|
|
3631
3668
|
const defaultProcessor = (schema, ctx, json, params) => {
|
|
3632
3669
|
const def = schema._zod.def;
|
|
3633
|
-
process(def.innerType, ctx, params);
|
|
3670
|
+
process$1(def.innerType, ctx, params);
|
|
3634
3671
|
const seen = ctx.seen.get(schema);
|
|
3635
3672
|
seen.ref = def.innerType;
|
|
3636
3673
|
json.default = JSON.parse(JSON.stringify(def.defaultValue));
|
|
3637
3674
|
};
|
|
3638
3675
|
const prefaultProcessor = (schema, ctx, json, params) => {
|
|
3639
3676
|
const def = schema._zod.def;
|
|
3640
|
-
process(def.innerType, ctx, params);
|
|
3677
|
+
process$1(def.innerType, ctx, params);
|
|
3641
3678
|
const seen = ctx.seen.get(schema);
|
|
3642
3679
|
seen.ref = def.innerType;
|
|
3643
3680
|
if (ctx.io === "input") json._prefault = JSON.parse(JSON.stringify(def.defaultValue));
|
|
3644
3681
|
};
|
|
3645
3682
|
const catchProcessor = (schema, ctx, json, params) => {
|
|
3646
3683
|
const def = schema._zod.def;
|
|
3647
|
-
process(def.innerType, ctx, params);
|
|
3684
|
+
process$1(def.innerType, ctx, params);
|
|
3648
3685
|
const seen = ctx.seen.get(schema);
|
|
3649
3686
|
seen.ref = def.innerType;
|
|
3650
3687
|
let catchValue;
|
|
@@ -3659,32 +3696,32 @@ const pipeProcessor = (schema, ctx, _json, params) => {
|
|
|
3659
3696
|
const def = schema._zod.def;
|
|
3660
3697
|
const inIsTransform = def.in._zod.traits.has("$ZodTransform");
|
|
3661
3698
|
const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out;
|
|
3662
|
-
process(innerType, ctx, params);
|
|
3699
|
+
process$1(innerType, ctx, params);
|
|
3663
3700
|
const seen = ctx.seen.get(schema);
|
|
3664
3701
|
seen.ref = innerType;
|
|
3665
3702
|
};
|
|
3666
3703
|
const readonlyProcessor = (schema, ctx, json, params) => {
|
|
3667
3704
|
const def = schema._zod.def;
|
|
3668
|
-
process(def.innerType, ctx, params);
|
|
3705
|
+
process$1(def.innerType, ctx, params);
|
|
3669
3706
|
const seen = ctx.seen.get(schema);
|
|
3670
3707
|
seen.ref = def.innerType;
|
|
3671
3708
|
json.readOnly = true;
|
|
3672
3709
|
};
|
|
3673
3710
|
const promiseProcessor = (schema, ctx, _json, params) => {
|
|
3674
3711
|
const def = schema._zod.def;
|
|
3675
|
-
process(def.innerType, ctx, params);
|
|
3712
|
+
process$1(def.innerType, ctx, params);
|
|
3676
3713
|
const seen = ctx.seen.get(schema);
|
|
3677
3714
|
seen.ref = def.innerType;
|
|
3678
3715
|
};
|
|
3679
3716
|
const optionalProcessor = (schema, ctx, _json, params) => {
|
|
3680
3717
|
const def = schema._zod.def;
|
|
3681
|
-
process(def.innerType, ctx, params);
|
|
3718
|
+
process$1(def.innerType, ctx, params);
|
|
3682
3719
|
const seen = ctx.seen.get(schema);
|
|
3683
3720
|
seen.ref = def.innerType;
|
|
3684
3721
|
};
|
|
3685
3722
|
const lazyProcessor = (schema, ctx, _json, params) => {
|
|
3686
3723
|
const innerType = schema._zod.innerType;
|
|
3687
|
-
process(innerType, ctx, params);
|
|
3724
|
+
process$1(innerType, ctx, params);
|
|
3688
3725
|
const seen = ctx.seen.get(schema);
|
|
3689
3726
|
seen.ref = innerType;
|
|
3690
3727
|
};
|
|
@@ -3739,7 +3776,7 @@ function toJSONSchema(input, params) {
|
|
|
3739
3776
|
const defs = {};
|
|
3740
3777
|
for (const entry of registry._idmap.entries()) {
|
|
3741
3778
|
const [_, schema] = entry;
|
|
3742
|
-
process(schema, ctx);
|
|
3779
|
+
process$1(schema, ctx);
|
|
3743
3780
|
}
|
|
3744
3781
|
const schemas = {};
|
|
3745
3782
|
ctx.external = {
|
|
@@ -3759,7 +3796,7 @@ function toJSONSchema(input, params) {
|
|
|
3759
3796
|
...params,
|
|
3760
3797
|
processors: allProcessors
|
|
3761
3798
|
});
|
|
3762
|
-
process(input, ctx);
|
|
3799
|
+
process$1(input, ctx);
|
|
3763
3800
|
extractDefs(ctx, input);
|
|
3764
3801
|
return finalize(ctx, input);
|
|
3765
3802
|
}
|
|
@@ -4247,6 +4284,22 @@ const ZodBoolean = /* @__PURE__ */ $constructor("ZodBoolean", (inst, def) => {
|
|
|
4247
4284
|
function boolean(params) {
|
|
4248
4285
|
return /* @__PURE__ */ _boolean(ZodBoolean, params);
|
|
4249
4286
|
}
|
|
4287
|
+
const ZodNull = /* @__PURE__ */ $constructor("ZodNull", (inst, def) => {
|
|
4288
|
+
$ZodNull.init(inst, def);
|
|
4289
|
+
ZodType.init(inst, def);
|
|
4290
|
+
inst._zod.processJSONSchema = (ctx, json, params) => nullProcessor(inst, ctx, json, params);
|
|
4291
|
+
});
|
|
4292
|
+
function _null(params) {
|
|
4293
|
+
return /* @__PURE__ */ _null$1(ZodNull, params);
|
|
4294
|
+
}
|
|
4295
|
+
const ZodAny = /* @__PURE__ */ $constructor("ZodAny", (inst, def) => {
|
|
4296
|
+
$ZodAny.init(inst, def);
|
|
4297
|
+
ZodType.init(inst, def);
|
|
4298
|
+
inst._zod.processJSONSchema = (ctx, json, params) => void 0;
|
|
4299
|
+
});
|
|
4300
|
+
function any() {
|
|
4301
|
+
return /* @__PURE__ */ _any(ZodAny);
|
|
4302
|
+
}
|
|
4250
4303
|
const ZodUnknown = /* @__PURE__ */ $constructor("ZodUnknown", (inst, def) => {
|
|
4251
4304
|
$ZodUnknown.init(inst, def);
|
|
4252
4305
|
ZodType.init(inst, def);
|
|
@@ -4360,6 +4413,14 @@ function object(shape, params) {
|
|
|
4360
4413
|
...normalizeParams(params)
|
|
4361
4414
|
});
|
|
4362
4415
|
}
|
|
4416
|
+
function looseObject(shape, params) {
|
|
4417
|
+
return new ZodObject({
|
|
4418
|
+
type: "object",
|
|
4419
|
+
shape,
|
|
4420
|
+
catchall: unknown(),
|
|
4421
|
+
...normalizeParams(params)
|
|
4422
|
+
});
|
|
4423
|
+
}
|
|
4363
4424
|
const ZodUnion = /* @__PURE__ */ $constructor("ZodUnion", (inst, def) => {
|
|
4364
4425
|
$ZodUnion.init(inst, def);
|
|
4365
4426
|
ZodType.init(inst, def);
|
|
@@ -4632,6 +4693,10 @@ function pipe(in_, out) {
|
|
|
4632
4693
|
out
|
|
4633
4694
|
});
|
|
4634
4695
|
}
|
|
4696
|
+
const ZodPreprocess = /* @__PURE__ */ $constructor("ZodPreprocess", (inst, def) => {
|
|
4697
|
+
ZodPipe.init(inst, def);
|
|
4698
|
+
$ZodPreprocess.init(inst, def);
|
|
4699
|
+
});
|
|
4635
4700
|
const ZodReadonly = /* @__PURE__ */ $constructor("ZodReadonly", (inst, def) => {
|
|
4636
4701
|
$ZodReadonly.init(inst, def);
|
|
4637
4702
|
ZodType.init(inst, def);
|
|
@@ -4670,6 +4735,13 @@ function refine(fn, _params = {}) {
|
|
|
4670
4735
|
function superRefine(fn, params) {
|
|
4671
4736
|
return /* @__PURE__ */ _superRefine(fn, params);
|
|
4672
4737
|
}
|
|
4738
|
+
function preprocess(fn, schema) {
|
|
4739
|
+
return new ZodPreprocess({
|
|
4740
|
+
type: "pipe",
|
|
4741
|
+
in: transform(fn),
|
|
4742
|
+
out: schema
|
|
4743
|
+
});
|
|
4744
|
+
}
|
|
4673
4745
|
//#endregion
|
|
4674
4746
|
//#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/coerce.js
|
|
4675
4747
|
function number(params) {
|
|
@@ -5053,6 +5125,7 @@ const LEGAL_TRUST_SLUGS = [
|
|
|
5053
5125
|
"compliance",
|
|
5054
5126
|
"cookie-policy",
|
|
5055
5127
|
"cookies",
|
|
5128
|
+
"data-use",
|
|
5056
5129
|
"disclose",
|
|
5057
5130
|
"dpa",
|
|
5058
5131
|
"eula",
|
|
@@ -5292,6 +5365,7 @@ const OrganizationSchema = object({
|
|
|
5292
5365
|
id: string(),
|
|
5293
5366
|
name: string(),
|
|
5294
5367
|
slug: OrganizationSlugSchema,
|
|
5368
|
+
verified: boolean(),
|
|
5295
5369
|
createdAt: isoDateTime$5,
|
|
5296
5370
|
updatedAt: isoDateTime$5
|
|
5297
5371
|
});
|
|
@@ -5380,6 +5454,15 @@ function listenPortFromPublicUrl(value, fallback) {
|
|
|
5380
5454
|
return fallback;
|
|
5381
5455
|
}
|
|
5382
5456
|
}
|
|
5457
|
+
const LOCAL_PLATFORM_ORIGIN = "http://localhost:3002";
|
|
5458
|
+
/** Reads `PUBLIC_PLATFORM_URL` when explicitly set. */
|
|
5459
|
+
function resolveExplicitPublicPlatformOrigin(env = process.env) {
|
|
5460
|
+
return env.PUBLIC_PLATFORM_URL?.replace(/\/$/, "") || void 0;
|
|
5461
|
+
}
|
|
5462
|
+
/** `PUBLIC_PLATFORM_URL` origin; falls back to {@link LOCAL_PLATFORM_ORIGIN} when unset. */
|
|
5463
|
+
function resolvePublicPlatformOrigin(env = process.env) {
|
|
5464
|
+
return resolveExplicitPublicPlatformOrigin(env) ?? "http://localhost:3002";
|
|
5465
|
+
}
|
|
5383
5466
|
/** On-disk path under the project root (packed in deploy artifacts when present). */
|
|
5384
5467
|
const ROUTE_MANIFEST_REL_PATH = "dist/.keystroke/route-manifest.json";
|
|
5385
5468
|
const StoredRouteManifestSkillSchema = object({
|
|
@@ -5392,6 +5475,10 @@ const attachmentSchemasSchema = record(string(), object({
|
|
|
5392
5475
|
requestSchema: record(string(), unknown()),
|
|
5393
5476
|
filterSchema: record(string(), unknown()).optional()
|
|
5394
5477
|
}));
|
|
5478
|
+
const attachmentMetaSchema = record(string(), object({
|
|
5479
|
+
name: string().optional(),
|
|
5480
|
+
description: string().optional()
|
|
5481
|
+
}));
|
|
5395
5482
|
const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
|
|
5396
5483
|
object({ kind: literal("health") }),
|
|
5397
5484
|
object({
|
|
@@ -5403,7 +5490,9 @@ const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
|
|
|
5403
5490
|
model: string(),
|
|
5404
5491
|
systemPrompt: string(),
|
|
5405
5492
|
toolCount: number$1().int().nonnegative(),
|
|
5406
|
-
credentialCount: number$1().int().nonnegative()
|
|
5493
|
+
credentialCount: number$1().int().nonnegative(),
|
|
5494
|
+
appSlugs: array(string()).default([]),
|
|
5495
|
+
toolSlugs: array(string()).default([])
|
|
5407
5496
|
}),
|
|
5408
5497
|
object({
|
|
5409
5498
|
kind: literal("workflow"),
|
|
@@ -5419,13 +5508,20 @@ const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
|
|
|
5419
5508
|
endpoint: string(),
|
|
5420
5509
|
attachmentIds: array(string()),
|
|
5421
5510
|
moduleFile: string(),
|
|
5422
|
-
|
|
5511
|
+
/** sha256 of the trigger source file, baked at build time for overview change-detection. */
|
|
5512
|
+
sourceHash: string().optional(),
|
|
5513
|
+
attachmentSchemas: attachmentSchemasSchema,
|
|
5514
|
+
attachmentMeta: attachmentMetaSchema.optional()
|
|
5423
5515
|
}),
|
|
5424
5516
|
object({
|
|
5425
5517
|
kind: literal("trigger-poll"),
|
|
5426
5518
|
attachmentId: string(),
|
|
5519
|
+
attachmentIds: array(string()),
|
|
5427
5520
|
moduleFile: string(),
|
|
5428
|
-
|
|
5521
|
+
sourceHash: string().optional(),
|
|
5522
|
+
schedule: string(),
|
|
5523
|
+
name: string().optional(),
|
|
5524
|
+
description: string().optional()
|
|
5429
5525
|
}),
|
|
5430
5526
|
object({
|
|
5431
5527
|
kind: literal("trigger-poll-group"),
|
|
@@ -5437,16 +5533,180 @@ const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
|
|
|
5437
5533
|
object({
|
|
5438
5534
|
kind: literal("cron-schedule"),
|
|
5439
5535
|
attachmentId: string(),
|
|
5536
|
+
attachmentIds: array(string()),
|
|
5440
5537
|
moduleFile: string(),
|
|
5441
|
-
|
|
5538
|
+
sourceHash: string().optional(),
|
|
5539
|
+
schedule: string(),
|
|
5540
|
+
name: string().optional(),
|
|
5541
|
+
description: string().optional()
|
|
5442
5542
|
})
|
|
5443
5543
|
]);
|
|
5444
|
-
const
|
|
5544
|
+
const storedRouteManifestV2Schema = object({
|
|
5445
5545
|
version: literal(2),
|
|
5446
5546
|
entries: array(storedRouteManifestEntryV2Schema),
|
|
5447
5547
|
skills: array(StoredRouteManifestSkillSchema).default([]),
|
|
5448
5548
|
integrations: array(string()).optional()
|
|
5449
5549
|
});
|
|
5550
|
+
const DERIVED_ENTRY_KINDS = new Set([
|
|
5551
|
+
"agent-sessions-list",
|
|
5552
|
+
"agent-session-detail",
|
|
5553
|
+
"workflow-runs-list",
|
|
5554
|
+
"workflow-run-detail",
|
|
5555
|
+
"trigger-runs-list",
|
|
5556
|
+
"trigger-run-detail"
|
|
5557
|
+
]);
|
|
5558
|
+
function webhookEndpointFromPath(path) {
|
|
5559
|
+
return path.replace(/^\/triggers\//, "").replace(/^\/+|\/+$/g, "");
|
|
5560
|
+
}
|
|
5561
|
+
function legacyAgentAppSlugs(entry) {
|
|
5562
|
+
if (Array.isArray(entry.appSlugs)) return entry.appSlugs;
|
|
5563
|
+
if (Array.isArray(entry.credentialSlugs)) return entry.credentialSlugs;
|
|
5564
|
+
if (Array.isArray(entry.credentialKeys)) return entry.credentialKeys;
|
|
5565
|
+
return [];
|
|
5566
|
+
}
|
|
5567
|
+
/** TODO remove after all artifacts rebuilt — upcasts legacy v1 manifests to v2. */
|
|
5568
|
+
function normalizeEntryToV2(entry) {
|
|
5569
|
+
const kind = entry.kind;
|
|
5570
|
+
if (typeof kind !== "string") return null;
|
|
5571
|
+
if (DERIVED_ENTRY_KINDS.has(kind) || kind === "plugin") return null;
|
|
5572
|
+
if (kind === "health") return { kind: "health" };
|
|
5573
|
+
if (kind === "agent") {
|
|
5574
|
+
const slug = typeof entry.slug === "string" ? entry.slug : typeof entry.agentSlug === "string" ? entry.agentSlug : void 0;
|
|
5575
|
+
if (!slug || typeof entry.moduleFile !== "string") return null;
|
|
5576
|
+
return {
|
|
5577
|
+
kind: "agent",
|
|
5578
|
+
slug,
|
|
5579
|
+
moduleFile: entry.moduleFile,
|
|
5580
|
+
...typeof entry.name === "string" ? { name: entry.name } : {},
|
|
5581
|
+
...typeof entry.description === "string" ? { description: entry.description } : {},
|
|
5582
|
+
model: typeof entry.model === "string" ? entry.model : "",
|
|
5583
|
+
systemPrompt: typeof entry.systemPrompt === "string" ? entry.systemPrompt : "",
|
|
5584
|
+
toolCount: typeof entry.toolCount === "number" ? entry.toolCount : 0,
|
|
5585
|
+
credentialCount: typeof entry.credentialCount === "number" ? entry.credentialCount : 0,
|
|
5586
|
+
appSlugs: legacyAgentAppSlugs(entry),
|
|
5587
|
+
toolSlugs: Array.isArray(entry.toolSlugs) ? entry.toolSlugs : []
|
|
5588
|
+
};
|
|
5589
|
+
}
|
|
5590
|
+
if (kind === "workflow") {
|
|
5591
|
+
const slug = typeof entry.slug === "string" ? entry.slug : typeof entry.workflowSlug === "string" ? entry.workflowSlug : void 0;
|
|
5592
|
+
if (!slug || typeof entry.moduleFile !== "string") return null;
|
|
5593
|
+
const name = typeof entry.name === "string" ? entry.name : typeof entry.workflowName === "string" ? entry.workflowName : void 0;
|
|
5594
|
+
return {
|
|
5595
|
+
kind: "workflow",
|
|
5596
|
+
slug,
|
|
5597
|
+
moduleFile: entry.moduleFile,
|
|
5598
|
+
...name ? { name } : {},
|
|
5599
|
+
...typeof entry.description === "string" ? { description: entry.description } : {},
|
|
5600
|
+
subscribable: entry.subscribable === true,
|
|
5601
|
+
requestSchema: entry.requestSchema && typeof entry.requestSchema === "object" ? entry.requestSchema : {}
|
|
5602
|
+
};
|
|
5603
|
+
}
|
|
5604
|
+
if (kind === "trigger-webhook") {
|
|
5605
|
+
if (typeof entry.moduleFile !== "string" || !Array.isArray(entry.attachmentIds)) return null;
|
|
5606
|
+
const endpoint = typeof entry.endpoint === "string" ? entry.endpoint : typeof entry.path === "string" ? webhookEndpointFromPath(entry.path) : void 0;
|
|
5607
|
+
if (!endpoint) return null;
|
|
5608
|
+
return {
|
|
5609
|
+
kind: "trigger-webhook",
|
|
5610
|
+
endpoint,
|
|
5611
|
+
attachmentIds: entry.attachmentIds,
|
|
5612
|
+
moduleFile: entry.moduleFile,
|
|
5613
|
+
...typeof entry.sourceHash === "string" ? { sourceHash: entry.sourceHash } : {},
|
|
5614
|
+
attachmentSchemas: entry.attachmentSchemas && typeof entry.attachmentSchemas === "object" ? entry.attachmentSchemas : {},
|
|
5615
|
+
...entry.attachmentMeta && typeof entry.attachmentMeta === "object" ? { attachmentMeta: entry.attachmentMeta } : {}
|
|
5616
|
+
};
|
|
5617
|
+
}
|
|
5618
|
+
if (kind === "trigger-poll") {
|
|
5619
|
+
if (typeof entry.attachmentId !== "string" || typeof entry.moduleFile !== "string" || typeof entry.schedule !== "string") return null;
|
|
5620
|
+
return {
|
|
5621
|
+
kind: "trigger-poll",
|
|
5622
|
+
attachmentId: entry.attachmentId,
|
|
5623
|
+
attachmentIds: Array.isArray(entry.attachmentIds) ? entry.attachmentIds : [entry.attachmentId],
|
|
5624
|
+
moduleFile: entry.moduleFile,
|
|
5625
|
+
...typeof entry.sourceHash === "string" ? { sourceHash: entry.sourceHash } : {},
|
|
5626
|
+
schedule: entry.schedule,
|
|
5627
|
+
...typeof entry.name === "string" ? { name: entry.name } : {},
|
|
5628
|
+
...typeof entry.description === "string" ? { description: entry.description } : {}
|
|
5629
|
+
};
|
|
5630
|
+
}
|
|
5631
|
+
if (kind === "trigger-poll-group") {
|
|
5632
|
+
if (typeof entry.pollId !== "string" || typeof entry.moduleFile !== "string" || typeof entry.schedule !== "string" || !Array.isArray(entry.attachmentIds)) return null;
|
|
5633
|
+
return {
|
|
5634
|
+
kind: "trigger-poll-group",
|
|
5635
|
+
pollId: entry.pollId,
|
|
5636
|
+
attachmentIds: entry.attachmentIds,
|
|
5637
|
+
moduleFile: entry.moduleFile,
|
|
5638
|
+
schedule: entry.schedule
|
|
5639
|
+
};
|
|
5640
|
+
}
|
|
5641
|
+
if (kind === "cron-schedule") {
|
|
5642
|
+
if (typeof entry.attachmentId !== "string" || typeof entry.moduleFile !== "string" || typeof entry.schedule !== "string") return null;
|
|
5643
|
+
return {
|
|
5644
|
+
kind: "cron-schedule",
|
|
5645
|
+
attachmentId: entry.attachmentId,
|
|
5646
|
+
attachmentIds: Array.isArray(entry.attachmentIds) ? entry.attachmentIds : [entry.attachmentId],
|
|
5647
|
+
moduleFile: entry.moduleFile,
|
|
5648
|
+
...typeof entry.sourceHash === "string" ? { sourceHash: entry.sourceHash } : {},
|
|
5649
|
+
schedule: entry.schedule,
|
|
5650
|
+
...typeof entry.name === "string" ? { name: entry.name } : {},
|
|
5651
|
+
...typeof entry.description === "string" ? { description: entry.description } : {}
|
|
5652
|
+
};
|
|
5653
|
+
}
|
|
5654
|
+
return null;
|
|
5655
|
+
}
|
|
5656
|
+
/** TODO remove after all artifacts rebuilt — upcasts legacy v1 manifests to v2. */
|
|
5657
|
+
function normalizeV2ManifestInput(value) {
|
|
5658
|
+
if (!value || typeof value !== "object") return value;
|
|
5659
|
+
const raw = value;
|
|
5660
|
+
if (raw.version !== 2 || !Array.isArray(raw.entries)) return value;
|
|
5661
|
+
return {
|
|
5662
|
+
...raw,
|
|
5663
|
+
entries: raw.entries.map((entry) => {
|
|
5664
|
+
if (!entry || typeof entry !== "object") return entry;
|
|
5665
|
+
const kind = entry.kind;
|
|
5666
|
+
if (kind === "trigger-poll" || kind === "cron-schedule" || kind === "trigger-webhook" || kind === "trigger-poll-group") {
|
|
5667
|
+
const trigger = entry;
|
|
5668
|
+
if (Array.isArray(trigger.attachmentIds)) return entry;
|
|
5669
|
+
return {
|
|
5670
|
+
...trigger,
|
|
5671
|
+
attachmentIds: typeof trigger.attachmentId === "string" ? [trigger.attachmentId] : []
|
|
5672
|
+
};
|
|
5673
|
+
}
|
|
5674
|
+
if (kind !== "agent") return entry;
|
|
5675
|
+
const agent = entry;
|
|
5676
|
+
if (Array.isArray(agent.appSlugs)) return entry;
|
|
5677
|
+
const appSlugs = legacyAgentAppSlugs(agent);
|
|
5678
|
+
if (appSlugs.length === 0) return entry;
|
|
5679
|
+
const { credentialKeys: _credentialKeys, credentialSlugs: _credentialSlugs, ...rest } = agent;
|
|
5680
|
+
return {
|
|
5681
|
+
...rest,
|
|
5682
|
+
appSlugs,
|
|
5683
|
+
toolSlugs: Array.isArray(agent.toolSlugs) ? agent.toolSlugs : []
|
|
5684
|
+
};
|
|
5685
|
+
})
|
|
5686
|
+
};
|
|
5687
|
+
}
|
|
5688
|
+
/** TODO remove after all artifacts rebuilt — upcasts legacy v1 manifests to v2. */
|
|
5689
|
+
function normalizeStoredRouteManifestToV2(value) {
|
|
5690
|
+
if (!value || typeof value !== "object") throw new Error("Invalid route manifest");
|
|
5691
|
+
const raw = value;
|
|
5692
|
+
if (raw.version === 2) return storedRouteManifestV2Schema.parse(normalizeV2ManifestInput(value));
|
|
5693
|
+
const entriesRaw = Array.isArray(raw.entries) ? raw.entries : [];
|
|
5694
|
+
const entries = [];
|
|
5695
|
+
for (const entry of entriesRaw) {
|
|
5696
|
+
if (!entry || typeof entry !== "object") continue;
|
|
5697
|
+
const normalized = normalizeEntryToV2(entry);
|
|
5698
|
+
if (normalized) entries.push(normalized);
|
|
5699
|
+
}
|
|
5700
|
+
return storedRouteManifestV2Schema.parse({
|
|
5701
|
+
version: 2,
|
|
5702
|
+
entries,
|
|
5703
|
+
skills: raw.skills ?? [],
|
|
5704
|
+
integrations: raw.integrations
|
|
5705
|
+
});
|
|
5706
|
+
}
|
|
5707
|
+
function parseStoredRouteManifest(value) {
|
|
5708
|
+
return normalizeStoredRouteManifestToV2(value);
|
|
5709
|
+
}
|
|
5450
5710
|
/** Messaging platforms that support agent gateway bindings. */
|
|
5451
5711
|
const ChannelPlatformKeySchema = _enum(["slack"]);
|
|
5452
5712
|
const ChannelReactionSupportSchema = _enum([
|
|
@@ -5495,6 +5755,8 @@ const AppGatewaySchema = object({
|
|
|
5495
5755
|
}),
|
|
5496
5756
|
supportsChannelDirectory: boolean(),
|
|
5497
5757
|
webhookPathHint: string().min(1),
|
|
5758
|
+
/** Composio/keystroke app slug for Connect when it differs from the gateway platform key (e.g. slack → slackbot). */
|
|
5759
|
+
connectAppId: string().min(1).optional(),
|
|
5498
5760
|
docsUrl: string().url().optional(),
|
|
5499
5761
|
tagline: string().min(1).optional()
|
|
5500
5762
|
});
|
|
@@ -5506,7 +5768,11 @@ const ChannelPlatformSchema = object({
|
|
|
5506
5768
|
fallbackDomain: string().min(1),
|
|
5507
5769
|
description: string().min(1),
|
|
5508
5770
|
tagline: string().min(1),
|
|
5509
|
-
authKind: _enum([
|
|
5771
|
+
authKind: _enum([
|
|
5772
|
+
"oauth",
|
|
5773
|
+
"api_key",
|
|
5774
|
+
"keystroke"
|
|
5775
|
+
]),
|
|
5510
5776
|
credentialFields: array(object({
|
|
5511
5777
|
key: string().min(1),
|
|
5512
5778
|
label: string().min(1),
|
|
@@ -5528,6 +5794,7 @@ const ChannelPlatformSchema = object({
|
|
|
5528
5794
|
}),
|
|
5529
5795
|
webhookPathHint: string().min(1),
|
|
5530
5796
|
supportsChannelDirectory: boolean(),
|
|
5797
|
+
connectAppId: string().min(1).optional(),
|
|
5531
5798
|
docsUrl: string().url().optional()
|
|
5532
5799
|
});
|
|
5533
5800
|
const ChannelBindingSchema = object({
|
|
@@ -5581,11 +5848,38 @@ const UpdateChannelBindingBodySchema = object({ patch: object({
|
|
|
5581
5848
|
mode: ChannelListenModeSchema.optional(),
|
|
5582
5849
|
subscribeOnMention: boolean().optional()
|
|
5583
5850
|
}) });
|
|
5851
|
+
/**
|
|
5852
|
+
* Where a manual MCP API key is injected on each request. MCP servers don't
|
|
5853
|
+
* advertise API-key support in a discoverable way, so the user picks the
|
|
5854
|
+
* placement: a request header (optionally prefixed, e.g. `Bearer `) or a query
|
|
5855
|
+
* param (e.g. Exa's `exaApiKey`).
|
|
5856
|
+
*/
|
|
5857
|
+
const McpApiKeyPlacementSchema = discriminatedUnion("kind", [object({
|
|
5858
|
+
kind: literal("header"),
|
|
5859
|
+
name: string().trim().min(1),
|
|
5860
|
+
/** Prepended to the token, e.g. `"Bearer "` for `Authorization: Bearer <token>`. */
|
|
5861
|
+
prefix: string().optional()
|
|
5862
|
+
}), object({
|
|
5863
|
+
kind: literal("query"),
|
|
5864
|
+
name: string().trim().min(1)
|
|
5865
|
+
})]);
|
|
5866
|
+
object({
|
|
5867
|
+
token: string().trim().min(1),
|
|
5868
|
+
placement: McpApiKeyPlacementSchema.default({
|
|
5869
|
+
kind: "header",
|
|
5870
|
+
name: "Authorization",
|
|
5871
|
+
prefix: "Bearer "
|
|
5872
|
+
})
|
|
5873
|
+
});
|
|
5584
5874
|
/** Metadata for one vault field on a custom api_key app. */
|
|
5585
5875
|
const AppCredentialFieldSchema = object({
|
|
5586
5876
|
label: string().trim().min(1).optional(),
|
|
5587
5877
|
secret: boolean().optional(),
|
|
5588
|
-
optional: boolean().optional()
|
|
5878
|
+
optional: boolean().optional(),
|
|
5879
|
+
description: string().trim().min(1).optional(),
|
|
5880
|
+
default: string().optional(),
|
|
5881
|
+
/** For direct MCP api-key apps: where this field's value is injected on the request. */
|
|
5882
|
+
placement: McpApiKeyPlacementSchema.optional()
|
|
5589
5883
|
});
|
|
5590
5884
|
/** Credential template keyed by vault field name. */
|
|
5591
5885
|
const AppCredentialFieldsSchema = record(string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/), AppCredentialFieldSchema).refine((fields) => Object.keys(fields).length > 0, { message: "At least one credential field is required" }).refine((fields) => Object.values(fields).some((field) => field.optional !== true), { message: "At least one credential field must be required" });
|
|
@@ -5602,6 +5896,13 @@ const AppAuthKindSchema = _enum([
|
|
|
5602
5896
|
"api_key",
|
|
5603
5897
|
"keystroke"
|
|
5604
5898
|
]);
|
|
5899
|
+
/** Composio auth scheme for API-key style connections. */
|
|
5900
|
+
const AppCredentialSchemeSchema = _enum([
|
|
5901
|
+
"API_KEY",
|
|
5902
|
+
"BEARER_TOKEN",
|
|
5903
|
+
"BASIC",
|
|
5904
|
+
"BASIC_WITH_JWT"
|
|
5905
|
+
]);
|
|
5605
5906
|
/**
|
|
5606
5907
|
* Where app metadata and execution are sourced (e.g. native, composio, pipedream, custom).
|
|
5607
5908
|
* Opaque string — cloud/hosted entrypoints choose values; keystroke stays provider-agnostic.
|
|
@@ -5615,7 +5916,11 @@ object({
|
|
|
5615
5916
|
logo: string().url().optional(),
|
|
5616
5917
|
authKind: AppAuthKindSchema,
|
|
5617
5918
|
oauthScopes: array(OAuthScopeOptionSchema)
|
|
5618
|
-
}).extend({
|
|
5919
|
+
}).extend({
|
|
5920
|
+
source: AppSourceSchema,
|
|
5921
|
+
credentialFields: AppCredentialFieldsSchema.optional(),
|
|
5922
|
+
credentialScheme: AppCredentialSchemeSchema.optional()
|
|
5923
|
+
});
|
|
5619
5924
|
const customAppNameSchema = string().trim().min(1, "Name is required");
|
|
5620
5925
|
const AppSlugAvailabilityReasonSchema = ProjectSlugAvailabilityReasonSchema;
|
|
5621
5926
|
const AppSlugAvailabilityResponseSchema = object({
|
|
@@ -5625,12 +5930,43 @@ const AppSlugAvailabilityResponseSchema = object({
|
|
|
5625
5930
|
suggestion: AppSlugSchema.optional()
|
|
5626
5931
|
});
|
|
5627
5932
|
object({ slug: string().trim().min(1) });
|
|
5628
|
-
/** Request body for creating an org custom api_key
|
|
5933
|
+
/** Request body for creating an org custom app (api_key or direct MCP). */
|
|
5934
|
+
const optionalCredentialFieldsSchema = record(string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/), AppCredentialFieldSchema);
|
|
5629
5935
|
const CreateCustomAppRequestSchema = object({
|
|
5630
5936
|
name: customAppNameSchema,
|
|
5631
5937
|
slug: AppSlugSchema,
|
|
5632
5938
|
description: string().trim().min(1),
|
|
5633
|
-
|
|
5939
|
+
source: _enum([
|
|
5940
|
+
"custom",
|
|
5941
|
+
"mcp",
|
|
5942
|
+
"openapi"
|
|
5943
|
+
]).default("custom"),
|
|
5944
|
+
mcpUrl: string().url().optional(),
|
|
5945
|
+
authKind: AppAuthKindSchema.optional(),
|
|
5946
|
+
fields: optionalCredentialFieldsSchema.optional(),
|
|
5947
|
+
credentialScheme: AppCredentialSchemeSchema.optional(),
|
|
5948
|
+
oauthScopes: array(OAuthScopeOptionSchema).optional()
|
|
5949
|
+
}).superRefine((data, ctx) => {
|
|
5950
|
+
if (data.source === "mcp" && !data.mcpUrl) ctx.addIssue({
|
|
5951
|
+
code: "custom",
|
|
5952
|
+
message: "mcpUrl is required for MCP apps",
|
|
5953
|
+
path: ["mcpUrl"]
|
|
5954
|
+
});
|
|
5955
|
+
if (!(data.authKind ?? (data.source === "custom" ? "api_key" : void 0))) {
|
|
5956
|
+
ctx.addIssue({
|
|
5957
|
+
code: "custom",
|
|
5958
|
+
message: "authKind is required",
|
|
5959
|
+
path: ["authKind"]
|
|
5960
|
+
});
|
|
5961
|
+
return;
|
|
5962
|
+
}
|
|
5963
|
+
if (data.source === "custom") {
|
|
5964
|
+
const parsed = AppCredentialFieldsSchema.safeParse(data.fields ?? {});
|
|
5965
|
+
if (!parsed.success) for (const issue of parsed.error.issues) ctx.addIssue({
|
|
5966
|
+
...issue,
|
|
5967
|
+
path: ["fields", ...issue.path]
|
|
5968
|
+
});
|
|
5969
|
+
}
|
|
5634
5970
|
});
|
|
5635
5971
|
/** Full custom app detail returned by GET (includes credential template for sync). */
|
|
5636
5972
|
const CustomAppDetailSchema = object({
|
|
@@ -5639,9 +5975,12 @@ const CustomAppDetailSchema = object({
|
|
|
5639
5975
|
name: string().min(1),
|
|
5640
5976
|
description: string().min(1),
|
|
5641
5977
|
category: string().min(1),
|
|
5642
|
-
authKind:
|
|
5643
|
-
source:
|
|
5644
|
-
|
|
5978
|
+
authKind: AppAuthKindSchema,
|
|
5979
|
+
source: AppSourceSchema,
|
|
5980
|
+
mcpUrl: string().url().nullable().optional(),
|
|
5981
|
+
credentialFields: optionalCredentialFieldsSchema.optional(),
|
|
5982
|
+
credentialScheme: AppCredentialSchemeSchema.optional(),
|
|
5983
|
+
oauthScopes: array(OAuthScopeOptionSchema).optional(),
|
|
5645
5984
|
createdAt: string().min(1),
|
|
5646
5985
|
updatedAt: string().min(1)
|
|
5647
5986
|
});
|
|
@@ -5659,6 +5998,8 @@ object({
|
|
|
5659
5998
|
oauthScopes: array(OAuthScopeOptionSchema),
|
|
5660
5999
|
source: AppSourceSchema,
|
|
5661
6000
|
credentialFields: AppCredentialFieldsSchema.optional(),
|
|
6001
|
+
credentialScheme: AppCredentialSchemeSchema.optional(),
|
|
6002
|
+
mcpUrl: string().url().nullable().optional(),
|
|
5662
6003
|
createdAt: string().min(1),
|
|
5663
6004
|
updatedAt: string().min(1)
|
|
5664
6005
|
});
|
|
@@ -5675,9 +6016,73 @@ const ListAppsResponseSchema = array(object({
|
|
|
5675
6016
|
source: AppSourceSchema,
|
|
5676
6017
|
/** Custom api_key apps — vault field template for connect UI and sync. */
|
|
5677
6018
|
credentialFields: AppCredentialFieldsSchema.optional(),
|
|
6019
|
+
/** Composio auth scheme when credentialFields are present. */
|
|
6020
|
+
credentialScheme: AppCredentialSchemeSchema.optional(),
|
|
6021
|
+
/** Direct MCP server URL when source is mcp. */
|
|
6022
|
+
mcpUrl: string().url().nullable().optional(),
|
|
5678
6023
|
/** When present, the app supports agent gateway bindings (external channels). */
|
|
5679
6024
|
gateway: AppGatewaySchema.optional()
|
|
5680
6025
|
}));
|
|
6026
|
+
const McpAuthProbeModeSchema = _enum([
|
|
6027
|
+
"none",
|
|
6028
|
+
"token",
|
|
6029
|
+
"oauth"
|
|
6030
|
+
]);
|
|
6031
|
+
const McpAuthProbeOAuthSchema = object({
|
|
6032
|
+
issuer: string().optional(),
|
|
6033
|
+
authorizationEndpoint: string().url(),
|
|
6034
|
+
tokenEndpoint: string().url(),
|
|
6035
|
+
registrationEndpoint: string().url().optional(),
|
|
6036
|
+
scopes: array(string()),
|
|
6037
|
+
resource: string().optional(),
|
|
6038
|
+
/** Human-readable label from OAuth protected-resource metadata (RFC 9728). */
|
|
6039
|
+
resourceName: string().optional()
|
|
6040
|
+
});
|
|
6041
|
+
object({
|
|
6042
|
+
url: string().url(),
|
|
6043
|
+
mode: McpAuthProbeModeSchema,
|
|
6044
|
+
unauthenticatedStatus: number$1().int().optional(),
|
|
6045
|
+
scheme: AppCredentialSchemeSchema.optional(),
|
|
6046
|
+
oauth: McpAuthProbeOAuthSchema.optional()
|
|
6047
|
+
});
|
|
6048
|
+
object({ url: string().url() });
|
|
6049
|
+
const McpDiscoverResponseSchema = object({
|
|
6050
|
+
detected: boolean(),
|
|
6051
|
+
template: object({
|
|
6052
|
+
authKind: AppAuthKindSchema,
|
|
6053
|
+
credentialFields: record(string(), AppCredentialFieldSchema).optional(),
|
|
6054
|
+
credentialScheme: AppCredentialSchemeSchema.optional(),
|
|
6055
|
+
oauthScopes: array(OAuthScopeOptionSchema),
|
|
6056
|
+
mcpUrl: string().url(),
|
|
6057
|
+
oauth: McpAuthProbeOAuthSchema.optional(),
|
|
6058
|
+
serverName: string().optional(),
|
|
6059
|
+
serverDescription: string().optional()
|
|
6060
|
+
})
|
|
6061
|
+
});
|
|
6062
|
+
const StartMcpOAuthConnectionInputSchema = object({
|
|
6063
|
+
appSlug: string().trim().min(1),
|
|
6064
|
+
projects: array(string().trim().min(1)).optional(),
|
|
6065
|
+
createOrganizationCredential: boolean().optional(),
|
|
6066
|
+
createUserProvidedCredential: boolean().optional(),
|
|
6067
|
+
label: string().trim().min(1).optional(),
|
|
6068
|
+
credentialInstanceId: string().trim().min(1).optional(),
|
|
6069
|
+
scopes: array(string()).optional()
|
|
6070
|
+
});
|
|
6071
|
+
const StartMcpOAuthConnectionResultSchema = object({ authorizeUrl: string().url() });
|
|
6072
|
+
object({ url: string().url() });
|
|
6073
|
+
const OpenApiDiscoverResponseSchema = object({
|
|
6074
|
+
detected: boolean(),
|
|
6075
|
+
template: object({
|
|
6076
|
+
authKind: AppAuthKindSchema,
|
|
6077
|
+
credentialFields: record(string(), AppCredentialFieldSchema).optional(),
|
|
6078
|
+
credentialScheme: AppCredentialSchemeSchema.optional(),
|
|
6079
|
+
oauthScopes: array(OAuthScopeOptionSchema),
|
|
6080
|
+
openapiUrl: string().url(),
|
|
6081
|
+
name: string().optional(),
|
|
6082
|
+
description: string().optional(),
|
|
6083
|
+
homepageUrl: string().optional()
|
|
6084
|
+
})
|
|
6085
|
+
});
|
|
5681
6086
|
const CatalogAppsPageSchema = object({
|
|
5682
6087
|
items: array(object({
|
|
5683
6088
|
name: string(),
|
|
@@ -5734,6 +6139,12 @@ function parseAppSlug(slug) {
|
|
|
5734
6139
|
slug: trimmed
|
|
5735
6140
|
};
|
|
5736
6141
|
}
|
|
6142
|
+
/** Web URL that opens the org apps page with a connect dialog for the given app. */
|
|
6143
|
+
function buildConnectDeeplink(options) {
|
|
6144
|
+
const base = options.webUrl.replace(/\/+$/, "");
|
|
6145
|
+
const params = new URLSearchParams({ connect: options.appSlug });
|
|
6146
|
+
return `${base}/${options.orgSlug}/apps?${params.toString()}`;
|
|
6147
|
+
}
|
|
5737
6148
|
/** How a credential instance is stored (`credential_instances.auth_kind`). */
|
|
5738
6149
|
const CredentialAuthKindSchema = _enum([
|
|
5739
6150
|
"api_key",
|
|
@@ -5792,7 +6203,7 @@ const AppCredentialSummarySchema = object({
|
|
|
5792
6203
|
});
|
|
5793
6204
|
const credentialSecretValueSchema = record(string(), unknown()).refine((value) => Object.keys(value).length > 0, { message: "value must be a non-empty object" });
|
|
5794
6205
|
function hasCredentialTarget(input) {
|
|
5795
|
-
return input.projects.length > 0 || input.createOrganizationCredential || input.createUserProvidedCredential;
|
|
6206
|
+
return input.projects.length > 0 || input.createOrganizationCredential || input.createUserProvidedCredential || Boolean(input.credentialInstanceId?.trim());
|
|
5796
6207
|
}
|
|
5797
6208
|
function addMissingCredentialTargetIssue(ctx, path = ["projects"]) {
|
|
5798
6209
|
ctx.addIssue({
|
|
@@ -5807,7 +6218,9 @@ const CredentialTargetsFieldsSchema = object({
|
|
|
5807
6218
|
createOrganizationCredential: boolean().default(false),
|
|
5808
6219
|
createUserProvidedCredential: boolean().default(false),
|
|
5809
6220
|
/** Display label for created credential instances (apps table / detail page). */
|
|
5810
|
-
label: string().trim().min(1).optional()
|
|
6221
|
+
label: string().trim().min(1).optional(),
|
|
6222
|
+
/** When set, update this credential instance in place (reconnect) instead of creating a new row. */
|
|
6223
|
+
credentialInstanceId: string().trim().min(1).optional()
|
|
5811
6224
|
});
|
|
5812
6225
|
/** Input for starting an OAuth connection (connect dialog / CLI connect). */
|
|
5813
6226
|
const StartOAuthConnectionInputSchema = CredentialTargetsFieldsSchema.extend({
|
|
@@ -5820,25 +6233,22 @@ const StartOAuthConnectionResultSchema = object({
|
|
|
5820
6233
|
status: _enum(["connected", "redirecting"]),
|
|
5821
6234
|
authorizeUrl: string().url().nullable()
|
|
5822
6235
|
});
|
|
5823
|
-
/** Input for starting a
|
|
5824
|
-
const StartKeystrokeConnectionInputSchema =
|
|
6236
|
+
/** Input for starting a keystroke connection (connect dialog). */
|
|
6237
|
+
const StartKeystrokeConnectionInputSchema = CredentialTargetsFieldsSchema.extend({
|
|
5825
6238
|
app: string().trim().min(1),
|
|
5826
|
-
|
|
5827
|
-
projectSlug: string().trim().min(1).optional(),
|
|
5828
|
-
label: string().trim().min(1).optional()
|
|
6239
|
+
value: credentialSecretValueSchema.optional()
|
|
5829
6240
|
}).superRefine((input, ctx) => {
|
|
5830
|
-
if (
|
|
5831
|
-
code: "custom",
|
|
5832
|
-
message: "projectSlug is required for project scope",
|
|
5833
|
-
path: ["projectSlug"]
|
|
5834
|
-
});
|
|
6241
|
+
if (!hasCredentialTarget(input)) addMissingCredentialTargetIssue(ctx);
|
|
5835
6242
|
});
|
|
5836
|
-
/** Result of starting a
|
|
5837
|
-
const StartKeystrokeConnectionResultSchema = object({
|
|
5838
|
-
status:
|
|
6243
|
+
/** Result of starting a keystroke connection. */
|
|
6244
|
+
const StartKeystrokeConnectionResultSchema = discriminatedUnion("status", [object({
|
|
6245
|
+
status: literal("connected"),
|
|
6246
|
+
connectionId: string().min(1)
|
|
6247
|
+
}), object({
|
|
6248
|
+
status: literal("redirecting"),
|
|
5839
6249
|
authorizeUrl: string().url(),
|
|
5840
|
-
connectionId: string()
|
|
5841
|
-
});
|
|
6250
|
+
connectionId: string().min(1)
|
|
6251
|
+
})]);
|
|
5842
6252
|
/** Request body for `POST /api/credentials` (manual api-key fan-out). */
|
|
5843
6253
|
const CreateCredentialsRequestSchema = CredentialTargetsFieldsSchema.extend({
|
|
5844
6254
|
appId: string().min(1),
|
|
@@ -5867,6 +6277,44 @@ const UpdateCredentialRequestSchema = object({
|
|
|
5867
6277
|
const ListCredentialsResponseSchema = array(AppCredentialSummarySchema);
|
|
5868
6278
|
const GetCredentialResponseSchema = AppCredentialSummarySchema;
|
|
5869
6279
|
const CreateCredentialsResponseSchema = array(AppCredentialSummarySchema);
|
|
6280
|
+
const CredentialAssignmentTargetTypeSchema = _enum(["workflow", "agent"]);
|
|
6281
|
+
const CredentialAssignmentRecordSchema = object({
|
|
6282
|
+
id: string(),
|
|
6283
|
+
targetType: CredentialAssignmentTargetTypeSchema,
|
|
6284
|
+
targetKey: string(),
|
|
6285
|
+
consumerId: string(),
|
|
6286
|
+
credentialSlug: string(),
|
|
6287
|
+
instanceId: string(),
|
|
6288
|
+
credential: string().optional(),
|
|
6289
|
+
scopeType: _enum([
|
|
6290
|
+
"organization",
|
|
6291
|
+
"project",
|
|
6292
|
+
"user"
|
|
6293
|
+
]).optional(),
|
|
6294
|
+
createdAt: string(),
|
|
6295
|
+
updatedAt: string()
|
|
6296
|
+
});
|
|
6297
|
+
const CredentialAssignmentListResponseSchema = object({ assignments: array(CredentialAssignmentRecordSchema) });
|
|
6298
|
+
const AssignCredentialBodySchema = object({
|
|
6299
|
+
targetType: CredentialAssignmentTargetTypeSchema,
|
|
6300
|
+
targetKey: string().min(1),
|
|
6301
|
+
/** Omit or '*' for wildcard assignment. */
|
|
6302
|
+
consumerId: string().optional(),
|
|
6303
|
+
credential: string().min(1)
|
|
6304
|
+
});
|
|
6305
|
+
const CredentialAssignmentListQuerySchema = object({
|
|
6306
|
+
targetType: CredentialAssignmentTargetTypeSchema,
|
|
6307
|
+
targetKey: string().min(1)
|
|
6308
|
+
});
|
|
6309
|
+
const CredentialConsumerListQuerySchema = object({
|
|
6310
|
+
targetType: CredentialAssignmentTargetTypeSchema,
|
|
6311
|
+
targetKey: string().min(1)
|
|
6312
|
+
});
|
|
6313
|
+
const CredentialConsumerListResponseSchema = object({ consumers: array(object({
|
|
6314
|
+
consumerId: string(),
|
|
6315
|
+
label: string(),
|
|
6316
|
+
appSlugs: array(string())
|
|
6317
|
+
})) });
|
|
5870
6318
|
const McpConnectionStatusSchema = _enum([
|
|
5871
6319
|
"INITIATED",
|
|
5872
6320
|
"ACTIVE",
|
|
@@ -5887,22 +6335,60 @@ object({
|
|
|
5887
6335
|
entityId: string(),
|
|
5888
6336
|
instanceId: string()
|
|
5889
6337
|
});
|
|
6338
|
+
const McpCredentialAssignmentTargetSchema = object({
|
|
6339
|
+
type: CredentialAssignmentTargetTypeSchema,
|
|
6340
|
+
key: string().trim().min(1)
|
|
6341
|
+
});
|
|
5890
6342
|
object({
|
|
5891
6343
|
app: string().trim().min(1),
|
|
5892
6344
|
tool: string().trim().min(1),
|
|
5893
6345
|
arguments: record(string(), unknown()).default({}),
|
|
5894
6346
|
/** Pinned provider toolkit version, sourced from the app definition; forwarded to the provider. */
|
|
5895
|
-
version: string().trim().min(1)
|
|
6347
|
+
version: string().trim().min(1),
|
|
6348
|
+
/** When set, platform MCP resolve checks credential assignments before scope defaults. */
|
|
6349
|
+
assignmentTarget: McpCredentialAssignmentTargetSchema.optional(),
|
|
6350
|
+
/** Tool/step consumer id for assignment lookup (action slug or workflow step correlation id). */
|
|
6351
|
+
consumerId: string().trim().min(1).optional()
|
|
6352
|
+
});
|
|
6353
|
+
object({
|
|
6354
|
+
error: _enum([
|
|
6355
|
+
"not_found",
|
|
6356
|
+
"forbidden",
|
|
6357
|
+
"mcp_execute_failed"
|
|
6358
|
+
]),
|
|
6359
|
+
message: string()
|
|
5896
6360
|
});
|
|
5897
6361
|
const SubmitTeamRequestRequestSchema = object({
|
|
5898
6362
|
type: _enum([
|
|
5899
6363
|
"org-deletion",
|
|
5900
6364
|
"contact",
|
|
5901
|
-
"enterprise-upgrade"
|
|
6365
|
+
"enterprise-upgrade",
|
|
6366
|
+
"verification"
|
|
5902
6367
|
]),
|
|
5903
6368
|
message: string().trim().max(5e3).optional()
|
|
5904
6369
|
});
|
|
5905
6370
|
object({ ok: literal(true) });
|
|
6371
|
+
const MarketingContactCompanySizeSchema = _enum([
|
|
6372
|
+
"1-10",
|
|
6373
|
+
"11-50",
|
|
6374
|
+
"51-200",
|
|
6375
|
+
"201-500",
|
|
6376
|
+
"500+"
|
|
6377
|
+
]);
|
|
6378
|
+
const SubmitMarketingContactRequestSchema = object({
|
|
6379
|
+
fullName: string().trim().min(1, "Full name is required").max(200),
|
|
6380
|
+
workEmail: string().trim().email("Enter a valid email address").max(320),
|
|
6381
|
+
companySize: MarketingContactCompanySizeSchema,
|
|
6382
|
+
message: string().trim().min(1, "Message is required").max(5e3),
|
|
6383
|
+
/** Honeypot — must stay empty; bots that fill it are ignored silently. */
|
|
6384
|
+
companyWebsite: string().optional()
|
|
6385
|
+
});
|
|
6386
|
+
function isCredentialInput(value) {
|
|
6387
|
+
if (typeof value !== "object" || value === null) return false;
|
|
6388
|
+
const candidate = value;
|
|
6389
|
+
return typeof candidate.key === "string" && CredentialAuthKindSchema.safeParse(candidate.kind).success && candidate.schema instanceof ZodType;
|
|
6390
|
+
}
|
|
6391
|
+
const credentialInputSchema = custom((value) => isCredentialInput(value), "must be a credential requirement");
|
|
5906
6392
|
function normalizeCredentialList(list) {
|
|
5907
6393
|
return list.map((item) => toCredentialRequirement(item));
|
|
5908
6394
|
}
|
|
@@ -5923,7 +6409,7 @@ const ValidationErrorDetailSchema = object({
|
|
|
5923
6409
|
message: string()
|
|
5924
6410
|
});
|
|
5925
6411
|
/** Machine-readable codes returned in standard API error bodies. */
|
|
5926
|
-
const ErrorResponseCodeSchema = OrganizationSlugErrorCodeSchema.or(_enum(["needs_org_selection"]));
|
|
6412
|
+
const ErrorResponseCodeSchema = OrganizationSlugErrorCodeSchema.or(_enum(["needs_org_selection", "org_unverified"]));
|
|
5927
6413
|
/** Standard JSON error body returned by the HTTP API. */
|
|
5928
6414
|
const ErrorResponseSchema = object({
|
|
5929
6415
|
error: string(),
|
|
@@ -5983,13 +6469,16 @@ const ConnectProvidersResponseSchema = object({ providers: array(object({
|
|
|
5983
6469
|
})) });
|
|
5984
6470
|
const ConnectAuthorizeUrlResponseSchema = object({ url: string() });
|
|
5985
6471
|
const QueuedRunResponseSchema = object({ runId: string() });
|
|
5986
|
-
const QueuedAgentPromptResponseSchema = object({
|
|
6472
|
+
const QueuedAgentPromptResponseSchema = object({
|
|
6473
|
+
sessionId: string(),
|
|
6474
|
+
runId: string()
|
|
6475
|
+
});
|
|
5987
6476
|
object({
|
|
5988
6477
|
workflows: array(string().min(1)).optional(),
|
|
5989
6478
|
attachments: array(string().min(1)).optional()
|
|
5990
6479
|
});
|
|
5991
6480
|
const PollRunMultiResponseSchema = object({ results: array(object({
|
|
5992
|
-
|
|
6481
|
+
attachmentSlug: string(),
|
|
5993
6482
|
workflowKey: string(),
|
|
5994
6483
|
runId: string().optional(),
|
|
5995
6484
|
body: unknown().optional(),
|
|
@@ -6013,6 +6502,33 @@ object({
|
|
|
6013
6502
|
kind: RunSourceKindSchema,
|
|
6014
6503
|
id: string().nullable()
|
|
6015
6504
|
});
|
|
6505
|
+
const AgentTriggerOriginSchema = _enum(["project", "ephemeral"]);
|
|
6506
|
+
const AgentTriggerStatusSchema = _enum([
|
|
6507
|
+
"active",
|
|
6508
|
+
"disabled",
|
|
6509
|
+
"completed"
|
|
6510
|
+
]);
|
|
6511
|
+
const AgentTriggerTypeSchema = _enum([
|
|
6512
|
+
"webhook",
|
|
6513
|
+
"cron",
|
|
6514
|
+
"poll"
|
|
6515
|
+
]);
|
|
6516
|
+
const AgentTriggerSummaryListResponseSchema = array(object({
|
|
6517
|
+
id: string(),
|
|
6518
|
+
label: string(),
|
|
6519
|
+
name: string().nullable().optional(),
|
|
6520
|
+
description: string().nullable().optional(),
|
|
6521
|
+
type: AgentTriggerTypeSchema,
|
|
6522
|
+
schedule: string().nullable(),
|
|
6523
|
+
endpoint: string().nullable(),
|
|
6524
|
+
origin: AgentTriggerOriginSchema,
|
|
6525
|
+
prompt: string().nullable(),
|
|
6526
|
+
status: AgentTriggerStatusSchema,
|
|
6527
|
+
executionCount: number$1().int().nonnegative(),
|
|
6528
|
+
until: string().nullable(),
|
|
6529
|
+
attachmentId: string(),
|
|
6530
|
+
attachmentSlug: string()
|
|
6531
|
+
}));
|
|
6016
6532
|
const WorkflowRunStatusSchema = _enum([
|
|
6017
6533
|
"pending",
|
|
6018
6534
|
"running",
|
|
@@ -6090,7 +6606,7 @@ _enum([
|
|
|
6090
6606
|
object({ include: string().optional() });
|
|
6091
6607
|
const TriggerRunDetailSchema = object({
|
|
6092
6608
|
id: string(),
|
|
6093
|
-
|
|
6609
|
+
triggerId: string(),
|
|
6094
6610
|
attachmentSlug: string().nullable(),
|
|
6095
6611
|
triggerType: _enum([
|
|
6096
6612
|
"cron",
|
|
@@ -6172,6 +6688,10 @@ const AgentSessionSummarySchema = object({
|
|
|
6172
6688
|
status: AgentSessionStatusSchema,
|
|
6173
6689
|
source: RunSourceKindSchema,
|
|
6174
6690
|
sourceId: string().nullable(),
|
|
6691
|
+
title: string().nullable(),
|
|
6692
|
+
ranByUserName: string().nullable(),
|
|
6693
|
+
gatewayPlatform: string().nullable(),
|
|
6694
|
+
triggerType: AgentTriggerTypeSchema.nullable(),
|
|
6175
6695
|
createdAt: string(),
|
|
6176
6696
|
updatedAt: string(),
|
|
6177
6697
|
messageCount: number$1()
|
|
@@ -6225,6 +6745,12 @@ const AgentSessionDetailResponseSchema = object({
|
|
|
6225
6745
|
events: array(AgentEventSchema),
|
|
6226
6746
|
trace: TraceResponseSchema.nullable()
|
|
6227
6747
|
});
|
|
6748
|
+
object({ sinceSeq: number().int().min(0).optional() });
|
|
6749
|
+
const AgentSessionChatStateResponseSchema = object({
|
|
6750
|
+
status: AgentSessionStatusSchema,
|
|
6751
|
+
messages: array(record(string(), unknown())),
|
|
6752
|
+
live: record(string(), unknown()).nullable()
|
|
6753
|
+
});
|
|
6228
6754
|
const SlackGatewayModeSchema = _enum([
|
|
6229
6755
|
"mention",
|
|
6230
6756
|
"channel",
|
|
@@ -6339,7 +6865,7 @@ const HistoryTraceTriggerSchema = object({
|
|
|
6339
6865
|
workflowKey: string().optional(),
|
|
6340
6866
|
agentKey: string().optional(),
|
|
6341
6867
|
attachmentId: string().nullable().optional(),
|
|
6342
|
-
|
|
6868
|
+
attachmentSlug: string().nullable().optional(),
|
|
6343
6869
|
route: string().optional(),
|
|
6344
6870
|
sourcePath: string().nullable().optional()
|
|
6345
6871
|
}).nullable();
|
|
@@ -6379,7 +6905,7 @@ const HistoryRunDetailSchema = discriminatedUnion("kind", [object({
|
|
|
6379
6905
|
}),
|
|
6380
6906
|
trigger: object({
|
|
6381
6907
|
id: string(),
|
|
6382
|
-
|
|
6908
|
+
attachmentSlug: string().nullable(),
|
|
6383
6909
|
triggerType: string(),
|
|
6384
6910
|
sourcePath: string().nullable(),
|
|
6385
6911
|
payload: unknown().nullable(),
|
|
@@ -6411,7 +6937,7 @@ const HistoryRunDetailSchema = discriminatedUnion("kind", [object({
|
|
|
6411
6937
|
}),
|
|
6412
6938
|
gateway: object({
|
|
6413
6939
|
threadId: string(),
|
|
6414
|
-
|
|
6940
|
+
attachmentSlug: string().nullable()
|
|
6415
6941
|
}).nullable(),
|
|
6416
6942
|
messages: array(record(string(), unknown())),
|
|
6417
6943
|
trace: HistoryTraceSchema.nullable(),
|
|
@@ -6440,7 +6966,9 @@ object({
|
|
|
6440
6966
|
});
|
|
6441
6967
|
const CredentialInstanceRecordSchema = object({
|
|
6442
6968
|
id: string(),
|
|
6443
|
-
|
|
6969
|
+
appSlug: string(),
|
|
6970
|
+
slug: string(),
|
|
6971
|
+
name: string().nullable(),
|
|
6444
6972
|
scopeType: CredentialScopeTypeSchema,
|
|
6445
6973
|
scopeId: string().nullable(),
|
|
6446
6974
|
label: string().nullable(),
|
|
@@ -6450,6 +6978,8 @@ const CredentialInstanceRecordSchema = object({
|
|
|
6450
6978
|
const CredentialInstanceListResponseSchema = object({ instances: array(CredentialInstanceRecordSchema) });
|
|
6451
6979
|
const CreateCredentialInstanceBodySchema = object({
|
|
6452
6980
|
key: string().min(1),
|
|
6981
|
+
slug: string().min(1).optional(),
|
|
6982
|
+
name: string().nullable().optional(),
|
|
6453
6983
|
scopeType: CredentialScopeTypeSchema,
|
|
6454
6984
|
scopeId: string().nullable().optional(),
|
|
6455
6985
|
label: string().nullable().optional(),
|
|
@@ -6457,6 +6987,8 @@ const CreateCredentialInstanceBodySchema = object({
|
|
|
6457
6987
|
value: record(string(), unknown()).refine((value) => Object.keys(value).length > 0, { message: "value must be a non-empty object" })
|
|
6458
6988
|
});
|
|
6459
6989
|
const UpdateCredentialInstanceBodySchema = object({
|
|
6990
|
+
slug: string().min(1).optional(),
|
|
6991
|
+
name: string().nullable().optional(),
|
|
6460
6992
|
label: string().nullable().optional(),
|
|
6461
6993
|
isDefault: boolean().optional(),
|
|
6462
6994
|
value: record(string(), unknown()).refine((value) => Object.keys(value).length > 0, { message: "value must be a non-empty object" }).optional()
|
|
@@ -6466,6 +6998,18 @@ const TriggerRunTypeSchema = _enum([
|
|
|
6466
6998
|
"webhook",
|
|
6467
6999
|
"poll"
|
|
6468
7000
|
]);
|
|
7001
|
+
const TriggerRunOutcomeSchema = _enum([
|
|
7002
|
+
"dispatched",
|
|
7003
|
+
"skipped",
|
|
7004
|
+
"failed"
|
|
7005
|
+
]);
|
|
7006
|
+
const TriggerRunReasonSchema = _enum([
|
|
7007
|
+
"filter_rejected",
|
|
7008
|
+
"transform_undefined",
|
|
7009
|
+
"invalid_payload",
|
|
7010
|
+
"source_error",
|
|
7011
|
+
"handler_error"
|
|
7012
|
+
]);
|
|
6469
7013
|
const TriggerRunWorkflowSummarySchema = object({
|
|
6470
7014
|
id: string(),
|
|
6471
7015
|
status: WorkflowRunStatusSchema,
|
|
@@ -6480,15 +7024,23 @@ const TriggerRunSummarySchema = object({
|
|
|
6480
7024
|
triggerType: TriggerRunTypeSchema,
|
|
6481
7025
|
triggeredAt: string(),
|
|
6482
7026
|
sourcePath: string().nullable(),
|
|
6483
|
-
|
|
6484
|
-
|
|
7027
|
+
outcome: TriggerRunOutcomeSchema,
|
|
7028
|
+
reason: TriggerRunReasonSchema.nullable(),
|
|
7029
|
+
detail: string().nullable(),
|
|
7030
|
+
/** Workflow runs dispatched by this fire (fan-out → one per matched workflow attachment). */
|
|
7031
|
+
workflowRuns: array(TriggerRunWorkflowSummarySchema),
|
|
7032
|
+
/** Agent sessions dispatched by this fire (fan-out → one per matched agent attachment). */
|
|
7033
|
+
agentSessions: array(TriggerRunAgentSessionSummarySchema)
|
|
6485
7034
|
});
|
|
6486
7035
|
const TriggerRunRecordSchema = object({
|
|
6487
7036
|
id: string(),
|
|
6488
|
-
|
|
7037
|
+
triggerId: string(),
|
|
6489
7038
|
attachmentSlug: string(),
|
|
6490
7039
|
triggerType: TriggerRunTypeSchema,
|
|
6491
7040
|
sourcePath: string().nullable(),
|
|
7041
|
+
outcome: TriggerRunOutcomeSchema,
|
|
7042
|
+
reason: TriggerRunReasonSchema.nullable(),
|
|
7043
|
+
detail: string().nullable(),
|
|
6492
7044
|
payload: unknown().nullable(),
|
|
6493
7045
|
triggeredAt: string()
|
|
6494
7046
|
});
|
|
@@ -6523,9 +7075,16 @@ const TriggerTypeSchema = _enum([
|
|
|
6523
7075
|
"cron"
|
|
6524
7076
|
]);
|
|
6525
7077
|
const TriggerTargetKindSchema = _enum(["workflow", "agent"]);
|
|
7078
|
+
const TriggerStatusSchema = _enum(["active", "disabled"]);
|
|
7079
|
+
const TriggerAttachmentStatusSchema = _enum(["active", "disabled"]);
|
|
6526
7080
|
const TriggerListItemSchema = object({
|
|
6527
|
-
|
|
7081
|
+
slug: string(),
|
|
7082
|
+
name: string().optional(),
|
|
7083
|
+
description: string().optional(),
|
|
6528
7084
|
type: TriggerTypeSchema,
|
|
7085
|
+
status: TriggerStatusSchema.optional(),
|
|
7086
|
+
schedule: string().nullable().optional(),
|
|
7087
|
+
sourcePath: string().optional(),
|
|
6529
7088
|
route: string().optional(),
|
|
6530
7089
|
webhookUrl: string().url().optional(),
|
|
6531
7090
|
targetKind: TriggerTargetKindSchema,
|
|
@@ -6535,6 +7094,136 @@ const TriggerListItemSchema = object({
|
|
|
6535
7094
|
const TriggerListResponseSchema = object({ triggers: array(TriggerListItemSchema) });
|
|
6536
7095
|
object({ endpoint: string().min(1).optional() });
|
|
6537
7096
|
const TriggerDetailResponseSchema = TriggerListItemSchema;
|
|
7097
|
+
const TriggerAssignmentSchema = object({
|
|
7098
|
+
kind: TriggerTargetKindSchema,
|
|
7099
|
+
id: string(),
|
|
7100
|
+
slug: string(),
|
|
7101
|
+
name: string(),
|
|
7102
|
+
attachmentId: string(),
|
|
7103
|
+
attachmentSlug: string(),
|
|
7104
|
+
status: TriggerAttachmentStatusSchema,
|
|
7105
|
+
disabledAt: string().nullable()
|
|
7106
|
+
});
|
|
7107
|
+
/** Status of the downstream run/session a dispatched fire produced. */
|
|
7108
|
+
const WorkspaceTriggerRunStatusSchema = _enum([
|
|
7109
|
+
"completed",
|
|
7110
|
+
"running",
|
|
7111
|
+
"failed"
|
|
7112
|
+
]);
|
|
7113
|
+
/**
|
|
7114
|
+
* Categorical reason a fire was recorded but produced no downstream run. These map
|
|
7115
|
+
* from the persisted `trigger_runs.reason` enum onto the labels the UI renders.
|
|
7116
|
+
*/
|
|
7117
|
+
const WorkspaceTriggerSkipReasonSchema = _enum([
|
|
7118
|
+
"filtered",
|
|
7119
|
+
"no_new_data",
|
|
7120
|
+
"transform_undefined"
|
|
7121
|
+
]);
|
|
7122
|
+
/**
|
|
7123
|
+
* A single downstream run/session a dispatched fire produced. A fan-out fire can
|
|
7124
|
+
* dispatch several of these (multiple workflows and/or agents off one source event).
|
|
7125
|
+
*/
|
|
7126
|
+
const WorkspaceTriggerRunTargetSchema = discriminatedUnion("kind", [object({
|
|
7127
|
+
kind: literal("workflow"),
|
|
7128
|
+
runId: string(),
|
|
7129
|
+
workflowId: string(),
|
|
7130
|
+
status: WorkspaceTriggerRunStatusSchema,
|
|
7131
|
+
name: string()
|
|
7132
|
+
}), object({
|
|
7133
|
+
kind: literal("agent"),
|
|
7134
|
+
sessionId: string(),
|
|
7135
|
+
agentId: string(),
|
|
7136
|
+
status: WorkspaceTriggerRunStatusSchema,
|
|
7137
|
+
name: string()
|
|
7138
|
+
})]);
|
|
7139
|
+
/**
|
|
7140
|
+
* Outcome of a single trigger fire — drives the run-history row presentation. Every
|
|
7141
|
+
* recorded fire either dispatched one or more workflow/agent targets, was skipped by
|
|
7142
|
+
* trigger logic, or failed before any target ran.
|
|
7143
|
+
*/
|
|
7144
|
+
const WorkspaceTriggerRunOutcomeSchema = discriminatedUnion("kind", [
|
|
7145
|
+
object({
|
|
7146
|
+
kind: literal("dispatched"),
|
|
7147
|
+
targets: array(WorkspaceTriggerRunTargetSchema)
|
|
7148
|
+
}),
|
|
7149
|
+
object({
|
|
7150
|
+
kind: literal("skipped"),
|
|
7151
|
+
reason: WorkspaceTriggerSkipReasonSchema
|
|
7152
|
+
}),
|
|
7153
|
+
object({
|
|
7154
|
+
kind: literal("failed"),
|
|
7155
|
+
error: string()
|
|
7156
|
+
})
|
|
7157
|
+
]);
|
|
7158
|
+
const WorkspaceTriggerSummarySchema = object({
|
|
7159
|
+
/** `triggers.id` UUID for the trigger row. */
|
|
7160
|
+
id: string(),
|
|
7161
|
+
slug: string(),
|
|
7162
|
+
name: string(),
|
|
7163
|
+
description: string().nullable(),
|
|
7164
|
+
type: TriggerTypeSchema,
|
|
7165
|
+
status: TriggerStatusSchema,
|
|
7166
|
+
projectId: string(),
|
|
7167
|
+
projectName: string(),
|
|
7168
|
+
/** Webhook ingress URL (webhook triggers only). */
|
|
7169
|
+
webhookUrl: string().nullable(),
|
|
7170
|
+
/** Cron expression or poll cadence label (cron/poll triggers only). */
|
|
7171
|
+
schedule: string().nullable(),
|
|
7172
|
+
/** Workflows + agents currently bound to this source. */
|
|
7173
|
+
assignments: array(TriggerAssignmentSchema),
|
|
7174
|
+
lastFiredAt: string().nullable(),
|
|
7175
|
+
fireCount: number$1().int().nonnegative(),
|
|
7176
|
+
createdAt: string()
|
|
7177
|
+
});
|
|
7178
|
+
const WorkspaceTriggerDetailSchema = WorkspaceTriggerSummarySchema.extend({
|
|
7179
|
+
/** Source module file path, relative to the project root. */
|
|
7180
|
+
sourcePath: string() });
|
|
7181
|
+
const WorkspaceTriggerListResponseSchema = array(WorkspaceTriggerSummarySchema);
|
|
7182
|
+
const WorkspaceTriggerRunListResponseSchema = object({
|
|
7183
|
+
items: array(object({
|
|
7184
|
+
id: string(),
|
|
7185
|
+
triggerType: TriggerTypeSchema,
|
|
7186
|
+
triggeredAt: string(),
|
|
7187
|
+
/** Poll/webhook source path or endpoint that produced the fire. */
|
|
7188
|
+
sourcePath: string().nullable(),
|
|
7189
|
+
outcome: WorkspaceTriggerRunOutcomeSchema
|
|
7190
|
+
})),
|
|
7191
|
+
nextCursor: string().nullable()
|
|
7192
|
+
});
|
|
7193
|
+
const WorkspaceTriggerFileSchema = object({
|
|
7194
|
+
path: string(),
|
|
7195
|
+
contents: string()
|
|
7196
|
+
});
|
|
7197
|
+
/** LLM-generated markdown overview envelope served to the web dashboard. */
|
|
7198
|
+
const WorkspaceTriggerOverviewSchema = object({
|
|
7199
|
+
status: _enum([
|
|
7200
|
+
"generating",
|
|
7201
|
+
"ready",
|
|
7202
|
+
"failed"
|
|
7203
|
+
]),
|
|
7204
|
+
markdown: string(),
|
|
7205
|
+
hash: string(),
|
|
7206
|
+
generatedAt: string().nullable(),
|
|
7207
|
+
model: string()
|
|
7208
|
+
});
|
|
7209
|
+
/** Inputs the worker feeds the LLM to generate a trigger overview. */
|
|
7210
|
+
const TriggerOverviewInputSchema = object({
|
|
7211
|
+
name: string(),
|
|
7212
|
+
description: string().nullable(),
|
|
7213
|
+
type: TriggerTypeSchema,
|
|
7214
|
+
schedule: string().nullable(),
|
|
7215
|
+
sourcePath: string(),
|
|
7216
|
+
sourceContents: string(),
|
|
7217
|
+
assignments: array(TriggerAssignmentSchema)
|
|
7218
|
+
});
|
|
7219
|
+
object({
|
|
7220
|
+
triggerId: string(),
|
|
7221
|
+
projectId: string(),
|
|
7222
|
+
triggerHash: string(),
|
|
7223
|
+
model: string(),
|
|
7224
|
+
input: TriggerOverviewInputSchema
|
|
7225
|
+
});
|
|
7226
|
+
object({ enabled: boolean() });
|
|
6538
7227
|
const OrganizationMemberRoleSchema = _enum([
|
|
6539
7228
|
"owner",
|
|
6540
7229
|
"admin",
|
|
@@ -6781,8 +7470,13 @@ const AgentSummarySchema = object({
|
|
|
6781
7470
|
description: string().optional(),
|
|
6782
7471
|
sourcePath: string().min(1).optional(),
|
|
6783
7472
|
model: string().optional(),
|
|
7473
|
+
systemPrompt: string().optional(),
|
|
6784
7474
|
toolCount: optionalCount,
|
|
6785
7475
|
credentialCount: optionalCount,
|
|
7476
|
+
apps: array(object({
|
|
7477
|
+
id: string(),
|
|
7478
|
+
label: string()
|
|
7479
|
+
})).optional(),
|
|
6786
7480
|
lastRunAt: optionalTimestamp
|
|
6787
7481
|
});
|
|
6788
7482
|
const WorkflowSummarySchema = object({
|
|
@@ -6895,7 +7589,15 @@ object({
|
|
|
6895
7589
|
})),
|
|
6896
7590
|
generatedAt: isoDateTime
|
|
6897
7591
|
});
|
|
7592
|
+
const ListAgentMemoryFilesResponseSchema = object({ files: array(object({
|
|
7593
|
+
id: string(),
|
|
7594
|
+
path: string().min(1)
|
|
7595
|
+
})) });
|
|
7596
|
+
const ListAgentWorkspaceFilesResponseSchema = object({ files: array(object({
|
|
7597
|
+
id: string(),
|
|
7598
|
+
path: string().min(1)
|
|
7599
|
+
})) });
|
|
6898
7600
|
//#endregion
|
|
6899
|
-
export {
|
|
7601
|
+
export { HistoryRunListQuerySchema as $, optional as $n, TriggerListResponseSchema as $t, CreateCustomAppRequestSchema as A, listenPortFromPublicUrl as An, PresignUserAvatarResponseSchema as At, CredentialConsumerListQuerySchema as B, _enum as Bn, RecentResourceListResponseSchema as Bt, ConnectAuthorizeUrlResponseSchema as C, WorkspaceTriggerDetailSchema as Cn, PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS as Ct, CreateCredentialInstanceBodySchema as D, WorkspaceTriggerRunListResponseSchema as Dn, PresignProjectSourceRequestSchema as Dt, CreateApiKeyResponseSchema as E, WorkspaceTriggerOverviewSchema as En, PresignOrgLogoResponseSchema as Et, CreateProjectRequestSchema as F, parseStoredRouteManifest as Fn, PromptInputSchema as Ft, DownloadActiveProjectArtifactResponseSchema as G, boolean as Gn, StartKeystrokeConnectionResultSchema as Gt, CredentialInstanceListResponseSchema as H, _null as Hn, SkillSummaryListResponseSchema as Ht, CreateProjectResponseSchema as I, resolvePublicPlatformOrigin as In, PromptResponseSchema as It, GetCredentialResponseSchema as J, intersection as Jn, StartOAuthConnectionInputSchema as Jt, ErrorResponseSchema as K, custom as Kn, StartMcpOAuthConnectionInputSchema as Kt, CredentialAssignmentListQuerySchema as L, slugifyAppName as Ln, QueuedAgentPromptResponseSchema as Lt, CreateOrganizationRequestSchema as M, originFromPublicUrl as Mn, ProjectResponseSchema as Mt, CreateOrganizationResponseSchema as N, parseAppSlug as Nn, ProjectSettingsResponseSchema as Nt, CreateCredentialsRequestSchema as O, buildConnectDeeplink as On, PresignProjectSourceResponseSchema as Ot, CreateProjectArtifactResponseSchema as P, parseErrorResponse as Pn, ProjectSlugAvailabilityResponseSchema as Pt, HistoryRunDetailResponseSchema as Q, object as Qn, TriggerDetailResponseSchema as Qt, CredentialAssignmentListResponseSchema as R, number as Rn, QueuedRunResponseSchema as Rt, CompleteProjectArtifactResponseSchema as S, WorkflowSummaryListResponseSchema as Sn, OrganizationSidebarBrandingSchema as St, CreateApiKeyRequestSchema as T, WorkspaceTriggerListResponseSchema as Tn, PresignOrgLogoRequestSchema as Tt, CredentialInstanceRecordSchema as U, any as Un, SlugAvailabilityResponseSchema as Ut, CredentialConsumerListResponseSchema as V, _function as Vn, SkillSummaryDetailResponseSchema as Vt, DeclineOrganizationInvitationResponseSchema as W, array as Wn, StartKeystrokeConnectionInputSchema as Wt, HealthResponseSchema as X, looseObject as Xn, SubmitMarketingContactRequestSchema as Xt, GetCustomAppResponseSchema as Y, literal as Yn, StartOAuthConnectionResultSchema as Yt, HistoryRunCancelResponseSchema as Z, number$1 as Zn, SubmitTeamRequestRequestSchema as Zt, ChannelAccountListResponseSchema as _, UserPreferencesPatchSchema as _n, ListProjectMetricsResponseSchema as _t, AgentSessionDetailResponseSchema as a, UpdateOrganizationMemberRequestSchema as an, url as ar, LOCAL_PLATFORM_ORIGIN as at, ChannelDirectoryListResponseSchema as b, WorkflowRunListResponseSchema as bn, OpenApiDiscoverResponseSchema as bt, AgentSummaryListResponseSchema as c, UpdateProjectMemberRequestSchema as cn, NEVER as cr, ListApiKeysResponseSchema as ct, AssignCredentialBodySchema as d, UpdateProjectSettingsRequestSchema as dn, ListOrganizationInvitationsResponseSchema as dt, TriggerRunDetailResponseSchema as en, preprocess as er, HistoryRunListResponseSchema as et, BindChannelBodySchema as f, UploadProjectSourceManifestRequestSchema as fn, ListOrganizationMembersResponseSchema as ft, CatalogAppsPageResponseSchema as g, UserAvatarSchema as gn, ListProjectMembersResponseSchema as gt, CatalogAppDetailResponseSchema as h, UserAvatarPatchSchema as hn, ListProjectFilesResponseSchema as ht, AgentSessionChatStateResponseSchema as i, UpdateCredentialRequestSchema as in, unknown as ir, InviteProjectMembersResponseSchema as it, CreateCustomAppResponseSchema as j, normalizeCredentialList as jn, ProjectReachabilityResponseSchema as jt, CreateCredentialsResponseSchema as k, credentialInputSchema as kn, PresignUserAvatarRequestSchema as kt, AgentTriggerSummaryListResponseSchema as l, UpdateProjectMemberResponseSchema as ln, ListAppsResponseSchema as lt, CatalogActionsPageResponseSchema as m, UpsertGatewayAttachmentBodySchema as mn, ListProjectDeploymentsResponseSchema as mt, AcceptOrganizationInvitationResponseSchema as n, UpdateChannelBindingBodySchema as nn, string as nr, InviteOrganizationMembersResponseSchema as nt, AgentSessionListResponseSchema as o, UpdateOrganizationMemberResponseSchema as on, datetime as or, ListAgentMemoryFilesResponseSchema as ot, CatalogActionDetailResponseSchema as p, UploadProjectSourceResponseSchema as pn, ListOrganizationsResponseSchema as pt, GatewayAttachmentRecordSchema as q, discriminatedUnion as qn, StartMcpOAuthConnectionResultSchema as qt, ActiveOrganizationResponseSchema as r, UpdateCredentialInstanceBodySchema as rn, union as rr, InviteProjectMembersRequestSchema as rt, AgentSummaryDetailResponseSchema as s, UpdateOrganizationRequestSchema as sn, toJSONSchema as sr, ListAgentWorkspaceFilesResponseSchema as st, ACTIVE_ORG_HEADER as t, TriggerRunListResponseSchema as tn, record as tr, InviteOrganizationMembersRequestSchema as tt, AppSlugAvailabilityResponseSchema as u, UpdateProjectRequestSchema as un, ListCredentialsResponseSchema as ut, ChannelConnectionListResponseSchema as v, UserPreferencesSchema as vn, ListProjectsResponseSchema as vt, ConnectProvidersResponseSchema as w, WorkspaceTriggerFileSchema as wn, PollRunResponseSchema as wt, ChannelPlatformSchema as x, WorkflowSummaryDetailResponseSchema as xn, OrganizationSidebarBrandingPatchSchema as xt, ChannelConnectionSchema as y, WorkflowRunDetailResponseSchema as yn, McpDiscoverResponseSchema as yt, CredentialAssignmentRecordSchema as z, ZodType as zn, ROUTE_MANIFEST_REL_PATH as zt };
|
|
6900
7602
|
|
|
6901
|
-
//# sourceMappingURL=dist-
|
|
7603
|
+
//# sourceMappingURL=dist-H53GUsol.mjs.map
|