hereya-cli 0.100.2 → 0.100.4

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/README.md CHANGED
@@ -21,7 +21,7 @@ $ npm install -g hereya-cli
21
21
  $ hereya COMMAND
22
22
  running command...
23
23
  $ hereya (--version)
24
- hereya-cli/0.100.2 linux-x64 node-v24.15.0
24
+ hereya-cli/0.100.4 linux-x64 node-v24.15.0
25
25
  $ hereya --help [COMMAND]
26
26
  USAGE
27
27
  $ hereya COMMAND
@@ -129,7 +129,7 @@ EXAMPLES
129
129
  $ hereya add cloudy/docker_postgres
130
130
  ```
131
131
 
132
- _See code: [src/commands/add/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/add/index.ts)_
132
+ _See code: [src/commands/add/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/add/index.ts)_
133
133
 
134
134
  ## `hereya app deploy NAME`
135
135
 
@@ -163,7 +163,7 @@ EXAMPLES
163
163
  $ hereya app deploy my-org/my-app -w prod -p organizationId=org-123
164
164
  ```
165
165
 
166
- _See code: [src/commands/app/deploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/app/deploy/index.ts)_
166
+ _See code: [src/commands/app/deploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/app/deploy/index.ts)_
167
167
 
168
168
  ## `hereya app deployments NAME`
169
169
 
@@ -183,7 +183,7 @@ EXAMPLES
183
183
  $ hereya app deployments my-org/my-app
184
184
  ```
185
185
 
186
- _See code: [src/commands/app/deployments/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/app/deployments/index.ts)_
186
+ _See code: [src/commands/app/deployments/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/app/deployments/index.ts)_
187
187
 
188
188
  ## `hereya app destroy NAME`
189
189
 
@@ -212,7 +212,7 @@ EXAMPLES
212
212
  $ hereya app destroy my-org/my-app -w my-workspace
213
213
  ```
214
214
 
215
- _See code: [src/commands/app/destroy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/app/destroy/index.ts)_
215
+ _See code: [src/commands/app/destroy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/app/destroy/index.ts)_
216
216
 
217
217
  ## `hereya app env NAME [KEY]`
218
218
 
@@ -238,7 +238,7 @@ EXAMPLES
238
238
  $ hereya app env my-org/my-app -w my-workspace DATABASE_URL
239
239
  ```
240
240
 
241
- _See code: [src/commands/app/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/app/env/index.ts)_
241
+ _See code: [src/commands/app/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/app/env/index.ts)_
242
242
 
243
243
  ## `hereya app list`
244
244
 
@@ -255,7 +255,7 @@ EXAMPLES
255
255
  $ hereya app list
256
256
  ```
257
257
 
258
- _See code: [src/commands/app/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/app/list/index.ts)_
258
+ _See code: [src/commands/app/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/app/list/index.ts)_
259
259
 
260
260
  ## `hereya app new DIRNAME`
261
261
 
@@ -281,7 +281,7 @@ EXAMPLES
281
281
  $ hereya app new ./my-app -n my-org/my-app --description "An ai-app-builder app"
282
282
  ```
283
283
 
284
- _See code: [src/commands/app/new/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/app/new/index.ts)_
284
+ _See code: [src/commands/app/new/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/app/new/index.ts)_
285
285
 
286
286
  ## `hereya app status NAME`
287
287
 
@@ -304,7 +304,7 @@ EXAMPLES
304
304
  $ hereya app status my-org/my-app -w my-workspace
305
305
  ```
306
306
 
307
- _See code: [src/commands/app/status/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/app/status/index.ts)_
307
+ _See code: [src/commands/app/status/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/app/status/index.ts)_
308
308
 
309
309
  ## `hereya bootstrap INFRASTRUCTURETYPE`
310
310
 
@@ -329,7 +329,7 @@ EXAMPLES
329
329
  $ hereya bootstrap local
330
330
  ```
331
331
 
332
- _See code: [src/commands/bootstrap/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/bootstrap/index.ts)_
332
+ _See code: [src/commands/bootstrap/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/bootstrap/index.ts)_
333
333
 
334
334
  ## `hereya clone PROJECT`
335
335
 
@@ -354,7 +354,7 @@ EXAMPLES
354
354
  $ hereya clone myProject --chdir=./myProject
355
355
  ```
356
356
 
357
- _See code: [src/commands/clone/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/clone/index.ts)_
357
+ _See code: [src/commands/clone/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/clone/index.ts)_
358
358
 
359
359
  ## `hereya config export-backend [FILE]`
360
360
 
@@ -376,7 +376,7 @@ EXAMPLES
376
376
  $ hereya config export-backend ./path/to/export.json
377
377
  ```
378
378
 
379
- _See code: [src/commands/config/export-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/config/export-backend/index.ts)_
379
+ _See code: [src/commands/config/export-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/config/export-backend/index.ts)_
380
380
 
381
381
  ## `hereya config get-backend`
382
382
 
@@ -393,7 +393,7 @@ EXAMPLES
393
393
  $ hereya config get-backend
394
394
  ```
395
395
 
396
- _See code: [src/commands/config/get-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/config/get-backend/index.ts)_
396
+ _See code: [src/commands/config/get-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/config/get-backend/index.ts)_
397
397
 
398
398
  ## `hereya config import-backend FILE`
399
399
 
@@ -413,7 +413,7 @@ EXAMPLES
413
413
  $ hereya config import-backend ./path/to/cloud-backend.json
414
414
  ```
415
415
 
416
- _See code: [src/commands/config/import-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/config/import-backend/index.ts)_
416
+ _See code: [src/commands/config/import-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/config/import-backend/index.ts)_
417
417
 
418
418
  ## `hereya config use-backend TYPE`
419
419
 
@@ -435,7 +435,7 @@ EXAMPLES
435
435
  $ hereya config use-backend local
436
436
  ```
437
437
 
438
- _See code: [src/commands/config/use-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/config/use-backend/index.ts)_
438
+ _See code: [src/commands/config/use-backend/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/config/use-backend/index.ts)_
439
439
 
440
440
  ## `hereya delete-state`
441
441
 
@@ -461,7 +461,7 @@ EXAMPLES
461
461
  $ hereya delete-state --workspace staging
462
462
  ```
463
463
 
464
- _See code: [src/commands/delete-state/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/delete-state/index.ts)_
464
+ _See code: [src/commands/delete-state/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/delete-state/index.ts)_
465
465
 
466
466
  ## `hereya deploy`
467
467
 
@@ -487,7 +487,7 @@ EXAMPLES
487
487
  $ hereya deploy
488
488
  ```
489
489
 
490
- _See code: [src/commands/deploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/deploy/index.ts)_
490
+ _See code: [src/commands/deploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/deploy/index.ts)_
491
491
 
492
492
  ## `hereya devenv config`
493
493
 
@@ -508,7 +508,7 @@ EXAMPLES
508
508
  $ hereya devenv config -w my-workspace
509
509
  ```
510
510
 
511
- _See code: [src/commands/devenv/config/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/devenv/config/index.ts)_
511
+ _See code: [src/commands/devenv/config/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/devenv/config/index.ts)_
512
512
 
513
513
  ## `hereya devenv install`
514
514
 
@@ -535,7 +535,7 @@ EXAMPLES
535
535
  $ hereya devenv install -w my-workspace -p instanceType=t3.large
536
536
  ```
537
537
 
538
- _See code: [src/commands/devenv/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/devenv/install/index.ts)_
538
+ _See code: [src/commands/devenv/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/devenv/install/index.ts)_
539
539
 
540
540
  ## `hereya devenv project init PROJECT`
541
541
 
@@ -567,7 +567,7 @@ EXAMPLES
567
567
  $ hereya devenv project init my-app -w my-workspace -t acme/node-starter -p region=us-east-1
568
568
  ```
569
569
 
570
- _See code: [src/commands/devenv/project/init/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/devenv/project/init/index.ts)_
570
+ _See code: [src/commands/devenv/project/init/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/devenv/project/init/index.ts)_
571
571
 
572
572
  ## `hereya devenv project uninit PROJECT`
573
573
 
@@ -593,7 +593,7 @@ EXAMPLES
593
593
  $ hereya devenv project uninit my-app -w my-workspace --force
594
594
  ```
595
595
 
596
- _See code: [src/commands/devenv/project/uninit/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/devenv/project/uninit/index.ts)_
596
+ _See code: [src/commands/devenv/project/uninit/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/devenv/project/uninit/index.ts)_
597
597
 
598
598
  ## `hereya devenv sleep`
599
599
 
@@ -614,7 +614,7 @@ EXAMPLES
614
614
  $ hereya devenv sleep -w my-workspace
615
615
  ```
616
616
 
617
- _See code: [src/commands/devenv/sleep/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/devenv/sleep/index.ts)_
617
+ _See code: [src/commands/devenv/sleep/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/devenv/sleep/index.ts)_
618
618
 
619
619
  ## `hereya devenv ssh`
620
620
 
@@ -634,7 +634,7 @@ EXAMPLES
634
634
  $ hereya devenv ssh -w my-workspace
635
635
  ```
636
636
 
637
- _See code: [src/commands/devenv/ssh/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/devenv/ssh/index.ts)_
637
+ _See code: [src/commands/devenv/ssh/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/devenv/ssh/index.ts)_
638
638
 
639
639
  ## `hereya devenv uninstall`
640
640
 
@@ -655,7 +655,7 @@ EXAMPLES
655
655
  $ hereya devenv uninstall -w my-workspace
656
656
  ```
657
657
 
658
- _See code: [src/commands/devenv/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/devenv/uninstall/index.ts)_
658
+ _See code: [src/commands/devenv/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/devenv/uninstall/index.ts)_
659
659
 
660
660
  ## `hereya doc PACKAGE`
661
661
 
@@ -688,7 +688,7 @@ EXAMPLES
688
688
  $ hereya doc my-package --no-doc
689
689
  ```
690
690
 
691
- _See code: [src/commands/doc/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/doc/index.ts)_
691
+ _See code: [src/commands/doc/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/doc/index.ts)_
692
692
 
693
693
  ## `hereya docker run IMAGE`
694
694
 
@@ -719,7 +719,7 @@ EXAMPLES
719
719
  $ hereya docker run myapp:latest -- --rm -v ./data:/data
720
720
  ```
721
721
 
722
- _See code: [src/commands/docker/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/docker/run/index.ts)_
722
+ _See code: [src/commands/docker/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/docker/run/index.ts)_
723
723
 
724
724
  ## `hereya down`
725
725
 
@@ -746,7 +746,7 @@ EXAMPLES
746
746
  $ hereya down
747
747
  ```
748
748
 
749
- _See code: [src/commands/down/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/down/index.ts)_
749
+ _See code: [src/commands/down/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/down/index.ts)_
750
750
 
751
751
  ## `hereya env [NAME]`
752
752
 
@@ -777,7 +777,7 @@ EXAMPLES
777
777
  $ hereya env -w dev -l
778
778
  ```
779
779
 
780
- _See code: [src/commands/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/env/index.ts)_
780
+ _See code: [src/commands/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/env/index.ts)_
781
781
 
782
782
  ## `hereya env set [NAME]`
783
783
 
@@ -804,7 +804,7 @@ EXAMPLES
804
804
  $ hereya env set FOO -v bar -w dev
805
805
  ```
806
806
 
807
- _See code: [src/commands/env/set/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/env/set/index.ts)_
807
+ _See code: [src/commands/env/set/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/env/set/index.ts)_
808
808
 
809
809
  ## `hereya executor start`
810
810
 
@@ -838,7 +838,7 @@ EXAMPLES
838
838
  HEREYA_TOKEN=<token> HEREYA_CLOUD_URL=https://my-cloud.example.com hereya executor start -w my-workspace
839
839
  ```
840
840
 
841
- _See code: [src/commands/executor/start/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/executor/start/index.ts)_
841
+ _See code: [src/commands/executor/start/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/executor/start/index.ts)_
842
842
 
843
843
  ## `hereya flow add PACKAGE`
844
844
 
@@ -876,7 +876,7 @@ EXAMPLES
876
876
  $ hereya flow add cloudy/docker_postgres -p DB_NAME=mydb -p DB_USER=admin
877
877
  ```
878
878
 
879
- _See code: [src/commands/flow/add/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/flow/add/index.ts)_
879
+ _See code: [src/commands/flow/add/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/flow/add/index.ts)_
880
880
 
881
881
  ## `hereya flow docker run IMAGE`
882
882
 
@@ -906,7 +906,7 @@ EXAMPLES
906
906
  $ hereya flow docker run --pin myapp:latest -- --rm
907
907
  ```
908
908
 
909
- _See code: [src/commands/flow/docker/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/flow/docker/run/index.ts)_
909
+ _See code: [src/commands/flow/docker/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/flow/docker/run/index.ts)_
910
910
 
911
911
  ## `hereya flow down`
912
912
 
@@ -940,7 +940,7 @@ EXAMPLES
940
940
  $ hereya flow down --pin
941
941
  ```
942
942
 
943
- _See code: [src/commands/flow/down/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/flow/down/index.ts)_
943
+ _See code: [src/commands/flow/down/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/flow/down/index.ts)_
944
944
 
945
945
  ## `hereya flow env [NAME]`
946
946
 
@@ -974,7 +974,7 @@ EXAMPLES
974
974
  $ hereya flow env -l
975
975
  ```
976
976
 
977
- _See code: [src/commands/flow/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/flow/env/index.ts)_
977
+ _See code: [src/commands/flow/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/flow/env/index.ts)_
978
978
 
979
979
  ## `hereya flow provid PACKAGE`
980
980
 
@@ -1003,7 +1003,7 @@ EXAMPLES
1003
1003
  $ hereya flow provid hereya/postgres --pin
1004
1004
  ```
1005
1005
 
1006
- _See code: [src/commands/flow/provid/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/flow/provid/index.ts)_
1006
+ _See code: [src/commands/flow/provid/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/flow/provid/index.ts)_
1007
1007
 
1008
1008
  ## `hereya flow remove PACKAGE`
1009
1009
 
@@ -1033,7 +1033,7 @@ EXAMPLES
1033
1033
  $ hereya flow remove cloudy/docker_postgres --profile staging
1034
1034
  ```
1035
1035
 
1036
- _See code: [src/commands/flow/remove/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/flow/remove/index.ts)_
1036
+ _See code: [src/commands/flow/remove/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/flow/remove/index.ts)_
1037
1037
 
1038
1038
  ## `hereya flow run CMD`
1039
1039
 
@@ -1062,7 +1062,7 @@ EXAMPLES
1062
1062
  $ hereya flow run --pin -- npm test
1063
1063
  ```
1064
1064
 
1065
- _See code: [src/commands/flow/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/flow/run/index.ts)_
1065
+ _See code: [src/commands/flow/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/flow/run/index.ts)_
1066
1066
 
1067
1067
  ## `hereya flow up`
1068
1068
 
@@ -1096,7 +1096,7 @@ EXAMPLES
1096
1096
  $ hereya flow up --pin
1097
1097
  ```
1098
1098
 
1099
- _See code: [src/commands/flow/up/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/flow/up/index.ts)_
1099
+ _See code: [src/commands/flow/up/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/flow/up/index.ts)_
1100
1100
 
1101
1101
  ## `hereya help [COMMAND]`
1102
1102
 
@@ -1153,7 +1153,7 @@ EXAMPLES
1153
1153
  $ hereya import org/my-package -f state.tfstate -w my-workspace
1154
1154
  ```
1155
1155
 
1156
- _See code: [src/commands/import/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/import/index.ts)_
1156
+ _See code: [src/commands/import/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/import/index.ts)_
1157
1157
 
1158
1158
  ## `hereya import-repo PROJECT`
1159
1159
 
@@ -1183,7 +1183,7 @@ EXAMPLES
1183
1183
  $ hereya import-repo myProject -w=dev -r=https://github.com/acme/api --clone --chdir=./api
1184
1184
  ```
1185
1185
 
1186
- _See code: [src/commands/import-repo/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/import-repo/index.ts)_
1186
+ _See code: [src/commands/import-repo/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/import-repo/index.ts)_
1187
1187
 
1188
1188
  ## `hereya init PROJECT`
1189
1189
 
@@ -1217,7 +1217,7 @@ EXAMPLES
1217
1217
  $ hereya init myProject -w=dev -t=acme/node-starter -d=prod -p region=us-east-1
1218
1218
  ```
1219
1219
 
1220
- _See code: [src/commands/init/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/init/index.ts)_
1220
+ _See code: [src/commands/init/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/init/index.ts)_
1221
1221
 
1222
1222
  ## `hereya list`
1223
1223
 
@@ -1234,7 +1234,7 @@ EXAMPLES
1234
1234
  $ hereya list
1235
1235
  ```
1236
1236
 
1237
- _See code: [src/commands/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/list/index.ts)_
1237
+ _See code: [src/commands/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/list/index.ts)_
1238
1238
 
1239
1239
  ## `hereya login [URL]`
1240
1240
 
@@ -1263,7 +1263,7 @@ EXAMPLES
1263
1263
  $ hereya login --token=your-token https://cloud.hereya.dev
1264
1264
  ```
1265
1265
 
1266
- _See code: [src/commands/login/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/login/index.ts)_
1266
+ _See code: [src/commands/login/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/login/index.ts)_
1267
1267
 
1268
1268
  ## `hereya logout`
1269
1269
 
@@ -1280,7 +1280,7 @@ EXAMPLES
1280
1280
  $ hereya logout
1281
1281
  ```
1282
1282
 
1283
- _See code: [src/commands/logout/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/logout/index.ts)_
1283
+ _See code: [src/commands/logout/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/logout/index.ts)_
1284
1284
 
1285
1285
  ## `hereya provid PACKAGE`
1286
1286
 
@@ -1308,7 +1308,7 @@ EXAMPLES
1308
1308
  $ hereya provid hereya/postgres --workspace staging
1309
1309
  ```
1310
1310
 
1311
- _See code: [src/commands/provid/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/provid/index.ts)_
1311
+ _See code: [src/commands/provid/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/provid/index.ts)_
1312
1312
 
1313
1313
  ## `hereya publish`
1314
1314
 
@@ -1331,7 +1331,7 @@ EXAMPLES
1331
1331
  $ hereya publish --chdir=/path/to/package
1332
1332
  ```
1333
1333
 
1334
- _See code: [src/commands/publish/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/publish/index.ts)_
1334
+ _See code: [src/commands/publish/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/publish/index.ts)_
1335
1335
 
1336
1336
  ## `hereya remove PACKAGE`
1337
1337
 
@@ -1359,7 +1359,7 @@ EXAMPLES
1359
1359
  $ hereya remove cloudy/docker_postgres
1360
1360
  ```
1361
1361
 
1362
- _See code: [src/commands/remove/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/remove/index.ts)_
1362
+ _See code: [src/commands/remove/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/remove/index.ts)_
1363
1363
 
1364
1364
  ## `hereya run CMD`
1365
1365
 
@@ -1385,7 +1385,7 @@ EXAMPLES
1385
1385
  $ hereya run -w uat -- node index.js
1386
1386
  ```
1387
1387
 
1388
- _See code: [src/commands/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/run/index.ts)_
1388
+ _See code: [src/commands/run/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/run/index.ts)_
1389
1389
 
1390
1390
  ## `hereya search QUERY`
1391
1391
 
@@ -1416,7 +1416,7 @@ EXAMPLES
1416
1416
  $ hereya search database --json
1417
1417
  ```
1418
1418
 
1419
- _See code: [src/commands/search/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/search/index.ts)_
1419
+ _See code: [src/commands/search/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/search/index.ts)_
1420
1420
 
1421
1421
  ## `hereya unbootstrap INFRASTRUCTURETYPE`
1422
1422
 
@@ -1441,7 +1441,7 @@ EXAMPLES
1441
1441
  $ hereya unbootstrap local
1442
1442
  ```
1443
1443
 
1444
- _See code: [src/commands/unbootstrap/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/unbootstrap/index.ts)_
1444
+ _See code: [src/commands/unbootstrap/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/unbootstrap/index.ts)_
1445
1445
 
1446
1446
  ## `hereya undeploy`
1447
1447
 
@@ -1467,7 +1467,7 @@ EXAMPLES
1467
1467
  $ hereya undeploy
1468
1468
  ```
1469
1469
 
1470
- _See code: [src/commands/undeploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/undeploy/index.ts)_
1470
+ _See code: [src/commands/undeploy/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/undeploy/index.ts)_
1471
1471
 
1472
1472
  ## `hereya uninit PROJECT`
1473
1473
 
@@ -1495,7 +1495,7 @@ EXAMPLES
1495
1495
  $ hereya uninit myProject -w dev -p prodWorkspace=prod
1496
1496
  ```
1497
1497
 
1498
- _See code: [src/commands/uninit/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/uninit/index.ts)_
1498
+ _See code: [src/commands/uninit/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/uninit/index.ts)_
1499
1499
 
1500
1500
  ## `hereya up`
1501
1501
 
@@ -1522,7 +1522,7 @@ EXAMPLES
1522
1522
  $ hereya up
1523
1523
  ```
1524
1524
 
1525
- _See code: [src/commands/up/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/up/index.ts)_
1525
+ _See code: [src/commands/up/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/up/index.ts)_
1526
1526
 
1527
1527
  ## `hereya update [VERSION]`
1528
1528
 
@@ -1544,7 +1544,7 @@ EXAMPLES
1544
1544
  $ hereya update 0.75.0
1545
1545
  ```
1546
1546
 
1547
- _See code: [src/commands/update/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/update/index.ts)_
1547
+ _See code: [src/commands/update/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/update/index.ts)_
1548
1548
 
1549
1549
  ## `hereya workspace create NAME`
1550
1550
 
@@ -1569,7 +1569,7 @@ EXAMPLES
1569
1569
  $ hereya workspace create dev
1570
1570
  ```
1571
1571
 
1572
- _See code: [src/commands/workspace/create/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/create/index.ts)_
1572
+ _See code: [src/commands/workspace/create/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/create/index.ts)_
1573
1573
 
1574
1574
  ## `hereya workspace delete NAME`
1575
1575
 
@@ -1589,7 +1589,7 @@ EXAMPLES
1589
1589
  $ hereya workspace delete dev
1590
1590
  ```
1591
1591
 
1592
- _See code: [src/commands/workspace/delete/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/delete/index.ts)_
1592
+ _See code: [src/commands/workspace/delete/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/delete/index.ts)_
1593
1593
 
1594
1594
  ## `hereya workspace env [NAME]`
1595
1595
 
@@ -1615,7 +1615,7 @@ EXAMPLES
1615
1615
  $ hereya workspace env myEnv -w dev
1616
1616
  ```
1617
1617
 
1618
- _See code: [src/commands/workspace/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/env/index.ts)_
1618
+ _See code: [src/commands/workspace/env/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/env/index.ts)_
1619
1619
 
1620
1620
  ## `hereya workspace env set`
1621
1621
 
@@ -1639,7 +1639,7 @@ EXAMPLES
1639
1639
  $ hereya workspace env set -w my-workspace -n myVar -v my-value -i aws -s
1640
1640
  ```
1641
1641
 
1642
- _See code: [src/commands/workspace/env/set/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/env/set/index.ts)_
1642
+ _See code: [src/commands/workspace/env/set/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/env/set/index.ts)_
1643
1643
 
1644
1644
  ## `hereya workspace env unset`
1645
1645
 
@@ -1660,7 +1660,7 @@ EXAMPLES
1660
1660
  $ hereya workspace env unset -w my-workspace -n myVar
1661
1661
  ```
1662
1662
 
1663
- _See code: [src/commands/workspace/env/unset/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/env/unset/index.ts)_
1663
+ _See code: [src/commands/workspace/env/unset/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/env/unset/index.ts)_
1664
1664
 
1665
1665
  ## `hereya workspace executor install`
1666
1666
 
@@ -1689,7 +1689,7 @@ DESCRIPTION
1689
1689
  - always-on: a long-lived EC2 polls hereya-cloud 24/7 (legacy).
1690
1690
  ```
1691
1691
 
1692
- _See code: [src/commands/workspace/executor/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/executor/install/index.ts)_
1692
+ _See code: [src/commands/workspace/executor/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/executor/install/index.ts)_
1693
1693
 
1694
1694
  ## `hereya workspace executor token`
1695
1695
 
@@ -1706,7 +1706,7 @@ DESCRIPTION
1706
1706
  Generate a workspace-scoped executor token for the remote executor
1707
1707
  ```
1708
1708
 
1709
- _See code: [src/commands/workspace/executor/token/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/executor/token/index.ts)_
1709
+ _See code: [src/commands/workspace/executor/token/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/executor/token/index.ts)_
1710
1710
 
1711
1711
  ## `hereya workspace executor uninstall`
1712
1712
 
@@ -1730,7 +1730,7 @@ DESCRIPTION
1730
1730
  controls log output.
1731
1731
  ```
1732
1732
 
1733
- _See code: [src/commands/workspace/executor/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/executor/uninstall/index.ts)_
1733
+ _See code: [src/commands/workspace/executor/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/executor/uninstall/index.ts)_
1734
1734
 
1735
1735
  ## `hereya workspace install PACKAGE`
1736
1736
 
@@ -1757,7 +1757,7 @@ EXAMPLES
1757
1757
  $ hereya workspace install hereya/aws-cognito
1758
1758
  ```
1759
1759
 
1760
- _See code: [src/commands/workspace/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/install/index.ts)_
1760
+ _See code: [src/commands/workspace/install/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/install/index.ts)_
1761
1761
 
1762
1762
  ## `hereya workspace list`
1763
1763
 
@@ -1781,7 +1781,7 @@ EXAMPLES
1781
1781
  $ hereya workspace list --org personal
1782
1782
  ```
1783
1783
 
1784
- _See code: [src/commands/workspace/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/list/index.ts)_
1784
+ _See code: [src/commands/workspace/list/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/list/index.ts)_
1785
1785
 
1786
1786
  ## `hereya workspace set-profile PROFILE`
1787
1787
 
@@ -1805,7 +1805,7 @@ EXAMPLES
1805
1805
  $ hereya workspace set-profile prod-profile -w production
1806
1806
  ```
1807
1807
 
1808
- _See code: [src/commands/workspace/set-profile/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/set-profile/index.ts)_
1808
+ _See code: [src/commands/workspace/set-profile/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/set-profile/index.ts)_
1809
1809
 
1810
1810
  ## `hereya workspace uninstall PACKAGE`
1811
1811
 
@@ -1832,5 +1832,5 @@ EXAMPLES
1832
1832
  $ hereya workspace uninstall hereya/aws-cognito
1833
1833
  ```
1834
1834
 
1835
- _See code: [src/commands/workspace/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.2/src/commands/workspace/uninstall/index.ts)_
1835
+ _See code: [src/commands/workspace/uninstall/index.ts](https://github.com/hereya/hereya-cli/blob/v0.100.4/src/commands/workspace/uninstall/index.ts)_
1836
1836
  <!-- commandsstop -->
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+ // MUST stay ES5-compatible. This file is required from bin/run.cjs and
3
+ // bin/dev.cjs, which run on whatever Node version users happen to have
4
+ // on $PATH. Do not use let/const/arrow/import/await/etc.
5
+ /* eslint-disable no-undef, no-var, unicorn/prefer-number-properties, perfectionist/sort-objects, object-shorthand */
6
+
7
+ function parseMajor(version) {
8
+ if (typeof version !== 'string') return 0;
9
+ var match = /^(\d+)/.exec(version);
10
+ return match ? parseInt(match[1], 10) : 0;
11
+ }
12
+
13
+ function checkNodeVersion(currentVersion, requiredMajor) {
14
+ var actualMajor = parseMajor(currentVersion);
15
+ return { ok: actualMajor >= requiredMajor, actualMajor: actualMajor };
16
+ }
17
+
18
+ function formatError(currentVersion, requiredMajor, execPath) {
19
+ return (
20
+ 'hereya-cli requires Node.js >= ' + requiredMajor +
21
+ ' (current: ' + currentVersion + ' at ' + execPath + ').\n' +
22
+ 'Tip: ensure a modern Node is first on your $PATH, or uninstall ' +
23
+ 'leftover nvm/Volta versions.\n'
24
+ );
25
+ }
26
+
27
+ module.exports = {
28
+ checkNodeVersion: checkNodeVersion,
29
+ formatError: formatError,
30
+ parseMajor: parseMajor,
31
+ REQUIRED_NODE_MAJOR: 20,
32
+ };
package/bin/dev.cjs ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ // MUST stay ES5-compatible (see bin/check-node.cjs).
3
+ 'use strict';
4
+ /* eslint-disable no-undef, no-var, @typescript-eslint/no-require-imports, n/no-process-exit, prefer-destructuring, unicorn/prefer-spread, no-eq-null, eqeqeq, @stylistic/padding-line-between-statements, prefer-arrow-callback */
5
+ var check = require('./check-node.cjs');
6
+ var result = check.checkNodeVersion(process.versions.node, check.REQUIRED_NODE_MAJOR);
7
+ if (!result.ok) {
8
+ process.stderr.write(check.formatError(process.versions.node, check.REQUIRED_NODE_MAJOR, process.execPath));
9
+ process.exit(1);
10
+ }
11
+ var path = require('node:path');
12
+ var spawn = require('node:child_process').spawn;
13
+ var impl = path.join(__dirname, 'dev-impl.mjs');
14
+ var child = spawn(
15
+ process.execPath,
16
+ ['--loader', 'ts-node/esm', '--no-warnings=ExperimentalWarning', impl].concat(process.argv.slice(2)),
17
+ { stdio: 'inherit' }
18
+ );
19
+ child.on('exit', function (code, signal) {
20
+ if (signal) { process.kill(process.pid, signal); return; }
21
+ process.exit(code == null ? 1 : code);
22
+ });
package/bin/dev.cmd CHANGED
@@ -1,3 +1,3 @@
1
1
  @echo off
2
2
 
3
- node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %*
3
+ node "%~dp0\dev.cjs" %*
package/bin/run.cjs ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ // MUST stay ES5-compatible (see bin/check-node.cjs).
3
+ 'use strict';
4
+ /* eslint-disable no-undef, no-var, @typescript-eslint/no-require-imports, n/no-process-exit, unicorn/catch-error-name, @stylistic/padding-line-between-statements, prefer-arrow-callback */
5
+ var check = require('./check-node.cjs');
6
+ var result = check.checkNodeVersion(process.versions.node, check.REQUIRED_NODE_MAJOR);
7
+ if (!result.ok) {
8
+ process.stderr.write(check.formatError(process.versions.node, check.REQUIRED_NODE_MAJOR, process.execPath));
9
+ process.exit(1);
10
+ }
11
+ import('./run.mjs').catch(function (err) {
12
+ process.stderr.write('hereya-cli failed to start: ' + (err && err.stack || err) + '\n');
13
+ process.exit(1);
14
+ });
package/bin/run.cmd CHANGED
@@ -1,3 +1,3 @@
1
1
  @echo off
2
2
 
3
- node "%~dp0\run" %*
3
+ node "%~dp0\run.cjs" %*
@@ -4,6 +4,7 @@ import os from 'node:os';
4
4
  import path from 'node:path';
5
5
  import { getBackend } from '../../../backend/index.js';
6
6
  import { getExecutorForWorkspace } from '../../../executor/context.js';
7
+ import { buildHereyaShellCommand } from '../../../lib/shell.js';
7
8
  import { setKeyFilePermissions, setSshDirPermissions } from '../../../lib/ssh-utils.js';
8
9
  export function buildSshConfigBlock(options) {
9
10
  const { host, hostAlias, keyFilePath, proxyCommand, sshUser } = options;
@@ -127,7 +128,7 @@ export default class DevenvConfig extends Command {
127
128
  host: hostAlias,
128
129
  hostAlias,
129
130
  keyFilePath,
130
- proxyCommand: `${resolveHereyaBinForProxyCommand()} devenv ssh-proxy -w ${workspace}`,
131
+ proxyCommand: buildHereyaShellCommand(resolveHereyaBinForProxyCommand(), ['devenv', 'ssh-proxy', '-w', workspace]),
131
132
  sshUser,
132
133
  })
133
134
  : buildSshConfigBlock({
@@ -138,6 +139,7 @@ export default class DevenvConfig extends Command {
138
139
  });
139
140
  const updatedConfig = upsertSshConfigBlock(existingConfig, block, hostAlias);
140
141
  await fs.writeFile(sshConfigPath, updatedConfig, { mode: 0o600 });
142
+ await setKeyFilePermissions(sshConfigPath);
141
143
  this.log('SSH connection configured successfully.');
142
144
  this.log('');
143
145
  this.log('Fill in the Claude Code SSH connection form with:');
@@ -5,6 +5,12 @@ export default class DevenvSsh extends Command {
5
5
  static flags: {
6
6
  workspace: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
7
  };
8
+ /**
9
+ * On Windows, verify that the OpenSSH client (`ssh.exe`) is on PATH before
10
+ * we try to launch it. Without this preflight, the user sees a cryptic
11
+ * `ENOENT` from `spawnSync`; with it, they get an actionable hint.
12
+ */
13
+ protected checkSshAvailable(): void;
8
14
  run(): Promise<void>;
9
15
  protected spawnSsh(args: string[]): Promise<void>;
10
16
  }
@@ -1,5 +1,5 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
- import { spawnSync } from 'node:child_process';
2
+ import { sync as spawnSync } from 'cross-spawn';
3
3
  import { randomUUID } from 'node:crypto';
4
4
  import fs from 'node:fs/promises';
5
5
  import os from 'node:os';
@@ -21,6 +21,19 @@ export default class DevenvSsh extends Command {
21
21
  required: true,
22
22
  }),
23
23
  };
24
+ /**
25
+ * On Windows, verify that the OpenSSH client (`ssh.exe`) is on PATH before
26
+ * we try to launch it. Without this preflight, the user sees a cryptic
27
+ * `ENOENT` from `spawnSync`; with it, they get an actionable hint.
28
+ */
29
+ checkSshAvailable() {
30
+ if (process.platform !== 'win32')
31
+ return;
32
+ const probe = spawnSync('where', ['ssh'], { stdio: 'ignore' });
33
+ if (probe.status !== 0) {
34
+ this.error('OpenSSH client not found. Enable it via Windows Settings → Apps → Optional Features → "OpenSSH Client", or install Git for Windows and run from a Git Bash shell where ssh is on PATH.');
35
+ }
36
+ }
24
37
  async run() {
25
38
  const { flags } = await this.parse(DevenvSsh);
26
39
  const { workspace } = flags;
@@ -77,6 +90,7 @@ export default class DevenvSsh extends Command {
77
90
  }
78
91
  }
79
92
  spawnSsh(args) {
93
+ this.checkSshAvailable();
80
94
  const result = spawnSync('ssh', args, {
81
95
  stdio: 'inherit',
82
96
  });
@@ -1,5 +1,5 @@
1
- import { spawn } from 'node:child_process';
2
- import { runShell } from './shell.js';
1
+ import spawn from 'cross-spawn';
2
+ import { buildGitCredentialHelperValue, runShell } from './shell.js';
3
3
  export const gitUtils = {
4
4
  /**
5
5
  * Clones a git repository using the hereya credential helper.
@@ -104,7 +104,7 @@ export async function cloneWithCredentialHelper(input) {
104
104
  const { gitUrl, hereyaBinPath, password, targetDir, username } = input;
105
105
  // Build the credential helper config
106
106
  // The ! prefix tells git to treat it as a shell command
107
- const credHelper = `!${hereyaBinPath} credential-helper`;
107
+ const credHelper = buildGitCredentialHelperValue(hereyaBinPath);
108
108
  return new Promise((resolve) => {
109
109
  const env = { ...process.env };
110
110
  if (username)
@@ -140,7 +140,7 @@ export async function cloneWithCredentialHelper(input) {
140
140
  }
141
141
  export async function setupCredentialHelper(input) {
142
142
  const { hereyaBinPath, projectDir } = input;
143
- const credHelper = `!${hereyaBinPath} credential-helper`;
143
+ const credHelper = buildGitCredentialHelperValue(hereyaBinPath);
144
144
  const runGitConfig = (args) => new Promise((resolve, reject) => {
145
145
  const child = spawn('git', args, { cwd: projectDir, stdio: 'pipe' });
146
146
  child.on('close', (code) => {
@@ -39,3 +39,23 @@ export declare const shellUtils: {
39
39
  runShell: typeof runShell;
40
40
  };
41
41
  export declare function delay(ms: number): Promise<unknown> | undefined;
42
+ /**
43
+ * Builds a shell-safe command string that invokes the hereya CLI. Suitable
44
+ * for embedding in git credential-helper config strings, SSH ProxyCommand
45
+ * lines, and anywhere else an external tool re-parses our command through
46
+ * a POSIX shell or cmd.exe.
47
+ *
48
+ * - If `binPath` ends in `.js`, prepend the absolute path of the current
49
+ * Node executable (`process.execPath`) so the helper works without
50
+ * depending on `.js` being executable.
51
+ * - Path-like tokens are normalized to forward slashes and wrapped in
52
+ * double quotes to survive spaces and Windows backslashes.
53
+ * - Args are emitted bare unless they contain whitespace, quotes, or
54
+ * backslashes.
55
+ */
56
+ export declare function buildHereyaShellCommand(binPath: string, args: string[]): string;
57
+ /**
58
+ * Builds the value for git's `credential.helper` config when the helper
59
+ * is a shell command. Git requires a leading `!` for shell-command helpers.
60
+ */
61
+ export declare function buildGitCredentialHelperValue(binPath: string, subcommand?: string): string;
package/dist/lib/shell.js CHANGED
@@ -106,3 +106,58 @@ export function delay(ms) {
106
106
  setTimeout(resolve, ms);
107
107
  });
108
108
  }
109
+ /**
110
+ * Quote a path-like token so it survives re-parsing by a POSIX shell or
111
+ * cmd.exe. Backslashes are normalized to forward slashes (Windows OpenSSH
112
+ * and Git for Windows' msys bash both accept forward-slash absolute paths
113
+ * like `C:/Users/…`). Embedded double quotes are escaped as `\"`.
114
+ */
115
+ function quotePath(p) {
116
+ const normalized = p.replaceAll('\\', '/');
117
+ const escaped = normalized.replaceAll('"', String.raw `\"`);
118
+ return `"${escaped}"`;
119
+ }
120
+ /**
121
+ * Quote a plain CLI argument. Bare args stay bare unless they contain a
122
+ * space, a double quote, or a backslash — keeping the macOS/Linux output
123
+ * close to today's (e.g. `devenv ssh-proxy -w my-ws` stays bare).
124
+ */
125
+ function quoteArg(arg) {
126
+ if (arg === '' || /[\s"\\]/.test(arg)) {
127
+ const escaped = arg.replaceAll('\\', String.raw `\\`).replaceAll('"', String.raw `\"`);
128
+ return `"${escaped}"`;
129
+ }
130
+ return arg;
131
+ }
132
+ /**
133
+ * Builds a shell-safe command string that invokes the hereya CLI. Suitable
134
+ * for embedding in git credential-helper config strings, SSH ProxyCommand
135
+ * lines, and anywhere else an external tool re-parses our command through
136
+ * a POSIX shell or cmd.exe.
137
+ *
138
+ * - If `binPath` ends in `.js`, prepend the absolute path of the current
139
+ * Node executable (`process.execPath`) so the helper works without
140
+ * depending on `.js` being executable.
141
+ * - Path-like tokens are normalized to forward slashes and wrapped in
142
+ * double quotes to survive spaces and Windows backslashes.
143
+ * - Args are emitted bare unless they contain whitespace, quotes, or
144
+ * backslashes.
145
+ */
146
+ export function buildHereyaShellCommand(binPath, args) {
147
+ const tokens = [];
148
+ if (binPath.toLowerCase().endsWith('.js')) {
149
+ tokens.push(quotePath(process.execPath));
150
+ }
151
+ tokens.push(quotePath(binPath));
152
+ for (const arg of args) {
153
+ tokens.push(quoteArg(arg));
154
+ }
155
+ return tokens.join(' ');
156
+ }
157
+ /**
158
+ * Builds the value for git's `credential.helper` config when the helper
159
+ * is a shell command. Git requires a leading `!` for shell-command helpers.
160
+ */
161
+ export function buildGitCredentialHelperValue(binPath, subcommand = 'credential-helper') {
162
+ return '!' + buildHereyaShellCommand(binPath, [subcommand]);
163
+ }
@@ -63,32 +63,33 @@
63
63
  "index.js"
64
64
  ]
65
65
  },
66
- "bootstrap": {
66
+ "clone": {
67
67
  "aliases": [],
68
68
  "args": {
69
- "infrastructureType": {
70
- "description": "infrastructure to bootstrap. Options are local, aws",
71
- "name": "infrastructureType",
69
+ "project": {
70
+ "description": "project name",
71
+ "name": "project",
72
72
  "required": true
73
73
  }
74
74
  },
75
- "description": "Install necessary resources for hereya operations in an infrastructure.",
75
+ "description": "Clone an existing template-based project to the local machine.",
76
76
  "examples": [
77
- "<%= config.bin %> <%= command.id %> aws",
78
- "<%= config.bin %> <%= command.id %> local"
77
+ "<%= config.bin %> <%= command.id %> myProject",
78
+ "<%= config.bin %> <%= command.id %> myProject --chdir=./myProject"
79
79
  ],
80
80
  "flags": {
81
- "force": {
82
- "char": "f",
83
- "description": "redeploy hereya resources if already deployed",
84
- "name": "force",
85
- "allowNo": false,
86
- "type": "boolean"
81
+ "chdir": {
82
+ "description": "directory to clone into",
83
+ "name": "chdir",
84
+ "required": false,
85
+ "hasDynamicHelp": false,
86
+ "multiple": false,
87
+ "type": "option"
87
88
  }
88
89
  },
89
90
  "hasDynamicHelp": false,
90
91
  "hiddenAliases": [],
91
- "id": "bootstrap",
92
+ "id": "clone",
92
93
  "pluginAlias": "hereya-cli",
93
94
  "pluginName": "hereya-cli",
94
95
  "pluginType": "core",
@@ -98,37 +99,36 @@
98
99
  "relativePath": [
99
100
  "dist",
100
101
  "commands",
101
- "bootstrap",
102
+ "clone",
102
103
  "index.js"
103
104
  ]
104
105
  },
105
- "clone": {
106
+ "bootstrap": {
106
107
  "aliases": [],
107
108
  "args": {
108
- "project": {
109
- "description": "project name",
110
- "name": "project",
109
+ "infrastructureType": {
110
+ "description": "infrastructure to bootstrap. Options are local, aws",
111
+ "name": "infrastructureType",
111
112
  "required": true
112
113
  }
113
114
  },
114
- "description": "Clone an existing template-based project to the local machine.",
115
+ "description": "Install necessary resources for hereya operations in an infrastructure.",
115
116
  "examples": [
116
- "<%= config.bin %> <%= command.id %> myProject",
117
- "<%= config.bin %> <%= command.id %> myProject --chdir=./myProject"
117
+ "<%= config.bin %> <%= command.id %> aws",
118
+ "<%= config.bin %> <%= command.id %> local"
118
119
  ],
119
120
  "flags": {
120
- "chdir": {
121
- "description": "directory to clone into",
122
- "name": "chdir",
123
- "required": false,
124
- "hasDynamicHelp": false,
125
- "multiple": false,
126
- "type": "option"
121
+ "force": {
122
+ "char": "f",
123
+ "description": "redeploy hereya resources if already deployed",
124
+ "name": "force",
125
+ "allowNo": false,
126
+ "type": "boolean"
127
127
  }
128
128
  },
129
129
  "hasDynamicHelp": false,
130
130
  "hiddenAliases": [],
131
- "id": "clone",
131
+ "id": "bootstrap",
132
132
  "pluginAlias": "hereya-cli",
133
133
  "pluginName": "hereya-cli",
134
134
  "pluginType": "core",
@@ -138,7 +138,7 @@
138
138
  "relativePath": [
139
139
  "dist",
140
140
  "commands",
141
- "clone",
141
+ "bootstrap",
142
142
  "index.js"
143
143
  ]
144
144
  },
@@ -2022,42 +2022,42 @@
2022
2022
  "index.js"
2023
2023
  ]
2024
2024
  },
2025
- "env:set": {
2025
+ "executor:start": {
2026
2026
  "aliases": [],
2027
- "args": {
2028
- "name": {
2029
- "description": "name of the environment variable to set",
2030
- "name": "name"
2031
- }
2032
- },
2033
- "description": "Set an user-defined environment variable for the project",
2027
+ "args": {},
2028
+ "description": "Start the remote executor process (polls for jobs from hereya cloud).\n\nJobs are executed in parallel up to the concurrency limit (default: 10). Use --concurrency to adjust.\n\nSet the HEREYA_TOKEN environment variable to authenticate without running `hereya login`.\nSet the HEREYA_CLOUD_URL environment variable to target a specific hereya cloud instance (defaults to https://cloud.hereya.dev).",
2034
2029
  "examples": [
2035
- "<%= config.bin %> <%= command.id %> FOO -v bar",
2036
- "<%= config.bin %> <%= command.id %> FOO -v bar -w dev"
2030
+ "<%= config.bin %> <%= command.id %> -w my-workspace",
2031
+ "<%= config.bin %> <%= command.id %> -w my-workspace --concurrency 5",
2032
+ "HEREYA_TOKEN=<token> <%= config.bin %> <%= command.id %> -w my-workspace",
2033
+ "HEREYA_TOKEN=<token> HEREYA_CLOUD_URL=https://my-cloud.example.com <%= config.bin %> <%= command.id %> -w my-workspace"
2037
2034
  ],
2038
2035
  "flags": {
2039
- "chdir": {
2040
- "description": "project root directory",
2041
- "name": "chdir",
2042
- "required": false,
2036
+ "concurrency": {
2037
+ "char": "c",
2038
+ "description": "maximum number of parallel jobs",
2039
+ "name": "concurrency",
2040
+ "default": 10,
2043
2041
  "hasDynamicHelp": false,
2044
2042
  "multiple": false,
2045
2043
  "type": "option"
2046
2044
  },
2047
- "value": {
2048
- "char": "v",
2049
- "description": "value of the environment variable",
2050
- "name": "value",
2051
- "required": true,
2045
+ "idleTimeout": {
2046
+ "aliases": [
2047
+ "idle-timeout"
2048
+ ],
2049
+ "char": "i",
2050
+ "description": "seconds idle before exit; omit to keep running indefinitely",
2051
+ "name": "idleTimeout",
2052
2052
  "hasDynamicHelp": false,
2053
2053
  "multiple": false,
2054
2054
  "type": "option"
2055
2055
  },
2056
2056
  "workspace": {
2057
2057
  "char": "w",
2058
- "description": "name of the workspace to print the env vars for",
2058
+ "description": "name of the workspace to poll jobs for",
2059
2059
  "name": "workspace",
2060
- "required": false,
2060
+ "required": true,
2061
2061
  "hasDynamicHelp": false,
2062
2062
  "multiple": false,
2063
2063
  "type": "option"
@@ -2065,7 +2065,7 @@
2065
2065
  },
2066
2066
  "hasDynamicHelp": false,
2067
2067
  "hiddenAliases": [],
2068
- "id": "env:set",
2068
+ "id": "executor:start",
2069
2069
  "pluginAlias": "hereya-cli",
2070
2070
  "pluginName": "hereya-cli",
2071
2071
  "pluginType": "core",
@@ -2075,47 +2075,47 @@
2075
2075
  "relativePath": [
2076
2076
  "dist",
2077
2077
  "commands",
2078
- "env",
2079
- "set",
2078
+ "executor",
2079
+ "start",
2080
2080
  "index.js"
2081
2081
  ]
2082
2082
  },
2083
- "executor:start": {
2083
+ "env:set": {
2084
2084
  "aliases": [],
2085
- "args": {},
2086
- "description": "Start the remote executor process (polls for jobs from hereya cloud).\n\nJobs are executed in parallel up to the concurrency limit (default: 10). Use --concurrency to adjust.\n\nSet the HEREYA_TOKEN environment variable to authenticate without running `hereya login`.\nSet the HEREYA_CLOUD_URL environment variable to target a specific hereya cloud instance (defaults to https://cloud.hereya.dev).",
2085
+ "args": {
2086
+ "name": {
2087
+ "description": "name of the environment variable to set",
2088
+ "name": "name"
2089
+ }
2090
+ },
2091
+ "description": "Set an user-defined environment variable for the project",
2087
2092
  "examples": [
2088
- "<%= config.bin %> <%= command.id %> -w my-workspace",
2089
- "<%= config.bin %> <%= command.id %> -w my-workspace --concurrency 5",
2090
- "HEREYA_TOKEN=<token> <%= config.bin %> <%= command.id %> -w my-workspace",
2091
- "HEREYA_TOKEN=<token> HEREYA_CLOUD_URL=https://my-cloud.example.com <%= config.bin %> <%= command.id %> -w my-workspace"
2093
+ "<%= config.bin %> <%= command.id %> FOO -v bar",
2094
+ "<%= config.bin %> <%= command.id %> FOO -v bar -w dev"
2092
2095
  ],
2093
2096
  "flags": {
2094
- "concurrency": {
2095
- "char": "c",
2096
- "description": "maximum number of parallel jobs",
2097
- "name": "concurrency",
2098
- "default": 10,
2097
+ "chdir": {
2098
+ "description": "project root directory",
2099
+ "name": "chdir",
2100
+ "required": false,
2099
2101
  "hasDynamicHelp": false,
2100
2102
  "multiple": false,
2101
2103
  "type": "option"
2102
2104
  },
2103
- "idleTimeout": {
2104
- "aliases": [
2105
- "idle-timeout"
2106
- ],
2107
- "char": "i",
2108
- "description": "seconds idle before exit; omit to keep running indefinitely",
2109
- "name": "idleTimeout",
2105
+ "value": {
2106
+ "char": "v",
2107
+ "description": "value of the environment variable",
2108
+ "name": "value",
2109
+ "required": true,
2110
2110
  "hasDynamicHelp": false,
2111
2111
  "multiple": false,
2112
2112
  "type": "option"
2113
2113
  },
2114
2114
  "workspace": {
2115
2115
  "char": "w",
2116
- "description": "name of the workspace to poll jobs for",
2116
+ "description": "name of the workspace to print the env vars for",
2117
2117
  "name": "workspace",
2118
- "required": true,
2118
+ "required": false,
2119
2119
  "hasDynamicHelp": false,
2120
2120
  "multiple": false,
2121
2121
  "type": "option"
@@ -2123,7 +2123,7 @@
2123
2123
  },
2124
2124
  "hasDynamicHelp": false,
2125
2125
  "hiddenAliases": [],
2126
- "id": "executor:start",
2126
+ "id": "env:set",
2127
2127
  "pluginAlias": "hereya-cli",
2128
2128
  "pluginName": "hereya-cli",
2129
2129
  "pluginType": "core",
@@ -2133,8 +2133,8 @@
2133
2133
  "relativePath": [
2134
2134
  "dist",
2135
2135
  "commands",
2136
- "executor",
2137
- "start",
2136
+ "env",
2137
+ "set",
2138
2138
  "index.js"
2139
2139
  ]
2140
2140
  },
@@ -3409,5 +3409,5 @@
3409
3409
  ]
3410
3410
  }
3411
3411
  },
3412
- "version": "0.100.2"
3412
+ "version": "0.100.4"
3413
3413
  }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "hereya-cli",
3
3
  "description": "Infrastructure as Package",
4
- "version": "0.100.2",
4
+ "version": "0.100.4",
5
5
  "author": "Hereya Developers",
6
6
  "bin": {
7
- "hereya": "./bin/run.js"
7
+ "hereya": "./bin/run.cjs"
8
8
  },
9
9
  "bugs": "https://github.com/hereya/hereya-cli/issues",
10
10
  "dependencies": {
@@ -117,7 +117,7 @@
117
117
  "repository": "hereya/hereya-cli",
118
118
  "scripts": {
119
119
  "generate": "npx oclif generate command $COMMAND && shx mkdir src/commands/$COMMAND && shx mv src/commands/$COMMAND.ts src/commands/$COMMAND/index.ts && shx mv test/commands/$COMMAND.test.ts src/commands/$COMMAND/index.test.ts && shx rm -rf test",
120
- "dev": "./bin/dev.js",
120
+ "dev": "node ./bin/dev.cjs",
121
121
  "build": "shx rm -rf dist && tsc -b",
122
122
  "lint": "eslint .",
123
123
  "postpack": "shx rm -f oclif.manifest.json",
File without changes
File without changes