rhachet 1.3.3 → 1.4.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/bin/run CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env tsx
2
- import { invoke } from '../src/contract/cli/invoke';
2
+ import { invoke } from '../dist/contract/cli/invoke';
3
3
 
4
4
  void invoke({ args: process.argv.slice(2) });
@@ -65,7 +65,7 @@ const invoke = async (input) => {
65
65
  });
66
66
  program
67
67
  .name('rhachet')
68
- .description('ehmpathy CLI interface')
68
+ .description('rhachet cli interface. weave threads 🧵 of thought, stitched 🪡 with a rhachet ⚙️')
69
69
  .option('-c, --config <path>', 'where to find the rhachet.use.ts config'); // tell commander that we expect the config input and not to complain about it
70
70
  (0, invokeReadme_1.invokeReadme)({ program, registries });
71
71
  (0, invokeList_1.invokeList)({ program, registries });
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/contract/cli/invoke.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,mDAAiD;AACjD,+BAA+B;AAC/B,+DAAsD;AAGtD,4EAAyE;AACzE,2CAAwC;AACxC,6CAA0C;AAC1C,iDAA8C;AAE9C;;;;;;;;GAQG;AACI,MAAM,MAAM,GAAG,KAAK,EAAE,KAAyB,EAAiB,EAAE;IACvE,MAAM,OAAO,GAAG,MAAM,IAAA,qCAAc,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAE9D,kBAAkB;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC9E,MAAM,kBAAkB,GACtB,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAE;QAC5B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,UAAU,GAAG,kBAAkB;QACnC,CAAC,CAAC,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC;QAC5C,CAAC,CAAC,IAAA,cAAO,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACvC,MAAM,MAAM,GACV,yBAAa,UAAU,uCAAC,CAAC;IAE3B,iCAAiC;IACjC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAEpD,8FAA8F;IAC9F,MAAM,IAAA,qCAAiB,EAAC,UAAU,CAAC,CAAC;IAEpC,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,eAAe,CAAC;QACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC,CAAC;IACH,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC,CAAC,CAAC,8EAA8E;IAC3J,IAAA,2BAAY,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACtC,IAAA,uBAAU,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACpC,IAAA,qBAAS,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAEnC,YAAY;IACZ,uEAAuE;IACvE,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrE,IAAI,KAAK,YAAY,gCAAe,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAjDW,QAAA,MAAM,UAiDjB"}
1
+ {"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/contract/cli/invoke.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,mDAAiD;AACjD,+BAA+B;AAC/B,+DAAsD;AAGtD,4EAAyE;AACzE,2CAAwC;AACxC,6CAA0C;AAC1C,iDAA8C;AAE9C;;;;;;;;GAQG;AACI,MAAM,MAAM,GAAG,KAAK,EAAE,KAAyB,EAAiB,EAAE;IACvE,MAAM,OAAO,GAAG,MAAM,IAAA,qCAAc,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAE9D,kBAAkB;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC9E,MAAM,kBAAkB,GACtB,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAE;QAC5B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,UAAU,GAAG,kBAAkB;QACnC,CAAC,CAAC,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC;QAC5C,CAAC,CAAC,IAAA,cAAO,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACvC,MAAM,MAAM,GACV,yBAAa,UAAU,uCAAC,CAAC;IAE3B,iCAAiC;IACjC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAEpD,8FAA8F;IAC9F,MAAM,IAAA,qCAAiB,EAAC,UAAU,CAAC,CAAC;IAEpC,0BAA0B;IAC1B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,eAAe,CAAC;QACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC,CAAC;IACH,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CACV,mFAAmF,CACpF;SACA,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC,CAAC,CAAC,8EAA8E;IAC3J,IAAA,2BAAY,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACtC,IAAA,uBAAU,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACpC,IAAA,qBAAS,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAEnC,YAAY;IACZ,uEAAuE;IACvE,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrE,IAAI,KAAK,YAAY,gCAAe,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnDW,QAAA,MAAM,UAmDjB"}
@@ -30,7 +30,10 @@ const invokeAsk = ({ program, registries, }) => {
30
30
  });
31
31
  // register the dynamic inputs
32
32
  for (const [key, meta] of Object.entries(skill.threads.lookup)) {
33
- thisCommand.option(`-${meta.char}, --${key} <${meta.type}>`, meta.desc);
33
+ const isOptional = meta.type.startsWith('?');
34
+ const typeParsed = isOptional ? meta.type.slice(1) : meta.type;
35
+ const typeLabel = isOptional ? `[${typeParsed}]` : `<${typeParsed}>`;
36
+ thisCommand.option(`-${meta.char}, --${key} ${typeLabel}`, meta.desc);
34
37
  }
35
38
  // re-parse with updated option definitions
36
39
  thisCommand.parseOptions(thisCommand.parent?.args ?? []);
@@ -68,6 +71,14 @@ const invokeAsk = ({ program, registries, }) => {
68
71
  from: { lookup: { env } },
69
72
  });
70
73
  // execute the weave
74
+ console.log('');
75
+ console.log('');
76
+ console.log('🎙️ heard');
77
+ console.log('');
78
+ console.log(argvWithAsk.ask);
79
+ console.log('');
80
+ console.log('🫡 on it!');
81
+ console.log('');
71
82
  await (0, sdk_1.enweaveOneStitcher)({
72
83
  stitcher: skill.route,
73
84
  threads,
@@ -1 +1 @@
1
- {"version":3,"file":"invokeAsk.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeAsk.ts"],"names":[],"mappings":";;;AACA,mDAA0E;AAG1E,sEAAmE;AACnE,wEAAqE;AACrE,wEAAqE;AACrE,gCAA4C;AAE5C;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAC,EACxB,OAAO,EACP,UAAU,GAIX,EAAQ,EAAE;IACT,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,KAAK,CAAC;SACd,cAAc,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SACrD,cAAc,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;SACvD,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;SACrC,kBAAkB,CAAC,IAAI,CAAC;SACxB,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE9B,oDAAoD;IACpD,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAEhC,MAAM,IAAI,GAAG,IAAA,+BAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK;YACR,gCAAe,CAAC,KAAK,CACnB,mBAAmB,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,IAAI,GAAG,EAC1D;gBACE,IAAI;gBACJ,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;aAClE,CACF,CAAC;QAEJ,8BAA8B;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,OAAO,GAAG,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;QAED,2CAA2C;QAC3C,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAA4B,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAEvD,kBAAkB;QAClB,MAAM,IAAI,GAAG,IAAA,+BAAc,EAAC;YAC1B,UAAU;YACV,IAAI,EACF,QAAQ;gBACR,wCAAuB,CAAC,KAAK,CAAC,gCAAgC,EAAE;oBAC9D,IAAI;iBACL,CAAC;SACL,CAAC,CAAC;QACH,IAAI,CAAC,IAAI;YAAE,gCAAe,CAAC,KAAK,CAAC,iBAAiB,QAAQ,GAAG,CAAC,CAAC;QAE/D,mBAAmB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK;YACR,gCAAe,CAAC,KAAK,CACnB,kBAAkB,SAAS,iBAAiB,QAAQ,GAAG,CACxD,CAAC;QAEJ,0BAA0B;QAC1B,MAAM,WAAW,GAAG;YAClB,GAAG,IAAI;YACP,GAAG,EACD,GAAG,IAAI,wCAAuB,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,CAAC;SACxE,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAe,EAAC;YACpC,MAAM,EAAE,KAAK,CAAC,OAAO;YACrB,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;SACxC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAyC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAe,EAAC;YACpC,MAAM,EAAE,KAAK,CAAC,OAAO;YACrB,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE;SAC1B,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,IAAA,wBAAkB,EACtB;YACE,QAAQ,EAAE,KAAK,CAAC,KAAK;YACrB,OAAO;SACR,EACD,OAAO,CACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAxFW,QAAA,SAAS,aAwFpB"}
1
+ {"version":3,"file":"invokeAsk.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeAsk.ts"],"names":[],"mappings":";;;AACA,mDAA0E;AAG1E,sEAAmE;AACnE,wEAAqE;AACrE,wEAAqE;AACrE,gCAA4C;AAE5C;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAC,EACxB,OAAO,EACP,UAAU,GAIX,EAAQ,EAAE;IACT,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,KAAK,CAAC;SACd,cAAc,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SACrD,cAAc,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;SACvD,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;SACrC,kBAAkB,CAAC,IAAI,CAAC;SACxB,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE9B,oDAAoD;IACpD,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAEhC,MAAM,IAAI,GAAG,IAAA,+BAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK;YACR,gCAAe,CAAC,KAAK,CACnB,mBAAmB,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,IAAI,GAAG,EAC1D;gBACE,IAAI;gBACJ,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;aAClE,CACF,CAAC;QAEJ,8BAA8B;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC;YACrE,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,OAAO,GAAG,IAAI,SAAS,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QAED,2CAA2C;QAC3C,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAA4B,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAEvD,kBAAkB;QAClB,MAAM,IAAI,GAAG,IAAA,+BAAc,EAAC;YAC1B,UAAU;YACV,IAAI,EACF,QAAQ;gBACR,wCAAuB,CAAC,KAAK,CAAC,gCAAgC,EAAE;oBAC9D,IAAI;iBACL,CAAC;SACL,CAAC,CAAC;QACH,IAAI,CAAC,IAAI;YAAE,gCAAe,CAAC,KAAK,CAAC,iBAAiB,QAAQ,GAAG,CAAC,CAAC;QAE/D,mBAAmB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK;YACR,gCAAe,CAAC,KAAK,CACnB,kBAAkB,SAAS,iBAAiB,QAAQ,GAAG,CACxD,CAAC;QAEJ,0BAA0B;QAC1B,MAAM,WAAW,GAAG;YAClB,GAAG,IAAI;YACP,GAAG,EACD,GAAG,IAAI,wCAAuB,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,CAAC;SACxE,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAe,EAAC;YACpC,MAAM,EAAE,KAAK,CAAC,OAAO;YACrB,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;SACxC,CAAC,CAAC;QAEH,0BAA0B;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAyC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAe,EAAC;YACpC,MAAM,EAAE,KAAK,CAAC,OAAO;YACrB,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE;SAC1B,CAAC,CAAC;QAEH,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,IAAA,wBAAkB,EACtB;YACE,QAAQ,EAAE,KAAK,CAAC,KAAK;YACrB,OAAO;SACR,EACD,OAAO,CACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnGW,QAAA,SAAS,aAmGpB"}
@@ -14,3 +14,4 @@ export { genStepImagineViaTemplate } from '../logic/template/genStepImagineViaTe
14
14
  export { ContextStitchTrail } from '../logic/stitch/withStitchTrail';
15
15
  export { getStitch } from '../logic/thread/getStitch';
16
16
  export { enrollThread } from '../logic/role/enrollThread';
17
+ export { genRoleSkill } from '../logic/role/genRoleSkill';
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.enrollThread = exports.getStitch = exports.genStepImagineViaTemplate = exports.useTemplate = exports.getTemplateVarsFromRoleInherit = exports.getTemplateValFromArtifacts = exports.genTemplate = exports.asStitcherFlat = exports.asStitcher = exports.enweaveOneStitcher = exports.genStitchRoute = exports.genStitchFanout = exports.genStitchCycle = exports.genStitchChoice = void 0;
17
+ exports.genRoleSkill = exports.enrollThread = exports.getStitch = exports.genStepImagineViaTemplate = exports.useTemplate = exports.getTemplateVarsFromRoleInherit = exports.getTemplateValFromArtifacts = exports.genTemplate = exports.asStitcherFlat = exports.asStitcher = exports.enweaveOneStitcher = exports.genStitchRoute = exports.genStitchFanout = exports.genStitchCycle = exports.genStitchChoice = void 0;
18
18
  __exportStar(require("../domain/objects"), exports);
19
19
  var genStitchChoice_1 = require("../logic/weave/compose/genStitchChoice");
20
20
  Object.defineProperty(exports, "genStitchChoice", { enumerable: true, get: function () { return genStitchChoice_1.genStitchChoice; } });
@@ -44,4 +44,6 @@ var getStitch_1 = require("../logic/thread/getStitch");
44
44
  Object.defineProperty(exports, "getStitch", { enumerable: true, get: function () { return getStitch_1.getStitch; } });
45
45
  var enrollThread_1 = require("../logic/role/enrollThread");
46
46
  Object.defineProperty(exports, "enrollThread", { enumerable: true, get: function () { return enrollThread_1.enrollThread; } });
47
+ var genRoleSkill_1 = require("../logic/role/genRoleSkill");
48
+ Object.defineProperty(exports, "genRoleSkill", { enumerable: true, get: function () { return genRoleSkill_1.genRoleSkill; } });
47
49
  //# sourceMappingURL=sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/contract/sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAElC,0EAAyE;AAAhE,kHAAA,eAAe,OAAA;AACxB,wEAAuE;AAA9D,gHAAA,cAAc,OAAA;AACvB,0EAAyE;AAAhE,kHAAA,eAAe,OAAA;AACxB,wEAAuE;AAA9D,gHAAA,cAAc,OAAA;AAEvB,wEAAuE;AAA9D,wHAAA,kBAAkB,OAAA;AAE3B,gEAA+D;AAAtD,wGAAA,UAAU,OAAA;AACnB,wEAAuE;AAA9D,gHAAA,cAAc,OAAA;AAEvB,6DAA4D;AAAnD,0GAAA,WAAW,OAAA;AACpB,6FAA4F;AAAnF,0IAAA,2BAA2B,OAAA;AACpC,mGAAkG;AAAzF,gJAAA,8BAA8B,OAAA;AACvC,6DAA4D;AAAnD,0GAAA,WAAW,OAAA;AACpB,yFAAwF;AAA/E,sIAAA,yBAAyB,OAAA;AAGlC,uDAAsD;AAA7C,sGAAA,SAAS,OAAA;AAClB,2DAA0D;AAAjD,4GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/contract/sdk.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAElC,0EAAyE;AAAhE,kHAAA,eAAe,OAAA;AACxB,wEAAuE;AAA9D,gHAAA,cAAc,OAAA;AACvB,0EAAyE;AAAhE,kHAAA,eAAe,OAAA;AACxB,wEAAuE;AAA9D,gHAAA,cAAc,OAAA;AAEvB,wEAAuE;AAA9D,wHAAA,kBAAkB,OAAA;AAE3B,gEAA+D;AAAtD,wGAAA,UAAU,OAAA;AACnB,wEAAuE;AAA9D,gHAAA,cAAc,OAAA;AAEvB,6DAA4D;AAAnD,0GAAA,WAAW,OAAA;AACpB,6FAA4F;AAAnF,0IAAA,2BAA2B,OAAA;AACpC,mGAAkG;AAAzF,gJAAA,8BAA8B,OAAA;AACvC,6DAA4D;AAAnD,0GAAA,WAAW,OAAA;AACpB,yFAAwF;AAA/E,sIAAA,yBAAyB,OAAA;AAGlC,uDAAsD;AAA7C,sGAAA,SAAS,OAAA;AAClB,2DAA0D;AAAjD,4GAAA,YAAY,OAAA;AAErB,2DAA0D;AAAjD,4GAAA,YAAY,OAAA"}
@@ -35,7 +35,7 @@ export interface Role {
35
35
  * .what = the traits inherent to the role
36
36
  * .why = declares how the role goes about things
37
37
  */
38
- traits: RoleTrait<any>[];
38
+ traits: RoleTrait[];
39
39
  /**
40
40
  * .what = the skills known by the role
41
41
  * .why = declares what the role can do
@@ -28,7 +28,7 @@ export interface RoleContextSkill {
28
28
  * .what = the context that each role carries with it
29
29
  * .why = provides each role with a set of traits (inherent truths) and skills (learned abilities) to influence how they approach decisions, actions, and interpretations
30
30
  */
31
- export interface RoleContext<TRole extends ThreadRole, TStash extends Record<string, any> | undefined> extends ThreadContextRole<TRole> {
31
+ export interface RoleContext<TRole extends ThreadRole, TStash extends Record<string, any> | undefined = Record<string, any> | undefined> extends ThreadContextRole<TRole> {
32
32
  role: TRole;
33
33
  /**
34
34
  * .what = the persistent traits and skills that define how this role behaves
@@ -2,6 +2,7 @@ import { DomainLiteral } from 'domain-objects';
2
2
  import { Empty } from 'type-fns';
3
3
  import { GStitcher } from './Stitcher';
4
4
  import { Threads } from './Threads';
5
+ type WithOptionPrefix<T extends string> = T | `?${T}`;
5
6
  /**
6
7
  * .what = a generic specification for how to collect, verify, and instantiate skill arguments
7
8
  * .why =
@@ -17,41 +18,45 @@ export interface RoleSkillArgGetter<TOutput, TVariables extends Record<string, a
17
18
  /**
18
19
  * .what = declares how to collect required inputs (from CLI, env, etc)
19
20
  */
20
- lookup: Record<string, {
21
- /**
22
- * .what = where to get lookup from
23
- */
24
- source: 'process.env';
25
- /**
26
- * .what = a description of the input
27
- */
28
- desc: string;
29
- /**
30
- * .what = what envar key to dereference
31
- */
32
- envar: string;
33
- /**
34
- * .what = what type to expect
35
- */
36
- type: 'string';
37
- } | {
38
- /**
39
- * .what = where to get lookup from
40
- */
41
- source: 'process.argv';
42
- /**
43
- * .what = a description of the input
44
- */
45
- desc: string;
46
- /**
47
- * .what = what shorthand char alias to use, if from process.argv
48
- */
49
- char?: string;
50
- /**
51
- * .what = what type to expect
52
- */
53
- type: 'string';
54
- }>;
21
+ lookup: {
22
+ [K in keyof Omit<TVariables, 'ask'>]: {
23
+ /**
24
+ * .what = where to get lookup from
25
+ */
26
+ source: 'process.env';
27
+ /**
28
+ * .what = a description of the input
29
+ */
30
+ desc: string;
31
+ /**
32
+ * .what = what envar key to dereference
33
+ */
34
+ envar: string;
35
+ /**
36
+ * .what = what type to expect
37
+ * .note = prefix with `?` to designate as optional
38
+ */
39
+ type: WithOptionPrefix<'string'>;
40
+ } | {
41
+ /**
42
+ * .what = where to get lookup from
43
+ */
44
+ source: 'process.argv';
45
+ /**
46
+ * .what = a description of the input
47
+ */
48
+ desc: string;
49
+ /**
50
+ * .what = what shorthand char alias to use, if from process.argv
51
+ */
52
+ char?: string;
53
+ /**
54
+ * .what = what type to expect
55
+ * .note = prefix with `?` to designate as optional
56
+ */
57
+ type: WithOptionPrefix<'string'>;
58
+ };
59
+ };
55
60
  /**
56
61
  * .what = assures the input from lookup or passin was correctly declared
57
62
  */
@@ -76,24 +81,27 @@ export interface RoleSkillThreadsGetter<TOutput extends Threads<any>, TVariables
76
81
  * .what = how to lookup the required inputs for thread instantiation
77
82
  * .example = { target: { char: t, desc: "the target file or dir to upsert against", shape: "string" } }
78
83
  */
79
- lookup: Record<string, {
80
- /**
81
- * .what = where to get lookup from
82
- */
83
- source: 'process.argv';
84
- /**
85
- * .what = a description of the input
86
- */
87
- desc: string;
88
- /**
89
- * .what = what shorthand single char alias to use
90
- */
91
- char?: string;
92
- /**
93
- * .what = what type to expect
94
- */
95
- type: 'string';
96
- }> & {
84
+ lookup: {
85
+ [K in keyof Omit<TVariables, 'ask'>]: {
86
+ /**
87
+ * .what = where to get lookup from
88
+ */
89
+ source: 'process.argv';
90
+ /**
91
+ * .what = a description of the input
92
+ */
93
+ desc: string;
94
+ /**
95
+ * .what = what shorthand single char alias to use
96
+ */
97
+ char?: string;
98
+ /**
99
+ * .what = what type to expect
100
+ * .note = prefix with `?` to designate as optional
101
+ */
102
+ type: WithOptionPrefix<'string'>;
103
+ };
104
+ } & {
97
105
  ask?: Empty;
98
106
  };
99
107
  }
@@ -114,24 +122,28 @@ export interface RoleSkillContextGetter<TOutput extends GStitcher['context'], TV
114
122
  * .what = how to lookup the required inputs for context instantiation
115
123
  * .example = { openaiApiKey: { envar: "PREP_OPENAI_KEY" } }
116
124
  */
117
- lookup: Record<string, {
118
- /**
119
- * .what = where to get lookup from
120
- */
121
- source: 'process.env';
122
- /**
123
- * .what = a description of the input
124
- */
125
- desc: string;
126
- /**
127
- * .what = what envar key to dereference
128
- */
129
- envar: string;
130
- /**
131
- * .what = what type to expect
132
- */
133
- type: 'string';
134
- }>;
125
+ lookup: {
126
+ [K in keyof TVariables]: {
127
+ /**
128
+ * .what = where to get lookup from
129
+ */
130
+ source: 'process.env';
131
+ /**
132
+ * .what = a description of the input
133
+ */
134
+ desc: string;
135
+ /**
136
+ * .what = what envar key to dereference
137
+ */
138
+ envar: string;
139
+ /**
140
+ * .what = what type to expect
141
+ * .note = prefix with `?` to designate as optional
142
+ */
143
+ type: WithOptionPrefix<'string'>;
144
+ };
145
+ };
135
146
  }
136
147
  export declare class RoleSkillContextGetter<TOutput extends GStitcher['context'], TVariables extends Record<string, string>> extends DomainLiteral<RoleSkillContextGetter<TOutput, TVariables>> implements RoleSkillContextGetter<TOutput, TVariables> {
137
148
  }
149
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"RoleSkillArgGetter.js","sourceRoot":"","sources":["../../../src/domain/objects/RoleSkillArgGetter.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AA8H/C,MAAa,sBAIX,SAAQ,8BAA0D;CACT;AAL3D,wDAK2D;AA6C3D,MAAa,sBAIX,SAAQ,8BAA0D;CACT;AAL3D,wDAK2D"}
1
+ {"version":3,"file":"RoleSkillArgGetter.js","sourceRoot":"","sources":["../../../src/domain/objects/RoleSkillArgGetter.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAkI/C,MAAa,sBAIX,SAAQ,8BAA0D;CACT;AAL3D,wDAK2D;AA6C3D,MAAa,sBAIX,SAAQ,8BAA0D;CACT;AAL3D,wDAK2D"}
@@ -1,6 +1,6 @@
1
1
  import { DomainEntity } from 'domain-objects';
2
- import { Serializable } from 'serde-fns';
3
- import { Template } from './Template';
2
+ import { Artifact } from 'rhachet-artifact';
3
+ import { GitFile } from 'rhachet-artifact-git';
4
4
  /**
5
5
  * .what = a trait is a reusable behavioral modifier for a role
6
6
  * - it's adopted as an inherent truth of any actor which assumes the role
@@ -13,7 +13,7 @@ import { Template } from './Template';
13
13
  * - treat consistency as top priority
14
14
  * - prefer given/when/then test suites
15
15
  */
16
- export interface RoleTrait<TVariables extends Serializable> {
16
+ export interface RoleTrait {
17
17
  /**
18
18
  * .what = short identifier for this trait
19
19
  * .example = "asksQuestions"
@@ -27,8 +27,8 @@ export interface RoleTrait<TVariables extends Serializable> {
27
27
  /**
28
28
  * .what = the brief that houses this trait's declaration
29
29
  */
30
- brief: Template<TVariables>;
30
+ brief: Artifact<typeof GitFile>;
31
31
  }
32
- export declare class RoleTrait<TVariables extends Serializable> extends DomainEntity<RoleTrait<TVariables>> implements RoleTrait<TVariables> {
32
+ export declare class RoleTrait extends DomainEntity<RoleTrait> implements RoleTrait {
33
33
  static unique: readonly ["slug"];
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RoleTrait.js","sourceRoot":"","sources":["../../../src/domain/objects/RoleTrait.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAmC9C,MAAa,SACX,SAAQ,6BAAmC;;AAD7C,8BAKC;AADe,gBAAM,GAAG,CAAC,MAAM,CAAU,CAAC"}
1
+ {"version":3,"file":"RoleTrait.js","sourceRoot":"","sources":["../../../src/domain/objects/RoleTrait.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAkC9C,MAAa,SAAU,SAAQ,6BAAuB;;AAAtD,8BAEC;AADe,gBAAM,GAAG,CAAC,MAAM,CAAU,CAAC"}
@@ -26,17 +26,17 @@ const getSkillThreads = async (input) => {
26
26
  // grab all the requested ones
27
27
  for (const [key, spec] of Object.entries(getter.lookup)) {
28
28
  const val = argv[key] ?? (spec.char ? argv[spec.char] : undefined);
29
- if (val === undefined) {
29
+ if (val !== undefined)
30
+ collected[key] = val;
31
+ if (val === undefined && !spec.type.startsWith('?'))
30
32
  helpful_errors_1.BadRequestError.throw(`missing required arg --${key} (-${spec.char})`, {
31
33
  key,
32
34
  spec,
33
35
  });
34
- }
35
- collected[key] = val;
36
36
  }
37
37
  // verify they look right
38
38
  if (!getter.assess(collected))
39
- helpful_errors_1.UnexpectedCodePathError.throw('from.lookup -> collected was assessed to have incorrect shape. this should not be possible', { from, collected });
39
+ helpful_errors_1.UnexpectedCodePathError.throw('getter.assess=false; did you forget to update your .assess function in the skill declaration?', { from, collected });
40
40
  // instantiate
41
41
  return await getter.instantiate(collected);
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getSkillThreads.js","sourceRoot":"","sources":["../../../src/logic/invoke/getSkillThreads.ts"],"names":[],"mappings":";;;AAAA,mDAA0E;AAM1E;;;GAGG;AACI,MAAM,eAAe,GAAG,KAAK,EAGlC,KAMD,EAAoB,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE/B,sBAAsB;IACtB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,gCAAe,CAAC,KAAK,CACnB,kDAAkD,EAClD,EAAE,IAAI,EAAE,CACT,CAAC;QACJ,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,sBAAsB;IACtB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,+DAA+D;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG;YACN,gCAAe,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,sCAAsC;QACtC,MAAM,SAAS,GAA2B,EAAE,GAAG,EAAE,CAAC;QAElD,8BAA8B;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,gCAAe,CAAC,KAAK,CAAC,0BAA0B,GAAG,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE;oBACrE,GAAG;oBACH,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACvB,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAC3B,wCAAuB,CAAC,KAAK,CAC3B,4FAA4F,EAC5F,EAAE,IAAI,EAAE,SAAS,EAAE,CACpB,CAAC;QAEJ,cAAc;QACd,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,IAAI,wCAAuB,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AA1DW,QAAA,eAAe,mBA0D1B"}
1
+ {"version":3,"file":"getSkillThreads.js","sourceRoot":"","sources":["../../../src/logic/invoke/getSkillThreads.ts"],"names":[],"mappings":";;;AAAA,mDAA0E;AAM1E;;;GAGG;AACI,MAAM,eAAe,GAAG,KAAK,EAGlC,KAMD,EAAoB,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE/B,sBAAsB;IACtB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,gCAAe,CAAC,KAAK,CACnB,kDAAkD,EAClD,EAAE,IAAI,EAAE,CACT,CAAC;QACJ,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,sBAAsB;IACtB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,+DAA+D;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG;YACN,gCAAe,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,sCAAsC;QACtC,MAAM,SAAS,GAA2B,EAAE,GAAG,EAAE,CAAC;QAElD,8BAA8B;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAC5C,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBACjD,gCAAe,CAAC,KAAK,CAAC,0BAA0B,GAAG,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE;oBACrE,GAAG;oBACH,IAAI;iBACL,CAAC,CAAC;QACP,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAC3B,wCAAuB,CAAC,KAAK,CAC3B,+FAA+F,EAC/F,EAAE,IAAI,EAAE,SAAS,EAAE,CACpB,CAAC;QAEJ,cAAc;QACd,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,IAAI,wCAAuB,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AAzDW,QAAA,eAAe,mBAyD1B"}
@@ -0,0 +1,12 @@
1
+ import { GStitcher, Stitcher, RoleSkillThreadsGetter, RoleSkillContextGetter, RoleSkill } from '../../domain/objects';
2
+ /**
3
+ * .what = factory for role skills
4
+ * .why = ensures narrow type coupling between getter inputs
5
+ */
6
+ export declare const genRoleSkill: <TStitcher extends GStitcher<any, any, any>, TThreadsVars extends Record<string, string>, TContextVars extends Record<string, string>>(input: {
7
+ slug: string;
8
+ readme: string;
9
+ route: Stitcher<TStitcher>;
10
+ threads: RoleSkillThreadsGetter<TStitcher['threads'], TThreadsVars>;
11
+ context: RoleSkillContextGetter<TStitcher['context'], TContextVars>;
12
+ }) => RoleSkill<TStitcher>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genRoleSkill = void 0;
4
+ const objects_1 = require("../../domain/objects");
5
+ /**
6
+ * .what = factory for role skills
7
+ * .why = ensures narrow type coupling between getter inputs
8
+ */
9
+ const genRoleSkill = (input) => {
10
+ return objects_1.RoleSkill.build({
11
+ slug: input.slug,
12
+ readme: input.readme,
13
+ route: input.route,
14
+ threads: input.threads,
15
+ context: input.context,
16
+ });
17
+ };
18
+ exports.genRoleSkill = genRoleSkill;
19
+ //# sourceMappingURL=genRoleSkill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genRoleSkill.js","sourceRoot":"","sources":["../../../src/logic/role/genRoleSkill.ts"],"names":[],"mappings":";;;AAAA,kDAM8B;AAE9B;;;GAGG;AACI,MAAM,YAAY,GAAG,CAI1B,KAMD,EAAwB,EAAE;IACzB,OAAO,mBAAS,CAAC,KAAK,CAAC;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAY;QACzB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC;AACL,CAAC,CAAC;AAlBW,QAAA,YAAY,gBAkBvB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_fns_1 = require("test-fns");
4
+ const objects_1 = require("../../domain/objects");
5
+ const enrollThread_1 = require("./enrollThread");
6
+ const genRoleSkill_1 = require("./genRoleSkill");
7
+ describe('genRoleSkill', () => {
8
+ (0, test_fns_1.given)('a valid set of lookup, assess, and instantiate handlers', () => {
9
+ const skill = (0, genRoleSkill_1.genRoleSkill)({
10
+ slug: 'demo',
11
+ readme: 'demo readme',
12
+ route: {},
13
+ threads: {
14
+ lookup: {
15
+ foo: {
16
+ source: 'process.argv',
17
+ desc: 'some arg',
18
+ char: 'f',
19
+ type: 'string',
20
+ },
21
+ },
22
+ assess: (input) => typeof input.foo === 'string',
23
+ instantiate: async (input) => {
24
+ return {
25
+ caller: await (0, enrollThread_1.enrollThread)({
26
+ role: 'caller',
27
+ stash: { foo: input.foo },
28
+ }),
29
+ };
30
+ },
31
+ },
32
+ context: {
33
+ lookup: {
34
+ bar: {
35
+ source: 'process.env',
36
+ desc: 'some env var',
37
+ envar: 'DEMO_ENV',
38
+ type: 'string',
39
+ },
40
+ },
41
+ assess: (input) => typeof input.bar === 'string',
42
+ instantiate: (input) => {
43
+ return {
44
+ demoCtx: input.bar,
45
+ };
46
+ },
47
+ },
48
+ });
49
+ (0, test_fns_1.when)('the skill is instantiated', () => {
50
+ (0, test_fns_1.then)('it should produce a valid RoleSkill object', () => {
51
+ expect(skill).toBeInstanceOf(objects_1.RoleSkill);
52
+ expect(skill.slug).toBe('demo');
53
+ expect(skill.readme).toContain('demo readme');
54
+ });
55
+ (0, test_fns_1.then)('its thread assess should validate correct input', () => {
56
+ const valid = { foo: 'hello' };
57
+ const invalid = { foo: 123 };
58
+ expect(skill.threads.assess(valid)).toBe(true);
59
+ expect(skill.threads.assess(invalid)).toBe(false);
60
+ });
61
+ (0, test_fns_1.then)('its context assess should validate correct input', () => {
62
+ const valid = { bar: 'world' };
63
+ const invalid = { bar: false };
64
+ expect(skill.context.assess(valid)).toBe(true);
65
+ expect(skill.context.assess(invalid)).toBe(false);
66
+ });
67
+ (0, test_fns_1.then)('its thread instantiation should return the correct output', async () => {
68
+ const result = await skill.threads.instantiate({ foo: 'hi' });
69
+ expect(result.caller).toBeDefined();
70
+ expect(result.caller.context.stash.foo).toBe('hi');
71
+ });
72
+ (0, test_fns_1.then)('its context instantiation should return the correct output', async () => {
73
+ const ctx = await skill.context.instantiate({ bar: 'baz' });
74
+ expect(ctx.log);
75
+ });
76
+ });
77
+ });
78
+ });
79
+ //# sourceMappingURL=genRoleSkill.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genRoleSkill.test.js","sourceRoot":"","sources":["../../../src/logic/role/genRoleSkill.test.ts"],"names":[],"mappings":";;AAAA,uCAA6C;AAE7C,kDAM8B;AAC9B,iDAA8C;AAC9C,iDAA8C;AAE9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAA,gBAAK,EAAC,yDAAyD,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,IAAA,2BAAY,EAAC;YACzB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,EAEN;YACD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,GAAG,EAAE;wBACH,MAAM,EAAE,cAAc;wBACtB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,GAAG;wBACT,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,MAAM,EAAE,CAAC,KAAU,EAA4B,EAAE,CAC/C,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAC/B,WAAW,EAAE,KAAK,EAAE,KAAsB,EAAE,EAAE;oBAC5C,OAAO;wBACL,MAAM,EAAE,MAAM,IAAA,2BAAY,EAAC;4BACzB,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;yBAC1B,CAAC;qBACH,CAAC;gBACJ,CAAC;aACF;YACD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,GAAG,EAAE;wBACH,MAAM,EAAE,aAAa;wBACrB,IAAI,EAAE,cAAc;wBACpB,KAAK,EAAE,UAAU;wBACjB,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,MAAM,EAAE,CAAC,KAAU,EAA4B,EAAE,CAC/C,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAC/B,WAAW,EAAE,CAAC,KAAsB,EAAE,EAAE;oBACtC,OAAO;wBACL,OAAO,EAAE,KAAK,CAAC,GAAG;qBACY,CAAC;gBACnC,CAAC;aACF;SACF,CAAC,CAAC;QAEH,IAAA,eAAI,EAAC,2BAA2B,EAAE,GAAG,EAAE;YACrC,IAAA,eAAI,EAAC,4CAA4C,EAAE,GAAG,EAAE;gBACtD,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,mBAAS,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YAEH,IAAA,eAAI,EAAC,iDAAiD,EAAE,GAAG,EAAE;gBAC3D,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,IAAA,eAAI,EAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC5D,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,IAAA,eAAI,EACF,2DAA2D,EAC3D,KAAK,IAAI,EAAE;gBACT,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC,CACF,CAAC;YAEF,IAAA,eAAI,EACF,4DAA4D,EAC5D,KAAK,IAAI,EAAE;gBACT,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.invokeImagineStitcher = void 0;
4
+ const uni_time_1 = require("@ehmpathy/uni-time");
4
5
  /**
5
6
  * .what = invokes the imagine stitcher by invocation of stitcher mechanisms
6
7
  */
7
8
  const invokeImagineStitcher = async (input, context) => {
8
9
  const { stitcher, threads } = input;
10
+ // todo: generalize logs
11
+ const beganAt = (0, uni_time_1.asUniDateTime)(new Date());
12
+ console.log(`🧠 imagine.began:${input.stitcher.slug}`, { beganAt });
9
13
  // enprompt the thread
10
14
  const prompt = await stitcher.enprompt({ threads });
11
15
  // invoke the imagination
@@ -16,6 +20,15 @@ const invokeImagineStitcher = async (input, context) => {
16
20
  promptIn: prompt,
17
21
  promptOut: imagined,
18
22
  });
23
+ // todo: generalize logs
24
+ const endedAt = (0, uni_time_1.asUniDateTime)(new Date());
25
+ const duration = (0, uni_time_1.getDuration)({
26
+ of: { range: { since: beganAt, until: endedAt } },
27
+ });
28
+ console.log(`🧠 imagine.ended:${input.stitcher.slug}`, {
29
+ endedAt,
30
+ duration,
31
+ });
19
32
  // expose the stitch
20
33
  return stitch;
21
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"invokeImagineStitcher.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.ts"],"names":[],"mappings":";;;AAIA;;GAEG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACxC,KAGC,EACD,OAA6B,EACmC,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEpC,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpD,yBAAyB;IACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzD,8BAA8B;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,OAAO;QACP,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,oBAAoB;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxBW,QAAA,qBAAqB,yBAwBhC"}
1
+ {"version":3,"file":"invokeImagineStitcher.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.ts"],"names":[],"mappings":";;;AAAA,iDAAgE;AAMhE;;GAEG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACxC,KAGC,EACD,OAA6B,EACmC,EAAE;IAClE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEpC,wBAAwB;IACxB,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpE,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpD,yBAAyB;IACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzD,8BAA8B;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,OAAO;QACP,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAA,sBAAW,EAAC;QAC3B,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;KAClD,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;QACrD,OAAO;QACP,QAAQ;KACT,CAAC,CAAC;IAEH,oBAAoB;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAtCW,QAAA,qBAAqB,yBAsChC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "rhachet",
3
3
  "author": "ehmpathy",
4
4
  "description": "A framework for reliable, thorough thought. Weave threads of thought via stitches.",
5
- "version": "1.3.3",
5
+ "version": "1.4.0",
6
6
  "repository": "ehmpathy/rhachet",
7
7
  "homepage": "https://github.com/ehmpathy/rhachet",
8
8
  "keywords": [
@@ -59,7 +59,7 @@
59
59
  "helpful-errors": "1.3.8",
60
60
  "openai": "5.8.2",
61
61
  "rhachet-artifact": "1.0.0",
62
- "rhachet-artifact-git": "1.0.1",
62
+ "rhachet-artifact-git": "1.0.2",
63
63
  "serde-fns": "1.3.0",
64
64
  "test-fns": "1.5.0",
65
65
  "type-fns": "1.19.0",