UNPKG

@swoft/gtd-domain

Version:

Getting Things Done (GTD) productivity system - consolidated domain implementation

243 lines (242 loc) 8.5 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/integration/contracts/zodios-api.ts var zodios_api_exports = {}; __export(zodios_api_exports, { InboxCaptureRequestSchema: () => InboxCaptureRequestSchema, InboxCaptureResultSchema: () => InboxCaptureResultSchema, InboxItemSummarySchema: () => InboxItemSummarySchema, InboxQueryCriteriaSchema: () => InboxQueryCriteriaSchema, gtdDomainApi: () => gtdDomainApi }); module.exports = __toCommonJS(zodios_api_exports); var import_core = require("@zodios/core"); var import_zod = require("zod"); var InboxCaptureRequestSchema = import_zod.z.object({ content: import_zod.z.string().describe("The content/description of the item to capture"), capturedBy: import_zod.z.string().describe("Who is capturing this item"), priority: import_zod.z.enum([ "low", "medium", "high", "urgent" ]).optional().describe("Optional priority level"), tags: import_zod.z.array(import_zod.z.string()).optional().describe("Optional tags for categorization"), source: import_zod.z.string().optional().describe("Source of the capture (for tracking)"), context: import_zod.z.object({ location: import_zod.z.string().optional(), project: import_zod.z.string().optional(), reference: import_zod.z.string().optional() }).optional().describe("Optional context information") }); var InboxItemSummarySchema = import_zod.z.object({ id: import_zod.z.string().describe("Unique identifier for the inbox item"), content: import_zod.z.string().describe("The original content/description of the item"), text: import_zod.z.string().describe("Backward compatibility field - same as content"), title: import_zod.z.string().describe("User-friendly title extracted from content"), status: import_zod.z.enum([ "unprocessed", "processed" ]).describe("Current processing status"), capturedAt: import_zod.z.string().describe("When the item was captured (ISO date)"), createdAt: import_zod.z.date().describe("Backward compatibility field - same as capturedAt"), capturedBy: import_zod.z.string().describe("Who captured this item (person ID)"), capturedByPerson: import_zod.z.object({ id: import_zod.z.string(), displayName: import_zod.z.string(), roleType: import_zod.z.enum([ "Human", "AiAgent" ]) }).nullable().describe("Enriched person information"), priority: import_zod.z.enum([ "low", "medium", "high", "urgent" ]).optional().describe("Priority level if assigned"), clarification: import_zod.z.string().optional().describe("Clarification text if item has been clarified"), description: import_zod.z.string().optional().describe("Backward compatibility field - same as clarification"), isActionable: import_zod.z.boolean().optional().describe("Whether the item has been determined to be actionable"), tags: import_zod.z.array(import_zod.z.string()).optional().describe("Tags associated with the item") }); var InboxCaptureResultSchema = import_zod.z.object({ success: import_zod.z.boolean().describe("Whether the capture was successful"), itemId: import_zod.z.string().describe("The ID of the created inbox item"), capturedAt: import_zod.z.string().describe("When the item was captured"), message: import_zod.z.string().describe("Human-readable message"), error: import_zod.z.string().optional().describe("Error details if capture failed") }); var InboxQueryCriteriaSchema = import_zod.z.object({ status: import_zod.z.enum([ "inbox", "clarified", "processed" ]).optional(), priority: import_zod.z.enum([ "low", "medium", "high", "urgent" ]).optional(), capturedBy: import_zod.z.string().optional(), tags: import_zod.z.array(import_zod.z.string()).optional(), limit: import_zod.z.number().optional(), offset: import_zod.z.number().optional() }); var gtdDomainApi = (0, import_core.makeApi)([ { method: "post", path: "/api/gtd/inbox", alias: "captureInboxItem", description: "Capture a new item into GTD inbox", parameters: [ { name: "body", type: "Body", schema: InboxCaptureRequestSchema } ], response: InboxCaptureResultSchema }, { method: "get", path: "/api/gtd/inbox", alias: "getInboxItems", description: "Get inbox items with optional filtering", parameters: [ { name: "query", type: "Query", schema: InboxQueryCriteriaSchema } ], response: import_zod.z.object({ items: import_zod.z.array(InboxItemSummarySchema), total: import_zod.z.number(), hasMore: import_zod.z.boolean() }) }, { method: "get", path: "/api/gtd/inbox/:id", alias: "getInboxItem", description: "Get a specific inbox item by ID", parameters: [ { name: "id", type: "Path", schema: import_zod.z.string() } ], response: InboxItemSummarySchema }, { method: "put", path: "/api/gtd/inbox/:id/clarify", alias: "clarifyInboxItem", description: "Clarify an inbox item (step 2 of GTD)", parameters: [ { name: "id", type: "Path", schema: import_zod.z.string() }, { name: "body", type: "Body", schema: import_zod.z.object({ isActionable: import_zod.z.boolean(), outcome: import_zod.z.string().optional(), nextAction: import_zod.z.string().optional(), context: import_zod.z.string().optional(), project: import_zod.z.string().optional(), clarifiedBy: import_zod.z.string() }) } ], response: InboxItemSummarySchema }, { method: "get", path: "/api/gtd/next-actions", alias: "getNextActions", description: "Get next actions organized by context", parameters: [ { name: "query", type: "Query", schema: import_zod.z.object({ context: import_zod.z.string().optional(), priority: import_zod.z.enum([ "low", "medium", "high", "urgent" ]).optional(), limit: import_zod.z.number().optional() }) } ], response: import_zod.z.object({ actions: import_zod.z.array(import_zod.z.object({ id: import_zod.z.string(), content: import_zod.z.string(), context: import_zod.z.string(), priority: import_zod.z.enum([ "low", "medium", "high", "urgent" ]), project: import_zod.z.string().optional(), dueDate: import_zod.z.string().optional() })), byContext: import_zod.z.record(import_zod.z.string(), import_zod.z.array(import_zod.z.any())) }) }, { method: "get", path: "/api/gtd/weekly-review", alias: "getWeeklyReview", description: "Get data for GTD weekly review", response: import_zod.z.object({ inbox: import_zod.z.array(InboxItemSummarySchema), overdueTasks: import_zod.z.array(import_zod.z.any()), waitingForTasks: import_zod.z.array(import_zod.z.any()), somedayTasks: import_zod.z.array(import_zod.z.any()), completedThisWeek: import_zod.z.array(import_zod.z.any()), stats: import_zod.z.object({ tasksCompleted: import_zod.z.number(), tasksCreated: import_zod.z.number(), averageCompletionTime: import_zod.z.number(), productivityScore: import_zod.z.number() }) }) } ]); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { InboxCaptureRequestSchema, InboxCaptureResultSchema, InboxItemSummarySchema, InboxQueryCriteriaSchema, gtdDomainApi }); //# sourceMappingURL=zodios-api.js.map