eve 0.27.7 → 0.27.8
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/CHANGELOG.md +6 -0
- package/dist/src/cli/commands/register-registry-commands.d.ts +12 -0
- package/dist/src/cli/commands/register-registry-commands.js +1 -0
- package/dist/src/cli/commands/registry-project.d.ts +10 -0
- package/dist/src/cli/commands/registry-project.js +1 -0
- package/dist/src/cli/commands/registry.d.ts +17 -0
- package/dist/src/cli/commands/registry.js +1 -0
- package/dist/src/cli/run.js +2 -2
- package/dist/src/compiled/.vendor-stamp.json +2 -1
- package/dist/src/compiled/shadcn-registry/LICENSE.md +21 -0
- package/dist/src/compiled/shadcn-registry/index.d.ts +56 -0
- package/dist/src/compiled/shadcn-registry/index.js +33491 -0
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/docs/install-integrations.mdx +106 -0
- package/docs/meta.json +1 -0
- package/docs/reference/cli.md +18 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createRequire}from"node:module";import{existsSync,readFileSync,realpathSync}from"node:fs";import{basename,dirname,join}from"node:path";import{fileURLToPath}from"node:url";import{EVE_PACKAGE_NAME}from"#internal/package-name.js";let cachedPackageInfo;const BUNDLED_FALLBACK_PACKAGE_VERSION=`0.27.
|
|
1
|
+
import{createRequire}from"node:module";import{existsSync,readFileSync,realpathSync}from"node:fs";import{basename,dirname,join}from"node:path";import{fileURLToPath}from"node:url";import{EVE_PACKAGE_NAME}from"#internal/package-name.js";let cachedPackageInfo;const BUNDLED_FALLBACK_PACKAGE_VERSION=`0.27.8`,WORKFLOW_MODULE_ALIASES={"workflow/errors":`src/compiled/@workflow/errors/index.js`,"workflow/internal/private":`src/compiled/@workflow/core/private.js`};function resolveFallbackPackageVersion(){return BUNDLED_FALLBACK_PACKAGE_VERSION.startsWith(`__`)?`0.0.0`:BUNDLED_FALLBACK_PACKAGE_VERSION}const FALLBACK_PACKAGE_INFO={name:EVE_PACKAGE_NAME,version:resolveFallbackPackageVersion()};function resolveCurrentModulePath(){return typeof __filename==`string`?__filename:resolveCurrentModulePathFromStack()}function resolveCurrentModulePathFromStack(){let e=Error.prepareStackTrace;try{Error.prepareStackTrace=(e,t)=>t;let e=Error().stack?.[0]?.getFileName();if(typeof e!=`string`||e.length===0)throw Error(`Failed to resolve the current module path from the stack trace.`);return e.startsWith(`file:`)?fileURLToPath(e):e}finally{Error.prepareStackTrace=e}}const require=createRequire(resolveCurrentModulePath());function isBuildOutputPackageRoot(e){return basename(e)===`dist`&&existsSync(join(dirname(e),`package.json`))}function resolvePackageBuildRoot(){let e=dirname(realpathSync(resolveCurrentModulePath()));for(;;){if(isBuildOutputPackageRoot(e))return e;let t=dirname(e);if(t===e)return null;e=t}}function findNearestPackageRoot(e){let n=e;for(;;){if(existsSync(join(n,`package.json`))&&!isBuildOutputPackageRoot(n))return n;let r=dirname(n);if(r===n)throw Error(`Failed to resolve package root from "${e}".`);n=r}}function resolvePackageRoot(){return findNearestPackageRoot(dirname(realpathSync(resolveCurrentModulePath())))}function tryResolvePackageRoot(){try{return resolvePackageRoot()}catch{return}}function rewriteSourceFilePathForBuild(e){return e.replace(/\.[cm]?tsx?$/,`.js`)}function resolvePackageSourceFilePath(e){let t=resolvePackageBuildRoot();return t===null?join(resolvePackageRoot(),e):join(t,rewriteSourceFilePathForBuild(e))}function resolvePackageSourceDirectoryPath(e){let t=resolvePackageBuildRoot();return join(t===null?resolvePackageRoot():t,e)}function resolvePackageDependencyPath(e){return require.resolve(e)}function resolvePackageCompiledFilePath(e){let t=resolvePackageBuildRoot();return t===null?join(resolvePackageRoot(),`.generated`,`compiled`,e.replace(/^src\/compiled\//,``)):join(t,e)}function normalizeInstalledPackageInfo(e){let t=e;if(!(typeof t.name!=`string`||typeof t.version!=`string`))return{name:t.name,version:t.version}}function tryReadInstalledPackageInfo(e,t){let r=normalizeInstalledPackageInfo(JSON.parse(readFileSync(e,`utf8`)));if(r?.name===t)return r}function resolveInstalledPackageInfo(){if(cachedPackageInfo)return cachedPackageInfo;let e=tryResolvePackageRoot(),t=e===void 0?void 0:tryReadInstalledPackageInfo(join(e,`package.json`),EVE_PACKAGE_NAME);if(t)return cachedPackageInfo=t,cachedPackageInfo;try{let e=tryReadInstalledPackageInfo(require.resolve(`${EVE_PACKAGE_NAME}/package.json`),EVE_PACKAGE_NAME);if(e)return cachedPackageInfo=e,cachedPackageInfo}catch{}return cachedPackageInfo={...FALLBACK_PACKAGE_INFO},cachedPackageInfo}function readWorkflowVersionFromManifest(e){let t=e;for(let e of[t.devDependencies,t.dependencies,t.peerDependencies]){let t=e?.[`@workflow/core`];if(typeof t==`string`&&t.trim().length>0)return t}}function resolveExpectedWorkflowVersion(){let e=tryResolvePackageRoot();if(e!==void 0)try{return readWorkflowVersionFromManifest(JSON.parse(readFileSync(join(e,`package.json`),`utf8`)))}catch{}try{return readWorkflowVersionFromManifest(JSON.parse(readFileSync(require.resolve(`${EVE_PACKAGE_NAME}/package.json`),`utf8`)))}catch{return}}function resolveWorkflowModulePath(e){if(e===`workflow`)return resolvePackageSourceFilePath(`src/internal/workflow/index.ts`);if(e===`workflow/api`||e===`workflow/runtime`)return resolvePackageSourceFilePath(`src/internal/workflow/runtime.ts`);if(e===`workflow/internal/builtins`)return resolvePackageSourceFilePath(`src/internal/workflow/builtins.ts`);let t=WORKFLOW_MODULE_ALIASES[e];return t===void 0?require.resolve(e):resolvePackageCompiledFilePath(t)}export{resolveExpectedWorkflowVersion,resolveInstalledPackageInfo,resolvePackageCompiledFilePath,resolvePackageDependencyPath,resolvePackageRoot,resolvePackageSourceDirectoryPath,resolvePackageSourceFilePath,resolveWorkflowModulePath};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{pinnedNodeEngineMajor}from"../../node-engine.js";import{SUPPORTED_AUTHORED_MODULE_FILE_EXTENSIONS}from"../update/module-files.js";import{pathExists,writeTextFile}from"../files.js";import{resolveVersionToken}from"../version-tokens.js";import{applyPackageManagerWorkspaceConfiguration,isPackageManagerWorkspaceMember,patchWorkspaceRootPackageJson}from"../workspace-root.js";import{WEB_APP_TEMPLATE_FILES}from"./web-template.js";import{basename,join,resolve}from"node:path";import{mkdir,readdir,stat}from"node:fs/promises";const CURRENT_DIRECTORY_PROJECT_NAME=`.`,ALLOWED_CREATE_IN_PLACE_ENTRIES=new Set([`.DS_Store`,`.git`,`.gitkeep`,`.hg`]),DEFAULT_AI_PACKAGE_VERSION=`^7.0.34`,DEFAULT_CONNECT_PACKAGE_VERSION=`0.4.2`,DEFAULT_ZOD_PACKAGE_VERSION=`4.4.3`,DEFAULT_EVE_PACKAGE_CONTRACT={version:`0.27.
|
|
1
|
+
import{pinnedNodeEngineMajor}from"../../node-engine.js";import{SUPPORTED_AUTHORED_MODULE_FILE_EXTENSIONS}from"../update/module-files.js";import{pathExists,writeTextFile}from"../files.js";import{resolveVersionToken}from"../version-tokens.js";import{applyPackageManagerWorkspaceConfiguration,isPackageManagerWorkspaceMember,patchWorkspaceRootPackageJson}from"../workspace-root.js";import{WEB_APP_TEMPLATE_FILES}from"./web-template.js";import{basename,join,resolve}from"node:path";import{mkdir,readdir,stat}from"node:fs/promises";const CURRENT_DIRECTORY_PROJECT_NAME=`.`,ALLOWED_CREATE_IN_PLACE_ENTRIES=new Set([`.DS_Store`,`.git`,`.gitkeep`,`.hg`]),DEFAULT_AI_PACKAGE_VERSION=`^7.0.34`,DEFAULT_CONNECT_PACKAGE_VERSION=`0.4.2`,DEFAULT_ZOD_PACKAGE_VERSION=`4.4.3`,DEFAULT_EVE_PACKAGE_CONTRACT={version:`0.27.8`,nodeEngine:`>=24`};function resolveEvePackageContract(e=DEFAULT_EVE_PACKAGE_CONTRACT){return{version:resolveVersionToken(`evePackage.version`,e.version),nodeEngine:resolveVersionToken(`evePackage.nodeEngine`,e.nodeEngine)}}function modelProviderSlug(e){let t=(e.split(`/`)[0]??``).replaceAll(/[^A-Za-z0-9._-]/gu,``);return t.length>0?t:`anthropic`}function byokProviderEnvVar(e){let t=modelProviderSlug(e).toUpperCase().replaceAll(/[^A-Z0-9]/gu,`_`);return`${/^[0-9]/.test(t)?`_`:``}${t}_API_KEY`}function agentTemplateFiles(e){return{"agent/agent.ts":BASE_AGENT_TEMPLATE.replaceAll(`__EVE_INIT_MODEL__`,e),"agent/channels/eve.ts":WEB_APP_TEMPLATE_FILES[`agent/channels/eve.ts`],"agent/instructions.md":AGENT_INSTRUCTIONS_TEMPLATE}}function renderTemplate(e,t){return e.replaceAll(`__EVE_INIT_APP_NAME__`,t.appName).replaceAll(`__EVE_INIT_MODEL__`,t.model).replaceAll(`__EVE_INIT_BYOK_PROVIDER__`,modelProviderSlug(t.model)).replaceAll(`__EVE_INIT_BYOK_ENV_VAR__`,byokProviderEnvVar(t.model)).replaceAll(`__EVE_INIT_PACKAGE_VERSION__`,formatEveDependencySpecifier(t.eveVersion)).replaceAll(`__EVE_INIT_AI_SDK_VERSION__`,t.aiPackageVersion).replaceAll(`__EVE_INIT_CONNECT_VERSION__`,t.connectPackageVersion).replaceAll(`__EVE_INIT_ZOD_VERSION__`,t.zodPackageVersion).replaceAll(`__EVE_INIT_TYPESCRIPT_VERSION__`,t.typescriptPackageVersion).replaceAll(`__EVE_INIT_TYPES_NODE_VERSION__`,t.nodeTypesVersion).replaceAll(`__EVE_INIT_NODE_ENGINE__`,t.nodeEngine)}function formatEveDependencySpecifier(e){return/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z-.]+)?$/.test(e)?`^${e}`:e}const BASE_AGENT_TEMPLATE=`import { defineAgent } from "eve";
|
|
2
2
|
|
|
3
3
|
export default defineAgent({
|
|
4
4
|
model: "__EVE_INIT_MODEL__",
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Install Integrations"
|
|
3
|
+
description: "Discover and install extensions and other integrations from eve and third-party sources."
|
|
4
|
+
contentType: "How-to"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Install integrations from eve's official catalog, a third-party source, or an integration URL. Integrations are distributed using the [shadcn registry format](https://ui.shadcn.com/docs/registry).
|
|
8
|
+
|
|
9
|
+
## Install an integration
|
|
10
|
+
|
|
11
|
+
Run `eve add` from an eve agent project. This installs the integration's dependencies and writes its declared files into your project.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
eve add extension/agent-browser
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The integration may create an extension mount under `agent/extensions/`. Configure that mount and any required environment variables before running your agent.
|
|
18
|
+
|
|
19
|
+
## Find an integration
|
|
20
|
+
|
|
21
|
+
Browse the [Integrations directory](/integrations) to see the official integrations available from the eve registry.
|
|
22
|
+
|
|
23
|
+
List every official integration and configured third-party source:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
eve registry list
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Search the catalog when you know what capability you need:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
eve registry search browser
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Inspect an integration before you install it:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
eve registry view extension/agent-browser
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`list` and `search` include the official eve catalog and every source you add to the project.
|
|
42
|
+
|
|
43
|
+
## Add a third-party source
|
|
44
|
+
|
|
45
|
+
Give a registry a namespace and an integration URL template:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
eve registry add @acme=https://registry.acme.com/r/{name}.json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
eve stores the mapping in `package.json#registries`. The `{name}` placeholder becomes the integration name, so `@acme/analytics` resolves to `https://registry.acme.com/r/analytics.json`.
|
|
52
|
+
|
|
53
|
+
Limit listing or search to that registry when needed:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
eve registry list --registry @acme
|
|
57
|
+
eve registry search analytics --registry @acme
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Install an integration from that source:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
eve add @acme/analytics
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Install a known integration URL directly when you do not need a namespace:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
eve add https://registry.acme.com/r/analytics.json
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Configure generated files
|
|
73
|
+
|
|
74
|
+
Integrations add project files. Read the generated mount before you run the agent, then add the configuration the extension requires.
|
|
75
|
+
|
|
76
|
+
For an extension, this usually means setting environment variables and editing the file under `agent/extensions/`. See [Extensions](./extensions) for mount configuration, namespacing, and overrides.
|
|
77
|
+
|
|
78
|
+
Provider-specific setup lives in the [Integrations directory](/integrations). Follow that guidance for credentials, approval policies, and service-specific options.
|
|
79
|
+
|
|
80
|
+
## Update an installed integration
|
|
81
|
+
|
|
82
|
+
Treat generated files as project code. Commit or review local changes before you install the integration again.
|
|
83
|
+
|
|
84
|
+
Run the same command when the registry publisher provides an updated scaffold:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
eve add extension/agent-browser
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Pass `--overwrite` only when you intend to replace an existing generated file:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
eve add extension/agent-browser --overwrite
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Update the installed package with your package manager. Check the publisher's release notes before changing the generated mount or package version.
|
|
97
|
+
|
|
98
|
+
## Choose trusted sources
|
|
99
|
+
|
|
100
|
+
Integrations can add dependencies and write files. Add sources you trust, inspect an integration with `eve registry view`, and review the resulting project diff before you run the agent.
|
|
101
|
+
|
|
102
|
+
## What to read next
|
|
103
|
+
|
|
104
|
+
- [Extensions](./extensions): configure and override installed extension mounts
|
|
105
|
+
- [Integrations directory](/integrations): provider-specific setup and security guidance
|
|
106
|
+
- [shadcn registry documentation](https://ui.shadcn.com/docs/registry): publish a compatible third-party registry
|
package/docs/meta.json
CHANGED
package/docs/reference/cli.md
CHANGED
|
@@ -24,6 +24,8 @@ The `eve` binary (`bin: eve`) runs from your app root, and every command first l
|
|
|
24
24
|
| `eve channels list` | List user-authored channels |
|
|
25
25
|
| `eve extension init [target]` | Create a new extension package |
|
|
26
26
|
| `eve extension build` | Build the current package as an extension |
|
|
27
|
+
| `eve add <item>` | Install an item from the official or a configured shadcn registry |
|
|
28
|
+
| `eve registry <command>` | Add sources and list, search, or view registry catalog items |
|
|
27
29
|
|
|
28
30
|
When `eve build` fails on discovery errors, it prints the full diagnostics report (severity, message, source path) and the diagnostics artifact path.
|
|
29
31
|
|
|
@@ -77,6 +79,22 @@ eve extension build
|
|
|
77
79
|
|
|
78
80
|
Builds the complete agent-shaped extension tree into its configured dist root, emits declarations and compatibility metadata, and fills the package `exports` map. The original TypeScript source is not required in the published package.
|
|
79
81
|
|
|
82
|
+
## Registry items
|
|
83
|
+
|
|
84
|
+
Commands for installing and discovering [shadcn registry](https://ui.shadcn.com/docs/registry) items. Official registry items use a kind and slug (for example, `extension/agent-browser`); URLs and configured registry addresses are also supported.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
eve add extension/agent-browser
|
|
88
|
+
eve add https://example.com/r/my-extension.json --overwrite
|
|
89
|
+
eve registry add @acme=https://example.com/r/{name}.json
|
|
90
|
+
eve registry search browser
|
|
91
|
+
eve registry search browser --registry @acme
|
|
92
|
+
eve registry view @acme/my-extension
|
|
93
|
+
eve add @acme/my-extension
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
`eve registry add` records configured sources in `package.json#registries`. `eve registry list` and `search` aggregate the official catalog and all configured sources by default, or browse one supplied URL or namespace. Official and other universal items with explicit file targets do not require shadcn project configuration.
|
|
97
|
+
|
|
80
98
|
## `eve info`
|
|
81
99
|
|
|
82
100
|
```bash
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eve",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.8",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
|
|
6
6
|
"keywords": [
|
|
@@ -330,6 +330,7 @@
|
|
|
330
330
|
"react": "19.2.6",
|
|
331
331
|
"react-test-renderer": "19.2.6",
|
|
332
332
|
"semver": "7.8.4",
|
|
333
|
+
"shadcn": "4.16.0",
|
|
333
334
|
"svelte": "^5.0.0",
|
|
334
335
|
"turndown": "7.2.4",
|
|
335
336
|
"vite": "^8.1.5",
|