@swoft/gtd-domain
Version:
Getting Things Done (GTD) productivity system - consolidated domain implementation
243 lines (242 loc) • 8.5 kB
JavaScript
"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