@codetreker/daynight 0.31.0 → 0.37.2
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/README.md +237 -44
- package/config.example.yml +10 -3
- package/dist/api/client.d.ts +7 -1
- package/dist/api/client.js +117 -21
- package/dist/api/client.js.map +1 -1
- package/dist/api/json-source.d.ts +3 -0
- package/dist/api/json-source.js +113 -0
- package/dist/api/json-source.js.map +1 -0
- package/dist/api/parse.d.ts +2 -1
- package/dist/api/parse.js +16 -1
- package/dist/api/parse.js.map +1 -1
- package/dist/api/thread.d.ts +6 -0
- package/dist/api/thread.js +79 -0
- package/dist/api/thread.js.map +1 -0
- package/dist/api/types.d.ts +50 -0
- package/dist/cli/agent-cli-aliases.d.ts +21 -0
- package/dist/cli/agent-cli-aliases.js +57 -0
- package/dist/cli/agent-cli-aliases.js.map +1 -0
- package/dist/cli/application.js +17 -2
- package/dist/cli/application.js.map +1 -1
- package/dist/cli/cancellation.d.ts +1 -1
- package/dist/cli/cancellation.js.map +1 -1
- package/dist/cli/codex-agent-environment.d.ts +5 -0
- package/dist/cli/codex-agent-environment.js +28 -0
- package/dist/cli/codex-agent-environment.js.map +1 -0
- package/dist/cli/commands.js +1 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/context.d.ts +9 -1
- package/dist/cli/context.js +3 -1
- package/dist/cli/context.js.map +1 -1
- package/dist/cli/schema.d.ts +5 -1
- package/dist/cli/schema.js +10 -10
- package/dist/cli/schema.js.map +1 -1
- package/dist/commands/controller/archive-upload.d.ts +9 -0
- package/dist/commands/controller/archive-upload.js +137 -0
- package/dist/commands/controller/archive-upload.js.map +1 -0
- package/dist/commands/controller/definition.d.ts +1 -0
- package/dist/commands/controller/definition.js +9 -1
- package/dist/commands/controller/definition.js.map +1 -1
- package/dist/commands/controller/independent-archive.d.ts +7 -0
- package/dist/commands/controller/independent-archive.js +71 -0
- package/dist/commands/controller/independent-archive.js.map +1 -0
- package/dist/commands/controller/independent.js +20 -10
- package/dist/commands/controller/independent.js.map +1 -1
- package/dist/commands/controller/index.js +14 -1
- package/dist/commands/controller/index.js.map +1 -1
- package/dist/commands/controller/journal-format.js +25 -1
- package/dist/commands/controller/journal-format.js.map +1 -1
- package/dist/commands/controller/launch-ticket.js +3 -2
- package/dist/commands/controller/launch-ticket.js.map +1 -1
- package/dist/commands/controller/lifecycle-store.js +19 -7
- package/dist/commands/controller/lifecycle-store.js.map +1 -1
- package/dist/commands/controller/local-content.d.ts +2 -2
- package/dist/commands/controller/local-content.js +22 -20
- package/dist/commands/controller/local-content.js.map +1 -1
- package/dist/commands/controller/paths.d.ts +2 -0
- package/dist/commands/controller/paths.js +34 -0
- package/dist/commands/controller/paths.js.map +1 -0
- package/dist/commands/controller/pending-content.d.ts +20 -0
- package/dist/commands/controller/pending-content.js +159 -0
- package/dist/commands/controller/pending-content.js.map +1 -0
- package/dist/commands/controller/providers/codex.js +5 -1
- package/dist/commands/controller/providers/codex.js.map +1 -1
- package/dist/commands/controller/providers/projection.js +12 -0
- package/dist/commands/controller/providers/projection.js.map +1 -1
- package/dist/commands/controller/providers/types.d.ts +4 -0
- package/dist/commands/controller/resume.js +3 -2
- package/dist/commands/controller/resume.js.map +1 -1
- package/dist/commands/controller/runtime.js +11 -1
- package/dist/commands/controller/runtime.js.map +1 -1
- package/dist/commands/controller/sqlite/journal/006-pending-content.sql +12 -0
- package/dist/commands/project/definition.js +1 -1
- package/dist/commands/project/definition.js.map +1 -1
- package/dist/commands/review/definition.js +3 -3
- package/dist/commands/review/definition.js.map +1 -1
- package/dist/commands/server/runtime.d.ts +10 -1
- package/dist/commands/server/runtime.js +24 -7
- package/dist/commands/server/runtime.js.map +1 -1
- package/dist/commands/skill/read.d.ts +2 -0
- package/dist/commands/skill/read.js +36 -0
- package/dist/commands/skill/read.js.map +1 -0
- package/dist/commands/skill/skills/using-daynight/SKILL.md +4 -2
- package/dist/commands/skill/skills/using-daynight/references/authorization.md +2 -1
- package/dist/commands/skill/skills/using-daynight/references/goal.md +33 -8
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +4 -1
- package/dist/commands/skill/skills/using-daynight/references/run-task.md +1 -1
- package/dist/commands/skill/skills/using-daynight/references/task-content.md +8 -4
- package/dist/commands/skill/skills/using-daynight/references/task-management.md +56 -6
- package/dist/commands/skill/skills/using-daynight/references/write-safety.md +22 -3
- package/dist/commands/skill/usage.md +237 -0
- package/dist/commands/task/command.js +26 -3
- package/dist/commands/task/command.js.map +1 -1
- package/dist/commands/task/definition.js +41 -7
- package/dist/commands/task/definition.js.map +1 -1
- package/dist/commands/task/rendering.js +4 -0
- package/dist/commands/task/rendering.js.map +1 -1
- package/dist/commands/task/thread-diagnostics.d.ts +5 -0
- package/dist/commands/task/thread-diagnostics.js +32 -0
- package/dist/commands/task/thread-diagnostics.js.map +1 -0
- package/dist/commands/task/thread-rendering.d.ts +8 -0
- package/dist/commands/task/thread-rendering.js +80 -0
- package/dist/commands/task/thread-rendering.js.map +1 -0
- package/dist/commands/task/thread.d.ts +11 -0
- package/dist/commands/task/thread.js +74 -0
- package/dist/commands/task/thread.js.map +1 -0
- package/dist/commands/worker/backends/web-process.js +5 -8
- package/dist/commands/worker/backends/web-process.js.map +1 -1
- package/dist/commands/worker/backends/web-store.d.ts +1 -0
- package/dist/commands/worker/backends/web-store.js +1 -0
- package/dist/commands/worker/backends/web-store.js.map +1 -1
- package/dist/commands/worker/backends/web.d.ts +1 -0
- package/dist/commands/worker/backends/web.js +8 -0
- package/dist/commands/worker/backends/web.js.map +1 -1
- package/dist/commands/worker/coordinator.js +14 -0
- package/dist/commands/worker/coordinator.js.map +1 -1
- package/dist/commands/worker/definition.js +2 -2
- package/dist/commands/worker/definition.js.map +1 -1
- package/dist/commands/worker/herdr/agents.d.ts +3 -0
- package/dist/commands/worker/herdr/agents.js +14 -3
- package/dist/commands/worker/herdr/agents.js.map +1 -1
- package/dist/commands/worker/herdr/arguments.d.ts +4 -0
- package/dist/commands/worker/herdr/arguments.js +17 -0
- package/dist/commands/worker/herdr/arguments.js.map +1 -1
- package/dist/commands/worker/herdr/codex-config.d.ts +8 -0
- package/dist/commands/worker/herdr/codex-config.js +75 -0
- package/dist/commands/worker/herdr/codex-config.js.map +1 -0
- package/dist/commands/worker/herdr/preflight.js +1 -18
- package/dist/commands/worker/herdr/preflight.js.map +1 -1
- package/dist/commands/worker/herdr.d.ts +4 -0
- package/dist/commands/worker/herdr.js +3 -2
- package/dist/commands/worker/herdr.js.map +1 -1
- package/dist/commands/worker/remote.js +3 -4
- package/dist/commands/worker/remote.js.map +1 -1
- package/dist/commands/worker/remove-worktree-contents.d.ts +3 -0
- package/dist/commands/worker/remove-worktree-contents.js +106 -0
- package/dist/commands/worker/remove-worktree-contents.js.map +1 -0
- package/dist/commands/worker/runtime.js +60 -4
- package/dist/commands/worker/runtime.js.map +1 -1
- package/dist/commands/worker/worktrees.js +69 -23
- package/dist/commands/worker/worktrees.js.map +1 -1
- package/dist/config/agent-cli-aliases.d.ts +5 -0
- package/dist/config/agent-cli-aliases.js +37 -0
- package/dist/config/agent-cli-aliases.js.map +1 -0
- package/dist/config/paths.d.ts +1 -1
- package/dist/config/paths.js +6 -2
- package/dist/config/paths.js.map +1 -1
- package/dist/platform/diagnostics.d.ts +5 -0
- package/dist/platform/diagnostics.js +12 -0
- package/dist/platform/diagnostics.js.map +1 -1
- package/dist/platform/sqlite-format.d.ts +1 -1
- package/dist/platform/sqlite-format.js +1 -1
- package/dist/platform/sqlite-format.js.map +1 -1
- package/dist/session/archive.d.ts +25 -0
- package/dist/session/archive.js +100 -0
- package/dist/session/archive.js.map +1 -0
- package/dist/session/codex-subagent-activity.d.ts +4 -0
- package/dist/session/codex-subagent-activity.js +13 -0
- package/dist/session/codex-subagent-activity.js.map +1 -0
- package/dist/session/v2/archive.d.ts +6 -0
- package/dist/session/v2/archive.js +163 -0
- package/dist/session/v2/archive.js.map +1 -0
- package/dist/session/v2/protocol.d.ts +19 -0
- package/dist/session/v2/protocol.js +260 -0
- package/dist/session/v2/protocol.js.map +1 -0
- package/dist/session/v2/responsibility.d.ts +3 -0
- package/dist/session/v2/responsibility.js +12 -0
- package/dist/session/v2/responsibility.js.map +1 -0
- package/dist/session/v2/types.d.ts +293 -0
- package/dist/session/v2/types.js +2 -0
- package/dist/session/v2/types.js.map +1 -0
- package/dist/session/v2/values.d.ts +59 -0
- package/dist/session/v2/values.js +201 -0
- package/dist/session/v2/values.js.map +1 -0
- package/package.json +5 -3
package/dist/cli/schema.js
CHANGED
|
@@ -17,7 +17,7 @@ export const selectCommand = (definition, args, path = [definition.name], helpCo
|
|
|
17
17
|
return { kind: "help", command: definition, path };
|
|
18
18
|
const command = definition.commands?.find((candidate) => matchesCommand(candidate, args[0]));
|
|
19
19
|
if (command === undefined)
|
|
20
|
-
throw new UsageError(`Unknown command ${JSON.stringify(args[0])}.`, helpCommand);
|
|
20
|
+
throw new UsageError(`Unknown command ${JSON.stringify(args[0])}.`, helpCommand, { definition, path });
|
|
21
21
|
return { kind: "selected", command, path: [...path, command.name], remaining: args.slice(1) };
|
|
22
22
|
};
|
|
23
23
|
export const parseCommand = (definition, args, path = [definition.name], helpCommand = `${path.join(" ")} --help`) => {
|
|
@@ -46,21 +46,21 @@ export const parseCommand = (definition, args, path = [definition.name], helpCom
|
|
|
46
46
|
const optionName = inline ? argument.slice(0, separator) : argument;
|
|
47
47
|
const option = definition.options?.find((candidate) => candidate.names.includes(optionName));
|
|
48
48
|
if (option === undefined || option.action !== undefined || inline && option.value?.kind !== "text") {
|
|
49
|
-
throw new UsageError(`Unknown ${path.join(" ")} option ${JSON.stringify(argument)}.`, helpCommand);
|
|
49
|
+
throw new UsageError(`Unknown ${path.join(" ")} option ${JSON.stringify(argument)}.`, helpCommand, { definition, path });
|
|
50
50
|
}
|
|
51
51
|
const name = option.names[0];
|
|
52
52
|
if (options.has(name) && option.repeatable !== true)
|
|
53
|
-
throw new UsageError(`Specify ${name} only once.`, helpCommand);
|
|
53
|
+
throw new UsageError(`Specify ${name} only once.`, helpCommand, { definition, path });
|
|
54
54
|
if (option.value === undefined) {
|
|
55
55
|
options.set(name, true);
|
|
56
56
|
}
|
|
57
57
|
else {
|
|
58
58
|
const value = inline ? argument.slice(separator + 1) : args[++index];
|
|
59
59
|
if (value === undefined || value === "" && option.value.allowEmpty !== true || !inline && value.startsWith("-")) {
|
|
60
|
-
throw new UsageError(`${name} requires a ${option.value.name} value.`, helpCommand);
|
|
60
|
+
throw new UsageError(`${name} requires a ${option.value.name} value.`, helpCommand, { definition, path });
|
|
61
61
|
}
|
|
62
62
|
if (option.value.choices !== undefined && !option.value.choices.includes(value)) {
|
|
63
|
-
throw new UsageError(`Unknown ${option.value.name} ${JSON.stringify(value)}. Expected ${option.value.choices.join(" or ")}.`, helpCommand);
|
|
63
|
+
throw new UsageError(`Unknown ${option.value.name} ${JSON.stringify(value)}. Expected ${option.value.choices.join(" or ")}.`, helpCommand, { definition, path });
|
|
64
64
|
}
|
|
65
65
|
if (option.repeatable === true) {
|
|
66
66
|
const previous = options.get(name);
|
|
@@ -76,21 +76,21 @@ export const parseCommand = (definition, args, path = [definition.name], helpCom
|
|
|
76
76
|
}
|
|
77
77
|
const positional = definition.arguments?.[values.length];
|
|
78
78
|
if (positional === undefined)
|
|
79
|
-
throw new UsageError(`Unexpected ${path.join(" ")} argument ${JSON.stringify(argument)}.`, helpCommand);
|
|
79
|
+
throw new UsageError(`Unexpected ${path.join(" ")} argument ${JSON.stringify(argument)}.`, helpCommand, { definition, path });
|
|
80
80
|
if (argument === "" && positional.allowEmpty !== true)
|
|
81
|
-
throw new UsageError(`${path.join(" ")} requires a ${positional.name} value.`, helpCommand);
|
|
81
|
+
throw new UsageError(`${path.join(" ")} requires a ${positional.name} value.`, helpCommand, { definition, path });
|
|
82
82
|
if (positional.choices !== undefined && !positional.choices.includes(argument)) {
|
|
83
|
-
throw new UsageError(`Unknown ${positional.name} ${JSON.stringify(argument)}. Expected ${positional.choices.join(" or ")}.`, helpCommand);
|
|
83
|
+
throw new UsageError(`Unknown ${positional.name} ${JSON.stringify(argument)}. Expected ${positional.choices.join(" or ")}.`, helpCommand, { definition, path });
|
|
84
84
|
}
|
|
85
85
|
values.push(argument);
|
|
86
86
|
}
|
|
87
87
|
const missing = definition.arguments?.slice(values.length).find((argument) => argument.optional !== true);
|
|
88
88
|
if (missing !== undefined)
|
|
89
|
-
throw new UsageError(`${path.join(" ")} requires a ${missing.name} value.`, helpCommand);
|
|
89
|
+
throw new UsageError(`${path.join(" ")} requires a ${missing.name} value.`, helpCommand, { definition, path });
|
|
90
90
|
for (const option of definition.options ?? []) {
|
|
91
91
|
const name = option.names[0];
|
|
92
92
|
if (option.required === true && !options.has(name))
|
|
93
|
-
throw new UsageError(`${path.join(" ")} requires ${name}.`, helpCommand);
|
|
93
|
+
throw new UsageError(`${path.join(" ")} requires ${name}.`, helpCommand, { definition, path });
|
|
94
94
|
}
|
|
95
95
|
return { kind: "run", command: definition, path, values, options };
|
|
96
96
|
};
|
package/dist/cli/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/cli/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA8B1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAA6B,EAAQ,EAAE;IAC9E,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAClD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,CAAC,IAAI,sDAAsD,CAAC,CAAC;QAC9I,QAAQ,GAAG,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC;IACxC,CAAC;AACH,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/cli/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type SessionArchiveStatus } from "../../session/archive.js";
|
|
2
|
+
import type { ControllerLaunchTicket } from "./launch-ticket.js";
|
|
3
|
+
export declare const uploadStoppedControllerArchive: (options: {
|
|
4
|
+
journalPath: string;
|
|
5
|
+
ticket: ControllerLaunchTicket;
|
|
6
|
+
serverToken: string;
|
|
7
|
+
request?: typeof fetch;
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
}) => Promise<SessionArchiveStatus>;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
4
|
+
import { sessionBinding } from "../../session/protocol.js";
|
|
5
|
+
import { parseSessionArchive, parseSessionArchiveStatus, verifySessionArchiveResources } from "../../session/archive.js";
|
|
6
|
+
import { assertJournalMigrationAllowed, controllerJournalFormat } from "./journal-format.js";
|
|
7
|
+
import { assertCurrentSqlite, inspectSqlite } from "../../platform/sqlite-format.js";
|
|
8
|
+
import { closeSqliteDatabase, openSqliteDatabase, runSqliteImmediate, sqliteTransactionOutcome } from "../../platform/sqlite-access.js";
|
|
9
|
+
import { SqliteAccessError } from "../../platform/sqlite-error.js";
|
|
10
|
+
import { reconcilePendingContent, openPendingContent, writeDurableJson } from "./pending-content.js";
|
|
11
|
+
const stoppedSnapshot = (db, ticket) => {
|
|
12
|
+
const version = Number(db.pragma("user_version", { simple: true }));
|
|
13
|
+
if (version < 2 || version > 6)
|
|
14
|
+
throw new SqliteAccessError("unsupported-version", { database: controllerJournalFormat.name, file: db.name, phase: "archive-admission", fromVersion: version, toVersion: 6 });
|
|
15
|
+
inspectSqlite(db, controllerJournalFormat);
|
|
16
|
+
const row = db.prepare("SELECT snapshot FROM execution WHERE id=1").get();
|
|
17
|
+
let observed;
|
|
18
|
+
try {
|
|
19
|
+
observed = row === undefined ? null : JSON.parse(row.snapshot);
|
|
20
|
+
}
|
|
21
|
+
catch (cause) {
|
|
22
|
+
throw new SqliteAccessError("invalid-format", { database: controllerJournalFormat.name, file: db.name, phase: "archive-decode" }, { cause });
|
|
23
|
+
}
|
|
24
|
+
if (!observed || !observed.nativeStopped || observed.lifecycle !== "stopped" || observed.sessionId !== ticket.sessionId || observed.executionGeneration !== ticket.executionGeneration || observed.controllerInstanceId !== ticket.controllerInstanceId || observed.executionId !== ticket.executionId || observed.claimId !== ticket.claimId || observed.testExecutionId !== ticket.testExecutionId)
|
|
25
|
+
throw new Error("Session archive requires the original stopped controller generation.");
|
|
26
|
+
return observed;
|
|
27
|
+
};
|
|
28
|
+
const withClosedJournal = (db, action) => {
|
|
29
|
+
let result, failed = false, failure;
|
|
30
|
+
try {
|
|
31
|
+
result = action();
|
|
32
|
+
}
|
|
33
|
+
catch (cause) {
|
|
34
|
+
failed = true;
|
|
35
|
+
failure = cause;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
closeSqliteDatabase(db, { file: db.name, format: controllerJournalFormat }, failed ? sqliteTransactionOutcome(failure) : "committed");
|
|
39
|
+
}
|
|
40
|
+
catch (close) {
|
|
41
|
+
if (failed)
|
|
42
|
+
throw new AggregateError([failure, close], "Archive journal operation and shutdown failed.");
|
|
43
|
+
throw close;
|
|
44
|
+
}
|
|
45
|
+
if (failed)
|
|
46
|
+
throw failure;
|
|
47
|
+
return result;
|
|
48
|
+
};
|
|
49
|
+
export const uploadStoppedControllerArchive = async (options) => {
|
|
50
|
+
const { ticket, journalPath } = options;
|
|
51
|
+
const fence = { sessionId: ticket.sessionId, ...sessionBinding(ticket), executionGeneration: ticket.executionGeneration, controllerId: ticket.controllerId, controllerInstanceId: ticket.controllerInstanceId };
|
|
52
|
+
const root = ticket.testExecutionId !== undefined ? `/api/v1/test-sessions/${ticket.sessionId}` : `/api/v1/projects/${ticket.projectId}/tasks/${ticket.taskId}/sessions/${ticket.sessionId}`;
|
|
53
|
+
const request = options.request ?? fetch;
|
|
54
|
+
const signal = options.signal ? AbortSignal.any([options.signal, AbortSignal.timeout(30_000)]) : AbortSignal.timeout(30_000);
|
|
55
|
+
const call = async (method, body) => {
|
|
56
|
+
const response = await request(`${ticket.serverOrigin}${root}/archive`, { method, redirect: "error", headers: { Authorization: `Bearer ${options.serverToken}`, ...(body === undefined ? {} : { "Content-Type": "application/json" }) }, ...(body === undefined ? {} : { body }), signal });
|
|
57
|
+
if (!response.ok)
|
|
58
|
+
throw new Error(`Session archive request failed (${response.status}).`);
|
|
59
|
+
return parseSessionArchiveStatus((await response.json()).archive);
|
|
60
|
+
};
|
|
61
|
+
// Inspect the original schema and stop evidence without auto-upgrading first:
|
|
62
|
+
// archive admission deliberately excludes v1 and unproven native generations.
|
|
63
|
+
let original;
|
|
64
|
+
try {
|
|
65
|
+
original = new Database(journalPath, { readonly: true, fileMustExist: true });
|
|
66
|
+
}
|
|
67
|
+
catch (cause) {
|
|
68
|
+
throw new SqliteAccessError("invalid-format", { database: controllerJournalFormat.name, file: journalPath, phase: "archive-open" }, { cause, connectionClosed: true });
|
|
69
|
+
}
|
|
70
|
+
const observed = withClosedJournal(original, () => original.transaction(() => stoppedSnapshot(original, ticket)).deferred());
|
|
71
|
+
const receiptPath = `${journalPath}.archive-receipt-${ticket.executionGeneration}.json`;
|
|
72
|
+
let receipt = null;
|
|
73
|
+
if (existsSync(receiptPath)) {
|
|
74
|
+
receipt = parseSessionArchiveStatus(JSON.parse(readFileSync(receiptPath, "utf8")));
|
|
75
|
+
if (receipt.state !== "ready")
|
|
76
|
+
throw new Error("Invalid local archive receipt.");
|
|
77
|
+
const current = await call("GET");
|
|
78
|
+
if (current.state === "ready") {
|
|
79
|
+
if (current.sha256 !== receipt.sha256 || current.byteLength !== receipt.byteLength)
|
|
80
|
+
throw new Error("Server archive differs from the confirmed receipt.");
|
|
81
|
+
return current;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
let body;
|
|
85
|
+
try {
|
|
86
|
+
const assertOriginal = (db) => {
|
|
87
|
+
if (JSON.stringify(stoppedSnapshot(db, ticket)) !== JSON.stringify(observed))
|
|
88
|
+
throw new Error("The stopped controller evidence changed before archival.");
|
|
89
|
+
};
|
|
90
|
+
const db = openSqliteDatabase({ file: journalPath, format: controllerJournalFormat, allowCreate: false,
|
|
91
|
+
assertMigrationAllowed: (db, source) => { assertOriginal(db); assertJournalMigrationAllowed(db, source); },
|
|
92
|
+
onReady: assertOriginal,
|
|
93
|
+
});
|
|
94
|
+
const archive = withClosedJournal(db, () => runSqliteImmediate(db, () => {
|
|
95
|
+
assertCurrentSqlite(db, controllerJournalFormat);
|
|
96
|
+
assertOriginal(db);
|
|
97
|
+
if (!existsSync(`${journalPath}.pending-content/manifest.json`))
|
|
98
|
+
throw new Error("Pending archive source is missing.");
|
|
99
|
+
const content = openPendingContent(journalPath, ticket.sessionId);
|
|
100
|
+
reconcilePendingContent(db, content);
|
|
101
|
+
const gap = db.prepare("SELECT projection_gap,archive_incomplete FROM execution WHERE id=1").get();
|
|
102
|
+
if (gap.archive_incomplete !== 0 || gap.projection_gap !== null && gap.projection_gap !== "Recovered pending timeline requires full relay resynchronization.")
|
|
103
|
+
throw new Error("Pending archive has an unresolved projection gap.");
|
|
104
|
+
return parseSessionArchive({ schemaVersion: 1, ...fence, provider: ticket.provider, nativeSessionId: observed.nativeSessionId, entries: [...content.entries.values()].sort((a, b) => BigInt(a.entrySeq) < BigInt(b.entrySeq) ? -1 : 1), resources: [...content.resources.values()].sort((a, b) => a.resource.resourceId.localeCompare(b.resource.resourceId)) });
|
|
105
|
+
}));
|
|
106
|
+
await verifySessionArchiveResources(archive);
|
|
107
|
+
body = JSON.stringify(archive);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
await call("POST", JSON.stringify({ ...fence, state: "failed", errorCode: "archive_incomplete" })).catch(() => { });
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
const sha256 = createHash("sha256").update(body).digest("hex"), byteLength = String(Buffer.byteLength(body));
|
|
114
|
+
const matches = (status) => status.state === "ready" && status.sha256 === sha256 && status.byteLength === byteLength;
|
|
115
|
+
if (receipt && !matches(receipt))
|
|
116
|
+
throw new Error("Archive receipt does not match the original content.");
|
|
117
|
+
try {
|
|
118
|
+
const current = await call("GET");
|
|
119
|
+
if (current.state === "ready") {
|
|
120
|
+
if (!matches(current))
|
|
121
|
+
throw new Error("Server archive differs from the stopped execution.");
|
|
122
|
+
writeDurableJson(receiptPath, current);
|
|
123
|
+
return current;
|
|
124
|
+
}
|
|
125
|
+
await call("POST", JSON.stringify({ ...fence, state: "pending", errorCode: null }));
|
|
126
|
+
const uploaded = await call("PUT", body);
|
|
127
|
+
if (!matches(uploaded))
|
|
128
|
+
throw new Error("Session archive upload was not confirmed with matching integrity.");
|
|
129
|
+
writeDurableJson(receiptPath, uploaded);
|
|
130
|
+
return uploaded;
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
await call("POST", JSON.stringify({ ...fence, state: "failed", errorCode: "upload_failed" })).catch(() => { });
|
|
134
|
+
throw error;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=archive-upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive-upload.js","sourceRoot":"","sources":["../../../src/commands/controller/archive-upload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { CommandDefinition } from "../../cli/schema.js";
|
|
2
2
|
export declare const controllerDefinition: CommandDefinition;
|
|
3
3
|
export declare function controllerResumeDefinition(provider: string): CommandDefinition;
|
|
4
|
+
export declare function controllerArchiveDefinition(provider: string): CommandDefinition;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const value = (names, description, repeatable = false) => ({ names, description, value: { name: "value", kind: "text" }, ...(repeatable ? { repeatable: true } : {}) });
|
|
2
2
|
export const controllerDefinition = {
|
|
3
3
|
name: "controller", description: "Run a foreground Test Session in the current directory",
|
|
4
|
-
commands: ["codex", "claude", "copilot"].map(name => ({ name, description: `Run a ${name} Test Session`, commands: [controllerResumeDefinition(name)], options: [
|
|
4
|
+
commands: ["codex", "claude", "copilot"].map(name => ({ name, description: `Run a ${name} Test Session`, commands: [controllerResumeDefinition(name), controllerArchiveDefinition(name)], options: [
|
|
5
5
|
value(["--model", "-m"], "Select the native model"),
|
|
6
6
|
...(name === "codex" ? [value(["--sandbox", "-s"], "Native sandbox mode"), value(["--ask-for-approval", "-a"], "Native approval policy")] : []),
|
|
7
7
|
...(name === "claude" ? [value(["--permission-mode"], "Native permission mode"), value(["--add-dir"], "Additional native working directory", true)] : []),
|
|
@@ -19,4 +19,12 @@ export function controllerResumeDefinition(provider) {
|
|
|
19
19
|
details: `Usage: daynight controller ${provider} resume [test-session-id]\n\nWithout an ID, choose a saved Test Session in the current directory. Noninteractive use requires an ID. The original native context is continued in a new protected Daynight page; the old page stays archived. Active or unconfirmed executions cannot be resumed. No initial prompt is replayed. To start with the literal prompt resume, use: daynight controller ${provider} -- resume.`,
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
+
export function controllerArchiveDefinition(provider) {
|
|
23
|
+
return {
|
|
24
|
+
name: "archive", description: "Retry uploading stopped Test Session history without starting an agent",
|
|
25
|
+
arguments: [{ name: "test-session-id", description: "Saved Daynight Test Session UUID" }],
|
|
26
|
+
options: [{ names: ["-h", "--help"], description: "Show this help", action: "help" }],
|
|
27
|
+
details: `Usage: daynight controller ${provider} archive <test-session-id>\n\nReconcile the original stopped execution and upload its read-only history. Uses the configured server and private launch evidence; never starts or resumes an agent. The original working directory need not exist.`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
22
30
|
//# sourceMappingURL=definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/commands/controller/definition.ts"],"names":[],"mappings":"AACA,MAAM,KAAK,GAAG,CAAC,KAAe,EAAE,WAAmB,EAAE,UAAU,GAAG,KAAK,EAAiB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzM,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,wDAAwD;IACzF,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,IAAI,eAAe,EAAE,QAAQ,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/commands/controller/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CliContext } from "../../cli/context.js";
|
|
2
|
+
import { type SessionProvider } from "../../session/protocol.js";
|
|
3
|
+
/** Archive retry has no process launch, native resume, or business-input path. */
|
|
4
|
+
export declare const retryIndependentArchive: (input: {
|
|
5
|
+
provider: SessionProvider;
|
|
6
|
+
sessionId: string;
|
|
7
|
+
}, context: CliContext) => Promise<void>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { readdir, readFile, lstat } from "node:fs/promises";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { randomUUID } from "node:crypto";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { resolveConfigurationPaths } from "../../config/paths.js";
|
|
6
|
+
import { loadServerConfiguration } from "../../config/server.js";
|
|
7
|
+
import { SESSION_PROTOCOL, assertSessionFence, sessionFence } from "../../session/protocol.js";
|
|
8
|
+
import { parseRegistrationResponse } from "../../session/controller-protocol.js";
|
|
9
|
+
import { controllerExecutionDirectory, readLaunchTicket } from "./launch-ticket.js";
|
|
10
|
+
import { recordStoppedControllerGeneration } from "./lifecycle-store.js";
|
|
11
|
+
import { uploadStoppedControllerArchive } from "./archive-upload.js";
|
|
12
|
+
import { writeDurableJson } from "./pending-content.js";
|
|
13
|
+
/** Archive retry has no process launch, native resume, or business-input path. */
|
|
14
|
+
export const retryIndependentArchive = async (input, context) => {
|
|
15
|
+
const home = context.homeDirectory(), paths = resolveConfigurationPaths(home);
|
|
16
|
+
const config = await loadServerConfiguration(paths);
|
|
17
|
+
if (!config.serverToken)
|
|
18
|
+
throw new Error("Log in before retrying Test Session history upload.");
|
|
19
|
+
const directory = path.join(paths.stateDirectory, "controller", "launches");
|
|
20
|
+
const files = await readdir(directory);
|
|
21
|
+
if (files.length > 20_000)
|
|
22
|
+
throw new Error("Controller launch inventory exceeds its safe bound.");
|
|
23
|
+
let ticket;
|
|
24
|
+
for (const file of files) {
|
|
25
|
+
if (!/^[a-f0-9-]{36}\.json$/.test(file))
|
|
26
|
+
continue;
|
|
27
|
+
const candidate = await readLaunchTicket(home, file.slice(0, -5));
|
|
28
|
+
if (candidate.testExecutionId === undefined || candidate.sessionId !== input.sessionId || candidate.provider !== input.provider || candidate.serverOrigin !== config.serverUrl)
|
|
29
|
+
continue;
|
|
30
|
+
if (ticket)
|
|
31
|
+
throw new Error("Conflicting local Test Session launch records require reconciliation.");
|
|
32
|
+
ticket = candidate;
|
|
33
|
+
}
|
|
34
|
+
if (!ticket)
|
|
35
|
+
throw new Error("No local Test Session matches this provider, session ID and configured server.");
|
|
36
|
+
const execution = controllerExecutionDirectory(home, ticket.executionId), journalPath = path.join(execution, "journal.sqlite");
|
|
37
|
+
const stopped = await recordStoppedControllerGeneration(journalPath, ticket);
|
|
38
|
+
const proofPath = path.join(execution, "stop-proof.json");
|
|
39
|
+
let body;
|
|
40
|
+
if (existsSync(proofPath)) {
|
|
41
|
+
const stat = await lstat(proofPath);
|
|
42
|
+
if (!stat.isFile() || stat.isSymbolicLink() || stat.size > 32_768 || process.platform !== "win32" && (stat.mode & 0o077) !== 0)
|
|
43
|
+
throw new Error("Test Session stop proof must be a private regular file.");
|
|
44
|
+
body = JSON.parse(await readFile(proofPath, "utf8"));
|
|
45
|
+
assertSessionFence(body, ticket);
|
|
46
|
+
const identity = body;
|
|
47
|
+
if (identity.controllerId !== ticket.controllerId || identity.controllerInstanceId !== ticket.controllerInstanceId || identity.protocol !== SESSION_PROTOCOL)
|
|
48
|
+
throw new Error("Stop proof does not match the original controller.");
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
body = { protocol: SESSION_PROTOCOL, ...sessionFence(ticket), controllerId: ticket.controllerId, controllerInstanceId: ticket.controllerInstanceId, stopProof: { recordId: randomUUID(), previousControllerInstanceId: ticket.controllerInstanceId, stoppedAt: stopped.stoppedAt } };
|
|
52
|
+
writeDurableJson(proofPath, body);
|
|
53
|
+
}
|
|
54
|
+
// A retry may close a still-active server record after local stop was already proven.
|
|
55
|
+
try {
|
|
56
|
+
const pending = await fetch(`${config.serverUrl}/api/v1/test-sessions/${ticket.sessionId}/archive`, { method: "POST", redirect: "error", headers: { authorization: `Bearer ${config.serverToken}`, "content-type": "application/json" }, body: JSON.stringify({ ...sessionFence(ticket), controllerId: ticket.controllerId, controllerInstanceId: ticket.controllerInstanceId, state: "pending", errorCode: null }), signal: AbortSignal.timeout(10_000) });
|
|
57
|
+
await pending.body?.cancel();
|
|
58
|
+
}
|
|
59
|
+
catch { /* Metadata publication must not prevent stop reconciliation. */ }
|
|
60
|
+
const response = await fetch(`${config.serverUrl}/api/v1/test-sessions/${ticket.sessionId}/stop`, { method: "POST", redirect: "error", headers: { authorization: `Bearer ${config.serverToken}`, "content-type": "application/json" }, body: JSON.stringify(body), signal: AbortSignal.timeout(15_000) });
|
|
61
|
+
if (!response.ok)
|
|
62
|
+
throw new Error(`Native execution is stopped; server stop reconciliation failed (${response.status}).`);
|
|
63
|
+
const result = parseRegistrationResponse(await response.json()).session;
|
|
64
|
+
assertSessionFence(result, ticket);
|
|
65
|
+
if (result.lifecycle !== "archived")
|
|
66
|
+
throw new Error("Native execution is stopped; server session closure is unconfirmed.");
|
|
67
|
+
writeDurableJson(path.join(execution, "stop-result.json"), { session: result });
|
|
68
|
+
await uploadStoppedControllerArchive({ journalPath, ticket, serverToken: config.serverToken });
|
|
69
|
+
context.stdout(`Test Session history archived: ${new URL(`/test-sessions/${ticket.sessionId}`, config.serverUrl).href}\n`);
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=independent-archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"independent-archive.js","sourceRoot":"","sources":["../../../src/commands/controller/independent-archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { uploadStoppedControllerArchive } from "./archive-upload.js";
|
|
1
2
|
import { SqliteAccessError } from "../../platform/sqlite-error.js";
|
|
2
3
|
import { spawn } from "node:child_process";
|
|
3
|
-
import {
|
|
4
|
+
import { randomBytes, randomUUID } from "node:crypto";
|
|
4
5
|
import { chmod, mkdir, open, realpath, writeFile, rename } from "node:fs/promises";
|
|
5
6
|
import path from "node:path";
|
|
6
7
|
import { setTimeout as delay } from "node:timers/promises";
|
|
@@ -13,6 +14,7 @@ import { controllerExecutionDirectory, controllerTicketPath, writeLaunchTicket }
|
|
|
13
14
|
import { readControllerSnapshot, recordStoppedControllerGeneration } from "./lifecycle-store.js";
|
|
14
15
|
import { captureProcessProof, stopControllerProcesses } from "./process-proof.js";
|
|
15
16
|
import { ControllerIpcOutcomeUnknownError, requestController } from "./local-client.js";
|
|
17
|
+
import { prepareControllerIpcEndpoint } from "./paths.js";
|
|
16
18
|
class TestSessionRequestError extends Error {
|
|
17
19
|
retryable;
|
|
18
20
|
constructor(message, retryable, options) {
|
|
@@ -143,13 +145,7 @@ export const runIndependentController = async (input, context) => {
|
|
|
143
145
|
let credential = await grant("bootstrap");
|
|
144
146
|
const credentialFile = path.join(directory, "credential.json");
|
|
145
147
|
await writeControllerCredential(credentialFile, credential);
|
|
146
|
-
const
|
|
147
|
-
const ipcEndpoint = process.platform === "win32" ? `\\\\.\\pipe\\daynight-${endpointKey}` : path.join(home, ".daynight", "c", `${endpointKey}.sock`);
|
|
148
|
-
if (process.platform !== "win32") {
|
|
149
|
-
if (Buffer.byteLength(ipcEndpoint) > (process.platform === "darwin" ? 103 : 107))
|
|
150
|
-
throw new Error("The controller IPC endpoint exceeds this platform's socket path limit.");
|
|
151
|
-
await mkdir(path.dirname(ipcEndpoint), { recursive: true, mode: 0o700 });
|
|
152
|
-
}
|
|
148
|
+
const ipcEndpoint = await prepareControllerIpcEndpoint(home, launchId);
|
|
153
149
|
const nativeHome = resume?.ticket.nativeHome ?? (input.provider === "codex" ? process.env.CODEX_HOME ?? path.join(home, ".codex") : input.provider === "claude" ? process.env.CLAUDE_CONFIG_DIR ?? path.join(home, ".claude") : process.env.COPILOT_HOME ?? path.join(home, ".copilot"));
|
|
154
150
|
ticket = { schemaVersion: 1, launchId, executionId, controllerId, controllerInstanceId, sessionId: session.sessionId, executionGeneration: session.executionGeneration, testExecutionId: executionId, ownerUserId: session.identity.ownerUserId, initialInput: registration.initialInput, serverOrigin: config.serverUrl, provider: input.provider, cwd, nativeHome, configuration: { agent: input.provider, agentControlMode: "web", model: resume ? null : input.model, args: resume?.ticket.configuration.args ?? input.args, recoveryLimit: 0 }, initialOperationId: randomUUID(), initialPrompt: input.prompt ?? "", resumeNativeSessionId: resume?.nativeSessionId ?? null, credentialFile, ipcEndpoint, ipcSecret: randomBytes(32).toString("hex"), createdAt: new Date().toISOString() };
|
|
155
151
|
await writeLaunchTicket(home, ticket);
|
|
@@ -161,7 +157,7 @@ export const runIndependentController = async (input, context) => {
|
|
|
161
157
|
const log = await open(path.join(directory, "controller.log"), "a", 0o600);
|
|
162
158
|
try {
|
|
163
159
|
spawnAttempted = true;
|
|
164
|
-
child = spawn(process.execPath, [path.join(context.packageDirectory, "dist", "main.js"), "controller", input.provider, "--launch-id", launchId], { cwd, env: { ...process.env,
|
|
160
|
+
child = spawn(process.execPath, [path.join(context.packageDirectory, "dist", "main.js"), "controller", input.provider, "--launch-id", launchId], { cwd, env: { ...process.env, DN_CONFIG_DIR: resolveConfigurationPaths(home).stateDirectory }, detached: process.platform !== "win32", stdio: ["ignore", log.fd, log.fd], windowsHide: true });
|
|
165
161
|
childExit = new Promise(resolve => { child.once("exit", () => resolve()); child.once("error", () => resolve()); });
|
|
166
162
|
await new Promise((resolve, reject) => { child.once("spawn", resolve); child.once("error", reject); });
|
|
167
163
|
}
|
|
@@ -294,6 +290,8 @@ export const runIndependentController = async (input, context) => {
|
|
|
294
290
|
const stopProof = { recordId: randomUUID(), previousControllerInstanceId: ticket.controllerInstanceId, stoppedAt: stopped.stoppedAt };
|
|
295
291
|
const body = { protocol: SESSION_PROTOCOL, ...sessionFence(ticket), controllerId: ticket.controllerId, controllerInstanceId: ticket.controllerInstanceId, stopProof };
|
|
296
292
|
await persist("stop-proof.json", body);
|
|
293
|
+
// Publish the upload intent before closing the live page so observers keep polling.
|
|
294
|
+
await request(`/api/v1/test-sessions/${ticket.sessionId}/archive`, { ...sessionFence(ticket), controllerId: ticket.controllerId, controllerInstanceId: ticket.controllerInstanceId, state: "pending", errorCode: null }, true).catch(() => { });
|
|
297
295
|
try {
|
|
298
296
|
const result = parseRegistrationResponse(await request(`/api/v1/test-sessions/${ticket.sessionId}/stop`, body, true)).session;
|
|
299
297
|
assertSessionFence(result, ticket);
|
|
@@ -301,11 +299,23 @@ export const runIndependentController = async (input, context) => {
|
|
|
301
299
|
throw new Error("Test Session archival was not confirmed.");
|
|
302
300
|
await persist("stop-result.json", { session: result });
|
|
303
301
|
archived = true;
|
|
304
|
-
context.stdout("Test Session stopped and archived.\n");
|
|
305
302
|
}
|
|
306
303
|
catch {
|
|
307
304
|
context.stderr("Native execution stopped. Server archival is unconfirmed; the original stop proof is retained privately.\n");
|
|
308
305
|
}
|
|
306
|
+
if (archived) {
|
|
307
|
+
try {
|
|
308
|
+
await uploadStoppedControllerArchive({ journalPath: journal, ticket, serverToken: config.serverToken });
|
|
309
|
+
context.stdout("Test Session stopped and archived. Read-only history is available on its page.\n");
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
if (sqliteFailure(error))
|
|
313
|
+
failed = failed === undefined ? error : new AggregateError([failed, error], "Test Session execution and history archival failed.");
|
|
314
|
+
context.stderr(`Native execution stopped; session history upload is pending. Source retained in ${directory}.\nRetry without starting an agent: daynight controller ${ticket.provider} archive ${ticket.sessionId}\n`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
else
|
|
318
|
+
context.stderr(`Retry without starting an agent: daynight controller ${ticket.provider} archive ${ticket.sessionId}\n`);
|
|
309
319
|
}
|
|
310
320
|
catch (error) {
|
|
311
321
|
failed = failed === undefined ? error : new AggregateError([failed, error], "Test Session execution and stopping failed.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"independent.js","sourceRoot":"","sources":["../../../src/commands/controller/independent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"independent.js","sourceRoot":"","sources":["../../../src/commands/controller/independent.ts"],"names":[],"mappings":"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"}
|