@purpleschool/gptbot 0.14.34 → 0.14.36
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/api/controllers/http/music.ts +6 -0
- package/api/routes.ts +18 -0
- package/build/api/controllers/http/music.js +6 -0
- package/build/api/routes.js +12 -0
- package/build/commands/tools/music/add-track-to-music-playlist.command.js +17 -0
- package/build/commands/tools/music/boost-music-style.command.js +15 -0
- package/build/commands/tools/music/create-music-playlist.command.js +14 -0
- package/build/commands/tools/music/delete-music-playlist.command.js +11 -0
- package/build/commands/tools/music/edit-music.command.js +12 -0
- package/build/commands/tools/music/find-music-playlists.command.js +11 -0
- package/build/commands/tools/music/generate-music.command.js +2 -5
- package/build/commands/tools/music/index.js +8 -0
- package/build/commands/tools/music/remove-track-from-music-playlist.command.js +15 -0
- package/build/commands/tools/music/update-music-playlist.command.js +17 -0
- package/build/constants/agents/enums/agent-tool-type.enum.js +1 -0
- package/build/constants/tool-music/enums/index.js +4 -0
- package/build/constants/tool-music/enums/music-action-type.enum.js +14 -0
- package/build/constants/tool-music/enums/music-audio-action-type.enum.js +12 -0
- package/build/constants/tool-music/enums/music-generation-action-type.enum.js +10 -0
- package/build/constants/tool-music/enums/music-lyrics-structure.enum.js +9 -0
- package/build/models/agents/agent-tool-credentials.schema.js +11 -1
- package/build/models/community/community-post-media-data.schema.js +1 -1
- package/build/models/tools/music/index.js +1 -0
- package/build/models/tools/music/music-config.schema.js +4 -1
- package/build/models/tools/music/music-job.schema.js +126 -2
- package/build/models/tools/music/music-playlist.schema.js +15 -0
- package/build/models/tools/music/music-track.schema.js +13 -2
- package/commands/tools/music/add-track-to-music-playlist.command.ts +19 -0
- package/commands/tools/music/boost-music-style.command.ts +17 -0
- package/commands/tools/music/create-music-playlist.command.ts +14 -0
- package/commands/tools/music/delete-music-playlist.command.ts +11 -0
- package/commands/tools/music/edit-music.command.ts +16 -0
- package/commands/tools/music/find-music-playlists.command.ts +9 -0
- package/commands/tools/music/generate-music.command.ts +3 -6
- package/commands/tools/music/index.ts +8 -0
- package/commands/tools/music/remove-track-from-music-playlist.command.ts +15 -0
- package/commands/tools/music/update-music-playlist.command.ts +19 -0
- package/constants/agents/enums/agent-tool-type.enum.ts +1 -0
- package/constants/tool-music/enums/index.ts +4 -0
- package/constants/tool-music/enums/music-action-type.enum.ts +10 -0
- package/constants/tool-music/enums/music-audio-action-type.enum.ts +8 -0
- package/constants/tool-music/enums/music-generation-action-type.enum.ts +6 -0
- package/constants/tool-music/enums/music-lyrics-structure.enum.ts +5 -0
- package/models/agents/agent-tool-credentials.schema.ts +13 -0
- package/models/community/community-post-media-data.schema.ts +2 -2
- package/models/tools/music/index.ts +1 -0
- package/models/tools/music/music-config.schema.ts +8 -0
- package/models/tools/music/music-job.schema.ts +168 -2
- package/models/tools/music/music-playlist.schema.ts +15 -0
- package/models/tools/music/music-track.schema.ts +13 -2
- package/package.json +1 -1
|
@@ -4,10 +4,16 @@ export const MUSIC_CONTROLLER_PUBLIC = 'public/tools/music' as const;
|
|
|
4
4
|
export const MUSIC_ROUTES = {
|
|
5
5
|
CONFIG: 'config',
|
|
6
6
|
EXECUTE: 'execute',
|
|
7
|
+
EDIT: 'edit',
|
|
7
8
|
GENERATE_LYRICS: 'lyrics',
|
|
9
|
+
BOOST_STYLE: 'boost-style',
|
|
8
10
|
CONVERT_TO_WAV: 'convert-to-wav',
|
|
9
11
|
GET_JOBS: 'jobs',
|
|
10
12
|
GET_JOB: (uuid: string) => `jobs/${uuid}`,
|
|
13
|
+
PLAYLISTS: 'playlists',
|
|
14
|
+
PLAYLIST: (uuid: string) => `playlists/${uuid}`,
|
|
15
|
+
PLAYLIST_TRACKS: (uuid: string) => `playlists/${uuid}/tracks`,
|
|
16
|
+
PLAYLIST_TRACK: (uuid: string, trackId: string) => `playlists/${uuid}/tracks/${trackId}`,
|
|
11
17
|
UPDATE: (uuid: string) => `jobs/${uuid}`,
|
|
12
18
|
UPDATE_FAVORITE: (uuid: string) => `jobs/${uuid}/favorite`,
|
|
13
19
|
SET_REACTION: (uuid: string) => `jobs/${uuid}/reaction`,
|
package/api/routes.ts
CHANGED
|
@@ -701,11 +701,20 @@ export const REST_API = {
|
|
|
701
701
|
MUSIC_PUBLIC: {
|
|
702
702
|
CONFIG: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.CONFIG}`,
|
|
703
703
|
EXECUTE: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.EXECUTE}`,
|
|
704
|
+
EDIT: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.EDIT}`,
|
|
704
705
|
GENERATE_LYRICS: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.GENERATE_LYRICS}`,
|
|
706
|
+
BOOST_STYLE: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.BOOST_STYLE}`,
|
|
705
707
|
CONVERT_TO_WAV: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.CONVERT_TO_WAV}`,
|
|
706
708
|
GET_JOBS: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.GET_JOBS}`,
|
|
707
709
|
GET_JOB: (uuid: string) =>
|
|
708
710
|
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.GET_JOB(uuid)}`,
|
|
711
|
+
PLAYLISTS: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.PLAYLISTS}`,
|
|
712
|
+
PLAYLIST: (uuid: string) =>
|
|
713
|
+
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST(uuid)}`,
|
|
714
|
+
PLAYLIST_TRACKS: (uuid: string) =>
|
|
715
|
+
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST_TRACKS(uuid)}`,
|
|
716
|
+
PLAYLIST_TRACK: (uuid: string, trackId: string) =>
|
|
717
|
+
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST_TRACK(uuid, trackId)}`,
|
|
709
718
|
UPDATE: (uuid: string) =>
|
|
710
719
|
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.UPDATE(uuid)}`,
|
|
711
720
|
UPDATE_FAVORITE: (uuid: string) =>
|
|
@@ -721,11 +730,20 @@ export const REST_API = {
|
|
|
721
730
|
MUSIC_PRIVATE: {
|
|
722
731
|
CONFIG: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.CONFIG}`,
|
|
723
732
|
EXECUTE: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.EXECUTE}`,
|
|
733
|
+
EDIT: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.EDIT}`,
|
|
724
734
|
GENERATE_LYRICS: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.GENERATE_LYRICS}`,
|
|
735
|
+
BOOST_STYLE: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.BOOST_STYLE}`,
|
|
725
736
|
CONVERT_TO_WAV: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.CONVERT_TO_WAV}`,
|
|
726
737
|
GET_JOBS: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.GET_JOBS}`,
|
|
727
738
|
GET_JOB: (uuid: string) =>
|
|
728
739
|
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.GET_JOB(uuid)}`,
|
|
740
|
+
PLAYLISTS: `${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.PLAYLISTS}`,
|
|
741
|
+
PLAYLIST: (uuid: string) =>
|
|
742
|
+
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST(uuid)}`,
|
|
743
|
+
PLAYLIST_TRACKS: (uuid: string) =>
|
|
744
|
+
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST_TRACKS(uuid)}`,
|
|
745
|
+
PLAYLIST_TRACK: (uuid: string, trackId: string) =>
|
|
746
|
+
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST_TRACK(uuid, trackId)}`,
|
|
729
747
|
UPDATE: (uuid: string) =>
|
|
730
748
|
`${ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.UPDATE(uuid)}`,
|
|
731
749
|
UPDATE_FAVORITE: (uuid: string) =>
|
|
@@ -6,10 +6,16 @@ exports.MUSIC_CONTROLLER_PUBLIC = 'public/tools/music';
|
|
|
6
6
|
exports.MUSIC_ROUTES = {
|
|
7
7
|
CONFIG: 'config',
|
|
8
8
|
EXECUTE: 'execute',
|
|
9
|
+
EDIT: 'edit',
|
|
9
10
|
GENERATE_LYRICS: 'lyrics',
|
|
11
|
+
BOOST_STYLE: 'boost-style',
|
|
10
12
|
CONVERT_TO_WAV: 'convert-to-wav',
|
|
11
13
|
GET_JOBS: 'jobs',
|
|
12
14
|
GET_JOB: (uuid) => `jobs/${uuid}`,
|
|
15
|
+
PLAYLISTS: 'playlists',
|
|
16
|
+
PLAYLIST: (uuid) => `playlists/${uuid}`,
|
|
17
|
+
PLAYLIST_TRACKS: (uuid) => `playlists/${uuid}/tracks`,
|
|
18
|
+
PLAYLIST_TRACK: (uuid, trackId) => `playlists/${uuid}/tracks/${trackId}`,
|
|
13
19
|
UPDATE: (uuid) => `jobs/${uuid}`,
|
|
14
20
|
UPDATE_FAVORITE: (uuid) => `jobs/${uuid}/favorite`,
|
|
15
21
|
SET_REACTION: (uuid) => `jobs/${uuid}/reaction`,
|
package/build/api/routes.js
CHANGED
|
@@ -547,10 +547,16 @@ exports.REST_API = {
|
|
|
547
547
|
MUSIC_PUBLIC: {
|
|
548
548
|
CONFIG: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.CONFIG}`,
|
|
549
549
|
EXECUTE: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.EXECUTE}`,
|
|
550
|
+
EDIT: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.EDIT}`,
|
|
550
551
|
GENERATE_LYRICS: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.GENERATE_LYRICS}`,
|
|
552
|
+
BOOST_STYLE: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.BOOST_STYLE}`,
|
|
551
553
|
CONVERT_TO_WAV: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.CONVERT_TO_WAV}`,
|
|
552
554
|
GET_JOBS: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.GET_JOBS}`,
|
|
553
555
|
GET_JOB: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.GET_JOB(uuid)}`,
|
|
556
|
+
PLAYLISTS: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.PLAYLISTS}`,
|
|
557
|
+
PLAYLIST: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST(uuid)}`,
|
|
558
|
+
PLAYLIST_TRACKS: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST_TRACKS(uuid)}`,
|
|
559
|
+
PLAYLIST_TRACK: (uuid, trackId) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST_TRACK(uuid, trackId)}`,
|
|
554
560
|
UPDATE: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.UPDATE(uuid)}`,
|
|
555
561
|
UPDATE_FAVORITE: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.UPDATE_FAVORITE(uuid)}`,
|
|
556
562
|
SET_REACTION: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PUBLIC}/${CONTROLLERS.MUSIC_ROUTES.SET_REACTION(uuid)}`,
|
|
@@ -561,10 +567,16 @@ exports.REST_API = {
|
|
|
561
567
|
MUSIC_PRIVATE: {
|
|
562
568
|
CONFIG: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.CONFIG}`,
|
|
563
569
|
EXECUTE: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.EXECUTE}`,
|
|
570
|
+
EDIT: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.EDIT}`,
|
|
564
571
|
GENERATE_LYRICS: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.GENERATE_LYRICS}`,
|
|
572
|
+
BOOST_STYLE: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.BOOST_STYLE}`,
|
|
565
573
|
CONVERT_TO_WAV: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.CONVERT_TO_WAV}`,
|
|
566
574
|
GET_JOBS: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.GET_JOBS}`,
|
|
567
575
|
GET_JOB: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.GET_JOB(uuid)}`,
|
|
576
|
+
PLAYLISTS: `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.PLAYLISTS}`,
|
|
577
|
+
PLAYLIST: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST(uuid)}`,
|
|
578
|
+
PLAYLIST_TRACKS: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST_TRACKS(uuid)}`,
|
|
579
|
+
PLAYLIST_TRACK: (uuid, trackId) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.PLAYLIST_TRACK(uuid, trackId)}`,
|
|
568
580
|
UPDATE: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.UPDATE(uuid)}`,
|
|
569
581
|
UPDATE_FAVORITE: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.UPDATE_FAVORITE(uuid)}`,
|
|
570
582
|
SET_REACTION: (uuid) => `${exports.ROOT}/${CONTROLLERS.MUSIC_CONTROLLER_PRIVATE}/${CONTROLLERS.MUSIC_ROUTES.SET_REACTION(uuid)}`,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddTrackToMusicPlaylistCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var AddTrackToMusicPlaylistCommand;
|
|
7
|
+
(function (AddTrackToMusicPlaylistCommand) {
|
|
8
|
+
AddTrackToMusicPlaylistCommand.RequestSchema = zod_1.z.object({
|
|
9
|
+
trackId: zod_1.z.string().uuid(),
|
|
10
|
+
});
|
|
11
|
+
AddTrackToMusicPlaylistCommand.RequestParamsSchema = zod_1.z.object({
|
|
12
|
+
uuid: zod_1.z.string().uuid(),
|
|
13
|
+
});
|
|
14
|
+
AddTrackToMusicPlaylistCommand.ResponseSchema = zod_1.z.object({
|
|
15
|
+
data: models_1.MusicPlaylistSchema,
|
|
16
|
+
});
|
|
17
|
+
})(AddTrackToMusicPlaylistCommand || (exports.AddTrackToMusicPlaylistCommand = AddTrackToMusicPlaylistCommand = {}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BoostMusicStyleCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var BoostMusicStyleCommand;
|
|
6
|
+
(function (BoostMusicStyleCommand) {
|
|
7
|
+
BoostMusicStyleCommand.RequestSchema = zod_1.z.object({
|
|
8
|
+
content: zod_1.z.string().min(1).max(3000),
|
|
9
|
+
});
|
|
10
|
+
BoostMusicStyleCommand.ResponseSchema = zod_1.z.object({
|
|
11
|
+
data: zod_1.z.object({
|
|
12
|
+
result: zod_1.z.string(),
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
15
|
+
})(BoostMusicStyleCommand || (exports.BoostMusicStyleCommand = BoostMusicStyleCommand = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateMusicPlaylistCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var CreateMusicPlaylistCommand;
|
|
7
|
+
(function (CreateMusicPlaylistCommand) {
|
|
8
|
+
CreateMusicPlaylistCommand.RequestSchema = zod_1.z.object({
|
|
9
|
+
title: zod_1.z.string().min(1).max(80).trim(),
|
|
10
|
+
});
|
|
11
|
+
CreateMusicPlaylistCommand.ResponseSchema = zod_1.z.object({
|
|
12
|
+
data: models_1.MusicPlaylistSchema,
|
|
13
|
+
});
|
|
14
|
+
})(CreateMusicPlaylistCommand || (exports.CreateMusicPlaylistCommand = CreateMusicPlaylistCommand = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteMusicPlaylistCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var DeleteMusicPlaylistCommand;
|
|
6
|
+
(function (DeleteMusicPlaylistCommand) {
|
|
7
|
+
DeleteMusicPlaylistCommand.RequestParamsSchema = zod_1.z.object({
|
|
8
|
+
uuid: zod_1.z.string().uuid(),
|
|
9
|
+
});
|
|
10
|
+
DeleteMusicPlaylistCommand.ResponseSchema = zod_1.z.void();
|
|
11
|
+
})(DeleteMusicPlaylistCommand || (exports.DeleteMusicPlaylistCommand = DeleteMusicPlaylistCommand = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EditMusicCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var EditMusicCommand;
|
|
7
|
+
(function (EditMusicCommand) {
|
|
8
|
+
EditMusicCommand.RequestSchema = models_1.MusicEditRequestSchema;
|
|
9
|
+
EditMusicCommand.ResponseSchema = zod_1.z.object({
|
|
10
|
+
data: zod_1.z.union([models_1.MusicJobSchema, models_1.MusicEditActionResultSchema]),
|
|
11
|
+
});
|
|
12
|
+
})(EditMusicCommand || (exports.EditMusicCommand = EditMusicCommand = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindMusicPlaylistsCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var FindMusicPlaylistsCommand;
|
|
7
|
+
(function (FindMusicPlaylistsCommand) {
|
|
8
|
+
FindMusicPlaylistsCommand.ResponseSchema = zod_1.z.object({
|
|
9
|
+
data: zod_1.z.array(models_1.MusicPlaylistSchema),
|
|
10
|
+
});
|
|
11
|
+
})(FindMusicPlaylistsCommand || (exports.FindMusicPlaylistsCommand = FindMusicPlaylistsCommand = {}));
|
|
@@ -5,11 +5,8 @@ const zod_1 = require("zod");
|
|
|
5
5
|
const models_1 = require("../../../models");
|
|
6
6
|
var MusicCommand;
|
|
7
7
|
(function (MusicCommand) {
|
|
8
|
-
MusicCommand.RequestSchema =
|
|
9
|
-
modelId: zod_1.z.string().uuid(),
|
|
10
|
-
params: models_1.MusicJobParamsSchema,
|
|
11
|
-
});
|
|
8
|
+
MusicCommand.RequestSchema = models_1.MusicExecuteRequestSchema;
|
|
12
9
|
MusicCommand.ResponseSchema = zod_1.z.object({
|
|
13
|
-
data: models_1.
|
|
10
|
+
data: zod_1.z.union([models_1.MusicJobSchema, zod_1.z.object({ lyrics: zod_1.z.string() })]),
|
|
14
11
|
});
|
|
15
12
|
})(MusicCommand || (exports.MusicCommand = MusicCommand = {}));
|
|
@@ -14,15 +14,23 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./add-track-to-music-playlist.command"), exports);
|
|
18
|
+
__exportStar(require("./create-music-playlist.command"), exports);
|
|
17
19
|
__exportStar(require("./delete-all-music-jobs.command"), exports);
|
|
18
20
|
__exportStar(require("./delete-music-job-by-uuid.command"), exports);
|
|
21
|
+
__exportStar(require("./delete-music-playlist.command"), exports);
|
|
22
|
+
__exportStar(require("./edit-music.command"), exports);
|
|
19
23
|
__exportStar(require("./find-music-job-by-uuid.command"), exports);
|
|
20
24
|
__exportStar(require("./find-music-jobs.command"), exports);
|
|
25
|
+
__exportStar(require("./find-music-playlists.command"), exports);
|
|
21
26
|
__exportStar(require("./get-music-tool-config.command"), exports);
|
|
22
27
|
__exportStar(require("./retry-music-job.command"), exports);
|
|
23
28
|
__exportStar(require("./set-reaction-to-music-job.command"), exports);
|
|
24
29
|
__exportStar(require("./generate-music.command"), exports);
|
|
25
30
|
__exportStar(require("./update-music-job-title.command"), exports);
|
|
31
|
+
__exportStar(require("./remove-track-from-music-playlist.command"), exports);
|
|
26
32
|
__exportStar(require("./convert-to-wav.command"), exports);
|
|
27
33
|
__exportStar(require("./generate-lyrics.command"), exports);
|
|
34
|
+
__exportStar(require("./boost-music-style.command"), exports);
|
|
28
35
|
__exportStar(require("./update-music-job-favorite.command"), exports);
|
|
36
|
+
__exportStar(require("./update-music-playlist.command"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RemoveTrackFromMusicPlaylistCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var RemoveTrackFromMusicPlaylistCommand;
|
|
7
|
+
(function (RemoveTrackFromMusicPlaylistCommand) {
|
|
8
|
+
RemoveTrackFromMusicPlaylistCommand.RequestParamsSchema = zod_1.z.object({
|
|
9
|
+
uuid: zod_1.z.string().uuid(),
|
|
10
|
+
trackId: zod_1.z.string().uuid(),
|
|
11
|
+
});
|
|
12
|
+
RemoveTrackFromMusicPlaylistCommand.ResponseSchema = zod_1.z.object({
|
|
13
|
+
data: models_1.MusicPlaylistSchema,
|
|
14
|
+
});
|
|
15
|
+
})(RemoveTrackFromMusicPlaylistCommand || (exports.RemoveTrackFromMusicPlaylistCommand = RemoveTrackFromMusicPlaylistCommand = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateMusicPlaylistCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var UpdateMusicPlaylistCommand;
|
|
7
|
+
(function (UpdateMusicPlaylistCommand) {
|
|
8
|
+
UpdateMusicPlaylistCommand.RequestSchema = zod_1.z.object({
|
|
9
|
+
title: zod_1.z.string().min(1).max(80).trim(),
|
|
10
|
+
});
|
|
11
|
+
UpdateMusicPlaylistCommand.RequestParamsSchema = zod_1.z.object({
|
|
12
|
+
uuid: zod_1.z.string().uuid(),
|
|
13
|
+
});
|
|
14
|
+
UpdateMusicPlaylistCommand.ResponseSchema = zod_1.z.object({
|
|
15
|
+
data: models_1.MusicPlaylistSchema,
|
|
16
|
+
});
|
|
17
|
+
})(UpdateMusicPlaylistCommand || (exports.UpdateMusicPlaylistCommand = UpdateMusicPlaylistCommand = {}));
|
|
@@ -6,4 +6,5 @@ var AGENT_TOOL_TYPE;
|
|
|
6
6
|
AGENT_TOOL_TYPE["BITRIX_LEAD"] = "BITRIX_LEAD";
|
|
7
7
|
AGENT_TOOL_TYPE["AMO_LEAD"] = "AMO_LEAD";
|
|
8
8
|
AGENT_TOOL_TYPE["EMAIL_LEAD"] = "EMAIL_LEAD";
|
|
9
|
+
AGENT_TOOL_TYPE["PACHCA_LEAD"] = "PACHCA_LEAD";
|
|
9
10
|
})(AGENT_TOOL_TYPE || (exports.AGENT_TOOL_TYPE = AGENT_TOOL_TYPE = {}));
|
|
@@ -15,6 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./suno-model-type.enum"), exports);
|
|
18
|
+
__exportStar(require("./music-action-type.enum"), exports);
|
|
19
|
+
__exportStar(require("./music-audio-action-type.enum"), exports);
|
|
20
|
+
__exportStar(require("./music-generation-action-type.enum"), exports);
|
|
21
|
+
__exportStar(require("./music-lyrics-structure.enum"), exports);
|
|
18
22
|
__exportStar(require("./music-strategy.enum"), exports);
|
|
19
23
|
__exportStar(require("./music-vocal-gender.enum"), exports);
|
|
20
24
|
__exportStar(require("./music-pricing-rule-type.enum"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_ACTION_TYPE = void 0;
|
|
4
|
+
var MUSIC_ACTION_TYPE;
|
|
5
|
+
(function (MUSIC_ACTION_TYPE) {
|
|
6
|
+
MUSIC_ACTION_TYPE["LYRICS"] = "LYRICS";
|
|
7
|
+
MUSIC_ACTION_TYPE["BOOST_STYLE"] = "BOOST_STYLE";
|
|
8
|
+
MUSIC_ACTION_TYPE["REMOVE_VOCALS"] = "REMOVE_VOCALS";
|
|
9
|
+
MUSIC_ACTION_TYPE["EXTRACT_VOCALS"] = "EXTRACT_VOCALS";
|
|
10
|
+
MUSIC_ACTION_TYPE["COVER"] = "COVER";
|
|
11
|
+
MUSIC_ACTION_TYPE["EXTEND"] = "EXTEND";
|
|
12
|
+
MUSIC_ACTION_TYPE["ADD_INSTRUMENTAL"] = "ADD_INSTRUMENTAL";
|
|
13
|
+
MUSIC_ACTION_TYPE["ADD_VOCALS"] = "ADD_VOCALS";
|
|
14
|
+
})(MUSIC_ACTION_TYPE || (exports.MUSIC_ACTION_TYPE = MUSIC_ACTION_TYPE = {}));
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_AUDIO_ACTION_TYPE = void 0;
|
|
4
|
+
var MUSIC_AUDIO_ACTION_TYPE;
|
|
5
|
+
(function (MUSIC_AUDIO_ACTION_TYPE) {
|
|
6
|
+
MUSIC_AUDIO_ACTION_TYPE["REMOVE_VOCALS"] = "removeVocals";
|
|
7
|
+
MUSIC_AUDIO_ACTION_TYPE["EXTRACT_VOCALS"] = "extractVocals";
|
|
8
|
+
MUSIC_AUDIO_ACTION_TYPE["COVER"] = "cover";
|
|
9
|
+
MUSIC_AUDIO_ACTION_TYPE["EXTEND"] = "extend";
|
|
10
|
+
MUSIC_AUDIO_ACTION_TYPE["ADD_INSTRUMENTAL"] = "addInstrumental";
|
|
11
|
+
MUSIC_AUDIO_ACTION_TYPE["ADD_VOCALS"] = "addVocals";
|
|
12
|
+
})(MUSIC_AUDIO_ACTION_TYPE || (exports.MUSIC_AUDIO_ACTION_TYPE = MUSIC_AUDIO_ACTION_TYPE = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_GENERATION_ACTION_TYPE = void 0;
|
|
4
|
+
var MUSIC_GENERATION_ACTION_TYPE;
|
|
5
|
+
(function (MUSIC_GENERATION_ACTION_TYPE) {
|
|
6
|
+
MUSIC_GENERATION_ACTION_TYPE["GENERATE"] = "generate";
|
|
7
|
+
MUSIC_GENERATION_ACTION_TYPE["GIFT"] = "gift";
|
|
8
|
+
MUSIC_GENERATION_ACTION_TYPE["BACKGROUND"] = "background";
|
|
9
|
+
MUSIC_GENERATION_ACTION_TYPE["GENERATE_LYRICS"] = "generateLyrics";
|
|
10
|
+
})(MUSIC_GENERATION_ACTION_TYPE || (exports.MUSIC_GENERATION_ACTION_TYPE = MUSIC_GENERATION_ACTION_TYPE = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_LYRICS_STRUCTURE = void 0;
|
|
4
|
+
var MUSIC_LYRICS_STRUCTURE;
|
|
5
|
+
(function (MUSIC_LYRICS_STRUCTURE) {
|
|
6
|
+
MUSIC_LYRICS_STRUCTURE["VERSE_CHORUS"] = "verse_chorus";
|
|
7
|
+
MUSIC_LYRICS_STRUCTURE["WITH_BRIDGE"] = "with_bridge";
|
|
8
|
+
MUSIC_LYRICS_STRUCTURE["FREE"] = "free";
|
|
9
|
+
})(MUSIC_LYRICS_STRUCTURE || (exports.MUSIC_LYRICS_STRUCTURE = MUSIC_LYRICS_STRUCTURE = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AgentToolCredentialsSchema = exports.EmailLeadAgentToolCredentialsSchema = exports.AmoLeadAgentToolCredentialsSchema = exports.BitrixLeadAgentToolCredentialsSchema = void 0;
|
|
3
|
+
exports.AgentToolCredentialsSchema = exports.PachcaLeadAgentToolCredentialsSchema = exports.EmailLeadAgentToolCredentialsSchema = exports.AmoLeadAgentToolCredentialsSchema = exports.BitrixLeadAgentToolCredentialsSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const enums_1 = require("../../constants/agents/enums");
|
|
6
6
|
exports.BitrixLeadAgentToolCredentialsSchema = zod_1.z.object({
|
|
@@ -17,8 +17,18 @@ exports.EmailLeadAgentToolCredentialsSchema = zod_1.z.object({
|
|
|
17
17
|
type: zod_1.z.literal(enums_1.AGENT_TOOL_TYPE.EMAIL_LEAD),
|
|
18
18
|
email: zod_1.z.string().email(),
|
|
19
19
|
});
|
|
20
|
+
exports.PachcaLeadAgentToolCredentialsSchema = zod_1.z.object({
|
|
21
|
+
type: zod_1.z.literal(enums_1.AGENT_TOOL_TYPE.PACHCA_LEAD),
|
|
22
|
+
webhookUrl: zod_1.z
|
|
23
|
+
.string()
|
|
24
|
+
.url()
|
|
25
|
+
.refine((v) => v.trim().toLowerCase().startsWith('https://'), {
|
|
26
|
+
message: 'URL должен начинаться с https://',
|
|
27
|
+
}),
|
|
28
|
+
});
|
|
20
29
|
exports.AgentToolCredentialsSchema = zod_1.z.discriminatedUnion('type', [
|
|
21
30
|
exports.BitrixLeadAgentToolCredentialsSchema,
|
|
22
31
|
exports.AmoLeadAgentToolCredentialsSchema,
|
|
23
32
|
exports.EmailLeadAgentToolCredentialsSchema,
|
|
33
|
+
exports.PachcaLeadAgentToolCredentialsSchema,
|
|
24
34
|
]);
|
|
@@ -34,7 +34,7 @@ exports.VideoEditorCommunityMediaSchema = zod_1.z.object({
|
|
|
34
34
|
});
|
|
35
35
|
exports.MusicCommunityMediaSchema = zod_1.z.object({
|
|
36
36
|
type: zod_1.z.literal(constants_1.COMMUNITY_POST_TYPE.MUSIC),
|
|
37
|
-
params: tools_1.
|
|
37
|
+
params: tools_1.MusicAnyJobParamsSchema,
|
|
38
38
|
prompt: zod_1.z.string(),
|
|
39
39
|
track: zod_1.z.object({
|
|
40
40
|
uuid: zod_1.z.string().optional(), // Опционально для backward compatibility
|
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./music-config.schema"), exports);
|
|
18
18
|
__exportStar(require("./music-job.schema"), exports);
|
|
19
19
|
__exportStar(require("./music-model.schema"), exports);
|
|
20
|
+
__exportStar(require("./music-playlist.schema"), exports);
|
|
20
21
|
__exportStar(require("./music-track.schema"), exports);
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MusicConfigSchema = void 0;
|
|
3
|
+
exports.MusicConfigSchema = exports.MusicAudioActionPricesSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const music_model_schema_1 = require("./music-model.schema");
|
|
6
|
+
const constants_1 = require("../../../constants");
|
|
7
|
+
exports.MusicAudioActionPricesSchema = zod_1.z.record(zod_1.z.nativeEnum(constants_1.MUSIC_AUDIO_ACTION_TYPE), zod_1.z.number());
|
|
6
8
|
exports.MusicConfigSchema = zod_1.z.object({
|
|
7
9
|
models: zod_1.z.array(music_model_schema_1.MusicModelSchema),
|
|
10
|
+
audioActionPrices: exports.MusicAudioActionPricesSchema,
|
|
8
11
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MusicJobSchema = exports.MusicJobParamsSchema = void 0;
|
|
3
|
+
exports.MusicJobSchema = exports.MusicExecuteRequestSchema = exports.MusicAnyJobParamsSchema = exports.MusicEditActionResultSchema = exports.MusicEditRequestSchema = exports.MusicAddVocalsParamsSchema = exports.MusicAddInstrumentalParamsSchema = exports.MusicUploadExtendParamsSchema = exports.MusicUploadCoverParamsSchema = exports.MusicSeparateVocalsParamsSchema = exports.MusicBackgroundParamsSchema = exports.MusicLyricsParamsSchema = exports.MusicJobParamsSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const tool_job_schema_1 = require("../../tool-job.schema");
|
|
6
6
|
const constants_1 = require("../../../constants");
|
|
@@ -28,12 +28,136 @@ exports.MusicJobParamsSchema = zod_1.z.discriminatedUnion('mode', [
|
|
|
28
28
|
style: zod_1.z.string().min(1).max(1000),
|
|
29
29
|
}),
|
|
30
30
|
]);
|
|
31
|
+
exports.MusicLyricsParamsSchema = zod_1.z.object({
|
|
32
|
+
prompt: zod_1.z.string().min(1).max(1000),
|
|
33
|
+
style: zod_1.z.string().min(1).max(200).optional(),
|
|
34
|
+
structure: zod_1.z.nativeEnum(constants_1.MUSIC_LYRICS_STRUCTURE),
|
|
35
|
+
});
|
|
36
|
+
exports.MusicBackgroundParamsSchema = zod_1.z.object({
|
|
37
|
+
prompt: zod_1.z.string().min(1).max(450),
|
|
38
|
+
style: zod_1.z.string(),
|
|
39
|
+
});
|
|
40
|
+
exports.MusicSeparateVocalsParamsSchema = zod_1.z.object({
|
|
41
|
+
externalId: zod_1.z.string().uuid(),
|
|
42
|
+
audioId: zod_1.z.string().min(1),
|
|
43
|
+
});
|
|
44
|
+
exports.MusicUploadCoverParamsSchema = zod_1.z.object({
|
|
45
|
+
audioId: zod_1.z.string().uuid(),
|
|
46
|
+
style: zod_1.z.string().min(1).max(1000),
|
|
47
|
+
prompt: zod_1.z.string().min(1).max(5000).optional(),
|
|
48
|
+
title: zod_1.z.string().min(1).max(80).optional(),
|
|
49
|
+
negativeTags: zod_1.z.string().max(1000).optional(),
|
|
50
|
+
vocalGender: zod_1.z.nativeEnum(constants_1.MUSIC_VOCAL_GENDER).optional(),
|
|
51
|
+
instrumental: zod_1.z.boolean().optional(),
|
|
52
|
+
});
|
|
53
|
+
exports.MusicUploadExtendParamsSchema = zod_1.z.object({
|
|
54
|
+
audioId: zod_1.z.string().uuid(),
|
|
55
|
+
continueAt: zod_1.z.number().positive(),
|
|
56
|
+
prompt: zod_1.z.string().min(1).max(5000),
|
|
57
|
+
style: zod_1.z.string().min(1).max(1000).optional(),
|
|
58
|
+
title: zod_1.z.string().min(1).max(80).optional(),
|
|
59
|
+
negativeTags: zod_1.z.string().max(1000).optional(),
|
|
60
|
+
vocalGender: zod_1.z.nativeEnum(constants_1.MUSIC_VOCAL_GENDER).optional(),
|
|
61
|
+
instrumental: zod_1.z.boolean().optional(),
|
|
62
|
+
});
|
|
63
|
+
exports.MusicAddInstrumentalParamsSchema = zod_1.z.object({
|
|
64
|
+
audioId: zod_1.z.string().uuid(),
|
|
65
|
+
style: zod_1.z.string().min(1).max(1000),
|
|
66
|
+
title: zod_1.z.string().min(1).max(80).optional(),
|
|
67
|
+
negativeTags: zod_1.z.string().max(1000).optional(),
|
|
68
|
+
vocalGender: zod_1.z.nativeEnum(constants_1.MUSIC_VOCAL_GENDER).optional(),
|
|
69
|
+
});
|
|
70
|
+
exports.MusicAddVocalsParamsSchema = zod_1.z.object({
|
|
71
|
+
audioId: zod_1.z.string().uuid(),
|
|
72
|
+
prompt: zod_1.z.string().min(1).max(5000),
|
|
73
|
+
style: zod_1.z.string().min(1).max(1000),
|
|
74
|
+
title: zod_1.z.string().min(1).max(80).optional(),
|
|
75
|
+
negativeTags: zod_1.z.string().max(1000).optional(),
|
|
76
|
+
vocalGender: zod_1.z.nativeEnum(constants_1.MUSIC_VOCAL_GENDER).optional(),
|
|
77
|
+
});
|
|
78
|
+
exports.MusicEditRequestSchema = zod_1.z
|
|
79
|
+
.object({
|
|
80
|
+
actionType: zod_1.z.nativeEnum(constants_1.MUSIC_AUDIO_ACTION_TYPE),
|
|
81
|
+
modelId: zod_1.z.string().uuid().optional(),
|
|
82
|
+
params: zod_1.z.unknown(),
|
|
83
|
+
})
|
|
84
|
+
.superRefine((data, ctx) => {
|
|
85
|
+
const requiresModel = ![
|
|
86
|
+
constants_1.MUSIC_AUDIO_ACTION_TYPE.REMOVE_VOCALS,
|
|
87
|
+
constants_1.MUSIC_AUDIO_ACTION_TYPE.EXTRACT_VOCALS,
|
|
88
|
+
].includes(data.actionType);
|
|
89
|
+
if (requiresModel && !data.modelId) {
|
|
90
|
+
ctx.addIssue({
|
|
91
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
92
|
+
message: 'modelId is required',
|
|
93
|
+
path: ['modelId'],
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
const paramsValidation = data.actionType === constants_1.MUSIC_AUDIO_ACTION_TYPE.REMOVE_VOCALS ||
|
|
97
|
+
data.actionType === constants_1.MUSIC_AUDIO_ACTION_TYPE.EXTRACT_VOCALS
|
|
98
|
+
? exports.MusicSeparateVocalsParamsSchema.safeParse(data.params)
|
|
99
|
+
: data.actionType === constants_1.MUSIC_AUDIO_ACTION_TYPE.COVER
|
|
100
|
+
? exports.MusicUploadCoverParamsSchema.safeParse(data.params)
|
|
101
|
+
: data.actionType === constants_1.MUSIC_AUDIO_ACTION_TYPE.EXTEND
|
|
102
|
+
? exports.MusicUploadExtendParamsSchema.safeParse(data.params)
|
|
103
|
+
: data.actionType === constants_1.MUSIC_AUDIO_ACTION_TYPE.ADD_INSTRUMENTAL
|
|
104
|
+
? exports.MusicAddInstrumentalParamsSchema.safeParse(data.params)
|
|
105
|
+
: exports.MusicAddVocalsParamsSchema.safeParse(data.params);
|
|
106
|
+
if (!paramsValidation.success) {
|
|
107
|
+
for (const issue of paramsValidation.error.issues) {
|
|
108
|
+
ctx.addIssue(Object.assign(Object.assign({}, issue), { path: ['params', ...issue.path] }));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
exports.MusicEditActionResultSchema = zod_1.z.object({
|
|
113
|
+
actionType: zod_1.z.nativeEnum(constants_1.MUSIC_AUDIO_ACTION_TYPE),
|
|
114
|
+
url: zod_1.z.string(),
|
|
115
|
+
vocalUrl: zod_1.z.string().optional(),
|
|
116
|
+
instrumentalUrl: zod_1.z.string().optional(),
|
|
117
|
+
originUrl: zod_1.z.string().optional(),
|
|
118
|
+
price: zod_1.z.number(),
|
|
119
|
+
});
|
|
120
|
+
exports.MusicAnyJobParamsSchema = zod_1.z.union([
|
|
121
|
+
exports.MusicJobParamsSchema,
|
|
122
|
+
exports.MusicUploadCoverParamsSchema,
|
|
123
|
+
exports.MusicUploadExtendParamsSchema,
|
|
124
|
+
exports.MusicAddInstrumentalParamsSchema,
|
|
125
|
+
exports.MusicAddVocalsParamsSchema,
|
|
126
|
+
]);
|
|
127
|
+
exports.MusicExecuteRequestSchema = zod_1.z
|
|
128
|
+
.object({
|
|
129
|
+
actionType: zod_1.z
|
|
130
|
+
.nativeEnum(constants_1.MUSIC_GENERATION_ACTION_TYPE)
|
|
131
|
+
.optional()
|
|
132
|
+
.default(constants_1.MUSIC_GENERATION_ACTION_TYPE.GENERATE),
|
|
133
|
+
modelId: zod_1.z.string().uuid().optional(),
|
|
134
|
+
params: zod_1.z.unknown(),
|
|
135
|
+
})
|
|
136
|
+
.superRefine((data, ctx) => {
|
|
137
|
+
if (data.actionType !== constants_1.MUSIC_GENERATION_ACTION_TYPE.GENERATE_LYRICS && !data.modelId) {
|
|
138
|
+
ctx.addIssue({
|
|
139
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
140
|
+
message: 'modelId is required',
|
|
141
|
+
path: ['modelId'],
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
const paramsValidation = data.actionType === constants_1.MUSIC_GENERATION_ACTION_TYPE.GENERATE_LYRICS
|
|
145
|
+
? exports.MusicLyricsParamsSchema.safeParse(data.params)
|
|
146
|
+
: data.actionType === constants_1.MUSIC_GENERATION_ACTION_TYPE.BACKGROUND
|
|
147
|
+
? exports.MusicBackgroundParamsSchema.safeParse(data.params)
|
|
148
|
+
: exports.MusicJobParamsSchema.safeParse(data.params);
|
|
149
|
+
if (!paramsValidation.success) {
|
|
150
|
+
for (const issue of paramsValidation.error.issues) {
|
|
151
|
+
ctx.addIssue(Object.assign(Object.assign({}, issue), { path: ['params', ...issue.path] }));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
});
|
|
31
155
|
exports.MusicJobSchema = tool_job_schema_1.ToolJobSchema.extend({
|
|
32
156
|
title: zod_1.z.string(),
|
|
33
157
|
prompt: zod_1.z.string(),
|
|
34
158
|
reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
|
|
35
159
|
tracks: zod_1.z.array(music_track_schema_1.MusicTrackSchema),
|
|
36
|
-
params: exports.
|
|
160
|
+
params: exports.MusicAnyJobParamsSchema,
|
|
37
161
|
externalId: zod_1.z.string().nullable(),
|
|
38
162
|
modelId: zod_1.z.string(),
|
|
39
163
|
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MusicPlaylistSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const music_track_schema_1 = require("./music-track.schema");
|
|
6
|
+
exports.MusicPlaylistSchema = zod_1.z.object({
|
|
7
|
+
uuid: zod_1.z.string().uuid(),
|
|
8
|
+
title: zod_1.z.string(),
|
|
9
|
+
tracks: zod_1.z.array(music_track_schema_1.MusicTrackSchema).optional(),
|
|
10
|
+
trackCount: zod_1.z.number(),
|
|
11
|
+
userId: zod_1.z.string().uuid().nullable().optional(),
|
|
12
|
+
unregisteredUserId: zod_1.z.string().uuid().nullable().optional(),
|
|
13
|
+
createdAt: zod_1.z.date(),
|
|
14
|
+
updatedAt: zod_1.z.date(),
|
|
15
|
+
});
|
|
@@ -2,17 +2,28 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MusicTrackSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const file_schema_1 = require("../../file.schema");
|
|
5
6
|
exports.MusicTrackSchema = zod_1.z.object({
|
|
6
7
|
uuid: zod_1.z.string(),
|
|
7
8
|
title: zod_1.z.string(),
|
|
8
9
|
audioId: zod_1.z.string(),
|
|
9
10
|
audioUrl: zod_1.z.string(),
|
|
11
|
+
audioFile: file_schema_1.FileSchema.pick({
|
|
12
|
+
uuid: true,
|
|
13
|
+
url: true,
|
|
14
|
+
mimeType: true,
|
|
15
|
+
duration: true,
|
|
16
|
+
originalName: true,
|
|
17
|
+
})
|
|
18
|
+
.nullable()
|
|
19
|
+
.optional(),
|
|
10
20
|
coverUrl: zod_1.z.string(),
|
|
11
21
|
prompt: zod_1.z.string().nullable(),
|
|
22
|
+
fullLyrics: zod_1.z.string().nullable().optional(),
|
|
12
23
|
tags: zod_1.z.string(),
|
|
13
24
|
duration: zod_1.z.number(),
|
|
14
|
-
isPublished: zod_1.z.boolean(),
|
|
15
|
-
postId: zod_1.z.string().nullable(),
|
|
25
|
+
isPublished: zod_1.z.boolean().optional(),
|
|
26
|
+
postId: zod_1.z.string().nullable().optional(),
|
|
16
27
|
waveformPeaks: zod_1.z.array(zod_1.z.number()).nullable().optional(),
|
|
17
28
|
genJobId: zod_1.z.string().nullable().optional(),
|
|
18
29
|
editorJobId: zod_1.z.string().nullable().optional(),
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicPlaylistSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace AddTrackToMusicPlaylistCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
trackId: z.string().uuid(),
|
|
7
|
+
});
|
|
8
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
9
|
+
|
|
10
|
+
export const RequestParamsSchema = z.object({
|
|
11
|
+
uuid: z.string().uuid(),
|
|
12
|
+
});
|
|
13
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
14
|
+
|
|
15
|
+
export const ResponseSchema = z.object({
|
|
16
|
+
data: MusicPlaylistSchema,
|
|
17
|
+
});
|
|
18
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export namespace BoostMusicStyleCommand {
|
|
4
|
+
export const RequestSchema = z.object({
|
|
5
|
+
content: z.string().min(1).max(3000),
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
9
|
+
|
|
10
|
+
export const ResponseSchema = z.object({
|
|
11
|
+
data: z.object({
|
|
12
|
+
result: z.string(),
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicPlaylistSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace CreateMusicPlaylistCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
title: z.string().min(1).max(80).trim(),
|
|
7
|
+
});
|
|
8
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
9
|
+
|
|
10
|
+
export const ResponseSchema = z.object({
|
|
11
|
+
data: MusicPlaylistSchema,
|
|
12
|
+
});
|
|
13
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export namespace DeleteMusicPlaylistCommand {
|
|
4
|
+
export const RequestParamsSchema = z.object({
|
|
5
|
+
uuid: z.string().uuid(),
|
|
6
|
+
});
|
|
7
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
8
|
+
|
|
9
|
+
export const ResponseSchema = z.void();
|
|
10
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import {
|
|
3
|
+
MusicEditActionResultSchema,
|
|
4
|
+
MusicEditRequestSchema,
|
|
5
|
+
MusicJobSchema,
|
|
6
|
+
} from '../../../models';
|
|
7
|
+
|
|
8
|
+
export namespace EditMusicCommand {
|
|
9
|
+
export const RequestSchema = MusicEditRequestSchema;
|
|
10
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
11
|
+
|
|
12
|
+
export const ResponseSchema = z.object({
|
|
13
|
+
data: z.union([MusicJobSchema, MusicEditActionResultSchema]),
|
|
14
|
+
});
|
|
15
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicPlaylistSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace FindMusicPlaylistsCommand {
|
|
5
|
+
export const ResponseSchema = z.object({
|
|
6
|
+
data: z.array(MusicPlaylistSchema),
|
|
7
|
+
});
|
|
8
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
9
|
+
}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { MusicExecuteRequestSchema, MusicJobSchema } from '../../../models';
|
|
3
3
|
export namespace MusicCommand {
|
|
4
|
-
export const RequestSchema =
|
|
5
|
-
modelId: z.string().uuid(),
|
|
6
|
-
params: MusicJobParamsSchema,
|
|
7
|
-
});
|
|
4
|
+
export const RequestSchema = MusicExecuteRequestSchema;
|
|
8
5
|
|
|
9
6
|
export type Request = z.infer<typeof RequestSchema>;
|
|
10
7
|
|
|
11
8
|
export const ResponseSchema = z.object({
|
|
12
|
-
data:
|
|
9
|
+
data: z.union([MusicJobSchema, z.object({ lyrics: z.string() })]),
|
|
13
10
|
});
|
|
14
11
|
|
|
15
12
|
export type Response = z.infer<typeof ResponseSchema>;
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
export * from './add-track-to-music-playlist.command';
|
|
2
|
+
export * from './create-music-playlist.command';
|
|
1
3
|
export * from './delete-all-music-jobs.command';
|
|
2
4
|
export * from './delete-music-job-by-uuid.command';
|
|
5
|
+
export * from './delete-music-playlist.command';
|
|
6
|
+
export * from './edit-music.command';
|
|
3
7
|
export * from './find-music-job-by-uuid.command';
|
|
4
8
|
export * from './find-music-jobs.command';
|
|
9
|
+
export * from './find-music-playlists.command';
|
|
5
10
|
export * from './get-music-tool-config.command';
|
|
6
11
|
export * from './retry-music-job.command';
|
|
7
12
|
export * from './set-reaction-to-music-job.command';
|
|
8
13
|
export * from './generate-music.command';
|
|
9
14
|
export * from './update-music-job-title.command';
|
|
15
|
+
export * from './remove-track-from-music-playlist.command';
|
|
10
16
|
export * from './convert-to-wav.command';
|
|
11
17
|
export * from './generate-lyrics.command';
|
|
18
|
+
export * from './boost-music-style.command';
|
|
12
19
|
export * from './update-music-job-favorite.command';
|
|
20
|
+
export * from './update-music-playlist.command';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicPlaylistSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace RemoveTrackFromMusicPlaylistCommand {
|
|
5
|
+
export const RequestParamsSchema = z.object({
|
|
6
|
+
uuid: z.string().uuid(),
|
|
7
|
+
trackId: z.string().uuid(),
|
|
8
|
+
});
|
|
9
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = z.object({
|
|
12
|
+
data: MusicPlaylistSchema,
|
|
13
|
+
});
|
|
14
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicPlaylistSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace UpdateMusicPlaylistCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
title: z.string().min(1).max(80).trim(),
|
|
7
|
+
});
|
|
8
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
9
|
+
|
|
10
|
+
export const RequestParamsSchema = z.object({
|
|
11
|
+
uuid: z.string().uuid(),
|
|
12
|
+
});
|
|
13
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
14
|
+
|
|
15
|
+
export const ResponseSchema = z.object({
|
|
16
|
+
data: MusicPlaylistSchema,
|
|
17
|
+
});
|
|
18
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
19
|
+
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export * from './suno-model-type.enum';
|
|
2
|
+
export * from './music-action-type.enum';
|
|
3
|
+
export * from './music-audio-action-type.enum';
|
|
4
|
+
export * from './music-generation-action-type.enum';
|
|
5
|
+
export * from './music-lyrics-structure.enum';
|
|
2
6
|
export * from './music-strategy.enum';
|
|
3
7
|
export * from './music-vocal-gender.enum';
|
|
4
8
|
export * from './music-pricing-rule-type.enum';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export enum MUSIC_ACTION_TYPE {
|
|
2
|
+
LYRICS = 'LYRICS',
|
|
3
|
+
BOOST_STYLE = 'BOOST_STYLE',
|
|
4
|
+
REMOVE_VOCALS = 'REMOVE_VOCALS',
|
|
5
|
+
EXTRACT_VOCALS = 'EXTRACT_VOCALS',
|
|
6
|
+
COVER = 'COVER',
|
|
7
|
+
EXTEND = 'EXTEND',
|
|
8
|
+
ADD_INSTRUMENTAL = 'ADD_INSTRUMENTAL',
|
|
9
|
+
ADD_VOCALS = 'ADD_VOCALS',
|
|
10
|
+
}
|
|
@@ -24,10 +24,23 @@ export const EmailLeadAgentToolCredentialsSchema = z.object({
|
|
|
24
24
|
|
|
25
25
|
export type EmailLeadAgentToolCredentials = z.infer<typeof EmailLeadAgentToolCredentialsSchema>;
|
|
26
26
|
|
|
27
|
+
export const PachcaLeadAgentToolCredentialsSchema = z.object({
|
|
28
|
+
type: z.literal(AGENT_TOOL_TYPE.PACHCA_LEAD),
|
|
29
|
+
webhookUrl: z
|
|
30
|
+
.string()
|
|
31
|
+
.url()
|
|
32
|
+
.refine((v) => v.trim().toLowerCase().startsWith('https://'), {
|
|
33
|
+
message: 'URL должен начинаться с https://',
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
export type PachcaLeadAgentToolCredentials = z.infer<typeof PachcaLeadAgentToolCredentialsSchema>;
|
|
38
|
+
|
|
27
39
|
export const AgentToolCredentialsSchema = z.discriminatedUnion('type', [
|
|
28
40
|
BitrixLeadAgentToolCredentialsSchema,
|
|
29
41
|
AmoLeadAgentToolCredentialsSchema,
|
|
30
42
|
EmailLeadAgentToolCredentialsSchema,
|
|
43
|
+
PachcaLeadAgentToolCredentialsSchema,
|
|
31
44
|
]);
|
|
32
45
|
|
|
33
46
|
export type AgentToolCredentials = z.infer<typeof AgentToolCredentialsSchema>;
|
|
@@ -2,7 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
import { COMMUNITY_POST_TYPE } from '../../constants';
|
|
3
3
|
import { VideoJobParamsSchema } from '../tools/video/video-job.schema';
|
|
4
4
|
import { FileSchema } from '../file.schema';
|
|
5
|
-
import {
|
|
5
|
+
import { MusicAnyJobParamsSchema } from '../tools';
|
|
6
6
|
|
|
7
7
|
export const ImageCommunityMediaSchema = z.object({
|
|
8
8
|
type: z.literal(COMMUNITY_POST_TYPE.IMAGE),
|
|
@@ -36,7 +36,7 @@ export const VideoEditorCommunityMediaSchema = z.object({
|
|
|
36
36
|
|
|
37
37
|
export const MusicCommunityMediaSchema = z.object({
|
|
38
38
|
type: z.literal(COMMUNITY_POST_TYPE.MUSIC),
|
|
39
|
-
params:
|
|
39
|
+
params: MusicAnyJobParamsSchema,
|
|
40
40
|
prompt: z.string(),
|
|
41
41
|
track: z.object({
|
|
42
42
|
uuid: z.string().optional(), // Опционально для backward compatibility
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { MusicModelSchema } from './music-model.schema';
|
|
3
|
+
import { MUSIC_AUDIO_ACTION_TYPE } from '../../../constants';
|
|
4
|
+
|
|
5
|
+
export const MusicAudioActionPricesSchema = z.record(
|
|
6
|
+
z.nativeEnum(MUSIC_AUDIO_ACTION_TYPE),
|
|
7
|
+
z.number(),
|
|
8
|
+
);
|
|
3
9
|
|
|
4
10
|
export const MusicConfigSchema = z.object({
|
|
5
11
|
models: z.array(MusicModelSchema),
|
|
12
|
+
audioActionPrices: MusicAudioActionPricesSchema,
|
|
6
13
|
});
|
|
7
14
|
|
|
8
15
|
export type MusicConfig = z.infer<typeof MusicConfigSchema>;
|
|
16
|
+
export type MusicAudioActionPrices = z.infer<typeof MusicAudioActionPricesSchema>;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ToolJobSchema } from '../../tool-job.schema';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
MUSIC_AUDIO_ACTION_TYPE,
|
|
5
|
+
MUSIC_GENERATION_ACTION_TYPE,
|
|
6
|
+
MUSIC_LYRICS_STRUCTURE,
|
|
7
|
+
MUSIC_VOCAL_GENDER,
|
|
8
|
+
SUNO_MODE_TYPE,
|
|
9
|
+
USER_REACTION,
|
|
10
|
+
} from '../../../constants';
|
|
4
11
|
import { MusicTrackSchema } from './music-track.schema';
|
|
5
12
|
|
|
6
13
|
export const MusicJobParamsSchema = z.discriminatedUnion('mode', [
|
|
@@ -29,12 +36,171 @@ export const MusicJobParamsSchema = z.discriminatedUnion('mode', [
|
|
|
29
36
|
|
|
30
37
|
export type MusicJobParams = z.infer<typeof MusicJobParamsSchema>;
|
|
31
38
|
|
|
39
|
+
export const MusicLyricsParamsSchema = z.object({
|
|
40
|
+
prompt: z.string().min(1).max(1000),
|
|
41
|
+
style: z.string().min(1).max(200).optional(),
|
|
42
|
+
structure: z.nativeEnum(MUSIC_LYRICS_STRUCTURE),
|
|
43
|
+
});
|
|
44
|
+
export type MusicLyricsParams = z.infer<typeof MusicLyricsParamsSchema>;
|
|
45
|
+
|
|
46
|
+
export const MusicBackgroundParamsSchema = z.object({
|
|
47
|
+
prompt: z.string().min(1).max(450),
|
|
48
|
+
style: z.string(),
|
|
49
|
+
});
|
|
50
|
+
export type MusicBackgroundParams = z.infer<typeof MusicBackgroundParamsSchema>;
|
|
51
|
+
|
|
52
|
+
export const MusicSeparateVocalsParamsSchema = z.object({
|
|
53
|
+
externalId: z.string().uuid(),
|
|
54
|
+
audioId: z.string().min(1),
|
|
55
|
+
});
|
|
56
|
+
export type MusicSeparateVocalsParams = z.infer<typeof MusicSeparateVocalsParamsSchema>;
|
|
57
|
+
|
|
58
|
+
export const MusicUploadCoverParamsSchema = z.object({
|
|
59
|
+
audioId: z.string().uuid(),
|
|
60
|
+
style: z.string().min(1).max(1000),
|
|
61
|
+
prompt: z.string().min(1).max(5000).optional(),
|
|
62
|
+
title: z.string().min(1).max(80).optional(),
|
|
63
|
+
negativeTags: z.string().max(1000).optional(),
|
|
64
|
+
vocalGender: z.nativeEnum(MUSIC_VOCAL_GENDER).optional(),
|
|
65
|
+
instrumental: z.boolean().optional(),
|
|
66
|
+
});
|
|
67
|
+
export type MusicUploadCoverParams = z.infer<typeof MusicUploadCoverParamsSchema>;
|
|
68
|
+
|
|
69
|
+
export const MusicUploadExtendParamsSchema = z.object({
|
|
70
|
+
audioId: z.string().uuid(),
|
|
71
|
+
continueAt: z.number().positive(),
|
|
72
|
+
prompt: z.string().min(1).max(5000),
|
|
73
|
+
style: z.string().min(1).max(1000).optional(),
|
|
74
|
+
title: z.string().min(1).max(80).optional(),
|
|
75
|
+
negativeTags: z.string().max(1000).optional(),
|
|
76
|
+
vocalGender: z.nativeEnum(MUSIC_VOCAL_GENDER).optional(),
|
|
77
|
+
instrumental: z.boolean().optional(),
|
|
78
|
+
});
|
|
79
|
+
export type MusicUploadExtendParams = z.infer<typeof MusicUploadExtendParamsSchema>;
|
|
80
|
+
|
|
81
|
+
export const MusicAddInstrumentalParamsSchema = z.object({
|
|
82
|
+
audioId: z.string().uuid(),
|
|
83
|
+
style: z.string().min(1).max(1000),
|
|
84
|
+
title: z.string().min(1).max(80).optional(),
|
|
85
|
+
negativeTags: z.string().max(1000).optional(),
|
|
86
|
+
vocalGender: z.nativeEnum(MUSIC_VOCAL_GENDER).optional(),
|
|
87
|
+
});
|
|
88
|
+
export type MusicAddInstrumentalParams = z.infer<typeof MusicAddInstrumentalParamsSchema>;
|
|
89
|
+
|
|
90
|
+
export const MusicAddVocalsParamsSchema = z.object({
|
|
91
|
+
audioId: z.string().uuid(),
|
|
92
|
+
prompt: z.string().min(1).max(5000),
|
|
93
|
+
style: z.string().min(1).max(1000),
|
|
94
|
+
title: z.string().min(1).max(80).optional(),
|
|
95
|
+
negativeTags: z.string().max(1000).optional(),
|
|
96
|
+
vocalGender: z.nativeEnum(MUSIC_VOCAL_GENDER).optional(),
|
|
97
|
+
});
|
|
98
|
+
export type MusicAddVocalsParams = z.infer<typeof MusicAddVocalsParamsSchema>;
|
|
99
|
+
|
|
100
|
+
export const MusicEditRequestSchema = z
|
|
101
|
+
.object({
|
|
102
|
+
actionType: z.nativeEnum(MUSIC_AUDIO_ACTION_TYPE),
|
|
103
|
+
modelId: z.string().uuid().optional(),
|
|
104
|
+
params: z.unknown(),
|
|
105
|
+
})
|
|
106
|
+
.superRefine((data, ctx) => {
|
|
107
|
+
const requiresModel = ![
|
|
108
|
+
MUSIC_AUDIO_ACTION_TYPE.REMOVE_VOCALS,
|
|
109
|
+
MUSIC_AUDIO_ACTION_TYPE.EXTRACT_VOCALS,
|
|
110
|
+
].includes(data.actionType);
|
|
111
|
+
|
|
112
|
+
if (requiresModel && !data.modelId) {
|
|
113
|
+
ctx.addIssue({
|
|
114
|
+
code: z.ZodIssueCode.custom,
|
|
115
|
+
message: 'modelId is required',
|
|
116
|
+
path: ['modelId'],
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const paramsValidation =
|
|
121
|
+
data.actionType === MUSIC_AUDIO_ACTION_TYPE.REMOVE_VOCALS ||
|
|
122
|
+
data.actionType === MUSIC_AUDIO_ACTION_TYPE.EXTRACT_VOCALS
|
|
123
|
+
? MusicSeparateVocalsParamsSchema.safeParse(data.params)
|
|
124
|
+
: data.actionType === MUSIC_AUDIO_ACTION_TYPE.COVER
|
|
125
|
+
? MusicUploadCoverParamsSchema.safeParse(data.params)
|
|
126
|
+
: data.actionType === MUSIC_AUDIO_ACTION_TYPE.EXTEND
|
|
127
|
+
? MusicUploadExtendParamsSchema.safeParse(data.params)
|
|
128
|
+
: data.actionType === MUSIC_AUDIO_ACTION_TYPE.ADD_INSTRUMENTAL
|
|
129
|
+
? MusicAddInstrumentalParamsSchema.safeParse(data.params)
|
|
130
|
+
: MusicAddVocalsParamsSchema.safeParse(data.params);
|
|
131
|
+
|
|
132
|
+
if (!paramsValidation.success) {
|
|
133
|
+
for (const issue of paramsValidation.error.issues) {
|
|
134
|
+
ctx.addIssue({
|
|
135
|
+
...issue,
|
|
136
|
+
path: ['params', ...issue.path],
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
export type MusicEditRequest = z.infer<typeof MusicEditRequestSchema>;
|
|
142
|
+
|
|
143
|
+
export const MusicEditActionResultSchema = z.object({
|
|
144
|
+
actionType: z.nativeEnum(MUSIC_AUDIO_ACTION_TYPE),
|
|
145
|
+
url: z.string(),
|
|
146
|
+
vocalUrl: z.string().optional(),
|
|
147
|
+
instrumentalUrl: z.string().optional(),
|
|
148
|
+
originUrl: z.string().optional(),
|
|
149
|
+
price: z.number(),
|
|
150
|
+
});
|
|
151
|
+
export type MusicEditActionResult = z.infer<typeof MusicEditActionResultSchema>;
|
|
152
|
+
|
|
153
|
+
export const MusicAnyJobParamsSchema = z.union([
|
|
154
|
+
MusicJobParamsSchema,
|
|
155
|
+
MusicUploadCoverParamsSchema,
|
|
156
|
+
MusicUploadExtendParamsSchema,
|
|
157
|
+
MusicAddInstrumentalParamsSchema,
|
|
158
|
+
MusicAddVocalsParamsSchema,
|
|
159
|
+
]);
|
|
160
|
+
export type MusicAnyJobParams = z.infer<typeof MusicAnyJobParamsSchema>;
|
|
161
|
+
|
|
162
|
+
export const MusicExecuteRequestSchema = z
|
|
163
|
+
.object({
|
|
164
|
+
actionType: z
|
|
165
|
+
.nativeEnum(MUSIC_GENERATION_ACTION_TYPE)
|
|
166
|
+
.optional()
|
|
167
|
+
.default(MUSIC_GENERATION_ACTION_TYPE.GENERATE),
|
|
168
|
+
modelId: z.string().uuid().optional(),
|
|
169
|
+
params: z.unknown(),
|
|
170
|
+
})
|
|
171
|
+
.superRefine((data, ctx) => {
|
|
172
|
+
if (data.actionType !== MUSIC_GENERATION_ACTION_TYPE.GENERATE_LYRICS && !data.modelId) {
|
|
173
|
+
ctx.addIssue({
|
|
174
|
+
code: z.ZodIssueCode.custom,
|
|
175
|
+
message: 'modelId is required',
|
|
176
|
+
path: ['modelId'],
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const paramsValidation =
|
|
181
|
+
data.actionType === MUSIC_GENERATION_ACTION_TYPE.GENERATE_LYRICS
|
|
182
|
+
? MusicLyricsParamsSchema.safeParse(data.params)
|
|
183
|
+
: data.actionType === MUSIC_GENERATION_ACTION_TYPE.BACKGROUND
|
|
184
|
+
? MusicBackgroundParamsSchema.safeParse(data.params)
|
|
185
|
+
: MusicJobParamsSchema.safeParse(data.params);
|
|
186
|
+
|
|
187
|
+
if (!paramsValidation.success) {
|
|
188
|
+
for (const issue of paramsValidation.error.issues) {
|
|
189
|
+
ctx.addIssue({
|
|
190
|
+
...issue,
|
|
191
|
+
path: ['params', ...issue.path],
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
export type MusicExecuteRequest = z.infer<typeof MusicExecuteRequestSchema>;
|
|
197
|
+
|
|
32
198
|
export const MusicJobSchema = ToolJobSchema.extend({
|
|
33
199
|
title: z.string(),
|
|
34
200
|
prompt: z.string(),
|
|
35
201
|
reaction: z.nativeEnum(USER_REACTION).nullable(),
|
|
36
202
|
tracks: z.array(MusicTrackSchema),
|
|
37
|
-
params:
|
|
203
|
+
params: MusicAnyJobParamsSchema,
|
|
38
204
|
externalId: z.string().nullable(),
|
|
39
205
|
modelId: z.string(),
|
|
40
206
|
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicTrackSchema } from './music-track.schema';
|
|
3
|
+
|
|
4
|
+
export const MusicPlaylistSchema = z.object({
|
|
5
|
+
uuid: z.string().uuid(),
|
|
6
|
+
title: z.string(),
|
|
7
|
+
tracks: z.array(MusicTrackSchema).optional(),
|
|
8
|
+
trackCount: z.number(),
|
|
9
|
+
userId: z.string().uuid().nullable().optional(),
|
|
10
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
11
|
+
createdAt: z.date(),
|
|
12
|
+
updatedAt: z.date(),
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export type MusicPlaylist = z.infer<typeof MusicPlaylistSchema>;
|
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { FileSchema } from '../../file.schema';
|
|
2
3
|
|
|
3
4
|
export const MusicTrackSchema = z.object({
|
|
4
5
|
uuid: z.string(),
|
|
5
6
|
title: z.string(),
|
|
6
7
|
audioId: z.string(),
|
|
7
8
|
audioUrl: z.string(),
|
|
9
|
+
audioFile: FileSchema.pick({
|
|
10
|
+
uuid: true,
|
|
11
|
+
url: true,
|
|
12
|
+
mimeType: true,
|
|
13
|
+
duration: true,
|
|
14
|
+
originalName: true,
|
|
15
|
+
})
|
|
16
|
+
.nullable()
|
|
17
|
+
.optional(),
|
|
8
18
|
coverUrl: z.string(),
|
|
9
19
|
prompt: z.string().nullable(),
|
|
20
|
+
fullLyrics: z.string().nullable().optional(),
|
|
10
21
|
tags: z.string(),
|
|
11
22
|
duration: z.number(),
|
|
12
|
-
isPublished: z.boolean(),
|
|
13
|
-
postId: z.string().nullable(),
|
|
23
|
+
isPublished: z.boolean().optional(),
|
|
24
|
+
postId: z.string().nullable().optional(),
|
|
14
25
|
waveformPeaks: z.array(z.number()).nullable().optional(),
|
|
15
26
|
|
|
16
27
|
genJobId: z.string().nullable().optional(),
|