@codetreker/daynight 0.31.0 → 0.32.1

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 (105) hide show
  1. package/README.md +81 -15
  2. package/config.example.yml +10 -3
  3. package/dist/cli/agent-cli-aliases.d.ts +21 -0
  4. package/dist/cli/agent-cli-aliases.js +57 -0
  5. package/dist/cli/agent-cli-aliases.js.map +1 -0
  6. package/dist/cli/application.js +5 -0
  7. package/dist/cli/application.js.map +1 -1
  8. package/dist/cli/cancellation.d.ts +1 -1
  9. package/dist/cli/cancellation.js.map +1 -1
  10. package/dist/cli/codex-agent-environment.d.ts +5 -0
  11. package/dist/cli/codex-agent-environment.js +28 -0
  12. package/dist/cli/codex-agent-environment.js.map +1 -0
  13. package/dist/cli/commands.js +1 -0
  14. package/dist/cli/commands.js.map +1 -1
  15. package/dist/cli/schema.d.ts +5 -1
  16. package/dist/cli/schema.js.map +1 -1
  17. package/dist/commands/controller/archive-upload.d.ts +9 -0
  18. package/dist/commands/controller/archive-upload.js +137 -0
  19. package/dist/commands/controller/archive-upload.js.map +1 -0
  20. package/dist/commands/controller/definition.d.ts +1 -0
  21. package/dist/commands/controller/definition.js +9 -1
  22. package/dist/commands/controller/definition.js.map +1 -1
  23. package/dist/commands/controller/independent-archive.d.ts +7 -0
  24. package/dist/commands/controller/independent-archive.js +71 -0
  25. package/dist/commands/controller/independent-archive.js.map +1 -0
  26. package/dist/commands/controller/independent.js +20 -10
  27. package/dist/commands/controller/independent.js.map +1 -1
  28. package/dist/commands/controller/index.js +14 -1
  29. package/dist/commands/controller/index.js.map +1 -1
  30. package/dist/commands/controller/journal-format.js +25 -1
  31. package/dist/commands/controller/journal-format.js.map +1 -1
  32. package/dist/commands/controller/launch-ticket.js +3 -2
  33. package/dist/commands/controller/launch-ticket.js.map +1 -1
  34. package/dist/commands/controller/lifecycle-store.js +19 -7
  35. package/dist/commands/controller/lifecycle-store.js.map +1 -1
  36. package/dist/commands/controller/local-content.d.ts +2 -2
  37. package/dist/commands/controller/local-content.js +22 -20
  38. package/dist/commands/controller/local-content.js.map +1 -1
  39. package/dist/commands/controller/paths.d.ts +2 -0
  40. package/dist/commands/controller/paths.js +34 -0
  41. package/dist/commands/controller/paths.js.map +1 -0
  42. package/dist/commands/controller/pending-content.d.ts +20 -0
  43. package/dist/commands/controller/pending-content.js +159 -0
  44. package/dist/commands/controller/pending-content.js.map +1 -0
  45. package/dist/commands/controller/providers/codex.js +5 -1
  46. package/dist/commands/controller/providers/codex.js.map +1 -1
  47. package/dist/commands/controller/providers/types.d.ts +4 -0
  48. package/dist/commands/controller/resume.js +3 -2
  49. package/dist/commands/controller/resume.js.map +1 -1
  50. package/dist/commands/controller/runtime.js +11 -1
  51. package/dist/commands/controller/runtime.js.map +1 -1
  52. package/dist/commands/controller/sqlite/journal/006-pending-content.sql +12 -0
  53. package/dist/commands/project/definition.js +1 -1
  54. package/dist/commands/project/definition.js.map +1 -1
  55. package/dist/commands/review/definition.js +3 -3
  56. package/dist/commands/review/definition.js.map +1 -1
  57. package/dist/commands/skill/read.d.ts +2 -0
  58. package/dist/commands/skill/read.js +36 -0
  59. package/dist/commands/skill/read.js.map +1 -0
  60. package/dist/commands/skill/skills/using-daynight/references/authorization.md +1 -0
  61. package/dist/commands/skill/skills/using-daynight/references/goal.md +33 -8
  62. package/dist/commands/skill/skills/using-daynight/references/run-task.md +1 -1
  63. package/dist/commands/skill/skills/using-daynight/references/task-content.md +1 -0
  64. package/dist/commands/skill/usage.md +162 -0
  65. package/dist/commands/task/definition.js +1 -1
  66. package/dist/commands/task/definition.js.map +1 -1
  67. package/dist/commands/worker/backends/web-process.js +5 -8
  68. package/dist/commands/worker/backends/web-process.js.map +1 -1
  69. package/dist/commands/worker/backends/web-store.d.ts +1 -0
  70. package/dist/commands/worker/backends/web-store.js +1 -0
  71. package/dist/commands/worker/backends/web-store.js.map +1 -1
  72. package/dist/commands/worker/backends/web.d.ts +1 -0
  73. package/dist/commands/worker/backends/web.js +8 -0
  74. package/dist/commands/worker/backends/web.js.map +1 -1
  75. package/dist/commands/worker/definition.js +2 -2
  76. package/dist/commands/worker/definition.js.map +1 -1
  77. package/dist/commands/worker/herdr/agents.d.ts +3 -0
  78. package/dist/commands/worker/herdr/agents.js +14 -3
  79. package/dist/commands/worker/herdr/agents.js.map +1 -1
  80. package/dist/commands/worker/herdr/arguments.d.ts +4 -0
  81. package/dist/commands/worker/herdr/arguments.js +17 -0
  82. package/dist/commands/worker/herdr/arguments.js.map +1 -1
  83. package/dist/commands/worker/herdr/codex-config.d.ts +8 -0
  84. package/dist/commands/worker/herdr/codex-config.js +75 -0
  85. package/dist/commands/worker/herdr/codex-config.js.map +1 -0
  86. package/dist/commands/worker/herdr/preflight.js +1 -18
  87. package/dist/commands/worker/herdr/preflight.js.map +1 -1
  88. package/dist/commands/worker/herdr.d.ts +4 -0
  89. package/dist/commands/worker/herdr.js +3 -2
  90. package/dist/commands/worker/herdr.js.map +1 -1
  91. package/dist/commands/worker/runtime.js +60 -4
  92. package/dist/commands/worker/runtime.js.map +1 -1
  93. package/dist/config/agent-cli-aliases.d.ts +5 -0
  94. package/dist/config/agent-cli-aliases.js +37 -0
  95. package/dist/config/agent-cli-aliases.js.map +1 -0
  96. package/dist/config/paths.d.ts +1 -1
  97. package/dist/config/paths.js +6 -2
  98. package/dist/config/paths.js.map +1 -1
  99. package/dist/platform/sqlite-format.d.ts +1 -1
  100. package/dist/platform/sqlite-format.js +1 -1
  101. package/dist/platform/sqlite-format.js.map +1 -1
  102. package/dist/session/archive.d.ts +25 -0
  103. package/dist/session/archive.js +100 -0
  104. package/dist/session/archive.js.map +1 -0
  105. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-store.js","sourceRoot":"","sources":["../../../src/commands/controller/lifecycle-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-store.js","sourceRoot":"","sources":["../../../src/commands/controller/lifecycle-store.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type Database from "better-sqlite3";
1
+ import type { PendingContent } from "./pending-content.js";
2
2
  import { type TimelineEntry, type SessionResource } from "../../session/protocol.js";
3
3
  import type { TimelinePage } from "../../session/controller-protocol.js";
4
4
  export type LocalTimelineQuery = {
@@ -11,7 +11,7 @@ type ContentTransactions = {
11
11
  read: <T>(action: () => T) => T;
12
12
  write: <T>(action: () => T) => T;
13
13
  };
14
- export declare const createLocalSessionContent: (db: Database.Database, sessionId: string, transactions: ContentTransactions) => {
14
+ export declare const createLocalSessionContent: (store: PendingContent, sessionId: string, transactions: ContentTransactions) => {
15
15
  readTimeline: (query: LocalTimelineQuery) => Omit<TimelinePage, "lastEventSeq" | "sessionId"> & {
16
16
  kind: "timeline";
17
17
  };
@@ -1,12 +1,12 @@
1
1
  import { sessionDisplayEntry, sessionWireBytes } from "./wire-display.js";
2
2
  import { createHash } from "node:crypto";
3
- import { parseTimelineEntry, parseSessionResource } from "../../session/protocol.js";
3
+ import { parseSessionResource } from "../../session/protocol.js";
4
4
  const sequence = (value) => {
5
5
  if (!/^(0|[1-9][0-9]{0,18})$/.test(value) || BigInt(value) > 9223372036854775807n)
6
6
  throw new Error("Invalid local content sequence.");
7
7
  return BigInt(value);
8
8
  };
9
- export const createLocalSessionContent = (db, sessionId, transactions) => {
9
+ export const createLocalSessionContent = (store, sessionId, transactions) => {
10
10
  const resourcesFor = (items) => {
11
11
  const ids = new Set();
12
12
  for (const item of items) {
@@ -16,8 +16,8 @@ export const createLocalSessionContent = (db, sessionId, transactions) => {
16
16
  ids.add(part.resourceId);
17
17
  }
18
18
  return [...ids].flatMap(id => {
19
- const row = db.prepare("SELECT descriptor FROM resources WHERE id=?").get(id);
20
- return row ? [parseSessionResource(JSON.parse(row.descriptor))] : [];
19
+ const row = store.resources.get(id);
20
+ return row ? [row.resource] : [];
21
21
  });
22
22
  };
23
23
  const content = {
@@ -42,14 +42,15 @@ export const createLocalSessionContent = (db, sessionId, transactions) => {
42
42
  throw new Error("Invalid local timeline cursor.");
43
43
  }
44
44
  }
45
- const where = query.direction === "tail" ? "" : query.direction === "before" ? "WHERE rowid < ?" : "WHERE rowid > ?";
46
45
  const ascending = query.direction === "after";
47
- const rows = db.prepare(`SELECT CAST(rowid AS TEXT) AS seq, value FROM projection ${where} ORDER BY rowid ${ascending ? "ASC" : "DESC"} LIMIT ?`).all(...(query.direction === "tail" ? [query.limit] : [pivot, query.limit]));
46
+ const ordered = [...store.entries.values()].sort((a, b) => sequence(a.entrySeq) < sequence(b.entrySeq) ? -1 : 1);
47
+ const eligible = ordered.filter(entry => query.direction === "tail" || (ascending ? sequence(entry.entrySeq) > pivot : sequence(entry.entrySeq) < pivot));
48
+ const rows = (ascending ? eligible : eligible.reverse()).slice(0, query.limit);
48
49
  const items = [];
49
50
  // Leave room for the envelope and resource descriptors in the WS frame.
50
51
  let bytes = 1024;
51
52
  for (const row of rows) {
52
- const entry = sessionDisplayEntry(parseTimelineEntry({ ...JSON.parse(row.value), entrySeq: row.seq }));
53
+ const entry = sessionDisplayEntry(row);
53
54
  const size = sessionWireBytes(entry) + sessionWireBytes(resourcesFor([entry]));
54
55
  if (bytes + size > 1_500_000) {
55
56
  if (!items.length)
@@ -63,40 +64,41 @@ export const createLocalSessionContent = (db, sessionId, transactions) => {
63
64
  items.reverse();
64
65
  const first = items[0]?.entrySeq, last = items.at(-1)?.entrySeq;
65
66
  const cursor = (seq) => seq === undefined ? null : Buffer.from(JSON.stringify([sessionId, query.historyEpoch, seq])).toString("base64url");
66
- const hasBefore = first !== undefined && db.prepare("SELECT 1 FROM projection WHERE rowid < ? LIMIT 1").get(sequence(first)) !== undefined;
67
- const hasAfter = last !== undefined && db.prepare("SELECT 1 FROM projection WHERE rowid > ? LIMIT 1").get(sequence(last)) !== undefined;
67
+ const hasBefore = first !== undefined && ordered.some(entry => sequence(entry.entrySeq) < sequence(first));
68
+ const hasAfter = last !== undefined && ordered.some(entry => sequence(entry.entrySeq) > sequence(last));
68
69
  return { kind: "timeline", historyEpoch: query.historyEpoch, items, resources: resourcesFor(items), beforeCursor: cursor(first), afterCursor: cursor(last), hasMoreBefore: hasBefore, hasMoreAfter: hasAfter };
69
70
  },
70
71
  pendingInteractions() {
71
- const rows = db.prepare("SELECT CAST(rowid AS TEXT) AS seq,value FROM projection WHERE json_extract(value,'$.kind')='interaction' AND json_extract(value,'$.interaction.state')='pending' ORDER BY rowid LIMIT 101").all();
72
+ const rows = [...store.entries.values()].filter(entry => entry.kind === "interaction" && entry.interaction.state === "pending").sort((a, b) => sequence(a.entrySeq) < sequence(b.entrySeq) ? -1 : 1);
72
73
  if (rows.length > 100)
73
74
  throw new Error("Too many pending native interactions to synchronize safely.");
74
- return rows.map(row => parseTimelineEntry({ ...JSON.parse(row.value), entrySeq: row.seq }));
75
+ return rows;
75
76
  },
76
77
  saveResource(resource, content) {
77
78
  parseSessionResource(resource);
78
79
  if (content && (content.byteLength > 8_388_608 || String(content.byteLength) !== resource.byteLength || createHash("sha256").update(content).digest("hex") !== resource.sha256))
79
80
  throw new Error("Local session resource content does not match its descriptor.");
80
- const previous = db.prepare("SELECT descriptor FROM resources WHERE id=?").get(resource.resourceId);
81
+ const previous = store.resources.get(resource.resourceId);
81
82
  if (previous) {
82
- const old = parseSessionResource(JSON.parse(previous.descriptor));
83
+ const old = previous.resource;
83
84
  if (old.status === "available" && JSON.stringify(old) !== JSON.stringify(resource))
84
85
  throw new Error("An available local resource cannot change identity.");
85
86
  }
86
- db.prepare("INSERT INTO resources(id,descriptor,content) VALUES(?,?,?) ON CONFLICT(id) DO UPDATE SET descriptor=excluded.descriptor,content=COALESCE(excluded.content,resources.content)").run(resource.resourceId, JSON.stringify(resource), content ? Buffer.from(content) : null);
87
+ store.saveResource({ resource, data: content ? Buffer.from(content).toString("base64") : previous?.data ?? null });
87
88
  },
88
89
  readResource(resourceId, offset, limit) {
89
90
  const position = sequence(offset);
90
91
  if (!Number.isSafeInteger(limit) || limit < 1 || limit > 524288)
91
92
  throw new Error("Invalid local resource chunk limit.");
92
- const row = db.prepare("SELECT descriptor,content FROM resources WHERE id=?").get(resourceId);
93
- if (!row?.content)
93
+ const row = store.resources.get(resourceId);
94
+ if (row?.data === null || row === undefined)
94
95
  throw new Error("Local session resource is unavailable.");
95
- const resource = parseSessionResource(JSON.parse(row.descriptor));
96
- if (resource.status !== "available" || position > BigInt(row.content.length))
96
+ const resource = row.resource;
97
+ const content = Buffer.from(row.data, "base64");
98
+ if (resource.status !== "available" || position > BigInt(content.length))
97
99
  throw new Error("Local session resource is unavailable.");
98
- const end = Math.min(Number(position) + limit, row.content.length);
99
- return { kind: "resource", resource, offset, data: row.content.subarray(Number(position), end).toString("base64"), eof: end === row.content.length };
100
+ const end = Math.min(Number(position) + limit, content.length);
101
+ return { kind: "resource", resource, offset, data: content.subarray(Number(position), end).toString("base64"), eof: end === content.length };
100
102
  },
101
103
  };
102
104
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"local-content.js","sourceRoot":"","sources":["../../../src/commands/controller/local-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAA4C,MAAM,2BAA2B,CAAC;AAI/H,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE;IACzC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,oBAAoB;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACtI,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EAAqB,EAAE,SAAiB,EAAE,YAAiC,EAAE,EAAE;IACvH,MAAM,YAAY,GAAG,CAAC,KAA+B,EAAqB,EAAE;QAC1E,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9I,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;oBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC3B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,EAAE,CAAuC,CAAC;YACpH,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,OAAO,GAAG;QACd,YAAY,CAAC,KAAyB;YACpC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC1L,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;gBAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC5I,IAAI,CAAC;oBACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC5F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAAY,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ;wBAAE,MAAM,IAAI,KAAK,EAAE,CAAC;oBACrK,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAAC,CAAC;YAChE,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC;YACrH,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC;YAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,4DAA4D,KAAK,mBAAmB,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAqC,CAAC;YAClQ,MAAM,KAAK,GAAoB,EAAE,CAAC;YAClC,wEAAwE;YACxE,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACjH,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/E,IAAI,KAAK,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM;wBAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;oBAC1F,MAAM;gBACR,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,KAAK,IAAI,IAAI,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,SAAS;gBAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;YAChE,MAAM,MAAM,GAAG,CAAC,GAAuB,EAAiB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC9K,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC;YAC3I,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS,CAAC;YACxI,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QACjN,CAAC;QACD,mBAAmB;YACjB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,2LAA2L,CAAC,CAAC,GAAG,EAAsC,CAAC;YAC/P,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACtG,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxG,CAAC;QACD,YAAY,CAAC,QAAyB,EAAE,OAAoB;YAC1D,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAClQ,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAuC,CAAC;YAC1I,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClE,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC7J,CAAC;YACD,EAAE,CAAC,OAAO,CAAC,8KAA8K,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvR,CAAC;QACD,YAAY,CAAC,UAAkB,EAAE,MAAc,EAAE,KAAa;YAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACxH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,UAAU,CAA+D,CAAC;YAC5J,IAAI,CAAC,GAAG,EAAE,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACxI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACvJ,CAAC;KACF,CAAC;IACF,OAAO;QACL,YAAY,EAAE,CAAC,KAAyB,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjG,mBAAmB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACjF,YAAY,EAAE,CAAC,QAAyB,EAAE,KAAkB,EAAQ,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtI,YAAY,EAAE,CAAC,UAAkB,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;KAC9I,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"local-content.js","sourceRoot":"","sources":["../../../src/commands/controller/local-content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const resolveControllerIpcEndpoint: (home: string, launchId: string, platform?: NodeJS.Platform) => string;
2
+ export declare const prepareControllerIpcEndpoint: (home: string, launchId: string) => Promise<string>;
@@ -0,0 +1,34 @@
1
+ import { createHash } from "node:crypto";
2
+ import { lstat, mkdir } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { resolveConfigurationPaths } from "../../config/paths.js";
5
+ export const resolveControllerIpcEndpoint = (home, launchId, platform = process.platform) => {
6
+ const { stateDirectory } = resolveConfigurationPaths(home);
7
+ // Preserve existing default identities, while custom roots own separate pipes.
8
+ const identity = process.env.DN_CONFIG_DIR === undefined ? home : stateDirectory;
9
+ const key = createHash("sha256").update(`${identity}:${launchId}`).digest("hex").slice(0, 20);
10
+ if (platform === "win32")
11
+ return `\\\\.\\pipe\\daynight-${key}`;
12
+ const endpoint = path.join(stateDirectory, "c", `${key}.sock`);
13
+ const maximum = platform === "darwin" ? 103 : 107;
14
+ if (Buffer.byteLength(endpoint) <= maximum)
15
+ return endpoint;
16
+ // Unix socket addresses have a small byte limit independent of filesystem
17
+ // path limits. Only this authenticated, ephemeral endpoint uses a short root;
18
+ // tickets, credentials and recovery evidence remain in the configured root.
19
+ const rootKey = createHash("sha256").update(stateDirectory).digest("hex").slice(0, 24);
20
+ return `/tmp/daynight-${process.getuid()}-${rootKey}/${key}.sock`;
21
+ };
22
+ export const prepareControllerIpcEndpoint = async (home, launchId) => {
23
+ const endpoint = resolveControllerIpcEndpoint(home, launchId);
24
+ if (process.platform === "win32")
25
+ return endpoint;
26
+ const directory = path.dirname(endpoint);
27
+ await mkdir(directory, { recursive: true, mode: 0o700 });
28
+ const metadata = await lstat(directory);
29
+ if (!metadata.isDirectory() || metadata.isSymbolicLink() || metadata.uid !== process.getuid() || (metadata.mode & 0o077) !== 0) {
30
+ throw new Error("Controller IPC requires a private owned directory without symlinks.");
31
+ }
32
+ return endpoint;
33
+ };
34
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/commands/controller/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAQ,GAAoB,OAAO,CAAC,QAAQ,EAAU,EAAE;IACnI,MAAM,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC3D,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;IACjF,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9F,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,yBAAyB,GAAG,EAAE,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC5D,0EAA0E;IAC1E,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvF,OAAO,iBAAiB,OAAO,CAAC,MAAO,EAAE,IAAI,OAAO,IAAI,GAAG,OAAO,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAE,IAAY,EAAE,QAAgB,EAAmB,EAAE;IACpG,MAAM,QAAQ,GAAG,4BAA4B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,cAAc,EAAE,IAAI,QAAQ,CAAC,GAAG,KAAK,OAAO,CAAC,MAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAChI,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import Database from "better-sqlite3";
2
+ import { type TimelineEntry, type SessionResource } from "../../session/protocol.js";
3
+ /** Pending upload source, not a second permanent native session history. */
4
+ export type PendingResource = {
5
+ resource: SessionResource;
6
+ data: string | null;
7
+ };
8
+ export declare const writeDurableJson: (file: string, value: unknown) => void;
9
+ export declare const openPendingContent: (journal: string, sessionId: string) => {
10
+ entries: Map<string, TimelineEntry>;
11
+ resources: Map<string, PendingResource>;
12
+ saveEntry: (value: TimelineEntry) => void;
13
+ saveResource: (value: PendingResource) => void;
14
+ nextEntrySequence: () => string;
15
+ };
16
+ export type PendingContent = ReturnType<typeof openPendingContent>;
17
+ /** File commit precedes SQL deletion. A crash leaves either both copies or files only. */
18
+ export declare const migratePendingContent: (db: Database.Database, content: PendingContent, schemaSql: string) => void;
19
+ /** Files may be ahead of a rolled-back SQL delivery transaction, never behind it. */
20
+ export declare const reconcilePendingContent: (db: Database.Database, content: PendingContent) => void;
@@ -0,0 +1,159 @@
1
+ import Database from "better-sqlite3";
2
+ import { closeSync, existsSync, fsyncSync, mkdirSync, openSync, readFileSync, readdirSync, renameSync, writeFileSync } from "node:fs";
3
+ import { join, dirname } from "node:path";
4
+ import { controllerPayloadHash } from "./launch-ticket.js";
5
+ import { createHash, randomUUID } from "node:crypto";
6
+ import { parseTimelineEntry, parseSessionResource } from "../../session/protocol.js";
7
+ const syncDirectory = (directory) => {
8
+ // Windows does not expose directory handles through fs.open; file flush remains mandatory.
9
+ if (process.platform === "win32")
10
+ return;
11
+ const fd = openSync(directory, "r");
12
+ try {
13
+ fsyncSync(fd);
14
+ }
15
+ finally {
16
+ closeSync(fd);
17
+ }
18
+ };
19
+ export const writeDurableJson = (file, value) => {
20
+ const temporary = `${file}.${randomUUID()}.tmp`;
21
+ const fd = openSync(temporary, "wx", 0o600);
22
+ try {
23
+ writeFileSync(fd, JSON.stringify(value));
24
+ fsyncSync(fd);
25
+ }
26
+ finally {
27
+ closeSync(fd);
28
+ }
29
+ renameSync(temporary, file);
30
+ syncDirectory(dirname(file));
31
+ };
32
+ export const openPendingContent = (journal, sessionId) => {
33
+ const root = `${journal}.pending-content`;
34
+ const timelineDirectory = join(root, "timeline"), resourceDirectory = join(root, "resources");
35
+ mkdirSync(timelineDirectory, { recursive: true, mode: 0o700 });
36
+ mkdirSync(resourceDirectory, { recursive: true, mode: 0o700 });
37
+ syncDirectory(dirname(root));
38
+ const manifest = join(root, "manifest.json");
39
+ if (existsSync(manifest)) {
40
+ const value = JSON.parse(readFileSync(manifest, "utf8"));
41
+ if (value.schemaVersion !== 1 || value.sessionId !== sessionId)
42
+ throw new Error("Pending content belongs to another session.");
43
+ }
44
+ else
45
+ writeDurableJson(manifest, { schemaVersion: 1, sessionId });
46
+ const indexPath = join(root, "index.json");
47
+ const index = existsSync(indexPath) ? JSON.parse(readFileSync(indexPath, "utf8")) : { entries: [], resources: [] };
48
+ if (!Array.isArray(index.entries) || !Array.isArray(index.resources))
49
+ throw new Error("Invalid pending content index.");
50
+ for (const [directory, names] of [[timelineDirectory, index.entries], [resourceDirectory, index.resources]]) {
51
+ for (const name of names)
52
+ if (!/^[a-f0-9]{64}\.json$/.test(name) || !existsSync(join(directory, name)))
53
+ throw new Error("Pending archive source is incomplete.");
54
+ }
55
+ const entries = new Map();
56
+ const resources = new Map();
57
+ const name = (id) => `${createHash("sha256").update(id).digest("hex")}.json`;
58
+ for (const file of readdirSync(timelineDirectory).filter(file => file.endsWith(".json"))) {
59
+ const entry = parseTimelineEntry(JSON.parse(readFileSync(join(timelineDirectory, file), "utf8")));
60
+ if (name(entry.entryId) !== file || entries.has(entry.entryId))
61
+ throw new Error("Invalid pending timeline identity.");
62
+ entries.set(entry.entryId, entry);
63
+ }
64
+ let lastEntrySequence = [...entries.values()].reduce((maximum, entry) => BigInt(entry.entrySeq) > maximum ? BigInt(entry.entrySeq) : maximum, 0n);
65
+ const sequences = new Set([...entries.values()].map(entry => entry.entrySeq));
66
+ if (sequences.size !== entries.size)
67
+ throw new Error("Duplicate pending timeline sequence.");
68
+ for (const file of readdirSync(resourceDirectory).filter(file => file.endsWith(".json"))) {
69
+ const value = JSON.parse(readFileSync(join(resourceDirectory, file), "utf8"));
70
+ const resource = parseSessionResource(value.resource);
71
+ if (name(resource.resourceId) !== file || (value.data !== null && typeof value.data !== "string"))
72
+ throw new Error("Invalid pending resource identity.");
73
+ if (value.data !== null) {
74
+ const content = Buffer.from(value.data, "base64");
75
+ if (content.toString("base64") !== value.data || String(content.length) !== resource.byteLength || createHash("sha256").update(content).digest("hex") !== resource.sha256)
76
+ throw new Error("Corrupt pending resource content.");
77
+ }
78
+ resources.set(resource.resourceId, { resource, data: value.data });
79
+ }
80
+ // SQL content_index is the durable timeline inventory. Rewriting a growing
81
+ // entry list on each insert would make an otherwise linear archive quadratic.
82
+ // Resources have their own small inventory because their bytes do not live in SQL.
83
+ const updateIndex = () => writeDurableJson(indexPath, { entries: [], resources: [...resources.keys()].map(name).sort() });
84
+ // An interrupted insert may leave a committed file ahead of the index; adopt it.
85
+ updateIndex();
86
+ const saveEntry = (value) => {
87
+ const entry = parseTimelineEntry(JSON.parse(JSON.stringify(value)));
88
+ const old = entries.get(entry.entryId);
89
+ if (old && (old.entrySeq !== entry.entrySeq || BigInt(old.revision) > BigInt(entry.revision)))
90
+ throw new Error("Pending timeline revision regressed.");
91
+ if (old && JSON.stringify(old) === JSON.stringify(entry))
92
+ return;
93
+ writeDurableJson(join(timelineDirectory, name(entry.entryId)), entry);
94
+ entries.set(entry.entryId, entry);
95
+ if (BigInt(entry.entrySeq) > lastEntrySequence)
96
+ lastEntrySequence = BigInt(entry.entrySeq);
97
+ };
98
+ const saveResource = (value) => {
99
+ parseSessionResource(value.resource);
100
+ if (value.data !== null) {
101
+ const bytes = Buffer.from(value.data, "base64");
102
+ if (bytes.length > 8_388_608 || bytes.toString("base64") !== value.data || String(bytes.length) !== value.resource.byteLength || createHash("sha256").update(bytes).digest("hex") !== value.resource.sha256)
103
+ throw new Error("Corrupt pending resource content.");
104
+ }
105
+ const previous = resources.get(value.resource.resourceId);
106
+ if (previous && JSON.stringify(previous) === JSON.stringify(value))
107
+ return;
108
+ const existed = previous !== undefined;
109
+ writeDurableJson(join(resourceDirectory, name(value.resource.resourceId)), value);
110
+ resources.set(value.resource.resourceId, JSON.parse(JSON.stringify(value)));
111
+ if (!existed)
112
+ updateIndex();
113
+ };
114
+ return { entries, resources, saveEntry, saveResource, nextEntrySequence: () => String(lastEntrySequence + 1n) };
115
+ };
116
+ /** File commit precedes SQL deletion. A crash leaves either both copies or files only. */
117
+ export const migratePendingContent = (db, content, schemaSql) => {
118
+ if (!db.inTransaction)
119
+ throw new Error("Pending content migration requires the journal migration transaction.");
120
+ db.pragma("secure_delete = ON");
121
+ for (const row of db.prepare("SELECT CAST(rowid AS TEXT) AS seq,value FROM projection ORDER BY rowid").iterate()) {
122
+ const entry = parseTimelineEntry({ ...JSON.parse(row.value), entrySeq: row.seq });
123
+ const existing = content.entries.get(entry.entryId);
124
+ if (existing && JSON.stringify(existing) !== JSON.stringify(entry))
125
+ throw new Error("Legacy projection conflicts with pending archive source.");
126
+ content.saveEntry(entry);
127
+ }
128
+ for (const row of db.prepare("SELECT descriptor,content FROM resources").iterate()) {
129
+ const resource = parseSessionResource(JSON.parse(row.descriptor));
130
+ const value = { resource, data: row.content?.toString("base64") ?? null };
131
+ const existing = content.resources.get(resource.resourceId);
132
+ if (existing && JSON.stringify(existing) !== JSON.stringify(value))
133
+ throw new Error("Legacy resource conflicts with pending archive source.");
134
+ content.saveResource(value);
135
+ }
136
+ db.exec(schemaSql);
137
+ for (const entry of content.entries.values())
138
+ db.prepare("INSERT INTO content_index VALUES(?,?,?,?)").run(entry.entryId, controllerPayloadHash(entry), entry.revision, entry.entrySeq);
139
+ };
140
+ /** Files may be ahead of a rolled-back SQL delivery transaction, never behind it. */
141
+ export const reconcilePendingContent = (db, content) => {
142
+ db.transaction(() => {
143
+ const rows = db.prepare("SELECT id,content_hash,revision,entry_seq FROM content_index").all();
144
+ const indexed = new Map(rows.map(row => [row.id, row]));
145
+ for (const row of rows) {
146
+ const entry = content.entries.get(row.id);
147
+ if (!entry || entry.entrySeq !== row.entry_seq || BigInt(entry.revision) < BigInt(row.revision) || entry.revision === row.revision && controllerPayloadHash(entry) !== row.content_hash)
148
+ throw new Error("Pending archive source is incomplete or corrupt.");
149
+ }
150
+ for (const entry of content.entries.values()) {
151
+ const row = indexed.get(entry.entryId);
152
+ if (row?.content_hash === controllerPayloadHash(entry))
153
+ continue;
154
+ db.prepare("INSERT INTO content_index VALUES(?,?,?,?) ON CONFLICT(id) DO UPDATE SET content_hash=excluded.content_hash,revision=excluded.revision,entry_seq=excluded.entry_seq").run(entry.entryId, controllerPayloadHash(entry), entry.revision, entry.entrySeq);
155
+ db.prepare("UPDATE execution SET projection_gap=COALESCE(projection_gap,?) WHERE id=1").run("Recovered pending timeline requires full relay resynchronization.");
156
+ }
157
+ }).immediate();
158
+ };
159
+ //# sourceMappingURL=pending-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-content.js","sourceRoot":"","sources":["../../../src/commands/controller/pending-content.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { codexAgentCliOverrides } from "../../../cli/codex-agent-environment.js";
1
2
  import { homedir } from "node:os";
2
3
  import { join } from "node:path";
3
4
  import { CodexControls } from "./controls-codex.js";
@@ -161,7 +162,10 @@ export const openCodexProvider = async (options) => {
161
162
  try {
162
163
  await rpc.request("initialize", { clientInfo: { name: "daynight", title: "Daynight Controller", version: "0.22.0" }, capabilities: { experimentalApi: true } });
163
164
  rpc.notify("initialized");
164
- const response = record(await rpc.request(options.resumeNativeSessionId ? "thread/resume" : "thread/start", { ...(options.resumeNativeSessionId ? { threadId: options.resumeNativeSessionId, excludeTurns: true } : {}), cwd: options.cwd, ...(!options.resumeNativeSessionId && options.model ? { model: options.model } : {}), ...(!options.resumeNativeSessionId && options.unattended ? { sandbox: "danger-full-access", approvalPolicy: "never" } : {}), ...(!options.resumeNativeSessionId && !options.unattended && config.sandbox ? { sandbox: config.sandbox } : {}), ...(!options.resumeNativeSessionId && !options.unattended && config.approvalPolicy ? { approvalPolicy: config.approvalPolicy } : {}), config: { "features.default_mode_request_user_input": true } }));
165
+ const aliasOverrides = options.agentCliEnvironment
166
+ ? codexAgentCliOverrides(options.agentCliEnvironment, await rpc.request("config/read", { cwd: options.cwd, includeLayers: false }))
167
+ : {};
168
+ const response = record(await rpc.request(options.resumeNativeSessionId ? "thread/resume" : "thread/start", { ...(options.resumeNativeSessionId ? { threadId: options.resumeNativeSessionId, excludeTurns: true } : {}), cwd: options.cwd, ...(!options.resumeNativeSessionId && options.model ? { model: options.model } : {}), ...(!options.resumeNativeSessionId && options.unattended ? { sandbox: "danger-full-access", approvalPolicy: "never" } : {}), ...(!options.resumeNativeSessionId && !options.unattended && config.sandbox ? { sandbox: config.sandbox } : {}), ...(!options.resumeNativeSessionId && !options.unattended && config.approvalPolicy ? { approvalPolicy: config.approvalPolicy } : {}), config: { "features.default_mode_request_user_input": true, ...aliasOverrides } }));
165
169
  const thread = record(response.thread);
166
170
  nativeId = string(thread.id);
167
171
  if (!nativeId || options.resumeNativeSessionId && nativeId !== options.resumeNativeSessionId || await realpath(string(thread.cwd)) !== await realpath(options.cwd))