@mc1global/opencode-jarvis 0.11.0 → 0.13.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 (63) hide show
  1. package/README.md +21 -1
  2. package/dist/application/azure-sync/task-push-use-cases.d.ts.map +1 -1
  3. package/dist/application/azure-sync/task-push-use-cases.js +21 -3
  4. package/dist/application/azure-sync/task-push-use-cases.js.map +1 -1
  5. package/dist/application/bootstrap/use-cases.d.ts.map +1 -1
  6. package/dist/application/bootstrap/use-cases.js +4 -4
  7. package/dist/application/bootstrap/use-cases.js.map +1 -1
  8. package/dist/application/config/config-service.d.ts +3 -1
  9. package/dist/application/config/config-service.d.ts.map +1 -1
  10. package/dist/application/config/config-service.js +4 -0
  11. package/dist/application/config/config-service.js.map +1 -1
  12. package/dist/application/wiki-feedback/poll-service.d.ts +56 -0
  13. package/dist/application/wiki-feedback/poll-service.d.ts.map +1 -0
  14. package/dist/application/wiki-feedback/poll-service.js +87 -0
  15. package/dist/application/wiki-feedback/poll-service.js.map +1 -0
  16. package/dist/application/wiki-feedback/use-cases.d.ts +115 -0
  17. package/dist/application/wiki-feedback/use-cases.d.ts.map +1 -0
  18. package/dist/application/wiki-feedback/use-cases.js +271 -0
  19. package/dist/application/wiki-feedback/use-cases.js.map +1 -0
  20. package/dist/domain/config/value-objects.d.ts +28 -1
  21. package/dist/domain/config/value-objects.d.ts.map +1 -1
  22. package/dist/domain/config/value-objects.js +10 -0
  23. package/dist/domain/config/value-objects.js.map +1 -1
  24. package/dist/domain/governance/policies.d.ts.map +1 -1
  25. package/dist/domain/governance/policies.js +41 -0
  26. package/dist/domain/governance/policies.js.map +1 -1
  27. package/dist/domain/wiki-feedback/entities.d.ts +101 -0
  28. package/dist/domain/wiki-feedback/entities.d.ts.map +1 -0
  29. package/dist/domain/wiki-feedback/entities.js +154 -0
  30. package/dist/domain/wiki-feedback/entities.js.map +1 -0
  31. package/dist/domain/wiki-feedback/index.d.ts +13 -0
  32. package/dist/domain/wiki-feedback/index.d.ts.map +1 -0
  33. package/dist/domain/wiki-feedback/index.js +11 -0
  34. package/dist/domain/wiki-feedback/index.js.map +1 -0
  35. package/dist/domain/wiki-feedback/ports.d.ts +47 -0
  36. package/dist/domain/wiki-feedback/ports.d.ts.map +1 -0
  37. package/dist/domain/wiki-feedback/ports.js +13 -0
  38. package/dist/domain/wiki-feedback/ports.js.map +1 -0
  39. package/dist/domain/wiki-feedback/repositories.d.ts +33 -0
  40. package/dist/domain/wiki-feedback/repositories.d.ts.map +1 -0
  41. package/dist/domain/wiki-feedback/repositories.js +12 -0
  42. package/dist/domain/wiki-feedback/repositories.js.map +1 -0
  43. package/dist/domain/wiki-feedback/value-objects.d.ts +74 -0
  44. package/dist/domain/wiki-feedback/value-objects.d.ts.map +1 -0
  45. package/dist/domain/wiki-feedback/value-objects.js +144 -0
  46. package/dist/domain/wiki-feedback/value-objects.js.map +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +46 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/infrastructure/wiki-feedback/azure-wiki-client.d.ts +36 -0
  51. package/dist/infrastructure/wiki-feedback/azure-wiki-client.d.ts.map +1 -0
  52. package/dist/infrastructure/wiki-feedback/azure-wiki-client.js +106 -0
  53. package/dist/infrastructure/wiki-feedback/azure-wiki-client.js.map +1 -0
  54. package/dist/infrastructure/wiki-feedback/sqlite-feedback-repository.d.ts +31 -0
  55. package/dist/infrastructure/wiki-feedback/sqlite-feedback-repository.d.ts.map +1 -0
  56. package/dist/infrastructure/wiki-feedback/sqlite-feedback-repository.js +149 -0
  57. package/dist/infrastructure/wiki-feedback/sqlite-feedback-repository.js.map +1 -0
  58. package/dist/tools/wiki-feedback-tools.d.ts +9 -0
  59. package/dist/tools/wiki-feedback-tools.d.ts.map +1 -0
  60. package/dist/tools/wiki-feedback-tools.js +189 -0
  61. package/dist/tools/wiki-feedback-tools.js.map +1 -0
  62. package/package.json +1 -1
  63. package/templates/agents-md.template.md +7 -2
package/README.md CHANGED
@@ -144,10 +144,30 @@ Content of `opencode.json`:
144
144
  ```json
145
145
  {
146
146
  "$schema": "https://opencode.ai/config.json",
147
- "plugin": ["@mc1global/opencode-jarvis"]
147
+ "plugin": ["@mc1global/opencode-jarvis"],
148
+ "command": {
149
+ "config": {
150
+ "template": "Use JARVIS config tools to view and modify configuration. Run config-read to show current settings, then config-write to apply changes. $ARGUMENTS",
151
+ "description": "View or modify JARVIS configuration"
152
+ },
153
+ "healthcheck": {
154
+ "template": "Run the JARVIS healthcheck diagnostic and provide actionable guidance for any issues found. $ARGUMENTS",
155
+ "description": "Run JARVIS environment diagnostics"
156
+ },
157
+ "sync-azure": {
158
+ "template": "Execute the JARVIS Azure DevOps sync workflow — check connectivity, review sync status, and synchronize cards/epics/sprints. $ARGUMENTS",
159
+ "description": "Sync kanban board with Azure DevOps"
160
+ },
161
+ "start-card": {
162
+ "template": "Start working on a JARVIS kanban card. Handle the full lifecycle: check status, assign agent and sprint, move to doing, and start a context session. $ARGUMENTS",
163
+ "description": "Start working on a kanban card"
164
+ }
165
+ }
148
166
  }
149
167
  ```
150
168
 
169
+ The `"command"` block registers JARVIS slash commands (`/config`, `/healthcheck`, `/sync-azure`, `/start-card`) so OpenCode shows them in the command list. The plugin's `command.execute.before` hook enriches the prompt with detailed JARVIS-specific instructions when executed.
170
+
151
171
  OpenCode installs npm plugins automatically at startup. Requires access to the `@mc1global` org on npm.
152
172
 
153
173
  #### Where exactly does `opencode.json` go?
@@ -1 +1 @@
1
- {"version":3,"file":"task-push-use-cases.d.ts","sourceRoot":"","sources":["../../../src/application/azure-sync/task-push-use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAIxG,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,0CAA0C,CAAC;AAGjG,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/D,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,kBAAkB,EAAE,SAAS;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;CACzC;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;CAC3C;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAOjD;AAID;;;GAGG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;gBAE3C,IAAI,EAAE,YAAY;IAE/C;;;;OAIG;IACG,aAAa,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,eAAe,EACrB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,OAAO,CAAC,cAAc,CAAC;YA0CZ,cAAc;CA0G7B"}
1
+ {"version":3,"file":"task-push-use-cases.d.ts","sourceRoot":"","sources":["../../../src/application/azure-sync/task-push-use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAIxG,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,0CAA0C,CAAC;AAGjG,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAI/D,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,kBAAkB,EAAE,SAAS;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;CACzC;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;CAC3C;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAOjD;AAID;;;GAGG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2C;gBAE3C,IAAI,EAAE,YAAY;IAE/C;;;;OAIG;IACG,aAAa,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,eAAe,EACrB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,OAAO,CAAC,cAAc,CAAC;YA0CZ,cAAc;CAmI7B"}
@@ -11,7 +11,7 @@
11
11
  * DDD: Application service coordinating bounded contexts
12
12
  */
13
13
  import { ok, Timestamp } from "../../domain/shared/value-objects.js";
14
- import { FieldMapper } from "../../domain/azure-sync/services.js";
14
+ import { FieldMapper, AZURE_FIELDS } from "../../domain/azure-sync/services.js";
15
15
  import { SyncMapping, SyncLog } from "../../domain/azure-sync/entities.js";
16
16
  import { SyncMappingId, SyncLogId, WorkItemId } from "../../domain/azure-sync/value-objects.js";
17
17
  import { AzureFieldBuilder } from "./field-builders.js";
@@ -112,14 +112,32 @@ export class TaskPushUseCases {
112
112
  await this.deps.syncMappingRepo.save(existing);
113
113
  }
114
114
  else {
115
- // Create new Task
116
- const createResult = await this.deps.azureClient.createWorkItem(org, project, wiType, fields);
115
+ // Create new Task — Azure DevOps rejects creating work items
116
+ // directly in a terminal state (e.g. "Done" on inherited Basic).
117
+ // For met ACs, strip the State field from the creation payload
118
+ // and apply it via a separate PATCH after creation.
119
+ const statePath = `/fields/${AZURE_FIELDS.STATE}`;
120
+ const createFields = taskInput.met
121
+ ? fields.filter((f) => f.path !== statePath)
122
+ : fields;
123
+ const createResult = await this.deps.azureClient.createWorkItem(org, project, wiType, createFields);
117
124
  if (!createResult.success)
118
125
  return createResult;
119
126
  action = "created";
120
127
  azureId = createResult.data.id;
121
128
  azureRev = createResult.data.rev;
122
129
  url = createResult.data.url;
130
+ // For met ACs, transition the newly-created Task to the done state
131
+ if (taskInput.met) {
132
+ const stateField = fields.find((f) => f.path === statePath);
133
+ if (stateField) {
134
+ const stateUpdateResult = await this.deps.azureClient.updateWorkItem(org, project, azureId, [stateField]);
135
+ if (stateUpdateResult.success) {
136
+ azureRev = stateUpdateResult.data.rev;
137
+ }
138
+ // Non-fatal: Task was created successfully, state update is best-effort
139
+ }
140
+ }
123
141
  // Create sync mapping
124
142
  const now = Timestamp.now();
125
143
  const seq = await this.deps.syncMappingRepo.nextMappingSequence();
@@ -1 +1 @@
1
- {"version":3,"file":"task-push-use-cases.js","sourceRoot":"","sources":["../../../src/application/azure-sync/task-push-use-cases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-push-use-cases.js","sourceRoot":"","sources":["../../../src/application/azure-sync/task-push-use-cases.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-cases.d.ts","sourceRoot":"","sources":["../../../src/application/bootstrap/use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAI5E,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,sDAAsD;IACtD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC;AAED,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AA8DD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,UAAQ,GAAG,eAAe;IAiDrF;;OAEG;IACH,WAAW,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,eAAe;CAUhE;AAiCD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAiBhE"}
1
+ {"version":3,"file":"use-cases.d.ts","sourceRoot":"","sources":["../../../src/application/bootstrap/use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAI5E,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,sDAAsD;IACtD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,wDAAwD;IACxD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC;AAED,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AA8DD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,UAAQ,GAAG,eAAe;IAiDrF;;OAEG;IACH,WAAW,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,eAAe;CAUhE;AAkCD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAiBhE"}
@@ -9,8 +9,7 @@
9
9
  * SOLID: DIP — depends on ConfigService abstraction for config reading
10
10
  */
11
11
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
12
- import { dirname, join } from "node:path";
13
- import { fileURLToPath } from "node:url";
12
+ import { join } from "node:path";
14
13
  // ── Vault Skeleton Folders ────────────────────────────────────────────────────
15
14
  const VAULT_SKELETON_DIRS = [
16
15
  "obsidian-vault",
@@ -144,9 +143,10 @@ export class BootstrapUseCases {
144
143
  * 3. `templates/` relative to CWD (fallback for local dev)
145
144
  */
146
145
  function resolveTemplatePath() {
147
- // Use import.meta.url to find package root relative to this compiled file.
146
+ // Resolve this file's directory. Bun supports __dirname natively for ESM,
147
+ // and Jest/ts-jest provides it in CJS mode — works in both runtimes.
148
148
  // In dist: dist/application/bootstrap/use-cases.js → ../../.. = package root
149
- const thisDir = dirname(fileURLToPath(import.meta.url));
149
+ const thisDir = __dirname;
150
150
  const packageRoot = join(thisDir, "..", "..", "..");
151
151
  const candidates = [
152
152
  join(packageRoot, "templates", "agents-md.template.md"),
@@ -1 +1 @@
1
- {"version":3,"file":"use-cases.js","sourceRoot":"","sources":["../../../src/application/bootstrap/use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA4BzC,iFAAiF;AAEjF,MAAM,mBAAmB,GAAG;IAC1B,gBAAgB;IAChB,8BAA8B;IAC9B,oCAAoC;IACpC,8BAA8B;CACtB,CAAC;AAEX,iFAAiF;AAEjF,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C5B,CAAC;AAEF,iFAAiF;AAEjF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;;;;;;OAOG;IACH,SAAS,CAAC,SAAiB,EAAE,MAAuB,EAAE,KAAK,GAAG,KAAK;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,4BAA4B;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAClD,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,aAAa,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;YACzD,aAAa,GAAG,IAAI,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACzC,CAAC;QAED,kCAAkC;QAClC,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,IAAI,CAAC,cAAc,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,OAAO;YACL,eAAe;YACf,YAAY;YACZ,kBAAkB,EAAE,WAAW;YAC/B,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,eAAiC;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,YAAY,IAAI,eAAe,EAAE,OAAO,CAAC,CAAC;QACpF,OAAO;YACL,gBAAgB,EAAE,QAAQ;YAC1B,QAAQ,EAAE,eAAe,EAAE,YAAY,IAAI,EAAE;YAC7C,YAAY,EAAE,eAAe,EAAE,OAAO,IAAI,EAAE;YAC5C,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF;;;;;;;GAOG;AACH,SAAS,mBAAmB;IAC1B,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,uBAAuB,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,CAAC;KACtE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IAED,uDAAuD;IACvD,MAAM,IAAI,KAAK,CACb,2CAA2C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,UAAmC;IAEnC,iEAAiE;IACjE,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3B,QAAQ,GAAG,MAAM,CAAC;QAClB,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,mDAAmD,EACnD,CAAC,MAAM,EAAE,IAAY,EAAE,OAAe,EAAE,EAAE,CACxC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAClC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,SAAiC;IAEjC,OAAO,QAAQ,CAAC,OAAO,CACrB,oBAAoB,EACpB,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAC3D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAuB;IACtD,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEhD,MAAM,UAAU,GAA4B;QAC1C,UAAU,EAAE,MAAM,CAAC,gBAAgB;QACnC,QAAQ,EAAE,MAAM,CAAC,eAAe;QAChC,aAAa,EAAE,MAAM,CAAC,mBAAmB;KAC1C,CAAC;IAEF,MAAM,SAAS,GAA2B;QACxC,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,aAAa,EAAE,MAAM,CAAC,YAAY;KACnC,CAAC;IAEF,MAAM,eAAe,GAAG,wBAAwB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClE,OAAO,mBAAmB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"use-cases.js","sourceRoot":"","sources":["../../../src/application/bootstrap/use-cases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA4BjC,iFAAiF;AAEjF,MAAM,mBAAmB,GAAG;IAC1B,gBAAgB;IAChB,8BAA8B;IAC9B,oCAAoC;IACpC,8BAA8B;CACtB,CAAC;AAEX,iFAAiF;AAEjF,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C5B,CAAC;AAEF,iFAAiF;AAEjF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;;;;;;OAOG;IACH,SAAS,CAAC,SAAiB,EAAE,MAAuB,EAAE,KAAK,GAAG,KAAK;QACjE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,4BAA4B;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAClD,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,aAAa,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;YACzD,aAAa,GAAG,IAAI,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACzC,CAAC;QAED,kCAAkC;QAClC,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,IAAI,CAAC,cAAc,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,OAAO;YACL,eAAe;YACf,YAAY;YACZ,kBAAkB,EAAE,WAAW;YAC/B,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,eAAiC;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,YAAY,IAAI,eAAe,EAAE,OAAO,CAAC,CAAC;QACpF,OAAO;YACL,gBAAgB,EAAE,QAAQ;YAC1B,QAAQ,EAAE,eAAe,EAAE,YAAY,IAAI,EAAE;YAC7C,YAAY,EAAE,eAAe,EAAE,OAAO,IAAI,EAAE;YAC5C,eAAe,EAAE,IAAI;YACrB,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;CACF;AAED,iFAAiF;AAEjF;;;;;;;GAOG;AACH,SAAS,mBAAmB;IAC1B,0EAA0E;IAC1E,qEAAqE;IACrE,6EAA6E;IAC7E,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,uBAAuB,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,CAAC;KACtE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IAED,uDAAuD;IACvD,MAAM,IAAI,KAAK,CACb,2CAA2C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAgB,EAChB,UAAmC;IAEnC,iEAAiE;IACjE,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3B,QAAQ,GAAG,MAAM,CAAC;QAClB,MAAM,GAAG,MAAM,CAAC,OAAO,CACrB,mDAAmD,EACnD,CAAC,MAAM,EAAE,IAAY,EAAE,OAAe,EAAE,EAAE,CACxC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAClC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,SAAiC;IAEjC,OAAO,QAAQ,CAAC,OAAO,CACrB,oBAAoB,EACpB,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAC3D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAuB;IACtD,MAAM,YAAY,GAAG,mBAAmB,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEhD,MAAM,UAAU,GAA4B;QAC1C,UAAU,EAAE,MAAM,CAAC,gBAAgB;QACnC,QAAQ,EAAE,MAAM,CAAC,eAAe;QAChC,aAAa,EAAE,MAAM,CAAC,mBAAmB;KAC1C,CAAC;IAEF,MAAM,SAAS,GAA2B;QACxC,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,aAAa,EAAE,MAAM,CAAC,YAAY;KACnC,CAAC;IAEF,MAAM,eAAe,GAAG,wBAAwB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClE,OAAO,mBAAmB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC"}
@@ -11,7 +11,7 @@
11
11
  * DDD: Application service orchestrating domain VOs + infra repo
12
12
  */
13
13
  import type { ConfigRepository } from "../../domain/config/repositories.js";
14
- import type { ConfigContextName, ConfigMap, RagConfig, PipelineConfig, AgentRegistryConfig, AzureSyncConfig, McpServerConfig, KanbanConfig, TokenMetricsConfig } from "../../domain/config/value-objects.js";
14
+ import type { ConfigContextName, ConfigMap, RagConfig, PipelineConfig, AgentRegistryConfig, AzureSyncConfig, McpServerConfig, KanbanConfig, TokenMetricsConfig, WikiFeedbackConfig } from "../../domain/config/value-objects.js";
15
15
  /**
16
16
  * Resolves configuration for bounded contexts.
17
17
  *
@@ -40,6 +40,8 @@ export declare class ConfigService {
40
40
  getKanbanConfig(): KanbanConfig;
41
41
  /** Get Token Metrics configuration (type-safe). */
42
42
  getTokenMetricsConfig(): TokenMetricsConfig;
43
+ /** Get Wiki Feedback configuration (type-safe). */
44
+ getWikiFeedbackConfig(): WikiFeedbackConfig;
43
45
  /**
44
46
  * Get config for any context name.
45
47
  * Returns deep-merged result or defaults. If no defaults exist
@@ -1 +1 @@
1
- {"version":3,"file":"config-service.d.ts","sourceRoot":"","sources":["../../../src/application/config/config-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAG9C;;;;;;;;;GASG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;gBAEvB,UAAU,EAAE,gBAAgB;IAIzD,yCAAyC;IACzC,YAAY,IAAI,SAAS;IAIzB,8CAA8C;IAC9C,iBAAiB,IAAI,cAAc;IAInC,oDAAoD;IACpD,sBAAsB,IAAI,mBAAmB;IAI7C,gDAAgD;IAChD,kBAAkB,IAAI,eAAe;IAIrC,gDAAgD;IAChD,kBAAkB,IAAI,eAAe;IAIrC,4CAA4C;IAC5C,eAAe,IAAI,YAAY;IAI/B,mDAAmD;IACnD,qBAAqB,IAAI,kBAAkB;IAM3C;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAClE,SAAS,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO;IAOlD,wEAAwE;IACxE,yBAAyB,IAAI,OAAO;IAMpC,OAAO,CAAC,QAAQ;IAIhB;;;OAGG;IACH,OAAO,CAAC,OAAO;CAuBhB;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAmBnE"}
1
+ {"version":3,"file":"config-service.d.ts","sourceRoot":"","sources":["../../../src/application/config/config-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAG9C;;;;;;;;;GASG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;gBAEvB,UAAU,EAAE,gBAAgB;IAIzD,yCAAyC;IACzC,YAAY,IAAI,SAAS;IAIzB,8CAA8C;IAC9C,iBAAiB,IAAI,cAAc;IAInC,oDAAoD;IACpD,sBAAsB,IAAI,mBAAmB;IAI7C,gDAAgD;IAChD,kBAAkB,IAAI,eAAe;IAIrC,gDAAgD;IAChD,kBAAkB,IAAI,eAAe;IAIrC,4CAA4C;IAC5C,eAAe,IAAI,YAAY;IAI/B,mDAAmD;IACnD,qBAAqB,IAAI,kBAAkB;IAI3C,mDAAmD;IACnD,qBAAqB,IAAI,kBAAkB;IAM3C;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAClE,SAAS,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO;IAOlD,wEAAwE;IACxE,yBAAyB,IAAI,OAAO;IAMpC,OAAO,CAAC,QAAQ;IAIhB;;;OAGG;IACH,OAAO,CAAC,OAAO;CAuBhB;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAmBnE"}
@@ -44,6 +44,10 @@ export class ConfigService {
44
44
  getTokenMetricsConfig() {
45
45
  return this.getTyped("token-metrics");
46
46
  }
47
+ /** Get Wiki Feedback configuration (type-safe). */
48
+ getWikiFeedbackConfig() {
49
+ return this.getTyped("wiki-feedback");
50
+ }
47
51
  getConfig(contextName) {
48
52
  return this.resolve(contextName);
49
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config-service.js","sourceRoot":"","sources":["../../../src/application/config/config-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-service.js","sourceRoot":"","sources":["../../../src/application/config/config-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Wiki Feedback Application — Poll Service
3
+ *
4
+ * Background service that periodically scans monitored wiki pages
5
+ * for new comments. Delegates to WikiFeedbackUseCases.scan() for
6
+ * the actual detection and persistence logic.
7
+ *
8
+ * Follows the same pattern as AzurePollService: start/stop lifecycle,
9
+ * immediate first poll, configurable interval, error callbacks.
10
+ *
11
+ * SOLID: SRP — polling orchestration only (scan logic in use cases)
12
+ * SOLID: DIP — depends on use case abstraction
13
+ */
14
+ import type { WikiFeedbackUseCases } from "./use-cases.js";
15
+ /** Notification emitted after a successful scan with new comments. */
16
+ export interface WikiPollNotification {
17
+ readonly pagesScanned: number;
18
+ readonly newCommentsFound: number;
19
+ readonly existingSkipped: number;
20
+ readonly autoRepliesFiltered: number;
21
+ readonly summary: string;
22
+ }
23
+ /** Dependencies for the wiki feedback poll service. */
24
+ export interface WikiPollServiceDeps {
25
+ readonly useCases: WikiFeedbackUseCases;
26
+ /** Callback invoked when new comments are detected. */
27
+ readonly onNewComments?: (notification: WikiPollNotification) => void;
28
+ /** Callback for error logging. */
29
+ readonly onError?: (error: string) => void;
30
+ }
31
+ /**
32
+ * Background polling service for wiki feedback detection.
33
+ * Call start() to begin periodic scanning, stop() to halt.
34
+ */
35
+ export declare class WikiFeedbackPollService {
36
+ private readonly deps;
37
+ private readonly intervalSecs;
38
+ private timer;
39
+ private _running;
40
+ private _pollCount;
41
+ private _lastPollAt;
42
+ constructor(deps: WikiPollServiceDeps, intervalSecs: number);
43
+ /** Whether the service is currently running. */
44
+ get running(): boolean;
45
+ /** Number of completed poll cycles. */
46
+ get pollCount(): number;
47
+ /** ISO timestamp of the last poll. */
48
+ get lastPollAt(): string | undefined;
49
+ /** Start the polling loop. No-op if already running. */
50
+ start(): void;
51
+ /** Stop the polling loop. */
52
+ stop(): void;
53
+ /** Execute a single poll cycle. Exposed for testing. */
54
+ poll(): Promise<WikiPollNotification | undefined>;
55
+ }
56
+ //# sourceMappingURL=poll-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-service.d.ts","sourceRoot":"","sources":["../../../src/application/wiki-feedback/poll-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAI3D,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,uDAAuD;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACtE,kCAAkC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAID;;;GAGG;AACH,qBAAa,uBAAuB;IAOhC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAP/B,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAqB;gBAGrB,IAAI,EAAE,mBAAmB,EACzB,YAAY,EAAE,MAAM;IAOvC,gDAAgD;IAChD,IAAI,OAAO,IAAI,OAAO,CAA0B;IAEhD,uCAAuC;IACvC,IAAI,SAAS,IAAI,MAAM,CAA4B;IAEnD,sCAAsC;IACtC,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAA6B;IAEjE,wDAAwD;IACxD,KAAK,IAAI,IAAI;IAkBb,6BAA6B;IAC7B,IAAI,IAAI,IAAI;IASZ,wDAAwD;IAClD,IAAI,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;CAyBxD"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Wiki Feedback Application — Poll Service
3
+ *
4
+ * Background service that periodically scans monitored wiki pages
5
+ * for new comments. Delegates to WikiFeedbackUseCases.scan() for
6
+ * the actual detection and persistence logic.
7
+ *
8
+ * Follows the same pattern as AzurePollService: start/stop lifecycle,
9
+ * immediate first poll, configurable interval, error callbacks.
10
+ *
11
+ * SOLID: SRP — polling orchestration only (scan logic in use cases)
12
+ * SOLID: DIP — depends on use case abstraction
13
+ */
14
+ // ─── Poll Service ─────────────────────────────────────────────────────────────
15
+ /**
16
+ * Background polling service for wiki feedback detection.
17
+ * Call start() to begin periodic scanning, stop() to halt.
18
+ */
19
+ export class WikiFeedbackPollService {
20
+ deps;
21
+ intervalSecs;
22
+ timer;
23
+ _running = false;
24
+ _pollCount = 0;
25
+ _lastPollAt;
26
+ constructor(deps, intervalSecs) {
27
+ this.deps = deps;
28
+ this.intervalSecs = intervalSecs;
29
+ if (intervalSecs < 60) {
30
+ throw new Error("Wiki poll interval must be at least 60 seconds");
31
+ }
32
+ }
33
+ /** Whether the service is currently running. */
34
+ get running() { return this._running; }
35
+ /** Number of completed poll cycles. */
36
+ get pollCount() { return this._pollCount; }
37
+ /** ISO timestamp of the last poll. */
38
+ get lastPollAt() { return this._lastPollAt; }
39
+ /** Start the polling loop. No-op if already running. */
40
+ start() {
41
+ if (this._running)
42
+ return;
43
+ this._running = true;
44
+ // Run immediately, then on interval
45
+ this.poll().catch((err) => {
46
+ this.deps.onError?.(`Wiki poll failed: ${err instanceof Error ? err.message : String(err)}`);
47
+ });
48
+ this.timer = setInterval(() => {
49
+ this.poll().catch((err) => {
50
+ this.deps.onError?.(`Wiki poll failed: ${err instanceof Error ? err.message : String(err)}`);
51
+ });
52
+ }, this.intervalSecs * 1000);
53
+ }
54
+ /** Stop the polling loop. */
55
+ stop() {
56
+ if (!this._running)
57
+ return;
58
+ this._running = false;
59
+ if (this.timer !== undefined) {
60
+ clearInterval(this.timer);
61
+ this.timer = undefined;
62
+ }
63
+ }
64
+ /** Execute a single poll cycle. Exposed for testing. */
65
+ async poll() {
66
+ const result = await this.deps.useCases.scan();
67
+ this._pollCount++;
68
+ this._lastPollAt = new Date().toISOString();
69
+ if (!result.success) {
70
+ this.deps.onError?.(`Scan failed: ${result.error}`);
71
+ return undefined;
72
+ }
73
+ const scan = result.data;
74
+ if (scan.newCommentsFound === 0)
75
+ return undefined;
76
+ const notification = {
77
+ pagesScanned: scan.pagesScanned,
78
+ newCommentsFound: scan.newCommentsFound,
79
+ existingSkipped: scan.existingSkipped,
80
+ autoRepliesFiltered: scan.autoRepliesFiltered,
81
+ summary: `${scan.newCommentsFound} new wiki comment(s) detected across ${scan.pagesScanned} page(s)`,
82
+ };
83
+ this.deps.onNewComments?.(notification);
84
+ return notification;
85
+ }
86
+ }
87
+ //# sourceMappingURL=poll-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll-service.js","sourceRoot":"","sources":["../../../src/application/wiki-feedback/poll-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAwBH,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAOf;IACA;IAPX,KAAK,CAA6C;IAClD,QAAQ,GAAG,KAAK,CAAC;IACjB,UAAU,GAAG,CAAC,CAAC;IACf,WAAW,CAAqB;IAExC,YACmB,IAAyB,EACzB,YAAoB;QADpB,SAAI,GAAJ,IAAI,CAAqB;QACzB,iBAAY,GAAZ,YAAY,CAAQ;QAErC,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,OAAO,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEhD,uCAAuC;IACvC,IAAI,SAAS,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnD,sCAAsC;IACtC,IAAI,UAAU,KAAyB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAEjE,wDAAwD;IACxD,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,oCAAoC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CACjB,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACxE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CACjB,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACxE,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,6BAA6B;IAC7B,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACpD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,gBAAgB,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAElD,MAAM,YAAY,GAAyB;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,wCAAwC,IAAI,CAAC,YAAY,UAAU;SACrG,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC;QACxC,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Wiki Feedback Application — Use Cases
3
+ *
4
+ * Orchestrates wiki feedback operations: scan pages for new comments,
5
+ * list pending items, triage with type/priority, create kanban cards,
6
+ * and dismiss irrelevant feedback. Uses domain entities and repository
7
+ * ports — zero infrastructure dependencies.
8
+ *
9
+ * SOLID: SRP — wiki feedback workflow orchestration only
10
+ * SOLID: DIP — depends on domain ports and repository interfaces
11
+ * DDD: Application Service pattern with Result returns
12
+ */
13
+ import type { Result } from "../../domain/shared/value-objects.js";
14
+ import type { WikiFeedbackRepository } from "../../domain/wiki-feedback/repositories.js";
15
+ import type { WikiClientPort } from "../../domain/wiki-feedback/ports.js";
16
+ import type { MonitoredPageConfig } from "../../domain/config/value-objects.js";
17
+ /** Response DTO for a single feedback item. */
18
+ export interface WikiFeedbackResponse {
19
+ readonly id: string;
20
+ readonly azureCommentId: number;
21
+ readonly commentText: string;
22
+ readonly authorDisplayName: string;
23
+ readonly authorUniqueName: string;
24
+ readonly pageId: number;
25
+ readonly pagePath: string;
26
+ readonly status: string;
27
+ readonly feedbackType: string | null;
28
+ readonly priority: string | null;
29
+ readonly cardId: string | null;
30
+ readonly dismissReason: string | null;
31
+ readonly detectedAt: string;
32
+ readonly triagedAt: string | null;
33
+ readonly resolvedAt: string | null;
34
+ readonly commentCreatedDate: string;
35
+ }
36
+ /** Request DTO for triaging a feedback item. */
37
+ export interface TriageFeedbackRequest {
38
+ readonly feedbackId: string;
39
+ readonly feedbackType: string;
40
+ readonly priority: string;
41
+ }
42
+ /** Request DTO for creating a card from feedback. */
43
+ export interface CreateCardFromFeedbackRequest {
44
+ readonly feedbackId: string;
45
+ readonly title?: string;
46
+ readonly description?: string;
47
+ readonly epicId?: string;
48
+ }
49
+ /** Request DTO for dismissing a feedback item. */
50
+ export interface DismissFeedbackRequest {
51
+ readonly feedbackId: string;
52
+ readonly reason: string;
53
+ }
54
+ /** Summary returned after a scan operation. */
55
+ export interface ScanResult {
56
+ readonly pagesScanned: number;
57
+ readonly newCommentsFound: number;
58
+ readonly existingSkipped: number;
59
+ readonly autoRepliesFiltered: number;
60
+ }
61
+ /**
62
+ * Callback to create a kanban card from feedback.
63
+ * Injected from the kanban BC — avoids direct cross-context dependency.
64
+ * Returns the created card ID on success.
65
+ */
66
+ export type CreateCardCallback = (params: {
67
+ readonly title: string;
68
+ readonly workspace: string;
69
+ readonly priority?: string;
70
+ readonly description?: string;
71
+ readonly epicId?: string;
72
+ }) => Promise<Result<{
73
+ readonly id: string;
74
+ }>>;
75
+ export interface WikiFeedbackUseCasesDeps {
76
+ readonly feedbackRepo: WikiFeedbackRepository;
77
+ readonly wikiClient: WikiClientPort;
78
+ readonly createCard: CreateCardCallback;
79
+ readonly workspace: string;
80
+ readonly wikiIdentifier: string;
81
+ readonly monitoredPages: readonly MonitoredPageConfig[];
82
+ readonly autoReply: boolean;
83
+ readonly autoReplyPrefix: string;
84
+ }
85
+ /**
86
+ * Application use cases for wiki feedback processing.
87
+ * Orchestrates scan → triage → card creation / dismiss lifecycle.
88
+ */
89
+ export declare class WikiFeedbackUseCases {
90
+ private readonly deps;
91
+ constructor(deps: WikiFeedbackUseCasesDeps);
92
+ /**
93
+ * Scan all monitored wiki pages for new comments.
94
+ * Creates WikiFeedbackItem for each new comment not yet tracked.
95
+ * Filters out auto-reply comments posted by JARVIS.
96
+ */
97
+ scan(): Promise<Result<ScanResult>>;
98
+ /** List pending (untriaged) feedback items. */
99
+ listPending(limit?: number): Promise<Result<readonly WikiFeedbackResponse[]>>;
100
+ /** List feedback items by status. */
101
+ listByStatus(status: string, limit?: number): Promise<Result<readonly WikiFeedbackResponse[]>>;
102
+ /** List recent feedback items across all statuses. */
103
+ listRecent(limit?: number): Promise<Result<readonly WikiFeedbackResponse[]>>;
104
+ /** Triage a pending feedback item: assign type and priority. */
105
+ triage(request: TriageFeedbackRequest): Promise<Result<WikiFeedbackResponse>>;
106
+ /**
107
+ * Create a kanban card from a triaged feedback item.
108
+ * Optionally posts an auto-reply on the wiki page.
109
+ */
110
+ createCard(request: CreateCardFromFeedbackRequest): Promise<Result<WikiFeedbackResponse>>;
111
+ /** Dismiss a feedback item with a reason. */
112
+ dismiss(request: DismissFeedbackRequest): Promise<Result<WikiFeedbackResponse>>;
113
+ private postAutoReply;
114
+ }
115
+ //# sourceMappingURL=use-cases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-cases.d.ts","sourceRoot":"","sources":["../../../src/application/wiki-feedback/use-cases.ts"],"names":[],"mappings":"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"}