eve 0.45.0 → 0.45.2

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 (141) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/src/chunks/{use-eve-agent-OtHRoxIS.js → use-eve-agent-BH7Z6SDu.js} +13 -1
  3. package/dist/src/chunks/{use-eve-agent-C46Kan_I.js → use-eve-agent-DI2j5XK8.js} +13 -1
  4. package/dist/src/cli/commands/integration-connect.d.ts +2 -0
  5. package/dist/src/cli/commands/integration-connect.js +1 -1
  6. package/dist/src/cli/commands/register-integration-commands.js +1 -1
  7. package/dist/src/client/agent-info-schema.d.ts +191 -2
  8. package/dist/src/client/agent-info-schema.js +1 -1
  9. package/dist/src/client/types.d.ts +1 -1
  10. package/dist/src/compiled/.vendor-stamp.json +2 -1
  11. package/dist/src/compiled/@vercel/blob/client.d.ts +487 -0
  12. package/dist/src/compiled/@vercel/blob/create-folder-BM6BTlko.d.ts +471 -0
  13. package/dist/src/compiled/@vercel/blob/index.d.ts +573 -0
  14. package/dist/src/compiled/@vercel/blob/index.js +43 -0
  15. package/dist/src/compiled/@vercel/blob/license.md +201 -0
  16. package/dist/src/compiler/extension-compatibility.d.ts +4 -4
  17. package/dist/src/compiler/extension-compatibility.js +1 -1
  18. package/dist/src/compiler/load-binding-namespace.js +1 -1
  19. package/dist/src/compiler/manifest.d.ts +10 -0
  20. package/dist/src/compiler/manifest.js +1 -1
  21. package/dist/src/compiler/model-catalog.d.ts +1 -1
  22. package/dist/src/compiler/model-catalog.js +1 -1
  23. package/dist/src/compiler/module-map.js +1 -1
  24. package/dist/src/compiler/normalize-helpers.d.ts +2 -1
  25. package/dist/src/compiler/normalize-manifest.js +1 -1
  26. package/dist/src/compiler/normalize-memory.d.ts +5 -0
  27. package/dist/src/compiler/normalize-memory.js +1 -0
  28. package/dist/src/compiler/normalize-tool.js +1 -1
  29. package/dist/src/compiler/project-sources.d.ts +3 -4
  30. package/dist/src/compiler/project-sources.js +1 -1
  31. package/dist/src/compiler/source-graph.d.ts +2 -0
  32. package/dist/src/compiler/source-graph.js +1 -1
  33. package/dist/src/compiler/validate-artifact.js +1 -1
  34. package/dist/src/context/dynamic-tool-lifecycle.d.ts +8 -1
  35. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  36. package/dist/src/context/keys.d.ts +25 -0
  37. package/dist/src/context/keys.js +1 -1
  38. package/dist/src/context/memory-event-lifecycle.d.ts +13 -0
  39. package/dist/src/context/memory-event-lifecycle.js +1 -0
  40. package/dist/src/context/memory-lifecycle.d.ts +52 -0
  41. package/dist/src/context/memory-lifecycle.js +1 -0
  42. package/dist/src/context/memory-tools.d.ts +12 -0
  43. package/dist/src/context/memory-tools.js +1 -0
  44. package/dist/src/discover/discover-agent.js +1 -1
  45. package/dist/src/discover/discover-subagent.js +1 -1
  46. package/dist/src/discover/extensions.d.ts +6 -0
  47. package/dist/src/discover/extensions.js +1 -1
  48. package/dist/src/discover/filesystem.d.ts +2 -2
  49. package/dist/src/discover/filesystem.js +1 -1
  50. package/dist/src/discover/manifest.d.ts +6 -1
  51. package/dist/src/discover/manifest.js +1 -1
  52. package/dist/src/discover/memory.d.ts +14 -0
  53. package/dist/src/discover/memory.js +1 -0
  54. package/dist/src/discover/project.js +1 -1
  55. package/dist/src/evals/cli/eval.js +1 -1
  56. package/dist/src/evals/target.js +1 -1
  57. package/dist/src/execution/history-view.d.ts +2 -2
  58. package/dist/src/execution/history-view.js +1 -1
  59. package/dist/src/execution/tools/connection-search.js +2 -2
  60. package/dist/src/execution/workflow-steps.d.ts +1 -3
  61. package/dist/src/execution/workflow-steps.js +1 -1
  62. package/dist/src/framework/sources/modules/memory-wrapper.d.ts +2 -0
  63. package/dist/src/framework/sources/modules/memory-wrapper.js +1 -0
  64. package/dist/src/framework/sources/registry.d.ts +1 -0
  65. package/dist/src/framework/sources/registry.js +1 -1
  66. package/dist/src/harness/emission.d.ts +1 -1
  67. package/dist/src/harness/emission.js +1 -1
  68. package/dist/src/harness/hitl/approval-prompt.d.ts +2 -0
  69. package/dist/src/harness/hitl/approval-prompt.js +3 -2
  70. package/dist/src/harness/tool-loop.js +2 -2
  71. package/dist/src/harness/tools.js +1 -1
  72. package/dist/src/internal/application/compiled-artifacts.js +4 -2
  73. package/dist/src/internal/application/package.js +1 -1
  74. package/dist/src/internal/authored-definition/memory.d.ts +2 -0
  75. package/dist/src/internal/authored-definition/memory.js +1 -0
  76. package/dist/src/internal/authored-definition/schema-backed.d.ts +1 -0
  77. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  78. package/dist/src/internal/authored-module-map-loader.js +1 -1
  79. package/dist/src/internal/dynamic-tool-rebind.d.ts +3 -0
  80. package/dist/src/internal/dynamic-tool-rebind.js +1 -0
  81. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +1 -1
  82. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  83. package/dist/src/internal/nitro/routes/index.js +1 -0
  84. package/dist/src/internal/programmatic-source-loader.d.ts +1 -0
  85. package/dist/src/internal/programmatic-source-loader.js +1 -1
  86. package/dist/src/internal/workflow/development-world-server.js +1 -1
  87. package/dist/src/internal/workflow/local-world-delivery-timeouts.d.ts +7 -0
  88. package/dist/src/internal/workflow/local-world-delivery-timeouts.js +1 -0
  89. package/dist/src/public/memory/file/backend.d.ts +37 -0
  90. package/dist/src/public/memory/file/backend.js +1 -0
  91. package/dist/src/public/memory/file/backends/default.d.ts +7 -0
  92. package/dist/src/public/memory/file/backends/default.js +1 -0
  93. package/dist/src/public/memory/file/backends/in-memory.d.ts +6 -0
  94. package/dist/src/public/memory/file/backends/in-memory.js +1 -0
  95. package/dist/src/public/memory/file/backends/lazy.d.ts +3 -0
  96. package/dist/src/public/memory/file/backends/lazy.js +1 -0
  97. package/dist/src/public/memory/file/backends/vercel-blob.d.ts +14 -0
  98. package/dist/src/public/memory/file/backends/vercel-blob.js +1 -0
  99. package/dist/src/public/memory/file/index.d.ts +3 -0
  100. package/dist/src/public/memory/file/index.js +1 -0
  101. package/dist/src/public/memory/file/provider.d.ts +14 -0
  102. package/dist/src/public/memory/file/provider.js +6 -0
  103. package/dist/src/public/memory/file/vercel.d.ts +1 -0
  104. package/dist/src/public/memory/file/vercel.js +1 -0
  105. package/dist/src/public/memory/index.d.ts +117 -0
  106. package/dist/src/public/memory/index.js +1 -0
  107. package/dist/src/public/memory/scope.d.ts +2 -0
  108. package/dist/src/public/memory/scope.js +1 -0
  109. package/dist/src/runtime/resolve-agent.js +1 -1
  110. package/dist/src/runtime/resolve-dynamic-tool.d.ts +1 -0
  111. package/dist/src/runtime/resolve-dynamic-tool.js +1 -1
  112. package/dist/src/runtime/resolve-memory.d.ts +4 -0
  113. package/dist/src/runtime/resolve-memory.js +1 -0
  114. package/dist/src/runtime/types.d.ts +7 -0
  115. package/dist/src/setup/connection-connector.d.ts +2 -0
  116. package/dist/src/setup/connection-connector.js +1 -1
  117. package/dist/src/setup/integrations/linq/connect.js +1 -1
  118. package/dist/src/setup/scaffold/create/project.js +1 -1
  119. package/dist/src/setup/scaffold/create/web-template.d.ts +2 -0
  120. package/dist/src/setup/scaffold/create/web-template.js +28 -0
  121. package/dist/src/shared/memory-definition.d.ts +2 -0
  122. package/dist/src/shared/memory-definition.js +1 -0
  123. package/dist/src/shared/memory-state.d.ts +55 -0
  124. package/dist/src/shared/memory-state.js +1 -0
  125. package/dist/src/svelte/index.js +1 -1
  126. package/dist/src/svelte/use-eve-agent.js +1 -1
  127. package/dist/src/vue/index.js +1 -1
  128. package/dist/src/vue/use-eve-agent.js +1 -1
  129. package/docs/channels/eve.mdx +1 -1
  130. package/docs/concepts/context-control.md +7 -0
  131. package/docs/concepts/default-harness.md +8 -0
  132. package/docs/concepts/sessions-runs-and-streaming.md +3 -3
  133. package/docs/concepts/state.md +8 -1
  134. package/docs/extensions.md +6 -2
  135. package/docs/guides/client/overview.mdx +2 -2
  136. package/docs/guides/dynamic-capabilities.md +3 -2
  137. package/docs/memory.md +320 -0
  138. package/docs/meta.json +1 -0
  139. package/docs/patterns/multi-tenant-memory.md +108 -136
  140. package/docs/reference/typescript-api.md +5 -0
  141. package/package.json +22 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # eve
2
2
 
3
+ ## 0.45.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 295e534: Add a bounded `fileMemory()` provider with scope-partitioned indexed documents, a 4,000-character recalled-context budget by default, and model-facing save and remove tools. `eve dev` uses shared process-local storage, configured Vercel deployments use Blob, and every other environment requires an explicit backend.
8
+ - 5934d69: Prevent long local Workflow deliveries from timing out and replaying an in-flight turn. Explicit local delivery timeout overrides continue to take precedence.
9
+ - 8d2d91e: GitHub, Linear Agent, and Linq registry items now install Vercel CLI 58.5.1 or newer for guided setup. Linq setup no longer tries to infer CLI compatibility from connector creation errors.
10
+ - 295e534: Upgrade the vendored Vercel Blob SDK to 2.8.0 and copy its upstream TypeScript declarations so blob-backed file memory stays aligned with the installed SDK.
11
+ - 79c5514: Cache AI Gateway model metadata for five minutes and refresh immediately on a cache miss, while continuing to fall back to cached metadata when refreshes fail.
12
+ - 17e37f1: Stop producing AI SDK telemetry spans when `tracePolicy` rejects an agent trace.
13
+ - a5917cd: Identify pending tool approvals as trusted runtime state so newer user messages can revise or supersede them without being mistaken for injected approval text.
14
+
15
+ ## 0.45.1
16
+
17
+ ### Patch Changes
18
+
19
+ - a3a5ddd: Show the eve favicon in browser tabs for the default deployed app and generated Web Chat apps. Web Chat scaffolds also include an Apple touch icon.
20
+ - 5664cc0: Add first-class path-authored memory providers with scoped recall, capture, replayable provider tools, and compaction-safe recalled context.
21
+ - b55d036: Agentcard setup now uses the correct MCP discovery and creation identifiers, then writes the selected connector into the installed connection template.
22
+ - fdba4e0: Scope every extension contribution through one mount-namespace policy so multiple extensions can contribute flat `instructions.md` files without collisions. Extension-owned agent singleton slots such as instrumentation are now rejected during discovery.
23
+
3
24
  ## 0.45.0
4
25
 
5
26
  ### Minor Changes
@@ -106,8 +106,10 @@ const moduleBacking = z.discriminatedUnion("kind", [z.object({
106
106
  kind: z.literal("filesystem"),
107
107
  sourcePath: z.string()
108
108
  }).strict(), z.object({
109
+ dependencies: z.record(z.string(), z.string()).optional(),
109
110
  kind: z.literal("programmatic"),
110
111
  moduleId: z.string(),
112
+ parameters: z.record(z.string(), z.unknown()).optional(),
111
113
  registryId: z.string(),
112
114
  revision: z.string(),
113
115
  semanticRevision: z.string().optional()
@@ -241,6 +243,7 @@ const sourceDescriptor = z.object({
241
243
  kind: z.literal("resource"),
242
244
  sourcePath: z.string()
243
245
  }).strict()]),
246
+ form: z.enum(["derived", "direct"]),
244
247
  layer: z.enum([
245
248
  "framework-default",
246
249
  "extension-package",
@@ -271,6 +274,11 @@ const hook = source.extend({
271
274
  eventNames: z.array(z.string()),
272
275
  slug: z.string()
273
276
  }).strict();
277
+ const memory = source.extend({
278
+ description: z.string().optional(),
279
+ slot: z.string(),
280
+ visibility: z.enum(["scope", "session"])
281
+ }).strict();
274
282
  const sandbox = source.extend({
275
283
  backendKind: z.string().optional(),
276
284
  description: z.string().optional(),
@@ -291,6 +299,7 @@ const subagent = entry.extend({
291
299
  connections: z.number(),
292
300
  hooks: z.number(),
293
301
  instructions: z.number(),
302
+ memories: z.number(),
294
303
  schedules: z.number(),
295
304
  skills: z.number(),
296
305
  tools: z.number()
@@ -370,6 +379,7 @@ const AgentInfoResultSchema = z.object({
370
379
  instrumentation: source.optional(),
371
380
  kernelEffects: z.array(kernelEffect),
372
381
  kind: z.literal("eve-agent-info"),
382
+ memories: z.array(memory),
373
383
  mode: z.enum(["development", "production"]),
374
384
  remoteAgents: z.object({
375
385
  entries: z.array(remoteAgent),
@@ -389,7 +399,7 @@ const AgentInfoResultSchema = z.object({
389
399
  dynamic: z.array(dynamicResolver),
390
400
  static: z.array(tool)
391
401
  }).strict(),
392
- version: z.literal(3),
402
+ version: z.literal(4),
393
403
  workflow,
394
404
  workspace: z.object({
395
405
  resourceRoot: z.unknown(),
@@ -424,6 +434,7 @@ const AgentInfoResultSchema = z.object({
424
434
  assertUnique(value.schedules, (entry) => entry.name, ["schedules"]);
425
435
  assertUnique(value.connections, (entry) => entry.connectionName, ["connections"]);
426
436
  assertUnique(value.hooks, (entry) => entry.slug, ["hooks"]);
437
+ assertUnique(value.memories, (entry) => entry.slot, ["memories"]);
427
438
  assertUnique(value.channels.routes, (entry) => `${entry.method} ${normalizeRoutePattern(entry.urlPath)}`, ["channels", "routes"]);
428
439
  assertUnique(value.subagents.local, (entry) => entry.nodeId, ["subagents", "local"]);
429
440
  assertUnique(value.remoteAgents.entries, (entry) => entry.nodeId, ["remoteAgents", "entries"]);
@@ -459,6 +470,7 @@ const AgentInfoResultSchema = z.object({
459
470
  "static",
460
471
  index
461
472
  ]]),
473
+ ...value.memories.map((entry, index) => [entry, ["memories", index]]),
462
474
  ...value.instrumentation === void 0 ? [] : [[value.instrumentation, ["instrumentation"]]],
463
475
  ...value.remoteAgents.entries.map((entry, index) => [entry, [
464
476
  "remoteAgents",
@@ -106,8 +106,10 @@ const moduleBacking = z.discriminatedUnion("kind", [z.object({
106
106
  kind: z.literal("filesystem"),
107
107
  sourcePath: z.string()
108
108
  }).strict(), z.object({
109
+ dependencies: z.record(z.string(), z.string()).optional(),
109
110
  kind: z.literal("programmatic"),
110
111
  moduleId: z.string(),
112
+ parameters: z.record(z.string(), z.unknown()).optional(),
111
113
  registryId: z.string(),
112
114
  revision: z.string(),
113
115
  semanticRevision: z.string().optional()
@@ -241,6 +243,7 @@ const sourceDescriptor = z.object({
241
243
  kind: z.literal("resource"),
242
244
  sourcePath: z.string()
243
245
  }).strict()]),
246
+ form: z.enum(["derived", "direct"]),
244
247
  layer: z.enum([
245
248
  "framework-default",
246
249
  "extension-package",
@@ -271,6 +274,11 @@ const hook = source.extend({
271
274
  eventNames: z.array(z.string()),
272
275
  slug: z.string()
273
276
  }).strict();
277
+ const memory = source.extend({
278
+ description: z.string().optional(),
279
+ slot: z.string(),
280
+ visibility: z.enum(["scope", "session"])
281
+ }).strict();
274
282
  const sandbox = source.extend({
275
283
  backendKind: z.string().optional(),
276
284
  description: z.string().optional(),
@@ -291,6 +299,7 @@ const subagent = entry.extend({
291
299
  connections: z.number(),
292
300
  hooks: z.number(),
293
301
  instructions: z.number(),
302
+ memories: z.number(),
294
303
  schedules: z.number(),
295
304
  skills: z.number(),
296
305
  tools: z.number()
@@ -370,6 +379,7 @@ const AgentInfoResultSchema = z.object({
370
379
  instrumentation: source.optional(),
371
380
  kernelEffects: z.array(kernelEffect),
372
381
  kind: z.literal("eve-agent-info"),
382
+ memories: z.array(memory),
373
383
  mode: z.enum(["development", "production"]),
374
384
  remoteAgents: z.object({
375
385
  entries: z.array(remoteAgent),
@@ -389,7 +399,7 @@ const AgentInfoResultSchema = z.object({
389
399
  dynamic: z.array(dynamicResolver),
390
400
  static: z.array(tool)
391
401
  }).strict(),
392
- version: z.literal(3),
402
+ version: z.literal(4),
393
403
  workflow,
394
404
  workspace: z.object({
395
405
  resourceRoot: z.unknown(),
@@ -424,6 +434,7 @@ const AgentInfoResultSchema = z.object({
424
434
  assertUnique(value.schedules, (entry) => entry.name, ["schedules"]);
425
435
  assertUnique(value.connections, (entry) => entry.connectionName, ["connections"]);
426
436
  assertUnique(value.hooks, (entry) => entry.slug, ["hooks"]);
437
+ assertUnique(value.memories, (entry) => entry.slot, ["memories"]);
427
438
  assertUnique(value.channels.routes, (entry) => `${entry.method} ${normalizeRoutePattern(entry.urlPath)}`, ["channels", "routes"]);
428
439
  assertUnique(value.subagents.local, (entry) => entry.nodeId, ["subagents", "local"]);
429
440
  assertUnique(value.remoteAgents.entries, (entry) => entry.nodeId, ["remoteAgents", "entries"]);
@@ -459,6 +470,7 @@ const AgentInfoResultSchema = z.object({
459
470
  "static",
460
471
  index
461
472
  ]]),
473
+ ...value.memories.map((entry, index) => [entry, ["memories", index]]),
462
474
  ...value.instrumentation === void 0 ? [] : [[value.instrumentation, ["instrumentation"]]],
463
475
  ...value.remoteAgents.entries.map((entry, index) => [entry, [
464
476
  "remoteAgents",
@@ -5,6 +5,8 @@ import { type Prompter } from "#setup/prompter.js";
5
5
  import { updateConnectionConnectorUid } from "#setup/scaffold/update/update-connection-connector.js";
6
6
  import type { RegistryCommandLogger } from "./registry.js";
7
7
  export interface IntegrationConnectOptions {
8
+ creationType?: string;
9
+ connectionMethod?: "mcp" | "oauth";
8
10
  nonInteractive?: boolean;
9
11
  signal?: AbortSignal;
10
12
  }
@@ -1 +1 @@
1
- import{serializeHeadlessSetupEvent}from"./setup-headless.js";import{join}from"node:path";import{createPrompter}from"#setup/prompter.js";import{WizardCancelledError}from"#setup/step.js";import{cleanupCreatedConnectionConnector,setupConnectionConnector}from"#setup/connection-connector.js";import{ensureVercelProject}from"#setup/flows/ensure-vercel-project.js";import{createHeadlessPrompter}from"#setup/headless.js";import{SetupPrerequisiteRequired}from"#setup/integrations/shared/prerequisite.js";import{resolveIntegrationVercelProject}from"#setup/integrations/shared/vercel-project.js";import{readProjectLink}from"#setup/project-resolution.js";import{createRegistrySetupClient}from"#setup/registry-setup-client.js";import{updateConnectionConnectorUid}from"#setup/scaffold/update/update-connection-connector.js";const defaultDependencies={ensureVercelProject,readProjectLink,setupConnectionConnector,cleanupCreatedConnectionConnector,updateConnectionConnectorUid};async function runIntegrationConnect(e){let i={...defaultDependencies,...e.dependencies},a=e.options?.nonInteractive===!0,o=i.createPrompter?.()??(a?createHeadlessPrompter(()=>{}):createPrompter()),s=e.options?.signal;o.intro(`Set up ${e.slug}`);let l=await i.readProjectLink(e.appRoot);if(l===void 0)if(a)l=await resolveIntegrationVercelProject({appRoot:e.appRoot,integration:e.slug,signal:s,deps:{readProjectLink:i.readProjectLink}});else try{l=await i.ensureVercelProject({appRoot:e.appRoot,prompter:o,signal:s,teamSelectMessage:()=>`You need to link to a project to use ${e.slug} through Vercel Connect.\n\nSelect your team`,deps:i.ensureVercelProjectDeps})}catch(e){if(e instanceof WizardCancelledError)return;throw e}let u={log:o.log,prompter:o,projectRoot:e.appRoot,slug:e.slug,service:e.service,canonicalConnectorName:e.canonicalConnectorName??e.slug,project:l,signal:s},d=await i.setupConnectionConnector(u),f=join(e.appRoot,`agent`,`connections`,`${e.slug}.ts`);if(!(await i.updateConnectionConnectorUid(f,d.connectorUid)).patched)throw d.kind===`created`&&await i.cleanupCreatedConnectionConnector({log:o.log,projectRoot:e.appRoot,connectorId:d.connectorId,orgId:l.orgId}),Error(`Could not update the connector in agent/connections/${e.slug}.ts.`);o.outro(`Connection ${e.slug} set up.`)}async function runIntegrationConnectCommand(t,r,i,a,o,c={},l=defaultDependencies){let d=createRegistrySetupClient({signal:c.signal});try{await runIntegrationConnect({appRoot:r,slug:i,service:a,canonicalConnectorName:o,options:c,dependencies:{...l,createPrompter:()=>d?.prompter??(c.nonInteractive?createHeadlessPrompter(()=>{}):l.createPrompter?.()??createPrompter())}}),d?.complete()}catch(n){if(d?.fail(n),d!==void 0)return;if(c.nonInteractive&&n instanceof SetupPrerequisiteRequired){t.error(serializeHeadlessSetupEvent({version:1,type:`blocked`,status:`prerequisite_required`,prerequisite:n.prerequisite})),process.exitCode=2;return}t.error(n instanceof Error?n.message:String(n)),process.exitCode=1}}export{runIntegrationConnect,runIntegrationConnectCommand};
1
+ import{serializeHeadlessSetupEvent}from"./setup-headless.js";import{join}from"node:path";import{createPrompter}from"#setup/prompter.js";import{WizardCancelledError}from"#setup/step.js";import{cleanupCreatedConnectionConnector,setupConnectionConnector}from"#setup/connection-connector.js";import{ensureVercelProject}from"#setup/flows/ensure-vercel-project.js";import{createHeadlessPrompter}from"#setup/headless.js";import{SetupPrerequisiteRequired}from"#setup/integrations/shared/prerequisite.js";import{resolveIntegrationVercelProject}from"#setup/integrations/shared/vercel-project.js";import{readProjectLink}from"#setup/project-resolution.js";import{createRegistrySetupClient}from"#setup/registry-setup-client.js";import{updateConnectionConnectorUid}from"#setup/scaffold/update/update-connection-connector.js";const defaultDependencies={ensureVercelProject,readProjectLink,setupConnectionConnector,cleanupCreatedConnectionConnector,updateConnectionConnectorUid};async function runIntegrationConnect(e){let i={...defaultDependencies,...e.dependencies},a=e.options?.nonInteractive===!0,o=i.createPrompter?.()??(a?createHeadlessPrompter(()=>{}):createPrompter()),s=e.options?.signal;o.intro(`Set up ${e.slug}`);let l=await i.readProjectLink(e.appRoot);if(l===void 0)if(a)l=await resolveIntegrationVercelProject({appRoot:e.appRoot,integration:e.slug,signal:s,deps:{readProjectLink:i.readProjectLink}});else try{l=await i.ensureVercelProject({appRoot:e.appRoot,prompter:o,signal:s,teamSelectMessage:()=>`You need to link to a project to use ${e.slug} through Vercel Connect.\n\nSelect your team`,deps:i.ensureVercelProjectDeps})}catch(e){if(e instanceof WizardCancelledError)return;throw e}let u={log:o.log,prompter:o,projectRoot:e.appRoot,slug:e.slug,service:e.service,creationType:e.options?.creationType,connectionMethod:e.options?.connectionMethod,canonicalConnectorName:e.canonicalConnectorName??e.slug,project:l,signal:s},d=await i.setupConnectionConnector(u),f=join(e.appRoot,`agent`,`connections`,`${e.slug}.ts`);if(!(await i.updateConnectionConnectorUid(f,d.connectorUid)).patched)throw d.kind===`created`&&await i.cleanupCreatedConnectionConnector({log:o.log,projectRoot:e.appRoot,connectorId:d.connectorId,orgId:l.orgId}),Error(`Could not update the connector in agent/connections/${e.slug}.ts.`);o.outro(`Connection ${e.slug} set up.`)}async function runIntegrationConnectCommand(t,r,i,a,o,c={},l=defaultDependencies){let d=createRegistrySetupClient({signal:c.signal});try{await runIntegrationConnect({appRoot:r,slug:i,service:a,canonicalConnectorName:o,options:c,dependencies:{...l,createPrompter:()=>d?.prompter??(c.nonInteractive?createHeadlessPrompter(()=>{}):l.createPrompter?.()??createPrompter())}}),d?.complete()}catch(n){if(d?.fail(n),d!==void 0)return;if(c.nonInteractive&&n instanceof SetupPrerequisiteRequired){t.error(serializeHeadlessSetupEvent({version:1,type:`blocked`,status:`prerequisite_required`,prerequisite:n.prerequisite})),process.exitCode=2;return}t.error(n instanceof Error?n.message:String(n)),process.exitCode=1}}export{runIntegrationConnect,runIntegrationConnectCommand};
@@ -1 +1 @@
1
- import{parseSetupAnswer}from"./setup-answers.js";import{applicationCommand}from"#cli/application-command.js";function registerIntegrationCommands(n){let{applicationContext:r,logger:i,program:a}=n,o=a.command(`integration`,{hidden:!0});applicationCommand(o.command(`setup <kind>`),r).option(`-y, --yes`).option(`--non-interactive`,`Run without interactive prompts, instead emit structured NDJSON when further input is required`).option(`--answer <key=value>`,`Answer a setup question; requires --non-interactive.`,parseSetupAnswer,{}).action(async(e,t)=>{let{runIntegrationSetupCommand:n}=await import(`./integration-setup.js`);await n(i,r.root,e,{yes:t.yes,nonInteractive:t.nonInteractive,answers:t.answer})}),applicationCommand(o.command(`connect <slug> <service> [canonical-name]`),r).option(`-y, --yes`).option(`--non-interactive`,`Run without interactive prompts, instead emit structured NDJSON when further input is required`).action(async(e,t,n,a)=>{let{runIntegrationConnectCommand:o}=await import(`./integration-connect.js`);await o(i,r.root,e,t,n,a)})}export{registerIntegrationCommands};
1
+ import{parseSetupAnswer}from"./setup-answers.js";import{applicationCommand}from"#cli/application-command.js";function registerIntegrationCommands(n){let{applicationContext:r,logger:i,program:a}=n,o=a.command(`integration`,{hidden:!0});applicationCommand(o.command(`setup <kind>`),r).option(`-y, --yes`).option(`--non-interactive`,`Run without interactive prompts, instead emit structured NDJSON when further input is required`).option(`--answer <key=value>`,`Answer a setup question; requires --non-interactive.`,parseSetupAnswer,{}).action(async(e,t)=>{let{runIntegrationSetupCommand:n}=await import(`./integration-setup.js`);await n(i,r.root,e,{yes:t.yes,nonInteractive:t.nonInteractive,answers:t.answer})}),applicationCommand(o.command(`connect <slug> <service> [canonical-name]`),r).option(`-y, --yes`).option(`--creation-type <type>`,`Select the Vercel Connect creation type.`).option(`--connection-method <method>`,`Select the Vercel Connect connection method.`).option(`--non-interactive`,`Run without interactive prompts, instead emit structured NDJSON when further input is required`).action(async(e,t,n,a)=>{let{runIntegrationConnectCommand:o}=await import(`./integration-connect.js`);await o(i,r.root,e,t,n,a)})}export{registerIntegrationCommands};