@plurnk/plurnk-service 3.2.0 → 4.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 +3 -3
- package/INSTALL.md +6 -0
- package/README.md +2 -2
- package/SPEC.md +489 -186
- package/dist/build-info.json +1 -1
- package/dist/completions/_plurnk-service +1 -1
- package/dist/completions/plurnk-service.bash +1 -1
- package/dist/completions/plurnk-service.fish +2 -0
- package/dist/content/read-projector.js +1 -1
- 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 +4 -1
- package/dist/core/AdministrativeLoop.js.map +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +8 -0
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BareBatchRunner.js +2 -1
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts +1 -3
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +43 -46
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/ChannelWrite.d.ts +10 -0
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +10 -0
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +14 -2
- package/dist/core/ClientInteractions.d.ts.map +1 -1
- package/dist/core/ClientInteractions.js +2 -1
- package/dist/core/ClientInteractions.js.map +1 -1
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +6 -0
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/DataStatementRunner.js +4 -6
- package/dist/core/DataStatementRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +3 -7
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +53 -73
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Dispatcher.sql +2 -2
- package/dist/core/EditMutations.js +1 -0
- package/dist/core/EditMutations.js.map +1 -1
- package/dist/core/Engine.d.ts +8 -14
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +22 -24
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +6 -6
- package/dist/core/ExecutorRegistry.d.ts +0 -5
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +10 -18
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/FileAddress.js +1 -1
- package/dist/core/FileAddress.js.map +1 -1
- package/dist/core/FilePublication.js +10 -74
- package/dist/core/FilePublication.js.map +1 -1
- package/dist/core/FileSnapshot.js +36 -100
- package/dist/core/FileSnapshot.js.map +1 -1
- package/dist/core/HostPaths.d.ts +1 -0
- package/dist/core/HostPaths.d.ts.map +1 -1
- package/dist/core/HostPaths.js +11 -1
- package/dist/core/HostPaths.js.map +1 -1
- package/dist/core/KillHandler.js +3 -1
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/LiveSubscription.js +1 -1
- package/dist/core/LiveSubscription.js.map +1 -1
- package/dist/core/LogBody.js +1 -1
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogWriter.js +1 -1
- package/dist/core/LogWriter.js.map +1 -1
- package/dist/core/LoopDriver.d.ts +3 -3
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +15 -13
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/LoopLifecycle.d.ts +5 -0
- package/dist/core/LoopLifecycle.d.ts.map +1 -1
- package/dist/core/LoopLifecycle.js +14 -1
- package/dist/core/LoopLifecycle.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +11 -2
- package/dist/core/MembershipMaterialization.js +2 -2
- package/dist/core/MembershipMaterialization.js.map +1 -1
- package/dist/core/MessageResources.d.ts +3 -0
- package/dist/core/MessageResources.d.ts.map +1 -1
- package/dist/core/MessageResources.js +15 -1
- package/dist/core/MessageResources.js.map +1 -1
- package/dist/core/OperatorConfig.d.ts +1 -2
- package/dist/core/OperatorConfig.d.ts.map +1 -1
- package/dist/core/OperatorConfig.js +26 -92
- package/dist/core/OperatorConfig.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +21 -18
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +18 -5
- package/dist/core/ProblemLog.d.ts +1 -0
- package/dist/core/ProblemLog.d.ts.map +1 -1
- package/dist/core/ProblemLog.js +2 -2
- package/dist/core/ProblemLog.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +1 -0
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +14 -8
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ProposalPolicies.d.ts +4 -1
- package/dist/core/ProposalPolicies.d.ts.map +1 -1
- package/dist/core/ProposalPolicies.js +5 -2
- package/dist/core/ProposalPolicies.js.map +1 -1
- package/dist/core/ResourceMutations.js +2 -0
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/ResourceSelector.js +1 -1
- package/dist/core/ResourceSelector.js.map +1 -1
- package/dist/core/SchemeRegistry.js +1 -1
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ServiceHelp.js +1 -1
- package/dist/core/ServiceHelp.js.map +1 -1
- package/dist/core/ServiceTeardown.js +9 -12
- package/dist/core/ServiceTeardown.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +2 -1
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +11 -6
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TerminalResult.js +1 -1
- package/dist/core/TerminalResult.js.map +1 -1
- package/dist/core/TurnDispositionHandler.d.ts +1 -1
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
- package/dist/core/TurnDispositionHandler.js +8 -5
- package/dist/core/TurnDispositionHandler.js.map +1 -1
- package/dist/core/TurnMaterialization.js +6 -4
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnMaterialization.sql +1 -1
- package/dist/core/TurnOps.js +1 -0
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +4 -2
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +63 -51
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerControlHandler.d.ts +2 -0
- package/dist/core/WorkerControlHandler.d.ts.map +1 -1
- package/dist/core/WorkerControlHandler.js +84 -16
- package/dist/core/WorkerControlHandler.js.map +1 -1
- package/dist/core/WorkerName.d.ts +0 -4
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +5 -30
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkerName.sql +4 -20
- package/dist/core/WorkerOwners.d.ts +1 -0
- package/dist/core/WorkerOwners.d.ts.map +1 -1
- package/dist/core/WorkerOwners.js +6 -0
- package/dist/core/WorkerOwners.js.map +1 -1
- package/dist/core/WorkerOwners.sql +7 -0
- package/dist/core/WorkspaceGate.d.ts +3 -1
- package/dist/core/WorkspaceGate.d.ts.map +1 -1
- package/dist/core/WorkspaceGate.js +59 -10
- package/dist/core/WorkspaceGate.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +3 -0
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +14 -0
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/env-catalog.js +1 -1
- package/dist/core/env-catalog.js.map +1 -1
- package/dist/core/fork.js +1 -1
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +7 -6
- package/dist/core/mutation-types.d.ts +1 -0
- package/dist/core/mutation-types.d.ts.map +1 -1
- package/dist/core/mutation-types.js +4 -1
- package/dist/core/mutation-types.js.map +1 -1
- package/dist/core/namespace.js +1 -1
- package/dist/core/namespace.js.map +1 -1
- package/dist/core/packet-wire.d.ts +1 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +24 -15
- 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 +1 -1
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +5 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/turn-signals.d.ts +4 -0
- package/dist/core/turn-signals.d.ts.map +1 -1
- package/dist/core/turn-signals.js +1 -0
- package/dist/core/turn-signals.js.map +1 -1
- package/dist/core/workspace-settings.js +1 -1
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/evidence/EvidenceReader.js +5 -5
- package/dist/evidence/EvidenceReader.js.map +1 -1
- package/dist/man/plurnk-service.1 +27 -6
- package/dist/schemes/Env.d.ts +7 -3
- package/dist/schemes/Env.d.ts.map +1 -1
- package/dist/schemes/Env.js +12 -6
- package/dist/schemes/Env.js.map +1 -1
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +37 -25
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +3 -3
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/ExecutionInput.d.ts +2 -1
- package/dist/schemes/ExecutionInput.d.ts.map +1 -1
- package/dist/schemes/ExecutionInput.js +45 -7
- package/dist/schemes/ExecutionInput.js.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +32 -23
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +23 -5
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +24 -1
- package/dist/schemes/ResourceTreeScheme.js +2 -5
- package/dist/schemes/ResourceTreeScheme.js.map +1 -1
- package/dist/schemes/TurnSource.js +1 -1
- package/dist/schemes/TurnSource.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +10 -3
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +2 -4
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +5 -3
- package/dist/schemes/_entry-find.js +3 -3
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +3 -3
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-manifest.sql +2 -0
- package/dist/schemes/_entry-ops.js +1 -1
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-send.js +1 -1
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/server/ClientReads.d.ts +1 -0
- package/dist/server/ClientReads.d.ts.map +1 -1
- package/dist/server/ClientReads.js +7 -2
- package/dist/server/ClientReads.js.map +1 -1
- package/dist/server/Credentials.d.ts +48 -0
- package/dist/server/Credentials.d.ts.map +1 -0
- package/dist/server/Credentials.js +203 -0
- package/dist/server/Credentials.js.map +1 -0
- package/dist/server/Daemon.d.ts +44 -39
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +287 -172
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +8 -3
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +44 -32
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/EnvFunctionality.d.ts.map +1 -1
- package/dist/server/EnvFunctionality.js +2 -1
- package/dist/server/EnvFunctionality.js.map +1 -1
- package/dist/server/Functionality.d.ts +4 -2
- package/dist/server/Functionality.d.ts.map +1 -1
- package/dist/server/Functionality.js +192 -96
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.d.ts +1 -4
- package/dist/server/FunctionalityManager.d.ts.map +1 -1
- package/dist/server/FunctionalityManager.js +6 -6
- package/dist/server/FunctionalityManager.js.map +1 -1
- package/dist/server/HttpListener.d.ts +1 -1
- package/dist/server/HttpListener.d.ts.map +1 -1
- package/dist/server/HttpListener.js.map +1 -1
- package/dist/server/MembersFunctionality.d.ts +7 -8
- package/dist/server/MembersFunctionality.d.ts.map +1 -1
- package/dist/server/MembersFunctionality.js +90 -56
- package/dist/server/MembersFunctionality.js.map +1 -1
- package/dist/server/MessageAbandonment.d.ts +7 -0
- package/dist/server/MessageAbandonment.d.ts.map +1 -0
- package/dist/server/MessageAbandonment.js +57 -0
- package/dist/server/MessageAbandonment.js.map +1 -0
- package/dist/server/ModuleHost.d.ts +2 -1
- package/dist/server/ModuleHost.d.ts.map +1 -1
- package/dist/server/PlurnkSkill.js +4 -7
- package/dist/server/PlurnkSkill.js.map +1 -1
- package/dist/server/Rollback.d.ts +29 -0
- package/dist/server/Rollback.d.ts.map +1 -0
- package/dist/server/Rollback.js +111 -0
- package/dist/server/Rollback.js.map +1 -0
- package/dist/server/WorkerModelResolver.js +1 -0
- package/dist/server/WorkerModelResolver.js.map +1 -1
- package/dist/server/WorkerReferences.d.ts +14 -0
- package/dist/server/WorkerReferences.d.ts.map +1 -0
- package/dist/server/WorkerReferences.js +24 -0
- package/dist/server/WorkerReferences.js.map +1 -0
- package/dist/server/WorkerReferences.sql +31 -0
- package/dist/server/WorkspaceCapabilities.d.ts +2 -0
- package/dist/server/WorkspaceCapabilities.d.ts.map +1 -1
- package/dist/server/WorkspaceCapabilities.js +35 -18
- package/dist/server/WorkspaceCapabilities.js.map +1 -1
- package/dist/server/WorkspacePlugins.js +1 -0
- package/dist/server/WorkspacePlugins.js.map +1 -1
- package/dist/server/WorkspaceResidency.d.ts +3 -1
- package/dist/server/WorkspaceResidency.d.ts.map +1 -1
- package/dist/server/WorkspaceResidency.js +12 -5
- package/dist/server/WorkspaceResidency.js.map +1 -1
- package/dist/server/client-input.d.ts +2 -0
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +28 -0
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/drain.sql +46 -40
- package/dist/server/envelope.d.ts +5 -9
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +21 -84
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +17 -17
- package/dist/server/lifecycle-recovery.sql +5 -15
- package/dist/server/logEntry.d.ts.map +1 -1
- package/dist/server/logEntry.js +6 -0
- package/dist/server/logEntry.js.map +1 -1
- package/dist/server/logEntry.sql +94 -6
- package/dist/server/module-discovery.d.ts +1 -1
- package/dist/server/module-discovery.d.ts.map +1 -1
- package/dist/server/module-discovery.js +1 -0
- package/dist/server/module-discovery.js.map +1 -1
- package/dist/server/seam-loop.sql +15 -7
- package/dist/server/seam-proposal-list.sql +10 -4
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +7 -1
- package/dist/service.js.map +1 -1
- package/docs/members.md +20 -13
- package/migrations/002_workers.sql +2 -2
- package/migrations/006_log.sql +1 -1
- package/migrations/018_worker_owners.sql +1 -1
- package/migrations/026_message_obligations.sql +32 -0
- package/migrations/027_members_identity.sql +20 -0
- package/migrations/028_mutation_patch.sql +20 -0
- package/migrations/029_default_worker.sql +9 -0
- package/migrations/030_client_workers.sql +105 -0
- package/migrations/031_message_openers.sql +83 -0
- package/migrations/032_worker_references.sql +29 -0
- package/package.json +24 -24
- package/plurnk.nginx.conf +71 -0
- package/plurnk.service +2 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.TH PLURNK-SERVICE 1 "2026-10-
|
|
1
|
+
.TH PLURNK-SERVICE 1 "2026-10-17" "plurnk-service 4.0.0" "User Commands"
|
|
2
2
|
.SH NAME
|
|
3
3
|
plurnk-service \- persistent agent runtime
|
|
4
4
|
.SH SYNOPSIS
|
|
@@ -189,8 +189,8 @@ remains live.
|
|
|
189
189
|
(PLURNK_SERVICE_EXEC_HOLD_MS=300000)
|
|
190
190
|
.TP
|
|
191
191
|
.B --service-exec-concurrency
|
|
192
|
-
Concurrent EXEC producers per workspace; excess executions wait
|
|
193
|
-
= unlimited.
|
|
192
|
+
Concurrent external EXEC producers per workspace; excess executions wait
|
|
193
|
+
FIFO; -1 = unlimited.
|
|
194
194
|
(PLURNK_SERVICE_EXEC_CONCURRENCY=12)
|
|
195
195
|
.TP
|
|
196
196
|
.B --service-exec-input-timeout-ms
|
|
@@ -277,9 +277,9 @@ Paths named per class in the packet's git status; the rest are counted.
|
|
|
277
277
|
(PLURNK_SERVICE_GIT_STATUS_PATHS=8)
|
|
278
278
|
.TP
|
|
279
279
|
.B --service-budget-pressure
|
|
280
|
-
Above this share of the budget, measured before adding
|
|
281
|
-
Context gauge names its largest rows
|
|
282
|
-
|
|
280
|
+
Above this share of the budget, measured before adding the inventory,
|
|
281
|
+
the Context gauge names its largest rows ({§context-gauge}); the gauge's
|
|
282
|
+
percent is on every packet regardless.
|
|
283
283
|
(PLURNK_SERVICE_BUDGET_PRESSURE=80%)
|
|
284
284
|
.TP
|
|
285
285
|
.B --service-budget-largest-items
|
|
@@ -444,6 +444,24 @@ moves both.
|
|
|
444
444
|
The daemon's TCP port, shared by all client interfaces.
|
|
445
445
|
(PLURNK_PORT=1066)
|
|
446
446
|
.TP
|
|
447
|
+
.B --auth
|
|
448
|
+
Whether the daemon authenticates ({§credential-authority}): 1 = every
|
|
449
|
+
request to the client interface and to the hosted agent presents a
|
|
450
|
+
credential this daemon issued, and the daemon serves the authorization
|
|
451
|
+
server that issues them; 0 = no credential exists and every request is
|
|
452
|
+
anonymous, for a harness driving a daemon of its own. The posture is
|
|
453
|
+
this value, never inferred from what else is set.
|
|
454
|
+
(PLURNK_AUTH=1)
|
|
455
|
+
.TP
|
|
456
|
+
.B --pass
|
|
457
|
+
The operator's browser sign-in ({§agui-oauth-login}): the password a
|
|
458
|
+
browser signs in with, compared in constant time at the authorization
|
|
459
|
+
endpoint. No browser is the operator without it: while it is empty, the
|
|
460
|
+
sign-in page says so and where to set it, and admits nobody
|
|
461
|
+
({§agui-oauth-session}). The terminal client and your other tools use
|
|
462
|
+
PLURNK_SECRET instead.
|
|
463
|
+
(PLURNK_PASS=)
|
|
464
|
+
.TP
|
|
447
465
|
.B --env-file=<path>
|
|
448
466
|
layer env from <path> (repeatable; later wins; errors if
|
|
449
467
|
missing)
|
|
@@ -495,5 +513,8 @@ Operator configuration; ~/.config/plurnk/.env when XDG_CONFIG_HOME is unset.
|
|
|
495
513
|
.TP
|
|
496
514
|
.I plurnk.service
|
|
497
515
|
Optional systemd user unit shipped in the package; installation is manual.
|
|
516
|
+
.TP
|
|
517
|
+
.I plurnk.nginx.conf
|
|
518
|
+
Optional nginx front shipped in the package: TLS, headers, sign-in throttling.
|
|
498
519
|
.SH SEE ALSO
|
|
499
520
|
plurnk(1)
|
package/dist/schemes/Env.d.ts
CHANGED
|
@@ -7,16 +7,20 @@ export interface EnvRegistry {
|
|
|
7
7
|
}
|
|
8
8
|
export type EnvResolve = (workspaceId: number, workerId: number) => Promise<EnvRegistry>;
|
|
9
9
|
export type EnvWriteVerb = "replace" | "remove" | "disable";
|
|
10
|
-
export
|
|
10
|
+
export type EnvWriteIdentity = {
|
|
11
11
|
readonly workspaceId: number;
|
|
12
12
|
readonly workerId: number;
|
|
13
13
|
readonly scope: "worker";
|
|
14
|
-
}
|
|
14
|
+
} | {
|
|
15
|
+
readonly workspaceId: number;
|
|
16
|
+
readonly scope: "workspace";
|
|
17
|
+
};
|
|
15
18
|
export type EnvInvoke = (verb: EnvWriteVerb, params: unknown, identity: EnvWriteIdentity) => Promise<unknown>;
|
|
19
|
+
export type EnvLayer = (workspaceId: number, workerId: number) => Promise<"worker" | "workspace">;
|
|
16
20
|
export default class EnvScheme implements RuntimeSchemeFacet {
|
|
17
21
|
#private;
|
|
18
22
|
readonly manifest: NonNullable<RuntimeSchemeFacet["manifest"]>;
|
|
19
|
-
constructor(resolve: EnvResolve, invoke: EnvInvoke);
|
|
23
|
+
constructor(resolve: EnvResolve, invoke: EnvInvoke, layer: EnvLayer);
|
|
20
24
|
claims(pathname: string): boolean;
|
|
21
25
|
prepareRepresentation(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
|
|
22
26
|
prepareFind(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Env.d.ts","sourceRoot":"","sources":["../../src/schemes/Env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Env.d.ts","sourceRoot":"","sources":["../../src/schemes/Env.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAc,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAEH,KAAK,eAAe,EACpB,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,YAAY,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CACxD;AACD,MAAM,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AACzF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GACtB;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AACpE,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE9G,MAAM,MAAM,QAAQ,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;AAalG,MAAM,CAAC,OAAO,OAAO,SAAU,YAAW,kBAAkB;;IACxD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAE5D;IAKF,YAAY,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAIlE;IAGD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhC;IA6CK,qBAAqB,CAAC,OAAO,EAAE,gCAAgC,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAU/H;IAIK,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAejF;IAGK,SAAS,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAetG;IAIK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAW1E;CACJ"}
|
package/dist/schemes/Env.js
CHANGED
|
@@ -15,9 +15,11 @@ export default class EnvScheme {
|
|
|
15
15
|
};
|
|
16
16
|
#resolve;
|
|
17
17
|
#invoke;
|
|
18
|
-
|
|
18
|
+
#layer;
|
|
19
|
+
constructor(resolve, invoke, layer) {
|
|
19
20
|
this.#resolve = resolve;
|
|
20
21
|
this.#invoke = invoke;
|
|
22
|
+
this.#layer = layer;
|
|
21
23
|
}
|
|
22
24
|
// The registry is the namespace: every coordinate but the manager's own output streams.
|
|
23
25
|
claims(pathname) {
|
|
@@ -45,9 +47,11 @@ export default class EnvScheme {
|
|
|
45
47
|
});
|
|
46
48
|
}
|
|
47
49
|
// The family's refusal is the operation's result.
|
|
48
|
-
async #write(verb, params, ctx) {
|
|
50
|
+
async #write(verb, params, ctx, layer) {
|
|
49
51
|
try {
|
|
50
|
-
await this.#invoke(verb, params,
|
|
52
|
+
await this.#invoke(verb, params, layer === "worker"
|
|
53
|
+
? { workspaceId: ctx.workspaceId, workerId: ctx.workerId, scope: "worker" }
|
|
54
|
+
: { workspaceId: ctx.workspaceId, scope: "workspace" });
|
|
51
55
|
return null;
|
|
52
56
|
}
|
|
53
57
|
catch (cause) {
|
|
@@ -106,14 +110,15 @@ export default class EnvScheme {
|
|
|
106
110
|
return named;
|
|
107
111
|
if (statement.lineMarker !== null || statement.matcher !== null)
|
|
108
112
|
return EnvScheme.#whole(named.name, "EDIT");
|
|
109
|
-
const
|
|
113
|
+
const layer = await this.#layer(ctx.workspaceId, ctx.workerId);
|
|
114
|
+
const refused = await this.#write("replace", { alias: named.name, definition: { value: statement.body ?? "" } }, ctx, layer);
|
|
110
115
|
if (refused !== null)
|
|
111
116
|
return refused;
|
|
112
117
|
await ctx.entries.delete(named.pathname);
|
|
113
118
|
return { status: 200 };
|
|
114
119
|
}
|
|
115
120
|
// KILL retires the name from the Worker's commands: the family's `remove` for an entry the
|
|
116
|
-
//
|
|
121
|
+
// layer owns, its `disable` for an inherited one, whose definition is kept.
|
|
117
122
|
async kill(statement, ctx) {
|
|
118
123
|
const named = EnvScheme.#named(statement.target);
|
|
119
124
|
if ("status" in named)
|
|
@@ -123,7 +128,8 @@ export default class EnvScheme {
|
|
|
123
128
|
const entry = (await this.#resolve(ctx.workspaceId, ctx.workerId)).record[named.name];
|
|
124
129
|
if (entry === undefined || entry.source === "masked" || entry.value === undefined)
|
|
125
130
|
return EnvScheme.#missing(named.name);
|
|
126
|
-
const
|
|
131
|
+
const layer = await this.#layer(ctx.workspaceId, ctx.workerId);
|
|
132
|
+
const refused = await this.#write(entry.source === layer ? "remove" : "disable", { alias: named.name }, ctx, layer);
|
|
127
133
|
if (refused !== null)
|
|
128
134
|
return refused;
|
|
129
135
|
await ctx.entries.delete(named.pathname);
|
package/dist/schemes/Env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Env.js","sourceRoot":"","sources":["../../src/schemes/Env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Env.js","sourceRoot":"","sources":["../../src/schemes/Env.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG3G,OAAO,EAEH,KAAK,cAAc,EAEnB,KAAK,eAAe,EACvB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAUnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAgB,EAAyB,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAIH,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACrB,MAAM,wBAAwB,CAAC;AAiBhC,KAAK,UAAU,GAAG,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG3G,OAAO,EAEH,KAAK,cAAc,EAEnB,KAAK,eAAe,EACvB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAUnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAgB,EAAyB,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAIH,KAAK,oBAAoB,EACzB,KAAK,aAAa,EACrB,MAAM,wBAAwB,CAAC;AAiBhC,KAAK,UAAU,GAAG,gBAAgB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA8CvE,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;AAExG,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,qBAAsB,YAAW,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;;IAC1F,MAAM,CAAC,qBAAqB,IAAI,IAAI,CAInC;IAYD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAG/D;IAED,MAAM,CAAC,QAAQ,EAAE,cAAc,CAW7B;IASF,YAAY,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,EAI9E;IAiBK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1B;IAGK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAMD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGzC;IAID,aAAa,IAAI,IAAI,CAEpB;IAKK,gBAAgB,CAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,OAAO,CAAC,CAiBlB;IAID,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAG3E;IAWK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoC1F;IASK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAsTpF;IAgCK,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAY5G;IAEK,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAoB/G;IAEK,eAAe,CACjB,IAAI,EAAE,oBAAoB,EAC1B,GAAG,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,GAAG;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CA0MD;IA0cK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAGpF;IAEK,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAKtF;IAEK,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAK1G;IAEK,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAK1F;CACJ"}
|
package/dist/schemes/Exec.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
var _a;
|
|
2
1
|
import { parsePath } from "@plurnk/plurnk-parser";
|
|
3
2
|
import { PathSyntax } from "@plurnk/plurnk-contracts";
|
|
4
3
|
import { WebMaterializationError, } from "@plurnk/plurnk-schemes";
|
|
5
|
-
import
|
|
4
|
+
import FunctionalityManager from "../server/FunctionalityManager.js";
|
|
6
5
|
import EffectPolicy from "./EffectPolicy.js";
|
|
7
6
|
import EntryCrud from "./_entry-crud.js";
|
|
8
7
|
import EntryFind from "./_entry-find.js";
|
|
9
8
|
import { MetadataOptions } from "@plurnk/plurnk-schemes";
|
|
10
|
-
import ChannelWrite from "../core/ChannelWrite.js";
|
|
9
|
+
import ChannelWrite, {} from "../core/ChannelWrite.js";
|
|
11
10
|
import LiveSubscription from "../core/LiveSubscription.js";
|
|
12
|
-
import EnvFunctionality from "../server/EnvFunctionality.js";
|
|
11
|
+
import EnvFunctionality, {} from "../server/EnvFunctionality.js";
|
|
13
12
|
import ExecAbort from "./exec-abort.js";
|
|
14
13
|
import { LIFETIME_SYNTAX, formatLifetime, parseExecLifetime } from "./exec-lifetime.js";
|
|
15
14
|
import { entryCoordinateOf, generatedPathname, isGeneratedPathname, renderAddress } from "../core/plurnk-uri.js";
|
|
@@ -33,6 +32,7 @@ import ExecScheduler, { readExecConcurrency } from "./ExecScheduler.js";
|
|
|
33
32
|
import ExecScratch from "./ExecScratch.js";
|
|
34
33
|
import ExecutionInput from "./ExecutionInput.js";
|
|
35
34
|
import { execRouteOf } from "./exec-runtime.js";
|
|
35
|
+
import {} from "@plurnk/plurnk-contracts";
|
|
36
36
|
// Executors are discovered + probed at boot into ExecutorRegistry and reach
|
|
37
37
|
// the scheme through ctx.executors ({§exec-registry-resolves}). Each runtime tag
|
|
38
38
|
// resolves to its sibling executor; the scheme itself stays runtime-agnostic.
|
|
@@ -58,7 +58,7 @@ const resourceSourceOf = (target) => {
|
|
|
58
58
|
return null;
|
|
59
59
|
return target.raw;
|
|
60
60
|
};
|
|
61
|
-
class Exec extends CoreSchemeAdapterBase {
|
|
61
|
+
export default class Exec extends CoreSchemeAdapterBase {
|
|
62
62
|
static validateConfiguration() {
|
|
63
63
|
readExecConcurrency();
|
|
64
64
|
ExecutionInput.configuredTimeout();
|
|
@@ -88,7 +88,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
88
88
|
volatile: true,
|
|
89
89
|
modelVisible: true,
|
|
90
90
|
metadataModifier: true,
|
|
91
|
-
documentation: "The opening fence names a registered executor or MCP service; its target, body, metadata, and timing follow that tool's invocation contract. Output streams into the workspace's `<executor>:///<id>` entry on that tool's own channels. A host-effecting invocation proposes for review before it runs; a read-only or pure one runs ungated. While it runs, the packet's `##
|
|
91
|
+
documentation: "The opening fence names a registered executor or MCP service; its target, body, metadata, and timing follow that tool's invocation contract. Output streams into the workspace's `<executor>:///<id>` entry on that tool's own channels. A host-effecting invocation proposes for review before it runs; a read-only or pure one runs ungated. While it runs, the packet's `## Open Work` streams list reports channel size and growth and READ can inspect any range; when it finishes, one terminal READ becomes visible automatically.",
|
|
92
92
|
};
|
|
93
93
|
// The web-fetch the entry sink calls on content:null ({§exec-entry-sink}); default = the
|
|
94
94
|
// registry's web materializer, injectable for tests. Materialization always goes through
|
|
@@ -202,7 +202,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
202
202
|
});
|
|
203
203
|
const target = renderAddress({ scheme, authority: "", pathname });
|
|
204
204
|
if (terminal === null) {
|
|
205
|
-
const recovery = await
|
|
205
|
+
const recovery = await Exec.#nearMiss(core, pathname);
|
|
206
206
|
return Results.failure("scheme:exec", "stream-not-found", 404, `No stream exists at ${target}.`, {}, { target, ...(recovery === undefined ? {} : { recovery }) });
|
|
207
207
|
}
|
|
208
208
|
// {§stream-control} — the process is already not running, which is what KILL asks for; the
|
|
@@ -287,6 +287,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
287
287
|
// cwd when the workspace has none — so every receipt can name it ({§exec-target-routing}).
|
|
288
288
|
const defaultCwd = projectRoot ?? process.cwd();
|
|
289
289
|
let cwd = defaultCwd;
|
|
290
|
+
let inputDeclared = false;
|
|
290
291
|
let target = null;
|
|
291
292
|
let resourceSource = null;
|
|
292
293
|
const targetDecl = invocation.target;
|
|
@@ -370,6 +371,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
370
371
|
throw new InvalidOperationResultError(`Executable tool '${runtime}' returned invalid invocation preparation.`);
|
|
371
372
|
}
|
|
372
373
|
cwd = prepared.cwd;
|
|
374
|
+
inputDeclared = prepared.input === "open";
|
|
373
375
|
}
|
|
374
376
|
else if ((statement.metadata?.length ?? 0) > 0) {
|
|
375
377
|
return Results.failure("scheme:exec", "metadata-unsupported", 400, `Executable tool '${runtime}' does not accept metadata.`, {}, { runtime, retryable: false });
|
|
@@ -428,6 +430,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
428
430
|
// is text coordinates, which an execution has none of.
|
|
429
431
|
const attrs = {
|
|
430
432
|
runtime, cwd, body, target, pathname: "", effect,
|
|
433
|
+
...(inputDeclared ? { input: "open" } : {}),
|
|
431
434
|
...(resourceSource !== null ? { resourceSource } : {}),
|
|
432
435
|
...lifetime,
|
|
433
436
|
};
|
|
@@ -459,7 +462,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
459
462
|
});
|
|
460
463
|
if (terminal !== null)
|
|
461
464
|
return failure("input-closed", 410, "Execution input is closed.");
|
|
462
|
-
const recovery = await
|
|
465
|
+
const recovery = await Exec.#nearMiss(core, coordinate.pathname);
|
|
463
466
|
return recovery === undefined
|
|
464
467
|
? failure("stream-not-found", 404, "No execution exists at the requested address.")
|
|
465
468
|
: { failure: Results.failure("scheme:exec", "stream-not-found", 404, "No execution exists at the requested address.", {}, { recovery, retryable: false }) };
|
|
@@ -548,7 +551,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
548
551
|
// almost always a command that belonged beneath a targetless heading (#425 F4).
|
|
549
552
|
const problem = read.problem === undefined ? undefined : {
|
|
550
553
|
...read.problem,
|
|
551
|
-
recovery:
|
|
554
|
+
recovery: Exec.sourceRecovery(attrs.resourceSource, read.problem.recovery),
|
|
552
555
|
};
|
|
553
556
|
return Results.assert({ ...read, outcome: "scheme_source_read_failed", ...(problem === undefined ? {} : { problem }) });
|
|
554
557
|
}
|
|
@@ -637,7 +640,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
637
640
|
if (parent.aborted)
|
|
638
641
|
controller.abort(ExecAbort.teardownReason());
|
|
639
642
|
}
|
|
640
|
-
const input = new ExecutionInput(controller.signal, execution.inputTimeoutMs);
|
|
643
|
+
const input = new ExecutionInput(controller.signal, execution.inputTimeoutMs, attrs.input === "open");
|
|
641
644
|
this.#activeAborts.set(subscriptionId, { workspaceId: core.workspaceId, workerId: core.workerId, turnId: core.turnId, pathname, runtime, effect, controller, detached: attrs.detached === true, input, invocation, executor: resolved.executor });
|
|
642
645
|
const lifecycle = new LiveSubscription({
|
|
643
646
|
db: core.db, registry: this.liveSubscriptions(),
|
|
@@ -653,21 +656,32 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
653
656
|
},
|
|
654
657
|
notify: core.streamEventNotify, wake: core.wakeWorkerNotify,
|
|
655
658
|
});
|
|
659
|
+
const run = async () => {
|
|
660
|
+
input.started();
|
|
661
|
+
return this.#runExecutor({
|
|
662
|
+
executor: resolved.executor,
|
|
663
|
+
runtime, body, cwd, target, metadata: args.metadata, ctx: core, pathname, coordinate: attrs.coordinate,
|
|
664
|
+
entryId, lifecycle, signal: controller.signal, controller, tempPath, input,
|
|
665
|
+
timeoutSec: typeof attrs.timeoutSec === "number" ? attrs.timeoutSec : null,
|
|
666
|
+
});
|
|
667
|
+
};
|
|
668
|
+
// {§functionality-model-mutation} Configuration is an ordered core operation,
|
|
669
|
+
// not a background job competing for an external-execution slot.
|
|
670
|
+
if (resolved.executor instanceof FunctionalityManager) {
|
|
671
|
+
const tail = run();
|
|
672
|
+
this.#activeSpawns.set(subscriptionId, tail);
|
|
673
|
+
return await tail;
|
|
674
|
+
}
|
|
656
675
|
const admission = execution.scheduler.admit(core.workspaceId, controller.signal);
|
|
657
676
|
const tail = admission.ready.then(async (release) => {
|
|
658
677
|
try {
|
|
659
|
-
return await
|
|
660
|
-
executor: resolved.executor,
|
|
661
|
-
runtime, body, cwd, target, metadata: args.metadata, ctx: core, pathname, coordinate: attrs.coordinate,
|
|
662
|
-
entryId, lifecycle, signal: controller.signal, controller, tempPath, input,
|
|
663
|
-
timeoutSec: typeof attrs.timeoutSec === "number" ? attrs.timeoutSec : null,
|
|
664
|
-
});
|
|
678
|
+
return await run();
|
|
665
679
|
}
|
|
666
680
|
finally {
|
|
667
681
|
release();
|
|
668
682
|
}
|
|
669
683
|
});
|
|
670
|
-
//
|
|
684
|
+
// External executions background + stream ({§exec-stream}): the output
|
|
671
685
|
// surfaces as the environment-observation injector's terminal delta (nothing while it runs,
|
|
672
686
|
// one visible READ when it finishes). Pure/read commands still auto-accept
|
|
673
687
|
// from the preserved effect fact; they resolve a turn later, uniformly
|
|
@@ -730,7 +744,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
730
744
|
const { runtime, body, cwd, target, metadata, ctx, pathname, entryId, lifecycle, signal, controller, timeoutSec, tempPath, input, coordinate } = opts;
|
|
731
745
|
// {§functionality-model-projection} — a Core-owned manager acts for the invoking Worker. The
|
|
732
746
|
// framework's ExecArgs carries no Worker identity, so Core binds it here, at the operation.
|
|
733
|
-
const executor =
|
|
747
|
+
const executor = opts.executor instanceof FunctionalityManager ? opts.executor.forWorker(ctx.workerId) : opts.executor;
|
|
734
748
|
const db = ctx.db;
|
|
735
749
|
// an execution's `<T>` — kill the spawn after T seconds. unref'd so a pending timer never
|
|
736
750
|
// holds the process open; cleared in finally so a spawn that finishes first leaves no timer.
|
|
@@ -940,7 +954,7 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
940
954
|
const composed = signal.aborted ? null
|
|
941
955
|
: await EnvFunctionality.resolve(db, ctx.workspaceId, ctx.workerId, EnvFunctionality.modifier(metadata));
|
|
942
956
|
if (composed !== null)
|
|
943
|
-
await
|
|
957
|
+
await Exec.#recordEnv(db, entryId, composed.record);
|
|
944
958
|
if (composed === null || signal.aborted) {
|
|
945
959
|
result = cancelled();
|
|
946
960
|
}
|
|
@@ -1086,27 +1100,25 @@ class Exec extends CoreSchemeAdapterBase {
|
|
|
1086
1100
|
}
|
|
1087
1101
|
async find(statement, ctx) {
|
|
1088
1102
|
const core = this.coreContext(ctx);
|
|
1089
|
-
return EntryFind.findWorkspaceEntries(statement, core,
|
|
1103
|
+
return EntryFind.findWorkspaceEntries(statement, core, Exec.manifest, {});
|
|
1090
1104
|
}
|
|
1091
1105
|
async readEntry(pathname, ctx) {
|
|
1092
1106
|
const core = this.coreContext(ctx);
|
|
1093
1107
|
return "entries" in ctx
|
|
1094
1108
|
? ctx.entries.read(pathname)
|
|
1095
|
-
: EntryCrud.readEntry({ authority: "", pathname }, core,
|
|
1109
|
+
: EntryCrud.readEntry({ authority: "", pathname }, core, Exec.manifest.name);
|
|
1096
1110
|
}
|
|
1097
1111
|
async writeEntry(pathname, entry, ctx) {
|
|
1098
1112
|
const core = this.coreContext(ctx);
|
|
1099
1113
|
return "entries" in ctx
|
|
1100
1114
|
? ctx.entries.write(pathname, entry)
|
|
1101
|
-
: EntryCrud.writeEntry({ authority: "", pathname }, entry, core,
|
|
1115
|
+
: EntryCrud.writeEntry({ authority: "", pathname }, entry, core, Exec.manifest.name);
|
|
1102
1116
|
}
|
|
1103
1117
|
async deleteEntry(pathname, ctx) {
|
|
1104
1118
|
const core = this.coreContext(ctx);
|
|
1105
1119
|
return "entries" in ctx
|
|
1106
1120
|
? ctx.entries.delete(pathname)
|
|
1107
|
-
: EntryCrud.deleteEntry({ authority: "", pathname }, core,
|
|
1121
|
+
: EntryCrud.deleteEntry({ authority: "", pathname }, core, Exec.manifest.name);
|
|
1108
1122
|
}
|
|
1109
1123
|
}
|
|
1110
|
-
_a = Exec;
|
|
1111
|
-
export default Exec;
|
|
1112
1124
|
//# sourceMappingURL=Exec.js.map
|