{"version":3,"sources":["../src/integration/contracts/zodios-api.ts"],"sourcesContent":["/**\n * GTD Domain - Zodios API Definitions\n * \n * Type-safe API contracts using Zodios to ensure backend, frontend,\n * and MCP clients always stay in sync. Single source of truth!\n */\n\nimport { makeApi } from '@zodios/core';\nimport { z } from 'zod';\n\n// Zod schemas based on existing contracts\nexport const InboxCaptureRequestSchema = z.object({\n  content: z.string().describe('The content/description of the item to capture'),\n  capturedBy: z.string().describe('Who is capturing this item'),\n  priority: z.enum(['low', 'medium', 'high', 'urgent']).optional().describe('Optional priority level'),\n  tags: z.array(z.string()).optional().describe('Optional tags for categorization'),\n  source: z.string().optional().describe('Source of the capture (for tracking)'),\n  context: z.object({\n    location: z.string().optional(),\n    project: z.string().optional(),\n    reference: z.string().optional()\n  }).optional().describe('Optional context information')\n});\n\nexport const InboxItemSummarySchema = z.object({\n  id: z.string().describe('Unique identifier for the inbox item'),\n  content: z.string().describe('The original content/description of the item'),\n  text: z.string().describe('Backward compatibility field - same as content'),\n  title: z.string().describe('User-friendly title extracted from content'),\n  status: z.enum(['unprocessed', 'processed']).describe('Current processing status'),\n  capturedAt: z.string().describe('When the item was captured (ISO date)'),\n  createdAt: z.date().describe('Backward compatibility field - same as capturedAt'),\n  capturedBy: z.string().describe('Who captured this item (person ID)'),\n  capturedByPerson: z.object({\n    id: z.string(),\n    displayName: z.string(),\n    roleType: z.enum(['Human', 'AiAgent'])\n  }).nullable().describe('Enriched person information'),\n  priority: z.enum(['low', 'medium', 'high', 'urgent']).optional().describe('Priority level if assigned'),\n  clarification: z.string().optional().describe('Clarification text if item has been clarified'),\n  description: z.string().optional().describe('Backward compatibility field - same as clarification'),\n  isActionable: z.boolean().optional().describe('Whether the item has been determined to be actionable'),\n  tags: z.array(z.string()).optional().describe('Tags associated with the item')\n});\n\nexport const InboxCaptureResultSchema = z.object({\n  success: z.boolean().describe('Whether the capture was successful'),\n  itemId: z.string().describe('The ID of the created inbox item'),\n  capturedAt: z.string().describe('When the item was captured'),\n  message: z.string().describe('Human-readable message'),\n  error: z.string().optional().describe('Error details if capture failed')\n});\n\nexport const InboxQueryCriteriaSchema = z.object({\n  status: z.enum(['inbox', 'clarified', 'processed']).optional(),\n  priority: z.enum(['low', 'medium', 'high', 'urgent']).optional(),\n  capturedBy: z.string().optional(),\n  tags: z.array(z.string()).optional(),\n  limit: z.number().optional(),\n  offset: z.number().optional()\n});\n\n// GTD Domain API using Zodios\nexport const gtdDomainApi = makeApi([\n  {\n    method: 'post',\n    path: '/api/gtd/inbox',\n    alias: 'captureInboxItem',\n    description: 'Capture a new item into GTD inbox',\n    parameters: [\n      {\n        name: 'body',\n        type: 'Body',\n        schema: InboxCaptureRequestSchema\n      }\n    ],\n    response: InboxCaptureResultSchema\n  },\n  {\n    method: 'get',\n    path: '/api/gtd/inbox',\n    alias: 'getInboxItems',\n    description: 'Get inbox items with optional filtering',\n    parameters: [\n      {\n        name: 'query',\n        type: 'Query',\n        schema: InboxQueryCriteriaSchema\n      }\n    ],\n    response: z.object({\n      items: z.array(InboxItemSummarySchema),\n      total: z.number(),\n      hasMore: z.boolean()\n    })\n  },\n  {\n    method: 'get',\n    path: '/api/gtd/inbox/:id',\n    alias: 'getInboxItem',\n    description: 'Get a specific inbox item by ID',\n    parameters: [\n      {\n        name: 'id',\n        type: 'Path',\n        schema: z.string()\n      }\n    ],\n    response: InboxItemSummarySchema\n  },\n  {\n    method: 'put',\n    path: '/api/gtd/inbox/:id/clarify',\n    alias: 'clarifyInboxItem',\n    description: 'Clarify an inbox item (step 2 of GTD)',\n    parameters: [\n      {\n        name: 'id',\n        type: 'Path',\n        schema: z.string()\n      },\n      {\n        name: 'body',\n        type: 'Body',\n        schema: z.object({\n          isActionable: z.boolean(),\n          outcome: z.string().optional(),\n          nextAction: z.string().optional(),\n          context: z.string().optional(),\n          project: z.string().optional(),\n          clarifiedBy: z.string()\n        })\n      }\n    ],\n    response: InboxItemSummarySchema\n  },\n  {\n    method: 'get',\n    path: '/api/gtd/next-actions',\n    alias: 'getNextActions',\n    description: 'Get next actions organized by context',\n    parameters: [\n      {\n        name: 'query',\n        type: 'Query',\n        schema: z.object({\n          context: z.string().optional(),\n          priority: z.enum(['low', 'medium', 'high', 'urgent']).optional(),\n          limit: z.number().optional()\n        })\n      }\n    ],\n    response: z.object({\n      actions: z.array(z.object({\n        id: z.string(),\n        content: z.string(),\n        context: z.string(),\n        priority: z.enum(['low', 'medium', 'high', 'urgent']),\n        project: z.string().optional(),\n        dueDate: z.string().optional()\n      })),\n      byContext: z.record(z.string(), z.array(z.any()))\n    })\n  },\n  {\n    method: 'get',\n    path: '/api/gtd/weekly-review',\n    alias: 'getWeeklyReview',\n    description: 'Get data for GTD weekly review',\n    response: z.object({\n      inbox: z.array(InboxItemSummarySchema),\n      overdueTasks: z.array(z.any()),\n      waitingForTasks: z.array(z.any()),\n      somedayTasks: z.array(z.any()),\n      completedThisWeek: z.array(z.any()),\n      stats: z.object({\n        tasksCompleted: z.number(),\n        tasksCreated: z.number(),\n        averageCompletionTime: z.number(),\n        productivityScore: z.number()\n      })\n    })\n  }\n]);\n\n// Export types inferred from Zodios API\nexport type GTDApi = typeof gtdDomainApi;\nexport type InboxCaptureRequest = z.infer<typeof InboxCaptureRequestSchema>;\nexport type InboxItemSummary = z.infer<typeof InboxItemSummarySchema>;\nexport type InboxCaptureResult = z.infer<typeof InboxCaptureResultSchema>;\nexport type InboxQueryCriteria = z.infer<typeof InboxQueryCriteriaSchema>;"],"mappings":"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","names":["makeApi","z","InboxCaptureRequestSchema","object","content","string","describe","capturedBy","priority","enum","optional","tags","array","source","context","location","project","reference","InboxItemSummarySchema","id","text","title","status","capturedAt","createdAt","date","capturedByPerson","displayName","roleType","nullable","clarification","description","isActionable","boolean","InboxCaptureResultSchema","success","itemId","message","error","InboxQueryCriteriaSchema","limit","number","offset","gtdDomainApi","method","path","alias","parameters","name","type","schema","response","items","total","hasMore","outcome","nextAction","clarifiedBy","actions","dueDate","byContext","record","any","inbox","overdueTasks","waitingForTasks","somedayTasks","completedThisWeek","stats","tasksCompleted","tasksCreated","averageCompletionTime","productivityScore"]}