xedoc-cli 0.1.10 → 0.1.12

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 (44) hide show
  1. package/README.md +25 -5
  2. package/bin/xedoc.mjs +12 -0
  3. package/build/client/assets/api.workspaces.directories-B0tllRDq.js +0 -0
  4. package/build/client/assets/app-layout-Bl4qOwh7.js +1 -0
  5. package/build/client/assets/app-shell-D4VZoy6V.js +2 -0
  6. package/build/client/assets/chat-5ZSZb1GN.js +1 -0
  7. package/build/client/assets/{connect-BDvoix-O.js → connect-xfBRZuAz.js} +1 -1
  8. package/build/client/assets/document-title-bwEcQkgI.js +1 -0
  9. package/build/client/assets/{entry.client-BQZeV9JD.js → entry.client-Bt-W9tr6.js} +1 -1
  10. package/build/client/assets/{ghostty-web-CgkkAFeT.js → ghostty-web-BBN5ya0J.js} +1 -1
  11. package/build/client/assets/home-D-i6W4Ao.js +1 -0
  12. package/build/client/assets/{jsx-runtime-Cal6WBdn.js → jsx-runtime-BUWBtJLv.js} +1 -1
  13. package/build/client/assets/{label-BpA-r6tL.js → label-BLnKkf67.js} +1 -1
  14. package/build/client/assets/manifest-9317aaeb.js +1 -0
  15. package/build/client/assets/{react-dom-D4MOkHq2.js → react-dom-Bppadr6u.js} +1 -1
  16. package/build/client/assets/root-B6reKqFo.js +1 -0
  17. package/build/client/assets/root-BDyfnfyW.css +2 -0
  18. package/build/client/assets/{session-provider-QLGSjKmA.js → session-provider-BFqptX_P.js} +1 -1
  19. package/build/server/index.js +1 -1
  20. package/package.json +1 -1
  21. package/prisma/schema.prisma +22 -0
  22. package/server/sqlite-setup.mjs +63 -0
  23. package/build/client/assets/app-layout-C4u5Bq0m.js +0 -1
  24. package/build/client/assets/app-shell-B9UBObFu.js +0 -2
  25. package/build/client/assets/chat-Qrq1zFrn.js +0 -1
  26. package/build/client/assets/document-title-RYIi5OZD.js +0 -1
  27. package/build/client/assets/home-CqUa9wVl.js +0 -1
  28. package/build/client/assets/manifest-746c227f.js +0 -1
  29. package/build/client/assets/root-KOlmIkbz.css +0 -2
  30. package/build/client/assets/root-xm0qUlcY.js +0 -1
  31. /package/build/client/assets/{__vite-browser-external-2447137e-Bb2UaVfr.js → __vite-browser-external-2447137e-DSxSsOOp.js} +0 -0
  32. /package/build/client/assets/{api.accounts._accountId.authenticate-Bp51NHGy.js → api.accounts._accountId.authenticate-CLzgv3py.js} +0 -0
  33. /package/build/client/assets/{api.accounts._accountId.authenticate.callback-DLgNMRyd.js → api.accounts._accountId.authenticate.callback-Bqhz8sDl.js} +0 -0
  34. /package/build/client/assets/{api.accounts._accountId.models-DGbCmT_9.js → api.accounts._accountId.models-VIVpVZrj.js} +0 -0
  35. /package/build/client/assets/{api.accounts._accountId.rate-limits-DZh4HPLO.js → api.accounts._accountId.personalization-z2pU64qI.js} +0 -0
  36. /package/build/client/assets/{api.chats-DZ_6Q7rY.js → api.accounts._accountId.rate-limits-C9iUvNFt.js} +0 -0
  37. /package/build/client/assets/{api.chats._chatId-BEX87qHo.js → api.chats-C6-gVaXw.js} +0 -0
  38. /package/build/client/assets/{api.chats._chatId.context-v4G0lNKq.js → api.chats._chatId-DaXHa-ln.js} +0 -0
  39. /package/build/client/assets/{api.chats._chatId.files-BrN7O-wM.js → api.chats._chatId.context-DlBgjpCD.js} +0 -0
  40. /package/build/client/assets/{api.chats._chatId.git._operation-CiUW8Knm.js → api.chats._chatId.files-DVZKcoNV.js} +0 -0
  41. /package/build/client/assets/{api.chats._chatId.interrupt-2DlVPDlX.js → api.chats._chatId.git._operation-8Xtyz4hF.js} +0 -0
  42. /package/build/client/assets/{api.chats._chatId.messages-cDawTuvN.js → api.chats._chatId.interrupt-B71lrxkc.js} +0 -0
  43. /package/build/client/assets/{api.chats._chatId.server-requests._requestId.respond-CTlCffOk.js → api.chats._chatId.messages-iVzJcgvw.js} +0 -0
  44. /package/build/client/assets/{api.workspaces.directories-nVoleT74.js → api.chats._chatId.server-requests._requestId.respond-BLhOUK8A.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xedoc-cli",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "Local web UI for Codex account, chat, execution, and workspace management.",
5
5
  "author": "Edward Nguyen <monokaijs@gmail.com>",
6
6
  "type": "module",
@@ -11,6 +11,7 @@ enum AccountStatus {
11
11
  DISCONNECTED
12
12
  AUTHENTICATING
13
13
  CONNECTED
14
+ INVALIDATED
14
15
  ERROR
15
16
  }
16
17
 
@@ -82,6 +83,27 @@ model CodexAccount {
82
83
  updatedAt DateTime @updatedAt
83
84
  chats Chat[]
84
85
  runs ChatRun[]
86
+ threadPreferences ThreadPreference[]
87
+ }
88
+
89
+ model ThreadPreference {
90
+ threadId String @id
91
+ accountId String?
92
+ autoRotateAccount Boolean @default(false)
93
+ title String?
94
+ workingDirectory String?
95
+ model String?
96
+ reasoningEffort String?
97
+ serviceTier String?
98
+ collaborationMode String @default("default")
99
+ permissionMode String @default("default")
100
+ archivedAt DateTime?
101
+ createdAt DateTime @default(now())
102
+ updatedAt DateTime @updatedAt
103
+ account CodexAccount? @relation(fields: [accountId], references: [id], onDelete: SetNull)
104
+
105
+ @@index([accountId])
106
+ @@index([archivedAt])
85
107
  }
86
108
 
87
109
  model Chat {
@@ -26,6 +26,7 @@ export async function setupSqliteDatabase() {
26
26
  }
27
27
  }
28
28
  }
29
+ await migrateLegacyChatPreferences(prisma)
29
30
  } finally {
30
31
  await prisma.$disconnect()
31
32
  }
@@ -228,6 +229,65 @@ function createChatTable(tableName) {
228
229
  )`
229
230
  }
230
231
 
232
+ function createThreadPreferenceTable(tableName) {
233
+ return `CREATE TABLE IF NOT EXISTS "${tableName}" (
234
+ "threadId" TEXT NOT NULL PRIMARY KEY,
235
+ "accountId" TEXT,
236
+ "autoRotateAccount" BOOLEAN NOT NULL DEFAULT false,
237
+ "title" TEXT,
238
+ "workingDirectory" TEXT,
239
+ "model" TEXT,
240
+ "reasoningEffort" TEXT,
241
+ "serviceTier" TEXT,
242
+ "collaborationMode" TEXT NOT NULL DEFAULT 'default',
243
+ "permissionMode" TEXT NOT NULL DEFAULT 'default',
244
+ "archivedAt" DATETIME,
245
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
246
+ "updatedAt" DATETIME NOT NULL,
247
+ CONSTRAINT "${tableName}_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "CodexAccount" ("id") ON DELETE SET NULL ON UPDATE CASCADE
248
+ )`
249
+ }
250
+
251
+ async function migrateLegacyChatPreferences(prisma) {
252
+ try {
253
+ await prisma.$executeRawUnsafe(`
254
+ INSERT OR IGNORE INTO "ThreadPreference" (
255
+ "threadId",
256
+ "accountId",
257
+ "autoRotateAccount",
258
+ "title",
259
+ "workingDirectory",
260
+ "model",
261
+ "reasoningEffort",
262
+ "serviceTier",
263
+ "collaborationMode",
264
+ "permissionMode",
265
+ "archivedAt",
266
+ "createdAt",
267
+ "updatedAt"
268
+ )
269
+ SELECT
270
+ "externalThreadId",
271
+ "accountId",
272
+ "autoRotateAccount",
273
+ "title",
274
+ "workingDirectory",
275
+ "model",
276
+ "reasoningEffort",
277
+ "serviceTier",
278
+ "collaborationMode",
279
+ "permissionMode",
280
+ CASE WHEN "status" = 'ARCHIVED' THEN "updatedAt" ELSE NULL END,
281
+ "createdAt",
282
+ "updatedAt"
283
+ FROM "Chat"
284
+ WHERE "externalThreadId" IS NOT NULL AND TRIM("externalThreadId") != ''
285
+ `)
286
+ } catch {
287
+ // Fresh installs or heavily customized old databases may not have legacy Chat rows.
288
+ }
289
+ }
290
+
231
291
  const schemaStatements = [
232
292
  `CREATE TABLE IF NOT EXISTS "ServerAuth" (
233
293
  "id" TEXT NOT NULL PRIMARY KEY DEFAULT 'server',
@@ -238,6 +298,7 @@ const schemaStatements = [
238
298
  )`,
239
299
  createCodexAccountTable("CodexAccount"),
240
300
  createChatTable("Chat"),
301
+ createThreadPreferenceTable("ThreadPreference"),
241
302
  `CREATE TABLE IF NOT EXISTS "ChatMessage" (
242
303
  "id" TEXT NOT NULL PRIMARY KEY,
243
304
  "chatId" TEXT NOT NULL,
@@ -293,4 +354,6 @@ const schemaStatements = [
293
354
  'CREATE INDEX IF NOT EXISTS "ChatRun_chatId_createdAt_idx" ON "ChatRun"("chatId", "createdAt")',
294
355
  'CREATE INDEX IF NOT EXISTS "ChatRun_accountId_idx" ON "ChatRun"("accountId")',
295
356
  'CREATE INDEX IF NOT EXISTS "ChatRun_externalTurnId_idx" ON "ChatRun"("externalTurnId")',
357
+ 'CREATE INDEX IF NOT EXISTS "ThreadPreference_accountId_idx" ON "ThreadPreference"("accountId")',
358
+ 'CREATE INDEX IF NOT EXISTS "ThreadPreference_archivedAt_idx" ON "ThreadPreference"("archivedAt")',
296
359
  ]
@@ -1 +0,0 @@
1
- import{j as t,t as r}from"./jsx-runtime-Cal6WBdn.js";import{t as s}from"./app-shell-B9UBObFu.js";var a=r(),o=t(function(){return(0,a.jsx)(s,{})});export{o as default};