rhachet-roles-bhrain 0.2.0 → 0.3.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 (130) hide show
  1. package/dist/.test/getContextOpenAI.js +1 -1
  2. package/dist/.test/getContextOpenAI.js.map +1 -1
  3. package/dist/domain.operations/review/compileReviewPrompt.d.ts +22 -0
  4. package/dist/domain.operations/review/compileReviewPrompt.js +95 -0
  5. package/dist/domain.operations/review/compileReviewPrompt.js.map +1 -0
  6. package/dist/domain.operations/review/enumFilesFromDiffs.d.ts +8 -0
  7. package/dist/domain.operations/review/enumFilesFromDiffs.js +74 -0
  8. package/dist/domain.operations/review/enumFilesFromDiffs.js.map +1 -0
  9. package/dist/domain.operations/review/enumFilesFromGlob.d.ts +8 -0
  10. package/dist/domain.operations/review/enumFilesFromGlob.js +31 -0
  11. package/dist/domain.operations/review/enumFilesFromGlob.js.map +1 -0
  12. package/dist/domain.operations/review/estimateTokenCount.d.ts +9 -0
  13. package/dist/domain.operations/review/estimateTokenCount.js +20 -0
  14. package/dist/domain.operations/review/estimateTokenCount.js.map +1 -0
  15. package/dist/domain.operations/review/formatReviewOutput.d.ts +14 -0
  16. package/dist/domain.operations/review/formatReviewOutput.js +42 -0
  17. package/dist/domain.operations/review/formatReviewOutput.js.map +1 -0
  18. package/dist/domain.operations/review/genTokenBreakdownMarkdown.d.ts +19 -0
  19. package/dist/domain.operations/review/genTokenBreakdownMarkdown.js +110 -0
  20. package/dist/domain.operations/review/genTokenBreakdownMarkdown.js.map +1 -0
  21. package/dist/domain.operations/review/genTokenBreakdownReport.d.ts +24 -0
  22. package/dist/domain.operations/review/genTokenBreakdownReport.js +64 -0
  23. package/dist/domain.operations/review/genTokenBreakdownReport.js.map +1 -0
  24. package/dist/domain.operations/review/invokeClaudeCode.d.ts +22 -0
  25. package/dist/domain.operations/review/invokeClaudeCode.js +92 -0
  26. package/dist/domain.operations/review/invokeClaudeCode.js.map +1 -0
  27. package/dist/domain.operations/review/writeInputArtifacts.d.ts +27 -0
  28. package/dist/domain.operations/review/writeInputArtifacts.js +50 -0
  29. package/dist/domain.operations/review/writeInputArtifacts.js.map +1 -0
  30. package/dist/domain.operations/review/writeOutputArtifacts.d.ts +12 -0
  31. package/dist/domain.operations/review/writeOutputArtifacts.js +46 -0
  32. package/dist/domain.operations/review/writeOutputArtifacts.js.map +1 -0
  33. package/dist/roles/getRoleRegistry.js +2 -1
  34. package/dist/roles/getRoleRegistry.js.map +1 -1
  35. package/dist/roles/getRoleRegistry.readme.js +6 -0
  36. package/dist/roles/getRoleRegistry.readme.js.map +1 -1
  37. package/dist/roles/reviewer/briefs/review.tactics.md +60 -0
  38. package/dist/roles/reviewer/getReviewerRole.d.ts +6 -0
  39. package/dist/roles/reviewer/getReviewerRole.js +80 -0
  40. package/dist/roles/reviewer/getReviewerRole.js.map +1 -0
  41. package/dist/roles/reviewer/skills/review/review.d.ts +57 -0
  42. package/dist/roles/reviewer/skills/review/review.js +445 -0
  43. package/dist/roles/reviewer/skills/review/review.js.map +1 -0
  44. package/dist/roles/reviewer/skills/review/review.sh +21 -0
  45. package/dist/roles/reviewer/skills/review/review.ts +575 -0
  46. package/dist/roles/thinker/getThinkerRole.js +1 -1
  47. package/dist/roles/thinker/getThinkerRole.js.map +1 -1
  48. package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19..i1.via_chatgpt.md +47 -0
  49. package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19.i2.via_rhachet.md +60 -0
  50. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.md +62 -0
  51. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.with_feedback.md +89 -0
  52. package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i2.md +47 -0
  53. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i1.md +44 -0
  54. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i2.md +63 -0
  55. package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i3.md +51 -0
  56. package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i1.md +62 -0
  57. package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i2.md +49 -0
  58. package/dist/roles/thinker/skills/brief.articulate/.readme.md +0 -0
  59. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js +1 -1
  60. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js.map +1 -1
  61. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.ts +168 -0
  62. package/dist/roles/thinker/skills/brief.articulate/stepArticulate.ts +157 -0
  63. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i1.md +93 -0
  64. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i2.md +84 -0
  65. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i1.no_focus_context.md +8 -0
  66. package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i2.md +54 -0
  67. package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i1.md +62 -0
  68. package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i2.md +64 -0
  69. package/dist/roles/thinker/skills/brief.catalogize/.readme.md +5 -0
  70. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js +1 -1
  71. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js.map +1 -1
  72. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts +173 -0
  73. package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.ts +132 -0
  74. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i4.md +3 -0
  75. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i5.md +3 -0
  76. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i6.md +3 -0
  77. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.md +3 -0
  78. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i1.md +52 -0
  79. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i2.md +51 -0
  80. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i3.md +47 -0
  81. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i4.md +62 -0
  82. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i5.md +47 -0
  83. package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i6.md +53 -0
  84. package/dist/roles/thinker/skills/brief.demonstrate/.readme +3 -0
  85. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js +1 -1
  86. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js.map +1 -1
  87. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.ts +190 -0
  88. package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.ts +164 -0
  89. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i1.md +72 -0
  90. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i2.md +53 -0
  91. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i3.which_objectives.md +58 -0
  92. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i5.which_personas.md +64 -0
  93. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i1.md +67 -0
  94. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i2.md +49 -0
  95. package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i3.md +59 -0
  96. package/dist/roles/thinker/skills/khue.cluster/.readme.md +0 -0
  97. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js +1 -1
  98. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js.map +1 -1
  99. package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.ts +174 -0
  100. package/dist/roles/thinker/skills/khue.cluster/stepCluster.ts +150 -0
  101. package/dist/roles/thinker/skills/khue.decompose/.readme.md +9 -0
  102. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i2.md +23 -0
  103. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i3.md +23 -0
  104. package/dist/roles/thinker/skills/khue.diverge/.demo/joke.varieties.v2025_08_17.i1.md +23 -0
  105. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i1.md +9 -0
  106. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i2.md +9 -0
  107. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i3.md +23 -0
  108. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i4.folksy.md +9 -0
  109. package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i5.folksy.md +23 -0
  110. package/dist/roles/thinker/skills/khue.diverge/.readme.md +0 -0
  111. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js +1 -1
  112. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js.map +1 -1
  113. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.ts +149 -0
  114. package/dist/roles/thinker/skills/khue.diverge/stepDiverge.ts +151 -0
  115. package/dist/roles/thinker/skills/khue.encompose/.readme.md +7 -0
  116. package/dist/roles/thinker/skills/khue.instantiate/.readme.md +14 -0
  117. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js +1 -1
  118. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js.map +1 -1
  119. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts +190 -0
  120. package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.ts +132 -0
  121. package/dist/roles/thinker/skills/khue.triage/.demo/laughs.v2025_08_18.i1.md +29 -0
  122. package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i1.md +86 -0
  123. package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i2.md +68 -0
  124. package/dist/roles/thinker/skills/khue.triage/.readme.md +0 -0
  125. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js +1 -1
  126. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js.map +1 -1
  127. package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.ts +174 -0
  128. package/dist/roles/thinker/skills/khue.triage/stepTriage.ts +153 -0
  129. package/package.json +7 -6
  130. package/readme.md +55 -0
@@ -0,0 +1,23 @@
1
+ [
2
+ "an individual researching and choosing a financial investment through an online brokerage platform",
3
+ "a visitor comparing neighborhoods and selecting a property on a real estate website",
4
+ "a new user learning about and setting up a smart home device using the manufacturer's mobile app",
5
+ "a fan purchasing merchandise and concert tickets through a band’s fan club portal",
6
+ "a hobbyist engaging with a community forum to share projects and seek advice",
7
+ "an entrepreneur submitting a business idea for evaluation via a startup accelerator program",
8
+ "a shopper browsing fashion trends and creating a personalized outfit on a clothing retailer's site",
9
+ "a parent managing school-related activities and communication through a virtual learning environment",
10
+ "a fitness enthusiast scheduling and tracking workouts with a mobile fitness application",
11
+ "a traveler planning and booking a multi-stop vacation using a travel aggregator",
12
+ "a patient exploring healthcare options and scheduling appointments through a telehealth service",
13
+ "a subscriber exploring exclusive content and engaging with creators on a streaming platform",
14
+ "a gamer unlocking achievements and in-game rewards while progressing through a video game",
15
+ "a researcher accessing databases and compiling data for academic work via a university portal",
16
+ "a team collaborating and tracking project tasks using a productivity software suite",
17
+ "a donor contributing to multiple causes and managing donations through a charitable giving platform",
18
+ "a job seeker applying and interviewing for positions via an employment website",
19
+ "an artist sharing portfolio works and engaging with followers on social media",
20
+ "a writer drafting and publishing posts using a blogging platform's features",
21
+ "a subscriber managing subscriptions and preferences through a digital newspaper site",
22
+ "a foodie exploring recipes and meal planning with an online culinary community"
23
+ ]
@@ -0,0 +1,9 @@
1
+ [
2
+ "Starting a new job and navigating the first day at the office",
3
+ "Planning a family road trip and overcoming unexpected challenges",
4
+ "Adopting a pet and integrating it into daily routines",
5
+ "Growing a home garden and experiencing the cycle of planting to harvest",
6
+ "Cooking a family dinner and managing mishaps in the kitchen",
7
+ "Learning to ride a bicycle and gaining independence as a child",
8
+ "Adjusting to using a new smartphone and discovering its features"
9
+ ]
@@ -0,0 +1,23 @@
1
+ [
2
+ "A customer's morning routine as they use their smartwatch to track steps.",
3
+ "A parent navigating a grocery store app to build their weekly shopping list.",
4
+ "A student using an online learning platform to complete daily algebra exercises.",
5
+ "A road tripper planning a route with a digital map for scenic stops.",
6
+ "A cafe regular pre-ordering their daily coffee through a mobile app.",
7
+ "A new pet owner researching breed-specific care tips on a vet's website.",
8
+ "A gardener logging plant growth in a digital garden journal app.",
9
+ "A home cook using a meal kit service website to pick new recipes.",
10
+ "A fitness enthusiast booking classes and tracking goals in a workout app.",
11
+ "A commuter reading news headlines on their phone while on the train.",
12
+ "A yoga practitioner following an online video series for daily sessions.",
13
+ "A traveler using a language app daily to build vocabulary before a trip.",
14
+ "A DIY enthusiast following step-by-step guides on a home improvement site.",
15
+ "An influencer planning photo shoots and posting schedules with a content calendar app.",
16
+ "An event organizer sending out e-invites and tracking RSVPs through an event app.",
17
+ "A babysitter logging hours and generating invoices via a babysitting service app.",
18
+ "A book lover cataloging and reviewing recent reads in a book community app.",
19
+ "A small business owner managing orders and inventory via an online platform.",
20
+ "A high school student organizing study schedules and assignment deadlines in a planner app.",
21
+ "A music lover exploring new playlists and artists on a streaming service.",
22
+ "An environmentalist tracking local wildlife sightings with a citizen science app."
23
+ ]
@@ -93,7 +93,7 @@ exports.SKILL_DIVERGE = (0, rhachet_1.genRoleSkill)({
93
93
  lookup: {
94
94
  apiKeyOpenai: {
95
95
  source: 'process.env',
96
- envar: 'PREP_OPENAI_KEY',
96
+ envar: 'OPENAI_API_KEY',
97
97
  desc: 'the openai key to use',
98
98
  type: 'string',
99
99
  },
@@ -1 +1 @@
1
- {"version":3,"file":"stepDiverge.skill.js","sourceRoot":"","sources":["../../../../../src/roles/thinker/skills/khue.diverge/stepDiverge.skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stepDiverge.skill.js","sourceRoot":"","sources":["../../../../../src/roles/thinker/skills/khue.diverge/stepDiverge.skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import { enrollThread, genRoleSkill } from 'rhachet';
2
+ import { genArtifactGitFile, getArtifactObsDir } from 'rhachet-artifact-git';
3
+
4
+ import { genContextLogTrail } from '@src/.test/genContextLogTrail';
5
+ import { genContextStitchTrail } from '@src/.test/genContextStitchTrail';
6
+ import { getContextOpenAI } from '@src/.test/getContextOpenAI';
7
+
8
+ import { BRIEFS_FOR_DIVERGE, loopDiverge } from './stepDiverge';
9
+
10
+ export const SKILL_DIVERGE = genRoleSkill({
11
+ slug: 'diverge',
12
+ route: loopDiverge,
13
+ threads: {
14
+ lookup: {
15
+ target: {
16
+ source: 'process.argv',
17
+ char: 't',
18
+ desc: 'the target file or dir to write against',
19
+ type: 'string',
20
+ },
21
+ goal: {
22
+ source: 'process.argv',
23
+ char: 'g',
24
+ desc: 'the goal to use; if not specified, assumes ask is goal',
25
+ type: '?string',
26
+ },
27
+ references: {
28
+ source: 'process.argv',
29
+ char: 'f',
30
+ desc: 'reference files to to use, if any; delimit with commas',
31
+ type: '?string',
32
+ },
33
+ briefs: {
34
+ source: 'process.argv',
35
+ char: 'b',
36
+ desc: 'brief files to to use, if any; delimit with commas',
37
+ type: '?string',
38
+ },
39
+ },
40
+ assess: (
41
+ input,
42
+ ): input is {
43
+ target: string;
44
+ goal: string;
45
+ references: string;
46
+ briefs: string;
47
+ ask: string;
48
+ } => typeof input.target === 'string',
49
+ instantiate: async (input: {
50
+ target: string;
51
+ goal: string;
52
+ references: string;
53
+ briefs: string;
54
+ ask: string;
55
+ }) => {
56
+ const obsDir = getArtifactObsDir({ uri: input.target });
57
+ const artifacts = {
58
+ goal: await (async () => {
59
+ if (input.goal)
60
+ return genArtifactGitFile(
61
+ { uri: input.goal },
62
+ { access: 'readonly' },
63
+ );
64
+
65
+ const art = genArtifactGitFile(
66
+ { uri: obsDir + '.goal.md' },
67
+ { versions: true },
68
+ );
69
+ await art.set({ content: input.ask });
70
+ return art;
71
+ })(),
72
+ feedback: genArtifactGitFile(
73
+ { uri: obsDir + '.feedback.md' },
74
+ { versions: true },
75
+ ),
76
+ 'focus.context': genArtifactGitFile(
77
+ { uri: obsDir + '.focus.context.md' },
78
+ { versions: true },
79
+ ),
80
+ 'focus.concept': genArtifactGitFile(
81
+ { uri: input.target },
82
+ { versions: true },
83
+ ),
84
+ references:
85
+ input.references
86
+ ?.split(',')
87
+ .filter((uri) => !!uri)
88
+ .map((reference) =>
89
+ genArtifactGitFile({ uri: reference }, { access: 'readonly' }),
90
+ ) ?? [],
91
+ briefs:
92
+ input.briefs
93
+ ?.split(',')
94
+ .filter((uri) => !!uri)
95
+ .map((brief) =>
96
+ genArtifactGitFile({ uri: brief }, { access: 'readonly' }),
97
+ ) ?? [],
98
+ };
99
+
100
+ return {
101
+ caller: await enrollThread({
102
+ role: 'caller',
103
+ stash: {
104
+ ask: input.ask,
105
+ art: {
106
+ 'foci.goal.concept': artifacts.goal,
107
+ 'foci.goal.context': artifacts.goal, // todo: compile their context
108
+ feedback: artifacts.feedback,
109
+ },
110
+ refs: artifacts.references,
111
+ },
112
+ }),
113
+ thinker: await enrollThread({
114
+ role: 'thinker',
115
+ stash: {
116
+ art: {
117
+ 'focus.context': artifacts['focus.context'],
118
+ 'focus.concept': artifacts['focus.concept'],
119
+ },
120
+ briefs: [
121
+ ...artifacts.briefs,
122
+ ...BRIEFS_FOR_DIVERGE, // flow the diverge briefs down so that <ponder> has them in context too; this approach does cause duplicate briefs for diverge, but thats no biggie
123
+ ],
124
+ },
125
+ }),
126
+ };
127
+ },
128
+ },
129
+ context: {
130
+ lookup: {
131
+ apiKeyOpenai: {
132
+ source: 'process.env',
133
+ envar: 'OPENAI_API_KEY',
134
+ desc: 'the openai key to use',
135
+ type: 'string',
136
+ },
137
+ },
138
+ assess: (input): input is { apiKeyOpenai: string } =>
139
+ typeof input.apiKeyOpenai === 'string',
140
+ instantiate: () => {
141
+ return {
142
+ ...getContextOpenAI(),
143
+ ...genContextLogTrail(),
144
+ ...genContextStitchTrail(),
145
+ };
146
+ },
147
+ },
148
+ readme: '',
149
+ });
@@ -0,0 +1,151 @@
1
+ import { UnexpectedCodePathError } from 'helpful-errors';
2
+ import {
3
+ asStitcherFlat,
4
+ type GStitcher,
5
+ genStepImagineViaTemplate,
6
+ genStitchRoute,
7
+ genTemplate,
8
+ getTemplateValFromArtifacts,
9
+ getTemplateVarsFromRoleInherit,
10
+ type RoleContext,
11
+ type Threads,
12
+ } from 'rhachet';
13
+ import type { Artifact } from 'rhachet-artifact';
14
+ import type { GitFile } from 'rhachet-artifact-git';
15
+ import { withRetry, withTimeout } from 'wrapper-fns';
16
+
17
+ import type { Focus } from '@src/_topublish/rhachet-roles-bhrain/src/domain/objects/Focus';
18
+ import { type ContextOpenAI, sdkOpenAi } from '@src/access/sdk/sdkOpenAi';
19
+ import { genLoopFeedback } from '@src/domain.operations/artifact/genLoopFeedback';
20
+ import { genStepArtSet } from '@src/domain.operations/artifact/genStepArtSet';
21
+ import { getThinkerBriefs } from '@src/roles/thinker/getThinkerBrief';
22
+
23
+ // exported so that we can pass them through to <ponder> too
24
+ export const BRIEFS_FOR_DIVERGE = getThinkerBriefs([
25
+ 'trait.ocd.md',
26
+ 'cognition/cog401.questions.._.md',
27
+ 'cognition/cog000.overview.and.premise.md',
28
+ 'cognition/cog101.concept.treestruct._.md',
29
+ 'cognition/cog201.cortal.focus.p1.definition.md',
30
+ 'cognition/cog301.traversal.1.motion.primitives._.md',
31
+ 'cognition/cog401.questions.._.md',
32
+ 'cognition/cog401.questions.2.1.primitives.rough._.md',
33
+ 'librarian.tactics/<articulate>._.[article].frame.cognitive.md', // todo: keep or remove
34
+ 'librarian.tactics/<articulate>._.[article].frame.tactical.md',
35
+ 'cognition/cog201.cortal.focus.p2.breadth.md',
36
+ 'cognition/cog301.traversal.1.motion.primitives.breadth.md',
37
+ 'cognition/cog301.traversal.1.motion.primitives.breadth.vary.md',
38
+ 'thinker.tactics/<diverge>._.[article].frame.tactical.md',
39
+ 'librarian.tactics/[brief].verbiage.outline.over.narrative.md',
40
+ ]);
41
+
42
+ type StitcherDesired = GStitcher<
43
+ Threads<{
44
+ caller: RoleContext<
45
+ 'caller',
46
+ {
47
+ ask: string;
48
+ art: {
49
+ feedback: Artifact<typeof GitFile>;
50
+ 'foci.goal.concept': Focus['concept'];
51
+ 'foci.goal.context': Focus['context'];
52
+ };
53
+ refs: Artifact<typeof GitFile>[];
54
+ }
55
+ >;
56
+ thinker: RoleContext<
57
+ 'thinker',
58
+ {
59
+ art: {
60
+ 'focus.concept': Focus['concept'];
61
+ 'focus.context': Focus['context'];
62
+ };
63
+ briefs: Artifact<typeof GitFile>[];
64
+ }
65
+ >;
66
+ }>,
67
+ ContextOpenAI & GStitcher['context'],
68
+ { content: string }
69
+ >;
70
+
71
+ const template = genTemplate<StitcherDesired['threads']>({
72
+ ref: { uri: __filename.replace('.ts', '.template.md') },
73
+ getVariables: async ({ threads }) => ({
74
+ ...(await getTemplateVarsFromRoleInherit({ thread: threads.thinker })),
75
+
76
+ guide: {
77
+ goal:
78
+ (await threads.caller.context.stash.art['foci.goal.concept'].get())
79
+ ?.content ||
80
+ UnexpectedCodePathError.throw('goal not declared', {
81
+ art: threads.caller.context.stash.art['foci.goal.concept'],
82
+ }),
83
+ feedback:
84
+ (await threads.caller.context.stash.art.feedback.get())?.content || '',
85
+ },
86
+
87
+ focus: {
88
+ context:
89
+ (await threads.thinker.context.stash.art['focus.context'].get())
90
+ ?.content ||
91
+ (await threads.caller.context.stash.art['foci.goal.context'].get()) // fallback to @[caller].focus[goal].context
92
+ ?.content ||
93
+ '',
94
+ concept:
95
+ (await threads.thinker.context.stash.art['focus.concept'].get())
96
+ ?.content || '',
97
+ },
98
+
99
+ // todo: clarify to callers that foci.goal.concept is used as the [seed][question]; todo: distinguish guide.goal as focus.supergoal, seed.question as subgoal focus
100
+ seed: {
101
+ question:
102
+ (await threads.caller.context.stash.art['foci.goal.concept'].get())
103
+ ?.content ||
104
+ UnexpectedCodePathError.throw('goal not declared', {
105
+ art: threads.caller.context.stash.art['foci.goal.concept'],
106
+ }),
107
+ },
108
+
109
+ skill: {
110
+ briefs: await getTemplateValFromArtifacts({
111
+ artifacts: [
112
+ ...BRIEFS_FOR_DIVERGE,
113
+ ...threads.thinker.context.stash.briefs,
114
+ ],
115
+ }),
116
+ },
117
+
118
+ references: await getTemplateValFromArtifacts({
119
+ artifacts: threads.caller.context.stash.refs,
120
+ }),
121
+ }),
122
+ });
123
+
124
+ const stepImagine = genStepImagineViaTemplate<StitcherDesired>({
125
+ slug: '@[thinker]<diverge>',
126
+ stitchee: 'thinker',
127
+ readme: '',
128
+ template,
129
+ imagine: withRetry(
130
+ withTimeout(sdkOpenAi.imagine, { threshold: { seconds: 60 } }), // allow up to 60 sec, for longer files
131
+ ),
132
+ });
133
+
134
+ const stepPersist = genStepArtSet({
135
+ stitchee: 'thinker',
136
+ artee: 'focus.concept',
137
+ });
138
+
139
+ export const stepDiverge = asStitcherFlat<StitcherDesired>(
140
+ genStitchRoute({
141
+ slug: '@[thinker]<diverge>',
142
+ readme: '@[thinker]<diverge> -> [article]',
143
+ sequence: [stepImagine, stepPersist],
144
+ }),
145
+ );
146
+
147
+ export const loopDiverge = genLoopFeedback({
148
+ stitchee: 'thinker',
149
+ artee: 'focus.concept',
150
+ repeatee: stepDiverge,
151
+ });
@@ -0,0 +1,7 @@
1
+ encompose = compose from many parts into a whole
2
+
3
+ purpose = take many concepts and unify them
4
+
5
+
6
+ e.g.,
7
+ - <encompose>[[goal]] -> [plan]
@@ -0,0 +1,14 @@
1
+ instantiate some concept
2
+
3
+ see knowledge briefs for context on what <instantiate> means in the context of [[knowledge]]
4
+
5
+ ---
6
+
7
+ its a khue mechanism, since khues are best used to direct the instantiation
8
+
9
+ ---
10
+
11
+ note,
12
+ - you can extend this skill via the `.briefs` and `.refs` inputs
13
+ - through this, this becomes a reusable, extensible, and composable skill that can be leveraged in any more specific skill that requires the instantiation of some concept
14
+
@@ -117,7 +117,7 @@ exports.SKILL_INSTANTIATE = (0, rhachet_1.genRoleSkill)({
117
117
  lookup: {
118
118
  apiKeyOpenai: {
119
119
  source: 'process.env',
120
- envar: 'PREP_OPENAI_KEY',
120
+ envar: 'OPENAI_API_KEY',
121
121
  desc: 'the openai key to use',
122
122
  type: 'string',
123
123
  },
@@ -1 +1 @@
1
- {"version":3,"file":"stepInstantiate.skill.js","sourceRoot":"","sources":["../../../../../src/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AACjC,qCAAqD;AACrD,+DAA6E;AAE7E,sEAAmE;AACnE,4EAAyE;AACzE,kEAA+D;AAC/D,yFAAsF;AAEtF,uDAAoD;AAEvC,QAAA,iBAAiB,GAAG,IAAA,sBAAY,EAAC;IAC5C,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,iCAAe;IACtB,OAAO,EAAE;QACP,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,kCAAkC;gBACxC,IAAI,EAAE,QAAQ;aACf;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,yBAAyB;gBAC/B,IAAI,EAAE,SAAS;aAChB;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,wDAAwD;gBAC9D,IAAI,EAAE,SAAS;aAChB;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,oDAAoD;gBAC1D,IAAI,EAAE,SAAS;aAChB;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,qGAAqG;gBAC3G,IAAI,EAAE,SAAS;aAChB;SACF;QACD,MAAM,EAAE,CACN,KAAK,EAQL,EAAE,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QACrC,WAAW,EAAE,KAAK,EAAE,KAOnB,EAAE,EAAE;YACH,gDAAgD;YAChD,MAAM,MAAM,GAAG,IAAA,wCAAiB,EAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG;gBAChB,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAA,yCAAkB,EACzB,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB,EAAE,EACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;oBACD,OAAO,EAAE,IAAA,yCAAkB,EACzB,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB,EAAE,EACpC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;iBACF;gBACD,QAAQ,EAAE,IAAA,yCAAkB,EAC1B,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,EAChC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;gBACD,eAAe,EAAE,IAAA,yCAAkB,EACjC,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,EAAE,EACrC,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;gBACD,eAAe,EAAE,IAAA,yCAAkB,EACjC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,EACrB,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB;gBACD,UAAU,EAAE,CACV,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,UAAU;oBACd,EAAE,KAAK,CAAC,GAAG,CAAC;qBACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;qBACtB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAA,gBAAI,EAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CACrD,CACF;qBACE,IAAI,EAAE;qBACN,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACjB,IAAA,yCAAkB,EAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/D;gBACH,MAAM,EACJ,KAAK,CAAC,MAAM;oBACV,EAAE,KAAK,CAAC,GAAG,CAAC;qBACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;qBACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,IAAA,yCAAkB,EAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC3D,IAAI,EAAE;aACZ,CAAC;YAEF,gCAAgC;YAChC,MAAM,WAAW,GAAW,MAAM,CAAC,KAAK,IAAI,EAAE;gBAC5C,qCAAqC;gBACrC,IAAI,KAAK,CAAC,IAAI;oBACZ,OAAO,CACL,CACE,MAAM,IAAA,yCAAkB,EACtB,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EACnB,EAAE,MAAM,EAAE,UAAU,EAAE,CACvB,CAAC,GAAG,EAAE,CACR,EAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CACxB,CAAC;gBAEJ,gCAAgC;gBAChC,OAAO,KAAK,CAAC,GAAG,CAAC;YACnB,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAE3D,sCAAsC;YACtC,MAAM,IAAA,qCAAiB,EAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,kCAAkC;YAE5G,2EAA2E;YAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC;YACrD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,SAAS,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CACT,2BAA2B,SAAS,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAChE,CAAC;gBACF,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,MAAM,IAAA,sBAAY,EAAC;oBACzB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE;wBACL,GAAG,EAAE,EAAE;wBACP,GAAG,EAAE;4BACH,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO;4BAC3C,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO;4BAC3C,QAAQ,EAAE,SAAS,CAAC,QAAQ;yBAC7B;wBACD,IAAI,EAAE,SAAS,CAAC,UAAU;qBAC3B;iBACF,CAAC;gBACF,OAAO,EAAE,MAAM,IAAA,sBAAY,EAAC;oBAC1B,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE;wBACL,GAAG,EAAE;4BACH,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC;4BAC3C,eAAe,EAAE,SAAS,CAAC,eAAe,CAAC;yBAC5C;wBACD,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;qBAC9B;iBACF,CAAC;aACH,CAAC;QACJ,CAAC;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,QAAQ;aACf;SACF;QACD,MAAM,EAAE,CAAC,KAAK,EAAqC,EAAE,CACnD,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;QACxC,WAAW,EAAE,GAAG,EAAE;YAChB,OAAO;gBACL,GAAG,IAAA,mCAAgB,GAAE;gBACrB,GAAG,IAAA,uCAAkB,GAAE;gBACvB,GAAG,IAAA,6CAAqB,GAAE;aAC3B,CAAC;QACJ,CAAC;KACF;IACD,MAAM,EAAE,EAAE;CACX,CAAC,CAAC"}
1
+ {"version":3,"file":"stepInstantiate.skill.js","sourceRoot":"","sources":["../../../../../src/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ import { glob } from 'fast-glob';
2
+ import { enrollThread, genRoleSkill } from 'rhachet';
3
+ import { genArtifactGitFile, getArtifactObsDir } from 'rhachet-artifact-git';
4
+
5
+ import { genContextLogTrail } from '@src/.test/genContextLogTrail';
6
+ import { genContextStitchTrail } from '@src/.test/genContextStitchTrail';
7
+ import { getContextOpenAI } from '@src/.test/getContextOpenAI';
8
+ import { setSkillOutputSrc } from '@src/domain.operations/artifact/setSkillOutputSrc';
9
+
10
+ import { loopInstantiate } from './stepInstantiate';
11
+
12
+ export const SKILL_INSTANTIATE = genRoleSkill({
13
+ slug: 'instantiate',
14
+ route: loopInstantiate,
15
+ threads: {
16
+ lookup: {
17
+ output: {
18
+ source: 'process.argv',
19
+ char: 'o',
20
+ desc: 'the output file to write against',
21
+ type: 'string',
22
+ },
23
+ goal: {
24
+ source: 'process.argv',
25
+ char: 'g',
26
+ desc: 'the goal of the request',
27
+ type: '?string',
28
+ },
29
+ references: {
30
+ source: 'process.argv',
31
+ char: 'f',
32
+ desc: 'reference files to to use, if any; delimit with commas',
33
+ type: '?string',
34
+ },
35
+ briefs: {
36
+ source: 'process.argv',
37
+ char: 'b',
38
+ desc: 'brief files to to use, if any; delimit with commas',
39
+ type: '?string',
40
+ },
41
+ fresh: {
42
+ source: 'process.argv',
43
+ char: 'z',
44
+ desc: 'whether to start with a --fresh state; use it to remove prior instances before execution; yes = yes',
45
+ type: '?string',
46
+ },
47
+ },
48
+ assess: (
49
+ input,
50
+ ): input is {
51
+ output: string;
52
+ goal: string;
53
+ references: string;
54
+ briefs: string;
55
+ ask: string;
56
+ fresh?: string;
57
+ } => typeof input.output === 'string',
58
+ instantiate: async (input: {
59
+ output: string;
60
+ goal: string;
61
+ references: string;
62
+ briefs: string;
63
+ ask: string;
64
+ fresh?: string;
65
+ }) => {
66
+ // declare where all the artifacts will be found
67
+ const obsDir = getArtifactObsDir({ uri: input.output });
68
+ const artifacts = {
69
+ goal: {
70
+ concept: genArtifactGitFile(
71
+ { uri: obsDir + '.goal.concept.md' },
72
+ { versions: true },
73
+ ),
74
+ context: genArtifactGitFile(
75
+ { uri: obsDir + '.goal.context.md' },
76
+ { versions: true },
77
+ ),
78
+ },
79
+ feedback: genArtifactGitFile(
80
+ { uri: obsDir + '.feedback.md' },
81
+ { versions: true },
82
+ ),
83
+ 'focus.context': genArtifactGitFile(
84
+ { uri: obsDir + '.focus.context.md' },
85
+ { versions: true },
86
+ ),
87
+ 'focus.concept': genArtifactGitFile(
88
+ { uri: input.output },
89
+ { versions: true },
90
+ ),
91
+ references: (
92
+ await Promise.all(
93
+ input.references
94
+ ?.split(',')
95
+ .filter((uri) => !!uri)
96
+ .map(async (pattern) => await glob(pattern)) ?? [], // support glob references
97
+ )
98
+ )
99
+ .flat()
100
+ .map((reference) =>
101
+ genArtifactGitFile({ uri: reference }, { access: 'readonly' }),
102
+ ),
103
+ briefs:
104
+ input.briefs
105
+ ?.split(',')
106
+ .filter((uri) => !!uri)
107
+ .map((brief) =>
108
+ genArtifactGitFile({ uri: brief }, { access: 'readonly' }),
109
+ ) ?? [],
110
+ };
111
+
112
+ // detect the goal of the caller
113
+ const goalConcept: string = await (async () => {
114
+ // if goal explicitly defined, use it
115
+ if (input.goal)
116
+ return (
117
+ (
118
+ await genArtifactGitFile(
119
+ { uri: input.goal },
120
+ { access: 'readonly' },
121
+ ).get()
122
+ )?.content ?? input.ask
123
+ );
124
+
125
+ // otherwise, assume its the ask
126
+ return input.ask;
127
+ })();
128
+ await artifacts.goal.concept.set({ content: goalConcept });
129
+
130
+ // add an src file for historic record
131
+ await setSkillOutputSrc({ skillUri: 'bhrain.instantiate', opts: input }); // todo: get skillUri from context
132
+
133
+ // if we were asked to start fresh, then delete the thinker's focus concept
134
+ const enfresh = input.fresh?.toLowerCase() === 'yes';
135
+ if (enfresh) {
136
+ await artifacts['focus.context'].del();
137
+ console.log();
138
+ console.log(
139
+ `🧽 fresh start. deleted ${artifacts['focus.context'].ref.uri}`,
140
+ );
141
+ console.log();
142
+ }
143
+
144
+ return {
145
+ caller: await enrollThread({
146
+ role: 'caller',
147
+ stash: {
148
+ ask: '',
149
+ art: {
150
+ 'foci.goal.concept': artifacts.goal.concept,
151
+ 'foci.goal.context': artifacts.goal.context,
152
+ feedback: artifacts.feedback,
153
+ },
154
+ refs: artifacts.references,
155
+ },
156
+ }),
157
+ thinker: await enrollThread({
158
+ role: 'thinker',
159
+ stash: {
160
+ art: {
161
+ 'focus.context': artifacts['focus.context'],
162
+ 'focus.concept': artifacts['focus.concept'],
163
+ },
164
+ briefs: [...artifacts.briefs],
165
+ },
166
+ }),
167
+ };
168
+ },
169
+ },
170
+ context: {
171
+ lookup: {
172
+ apiKeyOpenai: {
173
+ source: 'process.env',
174
+ envar: 'OPENAI_API_KEY',
175
+ desc: 'the openai key to use',
176
+ type: 'string',
177
+ },
178
+ },
179
+ assess: (input): input is { apiKeyOpenai: string } =>
180
+ typeof input.apiKeyOpenai === 'string',
181
+ instantiate: () => {
182
+ return {
183
+ ...getContextOpenAI(),
184
+ ...genContextLogTrail(),
185
+ ...genContextStitchTrail(),
186
+ };
187
+ },
188
+ },
189
+ readme: '',
190
+ });