@mc1global/opencode-jarvis 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/QUICK-GUIDE.md +42 -28
  2. package/README.md +288 -165
  3. package/dist/application/azure-sync/push-use-cases.d.ts +6 -1
  4. package/dist/application/azure-sync/push-use-cases.d.ts.map +1 -1
  5. package/dist/application/azure-sync/push-use-cases.js +31 -5
  6. package/dist/application/azure-sync/push-use-cases.js.map +1 -1
  7. package/dist/application/config/config-write-service.d.ts +86 -0
  8. package/dist/application/config/config-write-service.d.ts.map +1 -0
  9. package/dist/application/config/config-write-service.js +237 -0
  10. package/dist/application/config/config-write-service.js.map +1 -0
  11. package/dist/application/config/index.d.ts +2 -0
  12. package/dist/application/config/index.d.ts.map +1 -1
  13. package/dist/application/config/index.js +1 -0
  14. package/dist/application/config/index.js.map +1 -1
  15. package/dist/application/context-memory/execution-journal-use-cases.d.ts +69 -0
  16. package/dist/application/context-memory/execution-journal-use-cases.d.ts.map +1 -0
  17. package/dist/application/context-memory/execution-journal-use-cases.js +89 -0
  18. package/dist/application/context-memory/execution-journal-use-cases.js.map +1 -0
  19. package/dist/cli/config-wizard.d.ts +14 -0
  20. package/dist/cli/config-wizard.d.ts.map +1 -0
  21. package/dist/cli/config-wizard.js +120 -0
  22. package/dist/cli/config-wizard.js.map +1 -0
  23. package/dist/cli/section-editors.d.ts +33 -0
  24. package/dist/cli/section-editors.d.ts.map +1 -0
  25. package/dist/cli/section-editors.js +286 -0
  26. package/dist/cli/section-editors.js.map +1 -0
  27. package/dist/cli/wizard-prompts.d.ts +76 -0
  28. package/dist/cli/wizard-prompts.d.ts.map +1 -0
  29. package/dist/cli/wizard-prompts.js +98 -0
  30. package/dist/cli/wizard-prompts.js.map +1 -0
  31. package/dist/domain/azure-sync/value-objects.d.ts +10 -0
  32. package/dist/domain/azure-sync/value-objects.d.ts.map +1 -1
  33. package/dist/domain/azure-sync/value-objects.js +24 -0
  34. package/dist/domain/azure-sync/value-objects.js.map +1 -1
  35. package/dist/domain/config/index.d.ts +1 -1
  36. package/dist/domain/config/index.d.ts.map +1 -1
  37. package/dist/domain/config/repositories.d.ts +26 -6
  38. package/dist/domain/config/repositories.d.ts.map +1 -1
  39. package/dist/domain/config/repositories.js +6 -6
  40. package/dist/domain/context-memory/entities.d.ts +50 -2
  41. package/dist/domain/context-memory/entities.d.ts.map +1 -1
  42. package/dist/domain/context-memory/entities.js +92 -2
  43. package/dist/domain/context-memory/entities.js.map +1 -1
  44. package/dist/domain/context-memory/repositories.d.ts +15 -2
  45. package/dist/domain/context-memory/repositories.d.ts.map +1 -1
  46. package/dist/domain/context-memory/value-objects.d.ts +18 -1
  47. package/dist/domain/context-memory/value-objects.d.ts.map +1 -1
  48. package/dist/domain/context-memory/value-objects.js +39 -1
  49. package/dist/domain/context-memory/value-objects.js.map +1 -1
  50. package/dist/hooks/config-command.d.ts +37 -0
  51. package/dist/hooks/config-command.d.ts.map +1 -0
  52. package/dist/hooks/config-command.js +68 -0
  53. package/dist/hooks/config-command.js.map +1 -0
  54. package/dist/hooks/execution-journal.d.ts +40 -0
  55. package/dist/hooks/execution-journal.d.ts.map +1 -0
  56. package/dist/hooks/execution-journal.js +102 -0
  57. package/dist/hooks/execution-journal.js.map +1 -0
  58. package/dist/hooks/first-run-guide.d.ts +2 -0
  59. package/dist/hooks/first-run-guide.d.ts.map +1 -1
  60. package/dist/hooks/first-run-guide.js +44 -2
  61. package/dist/hooks/first-run-guide.js.map +1 -1
  62. package/dist/hooks/slash-commands.d.ts +36 -0
  63. package/dist/hooks/slash-commands.d.ts.map +1 -0
  64. package/dist/hooks/slash-commands.js +121 -0
  65. package/dist/hooks/slash-commands.js.map +1 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +71 -3
  68. package/dist/index.js.map +1 -1
  69. package/dist/infrastructure/azure-sync/azure-devops-client.d.ts.map +1 -1
  70. package/dist/infrastructure/azure-sync/azure-devops-client.js +9 -10
  71. package/dist/infrastructure/azure-sync/azure-devops-client.js.map +1 -1
  72. package/dist/infrastructure/config/index.d.ts +1 -0
  73. package/dist/infrastructure/config/index.d.ts.map +1 -1
  74. package/dist/infrastructure/config/index.js +1 -0
  75. package/dist/infrastructure/config/index.js.map +1 -1
  76. package/dist/infrastructure/config/yaml-config-writer.d.ts +16 -0
  77. package/dist/infrastructure/config/yaml-config-writer.d.ts.map +1 -0
  78. package/dist/infrastructure/config/yaml-config-writer.js +49 -0
  79. package/dist/infrastructure/config/yaml-config-writer.js.map +1 -0
  80. package/dist/infrastructure/context-memory/execution-journal-repository.d.ts +26 -0
  81. package/dist/infrastructure/context-memory/execution-journal-repository.d.ts.map +1 -0
  82. package/dist/infrastructure/context-memory/execution-journal-repository.js +110 -0
  83. package/dist/infrastructure/context-memory/execution-journal-repository.js.map +1 -0
  84. package/dist/tools/config-tools.d.ts +12 -0
  85. package/dist/tools/config-tools.d.ts.map +1 -0
  86. package/dist/tools/config-tools.js +136 -0
  87. package/dist/tools/config-tools.js.map +1 -0
  88. package/package.json +5 -2
  89. package/scripts/setup/setup-linux.sh +124 -0
  90. package/scripts/setup/setup-macos.sh +137 -0
  91. package/scripts/setup/setup-wsl.sh +175 -0
@@ -85,15 +85,18 @@ export class AzureSyncUseCases {
85
85
  const pushed = [];
86
86
  const skipped = [];
87
87
  const errors = [];
88
+ // Push order: sprints first (creates iterations), then epics (parent WIs),
89
+ // then cards last (may reference iteration paths and epic parents).
90
+ // This ensures iteration paths exist before cards reference them (CD-022).
91
+ if (req.entityType === "sprint" || req.entityType === "all") {
92
+ await this.pushSprints(req, template, pushed, skipped, errors);
93
+ }
88
94
  if (req.entityType === "epic" || req.entityType === "all") {
89
95
  await this.pushEpics(req, template, pushed, skipped, errors);
90
96
  }
91
97
  if (req.entityType === "card" || req.entityType === "all") {
92
98
  await this.pushCards(req, template, pushed, skipped, errors);
93
99
  }
94
- if (req.entityType === "sprint" || req.entityType === "all") {
95
- await this.pushSprints(req, template, pushed, skipped, errors);
96
- }
97
100
  const summary = `Pushed ${pushed.length}, skipped ${skipped.length}, errors ${errors.length}`;
98
101
  return ok({ pushed, skipped, errors, summary });
99
102
  }
@@ -267,7 +270,12 @@ export class AzureSyncUseCases {
267
270
  }
268
271
  }
269
272
  }
270
- /** Build a map of local sprint ID -> Azure iteration path. */
273
+ /**
274
+ * Build a map of local sprint ID -> Azure iteration path.
275
+ * Validates against actually existing iterations in Azure DevOps so that
276
+ * cards whose sprint failed to push are not assigned a non-existent path.
277
+ * This prevents Azure API errors from invalid iteration references (CD-022).
278
+ */
271
279
  async buildIterationPathMap(req) {
272
280
  const map = new Map();
273
281
  const sprintsResult = await this.deps.sprintUseCases.listSprints({
@@ -275,9 +283,27 @@ export class AzureSyncUseCases {
275
283
  });
276
284
  if (!sprintsResult.success)
277
285
  return map;
286
+ // Fetch actual iterations from Azure to validate paths
287
+ const iterResult = await this.deps.azureClient.listIterations(req.org, req.project);
288
+ const existingPaths = new Set();
289
+ if (iterResult.success) {
290
+ for (const iter of iterResult.data) {
291
+ existingPaths.add(iter.path);
292
+ // Also add by name (Azure returns path like "\Project\Name")
293
+ existingPaths.add(iter.name);
294
+ }
295
+ }
278
296
  for (const sprint of sprintsResult.data) {
279
297
  const sanitizedName = sanitizeIterationName(sprint.name);
280
- map.set(sprint.id, `${req.project}\\${sanitizedName}`);
298
+ const candidatePath = `${req.project}\\${sanitizedName}`;
299
+ // Only include path if the iteration actually exists in Azure
300
+ // (match by full path or by sanitized name in existing paths)
301
+ const pathExists = existingPaths.has(candidatePath)
302
+ || existingPaths.has(`\\${candidatePath}`)
303
+ || existingPaths.has(sanitizedName);
304
+ if (pathExists) {
305
+ map.set(sprint.id, candidatePath);
306
+ }
281
307
  }
282
308
  return map;
283
309
  }
@@ -1 +1 @@
1
- {"version":3,"file":"push-use-cases.js","sourceRoot":"","sources":["../../../src/application/azure-sync/push-use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAEhG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAsB5D,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAKC;IAJZ,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAChC,YAAY,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,QAAQ,CAAmB;IAE5C,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE,wEAAwE;IACxE,KAAK,CAAC,QAAQ,CAAC,GAAoB;QACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAC3D,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,CACZ,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE,OAAO,UAAU,CAAC;QAE3C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAC7C,IAAI,CAAC,eAAe,EACpB,MAAM,CACP,CAAC;QAEF,IAAI,SAAS,GAA0C,EAAE,CAAC;QAC1D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CACxD,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,EACX,MAAM,EACN,EAAE,CACH,CAAC;YACF,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;oBACnC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAiC,CAAC;oBAC/C,OAAO;wBACL,EAAE,EAAE,EAAE,CAAC,EAAE;wBACT,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC1C,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;wBAClD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC1C,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;qBACzC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAC3D,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,CACZ,CAAC;QACF,MAAM,UAAU,GACd,UAAU,CAAC,OAAO;YAChB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS;gBACnC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU;aACtC,CAAC,CAAC;YACL,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEnE,OAAO,EAAE,CAAC;YACR,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,aAAa,EAAE,KAAK;YACpB,iBAAiB,EAAE,SAAS;YAC5B,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE,yDAAyD;IACzD,KAAK,CAAC,IAAI,CAAC,GAAgB;QACzB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAC3D,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,CACZ,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE,OAAO,UAAU,CAAC;QAC3C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;QAEjD,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC1D,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC1D,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,MAAM,CAAC,MAAM,aAAa,OAAO,CAAC,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9F,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,qEAAqE;IAErE,6DAA6D;IAC7D,KAAK,CAAC,UAAU,CACd,GAAsB;QAEtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAC5D,GAAG,CAAC,OAAO,CACZ,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,OAAO;YACrB,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK;YACxC,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;YACpC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE;YAC1C,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE;SAC3C,CAAC,CAAC,CAAC;QAEJ,kCAAkC;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACzD,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC;QACH,MAAM,UAAU,GACd,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,UAAU;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,OAAO,EAAE,CAAC,CAAC,EAAE;YACb,UAAU,EAAE,CAAC,CAAC,KAAK;YACnB,UAAU,EAAE,MAAe;SAC5B,CAAC,CAAC,CAAC;QAEN,MAAM,OAAO,GACX,GAAG,YAAY,CAAC,MAAM,YAAY,aAAa,CAAC,MAAM,aAAa,CAAC;QAEtE,OAAO,EAAE,CAAC;YACR,QAAQ,EAAE,YAAY;YACtB,aAAa;YACb,aAAa,EAAE,EAAE;YACjB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE,iDAAiD;IACjD,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QAEhE,OAAO,EAAE,CAAC;YACR,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,gBAAgB,EAAE,UAAU,CAAC,OAAO;gBAClC,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,WAAW,UAAU,CAAC,KAAK,EAAE;SAClC,CAAC,CAAC;IACL,CAAC;IAED,mEAAmE;IAE3D,KAAK,CAAC,SAAS,CACrB,GAAgB,EAChB,QAAyB,EACzB,MAAwB,EACxB,QAA2B,EAC3B,MAAuB;QAEvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACzD,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ;YACxB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,CAAC;YACvD,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,EAAE,EACP,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAClD,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IAE3D,KAAK,CAAC,SAAS,CACrB,GAAgB,EAChB,QAAyB,EACzB,MAAwB,EACxB,QAA2B,EAC3B,MAAuB;QAEvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACzD,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,yDAAyD;QACzD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ;YACxB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,CAAC;YACvD,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;oBACjC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACrC,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAC9C,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,EAC1B,QAAQ,CACT,CAAC;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,EAAE,EACP,MAAM,EACN,IAAI,CAAC,KAAK,EACV,MAAM,CACP,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACzB,gCAAgC;oBAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,MAAM,IAAI,CAAC,gBAAgB,CACzB,GAAG,EACH,MAAM,CAAC,IAAI,CAAC,eAAe,EAC3B,IAAI,CAAC,MAAM,CACZ,CAAC;oBACJ,CAAC;oBACD,yBAAyB;oBACzB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAClD,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,EACX,QAAQ,EACR,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,eAAe,EAC3B,aAAa,CACd,CAAC;wBACF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;wBAClC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,IAAI,CAAC,EAAE;oBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IAE3D,KAAK,CAAC,WAAW,CACvB,GAAgB,EAChB,SAA0B,EAC1B,MAAwB,EACxB,OAA0B,EAC1B,MAAuB;QAEvB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;YAC/D,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ;YAC1B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,CAAC;YACzD,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QAEvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAC5D,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,EACX,aAAa,EACb,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,CACf,CAAC;gBACF,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvB,yEAAyE;oBACzE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAC5C,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,EACX,UAAU,CAAC,IAAI,CAAC,EAAE,CACnB,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,MAAM,CAAC,EAAE;wBAClB,UAAU,EAAE,MAAM,CAAC,IAAI;wBACvB,eAAe,EAAE,CAAC;wBAClB,MAAM,EAAE,SAAS;wBACjB,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI;qBAC1B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,8CAA8C;oBAC9C,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,MAAM,CAAC,EAAE;wBAClB,MAAM,EAAE,gCAAgC,UAAU,CAAC,KAAK,EAAE;qBAC3D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,OAAO,EAAE,MAAM,CAAC,EAAE;oBAClB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,8DAA8D;IACtD,KAAK,CAAC,qBAAqB,CACjC,GAAgB;QAEhB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;YAC/D,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,OAAO;YAAE,OAAO,GAAG,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,GAAgB,EAChB,QAAyB,EACzB,OAAe,EACf,UAA2B,EAC3B,KAAa,EACb,MAAkC;QAElC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAC5D,OAAO,EACP,UAAU,CACX,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,iCAAiC,UAAU,OAAO,QAAQ,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,MAA6B,CAAC;QAClC,IAAI,OAAe,EAAE,QAAgB,EAAE,GAAW,CAAC;QACnD,IAAI,SAAwB,CAAC;QAE7B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CACpD,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAC7D,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,OAAO,GAAG,CAAC;YAC7B,MAAM,GAAG,SAAS,CAAC;YACnB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YACnE,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;YAC5B,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACnC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CACpD,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CACrC,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,OAAO,GAAG,CAAC;YAC7B,MAAM,GAAG,SAAS,CAAC;YACnB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YACnE,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE,CAAC;YAClE,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;gBACjC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU;gBACnD,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC3C,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG;gBAC5C,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ;aAC/E,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;QACjE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAChD,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM;YAC1D,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,GAAG,MAAM,IAAI,UAAU,IAAI,OAAO,kBAAkB,OAAO,EAAE;YACrE,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE;SAC3B,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,GAAgB,EAChB,eAAuB,EACvB,WAAmB;QAEnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAC/D,WAAW,EACX,MAAM,CACP,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CACvC,GAAG,CAAC,GAAG,EACP,GAAG,CAAC,OAAO,EACX,eAAe,EACf,WAAW,CAAC,eAAe,CAAC,KAAK,CAClC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"push-use-cases.js","sourceRoot":"","sources":["../../../src/application/azure-sync/push-use-cases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Configuration Write Service
3
+ *
4
+ * Application use case for modifying configuration. Coordinates:
5
+ * 1. Read current overrides from the read repository
6
+ * 2. Apply partial updates to a context section
7
+ * 3. Validate the resulting merged config
8
+ * 4. Compute minimal overrides (diff against defaults)
9
+ * 5. Persist via the write repository
10
+ *
11
+ * SOLID: SRP — config write orchestration only
12
+ * SOLID: OCP — validation rules extensible per context
13
+ * SOLID: DIP — depends on repository interfaces, not implementations
14
+ * DDD: Application service coordinating domain VOs + infra repos
15
+ */
16
+ import type { ConfigRepository } from "../../domain/config/repositories.js";
17
+ import type { ConfigWriteRepository } from "../../domain/config/repositories.js";
18
+ import type { ConfigMap } from "../../domain/config/value-objects.js";
19
+ /** Result of a validation check. */
20
+ export interface ValidationResult {
21
+ readonly valid: boolean;
22
+ readonly errors: readonly string[];
23
+ }
24
+ /** A context-specific validation function. */
25
+ export type ConfigValidator = (merged: unknown) => ValidationResult;
26
+ /**
27
+ * Context names that have typed defaults and can be written.
28
+ * Subset of ConfigContextName — only those present in ConfigMap.
29
+ */
30
+ export type WritableContextName = keyof ConfigMap;
31
+ /**
32
+ * Orchestrates configuration writes with validation and minimal-diff persistence.
33
+ */
34
+ export declare class ConfigWriteService {
35
+ private readonly readRepo;
36
+ private readonly writeRepo;
37
+ private readonly validators;
38
+ constructor(readRepo: ConfigRepository, writeRepo: ConfigWriteRepository);
39
+ /**
40
+ * Update a configuration context with partial values.
41
+ *
42
+ * Flow:
43
+ * 1. Validate that the context name is writable
44
+ * 2. Load current overrides from the read repo
45
+ * 3. Deep-merge partial update into current overrides for this context
46
+ * 4. Deep-merge result with defaults to get the effective merged config
47
+ * 5. Validate the merged config
48
+ * 6. Compute minimal overrides (only values differing from defaults)
49
+ * 7. Persist the full overrides object (all contexts)
50
+ *
51
+ * @param contextName — The context section to update
52
+ * @param partialUpdate — Partial values to merge into the context
53
+ * @returns The effective merged config after the update
54
+ * @throws Error if context is not writable or validation fails
55
+ */
56
+ updateContext(contextName: WritableContextName, partialUpdate: Record<string, unknown>): unknown;
57
+ /**
58
+ * Remove a context section from the overrides file entirely.
59
+ * After removal, the context will use pure defaults.
60
+ *
61
+ * @param contextName — The context section to reset
62
+ */
63
+ resetContext(contextName: WritableContextName): void;
64
+ /**
65
+ * Get all writable context names.
66
+ */
67
+ getWritableContexts(): readonly WritableContextName[];
68
+ /**
69
+ * Register a custom validator for a context.
70
+ * Replaces any existing validator for that context.
71
+ */
72
+ registerValidator(contextName: string, validator: ConfigValidator): void;
73
+ private validate;
74
+ private registerBuiltInValidators;
75
+ }
76
+ /**
77
+ * Compute the minimal set of overrides by diffing effective config against defaults.
78
+ *
79
+ * Rules:
80
+ * - If a value equals the default, omit it
81
+ * - If an object has nested differences, include only the differing subtree
82
+ * - Arrays are compared by JSON equality (override replaces entire array)
83
+ * - Returns undefined if the entire section matches defaults
84
+ */
85
+ export declare function computeOverrides(defaults: unknown, effective: unknown): Record<string, unknown> | undefined;
86
+ //# sourceMappingURL=config-write-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-write-service.d.ts","sourceRoot":"","sources":["../../../src/application/config/config-write-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAMtE,oCAAoC;AACpC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,gBAAgB,CAAC;AAIpE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,SAAS,CAAC;AAelD;;GAEG;AACH,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAJ5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;gBAG9C,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,qBAAqB;IAOnD;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IA+ChG;;;;;OAKG;IACH,YAAY,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAUpD;;OAEG;IACH,mBAAmB,IAAI,SAAS,mBAAmB,EAAE;IAIrD;;;OAGG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI;IAMxE,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,yBAAyB;CAKlC;AAuED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,OAAO,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAgCrC"}
@@ -0,0 +1,237 @@
1
+ import { CONFIG_DEFAULTS } from "../../domain/config/value-objects.js";
2
+ import { deepMerge } from "./config-service.js";
3
+ /** All writable context names as a runtime set for validation. */
4
+ const WRITABLE_CONTEXTS = new Set([
5
+ "rag",
6
+ "pipeline",
7
+ "agent-registry",
8
+ "azure-sync",
9
+ "mcp-server",
10
+ "kanban",
11
+ "token-metrics",
12
+ ]);
13
+ // ─── Service ───────────────────────────────────────────────────────────
14
+ /**
15
+ * Orchestrates configuration writes with validation and minimal-diff persistence.
16
+ */
17
+ export class ConfigWriteService {
18
+ readRepo;
19
+ writeRepo;
20
+ validators = new Map();
21
+ constructor(readRepo, writeRepo) {
22
+ this.readRepo = readRepo;
23
+ this.writeRepo = writeRepo;
24
+ this.registerBuiltInValidators();
25
+ }
26
+ // ── Public API ─────────────────────────────────────────────────
27
+ /**
28
+ * Update a configuration context with partial values.
29
+ *
30
+ * Flow:
31
+ * 1. Validate that the context name is writable
32
+ * 2. Load current overrides from the read repo
33
+ * 3. Deep-merge partial update into current overrides for this context
34
+ * 4. Deep-merge result with defaults to get the effective merged config
35
+ * 5. Validate the merged config
36
+ * 6. Compute minimal overrides (only values differing from defaults)
37
+ * 7. Persist the full overrides object (all contexts)
38
+ *
39
+ * @param contextName — The context section to update
40
+ * @param partialUpdate — Partial values to merge into the context
41
+ * @returns The effective merged config after the update
42
+ * @throws Error if context is not writable or validation fails
43
+ */
44
+ updateContext(contextName, partialUpdate) {
45
+ if (!WRITABLE_CONTEXTS.has(contextName)) {
46
+ throw new Error(`Context "${contextName}" is not writable. Writable contexts: ${[...WRITABLE_CONTEXTS].join(", ")}`);
47
+ }
48
+ // Step 1: Load current overrides for ALL contexts
49
+ const currentOverrides = { ...this.readRepo.loadAll() };
50
+ // Step 2: Merge partial update into existing overrides for this context
51
+ const currentContextOverride = currentOverrides[contextName];
52
+ const updatedContextOverride = currentContextOverride !== undefined
53
+ ? deepMerge(currentContextOverride, partialUpdate)
54
+ : partialUpdate;
55
+ // Step 3: Compute effective merged config (defaults + updated overrides)
56
+ const defaults = CONFIG_DEFAULTS[contextName];
57
+ const effectiveMerged = defaults !== undefined
58
+ ? deepMerge(defaults, updatedContextOverride)
59
+ : updatedContextOverride;
60
+ // Step 4: Validate the merged result
61
+ const validation = this.validate(contextName, effectiveMerged);
62
+ if (!validation.valid) {
63
+ throw new Error(`Validation failed for "${contextName}": ${validation.errors.join("; ")}`);
64
+ }
65
+ // Step 5: Compute minimal overrides for this context
66
+ const minimalOverride = defaults !== undefined
67
+ ? computeOverrides(defaults, effectiveMerged)
68
+ : effectiveMerged;
69
+ // Step 6: Build full overrides object and persist
70
+ const newOverrides = { ...currentOverrides };
71
+ if (minimalOverride !== undefined && Object.keys(minimalOverride).length > 0) {
72
+ newOverrides[contextName] = minimalOverride;
73
+ }
74
+ else {
75
+ // All values match defaults — remove section from overrides
76
+ delete newOverrides[contextName];
77
+ }
78
+ this.writeRepo.writeAll(newOverrides);
79
+ return effectiveMerged;
80
+ }
81
+ /**
82
+ * Remove a context section from the overrides file entirely.
83
+ * After removal, the context will use pure defaults.
84
+ *
85
+ * @param contextName — The context section to reset
86
+ */
87
+ resetContext(contextName) {
88
+ if (!WRITABLE_CONTEXTS.has(contextName)) {
89
+ throw new Error(`Context "${contextName}" is not writable.`);
90
+ }
91
+ const currentOverrides = { ...this.readRepo.loadAll() };
92
+ delete currentOverrides[contextName];
93
+ this.writeRepo.writeAll(currentOverrides);
94
+ }
95
+ /**
96
+ * Get all writable context names.
97
+ */
98
+ getWritableContexts() {
99
+ return [...WRITABLE_CONTEXTS];
100
+ }
101
+ /**
102
+ * Register a custom validator for a context.
103
+ * Replaces any existing validator for that context.
104
+ */
105
+ registerValidator(contextName, validator) {
106
+ this.validators.set(contextName, validator);
107
+ }
108
+ // ── Validation ─────────────────────────────────────────────────
109
+ validate(contextName, merged) {
110
+ const validator = this.validators.get(contextName);
111
+ if (validator === undefined) {
112
+ return { valid: true, errors: [] };
113
+ }
114
+ return validator(merged);
115
+ }
116
+ registerBuiltInValidators() {
117
+ this.validators.set("azure-sync", validateAzureSyncConfig);
118
+ this.validators.set("token-metrics", validateTokenMetricsConfig);
119
+ this.validators.set("pipeline", validatePipelineConfig);
120
+ }
121
+ }
122
+ // ─── Built-in Validators ─────────────────────────────────────────────
123
+ function validateAzureSyncConfig(merged) {
124
+ const errors = [];
125
+ const config = merged;
126
+ if (config.pollEnabled === true) {
127
+ if (!config.organization || config.organization.trim() === "") {
128
+ errors.push("pollEnabled requires a non-empty organization");
129
+ }
130
+ if (!config.project || config.project.trim() === "") {
131
+ errors.push("pollEnabled requires a non-empty project");
132
+ }
133
+ }
134
+ if (config.pollIntervalSecs !== undefined) {
135
+ const interval = config.pollIntervalSecs;
136
+ if (typeof interval !== "number" || interval < 30) {
137
+ errors.push("pollIntervalSecs must be a number >= 30");
138
+ }
139
+ }
140
+ return { valid: errors.length === 0, errors };
141
+ }
142
+ function validateTokenMetricsConfig(merged) {
143
+ const errors = [];
144
+ const config = merged;
145
+ if (config.budgetAlertThreshold !== undefined) {
146
+ const threshold = config.budgetAlertThreshold;
147
+ if (typeof threshold !== "number" || threshold < 0 || threshold > 1) {
148
+ errors.push("budgetAlertThreshold must be a number between 0 and 1");
149
+ }
150
+ }
151
+ if (config.sprintBudgetUsd !== null && config.sprintBudgetUsd !== undefined) {
152
+ const budget = config.sprintBudgetUsd;
153
+ if (typeof budget !== "number" || budget < 0) {
154
+ errors.push("sprintBudgetUsd must be a non-negative number or null");
155
+ }
156
+ }
157
+ return { valid: errors.length === 0, errors };
158
+ }
159
+ function validatePipelineConfig(merged) {
160
+ const errors = [];
161
+ const config = merged;
162
+ if (config.defaultTimeoutMs !== undefined) {
163
+ const timeout = config.defaultTimeoutMs;
164
+ if (typeof timeout !== "number" || timeout < 1000) {
165
+ errors.push("defaultTimeoutMs must be a number >= 1000");
166
+ }
167
+ }
168
+ if (config.checkTimeoutMs !== undefined) {
169
+ const timeout = config.checkTimeoutMs;
170
+ if (typeof timeout !== "number" || timeout < 1000) {
171
+ errors.push("checkTimeoutMs must be a number >= 1000");
172
+ }
173
+ }
174
+ return { valid: errors.length === 0, errors };
175
+ }
176
+ // ─── Override Computation ────────────────────────────────────────────
177
+ /**
178
+ * Compute the minimal set of overrides by diffing effective config against defaults.
179
+ *
180
+ * Rules:
181
+ * - If a value equals the default, omit it
182
+ * - If an object has nested differences, include only the differing subtree
183
+ * - Arrays are compared by JSON equality (override replaces entire array)
184
+ * - Returns undefined if the entire section matches defaults
185
+ */
186
+ export function computeOverrides(defaults, effective) {
187
+ if (!isPlainObject(defaults) || !isPlainObject(effective)) {
188
+ // Primitive or array comparison
189
+ return deepEqual(defaults, effective) ? undefined : effective;
190
+ }
191
+ const result = {};
192
+ let hasOverrides = false;
193
+ // Check all keys in effective
194
+ for (const key of Object.keys(effective)) {
195
+ const defaultVal = defaults[key];
196
+ const effectiveVal = effective[key];
197
+ if (defaultVal === undefined) {
198
+ // Key not in defaults — it's always an override
199
+ result[key] = effectiveVal;
200
+ hasOverrides = true;
201
+ }
202
+ else if (isPlainObject(defaultVal) && isPlainObject(effectiveVal)) {
203
+ // Recurse into nested objects
204
+ const nested = computeOverrides(defaultVal, effectiveVal);
205
+ if (nested !== undefined && Object.keys(nested).length > 0) {
206
+ result[key] = nested;
207
+ hasOverrides = true;
208
+ }
209
+ }
210
+ else if (!deepEqual(defaultVal, effectiveVal)) {
211
+ result[key] = effectiveVal;
212
+ hasOverrides = true;
213
+ }
214
+ }
215
+ return hasOverrides ? result : undefined;
216
+ }
217
+ // ─── Utility Functions ───────────────────────────────────────────────
218
+ function isPlainObject(value) {
219
+ return value !== null && typeof value === "object" && !Array.isArray(value);
220
+ }
221
+ /**
222
+ * Deep equality check for JSON-serializable values.
223
+ * Uses JSON.stringify for reliable comparison of nested structures.
224
+ */
225
+ function deepEqual(a, b) {
226
+ if (a === b)
227
+ return true;
228
+ if (a === null || b === null)
229
+ return false;
230
+ if (typeof a !== typeof b)
231
+ return false;
232
+ if (typeof a === "object") {
233
+ return JSON.stringify(a) === JSON.stringify(b);
234
+ }
235
+ return false;
236
+ }
237
+ //# sourceMappingURL=config-write-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-write-service.js","sourceRoot":"","sources":["../../../src/application/config/config-write-service.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,6 @@
2
2
  * Configuration Application — Barrel Exports
3
3
  */
4
4
  export { ConfigService, deepMerge } from "./config-service.js";
5
+ export { ConfigWriteService, computeOverrides } from "./config-write-service.js";
6
+ export type { ValidationResult, ConfigValidator, WritableContextName } from "./config-write-service.js";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -2,4 +2,5 @@
2
2
  * Configuration Application — Barrel Exports
3
3
  */
4
4
  export { ConfigService, deepMerge } from "./config-service.js";
5
+ export { ConfigWriteService, computeOverrides } from "./config-write-service.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Execution Journal Use Cases
3
+ *
4
+ * Application service for recording tool execution lifecycle and
5
+ * detecting crashes via orphaned running entries.
6
+ *
7
+ * SOLID: SRP — execution journal orchestration only
8
+ * SOLID: DIP — depends on ExecutionJournalRepository port
9
+ * DDD: Application use case coordinating domain entities + infra repo
10
+ */
11
+ import type { ExecutionJournalRepository } from "../../domain/context-memory/repositories.js";
12
+ import type { ExecutionEntryId } from "../../domain/context-memory/value-objects.js";
13
+ import type { WorkspaceId } from "../../domain/shared/value-objects.js";
14
+ export interface RecordStartRequest {
15
+ readonly toolName: string;
16
+ readonly argsSummary: string;
17
+ readonly workspace: WorkspaceId;
18
+ readonly sessionId?: string;
19
+ }
20
+ export interface RecordStartResponse {
21
+ readonly entryId: string;
22
+ readonly toolName: string;
23
+ readonly state: string;
24
+ readonly startedAt: string;
25
+ }
26
+ export interface RecordFinishRequest {
27
+ readonly entryId: ExecutionEntryId;
28
+ }
29
+ export interface CrashReport {
30
+ readonly orphanedEntries: readonly CrashEntry[];
31
+ readonly totalCrashed: number;
32
+ readonly summary: string;
33
+ }
34
+ export interface CrashEntry {
35
+ readonly entryId: string;
36
+ readonly toolName: string;
37
+ readonly argsSummary: string;
38
+ readonly startedAt: string;
39
+ }
40
+ export declare class ExecutionJournalUseCases {
41
+ private readonly repository;
42
+ constructor(repository: ExecutionJournalRepository);
43
+ /**
44
+ * Record the start of a tool execution.
45
+ * Creates a Running entry in the journal.
46
+ * Returns the persisted entry with its real ID for later correlation.
47
+ */
48
+ recordStart(request: RecordStartRequest): Promise<RecordStartResponse>;
49
+ /**
50
+ * Record successful completion of a tool execution.
51
+ */
52
+ recordSuccess(request: RecordFinishRequest): Promise<void>;
53
+ /**
54
+ * Record error completion of a tool execution.
55
+ */
56
+ recordError(request: RecordFinishRequest, errorMessage: string): Promise<void>;
57
+ /**
58
+ * Detect orphaned running entries from prior sessions.
59
+ * Marks them as Crashed and returns a crash report.
60
+ * Should be called once on plugin initialization.
61
+ */
62
+ detectCrashes(workspace: WorkspaceId): Promise<CrashReport>;
63
+ /**
64
+ * Prune completed/error/crashed entries older than the retention period.
65
+ * Running entries are never pruned (they indicate ongoing or crashed executions).
66
+ */
67
+ prune(workspace: WorkspaceId, retentionDays?: number): Promise<number>;
68
+ }
69
+ //# sourceMappingURL=execution-journal-use-cases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-journal-use-cases.d.ts","sourceRoot":"","sources":["../../../src/application/context-memory/execution-journal-use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AAE9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAIxE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,EAAE,SAAS,UAAU,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAQD,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,0BAA0B;IAGzD;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiB5E;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhE;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,mBAAmB,EAC5B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAgCjE;;;OAGG;IACG,KAAK,CACT,SAAS,EAAE,WAAW,EACtB,aAAa,GAAE,MAA+B,GAC7C,OAAO,CAAC,MAAM,CAAC;CAKnB"}