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.
- package/dist/.test/getContextOpenAI.js +1 -1
- package/dist/.test/getContextOpenAI.js.map +1 -1
- package/dist/domain.operations/review/compileReviewPrompt.d.ts +22 -0
- package/dist/domain.operations/review/compileReviewPrompt.js +95 -0
- package/dist/domain.operations/review/compileReviewPrompt.js.map +1 -0
- package/dist/domain.operations/review/enumFilesFromDiffs.d.ts +8 -0
- package/dist/domain.operations/review/enumFilesFromDiffs.js +74 -0
- package/dist/domain.operations/review/enumFilesFromDiffs.js.map +1 -0
- package/dist/domain.operations/review/enumFilesFromGlob.d.ts +8 -0
- package/dist/domain.operations/review/enumFilesFromGlob.js +31 -0
- package/dist/domain.operations/review/enumFilesFromGlob.js.map +1 -0
- package/dist/domain.operations/review/estimateTokenCount.d.ts +9 -0
- package/dist/domain.operations/review/estimateTokenCount.js +20 -0
- package/dist/domain.operations/review/estimateTokenCount.js.map +1 -0
- package/dist/domain.operations/review/formatReviewOutput.d.ts +14 -0
- package/dist/domain.operations/review/formatReviewOutput.js +42 -0
- package/dist/domain.operations/review/formatReviewOutput.js.map +1 -0
- package/dist/domain.operations/review/genTokenBreakdownMarkdown.d.ts +19 -0
- package/dist/domain.operations/review/genTokenBreakdownMarkdown.js +110 -0
- package/dist/domain.operations/review/genTokenBreakdownMarkdown.js.map +1 -0
- package/dist/domain.operations/review/genTokenBreakdownReport.d.ts +24 -0
- package/dist/domain.operations/review/genTokenBreakdownReport.js +64 -0
- package/dist/domain.operations/review/genTokenBreakdownReport.js.map +1 -0
- package/dist/domain.operations/review/invokeClaudeCode.d.ts +22 -0
- package/dist/domain.operations/review/invokeClaudeCode.js +92 -0
- package/dist/domain.operations/review/invokeClaudeCode.js.map +1 -0
- package/dist/domain.operations/review/writeInputArtifacts.d.ts +27 -0
- package/dist/domain.operations/review/writeInputArtifacts.js +50 -0
- package/dist/domain.operations/review/writeInputArtifacts.js.map +1 -0
- package/dist/domain.operations/review/writeOutputArtifacts.d.ts +12 -0
- package/dist/domain.operations/review/writeOutputArtifacts.js +46 -0
- package/dist/domain.operations/review/writeOutputArtifacts.js.map +1 -0
- package/dist/roles/getRoleRegistry.js +2 -1
- package/dist/roles/getRoleRegistry.js.map +1 -1
- package/dist/roles/getRoleRegistry.readme.js +6 -0
- package/dist/roles/getRoleRegistry.readme.js.map +1 -1
- package/dist/roles/reviewer/briefs/review.tactics.md +60 -0
- package/dist/roles/reviewer/getReviewerRole.d.ts +6 -0
- package/dist/roles/reviewer/getReviewerRole.js +80 -0
- package/dist/roles/reviewer/getReviewerRole.js.map +1 -0
- package/dist/roles/reviewer/skills/review/review.d.ts +57 -0
- package/dist/roles/reviewer/skills/review/review.js +445 -0
- package/dist/roles/reviewer/skills/review/review.js.map +1 -0
- package/dist/roles/reviewer/skills/review/review.sh +21 -0
- package/dist/roles/reviewer/skills/review/review.ts +575 -0
- package/dist/roles/thinker/getThinkerRole.js +1 -1
- package/dist/roles/thinker/getThinkerRole.js.map +1 -1
- package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19..i1.via_chatgpt.md +47 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/article.vision.v2025_08_19.i2.via_rhachet.md +60 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.md +62 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i1.with_feedback.md +89 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/diverge.v2025_08_17.i2.md +47 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i1.md +44 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i2.md +63 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/joke.v2025_08_15.i3.md +51 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i1.md +62 -0
- package/dist/roles/thinker/skills/brief.articulate/.demo/user-journey.v2025_08_17.i2.md +49 -0
- package/dist/roles/thinker/skills/brief.articulate/.readme.md +0 -0
- package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js +1 -1
- package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.js.map +1 -1
- package/dist/roles/thinker/skills/brief.articulate/stepArticulate.skill.ts +168 -0
- package/dist/roles/thinker/skills/brief.articulate/stepArticulate.ts +157 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i1.md +93 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_08_28.i2.md +84 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i1.no_focus_context.md +8 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/joke.types.v2025_09_28.i2.md +54 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i1.md +62 -0
- package/dist/roles/thinker/skills/brief.catalogize/.demo/persona.usecases.v2025_08_28.i2.md +64 -0
- package/dist/roles/thinker/skills/brief.catalogize/.readme.md +5 -0
- package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js +1 -1
- package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.js.map +1 -1
- package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.skill.ts +173 -0
- package/dist/roles/thinker/skills/brief.catalogize/stepCatalogize.ts +132 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i4.md +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i5.md +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.i6.md +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.input.example.md +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i1.md +52 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i2.md +51 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i3.md +47 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i4.md +62 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i5.md +47 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.demo/user.journey.roadtrip.v2025_08_27.i6.md +53 -0
- package/dist/roles/thinker/skills/brief.demonstrate/.readme +3 -0
- package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js +1 -1
- package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.js.map +1 -1
- package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.skill.ts +190 -0
- package/dist/roles/thinker/skills/brief.demonstrate/stepDemonstrate.ts +164 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i1.md +72 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i2.md +53 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i3.which_objectives.md +58 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input1.cluster.v2025_08_17.i5.which_personas.md +64 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i1.md +67 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i2.md +49 -0
- package/dist/roles/thinker/skills/khue.cluster/.demo/user.journeys.input2.cluster.v2025_08_17.i3.md +59 -0
- package/dist/roles/thinker/skills/khue.cluster/.readme.md +0 -0
- package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js +1 -1
- package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.js.map +1 -1
- package/dist/roles/thinker/skills/khue.cluster/stepCluster.skill.ts +174 -0
- package/dist/roles/thinker/skills/khue.cluster/stepCluster.ts +150 -0
- package/dist/roles/thinker/skills/khue.decompose/.readme.md +9 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i2.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/joke.examples.v2025_08_17.i3.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/joke.varieties.v2025_08_17.i1.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i1.md +9 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i2.md +9 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i3.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i4.folksy.md +9 -0
- package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i5.folksy.md +23 -0
- package/dist/roles/thinker/skills/khue.diverge/.readme.md +0 -0
- package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js +1 -1
- package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.js.map +1 -1
- package/dist/roles/thinker/skills/khue.diverge/stepDiverge.skill.ts +149 -0
- package/dist/roles/thinker/skills/khue.diverge/stepDiverge.ts +151 -0
- package/dist/roles/thinker/skills/khue.encompose/.readme.md +7 -0
- package/dist/roles/thinker/skills/khue.instantiate/.readme.md +14 -0
- package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js +1 -1
- package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.js.map +1 -1
- package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts +190 -0
- package/dist/roles/thinker/skills/khue.instantiate/stepInstantiate.ts +132 -0
- package/dist/roles/thinker/skills/khue.triage/.demo/laughs.v2025_08_18.i1.md +29 -0
- package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i1.md +86 -0
- package/dist/roles/thinker/skills/khue.triage/.demo/user.journeys.v2025_08_17.i2.md +68 -0
- package/dist/roles/thinker/skills/khue.triage/.readme.md +0 -0
- package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js +1 -1
- package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.js.map +1 -1
- package/dist/roles/thinker/skills/khue.triage/stepTriage.skill.ts +174 -0
- package/dist/roles/thinker/skills/khue.triage/stepTriage.ts +153 -0
- package/package.json +7 -6
- 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
|
+
]
|
package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i4.folksy.md
ADDED
|
@@ -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
|
+
]
|
package/dist/roles/thinker/skills/khue.diverge/.demo/userjourney.examples.v2025_08_17.i5.folksy.md
ADDED
|
@@ -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
|
+
]
|
|
File without changes
|
|
@@ -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,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
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stepInstantiate.skill.js","sourceRoot":"","sources":["../../../../../src/roles/thinker/skills/khue.instantiate/stepInstantiate.skill.ts"],"names":[],"mappings":"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
|
|
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,gBAAgB;gBACvB,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"}
|
|
@@ -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
|
+
});
|