@transcend-io/cli 4.108.0 → 4.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +103 -3
  2. package/build/ai/TranscendPromptManager.d.ts +137 -0
  3. package/build/ai/TranscendPromptManager.d.ts.map +1 -0
  4. package/build/ai/TranscendPromptManager.js +159 -0
  5. package/build/ai/TranscendPromptManager.js.map +1 -0
  6. package/build/ai/index.d.ts +1 -1
  7. package/build/ai/index.d.ts.map +1 -1
  8. package/build/ai/index.js +1 -1
  9. package/build/ai/index.js.map +1 -1
  10. package/build/codecs.d.ts +95 -1
  11. package/build/codecs.d.ts.map +1 -1
  12. package/build/codecs.js +56 -2
  13. package/build/codecs.js.map +1 -1
  14. package/build/constants.d.ts.map +1 -1
  15. package/build/constants.js +8 -0
  16. package/build/constants.js.map +1 -1
  17. package/build/enums.d.ts +5 -1
  18. package/build/enums.d.ts.map +1 -1
  19. package/build/enums.js +4 -0
  20. package/build/enums.js.map +1 -1
  21. package/build/graphql/fetchAllActions.js +1 -1
  22. package/build/graphql/fetchAllActions.js.map +1 -1
  23. package/build/graphql/fetchAllAttributeKeys.js +1 -1
  24. package/build/graphql/fetchAllAttributeKeys.js.map +1 -1
  25. package/build/graphql/fetchAllBusinessEntities.js +1 -1
  26. package/build/graphql/fetchAllBusinessEntities.js.map +1 -1
  27. package/build/graphql/fetchAssessmentTemplates.js +1 -1
  28. package/build/graphql/fetchAssessmentTemplates.js.map +1 -1
  29. package/build/graphql/fetchAssessments.js +1 -1
  30. package/build/graphql/fetchAssessments.js.map +1 -1
  31. package/build/graphql/fetchIdentifiers.js +1 -1
  32. package/build/graphql/fetchIdentifiers.js.map +1 -1
  33. package/build/graphql/fetchPromptGroups.d.ts +22 -0
  34. package/build/graphql/fetchPromptGroups.d.ts.map +1 -0
  35. package/build/graphql/fetchPromptGroups.js +32 -0
  36. package/build/graphql/fetchPromptGroups.js.map +1 -0
  37. package/build/graphql/fetchPromptPartials.d.ts +17 -0
  38. package/build/graphql/fetchPromptPartials.d.ts.map +1 -0
  39. package/build/graphql/fetchPromptPartials.js +32 -0
  40. package/build/graphql/fetchPromptPartials.js.map +1 -0
  41. package/build/graphql/fetchPromptTemplates.d.ts +17 -0
  42. package/build/graphql/fetchPromptTemplates.d.ts.map +1 -0
  43. package/build/graphql/fetchPromptTemplates.js +32 -0
  44. package/build/graphql/fetchPromptTemplates.js.map +1 -0
  45. package/build/graphql/fetchPrompts.d.ts +83 -0
  46. package/build/graphql/fetchPrompts.d.ts.map +1 -0
  47. package/build/graphql/fetchPrompts.js +55 -0
  48. package/build/graphql/fetchPrompts.js.map +1 -0
  49. package/build/graphql/gqls/assessment.js +1 -1
  50. package/build/graphql/gqls/index.d.ts +1 -0
  51. package/build/graphql/gqls/index.d.ts.map +1 -1
  52. package/build/graphql/gqls/index.js +1 -0
  53. package/build/graphql/gqls/index.js.map +1 -1
  54. package/build/graphql/gqls/prompt.d.ts +14 -0
  55. package/build/graphql/gqls/prompt.d.ts.map +1 -0
  56. package/build/graphql/gqls/prompt.js +183 -0
  57. package/build/graphql/gqls/prompt.js.map +1 -0
  58. package/build/graphql/index.d.ts +5 -0
  59. package/build/graphql/index.d.ts.map +1 -1
  60. package/build/graphql/index.js +5 -0
  61. package/build/graphql/index.js.map +1 -1
  62. package/build/graphql/pullTranscendConfiguration.d.ts.map +1 -1
  63. package/build/graphql/pullTranscendConfiguration.js +50 -1
  64. package/build/graphql/pullTranscendConfiguration.js.map +1 -1
  65. package/build/graphql/syncConfigurationToTranscend.d.ts.map +1 -1
  66. package/build/graphql/syncConfigurationToTranscend.js +22 -1
  67. package/build/graphql/syncConfigurationToTranscend.js.map +1 -1
  68. package/build/graphql/syncDataSilos.js +2 -2
  69. package/build/graphql/syncDataSilos.js.map +1 -1
  70. package/build/graphql/syncEnrichers.js +2 -2
  71. package/build/graphql/syncEnrichers.js.map +1 -1
  72. package/build/graphql/syncPromptGroups.d.ts +34 -0
  73. package/build/graphql/syncPromptGroups.d.ts.map +1 -0
  74. package/build/graphql/syncPromptGroups.js +126 -0
  75. package/build/graphql/syncPromptGroups.js.map +1 -0
  76. package/build/graphql/syncPromptPartials.d.ts +32 -0
  77. package/build/graphql/syncPromptPartials.d.ts.map +1 -0
  78. package/build/graphql/syncPromptPartials.js +102 -0
  79. package/build/graphql/syncPromptPartials.js.map +1 -0
  80. package/build/graphql/syncPromptTemplates.d.ts +32 -0
  81. package/build/graphql/syncPromptTemplates.d.ts.map +1 -0
  82. package/build/graphql/syncPromptTemplates.js +102 -0
  83. package/build/graphql/syncPromptTemplates.js.map +1 -0
  84. package/build/graphql/syncPrompts.d.ts +32 -0
  85. package/build/graphql/syncPrompts.d.ts.map +1 -0
  86. package/build/graphql/syncPrompts.js +102 -0
  87. package/build/graphql/syncPrompts.js.map +1 -0
  88. package/build/tests/TranscendPromptManager.test.d.ts +2 -0
  89. package/build/tests/TranscendPromptManager.test.d.ts.map +1 -0
  90. package/build/tests/{TranscendAiPrompt.test.js → TranscendPromptManager.test.js} +25 -13
  91. package/build/tests/TranscendPromptManager.test.js.map +1 -0
  92. package/build/tsbuildinfo +1 -1
  93. package/package.json +2 -2
  94. package/build/ai/TranscendAiPrompt.d.ts +0 -59
  95. package/build/ai/TranscendAiPrompt.d.ts.map +0 -1
  96. package/build/ai/TranscendAiPrompt.js +0 -129
  97. package/build/ai/TranscendAiPrompt.js.map +0 -1
  98. package/build/tests/TranscendAiPrompt.test.d.ts +0 -2
  99. package/build/tests/TranscendAiPrompt.test.d.ts.map +0 -1
  100. package/build/tests/TranscendAiPrompt.test.js.map +0 -1
@@ -0,0 +1,34 @@
1
+ import { PromptGroupInput } from '../codecs';
2
+ import { GraphQLClient } from 'graphql-request';
3
+ /**
4
+ * Create a new prompt group
5
+ *
6
+ * @param client - GraphQL client
7
+ * @param input - Prompt input
8
+ * @returns Prompt group ID
9
+ */
10
+ export declare function createPromptGroup(client: GraphQLClient, input: {
11
+ /** Title of prompt group */
12
+ title: string;
13
+ /** Prompt group description */
14
+ description: string;
15
+ /** Prompt IDs */
16
+ prompts: string[];
17
+ }): Promise<string>;
18
+ /**
19
+ * Update a set of existing prompt groups
20
+ *
21
+ * @param client - GraphQL client
22
+ * @param input - Prompt input
23
+ */
24
+ export declare function updatePromptGroups(client: GraphQLClient, input: [PromptGroupInput, string][]): Promise<void>;
25
+ /**
26
+ * Sync the prompt groups
27
+ *
28
+ * @param client - GraphQL client
29
+ * @param promptGroups - PromptGroups
30
+ * @param concurrency - Concurrency
31
+ * @returns True if synced successfully
32
+ */
33
+ export declare function syncPromptGroups(client: GraphQLClient, promptGroups: PromptGroupInput[], concurrency?: number): Promise<boolean>;
34
+ //# sourceMappingURL=syncPromptGroups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncPromptGroups.d.ts","sourceRoot":"","sources":["../../src/graphql/syncPromptGroups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAShD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IACL,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,gBAAgB,EAAE,EAChC,WAAW,SAAK,GACf,OAAO,CAAC,OAAO,CAAC,CAgGlB"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.syncPromptGroups = exports.updatePromptGroups = exports.createPromptGroup = void 0;
7
+ const colors_1 = __importDefault(require("colors"));
8
+ const gqls_1 = require("./gqls");
9
+ const makeGraphQLRequest_1 = require("./makeGraphQLRequest");
10
+ const bluebird_1 = require("bluebird");
11
+ const fetchPromptGroups_1 = require("./fetchPromptGroups");
12
+ const keyBy_1 = __importDefault(require("lodash/keyBy"));
13
+ const logger_1 = require("../logger");
14
+ const fetchPrompts_1 = require("./fetchPrompts");
15
+ /**
16
+ * Create a new prompt group
17
+ *
18
+ * @param client - GraphQL client
19
+ * @param input - Prompt input
20
+ * @returns Prompt group ID
21
+ */
22
+ async function createPromptGroup(client, input) {
23
+ const { createPromptGroup: { promptGroup }, } = await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.CREATE_PROMPT_GROUP, {
24
+ input,
25
+ });
26
+ logger_1.logger.info(colors_1.default.green(`Successfully created prompt group "${input.title}"!`));
27
+ return promptGroup.id;
28
+ }
29
+ exports.createPromptGroup = createPromptGroup;
30
+ /**
31
+ * Update a set of existing prompt groups
32
+ *
33
+ * @param client - GraphQL client
34
+ * @param input - Prompt input
35
+ */
36
+ async function updatePromptGroups(client, input) {
37
+ await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_PROMPT_GROUPS, {
38
+ input: {
39
+ promptGroups: input.map(([input, id]) => ({
40
+ ...input,
41
+ id,
42
+ })),
43
+ },
44
+ });
45
+ logger_1.logger.info(colors_1.default.green(`Successfully updated ${input.length} prompt groups!`));
46
+ }
47
+ exports.updatePromptGroups = updatePromptGroups;
48
+ /**
49
+ * Sync the prompt groups
50
+ *
51
+ * @param client - GraphQL client
52
+ * @param promptGroups - PromptGroups
53
+ * @param concurrency - Concurrency
54
+ * @returns True if synced successfully
55
+ */
56
+ async function syncPromptGroups(client, promptGroups, concurrency = 20) {
57
+ let encounteredError = false;
58
+ logger_1.logger.info(colors_1.default.magenta(`Syncing "${promptGroups.length}" prompt groups...`));
59
+ // Index existing prompt groups
60
+ const existing = await (0, fetchPromptGroups_1.fetchAllPromptGroups)(client);
61
+ const existingPrompts = await (0, fetchPrompts_1.fetchAllPrompts)(client);
62
+ const promptByTitle = (0, keyBy_1.default)(existingPrompts, 'title');
63
+ const promptGroupByTitle = (0, keyBy_1.default)(existing, 'title');
64
+ // Determine which promptGroups are new vs existing
65
+ const mapPromptGroupsToExisting = promptGroups.map((promptInput) => {
66
+ var _a;
67
+ return [
68
+ promptInput,
69
+ (_a = promptGroupByTitle[promptInput.title]) === null || _a === void 0 ? void 0 : _a.id,
70
+ ];
71
+ });
72
+ // Create the new promptGroups
73
+ const newPromptGroups = mapPromptGroupsToExisting
74
+ .filter(([, existing]) => !existing)
75
+ .map(([promptInput]) => promptInput);
76
+ try {
77
+ logger_1.logger.info(colors_1.default.magenta(`Creating "${newPromptGroups.length}" new prompt groups...`));
78
+ await (0, bluebird_1.map)(newPromptGroups, async (prompt) => {
79
+ await createPromptGroup(client, {
80
+ ...prompt,
81
+ prompts: prompt.prompts.map((title) => {
82
+ const prompt = promptByTitle[title];
83
+ if (!prompt) {
84
+ throw new Error(`Failed to find prompt with title: "${title}"`);
85
+ }
86
+ return prompt.id;
87
+ }),
88
+ });
89
+ }, {
90
+ concurrency,
91
+ });
92
+ logger_1.logger.info(colors_1.default.green(`Successfully synced ${newPromptGroups.length} prompt groups!`));
93
+ }
94
+ catch (err) {
95
+ encounteredError = true;
96
+ logger_1.logger.info(colors_1.default.red(`Failed to create prompt groups! - ${err.message}`));
97
+ }
98
+ // Update existing promptGroups
99
+ const existingPromptGroups = mapPromptGroupsToExisting.filter((x) => !!x[1]);
100
+ try {
101
+ logger_1.logger.info(colors_1.default.magenta(`Updating "${existingPromptGroups.length}" prompt groups...`));
102
+ await updatePromptGroups(client, existingPromptGroups.map(([input, id]) => [
103
+ {
104
+ ...input,
105
+ prompts: input.prompts.map((title) => {
106
+ const prompt = promptByTitle[title];
107
+ if (!prompt) {
108
+ throw new Error(`Failed to find prompt with title: "${title}"`);
109
+ }
110
+ return prompt.id;
111
+ }),
112
+ },
113
+ id,
114
+ ]));
115
+ logger_1.logger.info(colors_1.default.green(`Successfully updated "${existingPromptGroups.length}" prompt groups!`));
116
+ }
117
+ catch (err) {
118
+ encounteredError = true;
119
+ logger_1.logger.info(colors_1.default.red(`Failed to create prompt groups! - ${err.message}`));
120
+ }
121
+ logger_1.logger.info(colors_1.default.green(`Synced "${promptGroups.length}" prompt groups!`));
122
+ // Return true upon success
123
+ return !encounteredError;
124
+ }
125
+ exports.syncPromptGroups = syncPromptGroups;
126
+ //# sourceMappingURL=syncPromptGroups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncPromptGroups.js","sourceRoot":"","sources":["../../src/graphql/syncPromptGroups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { PromptPartialInput } from '../codecs';
2
+ import { GraphQLClient } from 'graphql-request';
3
+ /**
4
+ * Create a new prompt partial
5
+ *
6
+ * @param client - GraphQL client
7
+ * @param input - Prompt input
8
+ * @returns Prompt partial ID
9
+ */
10
+ export declare function createPromptPartial(client: GraphQLClient, input: {
11
+ /** Title of prompt partial */
12
+ title: string;
13
+ /** Prompt content */
14
+ content: string;
15
+ }): Promise<string>;
16
+ /**
17
+ * Update a set of existing prompt partials
18
+ *
19
+ * @param client - GraphQL client
20
+ * @param input - Prompt input
21
+ */
22
+ export declare function updatePromptPartials(client: GraphQLClient, input: [PromptPartialInput, string][]): Promise<void>;
23
+ /**
24
+ * Sync the prompt partials
25
+ *
26
+ * @param client - GraphQL client
27
+ * @param promptPartials - PromptPartials
28
+ * @param concurrency - Concurrency
29
+ * @returns True if synced successfully
30
+ */
31
+ export declare function syncPromptPartials(client: GraphQLClient, promptPartials: PromptPartialInput[], concurrency?: number): Promise<boolean>;
32
+ //# sourceMappingURL=syncPromptPartials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncPromptPartials.d.ts","sourceRoot":"","sources":["../../src/graphql/syncPromptPartials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IACL,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,kBAAkB,EAAE,EACpC,WAAW,SAAK,GACf,OAAO,CAAC,OAAO,CAAC,CA4ElB"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.syncPromptPartials = exports.updatePromptPartials = exports.createPromptPartial = void 0;
7
+ const colors_1 = __importDefault(require("colors"));
8
+ const gqls_1 = require("./gqls");
9
+ const makeGraphQLRequest_1 = require("./makeGraphQLRequest");
10
+ const bluebird_1 = require("bluebird");
11
+ const fetchPromptPartials_1 = require("./fetchPromptPartials");
12
+ const keyBy_1 = __importDefault(require("lodash/keyBy"));
13
+ const logger_1 = require("../logger");
14
+ /**
15
+ * Create a new prompt partial
16
+ *
17
+ * @param client - GraphQL client
18
+ * @param input - Prompt input
19
+ * @returns Prompt partial ID
20
+ */
21
+ async function createPromptPartial(client, input) {
22
+ const { createPromptPartial: { promptPartial }, } = await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.CREATE_PROMPT_PARTIAL, {
23
+ input,
24
+ });
25
+ logger_1.logger.info(colors_1.default.green(`Successfully created prompt partial "${input.title}"!`));
26
+ return promptPartial.id;
27
+ }
28
+ exports.createPromptPartial = createPromptPartial;
29
+ /**
30
+ * Update a set of existing prompt partials
31
+ *
32
+ * @param client - GraphQL client
33
+ * @param input - Prompt input
34
+ */
35
+ async function updatePromptPartials(client, input) {
36
+ await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_PROMPT_PARTIALS, {
37
+ input: {
38
+ promptPartials: input.map(([input, id]) => ({
39
+ ...input,
40
+ id,
41
+ })),
42
+ },
43
+ });
44
+ logger_1.logger.info(colors_1.default.green(`Successfully updated ${input.length} prompt partials!`));
45
+ }
46
+ exports.updatePromptPartials = updatePromptPartials;
47
+ /**
48
+ * Sync the prompt partials
49
+ *
50
+ * @param client - GraphQL client
51
+ * @param promptPartials - PromptPartials
52
+ * @param concurrency - Concurrency
53
+ * @returns True if synced successfully
54
+ */
55
+ async function syncPromptPartials(client, promptPartials, concurrency = 20) {
56
+ let encounteredError = false;
57
+ logger_1.logger.info(colors_1.default.magenta(`Syncing "${promptPartials.length}" prompt partials...`));
58
+ // Index existing prompt partials
59
+ const existing = await (0, fetchPromptPartials_1.fetchAllPromptPartials)(client);
60
+ const promptPartialByTitle = (0, keyBy_1.default)(existing, 'title');
61
+ // Determine which promptPartials are new vs existing
62
+ const mapPromptPartialsToExisting = promptPartials.map((promptInput) => {
63
+ var _a;
64
+ return [
65
+ promptInput,
66
+ (_a = promptPartialByTitle[promptInput.title]) === null || _a === void 0 ? void 0 : _a.id,
67
+ ];
68
+ });
69
+ // Create the new promptPartials
70
+ const newPromptPartials = mapPromptPartialsToExisting
71
+ .filter(([, existing]) => !existing)
72
+ .map(([promptInput]) => promptInput);
73
+ try {
74
+ logger_1.logger.info(colors_1.default.magenta(`Creating "${newPromptPartials.length}" new prompt partials...`));
75
+ await (0, bluebird_1.map)(newPromptPartials, async (prompt) => {
76
+ await createPromptPartial(client, prompt);
77
+ }, {
78
+ concurrency,
79
+ });
80
+ logger_1.logger.info(colors_1.default.green(`Successfully synced ${newPromptPartials.length} prompt partials!`));
81
+ }
82
+ catch (err) {
83
+ encounteredError = true;
84
+ logger_1.logger.info(colors_1.default.red(`Failed to create prompt partials! - ${err.message}`));
85
+ }
86
+ // Update existing promptPartials
87
+ const existingPromptPartials = mapPromptPartialsToExisting.filter((x) => !!x[1]);
88
+ try {
89
+ logger_1.logger.info(colors_1.default.magenta(`Updating "${existingPromptPartials.length}" prompt partials...`));
90
+ await updatePromptPartials(client, existingPromptPartials);
91
+ logger_1.logger.info(colors_1.default.green(`Successfully updated "${existingPromptPartials.length}" prompt partials!`));
92
+ }
93
+ catch (err) {
94
+ encounteredError = true;
95
+ logger_1.logger.info(colors_1.default.red(`Failed to create prompt partials! - ${err.message}`));
96
+ }
97
+ logger_1.logger.info(colors_1.default.green(`Synced "${promptPartials.length}" prompt partials!`));
98
+ // Return true upon success
99
+ return !encounteredError;
100
+ }
101
+ exports.syncPromptPartials = syncPromptPartials;
102
+ //# sourceMappingURL=syncPromptPartials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncPromptPartials.js","sourceRoot":"","sources":["../../src/graphql/syncPromptPartials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { PromptTemplateInput } from '../codecs';
2
+ import { GraphQLClient } from 'graphql-request';
3
+ /**
4
+ * Create a new prompt template
5
+ *
6
+ * @param client - GraphQL client
7
+ * @param input - Prompt input
8
+ * @returns Prompt template ID
9
+ */
10
+ export declare function createPromptTemplate(client: GraphQLClient, input: {
11
+ /** Title of prompt template */
12
+ title: string;
13
+ /** Prompt content */
14
+ content: string;
15
+ }): Promise<string>;
16
+ /**
17
+ * Update a set of existing prompt templates
18
+ *
19
+ * @param client - GraphQL client
20
+ * @param input - Prompt input
21
+ */
22
+ export declare function updatePromptTemplates(client: GraphQLClient, input: [PromptTemplateInput, string][]): Promise<void>;
23
+ /**
24
+ * Sync the prompt templates
25
+ *
26
+ * @param client - GraphQL client
27
+ * @param promptTemplates - PromptTemplates
28
+ * @param concurrency - Concurrency
29
+ * @returns True if synced successfully
30
+ */
31
+ export declare function syncPromptTemplates(client: GraphQLClient, promptTemplates: PromptTemplateInput[], concurrency?: number): Promise<boolean>;
32
+ //# sourceMappingURL=syncPromptTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncPromptTemplates.d.ts","sourceRoot":"","sources":["../../src/graphql/syncPromptTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IACL,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,GACrC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,aAAa,EACrB,eAAe,EAAE,mBAAmB,EAAE,EACtC,WAAW,SAAK,GACf,OAAO,CAAC,OAAO,CAAC,CA4ElB"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.syncPromptTemplates = exports.updatePromptTemplates = exports.createPromptTemplate = void 0;
7
+ const colors_1 = __importDefault(require("colors"));
8
+ const gqls_1 = require("./gqls");
9
+ const makeGraphQLRequest_1 = require("./makeGraphQLRequest");
10
+ const bluebird_1 = require("bluebird");
11
+ const fetchPromptTemplates_1 = require("./fetchPromptTemplates");
12
+ const keyBy_1 = __importDefault(require("lodash/keyBy"));
13
+ const logger_1 = require("../logger");
14
+ /**
15
+ * Create a new prompt template
16
+ *
17
+ * @param client - GraphQL client
18
+ * @param input - Prompt input
19
+ * @returns Prompt template ID
20
+ */
21
+ async function createPromptTemplate(client, input) {
22
+ const { createPromptTemplate: { promptTemplate }, } = await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.CREATE_PROMPT_TEMPLATE, {
23
+ input,
24
+ });
25
+ logger_1.logger.info(colors_1.default.green(`Successfully created prompt template "${input.title}"!`));
26
+ return promptTemplate.id;
27
+ }
28
+ exports.createPromptTemplate = createPromptTemplate;
29
+ /**
30
+ * Update a set of existing prompt templates
31
+ *
32
+ * @param client - GraphQL client
33
+ * @param input - Prompt input
34
+ */
35
+ async function updatePromptTemplates(client, input) {
36
+ await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_PROMPT_TEMPLATES, {
37
+ input: {
38
+ promptTemplates: input.map(([input, id]) => ({
39
+ ...input,
40
+ id,
41
+ })),
42
+ },
43
+ });
44
+ logger_1.logger.info(colors_1.default.green(`Successfully updated ${input.length} prompt templates!`));
45
+ }
46
+ exports.updatePromptTemplates = updatePromptTemplates;
47
+ /**
48
+ * Sync the prompt templates
49
+ *
50
+ * @param client - GraphQL client
51
+ * @param promptTemplates - PromptTemplates
52
+ * @param concurrency - Concurrency
53
+ * @returns True if synced successfully
54
+ */
55
+ async function syncPromptTemplates(client, promptTemplates, concurrency = 20) {
56
+ let encounteredError = false;
57
+ logger_1.logger.info(colors_1.default.magenta(`Syncing "${promptTemplates.length}" prompt templates...`));
58
+ // Index existing prompt templates
59
+ const existing = await (0, fetchPromptTemplates_1.fetchAllPromptTemplates)(client);
60
+ const promptTemplateByTitle = (0, keyBy_1.default)(existing, 'title');
61
+ // Determine which promptTemplates are new vs existing
62
+ const mapPromptTemplatesToExisting = promptTemplates.map((promptInput) => {
63
+ var _a;
64
+ return [
65
+ promptInput,
66
+ (_a = promptTemplateByTitle[promptInput.title]) === null || _a === void 0 ? void 0 : _a.id,
67
+ ];
68
+ });
69
+ // Create the new promptTemplates
70
+ const newPromptTemplates = mapPromptTemplatesToExisting
71
+ .filter(([, existing]) => !existing)
72
+ .map(([promptInput]) => promptInput);
73
+ try {
74
+ logger_1.logger.info(colors_1.default.magenta(`Creating "${newPromptTemplates.length}" new prompt templates...`));
75
+ await (0, bluebird_1.map)(newPromptTemplates, async (prompt) => {
76
+ await createPromptTemplate(client, prompt);
77
+ }, {
78
+ concurrency,
79
+ });
80
+ logger_1.logger.info(colors_1.default.green(`Successfully synced ${newPromptTemplates.length} prompt templates!`));
81
+ }
82
+ catch (err) {
83
+ encounteredError = true;
84
+ logger_1.logger.info(colors_1.default.red(`Failed to create prompt templates! - ${err.message}`));
85
+ }
86
+ // Update existing promptTemplates
87
+ const existingPromptTemplates = mapPromptTemplatesToExisting.filter((x) => !!x[1]);
88
+ try {
89
+ logger_1.logger.info(colors_1.default.magenta(`Updating "${existingPromptTemplates.length}" prompt templates...`));
90
+ await updatePromptTemplates(client, existingPromptTemplates);
91
+ logger_1.logger.info(colors_1.default.green(`Successfully updated "${existingPromptTemplates.length}" prompt templates!`));
92
+ }
93
+ catch (err) {
94
+ encounteredError = true;
95
+ logger_1.logger.info(colors_1.default.red(`Failed to create prompt templates! - ${err.message}`));
96
+ }
97
+ logger_1.logger.info(colors_1.default.green(`Synced "${promptTemplates.length}" prompt templates!`));
98
+ // Return true upon success
99
+ return !encounteredError;
100
+ }
101
+ exports.syncPromptTemplates = syncPromptTemplates;
102
+ //# sourceMappingURL=syncPromptTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncPromptTemplates.js","sourceRoot":"","sources":["../../src/graphql/syncPromptTemplates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { PromptInput } from '../codecs';
2
+ import { GraphQLClient } from 'graphql-request';
3
+ /**
4
+ * Create a new prompt
5
+ *
6
+ * @param client - GraphQL client
7
+ * @param input - Prompt input
8
+ * @returns Prompt ID
9
+ */
10
+ export declare function createPrompt(client: GraphQLClient, input: {
11
+ /** Title of prompt */
12
+ title: string;
13
+ /** Prompt content */
14
+ content: string;
15
+ }): Promise<string>;
16
+ /**
17
+ * Update a set of existing prompts
18
+ *
19
+ * @param client - GraphQL client
20
+ * @param input - Prompt input
21
+ */
22
+ export declare function updatePrompts(client: GraphQLClient, input: [PromptInput, string][]): Promise<void>;
23
+ /**
24
+ * Sync the prompts
25
+ *
26
+ * @param client - GraphQL client
27
+ * @param prompts - Prompts
28
+ * @param concurrency - Concurrency
29
+ * @returns True if synced successfully
30
+ */
31
+ export declare function syncPrompts(client: GraphQLClient, prompts: PromptInput[], concurrency?: number): Promise<boolean>;
32
+ //# sourceMappingURL=syncPrompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncPrompts.d.ts","sourceRoot":"","sources":["../../src/graphql/syncPrompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE;IACL,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,GAC7B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,SAAK,GACf,OAAO,CAAC,OAAO,CAAC,CA4DlB"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.syncPrompts = exports.updatePrompts = exports.createPrompt = void 0;
7
+ const colors_1 = __importDefault(require("colors"));
8
+ const gqls_1 = require("./gqls");
9
+ const makeGraphQLRequest_1 = require("./makeGraphQLRequest");
10
+ const bluebird_1 = require("bluebird");
11
+ const fetchPrompts_1 = require("./fetchPrompts");
12
+ const keyBy_1 = __importDefault(require("lodash/keyBy"));
13
+ const logger_1 = require("../logger");
14
+ /**
15
+ * Create a new prompt
16
+ *
17
+ * @param client - GraphQL client
18
+ * @param input - Prompt input
19
+ * @returns Prompt ID
20
+ */
21
+ async function createPrompt(client, input) {
22
+ const { createPrompt: { prompt }, } = await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.CREATE_PROMPT, {
23
+ input,
24
+ });
25
+ logger_1.logger.info(colors_1.default.green(`Successfully created prompt "${input.title}"!`));
26
+ return prompt.id;
27
+ }
28
+ exports.createPrompt = createPrompt;
29
+ /**
30
+ * Update a set of existing prompts
31
+ *
32
+ * @param client - GraphQL client
33
+ * @param input - Prompt input
34
+ */
35
+ async function updatePrompts(client, input) {
36
+ await (0, makeGraphQLRequest_1.makeGraphQLRequest)(client, gqls_1.UPDATE_PROMPTS, {
37
+ input: {
38
+ prompts: input.map(([input, id]) => ({
39
+ ...input,
40
+ id,
41
+ })),
42
+ },
43
+ });
44
+ logger_1.logger.info(colors_1.default.green(`Successfully updated ${input.length} prompts!`));
45
+ }
46
+ exports.updatePrompts = updatePrompts;
47
+ /**
48
+ * Sync the prompts
49
+ *
50
+ * @param client - GraphQL client
51
+ * @param prompts - Prompts
52
+ * @param concurrency - Concurrency
53
+ * @returns True if synced successfully
54
+ */
55
+ async function syncPrompts(client, prompts, concurrency = 20) {
56
+ let encounteredError = false;
57
+ logger_1.logger.info(colors_1.default.magenta(`Syncing "${prompts.length}" prompts...`));
58
+ // Index existing prompts
59
+ const existing = await (0, fetchPrompts_1.fetchAllPrompts)(client);
60
+ const promptByTitle = (0, keyBy_1.default)(existing, 'title');
61
+ // Determine which prompts are new vs existing
62
+ const mapPromptsToExisting = prompts.map((promptInput) => {
63
+ var _a;
64
+ return [
65
+ promptInput,
66
+ (_a = promptByTitle[promptInput.title]) === null || _a === void 0 ? void 0 : _a.id,
67
+ ];
68
+ });
69
+ // Create the new prompts
70
+ const newPrompts = mapPromptsToExisting
71
+ .filter(([, existing]) => !existing)
72
+ .map(([promptInput]) => promptInput);
73
+ try {
74
+ logger_1.logger.info(colors_1.default.magenta(`Creating "${newPrompts.length}" new prompts...`));
75
+ await (0, bluebird_1.map)(newPrompts, async (prompt) => {
76
+ await createPrompt(client, prompt);
77
+ }, {
78
+ concurrency,
79
+ });
80
+ logger_1.logger.info(colors_1.default.green(`Successfully synced ${newPrompts.length} prompts!`));
81
+ }
82
+ catch (err) {
83
+ encounteredError = true;
84
+ logger_1.logger.info(colors_1.default.red(`Failed to create prompts! - ${err.message}`));
85
+ }
86
+ // Update existing prompts
87
+ const existingPrompts = mapPromptsToExisting.filter((x) => !!x[1]);
88
+ try {
89
+ logger_1.logger.info(colors_1.default.magenta(`Updating "${existingPrompts.length}" prompts...`));
90
+ await updatePrompts(client, existingPrompts);
91
+ logger_1.logger.info(colors_1.default.green(`Successfully updated "${existingPrompts.length}" prompts!`));
92
+ }
93
+ catch (err) {
94
+ encounteredError = true;
95
+ logger_1.logger.info(colors_1.default.red(`Failed to create prompts! - ${err.message}`));
96
+ }
97
+ logger_1.logger.info(colors_1.default.green(`Synced "${prompts.length}" prompts!`));
98
+ // Return true upon success
99
+ return !encounteredError;
100
+ }
101
+ exports.syncPrompts = syncPrompts;
102
+ //# sourceMappingURL=syncPrompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncPrompts.js","sourceRoot":"","sources":["../../src/graphql/syncPrompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TranscendPromptManager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranscendPromptManager.test.d.ts","sourceRoot":"","sources":["../../src/tests/TranscendPromptManager.test.ts"],"names":[],"mappings":""}