@tiangong-ai/cli 0.0.59 → 0.0.60
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/AGENTS.md +2 -2
- package/README.md +126 -21
- package/dist/research/orchestration.js +101 -44
- package/dist/research/orchestration.js.map +1 -1
- package/dist/research/workspace/acquisition-forecast.d.ts +3 -0
- package/dist/research/workspace/acquisition-forecast.js +28 -3
- package/dist/research/workspace/acquisition-forecast.js.map +1 -1
- package/dist/research/workspace/acquisition-revision.d.ts +13 -0
- package/dist/research/workspace/acquisition-revision.js +142 -0
- package/dist/research/workspace/acquisition-revision.js.map +1 -0
- package/dist/research/workspace/acquisition.d.ts +3 -1
- package/dist/research/workspace/acquisition.js +67 -35
- package/dist/research/workspace/acquisition.js.map +1 -1
- package/dist/research/workspace/analysis-run.d.ts +2 -0
- package/dist/research/workspace/analysis-run.js +28 -0
- package/dist/research/workspace/analysis-run.js.map +1 -0
- package/dist/research/workspace/artifacts.d.ts +3 -0
- package/dist/research/workspace/artifacts.js +13 -0
- package/dist/research/workspace/artifacts.js.map +1 -1
- package/dist/research/workspace/audit-bundle.d.ts +5 -0
- package/dist/research/workspace/audit-bundle.js +17 -0
- package/dist/research/workspace/audit-bundle.js.map +1 -1
- package/dist/research/workspace/content-evidence.d.ts +3 -0
- package/dist/research/workspace/content-evidence.js +149 -22
- package/dist/research/workspace/content-evidence.js.map +1 -1
- package/dist/research/workspace/project-authority.d.ts +21 -0
- package/dist/research/workspace/project-authority.js +186 -0
- package/dist/research/workspace/project-authority.js.map +1 -0
- package/dist/research/workspace/project-mutations.d.ts +26 -0
- package/dist/research/workspace/project-mutations.js +330 -0
- package/dist/research/workspace/project-mutations.js.map +1 -0
- package/dist/research/workspace/projects.d.ts +2 -1
- package/dist/research/workspace/projects.js +132 -91
- package/dist/research/workspace/projects.js.map +1 -1
- package/dist/research/workspace/publication-workflow.d.ts +3 -0
- package/dist/research/workspace/publication-workflow.js +15 -3
- package/dist/research/workspace/publication-workflow.js.map +1 -1
- package/dist/research/workspace/runtime.d.ts +5 -0
- package/dist/research/workspace/runtime.js +83 -54
- package/dist/research/workspace/runtime.js.map +1 -1
- package/dist/research/workspace/schemas.d.ts +6 -0
- package/dist/research/workspace/schemas.js +13 -2
- package/dist/research/workspace/schemas.js.map +1 -1
- package/dist/research/workspace/scientific-review-execution.js +2 -0
- package/dist/research/workspace/scientific-review-execution.js.map +1 -1
- package/dist/research/workspace/scientific-review.d.ts +3 -1
- package/dist/research/workspace/scientific-review.js +9 -2
- package/dist/research/workspace/scientific-review.js.map +1 -1
- package/dist/research/workspace/setup-catalog.js +2 -2
- package/dist/research/workspace/task-acceptance.d.ts +126 -0
- package/dist/research/workspace/task-acceptance.js +480 -0
- package/dist/research/workspace/task-acceptance.js.map +1 -0
- package/dist/research/workspace/task-audit.d.ts +12 -0
- package/dist/research/workspace/task-audit.js +181 -0
- package/dist/research/workspace/task-audit.js.map +1 -0
- package/dist/research/workspace/task-contract.d.ts +139 -0
- package/dist/research/workspace/task-contract.js +485 -0
- package/dist/research/workspace/task-contract.js.map +1 -0
- package/dist/research/workspace/workspace.js +11 -8
- package/dist/research/workspace/workspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { lstat, mkdir, readFile, readdir, rename, rm, rmdir } from "node:fs/promises";
|
|
3
|
+
import { basename, join } from "node:path";
|
|
4
|
+
import { CliError } from "../../errors.js";
|
|
5
|
+
import { appendEvidenceLedgerEvent, evidenceLedgerPath } from "./evidence-ledger.js";
|
|
6
|
+
import { appendJournalEvent, readVerifiedJournal } from "./journal.js";
|
|
7
|
+
import { canonicalJson, isObject, sha256Text, workspacePaths, writeJsonAtomic } from "./storage.js";
|
|
8
|
+
const ID = /^[a-z0-9][a-z0-9-]{2,63}$/;
|
|
9
|
+
const HASH = /^[a-f0-9]{64}$/;
|
|
10
|
+
const UUID = /^[a-f0-9-]{36}$/;
|
|
11
|
+
const MAX_RECORD_BYTES = 16 * 1024 * 1024;
|
|
12
|
+
function failure(message, record) {
|
|
13
|
+
return new CliError(message, {
|
|
14
|
+
code: "RESEARCH_PROJECT_RECOVERY_REQUIRED",
|
|
15
|
+
exitCode: 3,
|
|
16
|
+
details: record
|
|
17
|
+
? {
|
|
18
|
+
operationId: record.identity.operationId,
|
|
19
|
+
sourceProjectId: record.identity.sourceProjectId,
|
|
20
|
+
targetProjectId: record.identity.targetProjectId,
|
|
21
|
+
recovery: "Preserve the stored state. Resolve the reported conflict or restore a trusted backup before retrying the same explicit request; do not forge journal/project records.",
|
|
22
|
+
}
|
|
23
|
+
: undefined,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
async function privateDirectory(root, parts, create) {
|
|
27
|
+
let path = workspacePaths(root).control;
|
|
28
|
+
if (!create) {
|
|
29
|
+
const existing = await lstat(join(path, "lineage", ...parts)).catch((error) => {
|
|
30
|
+
if (error.code === "ENOENT" || error.code === "ENOTDIR")
|
|
31
|
+
return undefined;
|
|
32
|
+
throw error;
|
|
33
|
+
});
|
|
34
|
+
if (!existing)
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
await requireDirectory(path);
|
|
38
|
+
for (const part of ["lineage", ...parts]) {
|
|
39
|
+
path = join(path, part);
|
|
40
|
+
let info = await lstat(path).catch((error) => {
|
|
41
|
+
if (error.code === "ENOENT")
|
|
42
|
+
return undefined;
|
|
43
|
+
throw error;
|
|
44
|
+
});
|
|
45
|
+
if (!info) {
|
|
46
|
+
if (!create)
|
|
47
|
+
return null;
|
|
48
|
+
await mkdir(path, { mode: 0o700 });
|
|
49
|
+
info = await lstat(path);
|
|
50
|
+
}
|
|
51
|
+
if (!info.isDirectory() || info.isSymbolicLink()) {
|
|
52
|
+
throw failure("Project recovery storage must use regular non-symlink directories.");
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return path;
|
|
56
|
+
}
|
|
57
|
+
async function requireDirectory(path) {
|
|
58
|
+
const info = await lstat(path).catch(() => undefined);
|
|
59
|
+
if (!info?.isDirectory() || info.isSymbolicLink()) {
|
|
60
|
+
throw failure("Project recovery directories must be regular and cannot redirect through symlinks.");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function filename(record) {
|
|
64
|
+
return (record.identity.kind +
|
|
65
|
+
"-" +
|
|
66
|
+
(record.identity.targetProjectId ?? record.identity.sourceProjectId) +
|
|
67
|
+
".json");
|
|
68
|
+
}
|
|
69
|
+
function bindRecord(core) {
|
|
70
|
+
return { ...core, recordSha256: sha256Text(canonicalJson(core)) };
|
|
71
|
+
}
|
|
72
|
+
async function readRecord(path) {
|
|
73
|
+
const info = await lstat(path).catch(() => undefined);
|
|
74
|
+
if (!info?.isFile() || info.isSymbolicLink() || info.size > MAX_RECORD_BYTES) {
|
|
75
|
+
throw failure("Project recovery record is not a bounded regular file.");
|
|
76
|
+
}
|
|
77
|
+
const value = await readRecoveryJson(path);
|
|
78
|
+
if (!isObject(value) || !isObject(value.identity))
|
|
79
|
+
throw failure("Project recovery record is invalid.");
|
|
80
|
+
const identity = value.identity;
|
|
81
|
+
if (identity.schemaVersion !== 1 ||
|
|
82
|
+
!["fork", "retry", "acquisition-revision", "task-scope"].includes(String(identity.kind)) ||
|
|
83
|
+
typeof identity.operationId !== "string" ||
|
|
84
|
+
!UUID.test(identity.operationId) ||
|
|
85
|
+
typeof identity.sourceProjectId !== "string" ||
|
|
86
|
+
!ID.test(identity.sourceProjectId) ||
|
|
87
|
+
typeof identity.requestSha256 !== "string" ||
|
|
88
|
+
!HASH.test(identity.requestSha256) ||
|
|
89
|
+
typeof identity.beforeSha256 !== "string" ||
|
|
90
|
+
!HASH.test(identity.beforeSha256) ||
|
|
91
|
+
(identity.kind === "fork"
|
|
92
|
+
? typeof identity.targetProjectId !== "string" ||
|
|
93
|
+
!ID.test(identity.targetProjectId) ||
|
|
94
|
+
identity.targetProjectId === identity.sourceProjectId
|
|
95
|
+
: identity.targetProjectId !== null) ||
|
|
96
|
+
(value.after !== null &&
|
|
97
|
+
(!isObject(value.after) || value.after.id !== identity.sourceProjectId)) ||
|
|
98
|
+
(value.afterSha256 !== null &&
|
|
99
|
+
(typeof value.afterSha256 !== "string" || !HASH.test(value.afterSha256))) ||
|
|
100
|
+
(value.targetSha256 !== null &&
|
|
101
|
+
(typeof value.targetSha256 !== "string" || !HASH.test(value.targetSha256))))
|
|
102
|
+
throw failure("Project recovery record identity is invalid.");
|
|
103
|
+
const { recordSha256, ...core } = value;
|
|
104
|
+
if (recordSha256 !== sha256Text(canonicalJson(core)) ||
|
|
105
|
+
(value.after === null
|
|
106
|
+
? value.afterSha256 !== null
|
|
107
|
+
: value.afterSha256 !== sha256Text(canonicalJson(value.after)))) {
|
|
108
|
+
throw failure("Project recovery record failed its hash binding.");
|
|
109
|
+
}
|
|
110
|
+
const record = value;
|
|
111
|
+
if (basename(path) !== filename(record))
|
|
112
|
+
throw failure("Project recovery record filename is invalid.");
|
|
113
|
+
return record;
|
|
114
|
+
}
|
|
115
|
+
async function projectState(root, projectId) {
|
|
116
|
+
const projects = workspacePaths(root).projects;
|
|
117
|
+
await requireDirectory(projects);
|
|
118
|
+
await requireDirectory(join(projects, projectId));
|
|
119
|
+
const path = join(projects, projectId, "project.json");
|
|
120
|
+
const info = await lstat(path).catch(() => undefined);
|
|
121
|
+
if (!info?.isFile() || info.isSymbolicLink() || info.size > MAX_RECORD_BYTES) {
|
|
122
|
+
throw failure("Project recovery requires a bounded regular project state.");
|
|
123
|
+
}
|
|
124
|
+
const value = await readRecoveryJson(path);
|
|
125
|
+
if (!isObject(value) || value.id !== projectId)
|
|
126
|
+
throw failure("Project recovery state identity is invalid.");
|
|
127
|
+
return value;
|
|
128
|
+
}
|
|
129
|
+
async function readRecoveryJson(path) {
|
|
130
|
+
try {
|
|
131
|
+
return JSON.parse(await readFile(path, "utf8"));
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
throw failure("Project recovery JSON is missing or invalid; preserved bytes were not changed.");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** Called only under the existing workspace lease, before creating a fork target. */
|
|
138
|
+
export async function beginProjectMutation(root, kind, source, requestSha256, targetProjectId = null) {
|
|
139
|
+
if (!ID.test(source.id) ||
|
|
140
|
+
!HASH.test(requestSha256) ||
|
|
141
|
+
(kind === "fork"
|
|
142
|
+
? !targetProjectId || !ID.test(targetProjectId) || targetProjectId === source.id
|
|
143
|
+
: targetProjectId !== null)) {
|
|
144
|
+
throw failure("Project mutation identity is invalid.");
|
|
145
|
+
}
|
|
146
|
+
const directory = (await privateDirectory(root, ["pending-project-mutations"], true));
|
|
147
|
+
const record = bindRecord({
|
|
148
|
+
identity: {
|
|
149
|
+
schemaVersion: 1,
|
|
150
|
+
kind,
|
|
151
|
+
operationId: randomUUID(),
|
|
152
|
+
sourceProjectId: source.id,
|
|
153
|
+
targetProjectId,
|
|
154
|
+
requestSha256,
|
|
155
|
+
beforeSha256: sha256Text(canonicalJson(source)),
|
|
156
|
+
},
|
|
157
|
+
after: null,
|
|
158
|
+
afterSha256: null,
|
|
159
|
+
targetSha256: null,
|
|
160
|
+
});
|
|
161
|
+
const path = join(directory, filename(record));
|
|
162
|
+
if (await lstat(path).catch(() => undefined))
|
|
163
|
+
throw failure("An earlier project mutation needs recovery.", record);
|
|
164
|
+
await writeJsonAtomic(path, record);
|
|
165
|
+
await appendJournalEvent(workspacePaths(root).journal, "project.mutation.started", source.id, {
|
|
166
|
+
...record.identity,
|
|
167
|
+
identitySha256: sha256Text(canonicalJson(record.identity)),
|
|
168
|
+
});
|
|
169
|
+
return record;
|
|
170
|
+
}
|
|
171
|
+
export async function prepareProjectMutation(root, record, after) {
|
|
172
|
+
const directory = await privateDirectory(root, ["pending-project-mutations"], false);
|
|
173
|
+
if (!directory || after.id !== record.identity.sourceProjectId)
|
|
174
|
+
throw failure("Prepared project mutation identity changed.", record);
|
|
175
|
+
const currentRecord = await readRecord(join(directory, filename(record)));
|
|
176
|
+
if (currentRecord.recordSha256 !== record.recordSha256 ||
|
|
177
|
+
sha256Text(canonicalJson(await projectState(root, record.identity.sourceProjectId))) !==
|
|
178
|
+
record.identity.beforeSha256) {
|
|
179
|
+
throw failure("Project state changed during the prepared mutation.", record);
|
|
180
|
+
}
|
|
181
|
+
const target = record.identity.targetProjectId
|
|
182
|
+
? await projectState(root, record.identity.targetProjectId)
|
|
183
|
+
: null;
|
|
184
|
+
const prepared = bindRecord({
|
|
185
|
+
identity: record.identity,
|
|
186
|
+
after: structuredClone(after),
|
|
187
|
+
afterSha256: sha256Text(canonicalJson(after)),
|
|
188
|
+
targetSha256: target ? sha256Text(canonicalJson(target)) : null,
|
|
189
|
+
});
|
|
190
|
+
await writeJsonAtomic(join(directory, filename(prepared)), prepared);
|
|
191
|
+
return prepared;
|
|
192
|
+
}
|
|
193
|
+
export function projectMutationBinding(record) {
|
|
194
|
+
return {
|
|
195
|
+
operationId: record.identity.operationId,
|
|
196
|
+
requestSha256: record.identity.requestSha256,
|
|
197
|
+
recordSha256: record.recordSha256,
|
|
198
|
+
resultSha256: record.afterSha256 ?? "",
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function committedEvent(events, record) {
|
|
202
|
+
return events.find((event) => event.type ===
|
|
203
|
+
(record.identity.kind === "fork"
|
|
204
|
+
? "project.forked"
|
|
205
|
+
: record.identity.kind === "retry"
|
|
206
|
+
? "project.retry.requested"
|
|
207
|
+
: record.identity.kind === "acquisition-revision"
|
|
208
|
+
? "project.acquisition.revision.requested"
|
|
209
|
+
: "project.task.scope.approved") &&
|
|
210
|
+
isObject(event.payload.mutation) &&
|
|
211
|
+
event.payload.mutation.operationId === record.identity.operationId);
|
|
212
|
+
}
|
|
213
|
+
/** The journal event is the commit point; state/ledger files are recoverable projections. */
|
|
214
|
+
async function settleMutation(root, record, events) {
|
|
215
|
+
const paths = workspacePaths(root);
|
|
216
|
+
await requireDirectory(paths.projects);
|
|
217
|
+
const identity = record.identity;
|
|
218
|
+
const started = events.find((event) => event.type === "project.mutation.started" &&
|
|
219
|
+
event.payload.operationId === identity.operationId);
|
|
220
|
+
const commit = committedEvent(events, record);
|
|
221
|
+
const targetPath = identity.targetProjectId
|
|
222
|
+
? join(paths.projects, identity.targetProjectId)
|
|
223
|
+
: null;
|
|
224
|
+
const targetInfo = targetPath
|
|
225
|
+
? await lstat(targetPath).catch((error) => {
|
|
226
|
+
if (error.code === "ENOENT")
|
|
227
|
+
return undefined;
|
|
228
|
+
throw error;
|
|
229
|
+
})
|
|
230
|
+
: undefined;
|
|
231
|
+
if (started?.scope !== identity.sourceProjectId ||
|
|
232
|
+
started?.payload.identitySha256 !== sha256Text(canonicalJson(identity))) {
|
|
233
|
+
// A crash before the intent append cannot have created a target.
|
|
234
|
+
if (started || commit || targetInfo)
|
|
235
|
+
throw failure("Project recovery has no matching journal intent.", record);
|
|
236
|
+
}
|
|
237
|
+
else if (commit) {
|
|
238
|
+
const binding = commit.payload.mutation;
|
|
239
|
+
if (!isObject(binding) ||
|
|
240
|
+
binding.recordSha256 !== record.recordSha256 ||
|
|
241
|
+
binding.requestSha256 !== identity.requestSha256 ||
|
|
242
|
+
binding.resultSha256 !== record.afterSha256 ||
|
|
243
|
+
commit.scope !== (identity.targetProjectId ?? identity.sourceProjectId) ||
|
|
244
|
+
(identity.kind === "fork"
|
|
245
|
+
? commit.payload.sourceProjectId !== identity.sourceProjectId ||
|
|
246
|
+
commit.payload.targetProjectId !== identity.targetProjectId
|
|
247
|
+
: commit.payload.projectId !== identity.sourceProjectId) ||
|
|
248
|
+
!record.after ||
|
|
249
|
+
!record.afterSha256) {
|
|
250
|
+
throw failure("Committed project mutation does not match its recovery record.", record);
|
|
251
|
+
}
|
|
252
|
+
if (targetPath) {
|
|
253
|
+
if (!targetInfo?.isDirectory() ||
|
|
254
|
+
targetInfo.isSymbolicLink() ||
|
|
255
|
+
sha256Text(canonicalJson(await projectState(root, identity.targetProjectId))) !==
|
|
256
|
+
record.targetSha256) {
|
|
257
|
+
throw failure("Committed fork target changed before recovery completed.", record);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const current = await projectState(root, identity.sourceProjectId);
|
|
261
|
+
const currentHash = sha256Text(canonicalJson(current));
|
|
262
|
+
if (currentHash !== record.afterSha256) {
|
|
263
|
+
if (currentHash !== identity.beforeSha256)
|
|
264
|
+
throw failure("Recovery will not overwrite changed project state.", record);
|
|
265
|
+
await writeJsonAtomic(join(paths.projects, identity.sourceProjectId, "project.json"), record.after);
|
|
266
|
+
}
|
|
267
|
+
if (identity.kind === "fork") {
|
|
268
|
+
const ledger = await readVerifiedJournal(evidenceLedgerPath(root, identity.sourceProjectId));
|
|
269
|
+
if (!ledger.some((event) => event.type === "project.superseded" &&
|
|
270
|
+
event.payload.operationId === identity.operationId)) {
|
|
271
|
+
await appendEvidenceLedgerEvent(root, identity.sourceProjectId, "project.superseded", {
|
|
272
|
+
sourceProjectId: identity.sourceProjectId,
|
|
273
|
+
supersededBy: identity.targetProjectId,
|
|
274
|
+
reason: "recovery-fork",
|
|
275
|
+
operationId: identity.operationId,
|
|
276
|
+
commitSha256: commit.hash,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
if (targetInfo) {
|
|
283
|
+
if (!targetInfo.isDirectory() || targetInfo.isSymbolicLink()) {
|
|
284
|
+
throw failure("Recovery will not move an unknown or linked fork target.", record);
|
|
285
|
+
}
|
|
286
|
+
// Preserve interrupted bytes instead of recursively deleting a control tree.
|
|
287
|
+
const retained = (await privateDirectory(root, ["interrupted-project-mutations", identity.operationId], true));
|
|
288
|
+
await rename(targetPath, join(retained, "target"));
|
|
289
|
+
}
|
|
290
|
+
if (!events.some((event) => event.type === "project.mutation.aborted" &&
|
|
291
|
+
event.payload.operationId === identity.operationId)) {
|
|
292
|
+
await appendJournalEvent(paths.journal, "project.mutation.aborted", identity.sourceProjectId, {
|
|
293
|
+
operationId: identity.operationId,
|
|
294
|
+
mutationKind: identity.kind,
|
|
295
|
+
targetProjectId: identity.targetProjectId,
|
|
296
|
+
retainedInterruptedTarget: Boolean(targetInfo),
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
const directory = (await privateDirectory(root, ["pending-project-mutations"], false));
|
|
301
|
+
await rm(join(directory, filename(record)));
|
|
302
|
+
// Leave no normal-path recovery scan once all owned records are settled.
|
|
303
|
+
await rmdir(directory).catch(() => undefined);
|
|
304
|
+
return Boolean(commit);
|
|
305
|
+
}
|
|
306
|
+
/** Settle an operation after success or caught failure; committed targets are never rolled back. */
|
|
307
|
+
export async function settleProjectMutation(root, record) {
|
|
308
|
+
const directory = await privateDirectory(root, ["pending-project-mutations"], false);
|
|
309
|
+
const path = directory ? join(directory, filename(record)) : null;
|
|
310
|
+
if (!path || !(await lstat(path).catch(() => undefined))) {
|
|
311
|
+
return Boolean(committedEvent(await readVerifiedJournal(workspacePaths(root).journal), record));
|
|
312
|
+
}
|
|
313
|
+
const latest = await readRecord(path);
|
|
314
|
+
if (latest.identity.operationId !== record.identity.operationId)
|
|
315
|
+
throw failure("Project recovery identity changed.", record);
|
|
316
|
+
return settleMutation(root, latest, await readVerifiedJournal(workspacePaths(root).journal));
|
|
317
|
+
}
|
|
318
|
+
/** Constant-size directory check in normal operation; journal/state work only when pending. */
|
|
319
|
+
export async function recoverProjectMutations(root) {
|
|
320
|
+
const directory = await privateDirectory(root, ["pending-project-mutations"], false);
|
|
321
|
+
if (!directory)
|
|
322
|
+
return;
|
|
323
|
+
const files = (await readdir(directory)).filter((name) => /^(?:fork|retry|acquisition-revision|task-scope)-[a-z0-9][a-z0-9-]{2,63}\.json$/.test(name));
|
|
324
|
+
if (!files.length)
|
|
325
|
+
return;
|
|
326
|
+
const events = await readVerifiedJournal(workspacePaths(root).journal);
|
|
327
|
+
for (const file of files.sort())
|
|
328
|
+
await settleMutation(root, await readRecord(join(directory, file)), events);
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=project-mutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-mutations.js","sourceRoot":"","sources":["../../../src/research/workspace/project-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ProjectAuthorityIndex } from "./project-authority.js";
|
|
1
2
|
import { type VerifiedScientificDesign } from "./scientific-design.js";
|
|
2
3
|
import type { AgentKind, ProjectEvidenceRequirements, ProjectInput, ProjectInputTrustStatus, ResearchPolicyBinding, ScientificDesignBinding, ScientificReviewRole, ProjectState, WorkPackage, VerifiedProjectInputPlan } from "./types.js";
|
|
3
4
|
export declare function initializeProject(root: string, projectId: string, question: string, evidenceRequirements?: ProjectEvidenceRequirements, budgetConfirmed?: boolean, inputPlan?: VerifiedProjectInputPlan, publicationPolicy?: ResearchPolicyBinding, scientificDesignInput?: {
|
|
@@ -10,7 +11,7 @@ export declare function addProjectInput(root: string, projectId: string, inputPa
|
|
|
10
11
|
independentlyReproduced?: boolean;
|
|
11
12
|
}): Promise<ProjectInput>;
|
|
12
13
|
export declare function loadProject(root: string, projectId: string): Promise<ProjectState>;
|
|
13
|
-
export declare function listProjects(root: string): Promise<ProjectState[]>;
|
|
14
|
+
export declare function listProjects(root: string, authority?: ProjectAuthorityIndex): Promise<ProjectState[]>;
|
|
14
15
|
export declare function saveProject(root: string, project: ProjectState): Promise<void>;
|
|
15
16
|
export declare function retryProjectPackage(root: string, projectId: string, packageId?: string): Promise<ProjectState>;
|
|
16
17
|
export declare function forkProject(root: string, sourceProjectId: string, targetProjectId: string, resumeThrough?: "discover" | "acquire" | "analyze" | "synthesize", scientificReapproval?: {
|