@goreal-ai/echo-pdk 0.1.0 → 0.2.0
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.
- package/LICENSE +21 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/project/index.d.ts +115 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +297 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/meta.d.ts +72 -0
- package/dist/project/meta.d.ts.map +1 -0
- package/dist/project/meta.js +225 -0
- package/dist/project/meta.js.map +1 -0
- package/dist/project/types.d.ts +148 -0
- package/dist/project/types.d.ts.map +1 -0
- package/dist/project/types.js +47 -0
- package/dist/project/types.js.map +1 -0
- package/package.json +17 -13
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Echo PDK
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
CHANGED
|
@@ -112,4 +112,6 @@ export declare function createEcho(config?: EchoConfig): Echo;
|
|
|
112
112
|
* ```
|
|
113
113
|
*/
|
|
114
114
|
export declare function definePlugin(plugin: EchoPlugin): EchoPlugin;
|
|
115
|
+
export type { EchoProject, PromptFile, MetaFile, ModelConfig, ContextFolder, TestingFolder, ProjectValidationResult, ProjectValidationError, ProjectValidationWarning, CreateProjectOptions, } from './project/index.js';
|
|
116
|
+
export { createProject, createProjectFromFiles, validateProject, updateProjectPrompt, updateProjectMeta, getProjectFiles, extractVariablesFromPrompt, parseMeta, parseMetaWithErrors, serializeMeta, mergeMeta, createDefaultMetaYaml, DEFAULT_META, DEFAULT_PROMPT_CONTENT, PROJECT_FILE_NAMES, } from './project/index.js';
|
|
115
117
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,YAAY,EAEV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EAEd,UAAU,EACV,gBAAgB,EAEhB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,WAAW,EAEX,kBAAkB,EAClB,eAAe,EACf,UAAU,EAEV,IAAI,GACL,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EAIV,UAAU,EAGX,MAAM,YAAY,CAAC;AAUpB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAQzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAgB,UAAU,CAAC,MAAM,GAAE,UAAe,GAAG,IAAI,CA+IxD;AAuLD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,YAAY,EAEV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EAEd,UAAU,EACV,gBAAgB,EAEhB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,WAAW,EAEX,kBAAkB,EAClB,eAAe,EACf,UAAU,EAEV,IAAI,GACL,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EAIV,UAAU,EAGX,MAAM,YAAY,CAAC;AAUpB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,SAAS,EACT,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAQzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAgB,UAAU,CAAC,MAAM,GAAE,UAAe,GAAG,IAAI,CA+IxD;AAuLD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D;AAOD,YAAY,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -385,4 +385,6 @@ function validateNodes(nodes, errors, warnings, knownSections, config, operators
|
|
|
385
385
|
export function definePlugin(plugin) {
|
|
386
386
|
return plugin;
|
|
387
387
|
}
|
|
388
|
+
// Re-export project functions
|
|
389
|
+
export { createProject, createProjectFromFiles, validateProject, updateProjectPrompt, updateProjectMeta, getProjectFiles, extractVariablesFromPrompt, parseMeta, parseMetaWithErrors, serializeMeta, mergeMeta, createDefaultMetaYaml, DEFAULT_META, DEFAULT_PROMPT_CONTENT, PROJECT_FILE_NAMES, } from './project/index.js';
|
|
388
390
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Project module entry point
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for creating, validating, and manipulating Echo projects.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { createProject, validateProject } from '@goreal-ai/echo-pdk/project';
|
|
9
|
+
*
|
|
10
|
+
* // Create a new project
|
|
11
|
+
* const project = createProject('my-prompt');
|
|
12
|
+
*
|
|
13
|
+
* // Validate project structure
|
|
14
|
+
* const result = validateProject(project);
|
|
15
|
+
* if (!result.valid) {
|
|
16
|
+
* console.error('Project validation failed:', result.errors);
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export type { EchoProject, PromptFile, MetaFile, ModelConfig, ContextFolder, TestingFolder, ProjectValidationResult, ProjectValidationError, ProjectValidationWarning, } from './types.js';
|
|
21
|
+
export { DEFAULT_META, DEFAULT_PROMPT_CONTENT, PROJECT_FILE_NAMES, } from './types.js';
|
|
22
|
+
export { parseMeta, parseMetaWithErrors, serializeMeta, mergeMeta, createDefaultMetaYaml, } from './meta.js';
|
|
23
|
+
import type { EchoProject, PromptFile, MetaFile, ProjectValidationResult } from './types.js';
|
|
24
|
+
/**
|
|
25
|
+
* Options for creating a new project
|
|
26
|
+
*/
|
|
27
|
+
export interface CreateProjectOptions {
|
|
28
|
+
/** Project name (defaults to "Untitled Prompt") */
|
|
29
|
+
name?: string;
|
|
30
|
+
/** Initial prompt content */
|
|
31
|
+
promptContent?: string;
|
|
32
|
+
/** Initial meta configuration */
|
|
33
|
+
meta?: Partial<MetaFile>;
|
|
34
|
+
/** Root path (defaults to ".") */
|
|
35
|
+
root?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Create a new Echo project with default structure
|
|
39
|
+
*
|
|
40
|
+
* @param nameOrOptions - Project name or creation options
|
|
41
|
+
* @returns A new EchoProject instance
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* // Simple creation
|
|
46
|
+
* const project = createProject('my-prompt');
|
|
47
|
+
*
|
|
48
|
+
* // With options
|
|
49
|
+
* const project = createProject({
|
|
50
|
+
* name: 'my-prompt',
|
|
51
|
+
* promptContent: 'Hello {{name}}!',
|
|
52
|
+
* meta: { version: '1.0.0' }
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function createProject(nameOrOptions?: string | CreateProjectOptions): EchoProject;
|
|
57
|
+
/**
|
|
58
|
+
* Create a project from existing files
|
|
59
|
+
*
|
|
60
|
+
* @param prompt - Prompt file content
|
|
61
|
+
* @param meta - Meta file content
|
|
62
|
+
* @param root - Root path
|
|
63
|
+
* @returns EchoProject instance
|
|
64
|
+
*/
|
|
65
|
+
export declare function createProjectFromFiles(prompt: PromptFile, meta: MetaFile, root?: string): EchoProject;
|
|
66
|
+
/**
|
|
67
|
+
* Validate an Echo project structure
|
|
68
|
+
*
|
|
69
|
+
* @param project - The project to validate
|
|
70
|
+
* @returns Validation result with errors and warnings
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const result = validateProject(project);
|
|
75
|
+
* if (!result.valid) {
|
|
76
|
+
* result.errors.forEach(e => console.error(e.message));
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function validateProject(project: EchoProject): ProjectValidationResult;
|
|
81
|
+
/**
|
|
82
|
+
* Update project prompt content
|
|
83
|
+
*
|
|
84
|
+
* @param project - The project to update
|
|
85
|
+
* @param content - New prompt content
|
|
86
|
+
* @returns Updated project (immutable)
|
|
87
|
+
*/
|
|
88
|
+
export declare function updateProjectPrompt(project: EchoProject, content: string): EchoProject;
|
|
89
|
+
/**
|
|
90
|
+
* Update project meta configuration
|
|
91
|
+
*
|
|
92
|
+
* @param project - The project to update
|
|
93
|
+
* @param updates - Partial meta updates
|
|
94
|
+
* @returns Updated project (immutable)
|
|
95
|
+
*/
|
|
96
|
+
export declare function updateProjectMeta(project: EchoProject, updates: Partial<MetaFile>): EchoProject;
|
|
97
|
+
/**
|
|
98
|
+
* Get all files in a project as a flat list
|
|
99
|
+
*
|
|
100
|
+
* @param project - The project
|
|
101
|
+
* @returns List of file paths and contents
|
|
102
|
+
*/
|
|
103
|
+
export declare function getProjectFiles(project: EchoProject): Array<{
|
|
104
|
+
path: string;
|
|
105
|
+
name: string;
|
|
106
|
+
type: 'prompt' | 'meta' | 'context' | 'testing';
|
|
107
|
+
}>;
|
|
108
|
+
/**
|
|
109
|
+
* Extract variable names from prompt content
|
|
110
|
+
*
|
|
111
|
+
* @param promptContent - The prompt template content
|
|
112
|
+
* @returns Array of unique variable names
|
|
113
|
+
*/
|
|
114
|
+
export declare function extractVariablesFromPrompt(promptContent: string): string[];
|
|
115
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,YAAY,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,uBAAuB,EAGxB,MAAM,YAAY,CAAC;AAYpB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,WAAW,CAgCxF;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,EACd,IAAI,GAAE,MAAY,GACjB,WAAW,CASb;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,uBAAuB,CAmC7E;AA+ED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAQtF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACzB,WAAW,CAcb;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,GACnB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC,CA4CxF;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAY1E"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Project module entry point
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for creating, validating, and manipulating Echo projects.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { createProject, validateProject } from '@goreal-ai/echo-pdk/project';
|
|
9
|
+
*
|
|
10
|
+
* // Create a new project
|
|
11
|
+
* const project = createProject('my-prompt');
|
|
12
|
+
*
|
|
13
|
+
* // Validate project structure
|
|
14
|
+
* const result = validateProject(project);
|
|
15
|
+
* if (!result.valid) {
|
|
16
|
+
* console.error('Project validation failed:', result.errors);
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export { DEFAULT_META, DEFAULT_PROMPT_CONTENT, PROJECT_FILE_NAMES, } from './types.js';
|
|
21
|
+
// Re-export meta utilities
|
|
22
|
+
export { parseMeta, parseMetaWithErrors, serializeMeta, mergeMeta, createDefaultMetaYaml, } from './meta.js';
|
|
23
|
+
import { DEFAULT_META, DEFAULT_PROMPT_CONTENT, PROJECT_FILE_NAMES, } from './types.js';
|
|
24
|
+
/**
|
|
25
|
+
* Create a new Echo project with default structure
|
|
26
|
+
*
|
|
27
|
+
* @param nameOrOptions - Project name or creation options
|
|
28
|
+
* @returns A new EchoProject instance
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Simple creation
|
|
33
|
+
* const project = createProject('my-prompt');
|
|
34
|
+
*
|
|
35
|
+
* // With options
|
|
36
|
+
* const project = createProject({
|
|
37
|
+
* name: 'my-prompt',
|
|
38
|
+
* promptContent: 'Hello {{name}}!',
|
|
39
|
+
* meta: { version: '1.0.0' }
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export function createProject(nameOrOptions) {
|
|
44
|
+
const options = typeof nameOrOptions === 'string'
|
|
45
|
+
? { name: nameOrOptions }
|
|
46
|
+
: nameOrOptions ?? {};
|
|
47
|
+
const name = options.name ?? DEFAULT_META.name;
|
|
48
|
+
const prompt = {
|
|
49
|
+
name: PROJECT_FILE_NAMES.prompt,
|
|
50
|
+
content: options.promptContent ?? DEFAULT_PROMPT_CONTENT,
|
|
51
|
+
};
|
|
52
|
+
const meta = {
|
|
53
|
+
...DEFAULT_META,
|
|
54
|
+
name,
|
|
55
|
+
...options.meta,
|
|
56
|
+
model: {
|
|
57
|
+
...DEFAULT_META.model,
|
|
58
|
+
...options.meta?.model,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
name,
|
|
63
|
+
root: options.root ?? '.',
|
|
64
|
+
prompt,
|
|
65
|
+
meta,
|
|
66
|
+
// Placeholders - not implemented yet
|
|
67
|
+
context: undefined,
|
|
68
|
+
testing: undefined,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a project from existing files
|
|
73
|
+
*
|
|
74
|
+
* @param prompt - Prompt file content
|
|
75
|
+
* @param meta - Meta file content
|
|
76
|
+
* @param root - Root path
|
|
77
|
+
* @returns EchoProject instance
|
|
78
|
+
*/
|
|
79
|
+
export function createProjectFromFiles(prompt, meta, root = '.') {
|
|
80
|
+
return {
|
|
81
|
+
name: meta.name,
|
|
82
|
+
root,
|
|
83
|
+
prompt,
|
|
84
|
+
meta,
|
|
85
|
+
context: undefined,
|
|
86
|
+
testing: undefined,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// =============================================================================
|
|
90
|
+
// PROJECT VALIDATION
|
|
91
|
+
// =============================================================================
|
|
92
|
+
/**
|
|
93
|
+
* Validate an Echo project structure
|
|
94
|
+
*
|
|
95
|
+
* @param project - The project to validate
|
|
96
|
+
* @returns Validation result with errors and warnings
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const result = validateProject(project);
|
|
101
|
+
* if (!result.valid) {
|
|
102
|
+
* result.errors.forEach(e => console.error(e.message));
|
|
103
|
+
* }
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export function validateProject(project) {
|
|
107
|
+
const errors = [];
|
|
108
|
+
const warnings = [];
|
|
109
|
+
// Validate required fields
|
|
110
|
+
if (!project.name || project.name.trim() === '') {
|
|
111
|
+
errors.push({
|
|
112
|
+
code: 'MISSING_NAME',
|
|
113
|
+
message: 'Project name is required',
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (!project.prompt) {
|
|
117
|
+
errors.push({
|
|
118
|
+
code: 'MISSING_PROMPT',
|
|
119
|
+
message: 'Prompt file is required',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
validatePromptFile(project.prompt, errors, warnings);
|
|
124
|
+
}
|
|
125
|
+
if (!project.meta) {
|
|
126
|
+
errors.push({
|
|
127
|
+
code: 'MISSING_META',
|
|
128
|
+
message: 'Meta configuration is required',
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
validateMetaFile(project.meta, errors, warnings);
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
valid: errors.length === 0,
|
|
136
|
+
errors,
|
|
137
|
+
warnings,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Validate prompt file
|
|
142
|
+
*/
|
|
143
|
+
function validatePromptFile(prompt, errors, warnings) {
|
|
144
|
+
if (!prompt.name || prompt.name.trim() === '') {
|
|
145
|
+
errors.push({
|
|
146
|
+
code: 'INVALID_PROMPT_NAME',
|
|
147
|
+
message: 'Prompt file must have a name',
|
|
148
|
+
file: prompt.name,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
if (!prompt.content || prompt.content.trim() === '') {
|
|
152
|
+
warnings.push({
|
|
153
|
+
code: 'EMPTY_PROMPT',
|
|
154
|
+
message: 'Prompt content is empty',
|
|
155
|
+
file: prompt.name,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Validate meta configuration
|
|
161
|
+
*/
|
|
162
|
+
function validateMetaFile(meta, errors, warnings) {
|
|
163
|
+
if (!meta.name || meta.name.trim() === '') {
|
|
164
|
+
errors.push({
|
|
165
|
+
code: 'INVALID_META_NAME',
|
|
166
|
+
message: 'Meta must have a name',
|
|
167
|
+
file: PROJECT_FILE_NAMES.meta,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
// Validate model config if present
|
|
171
|
+
if (meta.model) {
|
|
172
|
+
if (meta.model.temperature !== undefined &&
|
|
173
|
+
(meta.model.temperature < 0 || meta.model.temperature > 2)) {
|
|
174
|
+
warnings.push({
|
|
175
|
+
code: 'INVALID_TEMPERATURE',
|
|
176
|
+
message: 'Temperature should be between 0 and 2',
|
|
177
|
+
file: PROJECT_FILE_NAMES.meta,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (meta.model.maxTokens !== undefined && meta.model.maxTokens < 1) {
|
|
181
|
+
warnings.push({
|
|
182
|
+
code: 'INVALID_MAX_TOKENS',
|
|
183
|
+
message: 'maxTokens should be at least 1',
|
|
184
|
+
file: PROJECT_FILE_NAMES.meta,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Version format warning
|
|
189
|
+
if (meta.version && !/^\d+\.\d+\.\d+/.test(meta.version)) {
|
|
190
|
+
warnings.push({
|
|
191
|
+
code: 'INVALID_VERSION_FORMAT',
|
|
192
|
+
message: 'Version should follow semver format (e.g., 1.0.0)',
|
|
193
|
+
file: PROJECT_FILE_NAMES.meta,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// =============================================================================
|
|
198
|
+
// PROJECT UTILITIES
|
|
199
|
+
// =============================================================================
|
|
200
|
+
/**
|
|
201
|
+
* Update project prompt content
|
|
202
|
+
*
|
|
203
|
+
* @param project - The project to update
|
|
204
|
+
* @param content - New prompt content
|
|
205
|
+
* @returns Updated project (immutable)
|
|
206
|
+
*/
|
|
207
|
+
export function updateProjectPrompt(project, content) {
|
|
208
|
+
return {
|
|
209
|
+
...project,
|
|
210
|
+
prompt: {
|
|
211
|
+
...project.prompt,
|
|
212
|
+
content,
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Update project meta configuration
|
|
218
|
+
*
|
|
219
|
+
* @param project - The project to update
|
|
220
|
+
* @param updates - Partial meta updates
|
|
221
|
+
* @returns Updated project (immutable)
|
|
222
|
+
*/
|
|
223
|
+
export function updateProjectMeta(project, updates) {
|
|
224
|
+
return {
|
|
225
|
+
...project,
|
|
226
|
+
meta: {
|
|
227
|
+
...project.meta,
|
|
228
|
+
...updates,
|
|
229
|
+
model: {
|
|
230
|
+
...project.meta.model,
|
|
231
|
+
...updates.model,
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
// Also update project name if meta name changed
|
|
235
|
+
name: updates.name ?? project.name,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Get all files in a project as a flat list
|
|
240
|
+
*
|
|
241
|
+
* @param project - The project
|
|
242
|
+
* @returns List of file paths and contents
|
|
243
|
+
*/
|
|
244
|
+
export function getProjectFiles(project) {
|
|
245
|
+
const files = [];
|
|
246
|
+
// Main prompt file
|
|
247
|
+
files.push({
|
|
248
|
+
path: `${project.root}/${project.prompt.name}`,
|
|
249
|
+
name: project.prompt.name,
|
|
250
|
+
type: 'prompt',
|
|
251
|
+
});
|
|
252
|
+
// Meta file
|
|
253
|
+
files.push({
|
|
254
|
+
path: `${project.root}/${PROJECT_FILE_NAMES.meta}`,
|
|
255
|
+
name: PROJECT_FILE_NAMES.meta,
|
|
256
|
+
type: 'meta',
|
|
257
|
+
});
|
|
258
|
+
// Context files (placeholder)
|
|
259
|
+
if (project.context) {
|
|
260
|
+
for (const file of project.context.files) {
|
|
261
|
+
files.push({
|
|
262
|
+
path: `${project.root}/${project.context.path}/${file}`,
|
|
263
|
+
name: file,
|
|
264
|
+
type: 'context',
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
// Testing files (placeholder)
|
|
269
|
+
if (project.testing) {
|
|
270
|
+
for (const file of project.testing.files) {
|
|
271
|
+
files.push({
|
|
272
|
+
path: `${project.root}/${project.testing.path}/${file}`,
|
|
273
|
+
name: file,
|
|
274
|
+
type: 'testing',
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return files;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Extract variable names from prompt content
|
|
282
|
+
*
|
|
283
|
+
* @param promptContent - The prompt template content
|
|
284
|
+
* @returns Array of unique variable names
|
|
285
|
+
*/
|
|
286
|
+
export function extractVariablesFromPrompt(promptContent) {
|
|
287
|
+
const variablePattern = /\{\{\s*([\w.-]+)\s*(?:\?\?\s*"[^"]*")?\s*\}\}/g;
|
|
288
|
+
const variables = new Set();
|
|
289
|
+
let match;
|
|
290
|
+
while ((match = variablePattern.exec(promptContent)) !== null) {
|
|
291
|
+
if (match[1]) {
|
|
292
|
+
variables.add(match[1]);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return Array.from(variables).sort();
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Meta.yaml parsing and serialization
|
|
3
|
+
*
|
|
4
|
+
* Handles parsing and serializing project metadata in YAML format.
|
|
5
|
+
*/
|
|
6
|
+
import type { MetaFile } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Parse meta.yaml content into a MetaFile object
|
|
9
|
+
*
|
|
10
|
+
* @param content - Raw YAML string content
|
|
11
|
+
* @returns Parsed MetaFile or null if parsing fails
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const meta = parseMeta(`
|
|
16
|
+
* name: My Prompt
|
|
17
|
+
* version: 1.0.0
|
|
18
|
+
* model:
|
|
19
|
+
* provider: openai
|
|
20
|
+
* model: gpt-4o
|
|
21
|
+
* `);
|
|
22
|
+
* // { name: 'My Prompt', version: '1.0.0', model: { provider: 'openai', model: 'gpt-4o' } }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseMeta(content: string): MetaFile | null;
|
|
26
|
+
/**
|
|
27
|
+
* Parse meta.yaml content with detailed error reporting
|
|
28
|
+
*
|
|
29
|
+
* @param content - Raw YAML string content
|
|
30
|
+
* @returns Object with parsed meta or error details
|
|
31
|
+
*/
|
|
32
|
+
export declare function parseMetaWithErrors(content: string): {
|
|
33
|
+
meta: MetaFile | null;
|
|
34
|
+
error: string | null;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Serialize a MetaFile to YAML string
|
|
38
|
+
*
|
|
39
|
+
* @param meta - MetaFile object to serialize
|
|
40
|
+
* @returns YAML string representation
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const yaml = serializeMeta({
|
|
45
|
+
* name: 'My Prompt',
|
|
46
|
+
* version: '1.0.0',
|
|
47
|
+
* model: { provider: 'openai', model: 'gpt-4o' }
|
|
48
|
+
* });
|
|
49
|
+
* // name: My Prompt
|
|
50
|
+
* // version: 1.0.0
|
|
51
|
+
* // model:
|
|
52
|
+
* // provider: openai
|
|
53
|
+
* // model: gpt-4o
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function serializeMeta(meta: MetaFile): string;
|
|
57
|
+
/**
|
|
58
|
+
* Merge partial meta updates into existing meta
|
|
59
|
+
*
|
|
60
|
+
* @param base - Base meta configuration
|
|
61
|
+
* @param updates - Partial updates to apply
|
|
62
|
+
* @returns Merged meta configuration
|
|
63
|
+
*/
|
|
64
|
+
export declare function mergeMeta(base: MetaFile, updates: Partial<MetaFile>): MetaFile;
|
|
65
|
+
/**
|
|
66
|
+
* Create default meta.yaml content
|
|
67
|
+
*
|
|
68
|
+
* @param name - Project name
|
|
69
|
+
* @returns YAML string with default configuration
|
|
70
|
+
*/
|
|
71
|
+
export declare function createDefaultMetaYaml(name: string): string;
|
|
72
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/project/meta.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,YAAY,CAAC;AAOxD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAU1D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG;IACpD,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAeA;AAmED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CA0BpD;AA4BD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAuB9E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK1D"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Meta.yaml parsing and serialization
|
|
3
|
+
*
|
|
4
|
+
* Handles parsing and serializing project metadata in YAML format.
|
|
5
|
+
*/
|
|
6
|
+
import YAML from 'yaml';
|
|
7
|
+
import { DEFAULT_META } from './types.js';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// PARSING
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Parse meta.yaml content into a MetaFile object
|
|
13
|
+
*
|
|
14
|
+
* @param content - Raw YAML string content
|
|
15
|
+
* @returns Parsed MetaFile or null if parsing fails
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const meta = parseMeta(`
|
|
20
|
+
* name: My Prompt
|
|
21
|
+
* version: 1.0.0
|
|
22
|
+
* model:
|
|
23
|
+
* provider: openai
|
|
24
|
+
* model: gpt-4o
|
|
25
|
+
* `);
|
|
26
|
+
* // { name: 'My Prompt', version: '1.0.0', model: { provider: 'openai', model: 'gpt-4o' } }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function parseMeta(content) {
|
|
30
|
+
try {
|
|
31
|
+
const parsed = YAML.parse(content);
|
|
32
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return validateAndNormalizeMeta(parsed);
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Parse meta.yaml content with detailed error reporting
|
|
43
|
+
*
|
|
44
|
+
* @param content - Raw YAML string content
|
|
45
|
+
* @returns Object with parsed meta or error details
|
|
46
|
+
*/
|
|
47
|
+
export function parseMetaWithErrors(content) {
|
|
48
|
+
try {
|
|
49
|
+
const parsed = YAML.parse(content);
|
|
50
|
+
if (!parsed || typeof parsed !== 'object') {
|
|
51
|
+
return { meta: null, error: 'Invalid YAML: expected an object' };
|
|
52
|
+
}
|
|
53
|
+
const meta = validateAndNormalizeMeta(parsed);
|
|
54
|
+
if (!meta) {
|
|
55
|
+
return { meta: null, error: 'Invalid meta structure' };
|
|
56
|
+
}
|
|
57
|
+
return { meta, error: null };
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
const message = e instanceof Error ? e.message : 'Unknown parsing error';
|
|
61
|
+
return { meta: null, error: message };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Validate and normalize a parsed meta object
|
|
66
|
+
*/
|
|
67
|
+
function validateAndNormalizeMeta(obj) {
|
|
68
|
+
if (!obj || typeof obj !== 'object') {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
const raw = obj;
|
|
72
|
+
// Name is required
|
|
73
|
+
const name = typeof raw.name === 'string' ? raw.name : DEFAULT_META.name;
|
|
74
|
+
const meta = { name };
|
|
75
|
+
// Optional string fields
|
|
76
|
+
if (typeof raw.description === 'string') {
|
|
77
|
+
meta.description = raw.description;
|
|
78
|
+
}
|
|
79
|
+
if (typeof raw.version === 'string') {
|
|
80
|
+
meta.version = raw.version;
|
|
81
|
+
}
|
|
82
|
+
if (typeof raw.author === 'string') {
|
|
83
|
+
meta.author = raw.author;
|
|
84
|
+
}
|
|
85
|
+
// Tags array
|
|
86
|
+
if (Array.isArray(raw.tags)) {
|
|
87
|
+
meta.tags = raw.tags.filter((t) => typeof t === 'string');
|
|
88
|
+
}
|
|
89
|
+
// Model configuration
|
|
90
|
+
if (raw.model && typeof raw.model === 'object') {
|
|
91
|
+
meta.model = parseModelConfig(raw.model);
|
|
92
|
+
}
|
|
93
|
+
return meta;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Parse and validate model configuration
|
|
97
|
+
*/
|
|
98
|
+
function parseModelConfig(obj) {
|
|
99
|
+
const config = {};
|
|
100
|
+
if (typeof obj.provider === 'string') {
|
|
101
|
+
config.provider = obj.provider;
|
|
102
|
+
}
|
|
103
|
+
if (typeof obj.model === 'string') {
|
|
104
|
+
config.model = obj.model;
|
|
105
|
+
}
|
|
106
|
+
if (typeof obj.temperature === 'number') {
|
|
107
|
+
config.temperature = Math.max(0, Math.min(2, obj.temperature));
|
|
108
|
+
}
|
|
109
|
+
if (typeof obj.maxTokens === 'number') {
|
|
110
|
+
config.maxTokens = Math.max(1, Math.floor(obj.maxTokens));
|
|
111
|
+
}
|
|
112
|
+
return config;
|
|
113
|
+
}
|
|
114
|
+
// =============================================================================
|
|
115
|
+
// SERIALIZATION
|
|
116
|
+
// =============================================================================
|
|
117
|
+
/**
|
|
118
|
+
* Serialize a MetaFile to YAML string
|
|
119
|
+
*
|
|
120
|
+
* @param meta - MetaFile object to serialize
|
|
121
|
+
* @returns YAML string representation
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const yaml = serializeMeta({
|
|
126
|
+
* name: 'My Prompt',
|
|
127
|
+
* version: '1.0.0',
|
|
128
|
+
* model: { provider: 'openai', model: 'gpt-4o' }
|
|
129
|
+
* });
|
|
130
|
+
* // name: My Prompt
|
|
131
|
+
* // version: 1.0.0
|
|
132
|
+
* // model:
|
|
133
|
+
* // provider: openai
|
|
134
|
+
* // model: gpt-4o
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
export function serializeMeta(meta) {
|
|
138
|
+
// Build clean object for serialization (omit undefined)
|
|
139
|
+
const obj = {
|
|
140
|
+
name: meta.name,
|
|
141
|
+
};
|
|
142
|
+
if (meta.description) {
|
|
143
|
+
obj.description = meta.description;
|
|
144
|
+
}
|
|
145
|
+
if (meta.version) {
|
|
146
|
+
obj.version = meta.version;
|
|
147
|
+
}
|
|
148
|
+
if (meta.author) {
|
|
149
|
+
obj.author = meta.author;
|
|
150
|
+
}
|
|
151
|
+
if (meta.model) {
|
|
152
|
+
obj.model = serializeModelConfig(meta.model);
|
|
153
|
+
}
|
|
154
|
+
if (meta.tags && meta.tags.length > 0) {
|
|
155
|
+
obj.tags = meta.tags;
|
|
156
|
+
}
|
|
157
|
+
return YAML.stringify(obj, {
|
|
158
|
+
indent: 2,
|
|
159
|
+
lineWidth: 80,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Serialize model configuration (omit undefined values)
|
|
164
|
+
*/
|
|
165
|
+
function serializeModelConfig(config) {
|
|
166
|
+
const obj = {};
|
|
167
|
+
if (config.provider) {
|
|
168
|
+
obj.provider = config.provider;
|
|
169
|
+
}
|
|
170
|
+
if (config.model) {
|
|
171
|
+
obj.model = config.model;
|
|
172
|
+
}
|
|
173
|
+
if (config.temperature !== undefined) {
|
|
174
|
+
obj.temperature = config.temperature;
|
|
175
|
+
}
|
|
176
|
+
if (config.maxTokens !== undefined) {
|
|
177
|
+
obj.maxTokens = config.maxTokens;
|
|
178
|
+
}
|
|
179
|
+
return obj;
|
|
180
|
+
}
|
|
181
|
+
// =============================================================================
|
|
182
|
+
// UTILITIES
|
|
183
|
+
// =============================================================================
|
|
184
|
+
/**
|
|
185
|
+
* Merge partial meta updates into existing meta
|
|
186
|
+
*
|
|
187
|
+
* @param base - Base meta configuration
|
|
188
|
+
* @param updates - Partial updates to apply
|
|
189
|
+
* @returns Merged meta configuration
|
|
190
|
+
*/
|
|
191
|
+
export function mergeMeta(base, updates) {
|
|
192
|
+
const merged = { ...base };
|
|
193
|
+
if (updates.name !== undefined) {
|
|
194
|
+
merged.name = updates.name;
|
|
195
|
+
}
|
|
196
|
+
if (updates.description !== undefined) {
|
|
197
|
+
merged.description = updates.description;
|
|
198
|
+
}
|
|
199
|
+
if (updates.version !== undefined) {
|
|
200
|
+
merged.version = updates.version;
|
|
201
|
+
}
|
|
202
|
+
if (updates.author !== undefined) {
|
|
203
|
+
merged.author = updates.author;
|
|
204
|
+
}
|
|
205
|
+
if (updates.tags !== undefined) {
|
|
206
|
+
merged.tags = updates.tags;
|
|
207
|
+
}
|
|
208
|
+
if (updates.model !== undefined) {
|
|
209
|
+
merged.model = { ...base.model, ...updates.model };
|
|
210
|
+
}
|
|
211
|
+
return merged;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Create default meta.yaml content
|
|
215
|
+
*
|
|
216
|
+
* @param name - Project name
|
|
217
|
+
* @returns YAML string with default configuration
|
|
218
|
+
*/
|
|
219
|
+
export function createDefaultMetaYaml(name) {
|
|
220
|
+
return serializeMeta({
|
|
221
|
+
...DEFAULT_META,
|
|
222
|
+
name,
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../src/project/meta.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Project structure type definitions for Echo PDK
|
|
3
|
+
*
|
|
4
|
+
* Defines the structure of an Echo prompt project including:
|
|
5
|
+
* - Project configuration
|
|
6
|
+
* - Prompt files
|
|
7
|
+
* - Meta configuration (model, provider, etc.)
|
|
8
|
+
* - Placeholder types for future context/testing features
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Represents a prompt template file (.pdk)
|
|
12
|
+
*/
|
|
13
|
+
export interface PromptFile {
|
|
14
|
+
/** File name (e.g., "prompt.pdk") */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Raw content of the prompt file */
|
|
17
|
+
content: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Model configuration for the prompt
|
|
21
|
+
*/
|
|
22
|
+
export interface ModelConfig {
|
|
23
|
+
/** AI provider (e.g., "openai", "anthropic") */
|
|
24
|
+
provider?: string;
|
|
25
|
+
/** Model identifier (e.g., "gpt-4", "claude-3-opus") */
|
|
26
|
+
model?: string;
|
|
27
|
+
/** Temperature setting (0-2) */
|
|
28
|
+
temperature?: number;
|
|
29
|
+
/** Maximum tokens in response */
|
|
30
|
+
maxTokens?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Meta configuration for a prompt project (meta.yaml)
|
|
34
|
+
*/
|
|
35
|
+
export interface MetaFile {
|
|
36
|
+
/** Human-readable name of the prompt */
|
|
37
|
+
name: string;
|
|
38
|
+
/** Description of what the prompt does */
|
|
39
|
+
description?: string;
|
|
40
|
+
/** Semantic version (e.g., "1.0.0") */
|
|
41
|
+
version?: string;
|
|
42
|
+
/** Author name or email */
|
|
43
|
+
author?: string;
|
|
44
|
+
/** Model configuration */
|
|
45
|
+
model?: ModelConfig;
|
|
46
|
+
/** Tags for categorization */
|
|
47
|
+
tags?: string[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* PLACEHOLDER: Context folder for reference materials
|
|
51
|
+
* Future: Will contain images, files, docs for [#context] resolution
|
|
52
|
+
*/
|
|
53
|
+
export interface ContextFolder {
|
|
54
|
+
/** Folder path relative to project root */
|
|
55
|
+
path: string;
|
|
56
|
+
/** List of context file names */
|
|
57
|
+
files: string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* PLACEHOLDER: Testing folder for evaluation files
|
|
61
|
+
* Future: Will contain .eval files for prompt testing
|
|
62
|
+
*/
|
|
63
|
+
export interface TestingFolder {
|
|
64
|
+
/** Folder path relative to project root */
|
|
65
|
+
path: string;
|
|
66
|
+
/** List of evaluation file names */
|
|
67
|
+
files: string[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Complete Echo project structure
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```
|
|
74
|
+
* my-prompt/
|
|
75
|
+
* ├── prompt.pdk # Main prompt template
|
|
76
|
+
* ├── meta.yaml # Model config, metadata
|
|
77
|
+
* ├── context/ # PLACEHOLDER - future sprint
|
|
78
|
+
* │ ├── images/
|
|
79
|
+
* │ ├── files/
|
|
80
|
+
* │ └── docs/
|
|
81
|
+
* └── testing/ # PLACEHOLDER - future sprint
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export interface EchoProject {
|
|
85
|
+
/** Project name (derived from folder or meta.yaml) */
|
|
86
|
+
name: string;
|
|
87
|
+
/** Root path of the project */
|
|
88
|
+
root: string;
|
|
89
|
+
/** Main prompt file */
|
|
90
|
+
prompt: PromptFile;
|
|
91
|
+
/** Meta configuration */
|
|
92
|
+
meta: MetaFile;
|
|
93
|
+
/** Context folder (PLACEHOLDER) */
|
|
94
|
+
context?: ContextFolder;
|
|
95
|
+
/** Testing folder (PLACEHOLDER) */
|
|
96
|
+
testing?: TestingFolder;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Result of validating a project structure
|
|
100
|
+
*/
|
|
101
|
+
export interface ProjectValidationResult {
|
|
102
|
+
/** Whether the project is valid */
|
|
103
|
+
valid: boolean;
|
|
104
|
+
/** Validation errors */
|
|
105
|
+
errors: ProjectValidationError[];
|
|
106
|
+
/** Validation warnings */
|
|
107
|
+
warnings: ProjectValidationWarning[];
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* A project validation error
|
|
111
|
+
*/
|
|
112
|
+
export interface ProjectValidationError {
|
|
113
|
+
/** Error code for programmatic handling */
|
|
114
|
+
code: string;
|
|
115
|
+
/** Human-readable error message */
|
|
116
|
+
message: string;
|
|
117
|
+
/** Related file path (if applicable) */
|
|
118
|
+
file?: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* A project validation warning
|
|
122
|
+
*/
|
|
123
|
+
export interface ProjectValidationWarning {
|
|
124
|
+
/** Warning code */
|
|
125
|
+
code: string;
|
|
126
|
+
/** Human-readable warning message */
|
|
127
|
+
message: string;
|
|
128
|
+
/** Related file path (if applicable) */
|
|
129
|
+
file?: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Default meta configuration for new projects
|
|
133
|
+
*/
|
|
134
|
+
export declare const DEFAULT_META: MetaFile;
|
|
135
|
+
/**
|
|
136
|
+
* Default prompt content for new projects
|
|
137
|
+
*/
|
|
138
|
+
export declare const DEFAULT_PROMPT_CONTENT = "# My Prompt\n\nYou are a helpful assistant.\n\n{{#IF {{context}} #exists}}\nContext: {{context}}\n{{/IF}}\n\nUser: {{user_input}}\n";
|
|
139
|
+
/**
|
|
140
|
+
* Default file names
|
|
141
|
+
*/
|
|
142
|
+
export declare const PROJECT_FILE_NAMES: {
|
|
143
|
+
readonly prompt: "prompt.pdk";
|
|
144
|
+
readonly meta: "meta.yaml";
|
|
145
|
+
readonly contextDir: "context";
|
|
146
|
+
readonly testingDir: "testing";
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/project/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,yBAAyB;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,mCAAmC;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,mCAAmC;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAMD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,wBAAwB;IACxB,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAQ1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,wIASlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Project structure type definitions for Echo PDK
|
|
3
|
+
*
|
|
4
|
+
* Defines the structure of an Echo prompt project including:
|
|
5
|
+
* - Project configuration
|
|
6
|
+
* - Prompt files
|
|
7
|
+
* - Meta configuration (model, provider, etc.)
|
|
8
|
+
* - Placeholder types for future context/testing features
|
|
9
|
+
*/
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// DEFAULT VALUES
|
|
12
|
+
// =============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Default meta configuration for new projects
|
|
15
|
+
*/
|
|
16
|
+
export const DEFAULT_META = {
|
|
17
|
+
name: 'Untitled Prompt',
|
|
18
|
+
version: '1.0.0',
|
|
19
|
+
model: {
|
|
20
|
+
provider: 'openai',
|
|
21
|
+
model: 'gpt-4o',
|
|
22
|
+
temperature: 0.7,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Default prompt content for new projects
|
|
27
|
+
*/
|
|
28
|
+
export const DEFAULT_PROMPT_CONTENT = `# My Prompt
|
|
29
|
+
|
|
30
|
+
You are a helpful assistant.
|
|
31
|
+
|
|
32
|
+
{{#IF {{context}} #exists}}
|
|
33
|
+
Context: {{context}}
|
|
34
|
+
{{/IF}}
|
|
35
|
+
|
|
36
|
+
User: {{user_input}}
|
|
37
|
+
`;
|
|
38
|
+
/**
|
|
39
|
+
* Default file names
|
|
40
|
+
*/
|
|
41
|
+
export const PROJECT_FILE_NAMES = {
|
|
42
|
+
prompt: 'prompt.pdk',
|
|
43
|
+
meta: 'meta.yaml',
|
|
44
|
+
contextDir: 'context',
|
|
45
|
+
testingDir: 'testing',
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/project/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwJH,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,GAAG;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;CASrC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;CACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goreal-ai/echo-pdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Echo PDK core rendering engine - parser, evaluator, and renderer",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -9,21 +9,15 @@
|
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./project": {
|
|
14
|
+
"types": "./dist/project/index.d.ts",
|
|
15
|
+
"import": "./dist/project/index.js"
|
|
12
16
|
}
|
|
13
17
|
},
|
|
14
18
|
"files": [
|
|
15
19
|
"dist"
|
|
16
20
|
],
|
|
17
|
-
"scripts": {
|
|
18
|
-
"build": "tsc",
|
|
19
|
-
"dev": "tsc --watch",
|
|
20
|
-
"test": "vitest run",
|
|
21
|
-
"test:watch": "vitest",
|
|
22
|
-
"lint": "eslint src --ext .ts",
|
|
23
|
-
"lint:fix": "eslint src --ext .ts --fix",
|
|
24
|
-
"typecheck": "tsc --noEmit",
|
|
25
|
-
"clean": "rm -rf dist"
|
|
26
|
-
},
|
|
27
21
|
"dependencies": {
|
|
28
22
|
"chevrotain": "^11.0.0",
|
|
29
23
|
"yaml": "^2.3.0"
|
|
@@ -50,5 +44,15 @@
|
|
|
50
44
|
"parser",
|
|
51
45
|
"templating"
|
|
52
46
|
],
|
|
53
|
-
"license": "MIT"
|
|
54
|
-
|
|
47
|
+
"license": "MIT",
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "tsc",
|
|
50
|
+
"dev": "tsc --watch",
|
|
51
|
+
"test": "vitest run",
|
|
52
|
+
"test:watch": "vitest",
|
|
53
|
+
"lint": "eslint src --ext .ts",
|
|
54
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
55
|
+
"typecheck": "tsc --noEmit",
|
|
56
|
+
"clean": "rm -rf dist"
|
|
57
|
+
}
|
|
58
|
+
}
|