flingit 0.0.18 → 0.0.20

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 (55) hide show
  1. package/dist/cli/commands/plugin.d.ts +3 -10
  2. package/dist/cli/commands/plugin.d.ts.map +1 -1
  3. package/dist/cli/commands/plugin.js +103 -209
  4. package/dist/cli/commands/plugin.js.map +1 -1
  5. package/dist/cli/commands/push.d.ts +5 -0
  6. package/dist/cli/commands/push.d.ts.map +1 -1
  7. package/dist/cli/commands/push.js +21 -33
  8. package/dist/cli/commands/push.js.map +1 -1
  9. package/dist/cli/deploy/bundler.d.ts +14 -10
  10. package/dist/cli/deploy/bundler.d.ts.map +1 -1
  11. package/dist/cli/deploy/bundler.js +44 -70
  12. package/dist/cli/deploy/bundler.js.map +1 -1
  13. package/dist/cli/utils/config.d.ts +12 -4
  14. package/dist/cli/utils/config.d.ts.map +1 -1
  15. package/dist/cli/utils/config.js +49 -6
  16. package/dist/cli/utils/config.js.map +1 -1
  17. package/dist/runtime/discord.d.ts +18 -59
  18. package/dist/runtime/discord.d.ts.map +1 -1
  19. package/dist/runtime/discord.js +20 -60
  20. package/dist/runtime/discord.js.map +1 -1
  21. package/dist/runtime/slack.d.ts +83 -0
  22. package/dist/runtime/slack.d.ts.map +1 -0
  23. package/dist/runtime/slack.js +87 -0
  24. package/dist/runtime/slack.js.map +1 -0
  25. package/dist/shared/discord-types.d.ts +0 -24
  26. package/dist/shared/discord-types.d.ts.map +1 -1
  27. package/dist/shared/plugin-metadata.d.ts +28 -0
  28. package/dist/shared/plugin-metadata.d.ts.map +1 -0
  29. package/dist/shared/plugin-metadata.js +65 -0
  30. package/dist/shared/plugin-metadata.js.map +1 -0
  31. package/dist/shared/slack-types.d.ts +61 -0
  32. package/dist/shared/slack-types.d.ts.map +1 -0
  33. package/dist/shared/slack-types.js +8 -0
  34. package/dist/shared/slack-types.js.map +1 -0
  35. package/dist/worker-runtime/discord.d.ts +75 -27
  36. package/dist/worker-runtime/discord.d.ts.map +1 -1
  37. package/dist/worker-runtime/discord.js +156 -108
  38. package/dist/worker-runtime/discord.js.map +1 -1
  39. package/dist/worker-runtime/index.d.ts +1 -1
  40. package/dist/worker-runtime/index.d.ts.map +1 -1
  41. package/dist/worker-runtime/index.js +0 -4
  42. package/dist/worker-runtime/index.js.map +1 -1
  43. package/dist/worker-runtime/plugin-common.d.ts +27 -0
  44. package/dist/worker-runtime/plugin-common.d.ts.map +1 -0
  45. package/dist/worker-runtime/plugin-common.js +91 -0
  46. package/dist/worker-runtime/plugin-common.js.map +1 -0
  47. package/dist/worker-runtime/slack.d.ts +67 -0
  48. package/dist/worker-runtime/slack.d.ts.map +1 -0
  49. package/dist/worker-runtime/slack.js +135 -0
  50. package/dist/worker-runtime/slack.js.map +1 -0
  51. package/package.json +10 -2
  52. package/templates/default/skills/fling/.hash +1 -1
  53. package/templates/default/skills/fling/DISCORD.md +69 -126
  54. package/templates/default/skills/fling/SKILL.md +13 -0
  55. package/templates/default/skills/fling/SLACK.md +214 -0
@@ -2,6 +2,7 @@
2
2
  * fling plugin - Plugin management commands
3
3
  *
4
4
  * Install, configure, and manage platform plugins like Discord.
5
+ * Plugin commands communicate directly with plugin workers (not the API worker).
5
6
  */
6
7
  import { Command } from "commander";
7
8
  import { type PlatformFetchFn } from "../utils/config.js";
@@ -18,6 +19,8 @@ export interface PluginDeps {
18
19
  isLoggedIn: () => boolean;
19
20
  getToken: () => string | null;
20
21
  getApiUrl: () => string;
22
+ getPluginUrl: (pluginId: string) => string;
23
+ pluginFetch: (pluginId: string, path: string, options?: RequestInit) => Promise<Response>;
21
24
  platformFetch: PlatformFetchFn;
22
25
  }
23
26
  export declare function createDefaultPluginDeps(): PluginDeps;
@@ -38,14 +41,4 @@ export declare function runPluginPermissions(plugin: string, deps?: PluginDeps):
38
41
  * Exported for testing with injected dependencies.
39
42
  */
40
43
  export declare function runPluginRemove(plugin: string, deps?: PluginDeps): Promise<void>;
41
- /**
42
- * Run the discord add-server command.
43
- * Exported for testing with injected dependencies.
44
- */
45
- export declare function runDiscordAddServer(deps?: PluginDeps): Promise<void>;
46
- /**
47
- * Run the discord remove-server command.
48
- * Exported for testing with injected dependencies.
49
- */
50
- export declare function runDiscordRemoveServer(deps?: PluginDeps): Promise<void>;
51
44
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAkD,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,6BAA6B,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAS5I;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,6BAA6B,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,aAAa,EAAE,eAAe,CAAC;CAChC;AAMD,wBAAgB,uBAAuB,IAAI,UAAU,CAYpD;AAED,eAAO,MAAM,iBAAiB,YAA4B,CAAC;AAwD3D;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED,eAAO,MAAM,aAAa,SAUxB,CAAC;AAwBH;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CA0Df;AAiBD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAwDf;AAiBD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAyFf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAyDf"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAA8D,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,6BAA6B,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAU5I;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,6BAA6B,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;IACjB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1F,aAAa,EAAE,eAAe,CAAC;CAChC;AAMD,wBAAgB,uBAAuB,IAAI,UAAU,CAsBpD;AAED,eAAO,MAAM,iBAAiB,YAA4B,CAAC;AA4D3D;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED,eAAO,MAAM,aAAa,SAcxB,CAAC;AA0BH;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CA6Df;AAiBD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,UAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAuEf"}
@@ -2,11 +2,13 @@
2
2
  * fling plugin - Plugin management commands
3
3
  *
4
4
  * Install, configure, and manage platform plugins like Discord.
5
+ * Plugin commands communicate directly with plugin workers (not the API worker).
5
6
  */
6
7
  import { Command } from "commander";
7
- import { isLoggedIn, platformFetch, getApiUrl, getToken } from "../utils/config.js";
8
+ import { isLoggedIn, getApiUrl, getToken, getPluginUrl, pluginFetch } from "../utils/config.js";
8
9
  import { consoleIO, processIO, createSimplePromptIO, browserIO, timingIO } from "../utils/cli-io-impl.js";
9
- const SUPPORTED_PLUGINS = ["discord"];
10
+ import { getSupportedPluginIds, getPluginMeta } from "../../shared/plugin-metadata.js";
11
+ const SUPPORTED_PLUGINS = getSupportedPluginIds();
10
12
  // ═══════════════════════════════════════════════════════
11
13
  // DEFAULT IMPLEMENTATIONS
12
14
  // ═══════════════════════════════════════════════════════
@@ -20,7 +22,18 @@ export function createDefaultPluginDeps() {
20
22
  isLoggedIn,
21
23
  getToken,
22
24
  getApiUrl,
23
- platformFetch,
25
+ getPluginUrl,
26
+ pluginFetch,
27
+ // Keep platformFetch for any non-plugin API calls
28
+ platformFetch: async (path, options) => {
29
+ const token = getToken();
30
+ if (!token)
31
+ throw new Error("Not logged in");
32
+ const url = `${getApiUrl()}${path}`;
33
+ const headers = new Headers(options?.headers);
34
+ headers.set("Authorization", `Bearer ${token}`);
35
+ return fetch(url, { ...options, headers });
36
+ },
24
37
  };
25
38
  }
26
39
  export const defaultPluginDeps = createDefaultPluginDeps();
@@ -37,25 +50,28 @@ function requireLogin(deps) {
37
50
  }
38
51
  }
39
52
  /**
40
- * Guard: exit if plugin name is not recognized.
53
+ * Guard: exit if plugin name is not recognized, otherwise return its metadata.
41
54
  */
42
- function requireValidPlugin(plugin, deps) {
43
- if (!SUPPORTED_PLUGINS.includes(plugin)) {
55
+ function requirePluginMeta(plugin, deps) {
56
+ const meta = getPluginMeta(plugin);
57
+ if (!meta) {
44
58
  deps.console.error(`Error: Unknown plugin '${plugin}'.`);
45
59
  deps.console.error(`Available plugins: ${SUPPORTED_PLUGINS.join(", ")}`);
46
60
  deps.process.exit(1);
61
+ throw new Error(`Unknown plugin '${plugin}'`); // unreachable, satisfies TypeScript
47
62
  }
63
+ return meta;
48
64
  }
49
65
  /**
50
- * Wait for Discord OAuth to complete by polling status.
66
+ * Wait for OAuth to complete by polling plugin status.
51
67
  */
52
- async function waitForDiscordOAuth(deps, maxWaitMs = 120000) {
68
+ async function waitForOAuth(pluginId, deps, maxWaitMs = 120000) {
53
69
  const pollInterval = 2000;
54
70
  const maxAttempts = Math.ceil(maxWaitMs / pollInterval);
55
71
  for (let i = 0; i < maxAttempts; i++) {
56
72
  await deps.timing.sleep(pollInterval);
57
73
  try {
58
- const response = await deps.platformFetch("/discord/status");
74
+ const response = await deps.pluginFetch(pluginId, "/status");
59
75
  if (response.ok) {
60
76
  const data = (await response.json());
61
77
  if (data.connected) {
@@ -75,18 +91,19 @@ async function waitForDiscordOAuth(deps, maxWaitMs = 120000) {
75
91
  */
76
92
  export async function runPluginInstall(plugin, deps = defaultPluginDeps) {
77
93
  requireLogin(deps);
78
- requireValidPlugin(plugin, deps);
94
+ const meta = requirePluginMeta(plugin, deps);
79
95
  // Check if already connected
80
96
  try {
81
- const statusRes = await deps.platformFetch("/discord/status");
97
+ const statusRes = await deps.pluginFetch(plugin, "/status");
82
98
  if (statusRes.ok) {
83
99
  const status = (await statusRes.json());
84
100
  if (status.connected) {
85
- deps.console.log(`Discord already connected as ${status.discordUser?.username}`);
86
- deps.console.log(`Servers: ${status.servers.map((s) => s.name).join(", ") || "(none claimed)"}`);
101
+ const user = status.pluginUser ?? status.discordUser;
102
+ const resources = status.resources ?? status.servers ?? [];
103
+ deps.console.log(`${meta.name} already connected as ${user?.username}`);
104
+ deps.console.log(`${meta.resourceTypePlural}: ${resources.map((s) => s.name).join(", ") || "(none claimed)"}`);
87
105
  deps.console.log("");
88
- deps.console.log("To add more servers: fling plugin discord add-server");
89
- deps.console.log("To reconnect: fling plugin remove discord && fling plugin install discord");
106
+ deps.console.log(`To reconnect: fling plugin remove ${plugin} && fling plugin install ${plugin}`);
90
107
  return;
91
108
  }
92
109
  }
@@ -94,47 +111,50 @@ export async function runPluginInstall(plugin, deps = defaultPluginDeps) {
94
111
  catch {
95
112
  // Not connected or endpoint not available
96
113
  }
97
- deps.console.log("Opening Discord authorization...\n");
98
- // Open browser to OAuth URL (pass token as query param since browser can't send auth headers).
99
- // TODO: Replace with a short-lived, single-use exchange token to avoid exposing the
100
- // long-lived API token in browser history. Flow: CLI POSTs to /discord/oauth/initiate
101
- // with Authorization header, gets back a single-use code, opens browser with just that code.
114
+ deps.console.log(`Opening ${plugin} authorization...\n`);
115
+ // Open browser to OAuth URL on the plugin worker directly
102
116
  const token = deps.getToken();
103
117
  if (!token) {
104
118
  deps.console.error("Error: Not logged in. Run 'fling login' first.");
105
119
  deps.process.exit(1);
106
120
  }
107
- const oauthUrl = `${deps.getApiUrl()}/discord/oauth/authorize?token=${encodeURIComponent(token)}`;
121
+ const pluginUrl = deps.getPluginUrl(plugin);
122
+ const oauthUrl = `${pluginUrl}/oauth/authorize?token=${encodeURIComponent(token)}`;
108
123
  deps.browser.open(oauthUrl);
109
124
  deps.console.log("Please complete the authorization in your browser.");
110
- deps.console.log("Waiting for Discord connection...\n");
125
+ deps.console.log("Waiting for connection...\n");
111
126
  // Poll for completion
112
- const connected = await waitForDiscordOAuth(deps);
127
+ const connected = await waitForOAuth(plugin, deps);
113
128
  if (!connected) {
114
129
  deps.console.error("\nError: OAuth timed out. Please try again.");
115
130
  deps.process.exit(1);
116
131
  }
117
132
  // Get updated status
118
- const statusRes = await deps.platformFetch("/discord/status");
133
+ const statusRes = await deps.pluginFetch(plugin, "/status");
119
134
  const status = (await statusRes.json());
120
- deps.console.log(`\nConnected as ${status.discordUser?.username}!`);
121
- if (status.servers.length > 0) {
122
- deps.console.log(`Fling Bot joined: ${status.servers.map((s) => s.name).join(", ")}`);
135
+ const user = status.pluginUser ?? status.discordUser;
136
+ const resources = status.resources ?? status.servers ?? [];
137
+ deps.console.log(`\nConnected as ${user?.username}!`);
138
+ if (resources.length > 0) {
139
+ const capitalizedType = meta.resourceType.charAt(0).toUpperCase() + meta.resourceType.slice(1);
140
+ deps.console.log(`${capitalizedType} claimed: ${resources.map((s) => s.name).join(", ")}`);
141
+ deps.console.log("\nNext step: run 'fling push' to deploy and register slash commands.");
123
142
  }
124
- deps.console.log("\nTip: You can rename the bot in Server Settings > Members > Right-click Fling Bot > Change Nickname");
125
- deps.console.log("\nTo add more servers:");
126
- deps.console.log(" fling plugin discord add-server");
127
143
  }
128
144
  export const pluginCommand = new Command("plugin")
129
145
  .description("Manage platform plugins")
130
146
  .addHelpText("after", `
131
147
  Available plugins:
132
148
  discord Discord chatops integration
149
+ slack Slack chatops integration
133
150
 
134
151
  Examples:
135
152
  fling plugin install discord Install and configure Discord
153
+ fling plugin install slack Install and configure Slack
136
154
  fling plugin permissions discord Show Discord permissions/status
155
+ fling plugin permissions slack Show Slack permissions/status
137
156
  fling plugin remove discord Disconnect Discord
157
+ fling plugin remove slack Disconnect Slack
138
158
  `);
139
159
  // =============================================================================
140
160
  // Install Command
@@ -145,9 +165,11 @@ pluginCommand
145
165
  .addHelpText("after", `
146
166
  Supported plugins:
147
167
  discord Connect Discord for chatops
168
+ slack Connect Slack for chatops
148
169
 
149
170
  Examples:
150
171
  fling plugin install discord OAuth with Discord, add bot to server
172
+ fling plugin install slack OAuth with Slack, add bot to workspace
151
173
  `)
152
174
  .action(async (plugin) => {
153
175
  await runPluginInstall(plugin);
@@ -161,12 +183,12 @@ Examples:
161
183
  */
162
184
  export async function runPluginPermissions(plugin, deps = defaultPluginDeps) {
163
185
  requireLogin(deps);
164
- requireValidPlugin(plugin, deps);
186
+ const meta = requirePluginMeta(plugin, deps);
165
187
  try {
166
- const response = await deps.platformFetch("/discord/status");
188
+ const response = await deps.pluginFetch(plugin, "/status");
167
189
  if (!response.ok) {
168
190
  if (response.status === 503) {
169
- deps.console.error("Discord plugin is not configured on the platform.");
191
+ deps.console.error(`${plugin} plugin is not configured on the platform.`);
170
192
  deps.process.exit(1);
171
193
  }
172
194
  const data = (await response.json());
@@ -174,32 +196,32 @@ export async function runPluginPermissions(plugin, deps = defaultPluginDeps) {
174
196
  deps.process.exit(1);
175
197
  }
176
198
  const status = (await response.json());
177
- deps.console.log("Discord Plugin");
199
+ const user = status.pluginUser ?? status.discordUser;
200
+ const resources = status.resources ?? status.servers ?? [];
201
+ deps.console.log(`${meta.name} Plugin`);
178
202
  deps.console.log("──────────────");
179
203
  deps.console.log(`Status: ${status.connected ? "Connected" : "Not connected"}`);
180
- if (status.discordUser) {
181
- deps.console.log(`Discord User: ${status.discordUser.username}`);
204
+ if (user) {
205
+ deps.console.log(`${meta.name} ${meta.userLabel}: ${user.username}`);
182
206
  }
183
207
  deps.console.log("");
184
- if (status.servers.length > 0) {
185
- deps.console.log("Claimed Servers:");
186
- for (const server of status.servers) {
187
- const claimedDate = new Date(server.claimedAt).toLocaleDateString();
188
- deps.console.log(` • ${server.name} (ID: ${server.id})`);
208
+ if (resources.length > 0) {
209
+ deps.console.log(`Claimed ${meta.resourceTypePlural}:`);
210
+ for (const resource of resources) {
211
+ const claimedDate = new Date(resource.claimedAt).toLocaleDateString();
212
+ deps.console.log(` • ${resource.name} (ID: ${resource.id})`);
189
213
  deps.console.log(` - Claimed: ${claimedDate}`);
190
214
  }
191
215
  }
192
216
  else {
193
- deps.console.log("Claimed Servers: (none)");
194
- deps.console.log(" Run 'fling plugin discord add-server' to claim a server.");
217
+ deps.console.log(`Claimed ${meta.resourceTypePlural}: (none)`);
218
+ deps.console.log(` Reinstall to auto-claim: fling plugin remove ${plugin} && fling plugin install ${plugin}`);
195
219
  }
196
220
  deps.console.log("");
197
221
  deps.console.log("Available APIs:");
198
- deps.console.log(" discord.sendMessage()");
199
- deps.console.log(" discord.editMessage()");
200
- deps.console.log(" discord.addReaction()");
201
- deps.console.log(" discord.replyToInteraction()");
202
- deps.console.log(" discord.verifyInteraction()");
222
+ for (const api of meta.apis) {
223
+ deps.console.log(` ${api}`);
224
+ }
203
225
  }
204
226
  catch (error) {
205
227
  deps.console.error(`Error: ${error instanceof Error ? error.message : "Failed to get plugin status"}`);
@@ -225,52 +247,64 @@ Examples:
225
247
  */
226
248
  export async function runPluginRemove(plugin, deps = defaultPluginDeps) {
227
249
  requireLogin(deps);
228
- requireValidPlugin(plugin, deps);
229
- // Get current status
230
- const statusRes = await deps.platformFetch("/discord/status");
250
+ const meta = requirePluginMeta(plugin, deps);
251
+ // Get current status from plugin worker
252
+ const statusRes = await deps.pluginFetch(plugin, "/status");
231
253
  if (!statusRes.ok) {
232
- deps.console.log("Discord plugin is not connected.");
254
+ deps.console.log(`${plugin} plugin is not connected.`);
233
255
  return;
234
256
  }
235
257
  const status = (await statusRes.json());
236
258
  if (!status.connected) {
237
- deps.console.log("Discord plugin is not connected.");
259
+ deps.console.log(`${plugin} plugin is not connected.`);
238
260
  return;
239
261
  }
262
+ const resources = status.resources ?? status.servers ?? [];
263
+ const resourceType = meta.resourceType + "s";
240
264
  // Confirm removal
241
- if (status.servers.length > 0) {
242
- deps.console.log("This will release the following servers:");
243
- for (const server of status.servers) {
244
- deps.console.log(` • ${server.name}`);
265
+ if (resources.length > 0) {
266
+ deps.console.log(`This will release the following ${resourceType}:`);
267
+ for (const resource of resources) {
268
+ deps.console.log(` • ${resource.name}`);
245
269
  }
246
270
  deps.console.log("");
247
271
  }
248
- const answer = await deps.user.prompt("Remove Discord plugin? (y/N) ");
272
+ const answer = await deps.user.prompt(`Remove ${plugin} plugin? (y/N) `);
249
273
  if (answer.toLowerCase() !== "y") {
250
274
  deps.console.log("Cancelled.");
251
275
  return;
252
276
  }
253
- // Release all servers
254
- const failedServers = [];
255
- for (const server of status.servers) {
277
+ // Release all resources via plugin worker
278
+ const failedResources = [];
279
+ for (const resource of resources) {
256
280
  try {
257
- await deps.platformFetch(`/discord/servers/${server.id}`, {
281
+ await deps.pluginFetch(plugin, `/servers/${resource.id}`, {
258
282
  method: "DELETE",
259
283
  });
260
284
  }
261
285
  catch (err) {
262
- deps.console.error(`Warning: Failed to release server "${server.name}": ${err instanceof Error ? err.message : "Unknown error"}`);
263
- failedServers.push(server.name);
286
+ deps.console.error(`Warning: Failed to release ${resourceType.slice(0, -1)} "${resource.name}": ${err instanceof Error ? err.message : "Unknown error"}`);
287
+ failedResources.push(resource.name);
264
288
  }
265
289
  }
266
- if (failedServers.length > 0) {
267
- deps.console.log(`\nDiscord plugin removed (${failedServers.length} server(s) could not be released).`);
290
+ // Delete the OAuth connection via the API
291
+ try {
292
+ await deps.pluginFetch(plugin, "/oauth/connection", {
293
+ method: "DELETE",
294
+ });
295
+ }
296
+ catch {
297
+ // Non-fatal: connection may already be gone
298
+ }
299
+ if (failedResources.length > 0) {
300
+ deps.console.log(`\n${plugin} plugin removed (${failedResources.length} ${resourceType} could not be released).`);
268
301
  }
269
302
  else {
270
- deps.console.log("\nDiscord plugin removed.");
303
+ deps.console.log(`\n${plugin} plugin removed.`);
304
+ }
305
+ for (const line of meta.removalNote) {
306
+ deps.console.log(line);
271
307
  }
272
- deps.console.log("Note: Fling Bot will remain in your Discord servers.");
273
- deps.console.log("You can kick it from Server Settings > Members if desired.");
274
308
  }
275
309
  pluginCommand
276
310
  .command("remove <plugin>")
@@ -282,144 +316,4 @@ Examples:
282
316
  .action(async (plugin) => {
283
317
  await runPluginRemove(plugin);
284
318
  });
285
- // =============================================================================
286
- // Discord Subcommand
287
- // =============================================================================
288
- /**
289
- * Run the discord add-server command.
290
- * Exported for testing with injected dependencies.
291
- */
292
- export async function runDiscordAddServer(deps = defaultPluginDeps) {
293
- requireLogin(deps);
294
- // Check connection status
295
- const statusRes = await deps.platformFetch("/discord/status");
296
- if (!statusRes.ok) {
297
- deps.console.error("Error: Discord not connected. Run 'fling plugin install discord' first.");
298
- deps.process.exit(1);
299
- }
300
- const status = (await statusRes.json());
301
- if (!status.connected) {
302
- deps.console.error("Error: Discord not connected. Run 'fling plugin install discord' first.");
303
- deps.process.exit(1);
304
- }
305
- // Get available servers
306
- deps.console.log("Fetching available servers...\n");
307
- const serversRes = await deps.platformFetch("/discord/servers");
308
- if (!serversRes.ok) {
309
- const data = (await serversRes.json());
310
- deps.console.error(`Error: ${data.error ?? "Failed to fetch servers"}`);
311
- deps.process.exit(1);
312
- }
313
- const { servers } = (await serversRes.json());
314
- // Filter to unclaimed servers
315
- const available = servers.filter((s) => !s.claimed);
316
- const alreadyClaimed = servers.filter((s) => s.claimedByMe);
317
- if (alreadyClaimed.length > 0) {
318
- deps.console.log("Already claimed by this project:");
319
- for (const s of alreadyClaimed) {
320
- deps.console.log(` • ${s.name}`);
321
- }
322
- deps.console.log("");
323
- }
324
- if (available.length === 0) {
325
- deps.console.log("No available servers to claim.");
326
- deps.console.log("\nTo add Fling Bot to a new server:");
327
- deps.console.log(" 1. Go to Discord and open Server Settings > Integrations");
328
- deps.console.log(" 2. Add the Fling Bot application");
329
- deps.console.log(" 3. Run this command again");
330
- return;
331
- }
332
- deps.console.log("Available servers:");
333
- for (let i = 0; i < available.length; i++) {
334
- const s = available[i];
335
- if (s) {
336
- deps.console.log(` ${i + 1}. ${s.name}`);
337
- }
338
- }
339
- deps.console.log("");
340
- const choice = await deps.user.prompt(`Select server (1-${available.length}): `);
341
- const idx = parseInt(choice, 10) - 1;
342
- const server = available[idx];
343
- if (!server) {
344
- deps.console.error("Invalid selection.");
345
- deps.process.exit(1);
346
- }
347
- // Claim the server
348
- const claimRes = await deps.platformFetch(`/discord/servers/${server.id}/claim`, {
349
- method: "POST",
350
- headers: { "Content-Type": "application/json" },
351
- body: JSON.stringify({ guildName: server.name }),
352
- });
353
- if (!claimRes.ok) {
354
- const data = (await claimRes.json());
355
- deps.console.error(`Error: ${data.error ?? "Failed to claim server"}`);
356
- deps.process.exit(1);
357
- }
358
- deps.console.log(`\nServer "${server.name}" claimed successfully!`);
359
- deps.console.log("\nYour slash commands will be registered when you run 'fling push'.");
360
- }
361
- /**
362
- * Run the discord remove-server command.
363
- * Exported for testing with injected dependencies.
364
- */
365
- export async function runDiscordRemoveServer(deps = defaultPluginDeps) {
366
- requireLogin(deps);
367
- // Get current status
368
- const statusRes = await deps.platformFetch("/discord/status");
369
- if (!statusRes.ok) {
370
- deps.console.error("Error: Discord not connected.");
371
- deps.process.exit(1);
372
- }
373
- const status = (await statusRes.json());
374
- if (status.servers.length === 0) {
375
- deps.console.log("No servers claimed.");
376
- return;
377
- }
378
- deps.console.log("Claimed servers:");
379
- for (let i = 0; i < status.servers.length; i++) {
380
- const s = status.servers[i];
381
- if (s) {
382
- deps.console.log(` ${i + 1}. ${s.name}`);
383
- }
384
- }
385
- deps.console.log("");
386
- const choice = await deps.user.prompt(`Select server to remove (1-${status.servers.length}): `);
387
- const idx = parseInt(choice, 10) - 1;
388
- const server = status.servers[idx];
389
- if (!server) {
390
- deps.console.error("Invalid selection.");
391
- deps.process.exit(1);
392
- }
393
- const confirm = await deps.user.prompt(`Remove "${server.name}"? (y/N) `);
394
- if (confirm.toLowerCase() !== "y") {
395
- deps.console.log("Cancelled.");
396
- return;
397
- }
398
- // Remove the server
399
- const removeRes = await deps.platformFetch(`/discord/servers/${server.id}`, {
400
- method: "DELETE",
401
- });
402
- if (!removeRes.ok) {
403
- const data = (await removeRes.json());
404
- deps.console.error(`Error: ${data.error ?? "Failed to remove server"}`);
405
- deps.process.exit(1);
406
- }
407
- deps.console.log(`\nServer "${server.name}" removed.`);
408
- deps.console.log("Slash commands have been unregistered from this server.");
409
- }
410
- const discordSubcommand = new Command("discord")
411
- .description("Discord-specific plugin commands");
412
- discordSubcommand
413
- .command("add-server")
414
- .description("Add another Discord server to your project")
415
- .action(async () => {
416
- await runDiscordAddServer();
417
- });
418
- discordSubcommand
419
- .command("remove-server")
420
- .description("Remove a Discord server from your project")
421
- .action(async () => {
422
- await runDiscordRemoveServer();
423
- });
424
- pluginCommand.addCommand(discordSubcommand);
425
319
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ import { type ConsoleIO, type ProcessIO, type FileIOWithRead } from "../utils/cl
12
12
  * Spawn function type for running child processes.
13
13
  */
14
14
  export type PushSpawnFn = (command: string, args: string[], options: SpawnOptions) => ChildProcess;
15
+ /**
16
+ * Fetch function for plugin workers.
17
+ */
18
+ export type PluginFetchFn = (pluginId: string, path: string, options?: RequestInit) => Promise<Response>;
15
19
  /**
16
20
  * Combined dependencies for push command.
17
21
  */
@@ -21,6 +25,7 @@ export interface PushDeps {
21
25
  file: FileIOWithRead;
22
26
  spawn: PushSpawnFn;
23
27
  platformFetch: PlatformFetchFn;
28
+ pluginFetch: PluginFetchFn;
24
29
  isLoggedIn: () => boolean;
25
30
  hasWorkerEntry: (cwd: string) => boolean;
26
31
  getProjectName: (cwd?: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAS,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAA6B,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrF,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,YAAY,KAClB,YAAY,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,EAAE,eAAe,CAAC;IAC/B,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,gBAAgB,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACnF,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACjG,aAAa,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,aAAa,CAAC;IACtD,kBAAkB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAClD,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;IAC/C,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAkDD,wBAAgB,qBAAqB,IAAI,QAAQ,CAkBhD;AAED,eAAO,MAAM,eAAe,UAA0B,CAAC;AA+iBvD;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9B,IAAI,GAAE,QAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED,eAAO,MAAM,WAAW,SAiCpB,CAAC"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAS,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAA6D,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrH,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASzF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,YAAY,KAClB,YAAY,CAAC;AAElB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEzG;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,EAAE,eAAe,CAAC;IAC/B,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,gBAAgB,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACnF,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACjG,aAAa,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,aAAa,CAAC;IACtD,kBAAkB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAClD,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;IAC/C,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAkDD,wBAAgB,qBAAqB,IAAI,QAAQ,CAmBhD;AAED,eAAO,MAAM,eAAe,UAA0B,CAAC;AA6hBvD;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9B,IAAI,GAAE,QAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC,CAiDf;AAED,eAAO,MAAM,WAAW,SAiCpB,CAAC"}