rhachet 1.2.0 → 1.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/bin/run +4 -0
- package/dist/.test/directory.js.map +1 -0
- package/dist/.test/genContextLogTrail.js.map +1 -0
- package/dist/.test/genContextStitchTrail.js.map +1 -0
- package/dist/.test/getContextOpenAI.js.map +1 -0
- package/dist/.test/stitchers/genStitcherCodeFileRead.js.map +1 -0
- package/dist/.test/stitchers/genStitcherCodeFileWrite.js.map +1 -0
- package/dist/.test/stitchers/genStitcherCodeReviewImagine.js.map +1 -0
- package/dist/.test/stitchers/stitcherCodeDiffImagine.js.map +1 -0
- package/dist/.test/stitchers/stitcherFanoutRandomSum.js.map +1 -0
- package/dist/.test/stitchers/stitcherFanoutSubroutes.js.map +1 -0
- package/dist/{__test_assets__ → .test}/threads/codeArtist.js +1 -1
- package/dist/.test/threads/codeArtist.js.map +1 -0
- package/dist/{__test_assets__ → .test}/threads/codeCritic.js +1 -1
- package/dist/.test/threads/codeCritic.js.map +1 -0
- package/dist/.test/threads/director.js.map +1 -0
- package/dist/_topublish/file-fns/src/getFile.js.map +1 -0
- package/dist/contract/cli/.test/example.echoRegistry.d.ts +2 -0
- package/dist/contract/cli/.test/example.echoRegistry.js +54 -0
- package/dist/contract/cli/.test/example.echoRegistry.js.map +1 -0
- package/dist/contract/cli/invoke.d.ts +12 -0
- package/dist/contract/cli/invoke.integration.test.d.ts +1 -0
- package/dist/contract/cli/invoke.integration.test.js +38 -0
- package/dist/contract/cli/invoke.integration.test.js.map +1 -0
- package/dist/contract/cli/invoke.js +88 -0
- package/dist/contract/cli/invoke.js.map +1 -0
- package/dist/contract/cli/invokeAsk.d.ts +10 -0
- package/dist/contract/cli/invokeAsk.integration.test.d.ts +1 -0
- package/dist/contract/cli/invokeAsk.integration.test.js +41 -0
- package/dist/contract/cli/invokeAsk.integration.test.js.map +1 -0
- package/dist/contract/cli/invokeAsk.js +78 -0
- package/dist/contract/cli/invokeAsk.js.map +1 -0
- package/dist/contract/cli/invokeList.d.ts +10 -0
- package/dist/contract/cli/invokeList.js +48 -0
- package/dist/contract/cli/invokeList.js.map +1 -0
- package/dist/contract/cli/invokeReadme.d.ts +15 -0
- package/dist/contract/cli/invokeReadme.integration.test.d.ts +1 -0
- package/dist/contract/cli/invokeReadme.integration.test.js +62 -0
- package/dist/contract/cli/invokeReadme.integration.test.js.map +1 -0
- package/dist/contract/cli/invokeReadme.js +72 -0
- package/dist/contract/cli/invokeReadme.js.map +1 -0
- package/dist/domain/objects/index.d.ts +7 -0
- package/dist/domain/objects/index.js +7 -0
- package/dist/domain/objects/index.js.map +1 -1
- package/dist/logic/invoke/assureFindRole.d.ts +10 -0
- package/dist/logic/invoke/assureFindRole.js +22 -0
- package/dist/logic/invoke/assureFindRole.js.map +1 -0
- package/dist/logic/invoke/assureUniqueRoles.d.ts +5 -0
- package/dist/logic/invoke/assureUniqueRoles.js +19 -0
- package/dist/logic/invoke/assureUniqueRoles.js.map +1 -0
- package/dist/logic/invoke/getSkillContext.d.ts +17 -0
- package/dist/logic/invoke/getSkillContext.js +44 -0
- package/dist/logic/invoke/getSkillContext.js.map +1 -0
- package/dist/logic/invoke/getSkillContext.test.d.ts +1 -0
- package/dist/logic/invoke/getSkillContext.test.js +85 -0
- package/dist/logic/invoke/getSkillContext.test.js.map +1 -0
- package/dist/logic/invoke/getSkillThread.test.d.ts +1 -0
- package/dist/logic/invoke/getSkillThread.test.js +115 -0
- package/dist/logic/invoke/getSkillThread.test.js.map +1 -0
- package/dist/logic/invoke/getSkillThreads.d.ts +16 -0
- package/dist/logic/invoke/getSkillThreads.js +46 -0
- package/dist/logic/invoke/getSkillThreads.js.map +1 -0
- package/dist/logic/stitch/enstitch.test.js +2 -2
- package/dist/logic/stitch/enstitch.test.js.map +1 -1
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.js +3 -3
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.js.map +1 -1
- package/dist/logic/template/genStepImagineViaTemplate.test.js +2 -2
- package/dist/logic/template/genStepImagineViaTemplate.test.js.map +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js +2 -2
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js.map +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js +2 -2
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js.map +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js +2 -2
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js.map +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js +2 -2
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js.map +1 -1
- package/dist/logic/weave/compose/genStitchCycle.test.js +2 -2
- package/dist/logic/weave/compose/genStitchCycle.test.js.map +1 -1
- package/dist/logic/weave/compose/genStitchFanout.test.js +2 -2
- package/dist/logic/weave/compose/genStitchFanout.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneChoice.test.js +2 -2
- package/dist/logic/weave/enweaveOneChoice.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneCycle.test.js +2 -2
- package/dist/logic/weave/enweaveOneCycle.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneFanout.integration.test.js +6 -6
- package/dist/logic/weave/enweaveOneFanout.integration.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneRoute.integration.test.js +6 -6
- package/dist/logic/weave/enweaveOneRoute.integration.test.js.map +1 -1
- package/dist/logic/weave/enweaveOneStitcher.integration.test.js +10 -10
- package/dist/logic/weave/enweaveOneStitcher.integration.test.js.map +1 -1
- package/package.json +7 -1
- package/dist/__nonpublished_modules__/file-fns/src/getFile.js.map +0 -1
- package/dist/__test_assets__/directory.js.map +0 -1
- package/dist/__test_assets__/genContextLogTrail.js.map +0 -1
- package/dist/__test_assets__/genContextStitchTrail.js.map +0 -1
- package/dist/__test_assets__/getContextOpenAI.js.map +0 -1
- package/dist/__test_assets__/stitchers/genStitcherCodeFileRead.js.map +0 -1
- package/dist/__test_assets__/stitchers/genStitcherCodeFileWrite.js.map +0 -1
- package/dist/__test_assets__/stitchers/genStitcherCodeReviewImagine.js.map +0 -1
- package/dist/__test_assets__/stitchers/stitcherCodeDiffImagine.js.map +0 -1
- package/dist/__test_assets__/stitchers/stitcherFanoutRandomSum.js.map +0 -1
- package/dist/__test_assets__/stitchers/stitcherFanoutSubroutes.js.map +0 -1
- package/dist/__test_assets__/threads/codeArtist.js.map +0 -1
- package/dist/__test_assets__/threads/codeCritic.js.map +0 -1
- package/dist/__test_assets__/threads/director.js.map +0 -1
- /package/dist/{__test_assets__ → .test}/directory.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/directory.js +0 -0
- /package/dist/{__test_assets__ → .test}/genContextLogTrail.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/genContextLogTrail.js +0 -0
- /package/dist/{__test_assets__ → .test}/genContextStitchTrail.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/genContextStitchTrail.js +0 -0
- /package/dist/{__test_assets__ → .test}/getContextOpenAI.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/getContextOpenAI.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileRead.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileRead.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileWrite.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeFileWrite.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeReviewImagine.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/genStitcherCodeReviewImagine.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherCodeDiffImagine.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherCodeDiffImagine.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutRandomSum.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutRandomSum.js +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutSubroutes.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/stitchers/stitcherFanoutSubroutes.js +0 -0
- /package/dist/{__test_assets__ → .test}/threads/codeArtist.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/threads/codeCritic.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/threads/director.d.ts +0 -0
- /package/dist/{__test_assets__ → .test}/threads/director.js +0 -0
- /package/dist/{__nonpublished_modules__ → _topublish}/file-fns/src/getFile.d.ts +0 -0
- /package/dist/{__nonpublished_modules__ → _topublish}/file-fns/src/getFile.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invokeReadme.integration.test.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeReadme.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.indentLines = exports.invokeReadme = void 0;
|
|
4
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
5
|
+
const assureFindRole_1 = require("../../logic/invoke/assureFindRole");
|
|
6
|
+
/**
|
|
7
|
+
* .what = main entrypoint for `readme` CLI command
|
|
8
|
+
* .why = allows devs to introspect registry, role, or skill documentation from the CLI
|
|
9
|
+
*/
|
|
10
|
+
const invokeReadme = ({ program, registries, }) => {
|
|
11
|
+
program
|
|
12
|
+
.command('readme')
|
|
13
|
+
.description('print documentation for the registry, a role, or a skill')
|
|
14
|
+
.option('--registry <slug>', 'which registry to inspect')
|
|
15
|
+
.option('--role <slug>', 'which role to inspect')
|
|
16
|
+
.option('--skill <slug>', 'which skill to inspect')
|
|
17
|
+
.action((opts) => {
|
|
18
|
+
// no inputs provided
|
|
19
|
+
if (!opts.registry && !opts.role)
|
|
20
|
+
helpful_errors_1.BadRequestError.throw('must provide --registry or --role');
|
|
21
|
+
// resolve registry
|
|
22
|
+
const registry = opts.registry
|
|
23
|
+
? registries.find((r) => r.slug === opts.registry)
|
|
24
|
+
: null;
|
|
25
|
+
if (!opts.role) {
|
|
26
|
+
if (!registry)
|
|
27
|
+
helpful_errors_1.BadRequestError.throw(`no registry matches given options`);
|
|
28
|
+
// registry level readme
|
|
29
|
+
return printReadme(`${registry.slug}`, registry.readme);
|
|
30
|
+
}
|
|
31
|
+
// resolve role
|
|
32
|
+
const role = (0, assureFindRole_1.assureFindRole)({ registries, slug: opts.role });
|
|
33
|
+
if (!role)
|
|
34
|
+
helpful_errors_1.BadRequestError.throw(`no role named "${opts.role}" in configured registries`, {
|
|
35
|
+
registries: registries.map((thisRegistry) => thisRegistry.slug),
|
|
36
|
+
});
|
|
37
|
+
// role-level readme
|
|
38
|
+
if (!opts.skill)
|
|
39
|
+
return printReadme(`${role.slug}`, role.readme);
|
|
40
|
+
// resolve skill
|
|
41
|
+
const skill = role.skills.find((s) => s.slug === opts.skill);
|
|
42
|
+
if (!skill)
|
|
43
|
+
helpful_errors_1.BadRequestError.throw(`no skill "${opts.skill}" in role "${opts.role}"`, { skills: role.skills.map((thisSkill) => thisSkill.slug) });
|
|
44
|
+
// skill-level readme
|
|
45
|
+
return printReadme(`${role.slug}.${skill.slug}`, skill.readme);
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
exports.invokeReadme = invokeReadme;
|
|
49
|
+
/**
|
|
50
|
+
* .what = logs a formatted markdown readme block with label
|
|
51
|
+
* .why = standardizes output for registry/role/skill readmes in CLI
|
|
52
|
+
*/
|
|
53
|
+
const printReadme = (slug, markdown) => {
|
|
54
|
+
console.log('');
|
|
55
|
+
console.log(`📜 ${slug}.readme`);
|
|
56
|
+
console.log('');
|
|
57
|
+
console.log((0, exports.indentLines)(markdown));
|
|
58
|
+
console.log('');
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* .what = indents each line of a string by a fixed number of spaces
|
|
62
|
+
* .why = ensures markdown blocks are consistently readable in nested output
|
|
63
|
+
*/
|
|
64
|
+
const indentLines = (text, spaces = 4) => {
|
|
65
|
+
const prefix = ' '.repeat(spaces);
|
|
66
|
+
return text
|
|
67
|
+
.split('\n')
|
|
68
|
+
.map((line) => `${prefix}${line}`)
|
|
69
|
+
.join('\n');
|
|
70
|
+
};
|
|
71
|
+
exports.indentLines = indentLines;
|
|
72
|
+
//# sourceMappingURL=invokeReadme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invokeReadme.js","sourceRoot":"","sources":["../../../src/contract/cli/invokeReadme.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,3 +9,10 @@ export * from './StitchStep';
|
|
|
9
9
|
export * from './StitchTrail';
|
|
10
10
|
export * from './Thread';
|
|
11
11
|
export * from './Threads';
|
|
12
|
+
export * from './Role';
|
|
13
|
+
export * from './RoleContext';
|
|
14
|
+
export * from './RoleRegistry';
|
|
15
|
+
export * from './RoleSkill';
|
|
16
|
+
export * from './RoleSkillArgGetter';
|
|
17
|
+
export * from './RoleTrait';
|
|
18
|
+
export * from './Template';
|
|
@@ -27,4 +27,11 @@ __exportStar(require("./Thread"), exports);
|
|
|
27
27
|
__exportStar(require("./Threads"), exports);
|
|
28
28
|
// export * from './Weave';
|
|
29
29
|
// export * from './Weaver';
|
|
30
|
+
__exportStar(require("./Role"), exports);
|
|
31
|
+
__exportStar(require("./RoleContext"), exports);
|
|
32
|
+
__exportStar(require("./RoleRegistry"), exports);
|
|
33
|
+
__exportStar(require("./RoleSkill"), exports);
|
|
34
|
+
__exportStar(require("./RoleSkillArgGetter"), exports);
|
|
35
|
+
__exportStar(require("./RoleTrait"), exports);
|
|
36
|
+
__exportStar(require("./Template"), exports);
|
|
30
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/objects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,iDAA+B;AAC/B,gDAA8B;AAC9B,6CAA2B;AAC3B,iDAA+B;AAC/B,gDAA8B;AAC9B,mDAAiC;AACjC,+CAA6B;AAC7B,gDAA8B;AAC9B,2CAAyB;AACzB,4CAA0B;AAC1B,2BAA2B;AAC3B,4BAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/objects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,iDAA+B;AAC/B,gDAA8B;AAC9B,6CAA2B;AAC3B,iDAA+B;AAC/B,gDAA8B;AAC9B,mDAAiC;AACjC,+CAA6B;AAC7B,gDAA8B;AAC9B,2CAAyB;AACzB,4CAA0B;AAC1B,2BAA2B;AAC3B,4BAA4B;AAE5B,yCAAuB;AACvB,gDAA8B;AAC9B,iDAA+B;AAC/B,8CAA4B;AAC5B,uDAAqC;AACrC,8CAA4B;AAE5B,6CAA2B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Role } from '../../domain/objects/Role';
|
|
2
|
+
import { RoleRegistry } from '../../domain/objects/RoleRegistry';
|
|
3
|
+
/**
|
|
4
|
+
* .what = finds the first matching role across registries
|
|
5
|
+
* .why = ensures there is exactly one role match; fails if ambiguous or missing
|
|
6
|
+
*/
|
|
7
|
+
export declare const assureFindRole: ({ registries, slug, }: {
|
|
8
|
+
registries: RoleRegistry[];
|
|
9
|
+
slug: string;
|
|
10
|
+
}) => Role;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assureFindRole = void 0;
|
|
4
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
5
|
+
/**
|
|
6
|
+
* .what = finds the first matching role across registries
|
|
7
|
+
* .why = ensures there is exactly one role match; fails if ambiguous or missing
|
|
8
|
+
*/
|
|
9
|
+
const assureFindRole = ({ registries, slug, }) => {
|
|
10
|
+
const matches = registries
|
|
11
|
+
.flatMap((r) => r.roles)
|
|
12
|
+
.filter((r) => r.slug === slug);
|
|
13
|
+
if (matches.length === 0)
|
|
14
|
+
helpful_errors_1.BadRequestError.throw(`no role named "${slug}" found in any registry`, {
|
|
15
|
+
slug,
|
|
16
|
+
});
|
|
17
|
+
if (matches.length > 1)
|
|
18
|
+
helpful_errors_1.BadRequestError.throw(`multiple roles named "${slug}" found across registries`, { slug });
|
|
19
|
+
return matches[0];
|
|
20
|
+
};
|
|
21
|
+
exports.assureFindRole = assureFindRole;
|
|
22
|
+
//# sourceMappingURL=assureFindRole.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assureFindRole.js","sourceRoot":"","sources":["../../../src/logic/invoke/assureFindRole.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAKjD;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAC,EAC7B,UAAU,EACV,IAAI,GAIL,EAAQ,EAAE;IACT,MAAM,OAAO,GAAG,UAAU;SACvB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QACtB,gCAAe,CAAC,KAAK,CAAC,kBAAkB,IAAI,yBAAyB,EAAE;YACrE,IAAI;SACL,CAAC,CAAC;IACL,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QACpB,gCAAe,CAAC,KAAK,CACnB,yBAAyB,IAAI,2BAA2B,EACxD,EAAE,IAAI,EAAE,CACT,CAAC;IACJ,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;AACrB,CAAC,CAAC;AApBW,QAAA,cAAc,kBAoBzB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assureUniqueRoles = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* .what = ensure we fail fast upon duplicate role.slugs across registries
|
|
6
|
+
*/
|
|
7
|
+
const assureUniqueRoles = (registries) => {
|
|
8
|
+
const seen = new Map(); // slug → registry.slug
|
|
9
|
+
for (const registry of registries) {
|
|
10
|
+
for (const role of registry.roles) {
|
|
11
|
+
if (seen.has(role.slug)) {
|
|
12
|
+
throw new Error(`❌ duplicate role.slug "${role.slug}" found in registries: "${seen.get(role.slug)}" and "${registry.slug}"`);
|
|
13
|
+
}
|
|
14
|
+
seen.set(role.slug, registry.slug);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.assureUniqueRoles = assureUniqueRoles;
|
|
19
|
+
//# sourceMappingURL=assureUniqueRoles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assureUniqueRoles.js","sourceRoot":"","sources":["../../../src/logic/invoke/assureUniqueRoles.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,UAA0B,EAAQ,EAAE;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,uBAAuB;IAC/D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,0BACE,IAAI,CAAC,IACP,2BAA2B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAC5C,QAAQ,CAAC,IACX,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,iBAAiB,qBAgB5B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PickOne } from 'type-fns';
|
|
2
|
+
import { RoleSkillContextGetter } from '../../domain/objects/RoleSkillArgGetter';
|
|
3
|
+
/**
|
|
4
|
+
* .what = hydrates skill context using either passin or lookup mode
|
|
5
|
+
* .why =
|
|
6
|
+
* - supports flexible skill execution via CLI, tests, or runtime composition
|
|
7
|
+
* - ensures all required env inputs are present and valid
|
|
8
|
+
*/
|
|
9
|
+
export declare const getSkillContext: <TOutput extends import("simple-log-methods").ContextLogTrail & import("../stitch/withStitchTrail").ContextStitchTrail, TVars extends Record<string, any>>(input: {
|
|
10
|
+
getter: RoleSkillContextGetter<TOutput, TVars>;
|
|
11
|
+
from: PickOne<{
|
|
12
|
+
passin: TVars;
|
|
13
|
+
lookup: {
|
|
14
|
+
env: Record<string, string | undefined>;
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
17
|
+
}) => Promise<TOutput>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSkillContext = void 0;
|
|
4
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
5
|
+
/**
|
|
6
|
+
* .what = hydrates skill context using either passin or lookup mode
|
|
7
|
+
* .why =
|
|
8
|
+
* - supports flexible skill execution via CLI, tests, or runtime composition
|
|
9
|
+
* - ensures all required env inputs are present and valid
|
|
10
|
+
*/
|
|
11
|
+
const getSkillContext = async (input) => {
|
|
12
|
+
const { getter, from } = input;
|
|
13
|
+
// support passin mode: directly provided context vars
|
|
14
|
+
if ('passin' in from) {
|
|
15
|
+
if (!getter.assess(from.passin)) {
|
|
16
|
+
helpful_errors_1.BadRequestError.throw('from.passin was assessed to have incorrect shape', {
|
|
17
|
+
from,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return await getter.instantiate(from.passin);
|
|
21
|
+
}
|
|
22
|
+
// support lookup mode: pull from env vars
|
|
23
|
+
if ('lookup' in from) {
|
|
24
|
+
const env = from.lookup.env;
|
|
25
|
+
const collected = {};
|
|
26
|
+
for (const [key, spec] of Object.entries(getter.lookup)) {
|
|
27
|
+
const val = env[spec.envar];
|
|
28
|
+
if (val === undefined) {
|
|
29
|
+
helpful_errors_1.BadRequestError.throw(`missing required env var ${spec.envar}`, {
|
|
30
|
+
key,
|
|
31
|
+
spec,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
collected[key] = val;
|
|
35
|
+
}
|
|
36
|
+
if (!getter.assess(collected))
|
|
37
|
+
helpful_errors_1.UnexpectedCodePathError.throw('from.lookup -> collected was assessed to have incorrect shape. this should not be possible', { from: { env: true }, collected: Object.keys(collected) });
|
|
38
|
+
return await getter.instantiate(collected);
|
|
39
|
+
}
|
|
40
|
+
// 🛑 should be unreachable (guard for future extension)
|
|
41
|
+
throw new helpful_errors_1.UnexpectedCodePathError('unsupported context.from', { input });
|
|
42
|
+
};
|
|
43
|
+
exports.getSkillContext = getSkillContext;
|
|
44
|
+
//# sourceMappingURL=getSkillContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSkillContext.js","sourceRoot":"","sources":["../../../src/logic/invoke/getSkillContext.ts"],"names":[],"mappings":";;;AAAA,mDAA0E;AAM1E;;;;;GAKG;AACI,MAAM,eAAe,GAAG,KAAK,EAGlC,KAMD,EAAoB,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE/B,sDAAsD;IACtD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,gCAAe,CAAC,KAAK,CACnB,kDAAkD,EAClD;gBACE,IAAI;aACL,CACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,0CAA0C;IAC1C,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAC5B,MAAM,SAAS,GAA2B,EAAE,CAAC;QAE7C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,gCAAe,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,KAAK,EAAE,EAAE;oBAC9D,GAAG;oBACH,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAC3B,wCAAuB,CAAC,KAAK,CAC3B,4FAA4F,EAC5F,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAC3D,CAAC;QAEJ,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,wDAAwD;IACxD,MAAM,IAAI,wCAAuB,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AApDW,QAAA,eAAe,mBAoD1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
4
|
+
const test_fns_1 = require("test-fns");
|
|
5
|
+
const objects_1 = require("../../domain/objects");
|
|
6
|
+
const getSkillContext_1 = require("./getSkillContext");
|
|
7
|
+
const getterExample = objects_1.RoleSkillContextGetter.build({
|
|
8
|
+
lookup: {
|
|
9
|
+
openaiApiKey: {
|
|
10
|
+
source: 'process.env',
|
|
11
|
+
desc: 'your OpenAI key',
|
|
12
|
+
envar: 'OPENAI_API_KEY',
|
|
13
|
+
type: 'string',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
assess: (input) => typeof input?.openaiApiKey === 'string',
|
|
17
|
+
instantiate: (input) => ({
|
|
18
|
+
key: input.openaiApiKey,
|
|
19
|
+
}),
|
|
20
|
+
});
|
|
21
|
+
describe('getSkillContext', () => {
|
|
22
|
+
(0, test_fns_1.given)('a valid context getter requiring OPENAI_API_KEY', () => {
|
|
23
|
+
const getter = getterExample.clone();
|
|
24
|
+
(0, test_fns_1.when)('called with passin: { openaiApiKey: "sk-abc" }', () => {
|
|
25
|
+
(0, test_fns_1.then)('it should return the expected context', async () => {
|
|
26
|
+
const result = await (0, getSkillContext_1.getSkillContext)({
|
|
27
|
+
getter,
|
|
28
|
+
from: { passin: { openaiApiKey: 'sk-abc' } },
|
|
29
|
+
});
|
|
30
|
+
expect(result).toEqual({ key: 'sk-abc' });
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
(0, test_fns_1.when)('called with passin: { wrongKey: "oops" }', () => {
|
|
34
|
+
(0, test_fns_1.then)('it should throw BadRequestError', async () => {
|
|
35
|
+
const error = await (0, test_fns_1.getError)(async () => (0, getSkillContext_1.getSkillContext)({
|
|
36
|
+
getter,
|
|
37
|
+
from: { passin: { wrongKey: 'oops' } },
|
|
38
|
+
}));
|
|
39
|
+
expect(error).toBeInstanceOf(helpful_errors_1.BadRequestError);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
(0, test_fns_1.when)('called with env: { OPENAI_API_KEY: "sk-env" }', () => {
|
|
43
|
+
(0, test_fns_1.then)('it should return the expected context', async () => {
|
|
44
|
+
const result = await (0, getSkillContext_1.getSkillContext)({
|
|
45
|
+
getter,
|
|
46
|
+
from: { lookup: { env: { OPENAI_API_KEY: 'sk-env' } } },
|
|
47
|
+
});
|
|
48
|
+
expect(result).toEqual({ key: 'sk-env' });
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
(0, test_fns_1.when)('called with env: {} (missing key)', () => {
|
|
52
|
+
(0, test_fns_1.then)('it should throw BadRequestError', async () => {
|
|
53
|
+
const error = await (0, test_fns_1.getError)(async () => (0, getSkillContext_1.getSkillContext)({
|
|
54
|
+
getter,
|
|
55
|
+
from: { lookup: { env: {} } },
|
|
56
|
+
}));
|
|
57
|
+
expect(error).toBeInstanceOf(helpful_errors_1.BadRequestError);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
(0, test_fns_1.given)('a rejecting getter that fails all assess checks', () => {
|
|
62
|
+
const getter = getterExample.clone({
|
|
63
|
+
assess: (() => false),
|
|
64
|
+
});
|
|
65
|
+
(0, test_fns_1.when)('called with env: { OPENAI_API_KEY: "sk-reject" }', () => {
|
|
66
|
+
(0, test_fns_1.then)('it should throw UnexpectedCodePathError', async () => {
|
|
67
|
+
const error = await (0, test_fns_1.getError)(async () => (0, getSkillContext_1.getSkillContext)({
|
|
68
|
+
getter,
|
|
69
|
+
from: { lookup: { env: { OPENAI_API_KEY: 'sk-reject' } } },
|
|
70
|
+
}));
|
|
71
|
+
expect(error).toBeInstanceOf(helpful_errors_1.UnexpectedCodePathError);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
(0, test_fns_1.when)('called with passin: { openaiApiKey: "sk-reject" }', () => {
|
|
75
|
+
(0, test_fns_1.then)('it should throw BadRequestError', async () => {
|
|
76
|
+
const error = await (0, test_fns_1.getError)(async () => (0, getSkillContext_1.getSkillContext)({
|
|
77
|
+
getter,
|
|
78
|
+
from: { passin: { openaiApiKey: 'sk-reject' } },
|
|
79
|
+
}));
|
|
80
|
+
expect(error).toBeInstanceOf(helpful_errors_1.BadRequestError);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=getSkillContext.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSkillContext.test.js","sourceRoot":"","sources":["../../../src/logic/invoke/getSkillContext.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
4
|
+
const test_fns_1 = require("test-fns");
|
|
5
|
+
const RoleSkillArgGetter_1 = require("../../domain/objects/RoleSkillArgGetter");
|
|
6
|
+
const genThread_1 = require("../thread/genThread");
|
|
7
|
+
const getSkillThreads_1 = require("./getSkillThreads");
|
|
8
|
+
const getterExample = RoleSkillArgGetter_1.RoleSkillThreadsGetter.build({
|
|
9
|
+
lookup: {
|
|
10
|
+
target: {
|
|
11
|
+
source: 'process.argv',
|
|
12
|
+
desc: 'target file or dir',
|
|
13
|
+
char: 't',
|
|
14
|
+
type: 'string',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
assess: (input) => typeof input?.target === 'string' && typeof input?.ask === 'string',
|
|
18
|
+
instantiate: (input) => ({
|
|
19
|
+
caller: (0, genThread_1.genThread)({ role: 'caller', target: input.target }),
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
22
|
+
describe('getSkillThreads', () => {
|
|
23
|
+
(0, test_fns_1.given)('a valid threads getter for { target, ask }', () => {
|
|
24
|
+
const getter = getterExample.clone();
|
|
25
|
+
(0, test_fns_1.when)('called with passin: { target: "src/index.ts", ask: "describe" }', () => {
|
|
26
|
+
(0, test_fns_1.then)('it should return the expected caller thread', async () => {
|
|
27
|
+
const result = await (0, getSkillThreads_1.getSkillThreads)({
|
|
28
|
+
getter,
|
|
29
|
+
from: { passin: { target: 'src/index.ts', ask: 'describe' } },
|
|
30
|
+
});
|
|
31
|
+
expect(result).toEqual({
|
|
32
|
+
caller: (0, genThread_1.genThread)({ role: 'caller', target: 'src/index.ts' }),
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
(0, test_fns_1.when)('called with passin: { bad: true }', () => {
|
|
37
|
+
(0, test_fns_1.then)('it should throw BadRequestError', async () => {
|
|
38
|
+
const error = await (0, test_fns_1.getError)(() => (0, getSkillThreads_1.getSkillThreads)({
|
|
39
|
+
getter,
|
|
40
|
+
from: { passin: { bad: true } },
|
|
41
|
+
}));
|
|
42
|
+
expect(error).toBeInstanceOf(helpful_errors_1.BadRequestError);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
(0, test_fns_1.when)('called with argv: { target: "src/main.ts", ask: "go now" }', () => {
|
|
46
|
+
(0, test_fns_1.then)('it should return the expected caller thread', async () => {
|
|
47
|
+
const result = await (0, getSkillThreads_1.getSkillThreads)({
|
|
48
|
+
getter,
|
|
49
|
+
from: { lookup: { argv: { target: 'src/main.ts', ask: 'go now' } } },
|
|
50
|
+
});
|
|
51
|
+
expect(result).toEqual({
|
|
52
|
+
caller: (0, genThread_1.genThread)({ role: 'caller', target: 'src/main.ts' }),
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
(0, test_fns_1.when)('called with argv: { t: "src/main.ts", ask: "run this" }', () => {
|
|
57
|
+
(0, test_fns_1.then)('it should return the expected caller thread', async () => {
|
|
58
|
+
const result = await (0, getSkillThreads_1.getSkillThreads)({
|
|
59
|
+
getter,
|
|
60
|
+
from: { lookup: { argv: { t: 'src/main.ts', ask: 'run this' } } },
|
|
61
|
+
});
|
|
62
|
+
expect(result).toEqual({
|
|
63
|
+
caller: (0, genThread_1.genThread)({ role: 'caller', target: 'src/main.ts' }),
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
(0, test_fns_1.when)('called with argv: { ask: "missing target" }', () => {
|
|
68
|
+
(0, test_fns_1.then)('it should throw BadRequestError for missing target', async () => {
|
|
69
|
+
const error = await (0, test_fns_1.getError)(() => (0, getSkillThreads_1.getSkillThreads)({
|
|
70
|
+
getter,
|
|
71
|
+
from: { lookup: { argv: { ask: 'missing target' } } },
|
|
72
|
+
}));
|
|
73
|
+
expect(error).toBeInstanceOf(helpful_errors_1.BadRequestError);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
(0, test_fns_1.when)('called with argv: { target: "src/x.ts" } (missing ask)', () => {
|
|
77
|
+
(0, test_fns_1.then)('it should throw BadRequestError for missing ask', async () => {
|
|
78
|
+
const error = await (0, test_fns_1.getError)(() => (0, getSkillThreads_1.getSkillThreads)({
|
|
79
|
+
getter,
|
|
80
|
+
from: { lookup: { argv: { target: 'src/x.ts' } } },
|
|
81
|
+
}));
|
|
82
|
+
expect(error).toBeInstanceOf(helpful_errors_1.BadRequestError);
|
|
83
|
+
expect(error.message).toMatch(/missing.*ask/i);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
(0, test_fns_1.given)('a rejecting getter that fails all assess checks', () => {
|
|
88
|
+
const getter = getterExample.clone({
|
|
89
|
+
assess: (() => false),
|
|
90
|
+
});
|
|
91
|
+
(0, test_fns_1.when)('called with argv: { target: "src/any.ts", ask: "still fails" }', () => {
|
|
92
|
+
(0, test_fns_1.then)('it should throw UnexpectedCodePathError', async () => {
|
|
93
|
+
const error = await (0, test_fns_1.getError)(() => (0, getSkillThreads_1.getSkillThreads)({
|
|
94
|
+
getter,
|
|
95
|
+
from: {
|
|
96
|
+
lookup: {
|
|
97
|
+
argv: { target: 'src/any.ts', ask: 'still fails' },
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
}));
|
|
101
|
+
expect(error).toBeInstanceOf(helpful_errors_1.UnexpectedCodePathError);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
(0, test_fns_1.when)('called with passin: { target: "src/any.ts", ask: "bad input" }', () => {
|
|
105
|
+
(0, test_fns_1.then)('it should throw BadRequestError', async () => {
|
|
106
|
+
const error = await (0, test_fns_1.getError)(() => (0, getSkillThreads_1.getSkillThreads)({
|
|
107
|
+
getter,
|
|
108
|
+
from: { passin: { target: 'src/any.ts', ask: 'bad input' } },
|
|
109
|
+
}));
|
|
110
|
+
expect(error).toBeInstanceOf(helpful_errors_1.BadRequestError);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=getSkillThread.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSkillThread.test.js","sourceRoot":"","sources":["../../../src/logic/invoke/getSkillThread.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PickOne } from 'type-fns';
|
|
2
|
+
import { Threads } from '../../domain/objects';
|
|
3
|
+
import { RoleSkillThreadsGetter } from '../../domain/objects/RoleSkillArgGetter';
|
|
4
|
+
/**
|
|
5
|
+
* .what = hydrates skill threads using either passin or lookup mode
|
|
6
|
+
* .why = enables flexible runtime use from CLI or direct invocation
|
|
7
|
+
*/
|
|
8
|
+
export declare const getSkillThreads: <TOutput extends Threads<any>, TVars extends Record<string, any>>(input: {
|
|
9
|
+
getter: RoleSkillThreadsGetter<TOutput, TVars>;
|
|
10
|
+
from: PickOne<{
|
|
11
|
+
passin: TVars;
|
|
12
|
+
lookup: {
|
|
13
|
+
argv: Record<string, string>;
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
16
|
+
}) => Promise<TOutput>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSkillThreads = void 0;
|
|
4
|
+
const helpful_errors_1 = require("helpful-errors");
|
|
5
|
+
/**
|
|
6
|
+
* .what = hydrates skill threads using either passin or lookup mode
|
|
7
|
+
* .why = enables flexible runtime use from CLI or direct invocation
|
|
8
|
+
*/
|
|
9
|
+
const getSkillThreads = async (input) => {
|
|
10
|
+
const { getter, from } = input;
|
|
11
|
+
// support passin mode
|
|
12
|
+
if ('passin' in from) {
|
|
13
|
+
if (!getter.assess(from.passin))
|
|
14
|
+
helpful_errors_1.BadRequestError.throw('from.passin was assessed to have incorrect shape', { from });
|
|
15
|
+
return await getter.instantiate(from.passin);
|
|
16
|
+
}
|
|
17
|
+
// support lookup mode
|
|
18
|
+
if ('lookup' in from) {
|
|
19
|
+
const argv = from.lookup.argv;
|
|
20
|
+
// verify that ask was provided; its always required by default
|
|
21
|
+
const ask = argv.ask;
|
|
22
|
+
if (!ask)
|
|
23
|
+
helpful_errors_1.BadRequestError.throw('missing required argument: --ask', { argv });
|
|
24
|
+
// instantiate the collected input set
|
|
25
|
+
const collected = { ask };
|
|
26
|
+
// grab all the requested ones
|
|
27
|
+
for (const [key, spec] of Object.entries(getter.lookup)) {
|
|
28
|
+
const val = argv[key] ?? (spec.char ? argv[spec.char] : undefined);
|
|
29
|
+
if (val === undefined) {
|
|
30
|
+
helpful_errors_1.BadRequestError.throw(`missing required arg --${key} (-${spec.char})`, {
|
|
31
|
+
key,
|
|
32
|
+
spec,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
collected[key] = val;
|
|
36
|
+
}
|
|
37
|
+
// verify they look right
|
|
38
|
+
if (!getter.assess(collected))
|
|
39
|
+
helpful_errors_1.UnexpectedCodePathError.throw('from.lookup -> collected was assessed to have incorrect shape. this should not be possible', { from, collected });
|
|
40
|
+
// instantiate
|
|
41
|
+
return await getter.instantiate(collected);
|
|
42
|
+
}
|
|
43
|
+
throw new helpful_errors_1.UnexpectedCodePathError('unsupported lookup.from', { input });
|
|
44
|
+
};
|
|
45
|
+
exports.getSkillThreads = getSkillThreads;
|
|
46
|
+
//# sourceMappingURL=getSkillThreads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSkillThreads.js","sourceRoot":"","sources":["../../../src/logic/invoke/getSkillThreads.ts"],"names":[],"mappings":";;;AAAA,mDAA0E;AAM1E;;;GAGG;AACI,MAAM,eAAe,GAAG,KAAK,EAGlC,KAMD,EAAoB,EAAE;IACrB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE/B,sBAAsB;IACtB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7B,gCAAe,CAAC,KAAK,CACnB,kDAAkD,EAClD,EAAE,IAAI,EAAE,CACT,CAAC;QACJ,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,sBAAsB;IACtB,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,+DAA+D;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,GAAG;YACN,gCAAe,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,sCAAsC;QACtC,MAAM,SAAS,GAA2B,EAAE,GAAG,EAAE,CAAC;QAElD,8BAA8B;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,gCAAe,CAAC,KAAK,CAAC,0BAA0B,GAAG,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE;oBACrE,GAAG;oBACH,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACvB,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAC3B,wCAAuB,CAAC,KAAK,CAC3B,4FAA4F,EAC5F,EAAE,IAAI,EAAE,SAAS,EAAE,CACpB,CAAC;QAEJ,cAAc;QACd,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,IAAI,wCAAuB,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC,CAAC;AA1DW,QAAA,eAAe,mBA0D1B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const test_fns_1 = require("test-fns");
|
|
4
|
-
const genContextLogTrail_1 = require("
|
|
5
|
-
const genContextStitchTrail_1 = require("
|
|
4
|
+
const genContextLogTrail_1 = require("../../.test/genContextLogTrail");
|
|
5
|
+
const genContextStitchTrail_1 = require("../../.test/genContextStitchTrail");
|
|
6
6
|
const StitchStep_1 = require("../../domain/objects/StitchStep");
|
|
7
7
|
const Thread_1 = require("../../domain/objects/Thread");
|
|
8
8
|
const enstitch_1 = require("./enstitch");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enstitch.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/enstitch.test.ts"],"names":[],"mappings":";;AAAA,uCAA6C;AAG7C,
|
|
1
|
+
{"version":3,"file":"enstitch.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/enstitch.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const uni_time_1 = require("@ehmpathy/uni-time");
|
|
4
4
|
const test_fns_1 = require("test-fns");
|
|
5
|
-
const genContextLogTrail_1 = require("
|
|
6
|
-
const genContextStitchTrail_1 = require("
|
|
7
|
-
const getContextOpenAI_1 = require("
|
|
5
|
+
const genContextLogTrail_1 = require("../../.test/genContextLogTrail");
|
|
6
|
+
const genContextStitchTrail_1 = require("../../.test/genContextStitchTrail");
|
|
7
|
+
const getContextOpenAI_1 = require("../../.test/getContextOpenAI");
|
|
8
8
|
const StitchStep_1 = require("../../domain/objects/StitchStep");
|
|
9
9
|
const Thread_1 = require("../../domain/objects/Thread");
|
|
10
10
|
const imagineViaOpenAI_1 = require("./adapters/imagineViaOpenAI");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invokeImagineStitcher.integration.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.integration.test.ts"],"names":[],"mappings":";;AAAA,iDAAoD;AACpD,uCAA6C;AAE7C,
|
|
1
|
+
{"version":3,"file":"invokeImagineStitcher.integration.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.integration.test.ts"],"names":[],"mappings":";;AAAA,iDAAoD;AACpD,uCAA6C;AAE7C,uEAAoE;AACpE,6EAA0E;AAC1E,mEAAgE;AAEhE,gEAAoE;AAEpE,wDAAqD;AAErD,kEAA8E;AAC9E,yCAAsC;AAEtC,IAAI,CAAC,UAAU,CAAC,IAAA,yBAAc,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhD,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,gBAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG;YACd,GAAG,IAAA,uCAAkB,GAAE;YACvB,GAAG,IAAA,6CAAqB,GAAE;YAC1B,GAAG,IAAA,mCAAgB,GAAE;SACtB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,8BAAiB,CAMpC;YACA,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,cAAc;YACpB,MAAM,EACJ,4EAA4E;YAC9E,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACxB;gBACE,uCAAuC;gBACvC,oBAAoB;gBACpB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5C,EAAE;gBACF,qBAAqB;gBACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM;gBAC5C,EAAE;gBACF,uCAAuC;aACxC,CAAC,IAAI,CAAC,IAAI,CAAC;YACd,OAAO,EAAE,mCAAgB;YACzB,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtC,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,QAAQ;aAChB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG;;;;;;;;;;;;KAYf,CAAC,IAAI,EAAE,CAAC;QAET,IAAA,eAAI,EAAC,0BAA0B,EAAE,GAAG,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;gBACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,EAAE,EAAE;gBACjD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAiB,CAAC;aAC5D,CAAC,CAAC;YAEH,IAAA,eAAI,EAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;gBAC7C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,mBAAQ,EACxC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EACzC,OAAO,CACR,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE3B,2BAA2B;gBAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAEhD,kCAAkC;gBAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAC5C,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAC3B,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,eAAI,EAAC,oBAAoB,EAAE,GAAG,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;gBACxB,OAAO,EAAE;oBACP,IAAI,EAAE,QAAiB;oBACvB,OAAO,EAAE;wBACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAsED,CAAC,IAAI,EAAE;wBACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BX;wBACW,0JAA0J;qBAC3J;iBACF;gBACD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAiB,CAAC;aAC5D,CAAC,CAAC;YACH,IAAA,eAAI,EAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;gBACjE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,mBAAQ,EACxC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EACzC,OAAO,CACR,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE3B,2BAA2B;gBAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBAElD,kCAAkC;gBAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAC5C,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAC3B,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|