@burdenoff/mcp-libs 2026.518.1 → 2026.523.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 (62) hide show
  1. package/dist/{chunk-4GBVJ4OY.js → chunk-N2CZNPYC.js} +31 -3
  2. package/dist/chunk-N2CZNPYC.js.map +1 -0
  3. package/dist/modules/auth/index.cjs +317 -0
  4. package/dist/modules/auth/index.cjs.map +1 -1
  5. package/dist/modules/auth/index.js +289 -1
  6. package/dist/modules/auth/index.js.map +1 -1
  7. package/dist/modules/channels/index.cjs +47 -0
  8. package/dist/modules/channels/index.cjs.map +1 -1
  9. package/dist/modules/channels/index.js +47 -0
  10. package/dist/modules/channels/index.js.map +1 -1
  11. package/dist/modules/conversations/index.cjs +181 -0
  12. package/dist/modules/conversations/index.cjs.map +1 -1
  13. package/dist/modules/conversations/index.js +181 -0
  14. package/dist/modules/conversations/index.js.map +1 -1
  15. package/dist/modules/devportal/index.cjs +281 -0
  16. package/dist/modules/devportal/index.cjs.map +1 -1
  17. package/dist/modules/devportal/index.js +281 -0
  18. package/dist/modules/devportal/index.js.map +1 -1
  19. package/dist/modules/files/index.cjs +244 -2
  20. package/dist/modules/files/index.cjs.map +1 -1
  21. package/dist/modules/files/index.js +244 -2
  22. package/dist/modules/files/index.js.map +1 -1
  23. package/dist/modules/organizations/index.cjs +211 -0
  24. package/dist/modules/organizations/index.cjs.map +1 -1
  25. package/dist/modules/organizations/index.js +211 -0
  26. package/dist/modules/organizations/index.js.map +1 -1
  27. package/dist/modules/products/index.cjs +131 -0
  28. package/dist/modules/products/index.cjs.map +1 -1
  29. package/dist/modules/products/index.js +131 -0
  30. package/dist/modules/products/index.js.map +1 -1
  31. package/dist/modules/rbac/index.cjs +114 -0
  32. package/dist/modules/rbac/index.cjs.map +1 -1
  33. package/dist/modules/rbac/index.js +114 -0
  34. package/dist/modules/rbac/index.js.map +1 -1
  35. package/dist/modules/sandbox/index.cjs.map +1 -1
  36. package/dist/modules/sandbox/index.js +1 -1
  37. package/dist/modules/scheduler/index.cjs +124 -0
  38. package/dist/modules/scheduler/index.cjs.map +1 -1
  39. package/dist/modules/scheduler/index.js +124 -0
  40. package/dist/modules/scheduler/index.js.map +1 -1
  41. package/dist/modules/security/index.cjs +51 -0
  42. package/dist/modules/security/index.cjs.map +1 -1
  43. package/dist/modules/security/index.js +51 -0
  44. package/dist/modules/security/index.js.map +1 -1
  45. package/dist/modules/store/index.cjs +102 -0
  46. package/dist/modules/store/index.cjs.map +1 -1
  47. package/dist/modules/store/index.js +102 -0
  48. package/dist/modules/store/index.js.map +1 -1
  49. package/dist/modules/tours/index.cjs +43 -0
  50. package/dist/modules/tours/index.cjs.map +1 -1
  51. package/dist/modules/tours/index.js +43 -0
  52. package/dist/modules/tours/index.js.map +1 -1
  53. package/dist/modules/vibecontrols/index.cjs +197 -0
  54. package/dist/modules/vibecontrols/index.cjs.map +1 -1
  55. package/dist/modules/vibecontrols/index.js +170 -1
  56. package/dist/modules/vibecontrols/index.js.map +1 -1
  57. package/dist/modules/workspaces/index.cjs +46 -3
  58. package/dist/modules/workspaces/index.cjs.map +1 -1
  59. package/dist/modules/workspaces/index.js +46 -3
  60. package/dist/modules/workspaces/index.js.map +1 -1
  61. package/package.json +5 -4
  62. package/dist/chunk-4GBVJ4OY.js.map +0 -1
@@ -184,6 +184,11 @@ var RESTORE_VIBE = `
184
184
  restoreVibe(id: $id) { ${VIBE_FIELDS} }
185
185
  }
186
186
  `;
187
+ var MOVE_VIBE = `
188
+ mutation MoveVibe($id: ID!, $newParentId: ID) {
189
+ moveVibe(id: $id, newParentId: $newParentId) { ${VIBE_FIELDS} }
190
+ }
191
+ `;
187
192
  var UPDATE_VIBE_STATUS = `
188
193
  mutation UpdateVibeStatus($id: ID!, $status: VibeStatus!) {
189
194
  updateVibeStatus(id: $id, status: $status) { ${VIBE_FIELDS} }
@@ -199,6 +204,13 @@ var SEARCH_VIBES = `
199
204
  searchVibes(query: $query, limit: $limit) { ${VIBE_FIELDS} }
200
205
  }
201
206
  `;
207
+ var UPDATE_VIBE_GIT = `
208
+ mutation UpdateVibeGit($id: ID!, $gitBranch: String, $gitRemote: String, $gitStatus: JSON) {
209
+ updateVibeGit(id: $id, gitBranch: $gitBranch, gitRemote: $gitRemote, gitStatus: $gitStatus) {
210
+ ${VIBE_FIELDS}
211
+ }
212
+ }
213
+ `;
202
214
  var LIST_SESSIONS = `
203
215
  query Sessions($filter: SessionFilterInput, $pagination: PaginationInput) {
204
216
  sessions(filter: $filter, pagination: $pagination) {
@@ -277,6 +289,22 @@ var BULK_TERMINATE_SESSIONS = `
277
289
  bulkTerminateSessions(ids: $ids) { succeeded failed }
278
290
  }
279
291
  `;
292
+ var UPDATE_SESSION = `
293
+ mutation UpdateSession($id: ID!, $input: UpdateSessionInput!) {
294
+ updateSession(id: $id, input: $input) { ${SESSION_FIELDS} }
295
+ }
296
+ `;
297
+ var UPDATE_SESSION_STATUS = `
298
+ mutation UpdateSessionStatus($id: ID!, $status: VibecontrolsSessionStatus!) {
299
+ updateSessionStatus(id: $id, status: $status) { ${SESSION_FIELDS} }
300
+ }
301
+ `;
302
+ var DELETE_SESSION = `
303
+ mutation DeleteSession($id: ID!) { deleteSession(id: $id) }
304
+ `;
305
+ var KILL_SESSION = `
306
+ mutation KillSession($id: ID!) { killSession(id: $id) }
307
+ `;
280
308
  var SHARE_SESSION = `
281
309
  mutation ShareSession($input: ShareSessionInput!) {
282
310
  shareSession(input: $input) { ${SESSION_SHARE_FIELDS} }
@@ -842,6 +870,6 @@ var VIBECONTROLS_ANALYTICS = `
842
870
  }
843
871
  `;
844
872
 
845
- export { ACTIVE_SESSIONS, AGENT_HEALTH_PROBES, AGENT_PLUGINS, ARCHIVE_VIBE, AUDIT_LOG_STATS, BULK_RESTART_SESSIONS, BULK_STOP_SESSIONS, BULK_TERMINATE_SESSIONS, CANCEL_ACTION_EXECUTION, CHECK_SESSION_HEALTH, CLEAR_UI_SESSION, COMPILE_DOCS_SITE, CONFIGURATIONS_BY_SCOPE, CREATE_ACTION, CREATE_AGENT, CREATE_AI_TOOL_EVENT, CREATE_DOCS_PAGE, CREATE_DOCS_SITE, CREATE_NOTE, CREATE_SANDBOX, CREATE_SCHEDULED_JOB, CREATE_SESSION, CREATE_SESSION_SHARE_LINK, CREATE_TARGET, CREATE_TUNNEL, CREATE_VIBE, CREATE_VIBEDECK, CREATE_VIBEDECK_BUTTON, CREATE_WEBHOOK, DELETE_ACTION, DELETE_AGENT, DELETE_AUDIT_LOG, DELETE_CONFIGURATION, DELETE_DOCS_PAGE, DELETE_DOCS_SITE, DELETE_NOTE, DELETE_SANDBOX, DELETE_SCHEDULED_JOB, DELETE_TARGET, DELETE_TUNNEL, DELETE_VIBE, DELETE_VIBEDECK, DELETE_VIBEDECK_BUTTON, DELETE_WEBHOOK, DUPLICATE_ACTION, DUPLICATE_VIBEDECK, EXECUTE_ACTION, EXECUTE_VIBEDECK_BUTTON, EXPORT_AUDIT_LOGS, EXTEND_SANDBOX_TTL, GET_ACTION, GET_AGENT, GET_AUDIT_LOG, GET_CONFIGURATION, GET_DOCS_PAGE, GET_DOCS_SITE, GET_NOTE, GET_SANDBOX, GET_SESSION, GET_TARGET, GET_UI_SESSION, GET_VIBE, GET_VIBEDECK, GET_WEBHOOK, IMPORT_TARGETS_FROM_CONFIG, INSTALL_ACTION_FROM_STORE, INSTALL_AGENT_ON_TARGET, INSTALL_AGENT_PLUGIN, LIST_ACTIONS, LIST_ACTION_EXECUTIONS, LIST_AGENTS, LIST_AI_TOOL_EVENTS, LIST_AUDIT_LOGS, LIST_CONFIGURATIONS, LIST_DOCS_PAGES, LIST_DOCS_SITES, LIST_NOTES, LIST_SANDBOXES, LIST_SCHEDULED_JOBS, LIST_SESSIONS, LIST_TARGETS, LIST_TUNNELS, LIST_VIBEDECKS, LIST_VIBEDECK_BUTTONS, LIST_VIBES, LIST_WEBHOOKS, PINNED_NOTES, PIN_NOTE, PROBE_AGENT_CONNECTION, PUBLISH_DOCS_REVISION, RECENT_AI_TOOL_EVENTS, REMOVE_AGENT_PLUGIN, RESTART_SESSION, RESTORE_VIBE, REVOKE_SESSION_SHARE, REVOKE_SESSION_SHARE_LINK, ROLLBACK_DOCS_REVISION, SAVE_UI_SESSION, SCAN_SSH_CONFIG, SEARCH_NOTES, SEARCH_VIBES, SEND_SESSION_INPUT, SESSIONS_SHARED_WITH_ME, SESSION_COLLABORATORS, SESSION_OUTPUT, SESSION_SHARES, SESSION_SHARE_LINKS, SET_CONFIGURATION, SET_DEFAULT_VIBEDECK, SHARE_SESSION, START_SESSION, START_SESSION_TERMINAL, STOP_SANDBOX, STOP_SESSION, STOP_TUNNEL, TERMINATE_SESSION, TEST_TARGET, TEST_WEBHOOK, TRIGGER_WEBHOOK, UNPIN_NOTE, UPDATE_ACTION, UPDATE_AGENT, UPDATE_DOCS_PAGE, UPDATE_DOCS_SITE, UPDATE_NOTE, UPDATE_TARGET, UPDATE_VIBE, UPDATE_VIBEDECK, UPDATE_VIBEDECK_BUTTON, UPDATE_VIBE_STATUS, UPDATE_WEBHOOK, VIBECONTROLS_ANALYTICS, VIBE_HIERARCHY };
846
- //# sourceMappingURL=chunk-4GBVJ4OY.js.map
847
- //# sourceMappingURL=chunk-4GBVJ4OY.js.map
873
+ export { ACTIVE_SESSIONS, AGENT_HEALTH_PROBES, AGENT_PLUGINS, ARCHIVE_VIBE, AUDIT_LOG_STATS, BULK_RESTART_SESSIONS, BULK_STOP_SESSIONS, BULK_TERMINATE_SESSIONS, CANCEL_ACTION_EXECUTION, CHECK_SESSION_HEALTH, CLEAR_UI_SESSION, COMPILE_DOCS_SITE, CONFIGURATIONS_BY_SCOPE, CREATE_ACTION, CREATE_AGENT, CREATE_AI_TOOL_EVENT, CREATE_DOCS_PAGE, CREATE_DOCS_SITE, CREATE_NOTE, CREATE_SANDBOX, CREATE_SCHEDULED_JOB, CREATE_SESSION, CREATE_SESSION_SHARE_LINK, CREATE_TARGET, CREATE_TUNNEL, CREATE_VIBE, CREATE_VIBEDECK, CREATE_VIBEDECK_BUTTON, CREATE_WEBHOOK, DELETE_ACTION, DELETE_AGENT, DELETE_AUDIT_LOG, DELETE_CONFIGURATION, DELETE_DOCS_PAGE, DELETE_DOCS_SITE, DELETE_NOTE, DELETE_SANDBOX, DELETE_SCHEDULED_JOB, DELETE_SESSION, DELETE_TARGET, DELETE_TUNNEL, DELETE_VIBE, DELETE_VIBEDECK, DELETE_VIBEDECK_BUTTON, DELETE_WEBHOOK, DUPLICATE_ACTION, DUPLICATE_VIBEDECK, EXECUTE_ACTION, EXECUTE_VIBEDECK_BUTTON, EXPORT_AUDIT_LOGS, EXTEND_SANDBOX_TTL, GET_ACTION, GET_AGENT, GET_AUDIT_LOG, GET_CONFIGURATION, GET_DOCS_PAGE, GET_DOCS_SITE, GET_NOTE, GET_SANDBOX, GET_SESSION, GET_TARGET, GET_UI_SESSION, GET_VIBE, GET_VIBEDECK, GET_WEBHOOK, IMPORT_TARGETS_FROM_CONFIG, INSTALL_ACTION_FROM_STORE, INSTALL_AGENT_ON_TARGET, INSTALL_AGENT_PLUGIN, KILL_SESSION, LIST_ACTIONS, LIST_ACTION_EXECUTIONS, LIST_AGENTS, LIST_AI_TOOL_EVENTS, LIST_AUDIT_LOGS, LIST_CONFIGURATIONS, LIST_DOCS_PAGES, LIST_DOCS_SITES, LIST_NOTES, LIST_SANDBOXES, LIST_SCHEDULED_JOBS, LIST_SESSIONS, LIST_TARGETS, LIST_TUNNELS, LIST_VIBEDECKS, LIST_VIBEDECK_BUTTONS, LIST_VIBES, LIST_WEBHOOKS, MOVE_VIBE, PINNED_NOTES, PIN_NOTE, PROBE_AGENT_CONNECTION, PUBLISH_DOCS_REVISION, RECENT_AI_TOOL_EVENTS, REMOVE_AGENT_PLUGIN, RESTART_SESSION, RESTORE_VIBE, REVOKE_SESSION_SHARE, REVOKE_SESSION_SHARE_LINK, ROLLBACK_DOCS_REVISION, SAVE_UI_SESSION, SCAN_SSH_CONFIG, SEARCH_NOTES, SEARCH_VIBES, SEND_SESSION_INPUT, SESSIONS_SHARED_WITH_ME, SESSION_COLLABORATORS, SESSION_OUTPUT, SESSION_SHARES, SESSION_SHARE_LINKS, SET_CONFIGURATION, SET_DEFAULT_VIBEDECK, SHARE_SESSION, START_SESSION, START_SESSION_TERMINAL, STOP_SANDBOX, STOP_SESSION, STOP_TUNNEL, TERMINATE_SESSION, TEST_TARGET, TEST_WEBHOOK, TRIGGER_WEBHOOK, UNPIN_NOTE, UPDATE_ACTION, UPDATE_AGENT, UPDATE_DOCS_PAGE, UPDATE_DOCS_SITE, UPDATE_NOTE, UPDATE_SESSION, UPDATE_SESSION_STATUS, UPDATE_TARGET, UPDATE_VIBE, UPDATE_VIBEDECK, UPDATE_VIBEDECK_BUTTON, UPDATE_VIBE_GIT, UPDATE_VIBE_STATUS, UPDATE_WEBHOOK, VIBECONTROLS_ANALYTICS, VIBE_HIERARCHY };
874
+ //# sourceMappingURL=chunk-N2CZNPYC.js.map
875
+ //# sourceMappingURL=chunk-N2CZNPYC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/modules/vibecontrols/operations.ts"],"names":[],"mappings":"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","file":"chunk-N2CZNPYC.js","sourcesContent":["/**\n * Centralized GraphQL operations for the VibeControls MCP server.\n * Adapted from vibecontrols-cli/src/graphql/operations.ts with superset field selections.\n * Uses template string interpolation pattern (not gql tagged fragments).\n */\n\n// ---------------------------------------------------------------------------\n// Field Fragments (template string constants for interpolation)\n// ---------------------------------------------------------------------------\n\nexport const AGENT_FIELDS = `\n id name hostname platform architecture version\n tunnelUrl tunnelStatus apiUrl agentApiKey appId appClientId\n capabilities configuration isActive lastHeartbeat metadata\n workspaceId createdAt updatedAt deletedAt\n`;\n\nexport const VIBE_FIELDS = `\n id name description path type status agentId parentId\n gitBranch gitRemote gitStatus environmentVariables tags metadata\n workspaceId archivedAt createdAt updatedAt deletedAt\n`;\n\nexport const SESSION_FIELDS = `\n id name command workingDirectory type status agentId vibeId\n providerSessionName providerWindowId providerPaneId pid exitCode ttydUrl lastOutput\n autoStart environmentVariables metadata startedAt stoppedAt\n workspaceId createdAt updatedAt deletedAt\n`;\n\nexport const NOTE_FIELDS = `\n id title content tags isPinned vibeId createdBy metadata\n workspaceId createdAt updatedAt deletedAt\n`;\n\nexport const CONFIG_FIELDS = `\n id key value scope scopeId isSecret\n workspaceId createdAt updatedAt\n`;\n\nexport const WEBHOOK_FIELDS = `\n id name url events agentIds isActive signingKey retryPolicy\n deliveryCount failureCount lastDelivery lastError\n workspaceId createdAt updatedAt deletedAt\n`;\n\nexport const UI_SESSION_FIELDS = `\n id userId state activeVibeId activeSessionId\n recentVibes recentSessions workspaceId createdAt updatedAt\n`;\n\nexport const TUNNEL_FIELDS = `\n id agentId sessionId localPort publicUrl status isPrimary errorMessage createdAt agentName\n`;\n\nexport const TARGET_FIELDS = `\n id name type host port username status\n workspaceId createdAt updatedAt\n`;\n\nexport const AGENT_CONNECTION_FIELDS = `\n id sourceAgentId targetId protocol status permissions\n createdAt updatedAt\n`;\n\nexport const VIBEDECK_FIELDS = `\n id name description isDefault\n workspaceId createdAt updatedAt\n`;\n\nexport const VIBEDECK_BUTTON_FIELDS = `\n id vibeDeckId label icon actionType actionId\n action { id name actionType }\n command script webhookUrl\n row column color category tags\n confirmationRequired keyboardShortcut style sortOrder\n createdAt updatedAt\n`;\n\nexport const AI_TOOL_EVENT_FIELDS = `\n id source eventType payload agentId\n workspaceId createdAt\n`;\n\nexport const DOCS_SITE_FIELDS = `\n id vibeId name visibility runtime\n workspaceId createdAt updatedAt\n`;\n\nexport const DOCS_PAGE_FIELDS = `\n id siteId title slug content parentId sidebarPosition status\n createdAt updatedAt\n`;\n\nexport const DOCS_REVISION_FIELDS = `\n id siteId revisionNumber status buildDurationMs artifactSizeBytes\n errorMessage publishedAt\n createdAt updatedAt\n`;\n\nexport const AUDIT_LOG_FIELDS = `\n id action resourceType resourceId actorId actorType\n status description ipAddress userAgent requestId\n workspaceId createdAt\n`;\n\nexport const SESSION_SHARE_FIELDS = `\n id sessionId sharedWithId permission status message\n createdBy createdAt expiresAt lastAccessAt accessCount revokedAt revokedBy\n`;\n\nexport const SESSION_SHARE_LINK_FIELDS = `\n id sessionId token permission expiresAt\n createdAt\n`;\n\n// ---------------------------------------------------------------------------\n// Agent Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_AGENTS = `\n query VibecontrolsAgents($filter: VibecontrolsAgentFilterInput) {\n vibecontrolsAgents(filter: $filter) { ${AGENT_FIELDS} }\n }\n`;\n\nexport const GET_AGENT = `\n query VibecontrolsAgent($id: ID!) {\n vibecontrolsAgent(id: $id) { ${AGENT_FIELDS} }\n }\n`;\n\nexport const CREATE_AGENT = `\n mutation CreateVibecontrolsAgent($input: CreateVibecontrolsAgentInput!) {\n createVibecontrolsAgent(input: $input) { ${AGENT_FIELDS} }\n }\n`;\n\nexport const UPDATE_AGENT = `\n mutation UpdateVibecontrolsAgent($id: ID!, $input: UpdateVibecontrolsAgentInput!) {\n updateVibecontrolsAgent(id: $id, input: $input) { ${AGENT_FIELDS} }\n }\n`;\n\nexport const DELETE_AGENT = `\n mutation DeleteVibecontrolsAgent($id: ID!) {\n deleteVibecontrolsAgent(id: $id)\n }\n`;\n\nexport const PROBE_AGENT_CONNECTION = `\n query ProbeAgentConnection($id: ID!) {\n probeAgentConnection(id: $id) {\n agentId reachable latencyMs error version tunnelUrl\n }\n }\n`;\n\nexport const AGENT_HEALTH_PROBES = `\n query VibecontrolsAgentHealthProbes {\n vibecontrolsAgentHealthProbes {\n agentId agentName healthy agentVersion errorMessage tunnelUrl uptime\n }\n }\n`;\n\nexport const AGENT_PLUGINS = `\n query AgentPlugins($agentId: ID!) {\n agentPlugins(agentId: $agentId) {\n agentId\n plugins {\n name packageName version description isActive tags metadata\n }\n total\n }\n }\n`;\n\nexport const INSTALL_AGENT_PLUGIN = `\n mutation InstallAgentPlugin($agentId: ID!, $packageName: String!) {\n installAgentPlugin(agentId: $agentId, packageName: $packageName) {\n success message\n plugin { name packageName version description isActive tags metadata }\n }\n }\n`;\n\nexport const REMOVE_AGENT_PLUGIN = `\n mutation RemoveAgentPlugin($agentId: ID!, $packageName: String!) {\n removeAgentPlugin(agentId: $agentId, packageName: $packageName) {\n success message\n plugin { name packageName version description isActive tags metadata }\n }\n }\n`;\n\nexport const AGENT_HEARTBEAT = `\n mutation VibecontrolsAgentHeartbeat($id: ID!) {\n vibecontrolsAgentHeartbeat(id: $id) { id isActive lastHeartbeat }\n }\n`;\n\nexport const DEACTIVATE_AGENT = `\n mutation DeactivateVibecontrolsAgent($id: ID!) {\n deactivateVibecontrolsAgent(id: $id) { ${AGENT_FIELDS} }\n }\n`;\n\nexport const AGENT_GRAPH = `\n query AgentGraph($workspaceId: ID!, $rootAgentId: ID) {\n agentGraph(workspaceId: $workspaceId, rootAgentId: $rootAgentId) {\n agents { ${AGENT_FIELDS} }\n connections { ${AGENT_CONNECTION_FIELDS} }\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Vibe Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_VIBES = `\n query Vibes($filter: VibeFilterInput, $pagination: PaginationInput) {\n vibes(filter: $filter, pagination: $pagination) {\n items { ${VIBE_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_VIBE = `\n query Vibe($id: ID!) {\n vibe(id: $id) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const CREATE_VIBE = `\n mutation CreateVibe($input: CreateVibeInput!) {\n createVibe(input: $input) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const UPDATE_VIBE = `\n mutation UpdateVibe($id: ID!, $input: UpdateVibeInput!) {\n updateVibe(id: $id, input: $input) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const DELETE_VIBE = `\n mutation DeleteVibe($id: ID!) { deleteVibe(id: $id) }\n`;\n\nexport const ARCHIVE_VIBE = `\n mutation ArchiveVibe($id: ID!) {\n archiveVibe(id: $id) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const RESTORE_VIBE = `\n mutation RestoreVibe($id: ID!) {\n restoreVibe(id: $id) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const MOVE_VIBE = `\n mutation MoveVibe($id: ID!, $newParentId: ID) {\n moveVibe(id: $id, newParentId: $newParentId) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const UPDATE_VIBE_STATUS = `\n mutation UpdateVibeStatus($id: ID!, $status: VibeStatus!) {\n updateVibeStatus(id: $id, status: $status) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const VIBE_HIERARCHY = `\n query VibeHierarchy($rootId: ID) {\n vibeHierarchy(rootId: $rootId) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const SEARCH_VIBES = `\n query SearchVibes($query: String!, $limit: Int) {\n searchVibes(query: $query, limit: $limit) { ${VIBE_FIELDS} }\n }\n`;\n\nexport const UPDATE_VIBE_GIT = `\n mutation UpdateVibeGit($id: ID!, $gitBranch: String, $gitRemote: String, $gitStatus: JSON) {\n updateVibeGit(id: $id, gitBranch: $gitBranch, gitRemote: $gitRemote, gitStatus: $gitStatus) {\n ${VIBE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Session Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_SESSIONS = `\n query Sessions($filter: SessionFilterInput, $pagination: PaginationInput) {\n sessions(filter: $filter, pagination: $pagination) {\n items { ${SESSION_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_SESSION = `\n query Session($id: ID!) {\n session(id: $id) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const CREATE_SESSION = `\n mutation CreateSession($input: CreateSessionInput!) {\n createSession(input: $input) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const START_SESSION = `\n mutation StartSession($id: ID!) {\n startSession(id: $id) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const STOP_SESSION = `\n mutation StopSession($id: ID!) {\n stopSession(id: $id) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const RESTART_SESSION = `\n mutation RestartSession($id: ID!) {\n restartSession(id: $id) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const TERMINATE_SESSION = `\n mutation TerminateSession($id: ID!) {\n terminateSession(id: $id)\n }\n`;\n\nexport const SEND_SESSION_INPUT = `\n mutation SendSessionInput($id: ID!, $input: String!) {\n sendSessionInput(id: $id, input: $input)\n }\n`;\n\nexport const START_SESSION_TERMINAL = `\n mutation StartSessionTerminal($id: ID!) {\n startSessionTerminal(id: $id) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const SESSION_OUTPUT = `\n query SessionOutput($id: ID!, $lines: Int) {\n sessionOutput(id: $id, lines: $lines)\n }\n`;\n\nexport const ACTIVE_SESSIONS = `\n query ActiveSessions($vibeId: ID) {\n activeSessions(vibeId: $vibeId) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const CHECK_SESSION_HEALTH = `\n mutation CheckSessionHealth {\n checkSessionHealth { checked updated errors }\n }\n`;\n\nexport const BULK_RESTART_SESSIONS = `\n mutation BulkRestartSessions($ids: [ID!]!) {\n bulkRestartSessions(ids: $ids) { succeeded failed }\n }\n`;\n\nexport const BULK_STOP_SESSIONS = `\n mutation BulkStopSessions($ids: [ID!]!) {\n bulkStopSessions(ids: $ids) { succeeded failed }\n }\n`;\n\nexport const BULK_TERMINATE_SESSIONS = `\n mutation BulkTerminateSessions($ids: [ID!]!) {\n bulkTerminateSessions(ids: $ids) { succeeded failed }\n }\n`;\n\nexport const UPDATE_SESSION = `\n mutation UpdateSession($id: ID!, $input: UpdateSessionInput!) {\n updateSession(id: $id, input: $input) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const UPDATE_SESSION_STATUS = `\n mutation UpdateSessionStatus($id: ID!, $status: VibecontrolsSessionStatus!) {\n updateSessionStatus(id: $id, status: $status) { ${SESSION_FIELDS} }\n }\n`;\n\nexport const DELETE_SESSION = `\n mutation DeleteSession($id: ID!) { deleteSession(id: $id) }\n`;\n\nexport const KILL_SESSION = `\n mutation KillSession($id: ID!) { killSession(id: $id) }\n`;\n\n// ---------------------------------------------------------------------------\n// Session Sharing Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const SHARE_SESSION = `\n mutation ShareSession($input: ShareSessionInput!) {\n shareSession(input: $input) { ${SESSION_SHARE_FIELDS} }\n }\n`;\n\nexport const CREATE_SESSION_SHARE_LINK = `\n mutation CreateSessionShareLink($input: CreateSessionShareLinkInput!) {\n createSessionShareLink(input: $input) { ${SESSION_SHARE_LINK_FIELDS} }\n }\n`;\n\nexport const REVOKE_SESSION_SHARE = `\n mutation RevokeSessionShare($id: ID!) {\n revokeSessionShare(id: $id) { ${SESSION_SHARE_FIELDS} }\n }\n`;\n\nexport const REVOKE_SESSION_SHARE_LINK = `\n mutation RevokeSessionShareLink($id: ID!) {\n revokeSessionShareLink(id: $id) { ${SESSION_SHARE_LINK_FIELDS} }\n }\n`;\n\nexport const SESSION_SHARES = `\n query SessionShares($sessionId: ID!) {\n sessionShares(sessionId: $sessionId) { ${SESSION_SHARE_FIELDS} }\n }\n`;\n\nexport const SESSION_SHARE_LINKS = `\n query SessionShareLinks($sessionId: ID!) {\n sessionShareLinks(sessionId: $sessionId) { ${SESSION_SHARE_LINK_FIELDS} }\n }\n`;\n\nexport const SESSION_COLLABORATORS = `\n query SessionCollaborators($sessionId: ID!) {\n sessionCollaborators(sessionId: $sessionId) { userId hasControl joinedAt }\n }\n`;\n\nexport const SESSIONS_SHARED_WITH_ME = `\n query SessionsSharedWithMe($filter: SharedWithMeFilterInput, $pagination: PaginationInput) {\n sessionsSharedWithMe(filter: $filter, pagination: $pagination) {\n totalCount\n edges {\n cursor\n node { ${SESSION_SHARE_FIELDS} }\n }\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Note Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_NOTES = `\n query Notes($filter: VibecontrolsNoteFilterInput, $pagination: PaginationInput) {\n notes(filter: $filter, pagination: $pagination) {\n items { ${NOTE_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_NOTE = `\n query Note($id: ID!) {\n note(id: $id) { ${NOTE_FIELDS} }\n }\n`;\n\nexport const CREATE_NOTE = `\n mutation CreateNote($input: CreateVibecontrolsNoteInput!) {\n createNote(input: $input) { ${NOTE_FIELDS} }\n }\n`;\n\nexport const UPDATE_NOTE = `\n mutation UpdateNote($id: ID!, $input: UpdateVibecontrolsNoteInput!) {\n updateNote(id: $id, input: $input) { ${NOTE_FIELDS} }\n }\n`;\n\nexport const DELETE_NOTE = `\n mutation DeleteNote($id: ID!) { deleteNote(id: $id) }\n`;\n\nexport const SEARCH_NOTES = `\n query SearchNotes($query: String!, $vibeId: ID, $limit: Int) {\n searchNotes(query: $query, vibeId: $vibeId, limit: $limit) { ${NOTE_FIELDS} }\n }\n`;\n\nexport const PIN_NOTE = `\n mutation PinNote($id: ID!) {\n pinNote(id: $id) { ${NOTE_FIELDS} }\n }\n`;\n\nexport const UNPIN_NOTE = `\n mutation UnpinNote($id: ID!) {\n unpinNote(id: $id) { ${NOTE_FIELDS} }\n }\n`;\n\nexport const PINNED_NOTES = `\n query PinnedNotes($vibeId: ID) {\n pinnedNotes(vibeId: $vibeId) { ${NOTE_FIELDS} }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Configuration Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_CONFIGURATIONS = `\n query Configurations($filter: ConfigurationFilterInput!, $pagination: PaginationInput) {\n configurations(filter: $filter, pagination: $pagination) {\n items { ${CONFIG_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_CONFIGURATION = `\n query Configuration($key: String!, $scope: ConfigScope!, $scopeId: String) {\n configuration(key: $key, scope: $scope, scopeId: $scopeId) { ${CONFIG_FIELDS} }\n }\n`;\n\nexport const CONFIGURATIONS_BY_SCOPE = `\n query ConfigurationsByScope($scope: ConfigScope!, $scopeId: String) {\n configurationsByScope(scope: $scope, scopeId: $scopeId) { ${CONFIG_FIELDS} }\n }\n`;\n\nexport const SET_CONFIGURATION = `\n mutation SetConfiguration($key: String!, $scope: ConfigScope!, $scopeId: ID, $value: JSON!, $isSecret: Boolean) {\n setConfiguration(key: $key, scope: $scope, scopeId: $scopeId, value: $value, isSecret: $isSecret) { ${CONFIG_FIELDS} }\n }\n`;\n\nexport const DELETE_CONFIGURATION = `\n mutation DeleteConfiguration($key: String!, $scope: ConfigScope!, $scopeId: String) {\n deleteConfiguration(key: $key, scope: $scope, scopeId: $scopeId)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Webhook Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_WEBHOOKS = `\n query Webhooks($filter: WebhookFilterInput, $pagination: PaginationInput) {\n webhooks(filter: $filter, pagination: $pagination) {\n items { ${WEBHOOK_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_WEBHOOK = `\n query Webhook($id: ID!) {\n webhook(id: $id) { ${WEBHOOK_FIELDS} }\n }\n`;\n\nexport const CREATE_WEBHOOK = `\n mutation CreateWebhook($input: CreateWebhookInput!) {\n createWebhook(input: $input) { ${WEBHOOK_FIELDS} }\n }\n`;\n\nexport const UPDATE_WEBHOOK = `\n mutation UpdateWebhook($id: ID!, $input: UpdateWebhookInput!) {\n updateWebhook(id: $id, input: $input) { ${WEBHOOK_FIELDS} }\n }\n`;\n\nexport const DELETE_WEBHOOK = `\n mutation DeleteWebhook($id: ID!) { deleteWebhook(id: $id) }\n`;\n\nexport const TEST_WEBHOOK = `\n mutation TestWebhook($id: ID!) { testWebhook(id: $id) }\n`;\n\nexport const TRIGGER_WEBHOOK = `\n mutation TriggerWebhook($id: ID!, $payload: JSON) {\n triggerWebhook(id: $id, payload: $payload)\n }\n`;\n\nexport const RESET_WEBHOOK_FAILURES = `\n mutation ResetWebhookFailures($id: ID!) {\n resetWebhookFailures(id: $id) { ${WEBHOOK_FIELDS} }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Tunnel Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_TUNNELS = `\n query VibecontrolsAgentTunnels {\n vibecontrolsAgentTunnels {\n tunnels { ${TUNNEL_FIELDS} }\n agentStatuses { agentId agentName connected errorMessage tunnelUrl }\n error\n }\n }\n`;\n\nexport const CREATE_TUNNEL = `\n mutation CreateAgentTunnel($input: CreateAgentTunnelInput!) {\n createAgentTunnel(input: $input) { ${TUNNEL_FIELDS} }\n }\n`;\n\nexport const STOP_TUNNEL = `\n mutation StopAgentTunnel($agentId: ID!, $tunnelId: ID!) {\n stopAgentTunnel(agentId: $agentId, tunnelId: $tunnelId)\n }\n`;\n\nexport const DELETE_TUNNEL = `\n mutation DeleteAgentTunnel($agentId: ID!, $tunnelId: ID!) {\n deleteAgentTunnel(agentId: $agentId, tunnelId: $tunnelId)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// UI Session Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const GET_UI_SESSION = `\n query { uiSession { ${UI_SESSION_FIELDS} } }\n`;\n\nexport const SAVE_UI_SESSION = `\n mutation SaveUISession($input: SaveUISessionInput!) {\n saveUISession(input: $input) { ${UI_SESSION_FIELDS} }\n }\n`;\n\nexport const CLEAR_UI_SESSION = `\n mutation { clearUISession }\n`;\n\n// ---------------------------------------------------------------------------\n// AI Tool Event Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_AI_TOOL_EVENTS = `\n query AiToolEvents($filter: AiToolEventFilterInput, $pagination: PaginationInput) {\n aiToolEvents(filter: $filter, pagination: $pagination) {\n items { ${AI_TOOL_EVENT_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const RECENT_AI_TOOL_EVENTS = `\n query RecentAiToolEvents($agentId: ID!, $limit: Int) {\n recentAiToolEvents(agentId: $agentId, limit: $limit) { ${AI_TOOL_EVENT_FIELDS} }\n }\n`;\n\nexport const CREATE_AI_TOOL_EVENT = `\n mutation CreateAiToolEvent($input: CreateAiToolEventInput!) {\n createAiToolEvent(input: $input) { ${AI_TOOL_EVENT_FIELDS} }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Target Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_TARGETS = `\n query Targets($workspaceId: ID!, $filter: TargetFilterInput, $limit: Int, $offset: Int) {\n targets(workspaceId: $workspaceId, filter: $filter, limit: $limit, offset: $offset) {\n items { ${TARGET_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_TARGET = `\n query Target($id: ID!) {\n target(id: $id) { ${TARGET_FIELDS} }\n }\n`;\n\nexport const CREATE_TARGET = `\n mutation CreateTarget($workspaceId: ID!, $input: CreateTargetInput!) {\n createTarget(workspaceId: $workspaceId, input: $input) { ${TARGET_FIELDS} }\n }\n`;\n\nexport const UPDATE_TARGET = `\n mutation UpdateTarget($id: ID!, $input: UpdateTargetInput!) {\n updateTarget(id: $id, input: $input) { ${TARGET_FIELDS} }\n }\n`;\n\nexport const DELETE_TARGET = `\n mutation DeleteTarget($id: ID!) { deleteTarget(id: $id) }\n`;\n\nexport const TEST_TARGET = `\n query TestTarget($id: ID!) {\n testTarget(id: $id) { success error latencyMs }\n }\n`;\n\nexport const IMPORT_TARGETS_FROM_CONFIG = `\n mutation ImportTargetsFromConfig($agentId: ID!, $hosts: [ConfigHostInput!]!, $workspaceId: ID!) {\n importTargetsFromConfig(agentId: $agentId, hosts: $hosts, workspaceId: $workspaceId) { ${TARGET_FIELDS} }\n }\n`;\n\nexport const SCAN_SSH_CONFIG = `\n mutation ScanSSHConfig($agentId: ID!, $configPath: String) {\n scanSSHConfig(agentId: $agentId, configPath: $configPath) { ${TARGET_FIELDS} }\n }\n`;\n\nexport const INSTALL_AGENT_ON_TARGET = `\n mutation InstallAgentOnTarget($sourceAgentId: ID!, $targetId: ID!, $agentPort: Int) {\n installAgentOnTarget(sourceAgentId: $sourceAgentId, targetId: $targetId, agentPort: $agentPort) { success error }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// VibeDeck Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_VIBEDECKS = `\n query VibeDecks($filter: VibeDeckFilterInput, $pagination: PaginationInput) {\n vibeDecks(filter: $filter, pagination: $pagination) {\n items { ${VIBEDECK_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_VIBEDECK = `\n query VibeDeck($id: ID!) {\n vibeDeck(id: $id) { ${VIBEDECK_FIELDS} }\n }\n`;\n\nexport const DEFAULT_VIBEDECK = `\n query { defaultVibeDeck { ${VIBEDECK_FIELDS} } }\n`;\n\nexport const CREATE_VIBEDECK = `\n mutation CreateVibeDeck($input: CreateVibeDeckInput!) {\n createVibeDeck(input: $input) { ${VIBEDECK_FIELDS} }\n }\n`;\n\nexport const UPDATE_VIBEDECK = `\n mutation UpdateVibeDeck($id: ID!, $input: UpdateVibeDeckInput!) {\n updateVibeDeck(id: $id, input: $input) { ${VIBEDECK_FIELDS} }\n }\n`;\n\nexport const DELETE_VIBEDECK = `\n mutation DeleteVibeDeck($id: ID!) { deleteVibeDeck(id: $id) }\n`;\n\nexport const DUPLICATE_VIBEDECK = `\n mutation DuplicateVibeDeck($id: ID!, $name: String) {\n duplicateVibeDeck(id: $id, name: $name) { ${VIBEDECK_FIELDS} }\n }\n`;\n\nexport const SET_DEFAULT_VIBEDECK = `\n mutation SetDefaultVibeDeck($id: ID!) {\n setDefaultVibeDeck(id: $id) { ${VIBEDECK_FIELDS} }\n }\n`;\n\nexport const LIST_VIBEDECK_BUTTONS = `\n query VibeDeckButtons($filter: VibeDeckButtonFilterInput, $pagination: PaginationInput) {\n vibeDeckButtons(filter: $filter, pagination: $pagination) {\n items { ${VIBEDECK_BUTTON_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_VIBEDECK_BUTTON = `\n query VibeDeckButton($id: ID!) {\n vibeDeckButton(id: $id) { ${VIBEDECK_BUTTON_FIELDS} }\n }\n`;\n\nexport const CREATE_VIBEDECK_BUTTON = `\n mutation CreateVibeDeckButton($input: CreateVibeDeckButtonInput!) {\n createVibeDeckButton(input: $input) { ${VIBEDECK_BUTTON_FIELDS} }\n }\n`;\n\nexport const UPDATE_VIBEDECK_BUTTON = `\n mutation UpdateVibeDeckButton($id: ID!, $input: UpdateVibeDeckButtonInput!) {\n updateVibeDeckButton(id: $id, input: $input) { ${VIBEDECK_BUTTON_FIELDS} }\n }\n`;\n\nexport const DELETE_VIBEDECK_BUTTON = `\n mutation DeleteVibeDeckButton($id: ID!) { deleteVibeDeckButton(id: $id) }\n`;\n\nexport const EXECUTE_VIBEDECK_BUTTON = `\n mutation ExecuteVibeDeckButton($id: ID!, $agentId: ID!) {\n executeVibeDeckButton(id: $id, agentId: $agentId) { success output error }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Action Field Fragments\n// ---------------------------------------------------------------------------\n\nexport const ACTION_FIELDS = `\n id name description actionType sourceType triggerType\n command script webhookUrl workflowDefinition\n tags storeItemId storeVersion metadata\n workspaceId createdAt updatedAt deletedAt\n`;\n\nexport const ACTION_EXECUTION_FIELDS = `\n id actionId status input output error\n startedAt completedAt durationMs triggeredBy metadata\n workspaceId createdAt updatedAt\n`;\n\n// ---------------------------------------------------------------------------\n// Action Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_ACTIONS = `\n query Actions($filter: ActionFilterInput, $pagination: PaginationInput) {\n actions(filter: $filter, pagination: $pagination) {\n items { ${ACTION_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_ACTION = `\n query Action($id: ID!) {\n action(id: $id) { ${ACTION_FIELDS} }\n }\n`;\n\nexport const CREATE_ACTION = `\n mutation CreateAction($input: CreateActionInput!) {\n createAction(input: $input) { ${ACTION_FIELDS} }\n }\n`;\n\nexport const UPDATE_ACTION = `\n mutation UpdateAction($id: ID!, $input: UpdateActionInput!) {\n updateAction(id: $id, input: $input) { ${ACTION_FIELDS} }\n }\n`;\n\nexport const DELETE_ACTION = `\n mutation DeleteAction($id: ID!) { deleteAction(id: $id) }\n`;\n\nexport const DUPLICATE_ACTION = `\n mutation DuplicateAction($id: ID!, $name: String) {\n duplicateAction(id: $id, name: $name) { ${ACTION_FIELDS} }\n }\n`;\n\nexport const EXECUTE_ACTION = `\n mutation ExecuteAction($id: ID!, $input: ExecuteActionInput) {\n executeAction(id: $id, input: $input) { ${ACTION_EXECUTION_FIELDS} }\n }\n`;\n\nexport const INSTALL_ACTION_FROM_STORE = `\n mutation InstallActionFromStore($storeItemId: String!, $version: String, $name: String) {\n installActionFromStore(storeItemId: $storeItemId, version: $version, name: $name) { ${ACTION_FIELDS} }\n }\n`;\n\nexport const CANCEL_ACTION_EXECUTION = `\n mutation CancelActionExecution($id: ID!) {\n cancelActionExecution(id: $id) { ${ACTION_EXECUTION_FIELDS} }\n }\n`;\n\nexport const LIST_ACTION_EXECUTIONS = `\n query ActionExecutions($filter: ActionExecutionFilterInput, $pagination: PaginationInput) {\n actionExecutions(filter: $filter, pagination: $pagination) {\n items { ${ACTION_EXECUTION_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_ACTION_EXECUTION = `\n query ActionExecution($id: ID!) {\n actionExecution(id: $id) { ${ACTION_EXECUTION_FIELDS} }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Scheduled Job Field Fragments\n// ---------------------------------------------------------------------------\n\nexport const SCHEDULED_JOB_FIELDS = `\n id name scheduleType status actionId\n cronExpression timezone scheduledAt\n interval intervalUnit startDate endDate\n nextExecutionAt lastExecutionAt\n priority tags\n`;\n\n// ---------------------------------------------------------------------------\n// Scheduled Job Queries / Mutations (wspace-scheduler-svc via gateway)\n// ---------------------------------------------------------------------------\n\nexport const CREATE_SCHEDULED_JOB = `\n mutation CreateScheduledJob($workspaceId: ID!, $input: CreateScheduledJobInput!) {\n createScheduledJob(workspaceId: $workspaceId, input: $input) { ${SCHEDULED_JOB_FIELDS} }\n }\n`;\n\nexport const DELETE_SCHEDULED_JOB = `\n mutation DeleteScheduledJob($id: ID!) { deleteScheduledJob(id: $id) }\n`;\n\nexport const LIST_SCHEDULED_JOBS = `\n query ScheduledJobs($workspaceId: ID!, $filter: JobFilterInput, $pagination: SchedulerPaginationInput) {\n scheduledJobs(workspaceId: $workspaceId, filter: $filter, pagination: $pagination) {\n jobs { ${SCHEDULED_JOB_FIELDS} }\n total hasMore\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Docs Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_DOCS_SITES = `\n query DocsSites($filter: VibecontrolsDocsSiteFilterInput, $pagination: PaginationInput) {\n docsSites(filter: $filter, pagination: $pagination) {\n items { ${DOCS_SITE_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_DOCS_SITE = `\n query DocsSite($vibeId: ID!) {\n docsSite(vibeId: $vibeId) { ${DOCS_SITE_FIELDS} }\n }\n`;\n\nexport const CREATE_DOCS_SITE = `\n mutation CreateDocsSite($input: CreateVibecontrolsDocsSiteInput!) {\n createDocsSite(input: $input) { ${DOCS_SITE_FIELDS} }\n }\n`;\n\nexport const UPDATE_DOCS_SITE = `\n mutation UpdateDocsSite($id: ID!, $input: UpdateVibecontrolsDocsSiteInput!) {\n updateDocsSite(id: $id, input: $input) { ${DOCS_SITE_FIELDS} }\n }\n`;\n\nexport const DELETE_DOCS_SITE = `\n mutation DeleteDocsSite($id: ID!) { deleteDocsSite(id: $id) }\n`;\n\nexport const LIST_DOCS_PAGES = `\n query DocsPages($siteId: ID!, $filter: VibecontrolsDocsPageFilterInput) {\n docsPages(siteId: $siteId, filter: $filter) { ${DOCS_PAGE_FIELDS} }\n }\n`;\n\nexport const GET_DOCS_PAGE = `\n query DocsPage($id: ID!) {\n docsPage(id: $id) { ${DOCS_PAGE_FIELDS} }\n }\n`;\n\nexport const CREATE_DOCS_PAGE = `\n mutation CreateDocsPage($input: CreateVibecontrolsDocsPageInput!) {\n createDocsPage(input: $input) { ${DOCS_PAGE_FIELDS} }\n }\n`;\n\nexport const UPDATE_DOCS_PAGE = `\n mutation UpdateDocsPage($id: ID!, $input: UpdateVibecontrolsDocsPageInput!) {\n updateDocsPage(id: $id, input: $input) { ${DOCS_PAGE_FIELDS} }\n }\n`;\n\nexport const DELETE_DOCS_PAGE = `\n mutation DeleteDocsPage($id: ID!) { deleteDocsPage(id: $id) }\n`;\n\nexport const LIST_DOCS_REVISIONS = `\n query DocsRevisions($siteId: ID!, $pagination: PaginationInput) {\n docsRevisions(siteId: $siteId, pagination: $pagination) {\n items { ${DOCS_REVISION_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const COMPILE_DOCS_SITE = `\n mutation CompileDocsSite($siteId: ID!, $publish: Boolean) {\n compileDocsSite(siteId: $siteId, publish: $publish) { ${DOCS_REVISION_FIELDS} }\n }\n`;\n\nexport const PUBLISH_DOCS_REVISION = `\n mutation PublishDocsRevision($revisionId: ID!) {\n publishDocsRevision(revisionId: $revisionId) { ${DOCS_REVISION_FIELDS} }\n }\n`;\n\nexport const ROLLBACK_DOCS_REVISION = `\n mutation RollbackDocsRevision($siteId: ID!, $revisionId: ID!) {\n rollbackDocsRevision(siteId: $siteId, revisionId: $revisionId) { ${DOCS_REVISION_FIELDS} }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Audit Log Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const LIST_AUDIT_LOGS = `\n query VibeAuditLogs($filter: VibeAuditLogFilterInput, $pagination: PaginationInput) {\n vibeAuditLogs(filter: $filter, pagination: $pagination) {\n items { ${AUDIT_LOG_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_AUDIT_LOG = `\n query VibeAuditLog($id: ID!) {\n vibeAuditLog(id: $id) { ${AUDIT_LOG_FIELDS} }\n }\n`;\n\nexport const AUDIT_LOG_STATS = `\n query VibeAuditLogStats($filter: VibeAuditLogFilterInput) {\n vibeAuditLogStats(filter: $filter) {\n totalLogs\n logsByAction { action count }\n logsByResourceType { resourceType count }\n logsByStatus { status count }\n }\n }\n`;\n\nexport const EXPORT_AUDIT_LOGS = `\n mutation ExportVibeAuditLogs($filter: VibeAuditLogFilterInput, $format: String) {\n exportVibeAuditLogs(filter: $filter, format: $format)\n }\n`;\n\nexport const DELETE_AUDIT_LOG = `\n mutation DeleteVibeAuditLog($id: ID!, $reason: String) {\n deleteVibeAuditLog(id: $id, reason: $reason)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Auth Operations (Global Gateway)\n// ---------------------------------------------------------------------------\n\nexport const MY_WORKSPACES = `\n query MyWorkspaces($limit: Int) {\n myWorkspaces(limit: $limit) {\n items { id name slug tenantId organizationId }\n }\n }\n`;\n\nexport const ISSUE_WORKSPACE_TOKEN = `\n mutation IssueWorkspaceToken($input: IssueWorkspaceTokenInput!) {\n issueWorkspaceToken(input: $input) {\n success token expiresAt scopes\n error { code message }\n }\n }\n`;\n\nexport const REFRESH_TOKEN = `\n mutation RefreshToken($token: String!) {\n refreshToken(token: $token) { accessToken refreshToken expiresIn }\n }\n`;\n\nexport const SIGN_OUT = `mutation { signOut }`;\n\n// ---------------------------------------------------------------------------\n// Analytics\n// ---------------------------------------------------------------------------\n\n// ---------------------------------------------------------------------------\n// Sandbox Queries / Mutations\n// ---------------------------------------------------------------------------\n\nexport const SANDBOX_FIELDS = `\n id name description template mode status\n crdName podName namespace runtimeClass\n containers { name image ports { containerPort name protocol } env { name value } command args resources { requestsCpu requestsMemory limitsCpu limitsMemory } }\n containerStatuses { name ready port restartCount }\n resources { cpuRequest cpuLimit memoryRequest memoryLimit }\n storage { mode sizeGi mountPath retainOnDelete }\n network { exposeService internalUrl containerUrls serviceName }\n ttlSeconds expiresAt metadata errorMessage\n workspaceId createdBy createdAt updatedAt stoppedAt\n`;\n\nexport const LIST_SANDBOXES = `\n query ListSandboxes($filter: SandboxFilterInput, $pagination: SandboxPaginationInput, $context: ContextInput!) {\n listSandboxes(filter: $filter, pagination: $pagination, context: $context) {\n items { ${SANDBOX_FIELDS} }\n total hasMore\n }\n }\n`;\n\nexport const GET_SANDBOX = `\n query GetSandbox($id: ID!, $context: ContextInput!) {\n getSandbox(id: $id, context: $context) { ${SANDBOX_FIELDS} }\n }\n`;\n\nexport const CREATE_SANDBOX = `\n mutation CreateSandbox($input: CreateSandboxInput!) {\n createSandbox(input: $input) { ${SANDBOX_FIELDS} }\n }\n`;\n\nexport const DELETE_SANDBOX = `\n mutation DeleteSandbox($id: ID!, $context: ContextInput!) {\n deleteSandbox(id: $id, context: $context)\n }\n`;\n\nexport const STOP_SANDBOX = `\n mutation StopSandbox($id: ID!, $context: ContextInput!) {\n stopSandbox(id: $id, context: $context) { ${SANDBOX_FIELDS} }\n }\n`;\n\nexport const EXTEND_SANDBOX_TTL = `\n mutation ExtendSandboxTTL($id: ID!, $additionalSeconds: Int!, $context: ContextInput!) {\n extendSandboxTTL(id: $id, additionalSeconds: $additionalSeconds, context: $context) { ${SANDBOX_FIELDS} }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Analytics\n// ---------------------------------------------------------------------------\n\nexport const VIBECONTROLS_ANALYTICS = `\n query VibecontrolsAnalytics($input: VibecontrolsAnalyticsInput!) {\n vibecontrolsAnalytics(input: $input) {\n agents { total active inactive staleHeartbeatCount byPlatform { key count } byArchitecture { key count } createdOverTime { timestamp value } }\n targets { total connectionCount byType { key count } byStatus { key count } }\n sessions { total active avgDurationMs totalCollaborators totalShares totalShareLinks byType { key count } byStatus { key count } createdOverTime { timestamp value } }\n vibes { total withAgent withoutAgent byType { key count } byStatus { key count } createdOverTime { timestamp value } }\n actions { total totalExecutions successRate avgDurationMs byActionType { key count } byTriggerType { key count } bySourceType { key count } executionsByStatus { key count } executionsOverTime { timestamp value } }\n webhooks { total active inactive totalDeliveries totalFailures deliverySuccessRate }\n aiEvents { total bySource { key count } byEventType { key count } eventsOverTime { timestamp value } }\n vibeDecks { totalDecks totalButtons buttonsByActionType { key count } }\n audit { total byAction { key count } byResourceType { key count } byStatus { key count } eventsOverTime { timestamp value } }\n docs { totalSites totalPages totalRevisions buildSuccessRate totalBuildImages pagesByStatus { key count } revisionsByStatus { key count } }\n notes { total pinned unpinned createdOverTime { timestamp value } }\n configurations { total secretCount byScope { key count } }\n executionTimeMs\n cached\n }\n }\n`;\n"]}
@@ -13,6 +13,35 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
13
  var fetch2__default = /*#__PURE__*/_interopDefault(fetch2);
14
14
 
15
15
  // src/modules/auth/tools.ts
16
+ async function clientCredentialsFlow(globalEndpoint, clientId, clientSecret, scopes) {
17
+ const query = `
18
+ mutation AuthenticateApp($input: AuthenticateAppInput!) {
19
+ authenticateApp(input: $input) {
20
+ accessToken tokenType expiresIn scopes
21
+ }
22
+ }
23
+ `;
24
+ const response = await fetch2__default.default(globalEndpoint, {
25
+ method: "POST",
26
+ headers: { "Content-Type": "application/json" },
27
+ body: JSON.stringify({
28
+ query,
29
+ variables: { input: { clientId, clientSecret, scopes } }
30
+ })
31
+ });
32
+ if (!response.ok) {
33
+ const text = await response.text().catch(() => "Unknown error");
34
+ throw new Error(`App authentication failed (${response.status}): ${text}`);
35
+ }
36
+ const data = await response.json();
37
+ if (data.errors?.length) {
38
+ throw new Error(`App authentication failed: ${data.errors[0]?.message ?? "unknown error"}`);
39
+ }
40
+ if (!data.data?.authenticateApp?.accessToken) {
41
+ throw new Error("App authentication failed: no access token returned");
42
+ }
43
+ return data.data.authenticateApp;
44
+ }
16
45
  async function issueWorkspaceToken(workspaceEndpoint, authToken, workspaceId, organizationId) {
17
46
  const query = `
18
47
  mutation IssueWorkspaceToken($input: IssueWorkspaceTokenInput!) {
@@ -509,6 +538,293 @@ function registerAuthTools(server, ctx, track) {
509
538
  );
510
539
  }
511
540
 
541
+ // src/modules/auth/operations.ts
542
+ var SIGN_UP = `
543
+ mutation SignUp($input: SignUpInput!) {
544
+ signUp(input: $input) {
545
+ user { id email username }
546
+ accessToken
547
+ refreshToken
548
+ expiresIn
549
+ }
550
+ }
551
+ `;
552
+ var SIGN_IN = `
553
+ mutation SignIn($input: SignInInput!) {
554
+ signIn(input: $input) {
555
+ user { id email username }
556
+ accessToken
557
+ refreshToken
558
+ expiresIn
559
+ }
560
+ }
561
+ `;
562
+ var REFRESH_TOKEN_OP = `
563
+ mutation RefreshToken($token: String!) {
564
+ refreshToken(token: $token) {
565
+ user { id email username }
566
+ accessToken
567
+ refreshToken
568
+ expiresIn
569
+ }
570
+ }
571
+ `;
572
+ var AUTHENTICATE_APP = `
573
+ mutation AuthenticateApp($input: AuthenticateAppInput!) {
574
+ authenticateApp(input: $input) {
575
+ accessToken
576
+ tokenType
577
+ expiresIn
578
+ scopes
579
+ }
580
+ }
581
+ `;
582
+ var ME = `
583
+ query Me {
584
+ me { id email username isActive emailVerified }
585
+ }
586
+ `;
587
+
588
+ // src/modules/auth/more-tools.ts
589
+ function err(ctx, name, message, error) {
590
+ ctx.logger.error(`${name} failed`, { error });
591
+ return errorResult(`${message}: ${error instanceof Error ? error.message : String(error)}`);
592
+ }
593
+ function persistOAuthTokens(ctx, payload) {
594
+ const existing = ctx.auth.read() ?? { accessToken: "", refreshToken: "" };
595
+ ctx.auth.write({
596
+ ...existing,
597
+ accessToken: payload.accessToken,
598
+ refreshToken: payload.refreshToken,
599
+ expiresAt: Date.now() + payload.expiresIn * 1e3,
600
+ authMethod: "device_code"
601
+ });
602
+ ctx.gql.reset();
603
+ }
604
+ function registerAuthMoreTools(server, ctx, track) {
605
+ server.registerTool(
606
+ track(mcpToolName(ctx.productName, "auth_sign_up")),
607
+ {
608
+ title: "Sign Up",
609
+ description: "Register a new account via email/username/password and immediately sign in. Persists access + refresh tokens. Returns { user, accessToken, refreshToken, expiresIn }.",
610
+ inputSchema: {
611
+ email: zod.z.string().describe("Email address for the new account"),
612
+ username: zod.z.string().describe("Username (must be unique)"),
613
+ password: zod.z.string().describe("Password (caller is responsible for strength policy)"),
614
+ firstName: zod.z.string().optional().describe("Optional first name"),
615
+ lastName: zod.z.string().optional().describe("Optional last name")
616
+ }
617
+ },
618
+ async ({ email, username, password, firstName, lastName }) => {
619
+ try {
620
+ const input = { email, username, password };
621
+ if (firstName !== void 0) input.firstName = firstName;
622
+ if (lastName !== void 0) input.lastName = lastName;
623
+ const d = await ctx.gql.global.request(SIGN_UP, { input });
624
+ persistOAuthTokens(ctx, d.signUp);
625
+ return jsonResult({
626
+ status: "authenticated",
627
+ user: d.signUp.user,
628
+ accessToken: d.signUp.accessToken,
629
+ refreshToken: d.signUp.refreshToken,
630
+ expiresIn: d.signUp.expiresIn
631
+ });
632
+ } catch (e) {
633
+ return err(ctx, "auth_sign_up", "Sign up failed", e);
634
+ }
635
+ }
636
+ );
637
+ server.registerTool(
638
+ track(mcpToolName(ctx.productName, "auth_sign_in")),
639
+ {
640
+ title: "Sign In",
641
+ description: "Sign in with username + password (server-side credential flow, distinct from the device-code `auth_login`). Persists access + refresh tokens. Returns { user, accessToken, refreshToken, expiresIn }.",
642
+ inputSchema: {
643
+ username: zod.z.string().describe("Username or email"),
644
+ password: zod.z.string().describe("Password")
645
+ }
646
+ },
647
+ async ({ username, password }) => {
648
+ try {
649
+ const d = await ctx.gql.global.request(SIGN_IN, {
650
+ input: { username, password }
651
+ });
652
+ persistOAuthTokens(ctx, d.signIn);
653
+ return jsonResult({
654
+ status: "authenticated",
655
+ user: d.signIn.user,
656
+ accessToken: d.signIn.accessToken,
657
+ refreshToken: d.signIn.refreshToken,
658
+ expiresIn: d.signIn.expiresIn
659
+ });
660
+ } catch (e) {
661
+ return err(ctx, "auth_sign_in", "Sign in failed", e);
662
+ }
663
+ }
664
+ );
665
+ server.registerTool(
666
+ track(mcpToolName(ctx.productName, "auth_refresh_token")),
667
+ {
668
+ title: "Refresh Token",
669
+ description: "Exchange the stored refreshToken for a fresh access + refresh pair. The gql client auto-refreshes when tokens are near expiry; use this tool only when you need to force a refresh now. Persists new tokens. Returns the new { accessToken, expiresIn }.",
670
+ inputSchema: {}
671
+ },
672
+ async () => {
673
+ try {
674
+ const existing = ctx.auth.read();
675
+ if (!existing?.refreshToken) {
676
+ return errorResult(
677
+ "No refresh token available. Sign in first via auth_sign_in / auth_sign_up / auth_login."
678
+ );
679
+ }
680
+ const d = await ctx.gql.global.request(
681
+ REFRESH_TOKEN_OP,
682
+ {
683
+ token: existing.refreshToken
684
+ }
685
+ );
686
+ persistOAuthTokens(ctx, d.refreshToken);
687
+ return jsonResult({
688
+ status: "refreshed",
689
+ accessToken: d.refreshToken.accessToken,
690
+ expiresIn: d.refreshToken.expiresIn
691
+ });
692
+ } catch (e) {
693
+ return err(ctx, "auth_refresh_token", "Token refresh failed", e);
694
+ }
695
+ }
696
+ );
697
+ server.registerTool(
698
+ track(mcpToolName(ctx.productName, "auth_get_current_user")),
699
+ {
700
+ title: "Get Current User",
701
+ description: "Fetch the authenticated user via the SDK `me` query (id, email, username, isActive, emailVerified). Lighter than auth_profile_get and matches the SDK shape. Use auth_status to check authentication state locally without a network round-trip.",
702
+ inputSchema: {}
703
+ },
704
+ async () => {
705
+ try {
706
+ const d = await ctx.gql.global.request(ME);
707
+ return jsonResult(d.me);
708
+ } catch (e) {
709
+ return err(ctx, "auth_get_current_user", "Failed to fetch current user", e);
710
+ }
711
+ }
712
+ );
713
+ server.registerTool(
714
+ track(mcpToolName(ctx.productName, "auth_authenticate_app")),
715
+ {
716
+ title: "Authenticate App",
717
+ description: "Machine-to-machine auth via the `authenticateApp` GraphQL mutation. Pass an OAuth app client_id + client_secret (and optional scopes) to receive an access token; persists token for subsequent calls. Returns { accessToken, tokenType, expiresIn, scopes }.",
718
+ inputSchema: {
719
+ clientId: zod.z.string().describe("OAuth app clientId"),
720
+ clientSecret: zod.z.string().describe("OAuth app clientSecret (shown only once on app creation)"),
721
+ scopes: zod.z.array(zod.z.string()).optional().describe("Optional list of scope strings to request")
722
+ }
723
+ },
724
+ async ({ clientId, clientSecret, scopes }) => {
725
+ try {
726
+ const input = { clientId, clientSecret };
727
+ if (scopes !== void 0) input.scopes = scopes;
728
+ const d = await ctx.gql.global.request(
729
+ AUTHENTICATE_APP,
730
+ { input }
731
+ );
732
+ const result = d.authenticateApp;
733
+ const existing = ctx.auth.read() ?? { accessToken: "", refreshToken: "" };
734
+ ctx.auth.write({
735
+ ...existing,
736
+ accessToken: result.accessToken,
737
+ refreshToken: "",
738
+ expiresAt: Date.now() + result.expiresIn * 1e3,
739
+ authMethod: "client_credentials",
740
+ clientId,
741
+ clientSecret
742
+ });
743
+ ctx.gql.reset();
744
+ return jsonResult({
745
+ status: "authenticated",
746
+ accessToken: result.accessToken,
747
+ tokenType: result.tokenType,
748
+ expiresIn: result.expiresIn,
749
+ scopes: result.scopes
750
+ });
751
+ } catch (e) {
752
+ return err(ctx, "auth_authenticate_app", "App authentication failed", e);
753
+ }
754
+ }
755
+ );
756
+ server.registerTool(
757
+ track(mcpToolName(ctx.productName, "auth_login_with_api_key")),
758
+ {
759
+ title: "Login with API Key",
760
+ description: 'Authenticate with a pre-issued API key (headless service mode). The key is stored locally and sent as `X-API-Key` on every gateway request; no network call is made by this tool. Use auth_status to verify. Returns { status: "authenticated", method: "api_key" }.',
761
+ inputSchema: {
762
+ apiKey: zod.z.string().describe("Pre-issued API key (e.g. from auth_api_keys_create)")
763
+ }
764
+ },
765
+ async ({ apiKey }) => {
766
+ try {
767
+ const existing = ctx.auth.read() ?? { accessToken: "", refreshToken: "" };
768
+ ctx.auth.write({
769
+ ...existing,
770
+ apiKey,
771
+ authMethod: "api_key"
772
+ });
773
+ ctx.gql.reset();
774
+ return jsonResult({
775
+ status: "authenticated",
776
+ method: "api_key",
777
+ message: "API key stored. Subsequent calls will use X-API-Key."
778
+ });
779
+ } catch (e) {
780
+ return err(ctx, "auth_login_with_api_key", "Failed to set API key", e);
781
+ }
782
+ }
783
+ );
784
+ server.registerTool(
785
+ track(mcpToolName(ctx.productName, "auth_login_with_client_credentials")),
786
+ {
787
+ title: "Login with Client Credentials",
788
+ description: "OAuth2 client_credentials grant (REST against oidcIssuer/token). Equivalent to auth_authenticate_app but uses the OIDC token endpoint instead of the GraphQL mutation; prefer auth_authenticate_app inside the platform. Persists the issued token. Returns { accessToken, expiresIn, scopes }.",
789
+ inputSchema: {
790
+ clientId: zod.z.string().describe("OAuth app clientId"),
791
+ clientSecret: zod.z.string().describe("OAuth app clientSecret"),
792
+ scopes: zod.z.array(zod.z.string()).optional().describe("Optional list of scope strings")
793
+ }
794
+ },
795
+ async ({ clientId, clientSecret, scopes }) => {
796
+ try {
797
+ const cfg = ctx.config.read();
798
+ const result = await clientCredentialsFlow(
799
+ cfg.globalEndpoint,
800
+ clientId,
801
+ clientSecret,
802
+ scopes
803
+ );
804
+ const existing = ctx.auth.read() ?? { accessToken: "", refreshToken: "" };
805
+ ctx.auth.write({
806
+ ...existing,
807
+ accessToken: result.accessToken,
808
+ refreshToken: "",
809
+ expiresAt: Date.now() + result.expiresIn * 1e3,
810
+ authMethod: "client_credentials",
811
+ clientId,
812
+ clientSecret
813
+ });
814
+ ctx.gql.reset();
815
+ return jsonResult({
816
+ status: "authenticated",
817
+ accessToken: result.accessToken,
818
+ expiresIn: result.expiresIn,
819
+ scopes: result.scopes
820
+ });
821
+ } catch (e) {
822
+ return err(ctx, "auth_login_with_client_credentials", "Client credentials login failed", e);
823
+ }
824
+ }
825
+ );
826
+ }
827
+
512
828
  // src/modules/auth/index.ts
513
829
  var authModule = {
514
830
  id: "auth",
@@ -522,6 +838,7 @@ var authModule = {
522
838
  return n;
523
839
  };
524
840
  registerAuthTools(server, ctx, track);
841
+ registerAuthMoreTools(server, ctx, track);
525
842
  return { tools, resources: [], prompts: [] };
526
843
  }
527
844
  };