@burdenoff/mcp-libs 2026.511.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +76 -0
  2. package/dist/chunk-4GBVJ4OY.js +847 -0
  3. package/dist/chunk-4GBVJ4OY.js.map +1 -0
  4. package/dist/chunk-H2OYWLOA.js +919 -0
  5. package/dist/chunk-H2OYWLOA.js.map +1 -0
  6. package/dist/chunk-JFEQYSWM.js +174 -0
  7. package/dist/chunk-JFEQYSWM.js.map +1 -0
  8. package/dist/chunk-WWFVD7BO.js +273 -0
  9. package/dist/chunk-WWFVD7BO.js.map +1 -0
  10. package/dist/context-1jV4NsLv.d.cts +138 -0
  11. package/dist/context-1jV4NsLv.d.ts +138 -0
  12. package/dist/core/index.cjs +953 -0
  13. package/dist/core/index.cjs.map +1 -0
  14. package/dist/core/index.d.cts +59 -0
  15. package/dist/core/index.d.ts +59 -0
  16. package/dist/core/index.js +3 -0
  17. package/dist/core/index.js.map +1 -0
  18. package/dist/http-BP4c721D.d.cts +22 -0
  19. package/dist/http-DXTeCD5r.d.ts +22 -0
  20. package/dist/index.cjs +1013 -0
  21. package/dist/index.cjs.map +1 -0
  22. package/dist/index.d.cts +7 -0
  23. package/dist/index.d.ts +7 -0
  24. package/dist/index.js +4 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/module-DBcfA-i3.d.ts +67 -0
  27. package/dist/module-DFQBZNK6.d.cts +67 -0
  28. package/dist/modules/auth/index.cjs +533 -0
  29. package/dist/modules/auth/index.cjs.map +1 -0
  30. package/dist/modules/auth/index.d.cts +51 -0
  31. package/dist/modules/auth/index.d.ts +51 -0
  32. package/dist/modules/auth/index.js +159 -0
  33. package/dist/modules/auth/index.js.map +1 -0
  34. package/dist/modules/billing/index.cjs +655 -0
  35. package/dist/modules/billing/index.cjs.map +1 -0
  36. package/dist/modules/billing/index.d.cts +8 -0
  37. package/dist/modules/billing/index.d.ts +8 -0
  38. package/dist/modules/billing/index.js +606 -0
  39. package/dist/modules/billing/index.js.map +1 -0
  40. package/dist/modules/channels/index.cjs +443 -0
  41. package/dist/modules/channels/index.cjs.map +1 -0
  42. package/dist/modules/channels/index.d.cts +8 -0
  43. package/dist/modules/channels/index.d.ts +8 -0
  44. package/dist/modules/channels/index.js +394 -0
  45. package/dist/modules/channels/index.js.map +1 -0
  46. package/dist/modules/conversations/index.cjs +288 -0
  47. package/dist/modules/conversations/index.cjs.map +1 -0
  48. package/dist/modules/conversations/index.d.cts +8 -0
  49. package/dist/modules/conversations/index.d.ts +8 -0
  50. package/dist/modules/conversations/index.js +239 -0
  51. package/dist/modules/conversations/index.js.map +1 -0
  52. package/dist/modules/devportal/index.cjs +796 -0
  53. package/dist/modules/devportal/index.cjs.map +1 -0
  54. package/dist/modules/devportal/index.d.cts +8 -0
  55. package/dist/modules/devportal/index.d.ts +8 -0
  56. package/dist/modules/devportal/index.js +747 -0
  57. package/dist/modules/devportal/index.js.map +1 -0
  58. package/dist/modules/export/index.cjs +333 -0
  59. package/dist/modules/export/index.cjs.map +1 -0
  60. package/dist/modules/export/index.d.cts +8 -0
  61. package/dist/modules/export/index.d.ts +8 -0
  62. package/dist/modules/export/index.js +284 -0
  63. package/dist/modules/export/index.js.map +1 -0
  64. package/dist/modules/files/index.cjs +278 -0
  65. package/dist/modules/files/index.cjs.map +1 -0
  66. package/dist/modules/files/index.d.cts +8 -0
  67. package/dist/modules/files/index.d.ts +8 -0
  68. package/dist/modules/files/index.js +229 -0
  69. package/dist/modules/files/index.js.map +1 -0
  70. package/dist/modules/groups/index.cjs +451 -0
  71. package/dist/modules/groups/index.cjs.map +1 -0
  72. package/dist/modules/groups/index.d.cts +8 -0
  73. package/dist/modules/groups/index.d.ts +8 -0
  74. package/dist/modules/groups/index.js +402 -0
  75. package/dist/modules/groups/index.js.map +1 -0
  76. package/dist/modules/health/index.cjs +159 -0
  77. package/dist/modules/health/index.cjs.map +1 -0
  78. package/dist/modules/health/index.d.cts +8 -0
  79. package/dist/modules/health/index.d.ts +8 -0
  80. package/dist/modules/health/index.js +36 -0
  81. package/dist/modules/health/index.js.map +1 -0
  82. package/dist/modules/integrations/index.cjs +316 -0
  83. package/dist/modules/integrations/index.cjs.map +1 -0
  84. package/dist/modules/integrations/index.d.cts +8 -0
  85. package/dist/modules/integrations/index.d.ts +8 -0
  86. package/dist/modules/integrations/index.js +267 -0
  87. package/dist/modules/integrations/index.js.map +1 -0
  88. package/dist/modules/notifications/index.cjs +222 -0
  89. package/dist/modules/notifications/index.cjs.map +1 -0
  90. package/dist/modules/notifications/index.d.cts +8 -0
  91. package/dist/modules/notifications/index.d.ts +8 -0
  92. package/dist/modules/notifications/index.js +173 -0
  93. package/dist/modules/notifications/index.js.map +1 -0
  94. package/dist/modules/organizations/index.cjs +267 -0
  95. package/dist/modules/organizations/index.cjs.map +1 -0
  96. package/dist/modules/organizations/index.d.cts +8 -0
  97. package/dist/modules/organizations/index.d.ts +8 -0
  98. package/dist/modules/organizations/index.js +218 -0
  99. package/dist/modules/organizations/index.js.map +1 -0
  100. package/dist/modules/products/index.cjs +736 -0
  101. package/dist/modules/products/index.cjs.map +1 -0
  102. package/dist/modules/products/index.d.cts +8 -0
  103. package/dist/modules/products/index.d.ts +8 -0
  104. package/dist/modules/products/index.js +687 -0
  105. package/dist/modules/products/index.js.map +1 -0
  106. package/dist/modules/rbac/index.cjs +378 -0
  107. package/dist/modules/rbac/index.cjs.map +1 -0
  108. package/dist/modules/rbac/index.d.cts +8 -0
  109. package/dist/modules/rbac/index.d.ts +8 -0
  110. package/dist/modules/rbac/index.js +329 -0
  111. package/dist/modules/rbac/index.js.map +1 -0
  112. package/dist/modules/sandbox/index.cjs +318 -0
  113. package/dist/modules/sandbox/index.cjs.map +1 -0
  114. package/dist/modules/sandbox/index.d.cts +8 -0
  115. package/dist/modules/sandbox/index.d.ts +8 -0
  116. package/dist/modules/sandbox/index.js +225 -0
  117. package/dist/modules/sandbox/index.js.map +1 -0
  118. package/dist/modules/scheduler/index.cjs +267 -0
  119. package/dist/modules/scheduler/index.cjs.map +1 -0
  120. package/dist/modules/scheduler/index.d.cts +8 -0
  121. package/dist/modules/scheduler/index.d.ts +8 -0
  122. package/dist/modules/scheduler/index.js +218 -0
  123. package/dist/modules/scheduler/index.js.map +1 -0
  124. package/dist/modules/security/index.cjs +529 -0
  125. package/dist/modules/security/index.cjs.map +1 -0
  126. package/dist/modules/security/index.d.cts +8 -0
  127. package/dist/modules/security/index.d.ts +8 -0
  128. package/dist/modules/security/index.js +480 -0
  129. package/dist/modules/security/index.js.map +1 -0
  130. package/dist/modules/store/index.cjs +450 -0
  131. package/dist/modules/store/index.cjs.map +1 -0
  132. package/dist/modules/store/index.d.cts +8 -0
  133. package/dist/modules/store/index.d.ts +8 -0
  134. package/dist/modules/store/index.js +401 -0
  135. package/dist/modules/store/index.js.map +1 -0
  136. package/dist/modules/support/index.cjs +285 -0
  137. package/dist/modules/support/index.cjs.map +1 -0
  138. package/dist/modules/support/index.d.cts +8 -0
  139. package/dist/modules/support/index.d.ts +8 -0
  140. package/dist/modules/support/index.js +236 -0
  141. package/dist/modules/support/index.js.map +1 -0
  142. package/dist/modules/tags/index.cjs +421 -0
  143. package/dist/modules/tags/index.cjs.map +1 -0
  144. package/dist/modules/tags/index.d.cts +8 -0
  145. package/dist/modules/tags/index.d.ts +8 -0
  146. package/dist/modules/tags/index.js +372 -0
  147. package/dist/modules/tags/index.js.map +1 -0
  148. package/dist/modules/tours/index.cjs +225 -0
  149. package/dist/modules/tours/index.cjs.map +1 -0
  150. package/dist/modules/tours/index.d.cts +8 -0
  151. package/dist/modules/tours/index.d.ts +8 -0
  152. package/dist/modules/tours/index.js +176 -0
  153. package/dist/modules/tours/index.js.map +1 -0
  154. package/dist/modules/vibecontrols/index.cjs +5551 -0
  155. package/dist/modules/vibecontrols/index.cjs.map +1 -0
  156. package/dist/modules/vibecontrols/index.d.cts +8 -0
  157. package/dist/modules/vibecontrols/index.d.ts +8 -0
  158. package/dist/modules/vibecontrols/index.js +4380 -0
  159. package/dist/modules/vibecontrols/index.js.map +1 -0
  160. package/dist/modules/workspaces/index.cjs +552 -0
  161. package/dist/modules/workspaces/index.cjs.map +1 -0
  162. package/dist/modules/workspaces/index.d.cts +8 -0
  163. package/dist/modules/workspaces/index.d.ts +8 -0
  164. package/dist/modules/workspaces/index.js +503 -0
  165. package/dist/modules/workspaces/index.js.map +1 -0
  166. package/dist/tool-name-CQf_IqAj.d.cts +47 -0
  167. package/dist/tool-name-DlnrBsZ6.d.ts +47 -0
  168. package/dist/transports/index.cjs +183 -0
  169. package/dist/transports/index.cjs.map +1 -0
  170. package/dist/transports/index.d.cts +13 -0
  171. package/dist/transports/index.d.ts +13 -0
  172. package/dist/transports/index.js +3 -0
  173. package/dist/transports/index.js.map +1 -0
  174. package/package.json +125 -0
@@ -0,0 +1,51 @@
1
+ import { c as McpModule } from '../../module-DFQBZNK6.cjs';
2
+ import { M as McpContext } from '../../context-1jV4NsLv.cjs';
3
+ import '@modelcontextprotocol/sdk/server/mcp.js';
4
+ import 'graphql-request';
5
+
6
+ interface WorkspaceInfo {
7
+ id: string;
8
+ name: string;
9
+ slug: string;
10
+ tenantId: string;
11
+ organizationId: string;
12
+ }
13
+ interface LoginStartResult {
14
+ status: 'device_code_issued';
15
+ verificationUri: string;
16
+ verificationUriComplete: string | null;
17
+ userCode: string;
18
+ expiresIn: number;
19
+ message: string;
20
+ }
21
+ interface LoginCompleteResult {
22
+ status: 'authenticated' | 'workspace_selection_required' | 'pending' | 'expired';
23
+ message: string;
24
+ workspaces?: WorkspaceInfo[];
25
+ }
26
+ interface AuthHelper {
27
+ startLogin(): Promise<LoginStartResult>;
28
+ completeLogin(): Promise<LoginCompleteResult>;
29
+ selectWorkspace(workspaceId: string, organizationId: string): Promise<void>;
30
+ listWorkspaces(): Promise<WorkspaceInfo[]>;
31
+ ensureAuthenticated(): Promise<void>;
32
+ getStatus(): Promise<{
33
+ authenticated: boolean;
34
+ method: string;
35
+ expiresAt: string | null;
36
+ workspaceId: string | null;
37
+ organizationId: string | null;
38
+ workspaceTokenExpiresAt: string | null;
39
+ hasWorkspaceToken: boolean;
40
+ hasPendingLogin: boolean;
41
+ }>;
42
+ logout(): Promise<void>;
43
+ getHeaders(): Record<string, string>;
44
+ isLoggedIn(): boolean;
45
+ setOnTokensChanged(cb: () => void): void;
46
+ }
47
+ declare function getAuth(ctx: McpContext): AuthHelper;
48
+
49
+ declare const authModule: McpModule;
50
+
51
+ export { type AuthHelper, type WorkspaceInfo, authModule as default, getAuth };
@@ -0,0 +1,51 @@
1
+ import { c as McpModule } from '../../module-DBcfA-i3.js';
2
+ import { M as McpContext } from '../../context-1jV4NsLv.js';
3
+ import '@modelcontextprotocol/sdk/server/mcp.js';
4
+ import 'graphql-request';
5
+
6
+ interface WorkspaceInfo {
7
+ id: string;
8
+ name: string;
9
+ slug: string;
10
+ tenantId: string;
11
+ organizationId: string;
12
+ }
13
+ interface LoginStartResult {
14
+ status: 'device_code_issued';
15
+ verificationUri: string;
16
+ verificationUriComplete: string | null;
17
+ userCode: string;
18
+ expiresIn: number;
19
+ message: string;
20
+ }
21
+ interface LoginCompleteResult {
22
+ status: 'authenticated' | 'workspace_selection_required' | 'pending' | 'expired';
23
+ message: string;
24
+ workspaces?: WorkspaceInfo[];
25
+ }
26
+ interface AuthHelper {
27
+ startLogin(): Promise<LoginStartResult>;
28
+ completeLogin(): Promise<LoginCompleteResult>;
29
+ selectWorkspace(workspaceId: string, organizationId: string): Promise<void>;
30
+ listWorkspaces(): Promise<WorkspaceInfo[]>;
31
+ ensureAuthenticated(): Promise<void>;
32
+ getStatus(): Promise<{
33
+ authenticated: boolean;
34
+ method: string;
35
+ expiresAt: string | null;
36
+ workspaceId: string | null;
37
+ organizationId: string | null;
38
+ workspaceTokenExpiresAt: string | null;
39
+ hasWorkspaceToken: boolean;
40
+ hasPendingLogin: boolean;
41
+ }>;
42
+ logout(): Promise<void>;
43
+ getHeaders(): Record<string, string>;
44
+ isLoggedIn(): boolean;
45
+ setOnTokensChanged(cb: () => void): void;
46
+ }
47
+ declare function getAuth(ctx: McpContext): AuthHelper;
48
+
49
+ declare const authModule: McpModule;
50
+
51
+ export { type AuthHelper, type WorkspaceInfo, authModule as default, getAuth };
@@ -0,0 +1,159 @@
1
+ import { getAuth } from '../../chunk-WWFVD7BO.js';
2
+ export { getAuth } from '../../chunk-WWFVD7BO.js';
3
+ import { mcpToolName, jsonResult, errorResult } from '../../chunk-H2OYWLOA.js';
4
+ import { z } from 'zod';
5
+
6
+ function registerAuthTools(server, ctx, track) {
7
+ server.registerTool(
8
+ track(mcpToolName(ctx.productName, "auth_login")),
9
+ {
10
+ title: "Start Login",
11
+ description: "Start the device code login flow. Returns a verification URL and user code immediately (non-blocking). The user must open the URL in a browser and enter the code, then call vibecontrols_auth_complete to finish.",
12
+ inputSchema: {}
13
+ },
14
+ async () => {
15
+ try {
16
+ const auth = getAuth(ctx);
17
+ const result = await auth.startLogin();
18
+ return jsonResult(result);
19
+ } catch (error) {
20
+ ctx.logger.error("vibecontrols_auth_login failed", { error });
21
+ return errorResult(
22
+ `Login failed: ${error instanceof Error ? error.message : String(error)}`
23
+ );
24
+ }
25
+ }
26
+ );
27
+ server.registerTool(
28
+ track(mcpToolName(ctx.productName, "auth_complete")),
29
+ {
30
+ title: "Complete Login",
31
+ description: 'Check if the user has completed the device code authorization in their browser. Call this after the user has opened the verification URL and entered the code from vibecontrols_auth_login. Returns "pending" if not yet authorized, "authenticated" on success.',
32
+ inputSchema: {}
33
+ },
34
+ async () => {
35
+ try {
36
+ const auth = getAuth(ctx);
37
+ const result = await auth.completeLogin();
38
+ return jsonResult(result);
39
+ } catch (error) {
40
+ ctx.logger.error("vibecontrols_auth_complete failed", { error });
41
+ return errorResult(
42
+ `Login completion failed: ${error instanceof Error ? error.message : String(error)}`
43
+ );
44
+ }
45
+ }
46
+ );
47
+ server.registerTool(
48
+ track(mcpToolName(ctx.productName, "auth_select_workspace")),
49
+ {
50
+ title: "Select Workspace",
51
+ description: "Select a workspace after login (when multiple workspaces are available). Issues a workspace-scoped token.",
52
+ inputSchema: {
53
+ workspaceId: z.string().describe("Workspace ID to select"),
54
+ organizationId: z.string().describe("Organization ID for the workspace")
55
+ }
56
+ },
57
+ async ({ workspaceId, organizationId }) => {
58
+ try {
59
+ const auth = getAuth(ctx);
60
+ await auth.selectWorkspace(workspaceId, organizationId);
61
+ return jsonResult({
62
+ status: "workspace_selected",
63
+ workspaceId,
64
+ message: `Workspace ${workspaceId} selected and token issued.`
65
+ });
66
+ } catch (error) {
67
+ ctx.logger.error("vibecontrols_auth_select_workspace failed", { error });
68
+ return errorResult(
69
+ `Failed to select workspace: ${error instanceof Error ? error.message : String(error)}`
70
+ );
71
+ }
72
+ }
73
+ );
74
+ server.registerTool(
75
+ track(mcpToolName(ctx.productName, "auth_workspaces")),
76
+ {
77
+ title: "List Workspaces",
78
+ description: "List all workspaces available to the authenticated user.",
79
+ inputSchema: {}
80
+ },
81
+ async () => {
82
+ try {
83
+ const auth = getAuth(ctx);
84
+ const workspaces = await auth.listWorkspaces();
85
+ return jsonResult({ workspaces, total: workspaces.length });
86
+ } catch (error) {
87
+ ctx.logger.error("vibecontrols_auth_workspaces failed", { error });
88
+ return errorResult(
89
+ `Failed to list workspaces: ${error instanceof Error ? error.message : String(error)}`
90
+ );
91
+ }
92
+ }
93
+ );
94
+ server.registerTool(
95
+ track(mcpToolName(ctx.productName, "auth_status")),
96
+ {
97
+ title: "Auth Status",
98
+ description: "Show current authentication status including method, token expiration, workspace info, and pending login state.",
99
+ inputSchema: {}
100
+ },
101
+ async () => {
102
+ try {
103
+ const auth = getAuth(ctx);
104
+ const status = await auth.getStatus();
105
+ return jsonResult(status);
106
+ } catch (error) {
107
+ ctx.logger.error("vibecontrols_auth_status failed", { error });
108
+ return errorResult(
109
+ `Failed to get auth status: ${error instanceof Error ? error.message : String(error)}`
110
+ );
111
+ }
112
+ }
113
+ );
114
+ server.registerTool(
115
+ track(mcpToolName(ctx.productName, "auth_logout")),
116
+ {
117
+ title: "Logout",
118
+ description: "Log out and clear all stored authentication tokens.",
119
+ inputSchema: {}
120
+ },
121
+ async () => {
122
+ try {
123
+ const auth = getAuth(ctx);
124
+ await auth.logout();
125
+ return jsonResult({
126
+ status: "logged_out",
127
+ message: "Tokens cleared successfully."
128
+ });
129
+ } catch (error) {
130
+ ctx.logger.error("vibecontrols_auth_logout failed", { error });
131
+ return errorResult(
132
+ `Logout failed: ${error instanceof Error ? error.message : String(error)}`
133
+ );
134
+ }
135
+ }
136
+ );
137
+ }
138
+
139
+ // src/modules/auth/index.ts
140
+ var authModule = {
141
+ id: "auth",
142
+ version: "0.0.1",
143
+ displayName: "Authentication",
144
+ capabilities: { tools: {} },
145
+ register(server, ctx) {
146
+ const tools = [];
147
+ const track = (n) => {
148
+ tools.push(n);
149
+ return n;
150
+ };
151
+ registerAuthTools(server, ctx, track);
152
+ return { tools, resources: [], prompts: [] };
153
+ }
154
+ };
155
+ var auth_default = authModule;
156
+
157
+ export { auth_default as default };
158
+ //# sourceMappingURL=index.js.map
159
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/modules/auth/tools.ts","../../../src/modules/auth/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { getAuth } from '../auth/legacy-auth.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../core/index.js';\n\nexport function registerAuthTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auth_login')),\n {\n title: 'Start Login',\n description:\n 'Start the device code login flow. Returns a verification URL and user code immediately (non-blocking). The user must open the URL in a browser and enter the code, then call vibecontrols_auth_complete to finish.',\n inputSchema: {},\n },\n async () => {\n try {\n const auth = getAuth(ctx);\n const result = await auth.startLogin();\n return jsonResult(result);\n } catch (error) {\n ctx.logger.error('vibecontrols_auth_login failed', { error });\n return errorResult(\n `Login failed: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auth_complete')),\n {\n title: 'Complete Login',\n description:\n 'Check if the user has completed the device code authorization in their browser. Call this after the user has opened the verification URL and entered the code from vibecontrols_auth_login. Returns \"pending\" if not yet authorized, \"authenticated\" on success.',\n inputSchema: {},\n },\n async () => {\n try {\n const auth = getAuth(ctx);\n const result = await auth.completeLogin();\n return jsonResult(result);\n } catch (error) {\n ctx.logger.error('vibecontrols_auth_complete failed', { error });\n return errorResult(\n `Login completion failed: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auth_select_workspace')),\n {\n title: 'Select Workspace',\n description:\n 'Select a workspace after login (when multiple workspaces are available). Issues a workspace-scoped token.',\n inputSchema: {\n workspaceId: z.string().describe('Workspace ID to select'),\n organizationId: z.string().describe('Organization ID for the workspace'),\n },\n },\n async ({ workspaceId, organizationId }) => {\n try {\n const auth = getAuth(ctx);\n await auth.selectWorkspace(workspaceId, organizationId);\n return jsonResult({\n status: 'workspace_selected',\n workspaceId,\n message: `Workspace ${workspaceId} selected and token issued.`,\n });\n } catch (error) {\n ctx.logger.error('vibecontrols_auth_select_workspace failed', { error });\n return errorResult(\n `Failed to select workspace: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auth_workspaces')),\n {\n title: 'List Workspaces',\n description: 'List all workspaces available to the authenticated user.',\n inputSchema: {},\n },\n async () => {\n try {\n const auth = getAuth(ctx);\n const workspaces = await auth.listWorkspaces();\n return jsonResult({ workspaces, total: workspaces.length });\n } catch (error) {\n ctx.logger.error('vibecontrols_auth_workspaces failed', { error });\n return errorResult(\n `Failed to list workspaces: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auth_status')),\n {\n title: 'Auth Status',\n description:\n 'Show current authentication status including method, token expiration, workspace info, and pending login state.',\n inputSchema: {},\n },\n async () => {\n try {\n const auth = getAuth(ctx);\n const status = await auth.getStatus();\n return jsonResult(status);\n } catch (error) {\n ctx.logger.error('vibecontrols_auth_status failed', { error });\n return errorResult(\n `Failed to get auth status: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auth_logout')),\n {\n title: 'Logout',\n description: 'Log out and clear all stored authentication tokens.',\n inputSchema: {},\n },\n async () => {\n try {\n const auth = getAuth(ctx);\n await auth.logout();\n return jsonResult({\n status: 'logged_out',\n message: 'Tokens cleared successfully.',\n });\n } catch (error) {\n ctx.logger.error('vibecontrols_auth_logout failed', { error });\n return errorResult(\n `Logout failed: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Auth module — login flow + workspace selection + status + logout.\n *\n * Phase 1 ships the SUBSET that exists in vibecontrols-mcp@main:\n * <product>_auth_{login,complete,select_workspace,workspaces,status,logout}\n *\n * Phase 2 finishes the full auth surface (mfa, api-keys, audit-log,\n * delegations, apps, sso, users, profile, sessions).\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpContext, McpModule, ModuleRegistration } from '../../core/index.js';\nimport { registerAuthTools } from './tools.js';\n\nconst authModule: McpModule = {\n id: 'auth',\n version: '0.0.1',\n displayName: 'Authentication',\n capabilities: { tools: {} },\n\n register(server: McpServer, ctx: McpContext): ModuleRegistration {\n const tools: string[] = [];\n const track = (n: string): string => {\n tools.push(n);\n return n;\n };\n\n registerAuthTools(server, ctx, track);\n\n return { tools, resources: [], prompts: [] };\n },\n};\n\nexport default authModule;\nexport { getAuth, type AuthHelper, type WorkspaceInfo } from './legacy-auth.js';\n"]}