@opengeni/runtime 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.
Files changed (65) hide show
  1. package/dist/chunk-2PO56VAL.js +3478 -0
  2. package/dist/chunk-2PO56VAL.js.map +1 -0
  3. package/dist/index.d.ts +912 -0
  4. package/dist/index.js +3663 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/sandbox/index.d.ts +1738 -0
  7. package/dist/sandbox/index.js +187 -0
  8. package/dist/sandbox/index.js.map +1 -0
  9. package/package.json +49 -0
  10. package/src/bundled_hashicorp_terraform_skills/LICENSE +373 -0
  11. package/src/bundled_hashicorp_terraform_skills/README.md +18 -0
  12. package/src/bundled_hashicorp_terraform_skills/UPSTREAM_GIT_SHA +1 -0
  13. package/src/bundled_hashicorp_terraform_skills/azure-verified-modules/SKILL.md +613 -0
  14. package/src/bundled_hashicorp_terraform_skills/checkov/SKILL.md +43 -0
  15. package/src/bundled_hashicorp_terraform_skills/refactor-module/SKILL.md +538 -0
  16. package/src/bundled_hashicorp_terraform_skills/social-media-marketing/SKILL.md +35 -0
  17. package/src/bundled_hashicorp_terraform_skills/terraform-search-import/SKILL.md +372 -0
  18. package/src/bundled_hashicorp_terraform_skills/terraform-search-import/references/MANUAL-IMPORT.md +113 -0
  19. package/src/bundled_hashicorp_terraform_skills/terraform-search-import/scripts/list_resources.sh +38 -0
  20. package/src/bundled_hashicorp_terraform_skills/terraform-stacks/SKILL.md +480 -0
  21. package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/api-monitoring.md +543 -0
  22. package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/component-blocks.md +476 -0
  23. package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/deployment-blocks.md +391 -0
  24. package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/examples.md +1529 -0
  25. package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/linked-stacks.md +187 -0
  26. package/src/bundled_hashicorp_terraform_skills/terraform-stacks/references/troubleshooting.md +671 -0
  27. package/src/bundled_hashicorp_terraform_skills/terraform-style-guide/SKILL.md +353 -0
  28. package/src/bundled_hashicorp_terraform_skills/terraform-test/SKILL.md +451 -0
  29. package/src/bundled_hashicorp_terraform_skills/terraform-test/references/CI_CD.md +80 -0
  30. package/src/bundled_hashicorp_terraform_skills/terraform-test/references/EXAMPLES.md +314 -0
  31. package/src/bundled_hashicorp_terraform_skills/terraform-test/references/MOCK_PROVIDERS.md +171 -0
  32. package/src/codex-tool-search.ts +267 -0
  33. package/src/context-compaction.ts +538 -0
  34. package/src/history-sanitizer.ts +719 -0
  35. package/src/index.ts +3299 -0
  36. package/src/sandbox/capabilities.ts +69 -0
  37. package/src/sandbox/channel-a.ts +1031 -0
  38. package/src/sandbox/display-stack.ts +231 -0
  39. package/src/sandbox/errors.ts +34 -0
  40. package/src/sandbox/index.ts +832 -0
  41. package/src/sandbox/providers/blaxel.ts +35 -0
  42. package/src/sandbox/providers/cloudflare.ts +24 -0
  43. package/src/sandbox/providers/daytona.ts +34 -0
  44. package/src/sandbox/providers/docker.ts +17 -0
  45. package/src/sandbox/providers/e2b.ts +36 -0
  46. package/src/sandbox/providers/index.ts +107 -0
  47. package/src/sandbox/providers/local.ts +13 -0
  48. package/src/sandbox/providers/modal.ts +55 -0
  49. package/src/sandbox/providers/none.ts +13 -0
  50. package/src/sandbox/providers/runloop.ts +32 -0
  51. package/src/sandbox/providers/selfhosted.ts +96 -0
  52. package/src/sandbox/providers/types.ts +38 -0
  53. package/src/sandbox/providers/vercel.ts +29 -0
  54. package/src/sandbox/recording.ts +286 -0
  55. package/src/sandbox/routing/backend-resolver.ts +189 -0
  56. package/src/sandbox/routing/routing-session.ts +455 -0
  57. package/src/sandbox/select.ts +371 -0
  58. package/src/sandbox/selfhosted/capabilities.ts +255 -0
  59. package/src/sandbox/selfhosted/control-rpc.ts +351 -0
  60. package/src/sandbox/selfhosted/session.ts +930 -0
  61. package/src/sandbox/selfhosted/testing.ts +230 -0
  62. package/src/sandbox/stream-port.ts +185 -0
  63. package/src/sandbox/stream-token.ts +90 -0
  64. package/src/sandbox/terminal-server.ts +203 -0
  65. package/src/sandbox-computer.ts +835 -0
@@ -0,0 +1,476 @@
1
+ # Component Configuration Block Reference
2
+
3
+ Complete reference for all blocks available in Terraform Stack component configuration files (`.tfcomponent.hcl`).
4
+
5
+ ## Table of Contents
6
+
7
+ 1. [Variable Block](#variable-block)
8
+ 2. [Required Providers Block](#required-providers-block)
9
+ 3. [Provider Block](#provider-block)
10
+ 4. [Component Block](#component-block)
11
+ 5. [Output Block](#output-block)
12
+ 6. [Locals Block](#locals-block)
13
+ 7. [Removed Block](#removed-block)
14
+
15
+ ## Variable Block
16
+
17
+ Declares input variables for Stack configuration.
18
+
19
+ ### Syntax
20
+
21
+ ```hcl
22
+ variable "variable_name" {
23
+ type = <type>
24
+ description = "<description>"
25
+ default = <value>
26
+ sensitive = <bool>
27
+ nullable = <bool>
28
+ ephemeral = <bool>
29
+ }
30
+ ```
31
+
32
+ ### Arguments
33
+
34
+ - **type** (required): Data type (string, number, bool, list, map, object, set, tuple, any)
35
+ - **description** (optional): Variable description
36
+ - **default** (optional): Default value
37
+ - **sensitive** (optional, default false): Mark as sensitive to redact from logs
38
+ - **nullable** (optional, default true): Whether null is allowed
39
+ - **ephemeral** (optional, default false): Do not persist to state file
40
+
41
+ ### Differences from Traditional Terraform
42
+
43
+ - **type** is required (not optional)
44
+ - **validation** argument is not supported
45
+
46
+ ### Examples
47
+
48
+ ```hcl
49
+ variable "aws_region" {
50
+ type = string
51
+ description = "AWS region for infrastructure"
52
+ default = "us-west-1"
53
+ }
54
+
55
+ variable "identity_token" {
56
+ type = string
57
+ description = "OIDC identity token"
58
+ ephemeral = true
59
+ }
60
+
61
+ variable "subnet_config" {
62
+ type = object({
63
+ cidr_block = string
64
+ availability_zone = string
65
+ map_public_ip = bool
66
+ })
67
+ }
68
+ ```
69
+
70
+ For complete variable examples in context, see `examples.md`.
71
+
72
+ ## Required Providers Block
73
+
74
+ Declares provider dependencies.
75
+
76
+ ### Syntax
77
+
78
+ ```hcl
79
+ required_providers {
80
+ <provider_name> = {
81
+ source = "<source>"
82
+ version = "<version_constraint>"
83
+ }
84
+ }
85
+ ```
86
+
87
+ ### Arguments
88
+
89
+ - **source** (required): Provider source address (e.g., "hashicorp/aws")
90
+ - **version** (optional): Version constraint (e.g., "~> 5.0")
91
+
92
+ ### Examples
93
+
94
+ ```hcl
95
+ required_providers {
96
+ aws = {
97
+ source = "hashicorp/aws"
98
+ version = "~> 5.7.0"
99
+ }
100
+
101
+ random = {
102
+ source = "hashicorp/random"
103
+ version = "~> 3.5.0"
104
+ }
105
+
106
+ azurerm = {
107
+ source = "hashicorp/azurerm"
108
+ version = ">= 3.0"
109
+ }
110
+ }
111
+ ```
112
+
113
+ ## Provider Block
114
+
115
+ Configures provider instances.
116
+
117
+ ### Syntax
118
+
119
+ ```hcl
120
+ provider "<provider_type>" "<alias>" {
121
+ for_each = <map_or_set> # Optional
122
+
123
+ config {
124
+ <provider_arguments>
125
+ }
126
+ }
127
+ ```
128
+
129
+ ### Arguments
130
+
131
+ - **provider_type** (label 1, required): Provider type (e.g., "aws", "azurerm")
132
+ - **alias** (label 2, required): Unique identifier for this provider configuration
133
+ - **for_each** (optional): Create multiple provider instances from a map or set
134
+ - **config** (required): Nested block containing provider-specific configuration
135
+
136
+ ### Key Differences from Traditional Terraform
137
+
138
+ 1. Alias is defined in block header, not as an argument
139
+ 2. Configuration goes in a nested `config` block
140
+ 3. Supports `for_each` meta-argument
141
+ 4. Provider configurations are treated as first-class values
142
+
143
+ ### Example
144
+
145
+ ```hcl
146
+ provider "aws" "main" {
147
+ config {
148
+ region = var.aws_region
149
+
150
+ assume_role_with_web_identity {
151
+ role_arn = var.role_arn
152
+ web_identity_token = var.identity_token
153
+ }
154
+ }
155
+ }
156
+ ```
157
+
158
+ For complete provider examples including for_each and multi-cloud patterns, see `examples.md`.
159
+
160
+ ## Component Block
161
+
162
+ Defines infrastructure components to include in the Stack.
163
+
164
+ ### Syntax
165
+
166
+ ```hcl
167
+ component "<component_name>" {
168
+ for_each = <map_or_set> # Optional
169
+
170
+ source = "<module_source>"
171
+
172
+ inputs = {
173
+ <input_name> = <value>
174
+ }
175
+
176
+ providers = {
177
+ <provider_local_name> = provider.<type>.<alias>[<key>]
178
+ }
179
+ }
180
+ ```
181
+
182
+ ### Arguments
183
+
184
+ - **component_name** (label, required): Unique identifier for this component
185
+ - **for_each** (optional): Create multiple component instances
186
+ - **source** (required): Module source (see [Source Argument](#source-argument) below)
187
+ - **version** (optional): Version constraint for registry-based sources only
188
+ - **inputs** (required): Map of input variables for the module
189
+ - **providers** (required): Map of provider configurations
190
+
191
+ ### Source Argument
192
+
193
+ The `source` argument accepts the same module sources as traditional Terraform configurations.
194
+
195
+ **Local File Path:**
196
+ ```hcl
197
+ source = "./modules/vpc"
198
+ source = "../shared-modules/networking"
199
+ ```
200
+
201
+ **Public Terraform Registry:**
202
+ ```hcl
203
+ source = "terraform-aws-modules/vpc/aws"
204
+ source = "hashicorp/consul/aws"
205
+ ```
206
+ Format: `<NAMESPACE>/<NAME>/<PROVIDER>`
207
+
208
+ **Private HCP Terraform Registry:**
209
+ ```hcl
210
+ source = "app.terraform.io/my-org/vpc/aws"
211
+ source = "app.terraform.io/example-corp/networking/azurerm"
212
+ ```
213
+ Format: `<HOSTNAME>/<ORGANIZATION>/<MODULE_NAME>/<PROVIDER_NAME>`
214
+
215
+ - **HCP Terraform (SaaS)**: Use hostname `app.terraform.io`
216
+ - **Terraform Enterprise**: Use your instance hostname (e.g., `terraform.mycompany.com`)
217
+ - **Generic hostname**: Use `localterraform.com` for deployments spanning multiple Terraform Enterprise instances
218
+
219
+ **Git Repository:**
220
+ ```hcl
221
+ source = "git::https://github.com/org/repo.git//modules/vpc?ref=v1.0.0"
222
+ source = "git::ssh://git@github.com/org/repo.git//modules/vpc?ref=main"
223
+ ```
224
+
225
+ **HTTP/HTTPS Archive:**
226
+ ```hcl
227
+ source = "https://example.com/modules/vpc-module.tar.gz"
228
+ ```
229
+
230
+ ### Version Argument
231
+
232
+ The `version` argument is supported only for registry-based sources (public and private registries). Local file paths and Git sources do not support the `version` argument.
233
+
234
+ ```hcl
235
+ component "vpc" {
236
+ source = "app.terraform.io/my-org/vpc/aws"
237
+ version = "~> 2.0" # Semantic versioning constraint
238
+
239
+ inputs = {
240
+ cidr_block = var.vpc_cidr
241
+ }
242
+
243
+ providers = {
244
+ aws = provider.aws.main
245
+ }
246
+ }
247
+ ```
248
+
249
+ **Note**: Modules sourced from local file paths always share the same version as their caller and cannot have independent version constraints.
250
+
251
+ ### Component References
252
+
253
+ Access component outputs using: `component.<name>.<output>`
254
+
255
+ For components with `for_each`: `component.<name>[<key>].<output>`
256
+
257
+ ### Examples
258
+
259
+ **Basic Component:**
260
+
261
+ ```hcl
262
+ component "vpc" {
263
+ source = "app.terraform.io/my-org/vpc/aws"
264
+ version = "2.1.0"
265
+
266
+ inputs = {
267
+ cidr_block = var.vpc_cidr
268
+ name_prefix = var.name_prefix
269
+ }
270
+
271
+ providers = {
272
+ aws = provider.aws.main
273
+ }
274
+ }
275
+ ```
276
+
277
+ **Component with Dependencies:**
278
+
279
+ ```hcl
280
+ component "database" {
281
+ source = "./modules/rds"
282
+
283
+ inputs = {
284
+ vpc_id = component.vpc.vpc_id
285
+ subnet_ids = component.vpc.private_subnet_ids
286
+ security_group_ids = [component.security.database_sg_id]
287
+ engine_version = var.db_engine_version
288
+ }
289
+
290
+ providers = {
291
+ aws = provider.aws.main
292
+ }
293
+ }
294
+ ```
295
+
296
+ For complete component examples including for_each, multi-region, public registry, and multi-provider patterns, see `examples.md`.
297
+
298
+ ## Output Block
299
+
300
+ Exposes values from Stack configuration.
301
+
302
+ ### Syntax
303
+
304
+ ```hcl
305
+ output "<output_name>" {
306
+ type = <type>
307
+ description = "<description>"
308
+ value = <expression>
309
+ sensitive = <bool>
310
+ ephemeral = <bool>
311
+ }
312
+ ```
313
+
314
+ ### Arguments
315
+
316
+ - **output_name** (label, required): Unique identifier for this output
317
+ - **type** (required): Data type of the output
318
+ - **description** (optional): Output description
319
+ - **value** (required): Expression to output
320
+ - **sensitive** (optional, default false): Mark as sensitive
321
+ - **ephemeral** (optional, default false): Ephemeral value
322
+
323
+ ### Differences from Traditional Terraform
324
+
325
+ - **type** is required
326
+ - **precondition** block is not supported
327
+
328
+ ### Examples
329
+
330
+ ```hcl
331
+ output "vpc_id" {
332
+ type = string
333
+ description = "VPC ID"
334
+ value = component.vpc.vpc_id
335
+ }
336
+
337
+ output "instance_details" {
338
+ type = object({
339
+ id = string
340
+ public_ip = string
341
+ private_ip = string
342
+ })
343
+ description = "EC2 instance details"
344
+ value = {
345
+ id = component.compute.instance_id
346
+ public_ip = component.compute.public_ip
347
+ private_ip = component.compute.private_ip
348
+ }
349
+ }
350
+ ```
351
+
352
+ For complete output examples including sensitive outputs and for expressions, see `examples.md`.
353
+
354
+ ## Locals Block
355
+
356
+ Defines local values for reuse within the Stack configuration.
357
+
358
+ ### Syntax
359
+
360
+ ```hcl
361
+ locals {
362
+ <name> = <expression>
363
+ }
364
+ ```
365
+
366
+ ### Example
367
+
368
+ ```hcl
369
+ locals {
370
+ common_tags = {
371
+ Environment = var.environment
372
+ ManagedBy = "Terraform Stacks"
373
+ Project = var.project_name
374
+ }
375
+
376
+ name_prefix = "${var.project_name}-${var.environment}"
377
+
378
+ region_config = {
379
+ for region in var.regions : region => {
380
+ name_suffix = region
381
+ instance_count = var.environment == "prod" ? 3 : 1
382
+ }
383
+ }
384
+ }
385
+ ```
386
+
387
+ ## Removed Block
388
+
389
+ Declares components to be removed from the Stack.
390
+
391
+ ### Syntax
392
+
393
+ ```hcl
394
+ removed {
395
+ from = component.<component_name>
396
+ source = "<original_module_source>"
397
+
398
+ providers = {
399
+ <provider_name> = provider.<type>.<alias>
400
+ }
401
+ }
402
+ ```
403
+
404
+ ### Arguments
405
+
406
+ - **from** (required): Reference to the component being removed
407
+ - **source** (required): Original module source
408
+ - **providers** (required): Provider configurations needed for removal
409
+
410
+ ### Important Notes
411
+
412
+ - Required for safe component removal
413
+ - Must include all providers the component used
414
+ - Do not remove providers before removing components that use them
415
+
416
+ ### Examples
417
+
418
+ ```hcl
419
+ removed {
420
+ from = component.old_component
421
+ source = "./modules/deprecated-module"
422
+
423
+ providers = {
424
+ aws = provider.aws.main
425
+ }
426
+ }
427
+
428
+ removed {
429
+ from = component.legacy_regional
430
+ source = "registry.terraform.io/example/legacy/aws"
431
+
432
+ providers = {
433
+ aws = provider.aws.main
434
+ random = provider.random.main
435
+ }
436
+ }
437
+ ```
438
+
439
+ ## Provider References in Component Blocks
440
+
441
+ ### Single Provider
442
+
443
+ ```hcl
444
+ providers = {
445
+ aws = provider.aws.main
446
+ }
447
+ ```
448
+
449
+ ### Multiple Providers
450
+
451
+ ```hcl
452
+ providers = {
453
+ aws = provider.aws.main
454
+ random = provider.random.main
455
+ tls = provider.tls.main
456
+ }
457
+ ```
458
+
459
+ ### Provider from for_each
460
+
461
+ ```hcl
462
+ providers = {
463
+ aws = provider.aws.regional[each.value]
464
+ }
465
+ ```
466
+
467
+ ### Aliased Providers in Module
468
+
469
+ If module requires specific provider aliases:
470
+
471
+ ```hcl
472
+ providers = {
473
+ aws.source = provider.aws.us_east
474
+ aws.dest = provider.aws.eu_west
475
+ }
476
+ ```