@build-astron-co/nimbus 0.2.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/LICENSE +21 -0
- package/README.md +628 -0
- package/bin/nimbus +38 -0
- package/package.json +80 -0
- package/src/__tests__/app.test.ts +76 -0
- package/src/__tests__/audit.test.ts +877 -0
- package/src/__tests__/circuit-breaker.test.ts +116 -0
- package/src/__tests__/cli-run.test.ts +115 -0
- package/src/__tests__/context-manager.test.ts +502 -0
- package/src/__tests__/context.test.ts +242 -0
- package/src/__tests__/enterprise.test.ts +401 -0
- package/src/__tests__/generator.test.ts +433 -0
- package/src/__tests__/hooks.test.ts +582 -0
- package/src/__tests__/init.test.ts +436 -0
- package/src/__tests__/intent-parser.test.ts +229 -0
- package/src/__tests__/llm-router.test.ts +209 -0
- package/src/__tests__/lsp.test.ts +293 -0
- package/src/__tests__/modes.test.ts +336 -0
- package/src/__tests__/permissions.test.ts +338 -0
- package/src/__tests__/serve.test.ts +275 -0
- package/src/__tests__/sessions.test.ts +227 -0
- package/src/__tests__/sharing.test.ts +288 -0
- package/src/__tests__/snapshots.test.ts +581 -0
- package/src/__tests__/state-db.test.ts +334 -0
- package/src/__tests__/stream-with-tools.test.ts +732 -0
- package/src/__tests__/subagents.test.ts +176 -0
- package/src/__tests__/system-prompt.test.ts +169 -0
- package/src/__tests__/tool-converter.test.ts +256 -0
- package/src/__tests__/tool-schemas.test.ts +397 -0
- package/src/__tests__/tools.test.ts +143 -0
- package/src/__tests__/version.test.ts +49 -0
- package/src/agent/compaction-agent.ts +227 -0
- package/src/agent/context-manager.ts +435 -0
- package/src/agent/context.ts +427 -0
- package/src/agent/deploy-preview.ts +426 -0
- package/src/agent/index.ts +68 -0
- package/src/agent/loop.ts +717 -0
- package/src/agent/modes.ts +429 -0
- package/src/agent/permissions.ts +466 -0
- package/src/agent/subagents/base.ts +116 -0
- package/src/agent/subagents/cost.ts +51 -0
- package/src/agent/subagents/explore.ts +42 -0
- package/src/agent/subagents/general.ts +54 -0
- package/src/agent/subagents/index.ts +102 -0
- package/src/agent/subagents/infra.ts +59 -0
- package/src/agent/subagents/security.ts +69 -0
- package/src/agent/system-prompt.ts +436 -0
- package/src/app.ts +122 -0
- package/src/audit/activity-log.ts +290 -0
- package/src/audit/compliance-checker.ts +540 -0
- package/src/audit/cost-tracker.ts +318 -0
- package/src/audit/index.ts +23 -0
- package/src/audit/security-scanner.ts +596 -0
- package/src/auth/guard.ts +75 -0
- package/src/auth/index.ts +56 -0
- package/src/auth/oauth.ts +455 -0
- package/src/auth/providers.ts +470 -0
- package/src/auth/sso.ts +113 -0
- package/src/auth/store.ts +505 -0
- package/src/auth/types.ts +187 -0
- package/src/build.ts +141 -0
- package/src/cli/index.ts +16 -0
- package/src/cli/init.ts +854 -0
- package/src/cli/openapi-spec.ts +356 -0
- package/src/cli/run.ts +237 -0
- package/src/cli/serve-auth.ts +80 -0
- package/src/cli/serve.ts +462 -0
- package/src/cli/web.ts +67 -0
- package/src/cli.ts +1417 -0
- package/src/clients/core-engine-client.ts +227 -0
- package/src/clients/enterprise-client.ts +334 -0
- package/src/clients/generator-client.ts +351 -0
- package/src/clients/git-client.ts +627 -0
- package/src/clients/github-client.ts +410 -0
- package/src/clients/helm-client.ts +504 -0
- package/src/clients/index.ts +80 -0
- package/src/clients/k8s-client.ts +497 -0
- package/src/clients/llm-client.ts +161 -0
- package/src/clients/rest-client.ts +130 -0
- package/src/clients/service-discovery.ts +33 -0
- package/src/clients/terraform-client.ts +482 -0
- package/src/clients/tools-client.ts +1843 -0
- package/src/clients/ws-client.ts +115 -0
- package/src/commands/analyze/index.ts +352 -0
- package/src/commands/apply/helm.ts +473 -0
- package/src/commands/apply/index.ts +213 -0
- package/src/commands/apply/k8s.ts +454 -0
- package/src/commands/apply/terraform.ts +582 -0
- package/src/commands/ask.ts +167 -0
- package/src/commands/audit/index.ts +238 -0
- package/src/commands/auth-cloud.ts +294 -0
- package/src/commands/auth-list.ts +134 -0
- package/src/commands/auth-profile.ts +121 -0
- package/src/commands/auth-status.ts +141 -0
- package/src/commands/aws/ec2.ts +501 -0
- package/src/commands/aws/iam.ts +397 -0
- package/src/commands/aws/index.ts +133 -0
- package/src/commands/aws/lambda.ts +396 -0
- package/src/commands/aws/rds.ts +439 -0
- package/src/commands/aws/s3.ts +439 -0
- package/src/commands/aws/vpc.ts +393 -0
- package/src/commands/aws-discover.ts +649 -0
- package/src/commands/aws-terraform.ts +805 -0
- package/src/commands/azure/aks.ts +376 -0
- package/src/commands/azure/functions.ts +253 -0
- package/src/commands/azure/index.ts +116 -0
- package/src/commands/azure/storage.ts +478 -0
- package/src/commands/azure/vm.ts +355 -0
- package/src/commands/billing/index.ts +256 -0
- package/src/commands/chat.ts +314 -0
- package/src/commands/config.ts +346 -0
- package/src/commands/cost/cloud-cost-estimator.ts +266 -0
- package/src/commands/cost/estimator.ts +79 -0
- package/src/commands/cost/index.ts +594 -0
- package/src/commands/cost/parsers/terraform.ts +273 -0
- package/src/commands/cost/parsers/types.ts +25 -0
- package/src/commands/cost/pricing/aws.ts +544 -0
- package/src/commands/cost/pricing/azure.ts +499 -0
- package/src/commands/cost/pricing/gcp.ts +396 -0
- package/src/commands/cost/pricing/index.ts +40 -0
- package/src/commands/demo.ts +250 -0
- package/src/commands/doctor.ts +794 -0
- package/src/commands/drift/index.ts +439 -0
- package/src/commands/explain.ts +277 -0
- package/src/commands/feedback.ts +389 -0
- package/src/commands/fix.ts +324 -0
- package/src/commands/fs/index.ts +402 -0
- package/src/commands/gcp/compute.ts +325 -0
- package/src/commands/gcp/functions.ts +271 -0
- package/src/commands/gcp/gke.ts +438 -0
- package/src/commands/gcp/iam.ts +344 -0
- package/src/commands/gcp/index.ts +129 -0
- package/src/commands/gcp/storage.ts +284 -0
- package/src/commands/generate-helm.ts +1249 -0
- package/src/commands/generate-k8s.ts +1560 -0
- package/src/commands/generate-terraform.ts +1460 -0
- package/src/commands/gh/index.ts +863 -0
- package/src/commands/git/index.ts +1343 -0
- package/src/commands/helm/index.ts +1126 -0
- package/src/commands/help.ts +539 -0
- package/src/commands/history.ts +142 -0
- package/src/commands/import.ts +868 -0
- package/src/commands/index.ts +367 -0
- package/src/commands/init.ts +1046 -0
- package/src/commands/k8s/index.ts +1137 -0
- package/src/commands/login.ts +631 -0
- package/src/commands/logout.ts +83 -0
- package/src/commands/onboarding.ts +228 -0
- package/src/commands/plan/display.ts +279 -0
- package/src/commands/plan/index.ts +599 -0
- package/src/commands/preview.ts +452 -0
- package/src/commands/questionnaire.ts +1270 -0
- package/src/commands/resume.ts +55 -0
- package/src/commands/team/index.ts +346 -0
- package/src/commands/template.ts +232 -0
- package/src/commands/tf/index.ts +1034 -0
- package/src/commands/upgrade.ts +550 -0
- package/src/commands/usage/index.ts +134 -0
- package/src/commands/version.ts +170 -0
- package/src/compat/index.ts +2 -0
- package/src/compat/runtime.ts +12 -0
- package/src/compat/sqlite.ts +107 -0
- package/src/config/index.ts +17 -0
- package/src/config/manager.ts +530 -0
- package/src/config/safety-policy.ts +358 -0
- package/src/config/schema.ts +125 -0
- package/src/config/types.ts +527 -0
- package/src/context/context-db.ts +199 -0
- package/src/demo/index.ts +349 -0
- package/src/demo/scenarios/full-journey.ts +229 -0
- package/src/demo/scenarios/getting-started.ts +127 -0
- package/src/demo/scenarios/helm-release.ts +341 -0
- package/src/demo/scenarios/k8s-deployment.ts +194 -0
- package/src/demo/scenarios/terraform-vpc.ts +170 -0
- package/src/demo/types.ts +92 -0
- package/src/engine/cost-estimator.ts +438 -0
- package/src/engine/diagram-generator.ts +256 -0
- package/src/engine/drift-detector.ts +902 -0
- package/src/engine/executor.ts +1035 -0
- package/src/engine/index.ts +76 -0
- package/src/engine/orchestrator.ts +636 -0
- package/src/engine/planner.ts +720 -0
- package/src/engine/safety.ts +743 -0
- package/src/engine/verifier.ts +770 -0
- package/src/enterprise/audit.ts +348 -0
- package/src/enterprise/auth.ts +270 -0
- package/src/enterprise/billing.ts +822 -0
- package/src/enterprise/index.ts +17 -0
- package/src/enterprise/teams.ts +443 -0
- package/src/generator/best-practices.ts +1608 -0
- package/src/generator/helm.ts +630 -0
- package/src/generator/index.ts +37 -0
- package/src/generator/intent-parser.ts +514 -0
- package/src/generator/kubernetes.ts +976 -0
- package/src/generator/terraform.ts +1867 -0
- package/src/history/index.ts +8 -0
- package/src/history/manager.ts +322 -0
- package/src/history/types.ts +34 -0
- package/src/hooks/config.ts +432 -0
- package/src/hooks/engine.ts +391 -0
- package/src/hooks/index.ts +4 -0
- package/src/llm/auth-bridge.ts +198 -0
- package/src/llm/circuit-breaker.ts +140 -0
- package/src/llm/config-loader.ts +201 -0
- package/src/llm/cost-calculator.ts +171 -0
- package/src/llm/index.ts +8 -0
- package/src/llm/model-aliases.ts +115 -0
- package/src/llm/provider-registry.ts +63 -0
- package/src/llm/providers/anthropic.ts +433 -0
- package/src/llm/providers/bedrock.ts +477 -0
- package/src/llm/providers/google.ts +405 -0
- package/src/llm/providers/ollama.ts +767 -0
- package/src/llm/providers/openai-compatible.ts +340 -0
- package/src/llm/providers/openai.ts +328 -0
- package/src/llm/providers/openrouter.ts +338 -0
- package/src/llm/router.ts +1035 -0
- package/src/llm/types.ts +232 -0
- package/src/lsp/client.ts +298 -0
- package/src/lsp/languages.ts +116 -0
- package/src/lsp/manager.ts +278 -0
- package/src/mcp/client.ts +402 -0
- package/src/mcp/index.ts +5 -0
- package/src/mcp/manager.ts +133 -0
- package/src/nimbus.ts +214 -0
- package/src/plugins/index.ts +27 -0
- package/src/plugins/loader.ts +334 -0
- package/src/plugins/manager.ts +376 -0
- package/src/plugins/types.ts +284 -0
- package/src/scanners/cicd-scanner.ts +258 -0
- package/src/scanners/cloud-scanner.ts +466 -0
- package/src/scanners/framework-scanner.ts +469 -0
- package/src/scanners/iac-scanner.ts +388 -0
- package/src/scanners/index.ts +539 -0
- package/src/scanners/language-scanner.ts +276 -0
- package/src/scanners/package-manager-scanner.ts +277 -0
- package/src/scanners/types.ts +172 -0
- package/src/sessions/manager.ts +365 -0
- package/src/sessions/types.ts +44 -0
- package/src/sharing/sync.ts +296 -0
- package/src/sharing/viewer.ts +97 -0
- package/src/snapshots/index.ts +2 -0
- package/src/snapshots/manager.ts +530 -0
- package/src/state/artifacts.ts +147 -0
- package/src/state/audit.ts +137 -0
- package/src/state/billing.ts +240 -0
- package/src/state/checkpoints.ts +117 -0
- package/src/state/config.ts +67 -0
- package/src/state/conversations.ts +14 -0
- package/src/state/credentials.ts +154 -0
- package/src/state/db.ts +58 -0
- package/src/state/index.ts +26 -0
- package/src/state/messages.ts +115 -0
- package/src/state/projects.ts +123 -0
- package/src/state/schema.ts +236 -0
- package/src/state/sessions.ts +147 -0
- package/src/state/teams.ts +200 -0
- package/src/telemetry.ts +108 -0
- package/src/tools/aws-ops.ts +952 -0
- package/src/tools/azure-ops.ts +579 -0
- package/src/tools/file-ops.ts +593 -0
- package/src/tools/gcp-ops.ts +625 -0
- package/src/tools/git-ops.ts +773 -0
- package/src/tools/github-ops.ts +799 -0
- package/src/tools/helm-ops.ts +943 -0
- package/src/tools/index.ts +17 -0
- package/src/tools/k8s-ops.ts +819 -0
- package/src/tools/schemas/converter.ts +184 -0
- package/src/tools/schemas/devops.ts +612 -0
- package/src/tools/schemas/index.ts +73 -0
- package/src/tools/schemas/standard.ts +1144 -0
- package/src/tools/schemas/types.ts +705 -0
- package/src/tools/terraform-ops.ts +862 -0
- package/src/types/ambient.d.ts +193 -0
- package/src/types/config.ts +83 -0
- package/src/types/drift.ts +116 -0
- package/src/types/enterprise.ts +335 -0
- package/src/types/index.ts +20 -0
- package/src/types/plan.ts +44 -0
- package/src/types/request.ts +65 -0
- package/src/types/response.ts +54 -0
- package/src/types/service.ts +51 -0
- package/src/ui/App.tsx +997 -0
- package/src/ui/DeployPreview.tsx +169 -0
- package/src/ui/Header.tsx +68 -0
- package/src/ui/InputBox.tsx +350 -0
- package/src/ui/MessageList.tsx +585 -0
- package/src/ui/PermissionPrompt.tsx +151 -0
- package/src/ui/StatusBar.tsx +158 -0
- package/src/ui/ToolCallDisplay.tsx +409 -0
- package/src/ui/chat-ui.ts +853 -0
- package/src/ui/index.ts +33 -0
- package/src/ui/ink/index.ts +711 -0
- package/src/ui/streaming.ts +176 -0
- package/src/ui/types.ts +57 -0
- package/src/utils/analytics.ts +72 -0
- package/src/utils/cost-warning.ts +27 -0
- package/src/utils/env.ts +46 -0
- package/src/utils/errors.ts +69 -0
- package/src/utils/event-bus.ts +38 -0
- package/src/utils/index.ts +24 -0
- package/src/utils/logger.ts +171 -0
- package/src/utils/rate-limiter.ts +121 -0
- package/src/utils/service-auth.ts +49 -0
- package/src/utils/validation.ts +53 -0
- package/src/version.ts +4 -0
- package/src/watcher/index.ts +163 -0
- package/src/wizard/approval.ts +383 -0
- package/src/wizard/index.ts +25 -0
- package/src/wizard/prompts.ts +338 -0
- package/src/wizard/types.ts +171 -0
- package/src/wizard/ui.ts +556 -0
- package/src/wizard/wizard.ts +304 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ambient module declarations for optional cloud-provider SDKs and
|
|
3
|
+
* third-party libraries that are dynamically imported at runtime.
|
|
4
|
+
*
|
|
5
|
+
* These declarations prevent TS2307 "Cannot find module" errors when
|
|
6
|
+
* the packages are not installed as direct dependencies (they are
|
|
7
|
+
* loaded lazily only when the corresponding cloud provider is invoked).
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
// AWS SDK v3 clients
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
declare module '@aws-sdk/client-ec2' {
|
|
15
|
+
export class EC2Client { constructor(config?: any); send(command: any): Promise<any>; }
|
|
16
|
+
export class DescribeInstancesCommand { constructor(input?: any); }
|
|
17
|
+
export class DescribeVpcsCommand { constructor(input?: any); }
|
|
18
|
+
export class DescribeSubnetsCommand { constructor(input?: any); }
|
|
19
|
+
export class DescribeSecurityGroupsCommand { constructor(input?: any); }
|
|
20
|
+
export class DescribeVolumesCommand { constructor(input?: any); }
|
|
21
|
+
export class DescribeImagesCommand { constructor(input?: any); }
|
|
22
|
+
export class DescribeRegionsCommand { constructor(input?: any); }
|
|
23
|
+
export class DescribeAvailabilityZonesCommand { constructor(input?: any); }
|
|
24
|
+
export class DescribeRouteTablesCommand { constructor(input?: any); }
|
|
25
|
+
export class DescribeNetworkInterfacesCommand { constructor(input?: any); }
|
|
26
|
+
export class RunInstancesCommand { constructor(input?: any); }
|
|
27
|
+
export class StopInstancesCommand { constructor(input?: any); }
|
|
28
|
+
export class StartInstancesCommand { constructor(input?: any); }
|
|
29
|
+
export class TerminateInstancesCommand { constructor(input?: any); }
|
|
30
|
+
export class CreateVpcCommand { constructor(input?: any); }
|
|
31
|
+
export class CreateSubnetCommand { constructor(input?: any); }
|
|
32
|
+
export class CreateSecurityGroupCommand { constructor(input?: any); }
|
|
33
|
+
export class AuthorizeSecurityGroupIngressCommand { constructor(input?: any); }
|
|
34
|
+
export class RebootInstancesCommand { constructor(input?: any); }
|
|
35
|
+
export class DescribeInstanceStatusCommand { constructor(input?: any); }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
declare module '@aws-sdk/client-s3' {
|
|
39
|
+
export class S3Client { constructor(config?: any); send(command: any): Promise<any>; }
|
|
40
|
+
export class ListBucketsCommand { constructor(input?: any); }
|
|
41
|
+
export class ListObjectsV2Command { constructor(input?: any); }
|
|
42
|
+
export class GetObjectCommand { constructor(input?: any); }
|
|
43
|
+
export class PutObjectCommand { constructor(input?: any); }
|
|
44
|
+
export class DeleteObjectCommand { constructor(input?: any); }
|
|
45
|
+
export class CreateBucketCommand { constructor(input?: any); }
|
|
46
|
+
export class DeleteBucketCommand { constructor(input?: any); }
|
|
47
|
+
export class GetBucketPolicyCommand { constructor(input?: any); }
|
|
48
|
+
export class PutBucketPolicyCommand { constructor(input?: any); }
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
declare module '@aws-sdk/client-iam' {
|
|
52
|
+
export class IAMClient { constructor(config?: any); send(command: any): Promise<any>; }
|
|
53
|
+
export class ListUsersCommand { constructor(input?: any); }
|
|
54
|
+
export class ListRolesCommand { constructor(input?: any); }
|
|
55
|
+
export class ListPoliciesCommand { constructor(input?: any); }
|
|
56
|
+
export class ListGroupsCommand { constructor(input?: any); }
|
|
57
|
+
export class GetUserCommand { constructor(input?: any); }
|
|
58
|
+
export class GetRoleCommand { constructor(input?: any); }
|
|
59
|
+
export class CreateUserCommand { constructor(input?: any); }
|
|
60
|
+
export class CreateRoleCommand { constructor(input?: any); }
|
|
61
|
+
export class AttachRolePolicyCommand { constructor(input?: any); }
|
|
62
|
+
export class AttachUserPolicyCommand { constructor(input?: any); }
|
|
63
|
+
export class DetachRolePolicyCommand { constructor(input?: any); }
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// Azure SDK
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
|
|
70
|
+
declare module '@azure/identity' {
|
|
71
|
+
export class DefaultAzureCredential { constructor(options?: any); }
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
declare module '@azure/arm-compute' {
|
|
75
|
+
export class ComputeManagementClient {
|
|
76
|
+
constructor(credential: any, subscriptionId: string);
|
|
77
|
+
virtualMachines: any;
|
|
78
|
+
disks: any;
|
|
79
|
+
images: any;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
declare module '@azure/arm-storage' {
|
|
84
|
+
export class StorageManagementClient {
|
|
85
|
+
constructor(credential: any, subscriptionId: string);
|
|
86
|
+
storageAccounts: any;
|
|
87
|
+
blobContainers: any;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
declare module '@azure/arm-containerservice' {
|
|
92
|
+
export class ContainerServiceClient {
|
|
93
|
+
constructor(credential: any, subscriptionId: string);
|
|
94
|
+
managedClusters: any;
|
|
95
|
+
agentPools: any;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
declare module '@azure/arm-network' {
|
|
100
|
+
export class NetworkManagementClient {
|
|
101
|
+
constructor(credential: any, subscriptionId: string);
|
|
102
|
+
virtualNetworks: any;
|
|
103
|
+
subnets: any;
|
|
104
|
+
networkSecurityGroups: any;
|
|
105
|
+
publicIPAddresses: any;
|
|
106
|
+
loadBalancers: any;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
// Google Cloud SDK
|
|
112
|
+
// ---------------------------------------------------------------------------
|
|
113
|
+
|
|
114
|
+
declare module 'google-auth-library' {
|
|
115
|
+
export class GoogleAuth {
|
|
116
|
+
constructor(options?: any);
|
|
117
|
+
getClient(): Promise<any>;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
declare module '@google-cloud/compute' {
|
|
122
|
+
export class InstancesClient {
|
|
123
|
+
constructor(options?: any);
|
|
124
|
+
list(request?: any): any;
|
|
125
|
+
get(request?: any): any;
|
|
126
|
+
start(request?: any): any;
|
|
127
|
+
stop(request?: any): any;
|
|
128
|
+
aggregatedListAsync(request?: any): AsyncIterable<any>;
|
|
129
|
+
}
|
|
130
|
+
export class ZonesClient { constructor(options?: any); list(request?: any): any; }
|
|
131
|
+
export class ZoneOperationsClient { constructor(options?: any); wait(request?: any): any; }
|
|
132
|
+
export class RegionsClient { constructor(options?: any); list(request?: any): any; }
|
|
133
|
+
export class NetworksClient { constructor(options?: any); list(request?: any): any; get(request?: any): any; }
|
|
134
|
+
export class SubnetworksClient {
|
|
135
|
+
constructor(options?: any);
|
|
136
|
+
list(request?: any): any;
|
|
137
|
+
aggregatedListAsync(request?: any): AsyncIterable<any>;
|
|
138
|
+
}
|
|
139
|
+
export class FirewallsClient { constructor(options?: any); list(request?: any): any; }
|
|
140
|
+
export class DisksClient { constructor(options?: any); list(request?: any): any; }
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
declare module '@google-cloud/storage' {
|
|
144
|
+
export class Storage {
|
|
145
|
+
constructor(options?: any);
|
|
146
|
+
getBuckets(options?: any): Promise<any>;
|
|
147
|
+
bucket(name: string): any;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
declare module '@google-cloud/container' {
|
|
152
|
+
export class ClusterManagerClient {
|
|
153
|
+
constructor(options?: any);
|
|
154
|
+
listClusters(request?: any): Promise<any>;
|
|
155
|
+
getCluster(request?: any): Promise<any>;
|
|
156
|
+
listNodePools(request?: any): Promise<any>;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
declare module '@google-cloud/iam' {
|
|
161
|
+
export class IAMClient {
|
|
162
|
+
constructor(options?: any);
|
|
163
|
+
listServiceAccounts(request?: any): Promise<any>;
|
|
164
|
+
getIamPolicy(request?: any): Promise<any>;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
// GitHub
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
171
|
+
|
|
172
|
+
declare module '@octokit/rest' {
|
|
173
|
+
export class Octokit {
|
|
174
|
+
constructor(options?: any);
|
|
175
|
+
repos: any;
|
|
176
|
+
issues: any;
|
|
177
|
+
pulls: any;
|
|
178
|
+
actions: any;
|
|
179
|
+
git: any;
|
|
180
|
+
search: any;
|
|
181
|
+
users: any;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
// YAML
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
|
|
189
|
+
declare module 'js-yaml' {
|
|
190
|
+
export function load(str: string, opts?: any): any;
|
|
191
|
+
export function dump(obj: any, opts?: any): string;
|
|
192
|
+
export function loadAll(str: string, iterator?: (doc: any) => void, opts?: any): any[];
|
|
193
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nimbus Configuration
|
|
3
|
+
*/
|
|
4
|
+
export interface NimbusConfig {
|
|
5
|
+
version: number;
|
|
6
|
+
telemetry: boolean;
|
|
7
|
+
llm: LLMConfig;
|
|
8
|
+
persona: PersonaConfig;
|
|
9
|
+
safety: SafetyConfig;
|
|
10
|
+
cloud: CloudConfig;
|
|
11
|
+
terraform: TerraformConfig;
|
|
12
|
+
kubernetes: KubernetesConfig;
|
|
13
|
+
ui: UIConfig;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface LLMConfig {
|
|
17
|
+
defaultProvider: string;
|
|
18
|
+
defaultModel: string;
|
|
19
|
+
providers: Record<string, LLMProviderConfig>;
|
|
20
|
+
costOptimization?: CostOptimizationConfig;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface LLMProviderConfig {
|
|
24
|
+
apiKey?: string;
|
|
25
|
+
baseUrl?: string;
|
|
26
|
+
models: string[];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface CostOptimizationConfig {
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
useCheapModelFor?: string[];
|
|
32
|
+
useExpensiveModelFor?: string[];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface PersonaConfig {
|
|
36
|
+
mode: 'professional' | 'assistant' | 'expert';
|
|
37
|
+
verbosity: 'minimal' | 'normal' | 'detailed';
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface SafetyConfig {
|
|
41
|
+
dryRun: boolean;
|
|
42
|
+
requireConfirmation: boolean;
|
|
43
|
+
autoApprove: Record<string, boolean>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface CloudConfig {
|
|
47
|
+
defaultProvider: string;
|
|
48
|
+
aws?: AWSConfig;
|
|
49
|
+
gcp?: GCPConfig;
|
|
50
|
+
azure?: AzureConfig;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface AWSConfig {
|
|
54
|
+
defaultRegion: string;
|
|
55
|
+
defaultProfile: string;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export interface GCPConfig {
|
|
59
|
+
defaultProject: string;
|
|
60
|
+
defaultRegion: string;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface AzureConfig {
|
|
64
|
+
defaultSubscription: string;
|
|
65
|
+
defaultRegion: string;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface TerraformConfig {
|
|
69
|
+
defaultBackend: string;
|
|
70
|
+
stateBucket?: string;
|
|
71
|
+
lockTable?: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface KubernetesConfig {
|
|
75
|
+
defaultContext: string;
|
|
76
|
+
defaultNamespace: string;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface UIConfig {
|
|
80
|
+
theme: 'light' | 'dark';
|
|
81
|
+
colors: boolean;
|
|
82
|
+
spinner: string;
|
|
83
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drift Detection and Remediation Types
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// ==========================================
|
|
6
|
+
// Provider Types
|
|
7
|
+
// ==========================================
|
|
8
|
+
|
|
9
|
+
export type DriftProvider = 'terraform' | 'kubernetes' | 'helm';
|
|
10
|
+
|
|
11
|
+
// ==========================================
|
|
12
|
+
// Drift Detection Types
|
|
13
|
+
// ==========================================
|
|
14
|
+
|
|
15
|
+
export interface DriftChange {
|
|
16
|
+
attribute: string;
|
|
17
|
+
expected: unknown;
|
|
18
|
+
actual: unknown;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface ResourceDrift {
|
|
22
|
+
resourceId: string;
|
|
23
|
+
resourceType: string;
|
|
24
|
+
name?: string;
|
|
25
|
+
driftType: 'added' | 'removed' | 'modified';
|
|
26
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
27
|
+
changes: DriftChange[];
|
|
28
|
+
metadata?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface DriftSummary {
|
|
32
|
+
total: number;
|
|
33
|
+
added: number;
|
|
34
|
+
removed: number;
|
|
35
|
+
modified: number;
|
|
36
|
+
bySeverity: Record<string, number>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface DriftReport {
|
|
40
|
+
provider: DriftProvider;
|
|
41
|
+
directory: string;
|
|
42
|
+
detectedAt: string;
|
|
43
|
+
hasDrift: boolean;
|
|
44
|
+
summary: DriftSummary;
|
|
45
|
+
resources: ResourceDrift[];
|
|
46
|
+
metadata?: Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// ==========================================
|
|
50
|
+
// Remediation Types
|
|
51
|
+
// ==========================================
|
|
52
|
+
|
|
53
|
+
export type RemediationActionType = 'apply' | 'destroy' | 'import' | 'refresh' | 'manual';
|
|
54
|
+
export type RemediationActionStatus = 'pending' | 'applied' | 'failed' | 'skipped';
|
|
55
|
+
|
|
56
|
+
export interface RemediationAction {
|
|
57
|
+
id: string;
|
|
58
|
+
type: RemediationActionType;
|
|
59
|
+
resourceId: string;
|
|
60
|
+
description: string;
|
|
61
|
+
command?: string;
|
|
62
|
+
status: RemediationActionStatus;
|
|
63
|
+
error?: string;
|
|
64
|
+
startedAt?: string;
|
|
65
|
+
completedAt?: string;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface DriftRemediationOptions {
|
|
69
|
+
dryRun?: boolean;
|
|
70
|
+
autoApprove?: boolean;
|
|
71
|
+
excludeResources?: string[];
|
|
72
|
+
onlyResources?: string[];
|
|
73
|
+
force?: boolean;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface DriftRemediationResult {
|
|
77
|
+
success: boolean;
|
|
78
|
+
appliedCount: number;
|
|
79
|
+
failedCount: number;
|
|
80
|
+
skippedCount: number;
|
|
81
|
+
actions: RemediationAction[];
|
|
82
|
+
report?: string;
|
|
83
|
+
errors?: string[];
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// ==========================================
|
|
87
|
+
// Compliance Types
|
|
88
|
+
// ==========================================
|
|
89
|
+
|
|
90
|
+
export type ComplianceStandard = 'soc2' | 'hipaa' | 'pci' | 'gdpr' | 'cis';
|
|
91
|
+
|
|
92
|
+
export interface ComplianceRule {
|
|
93
|
+
id: string;
|
|
94
|
+
standard: ComplianceStandard;
|
|
95
|
+
title: string;
|
|
96
|
+
description: string;
|
|
97
|
+
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export interface ComplianceViolation {
|
|
101
|
+
rule: ComplianceRule;
|
|
102
|
+
resourceId: string;
|
|
103
|
+
resourceType: string;
|
|
104
|
+
details: string;
|
|
105
|
+
remediation?: string;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface ComplianceReport {
|
|
109
|
+
standard: ComplianceStandard;
|
|
110
|
+
generatedAt: string;
|
|
111
|
+
score: number;
|
|
112
|
+
maxScore: number;
|
|
113
|
+
violations: ComplianceViolation[];
|
|
114
|
+
passed: number;
|
|
115
|
+
failed: number;
|
|
116
|
+
}
|