@agentuity/cli 2.0.11 → 3.0.0-alpha.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.
- package/dist/cmd/ai/prompt/index.d.ts.map +1 -1
- package/dist/cmd/ai/prompt/index.js +2 -7
- package/dist/cmd/ai/prompt/index.js.map +1 -1
- package/dist/cmd/build/adapters/generic.d.ts +29 -0
- package/dist/cmd/build/adapters/generic.d.ts.map +1 -0
- package/dist/cmd/build/adapters/generic.js +190 -0
- package/dist/cmd/build/adapters/generic.js.map +1 -0
- package/dist/cmd/build/adapters/index.d.ts +15 -0
- package/dist/cmd/build/adapters/index.d.ts.map +1 -0
- package/dist/cmd/build/adapters/index.js +24 -0
- package/dist/cmd/build/adapters/index.js.map +1 -0
- package/dist/cmd/build/adapters/nextjs.d.ts +11 -0
- package/dist/cmd/build/adapters/nextjs.d.ts.map +1 -0
- package/dist/cmd/build/adapters/nextjs.js +118 -0
- package/dist/cmd/build/adapters/nextjs.js.map +1 -0
- package/dist/cmd/build/adapters/static-server.d.ts +23 -0
- package/dist/cmd/build/adapters/static-server.d.ts.map +1 -0
- package/dist/cmd/build/adapters/static-server.js +137 -0
- package/dist/cmd/build/adapters/static-server.js.map +1 -0
- package/dist/cmd/build/adapters/types.d.ts +71 -0
- package/dist/cmd/build/adapters/types.d.ts.map +1 -0
- package/dist/cmd/build/adapters/types.js +8 -0
- package/dist/cmd/build/adapters/types.js.map +1 -0
- package/dist/cmd/build/detect/engine.d.ts +24 -0
- package/dist/cmd/build/detect/engine.d.ts.map +1 -0
- package/dist/cmd/build/detect/engine.js +91 -0
- package/dist/cmd/build/detect/engine.js.map +1 -0
- package/dist/cmd/build/detect/frameworks.d.ts +66 -0
- package/dist/cmd/build/detect/frameworks.d.ts.map +1 -0
- package/dist/cmd/build/detect/frameworks.js +278 -0
- package/dist/cmd/build/detect/frameworks.js.map +1 -0
- package/dist/cmd/build/detect/generic.d.ts +13 -0
- package/dist/cmd/build/detect/generic.d.ts.map +1 -0
- package/dist/cmd/build/detect/generic.js +62 -0
- package/dist/cmd/build/detect/generic.js.map +1 -0
- package/dist/cmd/build/detect/index.d.ts +27 -0
- package/dist/cmd/build/detect/index.d.ts.map +1 -0
- package/dist/cmd/build/detect/index.js +76 -0
- package/dist/cmd/build/detect/index.js.map +1 -0
- package/dist/cmd/build/detect/types.d.ts +91 -0
- package/dist/cmd/build/detect/types.d.ts.map +1 -0
- package/dist/cmd/build/detect/types.js +9 -0
- package/dist/cmd/build/detect/types.js.map +1 -0
- package/dist/cmd/build/detect/util.d.ts +41 -0
- package/dist/cmd/build/detect/util.d.ts.map +1 -0
- package/dist/cmd/build/detect/util.js +101 -0
- package/dist/cmd/build/detect/util.js.map +1 -0
- package/dist/cmd/build/index.d.ts.map +1 -1
- package/dist/cmd/build/index.js +49 -22
- package/dist/cmd/build/index.js.map +1 -1
- package/dist/cmd/build/package/index.d.ts +30 -0
- package/dist/cmd/build/package/index.d.ts.map +1 -0
- package/dist/cmd/build/package/index.js +39 -0
- package/dist/cmd/build/package/index.js.map +1 -0
- package/dist/cmd/build/package/launch.d.ts +56 -0
- package/dist/cmd/build/package/launch.d.ts.map +1 -0
- package/dist/cmd/build/package/launch.js +56 -0
- package/dist/cmd/build/package/launch.js.map +1 -0
- package/dist/cmd/build/typecheck.d.ts.map +1 -1
- package/dist/cmd/build/typecheck.js +8 -0
- package/dist/cmd/build/typecheck.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +63 -13
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/coder/create.js +7 -7
- package/dist/cmd/coder/create.js.map +1 -1
- package/dist/cmd/coder/update.js +8 -8
- package/dist/cmd/coder/update.js.map +1 -1
- package/dist/cmd/coder/workspace/create.js +9 -9
- package/dist/cmd/coder/workspace/create.js.map +1 -1
- package/dist/cmd/dev/index.d.ts +9 -0
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +127 -923
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/project/auth/shared.d.ts.map +1 -1
- package/dist/cmd/project/auth/shared.js +14 -38
- package/dist/cmd/project/auth/shared.js.map +1 -1
- package/dist/cmd/project/create.d.ts.map +1 -1
- package/dist/cmd/project/create.js +12 -19
- package/dist/cmd/project/create.js.map +1 -1
- package/dist/cmd/project/frameworks-ai-examples.d.ts +15 -0
- package/dist/cmd/project/frameworks-ai-examples.d.ts.map +1 -0
- package/dist/cmd/project/frameworks-ai-examples.js +160 -0
- package/dist/cmd/project/frameworks-ai-examples.js.map +1 -0
- package/dist/cmd/project/frameworks-landing-pages.d.ts +17 -0
- package/dist/cmd/project/frameworks-landing-pages.d.ts.map +1 -0
- package/dist/cmd/project/frameworks-landing-pages.js +242 -0
- package/dist/cmd/project/frameworks-landing-pages.js.map +1 -0
- package/dist/cmd/project/frameworks.d.ts +58 -0
- package/dist/cmd/project/frameworks.d.ts.map +1 -0
- package/dist/cmd/project/frameworks.js +152 -0
- package/dist/cmd/project/frameworks.js.map +1 -0
- package/dist/cmd/project/reconcile.d.ts.map +1 -1
- package/dist/cmd/project/reconcile.js +10 -23
- package/dist/cmd/project/reconcile.js.map +1 -1
- package/dist/cmd/project/remote-import.js +1 -1
- package/dist/cmd/project/scaffold.d.ts +58 -0
- package/dist/cmd/project/scaffold.d.ts.map +1 -0
- package/dist/cmd/project/scaffold.js +223 -0
- package/dist/cmd/project/scaffold.js.map +1 -0
- package/dist/cmd/project/template-flow.d.ts +8 -4
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +93 -144
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/deploy-metadata.d.ts +49 -0
- package/dist/deploy-metadata.d.ts.map +1 -0
- package/dist/deploy-metadata.js +183 -0
- package/dist/deploy-metadata.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +24 -30
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +13 -8
- package/src/cmd/ai/prompt/index.ts +2 -7
- package/src/cmd/build/adapters/generic.ts +239 -0
- package/src/cmd/build/adapters/index.ts +30 -0
- package/src/cmd/build/adapters/nextjs.ts +146 -0
- package/src/cmd/build/adapters/static-server.ts +143 -0
- package/src/cmd/build/adapters/types.ts +93 -0
- package/src/cmd/build/detect/engine.ts +111 -0
- package/src/cmd/build/detect/frameworks.ts +335 -0
- package/src/cmd/build/detect/generic.ts +71 -0
- package/src/cmd/build/detect/index.ts +122 -0
- package/src/cmd/build/detect/types.ts +109 -0
- package/src/cmd/build/detect/util.ts +104 -0
- package/src/cmd/build/index.ts +64 -24
- package/src/cmd/build/package/index.ts +66 -0
- package/src/cmd/build/package/launch.ts +104 -0
- package/src/cmd/build/typecheck.ts +9 -0
- package/src/cmd/cloud/deploy.ts +86 -13
- package/src/cmd/coder/create.ts +8 -8
- package/src/cmd/coder/update.ts +7 -7
- package/src/cmd/coder/workspace/create.ts +10 -10
- package/src/cmd/dev/index.ts +155 -1059
- package/src/cmd/project/auth/shared.ts +14 -39
- package/src/cmd/project/create.ts +14 -19
- package/src/cmd/project/frameworks-ai-examples.ts +166 -0
- package/src/cmd/project/frameworks-landing-pages.ts +267 -0
- package/src/cmd/project/frameworks.ts +223 -0
- package/src/cmd/project/reconcile.ts +10 -22
- package/src/cmd/project/remote-import.ts +1 -1
- package/src/cmd/project/scaffold.ts +300 -0
- package/src/cmd/project/template-flow.ts +102 -156
- package/src/deploy-metadata.ts +253 -0
- package/src/index.ts +0 -2
- package/src/types.ts +0 -31
- package/dist/agents-docs.d.ts +0 -23
- package/dist/agents-docs.d.ts.map +0 -1
- package/dist/agents-docs.js +0 -56
- package/dist/agents-docs.js.map +0 -1
- package/dist/cmd/ai/prompt/agent.d.ts +0 -10
- package/dist/cmd/ai/prompt/agent.d.ts.map +0 -1
- package/dist/cmd/ai/prompt/agent.js +0 -28
- package/dist/cmd/ai/prompt/agent.js.map +0 -1
- package/dist/cmd/build/app-router-detector.d.ts +0 -39
- package/dist/cmd/build/app-router-detector.d.ts.map +0 -1
- package/dist/cmd/build/app-router-detector.js +0 -229
- package/dist/cmd/build/app-router-detector.js.map +0 -1
- package/dist/cmd/build/format-schema.d.ts +0 -6
- package/dist/cmd/build/format-schema.d.ts.map +0 -1
- package/dist/cmd/build/format-schema.js +0 -60
- package/dist/cmd/build/format-schema.js.map +0 -1
- package/dist/cmd/build/vite/agent-discovery.d.ts +0 -37
- package/dist/cmd/build/vite/agent-discovery.d.ts.map +0 -1
- package/dist/cmd/build/vite/agent-discovery.js +0 -263
- package/dist/cmd/build/vite/agent-discovery.js.map +0 -1
- package/dist/cmd/build/vite/beacon-plugin.d.ts +0 -19
- package/dist/cmd/build/vite/beacon-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/beacon-plugin.js +0 -137
- package/dist/cmd/build/vite/beacon-plugin.js.map +0 -1
- package/dist/cmd/build/vite/browser-env-plugin.d.ts +0 -9
- package/dist/cmd/build/vite/browser-env-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/browser-env-plugin.js +0 -28
- package/dist/cmd/build/vite/browser-env-plugin.js.map +0 -1
- package/dist/cmd/build/vite/bun-dev-server.d.ts +0 -67
- package/dist/cmd/build/vite/bun-dev-server.d.ts.map +0 -1
- package/dist/cmd/build/vite/bun-dev-server.js +0 -340
- package/dist/cmd/build/vite/bun-dev-server.js.map +0 -1
- package/dist/cmd/build/vite/bundle-files.d.ts +0 -12
- package/dist/cmd/build/vite/bundle-files.d.ts.map +0 -1
- package/dist/cmd/build/vite/bundle-files.js +0 -107
- package/dist/cmd/build/vite/bundle-files.js.map +0 -1
- package/dist/cmd/build/vite/config-loader.d.ts +0 -29
- package/dist/cmd/build/vite/config-loader.d.ts.map +0 -1
- package/dist/cmd/build/vite/config-loader.js +0 -57
- package/dist/cmd/build/vite/config-loader.js.map +0 -1
- package/dist/cmd/build/vite/db-rewrite.d.ts +0 -50
- package/dist/cmd/build/vite/db-rewrite.d.ts.map +0 -1
- package/dist/cmd/build/vite/db-rewrite.js +0 -169
- package/dist/cmd/build/vite/db-rewrite.js.map +0 -1
- package/dist/cmd/build/vite/docs-generator.d.ts +0 -13
- package/dist/cmd/build/vite/docs-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/docs-generator.js +0 -97
- package/dist/cmd/build/vite/docs-generator.js.map +0 -1
- package/dist/cmd/build/vite/env-types-generator.d.ts +0 -26
- package/dist/cmd/build/vite/env-types-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/env-types-generator.js +0 -110
- package/dist/cmd/build/vite/env-types-generator.js.map +0 -1
- package/dist/cmd/build/vite/index.d.ts +0 -3
- package/dist/cmd/build/vite/index.d.ts.map +0 -1
- package/dist/cmd/build/vite/index.js +0 -4
- package/dist/cmd/build/vite/index.js.map +0 -1
- package/dist/cmd/build/vite/lifecycle-generator.d.ts +0 -19
- package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/lifecycle-generator.js +0 -328
- package/dist/cmd/build/vite/lifecycle-generator.js.map +0 -1
- package/dist/cmd/build/vite/metadata-generator.d.ts +0 -36
- package/dist/cmd/build/vite/metadata-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/metadata-generator.js +0 -575
- package/dist/cmd/build/vite/metadata-generator.js.map +0 -1
- package/dist/cmd/build/vite/prompt-generator.d.ts +0 -23
- package/dist/cmd/build/vite/prompt-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/prompt-generator.js +0 -123
- package/dist/cmd/build/vite/prompt-generator.js.map +0 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +0 -45
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.js +0 -166
- package/dist/cmd/build/vite/public-asset-path-plugin.js.map +0 -1
- package/dist/cmd/build/vite/route-discovery.d.ts +0 -64
- package/dist/cmd/build/vite/route-discovery.d.ts.map +0 -1
- package/dist/cmd/build/vite/route-discovery.js +0 -187
- package/dist/cmd/build/vite/route-discovery.js.map +0 -1
- package/dist/cmd/build/vite/server-bundler.d.ts +0 -20
- package/dist/cmd/build/vite/server-bundler.d.ts.map +0 -1
- package/dist/cmd/build/vite/server-bundler.js +0 -388
- package/dist/cmd/build/vite/server-bundler.js.map +0 -1
- package/dist/cmd/build/vite/static-renderer.d.ts +0 -26
- package/dist/cmd/build/vite/static-renderer.d.ts.map +0 -1
- package/dist/cmd/build/vite/static-renderer.js +0 -188
- package/dist/cmd/build/vite/static-renderer.js.map +0 -1
- package/dist/cmd/build/vite/tailwind-source-plugin.d.ts +0 -15
- package/dist/cmd/build/vite/tailwind-source-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/tailwind-source-plugin.js +0 -61
- package/dist/cmd/build/vite/tailwind-source-plugin.js.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts +0 -24
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +0 -285
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server.d.ts +0 -30
- package/dist/cmd/build/vite/vite-asset-server.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server.js +0 -109
- package/dist/cmd/build/vite/vite-asset-server.js.map +0 -1
- package/dist/cmd/build/vite/vite-builder.d.ts +0 -59
- package/dist/cmd/build/vite/vite-builder.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-builder.js +0 -401
- package/dist/cmd/build/vite/vite-builder.js.map +0 -1
- package/dist/cmd/build/vite/workbench-generator.d.ts +0 -10
- package/dist/cmd/build/vite/workbench-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/workbench-generator.js +0 -135
- package/dist/cmd/build/vite/workbench-generator.js.map +0 -1
- package/dist/cmd/build/vite/ws-proxy.d.ts +0 -53
- package/dist/cmd/build/vite/ws-proxy.d.ts.map +0 -1
- package/dist/cmd/build/vite/ws-proxy.js +0 -95
- package/dist/cmd/build/vite/ws-proxy.js.map +0 -1
- package/dist/cmd/build/vite-bundler.d.ts +0 -29
- package/dist/cmd/build/vite-bundler.d.ts.map +0 -1
- package/dist/cmd/build/vite-bundler.js +0 -93
- package/dist/cmd/build/vite-bundler.js.map +0 -1
- package/dist/cmd/dev/agents.d.ts +0 -2
- package/dist/cmd/dev/agents.d.ts.map +0 -1
- package/dist/cmd/dev/agents.js +0 -123
- package/dist/cmd/dev/agents.js.map +0 -1
- package/dist/cmd/dev/api.d.ts +0 -20
- package/dist/cmd/dev/api.d.ts.map +0 -1
- package/dist/cmd/dev/api.js +0 -42
- package/dist/cmd/dev/api.js.map +0 -1
- package/dist/cmd/dev/dev-lock.d.ts +0 -62
- package/dist/cmd/dev/dev-lock.d.ts.map +0 -1
- package/dist/cmd/dev/dev-lock.js +0 -250
- package/dist/cmd/dev/dev-lock.js.map +0 -1
- package/dist/cmd/dev/download.d.ts +0 -11
- package/dist/cmd/dev/download.d.ts.map +0 -1
- package/dist/cmd/dev/download.js +0 -94
- package/dist/cmd/dev/download.js.map +0 -1
- package/dist/cmd/dev/file-watcher.d.ts +0 -24
- package/dist/cmd/dev/file-watcher.d.ts.map +0 -1
- package/dist/cmd/dev/file-watcher.js +0 -349
- package/dist/cmd/dev/file-watcher.js.map +0 -1
- package/dist/cmd/dev/process-manager.d.ts +0 -104
- package/dist/cmd/dev/process-manager.d.ts.map +0 -1
- package/dist/cmd/dev/process-manager.js +0 -204
- package/dist/cmd/dev/process-manager.js.map +0 -1
- package/dist/cmd/dev/sync.d.ts +0 -12
- package/dist/cmd/dev/sync.d.ts.map +0 -1
- package/dist/cmd/dev/sync.js +0 -227
- package/dist/cmd/dev/sync.js.map +0 -1
- package/dist/cmd/dev/templates.d.ts +0 -3
- package/dist/cmd/dev/templates.d.ts.map +0 -1
- package/dist/cmd/dev/templates.js +0 -58
- package/dist/cmd/dev/templates.js.map +0 -1
- package/dist/cmd/project/download.d.ts +0 -35
- package/dist/cmd/project/download.d.ts.map +0 -1
- package/dist/cmd/project/download.js +0 -403
- package/dist/cmd/project/download.js.map +0 -1
- package/dist/cmd/project/templates.d.ts +0 -9
- package/dist/cmd/project/templates.d.ts.map +0 -1
- package/dist/cmd/project/templates.js +0 -34
- package/dist/cmd/project/templates.js.map +0 -1
- package/src/agents-docs.ts +0 -86
- package/src/cmd/ai/prompt/agent.md +0 -305
- package/src/cmd/ai/prompt/agent.ts +0 -31
- package/src/cmd/build/app-router-detector.ts +0 -320
- package/src/cmd/build/format-schema.ts +0 -66
- package/src/cmd/build/vite/agent-discovery.ts +0 -380
- package/src/cmd/build/vite/beacon-plugin.ts +0 -164
- package/src/cmd/build/vite/browser-env-plugin.ts +0 -34
- package/src/cmd/build/vite/bun-dev-server.ts +0 -458
- package/src/cmd/build/vite/bundle-files.ts +0 -135
- package/src/cmd/build/vite/config-loader.ts +0 -76
- package/src/cmd/build/vite/db-rewrite.ts +0 -189
- package/src/cmd/build/vite/docs-generator.ts +0 -103
- package/src/cmd/build/vite/env-types-generator.ts +0 -145
- package/src/cmd/build/vite/index.ts +0 -3
- package/src/cmd/build/vite/lifecycle-generator.ts +0 -381
- package/src/cmd/build/vite/metadata-generator.ts +0 -713
- package/src/cmd/build/vite/prompt-generator.ts +0 -169
- package/src/cmd/build/vite/public-asset-path-plugin.ts +0 -209
- package/src/cmd/build/vite/route-discovery.ts +0 -271
- package/src/cmd/build/vite/server-bundler.ts +0 -481
- package/src/cmd/build/vite/static-renderer.ts +0 -239
- package/src/cmd/build/vite/tailwind-source-plugin.ts +0 -73
- package/src/cmd/build/vite/vite-asset-server-config.ts +0 -349
- package/src/cmd/build/vite/vite-asset-server.ts +0 -154
- package/src/cmd/build/vite/vite-builder.ts +0 -503
- package/src/cmd/build/vite/workbench-generator.ts +0 -152
- package/src/cmd/build/vite/ws-proxy.ts +0 -126
- package/src/cmd/build/vite-bundler.ts +0 -137
- package/src/cmd/dev/agents.ts +0 -140
- package/src/cmd/dev/api.ts +0 -65
- package/src/cmd/dev/dev-lock.ts +0 -332
- package/src/cmd/dev/download.ts +0 -117
- package/src/cmd/dev/file-watcher.ts +0 -423
- package/src/cmd/dev/process-manager.ts +0 -261
- package/src/cmd/dev/sync.ts +0 -411
- package/src/cmd/dev/templates.ts +0 -66
- package/src/cmd/project/download.ts +0 -505
- package/src/cmd/project/templates.ts +0 -56
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
import { cpSync, createReadStream, existsSync, mkdirSync, mkdtempSync, readdirSync, renameSync, rmSync, } from 'node:fs';
|
|
2
|
-
import { tmpdir } from 'node:os';
|
|
3
|
-
import { join, resolve } from 'node:path';
|
|
4
|
-
import { finished } from 'node:stream/promises';
|
|
5
|
-
import { createGunzip } from 'node:zlib';
|
|
6
|
-
import { StructuredError } from '@agentuity/core';
|
|
7
|
-
import { extract } from 'tar-fs';
|
|
8
|
-
import { writeAgentsDocs } from '../../agents-docs';
|
|
9
|
-
import { downloadWithSpinner } from '../../download';
|
|
10
|
-
import * as tui from '../../tui';
|
|
11
|
-
const GITHUB_BRANCH = 'main';
|
|
12
|
-
const BASE_TEMPLATE_DIR = '_base';
|
|
13
|
-
const TemplateDirectoryNotFoundError = StructuredError('TemplateDirectoryNotFoundError')();
|
|
14
|
-
async function copyTemplateFiles(sourceDir, dest, skipGitignoreRename = false) {
|
|
15
|
-
if (!existsSync(sourceDir)) {
|
|
16
|
-
return; // Source directory doesn't exist, skip (overlay may be empty)
|
|
17
|
-
}
|
|
18
|
-
// Copy all files from source to dest (overlay wins on conflicts)
|
|
19
|
-
const files = readdirSync(sourceDir);
|
|
20
|
-
for (const file of files) {
|
|
21
|
-
// Skip package.overlay.json - it's handled separately for merging
|
|
22
|
-
if (file === 'package.overlay.json') {
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
// Skip .gitkeep files - they're just placeholders for empty directories
|
|
26
|
-
if (file === '.gitkeep') {
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
cpSync(join(sourceDir, file), join(dest, file), { recursive: true });
|
|
30
|
-
}
|
|
31
|
-
// Rename gitignore -> .gitignore (only do this once, after all copies)
|
|
32
|
-
if (!skipGitignoreRename) {
|
|
33
|
-
const gi = join(dest, 'gitignore');
|
|
34
|
-
if (existsSync(gi)) {
|
|
35
|
-
renameSync(gi, join(dest, '.gitignore'));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
async function mergePackageJson(dest, overlayDir) {
|
|
40
|
-
const basePackagePath = join(dest, 'package.json');
|
|
41
|
-
const overlayPackagePath = join(overlayDir, 'package.overlay.json');
|
|
42
|
-
// If no overlay package.json exists, nothing to merge
|
|
43
|
-
if (!existsSync(overlayPackagePath)) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
// Read base package.json
|
|
47
|
-
const basePackage = JSON.parse(await Bun.file(basePackagePath).text());
|
|
48
|
-
// Read overlay package.json
|
|
49
|
-
const overlayPackage = JSON.parse(await Bun.file(overlayPackagePath).text());
|
|
50
|
-
// Merge dependencies (overlay wins on conflicts)
|
|
51
|
-
if (overlayPackage.dependencies) {
|
|
52
|
-
basePackage.dependencies = {
|
|
53
|
-
...basePackage.dependencies,
|
|
54
|
-
...overlayPackage.dependencies,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
// Merge devDependencies (overlay wins on conflicts)
|
|
58
|
-
if (overlayPackage.devDependencies) {
|
|
59
|
-
basePackage.devDependencies = {
|
|
60
|
-
...basePackage.devDependencies,
|
|
61
|
-
...overlayPackage.devDependencies,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
// Merge scripts (overlay wins on conflicts)
|
|
65
|
-
if (overlayPackage.scripts) {
|
|
66
|
-
basePackage.scripts = {
|
|
67
|
-
...basePackage.scripts,
|
|
68
|
-
...overlayPackage.scripts,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
// Write merged package.json
|
|
72
|
-
await Bun.write(basePackagePath, JSON.stringify(basePackage, null, '\t') + '\n');
|
|
73
|
-
}
|
|
74
|
-
async function _cleanup(sourceDir, dest) {
|
|
75
|
-
if (!existsSync(sourceDir)) {
|
|
76
|
-
throw new TemplateDirectoryNotFoundError({
|
|
77
|
-
directory: sourceDir,
|
|
78
|
-
message: `Template directory not found: ${sourceDir}`,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
await tui.spinner('📦 Copying template files...', async () => {
|
|
82
|
-
// Copy all files from source to dest
|
|
83
|
-
const files = readdirSync(sourceDir);
|
|
84
|
-
for (const file of files) {
|
|
85
|
-
cpSync(join(sourceDir, file), join(dest, file), { recursive: true });
|
|
86
|
-
}
|
|
87
|
-
// Rename gitignore -> .gitignore
|
|
88
|
-
const gi = join(dest, 'gitignore');
|
|
89
|
-
if (existsSync(gi)) {
|
|
90
|
-
renameSync(gi, join(dest, '.gitignore'));
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
export async function downloadTemplate(options) {
|
|
95
|
-
const { dest, template, templateDir, templateBranch, logger } = options;
|
|
96
|
-
mkdirSync(dest, { recursive: true });
|
|
97
|
-
// Copy from local directory if provided
|
|
98
|
-
if (templateDir) {
|
|
99
|
-
const baseDir = resolve(join(templateDir, BASE_TEMPLATE_DIR));
|
|
100
|
-
const overlayDir = resolve(join(templateDir, template.directory));
|
|
101
|
-
// Base template must exist
|
|
102
|
-
if (!existsSync(baseDir)) {
|
|
103
|
-
throw new TemplateDirectoryNotFoundError({
|
|
104
|
-
directory: baseDir,
|
|
105
|
-
message: `Base template directory not found: ${baseDir}`,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
// Overlay directory must exist (even if empty)
|
|
109
|
-
if (!existsSync(overlayDir)) {
|
|
110
|
-
throw new TemplateDirectoryNotFoundError({
|
|
111
|
-
directory: overlayDir,
|
|
112
|
-
message: `Template directory not found: ${overlayDir}`,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
await tui.spinner({
|
|
116
|
-
type: 'progress',
|
|
117
|
-
message: '📦 Copying template files...',
|
|
118
|
-
clearOnSuccess: true,
|
|
119
|
-
callback: async (progress) => {
|
|
120
|
-
// Step 1: Copy base template files (skip gitignore rename for now)
|
|
121
|
-
await copyTemplateFiles(baseDir, dest, true);
|
|
122
|
-
progress(33);
|
|
123
|
-
// Step 2: Copy overlay template files (overlay wins on conflicts)
|
|
124
|
-
await copyTemplateFiles(overlayDir, dest, false);
|
|
125
|
-
progress(66);
|
|
126
|
-
// Step 3: Merge package.json with overlay dependencies
|
|
127
|
-
await mergePackageJson(dest, overlayDir);
|
|
128
|
-
progress(100);
|
|
129
|
-
},
|
|
130
|
-
});
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
// Download from GitHub
|
|
134
|
-
const branch = templateBranch || GITHUB_BRANCH;
|
|
135
|
-
const basePath = `templates/${BASE_TEMPLATE_DIR}`;
|
|
136
|
-
const overlayPath = `templates/${template.directory}`;
|
|
137
|
-
const url = `https://agentuity.sh/template/sdk/${branch}/tar.gz`;
|
|
138
|
-
const tempDir = mkdtempSync(join(tmpdir(), 'agentuity-'));
|
|
139
|
-
const tarballPath = join(tempDir, 'download.tar.gz');
|
|
140
|
-
logger.debug('[download] URL: %s', url);
|
|
141
|
-
logger.debug('[download] Branch: %s', branch);
|
|
142
|
-
logger.debug('[download] Base path: %s', basePath);
|
|
143
|
-
logger.debug('[download] Overlay path: %s', overlayPath);
|
|
144
|
-
logger.debug('[download] Temp dir: %s', tempDir);
|
|
145
|
-
try {
|
|
146
|
-
// Step 1: Download tarball to temp file
|
|
147
|
-
// We download to a file first rather than piping directly to tar-fs
|
|
148
|
-
// because this avoids Bun/Node stream compatibility issues
|
|
149
|
-
await downloadWithSpinner({
|
|
150
|
-
url,
|
|
151
|
-
message: templateBranch
|
|
152
|
-
? `Downloading template files from branch ${branch}...`
|
|
153
|
-
: 'Downloading template files...',
|
|
154
|
-
}, async (stream) => {
|
|
155
|
-
// Collect all chunks from the download stream
|
|
156
|
-
const chunks = [];
|
|
157
|
-
for await (const chunk of stream) {
|
|
158
|
-
chunks.push(Buffer.from(chunk));
|
|
159
|
-
}
|
|
160
|
-
const buffer = Buffer.concat(chunks);
|
|
161
|
-
await Bun.write(tarballPath, buffer);
|
|
162
|
-
logger.debug('[download] Downloaded bytes: %dbytes', buffer.length);
|
|
163
|
-
logger.debug('[download] Tarball path: %s', tarballPath);
|
|
164
|
-
});
|
|
165
|
-
// Step 2: Extract tarball - extract both base and overlay templates
|
|
166
|
-
// The tarball structure is: sdk-{branch}/templates/{template.directory}/...
|
|
167
|
-
const baseExtractDir = join(tempDir, 'base');
|
|
168
|
-
const overlayExtractDir = join(tempDir, 'overlay');
|
|
169
|
-
mkdirSync(baseExtractDir, { recursive: true });
|
|
170
|
-
mkdirSync(overlayExtractDir, { recursive: true });
|
|
171
|
-
const basePrefix = `sdk-${branch}/${basePath}/`;
|
|
172
|
-
const overlayPrefix = `sdk-${branch}/${overlayPath}/`;
|
|
173
|
-
logger.debug('[extract] Base extract dir: %s', baseExtractDir);
|
|
174
|
-
logger.debug('[extract] Overlay extract dir: %s', overlayExtractDir);
|
|
175
|
-
logger.debug('[extract] Base prefix: %s', basePrefix);
|
|
176
|
-
logger.debug('[extract] Overlay prefix: %s', overlayPrefix);
|
|
177
|
-
// Track extraction stats for debugging
|
|
178
|
-
let ignoredCount = 0;
|
|
179
|
-
let baseExtractedCount = 0;
|
|
180
|
-
let overlayExtractedCount = 0;
|
|
181
|
-
// Track which entries we've mapped so we don't ignore them later
|
|
182
|
-
// Note: tar-fs calls map BEFORE ignore (despite what docs say)
|
|
183
|
-
const mappedEntries = new Set();
|
|
184
|
-
const extractor = extract(tempDir, {
|
|
185
|
-
// map callback: called FIRST, allows modifying the entry before extraction
|
|
186
|
-
// We extract base files to baseExtractDir and overlay files to overlayExtractDir
|
|
187
|
-
map: (header) => {
|
|
188
|
-
const originalName = header.name;
|
|
189
|
-
// Check if this is a base template file
|
|
190
|
-
if (header.name.startsWith(basePrefix) && header.name.length > basePrefix.length) {
|
|
191
|
-
header.name = `base/${header.name.substring(basePrefix.length)}`;
|
|
192
|
-
mappedEntries.add(header.name);
|
|
193
|
-
logger.debug('[extract] MAP BASE: %s -> %s', originalName, header.name);
|
|
194
|
-
baseExtractedCount++;
|
|
195
|
-
}
|
|
196
|
-
// Check if this is an overlay template file
|
|
197
|
-
else if (header.name.startsWith(overlayPrefix) &&
|
|
198
|
-
header.name.length > overlayPrefix.length) {
|
|
199
|
-
header.name = `overlay/${header.name.substring(overlayPrefix.length)}`;
|
|
200
|
-
mappedEntries.add(header.name);
|
|
201
|
-
logger.debug('[extract] MAP OVERLAY: %s -> %s', originalName, header.name);
|
|
202
|
-
overlayExtractedCount++;
|
|
203
|
-
}
|
|
204
|
-
return header;
|
|
205
|
-
},
|
|
206
|
-
// ignore callback: called AFTER map, receives the MAPPED name
|
|
207
|
-
// Return true to skip the entry, false to extract it
|
|
208
|
-
ignore: (_name, header) => {
|
|
209
|
-
if (!header) {
|
|
210
|
-
ignoredCount++;
|
|
211
|
-
return true;
|
|
212
|
-
}
|
|
213
|
-
// If we already mapped this entry, don't ignore it
|
|
214
|
-
if (mappedEntries.has(header.name)) {
|
|
215
|
-
return false;
|
|
216
|
-
}
|
|
217
|
-
// Otherwise, ignore it
|
|
218
|
-
logger.debug('[extract] IGNORE: %s', header.name);
|
|
219
|
-
ignoredCount++;
|
|
220
|
-
return true;
|
|
221
|
-
},
|
|
222
|
-
});
|
|
223
|
-
// Pipe: tarball file -> gunzip -> tar extractor
|
|
224
|
-
createReadStream(tarballPath).pipe(createGunzip()).pipe(extractor);
|
|
225
|
-
await finished(extractor);
|
|
226
|
-
logger.debug('[extract] Extraction complete');
|
|
227
|
-
logger.debug('[extract] Ignored entries: %d', ignoredCount);
|
|
228
|
-
logger.debug('[extract] Base extracted entries: %d', baseExtractedCount);
|
|
229
|
-
logger.debug('[extract] Overlay extracted entries: %d', overlayExtractedCount);
|
|
230
|
-
// Step 3: Copy base template files, then overlay template files
|
|
231
|
-
await tui.spinner({
|
|
232
|
-
type: 'progress',
|
|
233
|
-
message: '📦 Copying template files...',
|
|
234
|
-
clearOnSuccess: true,
|
|
235
|
-
callback: async (progress) => {
|
|
236
|
-
// Copy base template files (skip gitignore rename for now)
|
|
237
|
-
await copyTemplateFiles(baseExtractDir, dest, true);
|
|
238
|
-
progress(33);
|
|
239
|
-
// Copy overlay template files (overlay wins on conflicts)
|
|
240
|
-
await copyTemplateFiles(overlayExtractDir, dest, false);
|
|
241
|
-
progress(66);
|
|
242
|
-
// Merge package.json with overlay dependencies
|
|
243
|
-
await mergePackageJson(dest, overlayExtractDir);
|
|
244
|
-
progress(100);
|
|
245
|
-
},
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
finally {
|
|
249
|
-
// Clean up temp directory
|
|
250
|
-
logger.debug('[cleanup] Removing temp dir: %s', tempDir);
|
|
251
|
-
rmSync(tempDir, { recursive: true, force: true });
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
export async function setupProject(options) {
|
|
255
|
-
const { dest, projectName, dirName, noInstall, noBuild, logger } = options;
|
|
256
|
-
let hasError = false;
|
|
257
|
-
// Replace {{PROJECT_NAME}} in files
|
|
258
|
-
tui.info(`🔧 Setting up ${projectName}...`);
|
|
259
|
-
await replaceInFiles(dest, projectName, dirName);
|
|
260
|
-
// Install dependencies
|
|
261
|
-
if (!noInstall) {
|
|
262
|
-
const exitCode = await tui.runCommand({
|
|
263
|
-
command: 'bun install',
|
|
264
|
-
cwd: dest,
|
|
265
|
-
cmd: ['bun', 'install'],
|
|
266
|
-
clearOnSuccess: true,
|
|
267
|
-
});
|
|
268
|
-
if (exitCode !== 0) {
|
|
269
|
-
logger.error('Failed to install dependencies');
|
|
270
|
-
hasError = true;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
// Run optional template setup script if it exists
|
|
274
|
-
// This allows templates to run custom setup logic after bun install
|
|
275
|
-
const setupScriptPath = join(dest, '_setup.ts');
|
|
276
|
-
if (existsSync(setupScriptPath)) {
|
|
277
|
-
try {
|
|
278
|
-
const exitCode = await tui.runCommand({
|
|
279
|
-
command: 'bun _setup.ts',
|
|
280
|
-
cwd: dest,
|
|
281
|
-
cmd: ['bun', '_setup.ts'],
|
|
282
|
-
clearOnSuccess: true,
|
|
283
|
-
});
|
|
284
|
-
if (exitCode !== 0) {
|
|
285
|
-
logger.error('Template setup script failed');
|
|
286
|
-
hasError = true;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
finally {
|
|
290
|
-
// Always delete the setup script after running (or attempting to run)
|
|
291
|
-
try {
|
|
292
|
-
rmSync(setupScriptPath);
|
|
293
|
-
}
|
|
294
|
-
catch {
|
|
295
|
-
// Ignore errors when deleting the setup script
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
// Build project
|
|
300
|
-
if (!noBuild) {
|
|
301
|
-
const exitCode = await tui.runCommand({
|
|
302
|
-
command: 'bun run build --dev',
|
|
303
|
-
cwd: dest,
|
|
304
|
-
cmd: ['bun', 'run', 'build', '--dev'],
|
|
305
|
-
clearOnSuccess: true,
|
|
306
|
-
});
|
|
307
|
-
if (exitCode !== 0) {
|
|
308
|
-
logger.error('Failed to build project');
|
|
309
|
-
hasError = true;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
// Generate and write AGENTS.md files for the CLI and source folders
|
|
313
|
-
// Always overwrite during project setup to ensure fresh content
|
|
314
|
-
await writeAgentsDocs(dest);
|
|
315
|
-
return { success: !hasError };
|
|
316
|
-
}
|
|
317
|
-
export async function initGitRepo(dest, options) {
|
|
318
|
-
// Safety: refuse to init if .git already exists (prevents clobbering existing repos)
|
|
319
|
-
if (existsSync(join(dest, '.git'))) {
|
|
320
|
-
throw new Error(`Refusing to initialize git: "${dest}" already contains a .git directory.`);
|
|
321
|
-
}
|
|
322
|
-
// Initialize git repository if git is available
|
|
323
|
-
// Check for real git (not macOS stub that triggers Xcode CLT popup)
|
|
324
|
-
const { isGitAvailable, getDefaultBranch } = await import('../../git-helper');
|
|
325
|
-
const gitAvailable = await isGitAvailable();
|
|
326
|
-
if (gitAvailable) {
|
|
327
|
-
// Get default branch from git config, fallback to 'main'
|
|
328
|
-
const defaultBranch = (await getDefaultBranch()) || 'main';
|
|
329
|
-
// Git is available, initialize repository
|
|
330
|
-
await tui.runCommand({
|
|
331
|
-
command: `git init -b ${defaultBranch}`,
|
|
332
|
-
cwd: dest,
|
|
333
|
-
cmd: ['git', 'init', '-b', defaultBranch],
|
|
334
|
-
clearOnSuccess: true,
|
|
335
|
-
});
|
|
336
|
-
// Configure git user in CI/sandbox environments (where git config may not be set)
|
|
337
|
-
if (process.env.CI || process.env.AGENTUITY_SANDBOX_ID) {
|
|
338
|
-
const cfgEmail = options?.author?.email ?? 'bot@agentuity.com';
|
|
339
|
-
const cfgName = options?.author?.name ?? 'Agentuity';
|
|
340
|
-
await tui.runCommand({
|
|
341
|
-
command: 'git config user.email',
|
|
342
|
-
cwd: dest,
|
|
343
|
-
cmd: ['git', 'config', 'user.email', cfgEmail],
|
|
344
|
-
clearOnSuccess: true,
|
|
345
|
-
});
|
|
346
|
-
await tui.runCommand({
|
|
347
|
-
command: 'git config user.name',
|
|
348
|
-
cwd: dest,
|
|
349
|
-
cmd: ['git', 'config', 'user.name', cfgName],
|
|
350
|
-
clearOnSuccess: true,
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
// Add all files
|
|
354
|
-
await tui.runCommand({
|
|
355
|
-
command: 'git add .',
|
|
356
|
-
cwd: dest,
|
|
357
|
-
cmd: ['git', 'add', '.'],
|
|
358
|
-
clearOnSuccess: true,
|
|
359
|
-
});
|
|
360
|
-
const commitMessage = 'Initial Setup';
|
|
361
|
-
// Create initial commit — authored by the GitHub App bot if available,
|
|
362
|
-
// otherwise fallback to generic Agentuity identity
|
|
363
|
-
const authorName = options?.author?.name ?? 'Agentuity';
|
|
364
|
-
const authorEmail = options?.author?.email ?? 'bot@agentuity.com';
|
|
365
|
-
const authorStr = `${authorName} <${authorEmail}>`;
|
|
366
|
-
await tui.runCommand({
|
|
367
|
-
command: 'git commit',
|
|
368
|
-
cwd: dest,
|
|
369
|
-
cmd: [
|
|
370
|
-
'git',
|
|
371
|
-
'-c',
|
|
372
|
-
'commit.gpgsign=false',
|
|
373
|
-
'commit',
|
|
374
|
-
`--author=${authorStr}`,
|
|
375
|
-
'-m',
|
|
376
|
-
commitMessage,
|
|
377
|
-
],
|
|
378
|
-
env: {
|
|
379
|
-
GIT_COMMITTER_NAME: authorName,
|
|
380
|
-
GIT_COMMITTER_EMAIL: authorEmail,
|
|
381
|
-
},
|
|
382
|
-
clearOnSuccess: true,
|
|
383
|
-
});
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
async function replaceInFiles(dir, projectName, dirName) {
|
|
387
|
-
const filesToReplace = ['package.json', 'README.md', 'AGENTS.md'];
|
|
388
|
-
for (const file of filesToReplace) {
|
|
389
|
-
const filePath = join(dir, file);
|
|
390
|
-
const bunFile = Bun.file(filePath);
|
|
391
|
-
if (await bunFile.exists()) {
|
|
392
|
-
let content = await bunFile.text();
|
|
393
|
-
// Replace human-readable name in most places
|
|
394
|
-
content = content.replace(/\{\{PROJECT_NAME\}\}/g, projectName);
|
|
395
|
-
// Replace with directory name for package.json "name" field (npm package name)
|
|
396
|
-
if (file === 'package.json') {
|
|
397
|
-
content = content.replace(/"name":\s*".*?"/, `"name": "${dirName}"`);
|
|
398
|
-
}
|
|
399
|
-
await Bun.write(filePath, content);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
//# sourceMappingURL=download.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/cmd/project/download.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Logger } from '@agentuity/core';
|
|
2
|
-
export interface TemplateInfo {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
description: string;
|
|
6
|
-
directory: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function fetchTemplates(logger: Logger, localDir?: string, branch?: string): Promise<TemplateInfo[]>;
|
|
9
|
-
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/cmd/project/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI1D,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AASD,wBAAsB,cAAc,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,EAAE,CAAC,CAiCzB"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { StructuredError } from '@agentuity/core';
|
|
2
|
-
const GITHUB_BRANCH = 'main';
|
|
3
|
-
const TemplateMissingConfigurationError = StructuredError('TemplateMissingConfigurationError');
|
|
4
|
-
const TemplateDownloadError = StructuredError('TemplateDownloadError')();
|
|
5
|
-
export async function fetchTemplates(logger, localDir, branch) {
|
|
6
|
-
// Load from local directory if provided
|
|
7
|
-
if (localDir) {
|
|
8
|
-
const { join } = await import('node:path');
|
|
9
|
-
const { resolve } = await import('node:path');
|
|
10
|
-
const manifestPath = resolve(join(localDir, 'templates.json'));
|
|
11
|
-
const file = Bun.file(manifestPath);
|
|
12
|
-
if (!(await file.exists())) {
|
|
13
|
-
throw new TemplateMissingConfigurationError({
|
|
14
|
-
message: `templates.json not found at ${manifestPath}`,
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
const manifest = (await file.json());
|
|
18
|
-
return manifest.templates;
|
|
19
|
-
}
|
|
20
|
-
// Fetch from GitHub
|
|
21
|
-
const branchToUse = branch || GITHUB_BRANCH;
|
|
22
|
-
const url = `https://agentuity.sh/template/sdk/${branchToUse}`;
|
|
23
|
-
const response = await fetch(url);
|
|
24
|
-
if (!response.ok) {
|
|
25
|
-
logger.trace('error fetching template from %s. %s', url, await response.text());
|
|
26
|
-
throw new TemplateDownloadError({
|
|
27
|
-
status: response.status,
|
|
28
|
-
message: `Failed to fetch templates: ${response.statusText}`,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
const manifest = (await response.json());
|
|
32
|
-
return manifest.templates;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/cmd/project/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,iBAAiB,CAAC;AAE1D,MAAM,aAAa,GAAG,MAAM,CAAC;AAa7B,MAAM,iCAAiC,GAAG,eAAe,CAAC,mCAAmC,CAAC,CAAC;AAC/F,MAAM,qBAAqB,GAAG,eAAe,CAAC,uBAAuB,CAAC,EAAsB,CAAC;AAE7F,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,MAAc,EACd,QAAiB,EACjB,MAAe;IAEf,wCAAwC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEpC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,iCAAiC,CAAC;gBAC3C,OAAO,EAAE,+BAA+B,YAAY,EAAE;aACtD,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAsB,CAAC;QAC1D,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC3B,CAAC;IAED,oBAAoB;IACpB,MAAM,WAAW,GAAG,MAAM,IAAI,aAAa,CAAC;IAC5C,MAAM,GAAG,GAAG,qCAAqC,WAAW,EAAE,CAAC;IAE/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,MAAM,IAAI,qBAAqB,CAAC;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,8BAA8B,QAAQ,CAAC,UAAU,EAAE;SAC5D,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC;IAC9D,OAAO,QAAQ,CAAC,SAAS,CAAC;AAC3B,CAAC"}
|
package/src/agents-docs.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
|
-
import { existsSync } from 'node:fs';
|
|
3
|
-
import { mkdir } from 'node:fs/promises';
|
|
4
|
-
import { generateLLMPrompt as generateCLIPrompt } from './cmd/ai/prompt/llm';
|
|
5
|
-
import { generateLLMPrompt as generateAgentPrompt } from './cmd/ai/prompt/agent';
|
|
6
|
-
import { generateLLMPrompt as generateWebPrompt } from './cmd/ai/prompt/web';
|
|
7
|
-
import { generateLLMPrompt as generateAPIPrompt } from './cmd/ai/prompt/api';
|
|
8
|
-
|
|
9
|
-
interface WriteAgentsDocsOptions {
|
|
10
|
-
/**
|
|
11
|
-
* If true, only write files that don't already exist.
|
|
12
|
-
* If false (default), always write files, overwriting existing ones.
|
|
13
|
-
*/
|
|
14
|
-
onlyIfMissing?: boolean;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Generate the reference file content that points to .agents/
|
|
19
|
-
*/
|
|
20
|
-
function generateReferenceContent(name: string): string {
|
|
21
|
-
return `See [.agents/agentuity/sdk/${name}/AGENTS.md](../../.agents/agentuity/sdk/${name}/AGENTS.md) for Agentuity ${name} development guidelines.
|
|
22
|
-
`;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Writes AGENTS.md documentation files to the appropriate locations in a project.
|
|
27
|
-
*
|
|
28
|
-
* This function generates and writes AGENTS.md files to:
|
|
29
|
-
* - node_modules/@agentuity/cli/AGENTS.md (CLI documentation - full content)
|
|
30
|
-
* - .agents/agentuity/sdk/[type]/AGENTS.md (Full content for agent, api, web)
|
|
31
|
-
* - src/agent/AGENTS.md (Reference file pointing to .agents/)
|
|
32
|
-
* - src/api/AGENTS.md (Reference file pointing to .agents/)
|
|
33
|
-
* - src/web/AGENTS.md (Reference file pointing to .agents/)
|
|
34
|
-
*
|
|
35
|
-
* @param rootDir - The root directory of the project
|
|
36
|
-
* @param options - Options for controlling write behavior
|
|
37
|
-
*/
|
|
38
|
-
export async function writeAgentsDocs(
|
|
39
|
-
rootDir: string,
|
|
40
|
-
options: WriteAgentsDocsOptions = {}
|
|
41
|
-
): Promise<void> {
|
|
42
|
-
const { onlyIfMissing = false } = options;
|
|
43
|
-
|
|
44
|
-
const ensure = async (dir: string, fileName: string, content: string) => {
|
|
45
|
-
if (!existsSync(dir)) return;
|
|
46
|
-
const filePath = join(dir, fileName);
|
|
47
|
-
if (onlyIfMissing && existsSync(filePath)) return;
|
|
48
|
-
await Bun.write(filePath, content);
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const ensureWithCreate = async (dir: string, fileName: string, content: string) => {
|
|
52
|
-
await mkdir(dir, { recursive: true });
|
|
53
|
-
const filePath = join(dir, fileName);
|
|
54
|
-
if (onlyIfMissing && existsSync(filePath)) return;
|
|
55
|
-
await Bun.write(filePath, content);
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
// Generate and write AGENTS.md for the CLI (in node_modules)
|
|
59
|
-
await ensure(
|
|
60
|
-
join(rootDir, 'node_modules', '@agentuity', 'cli'),
|
|
61
|
-
'AGENTS.md',
|
|
62
|
-
generateCLIPrompt()
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
// Write full content to .agents/agentuity/sdk/[type]/AGENTS.md
|
|
66
|
-
await ensureWithCreate(
|
|
67
|
-
join(rootDir, '.agents', 'agentuity', 'sdk', 'agent'),
|
|
68
|
-
'AGENTS.md',
|
|
69
|
-
generateAgentPrompt()
|
|
70
|
-
);
|
|
71
|
-
await ensureWithCreate(
|
|
72
|
-
join(rootDir, '.agents', 'agentuity', 'sdk', 'api'),
|
|
73
|
-
'AGENTS.md',
|
|
74
|
-
generateAPIPrompt()
|
|
75
|
-
);
|
|
76
|
-
await ensureWithCreate(
|
|
77
|
-
join(rootDir, '.agents', 'agentuity', 'sdk', 'web'),
|
|
78
|
-
'AGENTS.md',
|
|
79
|
-
generateWebPrompt()
|
|
80
|
-
);
|
|
81
|
-
|
|
82
|
-
// Write reference files to src/[type]/AGENTS.md (pointing to .agents/)
|
|
83
|
-
await ensure(join(rootDir, 'src', 'agent'), 'AGENTS.md', generateReferenceContent('agent'));
|
|
84
|
-
await ensure(join(rootDir, 'src', 'api'), 'AGENTS.md', generateReferenceContent('api'));
|
|
85
|
-
await ensure(join(rootDir, 'src', 'web'), 'AGENTS.md', generateReferenceContent('web'));
|
|
86
|
-
}
|