liminal 0.5.2 → 0.5.4
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 +19 -0
- package/EventBase.ts +13 -0
- package/Fiber.ts +67 -0
- package/Globals.ts +10 -0
- package/Handler.ts +0 -0
- package/L/L.ts +12 -0
- package/L/_infer.ts +40 -0
- package/L/_message.ts +16 -0
- package/L/all.ts +11 -0
- package/L/assistant.ts +27 -0
- package/L/branch.ts +51 -0
- package/L/emit.ts +10 -0
- package/L/fork.ts +20 -0
- package/L/join.ts +9 -0
- package/L/model.ts +12 -0
- package/L/namespace.ts +11 -0
- package/L/rune.ts +19 -0
- package/L/self.ts +13 -0
- package/L/system.ts +13 -0
- package/L/user.ts +13 -0
- package/LEvent.ts +58 -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 +14 -1
- package/dist/Agent.js.map +1 -1
- package/dist/EventBase.d.ts +7 -0
- package/dist/EventBase.js +14 -0
- package/dist/EventBase.js.map +1 -0
- package/dist/Fiber.d.ts +24 -0
- package/dist/Fiber.js +37 -0
- package/dist/Fiber.js.map +1 -0
- package/dist/Globals.d.ts +6 -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 +12 -0
- package/dist/L/L.js +13 -0
- package/dist/L/L.js.map +1 -0
- package/dist/L/_infer.d.ts +4 -0
- package/dist/L/_infer.js +32 -0
- package/dist/L/_infer.js.map +1 -0
- package/dist/L/_message.d.ts +6 -0
- package/dist/L/_message.js +12 -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 +18 -0
- package/dist/L/assistant.js.map +1 -0
- package/dist/L/branch.d.ts +11 -0
- package/dist/L/branch.js +41 -0
- package/dist/L/branch.js.map +1 -0
- package/dist/L/emit.d.ts +5 -0
- package/dist/L/emit.js +6 -0
- package/dist/L/emit.js.map +1 -0
- package/dist/L/fork.js +20 -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 +8 -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/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 +31 -0
- package/dist/LEvent.js +49 -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 +10 -38
- package/dist/index.js +10 -38
- package/dist/index.js.map +1 -1
- package/dist/run.d.ts +3 -0
- package/dist/run.js +35 -0
- package/dist/run.js.map +1 -0
- package/dist/state/Context.d.ts +8 -0
- package/dist/state/Context.js +17 -0
- package/dist/state/Context.js.map +1 -0
- package/dist/state/MessageRegistry.d.ts +8 -0
- package/dist/state/MessageRegistry.js +17 -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 +16 -0
- package/dist/state/ModelRegistry.js +52 -0
- package/dist/state/ModelRegistry.js.map +1 -0
- package/dist/state/StateMap.d.ts +8 -0
- package/dist/state/StateMap.js +18 -0
- package/dist/state/StateMap.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +10 -38
- package/package.json +6 -10
- package/run.ts +39 -0
- package/state/Context.ts +19 -0
- package/state/MessageRegistry.ts +21 -0
- package/state/ModelConfig.ts +49 -0
- package/state/ModelRegistry.ts +65 -0
- package/state/StateMap.ts +24 -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.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/fork.d.ts} +0 -0
- /package/dist/{actions/actions_derived/messages.test.d.ts → L/namespace.d.ts} +0 -0
package/Agent.ts
CHANGED
|
@@ -1,10 +1,28 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
1
|
+
import type { FiberConfig, FiberInfo } from "./Fiber.ts"
|
|
2
|
+
import { run } from "./run.ts"
|
|
3
|
+
import type { Rune, RuneKey } from "./Rune.ts"
|
|
4
|
+
import type { Runic } from "./Runic.ts"
|
|
4
5
|
|
|
5
|
-
export
|
|
6
|
+
export interface Agent<out T, out E> extends PromiseLike<T> {
|
|
7
|
+
T: T
|
|
8
|
+
E: E
|
|
9
|
+
}
|
|
6
10
|
|
|
7
|
-
export
|
|
11
|
+
export function Agent<Y extends Rune, T>(runic: Runic<Y, T>, config?: AgentConfig<Y, T>): Agent<T, Rune.E<Y>> {
|
|
12
|
+
return {
|
|
13
|
+
then(onfulfilled, onrejected) {
|
|
14
|
+
return run(runic, {
|
|
15
|
+
T: null!,
|
|
16
|
+
globals: {
|
|
17
|
+
handler: config?.handler ?? (() => {}),
|
|
18
|
+
},
|
|
19
|
+
signal: config?.signal,
|
|
20
|
+
}).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,24 @@
|
|
|
1
1
|
# liminal
|
|
2
2
|
|
|
3
|
+
## 0.5.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 284adab: Reintroduce AI SDK adapter and begin simplifying runic execution.
|
|
8
|
+
- Updated dependencies [284adab]
|
|
9
|
+
- liminal-schema@0.0.2
|
|
10
|
+
- liminal-util@0.0.2
|
|
11
|
+
|
|
12
|
+
## 0.5.3
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 2d3a717: Complete rewrite of Liminal. Includes new packages for various integrations.
|
|
17
|
+
- Updated dependencies [2d3a717]
|
|
18
|
+
- Updated dependencies [ff04b9f]
|
|
19
|
+
- liminal-schema@0.0.1
|
|
20
|
+
- liminal-util@0.0.1
|
|
21
|
+
|
|
3
22
|
## 0.5.2
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/EventBase.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { inspect, type InspectOptions } from "node:util"
|
|
2
|
+
|
|
3
|
+
export abstract class EventBase<B extends symbol, K extends string> {
|
|
4
|
+
constructor(
|
|
5
|
+
readonly brand: B,
|
|
6
|
+
readonly type: K,
|
|
7
|
+
) {}
|
|
8
|
+
|
|
9
|
+
[inspect.custom](depth: number, options: InspectOptions) {
|
|
10
|
+
const { brand: _0, type: _1, ...rest } = this
|
|
11
|
+
return `${this.constructor.name} ` + inspect(rest, { ...options, depth })
|
|
12
|
+
}
|
|
13
|
+
}
|
package/Fiber.ts
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { assert } from "liminal-util"
|
|
2
|
+
import type { Globals } from "./Globals.ts"
|
|
3
|
+
import { FiberCreated, FiberResolved, FiberStarted } from "./LEvent.ts"
|
|
4
|
+
import type { Rune } from "./Rune.ts"
|
|
5
|
+
import { Runic } from "./Runic.ts"
|
|
6
|
+
import type { StateMap } from "./state/StateMap.ts"
|
|
7
|
+
|
|
8
|
+
export interface Fiber<out T = any> {
|
|
9
|
+
T: T
|
|
10
|
+
runic: Runic<Rune, T>
|
|
11
|
+
globals: Globals
|
|
12
|
+
parent: Fiber<any> | undefined
|
|
13
|
+
fiberId: number
|
|
14
|
+
handler<E>(event: E): void
|
|
15
|
+
run(): Promise<T>
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface FiberInfo {
|
|
19
|
+
fiber: number
|
|
20
|
+
timestamp: number
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
let nextFiberId = 0
|
|
24
|
+
|
|
25
|
+
export interface FiberConfig<T = any> {
|
|
26
|
+
T: T
|
|
27
|
+
signal?: AbortSignal | undefined
|
|
28
|
+
globals: Globals
|
|
29
|
+
state?: StateMap | undefined
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function handler<E>(fiberConfig: FiberConfig, event: E): void {
|
|
33
|
+
fiberConfig.globals.handler(event, {
|
|
34
|
+
// fiber: fiberConfig.fiberId,
|
|
35
|
+
timestamp: Date.now(),
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// export interface FiberConfig<T> {
|
|
40
|
+
// parent?: Fiber<any>
|
|
41
|
+
// globals: Globals
|
|
42
|
+
// runic: Runic<Rune, T>
|
|
43
|
+
// signal?: AbortSignal | undefined
|
|
44
|
+
// }
|
|
45
|
+
|
|
46
|
+
// export function Fiber<T>(config: FiberConfig<T>): Fiber<T> {
|
|
47
|
+
// const fiber = {
|
|
48
|
+
// runic: config.runic,
|
|
49
|
+
// globals: config.globals,
|
|
50
|
+
// parent: config.parent,
|
|
51
|
+
// fiberId: nextFiberId++,
|
|
52
|
+
// handler,
|
|
53
|
+
// run,
|
|
54
|
+
// } satisfies Omit<Fiber<T>, "T"> as Fiber<T>
|
|
55
|
+
|
|
56
|
+
// fiber.handler(new FiberCreated())
|
|
57
|
+
// return fiber
|
|
58
|
+
|
|
59
|
+
// async function run(this: Fiber<T>): Promise<T> {
|
|
60
|
+
// fiber.handler(new FiberStarted())
|
|
61
|
+
// const iterator = Runic.unwrap(this.runic)
|
|
62
|
+
// const result = await iterator.next()
|
|
63
|
+
// assert(result.done)
|
|
64
|
+
// fiber.handler(new FiberResolved(result.value))
|
|
65
|
+
// return result.value
|
|
66
|
+
// }
|
|
67
|
+
// }
|
package/Globals.ts
ADDED
package/Handler.ts
ADDED
|
File without changes
|
package/L/L.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
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 "./system.ts"
|
|
12
|
+
export * from "./user.ts"
|
package/L/_infer.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SchemaObject } from "liminal-schema"
|
|
2
|
+
import { assert } from "liminal-util"
|
|
3
|
+
import { InferenceRequested, Inferred, type LEvent } from "../LEvent.ts"
|
|
4
|
+
import type { Rune } from "../Rune.ts"
|
|
5
|
+
import { context } from "../state/Context.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
|
+
|
|
11
|
+
export function* _infer(schema?: SchemaObject): Generator<Rune<LEvent>, string> {
|
|
12
|
+
const state = context.get()
|
|
13
|
+
const modelRegistry = state.getOrInit(ModelRegistry.make)
|
|
14
|
+
const model = modelRegistry.peek()
|
|
15
|
+
const messageRegistry = state.getOrInit(MessageRegistry.make)
|
|
16
|
+
const counter = state.getOrInit(InferenceRequestCounter)
|
|
17
|
+
assert(model)
|
|
18
|
+
const requestId = counter.next()
|
|
19
|
+
yield* emit(new InferenceRequested(requestId, schema))
|
|
20
|
+
const inference = yield* rune(() => model.resolve(messageRegistry.messages, schema))
|
|
21
|
+
yield* emit(new Inferred(requestId, inference))
|
|
22
|
+
return inference
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function InferenceRequestCounter(instance?: Counter) {
|
|
26
|
+
return {
|
|
27
|
+
count: instance?.count ?? 0,
|
|
28
|
+
next() {
|
|
29
|
+
return this.count++
|
|
30
|
+
},
|
|
31
|
+
clone() {
|
|
32
|
+
return InferenceRequestCounter(this)
|
|
33
|
+
},
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
interface Counter {
|
|
38
|
+
count: number
|
|
39
|
+
next(): number
|
|
40
|
+
}
|
package/L/_message.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type LEvent, MessageAppended } from "../LEvent.ts"
|
|
2
|
+
import type { ContentPart, Message, MessageRole } from "../Message.ts"
|
|
3
|
+
import type { Rune } from "../Rune.ts"
|
|
4
|
+
import { context } from "../state/Context.ts"
|
|
5
|
+
import { MessageRegistry } from "../state/MessageRegistry.ts"
|
|
6
|
+
import { emit } from "./emit.ts"
|
|
7
|
+
|
|
8
|
+
export interface _message extends Generator<Rune<LEvent>, void> {}
|
|
9
|
+
|
|
10
|
+
export function* _message(role: MessageRole, content: Array<ContentPart>): _message {
|
|
11
|
+
const state = context.get()
|
|
12
|
+
const messageRegistry = state.getOrInit(MessageRegistry.make)
|
|
13
|
+
const message: Message = { role, content }
|
|
14
|
+
yield* emit(new MessageAppended(message))
|
|
15
|
+
messageRegistry.append(message)
|
|
16
|
+
}
|
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,27 @@
|
|
|
1
|
+
import { type LType, toJSONSchema, validate } from "liminal-schema"
|
|
2
|
+
import type { LEvent } from "../LEvent.ts"
|
|
3
|
+
import type { Rune } from "../Rune.ts"
|
|
4
|
+
import { _infer } from "./_infer.ts"
|
|
5
|
+
import { _message } from "./_message.ts"
|
|
6
|
+
import { rune } from "./rune.ts"
|
|
7
|
+
|
|
8
|
+
export interface assistant extends Iterable<Rune<LEvent>, string> {
|
|
9
|
+
<T>(schema: LType<T>): Generator<Rune<LEvent>, T>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const assistant: assistant = Object.assign(
|
|
13
|
+
function*<T>(type: LType<T>): Generator<Rune<LEvent>, T> {
|
|
14
|
+
const schema = toJSONSchema(type)
|
|
15
|
+
const inference = yield* _infer(schema)
|
|
16
|
+
yield* _message("assistant", [{ part: inference }])
|
|
17
|
+
const input = JSON.parse(inference)
|
|
18
|
+
return yield* rune(() => validate(type, input))
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
*[Symbol.iterator]() {
|
|
22
|
+
const inference = yield* _infer()
|
|
23
|
+
yield* _message("assistant", [{ part: inference }])
|
|
24
|
+
return inference
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
)
|
package/L/branch.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { FiberConfig } from "../Fiber.ts"
|
|
2
|
+
import { run } from "../run.ts"
|
|
3
|
+
import { type Rune } from "../Rune.ts"
|
|
4
|
+
import type { Runic } from "../Runic.ts"
|
|
5
|
+
import { context } from "../state/Context.ts"
|
|
6
|
+
import { rune } from "./rune.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 } = parent
|
|
21
|
+
if (Array.isArray(value)) {
|
|
22
|
+
const runners = value.map((runic) => {
|
|
23
|
+
const state = context.get()
|
|
24
|
+
const fiberConfig: FiberConfig = {
|
|
25
|
+
T: null!,
|
|
26
|
+
globals,
|
|
27
|
+
state,
|
|
28
|
+
}
|
|
29
|
+
return () => run(runic, fiberConfig)
|
|
30
|
+
})
|
|
31
|
+
return yield* rune(() => Promise.all(runners.map((runner) => runner())))
|
|
32
|
+
} else if (typeof value === "object") {
|
|
33
|
+
const runners = Object.entries(value).map(([key, runic]) => {
|
|
34
|
+
const state = context.get()
|
|
35
|
+
const fiberConfig: FiberConfig = {
|
|
36
|
+
T: null!,
|
|
37
|
+
globals,
|
|
38
|
+
state,
|
|
39
|
+
}
|
|
40
|
+
return async () => [key, await run(runic, fiberConfig)]
|
|
41
|
+
})
|
|
42
|
+
return yield* rune(() => Promise.all(runners.map((runner) => runner())).then(Object.fromEntries))
|
|
43
|
+
}
|
|
44
|
+
const state = context.get()
|
|
45
|
+
const fiberConfig: FiberConfig = {
|
|
46
|
+
T: null!,
|
|
47
|
+
globals,
|
|
48
|
+
state,
|
|
49
|
+
}
|
|
50
|
+
return yield* rune(() => run(typeof value === "function" ? value() : value, fiberConfig))
|
|
51
|
+
}
|
package/L/emit.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EnsureNarrow } from "liminal-util"
|
|
2
|
+
import { handler } from "../Fiber.ts"
|
|
3
|
+
import type { Rune } from "../Rune.ts"
|
|
4
|
+
import { rune } from "./rune.ts"
|
|
5
|
+
|
|
6
|
+
export interface emit<E> extends Generator<Rune<E>, void> {}
|
|
7
|
+
|
|
8
|
+
export function* emit<const E>(event: EnsureNarrow<E>): emit<E> {
|
|
9
|
+
yield* rune((fiberConfig) => handler(fiberConfig, event))<E>()
|
|
10
|
+
}
|
package/L/fork.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// import type { FiberConfig } from "../Fiber.ts"
|
|
2
|
+
// import type { Rune } from "../Rune.ts"
|
|
3
|
+
// import type { Runic } from "../Runic.ts"
|
|
4
|
+
// import { runic as runic_ } from "./runic.ts"
|
|
5
|
+
// import { self } from "./self.ts"
|
|
6
|
+
|
|
7
|
+
// export interface fork<Y extends Rune, T> extends Generator<Rune<any> | Y, FiberConfig<T>> {}
|
|
8
|
+
|
|
9
|
+
// export function* fork<Y extends Rune, T>(runic: Runic<Y, T>): fork<Y, T> {
|
|
10
|
+
// const parent = yield* self
|
|
11
|
+
// const { globals, state, signal } = parent
|
|
12
|
+
// const controller = new AbortController()
|
|
13
|
+
// const fiberConfig: FiberConfig = {
|
|
14
|
+
// T: null!,
|
|
15
|
+
// globals,
|
|
16
|
+
// signal: controller.signal,
|
|
17
|
+
// state: state?.clone(),
|
|
18
|
+
// }
|
|
19
|
+
// return (yield* runic_(runic, fiberConfig)) as never
|
|
20
|
+
// }
|
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,12 @@
|
|
|
1
|
+
import type { Model } from "../Model.ts"
|
|
2
|
+
import type { Rune } from "../Rune.ts"
|
|
3
|
+
import { context } from "../state/Context.ts"
|
|
4
|
+
import { ModelRegistry } from "../state/ModelRegistry.ts"
|
|
5
|
+
|
|
6
|
+
export interface model extends Generator<Rune<never>, void> {}
|
|
7
|
+
|
|
8
|
+
export function* model(model: Model): model {
|
|
9
|
+
const state = context.get()
|
|
10
|
+
const modelRegistry = state.getOrInit(ModelRegistry.make)
|
|
11
|
+
modelRegistry.register(model)
|
|
12
|
+
}
|
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 { FiberConfig } 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: (fiberConfig: FiberConfig) => 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 { FiberConfig } 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>, FiberConfig>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const self: self = {
|
|
10
|
+
*[Symbol.iterator]() {
|
|
11
|
+
return yield* rune((fiberConfig) => fiberConfig)
|
|
12
|
+
},
|
|
13
|
+
}
|
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,58 @@
|
|
|
1
|
+
import type { SchemaObject } from "liminal-schema"
|
|
2
|
+
import { EventBase } from "./EventBase.ts"
|
|
3
|
+
import type { Message } from "./Message.ts"
|
|
4
|
+
|
|
5
|
+
export type LEvent = InferenceRequested | Inferred | MessageAppended | FiberCreated | FiberStarted | FiberResolved
|
|
6
|
+
|
|
7
|
+
export const LEventTag: unique symbol = Symbol.for("liminal/LEvent")
|
|
8
|
+
export type LEventTag = typeof LEventTag
|
|
9
|
+
|
|
10
|
+
export class InferenceRequested extends EventBase<LEventTag, "inference_requested"> {
|
|
11
|
+
declare schema?: SchemaObject
|
|
12
|
+
constructor(
|
|
13
|
+
readonly requestId: number,
|
|
14
|
+
schema?: SchemaObject | undefined,
|
|
15
|
+
) {
|
|
16
|
+
super(LEventTag, "inference_requested")
|
|
17
|
+
if (schema) {
|
|
18
|
+
this.schema = schema
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export class Inferred extends EventBase<LEventTag, "inferred"> {
|
|
24
|
+
constructor(
|
|
25
|
+
readonly requestId: number,
|
|
26
|
+
readonly inference: string,
|
|
27
|
+
) {
|
|
28
|
+
super(LEventTag, "inferred")
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export class MessageAppended extends EventBase<LEventTag, "message_appended"> {
|
|
33
|
+
constructor(readonly message: Message) {
|
|
34
|
+
super(LEventTag, "message_appended")
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class FiberCreated extends EventBase<LEventTag, "fiber_created"> {
|
|
39
|
+
constructor() {
|
|
40
|
+
super(LEventTag, "fiber_created")
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export class FiberStarted extends EventBase<LEventTag, "fiber_started"> {
|
|
45
|
+
constructor() {
|
|
46
|
+
super(LEventTag, "fiber_started")
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export class FiberResolved extends EventBase<LEventTag, "fiber_resolved"> {
|
|
51
|
+
constructor(readonly value: any) {
|
|
52
|
+
super(LEventTag, "fiber_resolved")
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function isLEvent(value: unknown): value is LEvent {
|
|
57
|
+
return typeof value === "object" && value !== null && LEventTag in value
|
|
58
|
+
}
|
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
|
}
|
package/Model.ts
CHANGED
|
@@ -1,26 +1,13 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type { Agent } from "./Agent.ts"
|
|
4
|
-
import type { JSONObject } from "./util/JSONObject.ts"
|
|
1
|
+
import type { Schema } from "liminal-schema"
|
|
2
|
+
import type { Message } from "./Message.ts"
|
|
5
3
|
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
export interface LanguageModel extends ModelBase<"language"> {
|
|
9
|
-
infer: (type: StandardSchemaV1<JSONObject, any> | undefined) => Agent<Action, any>
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface EmbeddingModel extends ModelBase<"embedding"> {
|
|
13
|
-
embed: (value: string) => Promise<Array<number>>
|
|
4
|
+
export interface Model {
|
|
5
|
+
resolve(messages: Array<Message>, schema?: Schema): Promise<string>
|
|
14
6
|
}
|
|
15
7
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export type Models = {
|
|
24
|
-
language: LanguageModel
|
|
25
|
-
embedding: EmbeddingModel
|
|
26
|
-
}
|
|
8
|
+
// export interface ModelCapabilities {
|
|
9
|
+
// readonly url: boolean
|
|
10
|
+
// readonly mimes: Set<string>
|
|
11
|
+
// readonly reasoning: boolean
|
|
12
|
+
// readonly structures: boolean
|
|
13
|
+
// }
|