@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
|
@@ -5,6 +5,7 @@ export default class ClientInput {
|
|
|
5
5
|
static assertShareFolder(context: string, folder: unknown): string;
|
|
6
6
|
static assertProjectRoot(context: string, projectRoot: unknown): string | null;
|
|
7
7
|
static assertOptionalName(context: string, field: string, value: unknown): string | undefined;
|
|
8
|
+
static assertOptionalWorkspaceName(context: string, field: string, value: unknown): string | undefined;
|
|
8
9
|
static assertOptionalWorkerName(context: string, field: string, value: unknown): string | undefined;
|
|
9
10
|
static assertOptionalSelector(context: string, field: "selector" | "childSelector", value: unknown): string | undefined;
|
|
10
11
|
static assertSelector(context: string, field: "selector" | "childSelector", value: unknown): string;
|
|
@@ -14,6 +15,7 @@ export default class ClientInput {
|
|
|
14
15
|
static assertId(context: string, field: string, value: unknown): number;
|
|
15
16
|
static assertPrompt(context: string, prompt: unknown, allowEmpty?: boolean): string;
|
|
16
17
|
static assertMessageResources(context: string, resources: unknown): readonly MessageResource[];
|
|
18
|
+
static assertActor(context: string, actor: unknown): string;
|
|
17
19
|
static assertOptionalSource(context: string, source: unknown): string | undefined;
|
|
18
20
|
static assertMaxTurns(context: string, maxTurns: unknown): number | undefined;
|
|
19
21
|
static assertOpenPaths(context: string, openPaths: unknown): string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-input.d.ts","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAKH,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACvB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,CAAC,OAAO,OAAO,WAAW;;IA0B5B,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAUjE;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"client-input.d.ts","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,10 @@ export default class ClientInput {
|
|
|
32
32
|
if (typeof root !== "string" || root.length === 0) {
|
|
33
33
|
ClientInput.#invalid(context, "project-root-invalid", "projectRoot is neither a non-empty string nor null.", { field: "projectRoot", recovery: "Provide an absolute project path or null." });
|
|
34
34
|
}
|
|
35
|
+
// A lone surrogate has no UTF-8 spelling: the filesystem would be asked for a different folder.
|
|
36
|
+
if (!root.isWellFormed()) {
|
|
37
|
+
ClientInput.#invalid(context, "project-root-invalid", "projectRoot is not well-formed Unicode: it holds an unpaired surrogate.", { field: "projectRoot", recovery: "Provide an absolute project path of well-formed Unicode." });
|
|
38
|
+
}
|
|
35
39
|
if (!isAbsolute(root)) {
|
|
36
40
|
ClientInput.#invalid(context, "project-root-not-absolute", `projectRoot '${root}' is not an absolute path.`, { field: "projectRoot", value: root, recovery: "Provide an absolute project path." });
|
|
37
41
|
}
|
|
@@ -45,6 +49,23 @@ export default class ClientInput {
|
|
|
45
49
|
}
|
|
46
50
|
return value;
|
|
47
51
|
}
|
|
52
|
+
// {§workspace-name} — new names are checked at creation and rename; existing names are not rewritten.
|
|
53
|
+
static assertOptionalWorkspaceName(context, field, value) {
|
|
54
|
+
const name = ClientInput.assertOptionalName(context, field, value);
|
|
55
|
+
if (name === undefined)
|
|
56
|
+
return undefined;
|
|
57
|
+
if (/^[0-9]+$/u.test(name)) {
|
|
58
|
+
ClientInput.#invalid(context, "name-invalid", `${field} consists only of ASCII decimal digits, reserved for workspace IDs.`, { field, recovery: `Provide a ${field} containing a non-digit character.` });
|
|
59
|
+
}
|
|
60
|
+
if (!name.isWellFormed()) {
|
|
61
|
+
ClientInput.#invalid(context, "name-invalid", `${field} is not well-formed Unicode: it holds an unpaired surrogate.`, { field, recovery: `Provide a ${field} of well-formed Unicode.` });
|
|
62
|
+
}
|
|
63
|
+
const segment = name.split("/").find((part) => part === "." || part === "..");
|
|
64
|
+
if (segment !== undefined) {
|
|
65
|
+
ClientInput.#invalid(context, "name-invalid", `${field} '${name}' has the path segment '${segment}'.`, { field, value: name, segment, recovery: `Provide a ${field} with no '.' or '..' between its slashes; a dot within a segment is ordinary.` });
|
|
66
|
+
}
|
|
67
|
+
return name;
|
|
68
|
+
}
|
|
48
69
|
static assertOptionalWorkerName(context, field, value) {
|
|
49
70
|
const workerName = ClientInput.assertOptionalName(context, field, value);
|
|
50
71
|
if (workerName === undefined)
|
|
@@ -122,6 +143,13 @@ export default class ClientInput {
|
|
|
122
143
|
}
|
|
123
144
|
return resources;
|
|
124
145
|
}
|
|
146
|
+
// {§actor-boundary-client-operations} The canonical address of the person a client operation acts for.
|
|
147
|
+
static assertActor(context, actor) {
|
|
148
|
+
if (typeof actor !== "string" || actor.length === 0) {
|
|
149
|
+
ClientInput.#invalid(context, "actor-invalid", "actor is not a non-empty string.", { field: "actor", recovery: "Name the acting person's canonical address." });
|
|
150
|
+
}
|
|
151
|
+
return actor;
|
|
152
|
+
}
|
|
125
153
|
static assertOptionalSource(context, source) {
|
|
126
154
|
if (source === undefined)
|
|
127
155
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-input.js","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client-input.js","sourceRoot":"","sources":["../../src/server/client-input.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,OAAO,EAAE,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,kBAAkB,EAAE,EAAE,kBAAkB,EAAwB,MAAM,iCAAiC,CAAC;AAE/G,OAAO,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACH,SAAS,EACT,UAAU,EACV,gBAAgB,GAInB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,CAAC,OAAO,OAAO,WAAW;IAC5B,MAAM,CAAC,QAAQ,CACX,OAAe,EACf,IAAY,EACZ,MAAc,EACd,UAAU,GAAsC,EAAE,EAClD,KAAe;QAEf,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAC3C,cAAc,EACd,IAAI,EACJ,GAAG,EACH,MAAM,EACN,EAAE,EACF;YACI,OAAO;YACP,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,KAAK;YAChB,GAAG,UAAU;SAChB,CACJ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,wFAAwF;IACxF,iEAAiE;IACjE,mFAAmF;IACnF,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,MAAe;QACrD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,2BAA2B,EAC3B,GAAG,OAAO,+BAA+B,EACzC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,kEAAkE,EAAE,CACnH,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,WAAoB;QAC1D,MAAM,IAAI,GAAI,WAAyC,IAAI,IAAI,CAAC;QAChE,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,sBAAsB,EACtB,qDAAqD,EACrD,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,2CAA2C,EAAE,CAClF,CAAC;QACN,CAAC;QACD,gGAAgG;QAChG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACvB,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,sBAAsB,EACtB,yEAAyE,EACzE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,0DAA0D,EAAE,CACjG,CAAC;QACN,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,2BAA2B,EAC3B,gBAAgB,IAAI,4BAA4B,EAChD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,mCAAmC,EAAE,CACvF,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,OAAe,EAAE,KAAa,EAAE,KAAc;QACpE,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,cAAc,EACd,GAAG,KAAK,6BAA6B,EACrC,EAAE,KAAK,EAAE,QAAQ,EAAE,uBAAuB,KAAK,GAAG,EAAE,CACvD,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,sGAAsG;IACtG,MAAM,CAAC,2BAA2B,CAAC,OAAe,EAAE,KAAa,EAAE,KAAc;QAC7E,MAAM,IAAI,GAAG,WAAW,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACzC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,cAAc,EACd,GAAG,KAAK,qEAAqE,EAC7E,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,KAAK,oCAAoC,EAAE,CAC9E,CAAC;QACN,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACvB,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,cAAc,EACd,GAAG,KAAK,8DAA8D,EACtE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,KAAK,0BAA0B,EAAE,CACpE,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;QAC9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,cAAc,EACd,GAAG,KAAK,KAAK,IAAI,2BAA2B,OAAO,IAAI,EACvD,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,KAAK,+EAA+E,EAAE,CAC/I,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAe,EAAE,KAAa,EAAE,KAAc;QAC1E,MAAM,UAAU,GAAG,WAAW,CAAC,kBAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACzE,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC/C,IAAI,CAAC;YACD,OAAO,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,KAAK,YAAY,eAAe,CAAC;gBAAE,MAAM,KAAK,CAAC;YACrD,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAC3C,eAAe,EACf,KAAK,CAAC,IAAI,EACV,GAAG,EACH,KAAK,CAAC,OAAO,EACb,EAAE,EACF;gBACI,OAAO;gBACP,KAAK;gBACL,IAAI,EAAE,KAAK,CAAC,UAAU;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK;aACnB,CACJ,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,OAAe,EAAE,KAAmC,EAAE,KAAc;QAC9F,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAClF,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,GAAG,SAAS,UAAU,EACtB,GAAG,KAAK,6BAA6B,EACrC,EAAE,KAAK,EAAE,QAAQ,EAAE,mDAAmD,EAAE,CAC3E,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,OAAe,EAAE,KAAmC,EAAE,KAAc;QACtF,MAAM,QAAQ,GAAG,WAAW,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAClF,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,GAAG,SAAS,UAAU,EACtB,GAAG,KAAK,eAAe,EACvB,EAAE,KAAK,EAAE,QAAQ,EAAE,mDAAmD,EAAE,CAC3E,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,2BAA2B,CAAC,OAAe,EAAE,KAAc;QAC9D,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,WAAW,CAAC,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,OAAe,EAAE,KAAc;QACtD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,WAAW,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,OAAe,EAAE,OAAgB;QAC1D,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,iBAAiB,EACjB,oCAAoC,EACpC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,mCAAmC,EAAE,CACtE,CAAC;QACN,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,OAAe,EAAE,KAAa,EAAE,KAAc;QAC1D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,EAAE,CAAC;YACxD,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,oBAAoB,EACpB,GAAG,KAAK,kCAAkC,EAC1C,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,KAAK,GAAG,EAAE,CAC1D,CAAC;QACN,CAAC;QACD,OAAO,KAAe,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,MAAe,EAAE,UAAU,GAAG,KAAK;QACpE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACrE,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,gBAAgB,EAChB,mCAAmC,EACnC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAC/D,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,OAAe,EAAE,SAAkB;QAC7D,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzD,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;eAC9C,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;eACjC,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;eACzE,CAAC,CAAC,QAAQ,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,EAAE,CAAC;YAC9C,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,2BAA2B,EAAE,sEAAsE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACjK,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,uGAAuG;IACvG,MAAM,CAAC,WAAW,CAAC,OAAe,EAAE,KAAc;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,eAAe,EACf,kCAAkC,EAClC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,6CAA6C,EAAE,CAC9E,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,OAAe,EAAE,MAAe;QACxD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,gBAAgB,EAChB,mCAAmC,EACnC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,mDAAmD,EAAE,CACrF,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,OAAe,EAAE,QAAiB;QACpD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAK,QAAmB,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/D,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,mBAAmB,EACnB,yDAAyD,EACzD;gBACI,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,mEAAmE;aAChF,CACJ,CAAC;QACN,CAAC;QACD,OAAO,QAAkB,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAe,EAAE,SAAkB;QACtD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,oBAAoB,EACpB,4BAA4B,EAC5B,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,sCAAsC,EAAE,CAC3E,CAAC;QACN,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChE,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,mBAAmB,EACnB,aAAa,CAAC,8BAA8B,EAC5C,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CACtE,CAAC;YACN,CAAC;YACD,IAAI,CAAC;gBACD,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,KAAK,YAAY,gBAAgB,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACtD,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,EAAE,aAAa,CAAC,oCAAoC,EACjG,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,OAAO,SAAqB,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAe,EAAE,KAAc;QAC9C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,EAAE,CAAC;YACxD,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,eAAe,EACf,uCAAuC,EACvC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,+BAA+B,EAAE,CAC9E,CAAC;QACN,CAAC;QACD,OAAO,KAAe,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAe,EAAE,UAAmB;QAChE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACrF,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,6BAA6B,EAC7B,8BAA8B,EAC9B,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,8BAA8B,EAAE,CACpE,CAAC;QACN,CAAC;QACD,MAAM,KAAK,GAAG,UAAqC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,yCAAyC,EACzC,cAAc,GAAG,oBAAoB,EACrC;oBACI,KAAK,EAAE,cAAc,GAAG,EAAE;oBAC1B,eAAe,EAAE,CAAC,GAAG,SAAS,CAAC;oBAC/B,QAAQ,EAAE,mDAAmD;iBAChE,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC5F,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,2BAA2B,EAC3B,uDAAuD,EACvD;gBACI,KAAK,EAAE,qBAAqB;gBAC5B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBAChD,QAAQ,EAAE,mCAAmC;aAChD,CACJ,CAAC;QACN,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7D,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,uBAAuB,EACvB,kCAAkC,EAClC,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,mCAAmC,EAAE,CAC9E,CAAC;QACN,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACnG,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,0BAA0B,EAC1B,+CAA+C,EAC/C,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,yCAAyC,EAAE,CACvF,CAAC;QACN,CAAC;QACD,OAAO;YACH,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;SAC/C,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,iCAAiC,CACpC,OAAe,EACf,UAAmB;QAEnB,IAAI,CAAC;YACD,OAAO,SAAS,CAAC,iCAAiC,CAC9C,UAAyC,CAC5C,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACL,WAAW,CAAC,QAAQ,CAChB,OAAO,EACP,gCAAgC,EAChC,0DAA0D,EAC1D;gBACI,KAAK,EAAE,YAAY;gBACnB,QAAQ,EAAE,gFAAgF;aAC7F,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAED,wFAAwF;IACxF,6EAA6E;IAC7E,MAAM,CAAC,aAAa,CAAC,GAAY;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACnD,IAAI,MAAM,GAAY,GAAG,CAAC;QAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACL,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,EAC7B,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAC5D,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAChE,CAAC;QACN,CAAC;QACD,MAAM,CAAC,GAAG,MAA0K,CAAC;QACrL,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;QAClI,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,GAAG,oBAAoB,EACnC;oBACI,KAAK,EAAE,YAAY,GAAG,EAAE;oBACxB,iBAAiB,EAAE,CAAC,GAAG,SAAS,CAAC;oBACjC,QAAQ,EAAE,iCAAiC;iBAC9C,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QACD,MAAM,GAAG,GAA2L,EAAE,CAAC;QACvM,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC3F,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,EACxE;oBACI,KAAK,EAAE,qBAAqB;oBAC5B,QAAQ,EAAE,gEAAgE;iBAC7E,CACJ,CAAC;YACN,CAAC;YACD,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;QAClC,CAAC;QACD,yFAAyF;QACzF,gFAAgF;QAChF,8DAA8D;QAC9D,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC7F,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,iCAAiC,EACtF;oBACI,KAAK,EAAE,sBAAsB;oBAC7B,QAAQ,EAAE,6CAA6C;iBAC1D,CACJ,CAAC;YACN,CAAC;YACD,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,qCAAqC,EAAE,CAC7E,CAAC;YACN,CAAC;YACD,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC;gBACD,GAAG,CAAC,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,EAAE,0BAA0B,CAAC,CAAC;YAClG,CAAC;YAAC,MAAM,CAAC;gBACL,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,oBAAoB,EACjF;oBACI,KAAK,EAAE,0BAA0B;oBACjC,aAAa,EAAE,CAAC,GAAG,kBAAkB,CAAC;oBACtC,QAAQ,EAAE,cAAc,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBAC3D,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC;gBACD,GAAG,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,EAAE,4BAA4B,CAAC,CAAC;YACxG,CAAC;YAAC,MAAM,CAAC;gBACL,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,oBAAoB,EACrF;oBACI,KAAK,EAAE,4BAA4B;oBACnC,aAAa,EAAE,CAAC,GAAG,kBAAkB,CAAC;oBACtC,QAAQ,EAAE,cAAc,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBAC3D,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QACD,uGAAuG;QACvG,gEAAgE;QAChE,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,iBAAiB,EACjB,4CAA4C,EAC5C,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gCAAgC,EAAE,CAC3E,CAAC;YACN,CAAC;YACD,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACD,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAgC,CAAC,CAAC;YAC5F,CAAC;YAAC,MAAM,CAAC;gBACL,WAAW,CAAC,QAAQ,CAChB,kBAAkB,EAClB,2BAA2B,EAC3B,yDAAyD,EACzD,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,mDAAmD,EAAE,CACpG,CAAC;YACN,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;CAEJ"}
|
package/dist/server/drain.sql
CHANGED
|
@@ -52,6 +52,15 @@ WHERE worker_id = $worker_id
|
|
|
52
52
|
ORDER BY (status = 102) DESC, sequence ASC
|
|
53
53
|
LIMIT 1;
|
|
54
54
|
|
|
55
|
+
-- PREP: drain_abandoned_messages
|
|
56
|
+
-- {§message-abandonment}: the messages other workers sent that this ended loop still holds without a completion.
|
|
57
|
+
SELECT m.path
|
|
58
|
+
FROM message_sources m
|
|
59
|
+
WHERE m.loop_id = $loop_id
|
|
60
|
+
AND m.source LIKE 'worker://%'
|
|
61
|
+
AND NOT EXISTS (SELECT 1 FROM message_completions c WHERE c.message_id = m.id)
|
|
62
|
+
ORDER BY m.ordinal ASC;
|
|
63
|
+
|
|
55
64
|
-- PREP: drain_message_source
|
|
56
65
|
SELECT l.worker_id, w.workspace_id, l.status
|
|
57
66
|
FROM loops l JOIN workers w ON w.id = l.worker_id
|
|
@@ -70,12 +79,17 @@ SELECT workspace_id FROM workers WHERE id = $worker_id;
|
|
|
70
79
|
|
|
71
80
|
-- PREP: drain_enqueue_message
|
|
72
81
|
-- {§message-arrival}: append one message to the loop's inbox in arrival order. Ordinal 1 is the
|
|
73
|
-
-- loop's initial message; a later arrival takes the next ordinal.
|
|
74
|
-
|
|
82
|
+
-- loop's initial message; a later arrival takes the next ordinal. {§worker-obligations}: a worker's own
|
|
83
|
+
-- operation names itself as the message's opener, by the row it writes.
|
|
84
|
+
INSERT INTO loop_messages (loop_id, ordinal, source, body, open_paths, evidence, address, opened_turn_id, opened_sequence)
|
|
75
85
|
SELECT $loop_id, (SELECT COALESCE(MAX(ordinal), 0) + 1 FROM loop_messages WHERE loop_id = $loop_id),
|
|
76
|
-
$source, $body, $open_paths, $evidence, $address
|
|
86
|
+
$source, $body, $open_paths, $evidence, $address, $opened_turn_id, $opened_sequence
|
|
77
87
|
WHERE EXISTS (SELECT 1 FROM loops WHERE id = $loop_id AND status IN (100, 102, 202))
|
|
78
|
-
RETURNING id, ordinal;
|
|
88
|
+
RETURNING id, ordinal, message_key;
|
|
89
|
+
-- PREP: drain_message_path
|
|
90
|
+
-- {§worker-obligations}: an admitted message's durable address, the one Open Work names.
|
|
91
|
+
SELECT path FROM message_sources WHERE id = $id;
|
|
92
|
+
|
|
79
93
|
-- PREP: drain_unpublished_messages_for_loop
|
|
80
94
|
-- {§message-loop-containment}: the messages the loop contains but has not yet published, oldest
|
|
81
95
|
-- first; the next turn boundary publishes each as an inbound SEND row exactly once.
|
|
@@ -84,14 +98,13 @@ FROM message_sources
|
|
|
84
98
|
WHERE loop_id = $loop_id AND log_entry_id IS NULL
|
|
85
99
|
ORDER BY ordinal ASC;
|
|
86
100
|
|
|
87
|
-
-- PREP:
|
|
88
|
-
-- {§completion-defers-to-messages}:
|
|
89
|
-
--
|
|
90
|
-
|
|
91
|
-
SELECT id, ordinal
|
|
101
|
+
-- PREP: drain_has_unpublished_messages
|
|
102
|
+
-- {§completion-defers-to-messages}: existence is enough to defer conclusion;
|
|
103
|
+
-- publication alone needs the bodies and their ordering.
|
|
104
|
+
SELECT 1 AS pending
|
|
92
105
|
FROM loop_messages
|
|
93
|
-
WHERE loop_id = $loop_id AND
|
|
94
|
-
|
|
106
|
+
WHERE loop_id = $loop_id AND log_entry_id IS NULL
|
|
107
|
+
LIMIT 1;
|
|
95
108
|
|
|
96
109
|
-- PREP: drain_publish_message
|
|
97
110
|
-- The inbox row's one publication: the inbound SEND row it became.
|
|
@@ -99,41 +112,34 @@ UPDATE loop_messages SET log_entry_id = $log_entry_id
|
|
|
99
112
|
WHERE id = $id AND log_entry_id IS NULL
|
|
100
113
|
RETURNING id;
|
|
101
114
|
|
|
102
|
-
-- PREP: drain_orphaned_messages_for_loop
|
|
103
|
-
-- A loop can conclude before publishing a message injected into it (a wake-on-completion, or a
|
|
104
|
-
-- runLoop-while-active arrival that landed on a turn the loop never reached). Return the complete
|
|
105
|
-
-- unpublished set oldest-first with the ended loop's posture so one recovery loop preserves
|
|
106
|
-
-- cardinality and order ({§message-loop-containment}). Ordinal 1 is the loop's own assignment:
|
|
107
|
-
-- its fate is the loop's, never replayed into fresh work.
|
|
108
|
-
SELECT m.body AS body, m.source AS source, m.open_paths AS open_paths,
|
|
109
|
-
l.model_route_id AS model_route_id,
|
|
110
|
-
l.spawn_model_route_id AS spawn_model_route_id,
|
|
111
|
-
l.effort AS effort,
|
|
112
|
-
l.max_turns AS max_turns
|
|
113
|
-
FROM loop_messages m
|
|
114
|
-
JOIN loops l ON l.id = m.loop_id
|
|
115
|
-
WHERE m.loop_id = $loop_id
|
|
116
|
-
AND m.ordinal > 1
|
|
117
|
-
AND m.log_entry_id IS NULL
|
|
118
|
-
AND l.status IN (200, 413, 429, 499, 500, 504, 508)
|
|
119
|
-
AND l.terminated_by IS NOT 'cancel'
|
|
120
|
-
AND l.sequence > (SELECT cancelled_through_sequence FROM workers WHERE id = l.worker_id)
|
|
121
|
-
ORDER BY m.ordinal ASC;
|
|
122
115
|
-- PREP: drain_enqueue_orphan_recovery_loop
|
|
123
116
|
-- {§message-loop-containment}: recovery identity is the concluded source loop.
|
|
124
|
-
--
|
|
117
|
+
-- The database copies its posture and first unpublished arrival directly; the caller needs only
|
|
118
|
+
-- the recovery identity and expected cardinality, never the stored message bodies or policy.
|
|
125
119
|
INSERT INTO loops (
|
|
126
120
|
worker_id, sequence, status, prompt, prompt_source, model_route_id, spawn_model_route_id, effort, max_turns,
|
|
127
121
|
orphan_source_loop_id
|
|
128
122
|
)
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
123
|
+
SELECT l.worker_id, (SELECT COALESCE(MAX(sequence), 0) + 1 FROM loops WHERE worker_id = l.worker_id),
|
|
124
|
+
100, m.body, m.source, l.model_route_id, l.spawn_model_route_id, l.effort, l.max_turns, l.id
|
|
125
|
+
FROM loops l
|
|
126
|
+
JOIN workers w ON w.id = l.worker_id
|
|
127
|
+
JOIN loop_messages m ON m.id = (
|
|
128
|
+
SELECT id FROM loop_messages
|
|
129
|
+
WHERE loop_id = l.id AND ordinal > 1 AND log_entry_id IS NULL
|
|
130
|
+
ORDER BY ordinal LIMIT 1
|
|
133
131
|
)
|
|
132
|
+
WHERE l.id = $orphan_source_loop_id AND l.worker_id = $worker_id
|
|
133
|
+
AND l.status IN (200, 413, 429, 499, 500, 504, 508)
|
|
134
|
+
AND l.terminated_by IS NOT 'cancel'
|
|
135
|
+
AND l.sequence > w.cancelled_through_sequence
|
|
134
136
|
ON CONFLICT (orphan_source_loop_id) DO UPDATE
|
|
135
137
|
SET orphan_source_loop_id = excluded.orphan_source_loop_id
|
|
136
|
-
|
|
138
|
+
WHERE loops.status = 100
|
|
139
|
+
RETURNING id, sequence, (
|
|
140
|
+
SELECT COUNT(*) FROM loop_messages
|
|
141
|
+
WHERE loop_id = $orphan_source_loop_id AND ordinal > 1 AND log_entry_id IS NULL
|
|
142
|
+
) AS message_count;
|
|
137
143
|
|
|
138
144
|
-- PREP: drain_rehome_orphaned_messages
|
|
139
145
|
-- Move, rather than copy, the source loop's unpublished messages into the recovery loop,
|
|
@@ -146,9 +152,9 @@ WITH orphaned(id, ordinal) AS MATERIALIZED (
|
|
|
146
152
|
)
|
|
147
153
|
UPDATE loop_messages
|
|
148
154
|
SET loop_id = $target_loop_id,
|
|
149
|
-
ordinal =
|
|
150
|
-
|
|
151
|
-
|
|
155
|
+
ordinal = orphaned.ordinal
|
|
156
|
+
FROM orphaned
|
|
157
|
+
WHERE loop_messages.id = orphaned.id;
|
|
152
158
|
-- PREP: drain_find_slept_loop
|
|
153
159
|
-- Existence/arrival selection only; completion wakes use all eligible waits.
|
|
154
160
|
SELECT id FROM loops WHERE worker_id = $worker_id AND status = 202 ORDER BY sequence ASC LIMIT 1;
|
|
@@ -7,11 +7,12 @@ export interface WorkspaceRow {
|
|
|
7
7
|
project_root: string | null;
|
|
8
8
|
created_at: string;
|
|
9
9
|
}
|
|
10
|
+
export type WorkspaceEnvelope = Omit<ClientEnvelope, "projectLabel">;
|
|
10
11
|
export interface WorkerRow {
|
|
11
12
|
id: number;
|
|
12
13
|
name: string;
|
|
13
14
|
created_at: string;
|
|
14
|
-
origin: "model" | "
|
|
15
|
+
origin: "model" | "_plurnk";
|
|
15
16
|
owner: string;
|
|
16
17
|
parentWorkerId: number | null;
|
|
17
18
|
kind: ApplicationWorkerKind;
|
|
@@ -27,24 +28,19 @@ export interface WorkerQuery {
|
|
|
27
28
|
parentWorkerId?: number | null;
|
|
28
29
|
}
|
|
29
30
|
export default class Envelope {
|
|
30
|
-
#private;
|
|
31
31
|
static readonly AUTO_NAME_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
32
32
|
static generateWorkspaceName(): string;
|
|
33
33
|
static createClientEnvelope(db: Db, opts?: {
|
|
34
34
|
name?: string;
|
|
35
35
|
projectRoot?: string | null;
|
|
36
36
|
settings?: string;
|
|
37
|
-
}): Promise<
|
|
38
|
-
static attachToWorkspace(db: Db, workspaceId: number
|
|
39
|
-
|
|
40
|
-
workerName?: string;
|
|
41
|
-
}): Promise<ClientEnvelope>;
|
|
42
|
-
static ensureClientLoop(db: Db, workerId: number): Promise<number>;
|
|
37
|
+
}): Promise<WorkspaceEnvelope>;
|
|
38
|
+
static attachToWorkspace(db: Db, workspaceId: number): Promise<WorkspaceEnvelope>;
|
|
39
|
+
static ensureClientLoop(db: Db, workerId: number, actor: string): Promise<number>;
|
|
43
40
|
static createModelWorker(db: Db, workspaceId: number, name?: string, parentWorkerId?: number, owner?: string): Promise<{
|
|
44
41
|
id: number;
|
|
45
42
|
name: string;
|
|
46
43
|
}>;
|
|
47
|
-
static ensureModelWorker(db: Db, workspaceId: number): Promise<number>;
|
|
48
44
|
static listWorkersForWorkspace(db: Db, workspaceId: number, query?: WorkerQuery): Promise<WorkerRow[]>;
|
|
49
45
|
static listPromptsForWorkspace(db: Db, workspaceId: number, limit: number, workerId: number | null): Promise<string[]>;
|
|
50
46
|
static closeClientLoop(db: Db, loopId: number, result: SchemeResult): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAgB,EAAyB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvF,OAAO,EAA2C,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,IAAI,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAY3K,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/server/envelope.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Envelope lifecycle helpers for module clients. SPEC {§connection-lifecycle}.
|
|
2
2
|
//
|
|
3
3
|
// A client-interface module receives this value from an explicit workspace create
|
|
4
|
-
// or attach call.
|
|
5
|
-
//
|
|
4
|
+
// or attach call. Binding a workspace mints nothing and retains no transport binding;
|
|
5
|
+
// each client operation allocates and settles its own administrative loop in the runtime worker.
|
|
6
6
|
import AdministrativeLoop from "../core/AdministrativeLoop.js";
|
|
7
|
-
import
|
|
7
|
+
import crypto from "node:crypto";
|
|
8
8
|
import GitMembership from "../core/git-membership.js";
|
|
9
9
|
import Results, { OperationFailureError } from "../core/results.js";
|
|
10
10
|
import LoopLifecycle from "../core/LoopLifecycle.js";
|
|
@@ -21,7 +21,11 @@ export default class Envelope {
|
|
|
21
21
|
// a name says nothing about where the workspace came from.
|
|
22
22
|
static AUTO_NAME_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
23
23
|
static generateWorkspaceName() {
|
|
24
|
-
|
|
24
|
+
let name;
|
|
25
|
+
do {
|
|
26
|
+
name = Array.from({ length: 5 }, () => Envelope.AUTO_NAME_ALPHABET[crypto.randomInt(Envelope.AUTO_NAME_ALPHABET.length)]).join("");
|
|
27
|
+
} while (!/[A-Za-z]/u.test(name));
|
|
28
|
+
return name;
|
|
25
29
|
}
|
|
26
30
|
static async createClientEnvelope(db, opts = {}) {
|
|
27
31
|
const projectRoot = opts.projectRoot ?? null;
|
|
@@ -42,98 +46,31 @@ export default class Envelope {
|
|
|
42
46
|
// tracked files are members before the first op. No-op when projectRoot is
|
|
43
47
|
// null (headless) or not a git working tree.
|
|
44
48
|
await GitMembership.resolveGitMembership(db, workspace.id, undefined);
|
|
45
|
-
|
|
46
|
-
workspaceId: workspace.id,
|
|
47
|
-
origin: "client",
|
|
48
|
-
});
|
|
49
|
-
return {
|
|
50
|
-
workspaceId: workspace.id, workspaceName: workspace.name,
|
|
51
|
-
projectRoot: workspace.project_root,
|
|
52
|
-
workerId: worker.id, workerName: worker.name,
|
|
53
|
-
};
|
|
49
|
+
return { workspaceId: workspace.id, workspaceName: workspace.name, projectRoot: workspace.project_root };
|
|
54
50
|
}
|
|
55
|
-
|
|
56
|
-
// - opts.workerId given: lookup by id, verify workspace ownership (else throw).
|
|
57
|
-
// - opts.workerName given: lookup by (workspaceId, name); reuse if found, create otherwise.
|
|
58
|
-
// - neither: create a new worker with an auto-generated name (current behavior).
|
|
59
|
-
// `workerId` and `workerName` are alternatives — passing both throws (use one).
|
|
60
|
-
static async #resolveWorker(db, workspaceId, opts) {
|
|
61
|
-
if (opts.workerId !== undefined && opts.workerName !== undefined) {
|
|
62
|
-
throw envelopeFailure("daemon:worker", "worker-selector-conflict", 400, "Workspace attachment received both a worker ID and worker name.", {
|
|
63
|
-
workerId: opts.workerId,
|
|
64
|
-
workerName: opts.workerName,
|
|
65
|
-
recovery: "Select the worker by either ID or name.",
|
|
66
|
-
retryable: false,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
if (opts.workerId !== undefined) {
|
|
70
|
-
const existing = await db.envelope_get_worker_by_id.get({ id: opts.workerId });
|
|
71
|
-
if (existing === undefined) {
|
|
72
|
-
throw envelopeFailure("daemon:worker", "worker-not-found", 404, `Worker ${opts.workerId} does not exist.`, { workerId: opts.workerId });
|
|
73
|
-
}
|
|
74
|
-
if (existing.workspace_id !== workspaceId) {
|
|
75
|
-
throw envelopeFailure("daemon:worker", "workspace-mismatch", 409, `Worker ${opts.workerId} does not belong to workspace ${workspaceId}.`, {
|
|
76
|
-
workerId: opts.workerId,
|
|
77
|
-
workspaceId,
|
|
78
|
-
actualWorkspaceId: existing.workspace_id,
|
|
79
|
-
retryable: false,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
return { id: existing.id, name: existing.name };
|
|
83
|
-
}
|
|
84
|
-
if (opts.workerName !== undefined) {
|
|
85
|
-
const workerName = WorkerName.assert(opts.workerName); // {§worker-name-minting}
|
|
86
|
-
const existing = await db.envelope_get_worker_by_name.get({ workspace_id: workspaceId, name: workerName });
|
|
87
|
-
if (existing !== undefined)
|
|
88
|
-
return existing;
|
|
89
|
-
const created = await db.envelope_insert_worker.get({ workspace_id: workspaceId, name: workerName, origin: "client" });
|
|
90
|
-
if (created === undefined)
|
|
91
|
-
throw new Error("resolveWorker: worker insert returned no row");
|
|
92
|
-
return created;
|
|
93
|
-
}
|
|
94
|
-
return await WorkerName.claimAuto(db, {
|
|
95
|
-
workspaceId,
|
|
96
|
-
origin: "client",
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
static async attachToWorkspace(db, workspaceId, opts = {}) {
|
|
51
|
+
static async attachToWorkspace(db, workspaceId) {
|
|
100
52
|
const workspace = await db.envelope_get_workspace.get({ id: workspaceId });
|
|
101
53
|
if (workspace === undefined) {
|
|
102
54
|
throw envelopeFailure("daemon:workspace", "workspace-not-found", 404, `Workspace ${workspaceId} does not exist.`, { workspaceId });
|
|
103
55
|
}
|
|
104
|
-
|
|
105
|
-
return {
|
|
106
|
-
workspaceId: workspace.id, workspaceName: workspace.name,
|
|
107
|
-
projectRoot: workspace.project_root,
|
|
108
|
-
workerId: worker.id, workerName: worker.name,
|
|
109
|
-
};
|
|
56
|
+
return { workspaceId: workspace.id, workspaceName: workspace.name, projectRoot: workspace.project_root };
|
|
110
57
|
}
|
|
111
|
-
// Client
|
|
112
|
-
//
|
|
113
|
-
static async ensureClientLoop(db, workerId) {
|
|
114
|
-
return (await AdministrativeLoop.open(db, workerId)).id;
|
|
58
|
+
// Client operation loop allocator. One operation allocates one administrative loop, opened by its
|
|
59
|
+
// actor ({§actor-boundary-client-operations}); its statements become ordered turns and settlement closes it.
|
|
60
|
+
static async ensureClientLoop(db, workerId, actor) {
|
|
61
|
+
return (await AdministrativeLoop.open(db, workerId, actor)).id;
|
|
115
62
|
}
|
|
116
|
-
//
|
|
117
|
-
//
|
|
118
|
-
//
|
|
119
|
-
//
|
|
120
|
-
//
|
|
121
|
-
// model-origin worker, distinct from the stable default and from a history-copying fork.
|
|
63
|
+
// Model-worker allocator ({§machine-processes}). A person's client operations journal in the runtime
|
|
64
|
+
// worker, never here, so the packet, rendered from the model worker, never carries them
|
|
65
|
+
// ({§connection-lifecycle}). The module resolves and retains the binding.
|
|
66
|
+
// {§methods-worker-create}: a fresh worker is a named, empty-log, model-origin worker,
|
|
67
|
+
// distinct from a history-copying fork.
|
|
122
68
|
static async createModelWorker(db, workspaceId, name, parentWorkerId, owner) {
|
|
123
69
|
const options = { workspaceId, parentWorkerId, owner, origin: "model" };
|
|
124
70
|
return name === undefined
|
|
125
71
|
? WorkerName.claimAuto(db, options)
|
|
126
72
|
: WorkerName.claimNamed(db, name, options);
|
|
127
73
|
}
|
|
128
|
-
static async ensureModelWorker(db, workspaceId) {
|
|
129
|
-
// {§methods-model-worker}: idempotence lives at the seam, not in a client's
|
|
130
|
-
// connection cache. The durable role, not root ordering or a name parse,
|
|
131
|
-
// distinguishes this default from arbitrary fresh conversations.
|
|
132
|
-
const worker = await WorkerName.ensureDefaultConversation(db, {
|
|
133
|
-
workspaceId,
|
|
134
|
-
});
|
|
135
|
-
return worker.id;
|
|
136
|
-
}
|
|
137
74
|
static async listWorkersForWorkspace(db, workspaceId, query = {}) {
|
|
138
75
|
const filterParent = Object.hasOwn(query, "parentWorkerId");
|
|
139
76
|
const rows = await db.envelope_list_workers_for_workspace.all({
|
|
@@ -144,7 +81,7 @@ export default class Envelope {
|
|
|
144
81
|
});
|
|
145
82
|
return rows.map(projectWorkerRow);
|
|
146
83
|
}
|
|
147
|
-
// {§methods-workspace-prompts}: expose root-
|
|
84
|
+
// {§methods-workspace-prompts}: expose root-worker loop seeds directly,
|
|
148
85
|
// without forcing clients to reconstruct prompt history from log rows.
|
|
149
86
|
static async listPromptsForWorkspace(db, workspaceId, limit, workerId) {
|
|
150
87
|
const rows = await db.envelope_list_workspace_prompts.all({ workspace_id: workspaceId, limit, worker_id: workerId });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,kFAAkF;AAClF,
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/server/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/server/envelope.sql
CHANGED
|
@@ -26,21 +26,14 @@ WHERE id = $id
|
|
|
26
26
|
)
|
|
27
27
|
RETURNING id, name;
|
|
28
28
|
|
|
29
|
-
-- PREP: envelope_insert_worker
|
|
30
|
-
-- origin is the worker's actor ({§machine-processes}): 'model' (the conversation),
|
|
31
|
-
-- 'client' (a connection's own worker), or '_plurnk' (the runtime self-hosting worker).
|
|
32
|
-
INSERT INTO workers (workspace_id, name, origin)
|
|
33
|
-
VALUES ($workspace_id, $name, $origin)
|
|
34
|
-
RETURNING id, name, origin;
|
|
35
|
-
|
|
36
29
|
-- {§application-worker-observation}: kind is minted lineage (fork boundary → fork, other child →
|
|
37
|
-
-- work,
|
|
30
|
+
-- work, no parent → root); loop observations feed the shared lifecycle selector in TS.
|
|
38
31
|
-- PREP: envelope_get_worker_by_id
|
|
39
32
|
SELECT id, name, workspace_id, created_at, origin, owner,
|
|
40
33
|
parent_worker_id AS parentWorkerId,
|
|
41
34
|
CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
|
|
42
35
|
WHEN parent_worker_id IS NOT NULL THEN 'work'
|
|
43
|
-
ELSE '
|
|
36
|
+
ELSE 'root' END AS kind,
|
|
44
37
|
(SELECT json_group_array(json_object('status', l.status, 'sequence', l.sequence, 'terminatedAt', l.terminated_at))
|
|
45
38
|
FROM work_loops l WHERE l.worker_id = workers.id) AS loopObservations
|
|
46
39
|
FROM workers
|
|
@@ -51,7 +44,7 @@ SELECT id, name, workspace_id, created_at, origin, owner,
|
|
|
51
44
|
parent_worker_id AS parentWorkerId,
|
|
52
45
|
CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
|
|
53
46
|
WHEN parent_worker_id IS NOT NULL THEN 'work'
|
|
54
|
-
ELSE '
|
|
47
|
+
ELSE 'root' END AS kind,
|
|
55
48
|
(SELECT json_group_array(json_object('status', l.status, 'sequence', l.sequence, 'terminatedAt', l.terminated_at))
|
|
56
49
|
FROM work_loops l WHERE l.worker_id = workers.id) AS loopObservations
|
|
57
50
|
FROM workers
|
|
@@ -61,7 +54,7 @@ WHERE workspace_id = $workspace_id AND name = $name;
|
|
|
61
54
|
SELECT id, name, created_at, origin, owner, parent_worker_id AS parentWorkerId,
|
|
62
55
|
CASE WHEN fork_event_boundary IS NOT NULL THEN 'fork'
|
|
63
56
|
WHEN parent_worker_id IS NOT NULL THEN 'work'
|
|
64
|
-
ELSE '
|
|
57
|
+
ELSE 'root' END AS kind,
|
|
65
58
|
(SELECT json_group_array(json_object('status', l.status, 'sequence', l.sequence, 'terminatedAt', l.terminated_at))
|
|
66
59
|
FROM work_loops l WHERE l.worker_id = workers.id) AS loopObservations
|
|
67
60
|
FROM workers
|
|
@@ -120,7 +113,7 @@ WHERE id = $id
|
|
|
120
113
|
-- {§methods-workspace-prompts}: nonempty loop seeds a client addressed to a model worker,
|
|
121
114
|
-- newest-first, optionally one worker's. Authorship is the seed message's address: a worker-issued
|
|
122
115
|
-- seed (WORK, FORK, SEND to a worker) carries none, so the model's own task prompts are not history
|
|
123
|
-
-- whichever worker they seeded, and a human prompt at a forked
|
|
116
|
+
-- whichever worker they seeded, and a human prompt at a forked worker is.
|
|
124
117
|
SELECT l.prompt
|
|
125
118
|
FROM loops l
|
|
126
119
|
JOIN workers r ON r.id = l.worker_id
|
|
@@ -133,13 +126,20 @@ ORDER BY l.id DESC
|
|
|
133
126
|
LIMIT $limit;
|
|
134
127
|
|
|
135
128
|
-- PREP: envelope_insert_client_loop
|
|
136
|
-
-- sequence is auto-computed: 1 + max(existing sequence in this worker) so
|
|
137
|
-
--
|
|
138
|
-
--
|
|
139
|
-
INSERT INTO loops (worker_id, sequence, status, prompt, max_turns)
|
|
140
|
-
VALUES ($worker_id, COALESCE((SELECT MAX(sequence) FROM loops WHERE worker_id = $worker_id), 0) + 1, 102, '', -1)
|
|
129
|
+
-- sequence is auto-computed: 1 + max(existing sequence in this worker) so concurrent
|
|
130
|
+
-- operations in one worker get distinct loops. An administrative loop runs no model turns,
|
|
131
|
+
-- so no turn ceiling governs it (-1); its prompt source is the actor that opened it, if any.
|
|
132
|
+
INSERT INTO loops (worker_id, sequence, status, prompt, prompt_source, max_turns)
|
|
133
|
+
VALUES ($worker_id, COALESCE((SELECT MAX(sequence) FROM loops WHERE worker_id = $worker_id), 0) + 1, 102, '', $prompt_source, -1)
|
|
141
134
|
RETURNING id, sequence;
|
|
142
135
|
|
|
136
|
+
-- PREP: envelope_client_operation_person
|
|
137
|
+
-- {§actor-boundary-client-operations} The person a client operation speaks for: the prompt source of a
|
|
138
|
+
-- runtime-worker loop. The daemon's own loops there name none.
|
|
139
|
+
SELECT l.prompt_source AS person
|
|
140
|
+
FROM loops l JOIN workers w ON w.id = l.worker_id
|
|
141
|
+
WHERE l.id = $loop_id AND w.origin = '_plurnk' AND l.prompt_source IS NOT NULL;
|
|
142
|
+
|
|
143
143
|
-- PREP: envelope_close_client_loop
|
|
144
144
|
UPDATE loops
|
|
145
145
|
SET status = $status,
|