@keystrokehq/cli 0.1.38 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/{dist-DkLbeW8l.mjs → dist-BOhrc_Nv.mjs} +198 -561
  2. package/dist/dist-BOhrc_Nv.mjs.map +1 -0
  3. package/dist/{dist-B6z1wti6.mjs → dist-D-cLLjHv.mjs} +87 -2017
  4. package/dist/dist-D-cLLjHv.mjs.map +1 -0
  5. package/dist/{dist-GSI9JDuz.mjs → dist-DGKF3FGu.mjs} +31 -265
  6. package/dist/dist-DGKF3FGu.mjs.map +1 -0
  7. package/dist/dist-DMuIdus5.mjs +3 -0
  8. package/dist/{dist-gAvgHBlr.mjs → dist-Re6HHSqz.mjs} +2 -2
  9. package/dist/{dist-gAvgHBlr.mjs.map → dist-Re6HHSqz.mjs.map} +1 -1
  10. package/dist/index.mjs +177 -463
  11. package/dist/index.mjs.map +1 -1
  12. package/dist/{maybe-auto-update-Dv4MJvWb.mjs → maybe-auto-update-q5MthdI8.mjs} +2 -2
  13. package/dist/{maybe-auto-update-Dv4MJvWb.mjs.map → maybe-auto-update-q5MthdI8.mjs.map} +1 -1
  14. package/dist/skills-bundle/_AGENTS.mcp.md +5 -9
  15. package/dist/skills-bundle/_AGENTS.md +112 -243
  16. package/dist/skills-bundle/skills/keystroke-actions/SKILL.md +160 -0
  17. package/dist/skills-bundle/skills/keystroke-actions/references/catalog-and-imports.md +71 -0
  18. package/dist/skills-bundle/skills/keystroke-agents/SKILL.md +115 -0
  19. package/dist/skills-bundle/skills/keystroke-agents/references/models.md +23 -0
  20. package/dist/skills-bundle/skills/keystroke-agents/references/tools-mcp-codemode.md +73 -0
  21. package/dist/skills-bundle/skills/keystroke-agents/references/workflows-and-testing.md +26 -0
  22. package/dist/skills-bundle/skills/keystroke-apps/SKILL.md +151 -0
  23. package/dist/skills-bundle/skills/keystroke-apps/references/cli-and-catalog.md +104 -0
  24. package/dist/skills-bundle/skills/keystroke-channels/SKILL.md +66 -0
  25. package/dist/skills-bundle/skills/keystroke-channels/references/slack-setup.md +41 -0
  26. package/dist/skills-bundle/skills/keystroke-cli/SKILL.md +93 -0
  27. package/dist/skills-bundle/skills/keystroke-deploy/SKILL.md +93 -0
  28. package/dist/skills-bundle/skills/keystroke-deploy/references/build-and-full-deploy.md +30 -0
  29. package/dist/skills-bundle/skills/keystroke-deploy/references/filtered-deploy.md +50 -0
  30. package/dist/skills-bundle/skills/keystroke-deploy/references/wip-ignore.md +35 -0
  31. package/dist/skills-bundle/skills/keystroke-files/SKILL.md +43 -0
  32. package/dist/skills-bundle/skills/keystroke-skills/SKILL.md +42 -0
  33. package/dist/skills-bundle/skills/keystroke-triggers/SKILL.md +143 -0
  34. package/dist/skills-bundle/skills/keystroke-workflows/SKILL.md +78 -0
  35. package/dist/skills-bundle/skills/keystroke-workflows/references/authoring.md +168 -0
  36. package/dist/skills-bundle/skills/keystroke-workflows/references/testing.md +138 -0
  37. package/dist/templates/hello-world/.env.example +4 -0
  38. package/dist/templates/hello-world/README.md +3 -4
  39. package/dist/templates/hello-world/package.json +0 -1
  40. package/dist/templates/hello-world/src/actions/greet.ts +0 -1
  41. package/dist/templates/hello-world/src/agents/hello.ts +0 -2
  42. package/dist/templates/hello-world/src/workflows/greeting.ts +0 -1
  43. package/dist/{version-CiFlKPyE.mjs → version-DcR3O1UD.mjs} +3 -2
  44. package/dist/version-DcR3O1UD.mjs.map +1 -0
  45. package/package.json +5 -5
  46. package/dist/dist-B6z1wti6.mjs.map +0 -1
  47. package/dist/dist-CjWXZCN7.mjs +0 -3
  48. package/dist/dist-DkLbeW8l.mjs.map +0 -1
  49. package/dist/dist-GSI9JDuz.mjs.map +0 -1
  50. package/dist/version-CiFlKPyE.mjs.map +0 -1
@@ -2446,21 +2446,6 @@ const $ZodFunction = /* @__PURE__ */ $constructor("$ZodFunction", (inst, def) =>
2446
2446
  };
2447
2447
  return inst;
2448
2448
  });
2449
- const $ZodLazy = /* @__PURE__ */ $constructor("$ZodLazy", (inst, def) => {
2450
- $ZodType.init(inst, def);
2451
- defineLazy(inst._zod, "innerType", () => {
2452
- const d = def;
2453
- if (!d._cachedInner) d._cachedInner = def.getter();
2454
- return d._cachedInner;
2455
- });
2456
- defineLazy(inst._zod, "pattern", () => inst._zod.innerType?._zod?.pattern);
2457
- defineLazy(inst._zod, "propValues", () => inst._zod.innerType?._zod?.propValues);
2458
- defineLazy(inst._zod, "optin", () => inst._zod.innerType?._zod?.optin ?? void 0);
2459
- defineLazy(inst._zod, "optout", () => inst._zod.innerType?._zod?.optout ?? void 0);
2460
- inst._zod.parse = (payload, ctx) => {
2461
- return inst._zod.innerType._zod.run(payload, ctx);
2462
- };
2463
- });
2464
2449
  const $ZodCustom = /* @__PURE__ */ $constructor("$ZodCustom", (inst, def) => {
2465
2450
  $ZodCheck.init(inst, def);
2466
2451
  $ZodType.init(inst, def);
@@ -4724,18 +4709,6 @@ function readonly(innerType) {
4724
4709
  innerType
4725
4710
  });
4726
4711
  }
4727
- const ZodLazy = /* @__PURE__ */ $constructor("ZodLazy", (inst, def) => {
4728
- $ZodLazy.init(inst, def);
4729
- ZodType.init(inst, def);
4730
- inst._zod.processJSONSchema = (ctx, json, params) => lazyProcessor(inst, ctx, json, params);
4731
- inst.unwrap = () => inst._zod.def.getter();
4732
- });
4733
- function lazy(getter) {
4734
- return new ZodLazy({
4735
- type: "lazy",
4736
- getter
4737
- });
4738
- }
4739
4712
  const ZodFunction = /* @__PURE__ */ $constructor("ZodFunction", (inst, def) => {
4740
4713
  $ZodFunction.init(inst, def);
4741
4714
  ZodType.init(inst, def);
@@ -5512,244 +5485,10 @@ function resolvePublicPlatformOrigin(env = process.env) {
5512
5485
  }
5513
5486
  /** On-disk path under the project root (packed in deploy artifacts when present). */
5514
5487
  const ROUTE_MANIFEST_REL_PATH = "dist/.keystroke/route-manifest.json";
5515
- /** How a credential instance is stored (`credential_instances.auth_kind`). */
5516
- const CredentialAuthKindSchema = _enum([
5517
- "api_key",
5518
- "oauth_managed",
5519
- "keystroke"
5520
- ]);
5521
- /**
5522
- * Where a credential instance is stored (`credential_instances.scope_type`), and the only thing an
5523
- * action/tool can pin via `.scope(...)`. There is no resolution chain: when no scope is pinned, the
5524
- * resolver tries the project default, then the org default, then throws.
5525
- */
5526
- const CredentialScopeTypeSchema = _enum([
5527
- "organization",
5528
- "project",
5529
- "user"
5530
- ]);
5531
- CredentialAuthKindSchema.options;
5532
- CredentialScopeTypeSchema.options;
5533
- /** Non-empty human-readable label or description (trimmed). */
5534
- const requiredDisplayTextSchema = string().trim().min(1);
5535
- /**
5536
- * Structural workflow-canvas graph contract.
5537
- *
5538
- * This is the deterministic skeleton the deploy-time AST producer emits for a
5539
- * workflow (nodes + edges), plus the manifest-derived trigger-source nodes. It
5540
- * is the single source of truth shared by:
5541
- * - the AST producer (emits it at deploy, stored with the manifest),
5542
- * - the platform route that serves the canvas, and
5543
- * - the SDK / web client that renders it (React Flow).
5544
- *
5545
- * Only the structural skeleton lives here. The LLM enrichment + run-overlay
5546
- * envelope types live in `workflow-canvas-envelope.ts`; the SDK re-exports them.
5547
- * See WORKFLOW.md (§4 grammar, §8 node ids, §9 caching).
5548
- */
5549
- /**
5550
- * Canvas node taxonomy — the single discriminator for every canvas node. The
5551
- * client derives the React Flow component, icon, and per-node treatment from it
5552
- * (no parallel `type` / `data.kind` fields), and the producer + fixtures emit it
5553
- * directly, so the structural contract can never silently diverge across the
5554
- * deploy → render boundary.
5555
- * - Boundaries: `entry` (Start, owns input) · `exit` (Output, owns output) ·
5556
- * `error` (a terminal `throw` — an error output that ends the run on a branch)
5557
- * - Callable: `step` (action / agent / llm / hook / child-workflow invocation) —
5558
- * the invocation flavor lives in {@link WorkflowCanvasCallKind}
5559
- * - Structural control flow: `code-block` · `decision` · `merge` · `loop` ·
5560
- * `parallel` (group containers) · `loop-start` (the group body's entry marker,
5561
- * shared by loop + parallel)
5562
- * - Upstream of entry: `trigger-source` (one per manifest trigger attachment)
5563
- *
5564
- * `Promise.all([...])` is modeled as a `parallel` group container: the branches
5565
- * are stacked inside and the container itself is the single prong leaving the
5566
- * wrapper (there is no separate fork/join pair).
5567
- *
5568
- * `exit` and `error` are both terminals: a `return` flows to the shared `exit`
5569
- * (the workflow output), while a `throw` gets its own `error` terminal off the
5570
- * branch so guard clauses (`if (bad) throw …`) read as a visible dead-end.
5571
- */
5572
- const WorkflowCanvasNodeTypeSchema = _enum([
5573
- "entry",
5574
- "exit",
5575
- "error",
5576
- "step",
5577
- "code-block",
5578
- "decision",
5579
- "merge",
5580
- "loop",
5581
- "parallel",
5582
- "loop-start",
5583
- "trigger-source"
5584
- ]);
5585
- _enum([
5586
- "workflow-step",
5587
- "agent",
5588
- "llm",
5589
- "wait",
5590
- "hook",
5591
- "tool",
5592
- "child-workflow"
5593
- ]);
5594
- /** A labeled branch output on a decision-style node. */
5595
- const WorkflowCanvasNodeOutputSchema = object({
5596
- id: string(),
5597
- label: string()
5598
- });
5599
- /**
5600
- * A step input's configured value at its call site, captured deterministically
5601
- * by the producer from the call's argument object. The platform join turns this
5602
- * into the inspector's {@link WorkflowNodeInputBinding} (filling display labels).
5603
- */
5604
- const WorkflowCanvasRawBindingSchema = object({
5605
- tokens: array(discriminatedUnion("kind", [
5606
- object({
5607
- kind: literal("text"),
5608
- text: string()
5609
- }),
5610
- object({
5611
- kind: literal("reference"),
5612
- /** Upstream node id this value flows from; absent only for unresolved refs. */
5613
- sourceNodeId: string().optional(),
5614
- /** Output field of the source (dotted path); omitted = the whole output. */
5615
- field: string().optional()
5616
- }),
5617
- object({
5618
- kind: literal("variable"),
5619
- text: string()
5620
- }),
5621
- object({
5622
- kind: literal("call"),
5623
- name: string()
5624
- })
5625
- ])),
5626
- /** Render as a tall multi-line box (object/array/multiline template values). */
5627
- multiline: boolean().optional()
5628
- });
5629
- /**
5630
- * Statically-captured `promptLlm` options for an `llm` step node. Literal-only:
5631
- * dynamic/expression values (a computed model, a `system` built by a function) are
5632
- * not captured; `system`/`outputSchema` record presence so the inspector can note
5633
- * "a system prompt is configured" / "structured output" without their values.
5634
- */
5635
- const WorkflowCanvasLlmOptionsSchema = object({
5636
- model: string().optional(),
5637
- maxTokens: number$1().optional(),
5638
- temperature: number$1().optional(),
5639
- thinkingLevel: string().optional(),
5640
- hasSystemPrompt: boolean().optional(),
5641
- hasOutputSchema: boolean().optional()
5642
- });
5643
- const WorkflowCanvasNodeDataSchema = object({
5644
- label: string(),
5645
- /** Set on group nodes (loop / parallel section containers). */
5646
- groupKind: _enum([
5647
- "loop",
5648
- "parallel",
5649
- "conditional"
5650
- ]).optional(),
5651
- description: string().optional(),
5652
- /** {@link WorkflowCanvasCallKind} or a looser raw call-site label. */
5653
- callKind: string().optional(),
5654
- /**
5655
- * App/integration slug for a `step` whose action/agent is imported directly
5656
- * from a `@keystrokehq/<app>` package (e.g. "slack", "apollo"). Lets the client
5657
- * badge the node with that app's logo; absent for custom (project-local)
5658
- * actions, which fall back to the call-kind icon.
5659
- */
5660
- appSlug: string().optional(),
5661
- /** Cron/webhook/poll discriminator on trigger-source nodes. */
5662
- triggerType: string().optional(),
5663
- /** Branch outputs (decision nodes). */
5664
- outputs: array(WorkflowCanvasNodeOutputSchema).optional(),
5665
- /**
5666
- * Action/agent/workflow slug resolved at deploy time (via import → definition).
5667
- * Optional when the deploy build cannot resolve source (dist-only artifacts).
5668
- */
5669
- slug: string().optional(),
5670
- /**
5671
- * Durable call-site ids nested inside an off-grammar `code-block` (same-file only).
5672
- * Used by the run overlay to light the block when any contained step executes.
5673
- */
5674
- containedCallSiteIds: array(string()).optional(),
5675
- /**
5676
- * Per-input call-site value bindings for `step` nodes, keyed by input field name.
5677
- * Deterministically captured from the call's argument object; reference tokens point
5678
- * at the upstream node that produced the value. The platform join fills display labels.
5679
- */
5680
- inputBindings: record(string(), WorkflowCanvasRawBindingSchema).optional(),
5681
- /**
5682
- * Static `promptLlm(prompt, options)` configuration captured at the call site for
5683
- * `llm` step nodes. Only literal values are captured (model/maxTokens/temperature/
5684
- * thinkingLevel); `system`/`outputSchema` are usually expressions, so only their
5685
- * presence is recorded. Absent when no options are statically resolvable.
5686
- */
5687
- llmOptions: WorkflowCanvasLlmOptionsSchema.optional()
5688
- });
5689
- /**
5690
- * A single structural node. This is the deploy artifact's shape: identity
5691
- * (`id`), the canonical discriminator (`nodeType`), display `data`, and group
5692
- * nesting (`parentId`). All layout/rendering — React Flow component key,
5693
- * positions, sizes, `extent`, group box dimensions — is derived entirely
5694
- * client-side from this structure, so it never leaks into the wire contract.
5695
- */
5696
- const WorkflowCanvasGraphNodeSchema = object({
5697
- id: string(),
5698
- nodeType: WorkflowCanvasNodeTypeSchema,
5699
- data: WorkflowCanvasNodeDataSchema,
5700
- /** Set on children nested inside a group (loop / parallel) container. */
5701
- parentId: string().optional()
5702
- });
5703
- const WorkflowCanvasEdgeSchema = object({
5704
- id: string(),
5705
- source: string(),
5706
- target: string(),
5707
- type: string().optional(),
5708
- label: string().optional(),
5709
- sourceHandle: string().optional(),
5710
- targetHandle: string().optional(),
5711
- data: object({ branchKind: _enum([
5712
- "then",
5713
- "else",
5714
- "parallel-branch",
5715
- "error"
5716
- ]).optional() }).optional()
5717
- });
5718
- /** A statically-evaluable top-level `const` value (literal scalars only). */
5719
- const WorkflowCanvasConstantValueSchema = union([
5720
- string(),
5721
- number$1(),
5722
- boolean()
5723
- ]);
5724
- /**
5725
- * Top-level `const NAME = <literal>` declarations in the workflow source, captured
5726
- * at deploy. Lets the platform resolve `variable` value tokens (e.g. a `model` set
5727
- * to a named const) to their concrete value for display. Scalars only — computed,
5728
- * function-local, or non-literal consts are intentionally omitted.
5729
- */
5730
- const WorkflowCanvasConstantsSchema = record(string(), WorkflowCanvasConstantValueSchema);
5731
- const WorkflowCanvasGraphSchema = object({
5732
- nodes: array(WorkflowCanvasGraphNodeSchema),
5733
- edges: array(WorkflowCanvasEdgeSchema),
5734
- /** Top-level literal constants from the workflow source (for value-token resolution). */
5735
- constants: WorkflowCanvasConstantsSchema.optional()
5736
- });
5737
- /**
5738
- * Deploy-time summary of one credential a step requires, derived from the
5739
- * action/agent-tool definition's `.credentials`. The workflow-canvas credential
5740
- * overlay joins a step node's `slug` to these to resolve the bound instance.
5741
- * `key` doubles as the app slug (matches `credential_instances.app_slug`).
5742
- */
5743
- const CredentialRequirementSummarySchema = object({
5744
- key: string(),
5745
- kind: CredentialAuthKindSchema,
5746
- /** Scope pinned via `.scope(...)`; absent means project-default → org-default. */
5747
- scope: CredentialScopeTypeSchema.optional()
5748
- });
5749
5488
  const StoredRouteManifestSkillSchema = object({
5750
5489
  slug: string(),
5751
- name: requiredDisplayTextSchema,
5752
- description: requiredDisplayTextSchema,
5490
+ name: string().optional(),
5491
+ description: string().optional(),
5753
5492
  moduleFile: string()
5754
5493
  });
5755
5494
  const attachmentSchemasSchema = record(string(), object({
@@ -5757,8 +5496,8 @@ const attachmentSchemasSchema = record(string(), object({
5757
5496
  filterSchema: record(string(), unknown()).optional()
5758
5497
  }));
5759
5498
  const attachmentMetaSchema = record(string(), object({
5760
- name: requiredDisplayTextSchema,
5761
- description: requiredDisplayTextSchema
5499
+ name: string().optional(),
5500
+ description: string().optional()
5762
5501
  }));
5763
5502
  const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
5764
5503
  object({ kind: literal("health") }),
@@ -5766,43 +5505,23 @@ const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
5766
5505
  kind: literal("agent"),
5767
5506
  slug: string(),
5768
5507
  moduleFile: string(),
5769
- name: requiredDisplayTextSchema,
5770
- description: requiredDisplayTextSchema,
5508
+ name: string().optional(),
5509
+ description: string().optional(),
5771
5510
  model: string(),
5772
5511
  systemPrompt: string(),
5773
5512
  toolCount: number$1().int().nonnegative(),
5774
5513
  credentialCount: number$1().int().nonnegative(),
5775
5514
  appSlugs: array(string()).default([]),
5776
- toolSlugs: array(string()).default([]),
5777
- /** Credential requirements per tool slug (the agent's credential consumer key). */
5778
- toolRequirements: record(string(), array(CredentialRequirementSummarySchema)).optional()
5779
- }),
5780
- object({
5781
- kind: literal("action"),
5782
- slug: string(),
5783
- name: requiredDisplayTextSchema,
5784
- description: requiredDisplayTextSchema,
5785
- moduleFile: string(),
5786
- /** App slug for actions imported from an integration package (`@keystrokehq/<app>/actions`). */
5787
- appSlug: string().optional(),
5788
- inputSchema: record(string(), unknown()),
5789
- outputSchema: record(string(), unknown()),
5790
- /** Credentials this action requires (for the canvas credential overlay). */
5791
- requirements: array(CredentialRequirementSummarySchema).optional()
5515
+ toolSlugs: array(string()).default([])
5792
5516
  }),
5793
5517
  object({
5794
5518
  kind: literal("workflow"),
5795
5519
  slug: string(),
5796
- name: requiredDisplayTextSchema,
5797
- description: requiredDisplayTextSchema,
5520
+ name: string().optional(),
5521
+ description: string().optional(),
5798
5522
  subscribable: boolean(),
5799
5523
  moduleFile: string(),
5800
- requestSchema: record(string(), unknown()),
5801
- responseSchema: record(string(), unknown()).optional(),
5802
- /** Deterministic AST control-flow skeleton (deploy-time producer). */
5803
- flowGraph: WorkflowCanvasGraphSchema.optional(),
5804
- /** sha256 of the workflow source the `flowGraph` was produced from (staleness). */
5805
- flowGraphSourceHash: string().optional()
5524
+ requestSchema: record(string(), unknown())
5806
5525
  }),
5807
5526
  object({
5808
5527
  kind: literal("trigger-webhook"),
@@ -5821,8 +5540,8 @@ const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
5821
5540
  moduleFile: string(),
5822
5541
  sourceHash: string().optional(),
5823
5542
  schedule: string(),
5824
- name: requiredDisplayTextSchema,
5825
- description: requiredDisplayTextSchema
5543
+ name: string().optional(),
5544
+ description: string().optional()
5826
5545
  }),
5827
5546
  object({
5828
5547
  kind: literal("trigger-poll-group"),
@@ -5838,8 +5557,8 @@ const storedRouteManifestEntryV2Schema = discriminatedUnion("kind", [
5838
5557
  moduleFile: string(),
5839
5558
  sourceHash: string().optional(),
5840
5559
  schedule: string(),
5841
- name: requiredDisplayTextSchema,
5842
- description: requiredDisplayTextSchema
5560
+ name: string().optional(),
5561
+ description: string().optional()
5843
5562
  })
5844
5563
  ]);
5845
5564
  const storedRouteManifestV2Schema = object({
@@ -5848,14 +5567,165 @@ const storedRouteManifestV2Schema = object({
5848
5567
  skills: array(StoredRouteManifestSkillSchema).default([]),
5849
5568
  integrations: array(string()).optional()
5850
5569
  });
5851
- /**
5852
- * Parse a stored route manifest. Only the strict v2 schema is supported: the
5853
- * builder always emits v2 and every deploy regenerates the manifest, so there is
5854
- * no legacy upcasting. (The pre-v2 `normalizeEntryToV2` path was removed once the
5855
- * data tables were truncated and all artifacts redeployed.)
5856
- */
5570
+ const DERIVED_ENTRY_KINDS = new Set([
5571
+ "agent-sessions-list",
5572
+ "agent-session-detail",
5573
+ "workflow-runs-list",
5574
+ "workflow-run-detail",
5575
+ "trigger-runs-list",
5576
+ "trigger-run-detail"
5577
+ ]);
5578
+ function webhookEndpointFromPath(path) {
5579
+ return path.replace(/^\/triggers\//, "").replace(/^\/+|\/+$/g, "");
5580
+ }
5581
+ function legacyAgentAppSlugs(entry) {
5582
+ if (Array.isArray(entry.appSlugs)) return entry.appSlugs;
5583
+ if (Array.isArray(entry.credentialSlugs)) return entry.credentialSlugs;
5584
+ if (Array.isArray(entry.credentialKeys)) return entry.credentialKeys;
5585
+ return [];
5586
+ }
5587
+ /** TODO remove after all artifacts rebuilt — upcasts legacy v1 manifests to v2. */
5588
+ function normalizeEntryToV2(entry) {
5589
+ const kind = entry.kind;
5590
+ if (typeof kind !== "string") return null;
5591
+ if (DERIVED_ENTRY_KINDS.has(kind) || kind === "plugin") return null;
5592
+ if (kind === "health") return { kind: "health" };
5593
+ if (kind === "agent") {
5594
+ const slug = typeof entry.slug === "string" ? entry.slug : typeof entry.agentSlug === "string" ? entry.agentSlug : void 0;
5595
+ if (!slug || typeof entry.moduleFile !== "string") return null;
5596
+ return {
5597
+ kind: "agent",
5598
+ slug,
5599
+ moduleFile: entry.moduleFile,
5600
+ ...typeof entry.name === "string" ? { name: entry.name } : {},
5601
+ ...typeof entry.description === "string" ? { description: entry.description } : {},
5602
+ model: typeof entry.model === "string" ? entry.model : "",
5603
+ systemPrompt: typeof entry.systemPrompt === "string" ? entry.systemPrompt : "",
5604
+ toolCount: typeof entry.toolCount === "number" ? entry.toolCount : 0,
5605
+ credentialCount: typeof entry.credentialCount === "number" ? entry.credentialCount : 0,
5606
+ appSlugs: legacyAgentAppSlugs(entry),
5607
+ toolSlugs: Array.isArray(entry.toolSlugs) ? entry.toolSlugs : []
5608
+ };
5609
+ }
5610
+ if (kind === "workflow") {
5611
+ const slug = typeof entry.slug === "string" ? entry.slug : typeof entry.workflowSlug === "string" ? entry.workflowSlug : void 0;
5612
+ if (!slug || typeof entry.moduleFile !== "string") return null;
5613
+ const name = typeof entry.name === "string" ? entry.name : typeof entry.workflowName === "string" ? entry.workflowName : void 0;
5614
+ return {
5615
+ kind: "workflow",
5616
+ slug,
5617
+ moduleFile: entry.moduleFile,
5618
+ ...name ? { name } : {},
5619
+ ...typeof entry.description === "string" ? { description: entry.description } : {},
5620
+ subscribable: entry.subscribable === true,
5621
+ requestSchema: entry.requestSchema && typeof entry.requestSchema === "object" ? entry.requestSchema : {}
5622
+ };
5623
+ }
5624
+ if (kind === "trigger-webhook") {
5625
+ if (typeof entry.moduleFile !== "string" || !Array.isArray(entry.attachmentIds)) return null;
5626
+ const endpoint = typeof entry.endpoint === "string" ? entry.endpoint : typeof entry.path === "string" ? webhookEndpointFromPath(entry.path) : void 0;
5627
+ if (!endpoint) return null;
5628
+ return {
5629
+ kind: "trigger-webhook",
5630
+ endpoint,
5631
+ attachmentIds: entry.attachmentIds,
5632
+ moduleFile: entry.moduleFile,
5633
+ ...typeof entry.sourceHash === "string" ? { sourceHash: entry.sourceHash } : {},
5634
+ attachmentSchemas: entry.attachmentSchemas && typeof entry.attachmentSchemas === "object" ? entry.attachmentSchemas : {},
5635
+ ...entry.attachmentMeta && typeof entry.attachmentMeta === "object" ? { attachmentMeta: entry.attachmentMeta } : {}
5636
+ };
5637
+ }
5638
+ if (kind === "trigger-poll") {
5639
+ if (typeof entry.attachmentId !== "string" || typeof entry.moduleFile !== "string" || typeof entry.schedule !== "string") return null;
5640
+ return {
5641
+ kind: "trigger-poll",
5642
+ attachmentId: entry.attachmentId,
5643
+ attachmentIds: Array.isArray(entry.attachmentIds) ? entry.attachmentIds : [entry.attachmentId],
5644
+ moduleFile: entry.moduleFile,
5645
+ ...typeof entry.sourceHash === "string" ? { sourceHash: entry.sourceHash } : {},
5646
+ schedule: entry.schedule,
5647
+ ...typeof entry.name === "string" ? { name: entry.name } : {},
5648
+ ...typeof entry.description === "string" ? { description: entry.description } : {}
5649
+ };
5650
+ }
5651
+ if (kind === "trigger-poll-group") {
5652
+ if (typeof entry.pollId !== "string" || typeof entry.moduleFile !== "string" || typeof entry.schedule !== "string" || !Array.isArray(entry.attachmentIds)) return null;
5653
+ return {
5654
+ kind: "trigger-poll-group",
5655
+ pollId: entry.pollId,
5656
+ attachmentIds: entry.attachmentIds,
5657
+ moduleFile: entry.moduleFile,
5658
+ schedule: entry.schedule
5659
+ };
5660
+ }
5661
+ if (kind === "cron-schedule") {
5662
+ if (typeof entry.attachmentId !== "string" || typeof entry.moduleFile !== "string" || typeof entry.schedule !== "string") return null;
5663
+ return {
5664
+ kind: "cron-schedule",
5665
+ attachmentId: entry.attachmentId,
5666
+ attachmentIds: Array.isArray(entry.attachmentIds) ? entry.attachmentIds : [entry.attachmentId],
5667
+ moduleFile: entry.moduleFile,
5668
+ ...typeof entry.sourceHash === "string" ? { sourceHash: entry.sourceHash } : {},
5669
+ schedule: entry.schedule,
5670
+ ...typeof entry.name === "string" ? { name: entry.name } : {},
5671
+ ...typeof entry.description === "string" ? { description: entry.description } : {}
5672
+ };
5673
+ }
5674
+ return null;
5675
+ }
5676
+ /** TODO remove after all artifacts rebuilt — upcasts legacy v1 manifests to v2. */
5677
+ function normalizeV2ManifestInput(value) {
5678
+ if (!value || typeof value !== "object") return value;
5679
+ const raw = value;
5680
+ if (raw.version !== 2 || !Array.isArray(raw.entries)) return value;
5681
+ return {
5682
+ ...raw,
5683
+ entries: raw.entries.map((entry) => {
5684
+ if (!entry || typeof entry !== "object") return entry;
5685
+ const kind = entry.kind;
5686
+ if (kind === "trigger-poll" || kind === "cron-schedule" || kind === "trigger-webhook" || kind === "trigger-poll-group") {
5687
+ const trigger = entry;
5688
+ if (Array.isArray(trigger.attachmentIds)) return entry;
5689
+ return {
5690
+ ...trigger,
5691
+ attachmentIds: typeof trigger.attachmentId === "string" ? [trigger.attachmentId] : []
5692
+ };
5693
+ }
5694
+ if (kind !== "agent") return entry;
5695
+ const agent = entry;
5696
+ if (Array.isArray(agent.appSlugs)) return entry;
5697
+ const appSlugs = legacyAgentAppSlugs(agent);
5698
+ if (appSlugs.length === 0) return entry;
5699
+ const { credentialKeys: _credentialKeys, credentialSlugs: _credentialSlugs, ...rest } = agent;
5700
+ return {
5701
+ ...rest,
5702
+ appSlugs,
5703
+ toolSlugs: Array.isArray(agent.toolSlugs) ? agent.toolSlugs : []
5704
+ };
5705
+ })
5706
+ };
5707
+ }
5708
+ /** TODO remove after all artifacts rebuilt — upcasts legacy v1 manifests to v2. */
5709
+ function normalizeStoredRouteManifestToV2(value) {
5710
+ if (!value || typeof value !== "object") throw new Error("Invalid route manifest");
5711
+ const raw = value;
5712
+ if (raw.version === 2) return storedRouteManifestV2Schema.parse(normalizeV2ManifestInput(value));
5713
+ const entriesRaw = Array.isArray(raw.entries) ? raw.entries : [];
5714
+ const entries = [];
5715
+ for (const entry of entriesRaw) {
5716
+ if (!entry || typeof entry !== "object") continue;
5717
+ const normalized = normalizeEntryToV2(entry);
5718
+ if (normalized) entries.push(normalized);
5719
+ }
5720
+ return storedRouteManifestV2Schema.parse({
5721
+ version: 2,
5722
+ entries,
5723
+ skills: raw.skills ?? [],
5724
+ integrations: raw.integrations
5725
+ });
5726
+ }
5857
5727
  function parseStoredRouteManifest(value) {
5858
- return storedRouteManifestV2Schema.parse(value);
5728
+ return normalizeStoredRouteManifestToV2(value);
5859
5729
  }
5860
5730
  /** Messaging platforms that support agent gateway bindings. */
5861
5731
  const ChannelPlatformKeySchema = _enum(["slack"]);
@@ -6394,6 +6264,24 @@ function isAcceptableInstallExit(manager, exitCode, output) {
6394
6264
  if (manager === "pnpm" && output.includes("ERR_PNPM_IGNORED_BUILDS")) return true;
6395
6265
  return false;
6396
6266
  }
6267
+ /** How a credential instance is stored (`credential_instances.auth_kind`). */
6268
+ const CredentialAuthKindSchema = _enum([
6269
+ "api_key",
6270
+ "oauth_managed",
6271
+ "keystroke"
6272
+ ]);
6273
+ /**
6274
+ * Where a credential instance is stored (`credential_instances.scope_type`), and the only thing an
6275
+ * action/tool can pin via `.scope(...)`. There is no resolution chain: when no scope is pinned, the
6276
+ * resolver tries the project default, then the org default, then throws.
6277
+ */
6278
+ const CredentialScopeTypeSchema = _enum([
6279
+ "organization",
6280
+ "project",
6281
+ "user"
6282
+ ]);
6283
+ CredentialAuthKindSchema.options;
6284
+ CredentialScopeTypeSchema.options;
6397
6285
  /** Scope of a platform app credential (maps to `credential_instances.scope_type`). */
6398
6286
  const AppCredentialScopeSchema = _enum([
6399
6287
  "user",
@@ -6413,8 +6301,6 @@ const nullableOptionalTimestamp = string().nullable().optional();
6413
6301
  const AppCredentialSummarySchema = object({
6414
6302
  id: string().min(1),
6415
6303
  appId: string().min(1),
6416
- /** Stable per-scope identifier; pass to `--credential` to pin a specific instance. */
6417
- slug: string().min(1),
6418
6304
  label: string().min(1),
6419
6305
  scope: AppCredentialScopeSchema,
6420
6306
  lastRefreshedAt: string().nullable(),
@@ -6572,7 +6458,7 @@ const McpCredentialAssignmentTargetSchema = object({
6572
6458
  type: CredentialAssignmentTargetTypeSchema,
6573
6459
  key: string().trim().min(1)
6574
6460
  });
6575
- const ExecuteKeystrokeToolRequestSchema = object({
6461
+ object({
6576
6462
  app: string().trim().min(1),
6577
6463
  tool: string().trim().min(1),
6578
6464
  arguments: record(string(), unknown()).default({}),
@@ -6581,11 +6467,7 @@ const ExecuteKeystrokeToolRequestSchema = object({
6581
6467
  /** When set, platform MCP resolve checks credential assignments before scope defaults. */
6582
6468
  assignmentTarget: McpCredentialAssignmentTargetSchema.optional(),
6583
6469
  /** Tool/step consumer id for assignment lookup (action slug or workflow step correlation id). */
6584
- consumerId: string().trim().min(1).optional(),
6585
- /** Explicit credential instance slug; overrides default resolution to pick that instance. */
6586
- credentialSlug: string().trim().min(1).optional(),
6587
- /** Project slug (CLI --project); the platform resolves it to a project and binds that scope. */
6588
- projectSlug: string().trim().min(1).optional()
6470
+ consumerId: string().trim().min(1).optional()
6589
6471
  });
6590
6472
  object({
6591
6473
  error: _enum([
@@ -7446,7 +7328,7 @@ const WorkspaceTriggerSummarySchema = object({
7446
7328
  id: string(),
7447
7329
  slug: string(),
7448
7330
  name: string(),
7449
- description: string().min(1),
7331
+ description: string().nullable(),
7450
7332
  type: TriggerTypeSchema,
7451
7333
  status: TriggerStatusSchema,
7452
7334
  projectId: string(),
@@ -7753,7 +7635,7 @@ const AgentSummarySchema = object({
7753
7635
  name: string().min(1),
7754
7636
  projectId: string().min(1),
7755
7637
  updatedAt: string().min(1),
7756
- description: string().min(1),
7638
+ description: string().optional(),
7757
7639
  sourcePath: string().min(1).optional(),
7758
7640
  model: string().optional(),
7759
7641
  capabilities: object({
@@ -7775,7 +7657,7 @@ const WorkflowSummarySchema = object({
7775
7657
  name: string().min(1),
7776
7658
  projectId: string().min(1),
7777
7659
  updatedAt: string().min(1),
7778
- description: string().min(1),
7660
+ description: string().optional(),
7779
7661
  sourcePath: string().min(1).optional(),
7780
7662
  lastRunAt: optionalTimestamp
7781
7663
  });
@@ -7785,7 +7667,7 @@ const SkillSummarySchema = object({
7785
7667
  name: string().min(1),
7786
7668
  projectId: string().min(1),
7787
7669
  updatedAt: string().min(1),
7788
- description: string().min(1),
7670
+ description: string().optional(),
7789
7671
  sourcePath: string().min(1).optional()
7790
7672
  });
7791
7673
  const AgentSummaryListResponseSchema = array(AgentSummarySchema);
@@ -7904,252 +7786,7 @@ const ListAgentWorkspaceFilesResponseSchema = object({ files: array(object({
7904
7786
  id: string(),
7905
7787
  path: string().min(1)
7906
7788
  })) });
7907
- /** Whether the overview is still being produced or finished. */
7908
- const WorkflowOverviewStatusSchema = _enum(["generating", "ready"]);
7909
- /** One phase of the guided-tour overview. */
7910
- const WorkflowPhaseSchema = object({
7911
- id: string(),
7912
- title: string(),
7913
- copy: string(),
7914
- nodeIds: array(string())
7915
- });
7916
- /** LLM-generated overview envelope. */
7917
- const WorkspaceWorkflowOverviewSchema = object({
7918
- status: WorkflowOverviewStatusSchema,
7919
- summary: string(),
7920
- phases: array(WorkflowPhaseSchema),
7921
- hash: string(),
7922
- generatedAt: string().nullable(),
7923
- model: string()
7924
- });
7925
- /** Subset of JSON-Schema field types the dashboard form renders inline. */
7926
- const WorkflowInputFieldTypeSchema = _enum([
7927
- "string",
7928
- "number",
7929
- "boolean",
7930
- "enum",
7931
- "object",
7932
- "array"
7933
- ]);
7934
- const WorkflowInputFieldSchema = lazy(() => object({
7935
- key: string(),
7936
- label: string(),
7937
- type: WorkflowInputFieldTypeSchema,
7938
- required: boolean(),
7939
- description: string().optional(),
7940
- placeholder: string().optional(),
7941
- options: array(string()).optional(),
7942
- default: union([
7943
- string(),
7944
- number$1(),
7945
- boolean()
7946
- ]).optional(),
7947
- children: array(WorkflowInputFieldSchema).optional(),
7948
- format: string().optional()
7949
- }));
7950
- /** A workflow's run-input contract plus its persisted values. */
7951
- const WorkflowRunInputsSchema = object({
7952
- schema: object({ fields: array(WorkflowInputFieldSchema) }),
7953
- values: record(string(), unknown()).nullable()
7954
- });
7955
- /** Response of the manual workflow-run route (`POST /workflows/:id/run`). */
7956
- const WorkflowRunResponseSchema = object({ runId: string() });
7957
- /** Annotation lifecycle: "generating" while the LLM pass streams in, then "ready". */
7958
- const WorkflowCanvasStatusSchema = _enum(["generating", "ready"]);
7959
- /** LLM-produced enrichment for a single skeleton node. */
7960
- const WorkflowCanvasAnnotationSchema = object({
7961
- label: string().optional(),
7962
- description: string().optional()
7963
- });
7964
- /** The configured value of one input at this call site. */
7965
- const WorkflowNodeInputBindingSchema = object({
7966
- tokens: array(discriminatedUnion("kind", [
7967
- object({
7968
- kind: literal("text"),
7969
- text: string()
7970
- }),
7971
- object({
7972
- kind: literal("reference"),
7973
- sourceNodeId: string().optional(),
7974
- sourceLabel: string(),
7975
- field: string().optional()
7976
- }),
7977
- object({
7978
- kind: literal("variable"),
7979
- text: string(),
7980
- /** Concrete value when `text` resolves to a top-level literal constant. */
7981
- resolvedValue: string().optional()
7982
- }),
7983
- object({
7984
- kind: literal("call"),
7985
- name: string()
7986
- })
7987
- ])),
7988
- multiline: boolean().optional()
7989
- });
7990
- /** An inspector input with optional call-site binding. */
7991
- const WorkflowCanvasNodeInputSchema = WorkflowInputFieldSchema.and(object({
7992
- binding: WorkflowNodeInputBindingSchema.optional(),
7993
- additional: boolean().optional()
7994
- }));
7995
- /** Authored, deterministic metadata for a single node. */
7996
- const WorkflowCanvasNodeMetaSchema = object({
7997
- kind: _enum([
7998
- "action",
7999
- "agent",
8000
- "workflow",
8001
- "llm",
8002
- "trigger",
8003
- "boundary"
8004
- ]),
8005
- slug: string(),
8006
- name: string(),
8007
- description: string().optional(),
8008
- appSlug: string().optional(),
8009
- inputs: array(WorkflowCanvasNodeInputSchema),
8010
- outputs: array(WorkflowInputFieldSchema),
8011
- requiredApps: array(string()).optional(),
8012
- model: string().optional(),
8013
- toolCount: number$1().int().nonnegative().optional()
8014
- });
8015
- /** The workflow canvas envelope. */
8016
- const WorkflowCanvasSchema = object({
8017
- graph: WorkflowCanvasGraphSchema,
8018
- nodeMetadata: record(string(), WorkflowCanvasNodeMetaSchema),
8019
- annotations: record(string(), WorkflowCanvasAnnotationSchema),
8020
- status: WorkflowCanvasStatusSchema,
8021
- hash: string(),
8022
- generatedAt: string().nullable(),
8023
- model: string()
8024
- });
8025
- const WorkflowCanvasNodeRunStateSchema = object({
8026
- status: _enum([
8027
- "pending",
8028
- "running",
8029
- "succeeded",
8030
- "failed",
8031
- "skipped"
8032
- ]),
8033
- iteration: object({
8034
- index: number$1().int().nonnegative(),
8035
- total: number$1().int().nonnegative()
8036
- }).optional()
8037
- });
8038
- /** Overall lifecycle of a run as the canvas animates it. */
8039
- const WorkflowCanvasRunStatusSchema = _enum([
8040
- "running",
8041
- "succeeded",
8042
- "failed",
8043
- "canceled"
8044
- ]);
8045
- /** A run projected onto the canvas. */
8046
- const WorkflowCanvasRunSchema = object({
8047
- runId: string(),
8048
- status: WorkflowCanvasRunStatusSchema,
8049
- startedAt: string(),
8050
- finishedAt: string().nullable(),
8051
- nodeStates: record(string(), WorkflowCanvasNodeRunStateSchema)
8052
- });
8053
- /** Scope a credential instance lives in. */
8054
- const WorkflowCredentialScopeSchema = _enum([
8055
- "organization",
8056
- "project",
8057
- "user"
8058
- ]);
8059
- /** The concrete credential instance a binding currently resolves to. */
8060
- const WorkflowResolvedCredentialSchema = object({
8061
- id: string(),
8062
- name: string(),
8063
- scope: WorkflowCredentialScopeSchema,
8064
- appSlug: string().optional(),
8065
- isDefault: boolean().optional(),
8066
- projectId: string().optional(),
8067
- projectName: string().optional()
8068
- });
8069
- record(string(), WorkflowCanvasAnnotationSchema);
8070
- /** One opaque code-block the annotation pass should label, keyed by its canvas node id. */
8071
- const WorkflowCanvasAnnotationCodeBlockSchema = object({
8072
- nodeId: string(),
8073
- /** The raw source snippet (the node's label) the LLM turns into human copy. */
8074
- source: string()
8075
- });
8076
- /** Inputs the worker feeds the LLM for the gated code-block annotation pass. */
8077
- const WorkflowCanvasAnnotationsInputSchema = object({
8078
- workflowName: string(),
8079
- workflowDescription: string().nullable(),
8080
- codeBlocks: array(WorkflowCanvasAnnotationCodeBlockSchema)
8081
- });
8082
- object({
8083
- workflowId: string(),
8084
- projectId: string(),
8085
- hash: string(),
8086
- model: string(),
8087
- input: WorkflowCanvasAnnotationsInputSchema
8088
- });
8089
- /** One node as the overview LLM sees it (derived from the canvas node metadata + graph). */
8090
- const WorkflowOverviewNodeSchema = object({
8091
- nodeId: string(),
8092
- label: string(),
8093
- kind: string(),
8094
- description: string().optional(),
8095
- /** App/integration slug for steps imported from a `@keystrokehq/<app>` package. */
8096
- appSlug: string().optional(),
8097
- /** Authored input field keys (from the action/agent/workflow definition). */
8098
- inputs: array(string()).optional(),
8099
- /** Authored output field keys. */
8100
- outputs: array(string()).optional(),
8101
- /** Agent-only: the model the agent runs on. */
8102
- model: string().optional(),
8103
- /** Agent-only: number of tools available to the agent. */
8104
- toolCount: number$1().int().nonnegative().optional()
8105
- });
8106
- /** Inputs the worker feeds the LLM to produce the workflow overview (summary + phases). */
8107
- const WorkflowOverviewInputSchema = object({
8108
- workflowName: string(),
8109
- workflowDescription: string().nullable(),
8110
- /** Display labels of the trigger sources upstream of the workflow (read-only context). */
8111
- triggers: array(string()),
8112
- nodes: array(WorkflowOverviewNodeSchema),
8113
- /** The workflow's TypeScript source (best-effort; null when the deploy has no source snapshot). */
8114
- source: string().nullable()
8115
- });
8116
- object({
8117
- workflowId: string(),
8118
- projectId: string(),
8119
- hash: string(),
8120
- model: string(),
8121
- input: WorkflowOverviewInputSchema
8122
- });
8123
- const WorkflowCanvasCredentialBindingBaseSchema = object({
8124
- credentialKey: string(),
8125
- label: string(),
8126
- appSlug: string().optional()
8127
- });
8128
- /** How one credential requirement on a step currently resolves. */
8129
- const WorkflowCanvasCredentialBindingSchema = union([
8130
- WorkflowCanvasCredentialBindingBaseSchema.extend({
8131
- policy: _enum([
8132
- "project-default",
8133
- "org-default",
8134
- "assigned"
8135
- ]),
8136
- instance: WorkflowResolvedCredentialSchema
8137
- }),
8138
- WorkflowCanvasCredentialBindingBaseSchema.extend({
8139
- policy: literal("scope-pinned"),
8140
- pinnedScope: WorkflowCredentialScopeSchema,
8141
- instance: WorkflowResolvedCredentialSchema
8142
- }),
8143
- WorkflowCanvasCredentialBindingBaseSchema.extend({
8144
- policy: literal("unresolved"),
8145
- reason: _enum(["needs-selection", "missing"]),
8146
- pinnedScope: WorkflowCredentialScopeSchema.optional()
8147
- })
8148
- ]);
8149
- /** Live credential overlay: canvas node id → its step's credential bindings. */
8150
- const WorkflowCanvasCredentialBindingsSchema = record(string(), array(WorkflowCanvasCredentialBindingSchema));
8151
- const WorkflowRunInputsPutBodySchema = record(string(), unknown());
8152
7789
  //#endregion
8153
- export { GetCredentialResponseSchema as $, normalizeCredentialList as $n, SkillSummaryListResponseSchema as $t, CreateCustomAppRequestSchema as A, WorkflowCanvasCredentialBindingsSchema as An, url as Ar, PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS as At, CredentialConsumerListQuerySchema as B, WorkflowSummaryListResponseSchema as Bn, ProjectPullStateSchema as Bt, ConnectAuthorizeUrlResponseSchema as C, UploadProjectSourceManifestRequestSchema as Cn, object as Cr, ListProjectMetricsResponseSchema as Ct, CreateCredentialInstanceBodySchema as D, UserAvatarSchema as Dn, string as Dr, OrganizationSidebarBrandingPatchSchema as Dt, CreateApiKeyResponseSchema as E, UserAvatarPatchSchema as En, record as Er, OpenApiDiscoverResponseSchema as Et, CreateProjectRequestSchema as F, WorkflowRunInputsPutBodySchema as Fn, PresignOrgLogoResponseSchema as Ft, DOCS_QUERY_TOOL as G, WorkspaceTriggerRunListResponseSchema as Gn, PromptInputSchema as Gt, CredentialInstanceListResponseSchema as H, WorkspaceTriggerFileSchema as Hn, ProjectResponseSchema as Ht, CreateProjectResponseSchema as I, WorkflowRunInputsSchema as In, PresignProjectSourceRequestSchema as It, DownloadActiveProjectArtifactResponseSchema as J, credentialInputSchema as Jn, QueuedAgentPromptResponseSchema as Jt, DOCS_SEARCH_TOOL as K, WorkspaceWorkflowOverviewSchema as Kn, PromptResponseSchema as Kt, CredentialAssignmentListQuerySchema as L, WorkflowRunListResponseSchema as Ln, PresignProjectSourceResponseSchema as Lt, CreateOrganizationRequestSchema as M, WorkflowCanvasSchema as Mn, toJSONSchema as Mr, PresignChatAttachmentRequestSchema as Mt, CreateOrganizationResponseSchema as N, WorkflowRunDetailResponseSchema as Nn, safeParse$1 as Nr, PresignChatAttachmentResponseSchema as Nt, CreateCredentialsRequestSchema as O, UserPreferencesPatchSchema as On, union as Or, OrganizationSidebarBrandingSchema as Ot, CreateProjectArtifactResponseSchema as P, WorkflowRunHooksResponseSchema as Pn, NEVER as Pr, PresignOrgLogoRequestSchema as Pt, GatewayAttachmentRecordSchema as Q, listenPortFromPublicUrl as Qn, SkillSummaryDetailResponseSchema as Qt, CredentialAssignmentListResponseSchema as R, WorkflowRunResponseSchema as Rn, PresignUserAvatarRequestSchema as Rt, CompleteProjectArtifactResponseSchema as S, UpdateProjectSettingsRequestSchema as Sn, number$1 as Sr, ListProjectMembersResponseSchema as St, CreateApiKeyRequestSchema as T, UpsertGatewayAttachmentBodySchema as Tn, preprocess as Tr, McpDiscoverResponseSchema as Tt, CredentialInstanceRecordSchema as U, WorkspaceTriggerListResponseSchema as Un, ProjectSettingsResponseSchema as Ut, CredentialConsumerListResponseSchema as V, WorkspaceTriggerDetailSchema as Vn, ProjectReachabilityResponseSchema as Vt, DEFAULT_CLOUD_PLATFORM_ORIGIN as W, WorkspaceTriggerOverviewSchema as Wn, ProjectSlugAvailabilityResponseSchema as Wt, ErrorResponseSchema as X, detectProjectPackageManagerFromSnapshot as Xn, ROUTE_MANIFEST_REL_PATH as Xt, DownloadActiveProjectSourceResponseSchema as Y, deriveCustomAppDisplay as Yn, QueuedRunResponseSchema as Yt, ExecuteKeystrokeToolRequestSchema as Z, isAcceptableInstallExit as Zn, RecentResourceListResponseSchema as Zt, ChannelAccountListResponseSchema as _, UpdateOrganizationMemberResponseSchema as _n, custom as _r, ListOrganizationInvitationsResponseSchema as _t, AgentSessionDetailResponseSchema as a, StartOAuthConnectionInputSchema as an, resolveConnectAppSlug as ar, HistoryRunListQuerySchema as at, ChannelDirectoryListResponseSchema as b, UpdateProjectMemberResponseSchema as bn, literal as br, ListProjectDeploymentsResponseSchema as bt, AgentSummaryListResponseSchema as c, SubmitTeamRequestRequestSchema as cn, slugifyAppName as cr, InviteOrganizationMembersResponseSchema as ct, AssignCredentialBodySchema as d, TriggerRunDetailResponseSchema as dn, _enum as dr, LOCAL_PLATFORM_ORIGIN as dt, SlugAvailabilityResponseSchema as en, originFromPublicUrl as er, GetCustomAppResponseSchema as et, BindChannelBodySchema as f, TriggerRunListResponseSchema as fn, _function as fr, ListAgentMemoryFilesResponseSchema as ft, CatalogAppsPageResponseSchema as g, UpdateOrganizationMemberRequestSchema as gn, boolean as gr, ListCredentialsResponseSchema as gt, CatalogAppDetailResponseSchema as h, UpdateCredentialRequestSchema as hn, array as hr, ListAppsResponseSchema as ht, AgentSessionChatStateResponseSchema as i, StartMcpOAuthConnectionResultSchema as in, requiredDisplayTextSchema as ir, HistoryRunDetailResponseSchema as it, CreateCustomAppResponseSchema as j, WorkflowCanvasRunSchema as jn, datetime as jr, PollRunResponseSchema as jt, CreateCredentialsResponseSchema as k, UserPreferencesSchema as kn, unknown as kr, PROJECT_PULL_STATE_RELATIVE_PATH as kt, AgentTriggerSummaryListResponseSchema as l, TriggerDetailResponseSchema as ln, number as lr, InviteProjectMembersRequestSchema as lt, CatalogActionsPageResponseSchema as m, UpdateCredentialInstanceBodySchema as mn, any as mr, ListApiKeysResponseSchema as mt, AcceptOrganizationInvitationResponseSchema as n, StartKeystrokeConnectionResultSchema as nn, parseErrorResponse as nr, HealthResponseSchema as nt, AgentSessionListResponseSchema as o, StartOAuthConnectionResultSchema as on, resolveDocsMcpUrl as or, HistoryRunListResponseSchema as ot, CatalogActionDetailResponseSchema as p, UpdateChannelBindingBodySchema as pn, _null as pr, ListAgentWorkspaceFilesResponseSchema as pt, DeclineOrganizationInvitationResponseSchema as q, buildConnectDeeplink as qn, PublicModelsResponseSchema as qt, ActiveOrganizationResponseSchema as r, StartMcpOAuthConnectionInputSchema as rn, parseStoredRouteManifest as rr, HistoryRunCancelResponseSchema as rt, AgentSummaryDetailResponseSchema as s, SubmitMarketingContactRequestSchema as sn, resolvePublicPlatformOrigin as sr, InviteOrganizationMembersRequestSchema as st, ACTIVE_ORG_HEADER as t, StartKeystrokeConnectionInputSchema as tn, parseAppSlug as tr, GraphqlDiscoverResponseSchema as tt, AppSlugAvailabilityResponseSchema as u, TriggerListResponseSchema as un, ZodType as ur, InviteProjectMembersResponseSchema as ut, ChannelConnectionListResponseSchema as v, UpdateOrganizationRequestSchema as vn, discriminatedUnion as vr, ListOrganizationMembersResponseSchema as vt, ConnectProvidersResponseSchema as w, UploadProjectSourceResponseSchema as wn, optional as wr, ListProjectsResponseSchema as wt, ChannelPlatformSchema as x, UpdateProjectRequestSchema as xn, looseObject as xr, ListProjectFilesResponseSchema as xt, ChannelConnectionSchema as y, UpdateProjectMemberRequestSchema as yn, intersection as yr, ListOrganizationsResponseSchema as yt, CredentialAssignmentRecordSchema as z, WorkflowSummaryDetailResponseSchema as zn, PresignUserAvatarResponseSchema as zt };
7790
+ export { GetCustomAppResponseSchema as $, slugifyAppName as $n, SlugAvailabilityResponseSchema as $t, CreateCustomAppRequestSchema as A, WorkflowRunHooksResponseSchema as An, PollRunResponseSchema as At, CredentialConsumerListQuerySchema as B, credentialInputSchema as Bn, ProjectReachabilityResponseSchema as Bt, ConnectAuthorizeUrlResponseSchema as C, UploadProjectSourceResponseSchema as Cn, toJSONSchema as Cr, ListProjectsResponseSchema as Ct, CreateCredentialInstanceBodySchema as D, UserPreferencesPatchSchema as Dn, OrganizationSidebarBrandingSchema as Dt, CreateApiKeyResponseSchema as E, UserAvatarSchema as En, OrganizationSidebarBrandingPatchSchema as Et, CreateProjectRequestSchema as F, WorkspaceTriggerFileSchema as Fn, PresignProjectSourceRequestSchema as Ft, DOCS_QUERY_TOOL as G, normalizeCredentialList as Gn, PromptResponseSchema as Gt, CredentialInstanceListResponseSchema as H, detectProjectPackageManagerFromSnapshot as Hn, ProjectSettingsResponseSchema as Ht, CreateProjectResponseSchema as I, WorkspaceTriggerListResponseSchema as In, PresignProjectSourceResponseSchema as It, DownloadActiveProjectArtifactResponseSchema as J, parseErrorResponse as Jn, QueuedRunResponseSchema as Jt, DOCS_SEARCH_TOOL as K, originFromPublicUrl as Kn, PublicModelsResponseSchema as Kt, CredentialAssignmentListQuerySchema as L, WorkspaceTriggerOverviewSchema as Ln, PresignUserAvatarRequestSchema as Lt, CreateOrganizationRequestSchema as M, WorkflowSummaryDetailResponseSchema as Mn, PresignChatAttachmentResponseSchema as Mt, CreateOrganizationResponseSchema as N, WorkflowSummaryListResponseSchema as Nn, PresignOrgLogoRequestSchema as Nt, CreateCredentialsRequestSchema as O, UserPreferencesSchema as On, PROJECT_PULL_STATE_RELATIVE_PATH as Ot, CreateProjectArtifactResponseSchema as P, WorkspaceTriggerDetailSchema as Pn, PresignOrgLogoResponseSchema as Pt, GetCredentialResponseSchema as Q, resolvePublicPlatformOrigin as Qn, SkillSummaryListResponseSchema as Qt, CredentialAssignmentListResponseSchema as R, WorkspaceTriggerRunListResponseSchema as Rn, PresignUserAvatarResponseSchema as Rt, CompleteProjectArtifactResponseSchema as S, UploadProjectSourceManifestRequestSchema as Sn, datetime as Sr, ListProjectMetricsResponseSchema as St, CreateApiKeyRequestSchema as T, UserAvatarPatchSchema as Tn, NEVER as Tr, OpenApiDiscoverResponseSchema as Tt, CredentialInstanceRecordSchema as U, isAcceptableInstallExit as Un, ProjectSlugAvailabilityResponseSchema as Ut, CredentialConsumerListResponseSchema as V, deriveCustomAppDisplay as Vn, ProjectResponseSchema as Vt, DEFAULT_CLOUD_PLATFORM_ORIGIN as W, listenPortFromPublicUrl as Wn, PromptInputSchema as Wt, ErrorResponseSchema as X, resolveConnectAppSlug as Xn, RecentResourceListResponseSchema as Xt, DownloadActiveProjectSourceResponseSchema as Y, parseStoredRouteManifest as Yn, ROUTE_MANIFEST_REL_PATH as Yt, GatewayAttachmentRecordSchema as Z, resolveDocsMcpUrl as Zn, SkillSummaryDetailResponseSchema as Zt, ChannelAccountListResponseSchema as _, UpdateOrganizationRequestSchema as _n, record as _r, ListOrganizationMembersResponseSchema as _t, AgentSessionDetailResponseSchema as a, StartOAuthConnectionResultSchema as an, any as ar, HistoryRunListResponseSchema as at, ChannelDirectoryListResponseSchema as b, UpdateProjectRequestSchema as bn, unknown as br, ListProjectFilesResponseSchema as bt, AgentSummaryListResponseSchema as c, TriggerDetailResponseSchema as cn, custom as cr, InviteProjectMembersRequestSchema as ct, AssignCredentialBodySchema as d, TriggerRunListResponseSchema as dn, literal as dr, ListAgentMemoryFilesResponseSchema as dt, StartKeystrokeConnectionInputSchema as en, number as er, GraphqlDiscoverResponseSchema as et, BindChannelBodySchema as f, UpdateChannelBindingBodySchema as fn, looseObject as fr, ListAgentWorkspaceFilesResponseSchema as ft, CatalogAppsPageResponseSchema as g, UpdateOrganizationMemberResponseSchema as gn, preprocess as gr, ListOrganizationInvitationsResponseSchema as gt, CatalogAppDetailResponseSchema as h, UpdateOrganizationMemberRequestSchema as hn, optional as hr, ListCredentialsResponseSchema as ht, AgentSessionChatStateResponseSchema as i, StartOAuthConnectionInputSchema as in, _null as ir, HistoryRunListQuerySchema as it, CreateCustomAppResponseSchema as j, WorkflowRunListResponseSchema as jn, PresignChatAttachmentRequestSchema as jt, CreateCredentialsResponseSchema as k, WorkflowRunDetailResponseSchema as kn, PROJECT_REACHABILITY_REQUEST_TIMEOUT_MS as kt, AgentTriggerSummaryListResponseSchema as l, TriggerListResponseSchema as ln, discriminatedUnion as lr, InviteProjectMembersResponseSchema as lt, CatalogActionsPageResponseSchema as m, UpdateCredentialRequestSchema as mn, object as mr, ListAppsResponseSchema as mt, AcceptOrganizationInvitationResponseSchema as n, StartMcpOAuthConnectionInputSchema as nn, _enum as nr, HistoryRunCancelResponseSchema as nt, AgentSessionListResponseSchema as o, SubmitMarketingContactRequestSchema as on, array as or, InviteOrganizationMembersRequestSchema as ot, CatalogActionDetailResponseSchema as p, UpdateCredentialInstanceBodySchema as pn, number$1 as pr, ListApiKeysResponseSchema as pt, DeclineOrganizationInvitationResponseSchema as q, parseAppSlug as qn, QueuedAgentPromptResponseSchema as qt, ActiveOrganizationResponseSchema as r, StartMcpOAuthConnectionResultSchema as rn, _function as rr, HistoryRunDetailResponseSchema as rt, AgentSummaryDetailResponseSchema as s, SubmitTeamRequestRequestSchema as sn, boolean as sr, InviteOrganizationMembersResponseSchema as st, ACTIVE_ORG_HEADER as t, StartKeystrokeConnectionResultSchema as tn, ZodType as tr, HealthResponseSchema as tt, AppSlugAvailabilityResponseSchema as u, TriggerRunDetailResponseSchema as un, intersection as ur, LOCAL_PLATFORM_ORIGIN as ut, ChannelConnectionListResponseSchema as v, UpdateProjectMemberRequestSchema as vn, string as vr, ListOrganizationsResponseSchema as vt, ConnectProvidersResponseSchema as w, UpsertGatewayAttachmentBodySchema as wn, safeParse$1 as wr, McpDiscoverResponseSchema as wt, ChannelPlatformSchema as x, UpdateProjectSettingsRequestSchema as xn, url as xr, ListProjectMembersResponseSchema as xt, ChannelConnectionSchema as y, UpdateProjectMemberResponseSchema as yn, union as yr, ListProjectDeploymentsResponseSchema as yt, CredentialAssignmentRecordSchema as z, buildConnectDeeplink as zn, ProjectPullStateSchema as zt };
8154
7791
 
8155
- //# sourceMappingURL=dist-DkLbeW8l.mjs.map
7792
+ //# sourceMappingURL=dist-BOhrc_Nv.mjs.map