@burdenoff/mcp-libs 2026.825.2 → 2026.828.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 (135) hide show
  1. package/dist/{chunk-YOSQUY3M.js → chunk-BSNL65PZ.js} +2 -2
  2. package/dist/{chunk-YOSQUY3M.js.map → chunk-BSNL65PZ.js.map} +1 -1
  3. package/dist/{chunk-RHWHUY5Y.js → chunk-QQYJVKJE.js} +3 -3
  4. package/dist/{chunk-RHWHUY5Y.js.map → chunk-QQYJVKJE.js.map} +1 -1
  5. package/dist/core/index.cjs.map +1 -1
  6. package/dist/core/index.d.cts +1 -1
  7. package/dist/core/index.d.ts +1 -1
  8. package/dist/core/index.js +1 -1
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.d.cts +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/modules/adaptercloud/index.cjs.map +1 -1
  14. package/dist/modules/adaptercloud/index.js +1 -1
  15. package/dist/modules/artistrybase/index.cjs +8 -8
  16. package/dist/modules/artistrybase/index.cjs.map +1 -1
  17. package/dist/modules/artistrybase/index.js +9 -9
  18. package/dist/modules/artistrybase/index.js.map +1 -1
  19. package/dist/modules/assethandler/index.cjs.map +1 -1
  20. package/dist/modules/assethandler/index.js +1 -1
  21. package/dist/modules/atheletebridge/index.cjs.map +1 -1
  22. package/dist/modules/atheletebridge/index.js +1 -1
  23. package/dist/modules/auth/index.cjs.map +1 -1
  24. package/dist/modules/auth/index.js +3 -3
  25. package/dist/modules/billing/index.cjs.map +1 -1
  26. package/dist/modules/billing/index.js +1 -1
  27. package/dist/modules/brainyrich/index.cjs +13 -3
  28. package/dist/modules/brainyrich/index.cjs.map +1 -1
  29. package/dist/modules/brainyrich/index.js +14 -4
  30. package/dist/modules/brainyrich/index.js.map +1 -1
  31. package/dist/modules/buildmyiq/index.cjs.map +1 -1
  32. package/dist/modules/buildmyiq/index.js +1 -1
  33. package/dist/modules/channels/index.cjs.map +1 -1
  34. package/dist/modules/channels/index.js +1 -1
  35. package/dist/modules/collabkin/index.cjs.map +1 -1
  36. package/dist/modules/collabkin/index.js +1 -1
  37. package/dist/modules/comradecircle/index.cjs.map +1 -1
  38. package/dist/modules/comradecircle/index.js +1 -1
  39. package/dist/modules/conversations/index.cjs.map +1 -1
  40. package/dist/modules/conversations/index.js +1 -1
  41. package/dist/modules/coolandlovely/index.cjs.map +1 -1
  42. package/dist/modules/coolandlovely/index.js +1 -1
  43. package/dist/modules/cosmicintersection/index.cjs.map +1 -1
  44. package/dist/modules/cosmicintersection/index.js +1 -1
  45. package/dist/modules/crewfoundry/index.cjs.map +1 -1
  46. package/dist/modules/crewfoundry/index.js +1 -1
  47. package/dist/modules/devportal/index.cjs.map +1 -1
  48. package/dist/modules/devportal/index.js +1 -1
  49. package/dist/modules/ecoimpacthub/index.cjs +12 -6
  50. package/dist/modules/ecoimpacthub/index.cjs.map +1 -1
  51. package/dist/modules/ecoimpacthub/index.js +13 -7
  52. package/dist/modules/ecoimpacthub/index.js.map +1 -1
  53. package/dist/modules/eventfullymanaged/index.cjs.map +1 -1
  54. package/dist/modules/eventfullymanaged/index.js +1 -1
  55. package/dist/modules/export/index.cjs.map +1 -1
  56. package/dist/modules/export/index.js +1 -1
  57. package/dist/modules/files/index.cjs.map +1 -1
  58. package/dist/modules/files/index.js +1 -1
  59. package/dist/modules/ggnomad/index.cjs.map +1 -1
  60. package/dist/modules/ggnomad/index.js +1 -1
  61. package/dist/modules/govcitizenhub/index.cjs.map +1 -1
  62. package/dist/modules/govcitizenhub/index.js +1 -1
  63. package/dist/modules/groups/index.cjs.map +1 -1
  64. package/dist/modules/groups/index.js +1 -1
  65. package/dist/modules/headshotmarketing/index.cjs.map +1 -1
  66. package/dist/modules/headshotmarketing/index.js +1 -1
  67. package/dist/modules/health/index.cjs.map +1 -1
  68. package/dist/modules/health/index.js +1 -1
  69. package/dist/modules/hookmovies/index.cjs.map +1 -1
  70. package/dist/modules/hookmovies/index.js +1 -1
  71. package/dist/modules/housingvista/index.cjs.map +1 -1
  72. package/dist/modules/housingvista/index.js +1 -1
  73. package/dist/modules/integrations/index.cjs.map +1 -1
  74. package/dist/modules/integrations/index.js +1 -1
  75. package/dist/modules/intelwatchtower/index.cjs.map +1 -1
  76. package/dist/modules/intelwatchtower/index.js +1 -1
  77. package/dist/modules/kadaikodi/index.cjs.map +1 -1
  78. package/dist/modules/kadaikodi/index.js +1 -1
  79. package/dist/modules/labsofscience/index.cjs.map +1 -1
  80. package/dist/modules/labsofscience/index.js +1 -1
  81. package/dist/modules/manufacturedops/index.cjs.map +1 -1
  82. package/dist/modules/manufacturedops/index.js +1 -1
  83. package/dist/modules/movethewheels/index.cjs.map +1 -1
  84. package/dist/modules/movethewheels/index.js +1 -1
  85. package/dist/modules/mybodyshield/index.cjs.map +1 -1
  86. package/dist/modules/mybodyshield/index.js +1 -1
  87. package/dist/modules/notifications/index.cjs.map +1 -1
  88. package/dist/modules/notifications/index.js +1 -1
  89. package/dist/modules/organizations/index.cjs.map +1 -1
  90. package/dist/modules/organizations/index.js +1 -1
  91. package/dist/modules/planmagnet/index.cjs.map +1 -1
  92. package/dist/modules/planmagnet/index.js +1 -1
  93. package/dist/modules/products/index.cjs.map +1 -1
  94. package/dist/modules/products/index.js +1 -1
  95. package/dist/modules/proserviceworld/index.cjs.map +1 -1
  96. package/dist/modules/proserviceworld/index.js +1 -1
  97. package/dist/modules/rbac/index.cjs.map +1 -1
  98. package/dist/modules/rbac/index.js +1 -1
  99. package/dist/modules/sandbox/index.cjs.map +1 -1
  100. package/dist/modules/sandbox/index.js +1 -1
  101. package/dist/modules/scheduler/index.cjs.map +1 -1
  102. package/dist/modules/scheduler/index.js +1 -1
  103. package/dist/modules/security/index.cjs.map +1 -1
  104. package/dist/modules/security/index.js +1 -1
  105. package/dist/modules/semanticfed/index.cjs.map +1 -1
  106. package/dist/modules/semanticfed/index.js +1 -1
  107. package/dist/modules/store/index.cjs.map +1 -1
  108. package/dist/modules/store/index.js +1 -1
  109. package/dist/modules/subscriberbot/index.cjs.map +1 -1
  110. package/dist/modules/subscriberbot/index.js +1 -1
  111. package/dist/modules/support/index.cjs.map +1 -1
  112. package/dist/modules/support/index.js +1 -1
  113. package/dist/modules/tags/index.cjs.map +1 -1
  114. package/dist/modules/tags/index.js +1 -1
  115. package/dist/modules/technospam/index.cjs.map +1 -1
  116. package/dist/modules/technospam/index.js +1 -1
  117. package/dist/modules/theculturepost/index.cjs +16 -4
  118. package/dist/modules/theculturepost/index.cjs.map +1 -1
  119. package/dist/modules/theculturepost/index.js +17 -5
  120. package/dist/modules/theculturepost/index.js.map +1 -1
  121. package/dist/modules/theglobalfuel/index.cjs.map +1 -1
  122. package/dist/modules/theglobalfuel/index.js +1 -1
  123. package/dist/modules/timecampus/index.cjs +18 -9
  124. package/dist/modules/timecampus/index.cjs.map +1 -1
  125. package/dist/modules/timecampus/index.js +19 -10
  126. package/dist/modules/timecampus/index.js.map +1 -1
  127. package/dist/modules/tours/index.cjs.map +1 -1
  128. package/dist/modules/tours/index.js +1 -1
  129. package/dist/modules/vibecontrols/index.cjs.map +1 -1
  130. package/dist/modules/vibecontrols/index.js +2 -2
  131. package/dist/modules/workspaces/index.cjs.map +1 -1
  132. package/dist/modules/workspaces/index.js +1 -1
  133. package/dist/{tool-name-Bvb36qmq.d.cts → tool-name-DYWaobFF.d.cts} +1 -1
  134. package/dist/{tool-name-BaPNMZdj.d.ts → tool-name-nso0HFYX.d.ts} +1 -1
  135. package/package.json +30 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/errors.ts","../../../src/core/tool-name.ts","../../../src/core/result.ts","../../../src/modules/theglobalfuel/operations.ts","../../../src/modules/theglobalfuel/tools/shared.ts","../../../src/modules/theglobalfuel/tools/assets.ts","../../../src/modules/theglobalfuel/tools/production.ts","../../../src/modules/theglobalfuel/tools/reserves.ts","../../../src/modules/theglobalfuel/tools/contracts.ts","../../../src/modules/theglobalfuel/tools/shipments.ts","../../../src/modules/theglobalfuel/tools/inventory.ts","../../../src/modules/theglobalfuel/tools/emissions.ts","../../../src/modules/theglobalfuel/tools/compliance.ts","../../../src/modules/theglobalfuel/tools/health.ts","../../../src/modules/theglobalfuel/resources.ts","../../../src/modules/theglobalfuel/prompts.ts","../../../src/modules/theglobalfuel/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 * 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/**\n * Name-based hint heuristics for MCP `annotations` (readOnlyHint /\n * destructiveHint). Used by tool-governance.ts to auto-fill annotations for\n * the fleet of product modules that call `server.registerTool` directly\n * (bypassing the `registerTool()` core helper) and so never set them\n * explicitly today (BOFF-3903). Deliberately conservative — matched against\n * whole `_`-delimited segments so e.g. `timeentries_delete` and\n * `pomodoro_delete_goal` match, but a hypothetical `undeletable_check`\n * would not.\n *\n * A module can always override the inference by passing an explicit\n * `annotations` object to `registerTool()` / `server.registerTool()`.\n */\nconst DESTRUCTIVE_NAME_SEGMENT = /(?:^|_)delete(?:_|$)/i;\nconst READ_ONLY_NAME_SEGMENT = /(?:^|_)(?:list|get|search|check|read|count|stats|by_date)(?:_|$)/i;\n\n/** True when a tool name looks destructive (irreversibly deletes data) by naming convention. */\nexport function inferDestructiveHint(toolName: string): boolean {\n return DESTRUCTIVE_NAME_SEGMENT.test(toolName);\n}\n\n/**\n * True when a tool name looks read-only by naming convention. Never true for\n * a name that also looks destructive (a tool can't be both).\n */\nexport function inferReadOnlyHint(toolName: string): boolean {\n return !inferDestructiveHint(toolName) && READ_ONLY_NAME_SEGMENT.test(toolName);\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';\nimport type { ToolAnnotations } from './tool-governance.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 * Explicit MCP annotations (readOnlyHint / destructiveHint / ...). Optional\n * — when omitted, `wrapServerWithToolGovernance` (applied centrally in\n * `createMcpServer`) infers them from the tool name. Set this to override\n * the inference for a tool whose name doesn't match the naming convention.\n */\n annotations?: ToolAnnotations;\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 ...(metadata.annotations ? { annotations: metadata.annotations } : {}),\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 * Centralized GraphQL operations for the Theglobalfuel MCP module.\n *\n * Theglobalfuel is the Energy, Mineral & Commodity Resource Operating System\n * (future-products ecosystem). Backend subgraph:\n * ~/products/theglobalfuel/wspace-theglobalfuel-svc/ (Hive service name\n * `theglobalfuel`).\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 — Theglobalfuel inputs do NOT carry a workspaceId.\n *\n * Every product-owned type/field is `The*` / `the*` prefixed per the subgraph's\n * GraphQL naming contract; operations call the REAL root field names.\n *\n * Uses template-string interpolation (not gql tagged fragments) to match the\n * canonical kadaikodi / vibecontrols modules' operations files.\n */\n\n// ---------------------------------------------------------------------------\n// Field fragments\n// ---------------------------------------------------------------------------\n\nexport const ASSET_FIELDS = `\n id name code commodity kind status capacityPerDay capacityUnit\n workingInterestPct operatorLeadId location latitude longitude\n commissionedAt decommissionedAt tags workspaceId createdAt updatedAt\n`;\n\nexport const PRODUCTION_FIELDS = `\n id assetId periodStart periodEnd volume unit grade downtimeHours notes\n workspaceId createdAt updatedAt\n`;\n\nexport const RESERVE_FIELDS = `\n id assetId category recoverable recoveryFactor unit methodology asOfDate\n notes workspaceId createdAt updatedAt\n`;\n\nexport const CONTRACT_FIELDS = `\n id reference counterparty side commodity status contractedVolume\n deliveredVolume unit pricePerUnit currency priceIndex pricingBasis\n deliveryLocation startDate endDate signedAt notes tags workspaceId\n createdAt updatedAt\n`;\n\nexport const SHIPMENT_FIELDS = `\n id contractId reference status mode volume unit origin destination carrier\n scheduledAt departedAt deliveredAt notes document { id } workspaceId\n createdAt updatedAt\n`;\n\nexport const INVENTORY_FIELDS = `\n id lotCode commodity status quantity unit grade unitValue currency\n location assetId producedAt notes workspaceId createdAt updatedAt\n`;\n\nexport const EMISSION_FIELDS = `\n id assetId scope co2eTonnes periodStart periodEnd source methodology\n verified verifiedAt notes workspaceId createdAt updatedAt\n`;\n\nexport const COMPLIANCE_FIELDS = `\n id title category status authority certNumber assetId ownerId issuedAt\n expiresAt notes tags evidence { id } workspaceId createdAt updatedAt\n`;\n\nexport const PAGE_INFO_FIELDS = `\n pageInfo { cursor hasMore }\n`;\n\n// ---------------------------------------------------------------------------\n// Assets (registry)\n// ---------------------------------------------------------------------------\n\nexport const GET_ASSET = `\n query TheglobalfuelGetAsset($id: ID!) {\n theAsset(id: $id) {\n ${ASSET_FIELDS}\n productionRecords { id periodStart periodEnd volume unit }\n reserveEstimates { id category recoverable unit asOfDate }\n }\n }\n`;\n\nexport const LIST_ASSETS = `\n query TheglobalfuelListAssets(\n $commodity: TheCommodityType\n $kind: TheAssetKind\n $status: TheAssetStatus\n $pagination: PaginationInput\n ) {\n theListAssets(\n commodity: $commodity\n kind: $kind\n status: $status\n pagination: $pagination\n ) {\n items { ${ASSET_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_ASSET = `\n mutation TheglobalfuelCreateAsset($input: TheCreateAssetInput!) {\n theCreateAsset(input: $input) {\n ${ASSET_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_ASSET = `\n mutation TheglobalfuelUpdateAsset($id: ID!, $input: TheUpdateAssetInput!) {\n theUpdateAsset(id: $id, input: $input) {\n ${ASSET_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_ASSET = `\n mutation TheglobalfuelTransitionAsset($id: ID!, $status: TheAssetStatus!) {\n theTransitionAsset(id: $id, status: $status) {\n ${ASSET_FIELDS}\n }\n }\n`;\n\nexport const RETIRE_ASSET = `\n mutation TheglobalfuelRetireAsset($id: ID!) {\n theRetireAsset(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Production records (registry)\n// ---------------------------------------------------------------------------\n\nexport const LIST_PRODUCTION_RECORDS = `\n query TheglobalfuelListProductionRecords($assetId: ID, $pagination: PaginationInput) {\n theListProductionRecords(assetId: $assetId, pagination: $pagination) {\n items { ${PRODUCTION_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const RECORD_PRODUCTION = `\n mutation TheglobalfuelRecordProduction($input: TheRecordProductionInput!) {\n theRecordProduction(input: $input) {\n ${PRODUCTION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Reserve estimates (registry)\n// ---------------------------------------------------------------------------\n\nexport const LIST_RESERVE_ESTIMATES = `\n query TheglobalfuelListReserveEstimates($assetId: ID, $category: TheReserveCategory) {\n theListReserveEstimates(assetId: $assetId, category: $category) {\n ${RESERVE_FIELDS}\n }\n }\n`;\n\nexport const CREATE_RESERVE_ESTIMATE = `\n mutation TheglobalfuelCreateReserveEstimate($input: TheCreateReserveEstimateInput!) {\n theCreateReserveEstimate(input: $input) {\n ${RESERVE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Offtake contracts (commerce)\n// ---------------------------------------------------------------------------\n\nexport const GET_CONTRACT = `\n query TheglobalfuelGetContract($id: ID!) {\n theContract(id: $id) {\n ${CONTRACT_FIELDS}\n shipments { id reference status volume unit }\n }\n }\n`;\n\nexport const LIST_CONTRACTS = `\n query TheglobalfuelListContracts(\n $commodity: TheCommodityType\n $side: TheContractSide\n $status: TheContractStatus\n $pagination: PaginationInput\n ) {\n theListContracts(\n commodity: $commodity\n side: $side\n status: $status\n pagination: $pagination\n ) {\n items { ${CONTRACT_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_CONTRACT = `\n mutation TheglobalfuelCreateContract($input: TheCreateOfftakeContractInput!) {\n theCreateContract(input: $input) {\n ${CONTRACT_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_CONTRACT = `\n mutation TheglobalfuelUpdateContract($id: ID!, $input: TheUpdateOfftakeContractInput!) {\n theUpdateContract(id: $id, input: $input) {\n ${CONTRACT_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_CONTRACT = `\n mutation TheglobalfuelTransitionContract($id: ID!, $status: TheContractStatus!) {\n theTransitionContract(id: $id, status: $status) {\n ${CONTRACT_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Shipments (commerce)\n// ---------------------------------------------------------------------------\n\nexport const LIST_SHIPMENTS = `\n query TheglobalfuelListShipments($contractId: ID, $status: TheShipmentStatus) {\n theListShipments(contractId: $contractId, status: $status) {\n ${SHIPMENT_FIELDS}\n }\n }\n`;\n\nexport const SCHEDULE_SHIPMENT = `\n mutation TheglobalfuelScheduleShipment($input: TheCreateShipmentInput!) {\n theScheduleShipment(input: $input) {\n ${SHIPMENT_FIELDS}\n }\n }\n`;\n\nexport const DELIVER_SHIPMENT = `\n mutation TheglobalfuelDeliverShipment($id: ID!) {\n theDeliverShipment(id: $id) {\n ${SHIPMENT_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Inventory lots (commerce)\n// ---------------------------------------------------------------------------\n\nexport const LIST_INVENTORY_LOTS = `\n query TheglobalfuelListInventoryLots(\n $commodity: TheCommodityType\n $status: TheInventoryStatus\n $pagination: PaginationInput\n ) {\n theListInventoryLots(commodity: $commodity, status: $status, pagination: $pagination) {\n items { ${INVENTORY_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_INVENTORY_LOT = `\n mutation TheglobalfuelCreateInventoryLot($input: TheCreateInventoryLotInput!) {\n theCreateInventoryLot(input: $input) {\n ${INVENTORY_FIELDS}\n }\n }\n`;\n\nexport const SET_INVENTORY_LOT_STATUS = `\n mutation TheglobalfuelSetInventoryLotStatus($id: ID!, $status: TheInventoryStatus!) {\n theSetInventoryLotStatus(id: $id, status: $status) {\n ${INVENTORY_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Emission records (sustainability)\n// ---------------------------------------------------------------------------\n\nexport const LIST_EMISSION_RECORDS = `\n query TheglobalfuelListEmissionRecords(\n $assetId: ID\n $scope: TheEmissionScope\n $pagination: PaginationInput\n ) {\n theListEmissionRecords(assetId: $assetId, scope: $scope, pagination: $pagination) {\n items { ${EMISSION_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const RECORD_EMISSION = `\n mutation TheglobalfuelRecordEmission($input: TheRecordEmissionInput!) {\n theRecordEmission(input: $input) {\n ${EMISSION_FIELDS}\n }\n }\n`;\n\nexport const VERIFY_EMISSION = `\n mutation TheglobalfuelVerifyEmission($id: ID!) {\n theVerifyEmission(id: $id) {\n ${EMISSION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Compliance certifications (sustainability)\n// ---------------------------------------------------------------------------\n\nexport const GET_COMPLIANCE_CERT = `\n query TheglobalfuelGetComplianceCert($id: ID!) {\n theComplianceCert(id: $id) {\n ${COMPLIANCE_FIELDS}\n }\n }\n`;\n\nexport const LIST_COMPLIANCE_CERTS = `\n query TheglobalfuelListComplianceCerts(\n $assetId: ID\n $category: TheComplianceCategory\n $status: TheComplianceStatus\n ) {\n theListComplianceCerts(assetId: $assetId, category: $category, status: $status) {\n ${COMPLIANCE_FIELDS}\n }\n }\n`;\n\nexport const CREATE_COMPLIANCE_CERT = `\n mutation TheglobalfuelCreateComplianceCert($input: TheCreateComplianceCertInput!) {\n theCreateComplianceCert(input: $input) {\n ${COMPLIANCE_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_COMPLIANCE_CERT = `\n mutation TheglobalfuelTransitionComplianceCert($id: ID!, $status: TheComplianceStatus!) {\n theTransitionComplianceCert(id: $id, status: $status) {\n ${COMPLIANCE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Health\n// ---------------------------------------------------------------------------\n\nexport const HEALTH = `\n query TheglobalfuelHealth {\n theHealth\n }\n`;\n","/**\n * Shared zod schemas for the Theglobalfuel 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. Enum values are SCREAMING_SNAKE\n * exactly as defined in the `theglobalfuel` subgraph schema.\n */\n\nimport { z } from 'zod';\n\nexport const CommodityTypeEnum = z\n .enum([\n 'BAUXITE',\n 'BIOFUEL',\n 'COAL',\n 'COPPER',\n 'CRUDE_OIL',\n 'ELECTRICITY',\n 'GOLD',\n 'HYDROGEN',\n 'IRON_ORE',\n 'LITHIUM',\n 'LNG',\n 'NATURAL_GAS',\n 'RARE_EARTH',\n ])\n .describe('Energy / mineral / commodity resource type');\n\nexport const AssetKindEnum = z\n .enum([\n 'GAS_FIELD',\n 'MINE',\n 'OIL_FIELD',\n 'PIPELINE',\n 'POWER_PLANT',\n 'PROCESSING_PLANT',\n 'QUARRY',\n 'REFINERY',\n 'SOLAR_FARM',\n 'STORAGE_TERMINAL',\n 'WELL',\n 'WIND_FARM',\n ])\n .describe('Physical kind of a resource asset');\n\nexport const AssetStatusEnum = z\n .enum([\n 'APPRAISAL',\n 'DECOMMISSIONING',\n 'DEVELOPMENT',\n 'EXPLORATION',\n 'PRODUCING',\n 'RETIRED',\n 'SUSPENDED',\n ])\n .describe('Lifecycle status of a resource asset');\n\nexport const UnitEnum = z\n .enum(['BARRELS', 'CUBIC_METERS', 'GJ', 'KILOGRAMS', 'MCF', 'MWH', 'TONNES'])\n .describe('Unit of measure for volume / capacity / quantity');\n\nexport const ReserveCategoryEnum = z\n .enum(['CONTINGENT', 'POSSIBLE', 'PROBABLE', 'PROSPECTIVE', 'PROVED'])\n .describe('Reserve-estimate confidence category');\n\nexport const ContractSideEnum = z\n .enum(['BUY', 'SELL'])\n .describe('Whether the offtake contract is a BUY or SELL position');\n\nexport const ContractStatusEnum = z\n .enum(['ACTIVE', 'COMPLETED', 'DRAFT', 'NEGOTIATION', 'SIGNED', 'SUSPENDED', 'TERMINATED'])\n .describe('Lifecycle status of an offtake contract');\n\nexport const PricingBasisEnum = z\n .enum(['FIXED', 'FORMULA', 'INDEX_LINKED', 'SPOT'])\n .describe('Pricing basis for an offtake contract');\n\nexport const ShipmentStatusEnum = z\n .enum(['CANCELLED', 'DELIVERED', 'IN_TRANSIT', 'LOADING', 'SCHEDULED'])\n .describe('Lifecycle status of a commodity shipment');\n\nexport const TransportModeEnum = z\n .enum(['GRID', 'PIPELINE', 'RAIL', 'TANKER', 'TRUCK', 'VESSEL_BULK'])\n .describe('Transport mode for a shipment');\n\nexport const InventoryStatusEnum = z\n .enum(['AVAILABLE', 'CONSUMED', 'IN_TRANSIT', 'RESERVED', 'WRITTEN_OFF'])\n .describe('Lifecycle status of an inventory lot');\n\nexport const EmissionScopeEnum = z\n .enum(['SCOPE_1', 'SCOPE_2', 'SCOPE_3'])\n .describe('GHG Protocol emission scope');\n\nexport const ComplianceCategoryEnum = z\n .enum([\n 'CARBON_CREDIT',\n 'CHAIN_OF_CUSTODY',\n 'EMISSIONS_REPORT',\n 'ENVIRONMENTAL_PERMIT',\n 'EXPORT_LICENSE',\n 'EXTRACTION_LICENSE',\n 'SAFETY_AUDIT',\n ])\n .describe('Category of a compliance certification');\n\nexport const ComplianceStatusEnum = z\n .enum(['APPROVED', 'EXPIRED', 'PENDING', 'REJECTED', 'REVOKED', 'SUBMITTED'])\n .describe('Lifecycle status of a compliance certification');\n\n/** ISO-8601 DateTime string hint for the `DateTime` scalar inputs. */\nexport const DateTimeString = z.string().describe('ISO-8601 DateTime, e.g. 2026-06-27T00:00:00Z');\n","/**\n * Theglobalfuel asset tools — resource-asset registry CRUD + lifecycle.\n *\n * Surface (6): assets_{get,list,create,update,transition,retire}.\n * Root fields: theAsset / theListAssets / theCreateAsset / theUpdateAsset /\n * theTransitionAsset / theRetireAsset — all called by their REAL names.\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 {\n CommodityTypeEnum,\n AssetKindEnum,\n AssetStatusEnum,\n UnitEnum,\n DateTimeString,\n} from './shared.js';\n\nexport function registerAssetTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_get')),\n {\n title: 'Get Asset',\n description:\n 'Fetch a single resource asset by ID, including its recent production records and reserve estimates.',\n inputSchema: { id: z.string().describe('Asset ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theAsset: Record<string, unknown> | null;\n }>(ops.GET_ASSET, { id });\n if (!data.theAsset) return errorResult(`Asset ${id} not found`);\n return jsonResult(data.theAsset);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_get failed', { error: String(error) });\n return errorResult(\n `Failed to get asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_list')),\n {\n title: 'List Assets',\n description:\n 'List resource assets in the bound workspace with optional commodity/kind/status filters and pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n commodity: CommodityTypeEnum.optional().describe('Filter by commodity type'),\n kind: AssetKindEnum.optional().describe('Filter by asset kind'),\n status: AssetStatusEnum.optional().describe('Filter by lifecycle status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ commodity, kind, status, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListAssets: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_ASSETS, {\n commodity,\n kind,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListAssets);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_list failed', { error: String(error) });\n return errorResult(\n `Failed to list assets: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_create')),\n {\n title: 'Create Asset',\n description:\n 'Register a new resource asset (well, mine, field, plant, etc.). `name` and `commodity` are required; `kind` defaults to WELL and `status` to EXPLORATION.',\n inputSchema: {\n name: z.string().min(1).describe('Asset display name'),\n commodity: CommodityTypeEnum.describe('Commodity produced by the asset'),\n kind: AssetKindEnum.optional().describe('Asset kind (default WELL)'),\n code: z.string().optional().describe('Operator asset code / short identifier'),\n capacityPerDay: z.number().optional().describe('Nameplate capacity per day'),\n capacityUnit: UnitEnum.optional().describe('Unit for capacityPerDay (default BARRELS)'),\n workingInterestPct: z\n .number()\n .optional()\n .describe('Working interest percentage held (0–100)'),\n operatorLeadId: z.string().optional().describe('User ID of the operator lead'),\n location: z.string().optional().describe('Free-text location / basin name'),\n latitude: z.number().optional().describe('Latitude (decimal degrees)'),\n longitude: z.number().optional().describe('Longitude (decimal degrees)'),\n commissionedAt: DateTimeString.optional().describe('Commissioning date'),\n status: AssetStatusEnum.optional().describe(\n 'Initial lifecycle status (default EXPLORATION)',\n ),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n name,\n commodity,\n kind,\n code,\n capacityPerDay,\n capacityUnit,\n workingInterestPct,\n operatorLeadId,\n location,\n latitude,\n longitude,\n commissionedAt,\n status,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { name, commodity };\n if (kind !== undefined) input.kind = kind;\n if (code !== undefined) input.code = code;\n if (capacityPerDay !== undefined) input.capacityPerDay = capacityPerDay;\n if (capacityUnit !== undefined) input.capacityUnit = capacityUnit;\n if (workingInterestPct !== undefined) input.workingInterestPct = workingInterestPct;\n if (operatorLeadId !== undefined) input.operatorLeadId = operatorLeadId;\n if (location !== undefined) input.location = location;\n if (latitude !== undefined) input.latitude = latitude;\n if (longitude !== undefined) input.longitude = longitude;\n if (commissionedAt !== undefined) input.commissionedAt = commissionedAt;\n if (status !== undefined) input.status = status;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n theCreateAsset: Record<string, unknown>;\n }>(ops.CREATE_ASSET, { input });\n return jsonResult(data.theCreateAsset);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_create failed', { error: String(error) });\n return errorResult(\n `Failed to create asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_update')),\n {\n title: 'Update Asset',\n description:\n 'Update a resource asset. At least one mutable field must be provided. Use `assets_transition` / `assets_retire` for lifecycle changes.',\n inputSchema: {\n id: z.string().describe('Asset ID'),\n name: z.string().optional().describe('Updated name'),\n commodity: CommodityTypeEnum.optional().describe('Updated commodity'),\n kind: AssetKindEnum.optional().describe('Updated asset kind'),\n code: z.string().optional().describe('Updated asset code'),\n capacityPerDay: z.number().optional().describe('Updated capacity per day'),\n capacityUnit: UnitEnum.optional().describe('Updated capacity unit'),\n workingInterestPct: z.number().optional().describe('Updated working interest percentage'),\n operatorLeadId: z.string().optional().describe('Updated operator lead user ID'),\n location: z.string().optional().describe('Updated location'),\n latitude: z.number().optional().describe('Updated latitude'),\n longitude: z.number().optional().describe('Updated longitude'),\n commissionedAt: DateTimeString.optional().describe('Updated commissioning date'),\n decommissionedAt: DateTimeString.optional().describe('Decommissioning date'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({\n id,\n name,\n commodity,\n kind,\n code,\n capacityPerDay,\n capacityUnit,\n workingInterestPct,\n operatorLeadId,\n location,\n latitude,\n longitude,\n commissionedAt,\n decommissionedAt,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (commodity !== undefined) input.commodity = commodity;\n if (kind !== undefined) input.kind = kind;\n if (code !== undefined) input.code = code;\n if (capacityPerDay !== undefined) input.capacityPerDay = capacityPerDay;\n if (capacityUnit !== undefined) input.capacityUnit = capacityUnit;\n if (workingInterestPct !== undefined) input.workingInterestPct = workingInterestPct;\n if (operatorLeadId !== undefined) input.operatorLeadId = operatorLeadId;\n if (location !== undefined) input.location = location;\n if (latitude !== undefined) input.latitude = latitude;\n if (longitude !== undefined) input.longitude = longitude;\n if (commissionedAt !== undefined) input.commissionedAt = commissionedAt;\n if (decommissionedAt !== undefined) input.decommissionedAt = decommissionedAt;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult('No updates specified — provide at least one mutable asset field');\n }\n\n const data = await ctx.gql.workspace.request<{\n theUpdateAsset: Record<string, unknown>;\n }>(ops.UPDATE_ASSET, { id, input });\n return jsonResult(data.theUpdateAsset);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_update failed', { error: String(error) });\n return errorResult(\n `Failed to update asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_transition')),\n {\n title: 'Transition Asset',\n description:\n 'Advance an asset through its lifecycle (validated transitions), e.g. EXPLORATION → APPRAISAL → DEVELOPMENT → PRODUCING.',\n inputSchema: {\n id: z.string().describe('Asset ID'),\n status: AssetStatusEnum.describe('Target lifecycle status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theTransitionAsset: Record<string, unknown>;\n }>(ops.TRANSITION_ASSET, { id, status });\n return jsonResult(data.theTransitionAsset);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_retire')),\n {\n title: 'Retire Asset',\n description: 'Retire (decommission) an asset. Returns true on success.',\n inputSchema: { id: z.string().describe('Asset ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ theRetireAsset: boolean }>(\n ops.RETIRE_ASSET,\n { id },\n );\n return jsonResult({ retired: data.theRetireAsset });\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_retire failed', { error: String(error) });\n return errorResult(\n `Failed to retire asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel production-record tools.\n *\n * Surface (2): production_{list,record}.\n * Root fields: theListProductionRecords (connection) / theRecordProduction.\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 { UnitEnum, DateTimeString } 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, 'production_list')),\n {\n title: 'List Production Records',\n description:\n 'List production records, optionally filtered by asset, with pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n assetId: z.string().optional().describe('Filter by asset ID'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ assetId, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListProductionRecords: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_PRODUCTION_RECORDS, {\n assetId,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListProductionRecords);\n } catch (error) {\n ctx.logger.error('theglobalfuel production_list failed', { error: String(error) });\n return errorResult(\n `Failed to list production records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'production_record')),\n {\n title: 'Record Production',\n description:\n 'Record a production figure for an asset over a period. `assetId`, `periodStart`, `periodEnd`, and `volume` are required.',\n inputSchema: {\n assetId: z.string().min(1).describe('Asset the production is recorded against'),\n periodStart: DateTimeString.describe('Production period start'),\n periodEnd: DateTimeString.describe('Production period end'),\n volume: z.number().describe('Produced volume in the given unit'),\n unit: UnitEnum.optional().describe('Volume unit (default BARRELS)'),\n grade: z.number().optional().describe('Average grade / quality factor'),\n downtimeHours: z.number().optional().describe('Downtime hours during the period'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({ assetId, periodStart, periodEnd, volume, unit, grade, downtimeHours, notes }) => {\n try {\n const input: Record<string, unknown> = { assetId, periodStart, periodEnd, volume };\n if (unit !== undefined) input.unit = unit;\n if (grade !== undefined) input.grade = grade;\n if (downtimeHours !== undefined) input.downtimeHours = downtimeHours;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theRecordProduction: Record<string, unknown>;\n }>(ops.RECORD_PRODUCTION, { input });\n return jsonResult(data.theRecordProduction);\n } catch (error) {\n ctx.logger.error('theglobalfuel production_record failed', { error: String(error) });\n return errorResult(\n `Failed to record production: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel reserve-estimate tools.\n *\n * Surface (2): reserves_{list,create}.\n * Root fields: theListReserveEstimates (plain array) / theCreateReserveEstimate.\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 { ReserveCategoryEnum, UnitEnum, DateTimeString } from './shared.js';\n\nexport function registerReserveTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'reserves_list')),\n {\n title: 'List Reserve Estimates',\n description:\n 'List reserve estimates, optionally filtered by asset and/or reserve category. Returns a plain array.',\n inputSchema: {\n assetId: z.string().optional().describe('Filter by asset ID'),\n category: ReserveCategoryEnum.optional().describe('Filter by reserve category'),\n },\n },\n async ({ assetId, category }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListReserveEstimates: Array<Record<string, unknown>>;\n }>(ops.LIST_RESERVE_ESTIMATES, { assetId, category });\n return jsonResult(data.theListReserveEstimates);\n } catch (error) {\n ctx.logger.error('theglobalfuel reserves_list failed', { error: String(error) });\n return errorResult(\n `Failed to list reserve estimates: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'reserves_create')),\n {\n title: 'Create Reserve Estimate',\n description:\n 'Create a reserve estimate for an asset. `assetId`, `asOfDate`, and `recoverable` are required; `category` defaults to PROVED.',\n inputSchema: {\n assetId: z.string().min(1).describe('Asset the estimate is for'),\n asOfDate: DateTimeString.describe('As-of valuation date'),\n recoverable: z.number().describe('Recoverable quantity in the given unit'),\n category: ReserveCategoryEnum.optional().describe('Reserve category (default PROVED)'),\n recoveryFactor: z.number().optional().describe('Recovery factor (0–1)'),\n unit: UnitEnum.optional().describe('Unit for recoverable (default BARRELS)'),\n methodology: z.string().optional().describe('Estimation methodology'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({\n assetId,\n asOfDate,\n recoverable,\n category,\n recoveryFactor,\n unit,\n methodology,\n notes,\n }) => {\n try {\n const input: Record<string, unknown> = { assetId, asOfDate, recoverable };\n if (category !== undefined) input.category = category;\n if (recoveryFactor !== undefined) input.recoveryFactor = recoveryFactor;\n if (unit !== undefined) input.unit = unit;\n if (methodology !== undefined) input.methodology = methodology;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theCreateReserveEstimate: Record<string, unknown>;\n }>(ops.CREATE_RESERVE_ESTIMATE, { input });\n return jsonResult(data.theCreateReserveEstimate);\n } catch (error) {\n ctx.logger.error('theglobalfuel reserves_create failed', { error: String(error) });\n return errorResult(\n `Failed to create reserve estimate: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel offtake-contract tools.\n *\n * Surface (5): contracts_{get,list,create,update,transition}.\n * Root fields: theContract / theListContracts (connection) / theCreateContract /\n * theUpdateContract / theTransitionContract.\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 {\n CommodityTypeEnum,\n ContractSideEnum,\n ContractStatusEnum,\n PricingBasisEnum,\n UnitEnum,\n DateTimeString,\n} from './shared.js';\n\nexport function registerContractTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_get')),\n {\n title: 'Get Offtake Contract',\n description: 'Fetch a single offtake contract by ID, including its shipments.',\n inputSchema: { id: z.string().describe('Contract ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theContract: Record<string, unknown> | null;\n }>(ops.GET_CONTRACT, { id });\n if (!data.theContract) return errorResult(`Contract ${id} not found`);\n return jsonResult(data.theContract);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_get failed', { error: String(error) });\n return errorResult(\n `Failed to get contract: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_list')),\n {\n title: 'List Offtake Contracts',\n description:\n 'List offtake contracts with optional commodity/side/status filters and pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n commodity: CommodityTypeEnum.optional().describe('Filter by commodity'),\n side: ContractSideEnum.optional().describe('Filter by BUY/SELL side'),\n status: ContractStatusEnum.optional().describe('Filter by contract status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ commodity, side, status, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListContracts: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_CONTRACTS, {\n commodity,\n side,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListContracts);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_list failed', { error: String(error) });\n return errorResult(\n `Failed to list contracts: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_create')),\n {\n title: 'Create Offtake Contract',\n description:\n 'Create an offtake contract. `reference`, `counterparty`, and `commodity` are required; `side` defaults to SELL and `pricingBasis` to FIXED.',\n inputSchema: {\n reference: z.string().min(1).describe('Unique contract reference'),\n counterparty: z.string().min(1).describe('Counterparty name'),\n commodity: CommodityTypeEnum.describe('Contracted commodity'),\n side: ContractSideEnum.optional().describe('BUY or SELL (default SELL)'),\n contractedVolume: z.number().optional().describe('Total contracted volume'),\n unit: UnitEnum.optional().describe('Volume unit (default BARRELS)'),\n pricePerUnit: z.number().optional().describe('Fixed price per unit'),\n currency: z.string().optional().describe('Pricing currency (e.g. USD)'),\n priceIndex: z.string().optional().describe('Reference price index (for index-linked)'),\n pricingBasis: PricingBasisEnum.optional().describe('Pricing basis (default FIXED)'),\n deliveryLocation: z.string().optional().describe('Delivery location'),\n startDate: DateTimeString.optional().describe('Contract start date'),\n endDate: DateTimeString.optional().describe('Contract end date'),\n notes: z.string().optional().describe('Free-text notes'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n reference,\n counterparty,\n commodity,\n side,\n contractedVolume,\n unit,\n pricePerUnit,\n currency,\n priceIndex,\n pricingBasis,\n deliveryLocation,\n startDate,\n endDate,\n notes,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { reference, counterparty, commodity };\n if (side !== undefined) input.side = side;\n if (contractedVolume !== undefined) input.contractedVolume = contractedVolume;\n if (unit !== undefined) input.unit = unit;\n if (pricePerUnit !== undefined) input.pricePerUnit = pricePerUnit;\n if (currency !== undefined) input.currency = currency;\n if (priceIndex !== undefined) input.priceIndex = priceIndex;\n if (pricingBasis !== undefined) input.pricingBasis = pricingBasis;\n if (deliveryLocation !== undefined) input.deliveryLocation = deliveryLocation;\n if (startDate !== undefined) input.startDate = startDate;\n if (endDate !== undefined) input.endDate = endDate;\n if (notes !== undefined) input.notes = notes;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n theCreateContract: Record<string, unknown>;\n }>(ops.CREATE_CONTRACT, { input });\n return jsonResult(data.theCreateContract);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_create failed', { error: String(error) });\n return errorResult(\n `Failed to create contract: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_update')),\n {\n title: 'Update Offtake Contract',\n description:\n 'Update an offtake contract. At least one mutable field must be provided. Use `contracts_transition` for lifecycle changes.',\n inputSchema: {\n id: z.string().describe('Contract ID'),\n counterparty: z.string().optional().describe('Updated counterparty'),\n contractedVolume: z.number().optional().describe('Updated contracted volume'),\n unit: UnitEnum.optional().describe('Updated volume unit'),\n pricePerUnit: z.number().optional().describe('Updated price per unit'),\n currency: z.string().optional().describe('Updated currency'),\n priceIndex: z.string().optional().describe('Updated price index'),\n pricingBasis: PricingBasisEnum.optional().describe('Updated pricing basis'),\n deliveryLocation: z.string().optional().describe('Updated delivery location'),\n startDate: DateTimeString.optional().describe('Updated start date'),\n endDate: DateTimeString.optional().describe('Updated end date'),\n notes: z.string().optional().describe('Updated notes'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({\n id,\n counterparty,\n contractedVolume,\n unit,\n pricePerUnit,\n currency,\n priceIndex,\n pricingBasis,\n deliveryLocation,\n startDate,\n endDate,\n notes,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (counterparty !== undefined) input.counterparty = counterparty;\n if (contractedVolume !== undefined) input.contractedVolume = contractedVolume;\n if (unit !== undefined) input.unit = unit;\n if (pricePerUnit !== undefined) input.pricePerUnit = pricePerUnit;\n if (currency !== undefined) input.currency = currency;\n if (priceIndex !== undefined) input.priceIndex = priceIndex;\n if (pricingBasis !== undefined) input.pricingBasis = pricingBasis;\n if (deliveryLocation !== undefined) input.deliveryLocation = deliveryLocation;\n if (startDate !== undefined) input.startDate = startDate;\n if (endDate !== undefined) input.endDate = endDate;\n if (notes !== undefined) input.notes = notes;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult('No updates specified — provide at least one mutable contract field');\n }\n\n const data = await ctx.gql.workspace.request<{\n theUpdateContract: Record<string, unknown>;\n }>(ops.UPDATE_CONTRACT, { id, input });\n return jsonResult(data.theUpdateContract);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_update failed', { error: String(error) });\n return errorResult(\n `Failed to update contract: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_transition')),\n {\n title: 'Transition Offtake Contract',\n description:\n 'Advance an offtake contract through its lifecycle (validated transitions), e.g. DRAFT → NEGOTIATION → SIGNED → ACTIVE → COMPLETED.',\n inputSchema: {\n id: z.string().describe('Contract ID'),\n status: ContractStatusEnum.describe('Target contract status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theTransitionContract: Record<string, unknown>;\n }>(ops.TRANSITION_CONTRACT, { id, status });\n return jsonResult(data.theTransitionContract);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition contract: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel shipment tools.\n *\n * Surface (3): shipments_{list,schedule,deliver}.\n * Root fields: theListShipments (plain array) / theScheduleShipment /\n * theDeliverShipment.\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 { ShipmentStatusEnum, TransportModeEnum, UnitEnum, DateTimeString } from './shared.js';\n\nexport function registerShipmentTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'shipments_list')),\n {\n title: 'List Shipments',\n description:\n 'List commodity shipments, optionally filtered by contract and/or status. Returns a plain array.',\n inputSchema: {\n contractId: z.string().optional().describe('Filter by contract ID'),\n status: ShipmentStatusEnum.optional().describe('Filter by shipment status'),\n },\n },\n async ({ contractId, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListShipments: Array<Record<string, unknown>>;\n }>(ops.LIST_SHIPMENTS, { contractId, status });\n return jsonResult(data.theListShipments);\n } catch (error) {\n ctx.logger.error('theglobalfuel shipments_list failed', { error: String(error) });\n return errorResult(\n `Failed to list shipments: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'shipments_schedule')),\n {\n title: 'Schedule Shipment',\n description:\n 'Schedule a shipment against a contract. `contractId`, `reference`, and `volume` are required; `mode` defaults to PIPELINE.',\n inputSchema: {\n contractId: z.string().min(1).describe('Contract the shipment fulfils'),\n reference: z.string().min(1).describe('Unique shipment reference'),\n volume: z.number().describe('Shipment volume in the given unit'),\n unit: UnitEnum.optional().describe('Volume unit (default BARRELS)'),\n mode: TransportModeEnum.optional().describe('Transport mode (default PIPELINE)'),\n origin: z.string().optional().describe('Origin location'),\n destination: z.string().optional().describe('Destination location'),\n carrier: z.string().optional().describe('Carrier / transporter name'),\n scheduledAt: DateTimeString.optional().describe('Scheduled departure time'),\n documentFileId: z\n .string()\n .optional()\n .describe('wspace-files-svc File ID (bill of lading / certificate)'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({\n contractId,\n reference,\n volume,\n unit,\n mode,\n origin,\n destination,\n carrier,\n scheduledAt,\n documentFileId,\n notes,\n }) => {\n try {\n const input: Record<string, unknown> = { contractId, reference, volume };\n if (unit !== undefined) input.unit = unit;\n if (mode !== undefined) input.mode = mode;\n if (origin !== undefined) input.origin = origin;\n if (destination !== undefined) input.destination = destination;\n if (carrier !== undefined) input.carrier = carrier;\n if (scheduledAt !== undefined) input.scheduledAt = scheduledAt;\n if (documentFileId !== undefined) input.documentFileId = documentFileId;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theScheduleShipment: Record<string, unknown>;\n }>(ops.SCHEDULE_SHIPMENT, { input });\n return jsonResult(data.theScheduleShipment);\n } catch (error) {\n ctx.logger.error('theglobalfuel shipments_schedule failed', { error: String(error) });\n return errorResult(\n `Failed to schedule shipment: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'shipments_deliver')),\n {\n title: 'Deliver Shipment',\n description:\n \"Mark a shipment delivered and roll its volume into the contract's delivered total.\",\n inputSchema: { id: z.string().describe('Shipment ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theDeliverShipment: Record<string, unknown>;\n }>(ops.DELIVER_SHIPMENT, { id });\n return jsonResult(data.theDeliverShipment);\n } catch (error) {\n ctx.logger.error('theglobalfuel shipments_deliver failed', { error: String(error) });\n return errorResult(\n `Failed to deliver shipment: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel inventory-lot tools.\n *\n * Surface (3): inventory_{list,create,set_status}.\n * Root fields: theListInventoryLots (connection) / theCreateInventoryLot /\n * theSetInventoryLotStatus.\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 { CommodityTypeEnum, InventoryStatusEnum, UnitEnum, DateTimeString } from './shared.js';\n\nexport function registerInventoryTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'inventory_list')),\n {\n title: 'List Inventory Lots',\n description:\n 'List inventory lots with optional commodity/status filters and pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n commodity: CommodityTypeEnum.optional().describe('Filter by commodity'),\n status: InventoryStatusEnum.optional().describe('Filter by inventory status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ commodity, status, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListInventoryLots: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_INVENTORY_LOTS, {\n commodity,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListInventoryLots);\n } catch (error) {\n ctx.logger.error('theglobalfuel inventory_list failed', { error: String(error) });\n return errorResult(\n `Failed to list inventory lots: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'inventory_create')),\n {\n title: 'Create Inventory Lot',\n description:\n 'Create an inventory lot. `lotCode`, `commodity`, and `quantity` are required; `unit` defaults to BARRELS.',\n inputSchema: {\n lotCode: z.string().min(1).describe('Unique lot code'),\n commodity: CommodityTypeEnum.describe('Commodity stored in the lot'),\n quantity: z.number().describe('Quantity in the given unit'),\n unit: UnitEnum.optional().describe('Quantity unit (default BARRELS)'),\n grade: z.number().optional().describe('Average grade / quality factor'),\n unitValue: z.number().optional().describe('Per-unit value'),\n currency: z.string().optional().describe('Currency for unitValue'),\n location: z.string().optional().describe('Storage location'),\n assetId: z.string().optional().describe('Source asset ID'),\n producedAt: DateTimeString.optional().describe('Production / acquisition date'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({\n lotCode,\n commodity,\n quantity,\n unit,\n grade,\n unitValue,\n currency,\n location,\n assetId,\n producedAt,\n notes,\n }) => {\n try {\n const input: Record<string, unknown> = { lotCode, commodity, quantity };\n if (unit !== undefined) input.unit = unit;\n if (grade !== undefined) input.grade = grade;\n if (unitValue !== undefined) input.unitValue = unitValue;\n if (currency !== undefined) input.currency = currency;\n if (location !== undefined) input.location = location;\n if (assetId !== undefined) input.assetId = assetId;\n if (producedAt !== undefined) input.producedAt = producedAt;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theCreateInventoryLot: Record<string, unknown>;\n }>(ops.CREATE_INVENTORY_LOT, { input });\n return jsonResult(data.theCreateInventoryLot);\n } catch (error) {\n ctx.logger.error('theglobalfuel inventory_create failed', { error: String(error) });\n return errorResult(\n `Failed to create inventory lot: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'inventory_set_status')),\n {\n title: 'Set Inventory Lot Status',\n description:\n 'Set the status of an inventory lot (AVAILABLE / RESERVED / IN_TRANSIT / CONSUMED / WRITTEN_OFF).',\n inputSchema: {\n id: z.string().describe('Inventory lot ID'),\n status: InventoryStatusEnum.describe('New inventory status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theSetInventoryLotStatus: Record<string, unknown>;\n }>(ops.SET_INVENTORY_LOT_STATUS, { id, status });\n return jsonResult(data.theSetInventoryLotStatus);\n } catch (error) {\n ctx.logger.error('theglobalfuel inventory_set_status failed', { error: String(error) });\n return errorResult(\n `Failed to set inventory lot status: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel emission-record tools (ESG).\n *\n * Surface (3): emissions_{list,record,verify}.\n * Root fields: theListEmissionRecords (connection) / theRecordEmission /\n * theVerifyEmission.\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 { EmissionScopeEnum, DateTimeString } from './shared.js';\n\nexport function registerEmissionTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'emissions_list')),\n {\n title: 'List Emission Records',\n description:\n 'List GHG emission records with optional asset/scope filters and pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n assetId: z.string().optional().describe('Filter by asset ID'),\n scope: EmissionScopeEnum.optional().describe('Filter by emission scope'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ assetId, scope, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListEmissionRecords: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_EMISSION_RECORDS, {\n assetId,\n scope,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListEmissionRecords);\n } catch (error) {\n ctx.logger.error('theglobalfuel emissions_list failed', { error: String(error) });\n return errorResult(\n `Failed to list emission records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'emissions_record')),\n {\n title: 'Record Emission',\n description:\n 'Record a GHG emission figure for a period. `co2eTonnes`, `periodStart`, and `periodEnd` are required; `scope` defaults to SCOPE_1.',\n inputSchema: {\n co2eTonnes: z.number().describe('CO2-equivalent tonnes emitted'),\n periodStart: DateTimeString.describe('Reporting period start'),\n periodEnd: DateTimeString.describe('Reporting period end'),\n scope: EmissionScopeEnum.optional().describe('Emission scope (default SCOPE_1)'),\n assetId: z.string().optional().describe('Asset the emission is attributed to'),\n source: z.string().optional().describe('Emission source description'),\n methodology: z.string().optional().describe('Calculation methodology'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({ co2eTonnes, periodStart, periodEnd, scope, assetId, source, methodology, notes }) => {\n try {\n const input: Record<string, unknown> = { co2eTonnes, periodStart, periodEnd };\n if (scope !== undefined) input.scope = scope;\n if (assetId !== undefined) input.assetId = assetId;\n if (source !== undefined) input.source = source;\n if (methodology !== undefined) input.methodology = methodology;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theRecordEmission: Record<string, unknown>;\n }>(ops.RECORD_EMISSION, { input });\n return jsonResult(data.theRecordEmission);\n } catch (error) {\n ctx.logger.error('theglobalfuel emissions_record failed', { error: String(error) });\n return errorResult(\n `Failed to record emission: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'emissions_verify')),\n {\n title: 'Verify Emission',\n description: 'Mark an emission figure third-party verified.',\n inputSchema: { id: z.string().describe('Emission record ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theVerifyEmission: Record<string, unknown>;\n }>(ops.VERIFY_EMISSION, { id });\n return jsonResult(data.theVerifyEmission);\n } catch (error) {\n ctx.logger.error('theglobalfuel emissions_verify failed', { error: String(error) });\n return errorResult(\n `Failed to verify emission: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel compliance-certification tools (ESG / regulatory).\n *\n * Surface (4): compliance_{get,list,create,transition}.\n * Root fields: theComplianceCert / theListComplianceCerts (plain array) /\n * theCreateComplianceCert / theTransitionComplianceCert.\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 { ComplianceCategoryEnum, ComplianceStatusEnum, DateTimeString } from './shared.js';\n\nexport function registerComplianceTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'compliance_get')),\n {\n title: 'Get Compliance Certification',\n description:\n 'Fetch a single compliance certification by ID, including its evidence file reference.',\n inputSchema: { id: z.string().describe('Compliance certification ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theComplianceCert: Record<string, unknown> | null;\n }>(ops.GET_COMPLIANCE_CERT, { id });\n if (!data.theComplianceCert) return errorResult(`Compliance certification ${id} not found`);\n return jsonResult(data.theComplianceCert);\n } catch (error) {\n ctx.logger.error('theglobalfuel compliance_get failed', { error: String(error) });\n return errorResult(\n `Failed to get compliance certification: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'compliance_list')),\n {\n title: 'List Compliance Certifications',\n description:\n 'List compliance certifications with optional asset/category/status filters. Returns a plain array.',\n inputSchema: {\n assetId: z.string().optional().describe('Filter by asset ID'),\n category: ComplianceCategoryEnum.optional().describe('Filter by category'),\n status: ComplianceStatusEnum.optional().describe('Filter by status'),\n },\n },\n async ({ assetId, category, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListComplianceCerts: Array<Record<string, unknown>>;\n }>(ops.LIST_COMPLIANCE_CERTS, { assetId, category, status });\n return jsonResult(data.theListComplianceCerts);\n } catch (error) {\n ctx.logger.error('theglobalfuel compliance_list failed', { error: String(error) });\n return errorResult(\n `Failed to list compliance certifications: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'compliance_create')),\n {\n title: 'Create Compliance Certification',\n description:\n 'Create a compliance certification (permit, license, audit, carbon credit, etc.). `title` is required; `category` defaults to ENVIRONMENTAL_PERMIT.',\n inputSchema: {\n title: z.string().min(1).describe('Certification title'),\n category: ComplianceCategoryEnum.optional().describe(\n 'Category (default ENVIRONMENTAL_PERMIT)',\n ),\n assetId: z.string().optional().describe('Related asset ID'),\n authority: z.string().optional().describe('Issuing authority'),\n certNumber: z.string().optional().describe('Certificate / permit number'),\n evidenceFileId: z\n .string()\n .optional()\n .describe('wspace-files-svc File ID for the certificate document'),\n issuedAt: DateTimeString.optional().describe('Issue date'),\n expiresAt: DateTimeString.optional().describe('Expiry date'),\n ownerId: z.string().optional().describe('Owning user ID'),\n notes: z.string().optional().describe('Free-text notes'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n title,\n category,\n assetId,\n authority,\n certNumber,\n evidenceFileId,\n issuedAt,\n expiresAt,\n ownerId,\n notes,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { title };\n if (category !== undefined) input.category = category;\n if (assetId !== undefined) input.assetId = assetId;\n if (authority !== undefined) input.authority = authority;\n if (certNumber !== undefined) input.certNumber = certNumber;\n if (evidenceFileId !== undefined) input.evidenceFileId = evidenceFileId;\n if (issuedAt !== undefined) input.issuedAt = issuedAt;\n if (expiresAt !== undefined) input.expiresAt = expiresAt;\n if (ownerId !== undefined) input.ownerId = ownerId;\n if (notes !== undefined) input.notes = notes;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n theCreateComplianceCert: Record<string, unknown>;\n }>(ops.CREATE_COMPLIANCE_CERT, { input });\n return jsonResult(data.theCreateComplianceCert);\n } catch (error) {\n ctx.logger.error('theglobalfuel compliance_create failed', { error: String(error) });\n return errorResult(\n `Failed to create compliance certification: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'compliance_transition')),\n {\n title: 'Transition Compliance Certification',\n description:\n 'Advance a compliance certification through its lifecycle (validated transitions), e.g. PENDING → SUBMITTED → APPROVED.',\n inputSchema: {\n id: z.string().describe('Compliance certification ID'),\n status: ComplianceStatusEnum.describe('Target status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theTransitionComplianceCert: Record<string, unknown>;\n }>(ops.TRANSITION_COMPLIANCE_CERT, { id, status });\n return jsonResult(data.theTransitionComplianceCert);\n } catch (error) {\n ctx.logger.error('theglobalfuel compliance_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition compliance certification: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel health tool.\n *\n * Surface (1): health.\n * `health` maps to the @public theHealth query (no auth required).\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: 'Theglobalfuel Health Check',\n description:\n 'Public liveness/identity probe for the Theglobalfuel subgraph (theHealth). Requires no authentication.',\n inputSchema: {},\n },\n async () => {\n try {\n const data = await ctx.gql.workspace.request<{ theHealth: string }>(ops.HEALTH, {});\n return jsonResult({ ok: true, status: data.theHealth });\n } catch (error) {\n ctx.logger.error('theglobalfuel health failed', { error: String(error) });\n return errorResult(\n `Theglobalfuel 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_ASSETS, LIST_CONTRACTS, LIST_INVENTORY_LOTS } from './operations.js';\n\n/**\n * Read-only Theglobalfuel 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 registerTheglobalfuelResources(\n server: McpServer,\n ctx: McpContext,\n track: (uri: string) => string,\n): void {\n const schemaUri = track(mcpResourceUri(ctx.productName, 'schema'));\n const assetsUri = track(mcpResourceUri(ctx.productName, 'assets'));\n const contractsUri = track(mcpResourceUri(ctx.productName, 'contracts'));\n const inventoryUri = track(mcpResourceUri(ctx.productName, 'inventory'));\n\n // <product>://schema — domain overview\n server.registerResource(\n 'theglobalfuel-schema',\n schemaUri,\n {\n title: 'Theglobalfuel Domain Schema',\n description:\n 'Overview of the Theglobalfuel resource-operating-system 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 = `# Theglobalfuel Domain (Overview)\n\nEnergy, Mineral & Commodity Resource Operating System — the federated system of\nrecord for resource assets, production, reserves, offtake contracts, shipments,\ninventory, and ESG (emissions & compliance).\n\n## Entities\n- TheAsset — a resource asset (well, mine, field, plant, pipeline, ...)\n- TheProductionRecord — periodic production captured against an asset\n- TheReserveEstimate — recoverable-reserve estimate for an asset\n- TheOfftakeContract — a BUY/SELL offtake contract (+ shipments)\n- TheShipment — a commodity shipment fulfilling a contract\n- TheInventoryLot — a stored commodity lot\n- TheEmissionRecord — a GHG emission figure (Scope 1/2/3)\n- TheComplianceCert — a regulatory / ESG certification (permit, license, audit)\n\n## Enums\n- TheCommodityType: BAUXITE, BIOFUEL, COAL, COPPER, CRUDE_OIL, ELECTRICITY, GOLD, HYDROGEN, IRON_ORE, LITHIUM, LNG, NATURAL_GAS, RARE_EARTH\n- TheAssetKind: GAS_FIELD, MINE, OIL_FIELD, PIPELINE, POWER_PLANT, PROCESSING_PLANT, QUARRY, REFINERY, SOLAR_FARM, STORAGE_TERMINAL, WELL, WIND_FARM\n- TheAssetStatus: APPRAISAL, DECOMMISSIONING, DEVELOPMENT, EXPLORATION, PRODUCING, RETIRED, SUSPENDED\n- TheContractSide: BUY, SELL\n- TheContractStatus: ACTIVE, COMPLETED, DRAFT, NEGOTIATION, SIGNED, SUSPENDED, TERMINATED\n- TheShipmentStatus: CANCELLED, DELIVERED, IN_TRANSIT, LOADING, SCHEDULED\n- TheInventoryStatus: AVAILABLE, CONSUMED, IN_TRANSIT, RESERVED, WRITTEN_OFF\n- TheEmissionScope: SCOPE_1, SCOPE_2, SCOPE_3\n- TheComplianceStatus: APPROVED, EXPIRED, PENDING, REJECTED, REVOKED, SUBMITTED\n- TheUnit: BARRELS, CUBIC_METERS, GJ, KILOGRAMS, MCF, MWH, TONNES\n\n## Tool groups\nassets, production, reserves, contracts, shipments, inventory, emissions, compliance, health.\nAll run against the WORKSPACE gateway (workspace-scoped) except the public health probe.\n`;\n return {\n contents: [{ uri: schemaUri, text: schema, mimeType: 'text/plain' }],\n };\n },\n );\n\n // <product>://assets — asset registry\n server.registerResource(\n 'theglobalfuel-assets',\n assetsUri,\n {\n title: 'Theglobalfuel Asset Registry',\n description: 'The first 50 resource assets in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${assetsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ theListAssets: unknown }>(LIST_ASSETS, {\n pagination: { limit: 50, offset: 0 },\n });\n return {\n contents: [\n {\n uri: assetsUri,\n text: JSON.stringify(data.theListAssets, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: assetsUri,\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>://contracts — offtake contracts\n server.registerResource(\n 'theglobalfuel-contracts',\n contractsUri,\n {\n title: 'Theglobalfuel Offtake Contracts',\n description: 'The first 50 offtake contracts in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${contractsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ theListContracts: unknown }>(\n LIST_CONTRACTS,\n {\n pagination: { limit: 50, offset: 0 },\n },\n );\n return {\n contents: [\n {\n uri: contractsUri,\n text: JSON.stringify(data.theListContracts, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: contractsUri,\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>://inventory — inventory lots\n server.registerResource(\n 'theglobalfuel-inventory',\n inventoryUri,\n {\n title: 'Theglobalfuel Inventory Lots',\n description: 'The first 50 inventory lots in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${inventoryUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ theListInventoryLots: unknown }>(\n LIST_INVENTORY_LOTS,\n { pagination: { limit: 50, offset: 0 } },\n );\n return {\n contents: [\n {\n uri: inventoryUri,\n text: JSON.stringify(data.theListInventoryLots, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: inventoryUri,\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 * Theglobalfuel MCP prompts — guided multi-step workflows. Names are\n * product-prefixed via mcpPromptName and tracked at function entry.\n */\nexport function registerTheglobalfuelPrompts(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n const p = ctx.productName;\n const onboardingName = track(mcpPromptName(p, 'asset-onboarding'));\n const opsName = track(mcpPromptName(p, 'trade-ops'));\n\n // <product>-asset-onboarding — stand up an asset + production + reserves\n server.registerPrompt(\n onboardingName,\n {\n title: 'Asset Onboarding',\n description:\n 'Guide for bringing a new resource asset online: register the asset, capture an initial production record, log a reserve estimate, and transition it into production.',\n argsSchema: {\n name: z.string().optional().describe('Asset name'),\n commodity: z.string().optional().describe('Commodity type'),\n },\n },\n ({ name, commodity }) => {\n ctx.logger.debug(`Prompt ${onboardingName} called`, { name, commodity });\n const nameNote = name ? `Use the asset name \"${name}\".` : 'Ask the user for the asset name.';\n const commodityNote = commodity\n ? `Use commodity ${commodity}.`\n : 'Help the user pick a TheCommodityType.';\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Help me onboard a new Theglobalfuel resource asset.\n\n1. **Register Asset**: Use ${p}_assets_create. ${nameNote} ${commodityNote} Pick the asset kind (well, mine, field, plant, ...) and set capacityPerDay/capacityUnit and workingInterestPct if known.\n2. **Log Reserves**: Use ${p}_reserves_create with the new assetId, an asOfDate, a recoverable quantity, and a reserve category (PROVED/PROBABLE/...).\n3. **Capture Production**: Use ${p}_production_record for the first reporting period (periodStart, periodEnd, volume, unit).\n4. **Verify**: Use ${p}_assets_get to confirm the asset shows its production records and reserve estimates.\n5. **Go Live**: Use ${p}_assets_transition with status=DEVELOPMENT then PRODUCING when the asset is online.\n\nShow results at each step and confirm before transitioning to PRODUCING.`,\n },\n },\n ],\n };\n },\n );\n\n // <product>-trade-ops — daily commodity-trading + ESG operations\n server.registerPrompt(\n opsName,\n {\n title: 'Trade & ESG Operations',\n description:\n 'Daily operations workflow: review offtake contracts, advance shipments, reconcile inventory, and keep emissions & compliance current.',\n argsSchema: {\n contractId: z.string().optional().describe('Contract ID to operate'),\n },\n },\n ({ contractId }) => {\n ctx.logger.debug(`Prompt ${opsName} called`, { contractId });\n const contractNote = contractId\n ? `Operate contract \"${contractId}\".`\n : `First list contracts with ${p}_contracts_list and pick one.`;\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Run daily Theglobalfuel trade & ESG operations. ${contractNote}\n\n1. **Contracts**: Use ${p}_contracts_list (filter by status=ACTIVE) and ${p}_contracts_get to review delivered vs contracted volume.\n2. **Shipments**: Use ${p}_shipments_list filtered by contractId. Schedule new shipments with ${p}_shipments_schedule and mark arrivals with ${p}_shipments_deliver (this rolls volume into the contract).\n3. **Inventory**: Use ${p}_inventory_list to check available lots; use ${p}_inventory_set_status to RESERVED/IN_TRANSIT/CONSUMED as lots move.\n4. **Emissions**: Use ${p}_emissions_list for the period; record new figures with ${p}_emissions_record and mark audited ones with ${p}_emissions_verify.\n5. **Compliance**: Use ${p}_compliance_list to find permits/licenses near expiry; advance pending ones with ${p}_compliance_transition.\n\nSummarize what needs attention after each step.`,\n },\n },\n ],\n };\n },\n );\n}\n","/**\n * Theglobalfuel module — domain module for the future-products ecosystem program.\n *\n * Covers all 8 @key entities of wspace-theglobalfuel-svc grouped into\n * per-entity sub-APIs: assets, production, reserves, contracts, shipments,\n * inventory, emissions, compliance (+ a public health probe). Mirrors the\n * rich kadaikodi / vibecontrols module structure (tools/<entity>.ts +\n * resources.ts + prompts.ts) and the canonical tags module's typing discipline.\n *\n * Backend: ~/products/theglobalfuel/wspace-theglobalfuel-svc/\n * (Hive service name `theglobalfuel`). All operations run against the WORKSPACE\n * gateway; the @public theHealth 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 { registerAssetTools } from './tools/assets.js';\nimport { registerProductionTools } from './tools/production.js';\nimport { registerReserveTools } from './tools/reserves.js';\nimport { registerContractTools } from './tools/contracts.js';\nimport { registerShipmentTools } from './tools/shipments.js';\nimport { registerInventoryTools } from './tools/inventory.js';\nimport { registerEmissionTools } from './tools/emissions.js';\nimport { registerComplianceTools } from './tools/compliance.js';\nimport { registerHealthTools } from './tools/health.js';\nimport { registerTheglobalfuelResources } from './resources.js';\nimport { registerTheglobalfuelPrompts } from './prompts.js';\n\nconst theglobalfuelModule: McpModule = {\n id: 'theglobalfuel',\n version: '0.0.1',\n displayName: 'Theglobalfuel',\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 registerAssetTools(server, ctx, trackTool);\n registerProductionTools(server, ctx, trackTool);\n registerReserveTools(server, ctx, trackTool);\n registerContractTools(server, ctx, trackTool);\n registerShipmentTools(server, ctx, trackTool);\n registerInventoryTools(server, ctx, trackTool);\n registerEmissionTools(server, ctx, trackTool);\n registerComplianceTools(server, ctx, trackTool);\n registerHealthTools(server, ctx, trackTool);\n\n registerTheglobalfuelResources(server, ctx, trackResource);\n registerTheglobalfuelPrompts(server, ctx, trackPrompt);\n\n return { tools, resources, prompts };\n },\n};\n\nexport default theglobalfuelModule;\n"]}
1
+ {"version":3,"sources":["../../../src/core/errors.ts","../../../src/core/tool-name.ts","../../../src/core/result.ts","../../../src/modules/theglobalfuel/operations.ts","../../../src/modules/theglobalfuel/tools/shared.ts","../../../src/modules/theglobalfuel/tools/assets.ts","../../../src/modules/theglobalfuel/tools/production.ts","../../../src/modules/theglobalfuel/tools/reserves.ts","../../../src/modules/theglobalfuel/tools/contracts.ts","../../../src/modules/theglobalfuel/tools/shipments.ts","../../../src/modules/theglobalfuel/tools/inventory.ts","../../../src/modules/theglobalfuel/tools/emissions.ts","../../../src/modules/theglobalfuel/tools/compliance.ts","../../../src/modules/theglobalfuel/tools/health.ts","../../../src/modules/theglobalfuel/resources.ts","../../../src/modules/theglobalfuel/prompts.ts","../../../src/modules/theglobalfuel/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 * 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/**\n * Name-based hint heuristics for MCP `annotations` (readOnlyHint /\n * destructiveHint). Used by tool-governance.ts to auto-fill annotations for\n * the fleet of product modules that call `server.registerTool` directly\n * (bypassing the `registerTool()` core helper) and so never set them\n * explicitly today (BOFF-3903). Deliberately conservative — matched against\n * whole `_`-delimited segments so e.g. `timeentries_delete` and\n * `pomodoro_delete_goal` match, but a hypothetical `undeletable_check`\n * would not.\n *\n * A module can always override the inference by passing an explicit\n * `annotations` object to `registerTool()` / `server.registerTool()`.\n */\nconst DESTRUCTIVE_NAME_SEGMENT = /(?:^|_)delete(?:_|$)/i;\nconst READ_ONLY_NAME_SEGMENT = /(?:^|_)(?:list|get|search|check|read|count|stats|by_date)(?:_|$)/i;\n\n/** True when a tool name looks destructive (irreversibly deletes data) by naming convention. */\nexport function inferDestructiveHint(toolName: string): boolean {\n return DESTRUCTIVE_NAME_SEGMENT.test(toolName);\n}\n\n/**\n * True when a tool name looks read-only by naming convention. Never true for\n * a name that also looks destructive (a tool can't be both).\n */\nexport function inferReadOnlyHint(toolName: string): boolean {\n return !inferDestructiveHint(toolName) && READ_ONLY_NAME_SEGMENT.test(toolName);\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';\nimport type { ToolAnnotations } from './tool-governance.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 * Explicit MCP annotations (readOnlyHint / destructiveHint / ...). Optional\n * — when omitted, `wrapServerWithToolGovernance` (applied centrally in\n * `createMcpServer`) infers them from the tool name. Set this to override\n * the inference for a tool whose name doesn't match the naming convention.\n */\n annotations?: ToolAnnotations;\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 ...(metadata.annotations ? { annotations: metadata.annotations } : {}),\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 } } | 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 * Centralized GraphQL operations for the Theglobalfuel MCP module.\n *\n * Theglobalfuel is the Energy, Mineral & Commodity Resource Operating System\n * (future-products ecosystem). Backend subgraph:\n * ~/products/theglobalfuel/wspace-theglobalfuel-svc/ (Hive service name\n * `theglobalfuel`).\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 — Theglobalfuel inputs do NOT carry a workspaceId.\n *\n * Every product-owned type/field is `The*` / `the*` prefixed per the subgraph's\n * GraphQL naming contract; operations call the REAL root field names.\n *\n * Uses template-string interpolation (not gql tagged fragments) to match the\n * canonical kadaikodi / vibecontrols modules' operations files.\n */\n\n// ---------------------------------------------------------------------------\n// Field fragments\n// ---------------------------------------------------------------------------\n\nexport const ASSET_FIELDS = `\n id name code commodity kind status capacityPerDay capacityUnit\n workingInterestPct operatorLeadId location latitude longitude\n commissionedAt decommissionedAt tags workspaceId createdAt updatedAt\n`;\n\nexport const PRODUCTION_FIELDS = `\n id assetId periodStart periodEnd volume unit grade downtimeHours notes\n workspaceId createdAt updatedAt\n`;\n\nexport const RESERVE_FIELDS = `\n id assetId category recoverable recoveryFactor unit methodology asOfDate\n notes workspaceId createdAt updatedAt\n`;\n\nexport const CONTRACT_FIELDS = `\n id reference counterparty side commodity status contractedVolume\n deliveredVolume unit pricePerUnit currency priceIndex pricingBasis\n deliveryLocation startDate endDate signedAt notes tags workspaceId\n createdAt updatedAt\n`;\n\nexport const SHIPMENT_FIELDS = `\n id contractId reference status mode volume unit origin destination carrier\n scheduledAt departedAt deliveredAt notes document { id } workspaceId\n createdAt updatedAt\n`;\n\nexport const INVENTORY_FIELDS = `\n id lotCode commodity status quantity unit grade unitValue currency\n location assetId producedAt notes workspaceId createdAt updatedAt\n`;\n\nexport const EMISSION_FIELDS = `\n id assetId scope co2eTonnes periodStart periodEnd source methodology\n verified verifiedAt notes workspaceId createdAt updatedAt\n`;\n\nexport const COMPLIANCE_FIELDS = `\n id title category status authority certNumber assetId ownerId issuedAt\n expiresAt notes tags evidence { id } workspaceId createdAt updatedAt\n`;\n\nexport const PAGE_INFO_FIELDS = `\n pageInfo { cursor hasMore }\n`;\n\n// ---------------------------------------------------------------------------\n// Assets (registry)\n// ---------------------------------------------------------------------------\n\nexport const GET_ASSET = `\n query TheglobalfuelGetAsset($id: ID!) {\n theAsset(id: $id) {\n ${ASSET_FIELDS}\n productionRecords { id periodStart periodEnd volume unit }\n reserveEstimates { id category recoverable unit asOfDate }\n }\n }\n`;\n\nexport const LIST_ASSETS = `\n query TheglobalfuelListAssets(\n $commodity: TheCommodityType\n $kind: TheAssetKind\n $status: TheAssetStatus\n $pagination: PaginationInput\n ) {\n theListAssets(\n commodity: $commodity\n kind: $kind\n status: $status\n pagination: $pagination\n ) {\n items { ${ASSET_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_ASSET = `\n mutation TheglobalfuelCreateAsset($input: TheCreateAssetInput!) {\n theCreateAsset(input: $input) {\n ${ASSET_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_ASSET = `\n mutation TheglobalfuelUpdateAsset($id: ID!, $input: TheUpdateAssetInput!) {\n theUpdateAsset(id: $id, input: $input) {\n ${ASSET_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_ASSET = `\n mutation TheglobalfuelTransitionAsset($id: ID!, $status: TheAssetStatus!) {\n theTransitionAsset(id: $id, status: $status) {\n ${ASSET_FIELDS}\n }\n }\n`;\n\nexport const RETIRE_ASSET = `\n mutation TheglobalfuelRetireAsset($id: ID!) {\n theRetireAsset(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Production records (registry)\n// ---------------------------------------------------------------------------\n\nexport const LIST_PRODUCTION_RECORDS = `\n query TheglobalfuelListProductionRecords($assetId: ID, $pagination: PaginationInput) {\n theListProductionRecords(assetId: $assetId, pagination: $pagination) {\n items { ${PRODUCTION_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const RECORD_PRODUCTION = `\n mutation TheglobalfuelRecordProduction($input: TheRecordProductionInput!) {\n theRecordProduction(input: $input) {\n ${PRODUCTION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Reserve estimates (registry)\n// ---------------------------------------------------------------------------\n\nexport const LIST_RESERVE_ESTIMATES = `\n query TheglobalfuelListReserveEstimates($assetId: ID, $category: TheReserveCategory) {\n theListReserveEstimates(assetId: $assetId, category: $category) {\n ${RESERVE_FIELDS}\n }\n }\n`;\n\nexport const CREATE_RESERVE_ESTIMATE = `\n mutation TheglobalfuelCreateReserveEstimate($input: TheCreateReserveEstimateInput!) {\n theCreateReserveEstimate(input: $input) {\n ${RESERVE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Offtake contracts (commerce)\n// ---------------------------------------------------------------------------\n\nexport const GET_CONTRACT = `\n query TheglobalfuelGetContract($id: ID!) {\n theContract(id: $id) {\n ${CONTRACT_FIELDS}\n shipments { id reference status volume unit }\n }\n }\n`;\n\nexport const LIST_CONTRACTS = `\n query TheglobalfuelListContracts(\n $commodity: TheCommodityType\n $side: TheContractSide\n $status: TheContractStatus\n $pagination: PaginationInput\n ) {\n theListContracts(\n commodity: $commodity\n side: $side\n status: $status\n pagination: $pagination\n ) {\n items { ${CONTRACT_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_CONTRACT = `\n mutation TheglobalfuelCreateContract($input: TheCreateOfftakeContractInput!) {\n theCreateContract(input: $input) {\n ${CONTRACT_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_CONTRACT = `\n mutation TheglobalfuelUpdateContract($id: ID!, $input: TheUpdateOfftakeContractInput!) {\n theUpdateContract(id: $id, input: $input) {\n ${CONTRACT_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_CONTRACT = `\n mutation TheglobalfuelTransitionContract($id: ID!, $status: TheContractStatus!) {\n theTransitionContract(id: $id, status: $status) {\n ${CONTRACT_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Shipments (commerce)\n// ---------------------------------------------------------------------------\n\nexport const LIST_SHIPMENTS = `\n query TheglobalfuelListShipments($contractId: ID, $status: TheShipmentStatus) {\n theListShipments(contractId: $contractId, status: $status) {\n ${SHIPMENT_FIELDS}\n }\n }\n`;\n\nexport const SCHEDULE_SHIPMENT = `\n mutation TheglobalfuelScheduleShipment($input: TheCreateShipmentInput!) {\n theScheduleShipment(input: $input) {\n ${SHIPMENT_FIELDS}\n }\n }\n`;\n\nexport const DELIVER_SHIPMENT = `\n mutation TheglobalfuelDeliverShipment($id: ID!) {\n theDeliverShipment(id: $id) {\n ${SHIPMENT_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Inventory lots (commerce)\n// ---------------------------------------------------------------------------\n\nexport const LIST_INVENTORY_LOTS = `\n query TheglobalfuelListInventoryLots(\n $commodity: TheCommodityType\n $status: TheInventoryStatus\n $pagination: PaginationInput\n ) {\n theListInventoryLots(commodity: $commodity, status: $status, pagination: $pagination) {\n items { ${INVENTORY_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const CREATE_INVENTORY_LOT = `\n mutation TheglobalfuelCreateInventoryLot($input: TheCreateInventoryLotInput!) {\n theCreateInventoryLot(input: $input) {\n ${INVENTORY_FIELDS}\n }\n }\n`;\n\nexport const SET_INVENTORY_LOT_STATUS = `\n mutation TheglobalfuelSetInventoryLotStatus($id: ID!, $status: TheInventoryStatus!) {\n theSetInventoryLotStatus(id: $id, status: $status) {\n ${INVENTORY_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Emission records (sustainability)\n// ---------------------------------------------------------------------------\n\nexport const LIST_EMISSION_RECORDS = `\n query TheglobalfuelListEmissionRecords(\n $assetId: ID\n $scope: TheEmissionScope\n $pagination: PaginationInput\n ) {\n theListEmissionRecords(assetId: $assetId, scope: $scope, pagination: $pagination) {\n items { ${EMISSION_FIELDS} }\n ${PAGE_INFO_FIELDS}\n }\n }\n`;\n\nexport const RECORD_EMISSION = `\n mutation TheglobalfuelRecordEmission($input: TheRecordEmissionInput!) {\n theRecordEmission(input: $input) {\n ${EMISSION_FIELDS}\n }\n }\n`;\n\nexport const VERIFY_EMISSION = `\n mutation TheglobalfuelVerifyEmission($id: ID!) {\n theVerifyEmission(id: $id) {\n ${EMISSION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Compliance certifications (sustainability)\n// ---------------------------------------------------------------------------\n\nexport const GET_COMPLIANCE_CERT = `\n query TheglobalfuelGetComplianceCert($id: ID!) {\n theComplianceCert(id: $id) {\n ${COMPLIANCE_FIELDS}\n }\n }\n`;\n\nexport const LIST_COMPLIANCE_CERTS = `\n query TheglobalfuelListComplianceCerts(\n $assetId: ID\n $category: TheComplianceCategory\n $status: TheComplianceStatus\n ) {\n theListComplianceCerts(assetId: $assetId, category: $category, status: $status) {\n ${COMPLIANCE_FIELDS}\n }\n }\n`;\n\nexport const CREATE_COMPLIANCE_CERT = `\n mutation TheglobalfuelCreateComplianceCert($input: TheCreateComplianceCertInput!) {\n theCreateComplianceCert(input: $input) {\n ${COMPLIANCE_FIELDS}\n }\n }\n`;\n\nexport const TRANSITION_COMPLIANCE_CERT = `\n mutation TheglobalfuelTransitionComplianceCert($id: ID!, $status: TheComplianceStatus!) {\n theTransitionComplianceCert(id: $id, status: $status) {\n ${COMPLIANCE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Health\n// ---------------------------------------------------------------------------\n\nexport const HEALTH = `\n query TheglobalfuelHealth {\n theHealth\n }\n`;\n","/**\n * Shared zod schemas for the Theglobalfuel 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. Enum values are SCREAMING_SNAKE\n * exactly as defined in the `theglobalfuel` subgraph schema.\n */\n\nimport { z } from 'zod';\n\nexport const CommodityTypeEnum = z\n .enum([\n 'BAUXITE',\n 'BIOFUEL',\n 'COAL',\n 'COPPER',\n 'CRUDE_OIL',\n 'ELECTRICITY',\n 'GOLD',\n 'HYDROGEN',\n 'IRON_ORE',\n 'LITHIUM',\n 'LNG',\n 'NATURAL_GAS',\n 'RARE_EARTH',\n ])\n .describe('Energy / mineral / commodity resource type');\n\nexport const AssetKindEnum = z\n .enum([\n 'GAS_FIELD',\n 'MINE',\n 'OIL_FIELD',\n 'PIPELINE',\n 'POWER_PLANT',\n 'PROCESSING_PLANT',\n 'QUARRY',\n 'REFINERY',\n 'SOLAR_FARM',\n 'STORAGE_TERMINAL',\n 'WELL',\n 'WIND_FARM',\n ])\n .describe('Physical kind of a resource asset');\n\nexport const AssetStatusEnum = z\n .enum([\n 'APPRAISAL',\n 'DECOMMISSIONING',\n 'DEVELOPMENT',\n 'EXPLORATION',\n 'PRODUCING',\n 'RETIRED',\n 'SUSPENDED',\n ])\n .describe('Lifecycle status of a resource asset');\n\nexport const UnitEnum = z\n .enum(['BARRELS', 'CUBIC_METERS', 'GJ', 'KILOGRAMS', 'MCF', 'MWH', 'TONNES'])\n .describe('Unit of measure for volume / capacity / quantity');\n\nexport const ReserveCategoryEnum = z\n .enum(['CONTINGENT', 'POSSIBLE', 'PROBABLE', 'PROSPECTIVE', 'PROVED'])\n .describe('Reserve-estimate confidence category');\n\nexport const ContractSideEnum = z\n .enum(['BUY', 'SELL'])\n .describe('Whether the offtake contract is a BUY or SELL position');\n\nexport const ContractStatusEnum = z\n .enum(['ACTIVE', 'COMPLETED', 'DRAFT', 'NEGOTIATION', 'SIGNED', 'SUSPENDED', 'TERMINATED'])\n .describe('Lifecycle status of an offtake contract');\n\nexport const PricingBasisEnum = z\n .enum(['FIXED', 'FORMULA', 'INDEX_LINKED', 'SPOT'])\n .describe('Pricing basis for an offtake contract');\n\nexport const ShipmentStatusEnum = z\n .enum(['CANCELLED', 'DELIVERED', 'IN_TRANSIT', 'LOADING', 'SCHEDULED'])\n .describe('Lifecycle status of a commodity shipment');\n\nexport const TransportModeEnum = z\n .enum(['GRID', 'PIPELINE', 'RAIL', 'TANKER', 'TRUCK', 'VESSEL_BULK'])\n .describe('Transport mode for a shipment');\n\nexport const InventoryStatusEnum = z\n .enum(['AVAILABLE', 'CONSUMED', 'IN_TRANSIT', 'RESERVED', 'WRITTEN_OFF'])\n .describe('Lifecycle status of an inventory lot');\n\nexport const EmissionScopeEnum = z\n .enum(['SCOPE_1', 'SCOPE_2', 'SCOPE_3'])\n .describe('GHG Protocol emission scope');\n\nexport const ComplianceCategoryEnum = z\n .enum([\n 'CARBON_CREDIT',\n 'CHAIN_OF_CUSTODY',\n 'EMISSIONS_REPORT',\n 'ENVIRONMENTAL_PERMIT',\n 'EXPORT_LICENSE',\n 'EXTRACTION_LICENSE',\n 'SAFETY_AUDIT',\n ])\n .describe('Category of a compliance certification');\n\nexport const ComplianceStatusEnum = z\n .enum(['APPROVED', 'EXPIRED', 'PENDING', 'REJECTED', 'REVOKED', 'SUBMITTED'])\n .describe('Lifecycle status of a compliance certification');\n\n/** ISO-8601 DateTime string hint for the `DateTime` scalar inputs. */\nexport const DateTimeString = z.string().describe('ISO-8601 DateTime, e.g. 2026-06-27T00:00:00Z');\n","/**\n * Theglobalfuel asset tools — resource-asset registry CRUD + lifecycle.\n *\n * Surface (6): assets_{get,list,create,update,transition,retire}.\n * Root fields: theAsset / theListAssets / theCreateAsset / theUpdateAsset /\n * theTransitionAsset / theRetireAsset — all called by their REAL names.\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 {\n CommodityTypeEnum,\n AssetKindEnum,\n AssetStatusEnum,\n UnitEnum,\n DateTimeString,\n} from './shared.js';\n\nexport function registerAssetTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_get')),\n {\n title: 'Get Asset',\n description:\n 'Fetch a single resource asset by ID, including its recent production records and reserve estimates.',\n inputSchema: { id: z.string().describe('Asset ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theAsset: Record<string, unknown> | null;\n }>(ops.GET_ASSET, { id });\n if (!data.theAsset) return errorResult(`Asset ${id} not found`);\n return jsonResult(data.theAsset);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_get failed', { error: String(error) });\n return errorResult(\n `Failed to get asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_list')),\n {\n title: 'List Assets',\n description:\n 'List resource assets in the bound workspace with optional commodity/kind/status filters and pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n commodity: CommodityTypeEnum.optional().describe('Filter by commodity type'),\n kind: AssetKindEnum.optional().describe('Filter by asset kind'),\n status: AssetStatusEnum.optional().describe('Filter by lifecycle status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ commodity, kind, status, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListAssets: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_ASSETS, {\n commodity,\n kind,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListAssets);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_list failed', { error: String(error) });\n return errorResult(\n `Failed to list assets: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_create')),\n {\n title: 'Create Asset',\n description:\n 'Register a new resource asset (well, mine, field, plant, etc.). `name` and `commodity` are required; `kind` defaults to WELL and `status` to EXPLORATION.',\n inputSchema: {\n name: z.string().min(1).describe('Asset display name'),\n commodity: CommodityTypeEnum.describe('Commodity produced by the asset'),\n kind: AssetKindEnum.optional().describe('Asset kind (default WELL)'),\n code: z.string().optional().describe('Operator asset code / short identifier'),\n capacityPerDay: z.number().optional().describe('Nameplate capacity per day'),\n capacityUnit: UnitEnum.optional().describe('Unit for capacityPerDay (default BARRELS)'),\n workingInterestPct: z\n .number()\n .optional()\n .describe('Working interest percentage held (0–100)'),\n operatorLeadId: z.string().optional().describe('User ID of the operator lead'),\n location: z.string().optional().describe('Free-text location / basin name'),\n latitude: z.number().optional().describe('Latitude (decimal degrees)'),\n longitude: z.number().optional().describe('Longitude (decimal degrees)'),\n commissionedAt: DateTimeString.optional().describe('Commissioning date'),\n status: AssetStatusEnum.optional().describe(\n 'Initial lifecycle status (default EXPLORATION)',\n ),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n name,\n commodity,\n kind,\n code,\n capacityPerDay,\n capacityUnit,\n workingInterestPct,\n operatorLeadId,\n location,\n latitude,\n longitude,\n commissionedAt,\n status,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { name, commodity };\n if (kind !== undefined) input.kind = kind;\n if (code !== undefined) input.code = code;\n if (capacityPerDay !== undefined) input.capacityPerDay = capacityPerDay;\n if (capacityUnit !== undefined) input.capacityUnit = capacityUnit;\n if (workingInterestPct !== undefined) input.workingInterestPct = workingInterestPct;\n if (operatorLeadId !== undefined) input.operatorLeadId = operatorLeadId;\n if (location !== undefined) input.location = location;\n if (latitude !== undefined) input.latitude = latitude;\n if (longitude !== undefined) input.longitude = longitude;\n if (commissionedAt !== undefined) input.commissionedAt = commissionedAt;\n if (status !== undefined) input.status = status;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n theCreateAsset: Record<string, unknown>;\n }>(ops.CREATE_ASSET, { input });\n return jsonResult(data.theCreateAsset);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_create failed', { error: String(error) });\n return errorResult(\n `Failed to create asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_update')),\n {\n title: 'Update Asset',\n description:\n 'Update a resource asset. At least one mutable field must be provided. Use `assets_transition` / `assets_retire` for lifecycle changes.',\n inputSchema: {\n id: z.string().describe('Asset ID'),\n name: z.string().optional().describe('Updated name'),\n commodity: CommodityTypeEnum.optional().describe('Updated commodity'),\n kind: AssetKindEnum.optional().describe('Updated asset kind'),\n code: z.string().optional().describe('Updated asset code'),\n capacityPerDay: z.number().optional().describe('Updated capacity per day'),\n capacityUnit: UnitEnum.optional().describe('Updated capacity unit'),\n workingInterestPct: z.number().optional().describe('Updated working interest percentage'),\n operatorLeadId: z.string().optional().describe('Updated operator lead user ID'),\n location: z.string().optional().describe('Updated location'),\n latitude: z.number().optional().describe('Updated latitude'),\n longitude: z.number().optional().describe('Updated longitude'),\n commissionedAt: DateTimeString.optional().describe('Updated commissioning date'),\n decommissionedAt: DateTimeString.optional().describe('Decommissioning date'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({\n id,\n name,\n commodity,\n kind,\n code,\n capacityPerDay,\n capacityUnit,\n workingInterestPct,\n operatorLeadId,\n location,\n latitude,\n longitude,\n commissionedAt,\n decommissionedAt,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (name !== undefined) input.name = name;\n if (commodity !== undefined) input.commodity = commodity;\n if (kind !== undefined) input.kind = kind;\n if (code !== undefined) input.code = code;\n if (capacityPerDay !== undefined) input.capacityPerDay = capacityPerDay;\n if (capacityUnit !== undefined) input.capacityUnit = capacityUnit;\n if (workingInterestPct !== undefined) input.workingInterestPct = workingInterestPct;\n if (operatorLeadId !== undefined) input.operatorLeadId = operatorLeadId;\n if (location !== undefined) input.location = location;\n if (latitude !== undefined) input.latitude = latitude;\n if (longitude !== undefined) input.longitude = longitude;\n if (commissionedAt !== undefined) input.commissionedAt = commissionedAt;\n if (decommissionedAt !== undefined) input.decommissionedAt = decommissionedAt;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult('No updates specified — provide at least one mutable asset field');\n }\n\n const data = await ctx.gql.workspace.request<{\n theUpdateAsset: Record<string, unknown>;\n }>(ops.UPDATE_ASSET, { id, input });\n return jsonResult(data.theUpdateAsset);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_update failed', { error: String(error) });\n return errorResult(\n `Failed to update asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_transition')),\n {\n title: 'Transition Asset',\n description:\n 'Advance an asset through its lifecycle (validated transitions), e.g. EXPLORATION → APPRAISAL → DEVELOPMENT → PRODUCING.',\n inputSchema: {\n id: z.string().describe('Asset ID'),\n status: AssetStatusEnum.describe('Target lifecycle status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theTransitionAsset: Record<string, unknown>;\n }>(ops.TRANSITION_ASSET, { id, status });\n return jsonResult(data.theTransitionAsset);\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'assets_retire')),\n {\n title: 'Retire Asset',\n description: 'Retire (decommission) an asset. Returns true on success.',\n inputSchema: { id: z.string().describe('Asset ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ theRetireAsset: boolean }>(\n ops.RETIRE_ASSET,\n { id },\n );\n return jsonResult({ retired: data.theRetireAsset });\n } catch (error) {\n ctx.logger.error('theglobalfuel assets_retire failed', { error: String(error) });\n return errorResult(\n `Failed to retire asset: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel production-record tools.\n *\n * Surface (2): production_{list,record}.\n * Root fields: theListProductionRecords (connection) / theRecordProduction.\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 { UnitEnum, DateTimeString } 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, 'production_list')),\n {\n title: 'List Production Records',\n description:\n 'List production records, optionally filtered by asset, with pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n assetId: z.string().optional().describe('Filter by asset ID'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ assetId, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListProductionRecords: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_PRODUCTION_RECORDS, {\n assetId,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListProductionRecords);\n } catch (error) {\n ctx.logger.error('theglobalfuel production_list failed', { error: String(error) });\n return errorResult(\n `Failed to list production records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'production_record')),\n {\n title: 'Record Production',\n description:\n 'Record a production figure for an asset over a period. `assetId`, `periodStart`, `periodEnd`, and `volume` are required.',\n inputSchema: {\n assetId: z.string().min(1).describe('Asset the production is recorded against'),\n periodStart: DateTimeString.describe('Production period start'),\n periodEnd: DateTimeString.describe('Production period end'),\n volume: z.number().describe('Produced volume in the given unit'),\n unit: UnitEnum.optional().describe('Volume unit (default BARRELS)'),\n grade: z.number().optional().describe('Average grade / quality factor'),\n downtimeHours: z.number().optional().describe('Downtime hours during the period'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({ assetId, periodStart, periodEnd, volume, unit, grade, downtimeHours, notes }) => {\n try {\n const input: Record<string, unknown> = { assetId, periodStart, periodEnd, volume };\n if (unit !== undefined) input.unit = unit;\n if (grade !== undefined) input.grade = grade;\n if (downtimeHours !== undefined) input.downtimeHours = downtimeHours;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theRecordProduction: Record<string, unknown>;\n }>(ops.RECORD_PRODUCTION, { input });\n return jsonResult(data.theRecordProduction);\n } catch (error) {\n ctx.logger.error('theglobalfuel production_record failed', { error: String(error) });\n return errorResult(\n `Failed to record production: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel reserve-estimate tools.\n *\n * Surface (2): reserves_{list,create}.\n * Root fields: theListReserveEstimates (plain array) / theCreateReserveEstimate.\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 { ReserveCategoryEnum, UnitEnum, DateTimeString } from './shared.js';\n\nexport function registerReserveTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'reserves_list')),\n {\n title: 'List Reserve Estimates',\n description:\n 'List reserve estimates, optionally filtered by asset and/or reserve category. Returns a plain array.',\n inputSchema: {\n assetId: z.string().optional().describe('Filter by asset ID'),\n category: ReserveCategoryEnum.optional().describe('Filter by reserve category'),\n },\n },\n async ({ assetId, category }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListReserveEstimates: Array<Record<string, unknown>>;\n }>(ops.LIST_RESERVE_ESTIMATES, { assetId, category });\n return jsonResult(data.theListReserveEstimates);\n } catch (error) {\n ctx.logger.error('theglobalfuel reserves_list failed', { error: String(error) });\n return errorResult(\n `Failed to list reserve estimates: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'reserves_create')),\n {\n title: 'Create Reserve Estimate',\n description:\n 'Create a reserve estimate for an asset. `assetId`, `asOfDate`, and `recoverable` are required; `category` defaults to PROVED.',\n inputSchema: {\n assetId: z.string().min(1).describe('Asset the estimate is for'),\n asOfDate: DateTimeString.describe('As-of valuation date'),\n recoverable: z.number().describe('Recoverable quantity in the given unit'),\n category: ReserveCategoryEnum.optional().describe('Reserve category (default PROVED)'),\n recoveryFactor: z.number().optional().describe('Recovery factor (0–1)'),\n unit: UnitEnum.optional().describe('Unit for recoverable (default BARRELS)'),\n methodology: z.string().optional().describe('Estimation methodology'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({\n assetId,\n asOfDate,\n recoverable,\n category,\n recoveryFactor,\n unit,\n methodology,\n notes,\n }) => {\n try {\n const input: Record<string, unknown> = { assetId, asOfDate, recoverable };\n if (category !== undefined) input.category = category;\n if (recoveryFactor !== undefined) input.recoveryFactor = recoveryFactor;\n if (unit !== undefined) input.unit = unit;\n if (methodology !== undefined) input.methodology = methodology;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theCreateReserveEstimate: Record<string, unknown>;\n }>(ops.CREATE_RESERVE_ESTIMATE, { input });\n return jsonResult(data.theCreateReserveEstimate);\n } catch (error) {\n ctx.logger.error('theglobalfuel reserves_create failed', { error: String(error) });\n return errorResult(\n `Failed to create reserve estimate: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel offtake-contract tools.\n *\n * Surface (5): contracts_{get,list,create,update,transition}.\n * Root fields: theContract / theListContracts (connection) / theCreateContract /\n * theUpdateContract / theTransitionContract.\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 {\n CommodityTypeEnum,\n ContractSideEnum,\n ContractStatusEnum,\n PricingBasisEnum,\n UnitEnum,\n DateTimeString,\n} from './shared.js';\n\nexport function registerContractTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_get')),\n {\n title: 'Get Offtake Contract',\n description: 'Fetch a single offtake contract by ID, including its shipments.',\n inputSchema: { id: z.string().describe('Contract ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theContract: Record<string, unknown> | null;\n }>(ops.GET_CONTRACT, { id });\n if (!data.theContract) return errorResult(`Contract ${id} not found`);\n return jsonResult(data.theContract);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_get failed', { error: String(error) });\n return errorResult(\n `Failed to get contract: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_list')),\n {\n title: 'List Offtake Contracts',\n description:\n 'List offtake contracts with optional commodity/side/status filters and pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n commodity: CommodityTypeEnum.optional().describe('Filter by commodity'),\n side: ContractSideEnum.optional().describe('Filter by BUY/SELL side'),\n status: ContractStatusEnum.optional().describe('Filter by contract status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ commodity, side, status, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListContracts: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_CONTRACTS, {\n commodity,\n side,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListContracts);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_list failed', { error: String(error) });\n return errorResult(\n `Failed to list contracts: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_create')),\n {\n title: 'Create Offtake Contract',\n description:\n 'Create an offtake contract. `reference`, `counterparty`, and `commodity` are required; `side` defaults to SELL and `pricingBasis` to FIXED.',\n inputSchema: {\n reference: z.string().min(1).describe('Unique contract reference'),\n counterparty: z.string().min(1).describe('Counterparty name'),\n commodity: CommodityTypeEnum.describe('Contracted commodity'),\n side: ContractSideEnum.optional().describe('BUY or SELL (default SELL)'),\n contractedVolume: z.number().optional().describe('Total contracted volume'),\n unit: UnitEnum.optional().describe('Volume unit (default BARRELS)'),\n pricePerUnit: z.number().optional().describe('Fixed price per unit'),\n currency: z.string().optional().describe('Pricing currency (e.g. USD)'),\n priceIndex: z.string().optional().describe('Reference price index (for index-linked)'),\n pricingBasis: PricingBasisEnum.optional().describe('Pricing basis (default FIXED)'),\n deliveryLocation: z.string().optional().describe('Delivery location'),\n startDate: DateTimeString.optional().describe('Contract start date'),\n endDate: DateTimeString.optional().describe('Contract end date'),\n notes: z.string().optional().describe('Free-text notes'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n reference,\n counterparty,\n commodity,\n side,\n contractedVolume,\n unit,\n pricePerUnit,\n currency,\n priceIndex,\n pricingBasis,\n deliveryLocation,\n startDate,\n endDate,\n notes,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { reference, counterparty, commodity };\n if (side !== undefined) input.side = side;\n if (contractedVolume !== undefined) input.contractedVolume = contractedVolume;\n if (unit !== undefined) input.unit = unit;\n if (pricePerUnit !== undefined) input.pricePerUnit = pricePerUnit;\n if (currency !== undefined) input.currency = currency;\n if (priceIndex !== undefined) input.priceIndex = priceIndex;\n if (pricingBasis !== undefined) input.pricingBasis = pricingBasis;\n if (deliveryLocation !== undefined) input.deliveryLocation = deliveryLocation;\n if (startDate !== undefined) input.startDate = startDate;\n if (endDate !== undefined) input.endDate = endDate;\n if (notes !== undefined) input.notes = notes;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n theCreateContract: Record<string, unknown>;\n }>(ops.CREATE_CONTRACT, { input });\n return jsonResult(data.theCreateContract);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_create failed', { error: String(error) });\n return errorResult(\n `Failed to create contract: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_update')),\n {\n title: 'Update Offtake Contract',\n description:\n 'Update an offtake contract. At least one mutable field must be provided. Use `contracts_transition` for lifecycle changes.',\n inputSchema: {\n id: z.string().describe('Contract ID'),\n counterparty: z.string().optional().describe('Updated counterparty'),\n contractedVolume: z.number().optional().describe('Updated contracted volume'),\n unit: UnitEnum.optional().describe('Updated volume unit'),\n pricePerUnit: z.number().optional().describe('Updated price per unit'),\n currency: z.string().optional().describe('Updated currency'),\n priceIndex: z.string().optional().describe('Updated price index'),\n pricingBasis: PricingBasisEnum.optional().describe('Updated pricing basis'),\n deliveryLocation: z.string().optional().describe('Updated delivery location'),\n startDate: DateTimeString.optional().describe('Updated start date'),\n endDate: DateTimeString.optional().describe('Updated end date'),\n notes: z.string().optional().describe('Updated notes'),\n tags: z.array(z.string()).optional().describe('Updated tags'),\n },\n },\n async ({\n id,\n counterparty,\n contractedVolume,\n unit,\n pricePerUnit,\n currency,\n priceIndex,\n pricingBasis,\n deliveryLocation,\n startDate,\n endDate,\n notes,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = {};\n if (counterparty !== undefined) input.counterparty = counterparty;\n if (contractedVolume !== undefined) input.contractedVolume = contractedVolume;\n if (unit !== undefined) input.unit = unit;\n if (pricePerUnit !== undefined) input.pricePerUnit = pricePerUnit;\n if (currency !== undefined) input.currency = currency;\n if (priceIndex !== undefined) input.priceIndex = priceIndex;\n if (pricingBasis !== undefined) input.pricingBasis = pricingBasis;\n if (deliveryLocation !== undefined) input.deliveryLocation = deliveryLocation;\n if (startDate !== undefined) input.startDate = startDate;\n if (endDate !== undefined) input.endDate = endDate;\n if (notes !== undefined) input.notes = notes;\n if (tags !== undefined) input.tags = tags;\n\n if (Object.keys(input).length === 0) {\n return errorResult('No updates specified — provide at least one mutable contract field');\n }\n\n const data = await ctx.gql.workspace.request<{\n theUpdateContract: Record<string, unknown>;\n }>(ops.UPDATE_CONTRACT, { id, input });\n return jsonResult(data.theUpdateContract);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_update failed', { error: String(error) });\n return errorResult(\n `Failed to update contract: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'contracts_transition')),\n {\n title: 'Transition Offtake Contract',\n description:\n 'Advance an offtake contract through its lifecycle (validated transitions), e.g. DRAFT → NEGOTIATION → SIGNED → ACTIVE → COMPLETED.',\n inputSchema: {\n id: z.string().describe('Contract ID'),\n status: ContractStatusEnum.describe('Target contract status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theTransitionContract: Record<string, unknown>;\n }>(ops.TRANSITION_CONTRACT, { id, status });\n return jsonResult(data.theTransitionContract);\n } catch (error) {\n ctx.logger.error('theglobalfuel contracts_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition contract: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel shipment tools.\n *\n * Surface (3): shipments_{list,schedule,deliver}.\n * Root fields: theListShipments (plain array) / theScheduleShipment /\n * theDeliverShipment.\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 { ShipmentStatusEnum, TransportModeEnum, UnitEnum, DateTimeString } from './shared.js';\n\nexport function registerShipmentTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'shipments_list')),\n {\n title: 'List Shipments',\n description:\n 'List commodity shipments, optionally filtered by contract and/or status. Returns a plain array.',\n inputSchema: {\n contractId: z.string().optional().describe('Filter by contract ID'),\n status: ShipmentStatusEnum.optional().describe('Filter by shipment status'),\n },\n },\n async ({ contractId, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListShipments: Array<Record<string, unknown>>;\n }>(ops.LIST_SHIPMENTS, { contractId, status });\n return jsonResult(data.theListShipments);\n } catch (error) {\n ctx.logger.error('theglobalfuel shipments_list failed', { error: String(error) });\n return errorResult(\n `Failed to list shipments: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'shipments_schedule')),\n {\n title: 'Schedule Shipment',\n description:\n 'Schedule a shipment against a contract. `contractId`, `reference`, and `volume` are required; `mode` defaults to PIPELINE.',\n inputSchema: {\n contractId: z.string().min(1).describe('Contract the shipment fulfils'),\n reference: z.string().min(1).describe('Unique shipment reference'),\n volume: z.number().describe('Shipment volume in the given unit'),\n unit: UnitEnum.optional().describe('Volume unit (default BARRELS)'),\n mode: TransportModeEnum.optional().describe('Transport mode (default PIPELINE)'),\n origin: z.string().optional().describe('Origin location'),\n destination: z.string().optional().describe('Destination location'),\n carrier: z.string().optional().describe('Carrier / transporter name'),\n scheduledAt: DateTimeString.optional().describe('Scheduled departure time'),\n documentFileId: z\n .string()\n .optional()\n .describe('wspace-files-svc File ID (bill of lading / certificate)'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({\n contractId,\n reference,\n volume,\n unit,\n mode,\n origin,\n destination,\n carrier,\n scheduledAt,\n documentFileId,\n notes,\n }) => {\n try {\n const input: Record<string, unknown> = { contractId, reference, volume };\n if (unit !== undefined) input.unit = unit;\n if (mode !== undefined) input.mode = mode;\n if (origin !== undefined) input.origin = origin;\n if (destination !== undefined) input.destination = destination;\n if (carrier !== undefined) input.carrier = carrier;\n if (scheduledAt !== undefined) input.scheduledAt = scheduledAt;\n if (documentFileId !== undefined) input.documentFileId = documentFileId;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theScheduleShipment: Record<string, unknown>;\n }>(ops.SCHEDULE_SHIPMENT, { input });\n return jsonResult(data.theScheduleShipment);\n } catch (error) {\n ctx.logger.error('theglobalfuel shipments_schedule failed', { error: String(error) });\n return errorResult(\n `Failed to schedule shipment: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'shipments_deliver')),\n {\n title: 'Deliver Shipment',\n description:\n \"Mark a shipment delivered and roll its volume into the contract's delivered total.\",\n inputSchema: { id: z.string().describe('Shipment ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theDeliverShipment: Record<string, unknown>;\n }>(ops.DELIVER_SHIPMENT, { id });\n return jsonResult(data.theDeliverShipment);\n } catch (error) {\n ctx.logger.error('theglobalfuel shipments_deliver failed', { error: String(error) });\n return errorResult(\n `Failed to deliver shipment: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel inventory-lot tools.\n *\n * Surface (3): inventory_{list,create,set_status}.\n * Root fields: theListInventoryLots (connection) / theCreateInventoryLot /\n * theSetInventoryLotStatus.\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 { CommodityTypeEnum, InventoryStatusEnum, UnitEnum, DateTimeString } from './shared.js';\n\nexport function registerInventoryTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'inventory_list')),\n {\n title: 'List Inventory Lots',\n description:\n 'List inventory lots with optional commodity/status filters and pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n commodity: CommodityTypeEnum.optional().describe('Filter by commodity'),\n status: InventoryStatusEnum.optional().describe('Filter by inventory status'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ commodity, status, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListInventoryLots: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_INVENTORY_LOTS, {\n commodity,\n status,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListInventoryLots);\n } catch (error) {\n ctx.logger.error('theglobalfuel inventory_list failed', { error: String(error) });\n return errorResult(\n `Failed to list inventory lots: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'inventory_create')),\n {\n title: 'Create Inventory Lot',\n description:\n 'Create an inventory lot. `lotCode`, `commodity`, and `quantity` are required; `unit` defaults to BARRELS.',\n inputSchema: {\n lotCode: z.string().min(1).describe('Unique lot code'),\n commodity: CommodityTypeEnum.describe('Commodity stored in the lot'),\n quantity: z.number().describe('Quantity in the given unit'),\n unit: UnitEnum.optional().describe('Quantity unit (default BARRELS)'),\n grade: z.number().optional().describe('Average grade / quality factor'),\n unitValue: z.number().optional().describe('Per-unit value'),\n currency: z.string().optional().describe('Currency for unitValue'),\n location: z.string().optional().describe('Storage location'),\n assetId: z.string().optional().describe('Source asset ID'),\n producedAt: DateTimeString.optional().describe('Production / acquisition date'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({\n lotCode,\n commodity,\n quantity,\n unit,\n grade,\n unitValue,\n currency,\n location,\n assetId,\n producedAt,\n notes,\n }) => {\n try {\n const input: Record<string, unknown> = { lotCode, commodity, quantity };\n if (unit !== undefined) input.unit = unit;\n if (grade !== undefined) input.grade = grade;\n if (unitValue !== undefined) input.unitValue = unitValue;\n if (currency !== undefined) input.currency = currency;\n if (location !== undefined) input.location = location;\n if (assetId !== undefined) input.assetId = assetId;\n if (producedAt !== undefined) input.producedAt = producedAt;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theCreateInventoryLot: Record<string, unknown>;\n }>(ops.CREATE_INVENTORY_LOT, { input });\n return jsonResult(data.theCreateInventoryLot);\n } catch (error) {\n ctx.logger.error('theglobalfuel inventory_create failed', { error: String(error) });\n return errorResult(\n `Failed to create inventory lot: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'inventory_set_status')),\n {\n title: 'Set Inventory Lot Status',\n description:\n 'Set the status of an inventory lot (AVAILABLE / RESERVED / IN_TRANSIT / CONSUMED / WRITTEN_OFF).',\n inputSchema: {\n id: z.string().describe('Inventory lot ID'),\n status: InventoryStatusEnum.describe('New inventory status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theSetInventoryLotStatus: Record<string, unknown>;\n }>(ops.SET_INVENTORY_LOT_STATUS, { id, status });\n return jsonResult(data.theSetInventoryLotStatus);\n } catch (error) {\n ctx.logger.error('theglobalfuel inventory_set_status failed', { error: String(error) });\n return errorResult(\n `Failed to set inventory lot status: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel emission-record tools (ESG).\n *\n * Surface (3): emissions_{list,record,verify}.\n * Root fields: theListEmissionRecords (connection) / theRecordEmission /\n * theVerifyEmission.\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 { EmissionScopeEnum, DateTimeString } from './shared.js';\n\nexport function registerEmissionTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'emissions_list')),\n {\n title: 'List Emission Records',\n description:\n 'List GHG emission records with optional asset/scope filters and pagination. Returns a connection ({ items, pageInfo }).',\n inputSchema: {\n assetId: z.string().optional().describe('Filter by asset ID'),\n scope: EmissionScopeEnum.optional().describe('Filter by emission scope'),\n limit: z.number().int().optional().describe('Page size (default 50)'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n },\n },\n async ({ assetId, scope, limit, offset }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListEmissionRecords: { items: Array<Record<string, unknown>>; pageInfo: unknown };\n }>(ops.LIST_EMISSION_RECORDS, {\n assetId,\n scope,\n pagination: { limit: limit ?? 50, offset: offset ?? 0 },\n });\n return jsonResult(data.theListEmissionRecords);\n } catch (error) {\n ctx.logger.error('theglobalfuel emissions_list failed', { error: String(error) });\n return errorResult(\n `Failed to list emission records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'emissions_record')),\n {\n title: 'Record Emission',\n description:\n 'Record a GHG emission figure for a period. `co2eTonnes`, `periodStart`, and `periodEnd` are required; `scope` defaults to SCOPE_1.',\n inputSchema: {\n co2eTonnes: z.number().describe('CO2-equivalent tonnes emitted'),\n periodStart: DateTimeString.describe('Reporting period start'),\n periodEnd: DateTimeString.describe('Reporting period end'),\n scope: EmissionScopeEnum.optional().describe('Emission scope (default SCOPE_1)'),\n assetId: z.string().optional().describe('Asset the emission is attributed to'),\n source: z.string().optional().describe('Emission source description'),\n methodology: z.string().optional().describe('Calculation methodology'),\n notes: z.string().optional().describe('Free-text notes'),\n },\n },\n async ({ co2eTonnes, periodStart, periodEnd, scope, assetId, source, methodology, notes }) => {\n try {\n const input: Record<string, unknown> = { co2eTonnes, periodStart, periodEnd };\n if (scope !== undefined) input.scope = scope;\n if (assetId !== undefined) input.assetId = assetId;\n if (source !== undefined) input.source = source;\n if (methodology !== undefined) input.methodology = methodology;\n if (notes !== undefined) input.notes = notes;\n\n const data = await ctx.gql.workspace.request<{\n theRecordEmission: Record<string, unknown>;\n }>(ops.RECORD_EMISSION, { input });\n return jsonResult(data.theRecordEmission);\n } catch (error) {\n ctx.logger.error('theglobalfuel emissions_record failed', { error: String(error) });\n return errorResult(\n `Failed to record emission: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'emissions_verify')),\n {\n title: 'Verify Emission',\n description: 'Mark an emission figure third-party verified.',\n inputSchema: { id: z.string().describe('Emission record ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theVerifyEmission: Record<string, unknown>;\n }>(ops.VERIFY_EMISSION, { id });\n return jsonResult(data.theVerifyEmission);\n } catch (error) {\n ctx.logger.error('theglobalfuel emissions_verify failed', { error: String(error) });\n return errorResult(\n `Failed to verify emission: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel compliance-certification tools (ESG / regulatory).\n *\n * Surface (4): compliance_{get,list,create,transition}.\n * Root fields: theComplianceCert / theListComplianceCerts (plain array) /\n * theCreateComplianceCert / theTransitionComplianceCert.\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 { ComplianceCategoryEnum, ComplianceStatusEnum, DateTimeString } from './shared.js';\n\nexport function registerComplianceTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'compliance_get')),\n {\n title: 'Get Compliance Certification',\n description:\n 'Fetch a single compliance certification by ID, including its evidence file reference.',\n inputSchema: { id: z.string().describe('Compliance certification ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theComplianceCert: Record<string, unknown> | null;\n }>(ops.GET_COMPLIANCE_CERT, { id });\n if (!data.theComplianceCert) return errorResult(`Compliance certification ${id} not found`);\n return jsonResult(data.theComplianceCert);\n } catch (error) {\n ctx.logger.error('theglobalfuel compliance_get failed', { error: String(error) });\n return errorResult(\n `Failed to get compliance certification: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'compliance_list')),\n {\n title: 'List Compliance Certifications',\n description:\n 'List compliance certifications with optional asset/category/status filters. Returns a plain array.',\n inputSchema: {\n assetId: z.string().optional().describe('Filter by asset ID'),\n category: ComplianceCategoryEnum.optional().describe('Filter by category'),\n status: ComplianceStatusEnum.optional().describe('Filter by status'),\n },\n },\n async ({ assetId, category, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theListComplianceCerts: Array<Record<string, unknown>>;\n }>(ops.LIST_COMPLIANCE_CERTS, { assetId, category, status });\n return jsonResult(data.theListComplianceCerts);\n } catch (error) {\n ctx.logger.error('theglobalfuel compliance_list failed', { error: String(error) });\n return errorResult(\n `Failed to list compliance certifications: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'compliance_create')),\n {\n title: 'Create Compliance Certification',\n description:\n 'Create a compliance certification (permit, license, audit, carbon credit, etc.). `title` is required; `category` defaults to ENVIRONMENTAL_PERMIT.',\n inputSchema: {\n title: z.string().min(1).describe('Certification title'),\n category: ComplianceCategoryEnum.optional().describe(\n 'Category (default ENVIRONMENTAL_PERMIT)',\n ),\n assetId: z.string().optional().describe('Related asset ID'),\n authority: z.string().optional().describe('Issuing authority'),\n certNumber: z.string().optional().describe('Certificate / permit number'),\n evidenceFileId: z\n .string()\n .optional()\n .describe('wspace-files-svc File ID for the certificate document'),\n issuedAt: DateTimeString.optional().describe('Issue date'),\n expiresAt: DateTimeString.optional().describe('Expiry date'),\n ownerId: z.string().optional().describe('Owning user ID'),\n notes: z.string().optional().describe('Free-text notes'),\n tags: z.array(z.string()).optional().describe('Free-form tags'),\n },\n },\n async ({\n title,\n category,\n assetId,\n authority,\n certNumber,\n evidenceFileId,\n issuedAt,\n expiresAt,\n ownerId,\n notes,\n tags,\n }) => {\n try {\n const input: Record<string, unknown> = { title };\n if (category !== undefined) input.category = category;\n if (assetId !== undefined) input.assetId = assetId;\n if (authority !== undefined) input.authority = authority;\n if (certNumber !== undefined) input.certNumber = certNumber;\n if (evidenceFileId !== undefined) input.evidenceFileId = evidenceFileId;\n if (issuedAt !== undefined) input.issuedAt = issuedAt;\n if (expiresAt !== undefined) input.expiresAt = expiresAt;\n if (ownerId !== undefined) input.ownerId = ownerId;\n if (notes !== undefined) input.notes = notes;\n if (tags !== undefined) input.tags = tags;\n\n const data = await ctx.gql.workspace.request<{\n theCreateComplianceCert: Record<string, unknown>;\n }>(ops.CREATE_COMPLIANCE_CERT, { input });\n return jsonResult(data.theCreateComplianceCert);\n } catch (error) {\n ctx.logger.error('theglobalfuel compliance_create failed', { error: String(error) });\n return errorResult(\n `Failed to create compliance certification: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'compliance_transition')),\n {\n title: 'Transition Compliance Certification',\n description:\n 'Advance a compliance certification through its lifecycle (validated transitions), e.g. PENDING → SUBMITTED → APPROVED.',\n inputSchema: {\n id: z.string().describe('Compliance certification ID'),\n status: ComplianceStatusEnum.describe('Target status'),\n },\n },\n async ({ id, status }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n theTransitionComplianceCert: Record<string, unknown>;\n }>(ops.TRANSITION_COMPLIANCE_CERT, { id, status });\n return jsonResult(data.theTransitionComplianceCert);\n } catch (error) {\n ctx.logger.error('theglobalfuel compliance_transition failed', { error: String(error) });\n return errorResult(\n `Failed to transition compliance certification: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Theglobalfuel health tool.\n *\n * Surface (1): health.\n * `health` maps to the @public theHealth query (no auth required).\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: 'Theglobalfuel Health Check',\n description:\n 'Public liveness/identity probe for the Theglobalfuel subgraph (theHealth). Requires no authentication.',\n inputSchema: {},\n },\n async () => {\n try {\n const data = await ctx.gql.workspace.request<{ theHealth: string }>(ops.HEALTH, {});\n return jsonResult({ ok: true, status: data.theHealth });\n } catch (error) {\n ctx.logger.error('theglobalfuel health failed', { error: String(error) });\n return errorResult(\n `Theglobalfuel 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_ASSETS, LIST_CONTRACTS, LIST_INVENTORY_LOTS } from './operations.js';\n\n/**\n * Read-only Theglobalfuel 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 registerTheglobalfuelResources(\n server: McpServer,\n ctx: McpContext,\n track: (uri: string) => string,\n): void {\n const schemaUri = track(mcpResourceUri(ctx.productName, 'schema'));\n const assetsUri = track(mcpResourceUri(ctx.productName, 'assets'));\n const contractsUri = track(mcpResourceUri(ctx.productName, 'contracts'));\n const inventoryUri = track(mcpResourceUri(ctx.productName, 'inventory'));\n\n // <product>://schema — domain overview\n server.registerResource(\n 'theglobalfuel-schema',\n schemaUri,\n {\n title: 'Theglobalfuel Domain Schema',\n description:\n 'Overview of the Theglobalfuel resource-operating-system 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 = `# Theglobalfuel Domain (Overview)\n\nEnergy, Mineral & Commodity Resource Operating System — the federated system of\nrecord for resource assets, production, reserves, offtake contracts, shipments,\ninventory, and ESG (emissions & compliance).\n\n## Entities\n- TheAsset — a resource asset (well, mine, field, plant, pipeline, ...)\n- TheProductionRecord — periodic production captured against an asset\n- TheReserveEstimate — recoverable-reserve estimate for an asset\n- TheOfftakeContract — a BUY/SELL offtake contract (+ shipments)\n- TheShipment — a commodity shipment fulfilling a contract\n- TheInventoryLot — a stored commodity lot\n- TheEmissionRecord — a GHG emission figure (Scope 1/2/3)\n- TheComplianceCert — a regulatory / ESG certification (permit, license, audit)\n\n## Enums\n- TheCommodityType: BAUXITE, BIOFUEL, COAL, COPPER, CRUDE_OIL, ELECTRICITY, GOLD, HYDROGEN, IRON_ORE, LITHIUM, LNG, NATURAL_GAS, RARE_EARTH\n- TheAssetKind: GAS_FIELD, MINE, OIL_FIELD, PIPELINE, POWER_PLANT, PROCESSING_PLANT, QUARRY, REFINERY, SOLAR_FARM, STORAGE_TERMINAL, WELL, WIND_FARM\n- TheAssetStatus: APPRAISAL, DECOMMISSIONING, DEVELOPMENT, EXPLORATION, PRODUCING, RETIRED, SUSPENDED\n- TheContractSide: BUY, SELL\n- TheContractStatus: ACTIVE, COMPLETED, DRAFT, NEGOTIATION, SIGNED, SUSPENDED, TERMINATED\n- TheShipmentStatus: CANCELLED, DELIVERED, IN_TRANSIT, LOADING, SCHEDULED\n- TheInventoryStatus: AVAILABLE, CONSUMED, IN_TRANSIT, RESERVED, WRITTEN_OFF\n- TheEmissionScope: SCOPE_1, SCOPE_2, SCOPE_3\n- TheComplianceStatus: APPROVED, EXPIRED, PENDING, REJECTED, REVOKED, SUBMITTED\n- TheUnit: BARRELS, CUBIC_METERS, GJ, KILOGRAMS, MCF, MWH, TONNES\n\n## Tool groups\nassets, production, reserves, contracts, shipments, inventory, emissions, compliance, health.\nAll run against the WORKSPACE gateway (workspace-scoped) except the public health probe.\n`;\n return {\n contents: [{ uri: schemaUri, text: schema, mimeType: 'text/plain' }],\n };\n },\n );\n\n // <product>://assets — asset registry\n server.registerResource(\n 'theglobalfuel-assets',\n assetsUri,\n {\n title: 'Theglobalfuel Asset Registry',\n description: 'The first 50 resource assets in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${assetsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ theListAssets: unknown }>(LIST_ASSETS, {\n pagination: { limit: 50, offset: 0 },\n });\n return {\n contents: [\n {\n uri: assetsUri,\n text: JSON.stringify(data.theListAssets, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: assetsUri,\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>://contracts — offtake contracts\n server.registerResource(\n 'theglobalfuel-contracts',\n contractsUri,\n {\n title: 'Theglobalfuel Offtake Contracts',\n description: 'The first 50 offtake contracts in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${contractsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ theListContracts: unknown }>(\n LIST_CONTRACTS,\n {\n pagination: { limit: 50, offset: 0 },\n },\n );\n return {\n contents: [\n {\n uri: contractsUri,\n text: JSON.stringify(data.theListContracts, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: contractsUri,\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>://inventory — inventory lots\n server.registerResource(\n 'theglobalfuel-inventory',\n inventoryUri,\n {\n title: 'Theglobalfuel Inventory Lots',\n description: 'The first 50 inventory lots in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${inventoryUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ theListInventoryLots: unknown }>(\n LIST_INVENTORY_LOTS,\n { pagination: { limit: 50, offset: 0 } },\n );\n return {\n contents: [\n {\n uri: inventoryUri,\n text: JSON.stringify(data.theListInventoryLots, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: inventoryUri,\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 * Theglobalfuel MCP prompts — guided multi-step workflows. Names are\n * product-prefixed via mcpPromptName and tracked at function entry.\n */\nexport function registerTheglobalfuelPrompts(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n const p = ctx.productName;\n const onboardingName = track(mcpPromptName(p, 'asset-onboarding'));\n const opsName = track(mcpPromptName(p, 'trade-ops'));\n\n // <product>-asset-onboarding — stand up an asset + production + reserves\n server.registerPrompt(\n onboardingName,\n {\n title: 'Asset Onboarding',\n description:\n 'Guide for bringing a new resource asset online: register the asset, capture an initial production record, log a reserve estimate, and transition it into production.',\n argsSchema: {\n name: z.string().optional().describe('Asset name'),\n commodity: z.string().optional().describe('Commodity type'),\n },\n },\n ({ name, commodity }) => {\n ctx.logger.debug(`Prompt ${onboardingName} called`, { name, commodity });\n const nameNote = name ? `Use the asset name \"${name}\".` : 'Ask the user for the asset name.';\n const commodityNote = commodity\n ? `Use commodity ${commodity}.`\n : 'Help the user pick a TheCommodityType.';\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Help me onboard a new Theglobalfuel resource asset.\n\n1. **Register Asset**: Use ${p}_assets_create. ${nameNote} ${commodityNote} Pick the asset kind (well, mine, field, plant, ...) and set capacityPerDay/capacityUnit and workingInterestPct if known.\n2. **Log Reserves**: Use ${p}_reserves_create with the new assetId, an asOfDate, a recoverable quantity, and a reserve category (PROVED/PROBABLE/...).\n3. **Capture Production**: Use ${p}_production_record for the first reporting period (periodStart, periodEnd, volume, unit).\n4. **Verify**: Use ${p}_assets_get to confirm the asset shows its production records and reserve estimates.\n5. **Go Live**: Use ${p}_assets_transition with status=DEVELOPMENT then PRODUCING when the asset is online.\n\nShow results at each step and confirm before transitioning to PRODUCING.`,\n },\n },\n ],\n };\n },\n );\n\n // <product>-trade-ops — daily commodity-trading + ESG operations\n server.registerPrompt(\n opsName,\n {\n title: 'Trade & ESG Operations',\n description:\n 'Daily operations workflow: review offtake contracts, advance shipments, reconcile inventory, and keep emissions & compliance current.',\n argsSchema: {\n contractId: z.string().optional().describe('Contract ID to operate'),\n },\n },\n ({ contractId }) => {\n ctx.logger.debug(`Prompt ${opsName} called`, { contractId });\n const contractNote = contractId\n ? `Operate contract \"${contractId}\".`\n : `First list contracts with ${p}_contracts_list and pick one.`;\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Run daily Theglobalfuel trade & ESG operations. ${contractNote}\n\n1. **Contracts**: Use ${p}_contracts_list (filter by status=ACTIVE) and ${p}_contracts_get to review delivered vs contracted volume.\n2. **Shipments**: Use ${p}_shipments_list filtered by contractId. Schedule new shipments with ${p}_shipments_schedule and mark arrivals with ${p}_shipments_deliver (this rolls volume into the contract).\n3. **Inventory**: Use ${p}_inventory_list to check available lots; use ${p}_inventory_set_status to RESERVED/IN_TRANSIT/CONSUMED as lots move.\n4. **Emissions**: Use ${p}_emissions_list for the period; record new figures with ${p}_emissions_record and mark audited ones with ${p}_emissions_verify.\n5. **Compliance**: Use ${p}_compliance_list to find permits/licenses near expiry; advance pending ones with ${p}_compliance_transition.\n\nSummarize what needs attention after each step.`,\n },\n },\n ],\n };\n },\n );\n}\n","/**\n * Theglobalfuel module — domain module for the future-products ecosystem program.\n *\n * Covers all 8 @key entities of wspace-theglobalfuel-svc grouped into\n * per-entity sub-APIs: assets, production, reserves, contracts, shipments,\n * inventory, emissions, compliance (+ a public health probe). Mirrors the\n * rich kadaikodi / vibecontrols module structure (tools/<entity>.ts +\n * resources.ts + prompts.ts) and the canonical tags module's typing discipline.\n *\n * Backend: ~/products/theglobalfuel/wspace-theglobalfuel-svc/\n * (Hive service name `theglobalfuel`). All operations run against the WORKSPACE\n * gateway; the @public theHealth 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 { registerAssetTools } from './tools/assets.js';\nimport { registerProductionTools } from './tools/production.js';\nimport { registerReserveTools } from './tools/reserves.js';\nimport { registerContractTools } from './tools/contracts.js';\nimport { registerShipmentTools } from './tools/shipments.js';\nimport { registerInventoryTools } from './tools/inventory.js';\nimport { registerEmissionTools } from './tools/emissions.js';\nimport { registerComplianceTools } from './tools/compliance.js';\nimport { registerHealthTools } from './tools/health.js';\nimport { registerTheglobalfuelResources } from './resources.js';\nimport { registerTheglobalfuelPrompts } from './prompts.js';\n\nconst theglobalfuelModule: McpModule = {\n id: 'theglobalfuel',\n version: '0.0.1',\n displayName: 'Theglobalfuel',\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 registerAssetTools(server, ctx, trackTool);\n registerProductionTools(server, ctx, trackTool);\n registerReserveTools(server, ctx, trackTool);\n registerContractTools(server, ctx, trackTool);\n registerShipmentTools(server, ctx, trackTool);\n registerInventoryTools(server, ctx, trackTool);\n registerEmissionTools(server, ctx, trackTool);\n registerComplianceTools(server, ctx, trackTool);\n registerHealthTools(server, ctx, trackTool);\n\n registerTheglobalfuelResources(server, ctx, trackResource);\n registerTheglobalfuelPrompts(server, ctx, trackPrompt);\n\n return { tools, resources, prompts };\n },\n};\n\nexport default theglobalfuelModule;\n"]}