rhachet 1.1.0 → 1.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.
Files changed (80) hide show
  1. package/dist/domain/objects/Role.d.ts +47 -0
  2. package/dist/domain/objects/Role.js +9 -0
  3. package/dist/domain/objects/Role.js.map +1 -0
  4. package/dist/domain/objects/RoleContext.d.ts +46 -0
  5. package/dist/domain/objects/RoleContext.js +3 -0
  6. package/dist/domain/objects/RoleContext.js.map +1 -0
  7. package/dist/domain/objects/RoleRegistry.d.ts +31 -0
  8. package/dist/domain/objects/RoleRegistry.js +13 -0
  9. package/dist/domain/objects/RoleRegistry.js.map +1 -0
  10. package/dist/domain/objects/RoleSkill.d.ts +38 -0
  11. package/dist/domain/objects/RoleSkill.js +9 -0
  12. package/dist/domain/objects/RoleSkill.js.map +1 -0
  13. package/dist/domain/objects/RoleSkillArgGetter.d.ts +137 -0
  14. package/dist/domain/objects/RoleSkillArgGetter.js +11 -0
  15. package/dist/domain/objects/RoleSkillArgGetter.js.map +1 -0
  16. package/dist/domain/objects/RoleTrait.d.ts +34 -0
  17. package/dist/domain/objects/RoleTrait.js +9 -0
  18. package/dist/domain/objects/RoleTrait.js.map +1 -0
  19. package/dist/domain/objects/StitchStep.d.ts +1 -1
  20. package/dist/domain/objects/StitchStep.js.map +1 -1
  21. package/dist/domain/objects/Template.d.ts +21 -0
  22. package/dist/domain/objects/Template.js +8 -0
  23. package/dist/domain/objects/Template.js.map +1 -0
  24. package/dist/domain/objects/Template.test.d.ts +1 -0
  25. package/dist/domain/objects/Template.test.js +48 -0
  26. package/dist/domain/objects/Template.test.js.map +1 -0
  27. package/dist/logic/role/addRoleTraits.d.ts +18 -0
  28. package/dist/logic/role/addRoleTraits.js +33 -0
  29. package/dist/logic/role/addRoleTraits.js.map +1 -0
  30. package/dist/logic/role/addRoleTraits.test.d.ts +1 -0
  31. package/dist/logic/role/addRoleTraits.test.js +93 -0
  32. package/dist/logic/role/addRoleTraits.test.js.map +1 -0
  33. package/dist/logic/role/enrollThread.d.ts +16 -0
  34. package/dist/logic/role/enrollThread.integration.test.d.ts +1 -0
  35. package/dist/logic/role/enrollThread.integration.test.js +79 -0
  36. package/dist/logic/role/enrollThread.integration.test.js.map +1 -0
  37. package/dist/logic/role/enrollThread.js +36 -0
  38. package/dist/logic/role/enrollThread.js.map +1 -0
  39. package/dist/logic/stitch/adapters/imagineViaOpenAI.js.map +1 -1
  40. package/dist/logic/stitch/invokeImagineStitcher.integration.test.js +2 -0
  41. package/dist/logic/stitch/invokeImagineStitcher.integration.test.js.map +1 -1
  42. package/dist/logic/stitch/invokeImagineStitcher.js +1 -1
  43. package/dist/logic/stitch/invokeImagineStitcher.js.map +1 -1
  44. package/dist/logic/template/genStepImagineViaTemplate.d.ts +22 -0
  45. package/dist/logic/template/genStepImagineViaTemplate.js +22 -0
  46. package/dist/logic/template/genStepImagineViaTemplate.js.map +1 -0
  47. package/dist/logic/template/genStepImagineViaTemplate.test.d.ts +1 -0
  48. package/dist/logic/template/genStepImagineViaTemplate.test.js +126 -0
  49. package/dist/logic/template/genStepImagineViaTemplate.test.js.map +1 -0
  50. package/dist/logic/template/genTemplate.d.ts +16 -0
  51. package/dist/logic/template/genTemplate.js +21 -0
  52. package/dist/logic/template/genTemplate.js.map +1 -0
  53. package/dist/logic/template/genTemplate.test.d.ts +1 -0
  54. package/dist/logic/template/genTemplate.test.js +118 -0
  55. package/dist/logic/template/genTemplate.test.js.map +1 -0
  56. package/dist/logic/template/getTemplateValFromArtifacts.d.ts +9 -0
  57. package/dist/logic/template/getTemplateValFromArtifacts.js +27 -0
  58. package/dist/logic/template/getTemplateValFromArtifacts.js.map +1 -0
  59. package/dist/logic/template/getTemplateVarsFromInheritance.d.ts +22 -0
  60. package/dist/logic/template/getTemplateVarsFromInheritance.js +15 -0
  61. package/dist/logic/template/getTemplateVarsFromInheritance.js.map +1 -0
  62. package/dist/logic/template/useTemplate.d.ts +10 -0
  63. package/dist/logic/template/useTemplate.integration.test.d.ts +1 -0
  64. package/dist/logic/template/useTemplate.integration.test.js +28 -0
  65. package/dist/logic/template/useTemplate.integration.test.js.map +1 -0
  66. package/dist/logic/template/useTemplate.js +26 -0
  67. package/dist/logic/template/useTemplate.js.map +1 -0
  68. package/dist/logic/thread/getStitch.d.ts +11 -0
  69. package/dist/logic/thread/getStitch.js +18 -0
  70. package/dist/logic/thread/getStitch.js.map +1 -0
  71. package/dist/logic/thread/getStitch.test.d.ts +1 -0
  72. package/dist/logic/thread/getStitch.test.js +73 -0
  73. package/dist/logic/thread/getStitch.test.js.map +1 -0
  74. package/dist/logic/weave/compose/genStitchCycle.test.js +115 -0
  75. package/dist/logic/weave/compose/genStitchCycle.test.js.map +1 -1
  76. package/package.json +8 -4
  77. package/readme.md +32 -33
  78. package/dist/logic/thread/enroleThread.d.ts +0 -4
  79. package/dist/logic/thread/enroleThread.js +0 -6
  80. package/dist/logic/thread/enroleThread.js.map +0 -1
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rhachet_artifact_git_1 = require("rhachet-artifact-git");
4
+ const test_fns_1 = require("test-fns");
5
+ const genThread_1 = require("../thread/genThread");
6
+ const genTemplate_1 = require("./genTemplate");
7
+ const ref = { uri: __dirname + '/.temp/useTemplate.example1.md' };
8
+ const templateArt = (0, rhachet_artifact_git_1.genArtifactGitFile)(ref);
9
+ describe('genTemplate', () => {
10
+ (0, test_fns_1.given)('a valid template and threads with nested values', () => {
11
+ const threads = {
12
+ person: (0, genThread_1.genThread)({
13
+ role: 'person',
14
+ name: 'Casey',
15
+ meta: { day: 'Monday' },
16
+ }),
17
+ };
18
+ (0, test_fns_1.when)('calling use() on a hydrated template', () => {
19
+ const template = (0, genTemplate_1.genTemplate)({
20
+ ref,
21
+ getVariables: (input) => ({
22
+ name: input.threads.person.context.name,
23
+ meta: input.threads.person.context.meta,
24
+ }),
25
+ });
26
+ (0, test_fns_1.then)('it returns the fully hydrated string', async () => {
27
+ await templateArt.set({
28
+ content: 'Hello $.rhachet{name} — today is $.rhachet{meta.day}',
29
+ });
30
+ const result = await template.use({ threads });
31
+ expect(result).toBe('Hello Casey — today is Monday');
32
+ });
33
+ });
34
+ });
35
+ (0, test_fns_1.given)('a template with deeply nested async variables', () => {
36
+ const threads = {
37
+ session: (0, genThread_1.genThread)({
38
+ role: 'session',
39
+ user: { name: 'Jordan', details: { role: 'admin' } },
40
+ }),
41
+ };
42
+ (0, test_fns_1.when)('calling use() with async getVariables', () => {
43
+ const template = (0, genTemplate_1.genTemplate)({
44
+ ref,
45
+ getVariables: async (input) => ({
46
+ user: input.threads.session.context.user,
47
+ }),
48
+ });
49
+ (0, test_fns_1.then)('it correctly interpolates the nested keys', async () => {
50
+ await templateArt.set({
51
+ content: 'User: $.rhachet{user.name}, Role: $.rhachet{user.details.role}',
52
+ });
53
+ const result = await template.use({ threads });
54
+ expect(result).toBe('User: Jordan, Role: admin');
55
+ });
56
+ });
57
+ });
58
+ (0, test_fns_1.given)('a template that references a missing variable', () => {
59
+ const threads = {
60
+ user: (0, genThread_1.genThread)({ role: 'user', name: 'Sam' }),
61
+ };
62
+ (0, test_fns_1.when)('calling use() with missing $.rhachet{missing}', () => {
63
+ const template = (0, genTemplate_1.genTemplate)({
64
+ ref,
65
+ getVariables: (input) => ({
66
+ name: input.threads.user.context.name,
67
+ }),
68
+ });
69
+ (0, test_fns_1.then)('it throws a missing variable error', async () => {
70
+ await templateArt.set({
71
+ content: 'Hello $.rhachet{name} and $.rhachet{missing}',
72
+ });
73
+ await expect(template.use({ threads })).rejects.toThrow('missing variable for $.rhachet{missing} in template');
74
+ });
75
+ });
76
+ });
77
+ (0, test_fns_1.given)('a non-existent template file', () => {
78
+ const badRef = { uri: __dirname + '/.temp/does-not-exist.md' };
79
+ (0, test_fns_1.when)('calling use() on a template with a missing file', () => {
80
+ const threads = {
81
+ ghost: (0, genThread_1.genThread)({ role: 'ghost' }),
82
+ };
83
+ const template = (0, genTemplate_1.genTemplate)({
84
+ ref: badRef,
85
+ getVariables: () => ({
86
+ hello: 'world',
87
+ }),
88
+ });
89
+ (0, test_fns_1.then)('it throws a file missing error', async () => {
90
+ await expect(template.use({ threads })).rejects.toThrow('template artifact does not exist');
91
+ });
92
+ });
93
+ });
94
+ (0, test_fns_1.given)('an invalid getVariables that references a nonexistent thread role', () => {
95
+ (0, test_fns_1.when)('defining the template', () => {
96
+ (0, test_fns_1.then)('TypeScript throws a compile-time error', () => {
97
+ (0, genTemplate_1.genTemplate)({
98
+ ref,
99
+ getVariables: (input) =>
100
+ // @ts-expect-error - threads.ghost does not exist
101
+ input.threads.ghost.context.name,
102
+ });
103
+ });
104
+ });
105
+ });
106
+ (0, test_fns_1.given)('an invalid getVariables that returns a non-object', () => {
107
+ (0, test_fns_1.when)('defining the template', () => {
108
+ (0, test_fns_1.then)('TypeScript throws a compile-time error', () => {
109
+ (0, genTemplate_1.genTemplate)({
110
+ ref,
111
+ // @ts-expect-error - return must be object-like
112
+ getVariables: () => 'just a string',
113
+ });
114
+ });
115
+ });
116
+ });
117
+ });
118
+ //# sourceMappingURL=genTemplate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genTemplate.test.js","sourceRoot":"","sources":["../../../src/logic/template/genTemplate.test.ts"],"names":[],"mappings":";;AAAA,+DAA0D;AAC1D,uCAA6C;AAI7C,mDAAgD;AAChD,+CAA4C;AAE5C,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,SAAS,GAAG,gCAAgC,EAAE,CAAC;AAClE,MAAM,WAAW,GAAG,IAAA,yCAAkB,EAAC,GAAG,CAAC,CAAC;AAE5C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAA,gBAAK,EAAC,iDAAiD,EAAE,GAAG,EAAE;QAC5D,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAA,qBAAS,EAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;aACxB,CAAC;SACH,CAAC;QAEF,IAAA,eAAI,EAAC,sCAAsC,EAAE,GAAG,EAAE;YAChD,MAAM,QAAQ,GAAG,IAAA,yBAAW,EAAiB;gBAC3C,GAAG;gBACH,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACxB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;oBACvC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;iBACxC,CAAC;aACH,CAAC,CAAC;YAEH,IAAA,eAAI,EAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;gBACtD,MAAM,WAAW,CAAC,GAAG,CAAC;oBACpB,OAAO,EAAE,sDAAsD;iBAChE,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAK,EAAC,+CAA+C,EAAE,GAAG,EAAE;QAC1D,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,IAAA,qBAAS,EAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;aACrD,CAAC;SACH,CAAC;QAEF,IAAA,eAAI,EAAC,uCAAuC,EAAE,GAAG,EAAE;YACjD,MAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC;gBAC3B,GAAG;gBACH,YAAY,EAAE,KAAK,EAAE,KAAkC,EAAE,EAAE,CAAC,CAAC;oBAC3D,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;iBACzC,CAAC;aACH,CAAC,CAAC;YAEH,IAAA,eAAI,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;gBAC3D,MAAM,WAAW,CAAC,GAAG,CAAC;oBACpB,OAAO,EACL,gEAAgE;iBACnE,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAK,EAAC,+CAA+C,EAAE,GAAG,EAAE;QAC1D,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAA,qBAAS,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SAC/C,CAAC;QAEF,IAAA,eAAI,EAAC,+CAA+C,EAAE,GAAG,EAAE;YACzD,MAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC;gBAC3B,GAAG;gBACH,YAAY,EAAE,CAAC,KAAkC,EAAE,EAAE,CAAC,CAAC;oBACrD,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;iBACtC,CAAC;aACH,CAAC,CAAC;YAEH,IAAA,eAAI,EAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBACpD,MAAM,WAAW,CAAC,GAAG,CAAC;oBACpB,OAAO,EAAE,8CAA8C;iBACxD,CAAC,CAAC;gBAEH,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrD,qDAAqD,CACtD,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAK,EAAC,8BAA8B,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,SAAS,GAAG,0BAA0B,EAAE,CAAC;QAE/D,IAAA,eAAI,EAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,MAAM,OAAO,GAAG;gBACd,KAAK,EAAE,IAAA,qBAAS,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACpC,CAAC;YAEF,MAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC;gBAC3B,GAAG,EAAE,MAAM;gBACX,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;oBACnB,KAAK,EAAE,OAAO;iBACf,CAAC;aACH,CAAC,CAAC;YAEH,IAAA,eAAI,EAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;gBAChD,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACrD,kCAAkC,CACnC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,gBAAK,EACH,mEAAmE,EACnE,GAAG,EAAE;QACH,IAAA,eAAI,EAAC,uBAAuB,EAAE,GAAG,EAAE;YACjC,IAAA,eAAI,EAAC,wCAAwC,EAAE,GAAG,EAAE;gBAClD,IAAA,yBAAW,EAA6B;oBACtC,GAAG;oBACH,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;oBACtB,kDAAkD;oBAClD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;iBACnC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,IAAA,gBAAK,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC9D,IAAA,eAAI,EAAC,uBAAuB,EAAE,GAAG,EAAE;YACjC,IAAA,eAAI,EAAC,wCAAwC,EAAE,GAAG,EAAE;gBAClD,IAAA,yBAAW,EAAC;oBACV,GAAG;oBACH,gDAAgD;oBAChD,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;iBACpC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Artifact } from 'rhachet-artifact';
2
+ import { GitFile } from 'rhachet-artifact-git';
3
+ /**
4
+ * .what = reads the artifacts given and returns a string for use in a template val
5
+ * .why = makes it easy to execute this common usecase
6
+ */
7
+ export declare const getTemplateValFromArtifacts: (input: {
8
+ artifacts: Artifact<typeof GitFile>[];
9
+ }) => Promise<string>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTemplateValFromArtifacts = void 0;
4
+ const helpful_errors_1 = require("helpful-errors");
5
+ const rhachet_artifact_git_1 = require("rhachet-artifact-git");
6
+ /**
7
+ * .what = reads the artifacts given and returns a string for use in a template val
8
+ * .why = makes it easy to execute this common usecase
9
+ */
10
+ const getTemplateValFromArtifacts = async (input) => {
11
+ const root = await (0, rhachet_artifact_git_1.getGitRepoRoot)({ from: process.cwd() });
12
+ return (await Promise.all(input.artifacts.map(async (ref) => {
13
+ const content = (await ref.get())?.content ??
14
+ helpful_errors_1.UnexpectedCodePathError.throw('artifact does not exist', {
15
+ ref,
16
+ });
17
+ return [
18
+ '',
19
+ ' ```ts',
20
+ ` // ${ref.ref.uri.replace(root, '@gitroot')}`,
21
+ ...content.split('\n').map((line) => ` ${line}`), // indents by 4 chars
22
+ ' ```',
23
+ ].join('\n');
24
+ }))).join('\n\n');
25
+ };
26
+ exports.getTemplateValFromArtifacts = getTemplateValFromArtifacts;
27
+ //# sourceMappingURL=getTemplateValFromArtifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTemplateValFromArtifacts.js","sourceRoot":"","sources":["../../../src/logic/template/getTemplateValFromArtifacts.ts"],"names":[],"mappings":";;;AAAA,mDAAyD;AAEzD,+DAA+D;AAE/D;;;GAGG;AACI,MAAM,2BAA2B,GAAG,KAAK,EAAE,KAEjD,EAAmB,EAAE;IACpB,MAAM,IAAI,GAAG,MAAM,IAAA,qCAAc,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAE3D,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,OAAO,GACX,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO;YAC1B,wCAAuB,CAAC,KAAK,CAAC,yBAAyB,EAAE;gBACvD,GAAG;aACJ,CAAC,CAAC;QACL,OAAO;YACL,EAAE;YACF,WAAW;YACX,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE;YACjD,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,qBAAqB;YAC1E,SAAS;SACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CACH,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC,CAAC;AAvBW,QAAA,2BAA2B,+BAuBtC"}
@@ -0,0 +1,22 @@
1
+ import { Thread } from '../../domain/objects';
2
+ /**
3
+ * .what = extracts template vars from a thread's inherited traits and skills
4
+ * .why = standardizes how role memory is rendered into prompt templates
5
+ */
6
+ export declare const getTemplateVarsFromRoleInherit: <TThread extends Thread<{
7
+ inherit: {
8
+ traits: {
9
+ content: string;
10
+ }[];
11
+ skills: {
12
+ content: string;
13
+ }[];
14
+ };
15
+ }>>({ thread, }: {
16
+ thread: TThread;
17
+ }) => {
18
+ inherit: {
19
+ skills: string;
20
+ traits: string;
21
+ };
22
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTemplateVarsFromRoleInherit = void 0;
4
+ /**
5
+ * .what = extracts template vars from a thread's inherited traits and skills
6
+ * .why = standardizes how role memory is rendered into prompt templates
7
+ */
8
+ const getTemplateVarsFromRoleInherit = ({ thread, }) => ({
9
+ inherit: {
10
+ traits: thread.context.inherit.traits.map((t) => t.content).join('\n\n'),
11
+ skills: thread.context.inherit.skills.map((s) => s.content).join('\n\n'),
12
+ },
13
+ });
14
+ exports.getTemplateVarsFromRoleInherit = getTemplateVarsFromRoleInherit;
15
+ //# sourceMappingURL=getTemplateVarsFromInheritance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTemplateVarsFromInheritance.js","sourceRoot":"","sources":["../../../src/logic/template/getTemplateVarsFromInheritance.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACI,MAAM,8BAA8B,GAAG,CAO5C,EACA,MAAM,GAGP,EAAmD,EAAE,CAAC,CAAC;IACtD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACxE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KACzE;CACF,CAAC,CAAC;AAhBU,QAAA,8BAA8B,kCAgBxC"}
@@ -0,0 +1,10 @@
1
+ import { Serializable } from 'serde-fns';
2
+ import { Template } from '../../domain/objects/Template';
3
+ /**
4
+ * .what = hydrates a template file with given variables
5
+ * .why = reusable interpolation engine for Template<T>.use(...)
6
+ */
7
+ export declare const useTemplate: <TVariables extends Serializable = any>(input: {
8
+ ref: Template<TVariables>['ref'];
9
+ variables: TVariables;
10
+ }) => Promise<string>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rhachet_artifact_git_1 = require("rhachet-artifact-git");
4
+ const genThread_1 = require("../thread/genThread");
5
+ const genTemplate_1 = require("./genTemplate");
6
+ test('hydrates a real template using thread-derived variables', async () => {
7
+ const ref = { uri: __dirname + '/.temp/useTemplate.example1.md' };
8
+ await (0, rhachet_artifact_git_1.genArtifactGitFile)(ref).set({
9
+ content: 'Hello $.rhachet{name} — today is $.rhachet{meta.day}',
10
+ });
11
+ const threads = {
12
+ person: (0, genThread_1.genThread)({
13
+ role: 'person',
14
+ name: 'Casey',
15
+ meta: { day: 'Monday' },
16
+ }),
17
+ };
18
+ const template = (0, genTemplate_1.genTemplate)({
19
+ ref,
20
+ getVariables: (input) => ({
21
+ name: input.threads.person.context.name,
22
+ meta: input.threads.person.context.meta,
23
+ }),
24
+ });
25
+ const result = await template.use({ threads });
26
+ expect(result).toBe('Hello Casey — today is Monday');
27
+ });
28
+ //# sourceMappingURL=useTemplate.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemplate.integration.test.js","sourceRoot":"","sources":["../../../src/logic/template/useTemplate.integration.test.ts"],"names":[],"mappings":";;AAAA,+DAA0D;AAE1D,mDAAgD;AAChD,+CAA4C;AAE5C,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;IACzE,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,SAAS,GAAG,gCAAgC,EAAE,CAAC;IAElE,MAAM,IAAA,yCAAkB,EAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QAChC,OAAO,EAAE,sDAAsD;KAChE,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,IAAA,qBAAS,EAAC;YAChB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;SACxB,CAAC;KACH,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC;QAC3B,GAAG;QACH,YAAY,EAAE,CAAC,KAAkC,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;YACvC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;SACxC,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTemplate = void 0;
4
+ const flattie_1 = require("flattie");
5
+ const helpful_errors_1 = require("helpful-errors");
6
+ const rhachet_artifact_git_1 = require("rhachet-artifact-git");
7
+ /**
8
+ * .what = hydrates a template file with given variables
9
+ * .why = reusable interpolation engine for Template<T>.use(...)
10
+ */
11
+ const useTemplate = async (input) => {
12
+ const { ref, variables } = input;
13
+ const artifact = (0, rhachet_artifact_git_1.genArtifactGitFile)(ref);
14
+ const file = await artifact.get();
15
+ const content = file?.content ??
16
+ helpful_errors_1.BadRequestError.throw('template artifact does not exist', { ref });
17
+ const flattened = (0, flattie_1.flattie)(variables);
18
+ return content.replace(/\$\.rhachet\{([a-zA-Z0-9._]+)\}/g, (_, key) => flattened[key] ??
19
+ helpful_errors_1.BadRequestError.throw(`missing variable for $.rhachet{${key}} in template`, {
20
+ desired: key,
21
+ template: ref,
22
+ provided: Object.keys(flattened),
23
+ }));
24
+ };
25
+ exports.useTemplate = useTemplate;
26
+ //# sourceMappingURL=useTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemplate.js","sourceRoot":"","sources":["../../../src/logic/template/useTemplate.ts"],"names":[],"mappings":";;;AAAA,qCAAkC;AAClC,mDAAiD;AACjD,+DAA0D;AAK1D;;;GAGG;AACI,MAAM,WAAW,GAAG,KAAK,EAE9B,KAGD,EAAmB,EAAE;IACpB,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEjC,MAAM,QAAQ,GAAG,IAAA,yCAAkB,EAAC,GAAG,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,OAAO,GACX,IAAI,EAAE,OAAO;QACb,gCAAe,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAErE,MAAM,SAAS,GAAG,IAAA,iBAAO,EAAC,SAAS,CAAC,CAAC;IAErC,OAAO,OAAO,CAAC,OAAO,CACpB,kCAAkC,EAClC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACT,SAAS,CAAC,GAAG,CAAC;QACd,gCAAe,CAAC,KAAK,CACnB,kCAAkC,GAAG,eAAe,EACpD;YACE,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SACjC,CACF,CACJ,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,WAAW,eA6BtB"}
@@ -0,0 +1,11 @@
1
+ import { Stitch } from '../../domain/objects';
2
+ /**
3
+ * .what = gets the latest stitch from a thread, optionally filtered
4
+ * .why = needed to retrieve the most recent relevant operation or result
5
+ */
6
+ export declare const getStitch: <TOutput = unknown>(input: {
7
+ from: Stitch<any>[];
8
+ where?: (s: Stitch<any>) => s is Stitch<TOutput>;
9
+ order?: 'DESC';
10
+ limit?: 1;
11
+ }) => Stitch<TOutput> | null;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStitch = void 0;
4
+ /**
5
+ * .what = gets the latest stitch from a thread, optionally filtered
6
+ * .why = needed to retrieve the most recent relevant operation or result
7
+ */
8
+ const getStitch = (input) => {
9
+ const { from, where } = input;
10
+ const order = input.order ?? 'DESC';
11
+ if (!Array.isArray(from) || from.length === 0)
12
+ return null;
13
+ const list = order === 'DESC' ? [...from].reverse() : from;
14
+ const match = where ? list.find(where) : list[0];
15
+ return match ?? null;
16
+ };
17
+ exports.getStitch = getStitch;
18
+ //# sourceMappingURL=getStitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStitch.js","sourceRoot":"","sources":["../../../src/logic/thread/getStitch.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAoB,KAK5C,EAA0B,EAAE;IAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC;IAEpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3D,MAAM,IAAI,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjD,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const getStitch_1 = require("./getStitch");
4
+ describe('getStitch', () => {
5
+ const makeStitch = (input) => input;
6
+ it('returns null for empty array', () => {
7
+ const result = (0, getStitch_1.getStitch)({ from: [] });
8
+ expect(result).toBeNull();
9
+ });
10
+ it('returns the last stitch if order is not set and no filter is provided', () => {
11
+ const stitches = [
12
+ makeStitch({ input: 'a', output: 'first' }),
13
+ makeStitch({ input: 'b', output: 'second' }),
14
+ makeStitch({ input: 'c', output: 'third' }),
15
+ ];
16
+ const result = (0, getStitch_1.getStitch)({ from: stitches });
17
+ expect(result?.output).toBe('third');
18
+ });
19
+ it('returns the last matching stitch with DESC order and predicate', () => {
20
+ const stitches = [
21
+ makeStitch({ input: 'x', output: { form: 'A', value: 1 } }),
22
+ makeStitch({ input: 'y', output: { form: 'B', value: 2 } }),
23
+ makeStitch({ input: 'z', output: { form: 'A', value: 3 } }),
24
+ ];
25
+ const result = (0, getStitch_1.getStitch)({
26
+ from: stitches,
27
+ order: 'DESC',
28
+ where: (s) => s.output.form === 'A',
29
+ });
30
+ expect(result?.output.form).toBe('A');
31
+ expect(result?.output.value).toBe(3); // latest A
32
+ });
33
+ it('returns null if no stitch matches the predicate', () => {
34
+ const stitches = [
35
+ makeStitch({ input: 'x', output: { form: 'X' } }),
36
+ makeStitch({ input: 'y', output: { form: 'Y' } }),
37
+ ];
38
+ const result = (0, getStitch_1.getStitch)({
39
+ from: stitches,
40
+ where: (s) => s.output.form === 'Z',
41
+ });
42
+ expect(result).toBeNull();
43
+ });
44
+ it('raises a type error if the predicate type is incorrect', () => {
45
+ const stitches = [
46
+ makeStitch({ input: 'x', output: { form: 'X' } }),
47
+ makeStitch({ input: 'y', output: { yarn: 'Y' } }),
48
+ ];
49
+ const result = (0, getStitch_1.getStitch)({
50
+ from: stitches,
51
+ where: (s) => s.output.form,
52
+ });
53
+ // should resolve the type correctly
54
+ expect(result.output.form);
55
+ // @ts-expect-error: Type 'string' is not assignable to type 'number'.
56
+ const check = result.output.form;
57
+ expect(check);
58
+ // @ts-expect-error: Property 'yarn' does not exist on type 'Stitch<{ form: string; }>'.ts(2339)
59
+ expect(result.output.yarn);
60
+ });
61
+ it('raises a type error if the predicate is not a type guard', () => {
62
+ const stitches = [
63
+ makeStitch({ input: 'a', output: 'foo' }),
64
+ makeStitch({ input: 'b', output: 'bar' }),
65
+ ];
66
+ (0, getStitch_1.getStitch)({
67
+ from: stitches,
68
+ // @ts-expect-error - predicate must return a type guard, not boolean
69
+ where: (s) => typeof s.output === 'string',
70
+ });
71
+ });
72
+ });
73
+ //# sourceMappingURL=getStitch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStitch.test.js","sourceRoot":"","sources":["../../../src/logic/thread/getStitch.test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ const genContextStitchTrail_1 = require("../../../__test_assets__/genContextStit
6
6
  const StitchStep_1 = require("../../../domain/objects/StitchStep");
7
7
  const genThread_1 = require("../../thread/genThread");
8
8
  const asStitcher_1 = require("./asStitcher");
9
+ const asStitcherFlat_1 = require("./asStitcherFlat");
9
10
  const genStitchCycle_1 = require("./genStitchCycle");
10
11
  const genStitchRoute_1 = require("./genStitchRoute");
11
12
  describe('genStitchCycle type preservation', () => {
@@ -148,5 +149,119 @@ describe('genStitchCycle type preservation', () => {
148
149
  expect(invalid);
149
150
  });
150
151
  });
152
+ (0, test_fns_1.given)('a repeatee that is a route of two steps, asStitcherFlat', () => {
153
+ const stepA = new StitchStep_1.StitchStepCompute({
154
+ slug: 'step-a',
155
+ readme: null,
156
+ form: 'COMPUTE',
157
+ stitchee: 'main',
158
+ invoke: () => ({ input: null, output: 'step-a' }),
159
+ });
160
+ const stepB = new StitchStep_1.StitchStepCompute({
161
+ slug: 'step-b',
162
+ readme: null,
163
+ form: 'COMPUTE',
164
+ stitchee: 'main',
165
+ invoke: () => ({ input: null, output: 'step-b' }),
166
+ });
167
+ const repeatee = (0, asStitcherFlat_1.asStitcherFlat)((0, genStitchRoute_1.genStitchRoute)({
168
+ slug: 'route:pair',
169
+ readme: null,
170
+ sequence: [stepA, stepB],
171
+ }));
172
+ const decider = new StitchStep_1.StitchStepCompute({
173
+ slug: 'decide-again',
174
+ readme: null,
175
+ form: 'COMPUTE',
176
+ stitchee: 'main',
177
+ invoke: () => ({ input: null, output: { choice: 'release' } }),
178
+ });
179
+ const cycle = (0, genStitchCycle_1.genStitchCycle)({
180
+ slug: 'loop-route',
181
+ readme: 'Repeats a route',
182
+ repeatee,
183
+ decider,
184
+ });
185
+ (0, test_fns_1.then)('it should merge context from both steps and decider', () => {
186
+ const valid = {
187
+ a: 1,
188
+ b: true,
189
+ d: new Date(),
190
+ log: console,
191
+ stitch: { trail: [] },
192
+ };
193
+ expect(valid);
194
+ // @ts-expect-error: missing required key `b`
195
+ const invalid = {
196
+ a: 1,
197
+ d: new Date(),
198
+ };
199
+ expect(invalid);
200
+ });
201
+ (0, test_fns_1.then)('it should infer the output type from the repeatee route', () => {
202
+ const val = 'step-a';
203
+ expect(val);
204
+ // @ts-expect-error: number is not assignable
205
+ const invalid = 42;
206
+ expect(invalid);
207
+ });
208
+ });
209
+ (0, test_fns_1.given)('a repeatee asStitcherFlat that has different threads than decider', () => {
210
+ const stepA = new StitchStep_1.StitchStepCompute({
211
+ slug: 'step-a',
212
+ readme: null,
213
+ form: 'COMPUTE',
214
+ stitchee: 'main',
215
+ invoke: () => ({ input: null, output: 'step-a' }),
216
+ });
217
+ const stepB = new StitchStep_1.StitchStepCompute({
218
+ slug: 'step-b',
219
+ readme: null,
220
+ form: 'COMPUTE',
221
+ stitchee: 'main',
222
+ invoke: () => ({ input: null, output: 'step-b' }),
223
+ });
224
+ const repeatee = (0, asStitcherFlat_1.asStitcherFlat)((0, genStitchRoute_1.genStitchRoute)({
225
+ slug: 'route:pair',
226
+ readme: null,
227
+ sequence: [stepA, stepB],
228
+ }));
229
+ const decider = new StitchStep_1.StitchStepCompute({
230
+ slug: 'decide-again',
231
+ readme: null,
232
+ form: 'COMPUTE',
233
+ stitchee: 'judge',
234
+ invoke: () => ({ input: null, output: { choice: 'release' } }),
235
+ });
236
+ const cycle = (0, genStitchCycle_1.genStitchCycle)({
237
+ slug: 'loop-route',
238
+ readme: 'Repeats a route',
239
+ repeatee,
240
+ decider,
241
+ });
242
+ (0, test_fns_1.then)('it should merge context from both steps and decider', () => {
243
+ const valid = {
244
+ a: 1,
245
+ b: true,
246
+ d: new Date(),
247
+ log: console,
248
+ stitch: { trail: [] },
249
+ };
250
+ expect(valid);
251
+ // @ts-expect-error: missing required key `b`
252
+ const invalid = {
253
+ a: 1,
254
+ d: new Date(),
255
+ };
256
+ expect(invalid);
257
+ });
258
+ (0, test_fns_1.then)('it should infer the output type from the repeatee route', () => {
259
+ const val = 'step-a';
260
+ expect(val);
261
+ // @ts-expect-error: number is not assignable
262
+ const invalid = 42;
263
+ expect(invalid);
264
+ });
265
+ });
151
266
  });
152
267
  //# sourceMappingURL=genStitchCycle.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"genStitchCycle.test.js","sourceRoot":"","sources":["../../../../src/logic/weave/compose/genStitchCycle.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genStitchCycle.test.js","sourceRoot":"","sources":["../../../../src/logic/weave/compose/genStitchCycle.test.ts"],"names":[],"mappings":"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"}
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.1.0",
5
+ "version": "1.2.0",
6
6
  "repository": "ehmpathy/rhachet",
7
7
  "homepage": "https://github.com/ehmpathy/rhachet",
8
8
  "keywords": [
@@ -49,11 +49,15 @@
49
49
  "@ehmpathy/uni-time": "1.8.1",
50
50
  "as-procedure": "1.1.6",
51
51
  "domain-objects": "0.25.2",
52
+ "flattie": "1.1.1",
52
53
  "helpful-errors": "1.3.8",
53
54
  "openai": "5.8.2",
55
+ "rhachet-artifact": "1.0.0",
56
+ "rhachet-artifact-git": "1.0.1",
57
+ "serde-fns": "1.3.0",
54
58
  "test-fns": "1.5.0",
55
59
  "type-fns": "1.19.0",
56
- "uuid-fns": "1.0.0"
60
+ "uuid-fns": "1.0.1"
57
61
  },
58
62
  "devDependencies": {
59
63
  "@commitlint/cli": "19.3.0",
@@ -65,8 +69,8 @@
65
69
  "@typescript-eslint/parser": "7.8.0",
66
70
  "core-js": "3.26.1",
67
71
  "cz-conventional-changelog": "3.3.0",
68
- "declapract": "0.10.3",
69
- "declapract-typescript-ehmpathy": "0.19.1",
72
+ "declapract": "0.12.2",
73
+ "declapract-typescript-ehmpathy": "0.39.9",
70
74
  "depcheck": "1.4.3",
71
75
  "eslint": "8.56.0",
72
76
  "eslint-config-airbnb-typescript": "18.0.0",