@mrpatronz/nexusflow 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +11 -5
  2. package/dist/commands/add-repo.d.ts +9 -0
  3. package/dist/commands/add-repo.d.ts.map +1 -1
  4. package/dist/commands/add-repo.js +12 -1
  5. package/dist/commands/add-repo.js.map +1 -1
  6. package/dist/commands/add-repo.test.d.ts +2 -0
  7. package/dist/commands/add-repo.test.d.ts.map +1 -0
  8. package/dist/commands/add-repo.test.js +30 -0
  9. package/dist/commands/add-repo.test.js.map +1 -0
  10. package/dist/commands/commands.test.js +6 -0
  11. package/dist/commands/commands.test.js.map +1 -1
  12. package/dist/commands/commit.d.ts +5 -1
  13. package/dist/commands/commit.d.ts.map +1 -1
  14. package/dist/commands/commit.js +4 -3
  15. package/dist/commands/commit.js.map +1 -1
  16. package/dist/commands/commit.test.d.ts +2 -0
  17. package/dist/commands/commit.test.d.ts.map +1 -0
  18. package/dist/commands/commit.test.js +54 -0
  19. package/dist/commands/commit.test.js.map +1 -0
  20. package/dist/commands/doctor.d.ts.map +1 -1
  21. package/dist/commands/doctor.js +14 -18
  22. package/dist/commands/doctor.js.map +1 -1
  23. package/dist/commands/handoff.d.ts.map +1 -1
  24. package/dist/commands/handoff.js +9 -13
  25. package/dist/commands/handoff.js.map +1 -1
  26. package/dist/commands/tui.js +1 -1
  27. package/dist/commands/tui.js.map +1 -1
  28. package/dist/commands/ui.d.ts +1 -0
  29. package/dist/commands/ui.d.ts.map +1 -1
  30. package/dist/commands/ui.js +5 -2
  31. package/dist/commands/ui.js.map +1 -1
  32. package/dist/core/adapters/local-storage.d.ts +7 -0
  33. package/dist/core/adapters/local-storage.d.ts.map +1 -1
  34. package/dist/core/adapters/local-storage.js +13 -4
  35. package/dist/core/adapters/local-storage.js.map +1 -1
  36. package/dist/core/adapters/storage.test.js +18 -0
  37. package/dist/core/adapters/storage.test.js.map +1 -1
  38. package/dist/core/refresh.d.ts.map +1 -1
  39. package/dist/core/refresh.js +2 -6
  40. package/dist/core/refresh.js.map +1 -1
  41. package/dist/core/scheduler.d.ts.map +1 -1
  42. package/dist/core/scheduler.js +146 -32
  43. package/dist/core/scheduler.js.map +1 -1
  44. package/dist/core/scheduler.test.js +57 -5
  45. package/dist/core/scheduler.test.js.map +1 -1
  46. package/dist/core/sync.d.ts.map +1 -1
  47. package/dist/core/sync.js +2 -7
  48. package/dist/core/sync.js.map +1 -1
  49. package/dist/core/workspace.d.ts +6 -0
  50. package/dist/core/workspace.d.ts.map +1 -1
  51. package/dist/core/workspace.js +32 -15
  52. package/dist/core/workspace.js.map +1 -1
  53. package/dist/core/workspace.test.d.ts +2 -0
  54. package/dist/core/workspace.test.d.ts.map +1 -0
  55. package/dist/core/workspace.test.js +42 -0
  56. package/dist/core/workspace.test.js.map +1 -0
  57. package/dist/generators/map-generator.d.ts.map +1 -1
  58. package/dist/generators/map-generator.js +4 -3
  59. package/dist/generators/map-generator.js.map +1 -1
  60. package/dist/generators/map-generator.test.js +4 -2
  61. package/dist/generators/map-generator.test.js.map +1 -1
  62. package/dist/gui/assets/index-ElroPpSP.js +26 -0
  63. package/dist/gui/index.html +1 -1
  64. package/dist/index.js +1 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/orchestration/index.d.ts +1 -1
  67. package/dist/orchestration/index.d.ts.map +1 -1
  68. package/dist/orchestration/index.js +1 -1
  69. package/dist/orchestration/index.js.map +1 -1
  70. package/dist/orchestration/runner.d.ts +16 -1
  71. package/dist/orchestration/runner.d.ts.map +1 -1
  72. package/dist/orchestration/runner.js +41 -5
  73. package/dist/orchestration/runner.js.map +1 -1
  74. package/dist/orchestration/runner.test.d.ts +2 -0
  75. package/dist/orchestration/runner.test.d.ts.map +1 -0
  76. package/dist/orchestration/runner.test.js +71 -0
  77. package/dist/orchestration/runner.test.js.map +1 -0
  78. package/dist/server.d.ts +17 -1
  79. package/dist/server.d.ts.map +1 -1
  80. package/dist/server.js +199 -119
  81. package/dist/server.js.map +1 -1
  82. package/dist/server.test.js +92 -1
  83. package/dist/server.test.js.map +1 -1
  84. package/dist/utils/prompts.d.ts.map +1 -1
  85. package/dist/utils/prompts.js +8 -2
  86. package/dist/utils/prompts.js.map +1 -1
  87. package/package.json +1 -1
  88. package/dist/gui/assets/index-D8iJPvnk.js +0 -26
@@ -11,7 +11,7 @@ import { execa } from 'execa';
11
11
  import { loadConfig } from '../core/config.js';
12
12
  import { loadFeatureConfig, listWorkspaces } from '../core/workspace.js';
13
13
  import { getWorkspaceRepos, getRepoStatus } from '../utils/multi-git.js';
14
- const COMMANDS = ['sync', 'doctor', 'refresh', 'status', 'start', 'stop', 'logs', 'list', 'create', 'open', 'pack', 'remove', 'add-repo', 'help'];
14
+ const COMMANDS = ['sync', 'doctor', 'refresh', 'status', 'start', 'stop', 'logs', 'list', 'create', 'open', 'remove', 'add-repo', 'help'];
15
15
  export async function tuiCommand(options) {
16
16
  // Resolve active workspace
17
17
  let workspacePath = options.workspace ? path.resolve(options.workspace) : '';
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/commands/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/commands/tui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAuC,MAAM,uBAAuB,CAAC;AAE9G,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAe1I,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA+B;IAC9D,2BAA2B;IAC3B,IAAI,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,IAAI,UAAU,GAAG,SAAS,CAAC;IAE3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1D,IAAI,UAAU,EAAE,CAAC;YACf,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;YACzC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;gBAChG,OAAO;YACT,CAAC;YACD,4CAA4C;YAC5C,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5C,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACxC,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,KAAK,GAAoB,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iEAAiE,aAAa,IAAI,CAAC,CAAC,CAAC;QAC3G,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,MAAM,KAAK,GAAa;QACtB,aAAa;QACb,UAAU;QACV,KAAK;QACL,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE;YACX,+DAA+D;YAC/D,iCAAiC;YACjC,0BAA0B,aAAa,EAAE;YACzC,4EAA4E;SAC7E;QACD,SAAS,EAAE,KAAK;QAChB,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,CAAC;QACd,oBAAoB,EAAE,KAAK;QAC3B,qBAAqB,EAAE,CAAC;KACzB,CAAC;IAEF,6BAA6B;IAC7B,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;QAC1B,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,qCAAqC;IACrC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEF,wBAAwB;IACxB,MAAM,eAAe,EAAE,CAAC;IAExB,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,oCAAoC;IACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAG,cAAc;IAEnD,0CAA0C;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,uBAAuB;IACvB,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QAEvC,sBAAsB;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE/B,2BAA2B;QAC3B,MAAM,WAAW,GAAG,sCAAsC,KAAK,CAAC,UAAU,IAAI,CAAC;QAC/E,MAAM,UAAU,GAAG,8BAA8B,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;YAC/B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACvD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/B,IAAI,CACL,CAAC;QAEF,0BAA0B;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gDAAgD;QAEvG,4BAA4B;QAC5B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACjE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,eAAe,GAAG,MAAM,EAAE,UAAU;gBACxC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,kBAAkB,CAAC;gBAChE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;YAEpE,qBAAqB;YACrB,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;gBACvB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,SAAS,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,6BAA6B;QAC7B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;QAC/E,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,0BAA0B,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnG,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,mCAAmC,CAAC,CAAC;QAC9F,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;QACpF,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,4BAA4B,CAAC,CAAC;QAC9F,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC7D,UAAU,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,CAAC;QAC1F,UAAU,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,wCAAwC,CAAC,CAAC;QAC/F,UAAU,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,CAAC;QACvF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE7G,0BAA0B;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEtC,MAAM,UAAU,GAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9F,MAAM,WAAW,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAElG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC;QAC1E,CAAC;QAED,4BAA4B;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CACpF,CAAC;QAEF,oBAAoB;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,GAAG,IAAI,CAAC,CAAC;QAEpF,0CAA0C;QAC1C,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;QAE5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,iBAAiB;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAE1D,sBAAsB;QACtB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,eAAe;YACf,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAExD,8BAA8B;YAC9B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,qBAAqB,GAAG,CAAC,KAAK,CAAC,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YAChG,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;oBACpE,IAAI,GAAG,KAAK,KAAK,CAAC,qBAAqB;wBAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;oBAC3G,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,gBAAgB,GAAG,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;YAE9C,mBAAmB;YACnB,MAAM,UAAU,GAAG,gBAAgB,KAAK,CAAC,UAAU,EAAE,CAAC;YACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC;QAChJ,CAAC;aAAM,CAAC;YACN,gCAAgC;YAChC,MAAM,QAAQ,GAAG,gEAAgE,CAAC;YAClF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC,CAAC;IAEF,kEAAkE;IAClE,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,6EAA6E,EAAE,EAAE,CAAC,CAAC;IAElI,sBAAsB;IACtB,IAAI,EAAE,CAAC;IAEP,kBAAkB;IAClB,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAE3C,sBAAsB;IACtB,IAAI,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,MAAM,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACpD,IAAI,EAAE,CAAC;QACT,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,eAAe;IACf,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAG,cAAc;QACnD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IAEF,0BAA0B;IAC1B,MAAM,eAAe,GAAG,KAAK,EAAE,GAAQ,EAAE,GAAQ,EAAE,EAAE;QACnD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,yCAAyC;YACzC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC9D,CAAC;gBAED,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBACxB,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;gBACtB,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAEhC,IAAI,GAAG,EAAE,CAAC;oBACR,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;oBAClC,GAAG,CAAC,sBAAsB,GAAG,KAAK,CAAC,CAAC;oBACpC,IAAI,EAAE,CAAC;oBAEP,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wBACtE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAE5B,uCAAuC;wBACvC,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;wBAC3F,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAC7C,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,CAC3E,CAAC;wBAEF,IAAI,aAAa,EAAE,CAAC;4BAClB,0CAA0C;4BAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;4BAC/C,OAAO,EAAE,CAAC;4BAEV,oDAAoD;4BACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,GAAG,QAAQ,CAAC,CAAC,CAAC;4BAExF,IAAI,CAAC;gCACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;oCACrC,GAAG,EAAE,aAAa;oCAClB,KAAK,EAAE,SAAS;oCAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;iCACpC,CAAC,CAAC;4BACL,CAAC;4BAAC,OAAO,GAAQ,EAAE,CAAC;gCAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BACjE,CAAC;4BAED,uEAAuE;4BACvE,IAAI,eAAe,GAAG,IAAI,CAAC;4BAC3B,IAAI,CAAC;gCACH,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;4BACjC,CAAC;4BAAC,MAAM,CAAC;gCACP,eAAe,GAAG,KAAK,CAAC;4BAC1B,CAAC;4BAED,IAAI,CAAC,eAAe,EAAE,CAAC;gCACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC,CAAC;gCAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAClB,CAAC;4BAED,0BAA0B;4BAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,oCAAoC;4BACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAG,cAAc;4BACnD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gCACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BACjC,CAAC;4BACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;4BAC3C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;4BAE9C,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gCACpC,MAAM,eAAe,EAAE,CAAC;gCACxB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;oCACpD,IAAI,EAAE,CAAC;gCACT,CAAC;4BACH,CAAC,EAAE,IAAI,CAAC,CAAC;4BAET,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC;4BACnC,MAAM,eAAe,EAAE,CAAC;4BACxB,IAAI,EAAE,CAAC;wBACT,CAAC;6BAAM,CAAC;4BACN,mCAAmC;4BACnC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;4BAE1F,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;4BACnE,CAAC;4BACD,IAAI,MAAM,EAAE,CAAC;gCACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC9E,CAAC;4BACD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;wBACxD,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAClB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACrD,CAAC;4BAAS,CAAC;wBACT,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC;wBACnC,MAAM,eAAe,EAAE,CAAC;wBACxB,IAAI,EAAE,CAAC;oBACT,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBACxB,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;gBACtB,IAAI,EAAE,CAAC;YACT,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBACvE,KAAK,CAAC,UAAU,GAAG,QAAQ,GAAG,GAAG,CAAC;oBAClC,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC;oBAChC,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvD,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,KAAK,CAAC,qBAAqB,GAAG,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;oBACjF,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACpD,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBACxD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,KAAK,CAAC,qBAAqB,GAAG,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;oBAClG,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjD,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAChC,IAAI,EAAE,CAAC;YACT,CAAC;iBAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC7D,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;gBACxB,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAChC,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACrB,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;iBAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvB,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACvB,IAAI,EAAE,CAAC;YACT,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC5B,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBAClC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBAC3C,IAAI,EAAE,CAAC;gBAEP,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;oBACjF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBACrD,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAClD,CAAC;wBAAS,CAAC;oBACT,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC;oBACnC,MAAM,eAAe,EAAE,CAAC;oBACxB,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC5B,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBAClC,GAAG,CAAC,kCAAkC,CAAC,CAAC;gBACxC,IAAI,EAAE,CAAC;gBAEP,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;oBACnF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACzD,CAAC;wBAAS,CAAC;oBACT,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC;oBACnC,MAAM,eAAe,EAAE,CAAC;oBACxB,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC5B,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBAClC,GAAG,CAAC,2CAA2C,CAAC,CAAC;gBACjD,IAAI,EAAE,CAAC;gBAEP,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;oBACpF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBACxD,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACrD,CAAC;wBAAS,CAAC;oBACT,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC;oBACnC,MAAM,eAAe,EAAE,CAAC;oBACxB,IAAI,EAAE,CAAC;gBACT,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAChD,CAAC"}
@@ -11,5 +11,6 @@ export declare function uiCommand(options: {
11
11
  port?: string;
12
12
  daemon?: boolean;
13
13
  serverOnly?: boolean;
14
+ strictPort?: boolean;
14
15
  }): Promise<void>;
15
16
  //# sourceMappingURL=ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuCH;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DjH"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuCH;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgEvI"}
@@ -60,7 +60,10 @@ export async function uiCommand(options) {
60
60
  console.log(chalk.dim(' Starting server in the background...'));
61
61
  try {
62
62
  const serverScript = fileURLToPath(new URL('../index.js', import.meta.url));
63
- const child = spawn(process.execPath, [serverScript, 'ui', '--port', String(port), '--server-only'], {
63
+ const daemonArgs = [serverScript, 'ui', '--port', String(port), '--server-only'];
64
+ if (options.strictPort)
65
+ daemonArgs.push('--strict-port');
66
+ const child = spawn(process.execPath, daemonArgs, {
64
67
  detached: true,
65
68
  stdio: 'ignore'
66
69
  });
@@ -83,7 +86,7 @@ export async function uiCommand(options) {
83
86
  // Standard foreground blocking mode
84
87
  console.log(chalk.dim(' Starting local server...'));
85
88
  try {
86
- const { port: actualPort } = await startServer(port);
89
+ const { port: actualPort } = await startServer(port, { strictPort: options.strictPort });
87
90
  const actualUrl = `http://localhost:${actualPort}`;
88
91
  console.log(chalk.green(` ✔ Dashboard running at: ${chalk.bold(actualUrl)}`));
89
92
  console.log(chalk.dim(' Press Ctrl+C to stop.\n'));
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/commands/ui.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
1
  import type { StoragePort, StorageAdapterMeta } from '../ports/storage.js';
2
2
  export declare class LocalStorageAdapter implements StoragePort {
3
3
  readonly meta: StorageAdapterMeta;
4
+ /**
5
+ * Per-repo base files live in their own directory so they never collide with
6
+ * the workspace-level files (which share filenames like `nexusflow-knowledge.md`)
7
+ * or with each other across repos. Workspace files stay at the workspace root
8
+ * where the generated CLAUDE.md/WORKSPACE.md expect them.
9
+ */
10
+ private baseFilePath;
4
11
  writeWorkspaceFile(workspacePath: string, featureId: string, filename: string, content: string): Promise<void>;
5
12
  readWorkspaceFile(workspacePath: string, featureId: string, filename: string): Promise<string>;
6
13
  workspaceFileExists(workspacePath: string, featureId: string, filename: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/local-storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,qBAAa,mBAAoB,YAAW,WAAW;IACrD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAK/B;IAEI,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9G,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9F,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvG,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrF,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxF,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUjG,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI/E,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/E"}
1
+ {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/local-storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,qBAAa,mBAAoB,YAAW,WAAW;IACrD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAK/B;IAEF;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAId,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9G,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9F,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvG,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrF,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxG,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxF,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUjG,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI/E,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/E"}
@@ -7,6 +7,15 @@ export class LocalStorageAdapter {
7
7
  description: 'Write context files directly into the workspace directory.',
8
8
  configFields: [],
9
9
  };
10
+ /**
11
+ * Per-repo base files live in their own directory so they never collide with
12
+ * the workspace-level files (which share filenames like `nexusflow-knowledge.md`)
13
+ * or with each other across repos. Workspace files stay at the workspace root
14
+ * where the generated CLAUDE.md/WORKSPACE.md expect them.
15
+ */
16
+ baseFilePath(workspacePath, repoName, filename) {
17
+ return path.join(workspacePath, '.nexusflow', 'base', repoName, filename);
18
+ }
10
19
  async writeWorkspaceFile(workspacePath, featureId, filename, content) {
11
20
  const filePath = path.join(workspacePath, filename);
12
21
  await fs.mkdir(path.dirname(filePath), { recursive: true });
@@ -30,16 +39,16 @@ export class LocalStorageAdapter {
30
39
  return path.join(workspacePath, filename).replace(/\\/g, '/');
31
40
  }
32
41
  async writeBaseFile(workspacePath, repoName, filename, content) {
33
- const filePath = path.join(workspacePath, filename);
42
+ const filePath = this.baseFilePath(workspacePath, repoName, filename);
34
43
  await fs.mkdir(path.dirname(filePath), { recursive: true });
35
44
  await fs.writeFile(filePath, content, 'utf8');
36
45
  }
37
46
  async readBaseFile(workspacePath, repoName, filename) {
38
- const filePath = path.join(workspacePath, filename);
47
+ const filePath = this.baseFilePath(workspacePath, repoName, filename);
39
48
  return await fs.readFile(filePath, 'utf8');
40
49
  }
41
50
  async baseFileExists(workspacePath, repoName, filename) {
42
- const filePath = path.join(workspacePath, filename);
51
+ const filePath = this.baseFilePath(workspacePath, repoName, filename);
43
52
  try {
44
53
  await fs.access(filePath);
45
54
  return true;
@@ -49,7 +58,7 @@ export class LocalStorageAdapter {
49
58
  }
50
59
  }
51
60
  resolveBaseFileUrl(workspacePath, repoName, filename) {
52
- return path.join(workspacePath, filename).replace(/\\/g, '/');
61
+ return this.baseFilePath(workspacePath, repoName, filename).replace(/\\/g, '/');
53
62
  }
54
63
  async deleteWorkspace(workspacePath, featureId) {
55
64
  // NOP - local files are inside workspacePath, which is deleted directly on workspace removal.
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/core/adapters/local-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/core/adapters/local-storage.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,24 @@ describe('Storage Adapters', () => {
39
39
  await adapter.deleteWorkspace('/ws/path', 'feature-1');
40
40
  expect(fs.rm).not.toHaveBeenCalled();
41
41
  });
42
+ it('should write base files into a per-repo base directory', async () => {
43
+ vi.mocked(fs.mkdir).mockResolvedValue(undefined);
44
+ vi.mocked(fs.writeFile).mockResolvedValue(undefined);
45
+ await adapter.writeBaseFile('/ws/path', 'RepoName', 'nexusflow-knowledge.md', 'base');
46
+ expect(fs.writeFile).toHaveBeenCalledWith(path.normalize('/ws/path/.nexusflow/base/RepoName/nexusflow-knowledge.md'), 'base', 'utf8');
47
+ });
48
+ it('should not collide base and workspace files that share a filename (A1.2)', () => {
49
+ const wsUrl = adapter.resolveWorkspaceFileUrl('/ws/path', 'feature-1', 'nexusflow-knowledge.md');
50
+ const baseUrl = adapter.resolveBaseFileUrl('/ws/path', 'RepoName', 'nexusflow-knowledge.md');
51
+ expect(wsUrl).not.toBe(baseUrl);
52
+ expect(wsUrl).toContain('/ws/path/nexusflow-knowledge.md');
53
+ expect(baseUrl).toContain('/ws/path/.nexusflow/base/RepoName/nexusflow-knowledge.md');
54
+ });
55
+ it('should isolate per-repo base files from each other', () => {
56
+ const a = adapter.resolveBaseFileUrl('/ws/path', 'RepoA', 'nexusflow-knowledge.md');
57
+ const b = adapter.resolveBaseFileUrl('/ws/path', 'RepoB', 'nexusflow-knowledge.md');
58
+ expect(a).not.toBe(b);
59
+ });
42
60
  });
43
61
  describe('CentralVaultAdapter', () => {
44
62
  const adapter = new CentralVaultAdapter();
@@ -1 +1 @@
1
- {"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../../src/core/adapters/storage.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../../src/core/adapters/storage.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC5B,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;IAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAA2B,SAAS,CAAC,CAAC;IAC1E,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;KAC/C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAE1C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAE/E,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChH,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,EACnC,OAAO,EACP,MAAM,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YACtF,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAEtF,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,SAAS,CAAC,0DAA0D,CAAC,EAC1E,MAAM,EACN,MAAM,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;YAClF,MAAM,KAAK,GAAG,OAAO,CAAC,uBAAuB,CAAC,UAAU,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;YACjG,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;YAC7F,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;YACpF,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;YACpF,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAE1C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAE/E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC,EAC9E,OAAO,EACP,MAAM,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEzE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC,EACjF,SAAS,EACT,MAAM,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAChC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,EACrE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CACjC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC7C,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAE3D,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAE/E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,SAAS,CAAC,gEAAgE,CAAC,EAChF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,MAAM,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC7C,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjF,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAE/E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,MAAM,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,EAC3D,MAAM,CACP,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,EAC/C,MAAM,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;YACtF,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC7C,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;YAElF,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAErD,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAE/E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,OAAO,EACP,MAAM,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,MAAM,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAC7C,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAC3D,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAE9C,MAAM,OAAO,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAEvD,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAChC,IAAI,CAAC,SAAS,CAAC,uDAAuD,CAAC,EACvE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CACjC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/core/refresh.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oDAAoD;IACpD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAoDxB"}
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/core/refresh.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oDAAoD;IACpD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAgDxB"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import * as fs from 'node:fs/promises';
9
9
  import * as path from 'node:path';
10
- import { loadFeatureConfig } from './workspace.js';
10
+ import { loadFeatureConfig, resolveRepoInfos } from './workspace.js';
11
11
  import { analyzeAllReposCached } from '../analyzers/index.js';
12
12
  import { generateContextFiles } from '../generators/index.js';
13
13
  /**
@@ -27,11 +27,7 @@ export async function refreshWorkspace(workspacePath, options = {}) {
27
27
  if (!feature) {
28
28
  throw new Error(`Failed to load workspace configuration. Ensure nexusflow.json exists at ${workspacePath}.`);
29
29
  }
30
- const allRepos = feature.repos.map((r) => ({
31
- name: path.basename(r),
32
- path: r,
33
- defaultBranch: 'main',
34
- }));
30
+ const allRepos = await resolveRepoInfos(feature.repos);
35
31
  const { analysis, analyzed, reused } = await analyzeAllReposCached(allRepos, workspacePath, { force: options.force });
36
32
  const ctx = { feature, repos: allRepos, analysis };
37
33
  await generateContextFiles(ctx, feature.assistants, workspacePath, options.onlyRepo, options.baseOnly, options.force ? undefined : analyzed);
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../src/core/refresh.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAyB9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAqB,EACrB,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,2EAA2E,aAAa,GAAG,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtB,IAAI,EAAE,CAAC;QACP,aAAa,EAAE,MAAM;KACtB,CAAC,CAAC,CAAC;IAEJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,qBAAqB,CAChE,QAAQ,EACR,aAAa,EACb,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CACzB,CAAC;IAEF,MAAM,GAAG,GAAqB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAErE,MAAM,oBAAoB,CACxB,GAAG,EACH,OAAO,CAAC,UAAU,EAClB,aAAa,EACb,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CACrC,CAAC;IAEF,oEAAoE;IACpE,oEAAoE;IACpE,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAClE,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;YACpC,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa;QACb,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,MAAM;QACnB,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../src/core/refresh.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAyB9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAqB,EACrB,UAA0B,EAAE;IAE5B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,2EAA2E,aAAa,GAAG,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEvD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,qBAAqB,CAChE,QAAQ,EACR,aAAa,EACb,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CACzB,CAAC;IAEF,MAAM,GAAG,GAAqB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAErE,MAAM,oBAAoB,CACxB,GAAG,EACH,OAAO,CAAC,UAAU,EAClB,aAAa,EACb,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CACrC,CAAC;IAEF,oEAAoE;IACpE,oEAAoE;IACpE,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAClE,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;YACpC,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa;QACb,aAAa,EAAE,QAAQ;QACvB,WAAW,EAAE,MAAM;QACnB,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/core/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,wCAAwC;AACxC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,CAW5D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAezD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAQxE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAMxD;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBxB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjE;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAO9B;AAED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CA2CrE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,GAAG,MAAM,IAAI,CA8BlB"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/core/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAkBH,wCAAwC;AACxC,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9C,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAuGD;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,CAW5D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAezD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAQxE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAMxD;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,YAAY,CAAC,CAexB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjE;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAO9B;AAED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CA2DrE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,GAAG,MAAM,IAAI,CA8BlB"}
@@ -16,12 +16,109 @@ import { syncWorkspace } from './sync.js';
16
16
  import { refreshWorkspace } from './refresh.js';
17
17
  /** Name of the schedules file inside ~/.nexusflow. */
18
18
  const SCHEDULES_FILE = 'schedules.json';
19
+ const SCHEDULES_LOCK_FILE = `${SCHEDULES_FILE}.lock`;
20
+ const RUN_LOCK_DIR = 'schedule-runs';
21
+ const STORE_LOCK_TIMEOUT_MS = 10_000;
22
+ const STORE_LOCK_STALE_MS = 2 * 60_000;
23
+ const RUN_LOCK_STALE_MS = 24 * 60 * 60_000;
24
+ const LOCK_RETRY_MS = 50;
25
+ let scheduleStoreMutationQueue = Promise.resolve();
19
26
  /**
20
27
  * Returns the path to the schedules file (~/.nexusflow/schedules.json).
21
28
  */
22
29
  export function getSchedulesPath() {
23
30
  return path.join(getConfigDir(), SCHEDULES_FILE);
24
31
  }
32
+ function getSchedulesLockPath() {
33
+ return path.join(getConfigDir(), SCHEDULES_LOCK_FILE);
34
+ }
35
+ function getRunLockPath(jobId) {
36
+ const safeId = jobId.replace(/[^a-zA-Z0-9._-]/g, '_');
37
+ return path.join(getConfigDir(), RUN_LOCK_DIR, `${safeId}.lock`);
38
+ }
39
+ function getErrorCode(error) {
40
+ return typeof error === 'object' && error !== null && 'code' in error
41
+ ? String(error.code)
42
+ : undefined;
43
+ }
44
+ function delay(ms) {
45
+ return new Promise((resolve) => setTimeout(resolve, ms));
46
+ }
47
+ async function clearStaleLock(lockPath, staleMs) {
48
+ try {
49
+ const stat = await fs.stat(lockPath);
50
+ if (Date.now() - stat.mtimeMs <= staleMs)
51
+ return false;
52
+ await fs.unlink(lockPath);
53
+ return true;
54
+ }
55
+ catch (error) {
56
+ return getErrorCode(error) === 'ENOENT';
57
+ }
58
+ }
59
+ async function acquireLock(lockPath, options) {
60
+ await fs.mkdir(path.dirname(lockPath), { recursive: true });
61
+ const startedAt = Date.now();
62
+ for (;;) {
63
+ try {
64
+ const handle = await fs.open(lockPath, 'wx');
65
+ try {
66
+ await handle.writeFile(JSON.stringify({
67
+ pid: process.pid,
68
+ createdAt: new Date().toISOString(),
69
+ }) + '\n', 'utf-8');
70
+ }
71
+ catch (error) {
72
+ await handle.close().catch(() => { });
73
+ await fs.unlink(lockPath).catch(() => { });
74
+ throw error;
75
+ }
76
+ let released = false;
77
+ return async () => {
78
+ if (released)
79
+ return;
80
+ released = true;
81
+ await handle.close().catch(() => { });
82
+ await fs.unlink(lockPath).catch(() => { });
83
+ };
84
+ }
85
+ catch (error) {
86
+ if (getErrorCode(error) !== 'EEXIST')
87
+ throw error;
88
+ if (await clearStaleLock(lockPath, options.staleMs))
89
+ continue;
90
+ if (Date.now() - startedAt >= options.timeoutMs) {
91
+ throw new Error(options.timeoutMessage);
92
+ }
93
+ await delay(LOCK_RETRY_MS);
94
+ }
95
+ }
96
+ }
97
+ function enqueueScheduleStoreMutation(operation) {
98
+ const run = scheduleStoreMutationQueue.then(operation, operation);
99
+ scheduleStoreMutationQueue = run.then(() => undefined, () => undefined);
100
+ return run;
101
+ }
102
+ async function mutateSchedules(mutator) {
103
+ return enqueueScheduleStoreMutation(async () => {
104
+ const release = await acquireLock(getSchedulesLockPath(), {
105
+ staleMs: STORE_LOCK_STALE_MS,
106
+ timeoutMs: STORE_LOCK_TIMEOUT_MS,
107
+ timeoutMessage: 'Timed out waiting for schedules.json to become writable.',
108
+ });
109
+ try {
110
+ const store = await loadSchedules();
111
+ const result = await mutator(store);
112
+ if (result.save) {
113
+ await saveSchedules(store);
114
+ }
115
+ return result.value;
116
+ }
117
+ finally {
118
+ await release();
119
+ }
120
+ });
121
+ }
25
122
  /**
26
123
  * Loads all schedules, returning an empty store when the file does not exist
27
124
  * or cannot be parsed.
@@ -112,44 +209,43 @@ export function nextDueAt(job) {
112
209
  * @returns The created job.
113
210
  */
114
211
  export async function addSchedule(input) {
115
- const store = await loadSchedules();
116
- const workspaceName = path.basename(input.workspacePath);
117
- const job = {
118
- id: `${input.task}-${workspaceName}-${Date.now().toString(36)}`,
119
- workspacePath: input.workspacePath,
120
- task: input.task,
121
- intervalMinutes: input.intervalMinutes,
122
- enabled: true,
123
- createdAt: new Date().toISOString(),
124
- };
125
- store.jobs.push(job);
126
- await saveSchedules(store);
127
- return job;
212
+ return mutateSchedules((store) => {
213
+ const workspaceName = path.basename(input.workspacePath);
214
+ const job = {
215
+ id: `${input.task}-${workspaceName}-${Date.now().toString(36)}`,
216
+ workspacePath: input.workspacePath,
217
+ task: input.task,
218
+ intervalMinutes: input.intervalMinutes,
219
+ enabled: true,
220
+ createdAt: new Date().toISOString(),
221
+ };
222
+ store.jobs.push(job);
223
+ return { value: job, save: true };
224
+ });
128
225
  }
129
226
  /**
130
227
  * Removes a schedule by id. Returns false when no job matched.
131
228
  */
132
229
  export async function removeSchedule(id) {
133
- const store = await loadSchedules();
134
- const before = store.jobs.length;
135
- store.jobs = store.jobs.filter((j) => j.id !== id);
136
- if (store.jobs.length === before)
137
- return false;
138
- await saveSchedules(store);
139
- return true;
230
+ return mutateSchedules((store) => {
231
+ const before = store.jobs.length;
232
+ store.jobs = store.jobs.filter((j) => j.id !== id);
233
+ const removed = store.jobs.length !== before;
234
+ return { value: removed, save: removed };
235
+ });
140
236
  }
141
237
  /**
142
238
  * Enables or disables a schedule by id. Returns the updated job, or null
143
239
  * when no job matched.
144
240
  */
145
241
  export async function setScheduleEnabled(id, enabled) {
146
- const store = await loadSchedules();
147
- const job = store.jobs.find((j) => j.id === id);
148
- if (!job)
149
- return null;
150
- job.enabled = enabled;
151
- await saveSchedules(store);
152
- return job;
242
+ return mutateSchedules((store) => {
243
+ const job = store.jobs.find((j) => j.id === id);
244
+ if (!job)
245
+ return { value: null, save: false };
246
+ job.enabled = enabled;
247
+ return { value: job, save: true };
248
+ });
153
249
  }
154
250
  /**
155
251
  * Runs a single job immediately and records the outcome in the store.
@@ -159,6 +255,20 @@ export async function setScheduleEnabled(id, enabled) {
159
255
  * @returns The classified outcome with a summary message.
160
256
  */
161
257
  export async function runJob(job) {
258
+ let releaseRunLock = null;
259
+ try {
260
+ releaseRunLock = await acquireLock(getRunLockPath(job.id), {
261
+ staleMs: RUN_LOCK_STALE_MS,
262
+ timeoutMs: 0,
263
+ timeoutMessage: `Schedule ${job.id} is already running.`,
264
+ });
265
+ }
266
+ catch (error) {
267
+ return {
268
+ status: 'error',
269
+ message: error instanceof Error ? error.message : String(error),
270
+ };
271
+ }
162
272
  let result;
163
273
  try {
164
274
  if (job.task === 'sync') {
@@ -190,18 +300,22 @@ export async function runJob(job) {
190
300
  }
191
301
  // Record the run. Re-load the store so concurrent CLI edits are not lost.
192
302
  try {
193
- const store = await loadSchedules();
194
- const stored = store.jobs.find((j) => j.id === job.id);
195
- if (stored) {
303
+ await mutateSchedules((store) => {
304
+ const stored = store.jobs.find((j) => j.id === job.id);
305
+ if (!stored)
306
+ return { value: undefined, save: false };
196
307
  stored.lastRunAt = new Date().toISOString();
197
308
  stored.lastStatus = result.status;
198
309
  stored.lastMessage = result.message;
199
- await saveSchedules(store);
200
- }
310
+ return { value: undefined, save: true };
311
+ });
201
312
  }
202
313
  catch {
203
314
  // Best-effort bookkeeping; the job itself already ran.
204
315
  }
316
+ finally {
317
+ await releaseRunLock();
318
+ }
205
319
  return result;
206
320
  }
207
321
  /**