@plurnk/plurnk-service 3.3.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 +1 -1
- package/INSTALL.md +6 -0
- package/README.md +2 -2
- package/SPEC.md +380 -159
- 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/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 +5 -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 +46 -68
- 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 +8 -0
- 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.js +6 -6
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +7 -8
- 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.map +1 -1
- package/dist/core/ProposalLifecycle.js +13 -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.js +3 -2
- 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 +48 -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 +2 -0
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +12 -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 +5 -4
- 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 +19 -14
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/scheme-types.d.ts +4 -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 +24 -3
- 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 +33 -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.js +1 -1
- package/dist/schemes/ExecutionInput.js.map +1 -1
- package/dist/schemes/File.js +15 -18
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +19 -4
- package/dist/schemes/Log.js.map +1 -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 +40 -41
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +272 -206
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +5 -2
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +27 -31
- 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 +110 -51
- package/dist/server/Functionality.js.map +1 -1
- package/dist/server/FunctionalityManager.js +1 -1
- 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.map +1 -1
- package/dist/server/MembersFunctionality.js +4 -2
- package/dist/server/MembersFunctionality.js.map +1 -1
- 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.js +1 -1
- package/dist/server/Rollback.js.map +1 -1
- 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 +37 -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 +6 -4
- package/migrations/002_workers.sql +2 -2
- package/migrations/006_log.sql +1 -1
- package/migrations/018_worker_owners.sql +1 -1
- 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 +23 -22
- package/plurnk.nginx.conf +71 -0
- package/plurnk.service +2 -0
|
@@ -3,12 +3,15 @@
|
|
|
3
3
|
-- them with its live resolution owners before projecting a stopped world; neither
|
|
4
4
|
-- Daemon nor an interface module reconstructs authority from this persistence shape.
|
|
5
5
|
SELECT le.id AS logEntryId, r.workspace_id AS workspaceId,
|
|
6
|
-
le.worker_id AS workerId, le.loop_id AS loopId, le.turn_id AS turnId,
|
|
6
|
+
le.worker_id AS workerId, r.name AS worker, le.loop_id AS loopId, le.turn_id AS turnId,
|
|
7
|
+
l.sequence AS loopSeq, t.sequence AS turnSeq, le.sequence,
|
|
7
8
|
le.op, le.signal, le.scheme, le.hostname, le.port, le.pathname, le.query,
|
|
8
|
-
le.rx, le.attrs, r.owner, o.tools AS owner_tools, o.interactive AS owner_interactive, t.kind AS turn_kind
|
|
9
|
+
le.rx, le.attrs, r.owner, o.tools AS owner_tools, o.interactive AS owner_interactive, t.kind AS turn_kind,
|
|
10
|
+
t.producer AS turn_producer
|
|
9
11
|
FROM log_entries le
|
|
10
12
|
JOIN workers r ON r.id = le.worker_id
|
|
11
13
|
JOIN worker_owners o ON o.workspace_id = r.workspace_id AND o.address = r.owner
|
|
14
|
+
JOIN loops l ON l.id = le.loop_id
|
|
12
15
|
JOIN turns t ON t.id = le.turn_id
|
|
13
16
|
WHERE r.workspace_id = $workspace_id AND le.state = 'proposed'
|
|
14
17
|
ORDER BY le.id;
|
|
@@ -17,11 +20,14 @@ ORDER BY le.id;
|
|
|
17
20
|
-- Same durable input as proposal_list_pending, selected by proposal identity for
|
|
18
21
|
-- the live path. Both paths enter ProposalLifecycle's one projection function.
|
|
19
22
|
SELECT le.id AS logEntryId, r.workspace_id AS workspaceId,
|
|
20
|
-
le.worker_id AS workerId, le.loop_id AS loopId, le.turn_id AS turnId,
|
|
23
|
+
le.worker_id AS workerId, r.name AS worker, le.loop_id AS loopId, le.turn_id AS turnId,
|
|
24
|
+
l.sequence AS loopSeq, t.sequence AS turnSeq, le.sequence,
|
|
21
25
|
le.op, le.signal, le.scheme, le.hostname, le.port, le.pathname, le.query,
|
|
22
|
-
le.rx, le.attrs, r.owner, o.tools AS owner_tools, o.interactive AS owner_interactive, t.kind AS turn_kind
|
|
26
|
+
le.rx, le.attrs, r.owner, o.tools AS owner_tools, o.interactive AS owner_interactive, t.kind AS turn_kind,
|
|
27
|
+
t.producer AS turn_producer
|
|
23
28
|
FROM log_entries le
|
|
24
29
|
JOIN workers r ON r.id = le.worker_id
|
|
25
30
|
JOIN worker_owners o ON o.workspace_id = r.workspace_id AND o.address = r.owner
|
|
31
|
+
JOIN loops l ON l.id = le.loop_id
|
|
26
32
|
JOIN turns t ON t.id = le.turn_id
|
|
27
33
|
WHERE le.id = $log_entry_id AND le.state = 'proposed';
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAuCA,MAAM,CAAC,OAAO,OAAO,OAAO;;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":";AAuCA,MAAM,CAAC,OAAO,OAAO,OAAO;;IA4UxB,OAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAqHjC;CACJ"}
|
package/dist/service.js
CHANGED
|
@@ -246,6 +246,12 @@ export default class Service {
|
|
|
246
246
|
const aguiAddr = listener.httpAddress();
|
|
247
247
|
for (const notice of configuration.notices())
|
|
248
248
|
process.stderr.write(`plurnk-service: ${notice.message}\n`);
|
|
249
|
+
// {§credential-authority} — the posture, and where a tool running as the operator finds the secret.
|
|
250
|
+
process.stderr.write(daemon.credentials.operatorSecret === null
|
|
251
|
+
? "plurnk-service: authentication off (PLURNK_AUTH=0): every request is anonymous\n"
|
|
252
|
+
: daemon.secretFile === null
|
|
253
|
+
? "plurnk-service: authentication on; PLURNK_SECRET is the configured operator secret\n"
|
|
254
|
+
: `plurnk-service: authentication on; the operator secret minted for this boot is in ${daemon.secretFile}\n`);
|
|
249
255
|
const invalidModel = route === null && Boolean(process.env.PLURNK_MODEL);
|
|
250
256
|
if (route === null && !invalidModel) {
|
|
251
257
|
process.stderr.write(`plurnk-service: no model configured — choose a profile in ${Service.#hostPaths.configFile}; `
|
|
@@ -441,7 +447,7 @@ export default class Service {
|
|
|
441
447
|
const folder = typeof positionals[2] === "string" ? positionals[2] : Service.#hostPaths.shareFolder();
|
|
442
448
|
const provider = values.requiem === true ? await ProviderInstantiate.loadActiveProvider() : undefined;
|
|
443
449
|
if (provider === null)
|
|
444
|
-
throw new Error("
|
|
450
|
+
throw new Error("no active provider - set PLURNK_MODEL; a requiem needs a witness to testify");
|
|
445
451
|
const shared = await Share.write({ openEvidence: EvidenceReader.open,
|
|
446
452
|
dbPath, folder, requiem: provider,
|
|
447
453
|
...(typeof workspace === "string" ? { workspaceId: Number(workspace) } : {}),
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/docs/members.md
CHANGED
|
@@ -47,8 +47,8 @@ candidate: its `provenance.kind` is the verdict and its `summary` the reason.
|
|
|
47
47
|
| `ignored` | `` not a member — the repository ignores it; a client or operator definition can include it, a model definition cannot `` |
|
|
48
48
|
| `absent` | `` absent — no such file under the project root `` |
|
|
49
49
|
|
|
50
|
-
- **Untracked, scope `root` or `namespace`**:
|
|
51
|
-
|
|
50
|
+
- **Untracked, scope `root` or `namespace`**: an accepted `add` makes it a member
|
|
51
|
+
before the next operation.
|
|
52
52
|
|
|
53
53
|
```members (add) <!-- include the generated reports; each glob is one definition -->
|
|
54
54
|
{"files": ["build/*.json"]}
|
|
@@ -72,8 +72,10 @@ candidate: its `provenance.kind` is the verdict and its `summary` the reason.
|
|
|
72
72
|
definition cannot lift it; only the user can.
|
|
73
73
|
|
|
74
74
|
- **Outside the project root** (`../notes.md`, or an absolute path beyond the
|
|
75
|
-
root):
|
|
76
|
-
|
|
75
|
+
root): a model definition can admit it under `namespace` scope, but not
|
|
76
|
+
`root` or `none`; client and operator definitions are not bound by the model's
|
|
77
|
+
scope. Ignore rules and exclusions still apply as described above.
|
|
78
|
+
File operands beginning with `~/`
|
|
77
79
|
resolve from the daemon user's home; `./~/` names a literal project
|
|
78
80
|
directory. Members globs remain project-relative, not home shorthand.
|
|
79
81
|
A command runs on the host from the project root, and its output is a stream
|
|
@@ -43,8 +43,8 @@ CREATE TABLE IF NOT EXISTS workers (
|
|
|
43
43
|
-- workers fork via parent_worker_id; workspaces carry no parent — {§machine-processes-no-fork-workspace}
|
|
44
44
|
parent_worker_id INTEGER CHECK (parent_worker_id IS NULL OR parent_worker_id != id),
|
|
45
45
|
origin TEXT NOT NULL DEFAULT 'client' CHECK (origin IN ('model', 'client', '_plurnk')),
|
|
46
|
-
--
|
|
47
|
-
--
|
|
46
|
+
-- At most one root model worker per workspace carries this flag; it is
|
|
47
|
+
-- separate from the worker's literal name.
|
|
48
48
|
default_conversation INTEGER NOT NULL DEFAULT 0 CHECK (default_conversation IN (0, 1)),
|
|
49
49
|
-- {§worker-causal-admission}: cancellation retires unread arrivals without rewriting history.
|
|
50
50
|
cancelled_through_sequence INTEGER NOT NULL DEFAULT 0 CHECK (cancelled_through_sequence >= 0),
|
package/migrations/006_log.sql
CHANGED
|
@@ -144,7 +144,7 @@ WHERE NOT EXISTS (
|
|
|
144
144
|
WHERE w.workspace_id = m.workspace_id AND answer.value = m.path
|
|
145
145
|
);
|
|
146
146
|
|
|
147
|
-
-- {§message-reply-delivery}: notify the sender and the assigned
|
|
147
|
+
-- {§message-reply-delivery}: notify the sender and the assigned worker.
|
|
148
148
|
-- UNION prevents duplicate delivery when both roles belong to the same worker.
|
|
149
149
|
-- {§loop-answer}: a child's answer to the very task its parent delegated is NOT delivered here;
|
|
150
150
|
-- the parent receives it once, as the child's termination row, which carries that answer at
|
|
@@ -57,7 +57,7 @@ END;
|
|
|
57
57
|
CREATE INDEX workers_owner ON workers (workspace_id, owner);
|
|
58
58
|
|
|
59
59
|
-- {§a2a-worker-ownership} Released A2A contexts were roots. Retained causal
|
|
60
|
-
-- message identities distinguish them from ordinary model
|
|
60
|
+
-- message identities distinguish them from ordinary root model workers.
|
|
61
61
|
CREATE TEMP TABLE a2a_context_parents AS
|
|
62
62
|
SELECT DISTINCT context.id, context.workspace_id
|
|
63
63
|
FROM workers context
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
-- MIGRATE: 29 default worker
|
|
2
|
+
-- Released in 4.0.0 and frozen ({§db-migrations}).
|
|
3
|
+
-- The column that marks a workspace's one flagged root model worker takes the worker vocabulary.
|
|
4
|
+
-- Renaming it rewrites its CHECK and the partial index in place; the index then takes its name.
|
|
5
|
+
ALTER TABLE workers RENAME COLUMN default_conversation TO default_worker;
|
|
6
|
+
|
|
7
|
+
DROP INDEX workers_workspace_default_conversation;
|
|
8
|
+
CREATE UNIQUE INDEX workers_workspace_default_worker
|
|
9
|
+
ON workers (workspace_id) WHERE default_worker = 1;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
-- MIGRATE: 30 client workers
|
|
2
|
+
-- Released in 4.0.0 and frozen ({§db-migrations}).
|
|
3
|
+
-- {§connection-lifecycle} A worker is a model's identity: a person's client operations are the workspace's and
|
|
4
|
+
-- journal in its runtime worker. Each client worker's history moves there, and the emptied worker goes.
|
|
5
|
+
-- Rows keep their identity; only their worker, and their loop's place in that worker's numbering, change.
|
|
6
|
+
|
|
7
|
+
-- The runtime worker of every workspace that holds a client worker.
|
|
8
|
+
INSERT INTO workers (workspace_id, name, origin)
|
|
9
|
+
SELECT DISTINCT client.workspace_id, '_plurnk', '_plurnk'
|
|
10
|
+
FROM workers client
|
|
11
|
+
WHERE client.origin = 'client'
|
|
12
|
+
AND NOT EXISTS (SELECT 1 FROM workers runtime WHERE runtime.workspace_id = client.workspace_id AND runtime.origin = '_plurnk');
|
|
13
|
+
|
|
14
|
+
-- {§actor-boundary-client-operations} The person who owned a client worker acted in each of its loops.
|
|
15
|
+
CREATE TEMP TABLE rehomed_workers AS
|
|
16
|
+
SELECT client.id AS client_id, runtime.id AS runtime_id,
|
|
17
|
+
CASE WHEN client.owner = '_plurnk' THEN NULL ELSE client.owner END AS person
|
|
18
|
+
FROM workers client
|
|
19
|
+
JOIN workers runtime ON runtime.workspace_id = client.workspace_id AND runtime.origin = '_plurnk'
|
|
20
|
+
WHERE client.origin = 'client';
|
|
21
|
+
|
|
22
|
+
-- Each client loop follows the runtime worker's own loops, in the order the loops ran.
|
|
23
|
+
CREATE TEMP TABLE rehomed_loops AS
|
|
24
|
+
SELECT l.id AS loop_id, l.worker_id AS client_id, l.sequence AS client_sequence, moved.runtime_id,
|
|
25
|
+
(SELECT coalesce(max(own.sequence), 0) FROM loops own WHERE own.worker_id = moved.runtime_id)
|
|
26
|
+
+ row_number() OVER (PARTITION BY moved.runtime_id ORDER BY l.id) AS sequence,
|
|
27
|
+
moved.person
|
|
28
|
+
FROM loops l
|
|
29
|
+
JOIN rehomed_workers moved ON moved.client_id = l.worker_id;
|
|
30
|
+
|
|
31
|
+
UPDATE loops
|
|
32
|
+
SET worker_id = moved.runtime_id,
|
|
33
|
+
sequence = moved.sequence,
|
|
34
|
+
prompt_source = coalesce(loops.prompt_source, moved.person)
|
|
35
|
+
FROM rehomed_loops moved
|
|
36
|
+
WHERE moved.loop_id = loops.id;
|
|
37
|
+
|
|
38
|
+
-- The two identity guards are redeclared verbatim once their rows have moved.
|
|
39
|
+
DROP TRIGGER log_entries_immutable_core;
|
|
40
|
+
|
|
41
|
+
UPDATE log_entries SET worker_id = moved.runtime_id
|
|
42
|
+
FROM rehomed_workers moved
|
|
43
|
+
WHERE moved.client_id = log_entries.worker_id;
|
|
44
|
+
|
|
45
|
+
CREATE TRIGGER log_entries_immutable_core
|
|
46
|
+
BEFORE UPDATE OF
|
|
47
|
+
worker_id, loop_id, turn_id, sequence, at, origin, source, inherited_history, model_call_id,
|
|
48
|
+
op, signal,
|
|
49
|
+
scheme, username, password, hostname,
|
|
50
|
+
port, pathname, query, fragment,
|
|
51
|
+
lineMarker, tx, mimetype_tx, mimetype_rx, initial_folded
|
|
52
|
+
ON log_entries
|
|
53
|
+
BEGIN
|
|
54
|
+
SELECT RAISE(ABORT, 'log_entries core fields are immutable; only lifecycle outcome and derived attachments may change');
|
|
55
|
+
END;
|
|
56
|
+
|
|
57
|
+
-- An execution's source names its row by log coordinate, so it takes its loop's new number.
|
|
58
|
+
DROP TRIGGER subscriptions_identity_update;
|
|
59
|
+
|
|
60
|
+
UPDATE subscriptions
|
|
61
|
+
SET worker_id = moved.runtime_id,
|
|
62
|
+
source = coalesce(
|
|
63
|
+
'log:///' || (
|
|
64
|
+
SELECT l.sequence FROM rehomed_loops l
|
|
65
|
+
WHERE l.client_id = moved.client_id
|
|
66
|
+
AND l.client_sequence = CAST(substr(subscriptions.source, 8, instr(substr(subscriptions.source, 8), '/') - 1) AS INTEGER)
|
|
67
|
+
) || substr(subscriptions.source, 7 + instr(substr(subscriptions.source, 8), '/')),
|
|
68
|
+
subscriptions.source)
|
|
69
|
+
FROM rehomed_workers moved
|
|
70
|
+
WHERE moved.client_id = subscriptions.worker_id;
|
|
71
|
+
|
|
72
|
+
CREATE TRIGGER subscriptions_identity_update
|
|
73
|
+
BEFORE UPDATE OF worker_id, entry_id, scheme, source ON subscriptions
|
|
74
|
+
WHEN NEW.entry_id != OLD.entry_id OR NEW.scheme != OLD.scheme OR NEW.source IS NOT OLD.source
|
|
75
|
+
OR (NEW.worker_id IS NOT OLD.worker_id AND NOT (NEW.worker_id IS NULL AND NEW.closed_at IS NOT NULL))
|
|
76
|
+
BEGIN
|
|
77
|
+
SELECT RAISE(ABORT, 'subscription identity is immutable');
|
|
78
|
+
END;
|
|
79
|
+
|
|
80
|
+
UPDATE ambient_events SET producer_worker_id = moved.runtime_id
|
|
81
|
+
FROM rehomed_workers moved
|
|
82
|
+
WHERE moved.client_id = ambient_events.producer_worker_id;
|
|
83
|
+
|
|
84
|
+
UPDATE ambient_events SET recipient_worker_id = moved.runtime_id
|
|
85
|
+
FROM rehomed_workers moved
|
|
86
|
+
WHERE moved.client_id = ambient_events.recipient_worker_id;
|
|
87
|
+
|
|
88
|
+
UPDATE client_interactions SET worker_id = moved.runtime_id
|
|
89
|
+
FROM rehomed_workers moved
|
|
90
|
+
WHERE moved.client_id = client_interactions.worker_id;
|
|
91
|
+
|
|
92
|
+
-- A worker a client worker parented is a root worker, owned as before, as a person's WORK starts one now.
|
|
93
|
+
UPDATE workers SET parent_worker_id = NULL
|
|
94
|
+
WHERE parent_worker_id IN (SELECT client_id FROM rehomed_workers);
|
|
95
|
+
|
|
96
|
+
-- {§env-scheme} A person's environment is the runtime worker's; overrides several persons kept have no one owner.
|
|
97
|
+
DELETE FROM worker_module_state WHERE worker_id IN (SELECT client_id FROM rehomed_workers);
|
|
98
|
+
|
|
99
|
+
DELETE FROM workers WHERE id IN (SELECT client_id FROM rehomed_workers);
|
|
100
|
+
|
|
101
|
+
DROP TABLE rehomed_loops;
|
|
102
|
+
DROP TABLE rehomed_workers;
|
|
103
|
+
|
|
104
|
+
-- No worker carries the default flag any longer.
|
|
105
|
+
DROP INDEX workers_workspace_default_worker;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
-- MIGRATE: 31 message openers
|
|
2
|
+
-- Released in 4.0.0 and frozen ({§db-migrations}).
|
|
3
|
+
-- {§worker-obligations} A message a worker's own operation sends records that operation, by the row it writes:
|
|
4
|
+
-- its turn and its sequence there. The message's obligation then holds that worker by identity, its reply
|
|
5
|
+
-- reaches that worker, and a child's answer to its first message is its conclusion. A message a person, a
|
|
6
|
+
-- client or the daemon sends names no opener. Messages that predate the record name none either, so they hold
|
|
7
|
+
-- no worker and route no reply.
|
|
8
|
+
ALTER TABLE loop_messages ADD COLUMN opened_turn_id INTEGER REFERENCES turns(id) ON DELETE SET NULL;
|
|
9
|
+
ALTER TABLE loop_messages ADD COLUMN opened_sequence INTEGER CHECK (opened_sequence IS NULL OR opened_sequence >= 1);
|
|
10
|
+
|
|
11
|
+
-- {§methods-invocation}: the delivery that discharges a message finds it from either side.
|
|
12
|
+
CREATE INDEX loop_messages_opener ON loop_messages (opened_turn_id, opened_sequence) WHERE opened_turn_id IS NOT NULL;
|
|
13
|
+
CREATE INDEX message_completions_response ON message_completions (response_id);
|
|
14
|
+
|
|
15
|
+
DROP VIEW IF EXISTS delivered_message_replies;
|
|
16
|
+
DROP VIEW IF EXISTS message_reply_deliveries;
|
|
17
|
+
DROP VIEW IF EXISTS delegated_task_answers;
|
|
18
|
+
DROP VIEW IF EXISTS loop_obligations;
|
|
19
|
+
DROP VIEW IF EXISTS worker_obligations;
|
|
20
|
+
|
|
21
|
+
-- The worker whose own operation sent each message.
|
|
22
|
+
CREATE VIEW message_senders AS
|
|
23
|
+
SELECT m.id AS message_id, sender.worker_id AS sender_worker_id
|
|
24
|
+
FROM loop_messages m
|
|
25
|
+
JOIN turns opened ON opened.id = m.opened_turn_id
|
|
26
|
+
JOIN loops sender ON sender.id = opened.loop_id;
|
|
27
|
+
|
|
28
|
+
CREATE VIEW worker_obligations AS
|
|
29
|
+
SELECT w.id AS worker_id,
|
|
30
|
+
EXISTS (
|
|
31
|
+
SELECT 1 FROM subscriptions s
|
|
32
|
+
WHERE s.worker_id = w.id AND s.closed_at IS NULL AND s.detached = 0
|
|
33
|
+
) AS streams,
|
|
34
|
+
EXISTS (
|
|
35
|
+
SELECT 1 FROM workers c JOIN loops l ON l.worker_id = c.id
|
|
36
|
+
WHERE c.parent_worker_id = w.id AND l.status IN (100, 102, 202)
|
|
37
|
+
) AS workers,
|
|
38
|
+
EXISTS (
|
|
39
|
+
SELECT 1 FROM message_senders s
|
|
40
|
+
JOIN loop_messages m ON m.id = s.message_id
|
|
41
|
+
JOIN loops l ON l.id = m.loop_id
|
|
42
|
+
WHERE s.sender_worker_id = w.id
|
|
43
|
+
AND l.status IN (100, 102, 202)
|
|
44
|
+
AND NOT EXISTS (SELECT 1 FROM message_completions c WHERE c.message_id = m.id)
|
|
45
|
+
) AS messages
|
|
46
|
+
FROM workers w;
|
|
47
|
+
|
|
48
|
+
CREATE VIEW loop_obligations AS
|
|
49
|
+
SELECT l.id AS loop_id, held.streams, held.workers, held.messages
|
|
50
|
+
FROM loops l JOIN worker_obligations held ON held.worker_id = l.worker_id;
|
|
51
|
+
|
|
52
|
+
-- {§message-reply-delivery}: a reply reaches the message's own worker and the worker that sent it.
|
|
53
|
+
CREATE VIEW message_reply_deliveries AS
|
|
54
|
+
SELECT DISTINCT r.id AS source_record_id, r.loop_id, m.workspace_id,
|
|
55
|
+
r.worker_id AS producer_worker_id, m.worker_id AS recipient_worker_id
|
|
56
|
+
FROM log_responses r
|
|
57
|
+
JOIN workers producer ON producer.id = r.worker_id
|
|
58
|
+
JOIN json_each(r.rx, '$.answers') answer
|
|
59
|
+
JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
|
|
60
|
+
UNION
|
|
61
|
+
SELECT r.id, r.loop_id, m.workspace_id, r.worker_id, s.sender_worker_id
|
|
62
|
+
FROM log_responses r
|
|
63
|
+
JOIN workers producer ON producer.id = r.worker_id
|
|
64
|
+
JOIN json_each(r.rx, '$.answers') answer
|
|
65
|
+
JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
|
|
66
|
+
JOIN message_senders s ON s.message_id = m.id;
|
|
67
|
+
|
|
68
|
+
-- {§worker-scheme-collect}: a child's answer to the first message its parent sent is its conclusion, not a reply.
|
|
69
|
+
CREATE VIEW delegated_task_answers AS
|
|
70
|
+
SELECT r.id AS source_record_id, producer.parent_worker_id AS recipient_worker_id
|
|
71
|
+
FROM log_responses r
|
|
72
|
+
JOIN workers producer ON producer.id = r.worker_id
|
|
73
|
+
JOIN json_each(r.rx, '$.answers') answer
|
|
74
|
+
JOIN message_sources m ON m.path = answer.value AND m.workspace_id = producer.workspace_id
|
|
75
|
+
JOIN message_senders s ON s.message_id = m.id
|
|
76
|
+
WHERE m.loop_id = r.loop_id AND m.ordinal = 1 AND s.sender_worker_id = producer.parent_worker_id;
|
|
77
|
+
|
|
78
|
+
CREATE VIEW delivered_message_replies AS
|
|
79
|
+
SELECT d.* FROM message_reply_deliveries d
|
|
80
|
+
WHERE NOT EXISTS (
|
|
81
|
+
SELECT 1 FROM delegated_task_answers t
|
|
82
|
+
WHERE t.source_record_id = d.source_record_id AND t.recipient_worker_id = d.recipient_worker_id
|
|
83
|
+
);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- MIGRATE: 32 worker references
|
|
2
|
+
-- Released in 4.0.0 and frozen ({§db-migrations}).
|
|
3
|
+
-- {§worker-external-reference} Protocol adapters own the opaque key; core owns its durable target.
|
|
4
|
+
CREATE TABLE worker_references (
|
|
5
|
+
namespace TEXT NOT NULL CHECK (length(namespace) > 0),
|
|
6
|
+
reference TEXT NOT NULL,
|
|
7
|
+
worker_id INTEGER NOT NULL REFERENCES workers(id) ON DELETE CASCADE,
|
|
8
|
+
PRIMARY KEY (namespace, reference)
|
|
9
|
+
) STRICT, WITHOUT ROWID;
|
|
10
|
+
|
|
11
|
+
CREATE INDEX worker_references_worker ON worker_references (worker_id);
|
|
12
|
+
|
|
13
|
+
CREATE TRIGGER worker_reference_identity
|
|
14
|
+
BEFORE UPDATE ON worker_references
|
|
15
|
+
BEGIN
|
|
16
|
+
SELECT RAISE(ABORT, 'worker reference is immutable');
|
|
17
|
+
END;
|
|
18
|
+
|
|
19
|
+
CREATE TRIGGER worker_reference_model
|
|
20
|
+
BEFORE INSERT ON worker_references
|
|
21
|
+
WHEN EXISTS (SELECT 1 FROM workers WHERE id = NEW.worker_id AND origin != 'model')
|
|
22
|
+
BEGIN
|
|
23
|
+
SELECT RAISE(ABORT, 'worker reference requires a model worker');
|
|
24
|
+
END;
|
|
25
|
+
|
|
26
|
+
CREATE VIEW worker_reference_allocations AS
|
|
27
|
+
SELECT r.namespace, r.reference, s.name AS workspace_name, w.name AS worker_name
|
|
28
|
+
FROM worker_references r JOIN workers w ON w.id = r.worker_id
|
|
29
|
+
JOIN workspaces s ON s.id = w.workspace_id;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plurnk/plurnk-service",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Plurnk agent runtime — the server / engine / core. Implements the @plurnk/plurnk-contracts contract.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plurnk",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"README.md",
|
|
39
39
|
"INSTALL.md",
|
|
40
40
|
"plurnk.service",
|
|
41
|
+
"plurnk.nginx.conf",
|
|
41
42
|
"SPEC.md"
|
|
42
43
|
],
|
|
43
44
|
"publishConfig": {
|
|
@@ -72,7 +73,7 @@
|
|
|
72
73
|
"build:global:uninstall": "npm uninstall -g @plurnk/plurnk-service",
|
|
73
74
|
"build:local:install": "node --conditions=plurnk-dev scripts/install-sandbox.mjs install",
|
|
74
75
|
"build:local:uninstall": "node --conditions=plurnk-dev scripts/install-sandbox.mjs uninstall",
|
|
75
|
-
"test:installation": "node
|
|
76
|
+
"test:installation": "node scripts/test-installation.mjs",
|
|
76
77
|
"deps:audit": "node --conditions=plurnk-dev scripts/deps-audit.ts",
|
|
77
78
|
"release:check": "npm run deps:audit && npm run test:installation",
|
|
78
79
|
"prepublishOnly": "npm run deps:audit && npm run test:installation",
|
|
@@ -88,22 +89,22 @@
|
|
|
88
89
|
"@opentelemetry/resources": "^2.12.0",
|
|
89
90
|
"@opentelemetry/sdk-metrics": "^2.12.0",
|
|
90
91
|
"@opentelemetry/sdk-trace-base": "^2.12.0",
|
|
91
|
-
"@plurnk/plurnk-a2a": "
|
|
92
|
-
"@plurnk/plurnk-agui": "
|
|
93
|
-
"@plurnk/plurnk-contracts": "
|
|
94
|
-
"@plurnk/plurnk-parser": "
|
|
95
|
-
"@plurnk/plurnk-schedule": "3.0.
|
|
96
|
-
"@plurnk/plurnk-skills": "3.0.
|
|
97
|
-
"@plurnk/plurnk-execs": "
|
|
98
|
-
"@plurnk/plurnk-execs-common": "
|
|
99
|
-
"@plurnk/plurnk-execs-jq": "2.0.
|
|
100
|
-
"@plurnk/plurnk-execs-sqlite": "2.0.
|
|
101
|
-
"@plurnk/plurnk-hooks": "2.0.
|
|
102
|
-
"@plurnk/plurnk-mcp": "3.
|
|
92
|
+
"@plurnk/plurnk-a2a": "4.0.0",
|
|
93
|
+
"@plurnk/plurnk-agui": "4.0.0",
|
|
94
|
+
"@plurnk/plurnk-contracts": "4.0.0",
|
|
95
|
+
"@plurnk/plurnk-parser": "4.0.0",
|
|
96
|
+
"@plurnk/plurnk-schedule": "3.0.3",
|
|
97
|
+
"@plurnk/plurnk-skills": "3.0.2",
|
|
98
|
+
"@plurnk/plurnk-execs": "4.0.0",
|
|
99
|
+
"@plurnk/plurnk-execs-common": "3.0.0",
|
|
100
|
+
"@plurnk/plurnk-execs-jq": "2.0.3",
|
|
101
|
+
"@plurnk/plurnk-execs-sqlite": "2.0.3",
|
|
102
|
+
"@plurnk/plurnk-hooks": "2.0.2",
|
|
103
|
+
"@plurnk/plurnk-mcp": "3.2.0",
|
|
103
104
|
"@plurnk/plurnk-meta": "2.1.1",
|
|
104
105
|
"@plurnk/plurnk-agent-plugins": "2.0.0",
|
|
105
|
-
"@plurnk/plurnk-agent-skills": "2.0.
|
|
106
|
-
"@plurnk/plurnk-mimetypes": "3.0.
|
|
106
|
+
"@plurnk/plurnk-agent-skills": "2.0.2",
|
|
107
|
+
"@plurnk/plurnk-mimetypes": "3.0.3",
|
|
107
108
|
"@plurnk/plurnk-mimetypes-application-ipynb": "2.0.1",
|
|
108
109
|
"@plurnk/plurnk-mimetypes-application-json": "2.0.1",
|
|
109
110
|
"@plurnk/plurnk-mimetypes-application-jsonl": "2.0.1",
|
|
@@ -145,15 +146,15 @@
|
|
|
145
146
|
"@plurnk/plurnk-mimetypes-text-markdown": "2.0.1",
|
|
146
147
|
"@plurnk/plurnk-mimetypes-text-plain": "2.0.1",
|
|
147
148
|
"@plurnk/plurnk-models": "3.0.1",
|
|
148
|
-
"@plurnk/plurnk-modules": "
|
|
149
|
-
"@plurnk/plurnk-providers": "3.0.
|
|
150
|
-
"@plurnk/plurnk-schemes": "3.2.
|
|
151
|
-
"@plurnk/plurnk-schemes-http": "2.0.
|
|
149
|
+
"@plurnk/plurnk-modules": "4.0.0",
|
|
150
|
+
"@plurnk/plurnk-providers": "3.0.3",
|
|
151
|
+
"@plurnk/plurnk-schemes": "3.2.1",
|
|
152
|
+
"@plurnk/plurnk-schemes-http": "2.0.2",
|
|
152
153
|
"@possumtech/sqlrite": "^6.6.1",
|
|
153
154
|
"diff": "^9.0.0",
|
|
154
155
|
"glob": "^13.0.6",
|
|
155
156
|
"minimatch": "^10.2.6",
|
|
156
|
-
"@plurnk/plurnk-digest": "3.2.
|
|
157
|
+
"@plurnk/plurnk-digest": "3.2.1"
|
|
157
158
|
},
|
|
158
159
|
"devDependencies": {
|
|
159
160
|
"@a2a-js/sdk": "1.3.0",
|
|
@@ -171,5 +172,5 @@
|
|
|
171
172
|
"url": "git+https://github.com/plurnk/plurnk-service.git",
|
|
172
173
|
"directory": "plurnk-core"
|
|
173
174
|
},
|
|
174
|
-
"gitHead": "
|
|
175
|
+
"gitHead": "9f92ceac0af7bdb64e57ebc73c0288bb0f36b720"
|
|
175
176
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# plurnk-service behind nginx: an example to adapt, never installed by the package.
|
|
2
|
+
# The daemon answers whoever reaches it at whatever address they used and refuses nobody for it.
|
|
3
|
+
# TLS, security headers, sign-in throttling and network allow-lists belong here, in front of it.
|
|
4
|
+
#
|
|
5
|
+
# Install: cp "$(npm root -g)/@plurnk/plurnk-service/plurnk.nginx.conf" /etc/nginx/conf.d/plurnk.conf
|
|
6
|
+
# replace plurnk.example.com and the certificate paths, then: nginx -t && systemctl reload nginx
|
|
7
|
+
# Certificates: certbot --nginx -d plurnk.example.com, or any certificate you hold.
|
|
8
|
+
# The daemon: keep it on loopback (the default PLURNK_HOST=127.0.0.1) so nginx is the one way in, and
|
|
9
|
+
# tell it the public origin, which it cannot see through the TLS in front of it:
|
|
10
|
+
# PLURNK_AGUI_ISSUER=https://plurnk.example.com in ~/.config/plurnk/.env, and
|
|
11
|
+
# PLURNK_A2A_ENDPOINT_URL=https://plurnk.example.com/a2a when PLURNK_A2A_EXPOSE=1.
|
|
12
|
+
# nginx older than 1.25.1: drop `http2 on;` and write `listen 443 ssl http2;` instead.
|
|
13
|
+
|
|
14
|
+
# Sign-in throttling, per real client address: the daemon behind nginx sees only nginx's.
|
|
15
|
+
limit_req_zone $binary_remote_addr zone=plurnk_signin:10m rate=10r/m;
|
|
16
|
+
|
|
17
|
+
server {
|
|
18
|
+
listen 80;
|
|
19
|
+
listen [::]:80;
|
|
20
|
+
server_name plurnk.example.com;
|
|
21
|
+
return 301 https://$host$request_uri;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
server {
|
|
25
|
+
listen 443 ssl;
|
|
26
|
+
listen [::]:443 ssl;
|
|
27
|
+
http2 on;
|
|
28
|
+
server_name plurnk.example.com;
|
|
29
|
+
|
|
30
|
+
ssl_certificate /etc/letsencrypt/live/plurnk.example.com/fullchain.pem;
|
|
31
|
+
ssl_certificate_key /etc/letsencrypt/live/plurnk.example.com/privkey.pem;
|
|
32
|
+
ssl_protocols TLSv1.2 TLSv1.3;
|
|
33
|
+
ssl_prefer_server_ciphers off;
|
|
34
|
+
ssl_session_timeout 1d;
|
|
35
|
+
ssl_session_cache shared:plurnk_tls:10m;
|
|
36
|
+
ssl_session_tickets off;
|
|
37
|
+
|
|
38
|
+
add_header Strict-Transport-Security "max-age=63072000" always;
|
|
39
|
+
add_header X-Content-Type-Options nosniff always;
|
|
40
|
+
proxy_hide_header X-Frame-Options;
|
|
41
|
+
add_header X-Frame-Options DENY always;
|
|
42
|
+
add_header Referrer-Policy same-origin always;
|
|
43
|
+
|
|
44
|
+
# Optional: admit only your own networks.
|
|
45
|
+
# allow 192.168.1.0/24;
|
|
46
|
+
# allow 10.0.0.0/8;
|
|
47
|
+
# deny all;
|
|
48
|
+
|
|
49
|
+
# Messages and their attachments arrive in request bodies.
|
|
50
|
+
client_max_body_size 64m;
|
|
51
|
+
|
|
52
|
+
proxy_http_version 1.1;
|
|
53
|
+
proxy_set_header Host $host;
|
|
54
|
+
proxy_set_header Connection "";
|
|
55
|
+
|
|
56
|
+
location / {
|
|
57
|
+
proxy_pass http://127.0.0.1:1066;
|
|
58
|
+
# AG-UI answers over server-sent events: a buffered or timed-out stream looks like a hang.
|
|
59
|
+
proxy_buffering off;
|
|
60
|
+
proxy_cache off;
|
|
61
|
+
proxy_read_timeout 1h;
|
|
62
|
+
proxy_send_timeout 1h;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
# The browser sign-in form takes the operator's password.
|
|
66
|
+
location = /oauth/authorize {
|
|
67
|
+
limit_req zone=plurnk_signin burst=5 nodelay;
|
|
68
|
+
limit_req_status 429;
|
|
69
|
+
proxy_pass http://127.0.0.1:1066;
|
|
70
|
+
}
|
|
71
|
+
}
|
package/plurnk.service
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
# systemd does not source your interactive shell. Adjust EnvironmentFile for
|
|
11
11
|
# a non-default XDG_CONFIG_HOME. Preserve the file's private permissions.
|
|
12
12
|
# Logs land in the user journal: journalctl --user -u plurnk -f
|
|
13
|
+
# Other machines on your network: add Environment=PLURNK_HOST=0.0.0.0 under [Service] and browse to
|
|
14
|
+
# any of this machine's addresses. Beyond a network you trust, front it with plurnk.nginx.conf.
|
|
13
15
|
[Unit]
|
|
14
16
|
Description=PLURNK agentic-development daemon
|
|
15
17
|
After=network.target
|