@build-astron-co/nimbus 0.4.1 → 0.4.3
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 +268 -89
- package/README.md +26 -567
- package/dist/src/agent/compaction-agent.js +24 -12
- package/dist/src/agent/context-manager.js +2 -1
- package/dist/src/agent/expand-files.js +2 -1
- package/dist/src/agent/loop.js +71 -33
- package/dist/src/agent/permissions.js +4 -2
- package/dist/src/agent/system-prompt.js +34 -17
- package/dist/src/app.js +1 -1
- package/dist/src/auth/keychain.js +8 -4
- package/dist/src/auth/store.js +70 -107
- package/dist/src/cli/init.js +35 -19
- package/dist/src/cli/run.js +18 -10
- package/dist/src/cli/serve.js +4 -2
- package/dist/src/cli.js +52 -11
- package/dist/src/commands/alias.js +5 -3
- package/dist/src/commands/audit/index.js +2 -1
- package/dist/src/commands/aws-terraform.js +36 -18
- package/dist/src/commands/completions.js +1 -1
- package/dist/src/commands/config.js +3 -2
- package/dist/src/commands/connect-github.js +92 -0
- package/dist/src/commands/cost/index.js +3 -2
- package/dist/src/commands/deploy.js +15 -10
- package/dist/src/commands/doctor.js +9 -6
- package/dist/src/commands/drift/index.js +2 -1
- package/dist/src/commands/export.js +5 -3
- package/dist/src/commands/generate-terraform.js +110 -2
- package/dist/src/commands/import.js +3 -3
- package/dist/src/commands/incident.js +10 -5
- package/dist/src/commands/login.js +8 -93
- package/dist/src/commands/logs.js +16 -8
- package/dist/src/commands/onboarding.js +6 -4
- package/dist/src/commands/pipeline.js +6 -3
- package/dist/src/commands/plugin.js +3 -2
- package/dist/src/commands/profile.js +27 -14
- package/dist/src/commands/questionnaire.js +1 -1
- package/dist/src/commands/rollback.js +3 -2
- package/dist/src/commands/rollout.js +5 -3
- package/dist/src/commands/runbook.js +17 -10
- package/dist/src/commands/schedule.js +10 -5
- package/dist/src/commands/status.js +2 -1
- package/dist/src/commands/team-context.js +12 -7
- package/dist/src/commands/template.js +1 -1
- package/dist/src/commands/tf/index.js +6 -3
- package/dist/src/commands/upgrade.js +5 -3
- package/dist/src/commands/version.js +6 -3
- package/dist/src/commands/watch.js +6 -3
- package/dist/src/compat/sqlite.js +5 -3
- package/dist/src/config/mode-store.js +2 -1
- package/dist/src/config/profiles.js +4 -2
- package/dist/src/config/types.js +2 -1
- package/dist/src/engine/executor.js +8 -4
- package/dist/src/engine/planner.js +9 -5
- package/dist/src/llm/providers/anthropic.js +6 -3
- package/dist/src/llm/providers/ollama.js +1 -1
- package/dist/src/llm/router.js +22 -7
- package/dist/src/nimbus.js +1 -0
- package/dist/src/sessions/manager.js +6 -3
- package/dist/src/sharing/viewer.js +2 -1
- package/dist/src/tools/file-ops.js +1 -2
- package/dist/src/tools/schemas/devops.js +197 -108
- package/dist/src/tools/schemas/standard.js +1 -1
- package/dist/src/ui/App.js +25 -13
- package/dist/src/ui/FileDiffModal.js +22 -11
- package/dist/src/ui/HelpModal.js +2 -1
- package/dist/src/ui/InputBox.js +6 -3
- package/dist/src/ui/MessageList.js +40 -20
- package/dist/src/ui/TerminalPane.js +2 -1
- package/dist/src/ui/ToolCallDisplay.js +12 -6
- package/dist/src/ui/TreePane.js +2 -1
- package/dist/src/ui/ink/index.js +37 -21
- package/dist/src/version.js +1 -1
- package/dist/src/watcher/index.js +8 -4
- package/package.json +3 -5
- package/src/__tests__/alias.test.ts +0 -133
- package/src/__tests__/app.test.ts +0 -76
- package/src/__tests__/audit.test.ts +0 -877
- package/src/__tests__/circuit-breaker.test.ts +0 -116
- package/src/__tests__/cli-run.test.ts +0 -351
- package/src/__tests__/compat-sqlite.test.ts +0 -68
- package/src/__tests__/context-manager.test.ts +0 -632
- package/src/__tests__/context.test.ts +0 -242
- package/src/__tests__/devops-terminal-gaps.test.ts +0 -718
- package/src/__tests__/doctor.test.ts +0 -48
- package/src/__tests__/enterprise.test.ts +0 -401
- package/src/__tests__/export.test.ts +0 -236
- package/src/__tests__/gap-11-18-20.test.ts +0 -958
- package/src/__tests__/generator.test.ts +0 -433
- package/src/__tests__/helm-streaming.test.ts +0 -127
- package/src/__tests__/hooks.test.ts +0 -582
- package/src/__tests__/incident.test.ts +0 -179
- package/src/__tests__/init.test.ts +0 -487
- package/src/__tests__/intent-parser.test.ts +0 -229
- package/src/__tests__/llm-router.test.ts +0 -209
- package/src/__tests__/logs.test.ts +0 -107
- package/src/__tests__/loop-errors.test.ts +0 -244
- package/src/__tests__/lsp.test.ts +0 -293
- package/src/__tests__/modes.test.ts +0 -336
- package/src/__tests__/perf-optimizations.test.ts +0 -847
- package/src/__tests__/permissions.test.ts +0 -338
- package/src/__tests__/pipeline.test.ts +0 -50
- package/src/__tests__/polish-phase3.test.ts +0 -340
- package/src/__tests__/profile.test.ts +0 -237
- package/src/__tests__/rollback.test.ts +0 -83
- package/src/__tests__/runbook.test.ts +0 -219
- package/src/__tests__/schedule.test.ts +0 -206
- package/src/__tests__/serve.test.ts +0 -275
- package/src/__tests__/sessions.test.ts +0 -322
- package/src/__tests__/sharing.test.ts +0 -340
- package/src/__tests__/snapshots.test.ts +0 -581
- package/src/__tests__/standalone-migration.test.ts +0 -199
- package/src/__tests__/state-db.test.ts +0 -334
- package/src/__tests__/status.test.ts +0 -158
- package/src/__tests__/stream-with-tools.test.ts +0 -778
- package/src/__tests__/subagents.test.ts +0 -176
- package/src/__tests__/system-prompt.test.ts +0 -248
- package/src/__tests__/terminal-gap-v2.test.ts +0 -395
- package/src/__tests__/terminal-parity.test.ts +0 -393
- package/src/__tests__/tf-apply.test.ts +0 -187
- package/src/__tests__/tool-converter.test.ts +0 -256
- package/src/__tests__/tool-schemas.test.ts +0 -602
- package/src/__tests__/tools.test.ts +0 -144
- package/src/__tests__/version-json.test.ts +0 -184
- package/src/__tests__/version.test.ts +0 -49
- package/src/__tests__/watch.test.ts +0 -129
- package/src/agent/compaction-agent.ts +0 -266
- package/src/agent/context-manager.ts +0 -499
- package/src/agent/context.ts +0 -427
- package/src/agent/deploy-preview.ts +0 -487
- package/src/agent/expand-files.ts +0 -108
- package/src/agent/index.ts +0 -68
- package/src/agent/loop.ts +0 -1998
- package/src/agent/modes.ts +0 -429
- package/src/agent/permissions.ts +0 -513
- package/src/agent/subagents/base.ts +0 -116
- package/src/agent/subagents/cost.ts +0 -51
- package/src/agent/subagents/explore.ts +0 -42
- package/src/agent/subagents/general.ts +0 -54
- package/src/agent/subagents/index.ts +0 -102
- package/src/agent/subagents/infra.ts +0 -59
- package/src/agent/subagents/security.ts +0 -69
- package/src/agent/system-prompt.ts +0 -990
- package/src/app.ts +0 -180
- package/src/audit/activity-log.ts +0 -290
- package/src/audit/compliance-checker.ts +0 -540
- package/src/audit/cost-tracker.ts +0 -318
- package/src/audit/index.ts +0 -23
- package/src/audit/security-scanner.ts +0 -641
- package/src/auth/guard.ts +0 -75
- package/src/auth/index.ts +0 -56
- package/src/auth/keychain.ts +0 -82
- package/src/auth/oauth.ts +0 -465
- package/src/auth/providers.ts +0 -470
- package/src/auth/sso.ts +0 -113
- package/src/auth/store.ts +0 -505
- package/src/auth/types.ts +0 -187
- package/src/build.ts +0 -141
- package/src/cli/index.ts +0 -16
- package/src/cli/init.ts +0 -1227
- package/src/cli/openapi-spec.ts +0 -356
- package/src/cli/run.ts +0 -628
- package/src/cli/serve-auth.ts +0 -80
- package/src/cli/serve.ts +0 -539
- package/src/cli/web.ts +0 -71
- package/src/cli.ts +0 -1728
- package/src/clients/core-engine-client.ts +0 -227
- package/src/clients/enterprise-client.ts +0 -334
- package/src/clients/generator-client.ts +0 -351
- package/src/clients/git-client.ts +0 -627
- package/src/clients/github-client.ts +0 -410
- package/src/clients/helm-client.ts +0 -504
- package/src/clients/index.ts +0 -80
- package/src/clients/k8s-client.ts +0 -497
- package/src/clients/llm-client.ts +0 -161
- package/src/clients/rest-client.ts +0 -130
- package/src/clients/service-discovery.ts +0 -38
- package/src/clients/terraform-client.ts +0 -482
- package/src/clients/tools-client.ts +0 -1843
- package/src/clients/ws-client.ts +0 -115
- package/src/commands/alias.ts +0 -100
- package/src/commands/analyze/index.ts +0 -352
- package/src/commands/apply/helm.ts +0 -473
- package/src/commands/apply/index.ts +0 -213
- package/src/commands/apply/k8s.ts +0 -454
- package/src/commands/apply/terraform.ts +0 -582
- package/src/commands/ask.ts +0 -167
- package/src/commands/audit/index.ts +0 -357
- package/src/commands/auth-cloud.ts +0 -407
- package/src/commands/auth-list.ts +0 -134
- package/src/commands/auth-profile.ts +0 -121
- package/src/commands/auth-refresh.ts +0 -187
- package/src/commands/auth-status.ts +0 -141
- package/src/commands/aws/ec2.ts +0 -501
- package/src/commands/aws/iam.ts +0 -397
- package/src/commands/aws/index.ts +0 -133
- package/src/commands/aws/lambda.ts +0 -396
- package/src/commands/aws/rds.ts +0 -439
- package/src/commands/aws/s3.ts +0 -439
- package/src/commands/aws/vpc.ts +0 -393
- package/src/commands/aws-discover.ts +0 -542
- package/src/commands/aws-terraform.ts +0 -755
- package/src/commands/azure/aks.ts +0 -376
- package/src/commands/azure/functions.ts +0 -253
- package/src/commands/azure/index.ts +0 -116
- package/src/commands/azure/storage.ts +0 -478
- package/src/commands/azure/vm.ts +0 -355
- package/src/commands/billing/index.ts +0 -256
- package/src/commands/chat.ts +0 -320
- package/src/commands/completions.ts +0 -268
- package/src/commands/config.ts +0 -372
- package/src/commands/cost/cloud-cost-estimator.ts +0 -266
- package/src/commands/cost/estimator.ts +0 -79
- package/src/commands/cost/index.ts +0 -810
- package/src/commands/cost/parsers/terraform.ts +0 -273
- package/src/commands/cost/parsers/types.ts +0 -25
- package/src/commands/cost/pricing/aws.ts +0 -544
- package/src/commands/cost/pricing/azure.ts +0 -499
- package/src/commands/cost/pricing/gcp.ts +0 -396
- package/src/commands/cost/pricing/index.ts +0 -40
- package/src/commands/demo.ts +0 -250
- package/src/commands/deploy.ts +0 -260
- package/src/commands/doctor.ts +0 -1386
- package/src/commands/drift/index.ts +0 -787
- package/src/commands/explain.ts +0 -277
- package/src/commands/export.ts +0 -146
- package/src/commands/feedback.ts +0 -389
- package/src/commands/fix.ts +0 -324
- package/src/commands/fs/index.ts +0 -402
- package/src/commands/gcp/compute.ts +0 -325
- package/src/commands/gcp/functions.ts +0 -271
- package/src/commands/gcp/gke.ts +0 -438
- package/src/commands/gcp/iam.ts +0 -344
- package/src/commands/gcp/index.ts +0 -129
- package/src/commands/gcp/storage.ts +0 -284
- package/src/commands/generate-helm.ts +0 -1249
- package/src/commands/generate-k8s.ts +0 -1508
- package/src/commands/generate-terraform.ts +0 -1202
- package/src/commands/gh/index.ts +0 -863
- package/src/commands/git/index.ts +0 -1343
- package/src/commands/helm/index.ts +0 -1126
- package/src/commands/help.ts +0 -715
- package/src/commands/history.ts +0 -149
- package/src/commands/import.ts +0 -868
- package/src/commands/incident.ts +0 -166
- package/src/commands/index.ts +0 -367
- package/src/commands/init.ts +0 -1051
- package/src/commands/k8s/index.ts +0 -1137
- package/src/commands/login.ts +0 -716
- package/src/commands/logout.ts +0 -83
- package/src/commands/logs.ts +0 -167
- package/src/commands/onboarding.ts +0 -405
- package/src/commands/pipeline.ts +0 -186
- package/src/commands/plan/display.ts +0 -279
- package/src/commands/plan/index.ts +0 -599
- package/src/commands/plugin.ts +0 -398
- package/src/commands/preview.ts +0 -452
- package/src/commands/profile.ts +0 -342
- package/src/commands/questionnaire.ts +0 -1172
- package/src/commands/resume.ts +0 -47
- package/src/commands/rollback.ts +0 -315
- package/src/commands/rollout.ts +0 -88
- package/src/commands/runbook.ts +0 -346
- package/src/commands/schedule.ts +0 -236
- package/src/commands/status.ts +0 -252
- package/src/commands/team/index.ts +0 -346
- package/src/commands/team-context.ts +0 -220
- package/src/commands/template.ts +0 -233
- package/src/commands/tf/index.ts +0 -1093
- package/src/commands/upgrade.ts +0 -607
- package/src/commands/usage/index.ts +0 -134
- package/src/commands/version.ts +0 -174
- package/src/commands/watch.ts +0 -153
- package/src/compat/index.ts +0 -2
- package/src/compat/runtime.ts +0 -12
- package/src/compat/sqlite.ts +0 -177
- package/src/config/index.ts +0 -17
- package/src/config/manager.ts +0 -530
- package/src/config/mode-store.ts +0 -62
- package/src/config/profiles.ts +0 -84
- package/src/config/safety-policy.ts +0 -358
- package/src/config/schema.ts +0 -125
- package/src/config/types.ts +0 -609
- package/src/config/workspace-state.ts +0 -53
- package/src/context/context-db.ts +0 -199
- package/src/demo/index.ts +0 -349
- package/src/demo/scenarios/full-journey.ts +0 -229
- package/src/demo/scenarios/getting-started.ts +0 -127
- package/src/demo/scenarios/helm-release.ts +0 -341
- package/src/demo/scenarios/k8s-deployment.ts +0 -194
- package/src/demo/scenarios/terraform-vpc.ts +0 -170
- package/src/demo/types.ts +0 -92
- package/src/engine/cost-estimator.ts +0 -480
- package/src/engine/diagram-generator.ts +0 -256
- package/src/engine/drift-detector.ts +0 -902
- package/src/engine/executor.ts +0 -1066
- package/src/engine/index.ts +0 -76
- package/src/engine/orchestrator.ts +0 -636
- package/src/engine/planner.ts +0 -787
- package/src/engine/safety.ts +0 -743
- package/src/engine/verifier.ts +0 -770
- package/src/enterprise/audit.ts +0 -348
- package/src/enterprise/auth.ts +0 -270
- package/src/enterprise/billing.ts +0 -822
- package/src/enterprise/index.ts +0 -17
- package/src/enterprise/teams.ts +0 -443
- package/src/generator/best-practices.ts +0 -1608
- package/src/generator/helm.ts +0 -630
- package/src/generator/index.ts +0 -37
- package/src/generator/intent-parser.ts +0 -514
- package/src/generator/kubernetes.ts +0 -976
- package/src/generator/terraform.ts +0 -1875
- package/src/history/index.ts +0 -8
- package/src/history/manager.ts +0 -250
- package/src/history/types.ts +0 -34
- package/src/hooks/config.ts +0 -432
- package/src/hooks/engine.ts +0 -392
- package/src/hooks/index.ts +0 -4
- package/src/llm/auth-bridge.ts +0 -198
- package/src/llm/circuit-breaker.ts +0 -140
- package/src/llm/config-loader.ts +0 -201
- package/src/llm/cost-calculator.ts +0 -171
- package/src/llm/index.ts +0 -8
- package/src/llm/model-aliases.ts +0 -115
- package/src/llm/provider-registry.ts +0 -63
- package/src/llm/providers/anthropic.ts +0 -462
- package/src/llm/providers/bedrock.ts +0 -477
- package/src/llm/providers/google.ts +0 -405
- package/src/llm/providers/ollama.ts +0 -767
- package/src/llm/providers/openai-compatible.ts +0 -340
- package/src/llm/providers/openai.ts +0 -328
- package/src/llm/providers/openrouter.ts +0 -338
- package/src/llm/router.ts +0 -1104
- package/src/llm/types.ts +0 -232
- package/src/lsp/client.ts +0 -298
- package/src/lsp/languages.ts +0 -119
- package/src/lsp/manager.ts +0 -294
- package/src/mcp/client.ts +0 -402
- package/src/mcp/index.ts +0 -5
- package/src/mcp/manager.ts +0 -133
- package/src/nimbus.ts +0 -233
- package/src/plugins/index.ts +0 -27
- package/src/plugins/loader.ts +0 -334
- package/src/plugins/manager.ts +0 -376
- package/src/plugins/types.ts +0 -284
- package/src/scanners/cicd-scanner.ts +0 -258
- package/src/scanners/cloud-scanner.ts +0 -466
- package/src/scanners/framework-scanner.ts +0 -469
- package/src/scanners/iac-scanner.ts +0 -388
- package/src/scanners/index.ts +0 -539
- package/src/scanners/language-scanner.ts +0 -276
- package/src/scanners/package-manager-scanner.ts +0 -277
- package/src/scanners/types.ts +0 -172
- package/src/sessions/manager.ts +0 -472
- package/src/sessions/types.ts +0 -44
- package/src/sharing/sync.ts +0 -300
- package/src/sharing/viewer.ts +0 -163
- package/src/snapshots/index.ts +0 -2
- package/src/snapshots/manager.ts +0 -530
- package/src/state/artifacts.ts +0 -147
- package/src/state/audit.ts +0 -137
- package/src/state/billing.ts +0 -240
- package/src/state/checkpoints.ts +0 -117
- package/src/state/config.ts +0 -67
- package/src/state/conversations.ts +0 -14
- package/src/state/credentials.ts +0 -154
- package/src/state/db.ts +0 -58
- package/src/state/index.ts +0 -26
- package/src/state/messages.ts +0 -115
- package/src/state/projects.ts +0 -123
- package/src/state/schema.ts +0 -236
- package/src/state/sessions.ts +0 -147
- package/src/state/teams.ts +0 -200
- package/src/telemetry.ts +0 -108
- package/src/tools/aws-ops.ts +0 -952
- package/src/tools/azure-ops.ts +0 -579
- package/src/tools/file-ops.ts +0 -615
- package/src/tools/gcp-ops.ts +0 -625
- package/src/tools/git-ops.ts +0 -773
- package/src/tools/github-ops.ts +0 -799
- package/src/tools/helm-ops.ts +0 -943
- package/src/tools/index.ts +0 -17
- package/src/tools/k8s-ops.ts +0 -819
- package/src/tools/schemas/converter.ts +0 -184
- package/src/tools/schemas/devops.ts +0 -3502
- package/src/tools/schemas/index.ts +0 -73
- package/src/tools/schemas/standard.ts +0 -1148
- package/src/tools/schemas/types.ts +0 -735
- package/src/tools/spawn-exec.ts +0 -148
- package/src/tools/terraform-ops.ts +0 -862
- package/src/types/ambient.d.ts +0 -193
- package/src/types/config.ts +0 -83
- package/src/types/drift.ts +0 -116
- package/src/types/enterprise.ts +0 -335
- package/src/types/index.ts +0 -20
- package/src/types/plan.ts +0 -44
- package/src/types/request.ts +0 -65
- package/src/types/response.ts +0 -54
- package/src/types/service.ts +0 -51
- package/src/ui/App.tsx +0 -2114
- package/src/ui/DeployPreview.tsx +0 -174
- package/src/ui/FileDiffModal.tsx +0 -162
- package/src/ui/Header.tsx +0 -131
- package/src/ui/HelpModal.tsx +0 -57
- package/src/ui/InputBox.tsx +0 -503
- package/src/ui/MessageList.tsx +0 -1032
- package/src/ui/PermissionPrompt.tsx +0 -163
- package/src/ui/StatusBar.tsx +0 -277
- package/src/ui/TerminalPane.tsx +0 -84
- package/src/ui/ToolCallDisplay.tsx +0 -643
- package/src/ui/TreePane.tsx +0 -132
- package/src/ui/chat-ui.ts +0 -850
- package/src/ui/index.ts +0 -33
- package/src/ui/ink/index.ts +0 -1444
- package/src/ui/streaming.ts +0 -176
- package/src/ui/theme.ts +0 -104
- package/src/ui/types.ts +0 -75
- package/src/utils/analytics.ts +0 -72
- package/src/utils/cost-warning.ts +0 -27
- package/src/utils/env.ts +0 -46
- package/src/utils/errors.ts +0 -69
- package/src/utils/event-bus.ts +0 -38
- package/src/utils/index.ts +0 -24
- package/src/utils/logger.ts +0 -171
- package/src/utils/rate-limiter.ts +0 -121
- package/src/utils/service-auth.ts +0 -49
- package/src/utils/validation.ts +0 -53
- package/src/version.ts +0 -4
- package/src/watcher/index.ts +0 -214
- package/src/wizard/approval.ts +0 -383
- package/src/wizard/index.ts +0 -25
- package/src/wizard/prompts.ts +0 -338
- package/src/wizard/types.ts +0 -172
- package/src/wizard/ui.ts +0 -556
- package/src/wizard/wizard.ts +0 -304
- package/tsconfig.json +0 -24
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Kubernetes Deployment Demo Scenario
|
|
3
|
-
*
|
|
4
|
-
* Demonstrates deploying an application to Kubernetes
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { DemoScenario } from '../types';
|
|
8
|
-
|
|
9
|
-
export const k8sDeploymentScenario: DemoScenario = {
|
|
10
|
-
id: 'k8s-deployment',
|
|
11
|
-
name: 'Deploy to Kubernetes',
|
|
12
|
-
description: 'Learn how to generate and deploy Kubernetes manifests',
|
|
13
|
-
category: 'kubernetes',
|
|
14
|
-
duration: 10,
|
|
15
|
-
prerequisites: ['kubectl configured with cluster access', 'Nimbus CLI installed'],
|
|
16
|
-
tags: ['kubernetes', 'k8s', 'deployment', 'manifests'],
|
|
17
|
-
steps: [
|
|
18
|
-
{
|
|
19
|
-
id: 'check-cluster',
|
|
20
|
-
title: 'Verify Cluster Connection',
|
|
21
|
-
description: 'Check that kubectl can connect to your cluster',
|
|
22
|
-
command: 'nimbus k8s get nodes',
|
|
23
|
-
showOutput: true,
|
|
24
|
-
waitForInput: true,
|
|
25
|
-
mockResponse: `
|
|
26
|
-
NAME STATUS ROLES AGE VERSION
|
|
27
|
-
node-1 Ready control-plane 30d v1.28.0
|
|
28
|
-
node-2 Ready <none> 30d v1.28.0
|
|
29
|
-
node-3 Ready <none> 30d v1.28.0
|
|
30
|
-
`.trim(),
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id: 'generate-manifests',
|
|
34
|
-
title: 'Generate Kubernetes Manifests',
|
|
35
|
-
description: 'Use Nimbus to generate deployment manifests for an nginx application',
|
|
36
|
-
command:
|
|
37
|
-
'nimbus generate k8s --type deployment --image nginx:latest --replicas 3 --port 80 --output ./k8s-demo',
|
|
38
|
-
showOutput: true,
|
|
39
|
-
waitForInput: true,
|
|
40
|
-
mockResponse: `
|
|
41
|
-
Generating Kubernetes manifests...
|
|
42
|
-
|
|
43
|
-
Created files:
|
|
44
|
-
k8s-demo/
|
|
45
|
-
├── deployment.yaml # Deployment with 3 replicas
|
|
46
|
-
├── service.yaml # ClusterIP service on port 80
|
|
47
|
-
└── kustomization.yaml # Kustomize configuration
|
|
48
|
-
|
|
49
|
-
Configuration:
|
|
50
|
-
Image: nginx:latest
|
|
51
|
-
Replicas: 3
|
|
52
|
-
Port: 80
|
|
53
|
-
Service: ClusterIP
|
|
54
|
-
|
|
55
|
-
Generated successfully!
|
|
56
|
-
`.trim(),
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: 'review-deployment',
|
|
60
|
-
title: 'Review Deployment Manifest',
|
|
61
|
-
description: 'Examine the generated deployment configuration',
|
|
62
|
-
command: 'nimbus explain k8s k8s-demo/deployment.yaml',
|
|
63
|
-
showOutput: true,
|
|
64
|
-
waitForInput: true,
|
|
65
|
-
mockResponse: `
|
|
66
|
-
File: k8s-demo/deployment.yaml
|
|
67
|
-
|
|
68
|
-
This Kubernetes Deployment defines:
|
|
69
|
-
|
|
70
|
-
1. Metadata
|
|
71
|
-
- Name: nginx
|
|
72
|
-
- Labels: app=nginx
|
|
73
|
-
|
|
74
|
-
2. Pod Spec
|
|
75
|
-
- Replicas: 3
|
|
76
|
-
- Container: nginx:latest
|
|
77
|
-
- Port: 80 (HTTP)
|
|
78
|
-
|
|
79
|
-
3. Resource Limits
|
|
80
|
-
- CPU: 100m request, 500m limit
|
|
81
|
-
- Memory: 128Mi request, 256Mi limit
|
|
82
|
-
|
|
83
|
-
4. Health Checks
|
|
84
|
-
- Liveness probe: HTTP GET /
|
|
85
|
-
- Readiness probe: HTTP GET /
|
|
86
|
-
|
|
87
|
-
5. Update Strategy
|
|
88
|
-
- RollingUpdate
|
|
89
|
-
- maxUnavailable: 1
|
|
90
|
-
- maxSurge: 1
|
|
91
|
-
|
|
92
|
-
This is a production-ready deployment with proper
|
|
93
|
-
resource management and health monitoring.
|
|
94
|
-
`.trim(),
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
id: 'preview-apply',
|
|
98
|
-
title: 'Preview Apply (Dry Run)',
|
|
99
|
-
description: 'See what would be created without actually applying',
|
|
100
|
-
command: 'nimbus apply k8s --path ./k8s-demo --dry-run',
|
|
101
|
-
showOutput: true,
|
|
102
|
-
waitForInput: true,
|
|
103
|
-
mockResponse: `
|
|
104
|
-
Dry Run - Kubernetes Apply
|
|
105
|
-
|
|
106
|
-
Resources to create:
|
|
107
|
-
✓ deployment/nginx (3 replicas)
|
|
108
|
-
✓ service/nginx (ClusterIP:80)
|
|
109
|
-
|
|
110
|
-
Resource Summary:
|
|
111
|
-
Deployments: 1
|
|
112
|
-
Services: 1
|
|
113
|
-
ConfigMaps: 0
|
|
114
|
-
Secrets: 0
|
|
115
|
-
|
|
116
|
-
No changes will be applied (dry run mode)
|
|
117
|
-
`.trim(),
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
id: 'apply-manifests',
|
|
121
|
-
title: 'Apply to Cluster',
|
|
122
|
-
description: 'Deploy the application to your Kubernetes cluster',
|
|
123
|
-
command: 'nimbus apply k8s --path ./k8s-demo --namespace demo',
|
|
124
|
-
showOutput: true,
|
|
125
|
-
waitForInput: true,
|
|
126
|
-
mockResponse: `
|
|
127
|
-
Applying Kubernetes manifests...
|
|
128
|
-
|
|
129
|
-
namespace/demo created
|
|
130
|
-
deployment.apps/nginx created
|
|
131
|
-
service/nginx created
|
|
132
|
-
|
|
133
|
-
Waiting for deployment to be ready...
|
|
134
|
-
Replicas: 3/3 ready
|
|
135
|
-
Conditions: Available, Progressing
|
|
136
|
-
|
|
137
|
-
Deployment successful!
|
|
138
|
-
|
|
139
|
-
To access the application:
|
|
140
|
-
kubectl port-forward svc/nginx 8080:80 -n demo
|
|
141
|
-
Then visit: http://localhost:8080
|
|
142
|
-
`.trim(),
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
id: 'check-status',
|
|
146
|
-
title: 'Check Deployment Status',
|
|
147
|
-
description: 'Verify the deployment is running correctly',
|
|
148
|
-
command: 'nimbus k8s get pods --namespace demo',
|
|
149
|
-
showOutput: true,
|
|
150
|
-
waitForInput: true,
|
|
151
|
-
mockResponse: `
|
|
152
|
-
NAME READY STATUS RESTARTS AGE
|
|
153
|
-
nginx-5d4f8b7c9d-abc12 1/1 Running 0 30s
|
|
154
|
-
nginx-5d4f8b7c9d-def34 1/1 Running 0 30s
|
|
155
|
-
nginx-5d4f8b7c9d-ghi56 1/1 Running 0 30s
|
|
156
|
-
`.trim(),
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
id: 'scale-deployment',
|
|
160
|
-
title: 'Scale the Deployment',
|
|
161
|
-
description: 'Increase replicas to handle more traffic',
|
|
162
|
-
command: 'nimbus k8s scale deployment/nginx --replicas=5 --namespace demo',
|
|
163
|
-
showOutput: true,
|
|
164
|
-
waitForInput: true,
|
|
165
|
-
mockResponse: `
|
|
166
|
-
deployment.apps/nginx scaled
|
|
167
|
-
|
|
168
|
-
Scaling deployment from 3 to 5 replicas...
|
|
169
|
-
|
|
170
|
-
Current status:
|
|
171
|
-
Ready: 5/5 replicas
|
|
172
|
-
|
|
173
|
-
Scaling complete!
|
|
174
|
-
`.trim(),
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
id: 'cleanup',
|
|
178
|
-
title: 'Clean Up Resources',
|
|
179
|
-
description: 'Remove the demo deployment (optional)',
|
|
180
|
-
command: 'nimbus k8s delete --path ./k8s-demo --namespace demo',
|
|
181
|
-
showOutput: true,
|
|
182
|
-
waitForInput: false,
|
|
183
|
-
mockResponse: `
|
|
184
|
-
Deleting Kubernetes resources...
|
|
185
|
-
|
|
186
|
-
deployment.apps/nginx deleted
|
|
187
|
-
service/nginx deleted
|
|
188
|
-
namespace/demo deleted
|
|
189
|
-
|
|
190
|
-
Cleanup complete!
|
|
191
|
-
`.trim(),
|
|
192
|
-
},
|
|
193
|
-
],
|
|
194
|
-
};
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Terraform VPC Demo Scenario
|
|
3
|
-
*
|
|
4
|
-
* Demonstrates creating a VPC with Terraform
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { DemoScenario } from '../types';
|
|
8
|
-
|
|
9
|
-
export const terraformVpcScenario: DemoScenario = {
|
|
10
|
-
id: 'terraform-vpc',
|
|
11
|
-
name: 'Create AWS VPC with Terraform',
|
|
12
|
-
description: 'Deploy a complete VPC infrastructure using Nimbus and Terraform',
|
|
13
|
-
category: 'terraform',
|
|
14
|
-
duration: 10,
|
|
15
|
-
prerequisites: [
|
|
16
|
-
'AWS CLI configured with credentials',
|
|
17
|
-
'Terraform installed (v1.0+)',
|
|
18
|
-
'Nimbus CLI installed',
|
|
19
|
-
],
|
|
20
|
-
tags: ['terraform', 'aws', 'vpc', 'networking'],
|
|
21
|
-
steps: [
|
|
22
|
-
{
|
|
23
|
-
id: 'init-project',
|
|
24
|
-
title: 'Initialize Nimbus Project',
|
|
25
|
-
description: 'Scan the current directory and set up Nimbus configuration',
|
|
26
|
-
command: 'nimbus init',
|
|
27
|
-
showOutput: true,
|
|
28
|
-
waitForInput: true,
|
|
29
|
-
mockResponse: `
|
|
30
|
-
Nimbus Initialization
|
|
31
|
-
|
|
32
|
-
Scanning project...
|
|
33
|
-
|
|
34
|
-
Project Summary:
|
|
35
|
-
Type: infrastructure
|
|
36
|
-
Languages: HCL
|
|
37
|
-
IaC Tools: Terraform
|
|
38
|
-
Cloud: AWS
|
|
39
|
-
|
|
40
|
-
Created .nimbus/project.yaml
|
|
41
|
-
Created .nimbus/config.yaml
|
|
42
|
-
|
|
43
|
-
Project initialized successfully!
|
|
44
|
-
`.trim(),
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id: 'start-questionnaire',
|
|
48
|
-
title: 'Start Terraform Questionnaire',
|
|
49
|
-
description: 'Use the interactive wizard to configure VPC settings',
|
|
50
|
-
command: 'nimbus questionnaire terraform',
|
|
51
|
-
showOutput: true,
|
|
52
|
-
waitForInput: true,
|
|
53
|
-
mockResponse: `
|
|
54
|
-
Terraform Configuration Wizard
|
|
55
|
-
|
|
56
|
-
Starting local questionnaire...
|
|
57
|
-
|
|
58
|
-
Step 1/3: Provider Configuration
|
|
59
|
-
Provider: aws
|
|
60
|
-
Region: us-east-1
|
|
61
|
-
|
|
62
|
-
Step 2/3: Component Selection
|
|
63
|
-
Components: vpc
|
|
64
|
-
|
|
65
|
-
Step 3/3: VPC Configuration
|
|
66
|
-
CIDR Block: 10.0.0.0/16
|
|
67
|
-
Availability Zones: 3
|
|
68
|
-
|
|
69
|
-
Questionnaire completed!
|
|
70
|
-
Generating code...
|
|
71
|
-
|
|
72
|
-
Generated files:
|
|
73
|
-
● main.tf
|
|
74
|
-
● variables.tf
|
|
75
|
-
● outputs.tf
|
|
76
|
-
|
|
77
|
-
Output directory: ./terraform
|
|
78
|
-
`.trim(),
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
id: 'preview-plan',
|
|
82
|
-
title: 'Preview Terraform Plan',
|
|
83
|
-
description: 'See what changes will be made before applying',
|
|
84
|
-
command: 'nimbus preview terraform ./terraform',
|
|
85
|
-
showOutput: true,
|
|
86
|
-
waitForInput: true,
|
|
87
|
-
mockResponse: `
|
|
88
|
-
Preview Terraform Changes
|
|
89
|
-
|
|
90
|
-
Directory: ./terraform
|
|
91
|
-
|
|
92
|
-
Creating execution plan...
|
|
93
|
-
Plan created
|
|
94
|
-
|
|
95
|
-
Plan Summary:
|
|
96
|
-
|
|
97
|
-
+ 6 to add
|
|
98
|
-
~ 0 to change
|
|
99
|
-
- 0 to destroy
|
|
100
|
-
|
|
101
|
-
Safety Check Summary:
|
|
102
|
-
|
|
103
|
-
🟡 [MEDIUM] This operation will modify infrastructure
|
|
104
|
-
|
|
105
|
-
All safety checks passed
|
|
106
|
-
`.trim(),
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
id: 'apply-terraform',
|
|
110
|
-
title: 'Apply Terraform Configuration',
|
|
111
|
-
description: 'Deploy the VPC infrastructure with safety approval',
|
|
112
|
-
command: 'nimbus apply terraform ./terraform',
|
|
113
|
-
showOutput: true,
|
|
114
|
-
waitForInput: true,
|
|
115
|
-
mockResponse: `
|
|
116
|
-
Terraform Apply
|
|
117
|
-
|
|
118
|
-
Directory: ./terraform
|
|
119
|
-
|
|
120
|
-
Creating execution plan...
|
|
121
|
-
Plan created
|
|
122
|
-
|
|
123
|
-
Plan Summary:
|
|
124
|
-
+ 6 to add
|
|
125
|
-
|
|
126
|
-
╔══════════════════════════════════════════════════════════╗
|
|
127
|
-
║ APPROVAL REQUIRED ║
|
|
128
|
-
╠══════════════════════════════════════════════════════════╣
|
|
129
|
-
║ Operation: terraform apply ║
|
|
130
|
-
╚══════════════════════════════════════════════════════════╝
|
|
131
|
-
|
|
132
|
-
Identified Risks:
|
|
133
|
-
|
|
134
|
-
🟡 [MEDIUM] This operation will modify infrastructure
|
|
135
|
-
|
|
136
|
-
Do you want to proceed with this operation? Yes
|
|
137
|
-
|
|
138
|
-
Operation approved
|
|
139
|
-
|
|
140
|
-
Applying changes...
|
|
141
|
-
Apply complete!
|
|
142
|
-
|
|
143
|
-
Apply complete! Resources: 6 added, 0 changed, 0 destroyed.
|
|
144
|
-
|
|
145
|
-
Outputs:
|
|
146
|
-
vpc_id = "vpc-0abc123def456789"
|
|
147
|
-
private_subnets = ["subnet-001", "subnet-002", "subnet-003"]
|
|
148
|
-
public_subnets = ["subnet-101", "subnet-102", "subnet-103"]
|
|
149
|
-
`.trim(),
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
id: 'verify-vpc',
|
|
153
|
-
title: 'Verify VPC Creation',
|
|
154
|
-
description: 'List VPCs to confirm our new VPC was created',
|
|
155
|
-
command: 'nimbus aws vpc list',
|
|
156
|
-
showOutput: true,
|
|
157
|
-
waitForInput: false,
|
|
158
|
-
mockResponse: `
|
|
159
|
-
VPCs
|
|
160
|
-
|
|
161
|
-
Found 2 VPC(s)
|
|
162
|
-
|
|
163
|
-
VPC ID Name CIDR State Default
|
|
164
|
-
─────────────────────────────────────────────────────────────────────
|
|
165
|
-
vpc-default default 172.31.0.0/16 available Yes
|
|
166
|
-
vpc-0abc123def456789 my-project 10.0.0.0/16 available No
|
|
167
|
-
`.trim(),
|
|
168
|
-
},
|
|
169
|
-
],
|
|
170
|
-
};
|
package/src/demo/types.ts
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Demo Framework Types
|
|
3
|
-
*
|
|
4
|
-
* Type definitions for the demo scenarios framework
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* A single step in a demo scenario
|
|
9
|
-
*/
|
|
10
|
-
export interface DemoStep {
|
|
11
|
-
/** Unique identifier for this step */
|
|
12
|
-
id: string;
|
|
13
|
-
/** Title shown before executing */
|
|
14
|
-
title: string;
|
|
15
|
-
/** Description of what this step does */
|
|
16
|
-
description?: string;
|
|
17
|
-
/** Command to execute */
|
|
18
|
-
command: string;
|
|
19
|
-
/** Whether to wait for user input before proceeding */
|
|
20
|
-
waitForInput?: boolean;
|
|
21
|
-
/** Expected output pattern (regex) */
|
|
22
|
-
expectedOutput?: string;
|
|
23
|
-
/** Time to wait after step (ms) */
|
|
24
|
-
delay?: number;
|
|
25
|
-
/** Whether to show command output */
|
|
26
|
-
showOutput?: boolean;
|
|
27
|
-
/** Mock response for demo mode (when not actually executing) */
|
|
28
|
-
mockResponse?: string;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* A demo scenario containing multiple steps
|
|
33
|
-
*/
|
|
34
|
-
export interface DemoScenario {
|
|
35
|
-
/** Unique identifier */
|
|
36
|
-
id: string;
|
|
37
|
-
/** Display name */
|
|
38
|
-
name: string;
|
|
39
|
-
/** Short description */
|
|
40
|
-
description: string;
|
|
41
|
-
/** Category for grouping */
|
|
42
|
-
category: 'terraform' | 'kubernetes' | 'helm' | 'aws' | 'full-journey' | 'tutorial';
|
|
43
|
-
/** Ordered list of steps */
|
|
44
|
-
steps: DemoStep[];
|
|
45
|
-
/** Prerequisites (e.g., "aws cli installed") */
|
|
46
|
-
prerequisites?: string[];
|
|
47
|
-
/** Estimated duration in minutes */
|
|
48
|
-
duration?: number;
|
|
49
|
-
/** Tags for filtering */
|
|
50
|
-
tags?: string[];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Demo runner options
|
|
55
|
-
*/
|
|
56
|
-
export interface DemoOptions {
|
|
57
|
-
/** Scenario ID to run */
|
|
58
|
-
scenario?: string;
|
|
59
|
-
/** List available scenarios */
|
|
60
|
-
list?: boolean;
|
|
61
|
-
/** Interactive mode (prompt for each step) */
|
|
62
|
-
interactive?: boolean;
|
|
63
|
-
/** Speed: slow, normal, fast */
|
|
64
|
-
speed?: 'slow' | 'normal' | 'fast';
|
|
65
|
-
/** Dry run - don't execute commands */
|
|
66
|
-
dryRun?: boolean;
|
|
67
|
-
/** Show all output (verbose) */
|
|
68
|
-
verbose?: boolean;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Step execution result
|
|
73
|
-
*/
|
|
74
|
-
export interface StepResult {
|
|
75
|
-
step: DemoStep;
|
|
76
|
-
success: boolean;
|
|
77
|
-
output?: string;
|
|
78
|
-
error?: string;
|
|
79
|
-
duration: number;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Scenario execution result
|
|
84
|
-
*/
|
|
85
|
-
export interface ScenarioResult {
|
|
86
|
-
scenario: DemoScenario;
|
|
87
|
-
steps: StepResult[];
|
|
88
|
-
success: boolean;
|
|
89
|
-
totalDuration: number;
|
|
90
|
-
startedAt: Date;
|
|
91
|
-
completedAt: Date;
|
|
92
|
-
}
|