@plurnk/plurnk-service 1.8.0 → 1.9.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 +20 -0
- package/INSTALL.md +14 -16
- package/README.md +1 -1
- package/SPEC.md +635 -296
- package/digest-sql/channel-dispositions/dispositions.sql +2 -2
- package/digest-sql/entry-dispositions/dispositions.sql +2 -2
- package/dist/Paths.d.ts +1 -2
- package/dist/Paths.d.ts.map +1 -1
- package/dist/Paths.js +1 -9
- package/dist/Paths.js.map +1 -1
- package/dist/build-info.json +1 -1
- package/dist/core/ChannelWrite.d.ts +8 -3
- package/dist/core/ChannelWrite.d.ts.map +1 -1
- package/dist/core/ChannelWrite.js +40 -8
- package/dist/core/ChannelWrite.js.map +1 -1
- package/dist/core/ChannelWrite.sql +17 -4
- package/dist/core/CoreSchemeServices.d.ts +7 -3
- package/dist/core/CoreSchemeServices.d.ts.map +1 -1
- package/dist/core/CoreSchemeServices.js +8 -1
- package/dist/core/CoreSchemeServices.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +9 -1
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +321 -221
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Engine.d.ts +13 -4
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +44 -22
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Engine.sql +101 -81
- package/dist/core/EntryAddressBinding.d.ts +32 -0
- package/dist/core/EntryAddressBinding.d.ts.map +1 -0
- package/dist/core/EntryAddressBinding.js +93 -0
- package/dist/core/EntryAddressBinding.js.map +1 -0
- package/dist/core/ExecutorRegistry.d.ts +4 -4
- package/dist/core/ExecutorRegistry.d.ts.map +1 -1
- package/dist/core/ExecutorRegistry.js +28 -28
- package/dist/core/ExecutorRegistry.js.map +1 -1
- package/dist/core/LogBody.d.ts.map +1 -1
- package/dist/core/LogBody.js +19 -1
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/OperatorConfig.d.ts.map +1 -1
- package/dist/core/OperatorConfig.js +5 -2
- package/dist/core/OperatorConfig.js.map +1 -1
- package/dist/core/OverflowTurn.d.ts.map +1 -1
- package/dist/core/OverflowTurn.js +5 -1
- package/dist/core/OverflowTurn.js.map +1 -1
- package/dist/core/Owner.js +1 -1
- package/dist/core/Owner.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts +5 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +21 -11
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/ProposalLifecycle.d.ts +4 -1
- package/dist/core/ProposalLifecycle.d.ts.map +1 -1
- package/dist/core/ProposalLifecycle.js +85 -26
- package/dist/core/ProposalLifecycle.js.map +1 -1
- package/dist/core/ReasoningEvent.d.ts +13 -0
- package/dist/core/ReasoningEvent.d.ts.map +1 -0
- package/dist/core/ReasoningEvent.js +6 -0
- package/dist/core/ReasoningEvent.js.map +1 -0
- package/dist/core/ResourceMutations.d.ts +15 -19
- package/dist/core/ResourceMutations.d.ts.map +1 -1
- package/dist/core/ResourceMutations.js +113 -38
- package/dist/core/ResourceMutations.js.map +1 -1
- package/dist/core/SchemeRegistry.d.ts +12 -11
- package/dist/core/SchemeRegistry.d.ts.map +1 -1
- package/dist/core/SchemeRegistry.js +52 -47
- package/dist/core/SchemeRegistry.js.map +1 -1
- package/dist/core/ToolResources.d.ts.map +1 -1
- package/dist/core/ToolResources.js +20 -19
- package/dist/core/ToolResources.js.map +1 -1
- package/dist/core/Turn.d.ts +1 -1
- package/dist/core/Turn.d.ts.map +1 -1
- package/dist/core/TurnOps.d.ts +2 -2
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +14 -4
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +46 -3
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +165 -78
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/WorkerName.d.ts +1 -0
- package/dist/core/WorkerName.d.ts.map +1 -1
- package/dist/core/WorkerName.js +2 -1
- package/dist/core/WorkerName.js.map +1 -1
- package/dist/core/WorkerName.sql +17 -2
- package/dist/core/WorkspaceGate.js +1 -1
- package/dist/core/WorkspaceGate.js.map +1 -1
- package/dist/core/caps/CapsResolve.d.ts +2 -2
- package/dist/core/caps/CapsResolve.d.ts.map +1 -1
- package/dist/core/caps/CapsResolve.js +5 -7
- package/dist/core/caps/CapsResolve.js.map +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts +1 -1
- package/dist/core/caps/DbChannelCaps.d.ts.map +1 -1
- package/dist/core/caps/DbChannelCaps.js +13 -11
- package/dist/core/caps/DbChannelCaps.js.map +1 -1
- package/dist/core/caps/DbEntryCaps.d.ts +5 -5
- package/dist/core/caps/DbEntryCaps.d.ts.map +1 -1
- package/dist/core/caps/DbEntryCaps.js +27 -30
- package/dist/core/caps/DbEntryCaps.js.map +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts +1 -1
- package/dist/core/caps/DbNotifyCaps.d.ts.map +1 -1
- package/dist/core/caps/DbNotifyCaps.js +5 -3
- package/dist/core/caps/DbNotifyCaps.js.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.d.ts +3 -3
- package/dist/core/caps/DbSubscriptionCaps.d.ts.map +1 -1
- package/dist/core/caps/DbSubscriptionCaps.js +16 -26
- package/dist/core/caps/DbSubscriptionCaps.js.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.d.ts +6 -4
- package/dist/core/caps/SchemeCtxImpl.d.ts.map +1 -1
- package/dist/core/caps/SchemeCtxImpl.js +37 -5
- package/dist/core/caps/SchemeCtxImpl.js.map +1 -1
- package/dist/core/file-creation-policy.d.ts +9 -0
- package/dist/core/file-creation-policy.d.ts.map +1 -0
- package/dist/core/file-creation-policy.js +25 -0
- package/dist/core/file-creation-policy.js.map +1 -0
- package/dist/core/fork.d.ts +4 -1
- package/dist/core/fork.d.ts.map +1 -1
- package/dist/core/fork.js +27 -15
- package/dist/core/fork.js.map +1 -1
- package/dist/core/fork.sql +35 -22
- package/dist/core/git-membership.d.ts +19 -1
- package/dist/core/git-membership.d.ts.map +1 -1
- package/dist/core/git-membership.js +225 -50
- package/dist/core/git-membership.js.map +1 -1
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +28 -19
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/plurnk-uri.d.ts +13 -2
- package/dist/core/plurnk-uri.d.ts.map +1 -1
- package/dist/core/plurnk-uri.js +59 -21
- package/dist/core/plurnk-uri.js.map +1 -1
- package/dist/core/scheme-types.d.ts +1 -0
- package/dist/core/scheme-types.d.ts.map +1 -1
- package/dist/core/worker-ops.sql +10 -6
- package/dist/core/worker-settings.d.ts +1 -0
- package/dist/core/worker-settings.d.ts.map +1 -1
- package/dist/core/worker-settings.js +7 -0
- package/dist/core/worker-settings.js.map +1 -1
- package/dist/core/workspace-settings.d.ts +2 -0
- package/dist/core/workspace-settings.d.ts.map +1 -1
- package/dist/core/workspace-settings.js +5 -1
- package/dist/core/workspace-settings.js.map +1 -1
- package/dist/digest/Digest.d.ts.map +1 -1
- package/dist/digest/Digest.js +1 -1
- package/dist/digest/Digest.js.map +1 -1
- package/dist/digest/digest.sql +1 -1
- package/dist/schemes/Exec.d.ts +3 -2
- package/dist/schemes/Exec.d.ts.map +1 -1
- package/dist/schemes/Exec.js +55 -22
- package/dist/schemes/Exec.js.map +1 -1
- package/dist/schemes/ExecOutputScheme.d.ts.map +1 -1
- package/dist/schemes/ExecOutputScheme.js +5 -4
- package/dist/schemes/ExecOutputScheme.js.map +1 -1
- package/dist/schemes/File.d.ts.map +1 -1
- package/dist/schemes/File.js +170 -80
- package/dist/schemes/File.js.map +1 -1
- package/dist/schemes/Prompt.d.ts +2 -3
- package/dist/schemes/Prompt.d.ts.map +1 -1
- package/dist/schemes/Prompt.js +4 -7
- package/dist/schemes/Prompt.js.map +1 -1
- package/dist/schemes/Skill.d.ts.map +1 -1
- package/dist/schemes/Skill.js +3 -1
- package/dist/schemes/Skill.js.map +1 -1
- package/dist/schemes/Worker.d.ts.map +1 -1
- package/dist/schemes/Worker.js +95 -49
- package/dist/schemes/Worker.js.map +1 -1
- package/dist/schemes/_entry-crud.d.ts +5 -5
- package/dist/schemes/_entry-crud.d.ts.map +1 -1
- package/dist/schemes/_entry-crud.js +22 -17
- package/dist/schemes/_entry-crud.js.map +1 -1
- package/dist/schemes/_entry-crud.sql +58 -23
- package/dist/schemes/_entry-find.d.ts +3 -2
- package/dist/schemes/_entry-find.d.ts.map +1 -1
- package/dist/schemes/_entry-find.js +26 -25
- package/dist/schemes/_entry-find.js.map +1 -1
- package/dist/schemes/_entry-find.sql +10 -7
- package/dist/schemes/_entry-manifest.d.ts +2 -2
- package/dist/schemes/_entry-manifest.d.ts.map +1 -1
- package/dist/schemes/_entry-manifest.js +6 -5
- package/dist/schemes/_entry-manifest.js.map +1 -1
- package/dist/schemes/_entry-ops.d.ts +6 -5
- package/dist/schemes/_entry-ops.d.ts.map +1 -1
- package/dist/schemes/_entry-ops.js +39 -46
- package/dist/schemes/_entry-ops.js.map +1 -1
- package/dist/schemes/_entry-ops.sql +9 -6
- package/dist/schemes/_entry-send.d.ts +2 -2
- package/dist/schemes/_entry-send.d.ts.map +1 -1
- package/dist/schemes/_entry-send.js +16 -14
- package/dist/schemes/_entry-send.js.map +1 -1
- package/dist/schemes/_search-index.d.ts.map +1 -1
- package/dist/schemes/_search-index.js +2 -0
- package/dist/schemes/_search-index.js.map +1 -1
- package/dist/server/Daemon.d.ts +42 -10
- package/dist/server/Daemon.d.ts.map +1 -1
- package/dist/server/Daemon.js +326 -248
- package/dist/server/Daemon.js.map +1 -1
- package/dist/server/DaemonModule.d.ts +84 -19
- package/dist/server/DaemonModule.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.d.ts +3 -1
- package/dist/server/DrainSupervisor.d.ts.map +1 -1
- package/dist/server/DrainSupervisor.js +11 -9
- package/dist/server/DrainSupervisor.js.map +1 -1
- package/dist/server/Functionality.d.ts +44 -0
- package/dist/server/Functionality.d.ts.map +1 -0
- package/dist/server/Functionality.js +422 -0
- package/dist/server/Functionality.js.map +1 -0
- package/dist/server/FunctionalityManager.d.ts +22 -0
- package/dist/server/FunctionalityManager.d.ts.map +1 -0
- package/dist/server/FunctionalityManager.js +121 -0
- package/dist/server/FunctionalityManager.js.map +1 -0
- package/dist/server/SkillsFunctionality.d.ts +61 -0
- package/dist/server/SkillsFunctionality.d.ts.map +1 -0
- package/dist/server/SkillsFunctionality.js +449 -0
- package/dist/server/SkillsFunctionality.js.map +1 -0
- package/dist/server/WorkerCapabilities.d.ts +21 -0
- package/dist/server/WorkerCapabilities.d.ts.map +1 -0
- package/dist/server/WorkerCapabilities.js +214 -0
- package/dist/server/WorkerCapabilities.js.map +1 -0
- package/dist/server/WorkerResidency.d.ts +40 -0
- package/dist/server/WorkerResidency.d.ts.map +1 -0
- package/dist/server/WorkerResidency.js +283 -0
- package/dist/server/WorkerResidency.js.map +1 -0
- package/dist/server/client-input.d.ts +1 -0
- package/dist/server/client-input.d.ts.map +1 -1
- package/dist/server/client-input.js +22 -1
- package/dist/server/client-input.js.map +1 -1
- package/dist/server/dispatch-as-plurnk.d.ts +2 -2
- package/dist/server/dispatch-as-plurnk.d.ts.map +1 -1
- package/dist/server/dispatch-as-plurnk.js +89 -25
- package/dist/server/dispatch-as-plurnk.js.map +1 -1
- package/dist/server/drain.sql +11 -6
- package/dist/server/envelope.d.ts +6 -1
- package/dist/server/envelope.d.ts.map +1 -1
- package/dist/server/envelope.js +8 -2
- package/dist/server/envelope.js.map +1 -1
- package/dist/server/envelope.sql +11 -3
- package/dist/server/lifecycle-recovery.sql +13 -16
- package/dist/server/loopDocs.d.ts +2 -1
- package/dist/server/loopDocs.d.ts.map +1 -1
- package/dist/server/loopDocs.js +67 -51
- package/dist/server/loopDocs.js.map +1 -1
- package/dist/server/loopDocs.sql +14 -10
- package/dist/server/module-discovery.d.ts +2 -2
- package/dist/server/module-discovery.d.ts.map +1 -1
- package/dist/server/module-discovery.js +27 -2
- package/dist/server/module-discovery.js.map +1 -1
- package/dist/server/seam-entry-read.sql +9 -7
- package/dist/server/seam-log-read.sql +1 -1
- package/dist/server/seam-loop.sql +10 -1
- package/dist/server/seam-proposal-list.sql +4 -2
- package/dist/server/worker-capabilities.sql +19 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +11 -1
- package/dist/service.js.map +1 -1
- package/migrations/001_schema.sql +486 -136
- package/package.json +34 -32
- package/dist/server/skillDocs.d.ts +0 -9
- package/dist/server/skillDocs.d.ts.map +0 -1
- package/dist/server/skillDocs.js +0 -212
- package/dist/server/skillDocs.js.map +0 -1
- package/dist/server/skillDocs.sql +0 -14
- package/dist/server/workspace-capabilities.sql +0 -19
package/dist/core/fork.js
CHANGED
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
// holding a deep copy of the parent's log: loops → turns → entries, with their
|
|
5
5
|
// folded body intervals and attribution (`origin`/`source`) intact. It copies
|
|
6
6
|
// nothing of the shared WORLD — commons-owned entries and the overlay are shared, never
|
|
7
|
-
// copied, because the worker never owned them.
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
7
|
+
// copied, because the worker never owned them. Worker-owned entries follow the
|
|
8
|
+
// registered scheme's explicit inheritance disposition; only quiescent snapshots
|
|
9
|
+
// are owner-remapped parent → branch. Its ambient observation cursor is copied
|
|
10
|
+
// with inherited history, then diverges independently.
|
|
11
11
|
import WorkerName from "./WorkerName.js";
|
|
12
|
+
import { isGeneratedPathname } from "./plurnk-uri.js";
|
|
12
13
|
export default class Fork {
|
|
13
14
|
// Terminal loop statuses ({§lifecycle-terms}) — inherited loops outside this set are clamped to 200.
|
|
14
15
|
static #TERMINAL_LOOP = new Set([200, 413, 429, 499, 500, 504, 508]);
|
|
15
|
-
static async fork(db, parentWorkerId, name) {
|
|
16
|
+
static async fork(db, parentWorkerId, name, entryInheritance) {
|
|
16
17
|
const parent = await db.fork_get_worker.get({ id: parentWorkerId });
|
|
17
18
|
if (parent === undefined)
|
|
18
19
|
throw new Error(`fork: worker ${parentWorkerId} not found`);
|
|
@@ -26,20 +27,18 @@ export default class Fork {
|
|
|
26
27
|
qualifier: "fork",
|
|
27
28
|
parentWorkerId,
|
|
28
29
|
origin: parent.origin,
|
|
30
|
+
forkSnapshot: true,
|
|
29
31
|
})
|
|
30
32
|
: await db.fork_insert_worker.get({
|
|
31
33
|
workspace_id: parent.workspace_id,
|
|
32
34
|
name: WorkerName.assert(name),
|
|
33
35
|
parent_worker_id: parentWorkerId,
|
|
34
36
|
origin: parent.origin,
|
|
37
|
+
fork_snapshot: 1,
|
|
35
38
|
});
|
|
36
39
|
if (branch === undefined)
|
|
37
40
|
throw new Error("fork: explicit branch worker insert returned no row");
|
|
38
41
|
const branchWorkerId = branch.id;
|
|
39
|
-
await db.fork_set_ambient_cursor.run({
|
|
40
|
-
worker_id: branchWorkerId,
|
|
41
|
-
ambient_event_cursor: parent.ambient_event_cursor,
|
|
42
|
-
});
|
|
43
42
|
await db.fork_set_generation_policy.run({
|
|
44
43
|
worker_id: branchWorkerId,
|
|
45
44
|
model_route_id: parent.model_route_id,
|
|
@@ -123,12 +122,25 @@ export default class Fork {
|
|
|
123
122
|
tags_removed: effect.tags_removed,
|
|
124
123
|
});
|
|
125
124
|
}
|
|
126
|
-
// {§
|
|
127
|
-
//
|
|
128
|
-
//
|
|
129
|
-
const
|
|
130
|
-
for (const s of
|
|
131
|
-
|
|
125
|
+
// {§machine-processes-entry-inheritance} — only a scheme-declared,
|
|
126
|
+
// quiescent snapshot crosses the fork. Live resources retain no phantom
|
|
127
|
+
// callback, and rederived/omitted entries carry no accidental bytes.
|
|
128
|
+
const ownedEntries = await db.fork_get_private_entries.all({ owner_id: parentWorkerId });
|
|
129
|
+
for (const s of ownedEntries) {
|
|
130
|
+
if (s.active === 1 || entryInheritance(s.scheme) !== "snapshot")
|
|
131
|
+
continue;
|
|
132
|
+
// {§worker-generated-subtree} — the child rederives Plurnk-generated
|
|
133
|
+
// documents from its inherited Functionality instead of inheriting bytes.
|
|
134
|
+
if (s.scheme === "worker" && isGeneratedPathname(s.pathname))
|
|
135
|
+
continue;
|
|
136
|
+
const ne = await db.fork_insert_private_entry.get({
|
|
137
|
+
workspace_id: parent.workspace_id,
|
|
138
|
+
owner_id: branchWorkerId,
|
|
139
|
+
scheme: s.scheme,
|
|
140
|
+
authority: s.authority,
|
|
141
|
+
pathname: s.pathname,
|
|
142
|
+
attributes: s.attributes,
|
|
143
|
+
});
|
|
132
144
|
if (ne === undefined)
|
|
133
145
|
throw new Error("fork: private entry copy returned no row");
|
|
134
146
|
await db.fork_copy_entry_channels.run({ old_entry_id: s.id, new_entry_id: ne.id });
|
package/dist/core/fork.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/core/fork.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,EAAE;AACF,yFAAyF;AACzF,+EAA+E;AAC/E,8EAA8E;AAC9E,wFAAwF;AACxF
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/core/fork.ts"],"names":[],"mappings":"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"}
|
package/dist/core/fork.sql
CHANGED
|
@@ -7,22 +7,28 @@
|
|
|
7
7
|
-- cursor from the same initial fork snapshot as its copied log.
|
|
8
8
|
|
|
9
9
|
-- PREP: fork_get_worker
|
|
10
|
-
SELECT workspace_id, name, origin,
|
|
10
|
+
SELECT workspace_id, name, origin,
|
|
11
11
|
model_route_id, spawn_model_route_id, reasoning_policy
|
|
12
12
|
FROM workers WHERE id = $id;
|
|
13
13
|
|
|
14
14
|
-- PREP: fork_insert_worker
|
|
15
|
-
-- A new
|
|
16
|
-
INSERT
|
|
17
|
-
|
|
15
|
+
-- A new child in the parent's workspace. A FORK captures the parent's cursor
|
|
16
|
+
-- and the occurrence high-water in this one INSERT; a fresh WORK passes 0 and
|
|
17
|
+
-- receives the ordinary creation baseline trigger instead.
|
|
18
|
+
INSERT INTO workers (
|
|
19
|
+
workspace_id, name, parent_worker_id, origin,
|
|
20
|
+
ambient_event_cursor, fork_event_boundary
|
|
21
|
+
)
|
|
22
|
+
SELECT $workspace_id, $name, $parent_worker_id, $origin,
|
|
23
|
+
CASE WHEN $fork_snapshot = 1 THEN parent.ambient_event_cursor ELSE NULL END,
|
|
24
|
+
CASE WHEN $fork_snapshot = 1 THEN COALESCE((
|
|
25
|
+
SELECT MAX(ae.id) FROM ambient_events ae WHERE ae.workspace_id = $workspace_id
|
|
26
|
+
), 0) ELSE NULL END
|
|
27
|
+
FROM workers parent
|
|
28
|
+
WHERE parent.id = $parent_worker_id
|
|
29
|
+
AND parent.workspace_id = $workspace_id
|
|
18
30
|
RETURNING id;
|
|
19
31
|
|
|
20
|
-
-- PREP: fork_set_ambient_cursor
|
|
21
|
-
-- Use the cursor captured before log copying. If the parent observes more while
|
|
22
|
-
-- the fork is in flight, the branch stays conservatively behind and replays the
|
|
23
|
-
-- copied event ids idempotently rather than skipping unseen history.
|
|
24
|
-
UPDATE workers SET ambient_event_cursor = $ambient_event_cursor WHERE id = $worker_id;
|
|
25
|
-
|
|
26
32
|
-- PREP: fork_set_generation_policy
|
|
27
33
|
-- A branch copies durable worker policy by value, then diverges independently.
|
|
28
34
|
UPDATE workers
|
|
@@ -94,8 +100,8 @@ FROM log_entries WHERE worker_id = $worker_id ORDER BY id;
|
|
|
94
100
|
|
|
95
101
|
-- PREP: fork_insert_log_entry
|
|
96
102
|
-- RETURNING the new id so the caller can copy the row's classifications onto it ({§log-item-tags}).
|
|
97
|
-
INSERT INTO log_entries (worker_id, loop_id, turn_id, sequence, at, origin, source, ambient_event_id, op, delimiter, signal, scheme, username, password, hostname, port, pathname, query, fragment, lineMarker, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight, state, outcome, attrs, folded)
|
|
98
|
-
VALUES ($worker_id, $loop_id, $turn_id, $sequence, $at, $origin, $source, $ambient_event_id, $op, $delimiter, $signal, $scheme, $username, $password, $hostname, $port, $pathname, $query, $fragment, $lineMarker, $tx, $mimetype_tx, $rx, $mimetype_rx, $status_rx, $weight, $state, $outcome, $attrs, $folded)
|
|
103
|
+
INSERT INTO log_entries (worker_id, loop_id, turn_id, sequence, at, origin, source, ambient_event_id, inherited_history, op, delimiter, signal, scheme, username, password, hostname, port, pathname, query, fragment, lineMarker, tx, mimetype_tx, rx, mimetype_rx, status_rx, weight, state, outcome, attrs, folded)
|
|
104
|
+
VALUES ($worker_id, $loop_id, $turn_id, $sequence, $at, $origin, $source, $ambient_event_id, 1, $op, $delimiter, $signal, $scheme, $username, $password, $hostname, $port, $pathname, $query, $fragment, $lineMarker, $tx, $mimetype_tx, $rx, $mimetype_rx, $status_rx, $weight, $state, $outcome, $attrs, $folded)
|
|
99
105
|
RETURNING id;
|
|
100
106
|
|
|
101
107
|
-- PREP: fork_copy_log_tags
|
|
@@ -133,22 +139,29 @@ VALUES (
|
|
|
133
139
|
$tags_removed
|
|
134
140
|
);
|
|
135
141
|
|
|
136
|
-
-- {§
|
|
137
|
-
--
|
|
138
|
-
--
|
|
139
|
-
-- the branch's scratch is independent — it edits its own without touching the parent's.
|
|
142
|
+
-- {§machine-processes-entry-inheritance} — core enumerates the parent's
|
|
143
|
+
-- Worker-owned entries; the registered scheme decides whether each is copied,
|
|
144
|
+
-- rederived, or omitted. A copied snapshot gets a new id and remapped owner.
|
|
140
145
|
|
|
141
146
|
-- PREP: fork_get_private_entries
|
|
142
|
-
-- The parent's
|
|
143
|
-
--
|
|
144
|
-
|
|
145
|
-
|
|
147
|
+
-- The parent's Worker-owned entries. The caller applies each registered
|
|
148
|
+
-- scheme's {§manifest-entry-inheritance}; active entries are never eligible for
|
|
149
|
+
-- a snapshot because their process-local producer cannot be cloned.
|
|
150
|
+
SELECT e.id, e.scheme, e.authority, e.pathname, e.attributes,
|
|
151
|
+
EXISTS (
|
|
152
|
+
SELECT 1 FROM entry_channels c
|
|
153
|
+
WHERE c.entry_id = e.id AND c.state = 'active'
|
|
154
|
+
) AS active
|
|
155
|
+
FROM entries e
|
|
156
|
+
WHERE e.owner_id = $owner_id
|
|
157
|
+
ORDER BY e.id;
|
|
146
158
|
|
|
147
159
|
-- PREP: fork_insert_private_entry
|
|
148
160
|
-- A private entry copy with the branch as owner. synced_sig/membership_origin are NULL
|
|
149
161
|
-- (scratch is never disk-synced nor a file member); version defaults 0.
|
|
150
|
-
INSERT INTO entries (
|
|
151
|
-
|
|
162
|
+
INSERT INTO entries (owner_id, scheme, authority, pathname, attributes)
|
|
163
|
+
SELECT $owner_id, $scheme, $authority, $pathname, $attributes
|
|
164
|
+
FROM workers WHERE id = $owner_id AND workspace_id = $workspace_id
|
|
152
165
|
RETURNING id;
|
|
153
166
|
|
|
154
167
|
-- PREP: fork_copy_entry_channels
|
|
@@ -7,11 +7,29 @@ export interface FsDivergence {
|
|
|
7
7
|
before: string;
|
|
8
8
|
after: string;
|
|
9
9
|
}
|
|
10
|
+
export type FileCreationAdmission = {
|
|
11
|
+
ok: true;
|
|
12
|
+
incorporation: "git" | "explicit-pick" | "create-pick";
|
|
13
|
+
} | {
|
|
14
|
+
ok: false;
|
|
15
|
+
code: string;
|
|
16
|
+
status: 403;
|
|
17
|
+
detail: string;
|
|
18
|
+
extensions: Readonly<Record<string, unknown>>;
|
|
19
|
+
};
|
|
20
|
+
export type FileCreationIncorporation = {
|
|
21
|
+
origin: "git" | "constraint";
|
|
22
|
+
generatedPick: boolean;
|
|
23
|
+
};
|
|
10
24
|
export default class GitMembership {
|
|
11
25
|
#private;
|
|
12
|
-
static wouldGitAdmit(root: string, key: string, signal?: AbortSignal): Promise<boolean>;
|
|
13
26
|
static stageFile(root: string, key: string, signal?: AbortSignal): Promise<void>;
|
|
14
27
|
static projectRepository(db: Db, workspaceId: number, signal?: AbortSignal): Promise<string | null>;
|
|
28
|
+
static planCreation(db: Db, workspaceId: number, key: string, signal?: AbortSignal): Promise<FileCreationAdmission>;
|
|
29
|
+
static incorporateCreation(db: Db, workspaceId: number, entryId: number, root: string, key: string, admission: Extract<FileCreationAdmission, {
|
|
30
|
+
ok: true;
|
|
31
|
+
}>, signal?: AbortSignal): Promise<FileCreationIncorporation>;
|
|
32
|
+
static removeGeneratedPick(db: Db, workspaceId: number, key: string): Promise<unknown>;
|
|
15
33
|
static resolveGitMembership(db: Db, workspaceId: number, signal: AbortSignal | undefined): Promise<string[]>;
|
|
16
34
|
static resolveMembershipEffects(db: Db, workspaceId: number, signal: AbortSignal | undefined): Promise<{
|
|
17
35
|
members: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-membership.d.ts","sourceRoot":"","sources":["../../src/core/git-membership.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git-membership.d.ts","sourceRoot":"","sources":["../../src/core/git-membership.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAU7D,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AA6BD,MAAM,MAAM,qBAAqB,GAC3B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,aAAa,EAAE,KAAK,GAAG,eAAe,GAAG,aAAa,CAAC;CAC1D,GACC;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjD,CAAC;AAEN,MAAM,MAAM,yBAAyB,GAAG;IACpC,MAAM,EAAE,KAAK,GAAG,YAAY,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;CAC1B,CAAC;AAkCF,MAAM,CAAC,OAAO,OAAO,aAAa;;IAU9B,OAAa,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAErF;IA+CD,OAAa,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxG;IAwCD,OAAa,YAAY,CACrB,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,qBAAqB,CAAC,CAwEhC;IAKD,OAAa,mBAAmB,CAC5B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,OAAO,CAAC,qBAAqB,EAAE;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,CAAC,EACvD,MAAM,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,yBAAyB,CAAC,CAiCpC;IAED,MAAM,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAErF;IAyLD,OAAa,oBAAoB,CAC7B,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;IASD,OAAa,wBAAwB,CACjC,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,SAAS,GAChC,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB5F;IA4PD,OAAa,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAcjF;CAcJ"}
|