@tom2012/cc-web 2026.6.13-a → 2026.6.13-c

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 (64) hide show
  1. package/CHANGELOG.json +14 -0
  2. package/backend/dist/__tests__/sync-refactor.test.d.ts +2 -0
  3. package/backend/dist/__tests__/sync-refactor.test.d.ts.map +1 -0
  4. package/backend/dist/__tests__/sync-refactor.test.js +212 -0
  5. package/backend/dist/__tests__/sync-refactor.test.js.map +1 -0
  6. package/backend/dist/index.d.ts.map +1 -1
  7. package/backend/dist/index.js +2 -0
  8. package/backend/dist/index.js.map +1 -1
  9. package/backend/dist/routes/sync.d.ts.map +1 -1
  10. package/backend/dist/routes/sync.js +119 -1
  11. package/backend/dist/routes/sync.js.map +1 -1
  12. package/backend/dist/routes/update.d.ts.map +1 -1
  13. package/backend/dist/routes/update.js +40 -0
  14. package/backend/dist/routes/update.js.map +1 -1
  15. package/backend/dist/sync-config.d.ts +10 -0
  16. package/backend/dist/sync-config.d.ts.map +1 -1
  17. package/backend/dist/sync-config.js +53 -3
  18. package/backend/dist/sync-config.js.map +1 -1
  19. package/backend/dist/sync-dirty.d.ts +12 -0
  20. package/backend/dist/sync-dirty.d.ts.map +1 -0
  21. package/backend/dist/sync-dirty.js +165 -0
  22. package/backend/dist/sync-dirty.js.map +1 -0
  23. package/backend/dist/sync-migrate.d.ts +15 -0
  24. package/backend/dist/sync-migrate.d.ts.map +1 -0
  25. package/backend/dist/sync-migrate.js +92 -0
  26. package/backend/dist/sync-migrate.js.map +1 -0
  27. package/backend/dist/sync-scheduler.d.ts.map +1 -1
  28. package/backend/dist/sync-scheduler.js +3 -1
  29. package/backend/dist/sync-scheduler.js.map +1 -1
  30. package/backend/dist/sync-service.d.ts.map +1 -1
  31. package/backend/dist/sync-service.js +34 -16
  32. package/backend/dist/sync-service.js.map +1 -1
  33. package/backend/dist/sync-state.d.ts +5 -0
  34. package/backend/dist/sync-state.d.ts.map +1 -0
  35. package/backend/dist/sync-state.js +95 -0
  36. package/backend/dist/sync-state.js.map +1 -0
  37. package/frontend/dist/assets/{ChatOverlay-Co-5g3JZ.js → ChatOverlay-BRKFIdip.js} +1 -1
  38. package/frontend/dist/assets/{ClaudeMemPage-pUcWBuMw.js → ClaudeMemPage-BJXNbVri.js} +1 -1
  39. package/frontend/dist/assets/{GraphPreview-7YfqasC1.js → GraphPreview-DWkoBDw7.js} +2 -2
  40. package/frontend/dist/assets/{MobilePage-pjdKu2mO.js → MobilePage-xWYQCVpe.js} +3 -3
  41. package/frontend/dist/assets/{OfficePreview-CsF2KNUB.js → OfficePreview-mG-c3-eD.js} +2 -2
  42. package/frontend/dist/assets/{PdfPreview-BszKtSXe.js → PdfPreview-LpHVDc0B.js} +1 -1
  43. package/frontend/dist/assets/{ProjectPage-BA0XLC3n.js → ProjectPage-5iSt8qJ0.js} +5 -5
  44. package/frontend/dist/assets/ProjectSettingsPage-CHpaFSH9.js +13 -0
  45. package/frontend/dist/assets/{SettingsPage-D_rrejtY.js → SettingsPage-DB0DKGyP.js} +2 -2
  46. package/frontend/dist/assets/{SkillHubPage-CCfKppvZ.js → SkillHubPage-ldsS5_lE.js} +1 -1
  47. package/frontend/dist/assets/{check-circle-2-DtSQDsJD.js → check-circle-2-CZX-PYDg.js} +1 -1
  48. package/frontend/dist/assets/{chevron-down-BXO9hQjV.js → chevron-down-Baaa_7Xz.js} +1 -1
  49. package/frontend/dist/assets/{file-text-DhrmIv6Q.js → file-text-Bce74_ZZ.js} +1 -1
  50. package/frontend/dist/assets/index---z4AYZg.js +75 -0
  51. package/frontend/dist/assets/index-D52wv9GD.css +1 -0
  52. package/frontend/dist/assets/{index-1dkP8nIN.js → index-Do7n5H3P.js} +1 -1
  53. package/frontend/dist/assets/{index-CwYY2lt5.js → index-Vc7KSrAS.js} +1 -1
  54. package/frontend/dist/assets/{jszip.min-DRHjMWSQ.js → jszip.min-ROgSua4f.js} +1 -1
  55. package/frontend/dist/assets/save-DEyMBCOK.js +7 -0
  56. package/frontend/dist/assets/{search-BIHCBFC7.js → search-BR_ML1Dg.js} +1 -1
  57. package/frontend/dist/assets/{select-C_BJUfwv.js → select-DgXuPzBS.js} +1 -1
  58. package/frontend/dist/assets/tabs-BYtX_ERm.js +7 -0
  59. package/frontend/dist/assets/textarea-BOdMOgcu.js +1 -0
  60. package/frontend/dist/index.html +2 -2
  61. package/package.json +2 -1
  62. package/frontend/dist/assets/index-CR8bVXG9.css +0 -1
  63. package/frontend/dist/assets/index-D2KpHlv8.js +0 -75
  64. package/frontend/dist/assets/tabs-3fLjxolg.js +0 -13
@@ -155,7 +155,9 @@ async function runScheduledOnce(now) {
155
155
  if (lastRunKey.get(username) === currentKey)
156
156
  continue;
157
157
  lastRunKey.set(username, currentKey);
158
- const projects = (0, config_1.getProjects)().filter((p) => !p.archived && (0, config_1.isProjectOwner)(p, username));
158
+ // Only projects with a per-project remote path configured (others would
159
+ // just return no-path).
160
+ const projects = (0, config_1.getProjects)().filter((p) => !p.archived && (0, config_1.isProjectOwner)(p, username) && !!(0, sync_config_1.getProjectPath)(cfg, p.id));
159
161
  for (const p of projects) {
160
162
  // Mint runId before the call so the catch path can log it too
161
163
  // (reviewer I3: scheduler failures need cross-file correlation).
@@ -1 +1 @@
1
- {"version":3,"file":"sync-scheduler.js","sourceRoot":"","sources":["../src/sync-scheduler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyFA,oCAOC;AAwDD,gDAWC;AAED,8CAIC;AAzKD,+CAAiC;AACjC,qCAAuD;AACvD,+CAAuE;AACvE,iDAA6C;AAC7C,qCAAqC;AAErC,MAAM,GAAG,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;AAuB9B;;8CAE8C;AAC9C,SAAS,UAAU,CAAC,GAAW,EAAE,GAAW,EAAE,GAAW;IACvD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzD,IAAI,GAAG,MAAM,CAAC;YACd,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,KAAK,GAAG,GAAG,CAAC;QAChB,IAAI,GAAG,GAAG,GAAG,CAAC;QACd,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,gBAAgB;QAClB,CAAC;aAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5D,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAmB,4BAA4B;YACtE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG;gBAAE,OAAO,IAAI,CAAC,CAAM,eAAe;YACzD,KAAK,GAAG,CAAC,CAAC;YACV,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG;gBAAE,OAAO,IAAI,CAAC;YAC3D,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG;gBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvD,CAAC;AAED;;uCAEuC;AACvC,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,yBAAyB,KAAK,CAAC,MAAM,IAAI,CAAC;IACzE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAO,0BAA0B,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,OAAO,CAAC,IAAgB,EAAE,GAAS;IAC1C,OAAO,CACL,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,IAAI,QAAQ,GAA0B,IAAI,CAAC;AAC3C,IAAI,aAAa,GAA0B,IAAI,CAAC;AAEhD;;oCAEoC;AACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE7C,SAAS,SAAS,CAAC,CAAO;IACxB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AACnH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAS;IACvC,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAA,qCAAuB,GAAE,CAAC;IACxC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAA,2BAAa,EAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;YAAE,SAAS;QAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YAAE,SAAS;QAC/C,yCAAyC;QACzC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,UAAU;YAAE,SAAS;QACtD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAA,oBAAW,GAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAA,uBAAc,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,8DAA8D;YAC9D,iEAAiE;YACjE,MAAM,KAAK,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC;gBACH,MAAM,IAAA,0BAAW,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CACN,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,EACpE,uBAAuB,CACxB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB;IAChC,IAAI,QAAQ,IAAI,aAAa;QAAE,OAAO;IACtC,wEAAwE;IACxE,MAAM,UAAU,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC;IACzD,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;QAC9B,aAAa,GAAG,IAAI,CAAC;QACrB,KAAK,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAgB,CAAC,CAAC,CAAC;QAChE,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAC1B,KAAK,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAgB,CAAC,CAAC,CAAC;QAClE,CAAC,EAAE,KAAM,CAAC,CAAC;IACb,CAAC,EAAE,UAAU,CAAC,CAAC;AACjB,CAAC;AAED,SAAgB,iBAAiB;IAC/B,IAAI,aAAa,EAAE,CAAC;QAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAAC,aAAa,GAAG,IAAI,CAAC;IAAC,CAAC;IACzE,IAAI,QAAQ,EAAE,CAAC;QAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAAC,QAAQ,GAAG,IAAI,CAAC;IAAC,CAAC;IAC3D,UAAU,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"sync-scheduler.js","sourceRoot":"","sources":["../src/sync-scheduler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-service.d.ts","sourceRoot":"","sources":["../src/sync-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,EAEY,KAAK,aAAa,EACpC,MAAM,eAAe,CAAC;AAKvB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiCD,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAA;CAAE,GAC7H;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GACxG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErJ,eAAO,MAAM,UAAU,uBAAqB,CAAC;AAiX7C;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE,aAAa,EACjC,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,UAAU,CAAC,CAuFrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAWvE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3D;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAOvD;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwChG"}
1
+ {"version":3,"file":"sync-service.d.ts","sourceRoot":"","sources":["../src/sync-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,EAEY,KAAK,aAAa,EACpC,MAAM,eAAe,CAAC;AAOvB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiCD,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAA;CAAE,GAC7H;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GACxG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErJ,eAAO,MAAM,UAAU,uBAAqB,CAAC;AAoX7C;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE,aAAa,EACjC,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,UAAU,CAAC,CAmGrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAWvE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3D;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAOvD;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwChG"}
@@ -50,6 +50,8 @@ const os = __importStar(require("os"));
50
50
  const crypto = __importStar(require("crypto"));
51
51
  const config_1 = require("./config");
52
52
  const sync_config_1 = require("./sync-config");
53
+ const sync_state_1 = require("./sync-state");
54
+ const sync_dirty_1 = require("./sync-dirty");
53
55
  const logger_1 = require("./logger");
54
56
  const log = (0, logger_1.modLogger)('sync');
55
57
  const LOGS_DIR = path.join(config_1.DATA_DIR, 'sync-logs');
@@ -198,7 +200,7 @@ function rotateLogIfLarge(logFile) {
198
200
  }
199
201
  catch { /* missing file or read failure — no-op */ }
200
202
  }
201
- function buildRsyncArgs(cfg, localPath, folderName, excludes, direction, bidirectionalLeg) {
203
+ function buildRsyncArgs(cfg, localPath, remotePath, excludes, direction, bidirectionalLeg) {
202
204
  const wrapper = writeSshWrapper(cfg);
203
205
  // `-a` archive, `-v` verbose, `-z` compress, `-i` itemize changes.
204
206
  // `-i` prints one `<11-char-flags> path` line per changed path on both GNU
@@ -212,9 +214,12 @@ function buildRsyncArgs(cfg, localPath, folderName, excludes, direction, bidirec
212
214
  args.push('--exclude', trimmed);
213
215
  }
214
216
  const localSpec = localPath.endsWith('/') ? localPath : localPath + '/';
215
- // path.posix.join on sanitized name; folderName is already validated to
216
- // contain no `..` / separators.
217
- const remoteSpec = `${cfg.user}@${cfg.host}:${path.posix.join(cfg.remoteRoot, folderName)}/`;
217
+ // Per-project absolute remote path. Validated at write time by
218
+ // isValidRemotePath (rejects shell/glob metachars/whitespace) — necessary
219
+ // because macOS openrsync has no `--protect-args` to neutralise the remote
220
+ // shell's word-split/glob on this path. Do NOT add `--protect-args` here: it
221
+ // doesn't exist on openrsync and would make every sync fail to spawn.
222
+ const remoteSpec = `${cfg.user}@${cfg.host}:${remotePath}/`;
218
223
  if (direction === 'push') {
219
224
  // Only the pure-push path uses --delete (mirror semantics). The push leg
220
225
  // of "bidirectional" must not delete remote-newer files the pull leg is
@@ -272,9 +277,9 @@ function parseRsyncOutput(combined, direction) {
272
277
  }
273
278
  return { bytes, files };
274
279
  }
275
- async function runOne(cfg, projectId, folderName, localPath, direction, bidirectionalLeg, runId) {
280
+ async function runOne(cfg, projectId, remotePath, localPath, direction, bidirectionalLeg, runId) {
276
281
  const excludes = [...cfg.defaultExcludes, ...(cfg.projectExcludes[projectId] ?? [])];
277
- const { args, env } = buildRsyncArgs(cfg, localPath, folderName, excludes, direction, bidirectionalLeg);
282
+ const { args, env } = buildRsyncArgs(cfg, localPath, remotePath, excludes, direction, bidirectionalLeg);
278
283
  if (cfg.authMethod === 'password' && !env.SSHPASS) {
279
284
  return { ok: false, exitCode: null, durationMs: 0, bytes: 0, filesTransferred: 0, logTail: '', reason: 'password-decrypt-failed' };
280
285
  }
@@ -288,7 +293,7 @@ async function runOne(cfg, projectId, folderName, localPath, direction, bidirect
288
293
  // Claude grepping main log can then tail/open the matching sync-logs file.
289
294
  // runId is minted by the caller (syncProject) so bidirectional runs share
290
295
  // one id across push+pull legs, and the scheduler can correlate failures.
291
- const header = `\n===== ${startStamp} runId=${runId} ${direction.toUpperCase()}${bidirectionalLeg ? '(bidi)' : ''} ${folderName} (${bin.versionLine}) =====\n`;
296
+ const header = `\n===== ${startStamp} runId=${runId} ${direction.toUpperCase()}${bidirectionalLeg ? '(bidi)' : ''} ${remotePath} (${bin.versionLine}) =====\n`;
292
297
  const started = Date.now();
293
298
  const key = inFlightKey(cfg.username, projectId);
294
299
  const leg = !bidirectionalLeg
@@ -413,9 +418,20 @@ async function syncProject(username, projectId, projectName, localPath, override
413
418
  const cfg = (0, sync_config_1.getSyncConfig)(username);
414
419
  // Preflight validation — fail fast with a clear reason instead of spawning
415
420
  // rsync and watching it error cryptically.
416
- if (!cfg.host || !cfg.user || !cfg.remoteRoot) {
421
+ if (!cfg.host || !cfg.user) {
417
422
  return { ok: false, exitCode: null, durationMs: 0, bytes: 0, filesTransferred: 0, logTail: '', reason: 'incomplete-config' };
418
423
  }
424
+ // The sync target is now the per-project remote path (remoteRoot is no longer
425
+ // the target). No path set → "not configured", not an error.
426
+ const remotePath = (0, sync_config_1.getProjectPath)(cfg, projectId);
427
+ if (!remotePath) {
428
+ return { ok: false, exitCode: null, durationMs: 0, bytes: 0, filesTransferred: 0, logTail: '', reason: 'no-path' };
429
+ }
430
+ // Defense in depth: the path is validated on write, but a hand-edited config
431
+ // could carry an unsafe value — never spawn rsync against it.
432
+ if (!(0, sync_config_1.isValidRemotePath)(remotePath)) {
433
+ return { ok: false, exitCode: null, durationMs: 0, bytes: 0, filesTransferred: 0, logTail: '', reason: 'invalid-path' };
434
+ }
419
435
  // keyPath is OPTIONAL for key auth (empty → default agent / ~/.ssh/id_*).
420
436
  // BUT if the user specified one, verify it exists — ssh will otherwise
421
437
  // silently ignore a missing -i file and fall back to the agent, creating
@@ -432,16 +448,11 @@ async function syncProject(username, projectId, projectName, localPath, override
432
448
  if (!fs.existsSync(localPath)) {
433
449
  return { ok: false, exitCode: null, durationMs: 0, bytes: 0, filesTransferred: 0, logTail: '', reason: 'local-path-missing' };
434
450
  }
435
- // Folder name on the remote: prefer the project display name, fall back to
436
- // basename then projectId. Must be sanitized or we'd let a project name
437
- // containing `..` escape the remote root.
438
- const rawName = projectName || path.basename(localPath) || projectId;
439
- const folderName = (0, sync_config_1.sanitizeFolderName)(rawName) ?? projectId;
440
451
  const direction = overrideDirection ?? cfg.direction;
441
452
  const job = (async () => {
442
453
  let result;
443
454
  if (direction === 'bidirectional') {
444
- const push = await runOne(cfg, projectId, folderName, localPath, 'push', true, runId);
455
+ const push = await runOne(cfg, projectId, remotePath, localPath, 'push', true, runId);
445
456
  // Skip the pull leg entirely if push failed OR user cancelled mid-push
446
457
  // (a cancelled push produces ok:false, so the early-return already
447
458
  // handles that — this comment just makes the intent explicit).
@@ -449,7 +460,7 @@ async function syncProject(username, projectId, projectName, localPath, override
449
460
  result = push;
450
461
  }
451
462
  else {
452
- const pull = await runOne(cfg, projectId, folderName, localPath, 'pull', true, runId);
463
+ const pull = await runOne(cfg, projectId, remotePath, localPath, 'pull', true, runId);
453
464
  result = {
454
465
  ok: pull.ok,
455
466
  exitCode: pull.exitCode,
@@ -462,7 +473,14 @@ async function syncProject(username, projectId, projectName, localPath, override
462
473
  }
463
474
  }
464
475
  else {
465
- result = await runOne(cfg, projectId, folderName, localPath, direction, false, runId);
476
+ result = await runOne(cfg, projectId, remotePath, localPath, direction, false, runId);
477
+ }
478
+ // Record successful sync time + drop the dirty cache so the card flips to
479
+ // "synced". (For pull/bidi the local tree gets remote-newer files, but the
480
+ // dashboard only renders dirty for push directions — see sync-dirty.ts.)
481
+ if (result.ok) {
482
+ (0, sync_state_1.setLastSyncAt)(username, projectId, Date.now());
483
+ (0, sync_dirty_1.invalidateDirty)(`${username}:${projectId}`);
466
484
  }
467
485
  const doneEvt = {
468
486
  kind: 'done',
@@ -1 +1 @@
1
- {"version":3,"file":"sync-service.js","sourceRoot":"","sources":["../src/sync-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8cA,kCA8FC;AAWD,gCAWC;AAOD,4CAOC;AAGD,0CAEC;AAGD,0CAEC;AAED,8BAEC;AAED,oCAOC;AAOD,wCAwCC;AAtpBD,iDAAmE;AACnE,mCAAsC;AACtC,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,+CAAiC;AACjC,qCAAoC;AACpC,+CAGuB;AACvB,qCAAqC;AAErC,MAAM,GAAG,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;AAwC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAQ,EAAE,WAAW,CAAC,CAAC;AAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAQ,EAAE,UAAU,CAAC,CAAC;AACjD,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,mBAAmB;AAE1D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;AACxD,8EAA8E;AAC9E,8EAA8E;AAC9E,yEAAyE;AACzE,yBAAyB;AACzB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;AACvD,2EAA2E;AAC3E,6EAA6E;AAC7E,0CAA0C;AAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;AACpC,0EAA0E;AAC1E,mEAAmE;AACnE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;AAErC,SAAS,WAAW,CAAC,QAAgB,EAAE,SAAiB;IACtD,OAAO,GAAG,QAAQ,KAAK,SAAS,EAAE,CAAC;AACrC,CAAC;AAgBY,QAAA,UAAU,GAAG,IAAI,qBAAY,EAAE,CAAC;AAC7C,kBAAU,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAE/B,SAAS,QAAQ,CAAC,QAAgB;IAChC,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,CAAqB;IAC3C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,qEAAqE;AACrE,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAcD,IAAI,SAAS,GAAuB,IAAI,CAAC;AAEzC,SAAS,cAAc;IACrB,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,yEAAyE;IACzE,yDAAyD;IACzD,MAAM,UAAU,GAAG,CAAC,yBAAyB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAClG,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,yEAAyE;YACzE,uEAAuE;YACvE,wEAAwE;YACxE,4DAA4D;YAC5D,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,GAAG,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACrH,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC/C,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;IACD,4DAA4D;IAC5D,SAAS,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IAC1E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,eAAe,CAAC,GAAe;IACtC,aAAa,EAAE,CAAC;IAChB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,cAAc,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACtC,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,4EAA4E;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,mBAAmB,MAAM,SAAS,CAAC;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAE/E,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC;YAC9B,6DAA6D;YAC7D,4DAA4D;YAC5D,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;YACxD,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjB,mDAAmD;YACnD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAClD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;AACxD,CAAC;AASD,SAAS,cAAc,CACrB,GAAe,EACf,SAAiB,EACjB,UAAkB,EAClB,QAAkB,EAClB,SAA0B,EAC1B,gBAAyB;IAEzB,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,mEAAmE;IACnE,2EAA2E;IAC3E,wEAAwE;IACxE,uDAAuD;IACvD,MAAM,IAAI,GAAa,CAAC,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEzB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;IACxE,wEAAwE;IACxE,gCAAgC;IAChC,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC;IAE7F,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,yEAAyE;QACzE,wEAAwE;QACxE,uBAAuB;QACvB,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;YACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,yDAAyD;QACzD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,GAAG,GAA2B,EAAE,GAAI,OAAO,CAAC,GAA8B,EAAE,CAAC;IACnF,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,EAAE,GAAG,IAAA,6BAAe,EAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,EAAE;YAAE,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,SAA0B;IACpE,wDAAwD;IACxD,+FAA+F;IAC/F,uEAAuE;IACvE,kEAAkE;IAClE,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;IACrE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAEzE,yEAAyE;IACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,6DAA6D;QAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,wEAAwE;QACxE,0DAA0D;QAC1D,KAAK,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,MAAM,CACnB,GAAe,EACf,SAAiB,EACjB,UAAkB,EAClB,SAAiB,EACjB,SAA0B,EAC1B,gBAAyB,EACzB,KAAa;IAEb,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrF,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAExG,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAClD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACrI,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,MAAM,CAAC,CAAC;IACtD,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE1B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,uEAAuE;IACvE,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,MAAM,MAAM,GAAG,WAAW,UAAU,WAAW,KAAK,KAAK,SAAS,CAAC,WAAW,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,MAAM,GAAG,CAAC,WAAW,WAAW,CAAC;IAEnK,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,GAAG,GAAyC,CAAC,gBAAgB;QACjE,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IAErD,MAAM,QAAQ,GAAc,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;IACjG,kBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,GAAG,CAAC,IAAI,CACN,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,EAC/E,gBAAgB,CACjB,CAAC;IAEF,OAAO,MAAM,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;QAC/C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,yEAAyE;QACzE,sEAAsE;QACtE,wEAAwE;QACxE,iCAAiC;QACjC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,YAAY,GAAG,+BAA+B,CAAC;QAErD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC;gBAAE,OAAO;YACf,sEAAsE;YACtE,oEAAoE;YACpE,oCAAoC;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO;YACnC,SAAS,IAAI,CAAC,CAAC;YACf,MAAM,GAAG,GAAc;gBACrB,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,SAAS;gBACT,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjB,gBAAgB,EAAE,SAAS;aAC5B,CAAC;YACF,kBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7E,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,yEAAyE;QACzE,yEAAyE;QACzE,uEAAuE;QACvE,sDAAsD;QACtD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,MAAkB,EAAE,EAAE;YACpC,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC;gBAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,uEAAuE;QACvE,qEAAqE;QACrE,sEAAsE;QACtE,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,IAAA,qBAAK,EAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,SAAS,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC7I,OAAO;QACT,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;YAC7B,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzB,QAAQ,IAAI,CAAC,CAAC;YACd,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC,CAAC;YACb,IAAI,EAAU,CAAC;YACf,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,SAAS,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QACvJ,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACjC,uEAAuE;YACvE,gBAAgB;YAChB,IAAI,OAAO,EAAE,CAAC;gBAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;YAAC,CAAC;YACnD,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,oEAAoE;YACpE,sEAAsE;YACtE,sDAAsD;YACtD,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,YAAY;gBACzB,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAE/E;;;GAGG;AACI,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,SAAiB,EACjB,WAAmB,EACnB,SAAiB,EACjB,iBAAiC,EACjC,IAAyB;IAEzB,oEAAoE;IACpE,oEAAoE;IACpE,yDAAyD;IACzD,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3F,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5I,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,2BAAa,EAAC,QAAQ,CAAC,CAAC;IAEpC,2EAA2E;IAC3E,2CAA2C;IAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC/H,CAAC;IACD,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,wDAAwD;IACxD,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;QAChI,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;IACnI,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAChI,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,0CAA0C;IAC1C,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IACrE,MAAM,UAAU,GAAG,IAAA,gCAAkB,EAAC,OAAO,CAAC,IAAI,SAAS,CAAC;IAE5D,MAAM,SAAS,GAAG,iBAAiB,IAAI,GAAG,CAAC,SAAS,CAAC;IAErD,MAAM,GAAG,GAAG,CAAC,KAAK,IAAyB,EAAE;QAC3C,IAAI,MAAkB,CAAC;QACvB,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACtF,uEAAuE;YACvE,mEAAmE;YACnE,+DAA+D;YAC/D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtF,MAAM,GAAG;oBACP,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;oBAC7C,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;oBAC9B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB;oBAC/D,OAAO,EAAE,WAAW,IAAI,CAAC,OAAO,aAAa,IAAI,CAAC,OAAO,EAAE;oBAC3D,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,OAAO,GAAc;YACzB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS;YACT,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QACF,kBAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,CAAC;IAEL,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,UAAU,CAAC,QAAgB,EAAE,SAAiB;IAC5D,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,iEAAiE;AACjE,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,wEAAwE;AACxE,SAAgB,eAAe,CAAC,QAAgB;IAC9C,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,SAAS,CAAC,QAAgB,EAAE,SAAiB;IAC3D,OAAO,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB;IAC3C,MAAM,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,GAAG,GAAG,IAAA,2BAAa,EAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3E,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,QAAQ,EAAE,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,EAAE,GAAG,IAAA,6BAAe,EAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,GAAG,GAA2B,EAAE,GAAI,OAAO,CAAC,GAA8B,EAAE,CAAC;IACnF,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,EAAE,GAAG,IAAA,6BAAe,EAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,EAAE;YAAE,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,IAAI,OAAO,CAAmC,CAAC,OAAO,EAAE,EAAE;QACrE,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,oEAAoE;QACpE,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAChH,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACrD,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/C,CAAC,EAAE,KAAM,CAAC,CAAC;QACX,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,IAAI,KAAK,CAAC;gBAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;;gBAClD,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"sync-service.js","sourceRoot":"","sources":["../src/sync-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function getLastSyncAt(username: string, projectId: string): number;
2
+ export declare function setLastSyncAt(username: string, projectId: string, ts: number): void;
3
+ /** All projects' lastSyncAt for a user, for the dashboard status endpoint. */
4
+ export declare function getAllLastSyncAt(username: string): Record<string, number>;
5
+ //# sourceMappingURL=sync-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-state.d.ts","sourceRoot":"","sources":["../src/sync-state.ts"],"names":[],"mappings":"AAiDA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAUnF;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMzE"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getLastSyncAt = getLastSyncAt;
37
+ exports.setLastSyncAt = setLastSyncAt;
38
+ exports.getAllLastSyncAt = getAllLastSyncAt;
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const crypto = __importStar(require("crypto"));
42
+ const config_1 = require("./config");
43
+ const STATE_DIR = path.join(config_1.DATA_DIR, 'sync-state');
44
+ function ensureDir() {
45
+ if (!fs.existsSync(STATE_DIR))
46
+ fs.mkdirSync(STATE_DIR, { recursive: true, mode: 0o700 });
47
+ }
48
+ function userFile(username) {
49
+ const hash = crypto.createHash('sha1').update(`ccweb-sync-state-user:${username}`).digest('hex');
50
+ return path.join(STATE_DIR, `${hash}.json`);
51
+ }
52
+ function readState(username) {
53
+ ensureDir();
54
+ const file = userFile(username);
55
+ if (!fs.existsSync(file))
56
+ return {};
57
+ try {
58
+ const parsed = JSON.parse(fs.readFileSync(file, 'utf-8'));
59
+ return parsed && typeof parsed === 'object' ? parsed : {};
60
+ }
61
+ catch {
62
+ return {};
63
+ }
64
+ }
65
+ function writeState(username, state) {
66
+ ensureDir();
67
+ (0, config_1.atomicWriteSync)(userFile(username), JSON.stringify(state, null, 2));
68
+ try {
69
+ fs.chmodSync(userFile(username), 0o600);
70
+ }
71
+ catch { /* ignore */ }
72
+ }
73
+ function getLastSyncAt(username, projectId) {
74
+ return readState(username)[projectId]?.lastSyncAt ?? 0;
75
+ }
76
+ function setLastSyncAt(username, projectId, ts) {
77
+ // Read-modify-write of the per-user file. Two concurrent syncs of *different*
78
+ // projects for the same user could drop one sibling's update (last-writer-
79
+ // wins). Accepted: syncs are serialized per (user,project), `/all` runs
80
+ // sequentially, the overlap window is tiny, and the only consequence is one
81
+ // project's cloud reading stale until its next sync (self-heals). Not worth
82
+ // per-project files / locking.
83
+ const state = readState(username);
84
+ state[projectId] = { lastSyncAt: ts };
85
+ writeState(username, state);
86
+ }
87
+ /** All projects' lastSyncAt for a user, for the dashboard status endpoint. */
88
+ function getAllLastSyncAt(username) {
89
+ const out = {};
90
+ for (const [pid, s] of Object.entries(readState(username))) {
91
+ out[pid] = s?.lastSyncAt ?? 0;
92
+ }
93
+ return out;
94
+ }
95
+ //# sourceMappingURL=sync-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-state.js","sourceRoot":"","sources":["../src/sync-state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,sCAEC;AAED,sCAUC;AAGD,4CAMC;AAxED,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AACjC,qCAAqD;AAiBrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAQ,EAAE,YAAY,CAAC,CAAC;AAEpD,SAAS,SAAS;IAChB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,QAAQ,CAAC,QAAgB;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjG,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IACjC,SAAS,EAAE,CAAC;IACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAkB,CAAC;QAC3E,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB,EAAE,KAAoB;IACxD,SAAS,EAAE,CAAC;IACZ,IAAA,wBAAe,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC;QAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB,EAAE,SAAiB;IAC/D,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB,EAAE,SAAiB,EAAE,EAAU;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,wEAAwE;IACxE,4EAA4E;IAC5E,4EAA4E;IAC5E,+BAA+B;IAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACtC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,8EAA8E;AAC9E,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,4 +1,4 @@
1
- import{bT as e,bU as t,r as n,bV as r,c as a,h as i,bW as o,b2 as s,j as l,R as c,d as u,U as d,bX as p,t as m,b9 as g,B as h,A as f,q as b,bB as y,bY as E,a as v,ab as S,ad as w,a9 as k,a7 as x,ac as T,a4 as A,bC as _,aM as I,bL as N,bM as R,bN as C,i as O,bZ as L,b_ as D,s as M,b$ as P,c0 as F,bO as B,c1 as U,bQ as z,bR as $,S as G,l as j,aZ as H,p as q}from"./index-D2KpHlv8.js";import{C as V}from"./chevron-down-BXO9hQjV.js";import{C as W,u as Y,c as K}from"./index-1dkP8nIN.js";import{F as X}from"./file-text-DhrmIv6Q.js";import{C as Z}from"./check-circle-2-DtSQDsJD.js";function Q(){!e.current&&t();const[a]=n.useState(r.current);return a}
1
+ import{bV as e,bW as t,r as n,bX as r,c as a,h as i,bY as o,b2 as s,j as l,R as c,d as u,U as d,bZ as p,t as m,b9 as g,B as h,A as f,q as b,bB as y,b_ as E,a as v,ab as S,ad as w,a9 as k,a7 as x,ac as T,a4 as A,bC as _,aM as I,bN as N,bO as R,bP as C,i as O,b$ as L,c0 as D,s as M,c1 as P,c2 as F,bQ as B,c3 as U,bS as z,bT as $,S as G,l as j,aZ as H,p as q}from"./index---z4AYZg.js";import{C as V}from"./chevron-down-Baaa_7Xz.js";import{C as W,u as Y,c as K}from"./index-Do7n5H3P.js";import{F as X}from"./file-text-Bce74_ZZ.js";import{C as Z}from"./check-circle-2-CZX-PYDg.js";function Q(){!e.current&&t();const[a]=n.useState(r.current);return a}
2
2
  /**
3
3
  * @license lucide-react v0.309.0 - ISC
4
4
  *
@@ -1 +1 @@
1
- import{aM as e,aN as t,r as s,by as a,bz as r,bA as l,j as n,B as d,aI as i,bB as o,I as c,m,d as x}from"./index-D2KpHlv8.js";import{S as u,a as p,b as h,d as b,e as f}from"./select-C_BJUfwv.js";import{S as g}from"./search-BIHCBFC7.js";import{F as j}from"./file-text-DhrmIv6Q.js";import{C as v}from"./chevron-down-BXO9hQjV.js";import"./index-1dkP8nIN.js";const N=window.matchMedia("(pointer: coarse)").matches&&window.innerWidth<768,y={discovery:"bg-blue-500/15 text-blue-600 dark:text-blue-300 border-blue-500/30",feature:"bg-green-500/15 text-green-600 dark:text-green-300 border-green-500/30",change:"bg-amber-500/15 text-amber-600 dark:text-amber-300 border-amber-500/30",bugfix:"bg-red-500/15 text-red-600 dark:text-red-300 border-red-500/30",decision:"bg-purple-500/15 text-purple-600 dark:text-purple-300 border-purple-500/30",security_alert:"bg-red-600/20 text-red-700 dark:text-red-300 border-red-600/40",security_note:"bg-orange-500/15 text-orange-600 dark:text-orange-300 border-orange-500/30"};function w(e){const t=Date.now()-new Date(e).getTime();if(Number.isNaN(t))return"";const s=Math.floor(t/6e4);if(s<1)return"just now";if(s<60)return`${s}m`;const a=Math.floor(s/60);if(a<24)return`${a}h`;const r=Math.floor(a/24);return r<30?`${r}d`:new Date(e).toLocaleDateString()}function k({obs:e}){const[t,a]=s.useState(!1),r=!!e.narrative||e.facts.length>0||e.filesModified.length>0;return n.jsxs("div",{className:"rounded-xl border border-border bg-card p-4 shadow-sm",children:[n.jsxs("div",{className:"flex items-start gap-2",children:[n.jsx("span",{className:x("shrink-0 rounded-md border px-1.5 py-0.5 text-[11px] font-medium",y[e.type]??"bg-muted text-muted-foreground border-border"),children:e.type}),n.jsxs("div",{className:"min-w-0 flex-1",children:[n.jsx("div",{className:"font-medium leading-snug",children:e.title??"(untitled)"}),e.subtitle&&n.jsx("div",{className:"mt-0.5 text-sm text-muted-foreground",children:e.subtitle})]}),n.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",title:new Date(e.createdAt).toLocaleString(),children:w(e.createdAt)})]}),t&&n.jsxs("div",{className:"mt-3 space-y-3 border-t border-border pt-3",children:[e.narrative&&n.jsx("p",{className:"whitespace-pre-wrap text-sm text-foreground/80",children:e.narrative}),e.facts.length>0&&n.jsx("ul",{className:"list-disc space-y-1 pl-5 text-sm text-foreground/80",children:e.facts.map((e,t)=>n.jsx("li",{children:e},t))}),e.filesModified.length>0&&n.jsx("div",{className:"flex flex-wrap gap-1.5",children:e.filesModified.map((e,t)=>n.jsxs("span",{className:"flex items-center gap-1 rounded-md bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:[n.jsx(j,{className:"h-3 w-3"}),e]},t))})]}),n.jsxs("div",{className:"mt-2 flex items-center gap-3 text-xs text-muted-foreground",children:[n.jsx("span",{className:"rounded-full bg-muted px-2 py-0.5",children:e.project}),e.agentType&&n.jsxs("span",{children:["· ",e.agentType]}),r&&n.jsxs("button",{onClick:()=>a(e=>!e),className:"ml-auto flex items-center gap-1 hover:text-foreground transition-colors",children:[n.jsx(v,{className:x("h-3 w-3 transition-transform",t&&"rotate-180")}),t?"less":"more"]})]})]})}function S(){const{t:j}=e(),v=t(),[y,w]=s.useState("loading"),[S,_]=s.useState([]),[C,M]=s.useState("all"),[T,D]=s.useState("all"),[z,A]=s.useState(""),[E,$]=s.useState(""),[B,I]=s.useState([]),[L,q]=s.useState(0),[F,R]=s.useState(0),[V,W]=s.useState(!1),G=s.useRef(0);s.useEffect(()=>{(async()=>{const e=await a();if(w(e),null==e?void 0:e.available)try{_(await r())}catch{}})()},[]),s.useEffect(()=>{const e=setTimeout(()=>$(z),300);return()=>clearTimeout(e)},[z]);const H=s.useCallback(async(e,t)=>{const s=++G.current;W(!0);try{const a=await l({project:"all"===C?void 0:C,type:"all"===T?void 0:T,q:E||void 0,limit:30,offset:e});if(s!==G.current)return;q(a.total),R(e),I(e=>t?[...e,...a.items]:a.items)}finally{s===G.current&&W(!1)}},[C,T,E]);s.useEffect(()=>{"loading"!==y&&(null==y?void 0:y.available)&&H(0,!1)},[y,H]);const J=n.jsx("header",{className:"border-b sticky top-0 bg-background z-10",style:N?{paddingTop:"env(safe-area-inset-top)"}:void 0,children:n.jsxs("div",{className:"w-full px-4 sm:px-6 h-14 flex items-center gap-3",children:[n.jsxs(d,{variant:"ghost",size:"sm",onClick:()=>v(N?"/mobile":"/"),children:[n.jsx(i,{className:"h-4 w-4 mr-1"}),j("claudemem.back")]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(o,{className:"h-5 w-5"}),n.jsx("span",{className:"font-semibold text-lg",children:j("claudemem.title")})]})]})});return"loading"===y?n.jsx("div",{className:"min-h-screen bg-background",children:J}):y&&y.available?n.jsxs("div",{className:"min-h-screen bg-background",children:[J,n.jsxs("main",{className:"max-w-5xl mx-auto px-4 py-6",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-4",children:[n.jsxs(u,{value:C,onValueChange:M,children:[n.jsx(p,{className:"w-[200px]",children:n.jsx(h,{placeholder:j("claudemem.all_projects")})}),n.jsxs(b,{children:[n.jsx(f,{value:"all",children:j("claudemem.all_projects")}),S.map(e=>n.jsxs(f,{value:e.project,children:[e.project," (",e.count,")"]},e.project))]})]}),n.jsxs("div",{className:"relative flex-1 min-w-[180px]",children:[n.jsx(g,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),n.jsx(c,{value:z,onChange:e=>A(e.target.value),placeholder:j("claudemem.search_placeholder"),className:"pl-8"})]}),n.jsx(d,{variant:"outline",size:"icon",onClick:()=>{H(0,!1)},title:j("claudemem.refresh"),children:n.jsx(m,{className:x("h-4 w-4",V&&"animate-spin")})})]}),n.jsxs("div",{className:"flex flex-wrap gap-1.5 mb-4",children:[n.jsx("button",{onClick:()=>D("all"),className:x("px-2 py-0.5 rounded-full text-xs border transition-colors","all"===T?"bg-primary text-primary-foreground border-transparent font-medium":"bg-muted text-muted-foreground border-border hover:border-muted-foreground/40"),children:j("claudemem.all_types")}),["discovery","feature","change","bugfix","decision","security_alert","security_note"].map(e=>n.jsx("button",{onClick:()=>D(e),className:x("px-2 py-0.5 rounded-full text-xs border transition-colors",T===e?"bg-primary text-primary-foreground border-transparent font-medium":"bg-muted text-muted-foreground border-border hover:border-muted-foreground/40"),children:e},e))]}),n.jsx("div",{className:"text-xs text-muted-foreground mb-3",children:j("claudemem.count",{count:L})}),n.jsx("div",{className:"space-y-3",children:B.map(e=>n.jsx(k,{obs:e},e.id))}),0===B.length&&!V&&n.jsx("div",{className:"text-center py-16 text-muted-foreground text-sm",children:j("claudemem.empty")}),B.length<L&&n.jsx("div",{className:"flex justify-center mt-6",children:n.jsxs(d,{variant:"outline",onClick:()=>{H(F+30,!0)},disabled:V,children:[V?n.jsx(m,{className:"h-4 w-4 mr-2 animate-spin"}):null,j("claudemem.load_more")]})})]})]}):n.jsxs("div",{className:"min-h-screen bg-background",children:[J,n.jsxs("div",{className:"max-w-3xl mx-auto px-4 py-20 text-center",children:[n.jsx(o,{className:"h-12 w-12 text-muted-foreground mx-auto mb-4"}),n.jsx("h2",{className:"text-lg font-semibold mb-2",children:j("claudemem.unavailable_title")}),n.jsx("p",{className:"text-muted-foreground text-sm",children:j("claudemem.unavailable_desc")})]})]})}export{S as ClaudeMemPage};
1
+ import{aM as e,aN as t,r as s,by as a,bz as r,bA as l,j as n,B as d,aI as i,bB as o,I as c,m,d as x}from"./index---z4AYZg.js";import{S as u,a as p,b as h,d as b,e as f}from"./select-DgXuPzBS.js";import{S as g}from"./search-BR_ML1Dg.js";import{F as j}from"./file-text-Bce74_ZZ.js";import{C as v}from"./chevron-down-Baaa_7Xz.js";import"./index-Do7n5H3P.js";const N=window.matchMedia("(pointer: coarse)").matches&&window.innerWidth<768,y={discovery:"bg-blue-500/15 text-blue-600 dark:text-blue-300 border-blue-500/30",feature:"bg-green-500/15 text-green-600 dark:text-green-300 border-green-500/30",change:"bg-amber-500/15 text-amber-600 dark:text-amber-300 border-amber-500/30",bugfix:"bg-red-500/15 text-red-600 dark:text-red-300 border-red-500/30",decision:"bg-purple-500/15 text-purple-600 dark:text-purple-300 border-purple-500/30",security_alert:"bg-red-600/20 text-red-700 dark:text-red-300 border-red-600/40",security_note:"bg-orange-500/15 text-orange-600 dark:text-orange-300 border-orange-500/30"};function w(e){const t=Date.now()-new Date(e).getTime();if(Number.isNaN(t))return"";const s=Math.floor(t/6e4);if(s<1)return"just now";if(s<60)return`${s}m`;const a=Math.floor(s/60);if(a<24)return`${a}h`;const r=Math.floor(a/24);return r<30?`${r}d`:new Date(e).toLocaleDateString()}function k({obs:e}){const[t,a]=s.useState(!1),r=!!e.narrative||e.facts.length>0||e.filesModified.length>0;return n.jsxs("div",{className:"rounded-xl border border-border bg-card p-4 shadow-sm",children:[n.jsxs("div",{className:"flex items-start gap-2",children:[n.jsx("span",{className:x("shrink-0 rounded-md border px-1.5 py-0.5 text-[11px] font-medium",y[e.type]??"bg-muted text-muted-foreground border-border"),children:e.type}),n.jsxs("div",{className:"min-w-0 flex-1",children:[n.jsx("div",{className:"font-medium leading-snug",children:e.title??"(untitled)"}),e.subtitle&&n.jsx("div",{className:"mt-0.5 text-sm text-muted-foreground",children:e.subtitle})]}),n.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",title:new Date(e.createdAt).toLocaleString(),children:w(e.createdAt)})]}),t&&n.jsxs("div",{className:"mt-3 space-y-3 border-t border-border pt-3",children:[e.narrative&&n.jsx("p",{className:"whitespace-pre-wrap text-sm text-foreground/80",children:e.narrative}),e.facts.length>0&&n.jsx("ul",{className:"list-disc space-y-1 pl-5 text-sm text-foreground/80",children:e.facts.map((e,t)=>n.jsx("li",{children:e},t))}),e.filesModified.length>0&&n.jsx("div",{className:"flex flex-wrap gap-1.5",children:e.filesModified.map((e,t)=>n.jsxs("span",{className:"flex items-center gap-1 rounded-md bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:[n.jsx(j,{className:"h-3 w-3"}),e]},t))})]}),n.jsxs("div",{className:"mt-2 flex items-center gap-3 text-xs text-muted-foreground",children:[n.jsx("span",{className:"rounded-full bg-muted px-2 py-0.5",children:e.project}),e.agentType&&n.jsxs("span",{children:["· ",e.agentType]}),r&&n.jsxs("button",{onClick:()=>a(e=>!e),className:"ml-auto flex items-center gap-1 hover:text-foreground transition-colors",children:[n.jsx(v,{className:x("h-3 w-3 transition-transform",t&&"rotate-180")}),t?"less":"more"]})]})]})}function S(){const{t:j}=e(),v=t(),[y,w]=s.useState("loading"),[S,_]=s.useState([]),[C,M]=s.useState("all"),[T,D]=s.useState("all"),[z,A]=s.useState(""),[E,$]=s.useState(""),[B,I]=s.useState([]),[L,q]=s.useState(0),[F,R]=s.useState(0),[V,W]=s.useState(!1),G=s.useRef(0);s.useEffect(()=>{(async()=>{const e=await a();if(w(e),null==e?void 0:e.available)try{_(await r())}catch{}})()},[]),s.useEffect(()=>{const e=setTimeout(()=>$(z),300);return()=>clearTimeout(e)},[z]);const H=s.useCallback(async(e,t)=>{const s=++G.current;W(!0);try{const a=await l({project:"all"===C?void 0:C,type:"all"===T?void 0:T,q:E||void 0,limit:30,offset:e});if(s!==G.current)return;q(a.total),R(e),I(e=>t?[...e,...a.items]:a.items)}finally{s===G.current&&W(!1)}},[C,T,E]);s.useEffect(()=>{"loading"!==y&&(null==y?void 0:y.available)&&H(0,!1)},[y,H]);const J=n.jsx("header",{className:"border-b sticky top-0 bg-background z-10",style:N?{paddingTop:"env(safe-area-inset-top)"}:void 0,children:n.jsxs("div",{className:"w-full px-4 sm:px-6 h-14 flex items-center gap-3",children:[n.jsxs(d,{variant:"ghost",size:"sm",onClick:()=>v(N?"/mobile":"/"),children:[n.jsx(i,{className:"h-4 w-4 mr-1"}),j("claudemem.back")]}),n.jsxs("div",{className:"flex items-center gap-2",children:[n.jsx(o,{className:"h-5 w-5"}),n.jsx("span",{className:"font-semibold text-lg",children:j("claudemem.title")})]})]})});return"loading"===y?n.jsx("div",{className:"min-h-screen bg-background",children:J}):y&&y.available?n.jsxs("div",{className:"min-h-screen bg-background",children:[J,n.jsxs("main",{className:"max-w-5xl mx-auto px-4 py-6",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-4",children:[n.jsxs(u,{value:C,onValueChange:M,children:[n.jsx(p,{className:"w-[200px]",children:n.jsx(h,{placeholder:j("claudemem.all_projects")})}),n.jsxs(b,{children:[n.jsx(f,{value:"all",children:j("claudemem.all_projects")}),S.map(e=>n.jsxs(f,{value:e.project,children:[e.project," (",e.count,")"]},e.project))]})]}),n.jsxs("div",{className:"relative flex-1 min-w-[180px]",children:[n.jsx(g,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),n.jsx(c,{value:z,onChange:e=>A(e.target.value),placeholder:j("claudemem.search_placeholder"),className:"pl-8"})]}),n.jsx(d,{variant:"outline",size:"icon",onClick:()=>{H(0,!1)},title:j("claudemem.refresh"),children:n.jsx(m,{className:x("h-4 w-4",V&&"animate-spin")})})]}),n.jsxs("div",{className:"flex flex-wrap gap-1.5 mb-4",children:[n.jsx("button",{onClick:()=>D("all"),className:x("px-2 py-0.5 rounded-full text-xs border transition-colors","all"===T?"bg-primary text-primary-foreground border-transparent font-medium":"bg-muted text-muted-foreground border-border hover:border-muted-foreground/40"),children:j("claudemem.all_types")}),["discovery","feature","change","bugfix","decision","security_alert","security_note"].map(e=>n.jsx("button",{onClick:()=>D(e),className:x("px-2 py-0.5 rounded-full text-xs border transition-colors",T===e?"bg-primary text-primary-foreground border-transparent font-medium":"bg-muted text-muted-foreground border-border hover:border-muted-foreground/40"),children:e},e))]}),n.jsx("div",{className:"text-xs text-muted-foreground mb-3",children:j("claudemem.count",{count:L})}),n.jsx("div",{className:"space-y-3",children:B.map(e=>n.jsx(k,{obs:e},e.id))}),0===B.length&&!V&&n.jsx("div",{className:"text-center py-16 text-muted-foreground text-sm",children:j("claudemem.empty")}),B.length<L&&n.jsx("div",{className:"flex justify-center mt-6",children:n.jsxs(d,{variant:"outline",onClick:()=>{H(F+30,!0)},disabled:V,children:[V?n.jsx(m,{className:"h-4 w-4 mr-2 animate-spin"}):null,j("claudemem.load_more")]})})]})]}):n.jsxs("div",{className:"min-h-screen bg-background",children:[J,n.jsxs("div",{className:"max-w-3xl mx-auto px-4 py-20 text-center",children:[n.jsx(o,{className:"h-12 w-12 text-muted-foreground mx-auto mb-4"}),n.jsx("h2",{className:"text-lg font-semibold mb-2",children:j("claudemem.unavailable_title")}),n.jsx("p",{className:"text-muted-foreground text-sm",children:j("claudemem.unavailable_desc")})]})]})}export{S as ClaudeMemPage};