@plurnk/plurnk-service 3.0.0 → 3.1.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 +16 -4
- package/INSTALL.md +18 -0
- package/README.md +3 -0
- package/SPEC.md +355 -187
- package/dist/build-info.json +1 -1
- package/dist/completions/_plurnk-service +13 -0
- package/dist/completions/plurnk-service.bash +19 -0
- package/dist/completions/plurnk-service.fish +93 -0
- package/dist/core/AdmittedTurnExecutor.d.ts +2 -2
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +16 -24
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BudgetReadout.d.ts +7 -2
- package/dist/core/BudgetReadout.d.ts.map +1 -1
- package/dist/core/BudgetReadout.js +36 -5
- package/dist/core/BudgetReadout.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +2 -2
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +43 -39
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +1 -4
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/EnvFlags.js +1 -1
- package/dist/core/EnvFlags.js.map +1 -1
- package/dist/core/FabricatedLog.d.ts +1 -0
- package/dist/core/FabricatedLog.d.ts.map +1 -1
- package/dist/core/FabricatedLog.js +8 -0
- package/dist/core/FabricatedLog.js.map +1 -1
- package/dist/core/KillHandler.d.ts.map +1 -1
- package/dist/core/KillHandler.js +2 -0
- package/dist/core/KillHandler.js.map +1 -1
- package/dist/core/LiveSubscription.d.ts.map +1 -1
- package/dist/core/LiveSubscription.js +14 -2
- package/dist/core/LiveSubscription.js.map +1 -1
- package/dist/core/LiveSubscriptions.d.ts +3 -1
- package/dist/core/LiveSubscriptions.d.ts.map +1 -1
- package/dist/core/LiveSubscriptions.js +16 -1
- package/dist/core/LiveSubscriptions.js.map +1 -1
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +3 -1
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +3 -0
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/LoopLifecycle.sql +1 -0
- package/dist/core/MessageResources.sql +31 -0
- package/dist/core/PacketBuilder.d.ts +2 -2
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +123 -51
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +13 -14
- package/dist/core/ReplyMetadata.d.ts +10 -0
- package/dist/core/ReplyMetadata.d.ts.map +1 -0
- package/dist/core/ReplyMetadata.js +20 -0
- package/dist/core/ReplyMetadata.js.map +1 -0
- package/dist/core/ServiceHelp.d.ts +6 -0
- package/dist/core/ServiceHelp.d.ts.map +1 -0
- package/dist/core/ServiceHelp.js +35 -0
- package/dist/core/ServiceHelp.js.map +1 -0
- package/dist/core/StoredPacket.d.ts +1 -0
- package/dist/core/StoredPacket.d.ts.map +1 -1
- package/dist/core/StoredPacket.js +4 -1
- package/dist/core/StoredPacket.js.map +1 -1
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +2 -2
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TokenCalibration.d.ts +2 -2
- package/dist/core/TokenCalibration.d.ts.map +1 -1
- package/dist/core/TokenCalibration.js +12 -16
- package/dist/core/TokenCalibration.js.map +1 -1
- package/dist/core/TokenCalibration.sql +29 -6
- package/dist/core/TurnDispositionHandler.d.ts +1 -2
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
- package/dist/core/TurnDispositionHandler.js +30 -26
- package/dist/core/TurnDispositionHandler.js.map +1 -1
- package/dist/core/TurnMaterialization.d.ts.map +1 -1
- package/dist/core/TurnMaterialization.js +11 -1
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnOps.d.ts +5 -1
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +29 -2
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +119 -55
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/TurnSources.sql +2 -2
- package/dist/core/packet-wire.d.ts +7 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +87 -27
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/recap-lines.d.ts +4 -0
- package/dist/core/recap-lines.d.ts.map +1 -0
- package/dist/core/recap-lines.js +11 -0
- package/dist/core/recap-lines.js.map +1 -0
- package/dist/core/sql-functions.d.ts +2 -0
- package/dist/core/sql-functions.d.ts.map +1 -0
- package/dist/core/sql-functions.js +5 -0
- package/dist/core/sql-functions.js.map +1 -0
- package/dist/core/turn-scheduler.d.ts.map +1 -1
- package/dist/core/turn-scheduler.js +1 -1
- package/dist/core/turn-scheduler.js.map +1 -1
- package/dist/evidence/EvidenceReader.d.ts.map +1 -1
- package/dist/evidence/EvidenceReader.js +15 -2
- package/dist/evidence/EvidenceReader.js.map +1 -1
- package/dist/evidence/digest.sql +1 -0
- package/dist/man/plurnk-service.1 +488 -0
- package/dist/schemes/Env.d.ts +26 -0
- package/dist/schemes/Env.d.ts.map +1 -0
- package/dist/schemes/Env.js +133 -0
- package/dist/schemes/Env.js.map +1 -0
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +15 -15
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts +3 -2
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +9 -0
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +33 -10
- package/dist/schemes/Log.js.map +1 -1
- package/dist/schemes/Log.sql +9 -0
- package/dist/schemes/_entry-find.d.ts +1 -1
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +16 -9
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-manifest.js +3 -3
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/exec-abort.js +2 -2
- package/dist/schemes/exec-abort.js.map +1 -1
- package/dist/server/Daemon.d.ts +1 -0
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +6 -1
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +1 -0
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +4 -1
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/EnvFunctionality.d.ts +4 -2
- package/dist/server/EnvFunctionality.d.ts.map +1 -1
- package/dist/server/EnvFunctionality.js +4 -1
- package/dist/server/EnvFunctionality.js.map +1 -1
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +12 -3
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/drain.sql +10 -9
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +5 -31
- package/dist/service.js.map +1 -1
- package/docs/env.md +22 -0
- package/migrations/018_worker_owners.sql +1 -0
- package/migrations/019_interactive_owners.sql +1 -0
- package/migrations/020_log_projection.sql +1 -0
- package/migrations/021_packet_roles.sql +86 -0
- package/migrations/022_message_completion.sql +24 -0
- package/package.json +16 -14
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
.TH PLURNK-SERVICE 1 "2026-10-11" "plurnk-service 3.1.0" "User Commands"
|
|
2
|
+
.SH NAME
|
|
3
|
+
plurnk-service \- persistent agent runtime
|
|
4
|
+
.SH SYNOPSIS
|
|
5
|
+
.nf
|
|
6
|
+
plurnk-service [options] [start|migrate]
|
|
7
|
+
plurnk-service [options] config [edit|defaults|check]
|
|
8
|
+
plurnk-service [options] share [<file.db>] [<folder>] [--workspace=<id>] [--requiem]
|
|
9
|
+
plurnk-service [options] requiem <file.db> <folder>
|
|
10
|
+
.fi
|
|
11
|
+
.SH DESCRIPTION
|
|
12
|
+
Runs the Plurnk daemon or performs a local administrative command.
|
|
13
|
+
The terminal client is plurnk(1).
|
|
14
|
+
.SH OPTIONS AND COMMANDS
|
|
15
|
+
.TP
|
|
16
|
+
.B --service-db-path
|
|
17
|
+
Database path; empty = $XDG_DATA_HOME/plurnk/plurnk.db (~/.local/share
|
|
18
|
+
by default). Module operational state: $XDG_STATE_HOME/plurnk
|
|
19
|
+
(~/.local/state/plurnk by default).
|
|
20
|
+
(PLURNK_SERVICE_DB_PATH=)
|
|
21
|
+
.TP
|
|
22
|
+
.B --service-state-root
|
|
23
|
+
A private daemon's root ({§state-root}): empty = the XDG homes; an
|
|
24
|
+
absolute path (a leading ~/ expands) roots data, state, cache and
|
|
25
|
+
runtime under it as <root>/{data,state,cache,runtime}/plurnk.
|
|
26
|
+
Configuration and the shared Agent Skills root never move;
|
|
27
|
+
PLURNK_SERVICE_DB_PATH still wins.
|
|
28
|
+
(PLURNK_SERVICE_STATE_ROOT=)
|
|
29
|
+
.TP
|
|
30
|
+
.B --service-share-folder
|
|
31
|
+
Where `share` writes when no folder is named: each share is a stamped
|
|
32
|
+
child folder. A leading ~/ expands; empty =
|
|
33
|
+
$XDG_STATE_HOME/plurnk/shares (~/.local/state/plurnk/shares by default).
|
|
34
|
+
(PLURNK_SERVICE_SHARE_FOLDER=)
|
|
35
|
+
.TP
|
|
36
|
+
.B --service-sqlite-readers
|
|
37
|
+
Read-only database Workers beside the one writer Worker (database
|
|
38
|
+
Workers = 1 + readers); 0 = every read shares the writer. Non-negative
|
|
39
|
+
integer. Blank = sqlrite's own default.
|
|
40
|
+
(PLURNK_SERVICE_SQLITE_READERS=0)
|
|
41
|
+
.TP
|
|
42
|
+
.B --service-capabilities
|
|
43
|
+
CapabilityPolicy JSON: deny removes matching demands; only admits only
|
|
44
|
+
matches. Workspace policy may narrow this ceiling, never widen it.
|
|
45
|
+
(PLURNK_SERVICE_CAPABILITIES={})
|
|
46
|
+
.TP
|
|
47
|
+
.B --service-proposals
|
|
48
|
+
Proposal settlement: review asks the worker's owner; accept or reject
|
|
49
|
+
settles in core. Review without a capable owner rejects. Disconnect
|
|
50
|
+
alone never removes that capability.
|
|
51
|
+
(PLURNK_SERVICE_PROPOSALS=review)
|
|
52
|
+
.TP
|
|
53
|
+
.B --service-file-create-scope
|
|
54
|
+
New filesystem files: none | root | namespace (also outside root).
|
|
55
|
+
Existing-member writes unchanged.
|
|
56
|
+
(PLURNK_SERVICE_FILE_CREATE_SCOPE=root)
|
|
57
|
+
.TP
|
|
58
|
+
.B --service-members-model-scope
|
|
59
|
+
Model-added membership: none | root | namespace. Workspaces may narrow
|
|
60
|
+
it.
|
|
61
|
+
(PLURNK_SERVICE_MEMBERS_MODEL_SCOPE=namespace)
|
|
62
|
+
.TP
|
|
63
|
+
.B --members-enabled
|
|
64
|
+
Enable declared membership rules by default; per-alias _ENABLED
|
|
65
|
+
overrides this.
|
|
66
|
+
(PLURNK_MEMBERS_ENABLED=1)
|
|
67
|
+
.TP
|
|
68
|
+
.B --service-members-sample
|
|
69
|
+
Matched paths a members definition lists as its sample; the rest are
|
|
70
|
+
counted.
|
|
71
|
+
(PLURNK_SERVICE_MEMBERS_SAMPLE=20)
|
|
72
|
+
.TP
|
|
73
|
+
.B --service-git-allowed
|
|
74
|
+
Git membership, status, and branch integration: 1 = permitted; 0 =
|
|
75
|
+
denied service-wide.
|
|
76
|
+
(PLURNK_SERVICE_GIT_ALLOWED=1)
|
|
77
|
+
.TP
|
|
78
|
+
.B --service-git-auto
|
|
79
|
+
Include the repository containing project_root as members: 1 = yes; 0 =
|
|
80
|
+
explicit members only.
|
|
81
|
+
(PLURNK_SERVICE_GIT_AUTO=1)
|
|
82
|
+
.TP
|
|
83
|
+
.B --service-git-output-max-bytes
|
|
84
|
+
Maximum stdout/stderr bytes accepted from one native Git subprocess.
|
|
85
|
+
(PLURNK_SERVICE_GIT_OUTPUT_MAX_BYTES=67108864)
|
|
86
|
+
.TP
|
|
87
|
+
.B --service-file-materialize-max-bytes
|
|
88
|
+
Maximum bytes per workspace-file snapshot, 1..104857600. Larger sources
|
|
89
|
+
return 413 on READ/EDIT.
|
|
90
|
+
(PLURNK_SERVICE_FILE_MATERIALIZE_MAX_BYTES=104857600)
|
|
91
|
+
.TP
|
|
92
|
+
.B --service-max-turns
|
|
93
|
+
Opt-in model-call ceiling shared by the worker tree, including BARE and
|
|
94
|
+
resumes; -1 = uncapped. Runtime (_plurnk) ancestry supplies no ceiling.
|
|
95
|
+
Clients may tighten the model tree's limit.
|
|
96
|
+
(PLURNK_SERVICE_MAX_TURNS=-1)
|
|
97
|
+
.TP
|
|
98
|
+
.B --service-max-commands
|
|
99
|
+
Actions per emission; -1 = unlimited. Final disposition remains; excess
|
|
100
|
+
actions report an error.
|
|
101
|
+
(PLURNK_SERVICE_MAX_COMMANDS=-1)
|
|
102
|
+
.TP
|
|
103
|
+
.B --service-workspace-workers-max-active
|
|
104
|
+
Concurrent live workers per workspace; -1 = unlimited. Excess spawns
|
|
105
|
+
return 508, not a queue.
|
|
106
|
+
(PLURNK_SERVICE_WORKSPACE_WORKERS_MAX_ACTIVE=-1)
|
|
107
|
+
.TP
|
|
108
|
+
.B --service-loop-timeout
|
|
109
|
+
Active execution allowance per task, positive ms; WAIT pauses it, wakes
|
|
110
|
+
retain it. Exhaustion: 504.
|
|
111
|
+
(PLURNK_SERVICE_LOOP_TIMEOUT=86400000)
|
|
112
|
+
.TP
|
|
113
|
+
.B --service-live-timeout
|
|
114
|
+
Live/demo whole-specimen deadline, ms; includes all prompts and cancels
|
|
115
|
+
before cleanup.
|
|
116
|
+
(PLURNK_SERVICE_LIVE_TIMEOUT=600000)
|
|
117
|
+
.TP
|
|
118
|
+
.B --service-stop-timeout-ms
|
|
119
|
+
End-to-end shutdown budget, positive ms; includes database and listener
|
|
120
|
+
cleanup.
|
|
121
|
+
(PLURNK_SERVICE_STOP_TIMEOUT_MS=30000)
|
|
122
|
+
.TP
|
|
123
|
+
.B --service-provider-recovery
|
|
124
|
+
Provider recovery window, ms; 0 = no reissue. Expiry parks workers with
|
|
125
|
+
a reviewer; without one the loop concludes. BARE returns the provider
|
|
126
|
+
failure.
|
|
127
|
+
(PLURNK_SERVICE_PROVIDER_RECOVERY=900000)
|
|
128
|
+
.TP
|
|
129
|
+
.B --service-provider-recovery-backoff
|
|
130
|
+
First recovery delay, ms; doubles on failure up to
|
|
131
|
+
PROVIDER_RECOVERY_BACKOFF_MAX below.
|
|
132
|
+
(PLURNK_SERVICE_PROVIDER_RECOVERY_BACKOFF=5000)
|
|
133
|
+
.TP
|
|
134
|
+
.B --service-provider-recovery-backoff-max
|
|
135
|
+
Ceiling of that doubling delay, ms.
|
|
136
|
+
(PLURNK_SERVICE_PROVIDER_RECOVERY_BACKOFF_MAX=60000)
|
|
137
|
+
.TP
|
|
138
|
+
.B --service-max-strikes
|
|
139
|
+
Consecutive turn-contract strike threshold.
|
|
140
|
+
(PLURNK_SERVICE_MAX_STRIKES=3)
|
|
141
|
+
.TP
|
|
142
|
+
.B --service-emission-attempts
|
|
143
|
+
Completed responses allowed to produce an admissible turn against the
|
|
144
|
+
same packet.
|
|
145
|
+
(PLURNK_SERVICE_EMISSION_ATTEMPTS=3)
|
|
146
|
+
.TP
|
|
147
|
+
.B --service-min-cycles
|
|
148
|
+
Minimum repetitions before cycle detection fires.
|
|
149
|
+
(PLURNK_SERVICE_MIN_CYCLES=3)
|
|
150
|
+
.TP
|
|
151
|
+
.B --service-max-cycle-period
|
|
152
|
+
Maximum repeating period examined by cycle detection, turns.
|
|
153
|
+
(PLURNK_SERVICE_MAX_CYCLE_PERIOD=4)
|
|
154
|
+
.TP
|
|
155
|
+
.B --service-error-detail-limit
|
|
156
|
+
Maximum characters of runtime diagnostics exposed in model-facing
|
|
157
|
+
errors.
|
|
158
|
+
(PLURNK_SERVICE_ERROR_DETAIL_LIMIT=512)
|
|
159
|
+
.TP
|
|
160
|
+
.B --service-workspace-warm-ms
|
|
161
|
+
Idle workspace Functionality grace, ms; 0 = cool immediately; -1 = no
|
|
162
|
+
time limit.
|
|
163
|
+
(PLURNK_SERVICE_WORKSPACE_WARM_MS=900000)
|
|
164
|
+
.TP
|
|
165
|
+
.B --service-workspace-warm-max
|
|
166
|
+
Retained idle workspace snapshots; 0 = none; -1 = unlimited. Active work
|
|
167
|
+
is exempt.
|
|
168
|
+
(PLURNK_SERVICE_WORKSPACE_WARM_MAX=2)
|
|
169
|
+
.TP
|
|
170
|
+
.B --service-proposal-timeout-ms
|
|
171
|
+
Proposal wait, positive ms; empty = wait indefinitely. Expiry cancels
|
|
172
|
+
the proposal.
|
|
173
|
+
(PLURNK_SERVICE_PROPOSAL_TIMEOUT_MS=)
|
|
174
|
+
.TP
|
|
175
|
+
.B --service-exec-hold
|
|
176
|
+
Comma-separated runtime or runtime:effect names that hold the next turn
|
|
177
|
+
while executing; empty = none.
|
|
178
|
+
(PLURNK_SERVICE_EXEC_HOLD=)
|
|
179
|
+
.TP
|
|
180
|
+
.B --service-exec-hold-ms
|
|
181
|
+
Maximum turn hold, ms; expiry lets the loop continue while the stream
|
|
182
|
+
remains live.
|
|
183
|
+
(PLURNK_SERVICE_EXEC_HOLD_MS=300000)
|
|
184
|
+
.TP
|
|
185
|
+
.B --service-exec-concurrency
|
|
186
|
+
Concurrent EXEC producers per workspace; excess executions wait FIFO; -1
|
|
187
|
+
= unlimited.
|
|
188
|
+
(PLURNK_SERVICE_EXEC_CONCURRENCY=12)
|
|
189
|
+
.TP
|
|
190
|
+
.B --service-exec-input-timeout-ms
|
|
191
|
+
Live input delivery deadline, positive ms, including queued writes;
|
|
192
|
+
expiry retires input, not the process.
|
|
193
|
+
(PLURNK_SERVICE_EXEC_INPUT_TIMEOUT_MS=10000)
|
|
194
|
+
.TP
|
|
195
|
+
.B --service-exec-probe-timeout-ms
|
|
196
|
+
Deadline for one runtime's availability probe at boot, positive ms;
|
|
197
|
+
expiry reports it unavailable.
|
|
198
|
+
(PLURNK_SERVICE_EXEC_PROBE_TIMEOUT_MS=3000)
|
|
199
|
+
.TP
|
|
200
|
+
.B --service-exec-scratch
|
|
201
|
+
Directory a non-file execution source (`sh (log:///…)`) is written to
|
|
202
|
+
for its run, created 0700 on first use ({§exec-scratch-directory}).
|
|
203
|
+
Empty = $XDG_RUNTIME_DIR/plurnk, else the platform temporary directory.
|
|
204
|
+
An executor in another filesystem namespace (a container that mounts
|
|
205
|
+
only the repository) must see the same directory: point this at one it
|
|
206
|
+
mounts.
|
|
207
|
+
(PLURNK_SERVICE_EXEC_SCRATCH=)
|
|
208
|
+
.TP
|
|
209
|
+
.B --service-effect-host
|
|
210
|
+
What an operation that runs code or changes the world does: propose = it
|
|
211
|
+
needs a settlement; auto = it runs ungated. This covers a subprocess and
|
|
212
|
+
an outbound POST, PUT or DELETE alike.
|
|
213
|
+
(PLURNK_SERVICE_EFFECT_HOST=propose)
|
|
214
|
+
.TP
|
|
215
|
+
.B --service-effect-read
|
|
216
|
+
The same for an operation that only observes external state.
|
|
217
|
+
(PLURNK_SERVICE_EFFECT_READ=auto)
|
|
218
|
+
.TP
|
|
219
|
+
.B --service-effect-pure
|
|
220
|
+
The same for an operation with no observable effect.
|
|
221
|
+
(PLURNK_SERVICE_EFFECT_PURE=auto)
|
|
222
|
+
.TP
|
|
223
|
+
.B --service-optimistic-wait-ms
|
|
224
|
+
Brief settlement wait for new streams/completing siblings, ms; 0 = off;
|
|
225
|
+
quiescence ends it early.
|
|
226
|
+
(PLURNK_SERVICE_OPTIMISTIC_WAIT_MS=5000)
|
|
227
|
+
.TP
|
|
228
|
+
.B --service-wait-sec
|
|
229
|
+
Maximum park before reassessing live work, positive seconds; WAIT
|
|
230
|
+
[seconds] overrides one park.
|
|
231
|
+
(PLURNK_SERVICE_WAIT_SEC=300)
|
|
232
|
+
.TP
|
|
233
|
+
.B --service-exec-env-inherit
|
|
234
|
+
Ambient environment an EXEC subprocess may inherit from the host: exact
|
|
235
|
+
names, or one trailing-* prefix glob. This is a CEILING — a worker or a
|
|
236
|
+
heading modifier narrows it, nothing widens it. plurnk's own secrets
|
|
237
|
+
(PLURNK_* and every provider credential name) are stripped beneath it
|
|
238
|
+
unconditionally and are not governed by this knob. The shipped list is
|
|
239
|
+
what a shell, git, node and python need to run at all. An operator who
|
|
240
|
+
wants a tool's credential reachable by model-written commands adds it by
|
|
241
|
+
name.
|
|
242
|
+
(PLURNK_SERVICE_EXEC_ENV_INHERIT=PATH,HOME,USER,LOGNAME,SHELL,PWD,TMPDIR,TERM,TZ,LANG,LC_*,PAGER,GIT_PAGER,NO_COLOR,CI)
|
|
243
|
+
.TP
|
|
244
|
+
.B --service-exec-env-exclude
|
|
245
|
+
Names removed after INHERIT, same shapes; narrows without rewriting the
|
|
246
|
+
list above.
|
|
247
|
+
(PLURNK_SERVICE_EXEC_ENV_EXCLUDE=)
|
|
248
|
+
.TP
|
|
249
|
+
.B --service-exec-kill-grace-ms
|
|
250
|
+
Grace after a termination signal, ms; then SIGKILL the surviving process
|
|
251
|
+
group.
|
|
252
|
+
(PLURNK_SERVICE_EXEC_KILL_GRACE_MS=2000)
|
|
253
|
+
.TP
|
|
254
|
+
.B --service-line-anchor-context-lines
|
|
255
|
+
Minimum neighbors hashed on each side of an editable line anchor;
|
|
256
|
+
repeated handles widen context.
|
|
257
|
+
(PLURNK_SERVICE_LINE_ANCHOR_CONTEXT_LINES=2)
|
|
258
|
+
.TP
|
|
259
|
+
.B --service-edit-receipt-context-lines
|
|
260
|
+
Surrounding and changed lines shown at each EDIT boundary; overlapping
|
|
261
|
+
windows coalesce.
|
|
262
|
+
(PLURNK_SERVICE_EDIT_RECEIPT_CONTEXT_LINES=4)
|
|
263
|
+
.TP
|
|
264
|
+
.B --service-edit-receipt-removed-lines
|
|
265
|
+
Removed lines a pure deletion's receipt carries so it can be undone; a
|
|
266
|
+
longer span is cut and counted.
|
|
267
|
+
(PLURNK_SERVICE_EDIT_RECEIPT_REMOVED_LINES=40)
|
|
268
|
+
.TP
|
|
269
|
+
.B --service-git-status-paths
|
|
270
|
+
Paths named per class in the packet's git status; the rest are counted.
|
|
271
|
+
(PLURNK_SERVICE_GIT_STATUS_PATHS=8)
|
|
272
|
+
.TP
|
|
273
|
+
.B --service-budget-pressure
|
|
274
|
+
Above this share of the budget, measured before adding either, the
|
|
275
|
+
Context gauge names its largest rows and a packet within its budget
|
|
276
|
+
carries the budget_pressure notice ({§context-pressure-notice}).
|
|
277
|
+
(PLURNK_SERVICE_BUDGET_PRESSURE=80%)
|
|
278
|
+
.TP
|
|
279
|
+
.B --service-budget-largest-items
|
|
280
|
+
Heaviest retained log rows the pressured Context gauge names, as {path,
|
|
281
|
+
tokens}; 0 names none.
|
|
282
|
+
(PLURNK_SERVICE_BUDGET_LARGEST_ITEMS=5)
|
|
283
|
+
.TP
|
|
284
|
+
.B --service-preview-lines
|
|
285
|
+
First page of everything that comes back unasked in size: a READ or FIND
|
|
286
|
+
without a scope, a stream's delivery, a peer worker's message, a receipt
|
|
287
|
+
the model did not author ({§markerless-first-page}). Lines of text,
|
|
288
|
+
bytes of a byte view, results of a FIND; explicit scopes stay exact.
|
|
289
|
+
(PLURNK_SERVICE_PREVIEW_LINES=100)
|
|
290
|
+
.TP
|
|
291
|
+
.B --service-preview-chars
|
|
292
|
+
Independent bound on the same page, Unicode code points; CRLF counts as
|
|
293
|
+
one separator.
|
|
294
|
+
(PLURNK_SERVICE_PREVIEW_CHARS=16000)
|
|
295
|
+
.TP
|
|
296
|
+
.B --service-emission-history
|
|
297
|
+
Assistant replay ({§emission-history}): none, latest, or all eligible
|
|
298
|
+
turns from this loop, each as the NOTEs it wrote, in the model's voice;
|
|
299
|
+
every other operation is omitted. The context wall may omit the whole
|
|
300
|
+
section; source evidence never changes.
|
|
301
|
+
(PLURNK_SERVICE_EMISSION_HISTORY=all)
|
|
302
|
+
.TP
|
|
303
|
+
.B --service-reasoning-rows
|
|
304
|
+
Optional reasoning memory ({§reasoning-row}): 1 adds the turn's preview
|
|
305
|
+
before its emission or results, only when room remains after all
|
|
306
|
+
requested results and diagnostics. Otherwise omit it silently. 0
|
|
307
|
+
disables it.
|
|
308
|
+
(PLURNK_SERVICE_REASONING_ROWS=0)
|
|
309
|
+
.TP
|
|
310
|
+
.B --service-catalog-summary-chars
|
|
311
|
+
Code points of an entry's prose summary the catalog shows whole.
|
|
312
|
+
(PLURNK_SERVICE_CATALOG_SUMMARY_CHARS=256)
|
|
313
|
+
.TP
|
|
314
|
+
.B --service-log-read-page
|
|
315
|
+
Log entries one client read returns when it names no limit.
|
|
316
|
+
(PLURNK_SERVICE_LOG_READ_PAGE=100)
|
|
317
|
+
.TP
|
|
318
|
+
.B --service-log-read-max
|
|
319
|
+
Ceiling of one client log read, whatever limit it names.
|
|
320
|
+
(PLURNK_SERVICE_LOG_READ_MAX=1000)
|
|
321
|
+
.TP
|
|
322
|
+
.B --service-prompts-page
|
|
323
|
+
Root-conversation prompts one listing returns when it names no limit.
|
|
324
|
+
(PLURNK_SERVICE_PROMPTS_PAGE=100)
|
|
325
|
+
.TP
|
|
326
|
+
.B --service-model-catalog-page
|
|
327
|
+
Models one catalog page lists when the query names no limit.
|
|
328
|
+
(PLURNK_SERVICE_MODEL_CATALOG_PAGE=50)
|
|
329
|
+
.TP
|
|
330
|
+
.B --service-files-items
|
|
331
|
+
Turn-0 surveys: -1 = whole surveys (each fits the budget or lands as its
|
|
332
|
+
size); N > 0 caps file-map rows; 0 = off. Workspace settings.filesItems
|
|
333
|
+
overrides this default; other surveys stay whole.
|
|
334
|
+
(PLURNK_SERVICE_FILES_ITEMS=-1)
|
|
335
|
+
.TP
|
|
336
|
+
.B --service-docs-exclude
|
|
337
|
+
Scheme names omitted from discoverable references, comma-separated;
|
|
338
|
+
empty = none. Executable docs instead follow tool enablement. Extension
|
|
339
|
+
trust lives in plurnk-meta's defaults.
|
|
340
|
+
(PLURNK_SERVICE_DOCS_EXCLUDE=plurnk,file,exec)
|
|
341
|
+
.TP
|
|
342
|
+
.B --service-roots
|
|
343
|
+
Skills, plugin and standalone MCP configuration roots, comma-separated,
|
|
344
|
+
nearest first: project (the workspace project's .agents), plurnk
|
|
345
|
+
($XDG_CONFIG_HOME/plurnk), global (~/.agents).
|
|
346
|
+
(PLURNK_SERVICE_ROOTS=project,plurnk,global)
|
|
347
|
+
.TP
|
|
348
|
+
.B --service-search-exclude
|
|
349
|
+
Comma-separated globs excluded from derivation, not READ. No slash =
|
|
350
|
+
basename; slash = pathname.
|
|
351
|
+
(PLURNK_SERVICE_SEARCH_EXCLUDE=*.min.*,*.map,package-lock.json,npm-shrinkwrap.json,packages.lock.json,yarn.lock,pnpm-lock.yaml,bun.lockb,Cargo.lock,poetry.lock,uv.lock,Pipfile.lock,Gemfile.lock,composer.lock,go.sum,flake.lock,gradle.lockfile,*/dist/*,dist/*,*/build/*,build/*,*/.next/*,.next/*,*/node_modules/*,node_modules/*,*/vendor/*,vendor/*,*/coverage/*,coverage/*,*/.vuepress/*,.vuepress/*,*/.nuxt/*,.nuxt/*)
|
|
352
|
+
.TP
|
|
353
|
+
.B --service-search-max-bytes
|
|
354
|
+
Bodies larger than this many bytes are not parsed or full-text indexed
|
|
355
|
+
(READ is unaffected); empty = unbounded.
|
|
356
|
+
(PLURNK_SERVICE_SEARCH_MAX_BYTES=)
|
|
357
|
+
.TP
|
|
358
|
+
.B --service-derive-concurrency
|
|
359
|
+
Concurrent parser derivations: empty = sqrt(available cores); -1 = all
|
|
360
|
+
cores; positive N = exact cap.
|
|
361
|
+
(PLURNK_SERVICE_DERIVE_CONCURRENCY=)
|
|
362
|
+
.TP
|
|
363
|
+
.B --service-derive-store-batch
|
|
364
|
+
Maximum symbol/reference rows per indexing SQLite statement.
|
|
365
|
+
(PLURNK_SERVICE_DERIVE_STORE_BATCH=1024)
|
|
366
|
+
.TP
|
|
367
|
+
.B --service-derive-progress-heartbeat-ms
|
|
368
|
+
Progress heartbeat, ms; starts, failures, and completion are immediate;
|
|
369
|
+
no-op passes stay silent.
|
|
370
|
+
(PLURNK_SERVICE_DERIVE_PROGRESS_HEARTBEAT_MS=15000)
|
|
371
|
+
.TP
|
|
372
|
+
.B --service-retain-packet-turns
|
|
373
|
+
Packet compositions kept per loop, newest first; -1 = every packet,
|
|
374
|
+
forever.
|
|
375
|
+
(PLURNK_SERVICE_RETAIN_PACKET_TURNS=-1)
|
|
376
|
+
.TP
|
|
377
|
+
.B --service-retain-packet-ms
|
|
378
|
+
Packet compositions kept by age, ms since the turn completed; -1 = no
|
|
379
|
+
age limit. Thirty days: no worker reads its own packets back that late,
|
|
380
|
+
and a daemon left running for months stops growing.
|
|
381
|
+
(PLURNK_SERVICE_RETAIN_PACKET_MS=2592000000)
|
|
382
|
+
.TP
|
|
383
|
+
.B --service-retain-response-turns
|
|
384
|
+
Model response bodies kept per loop, newest first; -1 = every body,
|
|
385
|
+
forever. The call's evidence, admission and accounting always stay.
|
|
386
|
+
(PLURNK_SERVICE_RETAIN_RESPONSE_TURNS=-1)
|
|
387
|
+
.TP
|
|
388
|
+
.B --service-retain-response-ms
|
|
389
|
+
Model response bodies kept by age, ms since the turn completed; -1 = no
|
|
390
|
+
age limit. Thirty days, as above.
|
|
391
|
+
(PLURNK_SERVICE_RETAIN_RESPONSE_MS=2592000000)
|
|
392
|
+
.TP
|
|
393
|
+
.B --service-collect-packet-items
|
|
394
|
+
Collect packet items no turn's composition references (1), or keep them
|
|
395
|
+
(0).
|
|
396
|
+
(PLURNK_SERVICE_COLLECT_PACKET_ITEMS=1)
|
|
397
|
+
.TP
|
|
398
|
+
.B --service-collect-derivations
|
|
399
|
+
Collect derivations no channel, turn source, or log row cites (1), or
|
|
400
|
+
keep them (0).
|
|
401
|
+
(PLURNK_SERVICE_COLLECT_DERIVATIONS=1)
|
|
402
|
+
.TP
|
|
403
|
+
.B --service-collect-contents
|
|
404
|
+
Collect stored bodies no channel holds and no derivation indexes (1), or
|
|
405
|
+
keep them (0) ({§content-store}).
|
|
406
|
+
(PLURNK_SERVICE_COLLECT_CONTENTS=1)
|
|
407
|
+
.TP
|
|
408
|
+
.B --service-retention-interval-ms
|
|
409
|
+
Retention cadence while the daemon runs, ms; 0 = at shutdown only.
|
|
410
|
+
(PLURNK_SERVICE_RETENTION_INTERVAL_MS=3600000)
|
|
411
|
+
.TP
|
|
412
|
+
.B --service-auto-vacuum
|
|
413
|
+
SQLite auto-vacuum mode the daemon keeps its file in
|
|
414
|
+
({§db-space-reclamation}): incremental = retention passes return free
|
|
415
|
+
pages to the OS; none = the file only grows, and freed pages are reused.
|
|
416
|
+
A change takes effect at the next start through one VACUUM, which
|
|
417
|
+
rewrites the whole file (needs free disk about the file's size and
|
|
418
|
+
blocks the daemon for its duration).
|
|
419
|
+
(PLURNK_SERVICE_AUTO_VACUUM=incremental)
|
|
420
|
+
.TP
|
|
421
|
+
.B --service-reclaim-min-free-bytes
|
|
422
|
+
Free space, bytes, below which a retention pass leaves free pages for
|
|
423
|
+
SQLite to reuse instead of returning them; 0 = return every free page
|
|
424
|
+
each pass.
|
|
425
|
+
(PLURNK_SERVICE_RECLAIM_MIN_FREE_BYTES=0)
|
|
426
|
+
.TP
|
|
427
|
+
.B --host
|
|
428
|
+
Where the daemon listens, and so where a local client dials: one line
|
|
429
|
+
moves both.
|
|
430
|
+
(PLURNK_HOST=127.0.0.1)
|
|
431
|
+
.TP
|
|
432
|
+
.B --port
|
|
433
|
+
The daemon's TCP port, shared by all client interfaces.
|
|
434
|
+
(PLURNK_PORT=1066)
|
|
435
|
+
.TP
|
|
436
|
+
.B --env-file=<path>
|
|
437
|
+
layer env from <path> (repeatable; later wins; errors if
|
|
438
|
+
missing)
|
|
439
|
+
.TP
|
|
440
|
+
.B --env-file-if-exists=<path>
|
|
441
|
+
layer env from <path> if present (repeatable; later
|
|
442
|
+
wins)
|
|
443
|
+
.TP
|
|
444
|
+
.B --config=<path>
|
|
445
|
+
layer additional env from
|
|
446
|
+
<path>
|
|
447
|
+
.TP
|
|
448
|
+
.B config defaults
|
|
449
|
+
print every installed package's annotated
|
|
450
|
+
\&.env.defaults
|
|
451
|
+
.TP
|
|
452
|
+
.B config check
|
|
453
|
+
validate configuration without contacting a
|
|
454
|
+
provider
|
|
455
|
+
.TP
|
|
456
|
+
.B share
|
|
457
|
+
share a consistent copy of the database as a digest <folder> (default
|
|
458
|
+
database: the service's; default folder: a stamped child of
|
|
459
|
+
PLURNK_SERVICE_SHARE_FOLDER); --workspace=<id> limits it to one
|
|
460
|
+
workspace; --requiem adds the forensic interview (calls a
|
|
461
|
+
model)
|
|
462
|
+
.TP
|
|
463
|
+
.B requiem
|
|
464
|
+
add the forensic interview to a digest <folder> of <file.db> (calls a
|
|
465
|
+
model)
|
|
466
|
+
.TP
|
|
467
|
+
.B -v, --version
|
|
468
|
+
show executable
|
|
469
|
+
provenance
|
|
470
|
+
.TP
|
|
471
|
+
.B -h, --help
|
|
472
|
+
show this
|
|
473
|
+
help
|
|
474
|
+
.SH CONFIGURATION
|
|
475
|
+
Run plurnk-service config defaults for the installed configuration catalog,
|
|
476
|
+
or plurnk-service config check to validate configuration
|
|
477
|
+
without contacting a provider.
|
|
478
|
+
The package's INSTALL.md describes the configuration cascade
|
|
479
|
+
and resource scopes.
|
|
480
|
+
.SH FILES
|
|
481
|
+
.TP
|
|
482
|
+
.I $XDG_CONFIG_HOME/plurnk/.env
|
|
483
|
+
Operator configuration; ~/.config/plurnk/.env when XDG_CONFIG_HOME is unset.
|
|
484
|
+
.TP
|
|
485
|
+
.I plurnk.service
|
|
486
|
+
Optional systemd user unit shipped in the package; installation is manual.
|
|
487
|
+
.SH SEE ALSO
|
|
488
|
+
plurnk(1)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { FindStatement, KillStatement } from "@plurnk/plurnk-contracts";
|
|
2
|
+
import { type EditBatchResult, type RepresentationPreparationRequest, type RepresentationPreparationResult, type ResolvedEditStatement, type RuntimeSchemeFacet, type SchemeCtx, type SchemeResult } from "@plurnk/plurnk-schemes";
|
|
3
|
+
import type { EnvRecord } from "../server/EnvFunctionality.ts";
|
|
4
|
+
export interface EnvRegistry {
|
|
5
|
+
readonly env: NodeJS.ProcessEnv;
|
|
6
|
+
readonly record: Readonly<Record<string, EnvRecord>>;
|
|
7
|
+
}
|
|
8
|
+
export type EnvResolve = (workspaceId: number, workerId: number) => Promise<EnvRegistry>;
|
|
9
|
+
export type EnvWriteVerb = "add" | "remove" | "disable";
|
|
10
|
+
export interface EnvWriteIdentity {
|
|
11
|
+
readonly workspaceId: number;
|
|
12
|
+
readonly workerId: number;
|
|
13
|
+
readonly scope: "worker";
|
|
14
|
+
}
|
|
15
|
+
export type EnvInvoke = (verb: EnvWriteVerb, params: unknown, identity: EnvWriteIdentity) => Promise<unknown>;
|
|
16
|
+
export default class EnvScheme implements RuntimeSchemeFacet {
|
|
17
|
+
#private;
|
|
18
|
+
readonly manifest: NonNullable<RuntimeSchemeFacet["manifest"]>;
|
|
19
|
+
constructor(resolve: EnvResolve, invoke: EnvInvoke);
|
|
20
|
+
claims(pathname: string): boolean;
|
|
21
|
+
prepareRepresentation(request: RepresentationPreparationRequest, ctx: SchemeCtx): Promise<RepresentationPreparationResult>;
|
|
22
|
+
prepareFind(statement: FindStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
23
|
+
editBatch(statements: readonly ResolvedEditStatement[], ctx: SchemeCtx): Promise<EditBatchResult>;
|
|
24
|
+
kill(statement: KillStatement, ctx: SchemeCtx): Promise<SchemeResult>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=Env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Env.d.ts","sourceRoot":"","sources":["../../src/schemes/Env.ts"],"names":[],"mappings":"AAGA,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,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AACxD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC5B;AACD,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAa9G,MAAM,CAAC,OAAO,OAAO,SAAU,YAAW,kBAAkB;;IACxD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAE5D;IAIF,YAAY,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAGjD;IAGD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhC;IA2CK,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,CActG;IAIK,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAU1E;CACJ"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Results, } from "@plurnk/plurnk-schemes";
|
|
2
|
+
import { OperationFailureError } from "../core/results.js";
|
|
3
|
+
const OWNER = "scheme:env";
|
|
4
|
+
const NAME = /^[A-Za-z_][A-Za-z0-9_]*$/u;
|
|
5
|
+
// {§execution-output-identity} — the manager's own output streams, which stay the executor's.
|
|
6
|
+
const STREAM = /^[0-9a-f]{8}$/u;
|
|
7
|
+
const ADDRESS = /^[a-z][a-z0-9+.-]*:\/\/[^/]*(\/.*)$/iu;
|
|
8
|
+
const nameOf = (pathname) => {
|
|
9
|
+
const name = pathname.replace(/^\//u, "");
|
|
10
|
+
return NAME.test(name) && !STREAM.test(name) ? name : null;
|
|
11
|
+
};
|
|
12
|
+
export default class EnvScheme {
|
|
13
|
+
manifest = {
|
|
14
|
+
authority: "resource", channels: {}, defaultChannel: "body", writableBy: ["model", "client", "_plurnk"],
|
|
15
|
+
};
|
|
16
|
+
#resolve;
|
|
17
|
+
#invoke;
|
|
18
|
+
constructor(resolve, invoke) {
|
|
19
|
+
this.#resolve = resolve;
|
|
20
|
+
this.#invoke = invoke;
|
|
21
|
+
}
|
|
22
|
+
// The registry is the namespace: every coordinate but the manager's own output streams.
|
|
23
|
+
claims(pathname) {
|
|
24
|
+
return !STREAM.test(pathname.replace(/^\//u, ""));
|
|
25
|
+
}
|
|
26
|
+
static #named(target) {
|
|
27
|
+
if (target === null || target.kind !== "url") {
|
|
28
|
+
return Results.failure(OWNER, "target-required", 400, "The operation needs an env:///NAME target.", {}, { retryable: false });
|
|
29
|
+
}
|
|
30
|
+
const name = (target.hostname ?? "") === "" ? nameOf(target.pathname) : null;
|
|
31
|
+
if (name === null)
|
|
32
|
+
return EnvScheme.#invalid(target.raw);
|
|
33
|
+
return { name, pathname: `/${name}` };
|
|
34
|
+
}
|
|
35
|
+
static #invalid(target) {
|
|
36
|
+
return Results.failure(OWNER, "name-invalid", 400, `'${target}' is not a name a shell can export; the form is env:///NAME.`, {}, { target, retryable: false });
|
|
37
|
+
}
|
|
38
|
+
static #missing(name) {
|
|
39
|
+
return Results.failure(OWNER, "entry-not-found", 404, `No name ${name} is in effect for this Worker's commands.`, {}, { target: `env:///${name}` });
|
|
40
|
+
}
|
|
41
|
+
static #whole(name, op) {
|
|
42
|
+
return Results.failure(OWNER, "value-whole", 400, `env:///${name} is one value: a scope or a pattern selects nothing in it.`, {}, {
|
|
43
|
+
target: `env:///${name}`, retryable: false,
|
|
44
|
+
recovery: op === "EDIT" ? `EDIT (env:///${name}) with the whole value as the body.` : `KILL (env:///${name}) retires the name.`,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// The family's refusal is the operation's result.
|
|
48
|
+
async #write(verb, params, ctx) {
|
|
49
|
+
try {
|
|
50
|
+
await this.#invoke(verb, params, { workspaceId: ctx.workspaceId, workerId: ctx.workerId, scope: "worker" });
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
catch (cause) {
|
|
54
|
+
if (cause instanceof OperationFailureError)
|
|
55
|
+
return cause.result;
|
|
56
|
+
throw cause;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
#project(ctx, pathname, value) {
|
|
60
|
+
return ctx.entries.write(pathname, { channels: { body: { content: value, mimetype: "text/plain" } } });
|
|
61
|
+
}
|
|
62
|
+
// READ projects the value the Worker's commands receive now; a name no longer in effect
|
|
63
|
+
// withdraws its projection.
|
|
64
|
+
async prepareRepresentation(request, ctx) {
|
|
65
|
+
const name = request.authority === "" ? nameOf(request.pathname) : null;
|
|
66
|
+
if (name === null)
|
|
67
|
+
return EnvScheme.#invalid(`env://${request.authority}${request.pathname}`);
|
|
68
|
+
const value = (await this.#resolve(ctx.workspaceId, ctx.workerId)).env[name];
|
|
69
|
+
if (value === undefined) {
|
|
70
|
+
await ctx.entries.delete(request.pathname);
|
|
71
|
+
return EnvScheme.#missing(name);
|
|
72
|
+
}
|
|
73
|
+
const written = await this.#project(ctx, request.pathname, value);
|
|
74
|
+
return written.status >= 400 ? { status: written.status, problem: written.problem } : { status: 200 };
|
|
75
|
+
}
|
|
76
|
+
// FIND lists exactly what is in effect: stored projections of names no longer in effect are
|
|
77
|
+
// withdrawn and every current name is projected before the host selects among them.
|
|
78
|
+
async prepareFind(statement, ctx) {
|
|
79
|
+
const { env } = await this.#resolve(ctx.workspaceId, ctx.workerId);
|
|
80
|
+
const stored = await ctx.entries.operations.find({ ...statement, matcher: null, lineMarker: { marks: [1, -1] } });
|
|
81
|
+
if (stored.status === 200) {
|
|
82
|
+
for (const item of stored.results) {
|
|
83
|
+
const path = Array.isArray(item) ? item[0].path : undefined;
|
|
84
|
+
const pathname = path === undefined ? undefined : ADDRESS.exec(path)?.[1];
|
|
85
|
+
const name = pathname === undefined ? null : nameOf(pathname);
|
|
86
|
+
if (name !== null && env[name] === undefined)
|
|
87
|
+
await ctx.entries.delete(`/${name}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
for (const [name, value] of Object.entries(env)) {
|
|
91
|
+
if (value !== undefined && nameOf(`/${name}`) !== null)
|
|
92
|
+
await this.#project(ctx, `/${name}`, value);
|
|
93
|
+
}
|
|
94
|
+
return { status: 200 };
|
|
95
|
+
}
|
|
96
|
+
// EDIT sets the Worker's own value, whole, through the family's `add`.
|
|
97
|
+
async editBatch(statements, ctx) {
|
|
98
|
+
const statement = statements[0];
|
|
99
|
+
if (statement === undefined || statements.length > 1) {
|
|
100
|
+
return Results.failure(OWNER, "value-whole", 400, "One EDIT sets one value, whole.", {}, {
|
|
101
|
+
recovery: "EDIT (env:///NAME) with the value as the body, one statement per name.", retryable: false,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
const named = EnvScheme.#named(statement.target);
|
|
105
|
+
if ("status" in named)
|
|
106
|
+
return named;
|
|
107
|
+
if (statement.lineMarker !== null || statement.matcher !== null)
|
|
108
|
+
return EnvScheme.#whole(named.name, "EDIT");
|
|
109
|
+
const refused = await this.#write("add", { alias: named.name, definition: { value: statement.body ?? "" } }, ctx);
|
|
110
|
+
if (refused !== null)
|
|
111
|
+
return refused;
|
|
112
|
+
await ctx.entries.delete(named.pathname);
|
|
113
|
+
return { status: 200 };
|
|
114
|
+
}
|
|
115
|
+
// KILL retires the name from the Worker's commands: the family's `remove` for an entry the
|
|
116
|
+
// Worker owns, its `disable` for an inherited one, whose definition is kept.
|
|
117
|
+
async kill(statement, ctx) {
|
|
118
|
+
const named = EnvScheme.#named(statement.target);
|
|
119
|
+
if ("status" in named)
|
|
120
|
+
return named;
|
|
121
|
+
if (statement.lineMarker !== null || statement.matcher !== null)
|
|
122
|
+
return EnvScheme.#whole(named.name, "KILL");
|
|
123
|
+
const entry = (await this.#resolve(ctx.workspaceId, ctx.workerId)).record[named.name];
|
|
124
|
+
if (entry === undefined || entry.source === "masked" || entry.value === undefined)
|
|
125
|
+
return EnvScheme.#missing(named.name);
|
|
126
|
+
const refused = await this.#write(entry.source === "worker" ? "remove" : "disable", { alias: named.name }, ctx);
|
|
127
|
+
if (refused !== null)
|
|
128
|
+
return refused;
|
|
129
|
+
await ctx.entries.delete(named.pathname);
|
|
130
|
+
return { status: 200 };
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=Env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AA6CvE,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,
|
|
1
|
+
{"version":3,"file":"Exec.d.ts","sourceRoot":"","sources":["../../src/schemes/Exec.ts"],"names":[],"mappings":"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"}
|