draken 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/MEMORY.md +10 -4
  3. package/PERSONA.md +9 -2
  4. package/README.md +9 -11
  5. package/SETUP.md +3 -3
  6. package/TRAY.md +2 -2
  7. package/VOICE.md +1 -1
  8. package/dist/auth/middleware.d.ts.map +1 -1
  9. package/dist/auth/middleware.js +0 -13
  10. package/dist/auth/middleware.js.map +1 -1
  11. package/dist/cli.js +6 -2
  12. package/dist/cli.js.map +1 -1
  13. package/dist/data-dir.d.ts +2 -0
  14. package/dist/data-dir.d.ts.map +1 -0
  15. package/dist/data-dir.js +12 -0
  16. package/dist/data-dir.js.map +1 -0
  17. package/dist/db/evidence.d.ts +2 -1
  18. package/dist/db/evidence.d.ts.map +1 -1
  19. package/dist/db/evidence.js +6 -5
  20. package/dist/db/evidence.js.map +1 -1
  21. package/dist/db/pointer-migration.js +4 -4
  22. package/dist/db/pointer-migration.js.map +1 -1
  23. package/dist/db/schema.d.ts +0 -1
  24. package/dist/db/schema.d.ts.map +1 -1
  25. package/dist/db/schema.js +7 -7
  26. package/dist/db/schema.js.map +1 -1
  27. package/dist/errors.d.ts +5 -0
  28. package/dist/errors.d.ts.map +1 -0
  29. package/dist/errors.js +12 -0
  30. package/dist/errors.js.map +1 -0
  31. package/dist/memory/context.d.ts +2 -9
  32. package/dist/memory/context.d.ts.map +1 -1
  33. package/dist/memory/context.js +7 -84
  34. package/dist/memory/context.js.map +1 -1
  35. package/dist/memory/embedding-contract.d.ts +5 -0
  36. package/dist/memory/embedding-contract.d.ts.map +1 -0
  37. package/dist/memory/embedding-contract.js +12 -0
  38. package/dist/memory/embedding-contract.js.map +1 -0
  39. package/dist/memory/embedding-pool.d.ts +1 -2
  40. package/dist/memory/embedding-pool.d.ts.map +1 -1
  41. package/dist/memory/embedding-pool.js +9 -9
  42. package/dist/memory/embedding-pool.js.map +1 -1
  43. package/dist/memory/embedding-worker.js +2 -1
  44. package/dist/memory/embedding-worker.js.map +1 -1
  45. package/dist/{voice/history-focus.d.ts → memory/focus.d.ts} +6 -6
  46. package/dist/memory/focus.d.ts.map +1 -0
  47. package/dist/{voice/history-focus.js → memory/focus.js} +6 -6
  48. package/dist/memory/focus.js.map +1 -0
  49. package/dist/memory/index.d.ts.map +1 -1
  50. package/dist/memory/index.js +12 -15
  51. package/dist/memory/index.js.map +1 -1
  52. package/dist/memory/model-assets.d.ts +5 -0
  53. package/dist/memory/model-assets.d.ts.map +1 -0
  54. package/dist/memory/model-assets.js +84 -0
  55. package/dist/memory/model-assets.js.map +1 -0
  56. package/dist/memory/model.d.ts +2 -7
  57. package/dist/memory/model.d.ts.map +1 -1
  58. package/dist/memory/model.js +13 -83
  59. package/dist/memory/model.js.map +1 -1
  60. package/dist/memory/packet.d.ts +9 -0
  61. package/dist/memory/packet.d.ts.map +1 -0
  62. package/dist/memory/packet.js +78 -0
  63. package/dist/memory/packet.js.map +1 -0
  64. package/dist/memory/passages.d.ts +15 -0
  65. package/dist/memory/passages.d.ts.map +1 -0
  66. package/dist/memory/passages.js +22 -0
  67. package/dist/memory/passages.js.map +1 -0
  68. package/dist/memory/readiness.d.ts.map +1 -1
  69. package/dist/memory/readiness.js +2 -6
  70. package/dist/memory/readiness.js.map +1 -1
  71. package/dist/memory/service.d.ts +2 -1
  72. package/dist/memory/service.d.ts.map +1 -1
  73. package/dist/memory/service.js +46 -22
  74. package/dist/memory/service.js.map +1 -1
  75. package/dist/memory/sources.d.ts +0 -1
  76. package/dist/memory/sources.d.ts.map +1 -1
  77. package/dist/memory/sources.js +3 -7
  78. package/dist/memory/sources.js.map +1 -1
  79. package/dist/memory/stamps.d.ts +3 -3
  80. package/dist/memory/stamps.d.ts.map +1 -1
  81. package/dist/memory/stamps.js +3 -3
  82. package/dist/memory/stamps.js.map +1 -1
  83. package/dist/memory/storage.d.ts.map +1 -1
  84. package/dist/memory/storage.js +3 -2
  85. package/dist/memory/storage.js.map +1 -1
  86. package/dist/memory/types.d.ts +2 -1
  87. package/dist/memory/types.d.ts.map +1 -1
  88. package/dist/memory/types.js +2 -1
  89. package/dist/memory/types.js.map +1 -1
  90. package/dist/pi/runtime.js +7 -7
  91. package/dist/pi/runtime.js.map +1 -1
  92. package/dist/pi/setup.d.ts +0 -1
  93. package/dist/pi/setup.d.ts.map +1 -1
  94. package/dist/pi/setup.js +2 -11
  95. package/dist/pi/setup.js.map +1 -1
  96. package/dist/routes/auth.d.ts.map +1 -1
  97. package/dist/routes/auth.js +0 -5
  98. package/dist/routes/auth.js.map +1 -1
  99. package/dist/routes/http.d.ts +6 -0
  100. package/dist/routes/http.d.ts.map +1 -0
  101. package/dist/routes/http.js +22 -0
  102. package/dist/routes/http.js.map +1 -0
  103. package/dist/routes/live-voice.d.ts.map +1 -1
  104. package/dist/routes/live-voice.js +18 -32
  105. package/dist/routes/live-voice.js.map +1 -1
  106. package/dist/routes/memory.d.ts.map +1 -1
  107. package/dist/routes/memory.js +8 -14
  108. package/dist/routes/memory.js.map +1 -1
  109. package/dist/routes/sync.d.ts.map +1 -1
  110. package/dist/routes/sync.js +57 -64
  111. package/dist/routes/sync.js.map +1 -1
  112. package/dist/routes/voice.d.ts.map +1 -1
  113. package/dist/routes/voice.js +7 -7
  114. package/dist/routes/voice.js.map +1 -1
  115. package/dist/server-ownership.d.ts +5 -0
  116. package/dist/server-ownership.d.ts.map +1 -0
  117. package/dist/server-ownership.js +34 -0
  118. package/dist/server-ownership.js.map +1 -0
  119. package/dist/server-state.js +3 -3
  120. package/dist/server-state.js.map +1 -1
  121. package/dist/server.d.ts.map +1 -1
  122. package/dist/server.js +40 -10
  123. package/dist/server.js.map +1 -1
  124. package/dist/sync/activity.d.ts +26 -0
  125. package/dist/sync/activity.d.ts.map +1 -0
  126. package/dist/sync/activity.js +80 -0
  127. package/dist/sync/activity.js.map +1 -0
  128. package/dist/{memory/automatic.d.ts → sync/background.d.ts} +5 -12
  129. package/dist/sync/background.d.ts.map +1 -0
  130. package/dist/{memory/automatic.js → sync/background.js} +29 -74
  131. package/dist/sync/background.js.map +1 -0
  132. package/dist/sync/collector.d.ts.map +1 -1
  133. package/dist/sync/collector.js +7 -6
  134. package/dist/sync/collector.js.map +1 -1
  135. package/dist/sync/manager.d.ts +1 -4
  136. package/dist/sync/manager.d.ts.map +1 -1
  137. package/dist/sync/manager.js +34 -50
  138. package/dist/sync/manager.js.map +1 -1
  139. package/dist/sync/models.d.ts +3 -0
  140. package/dist/sync/models.d.ts.map +1 -0
  141. package/dist/sync/models.js +12 -0
  142. package/dist/sync/models.js.map +1 -0
  143. package/dist/sync/pi.d.ts +1 -1
  144. package/dist/sync/pi.d.ts.map +1 -1
  145. package/dist/sync/pi.js +32 -19
  146. package/dist/sync/pi.js.map +1 -1
  147. package/dist/{voice → sync}/preparation.d.ts +0 -1
  148. package/dist/sync/preparation.d.ts.map +1 -0
  149. package/dist/{voice → sync}/preparation.js +10 -18
  150. package/dist/sync/preparation.js.map +1 -0
  151. package/dist/sync/recap.d.ts +2 -2
  152. package/dist/sync/recap.d.ts.map +1 -1
  153. package/dist/sync/recap.js +40 -13
  154. package/dist/sync/recap.js.map +1 -1
  155. package/dist/sync/retrieval.d.ts +3 -0
  156. package/dist/sync/retrieval.d.ts.map +1 -0
  157. package/dist/sync/retrieval.js +12 -0
  158. package/dist/sync/retrieval.js.map +1 -0
  159. package/dist/sync/source-files.d.ts +2 -4
  160. package/dist/sync/source-files.d.ts.map +1 -1
  161. package/dist/sync/source-files.js +5 -20
  162. package/dist/sync/source-files.js.map +1 -1
  163. package/dist/sync/store.d.ts +1 -14
  164. package/dist/sync/store.d.ts.map +1 -1
  165. package/dist/sync/store.js +32 -90
  166. package/dist/sync/store.js.map +1 -1
  167. package/dist/sync/tree.d.ts.map +1 -1
  168. package/dist/sync/tree.js +17 -22
  169. package/dist/sync/tree.js.map +1 -1
  170. package/dist/sync/usage.js +3 -3
  171. package/dist/sync/usage.js.map +1 -1
  172. package/dist/tray/launcher.js +2 -2
  173. package/dist/tray/launcher.js.map +1 -1
  174. package/dist/tray/worker.js +4 -4
  175. package/dist/tray/worker.js.map +1 -1
  176. package/dist/types.d.ts +8 -10
  177. package/dist/types.d.ts.map +1 -1
  178. package/dist/voice/history-delivery.js +3 -3
  179. package/dist/voice/history-delivery.js.map +1 -1
  180. package/dist/voice/live-context.js +3 -3
  181. package/dist/voice/live-context.js.map +1 -1
  182. package/dist/voice/live.d.ts +1 -0
  183. package/dist/voice/live.d.ts.map +1 -1
  184. package/dist/voice/live.js +57 -34
  185. package/dist/voice/live.js.map +1 -1
  186. package/package.json +1 -1
  187. package/public/assets/index-DXPfCm7z.js +131 -0
  188. package/public/index.html +1 -1
  189. package/voice/realtime/README.md +1 -1
  190. package/voice/realtime/helper-process.mjs +54 -0
  191. package/voice/realtime/native.mjs +55 -15
  192. package/voice/realtime/probe-server.mjs +24 -4
  193. package/voice/realtime/probe.mjs +49 -11
  194. package/voice/realtime/rpc.mjs +7 -32
  195. package/voice/realtime/setup.mjs +82 -19
  196. package/dist/memory/automatic.d.ts.map +0 -1
  197. package/dist/memory/automatic.js.map +0 -1
  198. package/dist/sync/automatic.d.ts +0 -7
  199. package/dist/sync/automatic.d.ts.map +0 -1
  200. package/dist/sync/automatic.js +0 -56
  201. package/dist/sync/automatic.js.map +0 -1
  202. package/dist/voice/history-focus.d.ts.map +0 -1
  203. package/dist/voice/history-focus.js.map +0 -1
  204. package/dist/voice/preparation.d.ts.map +0 -1
  205. package/dist/voice/preparation.js.map +0 -1
  206. package/public/assets/index-ClbxoVQK.js +0 -131
@@ -1,161 +1,154 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const express_1 = require("express");
4
+ const http_1 = require("./http");
5
+ const errors_1 = require("../errors");
4
6
  const schema_1 = require("../db/schema");
7
+ const data_dir_1 = require("../data-dir");
5
8
  const runtime_1 = require("../pi/runtime");
6
9
  const collector_1 = require("../sync/collector");
7
10
  const store_1 = require("../sync/store");
8
11
  const manager_1 = require("../sync/manager");
9
- const automatic_1 = require("../memory/automatic");
10
- const preparation_1 = require("../voice/preparation");
12
+ const background_1 = require("../sync/background");
13
+ const preparation_1 = require("../sync/preparation");
11
14
  const usage_1 = require("../sync/usage");
15
+ const activity_1 = require("../sync/activity");
12
16
  const router = (0, express_1.Router)();
13
- const route = (handler) => (req, res, next) => { Promise.resolve().then(() => handler(req, res)).catch(next); };
14
17
  function id(req) {
15
18
  const value = Number(req.params.id);
16
19
  if (!Number.isSafeInteger(value) || value < 1)
17
- throw new store_1.HttpError(400, 'Invalid sync ID');
20
+ throw new errors_1.HttpError(400, 'Invalid sync ID');
18
21
  return value;
19
22
  }
20
23
  function text(value, name, max = 4000) {
21
24
  if (typeof value !== 'string' || value.length > max)
22
- throw new store_1.HttpError(400, `${name} must be text of at most ${max} characters`);
25
+ throw new errors_1.HttpError(400, `${name} must be text of at most ${max} characters`);
23
26
  return value.trim();
24
27
  }
25
- router.get('/setup', route(async (req, res) => {
28
+ router.get('/setup', (0, http_1.route)(async (req, res) => {
26
29
  if (Object.keys(req.query).some(key => key !== 'refresh') || (req.query.refresh !== undefined && req.query.refresh !== '1'))
27
- throw new store_1.HttpError(400, 'Unknown setup status option');
28
- res.json({ pi: await (0, runtime_1.piSetupStatus)(req.query.refresh === '1'), data_dir: (0, schema_1.getDataDir)() });
30
+ throw new errors_1.HttpError(400, 'Unknown setup status option');
31
+ res.json({ pi: await (0, runtime_1.piSetupStatus)(req.query.refresh === '1'), data_dir: (0, data_dir_1.getDataDir)() });
29
32
  }));
30
- router.get('/settings/preparation-usage', route((req, res) => res.json((0, usage_1.preparationUsage)((0, schema_1.getDb)(), req.query))));
31
- router.get('/settings/auto-index', route((_req, res) => res.json((0, automatic_1.autoIndexSettings)())));
32
- router.patch('/settings/auto-index', route((req, res) => {
33
- if (!req.body || Array.isArray(req.body) || typeof req.body.enabled !== 'boolean' || Object.keys(req.body).some(key => !['enabled', 'preparation_scope'].includes(key)))
34
- throw new store_1.HttpError(400, 'Only enabled and preparation_scope are accepted');
35
- if (req.body.enabled && req.body.preparation_scope !== 'index-and-briefing-v1')
36
- throw new store_1.HttpError(409, 'Refresh Draken before enabling automatic preparation. This mode includes summary and briefing model usage, not only local indexing.');
37
- res.json((0, automatic_1.setAutoIndex)(req.body.enabled));
33
+ router.get('/settings/preparation-usage', (0, http_1.route)((req, res) => res.json((0, usage_1.preparationUsage)((0, schema_1.getDb)(), req.query))));
34
+ router.get('/settings/auto-index', (0, http_1.route)((_req, res) => res.json((0, background_1.autoIndexSettings)())));
35
+ router.patch('/settings/auto-index', (0, http_1.route)((req, res) => {
36
+ if (!req.body || Array.isArray(req.body) || typeof req.body.enabled !== 'boolean' || Object.keys(req.body).some(key => key !== 'enabled'))
37
+ throw new errors_1.HttpError(400, 'Only boolean enabled is accepted');
38
+ res.json((0, background_1.setAutoIndex)(req.body.enabled));
38
39
  }));
39
40
  router.use((req, _res, next) => {
40
41
  if (['POST', 'PATCH', 'DELETE'].includes(req.method))
41
- void (0, automatic_1.yieldBackgroundIndexing)().then(() => next(), next);
42
+ void (0, background_1.yieldBackgroundIndexing)().then(() => next(), next);
42
43
  else
43
44
  next();
44
45
  });
45
- router.get('/home', route((req, res) => {
46
+ router.get('/home', (0, http_1.route)((req, res) => {
46
47
  const before = req.query.before === undefined ? undefined : Number(req.query.before);
47
48
  if (before !== undefined && (!Number.isSafeInteger(before) || before < 1))
48
- throw new store_1.HttpError(400, 'Invalid history cursor');
49
+ throw new errors_1.HttpError(400, 'Invalid history cursor');
49
50
  res.json((0, store_1.homeOverview)(before));
50
51
  }));
51
52
  async function completeScan() {
52
53
  const scan = await (0, collector_1.scanSessions)();
53
54
  if (scan.warnings.length)
54
- throw new store_1.HttpError(409, 'History import could not finish. Check session sources and scan again; no new snapshot was prepared.');
55
+ throw new errors_1.HttpError(409, 'History import could not finish. Check session sources and scan again; no new snapshot was prepared.');
55
56
  return scan;
56
57
  }
57
- let starting = false;
58
- router.post(['/syncs/start-call', '/syncs/start-chat'], route(async (req, res) => {
58
+ router.post(['/syncs/start-call', '/syncs/start-chat'], (0, http_1.route)(async (req, res) => {
59
59
  const requestId = req.body?.request_id;
60
60
  if (typeof requestId !== 'string' || !/^[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}$/.test(requestId))
61
- throw new store_1.HttpError(400, 'A request ID is required');
62
- // One scan/start operation at a time, including the async indexing interval.
63
- if (starting)
64
- throw new store_1.HttpError(409, 'A sync is already being prepared');
61
+ throw new errors_1.HttpError(400, 'A request ID is required');
62
+ if (activity_1.activity.starting)
63
+ throw new errors_1.HttpError(409, 'A sync is already being prepared');
65
64
  const prior = (0, schema_1.getDb)().prepare('SELECT sync_id FROM sync_presentations WHERE request_id=?').get(requestId);
66
65
  if (prior) {
67
66
  res.status(202).json({ sync: (0, store_1.getSync)(prior.sync_id), scan: { files: 0, added: 0, warnings: [] } });
68
67
  return;
69
68
  }
70
- if (store_1.busySyncs.size || store_1.activeVoiceSyncs.size)
71
- throw new store_1.HttpError(409, 'End the active call or wait for preparation before starting another sync.');
72
- starting = true;
73
- store_1.busySyncs.add(0); // Reserve foreground ownership during async setup and scanning.
69
+ const releaseStart = activity_1.activity.beginStart();
74
70
  try {
75
71
  const setup = await (0, runtime_1.piSetupStatus)(true);
76
72
  if (setup.state !== 'configured')
77
- throw new store_1.HttpError(503, setup.message);
73
+ throw new errors_1.HttpError(503, setup.message);
78
74
  const scan = await completeScan();
79
- store_1.busySyncs.delete(0);
75
+ releaseStart();
80
76
  const sync = (0, store_1.startConversationSync)(requestId);
81
77
  const ready = (0, preparation_1.callReadiness)(sync.id, req.path.endsWith('/start-chat')).ready;
82
78
  res.status(202).json({ sync: ready ? sync : (0, manager_1.launchReply)(sync.id), scan });
83
79
  }
84
80
  finally {
85
- store_1.busySyncs.delete(0);
86
- starting = false;
81
+ releaseStart();
87
82
  }
88
83
  }));
89
- router.post('/syncs/:id/recap', route((req, res) => res.status(202).json((0, manager_1.launchRecap)(id(req)))));
90
- router.get('/overview', route((_req, res) => res.json((0, store_1.overview)())));
91
- router.patch('/agents/:agent', route((req, res) => {
84
+ router.post('/syncs/:id/recap', (0, http_1.route)((req, res) => res.status(202).json((0, manager_1.launchRecap)(id(req)))));
85
+ router.get('/overview', (0, http_1.route)((_req, res) => res.json((0, store_1.overview)())));
86
+ router.patch('/agents/:agent', (0, http_1.route)((req, res) => {
92
87
  if (!req.body || Array.isArray(req.body) || Object.keys(req.body).length !== 1 || typeof req.body.enabled !== 'boolean')
93
- throw new store_1.HttpError(400, 'Only boolean enabled is accepted');
88
+ throw new errors_1.HttpError(400, 'Only boolean enabled is accepted');
94
89
  res.json((0, store_1.setAgentEnabled)(String(req.params.agent), req.body.enabled));
95
90
  }));
96
- router.post('/scan', route(async (_req, res) => res.json(await (0, collector_1.scanSessions)())));
97
- router.patch('/sessions/:sessionId', route((req, res) => {
91
+ router.post('/scan', (0, http_1.route)(async (_req, res) => res.json(await (0, collector_1.scanSessions)())));
92
+ router.patch('/sessions/:sessionId', (0, http_1.route)((req, res) => {
98
93
  if (typeof req.body?.included !== 'boolean')
99
- throw new store_1.HttpError(400, 'included must be a boolean');
94
+ throw new errors_1.HttpError(400, 'included must be a boolean');
100
95
  (0, store_1.setIncluded)(String(req.params.sessionId), req.body.included);
101
96
  res.json((0, store_1.overview)());
102
97
  }));
103
- router.post('/syncs', route(async (req, res) => {
98
+ router.post('/syncs', (0, http_1.route)(async (req, res) => {
104
99
  const since = req.body?.history_since;
105
100
  if (since !== undefined && since !== null && typeof since !== 'string')
106
- throw new store_1.HttpError(400, 'history_since must be a date string or null');
101
+ throw new errors_1.HttpError(400, 'history_since must be a date string or null');
107
102
  const scan = await completeScan();
108
103
  res.json({ sync: (0, store_1.startSync)(since), scan });
109
104
  }));
110
- router.get('/syncs/:id', route((req, res) => res.json((0, store_1.getSync)(id(req)))));
111
- router.get('/syncs/:id/progress', route((req, res) => res.json((0, store_1.getProgress)(id(req)))));
112
- router.get('/syncs/:id/call-readiness', route((req, res) => res.json((0, preparation_1.callReadiness)(id(req)))));
113
- router.get('/syncs/:id/chat-readiness', route((req, res) => { res.json((0, preparation_1.callReadiness)(id(req), true)); }));
114
- router.post('/syncs/:id/prepare-call', route((req, res) => res.status(202).json((0, preparation_1.prepareCall)(id(req)))));
115
- router.get('/syncs/:id/tree/:key', route((req, res) => res.json((0, store_1.getTreeNode)(id(req), String(req.params.key)))));
116
- router.post('/syncs/:id/expand', route(async (req, res) => {
105
+ router.get('/syncs/:id', (0, http_1.route)((req, res) => res.json((0, store_1.getSync)(id(req)))));
106
+ router.get('/syncs/:id/progress', (0, http_1.route)((req, res) => res.json((0, store_1.getProgress)(id(req)))));
107
+ router.get('/syncs/:id/call-readiness', (0, http_1.route)((req, res) => res.json((0, preparation_1.callReadiness)(id(req)))));
108
+ router.get('/syncs/:id/chat-readiness', (0, http_1.route)((req, res) => { res.json((0, preparation_1.callReadiness)(id(req), true)); }));
109
+ router.post('/syncs/:id/prepare-call', (0, http_1.route)((req, res) => res.status(202).json((0, preparation_1.prepareCall)(id(req)))));
110
+ router.get('/syncs/:id/tree/:key', (0, http_1.route)((req, res) => res.json((0, store_1.getTreeNode)(id(req), String(req.params.key)))));
111
+ router.post('/syncs/:id/expand', (0, http_1.route)(async (req, res) => {
117
112
  const scan = await completeScan();
118
113
  res.json({ sync: (0, store_1.expandSnapshot)(id(req)), scan });
119
114
  }));
120
- router.patch('/syncs/:id/models', route((req, res) => {
115
+ router.patch('/syncs/:id/models', (0, http_1.route)((req, res) => {
121
116
  res.json((0, store_1.configureModels)(id(req), {
122
117
  summary: text(req.body?.summary, 'Summary model', 200),
123
118
  final: text(req.body?.final, 'Final model', 200),
124
119
  max_invocations: req.body?.max_invocations,
125
120
  }));
126
121
  }));
127
- router.post('/syncs/:id/cancel', route((req, res) => {
122
+ router.post('/syncs/:id/cancel', (0, http_1.route)((req, res) => {
128
123
  (0, manager_1.cancelReply)(id(req));
129
- (0, store_1.claimAutomaticSync)(id(req));
130
124
  res.status(202).json((0, store_1.getProgress)(id(req)));
131
125
  }));
132
- router.patch('/syncs/:id/notes', route((req, res) => {
126
+ router.patch('/syncs/:id/notes', (0, http_1.route)((req, res) => {
133
127
  res.json((0, store_1.saveNotes)(id(req), text(req.body?.decisions, 'Decisions'), text(req.body?.carry_forward, 'Carry forward')));
134
128
  }));
135
- router.post('/syncs/:id/briefing', route((req, res) => {
129
+ router.post('/syncs/:id/briefing', (0, http_1.route)((req, res) => {
136
130
  const sync = (0, manager_1.launchReply)(id(req));
137
- (0, store_1.claimAutomaticSync)(sync.id);
138
131
  res.status(202).json(sync);
139
132
  }));
140
- router.post('/syncs/:id/messages', route((req, res) => {
133
+ router.post('/syncs/:id/messages', (0, http_1.route)((req, res) => {
141
134
  const question = text(req.body?.message, 'Message');
142
135
  if (!question)
143
- throw new store_1.HttpError(400, 'Message cannot be empty');
136
+ throw new errors_1.HttpError(400, 'Message cannot be empty');
144
137
  if (Object.keys(req.body).some(key => key !== 'message'))
145
- throw new store_1.HttpError(400, 'Unknown discussion option. Refresh the page.');
138
+ throw new errors_1.HttpError(400, 'Unknown discussion option. Refresh the page.');
146
139
  res.status(202).json((0, manager_1.launchReply)(id(req), question));
147
140
  }));
148
- router.post('/syncs/:id/chat/messages', route((req, res) => {
141
+ router.post('/syncs/:id/chat/messages', (0, http_1.route)((req, res) => {
149
142
  const question = text(req.body?.message, 'Message');
150
143
  if (!question)
151
- throw new store_1.HttpError(400, 'Message cannot be empty');
144
+ throw new errors_1.HttpError(400, 'Message cannot be empty');
152
145
  if (Object.keys(req.body).some(key => !['message', 'request_id'].includes(key)) || typeof req.body.request_id !== 'string')
153
- throw new store_1.HttpError(400, 'Only a message and chat request ID are accepted');
146
+ throw new errors_1.HttpError(400, 'Only a message and chat request ID are accepted');
154
147
  res.status(202).json((0, manager_1.launchChat)(id(req), question, req.body.request_id));
155
148
  }));
156
- router.post('/syncs/:id/complete', route((req, res) => {
149
+ router.post('/syncs/:id/complete', (0, http_1.route)((req, res) => {
157
150
  res.json((0, store_1.completeSync)(id(req), text(req.body?.decisions, 'Decisions'), text(req.body?.carry_forward, 'Carry forward'), req.body?.reviewed === true));
158
151
  }));
159
- router.post('/syncs/:id/discard', route((req, res) => res.json((0, store_1.discardSync)(id(req)))));
152
+ router.post('/syncs/:id/discard', (0, http_1.route)((req, res) => res.json((0, store_1.discardSync)(id(req)))));
160
153
  exports.default = router;
161
154
  //# sourceMappingURL=sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/routes/sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../src/routes/voice.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAsBxB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../src/routes/voice.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAoBxB,eAAe,MAAM,CAAC"}
@@ -4,31 +4,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const express_1 = require("express");
7
+ const http_1 = require("./http");
7
8
  const fs_1 = __importDefault(require("fs"));
8
9
  const crypto_1 = require("crypto");
9
- const store_1 = require("../sync/store");
10
+ const errors_1 = require("../errors");
10
11
  const legacy_history_1 = require("../voice/legacy-history");
11
12
  const live_1 = require("../voice/live");
12
13
  const live_voice_1 = __importDefault(require("./live-voice"));
13
14
  const router = (0, express_1.Router)();
14
- const route = (handler) => (req, res, next) => { Promise.resolve().then(() => handler(req, res)).catch(next); };
15
15
  router.use('/live', live_voice_1.default);
16
- router.get('/status', route(async (_req, res) => res.json({
16
+ router.get('/status', (0, http_1.route)(async (_req, res) => res.json({
17
17
  ...await (0, live_1.liveStatus)(),
18
18
  certificateAvailable: Boolean(process.env.DRAKEN_TLS_CA && fs_1.default.existsSync(process.env.DRAKEN_TLS_CA)),
19
19
  })));
20
- router.get('/certificate', route((_req, res) => {
20
+ router.get('/certificate', (0, http_1.route)((_req, res) => {
21
21
  if (!process.env.DRAKEN_TLS_CA)
22
- throw new store_1.HttpError(404, 'No local certificate download is configured');
22
+ throw new errors_1.HttpError(404, 'No local certificate download is configured');
23
23
  // Re-encode only the public certificate; never serve a key or an arbitrary source file.
24
24
  const certificate = new crypto_1.X509Certificate(fs_1.default.readFileSync(process.env.DRAKEN_TLS_CA));
25
25
  res.set({ 'Content-Type': 'application/x-x509-ca-cert', 'Content-Disposition': 'attachment; filename="draken-local-root.crt"', 'X-Content-Type-Options': 'nosniff' });
26
26
  res.send(certificate.raw);
27
27
  }));
28
- router.get('/syncs/:syncId/history', route((req, res) => {
28
+ router.get('/syncs/:syncId/history', (0, http_1.route)((req, res) => {
29
29
  const syncId = Number(req.params.syncId);
30
30
  if (!Number.isSafeInteger(syncId) || syncId < 1)
31
- throw new store_1.HttpError(400, 'Invalid sync ID');
31
+ throw new errors_1.HttpError(400, 'Invalid sync ID');
32
32
  res.json([...(0, legacy_history_1.legacyCallHistory)(syncId), ...(0, live_1.liveHistory)(syncId)].sort((a, b) => b.started_at.localeCompare(a.started_at)).slice(0, 10));
33
33
  }));
34
34
  exports.default = router;
@@ -1 +1 @@
1
- {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../src/routes/voice.ts"],"names":[],"mappings":";;;;;AAAA,qCAAkE;AAClE,4CAAoB;AACpB,mCAAyC;AACzC,yCAA0C;AAC1C,4DAA4D;AAC5D,wCAAwD;AACxD,8DAAsC;AAEtC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AACxB,MAAM,KAAK,GAAG,CAAC,OAAoE,EAAE,EAAE,CACrF,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAExH,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAU,CAAC,CAAC;AAChC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IACxD,GAAG,MAAM,IAAA,iBAAU,GAAE;IACrB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;CACrG,CAAC,CAAC,CAAC,CAAC;AACL,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC;IACxG,wFAAwF;IACxF,MAAM,WAAW,GAAG,IAAI,wBAAe,CAAC,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACpF,GAAG,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,8CAA8C,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,CAAC;IACtK,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,iBAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC7F,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAA,kCAAiB,EAAC,MAAM,CAAC,EAAE,GAAG,IAAA,kBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACzI,CAAC,CAAC,CAAC,CAAC;AAEJ,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"voice.js","sourceRoot":"","sources":["../../src/routes/voice.ts"],"names":[],"mappings":";;;;;AAAA,qCAAiC;AACjC,iCAA+B;AAC/B,4CAAoB;AACpB,mCAAyC;AACzC,sCAAsC;AACtC,4DAA4D;AAC5D,wCAAwD;AACxD,8DAAsC;AAEtC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;AAExB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAU,CAAC,CAAC;AAChC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,YAAK,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IACxD,GAAG,MAAM,IAAA,iBAAU,GAAE;IACrB,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;CACrG,CAAC,CAAC,CAAC,CAAC;AACL,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAA,YAAK,EAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,MAAM,IAAI,kBAAS,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAC;IACxG,wFAAwF;IACxF,MAAM,WAAW,GAAG,IAAI,wBAAe,CAAC,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACpF,GAAG,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,8CAA8C,EAAE,wBAAwB,EAAE,SAAS,EAAE,CAAC,CAAC;IACtK,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAA,YAAK,EAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,kBAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC7F,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAA,kCAAiB,EAAC,MAAM,CAAC,EAAE,GAAG,IAAA,kBAAW,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACzI,CAAC,CAAC,CAAC,CAAC;AAEJ,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Kernel-backed lifetime exclusion, independent of listener address and heartbeat.
2
+ * A suspended owner retains its lock; process death releases it without PID trust
3
+ * or a time-based takeover. This database never contains application records. */
4
+ export declare function ownServerDirectory(directory: string): () => void;
5
+ //# sourceMappingURL=server-ownership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-ownership.d.ts","sourceRoot":"","sources":["../src/server-ownership.ts"],"names":[],"mappings":"AAIA;;iFAEiF;AACjF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,IAAI,CAiBhE"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ownServerDirectory = ownServerDirectory;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
10
+ /** Kernel-backed lifetime exclusion, independent of listener address and heartbeat.
11
+ * A suspended owner retains its lock; process death releases it without PID trust
12
+ * or a time-based takeover. This database never contains application records. */
13
+ function ownServerDirectory(directory) {
14
+ fs_1.default.mkdirSync(directory, { recursive: true, mode: 0o700 });
15
+ const file = path_1.default.join(directory, '.server-owner.sqlite');
16
+ if (fs_1.default.existsSync(file) && fs_1.default.lstatSync(file).isSymbolicLink())
17
+ throw new Error('Server ownership storage must not be a symlink.');
18
+ const owner = new better_sqlite3_1.default(file, { timeout: 0 });
19
+ try {
20
+ fs_1.default.chmodSync(file, 0o600);
21
+ owner.exec('BEGIN EXCLUSIVE');
22
+ owner.pragma('schema_version'); // Refuse corrupt/incompatible ownership storage.
23
+ }
24
+ catch (error) {
25
+ owner.close();
26
+ if (['SQLITE_BUSY', 'SQLITE_LOCKED'].includes(error.code || '')) {
27
+ throw new Error('Another server owns this data directory. Stop that server before retrying.');
28
+ }
29
+ throw new Error('Cannot establish exclusive server ownership. Check the private data directory and ownership file.');
30
+ }
31
+ return () => { if (owner.open)
32
+ owner.close(); };
33
+ }
34
+ //# sourceMappingURL=server-ownership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-ownership.js","sourceRoot":"","sources":["../src/server-ownership.ts"],"names":[],"mappings":";;;;;AAOA,gDAiBC;AAxBD,4CAAoB;AACpB,gDAAwB;AACxB,oEAAsC;AAEtC;;iFAEiF;AACjF,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAC1D,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACnI,MAAM,KAAK,GAAG,IAAI,wBAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,YAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,iDAAiD;IACnF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAE,KAA2B,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YACvF,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAC;IACvH,CAAC;IACD,OAAO,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI;QAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -11,8 +11,8 @@ const fs_1 = __importDefault(require("fs"));
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const net_1 = require("net");
13
13
  const crypto_1 = require("crypto");
14
- const schema_1 = require("./db/schema");
15
- const stateFile = () => path_1.default.join((0, schema_1.getDataDir)(), 'server-state.json');
14
+ const data_dir_1 = require("./data-dir");
15
+ const stateFile = () => path_1.default.join((0, data_dir_1.getDataDir)(), 'server-state.json');
16
16
  const idPattern = /^[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}$/;
17
17
  function endpoint(host, port, secure = false) {
18
18
  if (!Number.isInteger(port) || port < 1 || port > 65535)
@@ -68,7 +68,7 @@ function readState() {
68
68
  function rememberServer(instance, http, https) {
69
69
  const state = { version: 1, instance, pid: process.pid, http_url: endpoint(http.address, http.port),
70
70
  https_url: https ? endpoint(https.address, https.port, true) : null, started_at: new Date().toISOString() };
71
- const temp = path_1.default.join((0, schema_1.getDataDir)(), `.server-state-${(0, crypto_1.randomUUID)()}.tmp`);
71
+ const temp = path_1.default.join((0, data_dir_1.getDataDir)(), `.server-state-${(0, crypto_1.randomUUID)()}.tmp`);
72
72
  try {
73
73
  fs_1.default.writeFileSync(temp, JSON.stringify(state) + '\n', { mode: 0o600, flag: 'wx' });
74
74
  fs_1.default.renameSync(temp, stateFile());
@@ -1 +1 @@
1
- {"version":3,"file":"server-state.js","sourceRoot":"","sources":["../src/server-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-state.js","sourceRoot":"","sources":["../src/server-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAoBA,wBAAgB,SAAS,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,+CAkClF;AAED,wBAAgB,WAAW,CAAC,SAAS,UAAQ,GAAG,IAAI,CA8DnD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAwBA,wBAAgB,SAAS,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,+CAkClF;AAED,wBAAgB,WAAW,CAAC,SAAS,UAAQ,GAAG,IAAI,CA4EnD"}
package/dist/server.js CHANGED
@@ -11,18 +11,22 @@ const fs_1 = __importDefault(require("fs"));
11
11
  const https_1 = __importDefault(require("https"));
12
12
  const crypto_1 = require("crypto");
13
13
  const server_state_1 = require("./server-state");
14
+ const data_dir_1 = require("./data-dir");
15
+ const server_ownership_1 = require("./server-ownership");
16
+ const activity_1 = require("./sync/activity");
14
17
  const schema_1 = require("./db/schema");
15
18
  const middleware_1 = require("./auth/middleware");
16
19
  const auth_1 = __importDefault(require("./routes/auth"));
17
20
  const sync_1 = __importDefault(require("./routes/sync"));
18
21
  const memory_1 = __importDefault(require("./routes/memory"));
19
22
  const service_1 = require("./memory/service");
20
- const automatic_1 = require("./memory/automatic");
23
+ const background_1 = require("./sync/background");
21
24
  const voice_1 = __importDefault(require("./routes/voice"));
22
25
  const legacy_history_1 = require("./voice/legacy-history");
23
26
  const live_1 = require("./voice/live");
24
27
  const store_1 = require("./sync/store");
25
- const manager_1 = require("./sync/manager");
28
+ const errors_1 = require("./errors");
29
+ const pi_1 = require("./sync/pi");
26
30
  const runtime_1 = require("./pi/runtime");
27
31
  function createApp(options = {}) {
28
32
  const app = (0, express_1.default)();
@@ -59,7 +63,7 @@ function createApp(options = {}) {
59
63
  app.use(express_1.default.static(staticDir));
60
64
  app.get('*', (_req, res) => res.sendFile(path_1.default.join(staticDir, 'index.html')));
61
65
  app.use((error, _req, res, _next) => {
62
- const status = error instanceof store_1.HttpError ? error.status : error.status === 400 || error.status === 413 ? error.status : 500;
66
+ const status = error instanceof errors_1.HttpError ? error.status : error.status === 400 || error.status === 413 ? error.status : 500;
63
67
  if (status === 500)
64
68
  console.error('Draken request failed:', error.message);
65
69
  res.status(status).json({ error: status === 500 ? 'Internal error. See the local server log.' : error.message });
@@ -85,6 +89,7 @@ function startServer(trayOwned = false) {
85
89
  // Bind before recovery: a second launch on an occupied port must not mark the
86
90
  // actual server's active runs/calls interrupted or mutate its database.
87
91
  let ready = false, listening = 0, stopping = false;
92
+ let releaseDirectory;
88
93
  const instanceId = (0, crypto_1.randomUUID)();
89
94
  const app = (0, express_1.default)();
90
95
  app.use((_req, res, next) => ready ? next() : res.status(503).json({ error: 'Draken is starting or stopping.' }));
@@ -93,6 +98,7 @@ function startServer(trayOwned = false) {
93
98
  if (++listening !== (tls ? 2 : 1) || stopping)
94
99
  return;
95
100
  try {
101
+ releaseDirectory = (0, server_ownership_1.ownServerDirectory)((0, data_dir_1.getDataDir)());
96
102
  (0, schema_1.getDb)();
97
103
  (0, store_1.recoverInterruptedRuns)();
98
104
  (0, legacy_history_1.recoverLegacyCalls)();
@@ -110,7 +116,7 @@ function startServer(trayOwned = false) {
110
116
  if (tls)
111
117
  console.log(`Draken voice page: https://${display}:${httpsPort}`);
112
118
  console.log((trayOwned ? 'Managed by Draken tray. Use its menu to stop the server; closing the browser does not.\n' : 'Keep this terminal open. Ctrl+C stops the server; closing the browser does not.\n') + 'First use / missing pi: draken setup → draken login (inside pi, type /login, then /quit).\nAlready have pi? Keep your configured installation; draken doctor checks summary setup.\nVoice: draken voice setup → draken voice login (separate ChatGPT sign-in).\nUse the same server user and environment for these commands. Select history in Settings → Agents & sessions, then Sync with Draken.\nCheck server connectivity with draken status. No startup login, model download, provider call or microphone capture is performed.');
113
- (0, automatic_1.startBackgroundIndexing)();
119
+ (0, background_1.startBackgroundIndexing)();
114
120
  }
115
121
  catch (error) {
116
122
  console.error(error instanceof Error ? error.message : 'Draken startup failed');
@@ -124,13 +130,37 @@ function startServer(trayOwned = false) {
124
130
  return;
125
131
  stopping = true;
126
132
  ready = false;
127
- const backgroundStopped = (0, automatic_1.stopBackgroundIndexing)();
128
- (0, manager_1.stopManagerProcesses)();
129
- (0, service_1.stopHistory)();
130
- secureServer?.close();
133
+ const activityStopped = activity_1.activity.shutdown();
134
+ // SQLite ownership alone does not keep Node's event loop alive.
135
+ const keepAlive = setInterval(() => { }, 60_000);
136
+ let reported = false;
137
+ const unconfirmed = () => {
138
+ if (!reported)
139
+ console.error('Shutdown is unconfirmed. This process retains data-directory ownership; no replacement server may start. Inspect the owned resources before forcing termination.');
140
+ reported = true;
141
+ process.exitCode = 1;
142
+ };
143
+ const deadline = setTimeout(unconfirmed, 6500);
131
144
  const closed = new Promise(resolve => server.close(() => resolve()));
132
- void Promise.all([closed, (0, live_1.stopLiveCalls)(), backgroundStopped, (0, runtime_1.stopPiChecks)()]).finally(() => { (0, schema_1.closeDb)(); process.exit(code); });
133
- setTimeout(() => process.exit(code), 6500).unref();
145
+ const secureClosed = new Promise(resolve => secureServer ? secureServer.close(() => resolve()) : resolve());
146
+ void Promise.allSettled([closed, secureClosed, activityStopped, (0, background_1.stopBackgroundIndexing)(),
147
+ (0, pi_1.stopManagerProcesses)(), (0, service_1.shutdownHistory)(), (0, live_1.shutdownLiveVoice)(), (0, runtime_1.stopPiChecks)()]).then(results => {
148
+ if (results.some(result => result.status === 'rejected')) {
149
+ unconfirmed();
150
+ return;
151
+ }
152
+ try {
153
+ (0, schema_1.closeDb)();
154
+ releaseDirectory?.();
155
+ }
156
+ catch {
157
+ unconfirmed();
158
+ return;
159
+ }
160
+ clearTimeout(deadline);
161
+ clearInterval(keepAlive);
162
+ process.exit(code);
163
+ });
134
164
  };
135
165
  const failed = (error) => {
136
166
  console.error(error.code === 'EADDRINUSE' ? 'Draken could not bind: a configured port is already in use. Run draken status; do not start a second server.' : `Draken could not listen (${error.code || 'unknown error'}). Check the bind address, ports and server log.`);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;AAoBA,8BAkCC;AAED,kCA8DC;AAtHD,sDAAmE;AACnE,gDAAwB;AACxB,4CAAoB;AACpB,kDAA0B;AAC1B,mCAAoC;AACpC,iDAAgD;AAChD,wCAA6C;AAC7C,kDAAqG;AACrG,yDAAuC;AACvC,yDAAuC;AACvC,6DAA2C;AAC3C,8CAA+C;AAC/C,kDAAqF;AACrF,2DAAyC;AACzC,2DAA4D;AAC5D,uCAAoF;AACpF,wCAAiE;AACjE,4CAAsD;AACtD,0CAA4C;AAE5C,SAAgB,SAAS,CAAC,UAAuD,EAAE;IACjF,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,GAAG,CAAC,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACzE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAClE,kFAAkF;QAClF,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC,CAAC;YAC7I,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAAC,CAAC;QACvE,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,YAAY;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC,CAAC;QAClI,IAAI,IAAA,yBAAY,GAAE,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC,CAAC;QAC7I,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,cAAU,CAAC,CAAC;IACjC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,2BAAc,EAAE,eAAW,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,2BAAc,EAAE,gBAAY,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,2BAAc,EAAE,cAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;IACvF,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9E,GAAG,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,IAAa,EAAE,GAAa,EAAE,KAAmB,EAAE,EAAE;QACxE,MAAM,MAAM,GAAG,KAAK,YAAY,iBAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7H,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,WAAW,CAAC,SAAS,GAAG,KAAK;IAC3C,IAAI,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAClI,IAAA,+BAAkB,GAAE,CAAC;IACrB,IAAA,0BAAmB,GAAE,CAAC;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACpH,IAAI,IAAA,yBAAY,GAAE,IAAI,CAAC,IAAA,2BAAc,EAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,KAAK,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACvL,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpJ,8EAA8E;IAC9E,wEAAwE;IACxE,IAAI,KAAK,GAAG,KAAK,EAAE,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACnD,MAAM,UAAU,GAAG,IAAA,mBAAU,GAAE,CAAC;IAChC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC,CAAC;IAClH,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ;YAAE,OAAO;QACtD,IAAI,CAAC;YACH,IAAA,cAAK,GAAE,CAAC;YAAC,IAAA,8BAAsB,GAAE,CAAC;YAAC,IAAA,mCAAkB,GAAE,CAAC;YAAC,IAAA,uBAAgB,GAAE,CAAC;YAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,aAAa,GAAG,YAAY,EAAE,OAAO,EAAE,CAAC;YAC9E,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,aAAa,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACjJ,MAAM,MAAM,GAAG,IAAA,6BAAc,EAAC,UAAU,EAAE,WAAW,EAAE,aAAa,IAAI,SAAS,CAAC,CAAC;YACnF,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,SAAS;gBAAE,OAAO,CAAC,IAAK,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,KAAK;oBAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACjF,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,GAAG;gBAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0FAA0F,CAAC,CAAC,CAAC,mFAAmF,CAAC,GAAG,wgBAAwgB,CAAC,CAAC;YACvtB,IAAA,mCAAuB,GAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;YAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IACnH,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,eAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9F,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE;QAC5B,IAAI,QAAQ;YAAE,OAAO;QAAC,QAAQ,GAAG,IAAI,CAAC;QAAC,KAAK,GAAG,KAAK,CAAC;QACrD,MAAM,iBAAiB,GAAG,IAAA,kCAAsB,GAAE,CAAC;QACnD,IAAA,8BAAoB,GAAE,CAAC;QAAC,IAAA,qBAAW,GAAE,CAAC;QACtC,YAAY,EAAE,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3E,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAA,oBAAa,GAAE,EAAE,iBAAiB,EAAE,IAAA,sBAAY,GAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAA,gBAAO,GAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjI,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,KAA4B,EAAE,EAAE;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,8GAA8G,CAAC,CAAC,CAAC,4BAA4B,KAAK,CAAC,IAAI,IAAI,eAAe,kDAAkD,CAAC,CAAC;QAC1Q,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClE,IAAI,SAAS,EAAE,CAAC;QACd,0EAA0E;QAC1E,wEAAwE;QACxE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAY,EAAE,EAAE;YACrC,IAAI,OAAO,EAAE,IAAI,KAAK,iBAAiB,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU;gBAAE,QAAQ,EAAE,CAAC;QACzF,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC;QAAC,WAAW,EAAE,CAAC;IAAC,CAAC;IACtB,OAAO,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAAC,CAAC;AACxG,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}