@sprucelabs/spruce-cli 28.1.4 → 28.2.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.
- package/CHANGELOG.md +19 -0
- package/build/.spruce/errors/errors.types.d.ts +22 -0
- package/build/.spruce/errors/options.types.d.ts +4 -1
- package/build/.spruce/errors/spruceCli/agentAlreadyRegistered.schema.d.ts +3 -0
- package/build/.spruce/errors/spruceCli/agentAlreadyRegistered.schema.js +21 -0
- package/build/.spruce/errors/spruceCli/agentAlreadyRegistered.schema.js.map +1 -0
- package/build/__tests__/behavioral/agents/RegisteringAnAgentAtBoot.test.d.ts +15 -0
- package/build/__tests__/behavioral/agents/RegisteringAnAgentAtBoot.test.js +94 -0
- package/build/__tests__/behavioral/agents/RegisteringAnAgentAtBoot.test.js.map +1 -0
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +0 -7
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.d.ts +7 -0
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js +116 -14
- package/build/__tests__/behavioral/permissions/SyncingPermissions.test.js.map +1 -1
- package/build/__tests__/behavioral/{SettingRemote.test.d.ts → remote/SettingRemote.test.d.ts} +2 -2
- package/build/__tests__/behavioral/{SettingRemote.test.js → remote/SettingRemote.test.js} +2 -2
- package/build/__tests__/behavioral/remote/SettingRemote.test.js.map +1 -0
- package/build/__tests__/behavioral/remote/SettingRemoteDoesNotAskTwice.test.d.ts +10 -0
- package/build/__tests__/behavioral/remote/SettingRemoteDoesNotAskTwice.test.js +67 -0
- package/build/__tests__/behavioral/remote/SettingRemoteDoesNotAskTwice.test.js.map +1 -0
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/TestingDataStores.test.js +3 -3
- package/build/__tests__/behavioral/tests/TestingDataStores.test.js.map +1 -1
- package/build/__tests__/support/EventFaker.d.ts +2 -0
- package/build/__tests__/support/EventFaker.js +7 -0
- package/build/__tests__/support/EventFaker.js.map +1 -1
- package/build/errors/SpruceError.js +3 -0
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/agentAlreadyRegistered.builder.d.ts +13 -0
- package/build/errors/agentAlreadyRegistered.builder.js +16 -0
- package/build/errors/agentAlreadyRegistered.builder.js.map +1 -0
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +1 -1
- package/build/features/FeatureInstallerFactory.js +3 -0
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/agent/AgentFeature.d.ts +22 -0
- package/build/features/agent/AgentFeature.js +24 -0
- package/build/features/agent/AgentFeature.js.map +1 -0
- package/build/features/agent/actions/RegisterAction.d.ts +54 -0
- package/build/features/agent/actions/RegisterAction.js +76 -0
- package/build/features/agent/actions/RegisterAction.js.map +1 -0
- package/build/features/agent/stores/AgentStore.d.ts +5 -0
- package/build/features/agent/stores/AgentStore.js +18 -0
- package/build/features/agent/stores/AgentStore.js.map +1 -0
- package/build/features/agent/writers/AgentWriter.d.ts +8 -0
- package/build/features/agent/writers/AgentWriter.js +31 -0
- package/build/features/agent/writers/AgentWriter.js.map +1 -0
- package/build/features/event/EventFeature.js +1 -0
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/permission/writers/PermissionWriter.js +10 -1
- package/build/features/permission/writers/PermissionWriter.js.map +1 -1
- package/build/stores/StoreFactory.d.ts +2 -0
- package/build/stores/StoreFactory.js +2 -0
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/tests/buildTestCache.js +7 -1
- package/build/tests/buildTestCache.js.map +1 -1
- package/build/tests/utilities/test.utility.js +3 -3
- package/build/writers/WriterFactory.d.ts +2 -0
- package/build/writers/WriterFactory.js +2 -0
- package/build/writers/WriterFactory.js.map +1 -1
- package/package.json +24 -24
- package/src/.spruce/errors/errors.types.ts +40 -9
- package/src/.spruce/errors/options.types.ts +4 -1
- package/src/.spruce/errors/spruceCli/agentAlreadyRegistered.schema.ts +24 -0
- package/src/__tests__/behavioral/agents/RegisteringAnAgentAtBoot.test.ts +99 -0
- package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +2 -7
- package/src/__tests__/behavioral/permissions/SyncingPermissions.test.ts +185 -52
- package/src/__tests__/behavioral/{SettingRemote.test.ts → remote/SettingRemote.test.ts} +3 -3
- package/src/__tests__/behavioral/remote/SettingRemoteDoesNotAskTwice.test.ts +68 -0
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +1 -1
- package/src/__tests__/behavioral/tests/TestingDataStores.test.ts +11 -3
- package/src/__tests__/support/EventFaker.ts +10 -0
- package/src/errors/SpruceError.ts +4 -0
- package/src/errors/agentAlreadyRegistered.builder.ts +14 -0
- package/src/features/ActionExecuter.ts +5 -4
- package/src/features/FeatureInstallerFactory.ts +3 -0
- package/src/features/agent/AgentFeature.ts +31 -0
- package/src/features/agent/actions/RegisterAction.ts +79 -0
- package/src/features/agent/stores/AgentStore.ts +16 -0
- package/src/features/agent/writers/AgentWriter.ts +54 -0
- package/src/features/event/EventFeature.ts +1 -0
- package/src/features/permission/writers/PermissionWriter.ts +11 -1
- package/src/stores/StoreFactory.ts +3 -0
- package/src/tests/buildTestCache.ts +9 -2
- package/src/tests/utilities/test.utility.ts +3 -3
- package/src/writers/WriterFactory.ts +3 -0
- package/build/__tests__/behavioral/SettingRemote.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionWriter.js","sourceRoot":"","sources":["../../../../src/features/permission/writers/PermissionWriter.ts"],"names":[],"mappings":";;;;;AACA,uEAAoE;AACpE,qFAA4D;AAG5D,MAAqB,gBAAiB,SAAQ,wBAAc;IACjD,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,GAA0B;QAC/D,MAAM,WAAW,GAAG,6BAAQ,CAAC,qBAAqB,CAC9C,GAAG,EACH,aAAa,EACb,sBAAsB,CACzB,CAAA;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"PermissionWriter.js","sourceRoot":"","sources":["../../../../src/features/permission/writers/PermissionWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import AgentStore from '../features/agent/stores/AgentStore';
|
|
1
2
|
import ConversationStore from '../features/conversation/stores/ConversationStore';
|
|
2
3
|
import EventStore from '../features/event/stores/EventStore';
|
|
3
4
|
import ListenerStore from '../features/event/stores/ListenerStore';
|
|
@@ -37,6 +38,7 @@ export interface StoreMap {
|
|
|
37
38
|
view: ViewStore;
|
|
38
39
|
listener: ListenerStore;
|
|
39
40
|
permission: PermissionStore;
|
|
41
|
+
agent: AgentStore;
|
|
40
42
|
}
|
|
41
43
|
export type StoreCode = keyof StoreMap;
|
|
42
44
|
export interface StoreFactoryOptions {
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const AgentStore_1 = __importDefault(require("../features/agent/stores/AgentStore"));
|
|
6
7
|
const ConversationStore_1 = __importDefault(require("../features/conversation/stores/ConversationStore"));
|
|
7
8
|
const EventStore_1 = __importDefault(require("../features/event/stores/EventStore"));
|
|
8
9
|
const ListenerStore_1 = __importDefault(require("../features/event/stores/ListenerStore"));
|
|
@@ -55,5 +56,6 @@ const storeMap = {
|
|
|
55
56
|
view: ViewStore_1.default,
|
|
56
57
|
listener: ListenerStore_1.default,
|
|
57
58
|
permission: PermissionStore_1.default,
|
|
59
|
+
agent: AgentStore_1.default,
|
|
58
60
|
};
|
|
59
61
|
//# sourceMappingURL=StoreFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreFactory.js","sourceRoot":"","sources":["../../src/stores/StoreFactory.ts"],"names":[],"mappings":";;;;;AAAA,0GAAiF;AACjF,qFAA4D;AAC5D,2FAAkE;AAClE,iGAAwE;AACxE,0GAAiF;AACjF,oGAA2E;AAC3E,wFAA+D;AAC/D,qFAE4C;AAC5C,qFAA4D;AAC5D,kFAAyD;AAKzD,MAAqB,YAAY;IACrB,cAAc,CAAgB;IAC9B,GAAG,CAAQ;IACX,OAAO,CAAQ;IACf,gBAAgB,CAAkB;IAClC,OAAO,CAAe;IAE9B,YAAmB,OAA4B;QAC3C,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAC7D,OAAO,CAAA;QAEX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,KAAK,CACR,IAAO,EACP,OAA+B;QAE/B,MAAM,YAAY,GAAG;YACjB,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB,EACZ,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC,gBAAgB;YACtD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,OAAO;SACb,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,IAAI,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAmB,CAAC,CAAA;QAErD,OAAO,KAAoB,CAAA;IAC/B,CAAC;CACJ;AAxCD,+BAwCC;
|
|
1
|
+
{"version":3,"file":"StoreFactory.js","sourceRoot":"","sources":["../../src/stores/StoreFactory.ts"],"names":[],"mappings":";;;;;AAAA,qFAA4D;AAC5D,0GAAiF;AACjF,qFAA4D;AAC5D,2FAAkE;AAClE,iGAAwE;AACxE,0GAAiF;AACjF,oGAA2E;AAC3E,wFAA+D;AAC/D,qFAE4C;AAC5C,qFAA4D;AAC5D,kFAAyD;AAKzD,MAAqB,YAAY;IACrB,cAAc,CAAgB;IAC9B,GAAG,CAAQ;IACX,OAAO,CAAQ;IACf,gBAAgB,CAAkB;IAClC,OAAO,CAAe;IAE9B,YAAmB,OAA4B;QAC3C,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAC7D,OAAO,CAAA;QAEX,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,KAAK,CACR,IAAO,EACP,OAA+B;QAE/B,MAAM,YAAY,GAAG;YACjB,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB,EACZ,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC,gBAAgB;YACtD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,OAAO;SACb,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,IAAI,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAmB,CAAC,CAAA;QAErD,OAAO,KAAoB,CAAA;IAC/B,CAAC;CACJ;AAxCD,+BAwCC;AA2BD,MAAM,QAAQ,GAAG;IACb,UAAU,EAAE,yBAAe;IAC3B,MAAM,EAAE,qBAAW;IACnB,KAAK,EAAE,oBAAU;IACjB,KAAK,EAAE,oBAAc;IACrB,YAAY,EAAE,2BAAiB;IAC/B,YAAY,EAAE,2BAAiB;IAC/B,KAAK,EAAE,oBAAU;IACjB,IAAI,EAAE,mBAAS;IACf,QAAQ,EAAE,uBAAa;IACvB,UAAU,EAAE,yBAAe;IAC3B,KAAK,EAAE,oBAAU;CACpB,CAAA"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const child_process_1 = require("child_process");
|
|
8
|
+
const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils");
|
|
8
9
|
const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
|
|
9
10
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
10
11
|
const TerminalInterface_1 = __importDefault(require("../interfaces/TerminalInterface"));
|
|
@@ -151,10 +152,15 @@ async function run() {
|
|
|
151
152
|
renderWarning(lineNum, `Found cached '${cacheKey}', but deleted it since it was not in the cache tracker...`, [graphicsInterface_types_1.GraphicsTextEffect.Italic]);
|
|
152
153
|
spruce_skill_utils_1.diskUtil.deleteDir(cwd);
|
|
153
154
|
}
|
|
154
|
-
renderLine(lineNum, `
|
|
155
|
+
renderLine(lineNum, `Building '${cacheKey}'...`, [
|
|
155
156
|
graphicsInterface_types_1.GraphicsTextEffect.Green,
|
|
156
157
|
]);
|
|
157
158
|
try {
|
|
159
|
+
const env = new spruce_skill_utils_1.EnvService(cwd);
|
|
160
|
+
const remote = new spruce_event_utils_1.RemoteService(env);
|
|
161
|
+
if (!remote.getHost()) {
|
|
162
|
+
remote.set('local');
|
|
163
|
+
}
|
|
158
164
|
await fixture.installFeatures(options, cacheKey);
|
|
159
165
|
renderLine(lineNum, `Done caching '${cacheKey}'. ${remaining - 1} remaining (${duration_utility_1.default.msToFriendly(getTimeSpent())})...`, [graphicsInterface_types_1.GraphicsTextEffect.Green, graphicsInterface_types_1.GraphicsTextEffect.Bold]);
|
|
160
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildTestCache.js","sourceRoot":"","sources":["../../src/tests/buildTestCache.ts"],"names":[],"mappings":";;;;;;AACA,iDAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"buildTestCache.js","sourceRoot":"","sources":["../../src/tests/buildTestCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,9 +46,9 @@ const testUtil = {
|
|
|
46
46
|
test_utils_1.assert.isEqual(skipped, options.skipped, `Skipped the wrong number of files. Got ${skipped} but expected ${options.skipped}.`);
|
|
47
47
|
},
|
|
48
48
|
assertFileByNameInGeneratedFiles(name, files) {
|
|
49
|
-
const
|
|
50
|
-
test_utils_1.assert.isTruthy(
|
|
51
|
-
return
|
|
49
|
+
const path = (files ?? []).find((f) => f.name.search(name) > -1)?.path;
|
|
50
|
+
test_utils_1.assert.isTruthy(path, `file named '${name}' not found in generated files.\n\n${JSON.stringify(files ?? [], null, 2)}`);
|
|
51
|
+
return path;
|
|
52
52
|
},
|
|
53
53
|
assertFileByPathInGeneratedFiles(path, files) {
|
|
54
54
|
const file = (files ?? []).find((f) => f.path.search(path) > -1)?.path;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SettingsService } from '@sprucelabs/spruce-skill-utils';
|
|
2
2
|
import { Templates } from '@sprucelabs/spruce-templates';
|
|
3
|
+
import AgentWriter from '../features/agent/writers/AgentWriter';
|
|
3
4
|
import ConversationWriter from '../features/conversation/writers/ConversationWriter';
|
|
4
5
|
import DeployWriter from '../features/deploy/writers/DeployWriter';
|
|
5
6
|
import ErrorWriter from '../features/error/writers/ErrorWriter';
|
|
@@ -53,5 +54,6 @@ export interface WriterMap {
|
|
|
53
54
|
log: LogWriter;
|
|
54
55
|
polish: PolishWriter;
|
|
55
56
|
permission: PermissionWriter;
|
|
57
|
+
agent: AgentWriter;
|
|
56
58
|
}
|
|
57
59
|
export type WriterCode = keyof WriterMap;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const AgentWriter_1 = __importDefault(require("../features/agent/writers/AgentWriter"));
|
|
6
7
|
const ConversationWriter_1 = __importDefault(require("../features/conversation/writers/ConversationWriter"));
|
|
7
8
|
const DeployWriter_1 = __importDefault(require("../features/deploy/writers/DeployWriter"));
|
|
8
9
|
const ErrorWriter_1 = __importDefault(require("../features/error/writers/ErrorWriter"));
|
|
@@ -24,6 +25,7 @@ const classMap = {
|
|
|
24
25
|
schema: SchemaWriter_1.default,
|
|
25
26
|
skill: SkillWriter_1.default,
|
|
26
27
|
test: TestWriter_1.default,
|
|
28
|
+
agent: AgentWriter_1.default,
|
|
27
29
|
node: NodeWriter_1.default,
|
|
28
30
|
vscode: VsCodeWriter_1.default,
|
|
29
31
|
conversation: ConversationWriter_1.default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriterFactory.js","sourceRoot":"","sources":["../../src/writers/WriterFactory.ts"],"names":[],"mappings":";;;;;AAEA,6GAAoF;AACpF,2FAAkE;AAClE,wFAA+D;AAC/D,wFAA+D;AAC/D,kFAAyD;AACzD,qFAA4D;AAC5D,uGAA8E;AAC9E,2FAAkE;AAClE,8FAAqE;AACrE,2FAAkE;AAClE,wFAAkE;AAClE,wFAA+D;AAC/D,qFAA4D;AAC5D,qFAA4D;AAC5D,2FAAkE;AAMlE,MAAM,QAAQ,GAAG;IACb,KAAK,EAAE,qBAAW;IAClB,KAAK,EAAE,qBAAW;IAClB,MAAM,EAAE,sBAAY;IACpB,KAAK,EAAE,qBAAc;IACrB,IAAI,EAAE,oBAAU;IAChB,IAAI,EAAE,oBAAU;IAChB,MAAM,EAAE,sBAAY;IACpB,YAAY,EAAE,4BAAkB;IAChC,MAAM,EAAE,sBAAY;IACpB,OAAO,EAAE,uBAAa;IACtB,KAAK,EAAE,qBAAW;IAClB,IAAI,EAAE,oBAAU;IAChB,GAAG,EAAE,mBAAS;IACd,MAAM,EAAE,sBAAY;IACpB,UAAU,EAAE,0BAAgB;CAC/B,CAAA;AAED,MAAqB,aAAa;IACtB,SAAS,CAAW;IACpB,EAAE,CAAmB;IACrB,MAAM,CAAc;IACpB,QAAQ,CAAyB;IAEjC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAElC,YAAmB,OAKlB;QACG,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAEnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAK;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAgB,EAAE,MAAW;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;IAChC,CAAC;IAEM,MAAM,CACT,IAAO,EACP,OAEC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE1C,OAAO,IAAI,KAAK,CAAC;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACrB,CAAiB,CAAA;IACtB,CAAC;;AA7CL,gCA8CC"}
|
|
1
|
+
{"version":3,"file":"WriterFactory.js","sourceRoot":"","sources":["../../src/writers/WriterFactory.ts"],"names":[],"mappings":";;;;;AAEA,wFAA+D;AAC/D,6GAAoF;AACpF,2FAAkE;AAClE,wFAA+D;AAC/D,wFAA+D;AAC/D,kFAAyD;AACzD,qFAA4D;AAC5D,uGAA8E;AAC9E,2FAAkE;AAClE,8FAAqE;AACrE,2FAAkE;AAClE,wFAAkE;AAClE,wFAA+D;AAC/D,qFAA4D;AAC5D,qFAA4D;AAC5D,2FAAkE;AAMlE,MAAM,QAAQ,GAAG;IACb,KAAK,EAAE,qBAAW;IAClB,KAAK,EAAE,qBAAW;IAClB,MAAM,EAAE,sBAAY;IACpB,KAAK,EAAE,qBAAc;IACrB,IAAI,EAAE,oBAAU;IAChB,KAAK,EAAE,qBAAW;IAClB,IAAI,EAAE,oBAAU;IAChB,MAAM,EAAE,sBAAY;IACpB,YAAY,EAAE,4BAAkB;IAChC,MAAM,EAAE,sBAAY;IACpB,OAAO,EAAE,uBAAa;IACtB,KAAK,EAAE,qBAAW;IAClB,IAAI,EAAE,oBAAU;IAChB,GAAG,EAAE,mBAAS;IACd,MAAM,EAAE,sBAAY;IACpB,UAAU,EAAE,0BAAgB;CAC/B,CAAA;AAED,MAAqB,aAAa;IACtB,SAAS,CAAW;IACpB,EAAE,CAAmB;IACrB,MAAM,CAAc;IACpB,QAAQ,CAAyB;IAEjC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAElC,YAAmB,OAKlB;QACG,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAEnD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAK;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAgB,EAAE,MAAW;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;IAChC,CAAC;IAEM,MAAM,CACT,IAAO,EACP,OAEC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE1C,OAAO,IAAI,KAAK,CAAC;YACb,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACrB,CAAiB,CAAA;IACtB,CAAC;;AA7CL,gCA8CC"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "28.1
|
|
7
|
+
"version": "28.2.1",
|
|
8
8
|
"skill": {
|
|
9
9
|
"namespace": "spruce-cli",
|
|
10
10
|
"upgradeIgnoreList": [
|
|
@@ -74,18 +74,18 @@
|
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@jest/reporters": "^30.2.0",
|
|
77
|
-
"@sprucelabs/error": "^7.1.
|
|
77
|
+
"@sprucelabs/error": "^7.1.28",
|
|
78
78
|
"@sprucelabs/globby": "^2.0.506",
|
|
79
|
-
"@sprucelabs/jest-json-reporter": "^9.0.
|
|
80
|
-
"@sprucelabs/mercury-client": "^43.0.
|
|
81
|
-
"@sprucelabs/mercury-core-events": "^27.
|
|
82
|
-
"@sprucelabs/mercury-event-emitter": "^43.0.
|
|
83
|
-
"@sprucelabs/mercury-types": "^48.0.
|
|
84
|
-
"@sprucelabs/schema": "^32.1.
|
|
85
|
-
"@sprucelabs/spruce-core-schemas": "^41.
|
|
86
|
-
"@sprucelabs/spruce-event-utils": "^41.0.
|
|
87
|
-
"@sprucelabs/spruce-skill-utils": "^32.0.
|
|
88
|
-
"@sprucelabs/spruce-templates": "^28.1
|
|
79
|
+
"@sprucelabs/jest-json-reporter": "^9.0.61",
|
|
80
|
+
"@sprucelabs/mercury-client": "^43.0.150",
|
|
81
|
+
"@sprucelabs/mercury-core-events": "^27.4.4",
|
|
82
|
+
"@sprucelabs/mercury-event-emitter": "^43.0.150",
|
|
83
|
+
"@sprucelabs/mercury-types": "^48.0.112",
|
|
84
|
+
"@sprucelabs/schema": "^32.1.59",
|
|
85
|
+
"@sprucelabs/spruce-core-schemas": "^41.3.7",
|
|
86
|
+
"@sprucelabs/spruce-event-utils": "^41.0.126",
|
|
87
|
+
"@sprucelabs/spruce-skill-utils": "^32.0.116",
|
|
88
|
+
"@sprucelabs/spruce-templates": "^28.2.1",
|
|
89
89
|
"@typescript-eslint/eslint-plugin": "^8.45.0",
|
|
90
90
|
"@typescript-eslint/parser": "^8.45.0",
|
|
91
91
|
"cfonts": "^3.3.1",
|
|
@@ -109,22 +109,22 @@
|
|
|
109
109
|
"typescript": "^5.9.3"
|
|
110
110
|
},
|
|
111
111
|
"devDependencies": {
|
|
112
|
-
"@sprucelabs/data-stores": "^30.0.
|
|
113
|
-
"@sprucelabs/heartwood-view-controllers": "^126.11.
|
|
114
|
-
"@sprucelabs/resolve-path-aliases": "^3.0.
|
|
115
|
-
"@sprucelabs/spruce-conversation-plugin": "^74.1.
|
|
116
|
-
"@sprucelabs/spruce-deploy-plugin": "^74.1.
|
|
117
|
-
"@sprucelabs/spruce-store-plugin": "^74.1.
|
|
118
|
-
"@sprucelabs/spruce-test-fixtures": "^74.1.
|
|
119
|
-
"@sprucelabs/test": "^10.0.
|
|
120
|
-
"@sprucelabs/test-utils": "^6.0.
|
|
112
|
+
"@sprucelabs/data-stores": "^30.0.81",
|
|
113
|
+
"@sprucelabs/heartwood-view-controllers": "^126.11.11",
|
|
114
|
+
"@sprucelabs/resolve-path-aliases": "^3.0.28",
|
|
115
|
+
"@sprucelabs/spruce-conversation-plugin": "^74.1.32",
|
|
116
|
+
"@sprucelabs/spruce-deploy-plugin": "^74.1.32",
|
|
117
|
+
"@sprucelabs/spruce-store-plugin": "^74.1.32",
|
|
118
|
+
"@sprucelabs/spruce-test-fixtures": "^74.1.32",
|
|
119
|
+
"@sprucelabs/test": "^10.0.24",
|
|
120
|
+
"@sprucelabs/test-utils": "^6.0.94",
|
|
121
121
|
"@types/blessed": "^0.1.25",
|
|
122
122
|
"@types/eslint": "^9.6.1",
|
|
123
123
|
"@types/fs-extra": "^11.0.4",
|
|
124
124
|
"@types/inquirer": "^9.0.9",
|
|
125
125
|
"@types/lodash": "^4.17.20",
|
|
126
126
|
"@types/md5": "^2.3.5",
|
|
127
|
-
"@types/node": "^24.6.
|
|
127
|
+
"@types/node": "^24.6.2",
|
|
128
128
|
"@types/promise.allsettled": "^1.0.6",
|
|
129
129
|
"@types/ps-node": "^0.1.3",
|
|
130
130
|
"@types/semver": "^7.7.1",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"concurrently": "^9.2.1",
|
|
137
137
|
"conventional-changelog-sprucelabs": "2.0.1",
|
|
138
138
|
"dotenv": "^17.2.3",
|
|
139
|
-
"eslint": "^9.
|
|
139
|
+
"eslint": "^9.37.0",
|
|
140
140
|
"eslint-config-spruce": "^11.2.26",
|
|
141
141
|
"find-process": "^2.0.0",
|
|
142
142
|
"jest": "^30.2.0",
|
|
@@ -570,5 +570,5 @@
|
|
|
570
570
|
"conventional-changelog-sprucelabs"
|
|
571
571
|
]
|
|
572
572
|
},
|
|
573
|
-
"gitHead": "
|
|
573
|
+
"gitHead": "115e161f24f1c68f5ac121b2255d05ece86223ea"
|
|
574
574
|
}
|
|
@@ -47,6 +47,7 @@ import AbstractSpruceError from '@sprucelabs/error'
|
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
|
|
50
|
+
|
|
50
51
|
|
|
51
52
|
|
|
52
53
|
export declare namespace SpruceErrors.SpruceCli {
|
|
@@ -369,7 +370,7 @@ export declare namespace SpruceErrors.SpruceCli {
|
|
|
369
370
|
/** Schema id. */
|
|
370
371
|
'schemaId': string
|
|
371
372
|
/** Destination. */
|
|
372
|
-
'destination'?: string| undefined | null
|
|
373
|
+
'destination'?: string | undefined | null
|
|
373
374
|
}
|
|
374
375
|
|
|
375
376
|
export interface SchemaExistsSchema extends SpruceSchema.Schema {
|
|
@@ -733,7 +734,7 @@ export declare namespace SpruceErrors.SpruceCli {
|
|
|
733
734
|
export interface Generic {
|
|
734
735
|
|
|
735
736
|
/** Friendly message. */
|
|
736
|
-
'friendlyMessageSet'?: string| undefined | null
|
|
737
|
+
'friendlyMessageSet'?: string | undefined | null
|
|
737
738
|
}
|
|
738
739
|
|
|
739
740
|
export interface GenericSchema extends SpruceSchema.Schema {
|
|
@@ -852,15 +853,15 @@ export declare namespace SpruceErrors.SpruceCli {
|
|
|
852
853
|
export interface ExecutingCommandFailed {
|
|
853
854
|
|
|
854
855
|
/** The command being run. */
|
|
855
|
-
'cmd'?: string| undefined | null
|
|
856
|
+
'cmd'?: string | undefined | null
|
|
856
857
|
/** Args. */
|
|
857
|
-
'args'?: string[]| undefined | null
|
|
858
|
+
'args'?: string[] | undefined | null
|
|
858
859
|
/** Cwd. */
|
|
859
|
-
'cwd'?: string| undefined | null
|
|
860
|
+
'cwd'?: string | undefined | null
|
|
860
861
|
/** Stdout. */
|
|
861
|
-
'stdout'?: string| undefined | null
|
|
862
|
+
'stdout'?: string | undefined | null
|
|
862
863
|
/** stderr. */
|
|
863
|
-
'stderr'?: string| undefined | null
|
|
864
|
+
'stderr'?: string | undefined | null
|
|
864
865
|
}
|
|
865
866
|
|
|
866
867
|
export interface ExecutingCommandFailedSchema extends SpruceSchema.Schema {
|
|
@@ -1102,7 +1103,7 @@ export declare namespace SpruceErrors.SpruceCli {
|
|
|
1102
1103
|
/** Command. the command being run! */
|
|
1103
1104
|
'command': string
|
|
1104
1105
|
/** Args. Arguments passed to the command */
|
|
1105
|
-
'args'?: string[]| undefined | null
|
|
1106
|
+
'args'?: string[] | undefined | null
|
|
1106
1107
|
}
|
|
1107
1108
|
|
|
1108
1109
|
export interface CommandNotImplementedSchema extends SpruceSchema.Schema {
|
|
@@ -1246,7 +1247,7 @@ export declare namespace SpruceErrors.SpruceCli {
|
|
|
1246
1247
|
export interface BuildFailed {
|
|
1247
1248
|
|
|
1248
1249
|
/** File. File we wanted to build, if not set we wanted to build everything.. */
|
|
1249
|
-
'file'?: string| undefined | null
|
|
1250
|
+
'file'?: string | undefined | null
|
|
1250
1251
|
}
|
|
1251
1252
|
|
|
1252
1253
|
export interface BuildFailedSchema extends SpruceSchema.Schema {
|
|
@@ -1310,6 +1311,36 @@ export declare namespace SpruceErrors.SpruceCli {
|
|
|
1310
1311
|
}
|
|
1311
1312
|
|
|
1312
1313
|
|
|
1314
|
+
export declare namespace SpruceErrors.SpruceCli {
|
|
1315
|
+
|
|
1316
|
+
|
|
1317
|
+
export interface AgentAlreadyRegistered {
|
|
1318
|
+
|
|
1319
|
+
/** Prompt Path. The path to the existing agent prompt file. */
|
|
1320
|
+
'promptPath': string
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
export interface AgentAlreadyRegisteredSchema extends SpruceSchema.Schema {
|
|
1324
|
+
id: 'agentAlreadyRegistered',
|
|
1325
|
+
namespace: 'SpruceCli',
|
|
1326
|
+
name: 'agent already registered',
|
|
1327
|
+
fields: {
|
|
1328
|
+
/** Prompt Path. The path to the existing agent prompt file. */
|
|
1329
|
+
'promptPath': {
|
|
1330
|
+
label: 'Prompt Path',
|
|
1331
|
+
type: 'text',
|
|
1332
|
+
isRequired: true,
|
|
1333
|
+
hint: 'The path to the existing agent prompt file.',
|
|
1334
|
+
options: undefined
|
|
1335
|
+
},
|
|
1336
|
+
}
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1339
|
+
export type AgentAlreadyRegisteredEntity = SchemaEntity<SpruceErrors.SpruceCli.AgentAlreadyRegisteredSchema>
|
|
1340
|
+
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
|
|
1313
1344
|
export declare namespace SpruceErrors.SpruceCli {
|
|
1314
1345
|
|
|
1315
1346
|
|
|
@@ -127,10 +127,13 @@ export interface BootErrorErrorOptions extends SpruceErrors.SpruceCli.BootError,
|
|
|
127
127
|
export interface AppControllerAlreadyExistsErrorOptions extends SpruceErrors.SpruceCli.AppControllerAlreadyExists, ISpruceErrorOptions {
|
|
128
128
|
code: 'APP_CONTROLLER_ALREADY_EXISTS'
|
|
129
129
|
}
|
|
130
|
+
export interface AgentAlreadyRegisteredErrorOptions extends SpruceErrors.SpruceCli.AgentAlreadyRegistered, ISpruceErrorOptions {
|
|
131
|
+
code: 'AGENT_ALREADY_REGISTERED'
|
|
132
|
+
}
|
|
130
133
|
export interface ActionCancelledErrorOptions extends SpruceErrors.SpruceCli.ActionCancelled, ISpruceErrorOptions {
|
|
131
134
|
code: 'ACTION_CANCELLED'
|
|
132
135
|
}
|
|
133
136
|
|
|
134
|
-
type ErrorOptions = | VscodeNotInstalledErrorOptions | ViewPluginAlreadyExistsErrorOptions | TransportAlreadyExistsErrorOptions | ThemeExistsErrorOptions | TestFailedErrorOptions | StoreExistsErrorOptions | SkillViewExistsErrorOptions | SkillNotRegisteredErrorOptions | SkillNotFoundErrorOptions | SchemaTemplateItemBuildingFailedErrorOptions | SchemaFailedToImportErrorOptions | SchemaExistsErrorOptions | NotLoggedInErrorOptions | NotImplementedErrorOptions | NoSkillsRegisteredErrorOptions | NoOrganizationsFoundErrorOptions | MissingDependenciesErrorOptions | MercuryResponseErrorErrorOptions | LintFailedErrorOptions | InvalidTestDirectoryErrorOptions | InvalidFeatureCodeErrorOptions | InvalidEventContractErrorOptions | InvalidCommandErrorOptions | GenericErrorOptions | FileExistsErrorOptions | FeatureNotInstalledErrorOptions | FailedToImportErrorOptions | ExecutingCommandFailedErrorOptions | DockerNotStartedErrorOptions | DirectoryNotSkillErrorOptions | DirectoryEmptyErrorOptions | DeployFailedErrorOptions | DependencyExistsErrorOptions | CreateAutoloaderFailedErrorOptions | CommandNotImplementedErrorOptions | CommandBlockedErrorOptions | CommandAbortedErrorOptions | CannotPromptInCiErrorOptions | CacheNotEnabledErrorOptions | BuildFailedErrorOptions | BootErrorErrorOptions | AppControllerAlreadyExistsErrorOptions | ActionCancelledErrorOptions
|
|
137
|
+
type ErrorOptions = | VscodeNotInstalledErrorOptions | ViewPluginAlreadyExistsErrorOptions | TransportAlreadyExistsErrorOptions | ThemeExistsErrorOptions | TestFailedErrorOptions | StoreExistsErrorOptions | SkillViewExistsErrorOptions | SkillNotRegisteredErrorOptions | SkillNotFoundErrorOptions | SchemaTemplateItemBuildingFailedErrorOptions | SchemaFailedToImportErrorOptions | SchemaExistsErrorOptions | NotLoggedInErrorOptions | NotImplementedErrorOptions | NoSkillsRegisteredErrorOptions | NoOrganizationsFoundErrorOptions | MissingDependenciesErrorOptions | MercuryResponseErrorErrorOptions | LintFailedErrorOptions | InvalidTestDirectoryErrorOptions | InvalidFeatureCodeErrorOptions | InvalidEventContractErrorOptions | InvalidCommandErrorOptions | GenericErrorOptions | FileExistsErrorOptions | FeatureNotInstalledErrorOptions | FailedToImportErrorOptions | ExecutingCommandFailedErrorOptions | DockerNotStartedErrorOptions | DirectoryNotSkillErrorOptions | DirectoryEmptyErrorOptions | DeployFailedErrorOptions | DependencyExistsErrorOptions | CreateAutoloaderFailedErrorOptions | CommandNotImplementedErrorOptions | CommandBlockedErrorOptions | CommandAbortedErrorOptions | CannotPromptInCiErrorOptions | CacheNotEnabledErrorOptions | BuildFailedErrorOptions | BootErrorErrorOptions | AppControllerAlreadyExistsErrorOptions | AgentAlreadyRegisteredErrorOptions | ActionCancelledErrorOptions
|
|
135
138
|
|
|
136
139
|
export default ErrorOptions
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SchemaRegistry } from '@sprucelabs/schema'
|
|
2
|
+
import { SpruceErrors } from '../errors.types'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
const agentAlreadyRegisteredSchema: SpruceErrors.SpruceCli.AgentAlreadyRegisteredSchema = {
|
|
7
|
+
id: 'agentAlreadyRegistered',
|
|
8
|
+
namespace: 'SpruceCli',
|
|
9
|
+
name: 'agent already registered',
|
|
10
|
+
fields: {
|
|
11
|
+
/** Prompt Path. The path to the existing agent prompt file. */
|
|
12
|
+
'promptPath': {
|
|
13
|
+
label: 'Prompt Path',
|
|
14
|
+
type: 'text',
|
|
15
|
+
isRequired: true,
|
|
16
|
+
hint: 'The path to the existing agent prompt file.',
|
|
17
|
+
options: undefined
|
|
18
|
+
},
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
SchemaRegistry.getInstance().trackSchema(agentAlreadyRegisteredSchema)
|
|
23
|
+
|
|
24
|
+
export default agentAlreadyRegisteredSchema
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { assert, generateId, test } from '@sprucelabs/test-utils'
|
|
2
|
+
import AgentStore from '../../../features/agent/stores/AgentStore'
|
|
3
|
+
import { SkillStore } from '../../../features/skill/stores/SkillStore'
|
|
4
|
+
import AbstractSkillTest from '../../../tests/AbstractSkillTest'
|
|
5
|
+
|
|
6
|
+
export default class RegisteringAnAgentAtBootTest extends AbstractSkillTest {
|
|
7
|
+
protected static skillCacheKey = 'events'
|
|
8
|
+
private static agentName = generateId()
|
|
9
|
+
private static agents: AgentStore
|
|
10
|
+
private static skills: SkillStore
|
|
11
|
+
|
|
12
|
+
protected static async beforeEach() {
|
|
13
|
+
await super.beforeEach()
|
|
14
|
+
this.agents = this.Store('agent')
|
|
15
|
+
this.skills = this.Store('skill')
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@test()
|
|
19
|
+
protected static async canCreateRegisteringAnAgentAtBoot() {
|
|
20
|
+
const results = await this.register()
|
|
21
|
+
|
|
22
|
+
const expectedPlugin = this.resolvePath(
|
|
23
|
+
'src',
|
|
24
|
+
'.spruce',
|
|
25
|
+
'features',
|
|
26
|
+
'agent.plugin.ts'
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
const expectedPrompt = this.resolvePath('agents/SYSTEM_PROMPT.md')
|
|
30
|
+
assert.isEqualDeep(results.files, [
|
|
31
|
+
{
|
|
32
|
+
path: expectedPlugin,
|
|
33
|
+
name: 'agent.plugin.ts',
|
|
34
|
+
action: 'generated',
|
|
35
|
+
description: 'Supports your skill with registering ai agents.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
path: expectedPrompt,
|
|
39
|
+
name: 'SYSTEM_PROMPT.md',
|
|
40
|
+
action: 'generated',
|
|
41
|
+
description: `The prompt file that defines how your AI Platform Agent behaves.`,
|
|
42
|
+
},
|
|
43
|
+
])
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@test()
|
|
47
|
+
protected static async bootingRegistersTheAgent() {
|
|
48
|
+
await this.loginAndRegisterSkill()
|
|
49
|
+
await this.boot()
|
|
50
|
+
|
|
51
|
+
const agent = await this.getPlatformAgent()
|
|
52
|
+
|
|
53
|
+
assert.isTruthy(agent, 'Did not register an agent at boot.')
|
|
54
|
+
assert.isEqual(
|
|
55
|
+
agent.name,
|
|
56
|
+
this.agentName,
|
|
57
|
+
'Did not set name correctly.'
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@test()
|
|
62
|
+
protected static async returnsAnErrorIfAlreadyRegistered() {
|
|
63
|
+
const results = await this.register()
|
|
64
|
+
assert.isFalsy(results.files, 'Should not have created files.')
|
|
65
|
+
assert.isTruthy(results.errors, 'Should have errors.')
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private static async register() {
|
|
69
|
+
return await this.Action('agent', 'register', {
|
|
70
|
+
shouldAutoHandleDependencies: true,
|
|
71
|
+
}).execute({
|
|
72
|
+
type: 'system',
|
|
73
|
+
name: this.agentName,
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private static async loginAndRegisterSkill() {
|
|
78
|
+
await this.people.loginAsDemoPerson()
|
|
79
|
+
await this.skills.register({
|
|
80
|
+
name: 'Agent skill',
|
|
81
|
+
})
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
private static async boot() {
|
|
85
|
+
await this.Action('skill', 'boot').execute({
|
|
86
|
+
local: true,
|
|
87
|
+
onData: (data: string) => {
|
|
88
|
+
this.log(`Boot Log: ${data}`)
|
|
89
|
+
},
|
|
90
|
+
onError: (data: string) => {
|
|
91
|
+
this.log(`Boot Error: ${data}`)
|
|
92
|
+
},
|
|
93
|
+
})
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
private static async getPlatformAgent() {
|
|
97
|
+
return await this.agents.getPlatformAgent()
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -39,23 +39,18 @@ export default class StartingOnboardingTest extends AbstractCliTest {
|
|
|
39
39
|
|
|
40
40
|
// get through first onboarding script and select short onboarding
|
|
41
41
|
await this.waitForInput()
|
|
42
|
-
debugger
|
|
43
42
|
|
|
44
43
|
await this.ui.sendInput('\n')
|
|
45
|
-
|
|
44
|
+
|
|
46
45
|
await this.waitForInput()
|
|
47
|
-
debugger
|
|
48
46
|
|
|
49
47
|
await this.ui.sendInput('immersive')
|
|
50
|
-
|
|
48
|
+
|
|
51
49
|
await this.waitForInput()
|
|
52
|
-
debugger
|
|
53
50
|
|
|
54
51
|
await this.ui.sendInput('\n')
|
|
55
|
-
debugger
|
|
56
52
|
|
|
57
53
|
await onboardPromise
|
|
58
|
-
debugger
|
|
59
54
|
|
|
60
55
|
const onboardingStore = this.Store('onboarding')
|
|
61
56
|
assert.isEqual(onboardingStore.getMode(), 'immersive')
|