@plurnk/plurnk-service 1.12.0 → 1.14.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.
Files changed (82) hide show
  1. package/.env.defaults +4 -6
  2. package/SPEC.md +62 -85
  3. package/dist/build-info.json +1 -1
  4. package/dist/content/matcher.d.ts.map +1 -1
  5. package/dist/content/matcher.js +21 -1
  6. package/dist/content/matcher.js.map +1 -1
  7. package/dist/core/ChannelWrite.d.ts +1 -17
  8. package/dist/core/ChannelWrite.d.ts.map +1 -1
  9. package/dist/core/ChannelWrite.js +5 -5
  10. package/dist/core/ChannelWrite.js.map +1 -1
  11. package/dist/core/CoreSchemeServices.d.ts +1 -0
  12. package/dist/core/CoreSchemeServices.d.ts.map +1 -1
  13. package/dist/core/CoreSchemeServices.js +1 -0
  14. package/dist/core/CoreSchemeServices.js.map +1 -1
  15. package/dist/core/Dispatcher.d.ts +3 -4
  16. package/dist/core/Dispatcher.d.ts.map +1 -1
  17. package/dist/core/Dispatcher.js +13 -43
  18. package/dist/core/Dispatcher.js.map +1 -1
  19. package/dist/core/Engine.d.ts +3 -12
  20. package/dist/core/Engine.d.ts.map +1 -1
  21. package/dist/core/Engine.js +103 -45
  22. package/dist/core/Engine.js.map +1 -1
  23. package/dist/core/Engine.sql +2 -0
  24. package/dist/core/PacketBuilder.d.ts.map +1 -1
  25. package/dist/core/PacketBuilder.js +1 -6
  26. package/dist/core/PacketBuilder.js.map +1 -1
  27. package/dist/core/TurnRunner.d.ts.map +1 -1
  28. package/dist/core/TurnRunner.js +26 -5
  29. package/dist/core/TurnRunner.js.map +1 -1
  30. package/dist/core/VectorPump.d.ts +28 -0
  31. package/dist/core/VectorPump.d.ts.map +1 -0
  32. package/dist/core/VectorPump.js +130 -0
  33. package/dist/core/VectorPump.js.map +1 -0
  34. package/dist/core/packet-wire.d.ts +1 -1
  35. package/dist/core/packet-wire.d.ts.map +1 -1
  36. package/dist/core/packet-wire.js +2 -5
  37. package/dist/core/packet-wire.js.map +1 -1
  38. package/dist/core/scheme-types.d.ts +1 -0
  39. package/dist/core/scheme-types.d.ts.map +1 -1
  40. package/dist/digest/Digest.d.ts.map +1 -1
  41. package/dist/digest/Digest.js +69 -16
  42. package/dist/digest/Digest.js.map +1 -1
  43. package/dist/schemes/Log.d.ts.map +1 -1
  44. package/dist/schemes/Log.js +14 -0
  45. package/dist/schemes/Log.js.map +1 -1
  46. package/dist/schemes/Log.sql +3 -0
  47. package/dist/schemes/Worker.d.ts.map +1 -1
  48. package/dist/schemes/Worker.js +0 -2
  49. package/dist/schemes/Worker.js.map +1 -1
  50. package/dist/schemes/_entry-graph.sql +21 -1
  51. package/dist/schemes/_entry-semantic.d.ts.map +1 -1
  52. package/dist/schemes/_entry-semantic.js +5 -0
  53. package/dist/schemes/_entry-semantic.js.map +1 -1
  54. package/dist/schemes/_search-index.d.ts +5 -1
  55. package/dist/schemes/_search-index.d.ts.map +1 -1
  56. package/dist/schemes/_search-index.js +66 -24
  57. package/dist/schemes/_search-index.js.map +1 -1
  58. package/dist/server/Daemon.d.ts +1 -1
  59. package/dist/server/Daemon.d.ts.map +1 -1
  60. package/dist/server/Daemon.js +81 -149
  61. package/dist/server/Daemon.js.map +1 -1
  62. package/dist/server/drain.sql +16 -0
  63. package/dist/server/lifecycle-recovery.sql +0 -7
  64. package/dist/server/model-route.d.ts +2 -2
  65. package/dist/server/model-route.d.ts.map +1 -1
  66. package/dist/server/model-route.js +8 -1
  67. package/dist/server/model-route.js.map +1 -1
  68. package/migrations/001_schema.sql +0 -51
  69. package/package.json +37 -37
  70. package/dist/core/BranchReceipt.d.ts +0 -6
  71. package/dist/core/BranchReceipt.d.ts.map +0 -1
  72. package/dist/core/BranchReceipt.js +0 -29
  73. package/dist/core/BranchReceipt.js.map +0 -1
  74. package/dist/core/GitBranch.d.ts +0 -23
  75. package/dist/core/GitBranch.d.ts.map +0 -1
  76. package/dist/core/GitBranch.js +0 -120
  77. package/dist/core/GitBranch.js.map +0 -1
  78. package/dist/server/BranchBatches.d.ts +0 -49
  79. package/dist/server/BranchBatches.d.ts.map +0 -1
  80. package/dist/server/BranchBatches.js +0 -599
  81. package/dist/server/BranchBatches.js.map +0 -1
  82. package/dist/server/branch-batch.sql +0 -156
@@ -1,156 +0,0 @@
1
- -- {§worker-branch-batch}: durable serialized Git branch batches.
2
-
3
- -- PREP: branch_batch_by_turn
4
- SELECT id, state
5
- FROM branch_batches
6
- WHERE parent_turn_id = $parent_turn_id;
7
-
8
- -- PREP: branch_batch_insert
9
- INSERT INTO branch_batches (
10
- workspace_id, parent_worker_id, parent_loop_id, parent_turn_id
11
- ) VALUES (
12
- $workspace_id, $parent_worker_id, $parent_loop_id, $parent_turn_id
13
- )
14
- RETURNING id;
15
-
16
- -- PREP: branch_batch_next_sequence
17
- SELECT COALESCE(MAX(sequence), 0) + 1 AS next
18
- FROM branch_batch_items
19
- WHERE batch_id = $batch_id;
20
-
21
- -- PREP: branch_batch_insert_item
22
- INSERT INTO branch_batch_items (
23
- batch_id, sequence, worker_id, loop_id, branch
24
- ) VALUES (
25
- $batch_id, $sequence, $worker_id, $loop_id, $branch
26
- )
27
- RETURNING id;
28
-
29
- -- PREP: branch_batch_seal
30
- UPDATE branch_batches
31
- SET state = 'queued'
32
- WHERE parent_turn_id = $parent_turn_id AND state = 'collecting'
33
- RETURNING id, workspace_id, parent_worker_id;
34
-
35
- -- PREP: branch_batch_start
36
- UPDATE branch_batches
37
- SET state = 'running',
38
- repository_path = $repository_path,
39
- original_ref = $original_ref,
40
- original_commit = $original_commit
41
- WHERE id = $batch_id AND state = 'queued';
42
-
43
- -- PREP: branch_batch_reset_preflight
44
- UPDATE branch_batches
45
- SET repository_path = NULL,
46
- original_ref = NULL,
47
- original_commit = NULL
48
- WHERE id = $batch_id AND state = 'queued';
49
-
50
- -- PREP: branch_batch_items
51
- SELECT id, sequence, worker_id, loop_id, branch, state,
52
- result_commit, changed
53
- FROM branch_batch_items
54
- WHERE batch_id = $batch_id
55
- ORDER BY sequence;
56
-
57
- -- PREP: branch_batch_start_item
58
- UPDATE branch_batch_items
59
- SET state = 'running',
60
- started_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
61
- WHERE id = $item_id AND state = 'queued';
62
-
63
- -- PREP: branch_batch_set_active
64
- UPDATE branch_batches
65
- SET active_sequence = $sequence
66
- WHERE id = $batch_id AND state = 'running';
67
-
68
- -- PREP: branch_batch_record_tip
69
- UPDATE branch_batch_items
70
- SET result_commit = $result_commit,
71
- changed = $changed
72
- WHERE id = $item_id AND result_commit IS NULL;
73
-
74
- -- PREP: branch_batch_finish_item
75
- UPDATE branch_batch_items
76
- SET state = $state,
77
- result = $result,
78
- completed_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
79
- WHERE id = $item_id;
80
-
81
- -- PREP: branch_batch_finish
82
- UPDATE branch_batches
83
- SET state = $state,
84
- active_sequence = NULL,
85
- problem = $problem,
86
- completed_at = CASE
87
- WHEN $state IN ('completed', 'failed') THEN strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
88
- ELSE NULL
89
- END
90
- WHERE id = $batch_id;
91
-
92
- -- PREP: branch_batch_active_for_worker
93
- SELECT b.id AS batch_id, b.state, b.repository_path, i.branch
94
- FROM branch_batches b
95
- JOIN branch_batch_items i ON i.batch_id = b.id
96
- WHERE i.worker_id = $worker_id
97
- AND b.state = 'running'
98
- AND i.state = 'running'
99
- AND b.active_sequence = i.sequence
100
- LIMIT 1;
101
-
102
- -- PREP: branch_batch_active
103
- SELECT id, workspace_id, parent_worker_id, parent_loop_id, parent_turn_id,
104
- state, active_sequence, repository_path, original_ref, original_commit,
105
- problem
106
- FROM branch_batches
107
- WHERE state IN ('collecting', 'queued', 'running', 'recovery_required')
108
- ORDER BY id;
109
-
110
- -- PREP: branch_batch_receipt
111
- SELECT b.id AS batch_id, b.state AS batch_state, i.sequence, i.worker_id,
112
- i.loop_id, i.branch, i.state AS item_state, i.result,
113
- i.result_commit, i.changed
114
- FROM branch_batches b
115
- JOIN branch_batch_items i ON i.batch_id = b.id
116
- WHERE b.id = $batch_id
117
- ORDER BY i.sequence;
118
-
119
- -- PREP: branch_batch_receipt_for_worker
120
- WITH latest AS (
121
- SELECT b.id
122
- FROM branch_batches b
123
- JOIN branch_batch_items i ON i.batch_id = b.id
124
- WHERE i.worker_id = $worker_id
125
- AND b.state IN ('completed', 'failed')
126
- ORDER BY b.id DESC
127
- LIMIT 1
128
- )
129
- SELECT b.id AS batch_id, b.state AS batch_state, i.branch,
130
- i.state AS item_state, i.result, i.result_commit, i.changed,
131
- w.name AS worker_name
132
- FROM latest
133
- JOIN branch_batches b ON b.id = latest.id
134
- JOIN branch_batch_items i ON i.batch_id = b.id AND i.worker_id = $worker_id
135
- JOIN workers w ON w.id = i.worker_id;
136
-
137
- -- PREP: branch_batch_worker_lineage
138
- WITH RECURSIVE lineage(id) AS (
139
- SELECT $worker_id
140
- UNION ALL
141
- SELECT w.parent_worker_id
142
- FROM workers w
143
- JOIN lineage l ON w.id = l.id
144
- WHERE w.parent_worker_id IS NOT NULL
145
- )
146
- SELECT 1 AS member
147
- FROM lineage
148
- WHERE id = $root_worker_id
149
- LIMIT 1;
150
-
151
- -- PREP: branch_batch_workspace_open_subscriptions
152
- SELECT COUNT(*) AS n
153
- FROM subscriptions s
154
- JOIN workers w ON w.id = s.worker_id
155
- WHERE w.workspace_id = $workspace_id
156
- AND s.closed_at IS NULL;