@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,405 +0,0 @@
|
|
|
1
|
-
// {§skills-functionality} — standard Agent Skills as one workspace Functionality
|
|
2
|
-
// family. Configuration roots are inputs; live references and fetched sources
|
|
3
|
-
// belong to workspace definitions, never to an installation scope.
|
|
4
|
-
import { createHash } from "node:crypto";
|
|
5
|
-
import { readdir, readFile, realpath, stat } from "node:fs/promises";
|
|
6
|
-
import { join } from "node:path";
|
|
7
|
-
import { SkillDirectory } from "@plurnk/plurnk-agent-skills";
|
|
8
|
-
import { SKILL_NAME, Validator, } from "@plurnk/plurnk-contracts";
|
|
9
|
-
import HostPaths from "../core/HostPaths.js";
|
|
10
|
-
import { ConfigurationError, Knob, ResourceEnvironment } from "@plurnk/plurnk-meta";
|
|
11
|
-
import Paths from "../Paths.js";
|
|
12
|
-
import SkillSource from "./SkillSource.js";
|
|
13
|
-
import { agentRootScopes } from "./AgentRoots.js";
|
|
14
|
-
import { SkillsActionError, actionError, messageOf } from "./skills-problems.js";
|
|
15
|
-
import WorkspacePlugins from "./WorkspacePlugins.js";
|
|
16
|
-
const SKILLS_FAMILY = "skills";
|
|
17
|
-
const SKILLS_OWNER = "@plurnk/plurnk-core/skills";
|
|
18
|
-
const DEFINITION = { $ref: "https://schemas.plurnk.xyz/v0/SkillDefinition.json" };
|
|
19
|
-
// {§skills-sources} — the vendor installer's knobs; each names what replaced it.
|
|
20
|
-
const RETIRED_KNOBS = Object.freeze({
|
|
21
|
-
PLURNK_SERVICE_SKILLS_CLI: "add fetches git, folder and file sources itself",
|
|
22
|
-
PLURNK_SERVICE_SKILLS_CLI_TIMEOUT_MS: "PLURNK_SERVICE_SKILLS_FETCH_TIMEOUT_MS bounds each fetch",
|
|
23
|
-
PLURNK_SERVICE_SKILLS_REGISTRY_URL: "discover takes a source; Agent Skills have no standard registry",
|
|
24
|
-
PLURNK_SERVICE_SKILLS_REGISTRY_LIMIT: "discover takes a source; Agent Skills have no standard registry",
|
|
25
|
-
PLURNK_SERVICE_SKILLS_REGISTRY_TIMEOUT_MS: "discover takes a source; Agent Skills have no standard registry",
|
|
26
|
-
});
|
|
27
|
-
// Installed roots in precedence order: a nearer root shadows a farther one by name.
|
|
28
|
-
const ROOTS = ["project", "plurnk", "global"];
|
|
29
|
-
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
30
|
-
const missing = (cause) => {
|
|
31
|
-
if (cause?.code === "ENOENT")
|
|
32
|
-
return false;
|
|
33
|
-
throw cause;
|
|
34
|
-
};
|
|
35
|
-
const isFile = (path) => stat(path).then((info) => info.isFile(), missing);
|
|
36
|
-
const environment = (env = process.env) => new ResourceEnvironment("PLURNK_SKILLS_", { controls: [], settings: [], aliasPattern: SKILL_NAME }, env);
|
|
37
|
-
export const serviceSkills = (env = process.env) => {
|
|
38
|
-
const definitions = new Map();
|
|
39
|
-
for (const [alias, { key, value }] of environment(env).definitions) {
|
|
40
|
-
let definition;
|
|
41
|
-
try {
|
|
42
|
-
definition = Validator.assertSkillDefinition(JSON.parse(value));
|
|
43
|
-
}
|
|
44
|
-
catch (cause) {
|
|
45
|
-
throw new ConfigurationError(key, `${key} must contain a complete SkillDefinition.`, { cause });
|
|
46
|
-
}
|
|
47
|
-
if (definition.name !== alias)
|
|
48
|
-
throw new ConfigurationError(key, `${key}: the definition name must equal '${alias}'.`);
|
|
49
|
-
if (definition.source === undefined)
|
|
50
|
-
throw new ConfigurationError(key, `${key}: a configured skill requires a source.`);
|
|
51
|
-
if (definition.commit !== undefined)
|
|
52
|
-
throw new ConfigurationError(key, `${key}: commit is service-recorded; configure a Git ref instead.`);
|
|
53
|
-
try {
|
|
54
|
-
const remote = SkillSource.remote(definition.source);
|
|
55
|
-
if (definition.ref !== undefined && remote === null)
|
|
56
|
-
throw new Error("A ref names a branch or tag of a git source.");
|
|
57
|
-
}
|
|
58
|
-
catch (cause) {
|
|
59
|
-
throw new ConfigurationError(key, `${key}: invalid skill source or ref.`, { cause });
|
|
60
|
-
}
|
|
61
|
-
definitions.set(alias, definition);
|
|
62
|
-
}
|
|
63
|
-
return definitions;
|
|
64
|
-
};
|
|
65
|
-
export default class SkillsFunctionality {
|
|
66
|
-
family = SKILLS_FAMILY;
|
|
67
|
-
aliasPattern = SKILL_NAME;
|
|
68
|
-
namespaceOwner = SKILLS_OWNER;
|
|
69
|
-
summary = "Manage Agent Skills";
|
|
70
|
-
definitionSchema = DEFINITION;
|
|
71
|
-
example = { alias: "sql-formatter", definition: { name: "sql-formatter", source: "https://git.example/acme/skills.git" } };
|
|
72
|
-
docsDir = Paths.packageRoot;
|
|
73
|
-
discovery = {
|
|
74
|
-
details: "`source` lists the Agent Skills one source carries: a git remote as a full https or ssh URL, a folder, a lone SKILL.md, or a zip or tar archive. A candidate carries the exact definition to add.",
|
|
75
|
-
};
|
|
76
|
-
#db;
|
|
77
|
-
#hostPaths;
|
|
78
|
-
#storage;
|
|
79
|
-
#provided;
|
|
80
|
-
#plugins;
|
|
81
|
-
#snapshots = new Map();
|
|
82
|
-
#handle = null;
|
|
83
|
-
constructor({ db, storage, hostPaths = new HostPaths(), provided = async () => new Map(), plugins }) {
|
|
84
|
-
this.#db = db;
|
|
85
|
-
this.#storage = storage;
|
|
86
|
-
this.#hostPaths = hostPaths;
|
|
87
|
-
this.#provided = provided;
|
|
88
|
-
this.#plugins = plugins ?? new WorkspacePlugins({ db, hostPaths });
|
|
89
|
-
}
|
|
90
|
-
// Refuses the vendor installer's retired knobs, naming what replaced each, and reads the fetch deadline.
|
|
91
|
-
static validateConfiguration() {
|
|
92
|
-
for (const [knob, successor] of Object.entries(RETIRED_KNOBS)) {
|
|
93
|
-
const stale = process.env[knob];
|
|
94
|
-
if (stale !== undefined && stale.length > 0)
|
|
95
|
-
throw new ConfigurationError(knob, `${knob} is retired: ${successor}.`);
|
|
96
|
-
}
|
|
97
|
-
Knob.integer("PLURNK_SERVICE_SKILLS_FETCH_TIMEOUT_MS", 1);
|
|
98
|
-
serviceSkills();
|
|
99
|
-
}
|
|
100
|
-
attach(handle) {
|
|
101
|
-
this.#handle = handle;
|
|
102
|
-
}
|
|
103
|
-
trees(workspaceId) {
|
|
104
|
-
return this.#snapshots.get(workspaceId)?.trees ?? new Map();
|
|
105
|
-
}
|
|
106
|
-
async #projectRoot(workspaceId) {
|
|
107
|
-
const workspace = await this.#db.envelope_get_workspace.get({ id: workspaceId });
|
|
108
|
-
return workspace?.project_root ?? null;
|
|
109
|
-
}
|
|
110
|
-
#rootFor(scope, projectRoot) {
|
|
111
|
-
if (!agentRootScopes().has(scope))
|
|
112
|
-
return null;
|
|
113
|
-
if (scope === "global")
|
|
114
|
-
return this.#hostPaths.globalSkillsDir;
|
|
115
|
-
if (scope === "plurnk")
|
|
116
|
-
return this.#hostPaths.plurnkSkillsDir;
|
|
117
|
-
return projectRoot === null ? null : this.#hostPaths.projectSkillsDir(projectRoot);
|
|
118
|
-
}
|
|
119
|
-
async #installedIn(scope, dir) {
|
|
120
|
-
let entries;
|
|
121
|
-
try {
|
|
122
|
-
entries = await readdir(dir, { withFileTypes: true });
|
|
123
|
-
}
|
|
124
|
-
catch (cause) {
|
|
125
|
-
if (cause.code === "ENOENT")
|
|
126
|
-
return [];
|
|
127
|
-
throw new Error(`read ${scope} Agent Skills directory ${dir} failed`, { cause });
|
|
128
|
-
}
|
|
129
|
-
const installed = [];
|
|
130
|
-
for (const entry of entries.filter((candidate) => candidate.isDirectory() || candidate.isSymbolicLink())) {
|
|
131
|
-
const file = join(dir, entry.name, "SKILL.md");
|
|
132
|
-
if (await isFile(file))
|
|
133
|
-
installed.push({ name: entry.name, dir: join(dir, entry.name), file });
|
|
134
|
-
}
|
|
135
|
-
return installed.toSorted((left, right) => left.name.localeCompare(right.name));
|
|
136
|
-
}
|
|
137
|
-
// The effective installed union: project shadows plurnk shadows global, by name.
|
|
138
|
-
async #scan(workspaceId, projectRoot) {
|
|
139
|
-
const union = new Map();
|
|
140
|
-
const { plugins } = await this.#plugins.read(workspaceId);
|
|
141
|
-
for (const scope of [...ROOTS, "npm"]) {
|
|
142
|
-
const dir = scope === "npm" ? null : this.#rootFor(scope, projectRoot);
|
|
143
|
-
const standalone = scope === "npm" || dir === null ? [] : await this.#installedIn(scope, dir);
|
|
144
|
-
for (const installed of standalone) {
|
|
145
|
-
if (!union.has(installed.name))
|
|
146
|
-
union.set(installed.name, installed);
|
|
147
|
-
}
|
|
148
|
-
for (const plugin of plugins.filter((candidate) => candidate.scope === scope)) {
|
|
149
|
-
for (const skill of plugin.skills) {
|
|
150
|
-
const name = skill.document.name;
|
|
151
|
-
if (!union.has(name))
|
|
152
|
-
union.set(name, { name, kind: "plugin", dir: skill.directory, file: join(skill.directory, "SKILL.md") });
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
return union;
|
|
157
|
-
}
|
|
158
|
-
async #signature(workspaceId, projectRoot, definitions) {
|
|
159
|
-
const hash = createHash("sha256");
|
|
160
|
-
hash.update((await this.#plugins.read(workspaceId)).signature);
|
|
161
|
-
for (const [name, tree] of await this.#provided()) {
|
|
162
|
-
hash.update(JSON.stringify([name, "service", tree.document.source]));
|
|
163
|
-
}
|
|
164
|
-
for (const scope of ROOTS) {
|
|
165
|
-
const root = this.#rootFor(scope, projectRoot);
|
|
166
|
-
if (root === null)
|
|
167
|
-
continue;
|
|
168
|
-
for (const installed of await this.#installedIn(scope, root)) {
|
|
169
|
-
const identity = await Promise.all([realpath(installed.dir), readFile(installed.file, "utf8")])
|
|
170
|
-
.catch((cause) => [messageOf(cause)]);
|
|
171
|
-
hash.update(JSON.stringify([installed.name, scope, ...identity]));
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
const settings = environment();
|
|
175
|
-
hash.update(JSON.stringify([...serviceSkills()]));
|
|
176
|
-
for (const [alias, raw] of definitions) {
|
|
177
|
-
const definition = raw;
|
|
178
|
-
hash.update(JSON.stringify([alias, definition, settings.enabled(alias)]));
|
|
179
|
-
if (definition.source === undefined)
|
|
180
|
-
continue;
|
|
181
|
-
try {
|
|
182
|
-
const located = await SkillSource.locate(definition.source, { projectRoot, home: this.#hostPaths.home });
|
|
183
|
-
if (located.kind !== "folder" && located.kind !== "skill-file")
|
|
184
|
-
continue;
|
|
185
|
-
const opened = await SkillSource.open(located);
|
|
186
|
-
try {
|
|
187
|
-
for (const found of opened.skills.filter(({ name }) => name === alias)) {
|
|
188
|
-
hash.update(JSON.stringify([await realpath(found.dir), await readFile(join(found.dir, "SKILL.md"), "utf8")]));
|
|
189
|
-
}
|
|
190
|
-
hash.update(JSON.stringify(opened.invalid));
|
|
191
|
-
}
|
|
192
|
-
finally {
|
|
193
|
-
await opened.close();
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
catch (cause) {
|
|
197
|
-
// The preparation reports the source failure; its fingerprint lets restoration trigger a retry.
|
|
198
|
-
hash.update(messageOf(cause));
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return hash.digest("hex");
|
|
202
|
-
}
|
|
203
|
-
// {§skills-hotload} — skills placed, edited or deleted out of band are admitted before a turn
|
|
204
|
-
// assembles its packet. Changed content republishes; otherwise the coordinator republishes only
|
|
205
|
-
// when the skills it would publish differ from the published ones.
|
|
206
|
-
async refreshIfChanged(identity) {
|
|
207
|
-
const published = this.#snapshots.get(identity.workspaceId);
|
|
208
|
-
if (published === undefined)
|
|
209
|
-
return;
|
|
210
|
-
const current = await this.#signature(identity.workspaceId, await this.#projectRoot(identity.workspaceId), published.definitions);
|
|
211
|
-
if (this.#handle === null)
|
|
212
|
-
throw new Error("Skills Functionality is not attached to its coordinator handle.");
|
|
213
|
-
await this.#handle.refresh(identity, { gate: "none", ifChanged: current === published.signature });
|
|
214
|
-
}
|
|
215
|
-
async available(identity) {
|
|
216
|
-
SkillsFunctionality.validateConfiguration();
|
|
217
|
-
const installedSkills = await this.#scan(identity.workspaceId, await this.#projectRoot(identity.workspaceId));
|
|
218
|
-
const settings = environment();
|
|
219
|
-
const definitions = new Map();
|
|
220
|
-
for (const name of (await this.#provided()).keys()) {
|
|
221
|
-
definitions.set(name, { alias: name, definition: { name }, enabled: settings.enabled(name) });
|
|
222
|
-
}
|
|
223
|
-
for (const { name, dir, file, kind } of installedSkills.values()) {
|
|
224
|
-
definitions.set(name, {
|
|
225
|
-
alias: name, definition: { name, source: dir }, enabled: settings.enabled(name),
|
|
226
|
-
provenance: { kind: kind ?? "file", source: file },
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
for (const [name, definition] of serviceSkills()) {
|
|
230
|
-
definitions.set(name, {
|
|
231
|
-
alias: name, definition, enabled: settings.enabled(name),
|
|
232
|
-
provenance: { kind: "environment", source: settings.definitions.get(name).key },
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
return [...definitions.values()];
|
|
236
|
-
}
|
|
237
|
-
async discover(query, identity) {
|
|
238
|
-
if (query.configuration !== undefined) {
|
|
239
|
-
throw actionError("configuration-unsupported", 400, "Agent Skills discovery takes a source; client configuration contributes nothing.", { retryable: false });
|
|
240
|
-
}
|
|
241
|
-
if (query.query !== undefined) {
|
|
242
|
-
throw actionError("query-unsupported", 400, "Agent Skills have no standard registry to search; discover takes a source: a git remote as a full https or ssh URL, a folder, a lone SKILL.md, or a zip or tar archive.", { query: query.query, retryable: false });
|
|
243
|
-
}
|
|
244
|
-
if (query.source === undefined)
|
|
245
|
-
return [];
|
|
246
|
-
const source = query.source;
|
|
247
|
-
const located = await SkillSource.locate(source, { projectRoot: await this.#projectRoot(identity.workspaceId), home: this.#hostPaths.home });
|
|
248
|
-
const opened = await SkillSource.open(located);
|
|
249
|
-
try {
|
|
250
|
-
return opened.skills.map((skill) => ({
|
|
251
|
-
alias: skill.name,
|
|
252
|
-
summary: skill.description,
|
|
253
|
-
definition: { name: skill.name, source },
|
|
254
|
-
provenance: { kind: "source", source },
|
|
255
|
-
}));
|
|
256
|
-
}
|
|
257
|
-
finally {
|
|
258
|
-
await opened.close();
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
async admit(input, identity) {
|
|
262
|
-
const params = isRecord(input) ? input : {};
|
|
263
|
-
let definition;
|
|
264
|
-
try {
|
|
265
|
-
definition = structuredClone(Validator.assertSkillDefinition(structuredClone(params.definition)));
|
|
266
|
-
}
|
|
267
|
-
catch (cause) {
|
|
268
|
-
throw actionError("definition-invalid", 400, "The Agent Skill definition is invalid.", { retryable: false }, cause);
|
|
269
|
-
}
|
|
270
|
-
const alias = typeof params.alias === "string" ? params.alias : definition.name;
|
|
271
|
-
if (alias !== definition.name) {
|
|
272
|
-
throw actionError("alias-mismatch", 400, `Alias '${alias}' must equal the skill name '${definition.name}'.`, { alias, name: definition.name, retryable: false });
|
|
273
|
-
}
|
|
274
|
-
if (definition.commit !== undefined) {
|
|
275
|
-
throw actionError("definition-invalid", 400, "The service records the commit a skill was added at; name a ref instead.", { alias, retryable: false });
|
|
276
|
-
}
|
|
277
|
-
if (definition.source === undefined) {
|
|
278
|
-
throw actionError("source-required", 400, `Adding '${alias}' requires the source that provides it.`, { alias, retryable: false });
|
|
279
|
-
}
|
|
280
|
-
const projectRoot = await this.#projectRoot(identity.workspaceId);
|
|
281
|
-
const located = await SkillSource.locate(definition.source, { projectRoot, home: this.#hostPaths.home });
|
|
282
|
-
if (located.kind !== "git") {
|
|
283
|
-
if (definition.ref !== undefined)
|
|
284
|
-
throw actionError("definition-invalid", 400, "A ref names a branch or tag of a git source.", { alias, retryable: false });
|
|
285
|
-
return { alias, definition: { ...definition, source: located.location } };
|
|
286
|
-
}
|
|
287
|
-
return { alias, definition: { ...definition, commit: await SkillSource.resolveCommit(located.location, definition.ref) } };
|
|
288
|
-
}
|
|
289
|
-
// {§skills-sources} — complete source identity owns a reusable materialization within one workspace.
|
|
290
|
-
async #loadSource(definition, workspaceId, projectRoot) {
|
|
291
|
-
const key = createHash("sha256").update(JSON.stringify([
|
|
292
|
-
definition.name, definition.source, definition.ref ?? null, definition.commit ?? null,
|
|
293
|
-
])).digest("hex");
|
|
294
|
-
const root = join(await this.#storage.directory(workspaceId, SKILLS_OWNER), key);
|
|
295
|
-
const cached = join(root, definition.name);
|
|
296
|
-
if (await isFile(join(cached, "SKILL.md")))
|
|
297
|
-
return this.#loadDirectory(definition.name, cached);
|
|
298
|
-
const located = await SkillSource.locate(definition.source, { projectRoot, home: this.#hostPaths.home });
|
|
299
|
-
const opened = await SkillSource.open(located, {
|
|
300
|
-
...(definition.ref === undefined ? {} : { ref: definition.ref }),
|
|
301
|
-
...(definition.commit === undefined ? {} : { commit: definition.commit }),
|
|
302
|
-
});
|
|
303
|
-
try {
|
|
304
|
-
const matches = opened.skills.filter(({ name }) => name === definition.name);
|
|
305
|
-
if (matches.length > 1) {
|
|
306
|
-
throw actionError("skill-ambiguous", 409, `'${definition.source}' carries ${matches.length} skills named '${definition.name}'.`, {
|
|
307
|
-
name: definition.name, source: definition.source, retryable: false,
|
|
308
|
-
});
|
|
309
|
-
}
|
|
310
|
-
const match = matches[0];
|
|
311
|
-
if (match === undefined) {
|
|
312
|
-
const broken = opened.invalid.find(({ dir }) => dir.endsWith(`/${definition.name}`));
|
|
313
|
-
if (broken !== undefined) {
|
|
314
|
-
throw actionError("skill-invalid", 422, `Agent Skill '${definition.name}' in '${definition.source}' is not a valid standard skill: ${broken.reason}`, {
|
|
315
|
-
name: definition.name, source: definition.source, retryable: false,
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
throw actionError("skill-not-found", 404, `'${definition.source}' carries no Agent Skill named '${definition.name}'.`, {
|
|
319
|
-
name: definition.name, source: definition.source, retryable: false,
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
if (located.kind === "folder" || located.kind === "skill-file") {
|
|
323
|
-
await SkillSource.assertInward(match.dir);
|
|
324
|
-
return await this.#loadDirectory(definition.name, match.dir);
|
|
325
|
-
}
|
|
326
|
-
let dir;
|
|
327
|
-
try {
|
|
328
|
-
dir = await SkillSource.install(match, root);
|
|
329
|
-
}
|
|
330
|
-
catch (cause) {
|
|
331
|
-
if (cause instanceof SkillsActionError)
|
|
332
|
-
throw cause;
|
|
333
|
-
throw actionError("install-failed", 500, `Agent Skill '${definition.name}' could not be placed under ${root}: ${messageOf(cause)}`, {
|
|
334
|
-
name: definition.name, retryable: false,
|
|
335
|
-
}, cause);
|
|
336
|
-
}
|
|
337
|
-
return await this.#loadDirectory(definition.name, dir);
|
|
338
|
-
}
|
|
339
|
-
finally {
|
|
340
|
-
await opened.close();
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
async #loadDirectory(alias, dir) {
|
|
344
|
-
try {
|
|
345
|
-
return await SkillDirectory.load(dir);
|
|
346
|
-
}
|
|
347
|
-
catch (cause) {
|
|
348
|
-
throw actionError("skill-invalid", 422, `Agent Skill '${alias}' is not a valid standard skill: ${messageOf(cause)}`, { name: alias, path: join(dir, "SKILL.md"), retryable: false }, cause);
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
async prepare(preparation) {
|
|
352
|
-
const projectRoot = await this.#projectRoot(preparation.workspaceId);
|
|
353
|
-
const definitions = new Map([...preparation.enabled].map(([alias, { definition }]) => [alias, definition]));
|
|
354
|
-
// Read before the skills it describes, so content changed while they load is seen as changed.
|
|
355
|
-
const signature = await this.#signature(preparation.workspaceId, projectRoot, definitions);
|
|
356
|
-
const provided = await this.#provided();
|
|
357
|
-
const previous = preparation.previous;
|
|
358
|
-
const carried = new Set(previous?.unavailable ?? []);
|
|
359
|
-
const outcomes = new Map();
|
|
360
|
-
const trees = new Map();
|
|
361
|
-
for (const [alias, raw] of definitions) {
|
|
362
|
-
preparation.progress(alias);
|
|
363
|
-
const definition = raw;
|
|
364
|
-
try {
|
|
365
|
-
const tree = definition.source === undefined ? provided.get(alias)
|
|
366
|
-
: await this.#loadSource(definition, preparation.workspaceId, projectRoot);
|
|
367
|
-
if (tree === undefined)
|
|
368
|
-
throw actionError("skill-missing", 404, `Agent Skill '${alias}' is not provided by this service.`, { name: alias, retryable: false });
|
|
369
|
-
trees.set(new URL(`skill://${alias}/`).hostname, tree);
|
|
370
|
-
outcomes.set(alias, { state: "active", detail: {
|
|
371
|
-
...(tree instanceof SkillDirectory ? { path: tree.directory } : {}),
|
|
372
|
-
description: tree.document.description,
|
|
373
|
-
} });
|
|
374
|
-
}
|
|
375
|
-
catch (cause) {
|
|
376
|
-
if (!(cause instanceof SkillsActionError))
|
|
377
|
-
throw cause;
|
|
378
|
-
const fresh = !carried.has(alias) || preparation.force === alias;
|
|
379
|
-
if (preparation.failure === "reject" && fresh)
|
|
380
|
-
throw cause;
|
|
381
|
-
if (fresh)
|
|
382
|
-
console.error(`Agent Skill '${alias}' unavailable: ${cause.problem.detail}`);
|
|
383
|
-
outcomes.set(alias, { state: "unavailable", problem: structuredClone(cause.problem) });
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
const snapshot = {
|
|
387
|
-
signature,
|
|
388
|
-
trees,
|
|
389
|
-
definitions,
|
|
390
|
-
unavailable: [...outcomes].filter(([, outcome]) => outcome.state === "unavailable").map(([alias]) => alias),
|
|
391
|
-
};
|
|
392
|
-
const { workspaceId } = preparation;
|
|
393
|
-
return {
|
|
394
|
-
documents: [],
|
|
395
|
-
outcomes,
|
|
396
|
-
snapshot,
|
|
397
|
-
commit: async () => { this.#snapshots.set(workspaceId, snapshot); },
|
|
398
|
-
abort: async () => { },
|
|
399
|
-
};
|
|
400
|
-
}
|
|
401
|
-
async teardown(_snapshot, identity) {
|
|
402
|
-
this.#snapshots.delete(identity.workspaceId);
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
//# sourceMappingURL=SkillsFunctionality.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SkillsFunctionality.js","sourceRoot":"","sources":["../../src/server/SkillsFunctionality.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type ProblemDetails } from "@plurnk/plurnk-contracts";
|
|
2
|
-
export declare class SkillsActionError extends Error {
|
|
3
|
-
readonly problem: ProblemDetails;
|
|
4
|
-
constructor(problem: ProblemDetails, cause?: unknown);
|
|
5
|
-
}
|
|
6
|
-
export declare const actionError: (code: string, status: number, detail: string, extensions?: Readonly<Record<string, unknown>>, cause?: unknown) => SkillsActionError;
|
|
7
|
-
export declare const messageOf: (cause: unknown) => string;
|
|
8
|
-
//# sourceMappingURL=skills-problems.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skills-problems.d.ts","sourceRoot":"","sources":["../../src/server/skills-problems.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEzE,qBAAa,iBAAkB,SAAQ,KAAK;IACxC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,YAAY,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,OAAO,EAInD;CACJ;AAaD,eAAO,MAAM,WAAW,SACd,MAAM,UACJ,MAAM,UACN,MAAM,eACF,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,UACrC,OAAO,KAChB,iBAA4F,CAAC;AAEhG,eAAO,MAAM,SAAS,UAAW,OAAO,KAAG,MAAgE,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// {§skills-functionality} — the skills family's Problems, raised by the adapter and by its sources.
|
|
2
|
-
import { Problems } from "@plurnk/plurnk-contracts";
|
|
3
|
-
export class SkillsActionError extends Error {
|
|
4
|
-
problem;
|
|
5
|
-
constructor(problem, cause) {
|
|
6
|
-
super(problem.detail, cause === undefined ? undefined : { cause });
|
|
7
|
-
this.name = "SkillsActionError";
|
|
8
|
-
this.problem = problem;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
const problem = (code, status, detail, extensions = {}) => Problems.create("skills:functionality", code, status, detail, {
|
|
12
|
-
stage: "skills-functionality",
|
|
13
|
-
retryable: status === 409 || status >= 500,
|
|
14
|
-
...extensions,
|
|
15
|
-
});
|
|
16
|
-
export const actionError = (code, status, detail, extensions = {}, cause) => new SkillsActionError(problem(code, status, detail, extensions), cause);
|
|
17
|
-
export const messageOf = (cause) => cause instanceof Error ? cause.message : String(cause);
|
|
18
|
-
//# sourceMappingURL=skills-problems.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skills-problems.js","sourceRoot":"","sources":["../../src/server/skills-problems.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,OAAO,EAAE,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAEzE,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC/B,OAAO,CAAiB;IAEjC,YAAY,OAAuB,EAAE,KAAe;QAChD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAED,MAAM,OAAO,GAAG,CACZ,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAAU,GAAsC,EAAE,EACpC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;IAC/E,KAAK,EAAE,sBAAsB;IAC7B,SAAS,EAAE,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG;IAC1C,GAAG,UAAU;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CACvB,IAAY,EACZ,MAAc,EACd,MAAc,EACd,UAAU,GAAsC,EAAE,EAClD,KAAe,EACE,EAAE,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC"}
|
package/dist/share/Share.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import HostPaths from "../core/HostPaths.ts";
|
|
2
|
-
export interface ShareOptions {
|
|
3
|
-
readonly dbPath: string;
|
|
4
|
-
readonly folder: string;
|
|
5
|
-
readonly workspaceId?: number;
|
|
6
|
-
readonly requiem?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export default class Share {
|
|
9
|
-
static defaultFolder(env?: NodeJS.ProcessEnv, paths?: HostPaths, now?: Date): string;
|
|
10
|
-
static snapshot(dbPath: string, copy: string): void;
|
|
11
|
-
static write({ dbPath, folder, workspaceId, requiem }: ShareOptions): Promise<{
|
|
12
|
-
folder: string;
|
|
13
|
-
}>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=Share.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Share.d.ts","sourceRoot":"","sources":["../../src/share/Share.ts"],"names":[],"mappings":"AAKA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,MAAM,CAAC,OAAO,OAAO,KAAK;IAEtB,MAAM,CAAC,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,KAAK,YAAkB,EAAE,GAAG,OAAa,GAAG,MAAM,CAM5G;IAGD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAMlD;IAED,OAAa,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAe,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAa9G;CACJ"}
|
package/dist/share/Share.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
-
if (value !== null && value !== void 0) {
|
|
3
|
-
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
-
var dispose, inner;
|
|
5
|
-
if (async) {
|
|
6
|
-
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
-
dispose = value[Symbol.asyncDispose];
|
|
8
|
-
}
|
|
9
|
-
if (dispose === void 0) {
|
|
10
|
-
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
-
dispose = value[Symbol.dispose];
|
|
12
|
-
if (async) inner = dispose;
|
|
13
|
-
}
|
|
14
|
-
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
-
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
-
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
-
}
|
|
18
|
-
else if (async) {
|
|
19
|
-
env.stack.push({ async: true });
|
|
20
|
-
}
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
|
-
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
-
return function (env) {
|
|
25
|
-
function fail(e) {
|
|
26
|
-
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
-
env.hasError = true;
|
|
28
|
-
}
|
|
29
|
-
var r, s = 0;
|
|
30
|
-
function next() {
|
|
31
|
-
while (r = env.stack.pop()) {
|
|
32
|
-
try {
|
|
33
|
-
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
-
if (r.dispose) {
|
|
35
|
-
var result = r.dispose.call(r.value);
|
|
36
|
-
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
-
}
|
|
38
|
-
else s |= 1;
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
fail(e);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
-
if (env.hasError) throw env.error;
|
|
46
|
-
}
|
|
47
|
-
return next();
|
|
48
|
-
};
|
|
49
|
-
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
-
var e = new Error(message);
|
|
51
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
-
});
|
|
53
|
-
import { existsSync, mkdtempSync, rmSync } from "node:fs";
|
|
54
|
-
import { tmpdir } from "node:os";
|
|
55
|
-
import { join, resolve } from "node:path";
|
|
56
|
-
import SqlRiteSync from "@possumtech/sqlrite/sync";
|
|
57
|
-
import Digest from "../digest/Digest.js";
|
|
58
|
-
import HostPaths from "../core/HostPaths.js";
|
|
59
|
-
// {§share}: a share is the digest of a consistent copy of the database.
|
|
60
|
-
export default class Share {
|
|
61
|
-
// {§share-folder}: the configured share folder, or the XDG state default; each share is a stamped child.
|
|
62
|
-
static defaultFolder(env = process.env, paths = new HostPaths(), now = new Date()) {
|
|
63
|
-
const configured = env.PLURNK_SERVICE_SHARE_FOLDER;
|
|
64
|
-
const root = configured === undefined || configured === ""
|
|
65
|
-
? join(paths.stateDir, "shares")
|
|
66
|
-
: resolve(paths.expandUserPath(configured));
|
|
67
|
-
return join(root, `share-${now.toISOString().replace(/[-:]/gu, "").replace(/\.\d+Z$/u, "Z")}`);
|
|
68
|
-
}
|
|
69
|
-
// {§share-snapshot}: a live or WAL-mode database is copied by SQLite, never by the filesystem.
|
|
70
|
-
static snapshot(dbPath, copy) {
|
|
71
|
-
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
72
|
-
try {
|
|
73
|
-
const source = resolve(dbPath);
|
|
74
|
-
if (!existsSync(source))
|
|
75
|
-
throw new Error(`share: no database at ${source}`);
|
|
76
|
-
if (existsSync(copy))
|
|
77
|
-
throw new Error(`share: ${resolve(copy)} already exists; remove it first`);
|
|
78
|
-
const database = __addDisposableResource(env_1, new SqlRiteSync({ path: source, dir: [import.meta.dirname] }), false);
|
|
79
|
-
database.share_snapshot.run({ path: resolve(copy) });
|
|
80
|
-
}
|
|
81
|
-
catch (e_1) {
|
|
82
|
-
env_1.error = e_1;
|
|
83
|
-
env_1.hasError = true;
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
__disposeResources(env_1);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
static async write({ dbPath, folder, workspaceId, requiem = false }) {
|
|
90
|
-
const target = resolve(folder);
|
|
91
|
-
const scratch = mkdtempSync(join(tmpdir(), "plurnk-share-"));
|
|
92
|
-
try {
|
|
93
|
-
const copy = join(scratch, "plurnk.db");
|
|
94
|
-
Share.snapshot(dbPath, copy);
|
|
95
|
-
const scoped = { dbPath: copy, digestDir: target, ...(workspaceId === undefined ? {} : { workspaceId }) };
|
|
96
|
-
Digest.run(scoped);
|
|
97
|
-
if (requiem)
|
|
98
|
-
await Digest.requiem(scoped);
|
|
99
|
-
}
|
|
100
|
-
finally {
|
|
101
|
-
rmSync(scratch, { recursive: true, force: true });
|
|
102
|
-
}
|
|
103
|
-
return { folder: target };
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=Share.js.map
|
package/dist/share/Share.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Share.js","sourceRoot":"","sources":["../../src/share/Share.ts"],"names":[],"mappings":"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"}
|
package/dist/share/share.sql
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
-- The share's snapshot ({§share}). VACUUM INTO writes a transactionally consistent copy of the open
|
|
2
|
-
-- database to a new file, so a live daemon's database is never read in place. No INIT blocks: this
|
|
3
|
-
-- compiles against whatever database is shared and never alters it.
|
|
4
|
-
|
|
5
|
-
-- PREP: share_snapshot
|
|
6
|
-
VACUUM INTO :path;
|