@mulmoclaude/spotify-plugin 0.1.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.
@@ -0,0 +1,76 @@
1
+ export declare const TOOL_DEFINITION: {
2
+ type: "function";
3
+ name: "manageSpotify";
4
+ description: string;
5
+ parameters: {
6
+ type: "object";
7
+ properties: {
8
+ kind: {
9
+ type: string;
10
+ enum: ("connect" | "oauthCallback" | "status" | "diagnose" | "liked" | "playlists" | "playlistTracks" | "recent" | "nowPlaying" | "search" | "play" | "pause" | "next" | "previous" | "seek" | "setVolume" | "transferPlayback" | "getDevices")[];
11
+ description: string;
12
+ };
13
+ redirectUri: {
14
+ type: string;
15
+ description: string;
16
+ };
17
+ code: {
18
+ type: string;
19
+ };
20
+ state: {
21
+ type: string;
22
+ };
23
+ error: {
24
+ type: string;
25
+ };
26
+ limit: {
27
+ type: string;
28
+ description: string;
29
+ };
30
+ playlistId: {
31
+ type: string;
32
+ description: string;
33
+ };
34
+ query: {
35
+ type: string;
36
+ description: string;
37
+ };
38
+ types: {
39
+ type: string;
40
+ items: {
41
+ type: string;
42
+ enum: ("track" | "artist" | "album" | "playlist")[];
43
+ };
44
+ description: string;
45
+ };
46
+ deviceId: {
47
+ type: string;
48
+ description: string;
49
+ };
50
+ contextUri: {
51
+ type: string;
52
+ description: string;
53
+ };
54
+ trackUris: {
55
+ type: string;
56
+ items: {
57
+ type: string;
58
+ };
59
+ description: string;
60
+ };
61
+ positionMs: {
62
+ type: string;
63
+ description: string;
64
+ };
65
+ volumePercent: {
66
+ type: string;
67
+ description: string;
68
+ };
69
+ play: {
70
+ type: string;
71
+ description: string;
72
+ };
73
+ };
74
+ required: string[];
75
+ };
76
+ };
@@ -0,0 +1,141 @@
1
+ import { PluginRuntime } from 'gui-chat-protocol';
2
+ import { TOOL_DEFINITION } from './definition';
3
+ import { NormalisedDevice, NormalisedPlaylist, NormalisedTrack } from './types';
4
+ export { TOOL_DEFINITION };
5
+ export declare const OAUTH_CALLBACK_ALIAS = "spotify";
6
+ declare const _default: (runtime: PluginRuntime) => {
7
+ TOOL_DEFINITION: {
8
+ type: "function";
9
+ name: "manageSpotify";
10
+ description: string;
11
+ parameters: {
12
+ type: "object";
13
+ properties: {
14
+ kind: {
15
+ type: string;
16
+ enum: ("connect" | "oauthCallback" | "status" | "diagnose" | "liked" | "playlists" | "playlistTracks" | "recent" | "nowPlaying" | "search" | "play" | "pause" | "next" | "previous" | "seek" | "setVolume" | "transferPlayback" | "getDevices")[];
17
+ description: string;
18
+ };
19
+ redirectUri: {
20
+ type: string;
21
+ description: string;
22
+ };
23
+ code: {
24
+ type: string;
25
+ };
26
+ state: {
27
+ type: string;
28
+ };
29
+ error: {
30
+ type: string;
31
+ };
32
+ limit: {
33
+ type: string;
34
+ description: string;
35
+ };
36
+ playlistId: {
37
+ type: string;
38
+ description: string;
39
+ };
40
+ query: {
41
+ type: string;
42
+ description: string;
43
+ };
44
+ types: {
45
+ type: string;
46
+ items: {
47
+ type: string;
48
+ enum: ("track" | "artist" | "album" | "playlist")[];
49
+ };
50
+ description: string;
51
+ };
52
+ deviceId: {
53
+ type: string;
54
+ description: string;
55
+ };
56
+ contextUri: {
57
+ type: string;
58
+ description: string;
59
+ };
60
+ trackUris: {
61
+ type: string;
62
+ items: {
63
+ type: string;
64
+ };
65
+ description: string;
66
+ };
67
+ positionMs: {
68
+ type: string;
69
+ description: string;
70
+ };
71
+ volumePercent: {
72
+ type: string;
73
+ description: string;
74
+ };
75
+ play: {
76
+ type: string;
77
+ description: string;
78
+ };
79
+ };
80
+ required: string[];
81
+ };
82
+ };
83
+ manageSpotify(rawArgs: unknown): Promise<{
84
+ ok: boolean;
85
+ error: string;
86
+ message: string;
87
+ html: string;
88
+ instructions?: undefined;
89
+ } | {
90
+ ok: boolean;
91
+ error: string;
92
+ message: string;
93
+ instructions: string;
94
+ html: string;
95
+ } | {
96
+ ok: boolean;
97
+ message: string;
98
+ data: {
99
+ clientIdConfigured: boolean;
100
+ connected: boolean;
101
+ expiresAt: string | null;
102
+ scopes: string[];
103
+ isPremium: boolean | null;
104
+ displayName: string;
105
+ };
106
+ } | {
107
+ ok: boolean;
108
+ message: string;
109
+ data: {
110
+ clientIdConfigured: boolean;
111
+ tokensPresent: boolean;
112
+ expiresAt: string | null;
113
+ scopes: string[];
114
+ };
115
+ } | {
116
+ ok: boolean;
117
+ message: string;
118
+ error?: undefined;
119
+ } | {
120
+ ok: boolean;
121
+ message: string;
122
+ data: NormalisedTrack | NormalisedTrack[] | NormalisedPlaylist[] | import('./types').RecentlyPlayedItem[] | null;
123
+ } | {
124
+ ok: boolean;
125
+ message: string;
126
+ data: import('./types').SearchResult;
127
+ } | {
128
+ ok: boolean;
129
+ message: string;
130
+ data: NormalisedDevice[];
131
+ } | {
132
+ ok: boolean;
133
+ message: string;
134
+ data?: undefined;
135
+ } | {
136
+ ok: boolean;
137
+ error: string;
138
+ message: string;
139
+ }>;
140
+ };
141
+ export default _default;