@plurnk/plurnk-service 1.29.0 → 3.0.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 +14 -33
- package/INSTALL.md +68 -17
- package/README.md +9 -7
- package/SPEC.md +503 -741
- package/dist/build-info.json +1 -1
- package/dist/content/body-preview.d.ts.map +1 -1
- package/dist/content/body-preview.js +11 -2
- package/dist/content/body-preview.js.map +1 -1
- package/dist/content/edit-receipt.d.ts +1 -1
- package/dist/content/edit-receipt.d.ts.map +1 -1
- package/dist/content/edit-receipt.js +1 -1
- package/dist/content/edit-receipt.js.map +1 -1
- package/dist/content/line-marker.js +1 -1
- package/dist/content/line-marker.js.map +1 -1
- package/dist/content/path-mimetype.js +1 -1
- package/dist/content/path-mimetype.js.map +1 -1
- package/dist/content/read-projector.d.ts.map +1 -1
- package/dist/content/read-projector.js +3 -12
- package/dist/content/read-projector.js.map +1 -1
- package/dist/core/AdministrativeLoop.d.ts +1 -1
- package/dist/core/AdministrativeLoop.d.ts.map +1 -1
- package/dist/core/AdministrativeLoop.js +2 -6
- package/dist/core/AdministrativeLoop.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +4 -3
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +19 -17
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BareBatchRunner.d.ts +2 -2
- package/dist/core/BareBatchRunner.d.ts.map +1 -1
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts +1 -0
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +12 -0
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/CapabilityPolicies.d.ts +2 -4
- package/dist/core/CapabilityPolicies.d.ts.map +1 -1
- package/dist/core/CapabilityPolicies.js +3 -23
- package/dist/core/CapabilityPolicies.js.map +1 -1
- package/dist/core/CapabilityResolver.d.ts +9 -2
- package/dist/core/CapabilityResolver.d.ts.map +1 -1
- package/dist/core/CapabilityResolver.js +34 -5
- package/dist/core/CapabilityResolver.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +0 -2
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ClientInteractions.d.ts +3 -2
- package/dist/core/ClientInteractions.d.ts.map +1 -1
- package/dist/core/ClientInteractions.js +21 -12
- package/dist/core/ClientInteractions.js.map +1 -1
- package/dist/core/ClientInteractions.sql +8 -2
- package/dist/core/CoreSchemeServices.d.ts +1 -0
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +1 -0
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/DataStatementRunner.js +1 -1
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +3 -2
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +15 -21
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts +2 -2
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +4 -3
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/EnvFlags.d.ts.map +1 -1
- package/dist/core/EnvFlags.js +4 -3
- package/dist/core/EnvFlags.js.map +1 -1
- package/dist/core/ExecutorRegistry.d.ts +3 -17
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +6 -6
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/FabricatedLog.js +1 -1
- package/dist/core/FabricatedLog.js.map +1 -1
- package/dist/core/HostPaths.d.ts +2 -1
- package/dist/core/HostPaths.d.ts.map +1 -1
- package/dist/core/HostPaths.js +14 -2
- package/dist/core/HostPaths.js.map +1 -1
- package/dist/core/KillHandler.js +1 -1
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/LogVisibility.d.ts.map +1 -1
- package/dist/core/LogVisibility.js +8 -17
- package/dist/core/LogVisibility.js.map +1 -1
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +4 -6
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +4 -9
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +6 -6
- package/dist/core/OperatorConfig.d.ts +1 -0
- package/dist/core/OperatorConfig.d.ts.map +1 -1
- package/dist/core/OperatorConfig.js +10 -2
- package/dist/core/OperatorConfig.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts +5 -7
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +49 -119
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +15 -0
- package/dist/core/ProposalLifecycle.d.ts +1 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +18 -20
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProposalPolicies.d.ts +6 -0
- package/dist/core/ProposalPolicies.d.ts.map +1 -0
- package/dist/core/ProposalPolicies.js +28 -0
- package/dist/core/ProposalPolicies.js.map +1 -0
- package/dist/core/ProviderInstantiate.d.ts.map +1 -1
- package/dist/core/ProviderInstantiate.js +3 -4
- package/dist/core/ProviderInstantiate.js.map +1 -1
- package/dist/core/ResourceSelector.js +2 -2
- package/dist/core/ResourceSelector.js.map +1 -1
- package/dist/core/ResourceTransfers.js +3 -3
- package/dist/core/ResourceTransfers.js.map +1 -1
- package/dist/core/RuntimeWorker.sql +1 -2
- package/dist/core/SchemeRegistry.d.ts +5 -4
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +11 -12
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ToolInputSchema.d.ts +1 -0
- package/dist/core/ToolInputSchema.d.ts.map +1 -1
- package/dist/core/ToolInputSchema.js +8 -2
- package/dist/core/ToolInputSchema.js.map +1 -1
- package/dist/core/ToolResources.d.ts +1 -0
- package/dist/core/ToolResources.d.ts.map +1 -1
- package/dist/core/ToolResources.js +12 -6
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/Turn.js +1 -1
- package/dist/core/Turn.js.map +1 -1
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
- package/dist/core/TurnDispositionHandler.js +1 -7
- package/dist/core/TurnDispositionHandler.js.map +1 -1
- package/dist/core/TurnMaterialization.js +1 -1
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnOps.d.ts +1 -1
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +4 -12
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +1 -2
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +85 -81
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerControlHandler.d.ts.map +1 -1
- package/dist/core/WorkerControlHandler.js +1 -8
- package/dist/core/WorkerControlHandler.js.map +1 -1
- package/dist/core/WorkerName.d.ts +1 -0
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +2 -0
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkerName.sql +2 -2
- package/dist/core/WorkerOwners.d.ts +13 -0
- package/dist/core/WorkerOwners.d.ts.map +1 -0
- package/dist/core/WorkerOwners.js +44 -0
- package/dist/core/WorkerOwners.js.map +1 -0
- package/dist/core/WorkerOwners.sql +55 -0
- package/dist/core/caps/DbNotifyCaps.js +2 -2
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbProjectionCaps.js +1 -1
- package/dist/core/caps/DbProjectionCaps.js.map +1 -1
- package/dist/core/env-catalog.d.ts +3 -0
- package/dist/core/env-catalog.d.ts.map +1 -1
- package/dist/core/env-catalog.js +44 -9
- package/dist/core/env-catalog.js.map +1 -1
- package/dist/core/env-defaults.d.ts +2 -1
- package/dist/core/env-defaults.d.ts.map +1 -1
- package/dist/core/env-defaults.js +17 -9
- package/dist/core/env-defaults.js.map +1 -1
- package/dist/core/fork.sql +3 -4
- package/dist/core/packet-inject.js +0 -2
- package/dist/core/packet-inject.js.map +1 -1
- package/dist/core/packet-wire.d.ts +2 -11
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +31 -111
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +1 -1
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +4 -4
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +2 -1
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/types.d.ts +0 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/unregistered-scheme.d.ts +1 -3
- package/dist/core/unregistered-scheme.d.ts.map +1 -1
- package/dist/core/unregistered-scheme.js +3 -11
- package/dist/core/unregistered-scheme.js.map +1 -1
- package/dist/evidence/EvidenceReader.d.ts +14 -0
- package/dist/evidence/EvidenceReader.d.ts.map +1 -0
- package/dist/evidence/EvidenceReader.js +137 -0
- package/dist/evidence/EvidenceReader.js.map +1 -0
- package/dist/{digest → evidence}/digest.sql +1 -2
- package/dist/schemes/EffectPolicy.d.ts.map +1 -1
- package/dist/schemes/EffectPolicy.js +1 -10
- package/dist/schemes/EffectPolicy.js.map +1 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +19 -26
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +11 -17
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +14 -11
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/QuestionTool.d.ts.map +1 -1
- package/dist/schemes/QuestionTool.js +1 -3
- package/dist/schemes/QuestionTool.js.map +1 -1
- package/dist/schemes/{Skill.d.ts → ResourceTreeScheme.d.ts} +5 -6
- package/dist/schemes/ResourceTreeScheme.d.ts.map +1 -0
- package/dist/schemes/{Skill.js → ResourceTreeScheme.js} +63 -43
- package/dist/schemes/ResourceTreeScheme.js.map +1 -0
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +7 -9
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +1 -1
- package/dist/schemes/_entry-find.js +2 -2
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +1 -1
- package/dist/schemes/_entry-fts.d.ts.map +1 -1
- package/dist/schemes/_entry-fts.js +3 -9
- package/dist/schemes/_entry-fts.js.map +1 -1
- package/dist/schemes/_entry-manifest.js +1 -1
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.js +1 -1
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/server/AgentRoots.d.ts +2 -1
- package/dist/server/AgentRoots.d.ts.map +1 -1
- package/dist/server/AgentRoots.js +13 -10
- package/dist/server/AgentRoots.js.map +1 -1
- package/dist/server/ConfigurationDiagnostics.d.ts +5 -3
- package/dist/server/ConfigurationDiagnostics.d.ts.map +1 -1
- package/dist/server/ConfigurationDiagnostics.js +24 -8
- package/dist/server/ConfigurationDiagnostics.js.map +1 -1
- package/dist/server/Daemon.d.ts +25 -16
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +137 -96
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +1 -4
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +1 -11
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/EnvFunctionality.d.ts +3 -5
- package/dist/server/EnvFunctionality.d.ts.map +1 -1
- package/dist/server/EnvFunctionality.js +5 -7
- package/dist/server/EnvFunctionality.js.map +1 -1
- package/dist/server/Functionality.d.ts +3 -2
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +43 -14
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +3 -4
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +17 -9
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/HttpListener.d.ts +2 -0
- package/dist/server/HttpListener.d.ts.map +1 -1
- package/dist/server/HttpListener.js +23 -9
- package/dist/server/HttpListener.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +2 -5
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +5 -3
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/ModuleHost.d.ts +33 -0
- package/dist/server/ModuleHost.d.ts.map +1 -0
- package/dist/server/ModuleHost.js +2 -0
- package/dist/server/ModuleHost.js.map +1 -0
- package/dist/server/PlurnkSkill.d.ts.map +1 -1
- package/dist/server/PlurnkSkill.js +54 -6
- package/dist/server/PlurnkSkill.js.map +1 -1
- package/dist/server/ServiceModules.d.ts +0 -2
- package/dist/server/ServiceModules.d.ts.map +1 -1
- package/dist/server/ServiceModules.js +5 -9
- package/dist/server/ServiceModules.js.map +1 -1
- package/dist/server/WorkspacePlugins.d.ts +2 -11
- package/dist/server/WorkspacePlugins.d.ts.map +1 -1
- package/dist/server/WorkspacePlugins.js.map +1 -1
- package/dist/server/WorkspaceResidency.d.ts +2 -1
- package/dist/server/WorkspaceResidency.d.ts.map +1 -1
- package/dist/server/WorkspaceStorage.d.ts.map +1 -1
- package/dist/server/WorkspaceStorage.js +7 -4
- package/dist/server/WorkspaceStorage.js.map +1 -1
- package/dist/server/client-input.d.ts +1 -2
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +2 -13
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +1 -1
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +6 -6
- package/dist/server/envelope.d.ts +2 -1
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +7 -17
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +5 -5
- package/dist/server/module-discovery.d.ts +11 -3
- package/dist/server/module-discovery.d.ts.map +1 -1
- package/dist/server/module-discovery.js +32 -18
- package/dist/server/module-discovery.js.map +1 -1
- package/dist/server/seam-proposal-list.sql +6 -4
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +58 -65
- package/dist/service.js.map +1 -1
- package/migrations/003_loops.sql +2 -2
- package/migrations/006_log.sql +1 -1
- package/migrations/016_selection_statements.sql +44 -0
- package/migrations/017_skills_module.sql +6 -0
- package/migrations/018_worker_owners.sql +102 -0
- package/migrations/019_interactive_owners.sql +6 -0
- package/migrations/020_log_projection.sql +143 -0
- package/package.json +71 -76
- package/dist/core/EmissionHead.d.ts +0 -8
- package/dist/core/EmissionHead.d.ts.map +0 -1
- package/dist/core/EmissionHead.js +0 -29
- package/dist/core/EmissionHead.js.map +0 -1
- package/dist/core/LegacyHome.d.ts +0 -10
- package/dist/core/LegacyHome.d.ts.map +0 -1
- package/dist/core/LegacyHome.js +0 -170
- package/dist/core/LegacyHome.js.map +0 -1
- package/dist/core/LoopPolicies.d.ts +0 -7
- package/dist/core/LoopPolicies.d.ts.map +0 -1
- package/dist/core/LoopPolicies.js +0 -42
- package/dist/core/LoopPolicies.js.map +0 -1
- package/dist/core/LoopPolicyReader.d.ts +0 -7
- package/dist/core/LoopPolicyReader.d.ts.map +0 -1
- package/dist/core/LoopPolicyReader.js +0 -33
- package/dist/core/LoopPolicyReader.js.map +0 -1
- package/dist/core/LoopPolicyReader.sql +0 -6
- package/dist/core/operation-target-groups.d.ts +0 -3
- package/dist/core/operation-target-groups.d.ts.map +0 -1
- package/dist/core/operation-target-groups.js +0 -77
- package/dist/core/operation-target-groups.js.map +0 -1
- package/dist/digest/Digest.d.ts +0 -10
- package/dist/digest/Digest.d.ts.map +0 -1
- package/dist/digest/Digest.js +0 -252
- package/dist/digest/Digest.js.map +0 -1
- package/dist/digest/DigestEvidence.d.ts +0 -11
- package/dist/digest/DigestEvidence.d.ts.map +0 -1
- package/dist/digest/DigestEvidence.js +0 -66
- package/dist/digest/DigestEvidence.js.map +0 -1
- package/dist/digest/DigestRender.d.ts +0 -18
- package/dist/digest/DigestRender.d.ts.map +0 -1
- package/dist/digest/DigestRender.js +0 -1044
- package/dist/digest/DigestRender.js.map +0 -1
- package/dist/digest/DigestRequiem.d.ts +0 -13
- package/dist/digest/DigestRequiem.d.ts.map +0 -1
- package/dist/digest/DigestRequiem.js +0 -337
- package/dist/digest/DigestRequiem.js.map +0 -1
- package/dist/digest/digest-db.d.ts +0 -3
- package/dist/digest/digest-db.d.ts.map +0 -1
- package/dist/digest/digest-db.js +0 -68
- package/dist/digest/digest-db.js.map +0 -1
- package/dist/digest/digest-paths.d.ts +0 -6
- package/dist/digest/digest-paths.d.ts.map +0 -1
- package/dist/digest/digest-paths.js +0 -14
- package/dist/digest/digest-paths.js.map +0 -1
- package/dist/digest/digest-rows.d.ts +0 -346
- package/dist/digest/digest-rows.d.ts.map +0 -1
- package/dist/digest/digest-rows.js +0 -2
- package/dist/digest/digest-rows.js.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -23
- package/dist/index.js.map +0 -1
- package/dist/schemes/Skill.d.ts.map +0 -1
- package/dist/schemes/Skill.js.map +0 -1
- package/dist/server/DaemonModule.d.ts +0 -101
- package/dist/server/DaemonModule.d.ts.map +0 -1
- package/dist/server/DaemonModule.js +0 -2
- package/dist/server/DaemonModule.js.map +0 -1
- package/dist/server/SkillSource.d.ts +0 -37
- package/dist/server/SkillSource.d.ts.map +0 -1
- package/dist/server/SkillSource.js +0 -267
- package/dist/server/SkillSource.js.map +0 -1
- package/dist/server/SkillsFunctionality.d.ts +0 -45
- package/dist/server/SkillsFunctionality.d.ts.map +0 -1
- package/dist/server/SkillsFunctionality.js +0 -405
- package/dist/server/SkillsFunctionality.js.map +0 -1
- package/dist/server/skills-problems.d.ts +0 -8
- package/dist/server/skills-problems.d.ts.map +0 -1
- package/dist/server/skills-problems.js +0 -18
- package/dist/server/skills-problems.js.map +0 -1
- package/dist/share/Share.d.ts +0 -15
- package/dist/share/Share.d.ts.map +0 -1
- package/dist/share/Share.js +0 -106
- package/dist/share/Share.js.map +0 -1
- package/dist/share/share.sql +0 -6
- package/docs/skills.md +0 -73
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbProjectionCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbProjectionCaps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAE5C,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"DbProjectionCaps.js","sourceRoot":"","sources":["../../../src/core/caps/DbProjectionCaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,9 @@ interface Declaration {
|
|
|
10
10
|
export default class EnvCatalog {
|
|
11
11
|
#private;
|
|
12
12
|
static declarations(text: string): readonly Declaration[];
|
|
13
|
+
static declaredName(line: string): string | null;
|
|
14
|
+
static isFamily(name: string): boolean;
|
|
15
|
+
static declares(files: readonly EnvDefaultsFile[]): (key: string) => boolean;
|
|
13
16
|
static candidates(files: readonly EnvDefaultsFile[], query?: EnvCatalogQuery): readonly {
|
|
14
17
|
alias: string;
|
|
15
18
|
summary?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-catalog.d.ts","sourceRoot":"","sources":["../../src/core/env-catalog.ts"],"names":[],"mappings":"AAWA,OAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"env-catalog.d.ts","sourceRoot":"","sources":["../../src/core/env-catalog.ts"],"names":[],"mappings":"AAWA,OAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAStE,MAAM,WAAW,eAAe;IAE5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,UAAU,WAAW;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,OAAO,UAAU;;IAI3B,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAWxD;IAGD,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE/C;IAGD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErC;IAID,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAiB3E;IAWD,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,GAAE,eAAoB,GAAG,SAAS;QACxF,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/D,UAAU,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KACnE,EAAE,CA0BF;IAYD,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,GAAE,eAAoB,GAAG,MAAM,CAcrF;CACJ"}
|
package/dist/core/env-catalog.js
CHANGED
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
// including names nothing declares. The catalog answers a different question — which keys have a
|
|
11
11
|
// CONSUMER. `FOO=bar` is valid and nothing reads it; `PAGER=less` is valid and something does.
|
|
12
12
|
import EnvDefaults from "./env-defaults.js";
|
|
13
|
+
// A declaration line: `KEY=value` is live, `# KEY=value` optional. A `<placeholder>` segment in the
|
|
14
|
+
// name declares a family of keys ({§operator-config-undeclared-key}), only ever written commented.
|
|
15
|
+
const DECLARATION = /^#?\s*([A-Za-z_][A-Za-z0-9_]*(?:<[^<>\s=]+>[A-Za-z0-9_]*)*)=/u;
|
|
16
|
+
const PLACEHOLDER = /<[^<>\s=]+>/gu;
|
|
17
|
+
// What a placeholder, or the scope after a declared name's `_`, stands for: an alias, a name, a tag.
|
|
18
|
+
const SEGMENT = "[\\p{L}\\p{N}_.-]+";
|
|
13
19
|
export default class EnvCatalog {
|
|
14
20
|
// Declarations in file order, each carrying the comment lines that introduce it. A commented
|
|
15
21
|
// declaration (`# PLURNK_EXECS_ONLY=sh,jq`) is an optional knob, not prose, so it is a
|
|
@@ -18,22 +24,48 @@ export default class EnvCatalog {
|
|
|
18
24
|
const out = [];
|
|
19
25
|
let pending = [];
|
|
20
26
|
for (const line of text.split("\n")) {
|
|
21
|
-
const
|
|
22
|
-
|
|
27
|
+
const name = EnvCatalog.declaredName(line);
|
|
28
|
+
// A blank line, or a comment that is not an assignment, introduces whatever comes next.
|
|
29
|
+
if (name === null) {
|
|
23
30
|
pending.push(line);
|
|
24
31
|
continue;
|
|
25
32
|
}
|
|
26
|
-
|
|
27
|
-
// A comment that is not an assignment introduces whatever comes next.
|
|
28
|
-
if (assignment === null) {
|
|
29
|
-
pending.push(line);
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
out.push({ name: assignment[1], text: [...pending, line].join("\n") });
|
|
33
|
+
out.push({ name, text: [...pending, line].join("\n") });
|
|
33
34
|
pending = [];
|
|
34
35
|
}
|
|
35
36
|
return out;
|
|
36
37
|
}
|
|
38
|
+
// The name one panel line declares, or null for prose. Every reader of a panel shares it.
|
|
39
|
+
static declaredName(line) {
|
|
40
|
+
return DECLARATION.exec(line.trim())?.[1] ?? null;
|
|
41
|
+
}
|
|
42
|
+
// The declaration grammar admits `<` only to open a placeholder.
|
|
43
|
+
static isFamily(name) {
|
|
44
|
+
return name.includes("<");
|
|
45
|
+
}
|
|
46
|
+
// {§operator-config-undeclared-key} Whether an installed package declares a key: by name, as a
|
|
47
|
+
// declared name's `_` scope (a per-alias knob, `PLURNK_MODEL_<alias>`), or as a family member.
|
|
48
|
+
static declares(files) {
|
|
49
|
+
const names = new Set();
|
|
50
|
+
const families = [];
|
|
51
|
+
for (const { text } of files) {
|
|
52
|
+
for (const { name } of EnvCatalog.declarations(text)) {
|
|
53
|
+
if (EnvCatalog.isFamily(name))
|
|
54
|
+
families.push(new RegExp(`^${name.replaceAll(PLACEHOLDER, SEGMENT)}$`, "u"));
|
|
55
|
+
else
|
|
56
|
+
names.add(name);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const scope = new RegExp(`^${SEGMENT}$`, "u");
|
|
60
|
+
const scoped = (key) => {
|
|
61
|
+
for (let at = key.indexOf("_"); at !== -1; at = key.indexOf("_", at + 1)) {
|
|
62
|
+
if (names.has(key.slice(0, at)) && scope.test(key.slice(at + 1)))
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
};
|
|
67
|
+
return (key) => names.has(key) || scoped(key) || families.some((family) => family.test(key));
|
|
68
|
+
}
|
|
37
69
|
// The name, or the comment that documents it — a Worker looks for a variable by what it is
|
|
38
70
|
// for ("search") before it knows what it is called. Never the value: a value match would
|
|
39
71
|
// surface a value the model did not ask to see — the catalog carries shipped defaults rather
|
|
@@ -49,6 +81,9 @@ export default class EnvCatalog {
|
|
|
49
81
|
const out = [];
|
|
50
82
|
for (const file of selected) {
|
|
51
83
|
for (const declaration of EnvCatalog.declarations(file.text)) {
|
|
84
|
+
// A family is no name a Worker can set; only its members are.
|
|
85
|
+
if (EnvCatalog.isFamily(declaration.name))
|
|
86
|
+
continue;
|
|
52
87
|
if (term !== undefined && !EnvCatalog.#matches(declaration, term))
|
|
53
88
|
continue;
|
|
54
89
|
const lines = declaration.text.split("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-catalog.js","sourceRoot":"","sources":["../../src/core/env-catalog.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,iGAAiG;AACjG,wDAAwD;AACxD,EAAE;AACF,+FAA+F;AAC/F,+FAA+F;AAC/F,8EAA8E;AAC9E,EAAE;AACF,gGAAgG;AAChG,iGAAiG;AACjG,+FAA+F;AAC/F,OAAO,WAAqC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"env-catalog.js","sourceRoot":"","sources":["../../src/core/env-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfigurationError } from "@plurnk/plurnk-meta";
|
|
1
|
+
import { ConfigurationError, type PackageCandidate } from "@plurnk/plurnk-meta";
|
|
2
2
|
import type { PluginReport } from "@plurnk/plurnk-agent-plugins";
|
|
3
3
|
import HostPaths from "./HostPaths.ts";
|
|
4
4
|
export type EnvDefaultsFile = {
|
|
@@ -13,6 +13,7 @@ export interface EnvDefaultsCollection {
|
|
|
13
13
|
}
|
|
14
14
|
export default class EnvDefaults {
|
|
15
15
|
#private;
|
|
16
|
+
static members(dirs: readonly PackageCandidate[]): Promise<PackageCandidate[]>;
|
|
16
17
|
static collect(serviceRoot: string, nodeModules: string, { hostPaths }?: {
|
|
17
18
|
readonly hostPaths?: HostPaths;
|
|
18
19
|
}): Promise<EnvDefaultsCollection>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-defaults.d.ts","sourceRoot":"","sources":["../../src/core/env-defaults.ts"],"names":[],"mappings":"AAGA,OAAa,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"env-defaults.d.ts","sourceRoot":"","sources":["../../src/core/env-defaults.ts"],"names":[],"mappings":"AAGA,OAAa,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAYvC,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAC7C;AAED,MAAM,CAAC,OAAO,OAAO,WAAW;;IAqB5B,OAAa,OAAO,CAAC,IAAI,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAanF;IAcD,OAAa,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAA2B,EAAE,GAAE;QAC5F,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;KAC7B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuBtC;IAGD,OAAa,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAapF;IAID,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAU7F;IAGD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAEhF;IAID,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAW9D;CACJ"}
|
|
@@ -25,17 +25,18 @@ export default class EnvDefaults {
|
|
|
25
25
|
throw new Error(`${owner}: malformed .env.defaults — invalid key(s): ${junk.map((k) => JSON.stringify(k)).join(", ")}`);
|
|
26
26
|
return { owner, text, parsed };
|
|
27
27
|
}
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
// The installed ecosystem members, name-sorted: trusted packages in the `@plurnk/*` scope or
|
|
29
|
+
// declaring `plurnk` in package.json. The defaults floor and the plurnk skill's contracts
|
|
30
|
+
// index share this one membership ({§plurnk-skill}).
|
|
31
|
+
static async members(dirs) {
|
|
32
|
+
const members = [];
|
|
33
|
+
for (const candidate of dirs.toSorted((a, b) => a.name.localeCompare(b.name))) {
|
|
34
|
+
if (!Meta.isTrusted(candidate.name))
|
|
34
35
|
continue;
|
|
35
|
-
if (!name.startsWith("@plurnk/")) {
|
|
36
|
+
if (!candidate.name.startsWith("@plurnk/")) {
|
|
36
37
|
let pkg;
|
|
37
38
|
try {
|
|
38
|
-
pkg = JSON.parse(await readFile(join(dir, "package.json"), "utf8"));
|
|
39
|
+
pkg = JSON.parse(await readFile(join(candidate.dir, "package.json"), "utf8"));
|
|
39
40
|
}
|
|
40
41
|
catch {
|
|
41
42
|
continue;
|
|
@@ -43,6 +44,13 @@ export default class EnvDefaults {
|
|
|
43
44
|
if (pkg.plurnk === undefined)
|
|
44
45
|
continue; // not an ecosystem member
|
|
45
46
|
}
|
|
47
|
+
members.push(candidate);
|
|
48
|
+
}
|
|
49
|
+
return members;
|
|
50
|
+
}
|
|
51
|
+
static async #memberFiles(dirs) {
|
|
52
|
+
const files = [];
|
|
53
|
+
for (const { dir, name } of await EnvDefaults.members(dirs)) {
|
|
46
54
|
const file = await EnvDefaults.#readDefaults(dir, name);
|
|
47
55
|
if (file !== null)
|
|
48
56
|
files.push(file);
|
|
@@ -82,7 +90,7 @@ export default class EnvDefaults {
|
|
|
82
90
|
}
|
|
83
91
|
return { files, configurationErrors, reports: sources.reports };
|
|
84
92
|
}
|
|
85
|
-
// {§operator-config-env-defaults} A standard bundle's panel is
|
|
93
|
+
// {§operator-config-env-defaults} A standard bundle's panel is extension data, not a portable component.
|
|
86
94
|
static async nativeFile(root, owner) {
|
|
87
95
|
const location = join(root, "ai.plurnk", ".env.defaults");
|
|
88
96
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-defaults.js","sourceRoot":"","sources":["../../src/core/env-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,EAAE,EAAE,kBAAkB,EAAyB,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAuBvD,MAAM,CAAC,OAAO,OAAO,WAAW;IAE5B,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,KAAa;QACjD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YAAC,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAClE,OAAO,KAAK,EAAE,CAAC;YACX,IAAK,KAA+B,EAAE,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,wFAAwF;QACxF,yFAAyF;QACzF,6DAA6D;QAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAA2B,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,+CAA+C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7I,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"env-defaults.js","sourceRoot":"","sources":["../../src/core/env-defaults.ts"],"names":[],"mappings":"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"}
|
package/dist/core/fork.sql
CHANGED
|
@@ -14,12 +14,12 @@ BEGIN
|
|
|
14
14
|
-- Loops: inherited history, never live work — a non-terminal status is clamped to 200 and
|
|
15
15
|
-- given a plain success result ({§machine-processes-fork-copies-the-log}).
|
|
16
16
|
INSERT INTO loops (
|
|
17
|
-
worker_id, sequence, status, prompt,
|
|
17
|
+
worker_id, sequence, status, prompt, model_route_id,
|
|
18
18
|
spawn_model_route_id, effort, max_turns, terminal_result
|
|
19
19
|
)
|
|
20
20
|
SELECT NEW.id, l.sequence,
|
|
21
21
|
CASE WHEN l.status IN (200, 413, 429, 499, 500, 504, 508) THEN l.status ELSE 200 END,
|
|
22
|
-
l.prompt, l.
|
|
22
|
+
l.prompt, l.model_route_id, l.spawn_model_route_id, l.effort, l.max_turns,
|
|
23
23
|
CASE WHEN l.status IN (200, 413, 429, 499, 500, 504, 508) THEN l.terminal_result ELSE '{"status":200}' END
|
|
24
24
|
FROM loops l
|
|
25
25
|
WHERE l.worker_id = NEW.parent_worker_id
|
|
@@ -93,8 +93,7 @@ BEGIN
|
|
|
93
93
|
WHERE e.worker_id = NEW.parent_worker_id
|
|
94
94
|
ORDER BY e.id;
|
|
95
95
|
|
|
96
|
-
-- Current projection: membership and folded intervals.
|
|
97
|
-
-- ({§context-output-selection}) stay at their defaults on the fork.
|
|
96
|
+
-- Current projection: membership and folded intervals.
|
|
98
97
|
UPDATE log_entry_projections
|
|
99
98
|
SET active = source.active,
|
|
100
99
|
folded = source.folded
|
|
@@ -30,6 +30,4 @@ export const readSystemPolicy = async () => {
|
|
|
30
30
|
const env = raw?.trim();
|
|
31
31
|
return readPolicy(env ? resolveInjectPath(env) : new HostPaths().policyFile, !!env);
|
|
32
32
|
};
|
|
33
|
-
// Project policy is retired from the system slot: the project AGENTS.md now
|
|
34
|
-
// rides turn 0 as the foisted AGENTS.md entry ({§turn0-agents-stunt}).
|
|
35
33
|
//# sourceMappingURL=packet-inject.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packet-inject.js","sourceRoot":"","sources":["../../src/core/packet-inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,2FAA2F;AAC3F,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAU,EAAE,CACrD,IAAI,SAAS,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAA4B,EAAE;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,iFAAiF;AACjF,mFAAmF;AACnF,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,QAAiB,EAA0B,EAAE;IACjF,IAAI,CAAC;QAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAAC,CAAC;IAC7D,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,QAAQ;YAAE,MAAM,GAAG,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AACzD,CAAC,CAAC;AAEF,sGAAsG;AACtG,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAA4B,EAAE;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC9C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,wCAAwC;IACjG,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IACxB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACxF,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"packet-inject.js","sourceRoot":"","sources":["../../src/core/packet-inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,2FAA2F;AAC3F,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAU,EAAE,CACrD,IAAI,SAAS,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAA4B,EAAE;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,iFAAiF;AACjF,mFAAmF;AACnF,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,QAAiB,EAA0B,EAAE;IACjF,IAAI,CAAC;QAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAAC,CAAC;IAC7D,OAAO,GAAG,EAAE,CAAC;QAAC,IAAI,QAAQ;YAAE,MAAM,GAAG,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AACzD,CAAC,CAAC;AAEF,sGAAsG;AACtG,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,IAA4B,EAAE;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAC9C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,wCAAwC;IACjG,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IACxB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACxF,CAAC,CAAC"}
|
|
@@ -100,14 +100,8 @@ export interface RenderedLog {
|
|
|
100
100
|
readonly records: readonly string[];
|
|
101
101
|
readonly curationTargets: readonly ReclaimableLogItem[];
|
|
102
102
|
readonly attachments: readonly PacketAttachment[];
|
|
103
|
-
readonly emissions: readonly RenderedEmission[];
|
|
104
103
|
readonly bodied: readonly BodiedLogRow[];
|
|
105
104
|
}
|
|
106
|
-
export interface RenderedEmission {
|
|
107
|
-
readonly coordinate: string;
|
|
108
|
-
readonly content: string;
|
|
109
|
-
readonly weight: number;
|
|
110
|
-
}
|
|
111
105
|
export default class PacketWire {
|
|
112
106
|
#private;
|
|
113
107
|
static renderSlot(sections: SectionView[], slot: "system" | "user"): string;
|
|
@@ -119,12 +113,9 @@ export default class PacketWire {
|
|
|
119
113
|
static renderLog(entries: unknown, weighContent: WeighContent, options?: RenderLogOptions): string;
|
|
120
114
|
static renderLogWithAccounting(entries: unknown, weighContent: WeighContent, options?: RenderLogOptions): RenderedLog;
|
|
121
115
|
static sectionContent(packet: Packet, name: string): string;
|
|
122
|
-
static packetToWireMessages(packet: Packet
|
|
123
|
-
role: string;
|
|
116
|
+
static packetToWireMessages(packet: Packet): Array<ChatMessage & {
|
|
124
117
|
content: string;
|
|
125
118
|
}>;
|
|
126
|
-
static deliveredEmission(frozen: string): string;
|
|
127
|
-
static placedEmissions(sections: readonly SectionView[], emissions: ReadonlyMap<string, string>): string[];
|
|
128
119
|
static isArrival(e: {
|
|
129
120
|
readonly op?: unknown;
|
|
130
121
|
readonly origin?: unknown;
|
|
@@ -132,7 +123,7 @@ export default class PacketWire {
|
|
|
132
123
|
}): boolean;
|
|
133
124
|
static entryView(r: StoredLogRow, transientOpenLogEntryId?: number | null): LogEntryView;
|
|
134
125
|
static rowTokens(view: LogEntryView, weighContent: WeighContent, options?: RenderLogOptions): number;
|
|
135
|
-
static wireMessages(packet: RequestPacket,
|
|
126
|
+
static wireMessages(packet: RequestPacket, bytesOf: (attachment: PacketAttachment) => Promise<Uint8Array>, accepts?: (kind: PacketAttachment["kind"]) => boolean): Promise<ChatMessage[]>;
|
|
136
127
|
static attachmentCaption(attachment: PacketAttachment): string;
|
|
137
128
|
}
|
|
138
129
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packet-wire.d.ts","sourceRoot":"","sources":["../../src/core/packet-wire.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"packet-wire.d.ts","sourceRoot":"","sources":["../../src/core/packet-wire.ts"],"names":[],"mappings":"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"}
|
package/dist/core/packet-wire.js
CHANGED
|
@@ -95,7 +95,7 @@ export default class PacketWire {
|
|
|
95
95
|
static renderLogWithAccounting(entries, weighContent, options = {}) {
|
|
96
96
|
const log = Array.isArray(entries) ? entries : [];
|
|
97
97
|
if (log.length === 0)
|
|
98
|
-
return { content: "", records: [], curationTargets: [], attachments: [],
|
|
98
|
+
return { content: "", records: [], curationTargets: [], attachments: [], bodied: [] };
|
|
99
99
|
const rows = PacketWire.#renderLogEntries(log, weighContent, options);
|
|
100
100
|
const records = rows.map(({ content }) => content);
|
|
101
101
|
return {
|
|
@@ -103,7 +103,6 @@ export default class PacketWire {
|
|
|
103
103
|
records,
|
|
104
104
|
curationTargets: rows.flatMap(({ curationTarget }) => curationTarget === null ? [] : [curationTarget]),
|
|
105
105
|
attachments: rows.flatMap(({ attachment }) => attachment === null ? [] : [attachment]),
|
|
106
|
-
emissions: rows.flatMap(({ emission }) => emission === null ? [] : [emission]),
|
|
107
106
|
bodied: rows.flatMap(({ bodied }) => bodied === null ? [] : [bodied]),
|
|
108
107
|
};
|
|
109
108
|
}
|
|
@@ -114,94 +113,17 @@ export default class PacketWire {
|
|
|
114
113
|
const s = packet.sections?.find((x) => x.name === name);
|
|
115
114
|
return typeof s?.content === "string" ? s.content : "";
|
|
116
115
|
}
|
|
117
|
-
// {§packet-wire-envelope}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const messages = [{ role: "system", content: PacketWire.renderSlot(sections, "system") }];
|
|
124
|
-
let pending = [];
|
|
125
|
-
for (const section of sections) {
|
|
126
|
-
if (section.slot !== "user")
|
|
127
|
-
continue;
|
|
128
|
-
const rendered = PacketWire.renderSection(section);
|
|
129
|
-
if (rendered.length === 0)
|
|
130
|
-
continue;
|
|
131
|
-
if (section.name !== "log") {
|
|
132
|
-
pending.push(rendered);
|
|
133
|
-
continue;
|
|
134
|
-
}
|
|
135
|
-
for (const { content, coordinate } of PacketWire.#logRecords(rendered)) {
|
|
136
|
-
pending.push(content);
|
|
137
|
-
const frozen = coordinate === null ? undefined : emissions.get(coordinate);
|
|
138
|
-
const emission = frozen === undefined ? "" : PacketWire.deliveredEmission(frozen);
|
|
139
|
-
// {§emission-row}: an emission of only NOTE and WAIT delivers nothing; its row stands.
|
|
140
|
-
if (emission.length === 0)
|
|
141
|
-
continue;
|
|
142
|
-
messages.push({ role: "user", content: pending.join("\n\n") });
|
|
143
|
-
messages.push({ role: "assistant", content: emission });
|
|
144
|
-
pending = [];
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
const closing = pending.join("\n\n");
|
|
148
|
-
if (closing.length === 0 && messages.at(-1)?.role === "assistant")
|
|
149
|
-
throw new Error("a request never ends on an emission: nothing follows the last one");
|
|
150
|
-
messages.push({ role: "user", content: closing });
|
|
151
|
-
return messages;
|
|
152
|
-
}
|
|
153
|
-
// {§emission-row} — the wire omits NOTE and WAIT blocks, whose rows show them whole; the frozen
|
|
154
|
-
// projection keeps every statement. Deliberately a text filter: the projection is TurnOps' own
|
|
155
|
-
// rendering, whose fences are longer than any backtick run inside them, so a block is read back by
|
|
156
|
-
// its fences alone, whatever era froze it.
|
|
157
|
-
static deliveredEmission(frozen) {
|
|
158
|
-
const lines = frozen.split("\n");
|
|
159
|
-
const kept = [];
|
|
160
|
-
for (let index = 0; index < lines.length;) {
|
|
161
|
-
const fence = /^`{3,}/u.exec(lines[index])?.[0];
|
|
162
|
-
if (fence === undefined)
|
|
163
|
-
throw new Error(`an emission block opens with a fence, not ${JSON.stringify(lines[index])}`);
|
|
164
|
-
const end = lines.findIndex((line, at) => at > index && (line === fence || line.startsWith(`${fence} <!-- `)));
|
|
165
|
-
if (end === -1)
|
|
166
|
-
throw new Error("an emission block closes with its own fence");
|
|
167
|
-
if (!new RegExp(`^${fence}(?:NOTE|WAIT)\\b`, "u").test(lines[index]))
|
|
168
|
-
kept.push(lines.slice(index, end + 1).join("\n"));
|
|
169
|
-
index = end + 2;
|
|
170
|
-
}
|
|
171
|
-
return kept.join("\n\n");
|
|
172
|
-
}
|
|
173
|
-
// {§emission-row} — the coordinates of the emission rows present in the final log section, in order.
|
|
174
|
-
// Every emission row must be announced by the render pass that built the map.
|
|
175
|
-
static placedEmissions(sections, emissions) {
|
|
176
|
-
const log = sections.find((section) => section.slot === "user" && section.name === "log");
|
|
177
|
-
if (log === undefined)
|
|
178
|
-
return [];
|
|
179
|
-
const placed = [];
|
|
180
|
-
for (const { coordinate, leaf } of PacketWire.#logRecords(PacketWire.renderSection(log))) {
|
|
181
|
-
if (coordinate === null)
|
|
182
|
-
continue;
|
|
183
|
-
if (emissions.has(coordinate)) {
|
|
184
|
-
if (placed.includes(coordinate))
|
|
185
|
-
throw new Error(`log:///${coordinate}/emission appears twice in one log section`);
|
|
186
|
-
placed.push(coordinate);
|
|
187
|
-
}
|
|
188
|
-
else if (leaf === "emission") {
|
|
189
|
-
throw new Error(`log:///${coordinate}/emission reached the log section without its emission`);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return placed;
|
|
193
|
-
}
|
|
194
|
-
static #logRecords(rendered) {
|
|
195
|
-
return rendered.split(/\n\n(?=### log:\/\/\/)/u).map((content) => {
|
|
196
|
-
const match = /^### log:\/\/\/(\d+\/\d+\/\d+)(?:\/(\S*))?(?=\s|$)/mu.exec(content);
|
|
197
|
-
return { content, coordinate: match?.[1] ?? null, leaf: match?.[2] ?? null };
|
|
198
|
-
});
|
|
116
|
+
// {§packet-wire-envelope}: the stored slots are the text envelope, without assistant replay.
|
|
117
|
+
static packetToWireMessages(packet) {
|
|
118
|
+
return [
|
|
119
|
+
{ role: "system", content: PacketWire.renderSlot(packet.sections ?? [], "system") },
|
|
120
|
+
{ role: "user", content: PacketWire.renderSlot(packet.sections ?? [], "user") },
|
|
121
|
+
];
|
|
199
122
|
}
|
|
200
123
|
// Number a non-READ body line as `<N>:<line>` — `N:` followed by NO separator whitespace
|
|
201
124
|
// ({§render-rule-line-navigable-prefix}): the leading digit prevents column-zero fence collisions and gives
|
|
202
125
|
// the model line refs for free (`READ (...) <42-46>`), while the absence of any separator means a
|
|
203
|
-
// reproduced line has nothing between `N:` and the content to copy
|
|
204
|
-
// to leak into edit bodies and corrupt indentation. The content's OWN leading whitespace is
|
|
126
|
+
// reproduced line has nothing between `N:` and the content to copy. The content's OWN leading whitespace is
|
|
205
127
|
// content, preserved verbatim. `N` is left-padded to the body's line-range width so every body
|
|
206
128
|
// keeps one stable content column; FIND rows pass the complete result-set width so their pages
|
|
207
129
|
// share a column with the whole set.
|
|
@@ -455,7 +377,7 @@ export default class PacketWire {
|
|
|
455
377
|
const rx = (typeof e.rx === "string" ? PacketWire.#safeParse(e.rx) : e.rx);
|
|
456
378
|
const facts = PacketWire.#rowResultFacts(identity, e, rx, bodies[index]);
|
|
457
379
|
const projected = PacketWire.#rowBody(identity, e, bodies[index], visibility[index], facts);
|
|
458
|
-
return PacketWire.#rowAccounting(identity, e,
|
|
380
|
+
return PacketWire.#rowAccounting(identity, e, visibility[index], projected, weighContent, options);
|
|
459
381
|
});
|
|
460
382
|
}
|
|
461
383
|
static #attrsOf(e) {
|
|
@@ -601,11 +523,10 @@ export default class PacketWire {
|
|
|
601
523
|
// {§worker-wait-timing} — the accepted bound, not elapsed time or the current configuration.
|
|
602
524
|
if (op === "WAIT" && e.attrs !== null && typeof e.attrs === "object" && "waiting" in e.attrs) {
|
|
603
525
|
const seconds = e.attrs.waiting;
|
|
604
|
-
if (typeof seconds !== "number" || !Number.isFinite(seconds) ||
|
|
526
|
+
if (typeof seconds !== "number" || !Number.isFinite(seconds) || seconds < 0) {
|
|
605
527
|
throw new TypeError("A WAIT receipt carries a malformed waiting bound.");
|
|
606
528
|
}
|
|
607
|
-
|
|
608
|
-
meta.waitSeconds = seconds;
|
|
529
|
+
meta.waitSeconds = seconds;
|
|
609
530
|
}
|
|
610
531
|
// An execution's output is a separate stream entry ({§exec-stream}); its address rides in a
|
|
611
532
|
// `stream` link, distinct from the runtime-owned invocation target.
|
|
@@ -774,8 +695,7 @@ export default class PacketWire {
|
|
|
774
695
|
};
|
|
775
696
|
}
|
|
776
697
|
// The body the row shows: the canonical full body, shared with log READ, log FIND and search
|
|
777
|
-
// derivation, whole. Whether a result fit was decided where it landed ({§context-fit})
|
|
778
|
-
// cuts nothing but the emission head ({§emission-row}).
|
|
698
|
+
// derivation, whole. Whether a result fit was decided where it landed ({§context-fit}).
|
|
779
699
|
static #rowBody(identity, e, fullBody, bodyVisibility, facts) {
|
|
780
700
|
const { meta, op } = identity;
|
|
781
701
|
const projectedBody = {
|
|
@@ -852,7 +772,7 @@ export default class PacketWire {
|
|
|
852
772
|
// The row's native attachment, a landed-unfit arrival's size, and the accounting field that
|
|
853
773
|
// participates in the row it measures: iterate until its decimal width and therefore the
|
|
854
774
|
// rendered row's curation weight are stable. {§packet-token-accounting}
|
|
855
|
-
static #rowAccounting(identity, e,
|
|
775
|
+
static #rowAccounting(identity, e, bodyVisibility, projected, weighContent, options) {
|
|
856
776
|
const { meta, op, coordinate, path, target } = identity;
|
|
857
777
|
const { body, display } = projected;
|
|
858
778
|
const nativeCandidate = op === "READ" && typeof e.status === "number" && e.status >= 200 && e.status < 300
|
|
@@ -868,11 +788,6 @@ export default class PacketWire {
|
|
|
868
788
|
const attachment = !(bodyVisibility.totalLines > 0 && bodyVisibility.fullyFolded)
|
|
869
789
|
? native
|
|
870
790
|
: null;
|
|
871
|
-
// {§emission-row}: an emission row carries its frozen emission outside its record, and charges what
|
|
872
|
-
// the wire delivers of it, as the worker's own message, exactly as a native part is charged.
|
|
873
|
-
const emission = LogEntryProjection.isEmission(e) && coordinate !== null
|
|
874
|
-
? { coordinate, content: fullBody.content, weight: weighContent(PacketWire.deliveredEmission(fullBody.content)) }
|
|
875
|
-
: null;
|
|
876
791
|
// {§log-wire-format}: one descriptive heading, the facts, the body.
|
|
877
792
|
const render = (open, tokens) => {
|
|
878
793
|
const lines = [`### ${path}${identity.description === null ? "" : ` ${identity.description}`} · ${tokens}`];
|
|
@@ -889,18 +804,18 @@ export default class PacketWire {
|
|
|
889
804
|
delete meta.tokensAttachment;
|
|
890
805
|
let tokens = 0;
|
|
891
806
|
for (let pass = 0; pass < 8; pass += 1) {
|
|
892
|
-
const next = weighContent(render(open, tokens)) + (part?.weight ?? 0)
|
|
807
|
+
const next = weighContent(render(open, tokens)) + (part?.weight ?? 0);
|
|
893
808
|
if (next === tokens)
|
|
894
809
|
return { content: render(open, tokens), tokens };
|
|
895
810
|
tokens = next;
|
|
896
811
|
}
|
|
897
812
|
throw new Error("packet log row accounting did not converge");
|
|
898
813
|
};
|
|
899
|
-
const row = (rendered, part, bodied) => ({ content: rendered.content, curationTarget: { path, tokens: rendered.tokens }, attachment: part,
|
|
814
|
+
const row = (rendered, part, bodied) => ({ content: rendered.content, curationTarget: { path, tokens: rendered.tokens }, attachment: part, bodied });
|
|
900
815
|
const whole = converge(display === "open", attachment);
|
|
901
816
|
// {§context-own-rows-fit} — a row the wall may take carries a body or a native part and is not an
|
|
902
|
-
// emission row, whose
|
|
903
|
-
if (typeof e.id !== "number" ||
|
|
817
|
+
// emission row, whose folded record carries no body.
|
|
818
|
+
if (typeof e.id !== "number" || LogEntryProjection.isEmission(e) || (display !== "open" && attachment === null))
|
|
904
819
|
return row(whole, attachment, null);
|
|
905
820
|
if (!(options.bodiless?.has(e.id) ?? false))
|
|
906
821
|
return row(whole, attachment, { id: e.id, tokens: whole.tokens });
|
|
@@ -953,19 +868,24 @@ export default class PacketWire {
|
|
|
953
868
|
}
|
|
954
869
|
// {§packet-attachment-parts} — the wire form with native parts: user text first, then each accepted
|
|
955
870
|
// retained native part in observation order.
|
|
956
|
-
static async wireMessages(packet,
|
|
957
|
-
const messages = PacketWire.packetToWireMessages(packet
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
871
|
+
static async wireMessages(packet, bytesOf, accepts = () => true) {
|
|
872
|
+
const messages = PacketWire.packetToWireMessages(packet);
|
|
873
|
+
const attachments = (packet.attachments ?? []).filter(({ kind }) => accepts(kind));
|
|
874
|
+
if (attachments.length === 0)
|
|
875
|
+
return messages;
|
|
876
|
+
// {§previous-emission}: native inputs precede the final section, never follow it.
|
|
877
|
+
const preceding = packet.sections.filter(({ name }) => name !== "previous-emission");
|
|
878
|
+
const previous = packet.sections.find(({ name }) => name === "previous-emission");
|
|
879
|
+
const parts = [{ type: "text", text: PacketWire.renderSlot(preceding, "user") }];
|
|
880
|
+
for (const attachment of attachments) {
|
|
964
881
|
const bytes = await bytesOf(attachment);
|
|
965
882
|
parts.push({ type: "text", text: PacketWire.attachmentCaption(attachment) });
|
|
966
883
|
parts.push({ type: "file", data: bytes, mediaType: attachment.mimetype });
|
|
967
884
|
}
|
|
968
|
-
|
|
885
|
+
const tail = previous === undefined ? "" : PacketWire.renderSection(previous);
|
|
886
|
+
if (tail.length > 0)
|
|
887
|
+
parts.push({ type: "text", text: `\n\n${tail}` });
|
|
888
|
+
return [messages[0], { role: "user", content: parts }];
|
|
969
889
|
}
|
|
970
890
|
// {§packet-attachment-parts} — the part's identity: a native part on the user turn otherwise reads as
|
|
971
891
|
// an arrival, and the model cannot tell that the READ row is what keeps it in the packet.
|