@burdenoff/mcp-libs 2026.628.1 → 2026.703.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 (37) hide show
  1. package/dist/modules/adaptercloud/index.cjs +1841 -0
  2. package/dist/modules/adaptercloud/index.cjs.map +1 -0
  3. package/dist/modules/adaptercloud/index.d.cts +8 -0
  4. package/dist/modules/adaptercloud/index.d.ts +8 -0
  5. package/dist/modules/adaptercloud/index.js +1780 -0
  6. package/dist/modules/adaptercloud/index.js.map +1 -0
  7. package/dist/modules/atheletebridge/index.cjs +1707 -0
  8. package/dist/modules/atheletebridge/index.cjs.map +1 -0
  9. package/dist/modules/atheletebridge/index.d.cts +8 -0
  10. package/dist/modules/atheletebridge/index.d.ts +8 -0
  11. package/dist/modules/atheletebridge/index.js +1646 -0
  12. package/dist/modules/atheletebridge/index.js.map +1 -0
  13. package/dist/modules/coolandlovely/index.cjs +1935 -0
  14. package/dist/modules/coolandlovely/index.cjs.map +1 -0
  15. package/dist/modules/coolandlovely/index.d.cts +8 -0
  16. package/dist/modules/coolandlovely/index.d.ts +8 -0
  17. package/dist/modules/coolandlovely/index.js +1874 -0
  18. package/dist/modules/coolandlovely/index.js.map +1 -0
  19. package/dist/modules/hookmovies/index.cjs +2024 -0
  20. package/dist/modules/hookmovies/index.cjs.map +1 -0
  21. package/dist/modules/hookmovies/index.d.cts +8 -0
  22. package/dist/modules/hookmovies/index.d.ts +8 -0
  23. package/dist/modules/hookmovies/index.js +1963 -0
  24. package/dist/modules/hookmovies/index.js.map +1 -0
  25. package/dist/modules/labsofscience/index.cjs +2039 -0
  26. package/dist/modules/labsofscience/index.cjs.map +1 -0
  27. package/dist/modules/labsofscience/index.d.cts +8 -0
  28. package/dist/modules/labsofscience/index.d.ts +8 -0
  29. package/dist/modules/labsofscience/index.js +1978 -0
  30. package/dist/modules/labsofscience/index.js.map +1 -0
  31. package/dist/modules/subscriberbot/index.cjs +2037 -0
  32. package/dist/modules/subscriberbot/index.cjs.map +1 -0
  33. package/dist/modules/subscriberbot/index.d.cts +8 -0
  34. package/dist/modules/subscriberbot/index.d.ts +8 -0
  35. package/dist/modules/subscriberbot/index.js +1976 -0
  36. package/dist/modules/subscriberbot/index.js.map +1 -0
  37. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/errors.ts","../../../src/core/result.ts","../../../src/core/tool-name.ts","../../../src/modules/hookmovies/operations.ts","../../../src/modules/hookmovies/tools/shared.ts","../../../src/modules/hookmovies/tools/titles.ts","../../../src/modules/hookmovies/tools/studios.ts","../../../src/modules/hookmovies/tools/people.ts","../../../src/modules/hookmovies/tools/episodes.ts","../../../src/modules/hookmovies/tools/productions.ts","../../../src/modules/hookmovies/tools/auditions.ts","../../../src/modules/hookmovies/tools/reviews.ts","../../../src/modules/hookmovies/tools/rights.ts","../../../src/modules/hookmovies/tools/entitlements.ts","../../../src/modules/hookmovies/tools/lists.ts","../../../src/modules/hookmovies/tools/progress.ts","../../../src/modules/hookmovies/tools/health.ts","../../../src/modules/hookmovies/resources.ts","../../../src/modules/hookmovies/prompts.ts","../../../src/modules/hookmovies/index.ts"],"names":["z"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Error classes for MCP SDK.\n *\n * Modules MUST throw these instead of throwing raw Errors. The registerTool\n * wrapper in result.ts catches and maps them to MCP-protocol-compliant\n * `{ isError: true, content: [...] }` responses.\n *\n * Throwing past the wrapper to the protocol surfaces as JSON-RPC -32603 to\n * the client and is a protocol bug.\n */\n\nexport class McpUserError extends Error {\n public readonly hint: string | undefined;\n\n constructor(message: string, opts?: { hint?: string }) {\n super(message);\n this.name = 'McpUserError';\n this.hint = opts?.hint;\n }\n}\n\nexport class McpAuthError extends McpUserError {\n constructor(message: string, opts?: { hint?: string }) {\n super(message, {\n hint: opts?.hint ?? 'Run the auth_login tool to authenticate.',\n });\n this.name = 'McpAuthError';\n }\n}\n\nexport class McpInternalError extends Error {\n public override readonly cause: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = 'McpInternalError';\n this.cause = cause;\n }\n}\n","/**\n * MCP tool result helpers + central handler.\n *\n * Modules NEVER call server.registerTool directly — they use registerTool()\n * from this module so the central try/catch wraps the handler and:\n * - maps thrown McpUserError / McpAuthError / McpInternalError to\n * MCP-protocol-compliant `{ isError: true, content: [...] }` shapes\n * - threads `_meta.progressToken` into ctx.progress for long ops\n * - emits a structured log line on every error\n * - never leaks `cause` from McpInternalError to the client\n *\n * This is the analog of cli-sdk's createProgram() central error handler.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { ZodRawShape } from 'zod';\nimport type { McpContext } from './context.js';\nimport { McpAuthError, McpInternalError, McpUserError } from './errors.js';\n\nexport interface ToolTextContent {\n type: 'text';\n text: string;\n [k: string]: unknown;\n}\n\nexport interface ToolResult {\n content: ToolTextContent[];\n isError?: boolean;\n structuredContent?: Record<string, unknown>;\n [k: string]: unknown;\n}\n\nexport interface ToolMeta {\n progressToken?: string | number;\n}\n\n/**\n * Build a successful tool result with JSON content (pretty-printed).\n */\nexport function jsonResult(data: unknown, structured?: Record<string, unknown>): ToolResult {\n const result: ToolResult = {\n content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],\n };\n if (structured !== undefined) {\n result.structuredContent = structured;\n }\n return result;\n}\n\n/**\n * Build a successful tool result with plain text content.\n */\nexport function textResult(text: string): ToolResult {\n return { content: [{ type: 'text', text }] };\n}\n\n/**\n * Build an error tool result. Honors MCP's `{ isError: true, content }` shape.\n * Optional hint is appended on a new line so the LLM can react.\n */\nexport function errorResult(message: string, hint?: string): ToolResult {\n const text = hint ? `${message}\\n\\nHint: ${hint}` : message;\n return { content: [{ type: 'text', text }], isError: true };\n}\n\nexport interface ToolMetadata {\n title: string;\n description: string;\n inputSchema?: ZodRawShape;\n}\n\nexport type ToolHandler<TArgs = Record<string, unknown>> = (\n args: TArgs,\n ctx: McpContext,\n meta: ToolMeta,\n) => Promise<unknown>;\n\n/**\n * Register a tool with the central error wrapper.\n *\n * The handler returns a plain value or void. The wrapper:\n * - wraps non-undefined returns in jsonResult()\n * - if the value already looks like a ToolResult (has `content`), passes through\n * - catches McpAuthError / McpUserError / McpInternalError / generic Error\n * - logs every error via ctx.logger.error\n */\nexport function registerTool<TArgs extends Record<string, unknown>>(\n server: McpServer,\n ctx: McpContext,\n name: string,\n metadata: ToolMetadata,\n handler: ToolHandler<TArgs>,\n): void {\n const sdkConfig = {\n title: metadata.title,\n description: metadata.description,\n ...(metadata.inputSchema ? { inputSchema: metadata.inputSchema } : {}),\n };\n\n // The MCP SDK's registerTool signature is `(name, config, handler)`. The\n // handler arity depends on whether inputSchema is present (1-arg without,\n // 2-arg with). We accept a unified handler shape and dispatch at runtime.\n // The SDK's typing is strict and conditional on the inputSchema generic;\n // bypass with a cast since runtime acceptance is unconditional.\n const wrapped = async (...callbackArgs: unknown[]): Promise<ToolResult> => {\n const hasArgs = callbackArgs.length === 2;\n const args = (hasArgs ? callbackArgs[0] : {}) as TArgs;\n const extra = (hasArgs ? callbackArgs[1] : callbackArgs[0]) as\n | { _meta?: { progressToken?: string | number } }\n | undefined;\n\n const progressToken = extra?._meta?.progressToken;\n const meta: ToolMeta = progressToken !== undefined ? { progressToken } : {};\n\n try {\n const result = await handler(args, ctx, meta);\n if (isToolResult(result)) return result;\n if (result === undefined) return textResult('OK');\n return jsonResult(result);\n } catch (error) {\n return mapErrorToResult(error, ctx, name);\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (server as any).registerTool(name, sdkConfig, wrapped);\n}\n\nfunction isToolResult(value: unknown): value is ToolResult {\n return (\n !!value &&\n typeof value === 'object' &&\n 'content' in value &&\n Array.isArray((value as ToolResult).content)\n );\n}\n\nfunction mapErrorToResult(error: unknown, ctx: McpContext, toolName: string): ToolResult {\n if (error instanceof McpAuthError) {\n ctx.logger.warn(`${toolName}: auth required`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpUserError) {\n ctx.logger.info(`${toolName}: user error`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpInternalError) {\n ctx.logger.error(`${toolName}: internal error`, {\n message: error.message,\n cause: stringifyCause(error.cause),\n });\n return errorResult(`Internal error in ${toolName}.`);\n }\n const message = error instanceof Error ? error.message : String(error);\n ctx.logger.error(`${toolName}: unhandled error`, { message });\n return errorResult(`${toolName}: ${message}`);\n}\n\nfunction stringifyCause(cause: unknown): string | undefined {\n if (cause === undefined || cause === null) return undefined;\n if (cause instanceof Error) return cause.message;\n try {\n return JSON.stringify(cause);\n } catch {\n return String(cause);\n }\n}\n","/**\n * Tool / resource / prompt naming helpers.\n *\n * Mandatory product prefix avoids collisions when Claude Desktop runs\n * multiple MCP servers concurrently (typical setup is ~6).\n *\n * Tool names are capped at 63 characters — Claude Desktop pre-1.x\n * truncated at 64 in some versions.\n */\n\nimport { McpInternalError } from './errors.js';\n\nconst MAX_TOOL_NAME_LENGTH = 63;\n\nfunction assertSafeName(name: string, kind: 'tool' | 'resource' | 'prompt'): string {\n if (kind === 'tool' && name.length > MAX_TOOL_NAME_LENGTH) {\n throw new McpInternalError(\n `Tool name '${name}' exceeds ${MAX_TOOL_NAME_LENGTH} characters (some MCP clients truncate at 64).`,\n );\n }\n return name;\n}\n\n/**\n * Build a tool name. Format: `<productName>_<...parts>` (snake_case).\n * Example: mcpToolName('vibecontrols', 'vibes', 'list') -> 'vibecontrols_vibes_list'\n */\nexport function mcpToolName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpToolName: productName is required');\n }\n const name = [productName, ...parts].filter(Boolean).join('_');\n return assertSafeName(name, 'tool');\n}\n\n/**\n * Build a resource URI. Format: `<productName>://<...parts>`.\n * Example: mcpResourceUri('vibecontrols', 'schema') -> 'vibecontrols://schema'\n */\nexport function mcpResourceUri(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpResourceUri: productName is required');\n }\n return `${productName}://${parts.filter(Boolean).join('/')}`;\n}\n\n/**\n * Build a prompt name. Format: `<productName>-<...parts>` (kebab-case).\n * Example: mcpPromptName('vibecontrols', 'setup') -> 'vibecontrols-setup'\n */\nexport function mcpPromptName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpPromptName: productName is required');\n }\n return [productName, ...parts].filter(Boolean).join('-');\n}\n\nexport const TOOL_NAME_LIMIT = MAX_TOOL_NAME_LENGTH;\n","/**\n * Centralized GraphQL operations for the HookMovies MCP module.\n *\n * HookMovies is the multi-language global streaming + production network\n * (commerce-template product, prod-live backend). Backend subgraph:\n * ~/products/hookmovies/wspace-hookmovies-svc/ (Hive service name `hookmovies`).\n *\n * All operations run against the WORKSPACE gateway. Workspace scoping is\n * carried by the gateway headers (x-workspace-id / X-Workspace-Authorization)\n * issued by the auth module — HookMovies inputs do NOT carry a workspaceId.\n * Self-scoped fields (lists, watch progress, entitlements, audition\n * applications) are filtered by ctx.actorId at the resolver.\n *\n * Every root field in the subgraph is consistently `hok`-prefixed; the helpers\n * below call each field by its REAL name verbatim.\n *\n * Uses template-string interpolation (not gql tagged fragments) to match the\n * canonical vibecontrols / kadaikodi modules' operations files.\n */\n\n// ---------------------------------------------------------------------------\n// Field fragments\n// ---------------------------------------------------------------------------\n\nexport const PAGE_INFO = `pageInfo { cursor hasMore }`;\n\nexport const TITLE_FIELDS = `\n id title slug type status synopsis genres tags originalLanguage originCountry\n releaseDate releaseYear runtimeMinutes certification aiDisclosure externalIds\n studioId workspaceId createdAt updatedAt\n`;\n\nexport const STUDIO_FIELDS = `\n id name slug description country websiteUrl isVerified tags\n workspaceId createdAt updatedAt\n`;\n\nexport const PERSON_FIELDS = `\n id name biography knownFor primaryLanguage portfolioRef tags\n workspaceId createdAt updatedAt\n`;\n\nexport const CREDIT_FIELDS = `\n id titleId personId role characterName billingOrder\n workspaceId createdAt updatedAt\n`;\n\nexport const SEASON_FIELDS = `\n id titleId number name synopsis airDate workspaceId createdAt updatedAt\n`;\n\nexport const EPISODE_FIELDS = `\n id titleId seasonId number name synopsis runtimeMinutes airDate\n file { id } workspaceId createdAt updatedAt\n`;\n\nexport const PRODUCTION_FIELDS = `\n id title status logline synopsis tags studioId producerId currency\n budgetMinorUnits startDate endDate resultingTitleId artistrybaseProjectRef\n workspaceId createdAt updatedAt\n`;\n\nexport const AUDITION_FIELDS = `\n id productionId roleName description status isMinorRole language location\n currency payMinorUnits submissionDeadline workspaceId createdAt updatedAt\n`;\n\nexport const APPLICATION_FIELDS = `\n id auditionId applicantId coverNote status score selfTape { id }\n workspaceId createdAt updatedAt\n`;\n\nexport const REVIEW_FIELDS = `\n id titleId authorId score body aspectScores hasSpoilers verifiedWatch\n helpfulCount status workspaceId createdAt updatedAt\n`;\n\nexport const RIGHTS_WINDOW_FIELDS = `\n id titleId licenseeId modes territories exclusive priceMinorUnits currency\n startsAt endsAt status contractFileId workspaceId createdAt updatedAt\n`;\n\nexport const ENTITLEMENT_FIELDS = `\n id titleId userId mode source status territory expiresAt\n workspaceId createdAt updatedAt\n`;\n\nexport const LIST_FIELDS = `\n id name description kind visibility itemCount items ownerId\n workspaceId createdAt updatedAt\n`;\n\nexport const WATCH_PROGRESS_FIELDS = `\n id titleId episodeId userId positionSeconds completed lastDevice\n workspaceId createdAt updatedAt\n`;\n\n// ---------------------------------------------------------------------------\n// Titles\n// ---------------------------------------------------------------------------\n\nexport const GET_TITLE = `\n query HookmoviesGetTitle($id: ID!) {\n hokTitle(id: $id) {\n ${TITLE_FIELDS}\n studio { id name slug }\n credits { ${CREDIT_FIELDS} }\n seasons { ${SEASON_FIELDS} }\n episodes { ${EPISODE_FIELDS} }\n }\n }\n`;\n\nexport const LIST_TITLES = `\n query HookmoviesListTitles(\n $pagination: PaginationInput\n $status: HokTitleStatus\n $studioId: ID\n $type: HokTitleType\n ) {\n hokListTitles(pagination: $pagination, status: $status, studioId: $studioId, type: $type) {\n items { ${TITLE_FIELDS} }\n ${PAGE_INFO}\n }\n }\n`;\n\nexport const CREATE_TITLE = `\n mutation HookmoviesCreateTitle($input: HokCreateTitleInput!) {\n hokCreateTitle(input: $input) {\n ${TITLE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_TITLE = `\n mutation HookmoviesUpdateTitle($id: ID!, $input: HokUpdateTitleInput!) {\n hokUpdateTitle(id: $id, input: $input) {\n ${TITLE_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_TITLE = `\n mutation HookmoviesTransitionTitle($id: ID!, $status: HokTitleStatus!) {\n hokTransitionTitle(id: $id, status: $status) {\n ${TITLE_FIELDS}\n }\n }\n`;\n\nexport const ARCHIVE_TITLE = `\n mutation HookmoviesArchiveTitle($id: ID!) {\n hokArchiveTitle(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Studios\n// ---------------------------------------------------------------------------\n\nexport const LIST_STUDIOS = `\n query HookmoviesListStudios($pagination: PaginationInput) {\n hokListStudios(pagination: $pagination) {\n items { ${STUDIO_FIELDS} }\n ${PAGE_INFO}\n }\n }\n`;\n\nexport const CREATE_STUDIO = `\n mutation HookmoviesCreateStudio($input: HokCreateStudioInput!) {\n hokCreateStudio(input: $input) {\n ${STUDIO_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// People + credits\n// ---------------------------------------------------------------------------\n\nexport const LIST_PEOPLE = `\n query HookmoviesListPeople($pagination: PaginationInput) {\n hokListPeople(pagination: $pagination) {\n items {\n ${PERSON_FIELDS}\n credits { ${CREDIT_FIELDS} }\n }\n ${PAGE_INFO}\n }\n }\n`;\n\nexport const CREATE_PERSON = `\n mutation HookmoviesCreatePerson($input: HokCreatePersonInput!) {\n hokCreatePerson(input: $input) {\n ${PERSON_FIELDS}\n }\n }\n`;\n\nexport const ADD_CREDIT = `\n mutation HookmoviesAddCredit($input: HokCreateCreditInput!) {\n hokAddCredit(input: $input) {\n ${CREDIT_FIELDS}\n person { id name }\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Seasons + episodes\n// ---------------------------------------------------------------------------\n\nexport const CREATE_SEASON = `\n mutation HookmoviesCreateSeason($input: HokCreateSeasonInput!) {\n hokCreateSeason(input: $input) {\n ${SEASON_FIELDS}\n }\n }\n`;\n\nexport const LIST_EPISODES = `\n query HookmoviesListEpisodes($titleId: ID!) {\n hokListEpisodes(titleId: $titleId) {\n ${EPISODE_FIELDS}\n }\n }\n`;\n\nexport const CREATE_EPISODE = `\n mutation HookmoviesCreateEpisode($input: HokCreateEpisodeInput!) {\n hokCreateEpisode(input: $input) {\n ${EPISODE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Productions\n// ---------------------------------------------------------------------------\n\nexport const GET_PRODUCTION = `\n query HookmoviesGetProduction($id: ID!) {\n hokProduction(id: $id) {\n ${PRODUCTION_FIELDS}\n auditions { ${AUDITION_FIELDS} }\n }\n }\n`;\n\nexport const LIST_PRODUCTIONS = `\n query HookmoviesListProductions(\n $pagination: PaginationInput\n $status: HokProductionStatus\n $studioId: ID\n ) {\n hokListProductions(pagination: $pagination, status: $status, studioId: $studioId) {\n items { ${PRODUCTION_FIELDS} }\n ${PAGE_INFO}\n }\n }\n`;\n\nexport const CREATE_PRODUCTION = `\n mutation HookmoviesCreateProduction($input: HokCreateProductionInput!) {\n hokCreateProduction(input: $input) {\n ${PRODUCTION_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_PRODUCTION = `\n mutation HookmoviesTransitionProduction($id: ID!, $status: HokProductionStatus!) {\n hokTransitionProduction(id: $id, status: $status) {\n ${PRODUCTION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Auditions + applications (casting)\n// ---------------------------------------------------------------------------\n\nexport const LIST_AUDITIONS = `\n query HookmoviesListAuditions(\n $pagination: PaginationInput\n $productionId: ID\n $status: HokAuditionStatus\n ) {\n hokListAuditions(pagination: $pagination, productionId: $productionId, status: $status) {\n items { ${AUDITION_FIELDS} }\n ${PAGE_INFO}\n }\n }\n`;\n\nexport const CREATE_AUDITION = `\n mutation HookmoviesCreateAudition($input: HokCreateAuditionInput!) {\n hokCreateAudition(input: $input) {\n ${AUDITION_FIELDS}\n }\n }\n`;\n\nexport const CLOSE_AUDITION = `\n mutation HookmoviesCloseAudition($id: ID!) {\n hokCloseAudition(id: $id) {\n ${AUDITION_FIELDS}\n }\n }\n`;\n\nexport const LIST_APPLICATIONS = `\n query HookmoviesListApplications($auditionId: ID!) {\n hokListApplications(auditionId: $auditionId) {\n ${APPLICATION_FIELDS}\n }\n }\n`;\n\nexport const APPLY_TO_AUDITION = `\n mutation HookmoviesApplyToAudition($input: HokApplyToAuditionInput!) {\n hokApplyToAudition(input: $input) {\n ${APPLICATION_FIELDS}\n }\n }\n`;\n\nexport const SCORE_APPLICATION = `\n mutation HookmoviesScoreApplication($id: ID!, $score: Int!) {\n hokScoreApplication(id: $id, score: $score) {\n ${APPLICATION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Reviews\n// ---------------------------------------------------------------------------\n\nexport const LIST_REVIEWS = `\n query HookmoviesListReviews(\n $pagination: PaginationInput\n $status: HokReviewStatus\n $titleId: ID\n ) {\n hokListReviews(pagination: $pagination, status: $status, titleId: $titleId) {\n items { ${REVIEW_FIELDS} }\n ${PAGE_INFO}\n }\n }\n`;\n\nexport const CREATE_REVIEW = `\n mutation HookmoviesCreateReview($input: HokCreateReviewInput!) {\n hokCreateReview(input: $input) {\n ${REVIEW_FIELDS}\n }\n }\n`;\n\nexport const DELETE_REVIEW = `\n mutation HookmoviesDeleteReview($id: ID!) {\n hokDeleteReview(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Rights windows (licensing)\n// ---------------------------------------------------------------------------\n\nexport const LIST_RIGHTS_WINDOWS = `\n query HookmoviesListRightsWindows(\n $pagination: PaginationInput\n $status: HokRightsWindowStatus\n $titleId: ID\n ) {\n hokListRightsWindows(pagination: $pagination, status: $status, titleId: $titleId) {\n items { ${RIGHTS_WINDOW_FIELDS} }\n ${PAGE_INFO}\n }\n }\n`;\n\nexport const CREATE_RIGHTS_WINDOW = `\n mutation HookmoviesCreateRightsWindow($input: HokCreateRightsWindowInput!) {\n hokCreateRightsWindow(input: $input) {\n ${RIGHTS_WINDOW_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_RIGHTS_WINDOW = `\n mutation HookmoviesTransitionRightsWindow($id: ID!, $status: HokRightsWindowStatus!) {\n hokTransitionRightsWindow(id: $id, status: $status) {\n ${RIGHTS_WINDOW_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Entitlements (access / monetization)\n// ---------------------------------------------------------------------------\n\nexport const GRANT_ENTITLEMENT = `\n mutation HookmoviesGrantEntitlement($input: HokGrantEntitlementInput!) {\n hokGrantEntitlement(input: $input) {\n ${ENTITLEMENT_FIELDS}\n }\n }\n`;\n\nexport const REVOKE_ENTITLEMENT = `\n mutation HookmoviesRevokeEntitlement($id: ID!) {\n hokRevokeEntitlement(id: $id)\n }\n`;\n\nexport const MY_ENTITLEMENTS = `\n query HookmoviesMyEntitlements($titleId: ID) {\n hokMyEntitlements(titleId: $titleId) {\n ${ENTITLEMENT_FIELDS}\n }\n }\n`;\n\nexport const CHECK_ENTITLEMENT = `\n query HookmoviesCheckEntitlement($titleId: ID!) {\n hokCheckEntitlement(titleId: $titleId) {\n entitled\n modes\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Lists (watchlists + playlists, self-scoped)\n// ---------------------------------------------------------------------------\n\nexport const GET_LIST = `\n query HookmoviesGetList($id: ID!) {\n hokList(id: $id) {\n ${LIST_FIELDS}\n }\n }\n`;\n\nexport const MY_LISTS = `\n query HookmoviesMyLists($kind: HokListKind, $pagination: PaginationInput) {\n hokMyLists(kind: $kind, pagination: $pagination) {\n items { ${LIST_FIELDS} }\n ${PAGE_INFO}\n }\n }\n`;\n\nexport const CREATE_LIST = `\n mutation HookmoviesCreateList($input: HokCreateListInput!) {\n hokCreateList(input: $input) {\n ${LIST_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_LIST = `\n mutation HookmoviesUpdateList($id: ID!, $input: HokUpdateListInput!) {\n hokUpdateList(id: $id, input: $input) {\n ${LIST_FIELDS}\n }\n }\n`;\n\nexport const DELETE_LIST = `\n mutation HookmoviesDeleteList($id: ID!) {\n hokDeleteList(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Watch progress (continue-watching, self-scoped)\n// ---------------------------------------------------------------------------\n\nexport const RECORD_PROGRESS = `\n mutation HookmoviesRecordProgress($input: HokRecordProgressInput!) {\n hokRecordProgress(input: $input) {\n ${WATCH_PROGRESS_FIELDS}\n }\n }\n`;\n\nexport const MY_WATCH_PROGRESS = `\n query HookmoviesMyWatchProgress($titleId: ID) {\n hokMyWatchProgress(titleId: $titleId) {\n ${WATCH_PROGRESS_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Health\n// ---------------------------------------------------------------------------\n\nexport const HEALTH = `\n query HookmoviesHealth {\n hokHealth\n }\n`;\n","/**\n * Shared zod schemas for the HookMovies tool surface.\n *\n * Every backend enum is mirrored as a tight zod enum so Claude Desktop grounds\n * tool calls against the exact allowed values. JSON scalar inputs (externalIds,\n * aspectScores, priceMinorUnits, list items) are modelled as permissive\n * records / unions — the backend accepts arbitrary JSON, but a typed shape\n * gives the LLM a useful hint.\n *\n * Enum values mirror the wspace-hookmovies-svc `.hive-schema.graphql` verbatim.\n */\n\nimport { z } from 'zod';\n\nexport const TitleTypeEnum = z\n .enum([\n 'ANIME',\n 'COLLECTION',\n 'DOCUMENTARY',\n 'FAST_CHANNEL',\n 'LIVE_EVENT',\n 'LONG_FORM',\n 'MOVIE',\n 'SERIES',\n 'SHORT_FILM',\n 'SHORT_FORM',\n 'TRAILER',\n ])\n .describe('Kind of catalog title');\n\nexport const TitleStatusEnum = z\n .enum(['ARCHIVED', 'DRAFT', 'IN_REVIEW', 'PUBLISHED', 'SCHEDULED', 'UNPUBLISHED'])\n .describe('Publication lifecycle status of a title');\n\nexport const CreditRoleEnum = z\n .enum([\n 'ACTOR',\n 'CINEMATOGRAPHER',\n 'COMPOSER',\n 'CREW',\n 'DIRECTOR',\n 'EDITOR',\n 'PRODUCER',\n 'VOICE_ACTOR',\n 'WRITER',\n ])\n .describe('Role of a person credited on a title');\n\nexport const ProductionStatusEnum = z\n .enum(['DEVELOPMENT', 'GREENLIT', 'IN_PRODUCTION', 'POST_PRODUCTION', 'RELEASED', 'SHELVED'])\n .describe('Lifecycle status of a production');\n\nexport const AuditionStatusEnum = z\n .enum(['CALLBACKS', 'CANCELLED', 'CLOSED', 'OPEN', 'REVIEWING'])\n .describe('Lifecycle status of an audition');\n\nexport const ApplicationStatusEnum = z\n .enum(['CALLBACK', 'OFFERED', 'REJECTED', 'SHORTLISTED', 'SUBMITTED', 'WITHDRAWN'])\n .describe('Status of an audition application');\n\nexport const ReviewStatusEnum = z\n .enum(['HIDDEN', 'PENDING', 'PUBLISHED', 'REMOVED'])\n .describe('Moderation status of a review');\n\nexport const RightsWindowStatusEnum = z\n .enum(['ACTIVE', 'DRAFT', 'EXPIRED', 'PENDING', 'REVOKED'])\n .describe('Lifecycle status of a rights window');\n\nexport const MonetizationModeEnum = z\n .enum(['FAST', 'FREE_AVOD', 'PPV', 'SVOD', 'TVOD_BUY', 'TVOD_RENT'])\n .describe('Monetization / distribution mode for a title');\n\nexport const EntitlementSourceEnum = z\n .enum(['FREE', 'PROMO', 'PURCHASE', 'RENTAL', 'SUBSCRIPTION'])\n .describe('How an entitlement was acquired');\n\nexport const ListKindEnum = z\n .enum(['PLAYLIST', 'WATCHLIST'])\n .describe('Whether a user list is a PLAYLIST or a WATCHLIST');\n\nexport const ListVisibilityEnum = z\n .enum(['PRIVATE', 'PUBLIC', 'UNLISTED'])\n .describe('Visibility of a user list');\n\n/** Permissive JSON-object schema for object-shaped `JSON` scalar inputs. */\nexport const JsonObject = z.record(z.string(), z.unknown());\n\n/** Permissive JSON value (object or array) for free-form `JSON` scalar inputs. */\nexport const JsonValue = z\n .union([JsonObject, z.array(z.unknown())])\n .describe('Arbitrary JSON value (object or array)');\n","/**\n * HookMovies title tools — catalog CRUD + publication lifecycle.\n *\n * Surface (6): titles_{get,list,create,update,transition,archive}.\n * Backed by hokTitle / hokListTitles / hokCreateTitle / hokUpdateTitle /\n * hokTransitionTitle / hokArchiveTitle.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { TitleTypeEnum, TitleStatusEnum } from './shared.js';\n\nexport function registerTitleTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'titles_get')),\n {\n title: 'Get Title',\n description:\n 'Fetch a single HookMovies title by ID, including its studio, credits, seasons, and episodes.',\n inputSchema: { id: z.string().describe('Title ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokTitle: Record<string, unknown> | null;\n }>(ops.GET_TITLE, { id });\n if (!data.hokTitle) return errorResult(`Title ${id} not found`);\n return jsonResult(data.hokTitle);\n } catch (error) {\n ctx.logger.error('hookmovies titles_get failed', { error: String(error) });\n return errorResult(\n `Failed to get title: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'titles_list')),\n {\n title: 'List Titles',\n description:\n 'List catalog titles in the bound workspace, optionally filtered by status, studio, and/or title type, with pagination.',\n inputSchema: {\n status: TitleStatusEnum.optional().describe('Filter by publication status'),\n studioId: z.string().optional().describe('Filter by owning studio ID'),\n type: TitleTypeEnum.optional().describe('Filter by title type'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n cursor: z.string().optional().describe('Opaque pagination cursor'),\n },\n },\n async ({ status, studioId, type, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListTitles: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_TITLES, {\n status,\n studioId,\n type,\n pagination: { limit: limit ?? 50, offset: offset ?? 0, cursor },\n });\n return jsonResult(data.hokListTitles);\n } catch (error) {\n ctx.logger.error('hookmovies titles_list failed', { error: String(error) });\n return errorResult(\n `Failed to list titles: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'titles_create')),\n {\n title: 'Create Title',\n description:\n 'Create a catalog title (movie/series/etc.). `title` is required; defaults: type=MOVIE, aiDisclosure=false. Optionally attach to a studio.',\n inputSchema: {\n title: z.string().min(1).describe('Display title'),\n type: TitleTypeEnum.optional().describe('Title type (default MOVIE)'),\n slug: z.string().optional().describe('URL slug, unique within the workspace'),\n synopsis: z.string().optional().describe('Synopsis / description'),\n genres: z.array(z.string()).optional().describe('Genre tags'),\n tags: z.array(z.string()).optional().describe('Discovery tags'),\n originalLanguage: z.string().optional().describe('Original language code'),\n originCountry: z.string().optional().describe('Country of origin code'),\n releaseDate: z.string().optional().describe('Release date (ISO-8601 DateTime)'),\n releaseYear: z.number().int().optional().describe('Release year'),\n runtimeMinutes: z.number().int().optional().describe('Runtime in minutes'),\n certification: z.string().optional().describe('Content certification / rating'),\n aiDisclosure: z.boolean().optional().describe('Whether AI involvement is disclosed'),\n studioId: z.string().optional().describe('Owning studio ID'),\n },\n },\n async ({\n title,\n type,\n slug,\n synopsis,\n genres,\n tags,\n originalLanguage,\n originCountry,\n releaseDate,\n releaseYear,\n runtimeMinutes,\n certification,\n aiDisclosure,\n studioId,\n }) => {\n try {\n const input: Record<string, unknown> = { title };\n if (type !== undefined) input.type = type;\n if (slug !== undefined) input.slug = slug;\n if (synopsis !== undefined) input.synopsis = synopsis;\n if (genres !== undefined) input.genres = genres;\n if (tags !== undefined) input.tags = tags;\n if (originalLanguage !== undefined) input.originalLanguage = originalLanguage;\n if (originCountry !== undefined) input.originCountry = originCountry;\n if (releaseDate !== undefined) input.releaseDate = releaseDate;\n if (releaseYear !== undefined) input.releaseYear = releaseYear;\n if (runtimeMinutes !== undefined) input.runtimeMinutes = runtimeMinutes;\n if (certification !== undefined) input.certification = certification;\n if (aiDisclosure !== undefined) input.aiDisclosure = aiDisclosure;\n if (studioId !== undefined) input.studioId = studioId;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateTitle: Record<string, unknown>;\n }>(ops.CREATE_TITLE, { input });\n return jsonResult(data.hokCreateTitle);\n } catch (error) {\n ctx.logger.error('hookmovies titles_create failed', { error: String(error) });\n return errorResult(\n `Failed to create title: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'titles_update')),\n {\n title: 'Update Title',\n description:\n 'Update a catalog title. At least one mutable field must be provided. Use titles_transition for status changes and titles_archive to archive.',\n inputSchema: {\n id: z.string().describe('Title ID'),\n title: z.string().optional().describe('Updated display title'),\n type: TitleTypeEnum.optional().describe('Updated title type'),\n slug: z.string().optional().describe('Updated URL slug'),\n synopsis: z.string().optional().describe('Updated synopsis'),\n genres: z.array(z.string()).optional().describe('Updated genres'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n originalLanguage: z.string().optional().describe('Updated original language'),\n originCountry: z.string().optional().describe('Updated origin country'),\n releaseDate: z.string().optional().describe('Updated release date (ISO-8601 DateTime)'),\n releaseYear: z.number().int().optional().describe('Updated release year'),\n runtimeMinutes: z.number().int().optional().describe('Updated runtime in minutes'),\n certification: z.string().optional().describe('Updated certification'),\n aiDisclosure: z.boolean().optional().describe('Updated AI-disclosure flag'),\n studioId: z.string().optional().describe('Updated owning studio ID'),\n },\n },\n async ({\n id,\n title,\n type,\n slug,\n synopsis,\n genres,\n tags,\n originalLanguage,\n originCountry,\n releaseDate,\n releaseYear,\n runtimeMinutes,\n certification,\n aiDisclosure,\n studioId,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (title !== undefined) input.title = title;\n if (type !== undefined) input.type = type;\n if (slug !== undefined) input.slug = slug;\n if (synopsis !== undefined) input.synopsis = synopsis;\n if (genres !== undefined) input.genres = genres;\n if (tags !== undefined) input.tags = tags;\n if (originalLanguage !== undefined) input.originalLanguage = originalLanguage;\n if (originCountry !== undefined) input.originCountry = originCountry;\n if (releaseDate !== undefined) input.releaseDate = releaseDate;\n if (releaseYear !== undefined) input.releaseYear = releaseYear;\n if (runtimeMinutes !== undefined) input.runtimeMinutes = runtimeMinutes;\n if (certification !== undefined) input.certification = certification;\n if (aiDisclosure !== undefined) input.aiDisclosure = aiDisclosure;\n if (studioId !== undefined) input.studioId = studioId;\n\n if (Object.keys(input).length === 0) {\n return errorResult('No updates specified — provide at least one mutable title field');\n }\n\n const data = await ctx.gql.workspace.request<{\n hokUpdateTitle: Record<string, unknown>;\n }>(ops.UPDATE_TITLE, { id, input });\n return jsonResult(data.hokUpdateTitle);\n } catch (error) {\n ctx.logger.error('hookmovies titles_update failed', { error: String(error) });\n return errorResult(\n `Failed to update title: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'titles_transition')),\n {\n title: 'Transition Title',\n description:\n 'Move a title through its publication lifecycle (validated transitions), e.g. DRAFT → IN_REVIEW → SCHEDULED → PUBLISHED → UNPUBLISHED.',\n inputSchema: {\n id: z.string().describe('Title ID'),\n status: TitleStatusEnum.describe('Target publication status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokTransitionTitle: Record<string, unknown>;\n }>(ops.TRANSITION_TITLE, { id, status });\n return jsonResult(data.hokTransitionTitle);\n } catch (error) {\n ctx.logger.error('hookmovies titles_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition title: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'titles_archive')),\n {\n title: 'Archive Title',\n description: 'Archive (soft-delete) a catalog title. Returns true on success.',\n inputSchema: { id: z.string().describe('Title ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ hokArchiveTitle: boolean }>(\n ops.ARCHIVE_TITLE,\n { id },\n );\n return jsonResult({ archived: data.hokArchiveTitle });\n } catch (error) {\n ctx.logger.error('hookmovies titles_archive failed', { error: String(error) });\n return errorResult(\n `Failed to archive title: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies studio tools — studio directory.\n *\n * Surface (2): studios_{list,create}. Backed by hokListStudios / hokCreateStudio.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\n\nexport function registerStudioTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'studios_list')),\n {\n title: 'List Studios',\n description: 'List studios/distributors in the bound workspace, with pagination.',\n inputSchema: {\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n cursor: z.string().optional().describe('Opaque pagination cursor'),\n },\n },\n async ({ limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListStudios: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_STUDIOS, {\n pagination: { limit: limit ?? 50, offset: offset ?? 0, cursor },\n });\n return jsonResult(data.hokListStudios);\n } catch (error) {\n ctx.logger.error('hookmovies studios_list failed', { error: String(error) });\n return errorResult(\n `Failed to list studios: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'studios_create')),\n {\n title: 'Create Studio',\n description: 'Create a studio/distributor. `name` is required.',\n inputSchema: {\n name: z.string().min(1).describe('Studio display name'),\n slug: z.string().optional().describe('URL slug, unique within the workspace'),\n description: z.string().optional().describe('Studio description'),\n country: z.string().optional().describe('Country code'),\n websiteUrl: z.string().optional().describe('Studio website URL'),\n tags: z.array(z.string()).optional().describe('Discovery tags'),\n },\n },\n async ({ name, slug, description, country, websiteUrl, tags }) => {\n try {\n const input: Record<string, unknown> = { name };\n if (slug !== undefined) input.slug = slug;\n if (description !== undefined) input.description = description;\n if (country !== undefined) input.country = country;\n if (websiteUrl !== undefined) input.websiteUrl = websiteUrl;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateStudio: Record<string, unknown>;\n }>(ops.CREATE_STUDIO, { input });\n return jsonResult(data.hokCreateStudio);\n } catch (error) {\n ctx.logger.error('hookmovies studios_create failed', { error: String(error) });\n return errorResult(\n `Failed to create studio: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies people + credit tools — talent directory and cast/crew credits.\n *\n * Surface (3): people_{list,create}, credits_add.\n * Backed by hokListPeople / hokCreatePerson / hokAddCredit. A credit links a\n * person to a title with a role; the only credit mutation is hokAddCredit\n * (credits are otherwise read via the nested Title.credits / Person.credits).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { CreditRoleEnum } from './shared.js';\n\nexport function registerPeopleTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'people_list')),\n {\n title: 'List People',\n description:\n 'List talent (cast/crew) in the bound workspace, including each person’s credits, with pagination.',\n inputSchema: {\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n cursor: z.string().optional().describe('Opaque pagination cursor'),\n },\n },\n async ({ limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListPeople: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_PEOPLE, {\n pagination: { limit: limit ?? 50, offset: offset ?? 0, cursor },\n });\n return jsonResult(data.hokListPeople);\n } catch (error) {\n ctx.logger.error('hookmovies people_list failed', { error: String(error) });\n return errorResult(\n `Failed to list people: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'people_create')),\n {\n title: 'Create Person',\n description: 'Create a talent (cast/crew) record. `name` is required.',\n inputSchema: {\n name: z.string().min(1).describe('Person display name'),\n biography: z.string().optional().describe('Short biography'),\n knownFor: z.string().optional().describe('Notable work / known-for blurb'),\n primaryLanguage: z.string().optional().describe('Primary working language'),\n portfolioRef: z\n .string()\n .optional()\n .describe('Stable Artistrybase portfolio id (reference only)'),\n tags: z.array(z.string()).optional().describe('Discovery tags'),\n },\n },\n async ({ name, biography, knownFor, primaryLanguage, portfolioRef, tags }) => {\n try {\n const input: Record<string, unknown> = { name };\n if (biography !== undefined) input.biography = biography;\n if (knownFor !== undefined) input.knownFor = knownFor;\n if (primaryLanguage !== undefined) input.primaryLanguage = primaryLanguage;\n if (portfolioRef !== undefined) input.portfolioRef = portfolioRef;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n hokCreatePerson: Record<string, unknown>;\n }>(ops.CREATE_PERSON, { input });\n return jsonResult(data.hokCreatePerson);\n } catch (error) {\n ctx.logger.error('hookmovies people_create failed', { error: String(error) });\n return errorResult(\n `Failed to create person: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'credits_add')),\n {\n title: 'Add Credit',\n description:\n 'Credit a person on a title with a role (default ACTOR). Optionally set the character name and billing order.',\n inputSchema: {\n titleId: z.string().min(1).describe('Title the credit is on'),\n personId: z.string().min(1).describe('Person being credited'),\n role: CreditRoleEnum.optional().describe('Credited role (default ACTOR)'),\n characterName: z.string().optional().describe('Character name (for ACTOR/VOICE_ACTOR)'),\n billingOrder: z\n .number()\n .int()\n .optional()\n .describe('Billing order (lower = higher billing)'),\n },\n },\n async ({ titleId, personId, role, characterName, billingOrder }) => {\n try {\n const input: Record<string, unknown> = { titleId, personId };\n if (role !== undefined) input.role = role;\n if (characterName !== undefined) input.characterName = characterName;\n if (billingOrder !== undefined) input.billingOrder = billingOrder;\n\n const data = await ctx.gql.workspace.request<{\n hokAddCredit: Record<string, unknown>;\n }>(ops.ADD_CREDIT, { input });\n return jsonResult(data.hokAddCredit);\n } catch (error) {\n ctx.logger.error('hookmovies credits_add failed', { error: String(error) });\n return errorResult(\n `Failed to add credit: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies season + episode tools — episodic catalog structure.\n *\n * Surface (3): seasons_create, episodes_{list,create}.\n * Backed by hokCreateSeason / hokListEpisodes / hokCreateEpisode. Seasons group\n * episodes under a title; episodes may optionally reference a wspace-files-svc\n * File (the master/mezzanine) via fileId.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\n\nexport function registerEpisodeTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'seasons_create')),\n {\n title: 'Create Season',\n description:\n 'Create a season under a title. `titleId` and `number` are required; name/synopsis/airDate are optional.',\n inputSchema: {\n titleId: z.string().min(1).describe('Parent title ID'),\n number: z.number().int().describe('Season number'),\n name: z.string().optional().describe('Season name'),\n synopsis: z.string().optional().describe('Season synopsis'),\n airDate: z.string().optional().describe('Air date (ISO-8601 DateTime)'),\n },\n },\n async ({ titleId, number, name, synopsis, airDate }) => {\n try {\n const input: Record<string, unknown> = { titleId, number };\n if (name !== undefined) input.name = name;\n if (synopsis !== undefined) input.synopsis = synopsis;\n if (airDate !== undefined) input.airDate = airDate;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateSeason: Record<string, unknown>;\n }>(ops.CREATE_SEASON, { input });\n return jsonResult(data.hokCreateSeason);\n } catch (error) {\n ctx.logger.error('hookmovies seasons_create failed', { error: String(error) });\n return errorResult(\n `Failed to create season: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'episodes_list')),\n {\n title: 'List Episodes',\n description: 'List all episodes for a title (across seasons).',\n inputSchema: { titleId: z.string().describe('Title ID') },\n },\n async ({ titleId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListEpisodes: Array<Record<string, unknown>>;\n }>(ops.LIST_EPISODES, { titleId });\n return jsonResult(data.hokListEpisodes);\n } catch (error) {\n ctx.logger.error('hookmovies episodes_list failed', { error: String(error) });\n return errorResult(\n `Failed to list episodes: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'episodes_create')),\n {\n title: 'Create Episode',\n description:\n 'Create an episode under a title (and optionally a season). `titleId`, `name`, and `number` are required. Set `fileId` to attach the master/mezzanine file.',\n inputSchema: {\n titleId: z.string().min(1).describe('Parent title ID'),\n name: z.string().min(1).describe('Episode name'),\n number: z.number().int().describe('Episode number within the season'),\n seasonId: z.string().optional().describe('Parent season ID'),\n synopsis: z.string().optional().describe('Episode synopsis'),\n runtimeMinutes: z.number().int().optional().describe('Runtime in minutes'),\n airDate: z.string().optional().describe('Air date (ISO-8601 DateTime)'),\n fileId: z.string().optional().describe('wspace-files-svc File ID (master/mezzanine)'),\n },\n },\n async ({ titleId, name, number, seasonId, synopsis, runtimeMinutes, airDate, fileId }) => {\n try {\n const input: Record<string, unknown> = { titleId, name, number };\n if (seasonId !== undefined) input.seasonId = seasonId;\n if (synopsis !== undefined) input.synopsis = synopsis;\n if (runtimeMinutes !== undefined) input.runtimeMinutes = runtimeMinutes;\n if (airDate !== undefined) input.airDate = airDate;\n if (fileId !== undefined) input.fileId = fileId;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateEpisode: Record<string, unknown>;\n }>(ops.CREATE_EPISODE, { input });\n return jsonResult(data.hokCreateEpisode);\n } catch (error) {\n ctx.logger.error('hookmovies episodes_create failed', { error: String(error) });\n return errorResult(\n `Failed to create episode: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies production tools — slate / production lifecycle.\n *\n * Surface (4): productions_{get,list,create,transition}.\n * Backed by hokProduction / hokListProductions / hokCreateProduction /\n * hokTransitionProduction. Productions can be promoted from an Artistrybase\n * project (artistrybaseProjectRef) and eventually yield a Title.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { ProductionStatusEnum } from './shared.js';\n\nexport function registerProductionTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'productions_get')),\n {\n title: 'Get Production',\n description: 'Fetch a single production by ID, including its auditions.',\n inputSchema: { id: z.string().describe('Production ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokProduction: Record<string, unknown> | null;\n }>(ops.GET_PRODUCTION, { id });\n if (!data.hokProduction) return errorResult(`Production ${id} not found`);\n return jsonResult(data.hokProduction);\n } catch (error) {\n ctx.logger.error('hookmovies productions_get failed', { error: String(error) });\n return errorResult(\n `Failed to get production: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'productions_list')),\n {\n title: 'List Productions',\n description:\n 'List productions in the bound workspace, optionally filtered by status and/or studio, with pagination.',\n inputSchema: {\n status: ProductionStatusEnum.optional().describe('Filter by production status'),\n studioId: z.string().optional().describe('Filter by studio ID'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n cursor: z.string().optional().describe('Opaque pagination cursor'),\n },\n },\n async ({ status, studioId, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListProductions: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_PRODUCTIONS, {\n status,\n studioId,\n pagination: { limit: limit ?? 50, offset: offset ?? 0, cursor },\n });\n return jsonResult(data.hokListProductions);\n } catch (error) {\n ctx.logger.error('hookmovies productions_list failed', { error: String(error) });\n return errorResult(\n `Failed to list productions: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'productions_create')),\n {\n title: 'Create Production',\n description:\n 'Open a new production. `title` is required. Budget is expressed in minor units as a string (e.g. \"150000000\" for ₹15,00,000.00).',\n inputSchema: {\n title: z.string().min(1).describe('Production title'),\n logline: z.string().optional().describe('One-line logline'),\n synopsis: z.string().optional().describe('Synopsis'),\n tags: z.array(z.string()).optional().describe('Discovery tags'),\n studioId: z.string().optional().describe('Producing studio ID'),\n producerId: z.string().optional().describe('Lead producer user ID'),\n currency: z.string().optional().describe('Budget currency code'),\n budgetMinorUnits: z.string().optional().describe('Budget in minor units (string)'),\n startDate: z.string().optional().describe('Start date (ISO-8601 DateTime)'),\n endDate: z.string().optional().describe('End date (ISO-8601 DateTime)'),\n artistrybaseProjectRef: z\n .string()\n .optional()\n .describe('Stable Artistrybase project id this production is promoted from'),\n },\n },\n async ({\n title,\n logline,\n synopsis,\n tags,\n studioId,\n producerId,\n currency,\n budgetMinorUnits,\n startDate,\n endDate,\n artistrybaseProjectRef,\n }) => {\n try {\n const input: Record<string, unknown> = { title };\n if (logline !== undefined) input.logline = logline;\n if (synopsis !== undefined) input.synopsis = synopsis;\n if (tags !== undefined) input.tags = tags;\n if (studioId !== undefined) input.studioId = studioId;\n if (producerId !== undefined) input.producerId = producerId;\n if (currency !== undefined) input.currency = currency;\n if (budgetMinorUnits !== undefined) input.budgetMinorUnits = budgetMinorUnits;\n if (startDate !== undefined) input.startDate = startDate;\n if (endDate !== undefined) input.endDate = endDate;\n if (artistrybaseProjectRef !== undefined)\n input.artistrybaseProjectRef = artistrybaseProjectRef;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateProduction: Record<string, unknown>;\n }>(ops.CREATE_PRODUCTION, { input });\n return jsonResult(data.hokCreateProduction);\n } catch (error) {\n ctx.logger.error('hookmovies productions_create failed', { error: String(error) });\n return errorResult(\n `Failed to create production: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'productions_transition')),\n {\n title: 'Transition Production',\n description:\n 'Advance a production through its lifecycle (validated transitions): DEVELOPMENT → GREENLIT → IN_PRODUCTION → POST_PRODUCTION → RELEASED (or SHELVED).',\n inputSchema: {\n id: z.string().describe('Production ID'),\n status: ProductionStatusEnum.describe('Target production status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokTransitionProduction: Record<string, unknown>;\n }>(ops.TRANSITION_PRODUCTION, { id, status });\n return jsonResult(data.hokTransitionProduction);\n } catch (error) {\n ctx.logger.error('hookmovies productions_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition production: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies casting tools — auditions + applications.\n *\n * Surface (6): auditions_{list,create,close}, applications_{list,apply,score}.\n * Backed by hokListAuditions / hokCreateAudition / hokCloseAudition /\n * hokListApplications / hokApplyToAudition / hokScoreApplication.\n *\n * applications_apply is self-scoped (the calling user applies); auditions_* and\n * applications_score are workspace-scoped casting-team actions. Pay is expressed\n * in minor units as a string.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { AuditionStatusEnum } from './shared.js';\n\nexport function registerAuditionTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auditions_list')),\n {\n title: 'List Auditions',\n description:\n 'List auditions in the bound workspace, optionally filtered by production and/or status, with pagination.',\n inputSchema: {\n productionId: z.string().optional().describe('Filter by production ID'),\n status: AuditionStatusEnum.optional().describe('Filter by audition status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n cursor: z.string().optional().describe('Opaque pagination cursor'),\n },\n },\n async ({ productionId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListAuditions: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_AUDITIONS, {\n productionId,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0, cursor },\n });\n return jsonResult(data.hokListAuditions);\n } catch (error) {\n ctx.logger.error('hookmovies auditions_list failed', { error: String(error) });\n return errorResult(\n `Failed to list auditions: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auditions_create')),\n {\n title: 'Create Audition',\n description:\n 'Open an audition/casting call for a role on a production. `productionId` and `roleName` are required. `payMinorUnits` is a minor-units string.',\n inputSchema: {\n productionId: z.string().min(1).describe('Production the audition belongs to'),\n roleName: z.string().min(1).describe('Role being cast'),\n description: z.string().optional().describe('Audition / role description'),\n isMinorRole: z\n .boolean()\n .optional()\n .describe('Whether this is a minor role (default false)'),\n language: z.string().optional().describe('Required language'),\n location: z.string().optional().describe('Audition location'),\n currency: z.string().optional().describe('Pay currency code'),\n payMinorUnits: z.string().optional().describe('Pay in minor units (string)'),\n submissionDeadline: z\n .string()\n .optional()\n .describe('Submission deadline (ISO-8601 DateTime)'),\n },\n },\n async ({\n productionId,\n roleName,\n description,\n isMinorRole,\n language,\n location,\n currency,\n payMinorUnits,\n submissionDeadline,\n }) => {\n try {\n const input: Record<string, unknown> = { productionId, roleName };\n if (description !== undefined) input.description = description;\n if (isMinorRole !== undefined) input.isMinorRole = isMinorRole;\n if (language !== undefined) input.language = language;\n if (location !== undefined) input.location = location;\n if (currency !== undefined) input.currency = currency;\n if (payMinorUnits !== undefined) input.payMinorUnits = payMinorUnits;\n if (submissionDeadline !== undefined) input.submissionDeadline = submissionDeadline;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateAudition: Record<string, unknown>;\n }>(ops.CREATE_AUDITION, { input });\n return jsonResult(data.hokCreateAudition);\n } catch (error) {\n ctx.logger.error('hookmovies auditions_create failed', { error: String(error) });\n return errorResult(\n `Failed to create audition: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'auditions_close')),\n {\n title: 'Close Audition',\n description: 'Close an open audition (no further submissions accepted).',\n inputSchema: { id: z.string().describe('Audition ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokCloseAudition: Record<string, unknown>;\n }>(ops.CLOSE_AUDITION, { id });\n return jsonResult(data.hokCloseAudition);\n } catch (error) {\n ctx.logger.error('hookmovies auditions_close failed', { error: String(error) });\n return errorResult(\n `Failed to close audition: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'applications_list')),\n {\n title: 'List Applications',\n description: 'List the applications submitted to a given audition (casting-team view).',\n inputSchema: { auditionId: z.string().describe('Audition ID') },\n },\n async ({ auditionId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListApplications: Array<Record<string, unknown>>;\n }>(ops.LIST_APPLICATIONS, { auditionId });\n return jsonResult(data.hokListApplications);\n } catch (error) {\n ctx.logger.error('hookmovies applications_list failed', { error: String(error) });\n return errorResult(\n `Failed to list applications: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'applications_apply')),\n {\n title: 'Apply to Audition',\n description:\n 'Apply to an audition as the calling user (self-scoped). Optionally include a cover note and a self-tape file (selfTapeFileId references a wspace-files-svc File).',\n inputSchema: {\n auditionId: z.string().min(1).describe('Audition to apply to'),\n coverNote: z.string().optional().describe('Cover note / pitch'),\n selfTapeFileId: z.string().optional().describe('wspace-files-svc File ID of the self-tape'),\n },\n },\n async ({ auditionId, coverNote, selfTapeFileId }) => {\n try {\n const input: Record<string, unknown> = { auditionId };\n if (coverNote !== undefined) input.coverNote = coverNote;\n if (selfTapeFileId !== undefined) input.selfTapeFileId = selfTapeFileId;\n\n const data = await ctx.gql.workspace.request<{\n hokApplyToAudition: Record<string, unknown>;\n }>(ops.APPLY_TO_AUDITION, { input });\n return jsonResult(data.hokApplyToAudition);\n } catch (error) {\n ctx.logger.error('hookmovies applications_apply failed', { error: String(error) });\n return errorResult(\n `Failed to apply to audition: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'applications_score')),\n {\n title: 'Score Application',\n description: 'Score an applicant (casting-team action; workspace-scoped).',\n inputSchema: {\n id: z.string().describe('Application ID'),\n score: z.number().int().describe('Score to assign the applicant'),\n },\n },\n async ({ id, score }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokScoreApplication: Record<string, unknown>;\n }>(ops.SCORE_APPLICATION, { id, score });\n return jsonResult(data.hokScoreApplication);\n } catch (error) {\n ctx.logger.error('hookmovies applications_score failed', { error: String(error) });\n return errorResult(\n `Failed to score application: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies review tools — viewer ratings + moderation.\n *\n * Surface (3): reviews_{list,create,delete}.\n * Backed by hokListReviews / hokCreateReview / hokDeleteReview. Creating and\n * deleting a review are self-scoped to the calling user; listing is\n * workspace-scoped.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { ReviewStatusEnum, JsonObject } from './shared.js';\n\nexport function registerReviewTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'reviews_list')),\n {\n title: 'List Reviews',\n description:\n 'List reviews in the bound workspace, optionally filtered by title and/or moderation status, with pagination.',\n inputSchema: {\n titleId: z.string().optional().describe('Filter by title ID'),\n status: ReviewStatusEnum.optional().describe('Filter by moderation status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n cursor: z.string().optional().describe('Opaque pagination cursor'),\n },\n },\n async ({ titleId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListReviews: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_REVIEWS, {\n titleId,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0, cursor },\n });\n return jsonResult(data.hokListReviews);\n } catch (error) {\n ctx.logger.error('hookmovies reviews_list failed', { error: String(error) });\n return errorResult(\n `Failed to list reviews: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'reviews_create')),\n {\n title: 'Create Review',\n description:\n 'Create a review for a title as the calling user (self-scoped). `score` and `titleId` are required.',\n inputSchema: {\n titleId: z.string().min(1).describe('Title being reviewed'),\n score: z.number().int().describe('Score for the title (e.g. 1–10)'),\n body: z.string().optional().describe('Free-text review body'),\n hasSpoilers: z\n .boolean()\n .optional()\n .describe('Whether the review has spoilers (default false)'),\n aspectScores: JsonObject.optional().describe(\n 'Per-aspect scores JSON (e.g. { acting, story })',\n ),\n },\n },\n async ({ titleId, score, body, hasSpoilers, aspectScores }) => {\n try {\n const input: Record<string, unknown> = { titleId, score };\n if (body !== undefined) input.body = body;\n if (hasSpoilers !== undefined) input.hasSpoilers = hasSpoilers;\n if (aspectScores !== undefined) input.aspectScores = aspectScores;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateReview: Record<string, unknown>;\n }>(ops.CREATE_REVIEW, { input });\n return jsonResult(data.hokCreateReview);\n } catch (error) {\n ctx.logger.error('hookmovies reviews_create failed', { error: String(error) });\n return errorResult(\n `Failed to create review: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'reviews_delete')),\n {\n title: 'Delete Review',\n description: 'Delete the calling user’s own review (self-scoped). Returns true on success.',\n inputSchema: { id: z.string().describe('Review ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ hokDeleteReview: boolean }>(\n ops.DELETE_REVIEW,\n { id },\n );\n return jsonResult({ deleted: data.hokDeleteReview });\n } catch (error) {\n ctx.logger.error('hookmovies reviews_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete review: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies rights-window tools — licensing windows + lifecycle.\n *\n * Surface (3): rights_{list,create,transition}.\n * Backed by hokListRightsWindows / hokCreateRightsWindow /\n * hokTransitionRightsWindow. A rights window declares the monetization modes,\n * territories, and time window under which a title can be distributed.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { MonetizationModeEnum, RightsWindowStatusEnum, JsonObject } from './shared.js';\n\nexport function registerRightsTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'rights_list')),\n {\n title: 'List Rights Windows',\n description:\n 'List rights/licensing windows in the bound workspace, optionally filtered by title and/or status, with pagination.',\n inputSchema: {\n titleId: z.string().optional().describe('Filter by title ID'),\n status: RightsWindowStatusEnum.optional().describe('Filter by rights-window status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n cursor: z.string().optional().describe('Opaque pagination cursor'),\n },\n },\n async ({ titleId, status, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokListRightsWindows: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_RIGHTS_WINDOWS, {\n titleId,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0, cursor },\n });\n return jsonResult(data.hokListRightsWindows);\n } catch (error) {\n ctx.logger.error('hookmovies rights_list failed', { error: String(error) });\n return errorResult(\n `Failed to list rights windows: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'rights_create')),\n {\n title: 'Create Rights Window',\n description:\n 'Create a rights/licensing window for a title. `titleId` and at least one monetization `mode` are required. `priceMinorUnits` is a JSON map of per-mode prices.',\n inputSchema: {\n titleId: z.string().min(1).describe('Title the window applies to'),\n modes: z\n .array(MonetizationModeEnum)\n .min(1)\n .describe('Monetization modes covered by this window'),\n territories: z\n .array(z.string())\n .optional()\n .describe('ISO territory codes (default global)'),\n exclusive: z\n .boolean()\n .optional()\n .describe('Whether the license is exclusive (default false)'),\n licenseeId: z.string().optional().describe('Licensee ID (for licensed-out windows)'),\n currency: z.string().optional().describe('Price currency code'),\n priceMinorUnits: JsonObject.optional().describe('Per-mode price map JSON (minor units)'),\n startsAt: z.string().optional().describe('Window start (ISO-8601 DateTime)'),\n endsAt: z.string().optional().describe('Window end (ISO-8601 DateTime)'),\n contractFileId: z.string().optional().describe('wspace-files-svc File ID of the contract'),\n },\n },\n async ({\n titleId,\n modes,\n territories,\n exclusive,\n licenseeId,\n currency,\n priceMinorUnits,\n startsAt,\n endsAt,\n contractFileId,\n }) => {\n try {\n const input: Record<string, unknown> = { titleId, modes };\n if (territories !== undefined) input.territories = territories;\n if (exclusive !== undefined) input.exclusive = exclusive;\n if (licenseeId !== undefined) input.licenseeId = licenseeId;\n if (currency !== undefined) input.currency = currency;\n if (priceMinorUnits !== undefined) input.priceMinorUnits = priceMinorUnits;\n if (startsAt !== undefined) input.startsAt = startsAt;\n if (endsAt !== undefined) input.endsAt = endsAt;\n if (contractFileId !== undefined) input.contractFileId = contractFileId;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateRightsWindow: Record<string, unknown>;\n }>(ops.CREATE_RIGHTS_WINDOW, { input });\n return jsonResult(data.hokCreateRightsWindow);\n } catch (error) {\n ctx.logger.error('hookmovies rights_create failed', { error: String(error) });\n return errorResult(\n `Failed to create rights window: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'rights_transition')),\n {\n title: 'Transition Rights Window',\n description:\n 'Move a rights window through its lifecycle (validated transitions): DRAFT → PENDING → ACTIVE → EXPIRED (or REVOKED).',\n inputSchema: {\n id: z.string().describe('Rights window ID'),\n status: RightsWindowStatusEnum.describe('Target rights-window status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokTransitionRightsWindow: Record<string, unknown>;\n }>(ops.TRANSITION_RIGHTS_WINDOW, { id, status });\n return jsonResult(data.hokTransitionRightsWindow);\n } catch (error) {\n ctx.logger.error('hookmovies rights_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition rights window: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies entitlement tools — viewer access / monetization grants.\n *\n * Surface (4): entitlements_{grant,revoke,my,check}.\n * Backed by hokGrantEntitlement / hokRevokeEntitlement (workspace-scoped admin\n * actions) and hokMyEntitlements / hokCheckEntitlement (self-scoped to the\n * calling user).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { MonetizationModeEnum, EntitlementSourceEnum } from './shared.js';\n\nexport function registerEntitlementTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'entitlements_grant')),\n {\n title: 'Grant Entitlement',\n description:\n 'Grant a user access to a title (workspace-scoped admin action). `titleId`, `userId`, and `mode` are required; default source is SUBSCRIPTION.',\n inputSchema: {\n titleId: z.string().min(1).describe('Title to grant access to'),\n userId: z.string().min(1).describe('User receiving the entitlement'),\n mode: MonetizationModeEnum.describe('Monetization mode the entitlement covers'),\n source: EntitlementSourceEnum.optional().describe(\n 'How it was acquired (default SUBSCRIPTION)',\n ),\n territory: z.string().optional().describe('Territory the entitlement is valid in'),\n expiresAt: z.string().optional().describe('Expiry timestamp (ISO-8601 DateTime)'),\n },\n },\n async ({ titleId, userId, mode, source, territory, expiresAt }) => {\n try {\n const input: Record<string, unknown> = { titleId, userId, mode };\n if (source !== undefined) input.source = source;\n if (territory !== undefined) input.territory = territory;\n if (expiresAt !== undefined) input.expiresAt = expiresAt;\n\n const data = await ctx.gql.workspace.request<{\n hokGrantEntitlement: Record<string, unknown>;\n }>(ops.GRANT_ENTITLEMENT, { input });\n return jsonResult(data.hokGrantEntitlement);\n } catch (error) {\n ctx.logger.error('hookmovies entitlements_grant failed', { error: String(error) });\n return errorResult(\n `Failed to grant entitlement: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'entitlements_revoke')),\n {\n title: 'Revoke Entitlement',\n description:\n 'Revoke an existing entitlement by ID (workspace-scoped admin action). Returns true on success.',\n inputSchema: { id: z.string().describe('Entitlement ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ hokRevokeEntitlement: boolean }>(\n ops.REVOKE_ENTITLEMENT,\n { id },\n );\n return jsonResult({ revoked: data.hokRevokeEntitlement });\n } catch (error) {\n ctx.logger.error('hookmovies entitlements_revoke failed', { error: String(error) });\n return errorResult(\n `Failed to revoke entitlement: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'entitlements_my')),\n {\n title: 'My Entitlements',\n description:\n 'List the calling user’s own entitlements (self-scoped), optionally filtered to a single title.',\n inputSchema: {\n titleId: z.string().optional().describe('Filter to entitlements for a single title'),\n },\n },\n async ({ titleId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokMyEntitlements: Array<Record<string, unknown>>;\n }>(ops.MY_ENTITLEMENTS, { titleId });\n return jsonResult(data.hokMyEntitlements);\n } catch (error) {\n ctx.logger.error('hookmovies entitlements_my failed', { error: String(error) });\n return errorResult(\n `Failed to list my entitlements: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'entitlements_check')),\n {\n title: 'Check Entitlement',\n description:\n 'Check whether the calling user can watch a title now (self-scoped). Returns whether entitled and the covered monetization modes.',\n inputSchema: { titleId: z.string().describe('Title ID to check') },\n },\n async ({ titleId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokCheckEntitlement: Record<string, unknown>;\n }>(ops.CHECK_ENTITLEMENT, { titleId });\n return jsonResult(data.hokCheckEntitlement);\n } catch (error) {\n ctx.logger.error('hookmovies entitlements_check failed', { error: String(error) });\n return errorResult(\n `Failed to check entitlement: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies list tools — user watchlists + playlists (self-scoped).\n *\n * Surface (5): lists_{get,my,create,update,delete}.\n * Backed by hokList / hokMyLists / hokCreateList / hokUpdateList / hokDeleteList.\n * All list mutations and hokMyLists are self-scoped to the calling user;\n * hokList(id) reads a single list (subject to its visibility).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { ListKindEnum, ListVisibilityEnum, JsonValue } from './shared.js';\n\nexport function registerListTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'lists_get')),\n {\n title: 'Get List',\n description: 'Fetch a single user list (watchlist/playlist) by ID.',\n inputSchema: { id: z.string().describe('List ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokList: Record<string, unknown> | null;\n }>(ops.GET_LIST, { id });\n if (!data.hokList) return errorResult(`List ${id} not found`);\n return jsonResult(data.hokList);\n } catch (error) {\n ctx.logger.error('hookmovies lists_get failed', { error: String(error) });\n return errorResult(\n `Failed to get list: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'lists_my')),\n {\n title: 'My Lists',\n description:\n 'List the calling user’s own lists (self-scoped), optionally filtered by kind, with pagination.',\n inputSchema: {\n kind: ListKindEnum.optional().describe('Filter by list kind (PLAYLIST/WATCHLIST)'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n cursor: z.string().optional().describe('Opaque pagination cursor'),\n },\n },\n async ({ kind, limit, offset, cursor }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokMyLists: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.MY_LISTS, {\n kind,\n pagination: { limit: limit ?? 50, offset: offset ?? 0, cursor },\n });\n return jsonResult(data.hokMyLists);\n } catch (error) {\n ctx.logger.error('hookmovies lists_my failed', { error: String(error) });\n return errorResult(\n `Failed to list my lists: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'lists_create')),\n {\n title: 'Create List',\n description:\n 'Create a list owned by the calling user (self-scoped). `name` is required; defaults: kind=PLAYLIST, visibility=PRIVATE.',\n inputSchema: {\n name: z.string().min(1).describe('List name'),\n kind: ListKindEnum.optional().describe('List kind (default PLAYLIST)'),\n visibility: ListVisibilityEnum.optional().describe('Visibility (default PRIVATE)'),\n description: z.string().optional().describe('List description'),\n items: JsonValue.optional().describe('Initial list items JSON (e.g. [{ titleId }])'),\n },\n },\n async ({ name, kind, visibility, description, items }) => {\n try {\n const input: Record<string, unknown> = { name };\n if (kind !== undefined) input.kind = kind;\n if (visibility !== undefined) input.visibility = visibility;\n if (description !== undefined) input.description = description;\n if (items !== undefined) input.items = items;\n\n const data = await ctx.gql.workspace.request<{\n hokCreateList: Record<string, unknown>;\n }>(ops.CREATE_LIST, { input });\n return jsonResult(data.hokCreateList);\n } catch (error) {\n ctx.logger.error('hookmovies lists_create failed', { error: String(error) });\n return errorResult(\n `Failed to create list: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'lists_update')),\n {\n title: 'Update List',\n description:\n 'Update the calling user’s own list (self-scoped). At least one mutable field must be provided. Set `items` to replace the list contents.',\n inputSchema: {\n id: z.string().describe('List ID'),\n name: z.string().optional().describe('Updated name'),\n description: z.string().optional().describe('Updated description'),\n visibility: ListVisibilityEnum.optional().describe('Updated visibility'),\n items: JsonValue.optional().describe('Replacement list items JSON'),\n },\n },\n async ({ id, name, description, visibility, items }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (description !== undefined) input.description = description;\n if (visibility !== undefined) input.visibility = visibility;\n if (items !== undefined) input.items = items;\n\n if (Object.keys(input).length === 0) {\n return errorResult(\n 'No updates specified — provide at least one of name/description/visibility/items',\n );\n }\n\n const data = await ctx.gql.workspace.request<{\n hokUpdateList: Record<string, unknown>;\n }>(ops.UPDATE_LIST, { id, input });\n return jsonResult(data.hokUpdateList);\n } catch (error) {\n ctx.logger.error('hookmovies lists_update failed', { error: String(error) });\n return errorResult(\n `Failed to update list: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'lists_delete')),\n {\n title: 'Delete List',\n description: 'Delete the calling user’s own list (self-scoped). Returns true on success.',\n inputSchema: { id: z.string().describe('List ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ hokDeleteList: boolean }>(ops.DELETE_LIST, {\n id,\n });\n return jsonResult({ deleted: data.hokDeleteList });\n } catch (error) {\n ctx.logger.error('hookmovies lists_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete list: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies watch-progress tools — continue-watching (self-scoped).\n *\n * Surface (2): progress_record, progress_my.\n * Backed by hokRecordProgress (upsert) / hokMyWatchProgress. Both are\n * self-scoped to the calling user.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\n\nexport function registerProgressTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'progress_record')),\n {\n title: 'Record Watch Progress',\n description:\n 'Upsert the calling user’s watch progress for a title/episode (self-scoped). `titleId` and `positionSeconds` are required; set `completed` when finished.',\n inputSchema: {\n titleId: z.string().min(1).describe('Title being watched'),\n positionSeconds: z.number().int().describe('Current playback position in seconds'),\n episodeId: z.string().optional().describe('Episode ID (for episodic titles)'),\n completed: z.boolean().optional().describe('Whether playback is complete (default false)'),\n lastDevice: z.string().optional().describe('Identifier of the device last used'),\n },\n },\n async ({ titleId, positionSeconds, episodeId, completed, lastDevice }) => {\n try {\n const input: Record<string, unknown> = { titleId, positionSeconds };\n if (episodeId !== undefined) input.episodeId = episodeId;\n if (completed !== undefined) input.completed = completed;\n if (lastDevice !== undefined) input.lastDevice = lastDevice;\n\n const data = await ctx.gql.workspace.request<{\n hokRecordProgress: Record<string, unknown>;\n }>(ops.RECORD_PROGRESS, { input });\n return jsonResult(data.hokRecordProgress);\n } catch (error) {\n ctx.logger.error('hookmovies progress_record failed', { error: String(error) });\n return errorResult(\n `Failed to record watch progress: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'progress_my')),\n {\n title: 'My Watch Progress',\n description:\n 'List the calling user’s continue-watching / progress entries (self-scoped), optionally filtered to a single title.',\n inputSchema: {\n titleId: z.string().optional().describe('Filter to progress for a single title'),\n },\n },\n async ({ titleId }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n hokMyWatchProgress: Array<Record<string, unknown>>;\n }>(ops.MY_WATCH_PROGRESS, { titleId });\n return jsonResult(data.hokMyWatchProgress);\n } catch (error) {\n ctx.logger.error('hookmovies progress_my failed', { error: String(error) });\n return errorResult(\n `Failed to list my watch progress: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * HookMovies health tool.\n *\n * Surface (1): health. Maps to the @public hokHealth query (no auth required) —\n * a liveness/identity probe for the HookMovies subgraph.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\n\nexport function registerHealthTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'health')),\n {\n title: 'HookMovies Health Check',\n description:\n 'Public health probe for the HookMovies subgraph (hokHealth). Requires no authentication.',\n inputSchema: {},\n },\n async () => {\n try {\n const data = await ctx.gql.workspace.request<{ hokHealth: string }>(ops.HEALTH, {});\n return jsonResult({ ok: true, status: data.hokHealth });\n } catch (error) {\n ctx.logger.error('hookmovies health failed', { error: String(error) });\n return errorResult(\n `HookMovies health check failed: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpResourceUri, type McpContext } from '../../core/index.js';\nimport { LIST_TITLES, LIST_PRODUCTIONS, LIST_STUDIOS } from './operations.js';\n\n/**\n * Read-only HookMovies MCP resources. URIs are product-prefixed via\n * mcpResourceUri so they don't collide when multiple MCP servers run side by\n * side. Each is tracked at function entry so the shell manifest reflects what\n * was registered even though registration is imperative.\n */\nexport function registerHookmoviesResources(\n server: McpServer,\n ctx: McpContext,\n track: (uri: string) => string,\n): void {\n const schemaUri = track(mcpResourceUri(ctx.productName, 'schema'));\n const catalogUri = track(mcpResourceUri(ctx.productName, 'catalog'));\n const productionsUri = track(mcpResourceUri(ctx.productName, 'productions'));\n const studiosUri = track(mcpResourceUri(ctx.productName, 'studios'));\n\n // <product>://schema — domain overview\n server.registerResource(\n 'hookmovies-schema',\n schemaUri,\n {\n title: 'HookMovies Domain Schema',\n description:\n 'Overview of the HookMovies streaming + production domain — entities, enums, and the per-entity tool surface.',\n mimeType: 'text/plain',\n },\n async () => {\n ctx.logger.debug(`Resource ${schemaUri} requested`);\n const schema = `# HookMovies Domain (Overview)\n\nMulti-language global streaming + production network.\n\n## Entities\n- HokTitle (+HokSeason, HokEpisode, HokCredit) — catalog title and its structure\n- HokStudio — studio / distributor\n- HokPerson — talent (cast/crew), linked to titles via HokCredit\n- HokProduction — a production on the slate (can yield a Title)\n- HokAudition (+HokApplication) — casting call and its applications\n- HokReview — viewer rating + moderation\n- HokRightsWindow — licensing window (modes/territories/time)\n- HokEntitlement (+HokEntitlementCheck) — viewer access grants\n- HokList — user watchlist / playlist (self-scoped)\n- HokWatchProgress — continue-watching entries (self-scoped)\n\n## Enums\n- TitleType: ANIME, COLLECTION, DOCUMENTARY, FAST_CHANNEL, LIVE_EVENT, LONG_FORM, MOVIE, SERIES, SHORT_FILM, SHORT_FORM, TRAILER\n- TitleStatus: ARCHIVED, DRAFT, IN_REVIEW, PUBLISHED, SCHEDULED, UNPUBLISHED\n- CreditRole: ACTOR, CINEMATOGRAPHER, COMPOSER, CREW, DIRECTOR, EDITOR, PRODUCER, VOICE_ACTOR, WRITER\n- ProductionStatus: DEVELOPMENT, GREENLIT, IN_PRODUCTION, POST_PRODUCTION, RELEASED, SHELVED\n- AuditionStatus: CALLBACKS, CANCELLED, CLOSED, OPEN, REVIEWING\n- ApplicationStatus: CALLBACK, OFFERED, REJECTED, SHORTLISTED, SUBMITTED, WITHDRAWN\n- ReviewStatus: HIDDEN, PENDING, PUBLISHED, REMOVED\n- RightsWindowStatus: ACTIVE, DRAFT, EXPIRED, PENDING, REVOKED\n- MonetizationMode: FAST, FREE_AVOD, PPV, SVOD, TVOD_BUY, TVOD_RENT\n- EntitlementSource: FREE, PROMO, PURCHASE, RENTAL, SUBSCRIPTION\n- ListKind: PLAYLIST, WATCHLIST\n- ListVisibility: PRIVATE, PUBLIC, UNLISTED\n\n## Tool groups\ntitles, studios, people (+credits), episodes (+seasons), productions,\nauditions (+applications), reviews, rights, entitlements, lists, progress, health.\nAll run against the WORKSPACE gateway (workspace-scoped) except the public\nhealth probe and the self-scoped viewer surfaces (lists, progress,\nentitlements_my/check, applications_apply, reviews_create/delete).\n`;\n return {\n contents: [{ uri: schemaUri, text: schema, mimeType: 'text/plain' }],\n };\n },\n );\n\n // <product>://catalog — first published titles\n server.registerResource(\n 'hookmovies-catalog',\n catalogUri,\n {\n title: 'HookMovies Catalog',\n description: 'The first 50 titles in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${catalogUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ hokListTitles: unknown }>(LIST_TITLES, {\n pagination: { limit: 50, offset: 0 },\n });\n return {\n contents: [\n {\n uri: catalogUri,\n text: JSON.stringify(data.hokListTitles, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: catalogUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://productions — current slate\n server.registerResource(\n 'hookmovies-productions',\n productionsUri,\n {\n title: 'HookMovies Production Slate',\n description: 'The first 50 productions in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${productionsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ hokListProductions: unknown }>(\n LIST_PRODUCTIONS,\n { pagination: { limit: 50, offset: 0 } },\n );\n return {\n contents: [\n {\n uri: productionsUri,\n text: JSON.stringify(data.hokListProductions, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: productionsUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://studios — studio directory\n server.registerResource(\n 'hookmovies-studios',\n studiosUri,\n {\n title: 'HookMovies Studio Directory',\n description: 'The first 50 studios in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${studiosUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ hokListStudios: unknown }>(LIST_STUDIOS, {\n pagination: { limit: 50, offset: 0 },\n });\n return {\n contents: [\n {\n uri: studiosUri,\n text: JSON.stringify(data.hokListStudios, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: studiosUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n}\n","import { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpPromptName, type McpContext } from '../../core/index.js';\n\n/**\n * HookMovies MCP prompts — guided multi-step workflows. Names are\n * product-prefixed via mcpPromptName and tracked at function entry.\n */\nexport function registerHookmoviesPrompts(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n const p = ctx.productName;\n const releaseName = track(mcpPromptName(p, 'title-release'));\n const castingName = track(mcpPromptName(p, 'casting-ops'));\n\n // <product>-title-release — catalog a title and take it live\n server.registerPrompt(\n releaseName,\n {\n title: 'Title Release',\n description:\n 'Guide for cataloguing a HookMovies title end to end: create the studio (if needed) and title, add credits, structure seasons/episodes, declare rights, and publish.',\n argsSchema: {\n title: z.string().optional().describe('Title name'),\n type: z.string().optional().describe('Title type (MOVIE, SERIES, etc.)'),\n },\n },\n ({ title, type }) => {\n ctx.logger.debug(`Prompt ${releaseName} called`, { title, type });\n const titleNote = title ? `Use the title \"${title}\".` : 'Ask the user for the title name.';\n const typeNote = type ? `Use type ${type}.` : 'Help the user pick a TitleType.';\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Help me catalogue and release a HookMovies title.\n\n1. **Studio (optional)**: If the title needs a new studio, use ${p}_studios_create, else find one with ${p}_studios_list.\n2. **Create Title**: Use ${p}_titles_create. ${titleNote} ${typeNote} Set genres, synopsis, releaseYear, and (optionally) studioId.\n3. **Add Credits**: For each cast/crew member, ensure the person exists (${p}_people_create or ${p}_people_list) then credit them with ${p}_credits_add (role, characterName, billingOrder).\n4. **Structure (SERIES only)**: Use ${p}_seasons_create per season and ${p}_episodes_create per episode (attach a fileId for the master). Verify with ${p}_episodes_list.\n5. **Rights**: Use ${p}_rights_create to declare monetization modes + territories, then ${p}_rights_transition to ACTIVE.\n6. **Publish**: Use ${p}_titles_transition to move the title DRAFT → IN_REVIEW → PUBLISHED (or SCHEDULED).\n\nShow results at each step and confirm before publishing.`,\n },\n },\n ],\n };\n },\n );\n\n // <product>-casting-ops — run a casting workflow\n server.registerPrompt(\n castingName,\n {\n title: 'Casting Operations',\n description:\n 'Workflow for running casting on a production: open auditions, triage applications, score applicants, and close out roles.',\n argsSchema: {\n productionId: z.string().optional().describe('Production ID to cast'),\n },\n },\n ({ productionId }) => {\n ctx.logger.debug(`Prompt ${castingName} called`, { productionId });\n const prodNote = productionId\n ? `Operate production \"${productionId}\".`\n : `First list productions with ${p}_productions_list and pick one.`;\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Run HookMovies casting operations. ${prodNote}\n\n1. **Open Auditions**: Use ${p}_auditions_create for each role (roleName, pay, deadline). Review open ones with ${p}_auditions_list filtered by productionId and status=OPEN.\n2. **Triage Applications**: For each audition use ${p}_applications_list to review submissions and self-tapes.\n3. **Score Applicants**: Use ${p}_applications_score to rate promising applicants and shortlist/callback.\n4. **Close Roles**: When casting is decided, use ${p}_auditions_close to stop further submissions.\n5. **Advance Production**: Once cast, use ${p}_productions_transition to move the production forward (e.g. GREENLIT → IN_PRODUCTION).\n\nSummarize what needs attention after each step.`,\n },\n },\n ],\n };\n },\n );\n}\n","/**\n * HookMovies module — domain module for the future-products ecosystem program.\n *\n * Covers all @key entities of wspace-hookmovies-svc grouped into per-entity\n * sub-APIs: titles, studios, people (+credits), episodes (+seasons),\n * productions, auditions (+applications), reviews, rights, entitlements, lists,\n * progress, and a public health probe. Mirrors the rich kadaikodi/vibecontrols\n * modules' structure (tools/<entity>.ts + resources.ts + prompts.ts) and the\n * canonical tags module's typing discipline.\n *\n * Backend: ~/products/hookmovies/wspace-hookmovies-svc/ (Hive service name\n * `hookmovies`). All operations run against the WORKSPACE gateway; the @public\n * hokHealth probe is exposed as `<product>_health`.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpContext, McpModule, ModuleRegistration } from '../../core/index.js';\nimport { registerTitleTools } from './tools/titles.js';\nimport { registerStudioTools } from './tools/studios.js';\nimport { registerPeopleTools } from './tools/people.js';\nimport { registerEpisodeTools } from './tools/episodes.js';\nimport { registerProductionTools } from './tools/productions.js';\nimport { registerAuditionTools } from './tools/auditions.js';\nimport { registerReviewTools } from './tools/reviews.js';\nimport { registerRightsTools } from './tools/rights.js';\nimport { registerEntitlementTools } from './tools/entitlements.js';\nimport { registerListTools } from './tools/lists.js';\nimport { registerProgressTools } from './tools/progress.js';\nimport { registerHealthTools } from './tools/health.js';\nimport { registerHookmoviesResources } from './resources.js';\nimport { registerHookmoviesPrompts } from './prompts.js';\n\nconst hookmoviesModule: McpModule = {\n id: 'hookmovies',\n version: '0.0.1',\n displayName: 'HookMovies',\n dependsOn: ['auth'],\n capabilities: { tools: {}, resources: {}, prompts: {} },\n\n register(server: McpServer, ctx: McpContext): ModuleRegistration {\n const tools: string[] = [];\n const resources: string[] = [];\n const prompts: string[] = [];\n\n const trackTool = (n: string): string => {\n tools.push(n);\n return n;\n };\n const trackResource = (uri: string): string => {\n resources.push(uri);\n return uri;\n };\n const trackPrompt = (n: string): string => {\n prompts.push(n);\n return n;\n };\n\n registerTitleTools(server, ctx, trackTool);\n registerStudioTools(server, ctx, trackTool);\n registerPeopleTools(server, ctx, trackTool);\n registerEpisodeTools(server, ctx, trackTool);\n registerProductionTools(server, ctx, trackTool);\n registerAuditionTools(server, ctx, trackTool);\n registerReviewTools(server, ctx, trackTool);\n registerRightsTools(server, ctx, trackTool);\n registerEntitlementTools(server, ctx, trackTool);\n registerListTools(server, ctx, trackTool);\n registerProgressTools(server, ctx, trackTool);\n registerHealthTools(server, ctx, trackTool);\n\n registerHookmoviesResources(server, ctx, trackResource);\n registerHookmoviesPrompts(server, ctx, trackPrompt);\n\n return { tools, resources, prompts };\n },\n};\n\nexport default hookmoviesModule;\n"]}
@@ -0,0 +1,8 @@
1
+ import { c as McpModule } from '../../module-DFQBZNK6.cjs';
2
+ import '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import '../../context-1jV4NsLv.cjs';
4
+ import 'graphql-request';
5
+
6
+ declare const hookmoviesModule: McpModule;
7
+
8
+ export { hookmoviesModule as default };
@@ -0,0 +1,8 @@
1
+ import { c as McpModule } from '../../module-DBcfA-i3.js';
2
+ import '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import '../../context-1jV4NsLv.js';
4
+ import 'graphql-request';
5
+
6
+ declare const hookmoviesModule: McpModule;
7
+
8
+ export { hookmoviesModule as default };