@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 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
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAyCH,oBAAoB;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEtE,yCAAyC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,eAAe,GAEhB,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;AAEzB;;GAEG;AACH,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,UAAU,UAAU,CAAC,SAAqB,EAAE;IAChD,6DAA6D;IAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAExD,kCAAkC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,qDAAqD;IACrD,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAExC,iBAAiB;IACjB,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,oBAAoB;IACpB,MAAM,IAAI,GAAS;QACjB;;WAEG;QACH,KAAK,CAAC,QAAgB;YACpB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,OAAgC;YAEhC,gBAAgB;YAChB,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7C,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnE,MAAM,IAAI,KAAK,CAAC,iBAAiB,eAAe,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,mBAAmB;YACnB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAC1C,WAAW,CAAC,GAAG,EACf,OAAO,EACP,MAAM,EACN,SAAS,CACV,CAAC;YAEF,iBAAiB;YACjB,OAAO,MAAM,CAAC,YAAY,EAAE;gBAC1B,OAAO;gBACP,MAAM;gBACN,IAAI,EAAE,KAAK;gBACX,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;QAED;;WAEG;QACH,QAAQ,CAAC,QAAgB;YACvB,MAAM,MAAM,GAAgB,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAkB,EAAE,CAAC;YAEnC,6BAA6B;YAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,QAAQ,EAAE,EAAE;iBACb,CAAC;YACJ,CAAC;YAED,8BAA8B;YAC9B,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACpE,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;gBAC1B,MAAM;gBACN,QAAQ;aACT,CAAC;QACJ,CAAC;QAED;;WAEG;QACH,YAAY,CAAC,SAAiB;YAC5B,mCAAmC;YACnC,+DAA+D;YAC/D,yCAAyC;YACzC,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;QACJ,CAAC;QAED;;WAEG;QACH,gBAAgB,CAAC,IAAY,EAAE,UAA8B;YAC3D,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,CAAC;QAED;;WAEG;QACH,UAAU,CAAC,MAAkB;YAC3B,4BAA4B;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,4BAA4B;YAC5B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;KACF,CAAC;IAEF,mCAAmC;IACnC,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,sCAAsC;QACtC,mDAAmD;QACnD,OAAO,CAAC,IAAI,CACV,qEAAqE,CACtE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,MAAkB,EAClB,SAA0C;IAE1C,+CAA+C;IAC/C,MAAM,MAAM,GACV,MAAM,CAAC,UAAU,EAAE,MAAM;QACzB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAE3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,6CAA6C;QAC7C,OAAO;IACT,CAAC;IAED,oCAAoC;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,QAAQ,CAAC;IAEzD,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,qBAAqB,YAAY,oCAAoC,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,KAAK,IAAI,aAAa,CAAC;QAExD,sCAAsC;QACtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;YACpC,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO;SACpC,CAAC,CAAC;QAEH,oEAAoE;QACpE,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,EAAE;YACzC,YAAY,EAAE,YAAY;YAC1B,KAAK;SACN,CAAC,CAAC;QAEH,mDAAmD;QACnD,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE;YACxB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,iCAAiC;YAC9C,OAAO,EAAE,6CAA6C;YACtD,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,QAAiB,EAAoB,EAAE;gBACrE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2DAA2D;QAC3D,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,GAAmC,EACnC,MAAmB,EACnB,QAAuB,EACvB,MAAkB,EAClB,SAA0C;IAE1C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,oCAAoC;IACpC,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAExC,wBAAwB;IACxB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,KAAqC,EACrC,QAAqB;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACvC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,KAAqC,EACrC,MAAmB,EACnB,QAAuB,EACvB,aAA0B,EAC1B,MAAkB,EAClB,SAA0C;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,uEAAuE;gBACvE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC1E,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,KAAK,GAAc;wBACvB,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,sBAAsB,YAAY,EAAE;wBAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;oBACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBAED,wBAAwB;gBACxB,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBACnF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;wBAClC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;oBACtF,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,0BAA0B;gBAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAc;wBACvB,IAAI,EAAE,iBAAiB;wBACvB,OAAO,EAAE,oBAAoB,IAAI,CAAC,IAAI,EAAE;wBACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC;oBACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,4BAA4B;gBAC5B,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC7E,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,+CAA+C;gBAC/C,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,gCAAgC,IAAI,CAAC,IAAI,EAAE;oBACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC"}
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.1.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
+ }