liminal 0.5.2 → 0.5.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/Agent.ts +25 -7
- package/CHANGELOG.md +10 -0
- package/Fiber.ts +117 -0
- package/Globals.ts +10 -0
- package/Handler.ts +0 -0
- package/L/L.ts +13 -0
- package/L/_infer.ts +35 -0
- package/L/_message.ts +18 -0
- package/L/all.ts +11 -0
- package/L/assistant.ts +34 -0
- package/L/branch.ts +45 -0
- package/L/emit.ts +11 -0
- package/L/fork.ts +18 -0
- package/L/join.ts +9 -0
- package/L/model.ts +11 -0
- package/L/namespace.ts +11 -0
- package/L/rune.ts +19 -0
- package/L/self.ts +13 -0
- package/L/state.ts +20 -0
- package/L/system.ts +13 -0
- package/L/user.ts +13 -0
- package/LEvent.ts +35 -0
- package/Message.ts +11 -90
- package/Model.ts +10 -23
- package/Rune.ts +17 -0
- package/Runic.ts +22 -0
- package/cli/main.ts +1 -24
- package/dist/Agent.d.ts +12 -7
- package/dist/Agent.js +15 -1
- package/dist/Agent.js.map +1 -1
- package/dist/Fiber.d.ts +38 -0
- package/dist/Fiber.js +79 -0
- package/dist/Fiber.js.map +1 -0
- package/dist/Globals.d.ts +7 -0
- package/dist/Globals.js +2 -0
- package/dist/Globals.js.map +1 -0
- package/dist/Handler.js +2 -0
- package/dist/Handler.js.map +1 -0
- package/dist/L/L.d.ts +13 -0
- package/dist/L/L.js +14 -0
- package/dist/L/L.js.map +1 -0
- package/dist/L/_infer.d.ts +4 -0
- package/dist/L/_infer.js +29 -0
- package/dist/L/_infer.js.map +1 -0
- package/dist/L/_message.d.ts +6 -0
- package/dist/L/_message.js +14 -0
- package/dist/L/_message.js.map +1 -0
- package/dist/L/all.d.ts +7 -0
- package/dist/L/all.js +5 -0
- package/dist/L/all.js.map +1 -0
- package/dist/L/assistant.d.ts +7 -0
- package/dist/L/assistant.js +23 -0
- package/dist/L/assistant.js.map +1 -0
- package/dist/L/branch.d.ts +11 -0
- package/dist/L/branch.js +32 -0
- package/dist/L/branch.js.map +1 -0
- package/dist/L/emit.d.ts +5 -0
- package/dist/L/emit.js +7 -0
- package/dist/L/emit.js.map +1 -0
- package/dist/L/fork.d.ts +7 -0
- package/dist/L/fork.js +11 -0
- package/dist/L/fork.js.map +1 -0
- package/dist/L/join.d.ts +5 -0
- package/dist/L/join.js +5 -0
- package/dist/L/join.js.map +1 -0
- package/dist/L/model.d.ts +5 -0
- package/dist/L/model.js +7 -0
- package/dist/L/model.js.map +1 -0
- package/dist/L/namespace.js +12 -0
- package/dist/L/namespace.js.map +1 -0
- package/dist/L/rune.d.ts +6 -0
- package/dist/L/rune.js +11 -0
- package/dist/L/rune.js.map +1 -0
- package/dist/L/self.d.ts +6 -0
- package/dist/L/self.js +7 -0
- package/dist/L/self.js.map +1 -0
- package/dist/L/state.d.ts +7 -0
- package/dist/L/state.js +14 -0
- package/dist/L/state.js.map +1 -0
- package/dist/L/system.d.ts +6 -0
- package/dist/L/system.js +7 -0
- package/dist/L/system.js.map +1 -0
- package/dist/L/user.d.ts +6 -0
- package/dist/L/user.js +7 -0
- package/dist/L/user.js.map +1 -0
- package/dist/LEvent.d.ts +28 -0
- package/dist/LEvent.js +5 -0
- package/dist/LEvent.js.map +1 -0
- package/dist/Message.d.ts +12 -81
- package/dist/Model.d.ts +4 -20
- package/dist/Model.js +6 -0
- package/dist/Model.js.map +1 -1
- package/dist/Rune.d.ts +11 -0
- package/dist/Rune.js +5 -0
- package/dist/Rune.js.map +1 -0
- package/dist/Runic.d.ts +9 -0
- package/dist/Runic.js +18 -0
- package/dist/Runic.js.map +1 -0
- package/dist/cli/main.d.ts +0 -1
- package/dist/cli/main.js +2 -19
- package/dist/cli/main.js.map +1 -1
- package/dist/index.d.ts +9 -39
- package/dist/index.js +9 -39
- package/dist/index.js.map +1 -1
- package/dist/state/Counter.d.ts +6 -0
- package/dist/state/Counter.js +13 -0
- package/dist/state/Counter.js.map +1 -0
- package/dist/state/DefaultStateMap.d.ts +4 -0
- package/dist/state/DefaultStateMap.js +14 -0
- package/dist/state/DefaultStateMap.js.map +1 -0
- package/dist/state/MessageRegistry.d.ts +7 -0
- package/dist/state/MessageRegistry.js +14 -0
- package/dist/state/MessageRegistry.js.map +1 -0
- package/dist/state/ModelConfig.d.ts +49 -0
- package/dist/state/ModelConfig.js +18 -0
- package/dist/state/ModelConfig.js.map +1 -0
- package/dist/state/ModelRegistry.d.ts +15 -0
- package/dist/state/ModelRegistry.js +43 -0
- package/dist/state/ModelRegistry.js.map +1 -0
- package/dist/state/StateMap.d.ts +7 -0
- package/dist/state/StateMap.js +10 -0
- package/dist/state/StateMap.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +9 -39
- package/package.json +6 -9
- package/state/Counter.ts +11 -0
- package/state/DefaultStateMap.ts +14 -0
- package/state/MessageRegistry.ts +17 -0
- package/state/ModelConfig.ts +49 -0
- package/state/ModelRegistry.ts +55 -0
- package/state/StateMap.ts +15 -0
- package/tsconfig.json +5 -1
- package/Action.ts +0 -29
- package/Exec.ts +0 -51
- package/L.ts +0 -24
- package/LiminalAssertionError.ts +0 -3
- package/LiminalConfig.ts +0 -7
- package/PathLike.ts +0 -17
- package/Scope.ts +0 -152
- package/Spec.ts +0 -29
- package/Tool.ts +0 -58
- package/_.ts +0 -11
- package/actions/abort.ts +0 -23
- package/actions/actions_common/updateModels.ts +0 -23
- package/actions/actions_derived/__snapshots__/declareModel.test.ts.snap +0 -89
- package/actions/actions_derived/clear.ts +0 -6
- package/actions/actions_derived/declareModel.test.ts +0 -36
- package/actions/actions_derived/declareModel.ts +0 -9
- package/actions/actions_derived/declareModel.type-test.ts +0 -70
- package/actions/actions_derived/messages.test.ts +0 -88
- package/actions/actions_derived/messages.ts +0 -18
- package/actions/actions_derived/metatype.ts +0 -9
- package/actions/actions_derived/readers_derived.ts +0 -15
- package/actions/appendMessage.ts +0 -54
- package/actions/await.ts +0 -13
- package/actions/branch.ts +0 -106
- package/actions/catch.ts +0 -42
- package/actions/declareArg.ts +0 -14
- package/actions/disableTool.ts +0 -26
- package/actions/embed.ts +0 -29
- package/actions/emit.ts +0 -21
- package/actions/enableTool.ts +0 -75
- package/actions/enableTool.type-test.ts +0 -118
- package/actions/infer.ts +0 -49
- package/actions/messages.ts +0 -62
- package/actions/pushModel.ts +0 -52
- package/actions/scope.ts +0 -13
- package/actions/section.ts +0 -105
- package/actions/throw.ts +0 -18
- package/cli/WriteHandler.ts +0 -35
- package/cli/cli_common.ts +0 -4
- package/cli/runExec.ts +0 -72
- package/dist/Action.d.ts +0 -15
- package/dist/Action.js +0 -13
- package/dist/Action.js.map +0 -1
- package/dist/Exec.d.ts +0 -25
- package/dist/Exec.js +0 -19
- package/dist/Exec.js.map +0 -1
- package/dist/L.d.ts +0 -23
- package/dist/L.js +0 -24
- package/dist/L.js.map +0 -1
- package/dist/LiminalAssertionError.d.ts +0 -3
- package/dist/LiminalAssertionError.js +0 -4
- package/dist/LiminalAssertionError.js.map +0 -1
- package/dist/LiminalConfig.d.ts +0 -6
- package/dist/LiminalConfig.js +0 -2
- package/dist/LiminalConfig.js.map +0 -1
- package/dist/PathLike.d.ts +0 -11
- package/dist/PathLike.js +0 -2
- package/dist/PathLike.js.map +0 -1
- package/dist/Scope.d.ts +0 -42
- package/dist/Scope.js +0 -93
- package/dist/Scope.js.map +0 -1
- package/dist/Spec.d.ts +0 -20
- package/dist/Spec.js +0 -2
- package/dist/Spec.js.map +0 -1
- package/dist/Tool.d.ts +0 -21
- package/dist/Tool.js +0 -32
- package/dist/Tool.js.map +0 -1
- package/dist/_.d.ts +0 -5
- package/dist/_.js +0 -7
- package/dist/_.js.map +0 -1
- package/dist/actions/abort.d.ts +0 -9
- package/dist/actions/abort.js +0 -15
- package/dist/actions/abort.js.map +0 -1
- package/dist/actions/actions_common/updateModels.d.ts +0 -3
- package/dist/actions/actions_common/updateModels.js +0 -17
- package/dist/actions/actions_common/updateModels.js.map +0 -1
- package/dist/actions/actions_derived/clear.d.ts +0 -8
- package/dist/actions/actions_derived/clear.js +0 -5
- package/dist/actions/actions_derived/clear.js.map +0 -1
- package/dist/actions/actions_derived/declareModel.d.ts +0 -5
- package/dist/actions/actions_derived/declareModel.js +0 -7
- package/dist/actions/actions_derived/declareModel.js.map +0 -1
- package/dist/actions/actions_derived/declareModel.test.js +0 -35
- package/dist/actions/actions_derived/declareModel.test.js.map +0 -1
- package/dist/actions/actions_derived/declareModel.type-test.js +0 -66
- package/dist/actions/actions_derived/declareModel.type-test.js.map +0 -1
- package/dist/actions/actions_derived/messages.d.ts +0 -6
- package/dist/actions/actions_derived/messages.js +0 -15
- package/dist/actions/actions_derived/messages.js.map +0 -1
- package/dist/actions/actions_derived/messages.test.d.ts +0 -1
- package/dist/actions/actions_derived/messages.test.js +0 -72
- package/dist/actions/actions_derived/messages.test.js.map +0 -1
- package/dist/actions/actions_derived/metatype.d.ts +0 -9
- package/dist/actions/actions_derived/metatype.js +0 -7
- package/dist/actions/actions_derived/metatype.js.map +0 -1
- package/dist/actions/actions_derived/readers_derived.d.ts +0 -6
- package/dist/actions/actions_derived/readers_derived.js +0 -14
- package/dist/actions/actions_derived/readers_derived.js.map +0 -1
- package/dist/actions/appendMessage.d.ts +0 -14
- package/dist/actions/appendMessage.js +0 -41
- package/dist/actions/appendMessage.js.map +0 -1
- package/dist/actions/await.d.ts +0 -5
- package/dist/actions/await.js +0 -10
- package/dist/actions/await.js.map +0 -1
- package/dist/actions/branch.d.ts +0 -39
- package/dist/actions/branch.js +0 -40
- package/dist/actions/branch.js.map +0 -1
- package/dist/actions/catch.d.ts +0 -10
- package/dist/actions/catch.js +0 -27
- package/dist/actions/catch.js.map +0 -1
- package/dist/actions/declareArg.d.ts +0 -8
- package/dist/actions/declareArg.js +0 -10
- package/dist/actions/declareArg.js.map +0 -1
- package/dist/actions/disableTool.d.ts +0 -10
- package/dist/actions/disableTool.js +0 -17
- package/dist/actions/disableTool.js.map +0 -1
- package/dist/actions/embed.d.ts +0 -9
- package/dist/actions/embed.js +0 -24
- package/dist/actions/embed.js.map +0 -1
- package/dist/actions/emit.d.ts +0 -9
- package/dist/actions/emit.js +0 -14
- package/dist/actions/emit.js.map +0 -1
- package/dist/actions/enableTool.d.ts +0 -20
- package/dist/actions/enableTool.js +0 -26
- package/dist/actions/enableTool.js.map +0 -1
- package/dist/actions/enableTool.type-test.d.ts +0 -1
- package/dist/actions/enableTool.type-test.js +0 -30
- package/dist/actions/enableTool.type-test.js.map +0 -1
- package/dist/actions/infer.d.ts +0 -15
- package/dist/actions/infer.js +0 -29
- package/dist/actions/infer.js.map +0 -1
- package/dist/actions/messages.d.ts +0 -24
- package/dist/actions/messages.js +0 -35
- package/dist/actions/messages.js.map +0 -1
- package/dist/actions/pushModel.d.ts +0 -15
- package/dist/actions/pushModel.js +0 -36
- package/dist/actions/pushModel.js.map +0 -1
- package/dist/actions/scope.d.ts +0 -7
- package/dist/actions/scope.js +0 -10
- package/dist/actions/scope.js.map +0 -1
- package/dist/actions/section.d.ts +0 -23
- package/dist/actions/section.js +0 -64
- package/dist/actions/section.js.map +0 -1
- package/dist/actions/throw.d.ts +0 -9
- package/dist/actions/throw.js +0 -13
- package/dist/actions/throw.js.map +0 -1
- package/dist/cli/WriteHandler.d.ts +0 -9
- package/dist/cli/WriteHandler.js +0 -24
- package/dist/cli/WriteHandler.js.map +0 -1
- package/dist/cli/cli_common.d.ts +0 -4
- package/dist/cli/cli_common.js +0 -2
- package/dist/cli/cli_common.js.map +0 -1
- package/dist/cli/runExec.d.ts +0 -2
- package/dist/cli/runExec.js +0 -74
- package/dist/cli/runExec.js.map +0 -1
- package/dist/events/Aborted.d.ts +0 -4
- package/dist/events/Aborted.js +0 -2
- package/dist/events/Aborted.js.map +0 -1
- package/dist/events/Embedded.d.ts +0 -5
- package/dist/events/Embedded.js +0 -2
- package/dist/events/Embedded.js.map +0 -1
- package/dist/events/EmbeddingRequested.d.ts +0 -4
- package/dist/events/EmbeddingRequested.js +0 -2
- package/dist/events/EmbeddingRequested.js.map +0 -1
- package/dist/events/Emitted.d.ts +0 -4
- package/dist/events/Emitted.js +0 -2
- package/dist/events/Emitted.js.map +0 -1
- package/dist/events/EventBase.d.ts +0 -3
- package/dist/events/EventBase.js +0 -2
- package/dist/events/EventBase.js.map +0 -1
- package/dist/events/EventHandler.d.ts +0 -2
- package/dist/events/EventHandler.js +0 -2
- package/dist/events/EventHandler.js.map +0 -1
- package/dist/events/EventResolved.d.ts +0 -19
- package/dist/events/EventResolved.js +0 -2
- package/dist/events/EventResolved.js.map +0 -1
- package/dist/events/Forked.d.ts +0 -3
- package/dist/events/Forked.js +0 -2
- package/dist/events/Forked.js.map +0 -1
- package/dist/events/InferenceRequested.d.ts +0 -3
- package/dist/events/InferenceRequested.js +0 -2
- package/dist/events/InferenceRequested.js.map +0 -1
- package/dist/events/Inferred.d.ts +0 -5
- package/dist/events/Inferred.js +0 -2
- package/dist/events/Inferred.js.map +0 -1
- package/dist/events/LEvent.d.ts +0 -20
- package/dist/events/LEvent.js +0 -2
- package/dist/events/LEvent.js.map +0 -1
- package/dist/events/MessageAppended.d.ts +0 -5
- package/dist/events/MessageAppended.js +0 -2
- package/dist/events/MessageAppended.js.map +0 -1
- package/dist/events/MessageRemoved.d.ts +0 -5
- package/dist/events/MessageRemoved.js +0 -2
- package/dist/events/MessageRemoved.js.map +0 -1
- package/dist/events/MessagesSet.d.ts +0 -5
- package/dist/events/MessagesSet.js +0 -2
- package/dist/events/MessagesSet.js.map +0 -1
- package/dist/events/ModelPushed.d.ts +0 -7
- package/dist/events/ModelPushed.js +0 -2
- package/dist/events/ModelPushed.js.map +0 -1
- package/dist/events/ModelRemoved.d.ts +0 -7
- package/dist/events/ModelRemoved.js +0 -2
- package/dist/events/ModelRemoved.js.map +0 -1
- package/dist/events/Returned.d.ts +0 -4
- package/dist/events/Returned.js +0 -2
- package/dist/events/Returned.js.map +0 -1
- package/dist/events/SectionCleared.d.ts +0 -5
- package/dist/events/SectionCleared.js +0 -2
- package/dist/events/SectionCleared.js.map +0 -1
- package/dist/events/Sectioned.d.ts +0 -5
- package/dist/events/Sectioned.js +0 -2
- package/dist/events/Sectioned.js.map +0 -1
- package/dist/events/Threw.d.ts +0 -4
- package/dist/events/Threw.js +0 -2
- package/dist/events/Threw.js.map +0 -1
- package/dist/events/ToolCalled.d.ts +0 -6
- package/dist/events/ToolCalled.js +0 -2
- package/dist/events/ToolCalled.js.map +0 -1
- package/dist/events/ToolDisabled.d.ts +0 -5
- package/dist/events/ToolDisabled.js +0 -2
- package/dist/events/ToolDisabled.js.map +0 -1
- package/dist/events/ToolEnabled.d.ts +0 -7
- package/dist/events/ToolEnabled.js +0 -2
- package/dist/events/ToolEnabled.js.map +0 -1
- package/dist/events/isScopeChildEvent.d.ts +0 -6
- package/dist/events/isScopeChildEvent.js +0 -9
- package/dist/events/isScopeChildEvent.js.map +0 -1
- package/dist/events/isScopeDescendantEvent.d.ts +0 -14
- package/dist/events/isScopeDescendantEvent.js +0 -12
- package/dist/events/isScopeDescendantEvent.js.map +0 -1
- package/dist/testing/AgentAssertions.d.ts +0 -9
- package/dist/testing/AgentAssertions.js +0 -6
- package/dist/testing/AgentAssertions.js.map +0 -1
- package/dist/testing/TestEmbeddingModel.d.ts +0 -6
- package/dist/testing/TestEmbeddingModel.js +0 -11
- package/dist/testing/TestEmbeddingModel.js.map +0 -1
- package/dist/testing/TestLanguageModel.d.ts +0 -8
- package/dist/testing/TestLanguageModel.js +0 -22
- package/dist/testing/TestLanguageModel.js.map +0 -1
- package/dist/testing/index.d.ts +0 -4
- package/dist/testing/index.js +0 -5
- package/dist/testing/index.js.map +0 -1
- package/dist/testing/takeFirstAction.d.ts +0 -3
- package/dist/testing/takeFirstAction.js +0 -6
- package/dist/testing/takeFirstAction.js.map +0 -1
- package/dist/types/AssertDiagnostics.d.ts +0 -18
- package/dist/types/AssertDiagnostics.js +0 -152
- package/dist/types/AssertDiagnostics.js.map +0 -1
- package/dist/types/JSONRootType.d.ts +0 -6
- package/dist/types/JSONRootType.js +0 -2
- package/dist/types/JSONRootType.js.map +0 -1
- package/dist/types/JSONType.d.ts +0 -16
- package/dist/types/JSONType.js +0 -2
- package/dist/types/JSONType.js.map +0 -1
- package/dist/types/JSONTypeBase.d.ts +0 -3
- package/dist/types/JSONTypeBase.js +0 -2
- package/dist/types/JSONTypeBase.js.map +0 -1
- package/dist/types/Metatype/MetatypeDescriptor.d.ts +0 -41
- package/dist/types/Metatype/MetatypeDescriptor.js +0 -38
- package/dist/types/Metatype/MetatypeDescriptor.js.map +0 -1
- package/dist/types/Metatype/fromMetatypeDescriptor.d.ts +0 -6
- package/dist/types/Metatype/fromMetatypeDescriptor.js +0 -43
- package/dist/types/Metatype/fromMetatypeDescriptor.js.map +0 -1
- package/dist/types/Type.d.ts +0 -31
- package/dist/types/Type.js +0 -5
- package/dist/types/Type.js.map +0 -1
- package/dist/types/TypeContext.d.ts +0 -7
- package/dist/types/TypeContext.js +0 -17
- package/dist/types/TypeContext.js.map +0 -1
- package/dist/types/TypeLike.d.ts +0 -23
- package/dist/types/TypeLike.js +0 -23
- package/dist/types/TypeLike.js.map +0 -1
- package/dist/types/TypeVisitor.d.ts +0 -14
- package/dist/types/TypeVisitor.js +0 -12
- package/dist/types/TypeVisitor.js.map +0 -1
- package/dist/types/array.d.ts +0 -10
- package/dist/types/array.js +0 -9
- package/dist/types/array.js.map +0 -1
- package/dist/types/boolean.d.ts +0 -6
- package/dist/types/boolean.js +0 -3
- package/dist/types/boolean.js.map +0 -1
- package/dist/types/const.d.ts +0 -8
- package/dist/types/const.js +0 -7
- package/dist/types/const.js.map +0 -1
- package/dist/types/enum.d.ts +0 -8
- package/dist/types/enum.js +0 -7
- package/dist/types/enum.js.map +0 -1
- package/dist/types/factories.d.ts +0 -8
- package/dist/types/factories.js +0 -9
- package/dist/types/factories.js.map +0 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/types/integer.d.ts +0 -6
- package/dist/types/integer.js +0 -3
- package/dist/types/integer.js.map +0 -1
- package/dist/types/intrinsics.d.ts +0 -11
- package/dist/types/intrinsics.js +0 -12
- package/dist/types/intrinsics.js.map +0 -1
- package/dist/types/makeType.d.ts +0 -2
- package/dist/types/makeType.js +0 -58
- package/dist/types/makeType.js.map +0 -1
- package/dist/types/match.d.ts +0 -3
- package/dist/types/match.js +0 -11
- package/dist/types/match.js.map +0 -1
- package/dist/types/non_factories.d.ts +0 -21
- package/dist/types/non_factories.js +0 -9
- package/dist/types/non_factories.js.map +0 -1
- package/dist/types/null.d.ts +0 -7
- package/dist/types/null.js +0 -4
- package/dist/types/null.js.map +0 -1
- package/dist/types/number.d.ts +0 -6
- package/dist/types/number.js +0 -3
- package/dist/types/number.js.map +0 -1
- package/dist/types/object.d.ts +0 -16
- package/dist/types/object.js +0 -10
- package/dist/types/object.js.map +0 -1
- package/dist/types/ref.d.ts +0 -7
- package/dist/types/ref.js +0 -5
- package/dist/types/ref.js.map +0 -1
- package/dist/types/string.d.ts +0 -6
- package/dist/types/string.js +0 -3
- package/dist/types/string.js.map +0 -1
- package/dist/types/toJSON.d.ts +0 -5
- package/dist/types/toJSON.js +0 -97
- package/dist/types/toJSON.js.map +0 -1
- package/dist/types/type_common.d.ts +0 -10
- package/dist/types/type_common.js +0 -12
- package/dist/types/type_common.js.map +0 -1
- package/dist/types/types_derived/option.d.ts +0 -5
- package/dist/types/types_derived/option.js +0 -6
- package/dist/types/types_derived/option.js.map +0 -1
- package/dist/types/types_derived/taggedUnion.d.ts +0 -19
- package/dist/types/types_derived/taggedUnion.js +0 -8
- package/dist/types/types_derived/taggedUnion.js.map +0 -1
- package/dist/types/types_derived/wrapper.d.ts +0 -8
- package/dist/types/types_derived/wrapper.js +0 -5
- package/dist/types/types_derived/wrapper.js.map +0 -1
- package/dist/types/union.d.ts +0 -9
- package/dist/types/union.js +0 -9
- package/dist/types/union.js.map +0 -1
- package/dist/util/ArrayOfLength.d.ts +0 -1
- package/dist/util/ArrayOfLength.js +0 -2
- package/dist/util/ArrayOfLength.js.map +0 -1
- package/dist/util/DeferredOr.d.ts +0 -1
- package/dist/util/DeferredOr.js +0 -2
- package/dist/util/DeferredOr.js.map +0 -1
- package/dist/util/EnsureNarrow.d.ts +0 -2
- package/dist/util/EnsureNarrow.js +0 -2
- package/dist/util/EnsureNarrow.js.map +0 -1
- package/dist/util/EnsureRecord.d.ts +0 -2
- package/dist/util/EnsureRecord.js +0 -2
- package/dist/util/EnsureRecord.js.map +0 -1
- package/dist/util/Expand.d.ts +0 -3
- package/dist/util/Expand.js +0 -2
- package/dist/util/Expand.js.map +0 -1
- package/dist/util/Falsy.d.ts +0 -1
- package/dist/util/Falsy.js +0 -2
- package/dist/util/Falsy.js.map +0 -1
- package/dist/util/FromEntries.d.ts +0 -3
- package/dist/util/FromEntries.js +0 -2
- package/dist/util/FromEntries.js.map +0 -1
- package/dist/util/IteratorLike.d.ts +0 -1
- package/dist/util/IteratorLike.js +0 -2
- package/dist/util/IteratorLike.js.map +0 -1
- package/dist/util/JSONEntry.d.ts +0 -2
- package/dist/util/JSONEntry.js +0 -2
- package/dist/util/JSONEntry.js.map +0 -1
- package/dist/util/JSONKey.d.ts +0 -1
- package/dist/util/JSONKey.js +0 -2
- package/dist/util/JSONKey.js.map +0 -1
- package/dist/util/JSONObject.d.ts +0 -5
- package/dist/util/JSONObject.js +0 -2
- package/dist/util/JSONObject.js.map +0 -1
- package/dist/util/JSONSchemaMemo.d.ts +0 -2
- package/dist/util/JSONSchemaMemo.js +0 -13
- package/dist/util/JSONSchemaMemo.js.map +0 -1
- package/dist/util/JSONValue.d.ts +0 -2
- package/dist/util/JSONValue.js +0 -2
- package/dist/util/JSONValue.js.map +0 -1
- package/dist/util/PromiseOr.d.ts +0 -1
- package/dist/util/PromiseOr.js +0 -2
- package/dist/util/PromiseOr.js.map +0 -1
- package/dist/util/Result.d.ts +0 -7
- package/dist/util/Result.js +0 -2
- package/dist/util/Result.js.map +0 -1
- package/dist/util/Taggable.d.ts +0 -9
- package/dist/util/Taggable.js +0 -8
- package/dist/util/Taggable.js.map +0 -1
- package/dist/util/TupleToRecord.d.ts +0 -5
- package/dist/util/TupleToRecord.js +0 -2
- package/dist/util/TupleToRecord.js.map +0 -1
- package/dist/util/assert.d.ts +0 -1
- package/dist/util/assert.js +0 -7
- package/dist/util/assert.js.map +0 -1
- package/dist/util/dedent.d.ts +0 -1
- package/dist/util/dedent.js +0 -5
- package/dist/util/dedent.js.map +0 -1
- package/dist/util/fixTemplateStrings.d.ts +0 -11
- package/dist/util/fixTemplateStrings.js +0 -83
- package/dist/util/fixTemplateStrings.js.map +0 -1
- package/dist/util/fixTemplateStrings.test.d.ts +0 -1
- package/dist/util/fixTemplateStrings.test.js +0 -221
- package/dist/util/fixTemplateStrings.test.js.map +0 -1
- package/dist/util/isAsyncIterator.d.ts +0 -1
- package/dist/util/isAsyncIterator.js +0 -7
- package/dist/util/isAsyncIterator.js.map +0 -1
- package/dist/util/isIterator.d.ts +0 -1
- package/dist/util/isIterator.js +0 -7
- package/dist/util/isIterator.js.map +0 -1
- package/dist/util/isJSONValue.d.ts +0 -2
- package/dist/util/isJSONValue.js +0 -16
- package/dist/util/isJSONValue.js.map +0 -1
- package/dist/util/isPropertyKey.d.ts +0 -1
- package/dist/util/isPropertyKey.js +0 -4
- package/dist/util/isPropertyKey.js.map +0 -1
- package/dist/util/isTemplateStringsArray.d.ts +0 -1
- package/dist/util/isTemplateStringsArray.js +0 -4
- package/dist/util/isTemplateStringsArray.js.map +0 -1
- package/dist/util/jsonEquals.d.ts +0 -2
- package/dist/util/jsonEquals.js +0 -33
- package/dist/util/jsonEquals.js.map +0 -1
- package/dist/util/nullaryMemo.d.ts +0 -1
- package/dist/util/nullaryMemo.js +0 -12
- package/dist/util/nullaryMemo.js.map +0 -1
- package/dist/util/peekLast.d.ts +0 -1
- package/dist/util/peekLast.js +0 -4
- package/dist/util/peekLast.js.map +0 -1
- package/dist/util/unimplemented.d.ts +0 -1
- package/dist/util/unimplemented.js +0 -5
- package/dist/util/unimplemented.js.map +0 -1
- package/dist/util/unreachable.d.ts +0 -1
- package/dist/util/unreachable.js +0 -5
- package/dist/util/unreachable.js.map +0 -1
- package/dist/util/unwrapDeferred.d.ts +0 -2
- package/dist/util/unwrapDeferred.js +0 -4
- package/dist/util/unwrapDeferred.js.map +0 -1
- package/dist/util/util.d.ts +0 -10
- package/dist/util/util.js +0 -11
- package/dist/util/util.js.map +0 -1
- package/events/Aborted.ts +0 -5
- package/events/Embedded.ts +0 -6
- package/events/EmbeddingRequested.ts +0 -5
- package/events/Emitted.ts +0 -5
- package/events/EventBase.ts +0 -3
- package/events/EventHandler.ts +0 -3
- package/events/EventResolved.ts +0 -30
- package/events/Forked.ts +0 -3
- package/events/InferenceRequested.ts +0 -3
- package/events/Inferred.ts +0 -6
- package/events/LEvent.ts +0 -40
- package/events/MessageAppended.ts +0 -6
- package/events/MessageRemoved.ts +0 -6
- package/events/MessagesSet.ts +0 -6
- package/events/ModelPushed.ts +0 -10
- package/events/ModelRemoved.ts +0 -10
- package/events/Returned.ts +0 -5
- package/events/SectionCleared.ts +0 -6
- package/events/Sectioned.ts +0 -6
- package/events/Threw.ts +0 -5
- package/events/ToolCalled.ts +0 -7
- package/events/ToolDisabled.ts +0 -6
- package/events/ToolEnabled.ts +0 -8
- package/events/isScopeChildEvent.ts +0 -15
- package/events/isScopeDescendantEvent.ts +0 -30
- package/testing/AgentAssertions.ts +0 -17
- package/testing/TestEmbeddingModel.ts +0 -19
- package/testing/TestLanguageModel.ts +0 -33
- package/testing/index.ts +0 -4
- package/testing/takeFirstAction.ts +0 -8
- package/types/AssertDiagnostics.ts +0 -183
- package/types/JSONRootType.ts +0 -8
- package/types/JSONType.ts +0 -27
- package/types/JSONTypeBase.ts +0 -3
- package/types/Metatype/MetatypeDescriptor.ts +0 -80
- package/types/Metatype/fromMetatypeDescriptor.ts +0 -52
- package/types/Type.ts +0 -47
- package/types/TypeContext.ts +0 -19
- package/types/TypeLike.ts +0 -60
- package/types/TypeVisitor.ts +0 -49
- package/types/array.ts +0 -20
- package/types/boolean.ts +0 -9
- package/types/const.ts +0 -17
- package/types/enum.ts +0 -14
- package/types/factories.ts +0 -8
- package/types/index.ts +0 -2
- package/types/integer.ts +0 -9
- package/types/intrinsics.ts +0 -11
- package/types/makeType.ts +0 -72
- package/types/match.ts +0 -13
- package/types/non_factories.ts +0 -26
- package/types/null.ts +0 -10
- package/types/number.ts +0 -9
- package/types/object.ts +0 -27
- package/types/ref.ts +0 -12
- package/types/string.ts +0 -9
- package/types/toJSON.ts +0 -111
- package/types/type_common.ts +0 -21
- package/types/types_derived/option.ts +0 -10
- package/types/types_derived/taggedUnion.ts +0 -30
- package/types/types_derived/wrapper.ts +0 -10
- package/types/union.ts +0 -19
- package/util/ArrayOfLength.ts +0 -5
- package/util/DeferredOr.ts +0 -1
- package/util/EnsureNarrow.ts +0 -5
- package/util/EnsureRecord.ts +0 -3
- package/util/Expand.ts +0 -1
- package/util/Falsy.ts +0 -1
- package/util/FromEntries.ts +0 -3
- package/util/IteratorLike.ts +0 -1
- package/util/JSONEntry.ts +0 -3
- package/util/JSONKey.ts +0 -1
- package/util/JSONObject.ts +0 -6
- package/util/JSONSchemaMemo.ts +0 -15
- package/util/JSONValue.ts +0 -3
- package/util/PromiseOr.ts +0 -1
- package/util/Result.ts +0 -7
- package/util/Taggable.ts +0 -18
- package/util/TupleToRecord.ts +0 -5
- package/util/assert.ts +0 -7
- package/util/dedent.ts +0 -5
- package/util/fixTemplateStrings.test.ts +0 -250
- package/util/fixTemplateStrings.ts +0 -99
- package/util/isAsyncIterator.ts +0 -6
- package/util/isIterator.ts +0 -6
- package/util/isJSONValue.ts +0 -20
- package/util/isPropertyKey.ts +0 -3
- package/util/isTemplateStringsArray.ts +0 -3
- package/util/jsonEquals.ts +0 -41
- package/util/nullaryMemo.ts +0 -11
- package/util/peekLast.ts +0 -3
- package/util/unimplemented.ts +0 -5
- package/util/unreachable.ts +0 -5
- package/util/unwrapDeferred.ts +0 -5
- package/util/util.ts +0 -10
- /package/dist/{actions/actions_derived/declareModel.test.d.ts → Handler.d.ts} +0 -0
- /package/dist/{actions/actions_derived/declareModel.type-test.d.ts → L/namespace.d.ts} +0 -0
package/Agent.ts
CHANGED
|
@@ -1,10 +1,28 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
1
|
+
import { Fiber, type FiberInfo } from "./Fiber.ts"
|
|
2
|
+
import type { Rune, RuneKey } from "./Rune.ts"
|
|
3
|
+
import type { Runic } from "./Runic.ts"
|
|
4
4
|
|
|
5
|
-
export
|
|
5
|
+
export interface Agent<out T, out E> extends PromiseLike<T> {
|
|
6
|
+
T: T
|
|
7
|
+
E: E
|
|
8
|
+
}
|
|
6
9
|
|
|
7
|
-
export
|
|
10
|
+
export function Agent<Y extends Rune, T>(runic: Runic<Y, T>, config?: AgentConfig<Y, T>): Agent<T, Rune.E<Y>> {
|
|
11
|
+
return {
|
|
12
|
+
then(onfulfilled, onrejected) {
|
|
13
|
+
const root = Fiber({
|
|
14
|
+
globals: {
|
|
15
|
+
handler: config?.handler ?? (() => {}),
|
|
16
|
+
},
|
|
17
|
+
runic,
|
|
18
|
+
signal: config?.signal,
|
|
19
|
+
})
|
|
20
|
+
return root.run().then(onfulfilled, onrejected)
|
|
21
|
+
},
|
|
22
|
+
} satisfies Omit<Agent<T, Rune.E<Y>>, "E" | "T"> as never
|
|
23
|
+
}
|
|
8
24
|
|
|
9
|
-
export
|
|
10
|
-
|
|
25
|
+
export interface AgentConfig<Y extends Rune, _T> {
|
|
26
|
+
handler: (event: Y[RuneKey], info: FiberInfo) => void
|
|
27
|
+
signal?: AbortSignal
|
|
28
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# liminal
|
|
2
2
|
|
|
3
|
+
## 0.5.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 2d3a717: Complete rewrite of Liminal. Includes new packages for various integrations.
|
|
8
|
+
- Updated dependencies [2d3a717]
|
|
9
|
+
- Updated dependencies [ff04b9f]
|
|
10
|
+
- liminal-schema@0.0.1
|
|
11
|
+
- liminal-util@0.0.1
|
|
12
|
+
|
|
3
13
|
## 0.5.2
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
package/Fiber.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { Globals } from "./Globals.ts"
|
|
2
|
+
import { type FiberCreated, type FiberResolved, type FiberStarted, LEventTag } from "./LEvent.ts"
|
|
3
|
+
import type { Rune } from "./Rune.ts"
|
|
4
|
+
import { Runic } from "./Runic.ts"
|
|
5
|
+
import { DefaultStateMap } from "./state/DefaultStateMap.ts"
|
|
6
|
+
import { StateMap } from "./state/StateMap.ts"
|
|
7
|
+
|
|
8
|
+
export interface Fiber<out T = any> {
|
|
9
|
+
T: T
|
|
10
|
+
parent: Fiber<any> | undefined
|
|
11
|
+
status: FiberStatus<T>
|
|
12
|
+
fiberId: number
|
|
13
|
+
state: StateMap
|
|
14
|
+
globals: Globals
|
|
15
|
+
run(this: this): Promise<T>
|
|
16
|
+
handler<E>(event: E): void
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type FiberStatus<T> = {
|
|
20
|
+
type: "untouched"
|
|
21
|
+
} | {
|
|
22
|
+
type: "pending"
|
|
23
|
+
promise: Promise<T>
|
|
24
|
+
} | {
|
|
25
|
+
type: "resolved"
|
|
26
|
+
value: T
|
|
27
|
+
} | {
|
|
28
|
+
type: "rejected"
|
|
29
|
+
reason?: unknown
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface FiberInfo {
|
|
33
|
+
fiber: number
|
|
34
|
+
timestamp: number
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
let nextFiberId = 0
|
|
38
|
+
|
|
39
|
+
export interface FiberConfig<T> {
|
|
40
|
+
parent?: Fiber<any>
|
|
41
|
+
globals: Globals
|
|
42
|
+
runic: Runic<Rune, T>
|
|
43
|
+
state?: StateMap | undefined
|
|
44
|
+
signal?: AbortSignal | undefined
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function Fiber<T>(config: FiberConfig<T>): Fiber<T> {
|
|
48
|
+
const fiber = {
|
|
49
|
+
state: config.state ?? new DefaultStateMap(),
|
|
50
|
+
globals: config.globals,
|
|
51
|
+
parent: config.parent,
|
|
52
|
+
status: { type: "untouched" },
|
|
53
|
+
fiberId: nextFiberId++,
|
|
54
|
+
run,
|
|
55
|
+
handler,
|
|
56
|
+
} satisfies Omit<Fiber<T>, "T"> as Fiber<T>
|
|
57
|
+
fiber.handler<FiberCreated>({
|
|
58
|
+
[LEventTag]: "fiber_created",
|
|
59
|
+
})
|
|
60
|
+
return fiber
|
|
61
|
+
|
|
62
|
+
function handler<E>(this: Fiber<T>, event: E): void {
|
|
63
|
+
config.globals.handler(event, {
|
|
64
|
+
fiber: this.fiberId,
|
|
65
|
+
timestamp: Date.now(),
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
async function run(this: Fiber<T>): Promise<T> {
|
|
70
|
+
if (this.status.type === "pending") {
|
|
71
|
+
return await this.status.promise
|
|
72
|
+
} else if (this.status.type === "resolved") {
|
|
73
|
+
return this.status.value
|
|
74
|
+
} else if (this.status.type === "rejected") {
|
|
75
|
+
throw this.status.reason
|
|
76
|
+
}
|
|
77
|
+
this.handler<FiberStarted>({
|
|
78
|
+
[LEventTag]: "fiber_started",
|
|
79
|
+
})
|
|
80
|
+
const { promise, resolve, reject } = Promise.withResolvers<T>()
|
|
81
|
+
if (config.signal) {
|
|
82
|
+
if (config.signal.aborted) {
|
|
83
|
+
reject(config.signal.reason)
|
|
84
|
+
return await promise
|
|
85
|
+
} else {
|
|
86
|
+
config.signal.addEventListener("abort", () => {
|
|
87
|
+
reject(config.signal?.reason)
|
|
88
|
+
})
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
this.status = {
|
|
92
|
+
type: "pending",
|
|
93
|
+
promise,
|
|
94
|
+
}
|
|
95
|
+
queueMicrotask(async () => {
|
|
96
|
+
const iterator = Runic.unwrap(config.runic)
|
|
97
|
+
let nextArg: any
|
|
98
|
+
try {
|
|
99
|
+
let current = await iterator.next(nextArg)
|
|
100
|
+
while (!current.done) {
|
|
101
|
+
const rune = current.value
|
|
102
|
+
const nextArg = await rune(this)
|
|
103
|
+
current = await iterator.next(nextArg)
|
|
104
|
+
}
|
|
105
|
+
const { value } = current
|
|
106
|
+
this.handler<FiberResolved>({
|
|
107
|
+
[LEventTag]: "fiber_resolved",
|
|
108
|
+
value,
|
|
109
|
+
})
|
|
110
|
+
resolve(value)
|
|
111
|
+
} catch (reason: unknown) {
|
|
112
|
+
reject(reason)
|
|
113
|
+
}
|
|
114
|
+
})
|
|
115
|
+
return await promise
|
|
116
|
+
}
|
|
117
|
+
}
|
package/Globals.ts
ADDED
package/Handler.ts
ADDED
|
File without changes
|
package/L/L.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "liminal-schema/factories"
|
|
2
|
+
export * from "./_infer.ts"
|
|
3
|
+
export * from "./_message.ts"
|
|
4
|
+
export * from "./assistant.ts"
|
|
5
|
+
export * from "./branch.ts"
|
|
6
|
+
export * from "./emit.ts"
|
|
7
|
+
export * from "./fork.ts"
|
|
8
|
+
export * from "./join.ts"
|
|
9
|
+
export * from "./model.ts"
|
|
10
|
+
export * from "./self.ts"
|
|
11
|
+
export * from "./state.ts"
|
|
12
|
+
export * from "./system.ts"
|
|
13
|
+
export * from "./user.ts"
|
package/L/_infer.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { SchemaRoot } from "liminal-schema"
|
|
2
|
+
import { assert } from "liminal-util"
|
|
3
|
+
import { type InferenceRequested, type Inferred, type LEvent, LEventTag } from "../LEvent.ts"
|
|
4
|
+
import type { Rune } from "../Rune.ts"
|
|
5
|
+
import { Counter } from "../state/Counter.ts"
|
|
6
|
+
import { MessageRegistry } from "../state/MessageRegistry.ts"
|
|
7
|
+
import { ModelRegistry } from "../state/ModelRegistry.ts"
|
|
8
|
+
import { emit } from "./emit.ts"
|
|
9
|
+
import { rune } from "./rune.ts"
|
|
10
|
+
import { state } from "./state.ts"
|
|
11
|
+
|
|
12
|
+
export function* _infer(schema?: SchemaRoot): Generator<Rune<LEvent>, string> {
|
|
13
|
+
const [modelRegistry, { messages }, counter] = yield* state(
|
|
14
|
+
ModelRegistry,
|
|
15
|
+
MessageRegistry,
|
|
16
|
+
InferenceRequestCounter,
|
|
17
|
+
)
|
|
18
|
+
const model = modelRegistry.peek()
|
|
19
|
+
assert(model)
|
|
20
|
+
const requestId = counter.next()
|
|
21
|
+
yield* emit<InferenceRequested>({
|
|
22
|
+
[LEventTag]: "inference_requested",
|
|
23
|
+
...schema && { schema },
|
|
24
|
+
requestId,
|
|
25
|
+
})
|
|
26
|
+
const inference = yield* rune(() => model.resolve(messages, schema))
|
|
27
|
+
yield* emit<Inferred>({
|
|
28
|
+
[LEventTag]: "inferred",
|
|
29
|
+
inference,
|
|
30
|
+
requestId,
|
|
31
|
+
})
|
|
32
|
+
return inference
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
class InferenceRequestCounter extends Counter {}
|
package/L/_message.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type LEvent, LEventTag, type MessageAppended } from "../LEvent.ts"
|
|
2
|
+
import type { ContentPart, Message, MessageRole } from "../Message.ts"
|
|
3
|
+
import type { Rune } from "../Rune.ts"
|
|
4
|
+
import { MessageRegistry } from "../state/MessageRegistry.ts"
|
|
5
|
+
import { emit } from "./emit.ts"
|
|
6
|
+
import { state } from "./state.ts"
|
|
7
|
+
|
|
8
|
+
export interface _message extends Generator<Rune<LEvent>, void> {}
|
|
9
|
+
|
|
10
|
+
export function* _message(role: MessageRole, content: Array<ContentPart>): _message {
|
|
11
|
+
const [messageRegistry] = yield* state(MessageRegistry)
|
|
12
|
+
const message: Message = { role, content }
|
|
13
|
+
yield* emit<MessageAppended>({
|
|
14
|
+
[LEventTag]: "message_appended",
|
|
15
|
+
message,
|
|
16
|
+
})
|
|
17
|
+
messageRegistry.append(message)
|
|
18
|
+
}
|
package/L/all.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Fiber } from "../Fiber.ts"
|
|
2
|
+
import type { Rune } from "../Rune.ts"
|
|
3
|
+
import { rune } from "./rune.ts"
|
|
4
|
+
|
|
5
|
+
export interface all<A extends Array<any>> extends Generator<Rune<never>, Fiber<A>> {}
|
|
6
|
+
|
|
7
|
+
export function* all<XA extends Array<Fiber>>(
|
|
8
|
+
...fibers: XA
|
|
9
|
+
): all<{ [I in keyof XA]: XA[I]["T"] }> {
|
|
10
|
+
return (yield* rune((_fiber) => Promise.all(fibers.map((fiber) => fiber.run())))) as never
|
|
11
|
+
}
|
package/L/assistant.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { StandardSchemaV1 } from "@standard-schema/spec"
|
|
2
|
+
import { type LType, toJSONSchema } from "liminal-schema"
|
|
3
|
+
import type { json } from "liminal-util"
|
|
4
|
+
import { LiminalAssertionError } from "liminal-util"
|
|
5
|
+
import type { LEvent } from "../LEvent.ts"
|
|
6
|
+
import type { Rune } from "../Rune.ts"
|
|
7
|
+
import { _infer } from "./_infer.ts"
|
|
8
|
+
import { _message } from "./_message.ts"
|
|
9
|
+
import { rune } from "./rune.ts"
|
|
10
|
+
|
|
11
|
+
export interface assistant extends Iterable<Rune<LEvent>, string> {
|
|
12
|
+
<T>(schema: LType<T>): Generator<Rune<LEvent>, T>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const assistant: assistant = Object.assign(
|
|
16
|
+
function*<T>(type: LType<T>): Generator<Rune<LEvent>, T> {
|
|
17
|
+
const schema = toJSONSchema(type)
|
|
18
|
+
const inference = yield* _infer(schema)
|
|
19
|
+
yield* _message("assistant", [{ part: inference }])
|
|
20
|
+
const input = JSON.parse(inference)
|
|
21
|
+
const result = yield* rune(() => (type as StandardSchemaV1<json.ValueObject, T>)["~standard"].validate(input))
|
|
22
|
+
if (result.issues) {
|
|
23
|
+
throw new LiminalAssertionError(JSON.stringify(result.issues, null, 2))
|
|
24
|
+
}
|
|
25
|
+
return result.value
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
*[Symbol.iterator]() {
|
|
29
|
+
const inference = yield* _infer()
|
|
30
|
+
yield* _message("assistant", [{ part: inference }])
|
|
31
|
+
return inference
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
)
|
package/L/branch.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Fiber } from "../Fiber.ts"
|
|
2
|
+
import { type Rune } from "../Rune.ts"
|
|
3
|
+
import type { Runic } from "../Runic.ts"
|
|
4
|
+
import { all } from "./all.ts"
|
|
5
|
+
import { fork } from "./fork.ts"
|
|
6
|
+
import { join } from "./join.ts"
|
|
7
|
+
import { self } from "./self.ts"
|
|
8
|
+
|
|
9
|
+
export interface branch<Y extends Rune, T> extends Generator<Y, T> {}
|
|
10
|
+
|
|
11
|
+
export function branch<X extends Runic>(runic: X): branch<Runic.Y<X>, Runic.T<X>>
|
|
12
|
+
export function branch<XA extends Array<Runic>>(
|
|
13
|
+
runics: XA,
|
|
14
|
+
): branch<Runic.Y<XA[number]> | Rune<never>, { [I in keyof XA]: Runic.T<XA[I]> }>
|
|
15
|
+
export function branch<XR extends Record<keyof any, Runic>>(
|
|
16
|
+
runics: XR,
|
|
17
|
+
): branch<Runic.Y<XR[keyof XR]> | Rune<never>, { [K in keyof XR]: Runic.T<XR[K]> }>
|
|
18
|
+
export function* branch(value: Runic | Array<Runic> | Record<keyof any, Runic>): branch<Rune, any> {
|
|
19
|
+
const parent = yield* self
|
|
20
|
+
const { globals, state } = parent
|
|
21
|
+
if (Array.isArray(value)) {
|
|
22
|
+
const fibers = value.map((runic) =>
|
|
23
|
+
Fiber({
|
|
24
|
+
globals,
|
|
25
|
+
parent,
|
|
26
|
+
runic,
|
|
27
|
+
state: state.clone(),
|
|
28
|
+
})
|
|
29
|
+
)
|
|
30
|
+
return yield* join(yield* all(...fibers))
|
|
31
|
+
} else if (typeof value === "object") {
|
|
32
|
+
const fibers = Object.values(value).map((runic) =>
|
|
33
|
+
Fiber({
|
|
34
|
+
globals,
|
|
35
|
+
parent,
|
|
36
|
+
runic,
|
|
37
|
+
state: state.clone(),
|
|
38
|
+
})
|
|
39
|
+
)
|
|
40
|
+
const resolved = yield* join(yield* all(...fibers))
|
|
41
|
+
return Object.fromEntries(Object.keys(value).map((key, i) => [key, resolved[i]]))
|
|
42
|
+
}
|
|
43
|
+
const fiber = yield* fork(typeof value === "function" ? value() : value, state.clone())
|
|
44
|
+
return yield* join(fiber)
|
|
45
|
+
}
|
package/L/emit.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EnsureNarrow } from "liminal-util"
|
|
2
|
+
import type { Rune } from "../Rune.ts"
|
|
3
|
+
import { rune } from "./rune.ts"
|
|
4
|
+
|
|
5
|
+
export interface emit<E> extends Generator<Rune<E>, void> {}
|
|
6
|
+
|
|
7
|
+
export function* emit<const E>(event: EnsureNarrow<E>): emit<E> {
|
|
8
|
+
yield* rune((fiber) => {
|
|
9
|
+
fiber.handler(event)
|
|
10
|
+
})<E>()
|
|
11
|
+
}
|
package/L/fork.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Fiber } from "../Fiber.ts"
|
|
2
|
+
import type { Rune } from "../Rune.ts"
|
|
3
|
+
import type { Runic } from "../Runic.ts"
|
|
4
|
+
import type { StateMap } from "../state/StateMap.ts"
|
|
5
|
+
import { rune } from "./rune.ts"
|
|
6
|
+
|
|
7
|
+
export interface fork<Y extends Rune, T> extends Generator<Rune<never> | Y, Fiber<T>> {}
|
|
8
|
+
|
|
9
|
+
export function* fork<Y extends Rune, T>(runic: Runic<Y, T>, state?: StateMap): fork<Y, T> {
|
|
10
|
+
return yield* rune((parent) =>
|
|
11
|
+
Fiber({
|
|
12
|
+
globals: parent.globals,
|
|
13
|
+
parent,
|
|
14
|
+
runic,
|
|
15
|
+
state: state?.clone(),
|
|
16
|
+
})
|
|
17
|
+
)
|
|
18
|
+
}
|
package/L/join.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Fiber } from "../Fiber.ts"
|
|
2
|
+
import type { Rune } from "../Rune.ts"
|
|
3
|
+
import { rune } from "./rune.ts"
|
|
4
|
+
|
|
5
|
+
export interface join<X extends Fiber> extends Generator<Rune<never>, X["T"]> {}
|
|
6
|
+
|
|
7
|
+
export function* join<X extends Fiber>(fiber: X): join<X> {
|
|
8
|
+
return yield* rune((_fiber) => fiber.run())
|
|
9
|
+
}
|
package/L/model.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Model } from "../Model.ts"
|
|
2
|
+
import type { Rune } from "../Rune.ts"
|
|
3
|
+
import { ModelRegistry } from "../state/ModelRegistry.ts"
|
|
4
|
+
import { state } from "./state.ts"
|
|
5
|
+
|
|
6
|
+
export interface model extends Generator<Rune<never>, void> {}
|
|
7
|
+
|
|
8
|
+
export function* model(model: Model): model {
|
|
9
|
+
const [modelRegistry] = yield* state(ModelRegistry)
|
|
10
|
+
modelRegistry.register(model)
|
|
11
|
+
}
|
package/L/namespace.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// import type { Rune } from "../Rune"
|
|
2
|
+
// import type { Runic } from "../Runic"
|
|
3
|
+
|
|
4
|
+
// export function* namespace<K extends keyof any, X extends Runic>(
|
|
5
|
+
// key: K,
|
|
6
|
+
// runic: X,
|
|
7
|
+
// ): Generator<Rune<never> | Runic.Y<X>, Runic.T<X>> {
|
|
8
|
+
// const { globals, state } = self_
|
|
9
|
+
// const namespace = globals.namespace(key)
|
|
10
|
+
// return yield* rune((fiber) => Fiber(fiber.globals, fiber.parent, runic, state.clone()))
|
|
11
|
+
// }
|
package/L/rune.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Fiber } from "../Fiber.ts"
|
|
2
|
+
import { type Rune, RuneKey } from "../Rune.ts"
|
|
3
|
+
|
|
4
|
+
export interface rune<T> extends Iterable<Rune<never>, T> {
|
|
5
|
+
<E>(): Generator<Rune<E>, T>
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function rune<R>(source: (fiber: Fiber) => R): rune<Awaited<R>> {
|
|
9
|
+
return Object.assign(
|
|
10
|
+
function*<E>(): Generator<Rune<E>, Awaited<R>> {
|
|
11
|
+
return yield Object.assign(source, { [RuneKey]: {} as never })
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
*[Symbol.iterator](): Generator<Rune<never>, Awaited<R>> {
|
|
15
|
+
return yield Object.assign(source, { [RuneKey]: {} as never })
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
)
|
|
19
|
+
}
|
package/L/self.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Fiber } from "../Fiber.ts"
|
|
2
|
+
import type { Rune } from "../Rune.ts"
|
|
3
|
+
import { rune } from "./rune.ts"
|
|
4
|
+
|
|
5
|
+
export interface self {
|
|
6
|
+
[Symbol.iterator](): Generator<Rune<never>, Fiber>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const self: self = {
|
|
10
|
+
*[Symbol.iterator]() {
|
|
11
|
+
return yield* rune((fiber) => fiber)
|
|
12
|
+
},
|
|
13
|
+
}
|
package/L/state.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Rune } from "../Rune.ts"
|
|
2
|
+
import type { StateConstructor } from "../state/StateMap.ts"
|
|
3
|
+
import { rune } from "./rune.ts"
|
|
4
|
+
|
|
5
|
+
export interface state<CA extends Array<StateConstructor>>
|
|
6
|
+
extends Generator<Rune<never>, { [I in keyof CA]: InstanceType<CA[I]> }>
|
|
7
|
+
{}
|
|
8
|
+
|
|
9
|
+
export function* state<CA extends Array<StateConstructor>>(...constructors: CA): state<CA> {
|
|
10
|
+
return yield* rune((fiber) => {
|
|
11
|
+
return constructors.map((constructor) => {
|
|
12
|
+
let instance = fiber.state.get(constructor)
|
|
13
|
+
if (!instance) {
|
|
14
|
+
instance = new constructor()
|
|
15
|
+
fiber.state.set(constructor, instance)
|
|
16
|
+
}
|
|
17
|
+
return instance
|
|
18
|
+
}) as never
|
|
19
|
+
})
|
|
20
|
+
}
|
package/L/system.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isTemplateStringsArray } from "liminal-util"
|
|
2
|
+
import type { LEvent } from "../LEvent.ts"
|
|
3
|
+
import type { Rune } from "../Rune.ts"
|
|
4
|
+
import { _message } from "./_message.ts"
|
|
5
|
+
|
|
6
|
+
export interface system extends Generator<Rune<LEvent>, void> {}
|
|
7
|
+
|
|
8
|
+
export function system(template: TemplateStringsArray, ...substitutions: Array<string>): system
|
|
9
|
+
export function system(value: string): system
|
|
10
|
+
export function system(e0: TemplateStringsArray | string, ...rest: Array<string>): system {
|
|
11
|
+
const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0
|
|
12
|
+
return _message("system", [{ part }])
|
|
13
|
+
}
|
package/L/user.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isTemplateStringsArray } from "liminal-util"
|
|
2
|
+
import type { LEvent } from "../LEvent.ts"
|
|
3
|
+
import type { Rune } from "../Rune.ts"
|
|
4
|
+
import { _message } from "./_message.ts"
|
|
5
|
+
|
|
6
|
+
export interface user extends Generator<Rune<LEvent>, void> {}
|
|
7
|
+
|
|
8
|
+
export function user(template: TemplateStringsArray, ...substitutions: Array<string>): user
|
|
9
|
+
export function user(value: string): user
|
|
10
|
+
export function user(e0: TemplateStringsArray | string, ...rest: Array<string>): user {
|
|
11
|
+
const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0
|
|
12
|
+
return _message("user", [{ part }])
|
|
13
|
+
}
|
package/LEvent.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { SchemaRoot } from "liminal-schema"
|
|
2
|
+
import type { Message } from "./Message.ts"
|
|
3
|
+
|
|
4
|
+
export type LEvent = InferenceRequested | Inferred | MessageAppended | FiberCreated | FiberStarted | FiberResolved
|
|
5
|
+
|
|
6
|
+
export interface InferenceRequested extends LEventBase<"inference_requested"> {
|
|
7
|
+
requestId: number
|
|
8
|
+
schema?: SchemaRoot
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface Inferred extends LEventBase<"inferred"> {
|
|
12
|
+
requestId: number
|
|
13
|
+
inference: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface MessageAppended extends LEventBase<"message_appended"> {
|
|
17
|
+
message: Message
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface FiberCreated extends LEventBase<"fiber_created"> {}
|
|
21
|
+
export interface FiberStarted extends LEventBase<"fiber_started"> {}
|
|
22
|
+
export interface FiberResolved extends LEventBase<"fiber_resolved"> {
|
|
23
|
+
value: any
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface LEventBase<K extends string> {
|
|
27
|
+
[LEventTag]: K
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const LEventTag: unique symbol = Symbol.for("liminal/LEvent")
|
|
31
|
+
export type LEventTag = typeof LEventTag
|
|
32
|
+
|
|
33
|
+
export function isLEvent(value: unknown): value is LEvent {
|
|
34
|
+
return typeof value === "object" && value !== null && LEventTag in value
|
|
35
|
+
}
|
package/Message.ts
CHANGED
|
@@ -1,94 +1,15 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
user: UserMessage
|
|
5
|
-
assistant: AssistantMessage
|
|
6
|
-
tool: ToolMessage
|
|
1
|
+
export interface Message {
|
|
2
|
+
readonly role: MessageRole
|
|
3
|
+
readonly content: Array<ContentPart>
|
|
7
4
|
}
|
|
8
5
|
|
|
9
|
-
export
|
|
10
|
-
export interface UserMessage extends MessageBase<"user"> {}
|
|
11
|
-
export interface AssistantMessage extends MessageBase<"assistant"> {}
|
|
12
|
-
export interface ToolMessage extends MessageBase<"tool"> {}
|
|
6
|
+
export type MessageRole = "system" | "user" | "assistant"
|
|
13
7
|
|
|
14
|
-
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export type MessageContents = {
|
|
22
|
-
system: string
|
|
23
|
-
user: UserContent
|
|
24
|
-
assistant: AssistantContent
|
|
25
|
-
tool: ToolContent
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export type AssistantContent =
|
|
29
|
-
| string
|
|
30
|
-
| ReadonlyArray<TextPart | FilePart | ReasoningPart | RedactedReasoningPart | ToolCallPart>
|
|
31
|
-
|
|
32
|
-
export type UserContent = string | Array<TextPart | ImagePart | FilePart>
|
|
33
|
-
|
|
34
|
-
export type ToolContent = Array<ToolContentPart>
|
|
35
|
-
export interface ToolContentPart {
|
|
36
|
-
readonly type: "tool-result"
|
|
37
|
-
readonly toolCallId: string
|
|
38
|
-
readonly toolName: string
|
|
39
|
-
readonly result: unknown
|
|
40
|
-
readonly isError?: boolean
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface TextPart {
|
|
44
|
-
readonly type: "text"
|
|
45
|
-
readonly text: string
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// TODO: URL?
|
|
49
|
-
export type DataContent = string | Uint8Array | ArrayBuffer | Buffer
|
|
50
|
-
|
|
51
|
-
export interface FilePart {
|
|
52
|
-
type: "file"
|
|
53
|
-
/**
|
|
54
|
-
* File data. Can either be:
|
|
55
|
-
*
|
|
56
|
-
* - data: a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer
|
|
57
|
-
* - URL: a URL that points to the image
|
|
58
|
-
*/
|
|
59
|
-
readonly data: DataContent | URL
|
|
60
|
-
/** Optional filename of the file. */
|
|
61
|
-
readonly filename?: string
|
|
62
|
-
/** Mime type of the file. */
|
|
63
|
-
readonly mimeType: string
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export interface ReasoningPart {
|
|
67
|
-
readonly type: "reasoning"
|
|
68
|
-
/** The reasoning text. */
|
|
69
|
-
readonly text: string
|
|
70
|
-
/** An optional signature for verifying that the reasoning originated from the model. */
|
|
71
|
-
readonly signature?: string
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export interface RedactedReasoningPart {
|
|
75
|
-
readonly type: "redacted-reasoning"
|
|
76
|
-
/** Redacted reasoning data. */
|
|
77
|
-
readonly data: string
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export interface ToolCallPart {
|
|
81
|
-
readonly type: "tool-call"
|
|
82
|
-
/** ID of the tool call. This ID is used to match the tool call with the tool result. */
|
|
83
|
-
readonly toolCallId: string
|
|
84
|
-
/** Name of the tool that is being called. */
|
|
85
|
-
readonly toolName: string
|
|
86
|
-
/** Arguments of the tool call. This is a JSON-serializable object that matches the tool's input schema. */
|
|
87
|
-
readonly args: unknown
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface ImagePart {
|
|
91
|
-
readonly type: "image"
|
|
92
|
-
readonly image: DataContent | URL
|
|
93
|
-
readonly mimeType?: string
|
|
8
|
+
export type ContentPart = {
|
|
9
|
+
readonly part: string
|
|
10
|
+
readonly alt?: never
|
|
11
|
+
} | {
|
|
12
|
+
readonly part: URL
|
|
13
|
+
readonly alt: string
|
|
14
|
+
readonly mime?: string
|
|
94
15
|
}
|