pupt 2.2.0 → 2.2.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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/prompt-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,4GAU1B,CAAC;AAGH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EAQhC,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B7B,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;EAQ5B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB/B,CAAC;AAGH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKvB,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW7B,CAAC;AAGH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC"}
@@ -1,110 +0,0 @@
1
- import { z } from 'zod';
2
- // Input type schemas
3
- export const InputTypeSchema = z.enum([
4
- 'text',
5
- 'select',
6
- 'multiselect',
7
- 'number',
8
- 'boolean',
9
- 'file',
10
- 'password',
11
- 'confirm',
12
- 'editor'
13
- ]);
14
- // Validation schema for input validation rules
15
- export const InputValidationSchema = z.object({
16
- required: z.boolean().optional(),
17
- pattern: z.string().optional(),
18
- min: z.number().optional(),
19
- max: z.number().optional(),
20
- minLength: z.number().optional(),
21
- maxLength: z.number().optional(),
22
- enum: z.array(z.string()).optional()
23
- });
24
- // Input definition schema
25
- export const PromptInputSchema = z.object({
26
- name: z.string().min(1, 'Input name is required'),
27
- type: InputTypeSchema,
28
- description: z.string().optional(),
29
- required: z.boolean().default(true),
30
- default: z.any().optional(),
31
- options: z.array(z.union([
32
- z.string(),
33
- z.object({
34
- label: z.string(),
35
- value: z.any()
36
- })
37
- ])).optional(),
38
- validation: z.union([
39
- z.string(), // For backward compatibility with string validation rules
40
- InputValidationSchema
41
- ]).optional(),
42
- placeholder: z.string().optional(),
43
- allowMultiple: z.boolean().optional() // For file inputs
44
- }).refine((data) => {
45
- // Ensure select/multiselect have options
46
- if ((data.type === 'select' || data.type === 'multiselect') && !data.options) {
47
- return false;
48
- }
49
- return true;
50
- }, {
51
- message: 'Select and multiselect inputs must have options'
52
- });
53
- // Model configuration schema
54
- export const ModelConfigSchema = z.object({
55
- model: z.string().optional(),
56
- temperature: z.number().min(0).max(2).optional(),
57
- maxTokens: z.number().positive().optional(),
58
- topP: z.number().min(0).max(1).optional(),
59
- frequencyPenalty: z.number().min(-2).max(2).optional(),
60
- presencePenalty: z.number().min(-2).max(2).optional(),
61
- stopSequences: z.array(z.string()).optional()
62
- });
63
- // Prompt metadata schema (frontmatter)
64
- export const PromptMetadataSchema = z.object({
65
- name: z.string().optional(),
66
- description: z.string().optional(),
67
- tags: z.array(z.string()).optional(),
68
- category: z.string().optional(),
69
- version: z.string().optional(),
70
- author: z.string().optional(),
71
- inputs: z.array(PromptInputSchema).optional(),
72
- model: z.string().optional(), // Deprecated, use modelConfig
73
- temperature: z.number().min(0).max(2).optional(), // Deprecated
74
- maxTokens: z.number().positive().optional(), // Deprecated
75
- modelConfig: ModelConfigSchema.optional(),
76
- outputFormat: z.enum(['text', 'json', 'markdown', 'code']).optional(),
77
- examples: z.array(z.object({
78
- inputs: z.record(z.any()),
79
- output: z.string().optional()
80
- })).optional(),
81
- dependencies: z.array(z.string()).optional() // Other prompts this depends on
82
- });
83
- // Full prompt schema
84
- export const PromptSchema = z.object({
85
- metadata: PromptMetadataSchema,
86
- content: z.string(),
87
- path: z.string(),
88
- name: z.string()
89
- });
90
- // History entry schema
91
- export const HistoryEntrySchema = z.object({
92
- id: z.string(),
93
- timestamp: z.string().datetime(),
94
- promptName: z.string(),
95
- promptPath: z.string(),
96
- inputs: z.record(z.any()),
97
- maskedInputs: z.record(z.any()).optional(),
98
- output: z.string(),
99
- modelConfig: ModelConfigSchema.optional(),
100
- duration: z.number().optional(),
101
- annotation: z.string().optional()
102
- });
103
- // Annotation schema
104
- export const AnnotationSchema = z.object({
105
- historyId: z.string(),
106
- annotation: z.string(),
107
- timestamp: z.string().datetime(),
108
- tags: z.array(z.string()).optional()
109
- });
110
- //# sourceMappingURL=prompt-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt-schema.js","sourceRoot":"","sources":["../../src/schemas/prompt-schema.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- interface FileInfo {
2
- name: string;
3
- absolutePath: string;
4
- relativePath: string;
5
- isDirectory: boolean;
6
- modTime: Date;
7
- }
8
- interface FileSearchResult {
9
- display: string;
10
- value: string;
11
- description?: string;
12
- }
13
- export declare class FileSearchEngine {
14
- private basePath;
15
- private filter?;
16
- private cache;
17
- private cacheTimeout;
18
- private cacheTimestamps;
19
- private pathSeparatorRegex;
20
- constructor(basePath: string, filter?: string);
21
- search(query: string, signal?: AbortSignal): Promise<FileInfo[]>;
22
- listDirectory(dirPath: string): Promise<FileInfo[]>;
23
- parseSearchQuery(query: string): {
24
- searchPath: string;
25
- searchTerm: string;
26
- };
27
- normalizePathInput(input: string): string;
28
- resolveToAbsolutePath(input: string): string;
29
- formatFileInfo(fileInfo: FileInfo): FileSearchResult;
30
- private getCandidatePaths;
31
- private filterAndSort;
32
- private fuzzyMatch;
33
- private getFromCache;
34
- private addToCache;
35
- }
36
- export {};
37
- //# sourceMappingURL=file-search-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-search-engine.d.ts","sourceRoot":"","sources":["../../src/search/file-search-engine.ts"],"names":[],"mappings":"AAIA,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,IAAI,CAAC;CACf;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAOvC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmBhE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKzD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IA2B3E,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAkBzC,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAK5C,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB;YAWtC,iBAAiB;IA+C/B,OAAO,CAAC,aAAa;IAiCrB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;CAYnB"}
@@ -1,184 +0,0 @@
1
- import fs from 'fs-extra';
2
- import * as path from 'node:path';
3
- import os from 'node:os';
4
- export class FileSearchEngine {
5
- basePath;
6
- filter;
7
- cache = new Map();
8
- cacheTimeout = 5000; // 5 seconds
9
- cacheTimestamps = new Map();
10
- pathSeparatorRegex;
11
- constructor(basePath, filter) {
12
- this.basePath = path.resolve(basePath);
13
- this.filter = filter;
14
- // Create regex that matches either separator
15
- this.pathSeparatorRegex = process.platform === 'win32' ? /[/\\]/ : /\//;
16
- }
17
- async search(query, signal) {
18
- // Normalize the input based on platform
19
- const normalizedQuery = this.normalizePathInput(query);
20
- // Parse query to extract path components
21
- const { searchPath, searchTerm } = this.parseSearchQuery(normalizedQuery);
22
- // Get all accessible paths from searchPath
23
- const candidates = await this.getCandidatePaths(searchPath, signal);
24
- // Filter based on searchTerm - this happens on EVERY keystroke
25
- if (!searchTerm) {
26
- return candidates; // Show all files in directory
27
- }
28
- // Filter and sort results
29
- return this.filterAndSort(candidates, searchTerm);
30
- }
31
- async listDirectory(dirPath) {
32
- const normalizedPath = this.normalizePathInput(dirPath);
33
- return this.getCandidatePaths(normalizedPath);
34
- }
35
- parseSearchQuery(query) {
36
- // Handle empty query
37
- if (!query) {
38
- return { searchPath: '.', searchTerm: '' };
39
- }
40
- // Find the last separator position
41
- let lastSepIndex = -1;
42
- for (let i = query.length - 1; i >= 0; i--) {
43
- if (query[i] === '/' || query[i] === '\\') {
44
- lastSepIndex = i;
45
- break;
46
- }
47
- }
48
- if (lastSepIndex === -1) {
49
- // No separator - searching in current directory
50
- return { searchPath: '.', searchTerm: query };
51
- }
52
- // Split at the last separator
53
- const searchPath = query.substring(0, lastSepIndex + 1);
54
- const searchTerm = query.substring(lastSepIndex + 1);
55
- return { searchPath, searchTerm };
56
- }
57
- normalizePathInput(input) {
58
- if (!input)
59
- return '';
60
- // Handle home directory expansion
61
- if (input.startsWith('~')) {
62
- input = input.replace(/^~/, os.homedir());
63
- }
64
- // Normalize separators for the current platform
65
- if (process.platform === 'win32') {
66
- // On Windows, convert forward slashes to backslashes
67
- input = input.replace(/\//g, path.sep);
68
- }
69
- // Use path.normalize to clean up the path
70
- return path.normalize(input);
71
- }
72
- resolveToAbsolutePath(input) {
73
- const normalized = this.normalizePathInput(input);
74
- return path.resolve(this.basePath, normalized);
75
- }
76
- formatFileInfo(fileInfo) {
77
- // Always use forward slashes in display for consistency
78
- const displayPath = fileInfo.relativePath.replace(/\\/g, '/');
79
- return {
80
- display: displayPath + (fileInfo.isDirectory ? '/' : ''),
81
- value: fileInfo.absolutePath, // Keep native separators
82
- description: fileInfo.relativePath,
83
- };
84
- }
85
- async getCandidatePaths(searchPath, signal) {
86
- const resolvedPath = path.resolve(this.basePath, searchPath);
87
- // Check cache
88
- const cached = this.getFromCache(resolvedPath);
89
- if (cached) {
90
- return cached;
91
- }
92
- try {
93
- // Check if operation was cancelled
94
- if (signal?.aborted) {
95
- return [];
96
- }
97
- const entries = await fs.readdir(resolvedPath);
98
- // Check again after async operation
99
- if (signal?.aborted) {
100
- return [];
101
- }
102
- const fileInfos = [];
103
- for (const entry of entries) {
104
- const absolutePath = path.join(resolvedPath, entry);
105
- const stat = await fs.stat(absolutePath);
106
- fileInfos.push({
107
- name: entry,
108
- absolutePath,
109
- relativePath: path.relative(this.basePath, absolutePath),
110
- isDirectory: stat.isDirectory(),
111
- modTime: stat.mtime,
112
- });
113
- }
114
- // Cache the results
115
- this.addToCache(resolvedPath, fileInfos);
116
- return fileInfos;
117
- }
118
- catch {
119
- // Return empty array if directory doesn't exist or is inaccessible
120
- return [];
121
- }
122
- }
123
- filterAndSort(candidates, searchTerm) {
124
- const isFileSystemCaseSensitive = process.platform !== 'win32' && process.platform !== 'darwin';
125
- const filtered = candidates.filter(file => {
126
- const name = isFileSystemCaseSensitive ? file.name : file.name.toLowerCase();
127
- const term = isFileSystemCaseSensitive ? searchTerm : searchTerm.toLowerCase();
128
- // Prefix matching (most important for file paths)
129
- if (name.startsWith(term))
130
- return true;
131
- // Fuzzy matching for convenience
132
- return this.fuzzyMatch(name, term);
133
- });
134
- // Sort results
135
- return filtered.sort((a, b) => {
136
- const termLower = searchTerm.toLowerCase();
137
- const aStarts = a.name.toLowerCase().startsWith(termLower);
138
- const bStarts = b.name.toLowerCase().startsWith(termLower);
139
- // Prioritize exact prefix matches
140
- if (aStarts && !bStarts)
141
- return -1;
142
- if (!aStarts && bStarts)
143
- return 1;
144
- // Then directories
145
- if (a.isDirectory && !b.isDirectory)
146
- return -1;
147
- if (!a.isDirectory && b.isDirectory)
148
- return 1;
149
- // Then by name
150
- return a.name.localeCompare(b.name);
151
- });
152
- }
153
- fuzzyMatch(str, pattern) {
154
- let patternIdx = 0;
155
- let strIdx = 0;
156
- while (strIdx < str.length && patternIdx < pattern.length) {
157
- if (str[strIdx] === pattern[patternIdx]) {
158
- patternIdx++;
159
- }
160
- strIdx++;
161
- }
162
- return patternIdx === pattern.length;
163
- }
164
- getFromCache(dirPath) {
165
- const cached = this.cache.get(dirPath);
166
- const timestamp = this.cacheTimestamps.get(dirPath);
167
- if (cached && timestamp && Date.now() - timestamp < this.cacheTimeout) {
168
- return cached;
169
- }
170
- return null;
171
- }
172
- addToCache(dirPath, files) {
173
- this.cache.set(dirPath, files);
174
- this.cacheTimestamps.set(dirPath, Date.now());
175
- // Clean up old cache entries
176
- if (this.cache.size > 100) {
177
- const oldestKey = Array.from(this.cacheTimestamps.entries())
178
- .sort((a, b) => a[1] - b[1])[0][0];
179
- this.cache.delete(oldestKey);
180
- this.cacheTimestamps.delete(oldestKey);
181
- }
182
- }
183
- }
184
- //# sourceMappingURL=file-search-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-search-engine.js","sourceRoot":"","sources":["../../src/search/file-search-engine.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- interface FileInfo {
2
- name: string;
3
- path: string;
4
- relativePath: string;
5
- isDirectory: boolean;
6
- size: number;
7
- modified: Date;
8
- }
9
- interface ListFilesOptions {
10
- includeHidden?: boolean;
11
- pattern?: string;
12
- }
13
- interface GlobOptions {
14
- ignore?: string[];
15
- followSymlinks?: boolean;
16
- }
17
- interface FileSystemServiceOptions {
18
- cacheTimeout?: number;
19
- excludePatterns?: string[];
20
- }
21
- export declare class FileSystemService {
22
- private cache;
23
- private searchIndex;
24
- private searchIndexPath;
25
- private options;
26
- constructor(options?: FileSystemServiceOptions);
27
- expandPath(inputPath: string): string;
28
- normalizePath(input: string): string;
29
- resolveSearchPath(query: string): {
30
- searchPath: string;
31
- searchTerm: string;
32
- };
33
- listFiles(directory: string, options?: ListFilesOptions): Promise<FileInfo[]>;
34
- searchFiles(directory: string, query: string): Promise<FileInfo[]>;
35
- glob(directory: string, pattern: string, options?: GlobOptions): Promise<FileInfo[]>;
36
- private buildSearchIndex;
37
- private listFilesRecursive;
38
- private getFromCache;
39
- private setCache;
40
- clearCache(): void;
41
- }
42
- export {};
43
- //# sourceMappingURL=file-system-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-system-service.d.ts","sourceRoot":"","sources":["../../src/services/file-system-service.ts"],"names":[],"mappings":"AAOA,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,wBAAwB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA2D;IACxE,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,OAAO,CAAqC;gBAExC,OAAO,GAAE,wBAA6B;IAYlD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAYrC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAsBpC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IA2BtE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwDjF,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAsBlE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAqChF,gBAAgB;YAsBhB,kBAAkB;IAiDhC,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,QAAQ;IAehB,UAAU,IAAI,IAAI;CAKnB"}