|
1 | 1 | import { getWorkingDirectory } from '../../../lib'; |
2 | | -import type { BuildType, ModelProvider, SDKFramework, TargetLanguage } from '../../../schema'; |
| 2 | +import type { BuildType, ModelProvider, NetworkMode, SDKFramework, TargetLanguage } from '../../../schema'; |
3 | 3 | import { getErrorMessage } from '../../errors'; |
4 | 4 | import { COMMAND_DESCRIPTIONS } from '../../tui/copy'; |
5 | 5 | import { CreateScreen } from '../../tui/screens/create'; |
| 6 | +import { parseCommaSeparatedList } from '../shared/vpc-utils'; |
6 | 7 | import { type ProgressCallback, createProject, createProjectWithAgent, getDryRunInfo } from './action'; |
7 | 8 | import type { CreateOptions } from './types'; |
8 | 9 | import { validateCreateOptions } from './validate'; |
@@ -120,6 +121,9 @@ async function handleCreateCLI(options: CreateOptions): Promise<void> { |
120 | 121 | modelProvider: options.modelProvider as ModelProvider, |
121 | 122 | apiKey: options.apiKey, |
122 | 123 | memory: options.memory as 'none' | 'shortTerm' | 'longAndShortTerm', |
| 124 | + networkMode: options.networkMode as NetworkMode | undefined, |
| 125 | + subnets: parseCommaSeparatedList(options.subnets), |
| 126 | + securityGroups: parseCommaSeparatedList(options.securityGroups), |
123 | 127 | skipGit: options.skipGit, |
124 | 128 | skipPythonSetup: options.skipPythonSetup, |
125 | 129 | onProgress, |
@@ -152,6 +156,9 @@ export const registerCreate = (program: Command) => { |
152 | 156 | .option('--model-provider <provider>', 'Model provider (Bedrock, Anthropic, OpenAI, Gemini) [non-interactive]') |
153 | 157 | .option('--api-key <key>', 'API key for non-Bedrock providers [non-interactive]') |
154 | 158 | .option('--memory <option>', 'Memory option (none, shortTerm, longAndShortTerm) [non-interactive]') |
| 159 | + .option('--network-mode <mode>', 'Network mode: PUBLIC or VPC (default: PUBLIC) [non-interactive]') |
| 160 | + .option('--subnets <ids>', 'Comma-separated subnet IDs (required for VPC mode) [non-interactive]') |
| 161 | + .option('--security-groups <ids>', 'Comma-separated security group IDs (required for VPC mode) [non-interactive]') |
155 | 162 | .option('--output-dir <dir>', 'Output directory (default: current directory) [non-interactive]') |
156 | 163 | .option('--skip-git', 'Skip git repository initialization [non-interactive]') |
157 | 164 | .option('--skip-python-setup', 'Skip Python virtual environment setup [non-interactive]') |
@@ -179,6 +186,9 @@ export const registerCreate = (program: Command) => { |
179 | 186 | options.modelProvider ?? |
180 | 187 | options.apiKey ?? |
181 | 188 | options.memory ?? |
| 189 | + options.networkMode ?? |
| 190 | + options.subnets ?? |
| 191 | + options.securityGroups ?? |
182 | 192 | options.outputDir ?? |
183 | 193 | options.skipGit ?? |
184 | 194 | options.skipPythonSetup ?? |
|
0 commit comments