@karixi/payload-ai 0.1.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.
@@ -0,0 +1,148 @@
1
+ import { z } from "zod";
2
+ import { Config, PayloadRequest } from "payload";
3
+
4
+ //#region src/types.d.ts
5
+ /** Plugin configuration */
6
+ type AIPluginConfig = {
7
+ /** AI provider: 'anthropic' or 'openai' */provider: 'anthropic' | 'openai'; /** Environment variable name for the API key */
8
+ apiKeyEnvVar: string; /** Feature flags */
9
+ features?: {
10
+ /** Enable admin UI components (AI Fill buttons, bulk panel) */adminUI?: boolean; /** Enable dev tools (screenshot, visual diff, form testing) */
11
+ devTools?: boolean;
12
+ }; /** Per-collection AI generation config */
13
+ collections?: Record<string, CollectionAIConfig>; /** Rate limiting */
14
+ rateLimit?: {
15
+ maxTokensPerBatch?: number;
16
+ delayBetweenRequests?: number;
17
+ maxConcurrentRequests?: number;
18
+ }; /** Rollback on bulk generation failure */
19
+ rollbackOnError?: boolean; /** Max concurrent browser instances for dev tools */
20
+ maxConcurrentBrowserInstances?: number;
21
+ };
22
+ type CollectionAIConfig = {
23
+ /** Per-field AI generation config */fields?: Record<string, {
24
+ enabled: boolean;
25
+ prompt?: string;
26
+ }>;
27
+ };
28
+ /** AI Provider interface */
29
+ interface AIProvider {
30
+ generate(prompt: string, outputSchema: Record<string, unknown>): Promise<unknown[]>;
31
+ analyzeImage(imageBuffer: Buffer): Promise<string>;
32
+ }
33
+ /** Analyzed collection schema */
34
+ type CollectionSchema = {
35
+ slug: string;
36
+ fields: FieldSchema[];
37
+ relationships: RelationshipInfo[];
38
+ requiredFields: string[];
39
+ populatable: boolean;
40
+ lexicalFeatures?: string[];
41
+ };
42
+ /** Analyzed field schema */
43
+ type FieldSchema = {
44
+ name: string;
45
+ type: string;
46
+ required: boolean;
47
+ path: string;
48
+ options?: Array<{
49
+ label: string;
50
+ value: string;
51
+ }>;
52
+ relationTo?: string | string[];
53
+ hasMany?: boolean;
54
+ fields?: FieldSchema[];
55
+ blocks?: Array<{
56
+ slug: string;
57
+ fields: FieldSchema[];
58
+ }>;
59
+ lexicalFeatures?: string[];
60
+ };
61
+ /** Relationship info between collections */
62
+ type RelationshipInfo = {
63
+ field: string;
64
+ collection: string | string[];
65
+ hasMany: boolean;
66
+ isSelfReferential: boolean;
67
+ };
68
+ /** Entry in the deletion log for rollback */
69
+ type DeletionLogEntry = {
70
+ collection: string;
71
+ id: string;
72
+ createdAt: Date;
73
+ };
74
+ /** Progress event from bulk operations */
75
+ type ProgressEvent = {
76
+ phase: string;
77
+ collection: string;
78
+ created: number;
79
+ failed: number;
80
+ total: number;
81
+ elapsed: number;
82
+ };
83
+ //#endregion
84
+ //#region src/core/prompt-builder.d.ts
85
+ type GenerationContext = {
86
+ count: number;
87
+ theme?: string;
88
+ locale?: string;
89
+ existingIds?: Record<string, string[]>;
90
+ };
91
+ //#endregion
92
+ //#region src/mcp/prompts.d.ts
93
+ type MCPPrompt = {
94
+ name: string;
95
+ title: string;
96
+ description: string;
97
+ argsSchema: Record<string, z.ZodTypeAny>;
98
+ handler: (args: Record<string, unknown>, req: PayloadRequest, extra: unknown) => {
99
+ messages: Array<{
100
+ content: {
101
+ text: string;
102
+ type: 'text';
103
+ };
104
+ role: 'user' | 'assistant';
105
+ }>;
106
+ };
107
+ };
108
+ declare function getAIPrompts(): MCPPrompt[];
109
+ //#endregion
110
+ //#region src/mcp/resources.d.ts
111
+ type MCPResource = {
112
+ name: string;
113
+ title: string;
114
+ description: string;
115
+ uri: string;
116
+ mimeType: string;
117
+ handler: (...args: unknown[]) => {
118
+ contents: Array<{
119
+ text: string;
120
+ uri: string;
121
+ }>;
122
+ };
123
+ };
124
+ declare function getAIResources(): MCPResource[];
125
+ //#endregion
126
+ //#region src/mcp/tools.d.ts
127
+ type MCPTool = {
128
+ name: string;
129
+ description: string;
130
+ parameters: Record<string, z.ZodTypeAny>;
131
+ handler: (args: Record<string, unknown>, req: PayloadRequest, extra: unknown) => Promise<{
132
+ content: Array<{
133
+ text: string;
134
+ type: 'text';
135
+ }>;
136
+ }>;
137
+ };
138
+ declare function getAITools(pluginConfig: AIPluginConfig): MCPTool[];
139
+ //#endregion
140
+ //#region src/plugin.d.ts
141
+ /**
142
+ * Payload AI Plugin — adds AI-powered data generation and admin features.
143
+ * Auto-injects MCP custom tools if @payloadcms/plugin-mcp is present.
144
+ */
145
+ declare function aiPlugin(config: AIPluginConfig): (incomingConfig: Config) => Config;
146
+ //#endregion
147
+ export { type AIPluginConfig, type AIProvider, type CollectionAIConfig, type CollectionSchema, type DeletionLogEntry, type FieldSchema, type GenerationContext, type MCPPrompt, type MCPResource, type MCPTool, type ProgressEvent, type RelationshipInfo, aiPlugin, getAIPrompts, getAIResources, getAITools };
148
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/core/prompt-builder.ts","../src/mcp/prompts.ts","../src/mcp/resources.ts","../src/mcp/tools.ts","../src/plugin.ts"],"mappings":";;;;;KACY,cAAA;6CAEV,QAAA,0BAFU;EAIV,YAAA;EAEA,QAAA;IAJA,+DAME,OAAA,YAFF;IAIE,QAAA;EAAA,GAGF;EAAA,WAAA,GAAc,MAAA,SAAe,kBAAA,GAAA;EAE7B,SAAA;IACE,iBAAA;IACA,oBAAA;IACA,qBAAA;EAAA,GAKF;EAFA,eAAA,YAE6B;EAA7B,6BAAA;AAAA;AAAA,KAGU,kBAAA;EAEK,qCAAf,MAAA,GAAS,MAAA;IAGL,OAAA;IACA,MAAA;EAAA;AAAA;;UAMW,UAAA;EACf,QAAA,CAAS,MAAA,UAAgB,YAAA,EAAc,MAAA,oBAA0B,OAAA;EACjE,YAAA,CAAa,WAAA,EAAa,MAAA,GAAS,OAAA;AAAA;;KAIzB,gBAAA;EACV,IAAA;EACA,MAAA,EAAQ,WAAA;EACR,aAAA,EAAe,gBAAA;EACf,cAAA;EACA,WAAA;EACA,eAAA;AAAA;;KAIU,WAAA;EACV,IAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,OAAA,GAAU,KAAA;IAAQ,KAAA;IAAe,KAAA;EAAA;EACjC,UAAA;EACA,OAAA;EACA,MAAA,GAAS,WAAA;EACT,MAAA,GAAS,KAAA;IAAQ,IAAA;IAAc,MAAA,EAAQ,WAAA;EAAA;EACvC,eAAA;AAAA;;KAIU,gBAAA;EACV,KAAA;EACA,UAAA;EACA,OAAA;EACA,iBAAA;AAAA;;KAIU,gBAAA;EACV,UAAA;EACA,EAAA;EACA,SAAA,EAAW,IAAA;AAAA;;KAID,aAAA;EACV,KAAA;EACA,UAAA;EACA,OAAA;EACA,MAAA;EACA,KAAA;EACA,OAAA;AAAA;;;KCxFU,iBAAA;EACV,KAAA;EACA,KAAA;EACA,MAAA;EACA,WAAA,GAAc,MAAA;AAAA;;;KCHJ,SAAA;EACV,IAAA;EACA,KAAA;EACA,WAAA;EACA,UAAA,EAAY,MAAA,SAAe,CAAA,CAAE,UAAA;EAC7B,OAAA,GACE,IAAA,EAAM,MAAA,mBACN,GAAA,EAAK,cAAA,EACL,KAAA;IACK,QAAA,EAAU,KAAA;MAAQ,OAAA;QAAW,IAAA;QAAc,IAAA;MAAA;MAAgB,IAAA;IAAA;EAAA;AAAA;AAAA,iBAGpD,YAAA,CAAA,GAAgB,SAAA;;;KCfpB,WAAA;EACV,IAAA;EACA,KAAA;EACA,WAAA;EACA,GAAA;EACA,QAAA;EACA,OAAA,MAAa,IAAA;IAAsB,QAAA,EAAU,KAAA;MAAQ,IAAA;MAAc,GAAA;IAAA;EAAA;AAAA;AAAA,iBAGrD,cAAA,CAAA,GAAkB,WAAA;;;KCDtB,OAAA;EACV,IAAA;EACA,WAAA;EACA,UAAA,EAAY,MAAA,SAAe,CAAA,CAAE,UAAA;EAC7B,OAAA,GACE,IAAA,EAAM,MAAA,mBACN,GAAA,EAAK,cAAA,EACL,KAAA,cACG,OAAA;IAAU,OAAA,EAAS,KAAA;MAAQ,IAAA;MAAc,IAAA;IAAA;EAAA;AAAA;AAAA,iBAGhC,UAAA,CAAW,YAAA,EAAc,cAAA,GAAiB,OAAA;;;;;AJlB1D;;iBKQgB,QAAA,CAAS,MAAA,EAAQ,cAAA,IACvB,cAAA,EAAgB,MAAA,KAAS,MAAA"}