rhachet 1.12.1 → 1.12.3
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/contract/cli/invoke.js +1 -1
- package/dist/contract/cli/invoke.js.map +1 -1
- package/dist/contract/cli/invokeAsk.d.ts +3 -3
- package/dist/contract/cli/invokeBriefs.d.ts +2 -2
- package/dist/contract/cli/invokeBriefsBoot.d.ts +1 -1
- package/dist/contract/cli/invokeBriefsBoot.js +2 -2
- package/dist/contract/cli/invokeBriefsBoot.js.map +1 -1
- package/dist/contract/cli/invokeBriefsLink.d.ts +2 -2
- package/dist/contract/cli/invokeBriefsLink.js +1 -1
- package/dist/contract/cli/invokeBriefsLink.js.map +1 -1
- package/dist/contract/cli/invokeChoose.d.ts +1 -1
- package/dist/contract/cli/invokeInit.d.ts +1 -1
- package/dist/contract/cli/invokeInit.js +1 -1
- package/dist/contract/cli/invokeInit.js.map +1 -1
- package/dist/contract/cli/invokeList.d.ts +2 -2
- package/dist/contract/cli/invokeReadme.d.ts +2 -2
- package/dist/contract/cli/invokeRoles.d.ts +2 -2
- package/dist/contract/cli/invokeRolesBoot.d.ts +1 -1
- package/dist/contract/cli/invokeRolesBoot.js +2 -2
- package/dist/contract/cli/invokeRolesBoot.js.map +1 -1
- package/dist/contract/cli/invokeRolesLink.d.ts +2 -2
- package/dist/contract/cli/invokeRolesLink.js +1 -1
- package/dist/contract/cli/invokeRolesLink.js.map +1 -1
- package/dist/contract/sdk.d.ts +13 -13
- package/dist/contract/sdk.js +25 -25
- package/dist/contract/sdk.js.map +1 -1
- package/dist/domain/constants.d.ts +3 -0
- package/dist/domain/constants.js +5 -0
- package/dist/domain/constants.js.map +1 -0
- package/dist/domain/objects/InvokeHooks.d.ts +1 -1
- package/dist/domain/objects/InvokeOpts.d.ts +1 -1
- package/dist/domain/objects/Role.d.ts +2 -2
- package/dist/domain/objects/RoleContext.d.ts +1 -1
- package/dist/domain/objects/RoleSkill.d.ts +2 -2
- package/dist/domain/objects/RoleSkillArgGetter.d.ts +3 -3
- package/dist/domain/objects/RoleTrait.d.ts +2 -2
- package/dist/domain/objects/Stitch.d.ts +4 -4
- package/dist/domain/objects/Stitch.js.map +1 -1
- package/dist/domain/objects/StitchChoice.d.ts +2 -2
- package/dist/domain/objects/StitchChoice.js.map +1 -1
- package/dist/domain/objects/StitchCycle.d.ts +4 -4
- package/dist/domain/objects/StitchCycle.js.map +1 -1
- package/dist/domain/objects/StitchFanout.d.ts +4 -4
- package/dist/domain/objects/StitchFanout.js.map +1 -1
- package/dist/domain/objects/StitchRoute.d.ts +1 -1
- package/dist/domain/objects/StitchRoute.js.map +1 -1
- package/dist/domain/objects/StitchSetEvent.d.ts +3 -3
- package/dist/domain/objects/StitchStep.d.ts +3 -3
- package/dist/domain/objects/Stitcher.d.ts +9 -9
- package/dist/domain/objects/Stitcher.js.map +1 -1
- package/dist/domain/objects/Template.d.ts +2 -2
- package/dist/domain/objects/Template.js.map +1 -1
- package/dist/domain/objects/Thread.d.ts +2 -2
- package/dist/domain/objects/Threads.d.ts +2 -2
- package/dist/domain/objects/Threads.js.map +1 -1
- package/dist/domain/objects/index.d.ts +2 -2
- package/dist/domain/objects/index.js +2 -2
- package/dist/domain/objects/index.js.map +1 -1
- package/dist/logic/context/genContextStitchTrail.d.ts +1 -1
- package/dist/logic/context/genContextStitchTrail.js.map +1 -1
- package/dist/logic/invoke/assureFindRole.d.ts +2 -2
- package/dist/logic/invoke/assureUniqueRoles.d.ts +1 -1
- package/dist/logic/invoke/getInvokeHooksByOpts.d.ts +2 -2
- package/dist/logic/invoke/getRegistriesByOpts.d.ts +2 -2
- package/dist/logic/invoke/getSkillContext.d.ts +3 -3
- package/dist/logic/invoke/getSkillThreads.d.ts +4 -4
- package/dist/logic/invoke/hooks/onInvokeAskInput.d.ts +2 -2
- package/dist/logic/invoke/performInCurrentThread.d.ts +2 -2
- package/dist/logic/invoke/performInIsolatedThread.execute.d.ts +1 -1
- package/dist/logic/invoke/performInIsolatedThread.invoke.d.ts +2 -2
- package/dist/logic/invoke/performInIsolatedThread.invoke.js +3 -3
- package/dist/logic/invoke/performInIsolatedThread.invoke.js.map +1 -1
- package/dist/logic/invoke/performInIsolatedThreads.d.ts +1 -1
- package/dist/logic/role/addRoleTraits.d.ts +5 -5
- package/dist/logic/role/enrollThread.d.ts +4 -4
- package/dist/logic/role/genRoleSkill.d.ts +1 -1
- package/dist/logic/stitch/adapters/imagineViaOpenAI.d.ts +1 -1
- package/dist/logic/stitch/enstitch.d.ts +3 -3
- package/dist/logic/stitch/enstitch.js +1 -1
- package/dist/logic/stitch/enstitch.js.map +1 -1
- package/dist/logic/stitch/invokeImagineStitcher.d.ts +3 -3
- package/dist/logic/stitch/withStitchTrail.d.ts +4 -4
- package/dist/logic/stitch/withStitchTrail.js +1 -1
- package/dist/logic/stitch/withStitchTrail.js.map +1 -1
- package/dist/logic/template/genStepImagineViaTemplate.d.ts +2 -2
- package/dist/logic/template/genStepImagineViaTemplate.js.map +1 -1
- package/dist/logic/template/genTemplate.d.ts +3 -3
- package/dist/logic/template/getTemplatePathByCallerPath.d.ts +1 -1
- package/dist/logic/template/getTemplatePathByCallerPath.js +2 -2
- package/dist/logic/template/getTemplatePathByCallerPath.js.map +1 -1
- package/dist/logic/template/getTemplateValFromArtifacts.d.ts +2 -2
- package/dist/logic/template/getTemplateValFromArtifacts.js.map +1 -1
- package/dist/logic/template/getTemplateVarsFromInheritance.d.ts +1 -1
- package/dist/logic/template/useTemplate.d.ts +2 -2
- package/dist/logic/thread/getStitch.d.ts +1 -1
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.d.ts +3 -3
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.d.ts +4 -4
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.d.ts +6 -6
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.d.ts +4 -4
- package/dist/logic/weave/compose/ProcedureContextMerged.generic.d.ts +1 -1
- package/dist/logic/weave/compose/ThreadsMerged.generic.d.ts +4 -4
- package/dist/logic/weave/compose/asStitcher.d.ts +3 -3
- package/dist/logic/weave/compose/asStitcherFlat.d.ts +2 -2
- package/dist/logic/weave/compose/genStitchChoice.d.ts +3 -3
- package/dist/logic/weave/compose/genStitchCycle.d.ts +5 -5
- package/dist/logic/weave/compose/genStitchFanout.d.ts +5 -5
- package/dist/logic/weave/compose/genStitchFanout.js.map +1 -1
- package/dist/logic/weave/compose/genStitchRoute.d.ts +3 -3
- package/dist/logic/weave/compose/genStitchRoute.js.map +1 -1
- package/dist/logic/weave/enweaveOneChoice.d.ts +2 -2
- package/dist/logic/weave/enweaveOneChoice.js.map +1 -1
- package/dist/logic/weave/enweaveOneCycle.d.ts +2 -2
- package/dist/logic/weave/enweaveOneCycle.js.map +1 -1
- package/dist/logic/weave/enweaveOneFanout.d.ts +2 -2
- package/dist/logic/weave/enweaveOneFanout.js.map +1 -1
- package/dist/logic/weave/enweaveOneRoute.d.ts +2 -2
- package/dist/logic/weave/enweaveOneRoute.js.map +1 -1
- package/dist/logic/weave/enweaveOneStitcher.d.ts +2 -2
- package/dist/logic/weave/enweaveOneStitcher.js.map +1 -1
- package/license.md +21 -0
- package/package.json +38 -38
- package/dist/.test/directory.d.ts +0 -2
- package/dist/.test/directory.js +0 -6
- package/dist/.test/directory.js.map +0 -1
- package/dist/.test/example.use.repo/example.echoRegistry.d.ts +0 -2
- package/dist/.test/example.use.repo/example.echoRegistry.js +0 -108
- package/dist/.test/example.use.repo/example.echoRegistry.js.map +0 -1
- package/dist/.test/genContextLogTrail.d.ts +0 -2
- package/dist/.test/genContextLogTrail.js +0 -12
- package/dist/.test/genContextLogTrail.js.map +0 -1
- package/dist/.test/getContextOpenAI.d.ts +0 -2
- package/dist/.test/getContextOpenAI.js +0 -18
- package/dist/.test/getContextOpenAI.js.map +0 -1
- package/dist/.test/stitchers/genStitcherCodeFileRead.d.ts +0 -14
- package/dist/.test/stitchers/genStitcherCodeFileRead.js +0 -23
- package/dist/.test/stitchers/genStitcherCodeFileRead.js.map +0 -1
- package/dist/.test/stitchers/genStitcherCodeFileWrite.d.ts +0 -16
- package/dist/.test/stitchers/genStitcherCodeFileWrite.js +0 -29
- package/dist/.test/stitchers/genStitcherCodeFileWrite.js.map +0 -1
- package/dist/.test/stitchers/genStitcherCodeReviewImagine.d.ts +0 -15
- package/dist/.test/stitchers/genStitcherCodeReviewImagine.js +0 -97
- package/dist/.test/stitchers/genStitcherCodeReviewImagine.js.map +0 -1
- package/dist/.test/stitchers/stitcherCodeDiffImagine.d.ts +0 -13
- package/dist/.test/stitchers/stitcherCodeDiffImagine.js +0 -33
- package/dist/.test/stitchers/stitcherCodeDiffImagine.js.map +0 -1
- package/dist/.test/stitchers/stitcherFanoutRandomSum.d.ts +0 -13
- package/dist/.test/stitchers/stitcherFanoutRandomSum.js +0 -45
- package/dist/.test/stitchers/stitcherFanoutRandomSum.js.map +0 -1
- package/dist/.test/stitchers/stitcherFanoutSubroutes.d.ts +0 -35
- package/dist/.test/stitchers/stitcherFanoutSubroutes.js +0 -76
- package/dist/.test/stitchers/stitcherFanoutSubroutes.js.map +0 -1
- package/dist/.test/threads/codeArtist.d.ts +0 -6
- package/dist/.test/threads/codeArtist.js +0 -26
- package/dist/.test/threads/codeArtist.js.map +0 -1
- package/dist/.test/threads/codeCritic.d.ts +0 -6
- package/dist/.test/threads/codeCritic.js +0 -21
- package/dist/.test/threads/codeCritic.js.map +0 -1
- package/dist/.test/threads/director.d.ts +0 -6
- package/dist/.test/threads/director.js +0 -14
- package/dist/.test/threads/director.js.map +0 -1
- package/dist/contract/cli/invoke.integration.test.d.ts +0 -1
- package/dist/contract/cli/invoke.integration.test.js +0 -39
- package/dist/contract/cli/invoke.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeAsk.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeAsk.integration.test.js +0 -69
- package/dist/contract/cli/invokeAsk.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeBriefsBoot.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeBriefsBoot.integration.test.js +0 -159
- package/dist/contract/cli/invokeBriefsBoot.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeBriefsLink.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeBriefsLink.integration.test.js +0 -100
- package/dist/contract/cli/invokeBriefsLink.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeChoose.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeChoose.integration.test.js +0 -111
- package/dist/contract/cli/invokeChoose.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeInit.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeInit.integration.test.js +0 -123
- package/dist/contract/cli/invokeInit.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeReadme.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeReadme.integration.test.js +0 -62
- package/dist/contract/cli/invokeReadme.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeRolesBoot.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeRolesBoot.integration.test.js +0 -152
- package/dist/contract/cli/invokeRolesBoot.integration.test.js.map +0 -1
- package/dist/contract/cli/invokeRolesLink.integration.test.d.ts +0 -1
- package/dist/contract/cli/invokeRolesLink.integration.test.js +0 -117
- package/dist/contract/cli/invokeRolesLink.integration.test.js.map +0 -1
- package/dist/domain/objects/InvokeOpts.test.d.ts +0 -1
- package/dist/domain/objects/InvokeOpts.test.js +0 -41
- package/dist/domain/objects/InvokeOpts.test.js.map +0 -1
- package/dist/domain/objects/Stitcher.test.d.ts +0 -1
- package/dist/domain/objects/Stitcher.test.js +0 -78
- package/dist/domain/objects/Stitcher.test.js.map +0 -1
- package/dist/domain/objects/Template.test.d.ts +0 -1
- package/dist/domain/objects/Template.test.js +0 -48
- package/dist/domain/objects/Template.test.js.map +0 -1
- package/dist/logic/init/generateRhachetConfig.test.d.ts +0 -1
- package/dist/logic/init/generateRhachetConfig.test.js +0 -35
- package/dist/logic/init/generateRhachetConfig.test.js.map +0 -1
- package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.d.ts +0 -1
- package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.js +0 -130
- package/dist/logic/invoke/addAttemptQualifierToOutputPath.test.js.map +0 -1
- package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.d.ts +0 -1
- package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.js +0 -77
- package/dist/logic/invoke/getPeerQualifiersOfOutputChoice.test.js.map +0 -1
- package/dist/logic/invoke/getSkillContext.test.d.ts +0 -1
- package/dist/logic/invoke/getSkillContext.test.js +0 -85
- package/dist/logic/invoke/getSkillContext.test.js.map +0 -1
- package/dist/logic/invoke/getSkillThread.test.d.ts +0 -1
- package/dist/logic/invoke/getSkillThread.test.js +0 -115
- package/dist/logic/invoke/getSkillThread.test.js.map +0 -1
- package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.d.ts +0 -1
- package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.js +0 -74
- package/dist/logic/invoke/performInIsolatedThread.invoke.integration.test.js.map +0 -1
- package/dist/logic/invoke/performInIsolatedThreads.integration.test.d.ts +0 -1
- package/dist/logic/invoke/performInIsolatedThreads.integration.test.js +0 -75
- package/dist/logic/invoke/performInIsolatedThreads.integration.test.js.map +0 -1
- package/dist/logic/role/addRoleTraits.test.d.ts +0 -1
- package/dist/logic/role/addRoleTraits.test.js +0 -93
- package/dist/logic/role/addRoleTraits.test.js.map +0 -1
- package/dist/logic/role/enrollThread.integration.test.d.ts +0 -1
- package/dist/logic/role/enrollThread.integration.test.js +0 -79
- package/dist/logic/role/enrollThread.integration.test.js.map +0 -1
- package/dist/logic/role/genRoleSkill.test.d.ts +0 -1
- package/dist/logic/role/genRoleSkill.test.js +0 -79
- package/dist/logic/role/genRoleSkill.test.js.map +0 -1
- package/dist/logic/stitch/enstitch.test.d.ts +0 -1
- package/dist/logic/stitch/enstitch.test.js +0 -112
- package/dist/logic/stitch/enstitch.test.js.map +0 -1
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.d.ts +0 -1
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.js +0 -195
- package/dist/logic/stitch/invokeImagineStitcher.integration.test.js.map +0 -1
- package/dist/logic/template/genStepImagineViaTemplate.test.d.ts +0 -1
- package/dist/logic/template/genStepImagineViaTemplate.test.js +0 -126
- package/dist/logic/template/genStepImagineViaTemplate.test.js.map +0 -1
- package/dist/logic/template/genTemplate.test.d.ts +0 -1
- package/dist/logic/template/genTemplate.test.js +0 -118
- package/dist/logic/template/genTemplate.test.js.map +0 -1
- package/dist/logic/template/useTemplate.integration.test.d.ts +0 -1
- package/dist/logic/template/useTemplate.integration.test.js +0 -28
- package/dist/logic/template/useTemplate.integration.test.js.map +0 -1
- package/dist/logic/thread/getStitch.test.d.ts +0 -1
- package/dist/logic/thread/getStitch.test.js +0 -73
- package/dist/logic/thread/getStitch.test.js.map +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js +0 -67
- package/dist/logic/weave/compose/GStitcherInferredFromChoice.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js +0 -132
- package/dist/logic/weave/compose/GStitcherInferredFromCycle.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js +0 -74
- package/dist/logic/weave/compose/GStitcherInferredFromFanout.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js +0 -190
- package/dist/logic/weave/compose/GStitcherInferredFromRoute.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.js +0 -29
- package/dist/logic/weave/compose/ProcedureContextMerged.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/ThreadsMerged.generic.test.d.ts +0 -1
- package/dist/logic/weave/compose/ThreadsMerged.generic.test.js +0 -420
- package/dist/logic/weave/compose/ThreadsMerged.generic.test.js.map +0 -1
- package/dist/logic/weave/compose/asStitcher.test.d.ts +0 -1
- package/dist/logic/weave/compose/asStitcher.test.js +0 -95
- package/dist/logic/weave/compose/asStitcher.test.js.map +0 -1
- package/dist/logic/weave/compose/asStitcherFlat.test.d.ts +0 -1
- package/dist/logic/weave/compose/asStitcherFlat.test.js +0 -96
- package/dist/logic/weave/compose/asStitcherFlat.test.js.map +0 -1
- package/dist/logic/weave/compose/genStitchChoice.test.d.ts +0 -1
- package/dist/logic/weave/compose/genStitchChoice.test.js +0 -200
- package/dist/logic/weave/compose/genStitchChoice.test.js.map +0 -1
- package/dist/logic/weave/compose/genStitchCycle.test.d.ts +0 -1
- package/dist/logic/weave/compose/genStitchCycle.test.js +0 -267
- package/dist/logic/weave/compose/genStitchCycle.test.js.map +0 -1
- package/dist/logic/weave/compose/genStitchFanout.test.d.ts +0 -1
- package/dist/logic/weave/compose/genStitchFanout.test.js +0 -79
- package/dist/logic/weave/compose/genStitchFanout.test.js.map +0 -1
- package/dist/logic/weave/compose/genStitchRoute.test.d.ts +0 -1
- package/dist/logic/weave/compose/genStitchRoute.test.js +0 -120
- package/dist/logic/weave/compose/genStitchRoute.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneChoice.test.d.ts +0 -1
- package/dist/logic/weave/enweaveOneChoice.test.js +0 -181
- package/dist/logic/weave/enweaveOneChoice.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneCycle.test.d.ts +0 -1
- package/dist/logic/weave/enweaveOneCycle.test.js +0 -180
- package/dist/logic/weave/enweaveOneCycle.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneFanout.integration.test.d.ts +0 -1
- package/dist/logic/weave/enweaveOneFanout.integration.test.js +0 -166
- package/dist/logic/weave/enweaveOneFanout.integration.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneRoute.integration.test.d.ts +0 -1
- package/dist/logic/weave/enweaveOneRoute.integration.test.js +0 -159
- package/dist/logic/weave/enweaveOneRoute.integration.test.js.map +0 -1
- package/dist/logic/weave/enweaveOneStitcher.integration.test.d.ts +0 -2
- package/dist/logic/weave/enweaveOneStitcher.integration.test.js +0 -258
- package/dist/logic/weave/enweaveOneStitcher.integration.test.js.map +0 -1
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const as_procedure_1 = require("as-procedure");
|
|
4
|
-
const helpful_errors_1 = require("helpful-errors");
|
|
5
|
-
const test_fns_1 = require("test-fns");
|
|
6
|
-
const addRoleTraits_1 = require("./addRoleTraits");
|
|
7
|
-
const makeFakeArtifact = (content) => ({
|
|
8
|
-
ref: { uri: `/fake/${Math.random()}` },
|
|
9
|
-
get: (0, as_procedure_1.withExpectOutput)(async () => ({
|
|
10
|
-
uri: '/fake/file.md',
|
|
11
|
-
hash: 'hash123',
|
|
12
|
-
content,
|
|
13
|
-
})),
|
|
14
|
-
set: () => helpful_errors_1.UnexpectedCodePathError.throw('todo'),
|
|
15
|
-
del: () => helpful_errors_1.UnexpectedCodePathError.throw('todo'),
|
|
16
|
-
});
|
|
17
|
-
describe('addRoleTraits', () => {
|
|
18
|
-
(0, test_fns_1.given)('a thread with empty traits', () => {
|
|
19
|
-
const thread = {
|
|
20
|
-
context: { inherit: { traits: [], skills: [] } },
|
|
21
|
-
stitches: [],
|
|
22
|
-
};
|
|
23
|
-
(0, test_fns_1.when)('adding traits from direct RoleTrait content', () => {
|
|
24
|
-
const traits = [
|
|
25
|
-
{ content: 'treat consistency as top priority' },
|
|
26
|
-
{ content: 'prefer ubiquitous language' },
|
|
27
|
-
];
|
|
28
|
-
(0, test_fns_1.then)('should append those traits to the context', async () => {
|
|
29
|
-
const updated = await (0, addRoleTraits_1.addRoleTraits)({ thread, from: { traits } });
|
|
30
|
-
expect(updated.context.inherit.traits).toEqual(traits);
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
(0, test_fns_1.when)('adding traits from GitFile artifacts', () => {
|
|
34
|
-
const artifacts = [
|
|
35
|
-
makeFakeArtifact('treat consistency as top priority'),
|
|
36
|
-
makeFakeArtifact('prefer given/when/then structure'),
|
|
37
|
-
];
|
|
38
|
-
(0, test_fns_1.then)('should extract and append traits from files', async () => {
|
|
39
|
-
const updated = await (0, addRoleTraits_1.addRoleTraits)({ thread, from: { artifacts } });
|
|
40
|
-
expect(updated.context.inherit.traits).toEqual([
|
|
41
|
-
{ content: 'treat consistency as top priority' },
|
|
42
|
-
{ content: 'prefer given/when/then structure' },
|
|
43
|
-
]);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
(0, test_fns_1.when)('adding traits from both RoleTrait and Artifact', () => {
|
|
47
|
-
const traits = [{ content: 'always test behavior' }];
|
|
48
|
-
const artifacts = [makeFakeArtifact('capture domain terms')];
|
|
49
|
-
(0, test_fns_1.then)('should merge both sources into context.inherit.traits', async () => {
|
|
50
|
-
const updated = await (0, addRoleTraits_1.addRoleTraits)({
|
|
51
|
-
thread,
|
|
52
|
-
from: { traits, artifacts },
|
|
53
|
-
});
|
|
54
|
-
expect(updated.context.inherit.traits).toEqual([
|
|
55
|
-
{ content: 'always test behavior' },
|
|
56
|
-
{ content: 'capture domain terms' },
|
|
57
|
-
]);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
(0, test_fns_1.given)('a thread with pre-existing traits', () => {
|
|
62
|
-
const thread = {
|
|
63
|
-
context: {
|
|
64
|
-
inherit: {
|
|
65
|
-
traits: [{ content: 'existing trait' }],
|
|
66
|
-
skills: [],
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
stitches: [],
|
|
70
|
-
};
|
|
71
|
-
(0, test_fns_1.when)('adding new traits via artifact', () => {
|
|
72
|
-
const artifacts = [makeFakeArtifact('new trait added')];
|
|
73
|
-
(0, test_fns_1.then)('should preserve existing traits and append new ones', async () => {
|
|
74
|
-
const updated = await (0, addRoleTraits_1.addRoleTraits)({ thread, from: { artifacts } });
|
|
75
|
-
expect(updated.context.inherit.traits).toEqual([
|
|
76
|
-
{ content: 'existing trait' },
|
|
77
|
-
{ content: 'new trait added' },
|
|
78
|
-
]);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
(0, test_fns_1.given)('an invalid input with neither traits nor artifacts', () => {
|
|
83
|
-
const thread = {
|
|
84
|
-
context: { inherit: { traits: [], skills: [] } },
|
|
85
|
-
stitches: [],
|
|
86
|
-
};
|
|
87
|
-
(0, test_fns_1.then)('should fail at type level', async () => {
|
|
88
|
-
// @ts-expect-error — atleast one key in from is required
|
|
89
|
-
await (0, addRoleTraits_1.addRoleTraits)({ thread, from: {} });
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=addRoleTraits.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addRoleTraits.test.js","sourceRoot":"","sources":["../../../src/logic/role/addRoleTraits.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const helpful_errors_1 = require("helpful-errors");
|
|
4
|
-
const rhachet_artifact_git_1 = require("rhachet-artifact-git");
|
|
5
|
-
const test_fns_1 = require("test-fns");
|
|
6
|
-
const enrollThread_1 = require("./enrollThread");
|
|
7
|
-
describe('enrollThread', () => {
|
|
8
|
-
(0, test_fns_1.given)('a role with no traits or skills', () => {
|
|
9
|
-
(0, test_fns_1.when)('calling enrollThread()', () => {
|
|
10
|
-
(0, test_fns_1.then)('it should default traits and skills to empty arrays', async () => {
|
|
11
|
-
const thread = await (0, enrollThread_1.enrollThread)({
|
|
12
|
-
role: 'mechanic',
|
|
13
|
-
});
|
|
14
|
-
expect(thread.context.inherit.traits).toEqual([]);
|
|
15
|
-
expect(thread.context.inherit.skills).toEqual([]);
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
(0, test_fns_1.given)('a role with only traits provided', () => {
|
|
20
|
-
const traitArtifact = (0, rhachet_artifact_git_1.genArtifactGitFile)({
|
|
21
|
-
uri: __dirname + '/.temp/traits.md',
|
|
22
|
-
});
|
|
23
|
-
const traitContent = '__trait__';
|
|
24
|
-
beforeEach(() => traitArtifact.set({ content: traitContent }));
|
|
25
|
-
(0, test_fns_1.when)('calling enrollThread()', () => {
|
|
26
|
-
(0, test_fns_1.then)('it should inject traits and still initialize skills as an empty array', async () => {
|
|
27
|
-
const thread = await (0, enrollThread_1.enrollThread)({
|
|
28
|
-
role: 'analyst',
|
|
29
|
-
inherit: {
|
|
30
|
-
traits: [traitArtifact],
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
expect(thread.context.inherit.traits).toHaveLength(1);
|
|
34
|
-
expect(thread.context.inherit.traits[0]?.content).toBeDefined();
|
|
35
|
-
expect(thread.context.inherit.skills).toEqual([]);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
(0, test_fns_1.given)('a role with only skills provided', () => {
|
|
40
|
-
const skillArtifact = (0, rhachet_artifact_git_1.genArtifactGitFile)({
|
|
41
|
-
uri: __dirname + '/.temp/skills.md',
|
|
42
|
-
});
|
|
43
|
-
(0, test_fns_1.when)('calling enrollThread()', () => {
|
|
44
|
-
(0, test_fns_1.then)('it should throw since addRoleSkills is not yet implemented', async () => {
|
|
45
|
-
await expect((0, enrollThread_1.enrollThread)({
|
|
46
|
-
role: 'operator',
|
|
47
|
-
inherit: {
|
|
48
|
-
skills: [skillArtifact],
|
|
49
|
-
},
|
|
50
|
-
})).rejects.toThrow(helpful_errors_1.UnexpectedCodePathError);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
(0, test_fns_1.given)('a role with both traits and stash', () => {
|
|
55
|
-
const traitArtifact = (0, rhachet_artifact_git_1.genArtifactGitFile)({
|
|
56
|
-
uri: __dirname + '/.temp/traits.md',
|
|
57
|
-
});
|
|
58
|
-
const traitContent = '__trait__';
|
|
59
|
-
beforeEach(() => traitArtifact.set({ content: traitContent }));
|
|
60
|
-
(0, test_fns_1.when)('calling enrollThread()', () => {
|
|
61
|
-
(0, test_fns_1.then)('it should inject both stash and traits and ensure skills is []', async () => {
|
|
62
|
-
const thread = await (0, enrollThread_1.enrollThread)({
|
|
63
|
-
role: 'teacher',
|
|
64
|
-
stash: {
|
|
65
|
-
lesson: 'always explain the why',
|
|
66
|
-
},
|
|
67
|
-
inherit: {
|
|
68
|
-
traits: [traitArtifact],
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
expect(thread.context.stash.lesson).toBe('always explain the why');
|
|
72
|
-
expect(thread.context.inherit.traits).toHaveLength(1);
|
|
73
|
-
expect(thread.context.inherit.traits[0].content).toEqual(traitContent);
|
|
74
|
-
expect(thread.context.inherit.skills).toEqual([]);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
//# sourceMappingURL=enrollThread.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enrollThread.integration.test.js","sourceRoot":"","sources":["../../../src/logic/role/enrollThread.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const test_fns_1 = require("test-fns");
|
|
4
|
-
const objects_1 = require("../../domain/objects");
|
|
5
|
-
const enrollThread_1 = require("./enrollThread");
|
|
6
|
-
const genRoleSkill_1 = require("./genRoleSkill");
|
|
7
|
-
describe('genRoleSkill', () => {
|
|
8
|
-
(0, test_fns_1.given)('a valid set of lookup, assess, and instantiate handlers', () => {
|
|
9
|
-
const skill = (0, genRoleSkill_1.genRoleSkill)({
|
|
10
|
-
slug: 'demo',
|
|
11
|
-
readme: 'demo readme',
|
|
12
|
-
route: {},
|
|
13
|
-
threads: {
|
|
14
|
-
lookup: {
|
|
15
|
-
foo: {
|
|
16
|
-
source: 'process.argv',
|
|
17
|
-
desc: 'some arg',
|
|
18
|
-
char: 'f',
|
|
19
|
-
type: 'string',
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
assess: (input) => typeof input.foo === 'string',
|
|
23
|
-
instantiate: async (input) => {
|
|
24
|
-
return {
|
|
25
|
-
caller: await (0, enrollThread_1.enrollThread)({
|
|
26
|
-
role: 'caller',
|
|
27
|
-
stash: { foo: input.foo },
|
|
28
|
-
}),
|
|
29
|
-
};
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
context: {
|
|
33
|
-
lookup: {
|
|
34
|
-
bar: {
|
|
35
|
-
source: 'process.env',
|
|
36
|
-
desc: 'some env var',
|
|
37
|
-
envar: 'DEMO_ENV',
|
|
38
|
-
type: 'string',
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
assess: (input) => typeof input.bar === 'string',
|
|
42
|
-
instantiate: (input) => {
|
|
43
|
-
return {
|
|
44
|
-
demoCtx: input.bar,
|
|
45
|
-
};
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
});
|
|
49
|
-
(0, test_fns_1.when)('the skill is instantiated', () => {
|
|
50
|
-
(0, test_fns_1.then)('it should produce a valid RoleSkill object', () => {
|
|
51
|
-
expect(skill).toBeInstanceOf(objects_1.RoleSkill);
|
|
52
|
-
expect(skill.slug).toBe('demo');
|
|
53
|
-
expect(skill.readme).toContain('demo readme');
|
|
54
|
-
});
|
|
55
|
-
(0, test_fns_1.then)('its thread assess should validate correct input', () => {
|
|
56
|
-
const valid = { foo: 'hello' };
|
|
57
|
-
const invalid = { foo: 123 };
|
|
58
|
-
expect(skill.threads.assess(valid)).toBe(true);
|
|
59
|
-
expect(skill.threads.assess(invalid)).toBe(false);
|
|
60
|
-
});
|
|
61
|
-
(0, test_fns_1.then)('its context assess should validate correct input', () => {
|
|
62
|
-
const valid = { bar: 'world' };
|
|
63
|
-
const invalid = { bar: false };
|
|
64
|
-
expect(skill.context.assess(valid)).toBe(true);
|
|
65
|
-
expect(skill.context.assess(invalid)).toBe(false);
|
|
66
|
-
});
|
|
67
|
-
(0, test_fns_1.then)('its thread instantiation should return the correct output', async () => {
|
|
68
|
-
const result = await skill.threads.instantiate({ foo: 'hi' });
|
|
69
|
-
expect(result.caller).toBeDefined();
|
|
70
|
-
expect(result.caller.context.stash.foo).toBe('hi');
|
|
71
|
-
});
|
|
72
|
-
(0, test_fns_1.then)('its context instantiation should return the correct output', async () => {
|
|
73
|
-
const ctx = await skill.context.instantiate({ bar: 'baz' });
|
|
74
|
-
expect(ctx.log);
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
//# sourceMappingURL=genRoleSkill.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"genRoleSkill.test.js","sourceRoot":"","sources":["../../../src/logic/role/genRoleSkill.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const test_fns_1 = require("test-fns");
|
|
4
|
-
const genContextLogTrail_1 = require("../../.test/genContextLogTrail");
|
|
5
|
-
const StitchStep_1 = require("../../domain/objects/StitchStep");
|
|
6
|
-
const Thread_1 = require("../../domain/objects/Thread");
|
|
7
|
-
const genContextStitchTrail_1 = require("../context/genContextStitchTrail");
|
|
8
|
-
const enstitch_1 = require("./enstitch");
|
|
9
|
-
describe('enstitch', () => {
|
|
10
|
-
const context = { ...(0, genContextStitchTrail_1.genContextStitchTrail)(), ...(0, genContextLogTrail_1.genContextLogTrail)() };
|
|
11
|
-
(0, test_fns_1.given)('a compute stitcher with a single thread', () => {
|
|
12
|
-
const threadMain = new Thread_1.Thread({
|
|
13
|
-
context: { role: 'main' },
|
|
14
|
-
stitches: [],
|
|
15
|
-
});
|
|
16
|
-
const stitcher = new StitchStep_1.StitchStepCompute({
|
|
17
|
-
slug: 'mock-step',
|
|
18
|
-
readme: null,
|
|
19
|
-
form: 'COMPUTE',
|
|
20
|
-
stitchee: 'main',
|
|
21
|
-
invoke: () => ({ input: 'in', output: 'out' }),
|
|
22
|
-
});
|
|
23
|
-
(0, test_fns_1.when)('enstitch is called', () => {
|
|
24
|
-
(0, test_fns_1.then)('it should append the stitch to the thread', async () => {
|
|
25
|
-
const result = await (0, enstitch_1.enstitch)({ stitcher, threads: { main: threadMain } }, context);
|
|
26
|
-
expect(result.stitch.output).toEqual('out');
|
|
27
|
-
expect(result.threads.main.stitches.length).toBe(1);
|
|
28
|
-
expect(result.threads.main.stitches[0].output).toEqual('out');
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
(0, test_fns_1.given)('a compute stitcher with a multiple thread (seed + peers)', () => {
|
|
33
|
-
const seed = new Thread_1.Thread({
|
|
34
|
-
context: { role: 'main' },
|
|
35
|
-
stitches: [],
|
|
36
|
-
});
|
|
37
|
-
const peer = new Thread_1.Thread({
|
|
38
|
-
context: { role: 'main' },
|
|
39
|
-
stitches: [],
|
|
40
|
-
});
|
|
41
|
-
const threadBundle = { seed, peers: [peer, peer, peer] };
|
|
42
|
-
const stitcher = new StitchStep_1.StitchStepCompute({
|
|
43
|
-
slug: 'mock-step',
|
|
44
|
-
readme: null,
|
|
45
|
-
form: 'COMPUTE',
|
|
46
|
-
stitchee: 'main',
|
|
47
|
-
invoke: ({ threads }) => ({
|
|
48
|
-
input: 'in',
|
|
49
|
-
output: { peers: threads.main.peers.length },
|
|
50
|
-
}),
|
|
51
|
-
});
|
|
52
|
-
(0, test_fns_1.when)('enstitch is called with multiple thread shape', () => {
|
|
53
|
-
(0, test_fns_1.then)('it should update the seed thread with the stitch', async () => {
|
|
54
|
-
const result = await (0, enstitch_1.enstitch)({ stitcher, threads: { main: threadBundle } }, context);
|
|
55
|
-
expect(result.stitch.output).toEqual({
|
|
56
|
-
peers: 3,
|
|
57
|
-
});
|
|
58
|
-
expect(result.threads.main.stitches.length).toBe(1);
|
|
59
|
-
expect(result.threads.main.stitches[0].output).toEqual({
|
|
60
|
-
peers: 3,
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
(0, test_fns_1.given)('a compute stitcher that returns a constant literal output "A"', () => {
|
|
66
|
-
const threadMain = new Thread_1.Thread({
|
|
67
|
-
context: { role: 'main' },
|
|
68
|
-
stitches: [],
|
|
69
|
-
});
|
|
70
|
-
const stitcher = new StitchStep_1.StitchStepCompute({
|
|
71
|
-
slug: 'repeatee',
|
|
72
|
-
readme: 'Repeat logic',
|
|
73
|
-
form: 'COMPUTE',
|
|
74
|
-
stitchee: 'main',
|
|
75
|
-
invoke: () => ({ input: null, output: 'A' }),
|
|
76
|
-
});
|
|
77
|
-
(0, test_fns_1.when)('enstitch is called with a repeatee-style stitcher', () => {
|
|
78
|
-
(0, test_fns_1.then)('it should append a stitch with output "A"', async () => {
|
|
79
|
-
const result = await (0, enstitch_1.enstitch)({ stitcher, threads: { main: threadMain } }, context);
|
|
80
|
-
expect(result.stitch.output).toBe('A');
|
|
81
|
-
expect(result.threads.main.stitches.length).toBe(1);
|
|
82
|
-
expect(result.threads.main.stitches[0].output).toBe('A');
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
(0, test_fns_1.given)('a stitcher with stitch.stream context', () => {
|
|
87
|
-
const threadMain = new Thread_1.Thread({
|
|
88
|
-
context: { role: 'main' },
|
|
89
|
-
stitches: [],
|
|
90
|
-
});
|
|
91
|
-
const streamEmitMock = jest.fn();
|
|
92
|
-
const contextWithStitchStream = {
|
|
93
|
-
...context,
|
|
94
|
-
...(0, genContextStitchTrail_1.genContextStitchTrail)({ stream: { emit: streamEmitMock } }),
|
|
95
|
-
};
|
|
96
|
-
const stitcher = new StitchStep_1.StitchStepCompute({
|
|
97
|
-
slug: 'repeatee',
|
|
98
|
-
readme: 'Repeat logic',
|
|
99
|
-
form: 'COMPUTE',
|
|
100
|
-
stitchee: 'main',
|
|
101
|
-
invoke: () => ({ input: null, output: 'A' }),
|
|
102
|
-
});
|
|
103
|
-
(0, test_fns_1.when)('enstitch is called with a stitch.stream context', () => {
|
|
104
|
-
(0, test_fns_1.then)('it should emit the stitch set event to the stream', async () => {
|
|
105
|
-
const result = await (0, enstitch_1.enstitch)({ stitcher, threads: { main: threadMain } }, contextWithStitchStream);
|
|
106
|
-
expect(streamEmitMock).toHaveBeenCalledTimes(1);
|
|
107
|
-
expect(streamEmitMock).toHaveBeenCalledWith(result);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
//# sourceMappingURL=enstitch.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enstitch.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/enstitch.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const uni_time_1 = require("@ehmpathy/uni-time");
|
|
4
|
-
const test_fns_1 = require("test-fns");
|
|
5
|
-
const genContextLogTrail_1 = require("../../.test/genContextLogTrail");
|
|
6
|
-
const getContextOpenAI_1 = require("../../.test/getContextOpenAI");
|
|
7
|
-
const StitchStep_1 = require("../../domain/objects/StitchStep");
|
|
8
|
-
const Thread_1 = require("../../domain/objects/Thread");
|
|
9
|
-
const genContextStitchTrail_1 = require("../context/genContextStitchTrail");
|
|
10
|
-
const imagineViaOpenAI_1 = require("./adapters/imagineViaOpenAI");
|
|
11
|
-
const enstitch_1 = require("./enstitch");
|
|
12
|
-
jest.setTimeout((0, uni_time_1.toMilliseconds)({ minutes: 3 }));
|
|
13
|
-
describe('invokeImagineStitcher', () => {
|
|
14
|
-
test_fns_1.given.runIf(!process.env.CI)('a representative imagine stitcher', () => {
|
|
15
|
-
const context = {
|
|
16
|
-
...(0, genContextLogTrail_1.genContextLogTrail)(),
|
|
17
|
-
...(0, genContextStitchTrail_1.genContextStitchTrail)(),
|
|
18
|
-
...(0, getContextOpenAI_1.getContextOpenAI)(),
|
|
19
|
-
};
|
|
20
|
-
const stitcher = new StitchStep_1.StitchStepImagine({
|
|
21
|
-
form: 'IMAGINE',
|
|
22
|
-
slug: 'fillout-stub',
|
|
23
|
-
readme: 'intent(fills out a stub of code); note(good example for impact of context)',
|
|
24
|
-
stitchee: 'author',
|
|
25
|
-
enprompt: ({ threads }) => [
|
|
26
|
-
'fillout the code of the given stubout',
|
|
27
|
-
'context.factset = ',
|
|
28
|
-
threads.author.context.factset.join('\n - '),
|
|
29
|
-
'',
|
|
30
|
-
'here is the stubout',
|
|
31
|
-
threads.author.stitches.slice(-1)[0]?.output,
|
|
32
|
-
'',
|
|
33
|
-
'fillout the code of the given stubout',
|
|
34
|
-
].join('\n'),
|
|
35
|
-
imagine: imagineViaOpenAI_1.imagineViaOpenAI,
|
|
36
|
-
deprompt: ({ promptOut, promptIn }) => ({
|
|
37
|
-
output: promptOut,
|
|
38
|
-
input: promptIn,
|
|
39
|
-
}),
|
|
40
|
-
});
|
|
41
|
-
const stubout = `
|
|
42
|
-
/**
|
|
43
|
-
* .what = calls the open-meteo weather api
|
|
44
|
-
* .how =
|
|
45
|
-
* - uses procedural pattern
|
|
46
|
-
* - fails fast
|
|
47
|
-
*/
|
|
48
|
-
export const sdkOpenMeteo = {
|
|
49
|
-
getWeather: (input: {...}, context: VisualogicContext & AuthContextOpenMeteo) => {
|
|
50
|
-
...
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
`.trim();
|
|
54
|
-
(0, test_fns_1.when)('thread has blank context', () => {
|
|
55
|
-
const thread = new Thread_1.Thread({
|
|
56
|
-
context: { role: 'author', factset: [] },
|
|
57
|
-
stitches: [{ output: stubout, input: null }],
|
|
58
|
-
});
|
|
59
|
-
(0, test_fns_1.then)('it should be able to stitch', async () => {
|
|
60
|
-
const { stitch, threads } = await (0, enstitch_1.enstitch)({ stitcher, threads: { author: thread } }, context);
|
|
61
|
-
console.log(stitch.input);
|
|
62
|
-
console.log(stitch.output);
|
|
63
|
-
// stitch should look right
|
|
64
|
-
expect(stitch.output).toContain('sdkOpenMeteo');
|
|
65
|
-
// stitchee should be updated, too
|
|
66
|
-
expect(threads.author.stitches.length).toEqual(thread.stitches.length + 1);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
(0, test_fns_1.when)('thread has context', () => {
|
|
70
|
-
const thread = new Thread_1.Thread({
|
|
71
|
-
context: {
|
|
72
|
-
role: 'author',
|
|
73
|
-
factset: [
|
|
74
|
-
`example of usage of open-meteo
|
|
75
|
-
|
|
76
|
-
\`\`\`ts
|
|
77
|
-
import { fetchWeatherApi } from 'openmeteo';
|
|
78
|
-
|
|
79
|
-
const params = {
|
|
80
|
-
latitude: [52.54],
|
|
81
|
-
longitude: [13.41],
|
|
82
|
-
current: 'temperature_2m,weather_code,wind_speed_10m,wind_direction_10m',
|
|
83
|
-
hourly: 'temperature_2m,precipitation',
|
|
84
|
-
daily: 'weather_code,temperature_2m_max,temperature_2m_min'
|
|
85
|
-
};
|
|
86
|
-
const url = 'https://api.open-meteo.com/v1/forecast';
|
|
87
|
-
const responses = await fetchWeatherApi(url, params);
|
|
88
|
-
|
|
89
|
-
// Helper function to form time ranges
|
|
90
|
-
const range = (start: number, stop: number, step: number) =>
|
|
91
|
-
Array.from({ length: (stop - start) / step }, (_, i) => start + i * step);
|
|
92
|
-
|
|
93
|
-
// Process first location. Add a for-loop for multiple locations or weather models
|
|
94
|
-
const response = responses[0];
|
|
95
|
-
|
|
96
|
-
// Attributes for timezone and location
|
|
97
|
-
const utcOffsetSeconds = response.utcOffsetSeconds();
|
|
98
|
-
const timezone = response.timezone();
|
|
99
|
-
const timezoneAbbreviation = response.timezoneAbbreviation();
|
|
100
|
-
const latitude = response.latitude();
|
|
101
|
-
const longitude = response.longitude();
|
|
102
|
-
|
|
103
|
-
const current = response.current()!;
|
|
104
|
-
const hourly = response.hourly()!;
|
|
105
|
-
const daily = response.daily()!;
|
|
106
|
-
|
|
107
|
-
// Note: The order of weather variables in the URL query and the indices below need to match!
|
|
108
|
-
const weatherData = {
|
|
109
|
-
current: {
|
|
110
|
-
time: new Date((Number(current.time()) + utcOffsetSeconds) * 1000),
|
|
111
|
-
temperature: current.variables(0)!.value(), // Current is only 1 value, therefore \`.value()\`
|
|
112
|
-
weatherCode: current.variables(1)!.value(),
|
|
113
|
-
windSpeed: current.variables(2)!.value(),
|
|
114
|
-
windDirection: current.variables(3)!.value()
|
|
115
|
-
},
|
|
116
|
-
hourly: {
|
|
117
|
-
time: range(Number(hourly.time()), Number(hourly.timeEnd()), hourly.interval()).map(
|
|
118
|
-
(t) => new Date((t + utcOffsetSeconds) * 1000)
|
|
119
|
-
),
|
|
120
|
-
temperature: hourly.variables(0)!.valuesArray()!, // \`.valuesArray()\` get an array of floats
|
|
121
|
-
precipitation: hourly.variables(1)!.valuesArray()!,
|
|
122
|
-
},
|
|
123
|
-
daily: {
|
|
124
|
-
time: range(Number(daily.time()), Number(daily.timeEnd()), daily.interval()).map(
|
|
125
|
-
(t) => new Date((t + utcOffsetSeconds) * 1000)
|
|
126
|
-
),
|
|
127
|
-
weatherCode: daily.variables(0)!.valuesArray()!,
|
|
128
|
-
temperatureMax: daily.variables(1)!.valuesArray()!,
|
|
129
|
-
temperatureMin: daily.variables(2)!.valuesArray()!,
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
// \`weatherData\` now contains a simple structure with arrays for datetime and weather data
|
|
134
|
-
for (let i = 0; i < weatherData.daily.time.length; i++) {
|
|
135
|
-
console.log(
|
|
136
|
-
weatherData.daily.time[i].toISOString(),
|
|
137
|
-
weatherData.daily.weatherCode[i],
|
|
138
|
-
weatherData.daily.temperatureMax[i],
|
|
139
|
-
weatherData.daily.temperatureMin[i]
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
\`\`\`
|
|
144
|
-
`.trim(),
|
|
145
|
-
`open-meteo forecast response shape
|
|
146
|
-
|
|
147
|
-
On success a JSON object will be returned.
|
|
148
|
-
|
|
149
|
-
{
|
|
150
|
-
"latitude": 52.52,
|
|
151
|
-
"longitude": 13.419,
|
|
152
|
-
"elevation": 44.812,
|
|
153
|
-
"generationtime_ms": 2.2119,
|
|
154
|
-
"utc_offset_seconds": 0,
|
|
155
|
-
"timezone": "Europe/Berlin",
|
|
156
|
-
"timezone_abbreviation": "CEST",
|
|
157
|
-
"hourly": {
|
|
158
|
-
"time": ["2022-07-01T00:00", "2022-07-01T01:00", "2022-07-01T02:00", ...],
|
|
159
|
-
"temperature_2m": [13, 12.7, 12.7, 12.5, 12.5, 12.8, 13, 12.9, 13.3, ...]
|
|
160
|
-
},
|
|
161
|
-
"hourly_units": {
|
|
162
|
-
"temperature_2m": "°C"
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
Parameter Format Description
|
|
166
|
-
latitude, longitude Floating point WGS84 of the center of the weather grid-cell which was used to generate this forecast. This coordinate might be a few kilometers away from the requested coordinate.
|
|
167
|
-
elevation Floating point The elevation from a 90 meter digital elevation model. This effects which grid-cell is selected (see parameter cell_selection). Statistical downscaling is used to adapt weather conditions for this elevation. This elevation can also be controlled with the query parameter elevation. If &elevation=nan is specified, all downscaling is disabled and the averge grid-cell elevation is used.
|
|
168
|
-
generationtime_ms Floating point Generation time of the weather forecast in milliseconds. This is mainly used for performance monitoring and improvements.
|
|
169
|
-
utc_offset_seconds Integer Applied timezone offset from the &timezone= parameter.
|
|
170
|
-
timezone
|
|
171
|
-
timezone_abbreviation String Timezone identifier (e.g. Europe/Berlin) and abbreviation (e.g. CEST)
|
|
172
|
-
hourly Object For each selected weather variable, data will be returned as a floating point array. Additionally a time array will be returned with ISO8601 timestamps.
|
|
173
|
-
hourly_units Object For each selected weather variable, the unit will be listed here.
|
|
174
|
-
daily Object For each selected daily weather variable, data will be returned as a floating point array. Additionally a time array will be returned with ISO8601 timestamps.
|
|
175
|
-
daily_units Object For each selected daily weather variable, the unit will be listed here.
|
|
176
|
-
`,
|
|
177
|
-
'we want to declare an explicit output type with a simplified name pattern. for example, Weather { label: "sunny" | ..., temp: { high, low }, rain, etc }',
|
|
178
|
-
],
|
|
179
|
-
},
|
|
180
|
-
stitches: [{ output: stubout, input: null }],
|
|
181
|
-
});
|
|
182
|
-
(0, test_fns_1.then)('it should leverage the knowledge of the context', async () => {
|
|
183
|
-
const { stitch, threads } = await (0, enstitch_1.enstitch)({ stitcher, threads: { author: thread } }, context);
|
|
184
|
-
console.log(stitch.input);
|
|
185
|
-
console.log(stitch.output);
|
|
186
|
-
// stitch should look right
|
|
187
|
-
expect(stitch.output).toContain('sdkOpenMeteo');
|
|
188
|
-
expect(stitch.output).toContain('temperature_2m');
|
|
189
|
-
// stitchee should be updated, too
|
|
190
|
-
expect(threads.author.stitches.length).toEqual(thread.stitches.length + 1);
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
//# sourceMappingURL=invokeImagineStitcher.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invokeImagineStitcher.integration.test.js","sourceRoot":"","sources":["../../../src/logic/stitch/invokeImagineStitcher.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|