@plurnk/plurnk-service 1.7.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +49 -42
- package/INSTALL.md +48 -11
- package/README.md +12 -2
- package/SPEC.md +1166 -475
- package/digest-sql/channel-dispositions/dispositions.sql +15 -0
- package/digest-sql/channel-state/state.sql +6 -0
- package/digest-sql/curation/curation.sql +5 -0
- package/digest-sql/derivations/derivations.sql +4 -0
- package/digest-sql/embeddings/embeddings.sql +4 -0
- package/digest-sql/entry-dispositions/dispositions.sql +15 -0
- package/digest-sql/entry-state/state.sql +6 -0
- package/digest-sql/token-counts/token-counts.sql +2 -0
- package/dist/Paths.d.ts +0 -4
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +1 -21
- package/dist/Paths.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +4 -3
- package/dist/content/read-projector.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +12 -22
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +8 -3
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +40 -8
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +19 -5
- package/dist/core/CoreSchemeServices.d.ts +7 -3
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +8 -1
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +15 -6
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +352 -306
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts +22 -10
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +86 -46
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +202 -177
- package/dist/core/EntryAddressBinding.d.ts +32 -0
- package/dist/core/EntryAddressBinding.d.ts.map +1 -0
- package/dist/core/EntryAddressBinding.js +93 -0
- package/dist/core/EntryAddressBinding.js.map +1 -0
- package/dist/core/ExecutorRegistry.d.ts +12 -6
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +34 -31
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/HostPaths.d.ts +29 -0
- package/dist/core/HostPaths.d.ts.map +1 -0
- package/dist/core/HostPaths.js +74 -0
- package/dist/core/HostPaths.js.map +1 -0
- package/dist/core/LegacyHome.d.ts +10 -0
- package/dist/core/LegacyHome.d.ts.map +1 -0
- package/dist/core/LegacyHome.js +170 -0
- package/dist/core/LegacyHome.js.map +1 -0
- package/dist/core/LogBody.d.ts +1 -1
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +21 -3
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogEntryProjection.js +1 -1
- package/dist/core/LogEntryProjection.js.map +1 -1
- package/dist/core/LogVisibility.d.ts +28 -0
- package/dist/core/LogVisibility.d.ts.map +1 -0
- package/dist/core/LogVisibility.js +215 -0
- package/dist/core/LogVisibility.js.map +1 -0
- package/dist/core/LoopLifecycle.d.ts +1 -0
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +8 -0
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +10 -0
- package/dist/core/OperatorConfig.d.ts +6 -0
- package/dist/core/OperatorConfig.d.ts.map +1 -0
- package/dist/core/OperatorConfig.js +95 -0
- package/dist/core/OperatorConfig.js.map +1 -0
- package/dist/core/OverflowTurn.d.ts +11 -0
- package/dist/core/OverflowTurn.d.ts.map +1 -0
- package/dist/core/OverflowTurn.js +81 -0
- package/dist/core/OverflowTurn.js.map +1 -0
- package/dist/core/Owner.js +3 -3
- package/dist/core/Owner.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts +7 -15
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +64 -127
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ProblemLog.js +1 -1
- package/dist/core/ProblemLog.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +4 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +86 -47
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProviderInstantiate.d.ts +9 -5
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +99 -104
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/ReasoningEvent.d.ts +13 -0
- package/dist/core/ReasoningEvent.d.ts.map +1 -0
- package/dist/core/ReasoningEvent.js +6 -0
- package/dist/core/ReasoningEvent.js.map +1 -0
- package/dist/core/ResourceMutations.d.ts +15 -19
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +118 -41
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +12 -12
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +58 -57
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ToolResources.d.ts +19 -0
- package/dist/core/ToolResources.d.ts.map +1 -0
- package/dist/core/ToolResources.js +123 -0
- package/dist/core/ToolResources.js.map +1 -0
- package/dist/core/Turn.d.ts +27 -0
- package/dist/core/Turn.d.ts.map +1 -0
- package/dist/core/Turn.js +43 -0
- package/dist/core/Turn.js.map +1 -0
- package/dist/core/Turn.sql +72 -0
- package/dist/core/TurnOps.d.ts +7 -0
- package/dist/core/TurnOps.d.ts.map +1 -0
- package/dist/core/TurnOps.js +73 -0
- package/dist/core/TurnOps.js.map +1 -0
- package/dist/core/TurnRunner.d.ts +56 -5
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +1163 -929
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerName.d.ts +2 -1
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +2 -1
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkerName.sql +17 -2
- package/dist/core/WorkspaceGate.js +1 -1
- package/dist/core/WorkspaceGate.js.map +1 -1
- package/dist/core/caps/CapsResolve.d.ts +2 -2
- package/dist/core/caps/CapsResolve.d.ts.map +1 -1
- package/dist/core/caps/CapsResolve.js +5 -7
- package/dist/core/caps/CapsResolve.js.map +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
- package/dist/core/caps/DbChannelCaps.js +13 -11
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts +5 -5
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +27 -30
- package/dist/core/caps/DbEntryCaps.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +5 -3
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts +3 -3
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +16 -26
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +6 -4
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +37 -5
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/env-defaults.d.ts.map +1 -1
- package/dist/core/env-defaults.js +7 -5
- package/dist/core/env-defaults.js.map +1 -1
- package/dist/core/file-creation-policy.d.ts +9 -0
- package/dist/core/file-creation-policy.d.ts.map +1 -0
- package/dist/core/file-creation-policy.js +25 -0
- package/dist/core/file-creation-policy.js.map +1 -0
- package/dist/core/fork.d.ts +4 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +39 -16
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +83 -40
- package/dist/core/git-env.d.ts +0 -1
- package/dist/core/git-env.d.ts.map +1 -1
- package/dist/core/git-env.js +0 -3
- package/dist/core/git-env.js.map +1 -1
- package/dist/core/git-membership.d.ts +19 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +233 -74
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/git-state.d.ts.map +1 -1
- package/dist/core/git-state.js +13 -14
- package/dist/core/git-state.js.map +1 -1
- package/dist/core/operation-target-groups.d.ts +3 -0
- package/dist/core/operation-target-groups.d.ts.map +1 -0
- package/dist/core/operation-target-groups.js +53 -0
- package/dist/core/operation-target-groups.js.map +1 -0
- package/dist/core/packet-inject.d.ts +0 -1
- package/dist/core/packet-inject.d.ts.map +1 -1
- package/dist/core/packet-inject.js +6 -13
- package/dist/core/packet-inject.js.map +1 -1
- package/dist/core/packet-wire.d.ts +4 -0
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +226 -53
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +14 -3
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +62 -24
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +1 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/teaching.d.ts.map +1 -1
- package/dist/core/teaching.js +4 -5
- package/dist/core/teaching.js.map +1 -1
- package/dist/core/worker-ops.sql +10 -6
- package/dist/core/worker-settings.d.ts +10 -0
- package/dist/core/worker-settings.d.ts.map +1 -0
- package/dist/core/worker-settings.js +32 -0
- package/dist/core/worker-settings.js.map +1 -0
- package/dist/core/workspace-settings.d.ts +2 -11
- package/dist/core/workspace-settings.d.ts.map +1 -1
- package/dist/core/workspace-settings.js +7 -47
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +164 -92
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +9 -3
- package/dist/observe/genai.d.ts +9 -0
- package/dist/observe/genai.d.ts.map +1 -0
- package/dist/observe/genai.js +31 -0
- package/dist/observe/genai.js.map +1 -0
- package/dist/observe/spans.d.ts +3 -3
- package/dist/observe/spans.d.ts.map +1 -1
- package/dist/observe/spans.js +20 -5
- package/dist/observe/spans.js.map +1 -1
- package/dist/schemes/EffectPolicy.d.ts +3 -0
- package/dist/schemes/EffectPolicy.d.ts.map +1 -1
- package/dist/schemes/EffectPolicy.js +38 -6
- package/dist/schemes/EffectPolicy.js.map +1 -1
- package/dist/schemes/Exec.d.ts +3 -2
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +109 -34
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +5 -4
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +170 -80
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts +6 -2
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +73 -22
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +25 -7
- package/dist/schemes/Prompt.d.ts +2 -3
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +5 -9
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/QuestionTool.d.ts +10 -0
- package/dist/schemes/QuestionTool.d.ts.map +1 -0
- package/dist/schemes/QuestionTool.js +81 -0
- package/dist/schemes/QuestionTool.js.map +1 -0
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +6 -1
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +97 -34
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +5 -5
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +22 -17
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +77 -24
- package/dist/schemes/_entry-find.d.ts +8 -5
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +121 -40
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +16 -11
- package/dist/schemes/_entry-graph.sql +2 -6
- package/dist/schemes/_entry-manifest.d.ts +2 -2
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +18 -6
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +6 -5
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +39 -46
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +9 -6
- package/dist/schemes/_entry-send.d.ts +2 -2
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +16 -14
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +39 -25
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/server/Daemon.d.ts +98 -15
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +864 -348
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +84 -19
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +15 -10
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +70 -19
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/Functionality.d.ts +44 -0
- package/dist/server/Functionality.d.ts.map +1 -0
- package/dist/server/Functionality.js +422 -0
- package/dist/server/Functionality.js.map +1 -0
- package/dist/server/FunctionalityManager.d.ts +22 -0
- package/dist/server/FunctionalityManager.d.ts.map +1 -0
- package/dist/server/FunctionalityManager.js +121 -0
- package/dist/server/FunctionalityManager.js.map +1 -0
- package/dist/server/SkillsFunctionality.d.ts +61 -0
- package/dist/server/SkillsFunctionality.d.ts.map +1 -0
- package/dist/server/SkillsFunctionality.js +449 -0
- package/dist/server/SkillsFunctionality.js.map +1 -0
- package/dist/server/WorkerCapabilities.d.ts +21 -0
- package/dist/server/WorkerCapabilities.d.ts.map +1 -0
- package/dist/server/WorkerCapabilities.js +214 -0
- package/dist/server/WorkerCapabilities.js.map +1 -0
- package/dist/server/WorkerResidency.d.ts +40 -0
- package/dist/server/WorkerResidency.d.ts.map +1 -0
- package/dist/server/WorkerResidency.js +283 -0
- package/dist/server/WorkerResidency.js.map +1 -0
- package/dist/server/client-input.d.ts +6 -2
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +72 -32
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts +2 -2
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +109 -23
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +33 -13
- package/dist/server/envelope.d.ts +7 -2
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +12 -6
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +36 -4
- package/dist/server/lifecycle-recovery.sql +24 -17
- package/dist/server/logEntry.d.ts +2 -1
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +3 -2
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +7 -0
- package/dist/server/loop-model.d.ts +2 -2
- package/dist/server/loop-model.d.ts.map +1 -1
- package/dist/server/loop-model.js +23 -33
- package/dist/server/loop-model.js.map +1 -1
- package/dist/server/loopDocs.d.ts +2 -1
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +88 -21
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/loopDocs.sql +14 -8
- package/dist/server/model-catalog.d.ts +3 -0
- package/dist/server/model-catalog.d.ts.map +1 -0
- package/dist/server/model-catalog.js +83 -0
- package/dist/server/model-catalog.js.map +1 -0
- package/dist/server/model-route.d.ts +7 -0
- package/dist/server/model-route.d.ts.map +1 -0
- package/dist/server/model-route.js +47 -0
- package/dist/server/model-route.js.map +1 -0
- package/dist/server/module-discovery.d.ts +13 -0
- package/dist/server/module-discovery.d.ts.map +1 -0
- package/dist/server/module-discovery.js +103 -0
- package/dist/server/module-discovery.js.map +1 -0
- package/dist/server/seam-entry-read.sql +9 -7
- package/dist/server/seam-log-read.sql +1 -1
- package/dist/server/seam-loop.sql +10 -1
- package/dist/server/seam-proposal-list.sql +4 -2
- package/dist/server/worker-capabilities.sql +19 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +193 -124
- package/dist/service.js.map +1 -1
- package/migrations/001_schema.sql +905 -196
- package/package.json +40 -38
- package/dist/core/ExecutableTools.d.ts +0 -11
- package/dist/core/ExecutableTools.d.ts.map +0 -1
- package/dist/core/ExecutableTools.js +0 -49
- package/dist/core/ExecutableTools.js.map +0 -1
- package/dist/core/JournalTurn.d.ts +0 -9
- package/dist/core/JournalTurn.d.ts.map +0 -1
- package/dist/core/JournalTurn.js +0 -14
- package/dist/core/JournalTurn.js.map +0 -1
- package/dist/core/JournalTurn.sql +0 -10
- package/dist/core/git-iso.d.ts +0 -13
- package/dist/core/git-iso.d.ts.map +0 -1
- package/dist/core/git-iso.js +0 -267
- package/dist/core/git-iso.js.map +0 -1
- package/dist/core/search-gate.d.ts +0 -17
- package/dist/core/search-gate.d.ts.map +0 -1
- package/dist/core/search-gate.js +0 -77
- package/dist/core/search-gate.js.map +0 -1
- package/dist/digest/Digest.sql +0 -1
- package/dist/server/workspace-capabilities.sql +0 -19
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RuntimeInvocationDecl, RuntimeToolRegistry } from "@plurnk/plurnk-execs";
|
|
2
|
+
export interface ToolResource {
|
|
3
|
+
readonly pathname: string;
|
|
4
|
+
readonly content: string;
|
|
5
|
+
}
|
|
6
|
+
interface ToolSource {
|
|
7
|
+
readonly runtime: string;
|
|
8
|
+
readonly summary: string;
|
|
9
|
+
readonly invocation: RuntimeInvocationDecl;
|
|
10
|
+
readonly details: string;
|
|
11
|
+
readonly registry: RuntimeToolRegistry | null;
|
|
12
|
+
readonly resourcesPath?: string;
|
|
13
|
+
}
|
|
14
|
+
export default class ToolResources {
|
|
15
|
+
static targetSegment(target: string): string;
|
|
16
|
+
static render(source: ToolSource): ToolResource[];
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=ToolResources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolResources.d.ts","sourceRoot":"","sources":["../../src/core/ToolResources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,qBAAqB,EACrB,mBAAmB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,UAAU;IAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAK9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACnC;AAgHD,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3C;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,EAAE,CAsDhD;CACJ"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
2
|
+
import { generatedPathname } from "./plurnk-uri.js";
|
|
3
|
+
const inlineCode = (value) => {
|
|
4
|
+
const longest = Math.max(0, ...[...value.matchAll(/`+/gu)].map((match) => match[0].length));
|
|
5
|
+
const fence = "`".repeat(longest + 1);
|
|
6
|
+
const padding = value.startsWith("`") || value.endsWith("`") ? " " : "";
|
|
7
|
+
return `${fence}${padding}${value}${padding}${fence}`;
|
|
8
|
+
};
|
|
9
|
+
const fence = (language, value) => {
|
|
10
|
+
const longest = Math.max(2, ...[...value.matchAll(/`+/gu)].map((match) => match[0].length));
|
|
11
|
+
const marker = "`".repeat(longest + 1);
|
|
12
|
+
return `${marker}${language}\n${value}\n${marker}`;
|
|
13
|
+
};
|
|
14
|
+
const escapeCell = (value) => value.replaceAll("|", "\\|");
|
|
15
|
+
const summaryParagraph = (value) => /^(?:[>#+*`~-]|\d+[.)]\s|<)/u.test(value) && !value.startsWith("`")
|
|
16
|
+
? `\\${value}`
|
|
17
|
+
: value;
|
|
18
|
+
const annotationText = (value) => {
|
|
19
|
+
const normalized = value.replaceAll(/\s+/gu, " ").trim().replaceAll("--", "—");
|
|
20
|
+
const safeStart = /^(?:>|->)/u.test(normalized) ? `Description: ${normalized}` : normalized;
|
|
21
|
+
return safeStart.endsWith("-") ? `${safeStart}.` : safeStart;
|
|
22
|
+
};
|
|
23
|
+
const requirement = (required) => required ? "required" : "optional";
|
|
24
|
+
const invocationRows = (invocation, exactTarget) => {
|
|
25
|
+
const exclusive = invocation.exclusive === true ? "; choose either target or body" : "";
|
|
26
|
+
const target = invocation.target === undefined
|
|
27
|
+
? "unavailable"
|
|
28
|
+
: exactTarget === undefined
|
|
29
|
+
? `${requirement(invocation.target.required)}: ${invocation.target.role}`
|
|
30
|
+
+ (invocation.target.directory === "cwd" ? "; a local directory selects the working directory" : "")
|
|
31
|
+
+ exclusive
|
|
32
|
+
: `${requirement(invocation.target.required)}: exact target ${inlineCode(exactTarget)}; ${invocation.target.role}${exclusive}`;
|
|
33
|
+
const body = `${requirement(invocation.body.required)}: ${invocation.body.role}${exclusive}`;
|
|
34
|
+
return [
|
|
35
|
+
"| Input | Contract |",
|
|
36
|
+
"| --- | --- |",
|
|
37
|
+
`| \`(target)\` | ${escapeCell(target)} |`,
|
|
38
|
+
`| body | ${escapeCell(body)} |`,
|
|
39
|
+
];
|
|
40
|
+
};
|
|
41
|
+
const exampleSource = (runtime, invocation, exactTarget, annotation) => {
|
|
42
|
+
const target = exactTarget ?? invocation.example?.target;
|
|
43
|
+
const heading = `## EXEC0 [${runtime}]${target === undefined ? "" : ` (${PathSyntax.escapeTarget(target)})`}`
|
|
44
|
+
+ (annotation === undefined ? "" : ` <!-- ${annotationText(annotation)} -->`);
|
|
45
|
+
return invocation.example?.body === undefined
|
|
46
|
+
? heading
|
|
47
|
+
: `${heading}\n${invocation.example.body}`;
|
|
48
|
+
};
|
|
49
|
+
const summaryInvocation = (runtime, invocation, exactTarget, summary) => {
|
|
50
|
+
const source = exampleSource(runtime, invocation, exactTarget, summary)
|
|
51
|
+
.replace(/^## EXEC0/u, "EXEC")
|
|
52
|
+
.replace("\n", "\\n");
|
|
53
|
+
return inlineCode(source);
|
|
54
|
+
};
|
|
55
|
+
const renderInvocation = (runtime, invocation, exactTarget, annotation) => [
|
|
56
|
+
"## Invocation",
|
|
57
|
+
"",
|
|
58
|
+
...invocationRows(invocation, exactTarget),
|
|
59
|
+
"",
|
|
60
|
+
...(invocation.signature === undefined
|
|
61
|
+
? [fence("plurnk", exampleSource(runtime, invocation, exactTarget, annotation))]
|
|
62
|
+
: [
|
|
63
|
+
inlineCode(exampleSource(runtime, invocation, exactTarget, annotation)),
|
|
64
|
+
"",
|
|
65
|
+
`Signature: ${inlineCode(invocation.signature)}`,
|
|
66
|
+
]),
|
|
67
|
+
];
|
|
68
|
+
const renderDocument = (title, summary, invocation, details) => [
|
|
69
|
+
`# ${title}`,
|
|
70
|
+
"",
|
|
71
|
+
"## Summary",
|
|
72
|
+
"",
|
|
73
|
+
summaryParagraph(summary),
|
|
74
|
+
"",
|
|
75
|
+
...invocation,
|
|
76
|
+
...(details.length === 0 ? [] : ["", details.trimEnd()]),
|
|
77
|
+
].join("\n");
|
|
78
|
+
export default class ToolResources {
|
|
79
|
+
static targetSegment(target) {
|
|
80
|
+
return encodeURIComponent(target).replaceAll(/[!'()*]/gu, (character) => `%${character.codePointAt(0)?.toString(16).toUpperCase()}`);
|
|
81
|
+
}
|
|
82
|
+
static render(source) {
|
|
83
|
+
const toolsNamespace = source.resourcesPath !== undefined;
|
|
84
|
+
// A runtime's resourcesPath is relative to the generated root; Core owns the root.
|
|
85
|
+
const root = generatedPathname(toolsNamespace ? source.resourcesPath : "/skills/plurnk");
|
|
86
|
+
if (source.registry === null) {
|
|
87
|
+
return [{
|
|
88
|
+
pathname: `${root}/${source.runtime}.md`,
|
|
89
|
+
content: renderDocument(source.runtime, summaryInvocation(source.runtime, source.invocation, undefined, source.summary), renderInvocation(source.runtime, source.invocation, undefined, source.summary), source.details),
|
|
90
|
+
}];
|
|
91
|
+
}
|
|
92
|
+
if (source.registry.tools.length === 0)
|
|
93
|
+
return [];
|
|
94
|
+
// One document per registried runtime — no per-target child documents,
|
|
95
|
+
// shown or existing. The invocation fence carries every target's
|
|
96
|
+
// heading and signature; a target's details become a section of this
|
|
97
|
+
// same document. One survey row orients the whole family; the packet
|
|
98
|
+
// token floor never pays per-tool.
|
|
99
|
+
const tools = source.registry.tools
|
|
100
|
+
.toSorted((left, right) => left.target.localeCompare(right.target));
|
|
101
|
+
const familyInvocations = tools.flatMap((tool, index) => {
|
|
102
|
+
const heading = exampleSource(source.runtime, tool.invocation, tool.target, tool.summary).split("\n", 1)[0];
|
|
103
|
+
const input = tool.invocation.signature ?? tool.invocation.example?.body;
|
|
104
|
+
return [
|
|
105
|
+
...(index === 0 ? [] : [""]),
|
|
106
|
+
heading,
|
|
107
|
+
...(input === undefined ? [] : [input]),
|
|
108
|
+
];
|
|
109
|
+
});
|
|
110
|
+
// A target's details nest as `## <target>`; their own headings demote
|
|
111
|
+
// one level so the target heading stays the section boundary.
|
|
112
|
+
const demote = (value) => value.replaceAll(/^(#{2,5}) /gmu, "#$1 ");
|
|
113
|
+
const sections = tools
|
|
114
|
+
.filter((tool) => (tool.details ?? "").length > 0)
|
|
115
|
+
.map((tool) => `## ${inlineCode(tool.target)}\n\n${demote((tool.details ?? "").trimEnd())}`);
|
|
116
|
+
const detailsBlock = [source.details.trimEnd(), ...sections]
|
|
117
|
+
.filter((part) => part.length > 0)
|
|
118
|
+
.join("\n\n");
|
|
119
|
+
const family = renderDocument(source.runtime, source.summary, ["## Invocation", "", fence("plurnk", familyInvocations.join("\n"))], detailsBlock);
|
|
120
|
+
return [{ pathname: `${root}/${source.runtime}.md`, content: family }];
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=ToolResources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolResources.js","sourceRoot":"","sources":["../../src/core/ToolResources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Db } from "./Db.ts";
|
|
2
|
+
import type { WriterTier } from "./scheme-types.ts";
|
|
3
|
+
export type TurnProducer = WriterTier;
|
|
4
|
+
export type TurnKind = "inference" | "initialization" | "overflow" | "operation" | "maintenance";
|
|
5
|
+
export interface TurnRow {
|
|
6
|
+
readonly id: number;
|
|
7
|
+
readonly sequence: number;
|
|
8
|
+
}
|
|
9
|
+
export interface InferenceEvidence {
|
|
10
|
+
readonly packet: string;
|
|
11
|
+
readonly usageCurationBudget: number | null;
|
|
12
|
+
readonly finishReason: string | null;
|
|
13
|
+
readonly model: string;
|
|
14
|
+
readonly meta: string;
|
|
15
|
+
}
|
|
16
|
+
export default class Turn {
|
|
17
|
+
static open(db: Db, args: {
|
|
18
|
+
loopId: number;
|
|
19
|
+
producer: TurnProducer;
|
|
20
|
+
kind: TurnKind;
|
|
21
|
+
}): Promise<TurnRow>;
|
|
22
|
+
static becomeOverflow(db: Db, id: number): Promise<void>;
|
|
23
|
+
static recordInference(db: Db, id: number, evidence: InferenceEvidence): Promise<void>;
|
|
24
|
+
static complete(db: Db, id: number, status: number): Promise<void>;
|
|
25
|
+
static failOpen(db: Db, id: number): Promise<boolean>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=Turn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Turn.d.ts","sourceRoot":"","sources":["../../src/core/Turn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AACtC,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;AAEjG,MAAM,WAAW,OAAO;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAKD,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,OAAa,IAAI,CACb,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,GACjE,OAAO,CAAC,OAAO,CAAC,CAQlB;IAED,OAAa,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK7D;IAED,OAAa,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F;IAED,OAAa,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;IAED,OAAa,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE1D;CACJ"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// {§turn-record} — one lifecycle owner for every producer. A packet and its
|
|
2
|
+
// provider metadata are optional inference evidence, never the definition of a
|
|
3
|
+
// turn. Client, plugin, model, and `_plurnk` work all open and complete here.
|
|
4
|
+
export default class Turn {
|
|
5
|
+
static async open(db, args) {
|
|
6
|
+
const turn = await db.turn_open.get({
|
|
7
|
+
loop_id: args.loopId,
|
|
8
|
+
producer: args.producer,
|
|
9
|
+
kind: args.kind,
|
|
10
|
+
});
|
|
11
|
+
if (turn === undefined)
|
|
12
|
+
throw new Error("Turn.open: insert returned no row");
|
|
13
|
+
return turn;
|
|
14
|
+
}
|
|
15
|
+
static async becomeOverflow(db, id) {
|
|
16
|
+
const turn = await db.turn_become_overflow.get({ id });
|
|
17
|
+
if (turn === undefined) {
|
|
18
|
+
throw new Error(`Turn.becomeOverflow: model inference turn ${id} cannot become overflow`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
static async recordInference(db, id, evidence) {
|
|
22
|
+
const turn = await db.turn_record_inference.get({
|
|
23
|
+
id,
|
|
24
|
+
packet: evidence.packet,
|
|
25
|
+
usage_curation_budget: evidence.usageCurationBudget,
|
|
26
|
+
finish_reason: evidence.finishReason,
|
|
27
|
+
model: evidence.model,
|
|
28
|
+
meta: evidence.meta,
|
|
29
|
+
});
|
|
30
|
+
if (turn === undefined) {
|
|
31
|
+
throw new Error(`Turn.recordInference: turn ${id} is not an open model inference turn`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
static async complete(db, id, status) {
|
|
35
|
+
const turn = await db.turn_complete.get({ id, status });
|
|
36
|
+
if (turn === undefined)
|
|
37
|
+
throw new Error(`Turn.complete: turn ${id} is not open`);
|
|
38
|
+
}
|
|
39
|
+
static async failOpen(db, id) {
|
|
40
|
+
return (await db.turn_fail_open.get({ id })) !== undefined;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=Turn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Turn.js","sourceRoot":"","sources":["../../src/core/Turn.ts"],"names":[],"mappings":"AAmBA,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,CAAC,OAAO,OAAO,IAAI;IACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CACb,EAAM,EACN,IAAgE;QAEhE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAU;YACzC,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAM,EAAE,EAAU;QAC1C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,EAAE,yBAAyB,CAAC,CAAC;QAC9F,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAM,EAAE,EAAU,EAAE,QAA2B;QACxE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAiB;YAC5D,EAAE;YACF,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,qBAAqB,EAAE,QAAQ,CAAC,mBAAmB;YACnD,aAAa,EAAE,QAAQ,CAAC,YAAY;YACpC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACtB,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,sCAAsC,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAM,EAAE,EAAU,EAAE,MAAc;QACpD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,GAAG,CAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAM,EAAE,EAAU;QACpC,OAAO,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAAiB,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;IAC/E,CAAC;CACJ"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
-- Producer-neutral turn lifecycle. A turn is an ordered durable operation
|
|
2
|
+
-- container; model request/response evidence is an optional specialization.
|
|
3
|
+
|
|
4
|
+
-- PREP: turn_open
|
|
5
|
+
INSERT INTO turns (loop_id, sequence, producer, kind, status, completed_at)
|
|
6
|
+
SELECT $loop_id,
|
|
7
|
+
COALESCE(MAX(sequence), 0) + 1,
|
|
8
|
+
$producer,
|
|
9
|
+
$kind,
|
|
10
|
+
102,
|
|
11
|
+
NULL
|
|
12
|
+
FROM turns
|
|
13
|
+
WHERE loop_id = $loop_id
|
|
14
|
+
RETURNING id, sequence;
|
|
15
|
+
|
|
16
|
+
-- PREP: turn_become_overflow
|
|
17
|
+
-- Packet admission may divert a would-be inference boundary into a kernel
|
|
18
|
+
-- recovery turn. Once model-authored rows, model calls, or packet evidence
|
|
19
|
+
-- exist, changing the producer would falsify history and is refused.
|
|
20
|
+
UPDATE turns
|
|
21
|
+
SET producer = '_plurnk',
|
|
22
|
+
kind = 'overflow'
|
|
23
|
+
WHERE id = $id
|
|
24
|
+
AND producer = 'model'
|
|
25
|
+
AND kind = 'inference'
|
|
26
|
+
AND completed_at IS NULL
|
|
27
|
+
AND packet IS NULL
|
|
28
|
+
AND usage_curation_budget IS NULL
|
|
29
|
+
AND finish_reason IS NULL
|
|
30
|
+
AND model IS NULL
|
|
31
|
+
AND meta IS NULL
|
|
32
|
+
AND NOT EXISTS (SELECT 1 FROM model_calls WHERE turn_id = turns.id)
|
|
33
|
+
AND NOT EXISTS (
|
|
34
|
+
SELECT 1 FROM log_entries
|
|
35
|
+
WHERE turn_id = turns.id AND origin != '_plurnk'
|
|
36
|
+
)
|
|
37
|
+
RETURNING id;
|
|
38
|
+
|
|
39
|
+
-- PREP: turn_record_inference
|
|
40
|
+
-- Preserve the exact admitted/request-only packet and provider metadata while
|
|
41
|
+
-- the operation sequence is still executing. Completion remains a separate
|
|
42
|
+
-- lifecycle transition after every admitted OP has settled.
|
|
43
|
+
UPDATE turns
|
|
44
|
+
SET packet = $packet,
|
|
45
|
+
usage_curation_budget = $usage_curation_budget,
|
|
46
|
+
finish_reason = $finish_reason,
|
|
47
|
+
model = $model,
|
|
48
|
+
meta = $meta
|
|
49
|
+
WHERE id = $id
|
|
50
|
+
AND producer = 'model'
|
|
51
|
+
AND kind = 'inference'
|
|
52
|
+
AND completed_at IS NULL
|
|
53
|
+
AND packet IS NULL
|
|
54
|
+
RETURNING id;
|
|
55
|
+
|
|
56
|
+
-- PREP: turn_complete
|
|
57
|
+
UPDATE turns
|
|
58
|
+
SET status = $status,
|
|
59
|
+
completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
|
|
60
|
+
WHERE id = $id
|
|
61
|
+
AND completed_at IS NULL
|
|
62
|
+
RETURNING id;
|
|
63
|
+
|
|
64
|
+
-- PREP: turn_fail_open
|
|
65
|
+
-- Exception cleanup is idempotent across a run that may already have completed
|
|
66
|
+
-- one of several producer turns before a later sibling failed.
|
|
67
|
+
UPDATE turns
|
|
68
|
+
SET status = 500,
|
|
69
|
+
completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
|
|
70
|
+
WHERE id = $id
|
|
71
|
+
AND completed_at IS NULL
|
|
72
|
+
RETURNING id;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type PlurnkStatement } from "@plurnk/plurnk-contracts";
|
|
2
|
+
export type InternalTurnStatement = PlurnkStatement;
|
|
3
|
+
export default class TurnOps {
|
|
4
|
+
static renderInternal(statements: readonly InternalTurnStatement[]): string;
|
|
5
|
+
static parseInternal(source: string): PlurnkStatement[];
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=TurnOps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TurnOps.d.ts","sourceRoot":"","sources":["../../src/core/TurnOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,eAAe,EACvB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAiBpD,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,GAAG,MAAM,CAuB1E;IAED,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CAqBtD;CACJ"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { PlurnkParseError, PlurnkParser, PlanValue, } from "@plurnk/plurnk-contracts";
|
|
2
|
+
const renderBody = (statement) => {
|
|
3
|
+
if (statement.op === "PLAN")
|
|
4
|
+
return PlanValue.stringify(statement.body);
|
|
5
|
+
if (statement.body === null)
|
|
6
|
+
return null;
|
|
7
|
+
if (typeof statement.body === "string")
|
|
8
|
+
return statement.body;
|
|
9
|
+
if ("raw" in statement.body)
|
|
10
|
+
return statement.body.raw;
|
|
11
|
+
const marker = statement.body.lineMarker;
|
|
12
|
+
return marker === null
|
|
13
|
+
? statement.body.target.raw
|
|
14
|
+
: `${statement.body.target.raw} <${marker.marks.join(",")}>`;
|
|
15
|
+
};
|
|
16
|
+
// Core-authored turns are programs, not synthetic result rows. This formatter
|
|
17
|
+
// owns the deliberately small statement alphabet used by initialization and
|
|
18
|
+
// overflow recovery; its output is reparsed before admission so the parser,
|
|
19
|
+
// rather than constructed AST objects, remains the executable authority.
|
|
20
|
+
export default class TurnOps {
|
|
21
|
+
static renderInternal(statements) {
|
|
22
|
+
if (statements[0]?.op !== "PLAN" || statements.at(-1)?.op !== "SEND") {
|
|
23
|
+
throw new TypeError("An internal turnOps program must begin with PLAN and end with SEND.");
|
|
24
|
+
}
|
|
25
|
+
const delimiter = statements[0].delimiter || "0";
|
|
26
|
+
return statements.map((statement, index) => {
|
|
27
|
+
const heading = statement.op === "PLAN"
|
|
28
|
+
? `# PLAN${delimiter}`
|
|
29
|
+
: `## ${statement.op}${delimiter}`;
|
|
30
|
+
const modifiers = [];
|
|
31
|
+
if (statement.signal !== null) {
|
|
32
|
+
modifiers.push(`[${Array.isArray(statement.signal) ? statement.signal.join(",") : statement.signal}]`);
|
|
33
|
+
}
|
|
34
|
+
if (statement.target !== null)
|
|
35
|
+
modifiers.push(`(${statement.target.raw})`);
|
|
36
|
+
if (statement.lineMarker !== null)
|
|
37
|
+
modifiers.push(`<${statement.lineMarker.marks.join(",")}>`);
|
|
38
|
+
if (statement.annotation !== null)
|
|
39
|
+
modifiers.push(`<!-- ${statement.annotation} -->`);
|
|
40
|
+
const header = modifiers.length === 0 ? heading : `${heading} ${modifiers.join(" ")}`;
|
|
41
|
+
const body = renderBody(statement);
|
|
42
|
+
const boundaryPadding = body?.endsWith("\n") === true && index < statements.length - 1
|
|
43
|
+
? "\n"
|
|
44
|
+
: "";
|
|
45
|
+
return body === null ? header : `${header}\n${body}${boundaryPadding}`;
|
|
46
|
+
}).join("\n");
|
|
47
|
+
}
|
|
48
|
+
static parseInternal(source) {
|
|
49
|
+
const parsed = PlurnkParser.parse(source);
|
|
50
|
+
const statements = [];
|
|
51
|
+
const failures = [];
|
|
52
|
+
for (const item of parsed.items) {
|
|
53
|
+
if (item.kind === "statement") {
|
|
54
|
+
statements.push(item.statement);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (item.kind === "text" && item.text.trim().length === 0)
|
|
58
|
+
continue;
|
|
59
|
+
const error = item.kind === "error" ? item.error : null;
|
|
60
|
+
failures.push(error instanceof PlurnkParseError ? error.message : "unparsed text");
|
|
61
|
+
}
|
|
62
|
+
if (parsed.unparsedTail !== undefined)
|
|
63
|
+
failures.push(parsed.unparsedTail.reason);
|
|
64
|
+
if (failures.length > 0) {
|
|
65
|
+
throw new SyntaxError(`Core generated invalid turnOps: ${failures.join("; ")}`);
|
|
66
|
+
}
|
|
67
|
+
if (statements[0]?.op !== "PLAN" || statements.at(-1)?.op !== "SEND") {
|
|
68
|
+
throw new SyntaxError("Core generated turnOps without a PLAN…SEND boundary.");
|
|
69
|
+
}
|
|
70
|
+
return statements;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=TurnOps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TurnOps.js","sourceRoot":"","sources":["../../src/core/TurnOps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
+
import type { PlurnkStatement } from "@plurnk/plurnk-contracts";
|
|
2
|
+
type ParseErrorInfo = {
|
|
3
|
+
message: string;
|
|
4
|
+
line: number;
|
|
5
|
+
column: number;
|
|
6
|
+
source: string;
|
|
7
|
+
};
|
|
1
8
|
import type SchemeRegistry from "./SchemeRegistry.ts";
|
|
2
9
|
import { Mimetypes } from "@plurnk/plurnk-mimetypes";
|
|
3
10
|
import type { Db } from "./Db.ts";
|
|
4
|
-
import type {
|
|
11
|
+
import type { PlurnkSchemeContext, WriterTier } from "./scheme-types.ts";
|
|
5
12
|
import type ExecutorRegistry from "./ExecutorRegistry.ts";
|
|
6
13
|
import type { StreamEventNotify, WakeWorkerNotify } from "./ChannelWrite.ts";
|
|
14
|
+
import type { ReasoningEventNotify } from "./ReasoningEvent.ts";
|
|
7
15
|
import LiveSubscriptions from "./LiveSubscriptions.ts";
|
|
16
|
+
export declare const resolveGrammarRailPath: (variant: string) => string;
|
|
8
17
|
import { type SchemeResult } from "./results.ts";
|
|
9
18
|
import type ClientInteractions from "./ClientInteractions.ts";
|
|
10
19
|
import NoticeChannel from "./NoticeChannel.ts";
|
|
@@ -13,8 +22,9 @@ import StrikeRail, { type StrikeOutcome } from "./StrikeRail.ts";
|
|
|
13
22
|
import PacketBuilder, { type ChatMessage } from "./PacketBuilder.ts";
|
|
14
23
|
import Dispatcher from "./Dispatcher.ts";
|
|
15
24
|
import type { DispatchContext, DispatchResult } from "./Dispatcher.ts";
|
|
16
|
-
import type { Provider } from "@plurnk/plurnk-providers";
|
|
25
|
+
import type { Provider, ProviderEncryptedReasoningItem } from "@plurnk/plurnk-providers";
|
|
17
26
|
type EngineTurnResult = {
|
|
27
|
+
createdTurnIds: number[];
|
|
18
28
|
turnId: number;
|
|
19
29
|
status: number;
|
|
20
30
|
outcomes: StrikeOutcome[];
|
|
@@ -25,13 +35,34 @@ type EngineTurnResult = {
|
|
|
25
35
|
emissionExhausted: boolean;
|
|
26
36
|
rejectedModelEntryId?: number;
|
|
27
37
|
capacityFailure?: SchemeResult;
|
|
38
|
+
curationFailure?: SchemeResult;
|
|
39
|
+
} & ({
|
|
40
|
+
producer: "model";
|
|
41
|
+
kind: "inference";
|
|
42
|
+
} | {
|
|
43
|
+
producer: "_plurnk";
|
|
44
|
+
kind: "overflow";
|
|
45
|
+
});
|
|
46
|
+
type BareExecution = {
|
|
47
|
+
readonly provider: Provider;
|
|
48
|
+
readonly modelCallSequenceStart: number;
|
|
49
|
+
readonly primaryWorkerId: string;
|
|
50
|
+
readonly loopSequence: number;
|
|
51
|
+
readonly turnSequence: number;
|
|
52
|
+
readonly signal: AbortSignal | undefined;
|
|
53
|
+
};
|
|
54
|
+
type AdmittedTurnResult = {
|
|
55
|
+
readonly status: number;
|
|
56
|
+
readonly outcomes: StrikeOutcome[];
|
|
57
|
+
readonly fingerprint: string;
|
|
58
|
+
readonly steerStruck: boolean;
|
|
28
59
|
};
|
|
29
60
|
export declare const LOOP_TIMEOUT_REASON = "loop_timeout";
|
|
30
61
|
type TurnDispatch = (context: DispatchContext) => Promise<DispatchResult>;
|
|
31
62
|
type WarmWorkspace = (context: PlurnkSchemeContext, invalidate?: boolean, materialize?: boolean) => Promise<void>;
|
|
32
63
|
export default class TurnRunner {
|
|
33
64
|
#private;
|
|
34
|
-
constructor({ db, schemes, mimetypes, weigh, notices, problems, strikes, packets, dispatcher, liveSubscriptions, streamEventNotify, wakeWorkerNotify, executors, loopSignal, interactions, warmWorkspace, dispatch, resolveWorkerProviderIdentity, }: {
|
|
65
|
+
constructor({ db, schemes, mimetypes, weigh, notices, problems, strikes, packets, dispatcher, liveSubscriptions, streamEventNotify, reasoningEventNotify, wakeWorkerNotify, executors, loopSignal, interactions, warmWorkspace, dispatch, resolveWorkerProviderIdentity, }: {
|
|
35
66
|
db: Db;
|
|
36
67
|
schemes: SchemeRegistry;
|
|
37
68
|
mimetypes: Mimetypes;
|
|
@@ -43,6 +74,7 @@ export default class TurnRunner {
|
|
|
43
74
|
dispatcher: Dispatcher;
|
|
44
75
|
liveSubscriptions: LiveSubscriptions;
|
|
45
76
|
streamEventNotify?: StreamEventNotify;
|
|
77
|
+
reasoningEventNotify?: ReasoningEventNotify;
|
|
46
78
|
wakeWorkerNotify?: WakeWorkerNotify;
|
|
47
79
|
executors: () => ExecutorRegistry | undefined;
|
|
48
80
|
loopSignal: (loopId: number) => AbortSignal | undefined;
|
|
@@ -54,7 +86,27 @@ export default class TurnRunner {
|
|
|
54
86
|
primaryWorkerId: string;
|
|
55
87
|
}>;
|
|
56
88
|
});
|
|
57
|
-
|
|
89
|
+
executeAdmittedTurn({ statements, source, sourceFolded, sourceModelCallId, sourceReasoningItems, origin, workspaceId, workerId, loopId, turnId, fromSequence, maxCommands, enforceIdle, failOnOperationError, recoverableParseErrors, bare, signal, onDispatch, }: {
|
|
90
|
+
statements: readonly PlurnkStatement[];
|
|
91
|
+
source: string | null;
|
|
92
|
+
sourceFolded: boolean;
|
|
93
|
+
sourceModelCallId?: number | null;
|
|
94
|
+
sourceReasoningItems?: ReadonlyArray<ProviderEncryptedReasoningItem>;
|
|
95
|
+
origin: WriterTier;
|
|
96
|
+
workspaceId: number;
|
|
97
|
+
workerId: number;
|
|
98
|
+
loopId: number;
|
|
99
|
+
turnId: number;
|
|
100
|
+
fromSequence: number;
|
|
101
|
+
maxCommands?: number;
|
|
102
|
+
enforceIdle?: boolean;
|
|
103
|
+
failOnOperationError?: boolean;
|
|
104
|
+
recoverableParseErrors?: readonly ParseErrorInfo[];
|
|
105
|
+
bare?: BareExecution;
|
|
106
|
+
signal?: AbortSignal;
|
|
107
|
+
onDispatch?: (logEntryId: number) => void;
|
|
108
|
+
}): Promise<AdmittedTurnResult>;
|
|
109
|
+
runTurn({ provider, childProvider, messages, requirements, workspaceId, workerId, loopId, signal, onDispatch, turnNumber, maxTurns, invalidEmissionRecoveryEntryId, }: {
|
|
58
110
|
provider: Provider;
|
|
59
111
|
childProvider?: Provider;
|
|
60
112
|
messages: ChatMessage[];
|
|
@@ -62,7 +114,6 @@ export default class TurnRunner {
|
|
|
62
114
|
workspaceId: number;
|
|
63
115
|
workerId: number;
|
|
64
116
|
loopId: number;
|
|
65
|
-
origin?: WriterTier;
|
|
66
117
|
signal?: AbortSignal;
|
|
67
118
|
onDispatch?: (logEntryId: number) => void;
|
|
68
119
|
turnNumber?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurnRunner.d.ts","sourceRoot":"","sources":["../../src/core/TurnRunner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TurnRunner.d.ts","sourceRoot":"","sources":["../../src/core/TurnRunner.ts"],"names":[],"mappings":"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"}
|