kiokuko-dsh 0.1.21 → 0.1.22
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/dist/dsh/boundary-worker.d.ts +4 -0
- package/dist/dsh/boundary-worker.d.ts.map +1 -1
- package/dist/dsh/boundary-worker.js +36 -10
- package/dist/dsh/boundary-worker.js.map +1 -1
- package/dist/dsh/continuation.d.ts +1 -0
- package/dist/dsh/continuation.d.ts.map +1 -1
- package/dist/dsh/continuation.js +19 -5
- package/dist/dsh/continuation.js.map +1 -1
- package/dist/dsh/enno-controller.d.ts +6 -0
- package/dist/dsh/enno-controller.d.ts.map +1 -1
- package/dist/dsh/enno-controller.js +42 -14
- package/dist/dsh/enno-controller.js.map +1 -1
- package/dist/dsh/host-adapter.d.ts.map +1 -1
- package/dist/dsh/host-adapter.js +275 -5
- package/dist/dsh/host-adapter.js.map +1 -1
- package/dist/dsh/loop-guard.d.ts +43 -0
- package/dist/dsh/loop-guard.d.ts.map +1 -0
- package/dist/dsh/loop-guard.js +206 -0
- package/dist/dsh/loop-guard.js.map +1 -0
- package/dist/dsh/tools.d.ts.map +1 -1
- package/dist/dsh/tools.js +6 -6
- package/dist/dsh/tools.js.map +1 -1
- package/dist/dsh/turn-process.d.ts +8 -1
- package/dist/dsh/turn-process.d.ts.map +1 -1
- package/dist/dsh/turn-process.js +22 -1
- package/dist/dsh/turn-process.js.map +1 -1
- package/dist/model-tools/registry.d.ts +6 -0
- package/dist/model-tools/registry.d.ts.map +1 -1
- package/dist/model-tools/registry.js +35 -0
- package/dist/model-tools/registry.js.map +1 -1
- package/docs/database.md +8 -0
- package/migrations/004_dsh_loop_guard.sql +46 -0
- package/package.json +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
-- Bound every plugin-owned automatic continuation across turns and restarts.
|
|
2
|
+
-- A claim is durable before native delivery; replaying the same claim never
|
|
3
|
+
-- consumes another slot.
|
|
4
|
+
|
|
5
|
+
CREATE TABLE dsh_loop_guard_states (
|
|
6
|
+
run_id TEXT NOT NULL REFERENCES ledger_runs(run_id) ON DELETE CASCADE,
|
|
7
|
+
dsh_session_id TEXT NOT NULL CHECK (length(dsh_session_id) BETWEEN 1 AND 256),
|
|
8
|
+
instruction_digest TEXT CHECK (instruction_digest IS NULL OR length(instruction_digest) = 64),
|
|
9
|
+
generation INTEGER NOT NULL DEFAULT 0 CHECK (generation >= 0),
|
|
10
|
+
automatic_count INTEGER NOT NULL DEFAULT 0 CHECK (automatic_count BETWEEN 0 AND 3),
|
|
11
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK (status IN ('active', 'waiting_user')),
|
|
12
|
+
blocked_claim_id TEXT CHECK (blocked_claim_id IS NULL OR length(blocked_claim_id) = 64),
|
|
13
|
+
created_at TEXT NOT NULL,
|
|
14
|
+
updated_at TEXT NOT NULL,
|
|
15
|
+
PRIMARY KEY (run_id, dsh_session_id)
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE TABLE dsh_loop_guard_claims (
|
|
19
|
+
claim_id TEXT PRIMARY KEY CHECK (length(claim_id) = 64),
|
|
20
|
+
run_id TEXT NOT NULL,
|
|
21
|
+
dsh_session_id TEXT NOT NULL,
|
|
22
|
+
instruction_digest TEXT NOT NULL CHECK (length(instruction_digest) = 64),
|
|
23
|
+
generation INTEGER NOT NULL CHECK (generation >= 0),
|
|
24
|
+
ordinal INTEGER NOT NULL CHECK (ordinal BETWEEN 1 AND 4),
|
|
25
|
+
decision TEXT NOT NULL CHECK (decision IN ('deliver', 'wait_user')),
|
|
26
|
+
resolution TEXT CHECK (resolution IS NULL OR resolution IN ('user_answer', 'manual_user', 'superseded')),
|
|
27
|
+
created_at TEXT NOT NULL,
|
|
28
|
+
question_asked_at TEXT,
|
|
29
|
+
resolved_at TEXT,
|
|
30
|
+
FOREIGN KEY (run_id, dsh_session_id)
|
|
31
|
+
REFERENCES dsh_loop_guard_states(run_id, dsh_session_id) ON DELETE CASCADE
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE INDEX idx_dsh_loop_guard_claims_scope
|
|
35
|
+
ON dsh_loop_guard_claims(run_id, dsh_session_id, generation, created_at);
|
|
36
|
+
|
|
37
|
+
-- Stateful host effects can also cycle successfully without advancing Enno.
|
|
38
|
+
-- Keep their no-progress accounting on the already leased job row.
|
|
39
|
+
ALTER TABLE dsh_boundary_jobs ADD COLUMN progress_digest TEXT
|
|
40
|
+
CHECK (progress_digest IS NULL OR length(progress_digest) = 64);
|
|
41
|
+
ALTER TABLE dsh_boundary_jobs ADD COLUMN progress_count INTEGER NOT NULL DEFAULT 0
|
|
42
|
+
CHECK (progress_count BETWEEN 0 AND 3);
|
|
43
|
+
ALTER TABLE dsh_boundary_jobs ADD COLUMN progress_claim_attempt INTEGER
|
|
44
|
+
CHECK (progress_claim_attempt IS NULL OR progress_claim_attempt >= 1);
|
|
45
|
+
ALTER TABLE dsh_boundary_jobs ADD COLUMN progress_waiting INTEGER NOT NULL DEFAULT 0
|
|
46
|
+
CHECK (progress_waiting IN (0, 1));
|