@blxzer/cursor-trellis-core 0.4.2 → 0.4.3
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/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/task/adapter-middleware.d.ts +91 -0
- package/dist/task/adapter-middleware.d.ts.map +1 -0
- package/dist/task/adapter-middleware.js +384 -0
- package/dist/task/adapter-middleware.js.map +1 -0
- package/dist/task/contract-migrate.d.ts +29 -0
- package/dist/task/contract-migrate.d.ts.map +1 -0
- package/dist/task/contract-migrate.js +207 -0
- package/dist/task/contract-migrate.js.map +1 -0
- package/dist/task/full-quality.d.ts +89 -0
- package/dist/task/full-quality.d.ts.map +1 -0
- package/dist/task/full-quality.js +379 -0
- package/dist/task/full-quality.js.map +1 -0
- package/dist/task/index.d.ts +20 -0
- package/dist/task/index.d.ts.map +1 -1
- package/dist/task/index.js +10 -0
- package/dist/task/index.js.map +1 -1
- package/dist/task/kernel-cli.d.ts +44 -0
- package/dist/task/kernel-cli.d.ts.map +1 -0
- package/dist/task/kernel-cli.js +287 -0
- package/dist/task/kernel-cli.js.map +1 -0
- package/dist/task/kernel-contract.d.ts +113 -0
- package/dist/task/kernel-contract.d.ts.map +1 -0
- package/dist/task/kernel-contract.js +332 -0
- package/dist/task/kernel-contract.js.map +1 -0
- package/dist/task/kernel-store.d.ts +99 -0
- package/dist/task/kernel-store.d.ts.map +1 -0
- package/dist/task/kernel-store.js +735 -0
- package/dist/task/kernel-store.js.map +1 -0
- package/dist/task/lite-context-pack.d.ts +71 -0
- package/dist/task/lite-context-pack.d.ts.map +1 -0
- package/dist/task/lite-context-pack.js +175 -0
- package/dist/task/lite-context-pack.js.map +1 -0
- package/dist/task/ondemand-topology.d.ts +100 -0
- package/dist/task/ondemand-topology.d.ts.map +1 -0
- package/dist/task/ondemand-topology.js +418 -0
- package/dist/task/ondemand-topology.js.map +1 -0
- package/dist/task/p36-artifact-migrate.d.ts +61 -0
- package/dist/task/p36-artifact-migrate.d.ts.map +1 -0
- package/dist/task/p36-artifact-migrate.js +336 -0
- package/dist/task/p36-artifact-migrate.js.map +1 -0
- package/dist/task/p36-wave-c.d.ts +39 -0
- package/dist/task/p36-wave-c.d.ts.map +1 -0
- package/dist/task/p36-wave-c.js +100 -0
- package/dist/task/p36-wave-c.js.map +1 -0
- package/dist/task/records.d.ts +9 -0
- package/dist/task/records.d.ts.map +1 -1
- package/dist/task/records.js +11 -0
- package/dist/task/records.js.map +1 -1
- package/package.json +1 -6
- package/dist/rpc/broker/audit.d.ts +0 -16
- package/dist/rpc/broker/audit.d.ts.map +0 -1
- package/dist/rpc/broker/audit.js +0 -33
- package/dist/rpc/broker/audit.js.map +0 -1
- package/dist/rpc/broker/in-process.d.ts +0 -62
- package/dist/rpc/broker/in-process.d.ts.map +0 -1
- package/dist/rpc/broker/in-process.js +0 -490
- package/dist/rpc/broker/in-process.js.map +0 -1
- package/dist/rpc/broker/journal.d.ts +0 -11
- package/dist/rpc/broker/journal.d.ts.map +0 -1
- package/dist/rpc/broker/journal.js +0 -17
- package/dist/rpc/broker/journal.js.map +0 -1
- package/dist/rpc/contract/errors.d.ts +0 -18
- package/dist/rpc/contract/errors.d.ts.map +0 -1
- package/dist/rpc/contract/errors.js +0 -55
- package/dist/rpc/contract/errors.js.map +0 -1
- package/dist/rpc/contract/parse.d.ts +0 -9
- package/dist/rpc/contract/parse.d.ts.map +0 -1
- package/dist/rpc/contract/parse.js +0 -144
- package/dist/rpc/contract/parse.js.map +0 -1
- package/dist/rpc/contract/topics.d.ts +0 -11
- package/dist/rpc/contract/topics.d.ts.map +0 -1
- package/dist/rpc/contract/topics.js +0 -42
- package/dist/rpc/contract/topics.js.map +0 -1
- package/dist/rpc/contract/types.d.ts +0 -54
- package/dist/rpc/contract/types.d.ts.map +0 -1
- package/dist/rpc/contract/types.js +0 -39
- package/dist/rpc/contract/types.js.map +0 -1
- package/dist/rpc/index.d.ts +0 -10
- package/dist/rpc/index.d.ts.map +0 -1
- package/dist/rpc/index.js +0 -11
- package/dist/rpc/index.js.map +0 -1
- package/dist/rpc/transport/localhost-server.d.ts +0 -36
- package/dist/rpc/transport/localhost-server.d.ts.map +0 -1
- package/dist/rpc/transport/localhost-server.js +0 -275
- package/dist/rpc/transport/localhost-server.js.map +0 -1
- package/dist/rpc/transport/websocket.d.ts +0 -20
- package/dist/rpc/transport/websocket.d.ts.map +0 -1
- package/dist/rpc/transport/websocket.js +0 -156
- package/dist/rpc/transport/websocket.js.map +0 -1
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stage 1 Kernel Data Contract (P28 D05 / P30 Stage 1).
|
|
3
|
+
*
|
|
4
|
+
* Frozen here: record categories (identity, revision, 3D state, Transition
|
|
5
|
+
* Request, atomic audit) and legal phase edges. Disk field names are an
|
|
6
|
+
* implementation choice for this wave; user-visible `task.json.status`
|
|
7
|
+
* enumerations are not switched.
|
|
8
|
+
*/
|
|
9
|
+
import { isPlainObject, taskRecordSchema, } from "./schema.js";
|
|
10
|
+
export const KERNEL_SCHEMA_VERSION = 1;
|
|
11
|
+
export const KERNEL_JSON_BASENAME = "kernel.json";
|
|
12
|
+
export const KERNEL_PHASES = [
|
|
13
|
+
"open",
|
|
14
|
+
"define",
|
|
15
|
+
"approve",
|
|
16
|
+
"execute",
|
|
17
|
+
"verify",
|
|
18
|
+
"integrate",
|
|
19
|
+
"close",
|
|
20
|
+
];
|
|
21
|
+
export const KERNEL_CONDITIONS = [
|
|
22
|
+
"ready",
|
|
23
|
+
"active",
|
|
24
|
+
"waiting",
|
|
25
|
+
"blocked",
|
|
26
|
+
];
|
|
27
|
+
export const KERNEL_OUTCOMES = ["completed", "cancelled", "failed"];
|
|
28
|
+
export class KernelError extends Error {
|
|
29
|
+
code;
|
|
30
|
+
constructor(code, message) {
|
|
31
|
+
super(message);
|
|
32
|
+
this.name = "KernelError";
|
|
33
|
+
this.code = code;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export const KERNEL_COMMAND_OPS = [
|
|
37
|
+
"read",
|
|
38
|
+
"transition",
|
|
39
|
+
"create",
|
|
40
|
+
"start",
|
|
41
|
+
"record-gate",
|
|
42
|
+
"archive",
|
|
43
|
+
"patch",
|
|
44
|
+
"migrate",
|
|
45
|
+
];
|
|
46
|
+
/**
|
|
47
|
+
* Legal Kernel phase edges for Stage 1. Integrate is optional (P28);
|
|
48
|
+
* Close is reachable from Verify or Integrate. Condition/outcome are
|
|
49
|
+
* derived from the target phase — they are not independently requested.
|
|
50
|
+
*/
|
|
51
|
+
export const KERNEL_PHASE_EDGES = [
|
|
52
|
+
["open", "define"],
|
|
53
|
+
["define", "approve"],
|
|
54
|
+
["approve", "execute"],
|
|
55
|
+
["execute", "verify"],
|
|
56
|
+
["verify", "integrate"],
|
|
57
|
+
["verify", "close"],
|
|
58
|
+
["integrate", "close"],
|
|
59
|
+
];
|
|
60
|
+
const EDGE_SET = new Set(KERNEL_PHASE_EDGES.map(([from, to]) => `${from}->${to}`));
|
|
61
|
+
const EXECUTE_PATH = [
|
|
62
|
+
"open",
|
|
63
|
+
"define",
|
|
64
|
+
"approve",
|
|
65
|
+
"execute",
|
|
66
|
+
];
|
|
67
|
+
const CLOSE_PATH = [
|
|
68
|
+
"open",
|
|
69
|
+
"define",
|
|
70
|
+
"approve",
|
|
71
|
+
"execute",
|
|
72
|
+
"verify",
|
|
73
|
+
"close",
|
|
74
|
+
];
|
|
75
|
+
export function emptyKernelGates() {
|
|
76
|
+
return { schemaVersion: 1, transitions: {} };
|
|
77
|
+
}
|
|
78
|
+
export function isKernelPhase(value) {
|
|
79
|
+
return (typeof value === "string" &&
|
|
80
|
+
KERNEL_PHASES.includes(value));
|
|
81
|
+
}
|
|
82
|
+
export function isKernelCondition(value) {
|
|
83
|
+
return (typeof value === "string" &&
|
|
84
|
+
KERNEL_CONDITIONS.includes(value));
|
|
85
|
+
}
|
|
86
|
+
export function isKernelOutcome(value) {
|
|
87
|
+
return (typeof value === "string" &&
|
|
88
|
+
KERNEL_OUTCOMES.includes(value));
|
|
89
|
+
}
|
|
90
|
+
export function isLegalPhaseEdge(from, to) {
|
|
91
|
+
return EDGE_SET.has(`${from}->${to}`);
|
|
92
|
+
}
|
|
93
|
+
export function deriveStateForPhase(phase) {
|
|
94
|
+
switch (phase) {
|
|
95
|
+
case "open":
|
|
96
|
+
case "define":
|
|
97
|
+
return { phase, condition: "ready", outcome: null };
|
|
98
|
+
case "approve":
|
|
99
|
+
case "verify":
|
|
100
|
+
case "integrate":
|
|
101
|
+
return { phase, condition: "waiting", outcome: null };
|
|
102
|
+
case "execute":
|
|
103
|
+
return { phase, condition: "active", outcome: null };
|
|
104
|
+
case "close":
|
|
105
|
+
return { phase, condition: "ready", outcome: "completed" };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Read-only projection of the legacy `task.json.status` enum onto Kernel
|
|
110
|
+
* 3D state. Does not mutate user-visible status names.
|
|
111
|
+
*/
|
|
112
|
+
export function projectLegacyStatus(status) {
|
|
113
|
+
switch (status) {
|
|
114
|
+
case "planning":
|
|
115
|
+
return deriveStateForPhase("define");
|
|
116
|
+
case "in_progress":
|
|
117
|
+
return deriveStateForPhase("execute");
|
|
118
|
+
case "review":
|
|
119
|
+
return deriveStateForPhase("verify");
|
|
120
|
+
case "completed":
|
|
121
|
+
case "done":
|
|
122
|
+
return deriveStateForPhase("close");
|
|
123
|
+
default:
|
|
124
|
+
return deriveStateForPhase("open");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* User-visible `task.json.status` names stay on the Stage 1 enum.
|
|
129
|
+
* Approve maps to planning so start-execution is the only planning→in_progress cut.
|
|
130
|
+
*/
|
|
131
|
+
export function kernelPhaseToLegacyStatus(phase) {
|
|
132
|
+
switch (phase) {
|
|
133
|
+
case "open":
|
|
134
|
+
case "define":
|
|
135
|
+
case "approve":
|
|
136
|
+
return "planning";
|
|
137
|
+
case "execute":
|
|
138
|
+
return "in_progress";
|
|
139
|
+
case "verify":
|
|
140
|
+
case "integrate":
|
|
141
|
+
return "review";
|
|
142
|
+
case "close":
|
|
143
|
+
return "completed";
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export function hopsToExecute(from) {
|
|
147
|
+
if (from === "execute")
|
|
148
|
+
return [];
|
|
149
|
+
const index = EXECUTE_PATH.indexOf(from);
|
|
150
|
+
if (index === -1) {
|
|
151
|
+
throw new KernelError("INVALID_TRANSITION", `cannot start-execution from Kernel phase ${from}`);
|
|
152
|
+
}
|
|
153
|
+
return EXECUTE_PATH.slice(index + 1);
|
|
154
|
+
}
|
|
155
|
+
export function hopsToClose(from) {
|
|
156
|
+
if (from === "close")
|
|
157
|
+
return [];
|
|
158
|
+
if (from === "integrate")
|
|
159
|
+
return ["close"];
|
|
160
|
+
const index = CLOSE_PATH.indexOf(from);
|
|
161
|
+
if (index === -1) {
|
|
162
|
+
throw new KernelError("INVALID_TRANSITION", `cannot archive/close from Kernel phase ${from}`);
|
|
163
|
+
}
|
|
164
|
+
return CLOSE_PATH.slice(index + 1);
|
|
165
|
+
}
|
|
166
|
+
export function parseKernelSnapshot(input) {
|
|
167
|
+
if (!isPlainObject(input)) {
|
|
168
|
+
throw new KernelError("CORRUPT_STATE", "kernel snapshot must be a JSON object");
|
|
169
|
+
}
|
|
170
|
+
if (input.schemaVersion !== KERNEL_SCHEMA_VERSION) {
|
|
171
|
+
throw new KernelError("CORRUPT_STATE", `unsupported kernel schemaVersion: ${String(input.schemaVersion)}`);
|
|
172
|
+
}
|
|
173
|
+
if (!isPlainObject(input.identity) || typeof input.identity.taskId !== "string") {
|
|
174
|
+
throw new KernelError("CORRUPT_STATE", "kernel.identity.taskId must be a string");
|
|
175
|
+
}
|
|
176
|
+
if (!isNonNegativeInt(input.revision)) {
|
|
177
|
+
throw new KernelError("CORRUPT_STATE", "kernel.revision must be a non-negative integer");
|
|
178
|
+
}
|
|
179
|
+
if (!isKernelPhase(input.phase)) {
|
|
180
|
+
throw new KernelError("CORRUPT_STATE", "kernel.phase is invalid");
|
|
181
|
+
}
|
|
182
|
+
if (!isKernelCondition(input.condition)) {
|
|
183
|
+
throw new KernelError("CORRUPT_STATE", "kernel.condition is invalid");
|
|
184
|
+
}
|
|
185
|
+
const outcome = parseOutcome(input.outcome);
|
|
186
|
+
if (!Array.isArray(input.audit)) {
|
|
187
|
+
throw new KernelError("CORRUPT_STATE", "kernel.audit must be an array");
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
schemaVersion: KERNEL_SCHEMA_VERSION,
|
|
191
|
+
identity: { taskId: input.identity.taskId },
|
|
192
|
+
revision: input.revision,
|
|
193
|
+
phase: input.phase,
|
|
194
|
+
condition: input.condition,
|
|
195
|
+
outcome,
|
|
196
|
+
audit: input.audit.map((event, index) => parseAuditEvent(event, index)),
|
|
197
|
+
gates: parseGates(input.gates),
|
|
198
|
+
projection: parseProjection(input.projection),
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function parseGates(input) {
|
|
202
|
+
if (input === undefined || input === null)
|
|
203
|
+
return emptyKernelGates();
|
|
204
|
+
if (!isPlainObject(input)) {
|
|
205
|
+
throw new KernelError("CORRUPT_STATE", "kernel.gates must be an object");
|
|
206
|
+
}
|
|
207
|
+
const schemaVersion = input.schemaVersion === undefined ? 1 : input.schemaVersion;
|
|
208
|
+
if (schemaVersion !== 1) {
|
|
209
|
+
throw new KernelError("CORRUPT_STATE", `unsupported kernel.gates.schemaVersion: ${String(schemaVersion)}`);
|
|
210
|
+
}
|
|
211
|
+
const transitionsIn = input.transitions;
|
|
212
|
+
if (transitionsIn === undefined || transitionsIn === null) {
|
|
213
|
+
return emptyKernelGates();
|
|
214
|
+
}
|
|
215
|
+
if (!isPlainObject(transitionsIn)) {
|
|
216
|
+
throw new KernelError("CORRUPT_STATE", "kernel.gates.transitions must be an object");
|
|
217
|
+
}
|
|
218
|
+
const transitions = {};
|
|
219
|
+
for (const [transition, gates] of Object.entries(transitionsIn)) {
|
|
220
|
+
if (!isPlainObject(gates)) {
|
|
221
|
+
throw new KernelError("CORRUPT_STATE", `kernel.gates.transitions.${transition} must be an object`);
|
|
222
|
+
}
|
|
223
|
+
transitions[transition] = { ...gates };
|
|
224
|
+
}
|
|
225
|
+
return { schemaVersion: 1, transitions };
|
|
226
|
+
}
|
|
227
|
+
function parseProjection(input) {
|
|
228
|
+
if (input === undefined || input === null)
|
|
229
|
+
return null;
|
|
230
|
+
if (!isPlainObject(input)) {
|
|
231
|
+
throw new KernelError("CORRUPT_STATE", "kernel.projection must be an object");
|
|
232
|
+
}
|
|
233
|
+
if (typeof input.status !== "string" || input.status.trim() === "") {
|
|
234
|
+
throw new KernelError("CORRUPT_STATE", "kernel.projection.status must be a string");
|
|
235
|
+
}
|
|
236
|
+
const extras = input.extras === undefined || input.extras === null
|
|
237
|
+
? {}
|
|
238
|
+
: isPlainObject(input.extras)
|
|
239
|
+
? { ...input.extras }
|
|
240
|
+
: (() => {
|
|
241
|
+
throw new KernelError("CORRUPT_STATE", "kernel.projection.extras must be an object");
|
|
242
|
+
})();
|
|
243
|
+
try {
|
|
244
|
+
return {
|
|
245
|
+
status: input.status,
|
|
246
|
+
record: taskRecordSchema.parse(input.record),
|
|
247
|
+
extras,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
throw new KernelError("CORRUPT_STATE", `kernel.projection.record is invalid: ${err instanceof Error ? err.message : String(err)}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
function parseOutcome(value) {
|
|
255
|
+
if (value === null)
|
|
256
|
+
return null;
|
|
257
|
+
if (isKernelOutcome(value))
|
|
258
|
+
return value;
|
|
259
|
+
throw new KernelError("CORRUPT_STATE", "kernel.outcome is invalid");
|
|
260
|
+
}
|
|
261
|
+
function parseAuditEvent(input, index) {
|
|
262
|
+
if (!isPlainObject(input)) {
|
|
263
|
+
throw new KernelError("CORRUPT_STATE", `kernel.audit[${index}] must be an object`);
|
|
264
|
+
}
|
|
265
|
+
if (typeof input.id !== "string" || typeof input.at !== "string") {
|
|
266
|
+
throw new KernelError("CORRUPT_STATE", `kernel.audit[${index}] is missing id/at`);
|
|
267
|
+
}
|
|
268
|
+
if (typeof input.actor !== "string" || typeof input.idempotencyKey !== "string") {
|
|
269
|
+
throw new KernelError("CORRUPT_STATE", `kernel.audit[${index}] is missing actor/idempotencyKey`);
|
|
270
|
+
}
|
|
271
|
+
const evidence = input.evidence === null || input.evidence === undefined
|
|
272
|
+
? null
|
|
273
|
+
: typeof input.evidence === "string"
|
|
274
|
+
? input.evidence
|
|
275
|
+
: (() => {
|
|
276
|
+
throw new KernelError("CORRUPT_STATE", `kernel.audit[${index}].evidence must be a string or null`);
|
|
277
|
+
})();
|
|
278
|
+
return {
|
|
279
|
+
id: input.id,
|
|
280
|
+
at: input.at,
|
|
281
|
+
actor: input.actor,
|
|
282
|
+
idempotencyKey: input.idempotencyKey,
|
|
283
|
+
evidence,
|
|
284
|
+
from: parseStateRevision(input.from, `kernel.audit[${index}].from`),
|
|
285
|
+
to: parseStateRevision(input.to, `kernel.audit[${index}].to`),
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
function parseStateRevision(input, path) {
|
|
289
|
+
if (!isPlainObject(input)) {
|
|
290
|
+
throw new KernelError("CORRUPT_STATE", `${path} must be an object`);
|
|
291
|
+
}
|
|
292
|
+
if (!isKernelPhase(input.phase)) {
|
|
293
|
+
throw new KernelError("CORRUPT_STATE", `${path}.phase is invalid`);
|
|
294
|
+
}
|
|
295
|
+
if (!isKernelCondition(input.condition)) {
|
|
296
|
+
throw new KernelError("CORRUPT_STATE", `${path}.condition is invalid`);
|
|
297
|
+
}
|
|
298
|
+
if (!isNonNegativeInt(input.revision)) {
|
|
299
|
+
throw new KernelError("CORRUPT_STATE", `${path}.revision is invalid`);
|
|
300
|
+
}
|
|
301
|
+
return {
|
|
302
|
+
phase: input.phase,
|
|
303
|
+
condition: input.condition,
|
|
304
|
+
outcome: parseOutcome(input.outcome),
|
|
305
|
+
revision: input.revision,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
export function isNonNegativeInt(value) {
|
|
309
|
+
return typeof value === "number" && Number.isInteger(value) && value >= 0;
|
|
310
|
+
}
|
|
311
|
+
export function requireNonEmptyString(value, field) {
|
|
312
|
+
if (typeof value !== "string" || value.trim() === "") {
|
|
313
|
+
throw new KernelError("INVALID_REQUEST", `${field} must be a non-empty string`);
|
|
314
|
+
}
|
|
315
|
+
return value;
|
|
316
|
+
}
|
|
317
|
+
export function hookIsPresent(value) {
|
|
318
|
+
if (value === undefined || value === null)
|
|
319
|
+
return false;
|
|
320
|
+
if (typeof value === "string")
|
|
321
|
+
return value.trim() !== "";
|
|
322
|
+
if (typeof value === "boolean")
|
|
323
|
+
return value;
|
|
324
|
+
if (typeof value === "number")
|
|
325
|
+
return true;
|
|
326
|
+
if (Array.isArray(value))
|
|
327
|
+
return value.length > 0;
|
|
328
|
+
if (typeof value === "object")
|
|
329
|
+
return Object.keys(value).length > 0;
|
|
330
|
+
return true;
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=kernel-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernel-contract.js","sourceRoot":"","sources":["../../src/task/kernel-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repo-local Kernel store: atomic snapshot write (state + audit in one
|
|
3
|
+
* file) with optimistic revision and a process lock.
|
|
4
|
+
*
|
|
5
|
+
* Stage 1 does not mutate `task.json.status` — legacy lifecycle remains
|
|
6
|
+
* a read projection. `writeTaskRecord` stays the low-level task.json
|
|
7
|
+
* primitive; this module is the new core-state write entry.
|
|
8
|
+
*/
|
|
9
|
+
import { type TrellisTaskRecord } from "./schema.js";
|
|
10
|
+
import { type KernelAuditEvent, type KernelSnapshot, type LegacyTaskProjection, type TransitionRequest } from "./kernel-contract.js";
|
|
11
|
+
export interface KernelReadResult {
|
|
12
|
+
kernel: KernelSnapshot;
|
|
13
|
+
persisted: boolean;
|
|
14
|
+
legacy: LegacyTaskProjection;
|
|
15
|
+
}
|
|
16
|
+
export interface KernelTransitionResult extends KernelReadResult {
|
|
17
|
+
idempotent: boolean;
|
|
18
|
+
audit: KernelAuditEvent;
|
|
19
|
+
}
|
|
20
|
+
export interface KernelCommandResult extends KernelReadResult {
|
|
21
|
+
idempotent: boolean;
|
|
22
|
+
audit: KernelAuditEvent;
|
|
23
|
+
projected: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface KernelCreateRequest {
|
|
26
|
+
taskDir: string;
|
|
27
|
+
actor: string;
|
|
28
|
+
idempotencyKey: string;
|
|
29
|
+
record: TrellisTaskRecord;
|
|
30
|
+
extras?: Record<string, unknown>;
|
|
31
|
+
evidence?: string;
|
|
32
|
+
gate?: unknown;
|
|
33
|
+
policy?: unknown;
|
|
34
|
+
cwd?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface KernelStartRequest {
|
|
37
|
+
taskDir: string;
|
|
38
|
+
expectedRevision: number;
|
|
39
|
+
actor: string;
|
|
40
|
+
idempotencyKey: string;
|
|
41
|
+
record: TrellisTaskRecord;
|
|
42
|
+
extras?: Record<string, unknown>;
|
|
43
|
+
evidence?: string;
|
|
44
|
+
gate?: unknown;
|
|
45
|
+
policy?: unknown;
|
|
46
|
+
cwd?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface KernelRecordGateRequest {
|
|
49
|
+
taskDir: string;
|
|
50
|
+
expectedRevision: number;
|
|
51
|
+
actor: string;
|
|
52
|
+
idempotencyKey: string;
|
|
53
|
+
transition: string;
|
|
54
|
+
gateName: string;
|
|
55
|
+
record: Record<string, unknown>;
|
|
56
|
+
extras?: Record<string, unknown>;
|
|
57
|
+
evidence?: string;
|
|
58
|
+
cwd?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface KernelArchiveRequest {
|
|
61
|
+
taskDir: string;
|
|
62
|
+
expectedRevision: number;
|
|
63
|
+
actor: string;
|
|
64
|
+
idempotencyKey: string;
|
|
65
|
+
record: TrellisTaskRecord;
|
|
66
|
+
extras?: Record<string, unknown>;
|
|
67
|
+
evidence?: string;
|
|
68
|
+
gate?: unknown;
|
|
69
|
+
policy?: unknown;
|
|
70
|
+
cwd?: string;
|
|
71
|
+
}
|
|
72
|
+
export interface KernelPatchRequest {
|
|
73
|
+
taskDir: string;
|
|
74
|
+
expectedRevision: number;
|
|
75
|
+
actor: string;
|
|
76
|
+
idempotencyKey: string;
|
|
77
|
+
/** Canonical field patch and/or full record. Status hops are rejected. */
|
|
78
|
+
record?: unknown;
|
|
79
|
+
extras?: Record<string, unknown>;
|
|
80
|
+
evidence?: string;
|
|
81
|
+
gate?: unknown;
|
|
82
|
+
policy?: unknown;
|
|
83
|
+
cwd?: string;
|
|
84
|
+
}
|
|
85
|
+
/** Test-only interceptor between kernel.json persist and task.json projection. */
|
|
86
|
+
export declare function setKernelAfterWriteHook(hook: (() => void) | null): void;
|
|
87
|
+
export declare function resolveTaskDir(taskDir: string, cwd?: string): string;
|
|
88
|
+
export declare function kernelJsonPath(taskDir: string): string;
|
|
89
|
+
export declare function readKernel(options: {
|
|
90
|
+
taskDir: string;
|
|
91
|
+
cwd?: string;
|
|
92
|
+
}): KernelReadResult;
|
|
93
|
+
export declare function applyKernelTransition(request: TransitionRequest): KernelTransitionResult;
|
|
94
|
+
export declare function applyKernelCreate(request: KernelCreateRequest): KernelCommandResult;
|
|
95
|
+
export declare function applyKernelStart(request: KernelStartRequest): KernelCommandResult;
|
|
96
|
+
export declare function applyKernelRecordGate(request: KernelRecordGateRequest): KernelCommandResult;
|
|
97
|
+
export declare function applyKernelArchive(request: KernelArchiveRequest): KernelCommandResult;
|
|
98
|
+
export declare function applyKernelPatch(request: KernelPatchRequest): KernelCommandResult;
|
|
99
|
+
//# sourceMappingURL=kernel-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kernel-store.d.ts","sourceRoot":"","sources":["../../src/task/kernel-store.ts"],"names":[],"mappings":"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"}
|