@sprucelabs/spruce-cli 28.0.13 → 28.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [28.0.14](https://github.com/sprucelabsai-community/spruce-cli-workspace/compare/v28.0.13...v28.0.14) (2025-09-25)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
6
14
  ## [28.0.13](https://github.com/sprucelabsai-community/spruce-cli-workspace/compare/v28.0.12...v28.0.13) (2025-09-13)
7
15
 
8
16
  **Note:** Version bump only for package @sprucelabs/spruce-cli
@@ -3,7 +3,9 @@ export default class WatchingSkillViewsTest extends AbstractSkillTest {
3
3
  protected static skillCacheKey: string;
4
4
  protected static oldBootExecute: any;
5
5
  private static action;
6
+ private static wasHit;
6
7
  protected static beforeEach(): Promise<void>;
7
8
  protected static hasWatchSkillViewsEvent(): Promise<void>;
8
9
  protected static shouldCallBoot(): Promise<void>;
10
+ protected static doesNotCrashIfUsingCustomRemote(): Promise<void>;
9
11
  }
@@ -9,6 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
12
13
  const test_utils_1 = require("@sprucelabs/test-utils");
13
14
  const CommandService_1 = __importDefault(require("../../../services/CommandService"));
14
15
  const AbstractSkillTest_1 = __importDefault(require("../../../tests/AbstractSkillTest"));
@@ -16,24 +17,33 @@ class WatchingSkillViewsTest extends AbstractSkillTest_1.default {
16
17
  static skillCacheKey = 'views';
17
18
  static oldBootExecute;
18
19
  static action;
20
+ static wasHit = false;
19
21
  static async beforeEach() {
20
22
  await super.beforeEach();
23
+ this.wasHit = false;
21
24
  this.action = this.Action('view', 'watch');
25
+ CommandService_1.default.fakeCommand('SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot', {
26
+ code: 0,
27
+ callback: () => {
28
+ this.wasHit = true;
29
+ },
30
+ });
22
31
  }
23
32
  static async hasWatchSkillViewsEvent() {
24
33
  test_utils_1.assert.isFunction(this.action.execute);
25
34
  }
26
35
  static async shouldCallBoot() {
27
- let wasHit = false;
28
- CommandService_1.default.fakeCommand('SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot', {
29
- code: 200,
30
- callback: () => {
31
- wasHit = true;
32
- },
33
- });
34
36
  void this.action.execute();
35
37
  await this.wait(10);
36
- test_utils_1.assert.isTrue(wasHit);
38
+ test_utils_1.assert.isTrue(this.wasHit, 'did not run yarn boot with expected env vars');
39
+ }
40
+ static async doesNotCrashIfUsingCustomRemote() {
41
+ const envFile = this.resolvePath('.env');
42
+ const envContents = spruce_skill_utils_1.diskUtil.readFile(envFile);
43
+ const updated = envContents.replace('HOST="http://127.0.0.1:8081"', 'HOST="custom"');
44
+ spruce_skill_utils_1.diskUtil.writeFile(envFile, updated);
45
+ const results = await this.action.execute();
46
+ test_utils_1.assert.isFalsy(results.errors, 'Should not have errors');
37
47
  }
38
48
  }
39
49
  exports.default = WatchingSkillViewsTest;
@@ -43,4 +53,7 @@ __decorate([
43
53
  __decorate([
44
54
  (0, test_utils_1.test)()
45
55
  ], WatchingSkillViewsTest, "shouldCallBoot", null);
56
+ __decorate([
57
+ (0, test_utils_1.test)()
58
+ ], WatchingSkillViewsTest, "doesNotCrashIfUsingCustomRemote", null);
46
59
  //# sourceMappingURL=WatchingSkillViews.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WatchingSkillViews.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/views/WatchingSkillViews.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAqD;AAErD,sFAAiE;AACjE,yFAAgE;AAEhE,MAAqB,sBAAuB,SAAQ,2BAAiB;IACvD,MAAM,CAAC,aAAa,GAAG,OAAO,CAAA;IAC9B,MAAM,CAAC,cAAc,CAAK;IAC5B,MAAM,CAAC,MAAM,CAAa;IAExB,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,uBAAuB;QAC1C,mBAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,cAAc;QACjC,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,wBAAkB,CAAC,WAAW,CAC1B,iEAAiE,EACjE;YACI,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,GAAG,EAAE;gBACX,MAAM,GAAG,IAAI,CAAA;YACjB,CAAC;SACJ,CACJ,CAAA;QAED,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAE1B,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEnB,mBAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;;AAjCL,yCAkCC;AAvB0B;IADtB,IAAA,iBAAI,GAAE;2DAGN;AAGsB;IADtB,IAAA,iBAAI,GAAE;kDAkBN"}
1
+ {"version":3,"file":"WatchingSkillViews.test.js","sourceRoot":"","sources":["../../../../src/__tests__/behavioral/views/WatchingSkillViews.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uEAAyD;AACzD,uDAAqD;AAErD,sFAAiE;AACjE,yFAAgE;AAEhE,MAAqB,sBAAuB,SAAQ,2BAAiB;IACvD,MAAM,CAAC,aAAa,GAAG,OAAO,CAAA;IAC9B,MAAM,CAAC,cAAc,CAAK;IAC5B,MAAM,CAAC,MAAM,CAAa;IAC1B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAA;IAEnB,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAE1C,wBAAkB,CAAC,WAAW,CAC1B,iEAAiE,EACjE;YACI,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,GAAG,EAAE;gBACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YACtB,CAAC;SACJ,CACJ,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,uBAAuB;QAC1C,mBAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,cAAc;QACjC,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAE1B,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEnB,mBAAM,CAAC,MAAM,CACT,IAAI,CAAC,MAAM,EACX,8CAA8C,CACjD,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,WAAW,GAAG,6BAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAC/B,8BAA8B,EAC9B,eAAe,CAClB,CAAA;QACD,6BAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QAC3C,mBAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;IAC5D,CAAC;;AAlDL,yCAmDC;AA5B0B;IADtB,IAAA,iBAAI,GAAE;2DAGN;AAGsB;IADtB,IAAA,iBAAI,GAAE;kDAUN;AAGsB;IADtB,IAAA,iBAAI,GAAE;mEAWN"}
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const schema_1 = require("@sprucelabs/schema");
7
- const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils");
8
7
  const AbstractAction_1 = __importDefault(require("../../AbstractAction"));
9
8
  const optionsSchema = (0, schema_1.buildSchema)({
10
9
  id: 'watchViewsOptions',
@@ -42,9 +41,8 @@ class WatchAction extends AbstractAction_1.default {
42
41
  return line && line.length > 0 ? line.trim() : 'Waiting for changes';
43
42
  }
44
43
  getPreviewUrl() {
45
- const remote = this.Service('remote').getRemote();
46
- return (spruce_event_utils_1.heartwoodRemoteUtil.buildUrl(remote) +
47
- `/#views/${this.skillNamespace}.root`);
44
+ const host = this.Service('remote').getHost();
45
+ return host + `/#views/${this.skillNamespace}.root`;
48
46
  }
49
47
  resetUi() {
50
48
  this.ui.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"WatchAction.js","sourceRoot":"","sources":["../../../../src/features/view/actions/WatchAction.ts"],"names":[],"mappings":";;;;;AAAA,+CAAgD;AAChD,uEAAoE;AACpE,0EAAiD;AAGjD,MAAM,aAAa,GAAG,IAAA,oBAAW,EAAC;IAC9B,EAAE,EAAE,mBAAmB;IACvB,WAAW,EAAE,uDAAuD;IACpE,MAAM,EAAE,EAAE;CACb,CAAC,CAAA;AAIF,MAAqB,WAAY,SAAQ,wBAA6B;IAC3D,cAAc,GAAG,CAAC,aAAa,CAAC,CAAA;IAChC,aAAa,GAAkB,aAAa,CAAA;IAC5C,iBAAiB,GAAG,sBAAsB,CAAA;IACzC,SAAS,CAAS;IAClB,cAAc,CAAS;IAExB,KAAK,CAAC,OAAO;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,IAAI,IAAI,SAAS,CAAA;QACzC,IAAI,CAAC,cAAc,GAAG,KAAK,EAAE,IAAI,IAAI,WAAW,CAAA;QAEhD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACxC,MAAM,QAAQ,CAAC,OAAO,CAClB,iEAAiE,EACjE;YACI,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;gBACnC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;SACJ,CACJ,CAAA;QAED,OAAO;YACH,YAAY,EAAE,CAAC,kBAAkB,CAAC;SACrC,CAAA;IACL,CAAC;IAEO,WAAW,CAAC,IAAY;QAC5B,MAAM,IAAI,GAAG,IAAI;aACZ,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAClB,GAAG,EAAE,CAAA;QAEV,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAA;IACxE,CAAC;IAEO,aAAa;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAS,CAAA;QACxD,OAAO,CACH,wCAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpC,WAAW,IAAI,CAAC,cAAc,OAAO,CACxC,CAAA;IACL,CAAC;IAEO,OAAO;QACX,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACf,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAC/B,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;YAChB,EAAE;YACF,UAAU,IAAI,CAAC,SAAS,EAAE;YAC1B,YAAY,IAAI,CAAC,aAAa,EAAE,EAAE;YAClC,EAAE;SACL,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACtB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAA;IAChD,CAAC;CACJ;AA7DD,8BA6DC"}
1
+ {"version":3,"file":"WatchAction.js","sourceRoot":"","sources":["../../../../src/features/view/actions/WatchAction.ts"],"names":[],"mappings":";;;;;AAAA,+CAAgD;AAChD,0EAAiD;AAGjD,MAAM,aAAa,GAAG,IAAA,oBAAW,EAAC;IAC9B,EAAE,EAAE,mBAAmB;IACvB,WAAW,EAAE,uDAAuD;IACpE,MAAM,EAAE,EAAE;CACb,CAAC,CAAA;AAIF,MAAqB,WAAY,SAAQ,wBAA6B;IAC3D,cAAc,GAAG,CAAC,aAAa,CAAC,CAAA;IAChC,aAAa,GAAkB,aAAa,CAAA;IAC5C,iBAAiB,GAAG,sBAAsB,CAAA;IACzC,SAAS,CAAS;IAClB,cAAc,CAAS;IAExB,KAAK,CAAC,OAAO;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,IAAI,IAAI,SAAS,CAAA;QACzC,IAAI,CAAC,cAAc,GAAG,KAAK,EAAE,IAAI,IAAI,WAAW,CAAA;QAEhD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAExC,MAAM,QAAQ,CAAC,OAAO,CAClB,iEAAiE,EACjE;YACI,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;gBACnC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;SACJ,CACJ,CAAA;QAED,OAAO;YACH,YAAY,EAAE,CAAC,kBAAkB,CAAC;SACrC,CAAA;IACL,CAAC;IAEO,WAAW,CAAC,IAAY;QAC5B,MAAM,IAAI,GAAG,IAAI;aACZ,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAClB,GAAG,EAAE,CAAA;QAEV,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAA;IACxE,CAAC;IAEO,aAAa;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAA;QAC7C,OAAO,IAAI,GAAG,WAAW,IAAI,CAAC,cAAc,OAAO,CAAA;IACvD,CAAC;IAEO,OAAO;QACX,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;QACf,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAC/B,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;YAChB,EAAE;YACF,UAAU,IAAI,CAAC,SAAS,EAAE;YAC1B,YAAY,IAAI,CAAC,aAAa,EAAE,EAAE;YAClC,EAAE;SACL,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACtB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAA;IAChD,CAAC;CACJ;AA3DD,8BA2DC"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "28.0.13",
7
+ "version": "28.0.14",
8
8
  "skill": {
9
9
  "namespace": "spruce-cli",
10
10
  "upgradeIgnoreList": [
@@ -84,7 +84,7 @@
84
84
  "@sprucelabs/spruce-core-schemas": "^41.0.71",
85
85
  "@sprucelabs/spruce-event-utils": "^41.0.85",
86
86
  "@sprucelabs/spruce-skill-utils": "^32.0.80",
87
- "@sprucelabs/spruce-templates": "^28.0.13",
87
+ "@sprucelabs/spruce-templates": "^28.0.14",
88
88
  "@typescript-eslint/eslint-plugin": "^7.7.1",
89
89
  "@typescript-eslint/parser": "^7.7.1",
90
90
  "cfonts": "^3.3.0",
@@ -570,5 +570,5 @@
570
570
  "open"
571
571
  ]
572
572
  },
573
- "gitHead": "bcf0cb35110ec36ed3e169abb42aa2aa801295dc"
573
+ "gitHead": "3bc45b5eae0b111c18d0619bbfde66735b259359"
574
574
  }
@@ -1,3 +1,4 @@
1
+ import { diskUtil } from '@sprucelabs/spruce-skill-utils'
1
2
  import { test, assert } from '@sprucelabs/test-utils'
2
3
  import WatchAction from '../../../features/view/actions/WatchAction'
3
4
  import CommandServiceImpl from '../../../services/CommandService'
@@ -7,34 +8,51 @@ export default class WatchingSkillViewsTest extends AbstractSkillTest {
7
8
  protected static skillCacheKey = 'views'
8
9
  protected static oldBootExecute: any
9
10
  private static action: WatchAction
11
+ private static wasHit = false
10
12
 
11
13
  protected static async beforeEach() {
12
14
  await super.beforeEach()
15
+ this.wasHit = false
13
16
  this.action = this.Action('view', 'watch')
14
- }
15
-
16
- @test()
17
- protected static async hasWatchSkillViewsEvent() {
18
- assert.isFunction(this.action.execute)
19
- }
20
17
 
21
- @test()
22
- protected static async shouldCallBoot() {
23
- let wasHit = false
24
18
  CommandServiceImpl.fakeCommand(
25
19
  'SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot',
26
20
  {
27
- code: 200,
21
+ code: 0,
28
22
  callback: () => {
29
- wasHit = true
23
+ this.wasHit = true
30
24
  },
31
25
  }
32
26
  )
27
+ }
33
28
 
29
+ @test()
30
+ protected static async hasWatchSkillViewsEvent() {
31
+ assert.isFunction(this.action.execute)
32
+ }
33
+
34
+ @test()
35
+ protected static async shouldCallBoot() {
34
36
  void this.action.execute()
35
37
 
36
38
  await this.wait(10)
37
39
 
38
- assert.isTrue(wasHit)
40
+ assert.isTrue(
41
+ this.wasHit,
42
+ 'did not run yarn boot with expected env vars'
43
+ )
44
+ }
45
+
46
+ @test()
47
+ protected static async doesNotCrashIfUsingCustomRemote() {
48
+ const envFile = this.resolvePath('.env')
49
+ const envContents = diskUtil.readFile(envFile)
50
+ const updated = envContents.replace(
51
+ 'HOST="http://127.0.0.1:8081"',
52
+ 'HOST="custom"'
53
+ )
54
+ diskUtil.writeFile(envFile, updated)
55
+ const results = await this.action.execute()
56
+ assert.isFalsy(results.errors, 'Should not have errors')
39
57
  }
40
58
  }
@@ -1,5 +1,4 @@
1
1
  import { buildSchema } from '@sprucelabs/schema'
2
- import { heartwoodRemoteUtil } from '@sprucelabs/spruce-event-utils'
3
2
  import AbstractAction from '../../AbstractAction'
4
3
  import { FeatureActionResponse } from '../../features.types'
5
4
 
@@ -25,6 +24,7 @@ export default class WatchAction extends AbstractAction<OptionsSchema> {
25
24
 
26
25
  this.resetUi()
27
26
  const commands = this.Service('command')
27
+
28
28
  await commands.execute(
29
29
  'SHOULD_WATCH_VIEWS=true MAXIMUM_LOG_PREFIXES_LENGTH=0 yarn boot',
30
30
  {
@@ -51,11 +51,8 @@ export default class WatchAction extends AbstractAction<OptionsSchema> {
51
51
  }
52
52
 
53
53
  private getPreviewUrl() {
54
- const remote = this.Service('remote').getRemote() as any
55
- return (
56
- heartwoodRemoteUtil.buildUrl(remote) +
57
- `/#views/${this.skillNamespace}.root`
58
- )
54
+ const host = this.Service('remote').getHost()
55
+ return host + `/#views/${this.skillNamespace}.root`
59
56
  }
60
57
 
61
58
  private resetUi() {