@locusai/cli 0.13.3 → 0.14.1

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.
@@ -13949,7 +13949,7 @@ var init_constants = __esm(() => {
13949
13949
  });
13950
13950
 
13951
13951
  // ../shared/src/enums.ts
13952
- var UserRole, MembershipRole, TaskStatus, TaskPriority, AssigneeRole, SprintStatus, EventType;
13952
+ var UserRole, MembershipRole, TaskStatus, TaskPriority, AssigneeRole, SprintStatus, InstanceStatus, AwsRegion, EventType;
13953
13953
  var init_enums = __esm(() => {
13954
13954
  ((UserRole2) => {
13955
13955
  UserRole2["USER"] = "USER";
@@ -13986,6 +13986,16 @@ var init_enums = __esm(() => {
13986
13986
  SprintStatus2["ACTIVE"] = "ACTIVE";
13987
13987
  SprintStatus2["COMPLETED"] = "COMPLETED";
13988
13988
  })(SprintStatus ||= {});
13989
+ ((InstanceStatus2) => {
13990
+ InstanceStatus2["PROVISIONING"] = "PROVISIONING";
13991
+ InstanceStatus2["RUNNING"] = "RUNNING";
13992
+ InstanceStatus2["STOPPED"] = "STOPPED";
13993
+ InstanceStatus2["TERMINATED"] = "TERMINATED";
13994
+ InstanceStatus2["ERROR"] = "ERROR";
13995
+ })(InstanceStatus ||= {});
13996
+ ((AwsRegion2) => {
13997
+ AwsRegion2["US_EAST_1"] = "us-east-1";
13998
+ })(AwsRegion ||= {});
13989
13999
  ((EventType2) => {
13990
14000
  EventType2["TASK_CREATED"] = "TASK_CREATED";
13991
14001
  EventType2["TASK_UPDATED"] = "TASK_UPDATED";
@@ -14333,6 +14343,76 @@ var init_auth = __esm(() => {
14333
14343
  });
14334
14344
  });
14335
14345
 
14346
+ // ../shared/src/models/aws-instance.ts
14347
+ var InstanceAction, AwsCredentialsSchema, IntegrationSchema, AwsInstanceSchema, CreateAwsInstanceSchema, UpdateAwsInstanceSchema, SaveAwsCredentialsSchema, ProvisionAwsInstanceSchema, InstanceActionBodySchema, InstanceIdParamSchema, CIDR_REGEX, UpdateSecurityRulesSchema;
14348
+ var init_aws_instance = __esm(() => {
14349
+ init_zod();
14350
+ init_common();
14351
+ init_enums();
14352
+ ((InstanceAction2) => {
14353
+ InstanceAction2["START"] = "START";
14354
+ InstanceAction2["STOP"] = "STOP";
14355
+ InstanceAction2["TERMINATE"] = "TERMINATE";
14356
+ })(InstanceAction ||= {});
14357
+ AwsCredentialsSchema = exports_external.object({
14358
+ accessKeyId: exports_external.string().min(1),
14359
+ secretAccessKey: exports_external.string().min(1),
14360
+ region: exports_external.enum(AwsRegion).default("us-east-1" /* US_EAST_1 */)
14361
+ });
14362
+ IntegrationSchema = exports_external.object({
14363
+ name: exports_external.string(),
14364
+ config: exports_external.record(exports_external.string(), exports_external.string())
14365
+ });
14366
+ AwsInstanceSchema = BaseEntitySchema.extend({
14367
+ workspaceId: exports_external.uuid(),
14368
+ instanceId: exports_external.string(),
14369
+ status: exports_external.enum(InstanceStatus),
14370
+ instanceType: exports_external.enum(["t3.micro", "t3.small", "t3.medium"]),
14371
+ region: exports_external.enum(AwsRegion).default("us-east-1" /* US_EAST_1 */),
14372
+ publicIp: exports_external.string().nullable().optional(),
14373
+ launchTime: exports_external.union([exports_external.date(), exports_external.number()]).nullable().optional(),
14374
+ repoUrl: exports_external.string().nullable().optional(),
14375
+ integrations: exports_external.array(IntegrationSchema).default([])
14376
+ });
14377
+ CreateAwsInstanceSchema = exports_external.object({
14378
+ workspaceId: exports_external.uuid(),
14379
+ instanceType: exports_external.enum(["t3.micro", "t3.small", "t3.medium"]).default("t3.micro"),
14380
+ region: exports_external.enum(AwsRegion).default("us-east-1" /* US_EAST_1 */),
14381
+ repoUrl: exports_external.string().optional(),
14382
+ integrations: exports_external.array(IntegrationSchema).optional().default([])
14383
+ });
14384
+ UpdateAwsInstanceSchema = exports_external.object({
14385
+ status: exports_external.enum(InstanceStatus).optional(),
14386
+ instanceType: exports_external.enum(["t3.micro", "t3.small", "t3.medium"]).optional(),
14387
+ publicIp: exports_external.string().nullable().optional(),
14388
+ launchTime: exports_external.union([exports_external.date(), exports_external.number()]).nullable().optional(),
14389
+ repoUrl: exports_external.string().nullable().optional(),
14390
+ integrations: exports_external.array(IntegrationSchema).optional()
14391
+ });
14392
+ SaveAwsCredentialsSchema = exports_external.object({
14393
+ accessKeyId: exports_external.string().min(16),
14394
+ secretAccessKey: exports_external.string().min(1),
14395
+ region: exports_external.string().default("us-east-1")
14396
+ });
14397
+ ProvisionAwsInstanceSchema = exports_external.object({
14398
+ repoUrl: exports_external.string().min(1),
14399
+ githubToken: exports_external.string().min(1),
14400
+ instanceType: exports_external.enum(["t3.micro", "t3.small", "t3.medium"]).default("t3.small"),
14401
+ integrations: exports_external.array(IntegrationSchema).optional().default([])
14402
+ });
14403
+ InstanceActionBodySchema = exports_external.object({
14404
+ action: exports_external.nativeEnum(InstanceAction)
14405
+ });
14406
+ InstanceIdParamSchema = exports_external.object({
14407
+ workspaceId: exports_external.string().uuid("Invalid Workspace ID"),
14408
+ instanceId: exports_external.string().uuid("Invalid Instance ID")
14409
+ });
14410
+ CIDR_REGEX = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$/;
14411
+ UpdateSecurityRulesSchema = exports_external.object({
14412
+ allowedIps: exports_external.array(exports_external.string().regex(CIDR_REGEX, "Invalid CIDR format (e.g. 1.2.3.4/32)"))
14413
+ });
14414
+ });
14415
+
14336
14416
  // ../shared/src/models/ci.ts
14337
14417
  var RecordCiSchema;
14338
14418
  var init_ci = __esm(() => {
@@ -14720,6 +14800,7 @@ var init_models = __esm(() => {
14720
14800
  init_activity();
14721
14801
  init_agent();
14722
14802
  init_auth();
14803
+ init_aws_instance();
14723
14804
  init_ci();
14724
14805
  init_doc();
14725
14806
  init_doc_group();
@@ -31466,6 +31547,49 @@ var init_docs = __esm(() => {
31466
31547
  };
31467
31548
  });
31468
31549
 
31550
+ // ../sdk/src/modules/instances.ts
31551
+ var InstancesModule;
31552
+ var init_instances = __esm(() => {
31553
+ InstancesModule = class InstancesModule extends BaseModule {
31554
+ async list(workspaceId) {
31555
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances`);
31556
+ return data.instances;
31557
+ }
31558
+ async get(workspaceId, instanceId) {
31559
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}`);
31560
+ return data.instance;
31561
+ }
31562
+ async provision(workspaceId, body) {
31563
+ const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances`, body);
31564
+ return data.instance;
31565
+ }
31566
+ async performAction(workspaceId, instanceId, action) {
31567
+ const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/actions`, { action });
31568
+ return data.instance;
31569
+ }
31570
+ async sync(workspaceId, instanceId) {
31571
+ const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/sync`);
31572
+ return data.instance;
31573
+ }
31574
+ async checkUpdates(workspaceId, instanceId) {
31575
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}/updates`);
31576
+ return data.update;
31577
+ }
31578
+ async applyUpdate(workspaceId, instanceId) {
31579
+ const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/updates`);
31580
+ return data.update;
31581
+ }
31582
+ async getSecurity(workspaceId, instanceId) {
31583
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}/security`);
31584
+ return data.rules;
31585
+ }
31586
+ async updateSecurity(workspaceId, instanceId, body) {
31587
+ const { data } = await this.api.put(`/workspaces/${workspaceId}/aws-instances/${instanceId}/security`, body);
31588
+ return data.rules;
31589
+ }
31590
+ };
31591
+ });
31592
+
31469
31593
  // ../sdk/src/modules/invitations.ts
31470
31594
  var InvitationsModule;
31471
31595
  var init_invitations = __esm(() => {
@@ -31698,6 +31822,17 @@ var init_workspaces = __esm(() => {
31698
31822
  async deleteApiKey(workspaceId, keyId) {
31699
31823
  await this.api.delete(`/workspaces/${workspaceId}/api-keys/${keyId}`);
31700
31824
  }
31825
+ async getAwsCredentials(workspaceId) {
31826
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-credentials`);
31827
+ return data.credential;
31828
+ }
31829
+ async saveAwsCredentials(workspaceId, body) {
31830
+ const { data } = await this.api.put(`/workspaces/${workspaceId}/aws-credentials`, body);
31831
+ return data.credential;
31832
+ }
31833
+ async deleteAwsCredentials(workspaceId) {
31834
+ await this.api.delete(`/workspaces/${workspaceId}/aws-credentials`);
31835
+ }
31701
31836
  };
31702
31837
  });
31703
31838
 
@@ -31746,6 +31881,7 @@ class LocusClient {
31746
31881
  invitations;
31747
31882
  docs;
31748
31883
  ci;
31884
+ instances;
31749
31885
  constructor(config2) {
31750
31886
  this.emitter = new LocusEmitter;
31751
31887
  this.api = axios_default.create({
@@ -31765,6 +31901,7 @@ class LocusClient {
31765
31901
  this.invitations = new InvitationsModule(this.api, this.emitter);
31766
31902
  this.docs = new DocsModule(this.api, this.emitter);
31767
31903
  this.ci = new CiModule(this.api, this.emitter);
31904
+ this.instances = new InstancesModule(this.api, this.emitter);
31768
31905
  if (config2.retryOptions) {
31769
31906
  this.setupRetryInterceptor(config2.retryOptions);
31770
31907
  }
@@ -31830,6 +31967,7 @@ var init_src2 = __esm(() => {
31830
31967
  init_auth2();
31831
31968
  init_ci2();
31832
31969
  init_docs();
31970
+ init_instances();
31833
31971
  init_invitations();
31834
31972
  init_organizations();
31835
31973
  init_sprints();
@@ -31840,6 +31978,7 @@ var init_src2 = __esm(() => {
31840
31978
  init_auth2();
31841
31979
  init_ci2();
31842
31980
  init_docs();
31981
+ init_instances();
31843
31982
  init_invitations();
31844
31983
  init_organizations();
31845
31984
  init_sprints();
package/bin/locus.js CHANGED
@@ -23194,6 +23194,49 @@ var init_docs = __esm(() => {
23194
23194
  };
23195
23195
  });
23196
23196
 
23197
+ // ../sdk/src/modules/instances.ts
23198
+ var InstancesModule;
23199
+ var init_instances = __esm(() => {
23200
+ InstancesModule = class InstancesModule extends BaseModule {
23201
+ async list(workspaceId) {
23202
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances`);
23203
+ return data.instances;
23204
+ }
23205
+ async get(workspaceId, instanceId) {
23206
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}`);
23207
+ return data.instance;
23208
+ }
23209
+ async provision(workspaceId, body) {
23210
+ const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances`, body);
23211
+ return data.instance;
23212
+ }
23213
+ async performAction(workspaceId, instanceId, action) {
23214
+ const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/actions`, { action });
23215
+ return data.instance;
23216
+ }
23217
+ async sync(workspaceId, instanceId) {
23218
+ const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/sync`);
23219
+ return data.instance;
23220
+ }
23221
+ async checkUpdates(workspaceId, instanceId) {
23222
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}/updates`);
23223
+ return data.update;
23224
+ }
23225
+ async applyUpdate(workspaceId, instanceId) {
23226
+ const { data } = await this.api.post(`/workspaces/${workspaceId}/aws-instances/${instanceId}/updates`);
23227
+ return data.update;
23228
+ }
23229
+ async getSecurity(workspaceId, instanceId) {
23230
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-instances/${instanceId}/security`);
23231
+ return data.rules;
23232
+ }
23233
+ async updateSecurity(workspaceId, instanceId, body) {
23234
+ const { data } = await this.api.put(`/workspaces/${workspaceId}/aws-instances/${instanceId}/security`, body);
23235
+ return data.rules;
23236
+ }
23237
+ };
23238
+ });
23239
+
23197
23240
  // ../sdk/src/modules/invitations.ts
23198
23241
  var InvitationsModule;
23199
23242
  var init_invitations = __esm(() => {
@@ -37223,7 +37266,7 @@ var init_constants = __esm(() => {
37223
37266
  });
37224
37267
 
37225
37268
  // ../shared/src/enums.ts
37226
- var UserRole, MembershipRole, TaskStatus, TaskPriority, AssigneeRole, SprintStatus, EventType;
37269
+ var UserRole, MembershipRole, TaskStatus, TaskPriority, AssigneeRole, SprintStatus, InstanceStatus, AwsRegion, EventType;
37227
37270
  var init_enums = __esm(() => {
37228
37271
  ((UserRole2) => {
37229
37272
  UserRole2["USER"] = "USER";
@@ -37260,6 +37303,16 @@ var init_enums = __esm(() => {
37260
37303
  SprintStatus2["ACTIVE"] = "ACTIVE";
37261
37304
  SprintStatus2["COMPLETED"] = "COMPLETED";
37262
37305
  })(SprintStatus ||= {});
37306
+ ((InstanceStatus2) => {
37307
+ InstanceStatus2["PROVISIONING"] = "PROVISIONING";
37308
+ InstanceStatus2["RUNNING"] = "RUNNING";
37309
+ InstanceStatus2["STOPPED"] = "STOPPED";
37310
+ InstanceStatus2["TERMINATED"] = "TERMINATED";
37311
+ InstanceStatus2["ERROR"] = "ERROR";
37312
+ })(InstanceStatus ||= {});
37313
+ ((AwsRegion2) => {
37314
+ AwsRegion2["US_EAST_1"] = "us-east-1";
37315
+ })(AwsRegion ||= {});
37263
37316
  ((EventType2) => {
37264
37317
  EventType2["TASK_CREATED"] = "TASK_CREATED";
37265
37318
  EventType2["TASK_UPDATED"] = "TASK_UPDATED";
@@ -37607,6 +37660,76 @@ var init_auth2 = __esm(() => {
37607
37660
  });
37608
37661
  });
37609
37662
 
37663
+ // ../shared/src/models/aws-instance.ts
37664
+ var InstanceAction, AwsCredentialsSchema, IntegrationSchema, AwsInstanceSchema, CreateAwsInstanceSchema, UpdateAwsInstanceSchema, SaveAwsCredentialsSchema, ProvisionAwsInstanceSchema, InstanceActionBodySchema, InstanceIdParamSchema, CIDR_REGEX, UpdateSecurityRulesSchema;
37665
+ var init_aws_instance = __esm(() => {
37666
+ init_zod();
37667
+ init_common();
37668
+ init_enums();
37669
+ ((InstanceAction2) => {
37670
+ InstanceAction2["START"] = "START";
37671
+ InstanceAction2["STOP"] = "STOP";
37672
+ InstanceAction2["TERMINATE"] = "TERMINATE";
37673
+ })(InstanceAction ||= {});
37674
+ AwsCredentialsSchema = exports_external.object({
37675
+ accessKeyId: exports_external.string().min(1),
37676
+ secretAccessKey: exports_external.string().min(1),
37677
+ region: exports_external.enum(AwsRegion).default("us-east-1" /* US_EAST_1 */)
37678
+ });
37679
+ IntegrationSchema = exports_external.object({
37680
+ name: exports_external.string(),
37681
+ config: exports_external.record(exports_external.string(), exports_external.string())
37682
+ });
37683
+ AwsInstanceSchema = BaseEntitySchema.extend({
37684
+ workspaceId: exports_external.uuid(),
37685
+ instanceId: exports_external.string(),
37686
+ status: exports_external.enum(InstanceStatus),
37687
+ instanceType: exports_external.enum(["t3.micro", "t3.small", "t3.medium"]),
37688
+ region: exports_external.enum(AwsRegion).default("us-east-1" /* US_EAST_1 */),
37689
+ publicIp: exports_external.string().nullable().optional(),
37690
+ launchTime: exports_external.union([exports_external.date(), exports_external.number()]).nullable().optional(),
37691
+ repoUrl: exports_external.string().nullable().optional(),
37692
+ integrations: exports_external.array(IntegrationSchema).default([])
37693
+ });
37694
+ CreateAwsInstanceSchema = exports_external.object({
37695
+ workspaceId: exports_external.uuid(),
37696
+ instanceType: exports_external.enum(["t3.micro", "t3.small", "t3.medium"]).default("t3.micro"),
37697
+ region: exports_external.enum(AwsRegion).default("us-east-1" /* US_EAST_1 */),
37698
+ repoUrl: exports_external.string().optional(),
37699
+ integrations: exports_external.array(IntegrationSchema).optional().default([])
37700
+ });
37701
+ UpdateAwsInstanceSchema = exports_external.object({
37702
+ status: exports_external.enum(InstanceStatus).optional(),
37703
+ instanceType: exports_external.enum(["t3.micro", "t3.small", "t3.medium"]).optional(),
37704
+ publicIp: exports_external.string().nullable().optional(),
37705
+ launchTime: exports_external.union([exports_external.date(), exports_external.number()]).nullable().optional(),
37706
+ repoUrl: exports_external.string().nullable().optional(),
37707
+ integrations: exports_external.array(IntegrationSchema).optional()
37708
+ });
37709
+ SaveAwsCredentialsSchema = exports_external.object({
37710
+ accessKeyId: exports_external.string().min(16),
37711
+ secretAccessKey: exports_external.string().min(1),
37712
+ region: exports_external.string().default("us-east-1")
37713
+ });
37714
+ ProvisionAwsInstanceSchema = exports_external.object({
37715
+ repoUrl: exports_external.string().min(1),
37716
+ githubToken: exports_external.string().min(1),
37717
+ instanceType: exports_external.enum(["t3.micro", "t3.small", "t3.medium"]).default("t3.small"),
37718
+ integrations: exports_external.array(IntegrationSchema).optional().default([])
37719
+ });
37720
+ InstanceActionBodySchema = exports_external.object({
37721
+ action: exports_external.nativeEnum(InstanceAction)
37722
+ });
37723
+ InstanceIdParamSchema = exports_external.object({
37724
+ workspaceId: exports_external.string().uuid("Invalid Workspace ID"),
37725
+ instanceId: exports_external.string().uuid("Invalid Instance ID")
37726
+ });
37727
+ CIDR_REGEX = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$/;
37728
+ UpdateSecurityRulesSchema = exports_external.object({
37729
+ allowedIps: exports_external.array(exports_external.string().regex(CIDR_REGEX, "Invalid CIDR format (e.g. 1.2.3.4/32)"))
37730
+ });
37731
+ });
37732
+
37610
37733
  // ../shared/src/models/ci.ts
37611
37734
  var RecordCiSchema;
37612
37735
  var init_ci2 = __esm(() => {
@@ -37994,6 +38117,7 @@ var init_models = __esm(() => {
37994
38117
  init_activity();
37995
38118
  init_agent();
37996
38119
  init_auth2();
38120
+ init_aws_instance();
37997
38121
  init_ci2();
37998
38122
  init_doc();
37999
38123
  init_doc_group();
@@ -38662,6 +38786,17 @@ var init_workspaces = __esm(() => {
38662
38786
  async deleteApiKey(workspaceId, keyId) {
38663
38787
  await this.api.delete(`/workspaces/${workspaceId}/api-keys/${keyId}`);
38664
38788
  }
38789
+ async getAwsCredentials(workspaceId) {
38790
+ const { data } = await this.api.get(`/workspaces/${workspaceId}/aws-credentials`);
38791
+ return data.credential;
38792
+ }
38793
+ async saveAwsCredentials(workspaceId, body) {
38794
+ const { data } = await this.api.put(`/workspaces/${workspaceId}/aws-credentials`, body);
38795
+ return data.credential;
38796
+ }
38797
+ async deleteAwsCredentials(workspaceId) {
38798
+ await this.api.delete(`/workspaces/${workspaceId}/aws-credentials`);
38799
+ }
38665
38800
  };
38666
38801
  });
38667
38802
 
@@ -38710,6 +38845,7 @@ class LocusClient {
38710
38845
  invitations;
38711
38846
  docs;
38712
38847
  ci;
38848
+ instances;
38713
38849
  constructor(config2) {
38714
38850
  this.emitter = new LocusEmitter;
38715
38851
  this.api = axios_default.create({
@@ -38729,6 +38865,7 @@ class LocusClient {
38729
38865
  this.invitations = new InvitationsModule(this.api, this.emitter);
38730
38866
  this.docs = new DocsModule(this.api, this.emitter);
38731
38867
  this.ci = new CiModule(this.api, this.emitter);
38868
+ this.instances = new InstancesModule(this.api, this.emitter);
38732
38869
  if (config2.retryOptions) {
38733
38870
  this.setupRetryInterceptor(config2.retryOptions);
38734
38871
  }
@@ -38794,6 +38931,7 @@ var init_src2 = __esm(() => {
38794
38931
  init_auth();
38795
38932
  init_ci();
38796
38933
  init_docs();
38934
+ init_instances();
38797
38935
  init_invitations();
38798
38936
  init_organizations();
38799
38937
  init_sprints();
@@ -38804,6 +38942,7 @@ var init_src2 = __esm(() => {
38804
38942
  init_auth();
38805
38943
  init_ci();
38806
38944
  init_docs();
38945
+ init_instances();
38807
38946
  init_invitations();
38808
38947
  init_organizations();
38809
38948
  init_sprints();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@locusai/cli",
3
- "version": "0.13.3",
3
+ "version": "0.14.1",
4
4
  "description": "CLI for Locus - AI-native project management platform",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,8 +32,8 @@
32
32
  "author": "",
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
- "@locusai/sdk": "^0.13.3",
36
- "@locusai/shared": "^0.13.3"
35
+ "@locusai/sdk": "^0.14.1",
36
+ "@locusai/shared": "^0.14.1"
37
37
  },
38
38
  "devDependencies": {}
39
39
  }