@pellux/goodvibes-sdk 0.33.25 → 0.33.27

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 (34) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +1090 -4
  2. package/dist/platform/agents/worktree.d.ts +3 -0
  3. package/dist/platform/agents/worktree.d.ts.map +1 -1
  4. package/dist/platform/agents/worktree.js +64 -2
  5. package/dist/platform/agents/wrfc-controller.d.ts +3 -1
  6. package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
  7. package/dist/platform/agents/wrfc-controller.js +59 -9
  8. package/dist/platform/control-plane/method-catalog-runtime.d.ts.map +1 -1
  9. package/dist/platform/control-plane/method-catalog-runtime.js +150 -2
  10. package/dist/platform/daemon/facade-composition.d.ts.map +1 -1
  11. package/dist/platform/daemon/facade-composition.js +2 -0
  12. package/dist/platform/daemon/http/mcp-routes.d.ts +13 -0
  13. package/dist/platform/daemon/http/mcp-routes.d.ts.map +1 -0
  14. package/dist/platform/daemon/http/mcp-routes.js +128 -0
  15. package/dist/platform/daemon/http/router.d.ts +2 -0
  16. package/dist/platform/daemon/http/router.d.ts.map +1 -1
  17. package/dist/platform/daemon/http/router.js +12 -0
  18. package/dist/platform/git/service.d.ts +4 -0
  19. package/dist/platform/git/service.d.ts.map +1 -1
  20. package/dist/platform/git/service.js +33 -0
  21. package/dist/platform/mcp/config.d.ts +27 -0
  22. package/dist/platform/mcp/config.d.ts.map +1 -1
  23. package/dist/platform/mcp/config.js +165 -46
  24. package/dist/platform/mcp/index.d.ts +3 -3
  25. package/dist/platform/mcp/index.d.ts.map +1 -1
  26. package/dist/platform/mcp/index.js +1 -1
  27. package/dist/platform/mcp/mcp-api.d.ts +24 -0
  28. package/dist/platform/mcp/mcp-api.d.ts.map +1 -1
  29. package/dist/platform/mcp/mcp-api.js +12 -0
  30. package/dist/platform/mcp/registry.d.ts +27 -2
  31. package/dist/platform/mcp/registry.d.ts.map +1 -1
  32. package/dist/platform/mcp/registry.js +106 -8
  33. package/dist/platform/version.js +1 -1
  34. package/package.json +9 -9
@@ -22,6 +22,8 @@ export declare class AgentWorktree {
22
22
  * Returns true if a merge was performed, false if no changes were found.
23
23
  */
24
24
  merge(agentId: string): Promise<boolean>;
25
+ commitWorkingTree(message: string): Promise<string | null>;
26
+ currentHead(): Promise<string | null>;
25
27
  /**
26
28
  * Remove the worktree without merging (cancel/error path).
27
29
  */
@@ -33,6 +35,7 @@ export declare class AgentWorktree {
33
35
  * the current branch (the main working tree HEAD).
34
36
  */
35
37
  private _hasChanges;
38
+ private _branchExists;
36
39
  /**
37
40
  * Force-remove a worktree directory.
38
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/worktree.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,GAAG,EAAE,MAAM;IAIvB;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9C;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B9C;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7C,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAInB;;;OAGG;YACW,WAAW;IAezB;;OAEG;YACW,eAAe;IAgB7B;;OAEG;YACW,aAAa;CAQ5B"}
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/worktree.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;gBAErB,GAAG,EAAE,MAAM;IAIvB;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9C;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqCxC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmC1D,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAU3C;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7C,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,WAAW;IAInB;;;OAGG;YACW,WAAW;YAeX,aAAa;IAU3B;;OAEG;YACW,eAAe;IAgB7B;;OAEG;YACW,aAAa;CAQ5B"}
@@ -39,16 +39,24 @@ export class AgentWorktree {
39
39
  const worktreePath = this._worktreePath(agentId);
40
40
  const branch = this._branchName(agentId);
41
41
  logger.debug('AgentWorktree.merge', { agentId, worktreePath, branch });
42
+ if (!(await this._branchExists(branch))) {
43
+ logger.debug('AgentWorktree.merge: branch missing, skipping merge', { agentId, branch });
44
+ return false;
45
+ }
42
46
  // Check if the agent branch has any commits beyond base
43
47
  const hasChanges = await this._hasChanges(worktreePath, branch);
44
48
  if (!hasChanges) {
45
49
  logger.debug('AgentWorktree.merge: no changes, skipping merge', { agentId });
46
- await this._removeWorktree(worktreePath);
50
+ if (existsSync(worktreePath)) {
51
+ await this._removeWorktree(worktreePath);
52
+ }
47
53
  await this._deleteBranch(branch);
48
54
  return false;
49
55
  }
50
56
  // Remove worktree first (required before merging the branch)
51
- await this._removeWorktree(worktreePath);
57
+ if (existsSync(worktreePath)) {
58
+ await this._removeWorktree(worktreePath);
59
+ }
52
60
  // Merge the branch
53
61
  await this.git.merge(branch);
54
62
  // Clean up the agent branch
@@ -56,6 +64,50 @@ export class AgentWorktree {
56
64
  logger.debug('AgentWorktree.merge: complete', { agentId });
57
65
  return true;
58
66
  }
67
+ async commitWorkingTree(message) {
68
+ const git = simpleGit({ baseDir: this.git.getCwd() });
69
+ const status = await git.raw([
70
+ 'status',
71
+ '--porcelain',
72
+ '--untracked-files=all',
73
+ '--',
74
+ '.',
75
+ ':(exclude).goodvibes',
76
+ ':(exclude).goodvibes/**',
77
+ ]);
78
+ if (status.trim().length === 0) {
79
+ logger.debug('AgentWorktree.commitWorkingTree: no direct working tree changes');
80
+ return null;
81
+ }
82
+ await git.raw(['add', '--all', '--', '.', ':(exclude).goodvibes', ':(exclude).goodvibes/**']);
83
+ try {
84
+ const result = await this.git.commit(message, {
85
+ fallbackIdentity: { name: 'GoodVibes', email: 'goodvibes@local' },
86
+ });
87
+ logger.debug('AgentWorktree.commitWorkingTree: committed direct working tree changes', {
88
+ hash: result.hash,
89
+ });
90
+ return result.hash;
91
+ }
92
+ catch (error) {
93
+ const message = summarizeError(error).toLowerCase();
94
+ if (message.includes('nothing to commit') || message.includes('no changes added to commit')) {
95
+ logger.debug('AgentWorktree.commitWorkingTree: no committable changes after staging');
96
+ return null;
97
+ }
98
+ throw error;
99
+ }
100
+ }
101
+ async currentHead() {
102
+ try {
103
+ const git = simpleGit({ baseDir: this.git.getCwd() });
104
+ return (await git.raw(['rev-parse', 'HEAD'])).trim();
105
+ }
106
+ catch (error) {
107
+ logger.warn('AgentWorktree.currentHead failed', { error: summarizeError(error) });
108
+ return null;
109
+ }
110
+ }
59
111
  /**
60
112
  * Remove the worktree without merging (cancel/error path).
61
113
  */
@@ -98,6 +150,16 @@ export class AgentWorktree {
98
150
  return false;
99
151
  }
100
152
  }
153
+ async _branchExists(branch) {
154
+ try {
155
+ const wgit = simpleGit({ baseDir: this.git.getCwd() });
156
+ await wgit.raw(['rev-parse', '--verify', '--quiet', branch]);
157
+ return true;
158
+ }
159
+ catch {
160
+ return false;
161
+ }
162
+ }
101
163
  /**
102
164
  * Force-remove a worktree directory.
103
165
  */
@@ -9,7 +9,7 @@ import type { RuntimeEventBus } from '../runtime/events/index.js';
9
9
  import type { ProjectWorkPlanTaskCreateInput, ProjectWorkPlanTaskUpdateInput } from '../knowledge/project-planning/index.js';
10
10
  import { type AgentManagerLike } from './wrfc-config.js';
11
11
  export { extractScoreFromText, extractPassedFromText, extractIssuesFromText } from './wrfc-reporting.js';
12
- type WrfcWorktreeOps = Pick<AgentWorktree, 'merge' | 'cleanup'>;
12
+ type WrfcWorktreeOps = Pick<AgentWorktree, 'merge' | 'cleanup'> & Partial<Pick<AgentWorktree, 'commitWorkingTree' | 'currentHead'>>;
13
13
  type WrfcWorkPlanService = {
14
14
  createWorkPlanTask(input: ProjectWorkPlanTaskCreateInput): Promise<unknown>;
15
15
  updateWorkPlanTask(input: ProjectWorkPlanTaskUpdateInput): Promise<unknown>;
@@ -69,6 +69,8 @@ export declare class WrfcController {
69
69
  private scheduleChainCleanup;
70
70
  private checkAndRunGatesForAll;
71
71
  private autoCommit;
72
+ private autoCommitCandidateAgentIds;
73
+ private autoCommitMessage;
72
74
  private failChain;
73
75
  private cancelRunningChildren;
74
76
  private hasRunningChild;
@@ -1 +1 @@
1
- {"version":3,"file":"wrfc-controller.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/wrfc-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AASnD,OAAO,KAAK,EAGV,SAAS,EACT,sBAAsB,EAMvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EACV,8BAA8B,EAE9B,8BAA8B,EAC/B,MAAM,wCAAwC,CAAC;AAUhD,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAmB1B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAezG,KAAK,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;AAChE,KAAK,mBAAmB,GAAG;IACzB,kBAAkB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,kBAAkB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7E,CAAC;AASF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IACpE,OAAO,CAAC,WAAW,CAAuE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAC3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoC;gBAGrE,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,EAClD,IAAI,EAAE;QACJ,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;QACxC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC;QACnE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,eAAe,CAAC,GAAG,SAAS,CAAC;QAC9D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;KAChE;IAcH,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS;IAyBhD,YAAY,IAAI,MAAM;IAEtB,UAAU,IAAI,WAAW;IAEzB,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,YAAY,CAAC,GAAG,IAAI;IAIzF,aAAa,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI;IAOhD,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;IAIzE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAE3C,UAAU,IAAI,SAAS,EAAE;IAEzB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAwBrC,qBAAqB,IAAI,MAAM;IAQ/B,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,cAAc;YA2BR,eAAe;IAiF7B,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,WAAW;YAyDL,aAAa;IA4G3B,OAAO,CAAC,QAAQ;YAuEF,QAAQ;IAuBtB,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,0BAA0B;YA4CpB,kBAAkB;IAoHhC,OAAO,CAAC,oBAAoB;YASd,sBAAsB;YAsCtB,UAAU;IAuCxB,OAAO,CAAC,SAAS;IAuCjB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,WAAW;YAqCL,WAAW;IAyBzB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;IAEtB,OAAO,CAAC,kBAAkB;IAE1B,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,eAAe;IA8CvB,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,6BAA6B;IAoDrC,OAAO,CAAC,wBAAwB;IA0EhC,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,4BAA4B;IA0BpC,OAAO,CAAC,oBAAoB;YAad,8BAA8B;IAsB5C,OAAO,CAAC,gCAAgC;IAsExC,OAAO,CAAC,0BAA0B;YAgDpB,4BAA4B;IAmE1C,OAAO,CAAC,uBAAuB;IAuD/B,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,kCAAkC;IAiB1C,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,sBAAsB;IAqD9B,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,gCAAgC;IAgCxC,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,eAAe;CAKxB"}
1
+ {"version":3,"file":"wrfc-controller.d.ts","sourceRoot":"","sources":["../../../src/platform/agents/wrfc-controller.ts"],"names":[],"mappings":"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"}
@@ -733,11 +733,9 @@ export class WrfcController {
733
733
  }
734
734
  async autoCommit(chain) {
735
735
  this.transition(chain, 'committing');
736
- const agentId = chain.allAgentIds.length > 0
737
- ? chain.allAgentIds[chain.allAgentIds.length - 1]
738
- : (chain.fixerAgentId ?? chain.engineerAgentId);
739
- if (!agentId) {
740
- this.failChain(chain, 'autoCommit: no agent ID found on chain');
736
+ const commitCandidateIds = this.autoCommitCandidateAgentIds(chain);
737
+ if (commitCandidateIds.length === 0) {
738
+ this.failChain(chain, 'autoCommit: no write-capable WRFC agent found on chain');
741
739
  return;
742
740
  }
743
741
  if (!existsSync(join(this.projectRoot, '.git'))) {
@@ -746,11 +744,29 @@ export class WrfcController {
746
744
  return;
747
745
  }
748
746
  const worktree = this.createWorktree();
747
+ let completed = false;
749
748
  try {
750
- const merged = await worktree.merge(agentId);
751
- emitWrfcAutoCommitted(this.runtimeBus, this.sessionId, chain.id);
749
+ const commitMessage = this.autoCommitMessage(chain);
750
+ const directCommitHash = worktree.commitWorkingTree
751
+ ? await worktree.commitWorkingTree(commitMessage)
752
+ : null;
753
+ let mergedCount = 0;
754
+ for (const agentId of commitCandidateIds) {
755
+ if (await worktree.merge(agentId)) {
756
+ mergedCount += 1;
757
+ }
758
+ }
759
+ const headHash = mergedCount > 0 && worktree.currentHead ? await worktree.currentHead() : directCommitHash;
760
+ emitWrfcAutoCommitted(this.runtimeBus, this.sessionId, chain.id, headHash ?? undefined);
752
761
  this.completeChainAsPassed(chain);
753
- logger.debug('WrfcController.autoCommit: success', { chainId: chain.id, agentId, merged });
762
+ completed = true;
763
+ logger.debug('WrfcController.autoCommit: success', {
764
+ chainId: chain.id,
765
+ commitCandidateIds,
766
+ directCommitHash,
767
+ mergedCount,
768
+ headHash,
769
+ });
754
770
  }
755
771
  catch (error) {
756
772
  const reason = summarizeError(error);
@@ -758,7 +774,10 @@ export class WrfcController {
758
774
  this.failChain(chain, `autoCommit failed: ${reason}`);
759
775
  }
760
776
  finally {
761
- for (const id of chain.allAgentIds) {
777
+ const cleanupIds = completed
778
+ ? chain.allAgentIds
779
+ : chain.allAgentIds.filter((id) => !commitCandidateIds.includes(id));
780
+ for (const id of cleanupIds) {
762
781
  worktree.cleanup(id).catch((error) => {
763
782
  logger.warn('WrfcController.autoCommit: cleanup failed', {
764
783
  agentId: id,
@@ -768,6 +787,37 @@ export class WrfcController {
768
787
  }
769
788
  }
770
789
  }
790
+ autoCommitCandidateAgentIds(chain) {
791
+ const candidates = [];
792
+ const add = (agentId) => {
793
+ if (agentId && !candidates.includes(agentId))
794
+ candidates.push(agentId);
795
+ };
796
+ if (chain.subtasks && chain.subtasks.length > 0) {
797
+ for (const subtask of chain.subtasks) {
798
+ add(subtask.fixerAgentId ?? subtask.engineerAgentId);
799
+ }
800
+ add(chain.integratorAgentId);
801
+ return candidates;
802
+ }
803
+ add(chain.fixerAgentId ?? chain.engineerAgentId);
804
+ add(chain.integratorAgentId);
805
+ if (candidates.length > 0) {
806
+ return candidates;
807
+ }
808
+ const writeRoles = new Set(['engineer', 'fixer', 'integrator']);
809
+ for (const agentId of chain.allAgentIds) {
810
+ const recordRole = this.agentManager.getStatus(agentId)?.wrfcRole;
811
+ const role = recordRole ?? this.workPlanRoleForAgent(chain, agentId);
812
+ if (role && writeRoles.has(role))
813
+ add(agentId);
814
+ }
815
+ return candidates;
816
+ }
817
+ autoCommitMessage(chain) {
818
+ const firstLine = chain.task.trim().replace(/\s+/g, ' ').slice(0, 72) || chain.id;
819
+ return `WRFC: ${firstLine}`;
820
+ }
771
821
  failChain(chain, reason) {
772
822
  if (chain.state === 'pending') {
773
823
  this.chainQueue = this.chainQueue.filter((queued) => queued.record.id !== chain.ownerAgentId);
@@ -1 +1 @@
1
- {"version":3,"file":"method-catalog-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/method-catalog-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AA4C1E,eAAO,MAAM,sCAAsC,EAAE,SAAS,uBAAuB,EA8RpF,CAAC"}
1
+ {"version":3,"file":"method-catalog-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/method-catalog-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAqH1E,eAAO,MAAM,sCAAsC,EAAE,SAAS,uBAAuB,EA4WpF,CAAC"}
@@ -1,7 +1,155 @@
1
- import { EMPTY_OBJECT_SCHEMA, STRING_SCHEMA, NUMBER_SCHEMA, objectSchema, listOutputSchema, entityOutputSchema, bodyEnvelopeSchema, methodDescriptor, runtimeEventId, } from './method-catalog-shared.js';
2
- import { nullableSchema } from './operator-contract-schemas-shared.js';
1
+ import { EMPTY_OBJECT_SCHEMA, BOOLEAN_SCHEMA, STRING_SCHEMA, NUMBER_SCHEMA, objectSchema, listOutputSchema, entityOutputSchema, bodyEnvelopeSchema, methodDescriptor, runtimeEventId, arraySchema, } from './method-catalog-shared.js';
2
+ import { enumSchema, nullableSchema } from './operator-contract-schemas-shared.js';
3
3
  import { CONTINUITY_SNAPSHOT_SCHEMA, DISTRIBUTED_NODE_HOST_CONTRACT_SCHEMA, HEALTH_SNAPSHOT_SCHEMA, INTELLIGENCE_SNAPSHOT_SCHEMA, MEMORY_DOCTOR_REPORT_SCHEMA, MEMORY_VECTOR_STATS_SCHEMA, PROVIDER_ACCOUNT_SNAPSHOT_SCHEMA, PROVIDER_RUNTIME_SNAPSHOT_SCHEMA, PROVIDER_USAGE_SNAPSHOT_SCHEMA, REMOTE_PAIR_APPROVAL_OUTPUT_SCHEMA, REMOTE_PAIR_REQUEST_OUTPUT_SCHEMA, REMOTE_PAIR_REQUESTS_OUTPUT_SCHEMA, REMOTE_PEERS_OUTPUT_SCHEMA, REMOTE_PAIR_REQUEST_ACTION_INPUT_SCHEMA, REMOTE_PEER_DISCONNECT_INPUT_SCHEMA, REMOTE_PEER_INVOKE_INPUT_SCHEMA, REMOTE_PEER_INVOKE_OUTPUT_SCHEMA, REMOTE_PEER_OUTPUT_SCHEMA, REMOTE_PEER_TOKEN_REVOKE_INPUT_SCHEMA, REMOTE_PEER_TOKEN_ROTATE_INPUT_SCHEMA, REMOTE_PEER_TOKEN_ROTATE_OUTPUT_SCHEMA, REMOTE_SNAPSHOT_SCHEMA, REMOTE_WORK_LIST_OUTPUT_SCHEMA, REMOTE_WORK_CANCEL_INPUT_SCHEMA, REMOTE_WORK_OUTPUT_SCHEMA, SECURITY_SETTINGS_REPORT_SCHEMA, SETTINGS_SNAPSHOT_SCHEMA, WORKTREE_SNAPSHOT_SCHEMA, } from './operator-contract-schemas.js';
4
+ const MCP_SCOPE_SCHEMA = enumSchema(['project', 'global']);
5
+ const MCP_SERVER_CONFIG_SCHEMA = objectSchema({
6
+ name: STRING_SCHEMA,
7
+ command: STRING_SCHEMA,
8
+ args: arraySchema(STRING_SCHEMA),
9
+ env: objectSchema({}, [], { additionalProperties: true }),
10
+ envKeys: arraySchema(STRING_SCHEMA),
11
+ role: nullableSchema(STRING_SCHEMA),
12
+ trustMode: nullableSchema(STRING_SCHEMA),
13
+ allowedPaths: arraySchema(STRING_SCHEMA),
14
+ allowedHosts: arraySchema(STRING_SCHEMA),
15
+ }, ['name', 'command']);
16
+ const MCP_CONFIG_SOURCE_SCHEMA = objectSchema({
17
+ scope: STRING_SCHEMA,
18
+ kind: STRING_SCHEMA,
19
+ path: STRING_SCHEMA,
20
+ writable: BOOLEAN_SCHEMA,
21
+ }, ['scope', 'kind', 'path', 'writable']);
22
+ const MCP_CONFIG_SERVER_SCHEMA = objectSchema({
23
+ name: STRING_SCHEMA,
24
+ command: STRING_SCHEMA,
25
+ args: arraySchema(STRING_SCHEMA),
26
+ envKeys: arraySchema(STRING_SCHEMA),
27
+ role: nullableSchema(STRING_SCHEMA),
28
+ trustMode: nullableSchema(STRING_SCHEMA),
29
+ allowedPaths: arraySchema(STRING_SCHEMA),
30
+ allowedHosts: arraySchema(STRING_SCHEMA),
31
+ source: MCP_CONFIG_SOURCE_SCHEMA,
32
+ }, ['name', 'command', 'args', 'envKeys', 'role', 'trustMode', 'allowedPaths', 'allowedHosts', 'source']);
33
+ const MCP_RELOAD_SERVER_SCHEMA = objectSchema({
34
+ name: STRING_SCHEMA,
35
+ action: enumSchema(['added', 'changed', 'removed', 'unchanged']),
36
+ connected: BOOLEAN_SCHEMA,
37
+ }, ['name', 'action', 'connected']);
38
+ const MCP_RELOAD_RESULT_SCHEMA = objectSchema({
39
+ added: NUMBER_SCHEMA,
40
+ changed: NUMBER_SCHEMA,
41
+ removed: NUMBER_SCHEMA,
42
+ unchanged: NUMBER_SCHEMA,
43
+ servers: arraySchema(MCP_RELOAD_SERVER_SCHEMA),
44
+ }, ['added', 'changed', 'removed', 'unchanged', 'servers']);
45
+ const MCP_CONFIG_RESPONSE_SCHEMA = objectSchema({
46
+ locations: arraySchema(MCP_CONFIG_SOURCE_SCHEMA),
47
+ servers: arraySchema(MCP_CONFIG_SERVER_SCHEMA),
48
+ }, ['locations', 'servers']);
49
+ const MCP_CONFIG_MUTATION_RESPONSE_SCHEMA = objectSchema({
50
+ scope: MCP_SCOPE_SCHEMA,
51
+ path: STRING_SCHEMA,
52
+ removed: BOOLEAN_SCHEMA,
53
+ reload: MCP_RELOAD_RESULT_SCHEMA,
54
+ config: MCP_CONFIG_RESPONSE_SCHEMA,
55
+ }, ['scope', 'path', 'reload', 'config']);
56
+ const MCP_SERVER_STATUS_SCHEMA = objectSchema({
57
+ name: STRING_SCHEMA,
58
+ connected: BOOLEAN_SCHEMA,
59
+ }, ['name', 'connected']);
60
+ const MCP_SERVERS_RESPONSE_SCHEMA = objectSchema({
61
+ servers: arraySchema(MCP_SERVER_STATUS_SCHEMA),
62
+ security: arraySchema(objectSchema({}, [], { additionalProperties: true })),
63
+ sandboxBindings: arraySchema(objectSchema({}, [], { additionalProperties: true })),
64
+ }, ['servers', 'security', 'sandboxBindings']);
65
+ const MCP_TOOL_SCHEMA = objectSchema({
66
+ qualifiedName: STRING_SCHEMA,
67
+ serverName: STRING_SCHEMA,
68
+ toolName: STRING_SCHEMA,
69
+ description: STRING_SCHEMA,
70
+ }, ['qualifiedName', 'serverName', 'toolName', 'description']);
71
+ const MCP_TOOLS_RESPONSE_SCHEMA = objectSchema({
72
+ tools: arraySchema(MCP_TOOL_SCHEMA),
73
+ }, ['tools']);
4
74
  export const builtinGatewayRuntimeMethodDescriptors = [
75
+ methodDescriptor({
76
+ id: 'mcp.config.get',
77
+ title: 'MCP Effective Config',
78
+ description: 'Return effective MCP config from global, external, and project sources. Environment values are redacted to envKeys.',
79
+ category: 'mcp',
80
+ scopes: ['read:mcp'],
81
+ http: { method: 'GET', path: '/api/mcp/config' },
82
+ events: [runtimeEventId('mcp')],
83
+ inputSchema: EMPTY_OBJECT_SCHEMA,
84
+ outputSchema: MCP_CONFIG_RESPONSE_SCHEMA,
85
+ }),
86
+ methodDescriptor({
87
+ id: 'mcp.servers.list',
88
+ title: 'MCP Servers List',
89
+ description: 'Return configured MCP servers, runtime security posture, and sandbox bindings.',
90
+ category: 'mcp',
91
+ scopes: ['read:mcp'],
92
+ http: { method: 'GET', path: '/api/mcp/servers' },
93
+ events: [runtimeEventId('mcp')],
94
+ inputSchema: EMPTY_OBJECT_SCHEMA,
95
+ outputSchema: MCP_SERVERS_RESPONSE_SCHEMA,
96
+ }),
97
+ methodDescriptor({
98
+ id: 'mcp.tools.list',
99
+ title: 'MCP Tools List',
100
+ description: 'Return currently connected MCP tools.',
101
+ category: 'mcp',
102
+ scopes: ['read:mcp'],
103
+ http: { method: 'GET', path: '/api/mcp/tools' },
104
+ events: [runtimeEventId('mcp')],
105
+ inputSchema: EMPTY_OBJECT_SCHEMA,
106
+ outputSchema: MCP_TOOLS_RESPONSE_SCHEMA,
107
+ }),
108
+ methodDescriptor({
109
+ id: 'mcp.config.reload',
110
+ title: 'Reload MCP Config',
111
+ description: 'Reload effective MCP config and reconnect added, removed, or changed servers without daemon restart.',
112
+ category: 'mcp',
113
+ scopes: ['write:mcp'],
114
+ access: 'admin',
115
+ http: { method: 'POST', path: '/api/mcp/reload' },
116
+ events: [runtimeEventId('mcp')],
117
+ inputSchema: EMPTY_OBJECT_SCHEMA,
118
+ outputSchema: objectSchema({
119
+ reload: MCP_RELOAD_RESULT_SCHEMA,
120
+ config: MCP_CONFIG_RESPONSE_SCHEMA,
121
+ }, ['reload', 'config']),
122
+ }),
123
+ methodDescriptor({
124
+ id: 'mcp.servers.upsert',
125
+ title: 'Upsert MCP Server',
126
+ description: 'Persist a project/global MCP server config and reconnect the changed runtime server without daemon restart.',
127
+ category: 'mcp',
128
+ scopes: ['write:mcp'],
129
+ access: 'admin',
130
+ http: { method: 'POST', path: '/api/mcp/config/servers' },
131
+ events: [runtimeEventId('mcp')],
132
+ inputSchema: bodyEnvelopeSchema({
133
+ scope: MCP_SCOPE_SCHEMA,
134
+ server: MCP_SERVER_CONFIG_SCHEMA,
135
+ }, ['server']),
136
+ outputSchema: MCP_CONFIG_MUTATION_RESPONSE_SCHEMA,
137
+ }),
138
+ methodDescriptor({
139
+ id: 'mcp.servers.remove',
140
+ title: 'Remove MCP Server',
141
+ description: 'Remove a project/global MCP server config and disconnect it without daemon restart.',
142
+ category: 'mcp',
143
+ scopes: ['write:mcp'],
144
+ access: 'admin',
145
+ http: { method: 'DELETE', path: '/api/mcp/config/servers/{serverName}' },
146
+ events: [runtimeEventId('mcp')],
147
+ inputSchema: objectSchema({
148
+ serverName: STRING_SCHEMA,
149
+ scope: MCP_SCOPE_SCHEMA,
150
+ }, ['serverName']),
151
+ outputSchema: MCP_CONFIG_MUTATION_RESPONSE_SCHEMA,
152
+ }),
5
153
  methodDescriptor({
6
154
  id: 'remote.snapshot',
7
155
  title: 'Remote Runtime Snapshot',
@@ -1 +1 @@
1
- {"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../src/platform/daemon/facade-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAqBvD,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,wCAAwC,CAAC;AAG3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAKpE,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACvC,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,CA8HvG;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,2BAA2B,CAgJ5F;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,yBAAyB,CAyK3B;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,aAAa,EAAE,OAAO,2BAA2B,EAAE,mBAAmB,CAAC;IAChF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,yBAAyB,EAAE,WAAW,GAAG,QAAQ,CAAC;IACzK,QAAQ,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,yBAAyB,EAAE,sBAAsB,GAAG,SAAS,EAAE,KAAK,EAAE;QAC5H,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACzC,KAAK,IAAI,CAAC;CACZ,GAAG,IAAI,CAoBP"}
1
+ {"version":3,"file":"facade-composition.d.ts","sourceRoot":"","sources":["../../../src/platform/daemon/facade-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAqBvD,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,wCAAwC,CAAC;AAG3G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,YAAY,CAAC;AAKpE,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,GACvC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,sCAAsC,EACvC,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,CA8HvG;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,2BAA2B,CAgJ5F;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,yBAAyB,CA2K3B;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,aAAa,EAAE,OAAO,2BAA2B,EAAE,mBAAmB,CAAC;IAChF,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,yBAAyB,EAAE,WAAW,GAAG,QAAQ,CAAC;IACzK,QAAQ,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,yBAAyB,EAAE,sBAAsB,GAAG,SAAS,EAAE,KAAK,EAAE;QAC5H,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACzC,KAAK,IAAI,CAAC;CACZ,GAAG,IAAI,CAoBP"}
@@ -383,6 +383,8 @@ export function createDaemonFacadeCollaborators(options) {
383
383
  watcherRegistry: runtime.watcherRegistry,
384
384
  voiceService: runtime.voiceService,
385
385
  webSearchService: runtime.webSearchService,
386
+ mcpRegistry: runtime.runtimeServices.mcpRegistry,
387
+ mcpConfigRoots: runtime.runtimeServices.shellPaths,
386
388
  knowledgeService: runtime.knowledgeService,
387
389
  homeGraphService: runtime.homeGraphService,
388
390
  projectPlanningService: runtime.projectPlanningService,
@@ -0,0 +1,13 @@
1
+ import type { McpRegistry } from '../../mcp/registry.js';
2
+ import type { McpConfigRoots } from '../../mcp/config.js';
3
+ import type { JsonRecord } from '../helpers.js';
4
+ interface McpRouteContext {
5
+ readonly mcpRegistry: Pick<McpRegistry, 'getEffectiveConfig' | 'reload' | 'upsertServerConfig' | 'removeServerConfig' | 'listServers' | 'listServerSecurity' | 'listServerSandboxBindings' | 'listAllTools'>;
6
+ readonly roots: McpConfigRoots;
7
+ readonly parseJsonBody: (req: Request) => Promise<JsonRecord | Response>;
8
+ readonly parseOptionalJsonBody: (req: Request) => Promise<JsonRecord | null | Response>;
9
+ readonly requireAdmin: (req: Request) => Response | null;
10
+ }
11
+ export declare function dispatchMcpRoutes(req: Request, context: McpRouteContext): Promise<Response | null>;
12
+ export {};
13
+ //# sourceMappingURL=mcp-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-routes.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/mcp-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,UAAU,eAAe;IACvB,QAAQ,CAAC,WAAW,EAAE,IAAI,CACxB,WAAW,EACT,oBAAoB,GACpB,QAAQ,GACR,oBAAoB,GACpB,oBAAoB,GACpB,aAAa,GACb,oBAAoB,GACpB,2BAA2B,GAC3B,cAAc,CACjB,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IACzE,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,GAAG,QAAQ,CAAC,CAAC;IACxF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC;CAC1D;AAoED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAkExG"}
@@ -0,0 +1,128 @@
1
+ import { jsonErrorResponse } from './error-response.js';
2
+ function isRecord(value) {
3
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
4
+ }
5
+ function stringArray(value) {
6
+ return Array.isArray(value) && value.every((entry) => typeof entry === 'string')
7
+ ? [...value]
8
+ : undefined;
9
+ }
10
+ function stringRecord(value) {
11
+ if (!isRecord(value))
12
+ return undefined;
13
+ const entries = Object.entries(value);
14
+ if (!entries.every((entry) => typeof entry[1] === 'string'))
15
+ return undefined;
16
+ return Object.fromEntries(entries);
17
+ }
18
+ function parseScope(value) {
19
+ return value === 'global' ? 'global' : 'project';
20
+ }
21
+ function parseServerConfig(value) {
22
+ if (!isRecord(value)) {
23
+ return jsonErrorResponse({ error: 'Missing MCP server config object.' }, { status: 400 });
24
+ }
25
+ if (typeof value.name !== 'string' || !value.name.trim()) {
26
+ return jsonErrorResponse({ error: 'MCP server name is required.' }, { status: 400 });
27
+ }
28
+ if (typeof value.command !== 'string' || !value.command.trim()) {
29
+ return jsonErrorResponse({ error: 'MCP server command is required.' }, { status: 400 });
30
+ }
31
+ return {
32
+ name: value.name.trim(),
33
+ command: value.command.trim(),
34
+ args: stringArray(value.args) ?? [],
35
+ env: stringRecord(value.env),
36
+ role: typeof value.role === 'string' ? value.role : undefined,
37
+ trustMode: typeof value.trustMode === 'string' ? value.trustMode : undefined,
38
+ allowedPaths: stringArray(value.allowedPaths),
39
+ allowedHosts: stringArray(value.allowedHosts),
40
+ };
41
+ }
42
+ function redactServer(server) {
43
+ return {
44
+ name: server.name,
45
+ command: server.command,
46
+ args: server.args ?? [],
47
+ envKeys: Object.keys(server.env ?? {}).sort(),
48
+ role: server.role ?? null,
49
+ trustMode: server.trustMode ?? null,
50
+ allowedPaths: server.allowedPaths ?? [],
51
+ allowedHosts: server.allowedHosts ?? [],
52
+ };
53
+ }
54
+ function serializeEffectiveConfig(config) {
55
+ return {
56
+ locations: config.locations,
57
+ servers: config.servers.map((entry) => ({
58
+ ...redactServer(entry.server),
59
+ source: entry.source,
60
+ })),
61
+ };
62
+ }
63
+ export async function dispatchMcpRoutes(req, context) {
64
+ const url = new URL(req.url);
65
+ const { pathname } = url;
66
+ if (pathname === '/api/mcp/config' && req.method === 'GET') {
67
+ return Response.json(serializeEffectiveConfig(context.mcpRegistry.getEffectiveConfig(context.roots)));
68
+ }
69
+ if (pathname === '/api/mcp/servers' && req.method === 'GET') {
70
+ return Response.json({
71
+ servers: context.mcpRegistry.listServers(),
72
+ security: context.mcpRegistry.listServerSecurity(),
73
+ sandboxBindings: context.mcpRegistry.listServerSandboxBindings(),
74
+ });
75
+ }
76
+ if (pathname === '/api/mcp/tools' && req.method === 'GET') {
77
+ return Response.json({ tools: await context.mcpRegistry.listAllTools() });
78
+ }
79
+ if (pathname === '/api/mcp/reload' && req.method === 'POST') {
80
+ const admin = context.requireAdmin(req);
81
+ if (admin)
82
+ return admin;
83
+ return Response.json({
84
+ reload: await context.mcpRegistry.reload(context.roots),
85
+ config: serializeEffectiveConfig(context.mcpRegistry.getEffectiveConfig(context.roots)),
86
+ });
87
+ }
88
+ if (pathname === '/api/mcp/config/servers' && req.method === 'POST') {
89
+ const admin = context.requireAdmin(req);
90
+ if (admin)
91
+ return admin;
92
+ const body = await context.parseJsonBody(req);
93
+ if (body instanceof Response)
94
+ return body;
95
+ const server = parseServerConfig(body.server ?? body);
96
+ if (server instanceof Response)
97
+ return server;
98
+ const scope = parseScope(body.scope);
99
+ const result = await context.mcpRegistry.upsertServerConfig(context.roots, scope, server);
100
+ return Response.json({
101
+ scope,
102
+ path: result.path,
103
+ removed: false,
104
+ reload: result.reload,
105
+ config: serializeEffectiveConfig(context.mcpRegistry.getEffectiveConfig(context.roots)),
106
+ });
107
+ }
108
+ const serverMatch = pathname.match(/^\/api\/mcp\/config\/servers\/([^/]+)$/);
109
+ if (serverMatch && req.method === 'DELETE') {
110
+ const admin = context.requireAdmin(req);
111
+ if (admin)
112
+ return admin;
113
+ const body = await context.parseOptionalJsonBody(req);
114
+ if (body instanceof Response)
115
+ return body;
116
+ const scope = parseScope(body?.scope ?? url.searchParams.get('scope'));
117
+ const serverName = decodeURIComponent(serverMatch[1]);
118
+ const result = await context.mcpRegistry.removeServerConfig(context.roots, scope, serverName);
119
+ return Response.json({
120
+ scope,
121
+ path: result.path,
122
+ removed: result.removed,
123
+ reload: result.reload,
124
+ config: serializeEffectiveConfig(context.mcpRegistry.getEffectiveConfig(context.roots)),
125
+ });
126
+ }
127
+ return null;
128
+ }
@@ -43,6 +43,8 @@ interface DaemonHttpRouterContext {
43
43
  readonly watcherRegistry: WatcherRegistry;
44
44
  readonly voiceService: VoiceService;
45
45
  readonly webSearchService: WebSearchService;
46
+ readonly mcpRegistry: import('../../mcp/registry.js').McpRegistry;
47
+ readonly mcpConfigRoots: import('../../mcp/config.js').McpConfigRoots;
46
48
  readonly knowledgeService: KnowledgeService;
47
49
  readonly homeGraphService: HomeGraphService;
48
50
  readonly projectPlanningService: ProjectPlanningService;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/platform/daemon/http/router.ts"],"names":[],"mappings":"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"}