hoomanjs 1.44.0 → 1.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +1 -1
  2. package/dist/acp/acp-agent.js +0 -6
  3. package/dist/acp/acp-agent.js.map +1 -1
  4. package/dist/chat/app.js +0 -2
  5. package/dist/chat/app.js.map +1 -1
  6. package/dist/cli.js +5 -6
  7. package/dist/cli.js.map +1 -1
  8. package/dist/configure/app.js +469 -105
  9. package/dist/configure/app.js.map +1 -1
  10. package/dist/configure/components/MenuScreen.d.ts +3 -2
  11. package/dist/configure/components/MenuScreen.js +6 -2
  12. package/dist/configure/components/MenuScreen.js.map +1 -1
  13. package/dist/configure/index.js +4 -3
  14. package/dist/configure/index.js.map +1 -1
  15. package/dist/configure/types.d.ts +15 -0
  16. package/dist/core/agent/index.js +57 -36
  17. package/dist/core/agent/index.js.map +1 -1
  18. package/dist/core/agent/lazy-tool-registry.d.ts +42 -0
  19. package/dist/core/agent/lazy-tool-registry.js +126 -0
  20. package/dist/core/agent/lazy-tool-registry.js.map +1 -0
  21. package/dist/core/approvals/intervention.js +8 -3
  22. package/dist/core/approvals/intervention.js.map +1 -1
  23. package/dist/core/mcp/config.d.ts +26 -3
  24. package/dist/core/mcp/config.js +126 -34
  25. package/dist/core/mcp/config.js.map +1 -1
  26. package/dist/core/mcp/manager.d.ts +3 -2
  27. package/dist/core/mcp/manager.js.map +1 -1
  28. package/dist/core/mcp/oauth/provider.js +12 -4
  29. package/dist/core/mcp/oauth/provider.js.map +1 -1
  30. package/dist/core/mcp/oauth/service.js +3 -1
  31. package/dist/core/mcp/oauth/service.js.map +1 -1
  32. package/dist/core/mcp/prefixed-mcp-tool.d.ts +1 -0
  33. package/dist/core/mcp/prefixed-mcp-tool.js +2 -0
  34. package/dist/core/mcp/prefixed-mcp-tool.js.map +1 -1
  35. package/dist/core/modes/definitions.js +4 -0
  36. package/dist/core/modes/definitions.js.map +1 -1
  37. package/dist/core/prompts/modes/agent.md +6 -0
  38. package/dist/core/prompts/modes/plan.md +17 -0
  39. package/dist/core/prompts/session-mode-appendix.js +2 -1
  40. package/dist/core/prompts/session-mode-appendix.js.map +1 -1
  41. package/dist/core/prompts/static/mcp-discovery.md +10 -0
  42. package/dist/core/prompts/static/todo.md +2 -0
  43. package/dist/core/prompts/system.js +1 -0
  44. package/dist/core/prompts/system.js.map +1 -1
  45. package/dist/core/runtime-config.js +4 -0
  46. package/dist/core/runtime-config.js.map +1 -1
  47. package/dist/core/state/active-mcp-tools.d.ts +10 -0
  48. package/dist/core/state/active-mcp-tools.js +22 -0
  49. package/dist/core/state/active-mcp-tools.js.map +1 -0
  50. package/dist/core/state/tool-approvals.js +4 -0
  51. package/dist/core/state/tool-approvals.js.map +1 -1
  52. package/dist/core/subagents/index.d.ts +1 -1
  53. package/dist/core/subagents/index.js +1 -1
  54. package/dist/core/subagents/index.js.map +1 -1
  55. package/dist/core/subagents/registry.d.ts +2 -2
  56. package/dist/core/subagents/registry.js +2 -2
  57. package/dist/core/subagents/registry.js.map +1 -1
  58. package/dist/core/tools/index.d.ts +1 -0
  59. package/dist/core/tools/index.js +1 -0
  60. package/dist/core/tools/index.js.map +1 -1
  61. package/dist/core/tools/mcp-discovery.d.ts +15 -0
  62. package/dist/core/tools/mcp-discovery.js +209 -0
  63. package/dist/core/tools/mcp-discovery.js.map +1 -0
  64. package/dist/core/tools/plan.js +9 -4
  65. package/dist/core/tools/plan.js.map +1 -1
  66. package/dist/exec/approvals.js +7 -3
  67. package/dist/exec/approvals.js.map +1 -1
  68. package/dist/index.d.ts +2 -3
  69. package/dist/index.js +2 -3
  70. package/dist/index.js.map +1 -1
  71. package/package.json +1 -1
  72. package/dist/core/agent/mode-aware-tool-registry.d.ts +0 -18
  73. package/dist/core/agent/mode-aware-tool-registry.js +0 -71
  74. package/dist/core/agent/mode-aware-tool-registry.js.map +0 -1
  75. package/dist/core/agent/sync-tool-registry-mode.d.ts +0 -6
  76. package/dist/core/agent/sync-tool-registry-mode.js +0 -15
  77. package/dist/core/agent/sync-tool-registry-mode.js.map +0 -1
@@ -7,16 +7,16 @@ import { HoomanDefaultModelRetryStrategy } from "./default-retry-strategy.js";
7
7
  import { FlatFileStorage } from "../sessions/flat-file-storage.js";
8
8
  import { LazySessionManager } from "../sessions/lazy-session-manager.js";
9
9
  import { TolerantFileStorage } from "../sessions/tolerant-file-storage.js";
10
- import { createSubagentTools, loadSubagentRegistry, } from "../subagents/index.js";
11
- import { createAskUserTools, createTodoTools, createFetchTools, createFilesystemTools, createGrepTools, clearReadTimeAgentInstructionState, createPlanTools, createSleepTools, createShellTools, createThinkingTools, createTimeTools, createWebSearchTools, } from "../tools/index.js";
10
+ import { createSubagentTools, createSubagentRegistry, } from "../subagents/index.js";
11
+ import { createAskUserTools, createTodoTools, createFetchTools, createFilesystemTools, createGrepTools, clearReadTimeAgentInstructionState, createPlanTools, createSleepTools, createShellTools, createThinkingTools, createTimeTools, createWebSearchTools, createMcpDiscoveryTools, } from "../tools/index.js";
12
12
  import { createSessionModePromptPlugin } from "../prompts/session-mode-appendix.js";
13
13
  import { clearAgentSkillsPromptInjectionState, createAgentSkillsPlugin, } from "../skills/index.js";
14
14
  import { createPromptCachePlugin } from "./prompt-cache-plugin.js";
15
15
  import { createSessionTitlePlugin, } from "./session-title-plugin.js";
16
- import { ModeAwareToolRegistry } from "./mode-aware-tool-registry.js";
17
- import { applySessionMode } from "./sync-tool-registry-mode.js";
16
+ import { LazyToolRegistry } from "./lazy-tool-registry.js";
18
17
  import { clearTodoState } from "../state/todos.js";
19
18
  import { MODE_STATE_KEY } from "../state/session-mode.js";
19
+ import { PrefixedMcpTool } from "../mcp/prefixed-mcp-tool.js";
20
20
  import { YOLO_STATE_KEY } from "../state/yolo.js";
21
21
  import { memoryPath, offloadedContentPath, sessionsPath, } from "../utils/paths.js";
22
22
  const SECTION_BREAK = "\n\n---\n\n";
@@ -27,6 +27,50 @@ const MEMORY_EXTRACTION_TURNS = 5;
27
27
  const MEMORY_MAX_SEARCH_RESULTS = 5;
28
28
  const agentConversationManagers = new WeakMap();
29
29
  const agentSessionManagers = new WeakMap();
30
+ async function createToolRegistry({ config, systemPrompt, createModel, manager, }) {
31
+ const tools = [
32
+ ...createTimeTools(),
33
+ ...(config.tools.sleep.enabled ? createSleepTools() : []),
34
+ ...(config.tools.todo.enabled ? createTodoTools() : []),
35
+ ...(config.tools.fetch.enabled ? createFetchTools() : []),
36
+ ...(config.tools.filesystem.enabled ? createFilesystemTools() : []),
37
+ ...(config.tools.filesystem.enabled ? createGrepTools() : []),
38
+ ...(config.tools.shell.enabled ? createShellTools() : []),
39
+ ...(config.search.enabled ? createWebSearchTools(config) : []),
40
+ ...createAskUserTools(),
41
+ ...createThinkingTools(),
42
+ ...createPlanTools(),
43
+ ];
44
+ const registry = new LazyToolRegistry(tools);
45
+ const discoveryTools = createMcpDiscoveryTools(registry);
46
+ tools.push(...discoveryTools);
47
+ registry.add(discoveryTools);
48
+ const prefixed = await manager.listPrefixedTools();
49
+ const prefixedMcpTools = prefixed.filter((tool) => tool instanceof PrefixedMcpTool);
50
+ for (const tool of prefixedMcpTools) {
51
+ registry.hide(tool, LazyToolRegistry.buildMcpCatalogEntry(tool, tool.server, tool.mcpReadOnlyHint));
52
+ }
53
+ if (config.tools.subagents.enabled) {
54
+ const subagentRegistry = createSubagentRegistry(config, {
55
+ knownTools: tools.map((entry) => entry.name),
56
+ systemPrompt,
57
+ });
58
+ const subagentTools = createSubagentTools({
59
+ parent: config.name,
60
+ registry: subagentRegistry,
61
+ tools,
62
+ createModel,
63
+ });
64
+ tools.push(...subagentTools);
65
+ registry.add(subagentTools);
66
+ }
67
+ return { tools, registry };
68
+ }
69
+ function attachToolRegistry(agent, registry) {
70
+ registry.attachAgent(agent);
71
+ agent._toolRegistry =
72
+ registry;
73
+ }
30
74
  export function getAgentConversationManager(agent) {
31
75
  return agentConversationManagers.get(agent);
32
76
  }
@@ -53,7 +97,6 @@ export async function create(config, system, mcp, print = false, meta) {
53
97
  }
54
98
  const ctx = createContext(sessionId);
55
99
  const { plugins: contextPlugins = [], conversationManager, sessionManager, ...agentContext } = ctx;
56
- const prefixed = await mcp.manager.listPrefixedTools();
57
100
  const skillsPlugin = createAgentSkillsPlugin();
58
101
  const sessionModePlugin = createSessionModePromptPlugin();
59
102
  // Insert prompt-cache breakpoints for providers that require them (Anthropic,
@@ -71,37 +114,17 @@ export async function create(config, system, mcp, print = false, meta) {
71
114
  const appendNext = await mcp.manager.listServerInstructions();
72
115
  return [system.content, ...appendNext].filter(Boolean).join(SECTION_BREAK);
73
116
  }
74
- const base = await buildBaseSystemPrompt();
117
+ const systemPrompt = await buildBaseSystemPrompt();
75
118
  const model = createLiveModel();
76
- const tools = [
77
- ...createTimeTools(),
78
- ...(config.tools.sleep.enabled ? createSleepTools() : []),
79
- ...(config.tools.todo.enabled ? createTodoTools() : []),
80
- ...(config.tools.fetch.enabled ? createFetchTools() : []),
81
- ...(config.tools.filesystem.enabled ? createFilesystemTools() : []),
82
- ...(config.tools.filesystem.enabled ? createGrepTools() : []),
83
- ...(config.tools.shell.enabled ? createShellTools() : []),
84
- ...(config.search.enabled ? createWebSearchTools(config) : []),
85
- ...createAskUserTools(),
86
- ...createThinkingTools(),
87
- ...createPlanTools(),
88
- ...prefixed,
89
- ];
90
- if (config.tools.subagents.enabled) {
91
- const registry = loadSubagentRegistry(config, {
92
- knownTools: tools.map((entry) => entry.name),
93
- baseSystemPrompt: base,
94
- });
95
- tools.push(...createSubagentTools({
96
- parent: config.name,
97
- registry,
98
- tools,
99
- createModel: () => createLiveModel(),
100
- }));
101
- }
119
+ const { tools, registry } = await createToolRegistry({
120
+ config,
121
+ systemPrompt,
122
+ createModel: () => createLiveModel(),
123
+ manager: mcp.manager,
124
+ });
102
125
  const agent = new Agent({
103
126
  name: config.name,
104
- systemPrompt: base,
127
+ systemPrompt,
105
128
  model,
106
129
  appState: {
107
130
  ...(userId ? { userId } : {}),
@@ -130,8 +153,7 @@ export async function create(config, system, mcp, print = false, meta) {
130
153
  if (sessionManager) {
131
154
  agentSessionManagers.set(agent, sessionManager);
132
155
  }
133
- agent._toolRegistry =
134
- new ModeAwareToolRegistry(agent.toolRegistry.list());
156
+ attachToolRegistry(agent, registry);
135
157
  await agent.initialize();
136
158
  agent.addHook(BeforeInvocationEvent, async (event) => {
137
159
  clearTodoState(event.agent);
@@ -139,7 +161,6 @@ export async function create(config, system, mcp, print = false, meta) {
139
161
  clearAgentSkillsPromptInjectionState(event.agent);
140
162
  event.agent.systemPrompt = await buildBaseSystemPrompt();
141
163
  }, { order: HookOrder.SDK_FIRST - 1 });
142
- applySessionMode(agent);
143
164
  return agent;
144
165
  }
145
166
  export function createContext(sessionId) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/agent/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/agent/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { Tool } from "@strands-agents/sdk";
2
+ import { type KnownSessionMode } from "../modes/schema.js";
3
+ import { type AgentLike as ActiveMcpAgentLike } from "../state/active-mcp-tools.js";
4
+ export type ToolCatalogEntry = {
5
+ name: string;
6
+ description: string;
7
+ server: string;
8
+ readOnly: boolean;
9
+ args: string[];
10
+ modes: KnownSessionMode[];
11
+ tool: Tool;
12
+ };
13
+ type AgentLike = ActiveMcpAgentLike;
14
+ /**
15
+ * Tool registry that mirrors Strands SDK registry semantics and lazily exposes
16
+ * MCP tools based on session mode plus the current session's activated MCP set.
17
+ */
18
+ export declare class LazyToolRegistry {
19
+ #private;
20
+ private readonly tools;
21
+ private readonly catalog;
22
+ private agent;
23
+ constructor(tools?: Tool[]);
24
+ attachAgent(agent: AgentLike): void;
25
+ add(tool: Tool | Tool[]): void;
26
+ hide(tool: Tool, entry: Omit<ToolCatalogEntry, "tool">): void;
27
+ hidden(): ToolCatalogEntry[];
28
+ hiddenEntry(name: string): ToolCatalogEntry | undefined;
29
+ isToolRegistered(name: string): boolean;
30
+ isToolActivatable(entry: ToolCatalogEntry): boolean;
31
+ get(name: string): Tool | undefined;
32
+ remove(name: string): void;
33
+ list(): Tool[];
34
+ static buildMcpCatalogEntry(tool: Tool & {
35
+ name: string;
36
+ description: string;
37
+ toolSpec: {
38
+ inputSchema?: unknown;
39
+ };
40
+ }, server: string, readOnly: boolean): ToolCatalogEntry;
41
+ }
42
+ export {};
@@ -0,0 +1,126 @@
1
+ import { ToolValidationError } from "@strands-agents/sdk";
2
+ import { MODE_IDS } from "../modes/schema.js";
3
+ import { getActiveMcpToolNames, } from "../state/active-mcp-tools.js";
4
+ import { getModeState } from "../state/session-mode.js";
5
+ import { isToolVisible } from "../state/tool-approvals.js";
6
+ function toolVisibilityOptions(tool) {
7
+ if ("mcpReadOnlyHint" in tool &&
8
+ tool.mcpReadOnlyHint === true) {
9
+ return { mcpReadOnlyHint: true };
10
+ }
11
+ return undefined;
12
+ }
13
+ function buildToolModes(name, readOnly) {
14
+ return MODE_IDS.filter((mode) => isToolVisible(mode, name, readOnly ? { mcpReadOnlyHint: true } : undefined));
15
+ }
16
+ /**
17
+ * Tool registry that mirrors Strands SDK registry semantics and lazily exposes
18
+ * MCP tools based on session mode plus the current session's activated MCP set.
19
+ */
20
+ export class LazyToolRegistry {
21
+ tools = new Map();
22
+ catalog = new Map();
23
+ agent = null;
24
+ constructor(tools) {
25
+ if (tools) {
26
+ this.add(tools);
27
+ }
28
+ }
29
+ attachAgent(agent) {
30
+ this.agent = agent;
31
+ }
32
+ add(tool) {
33
+ const tools = Array.isArray(tool) ? tool : [tool];
34
+ for (const t of tools) {
35
+ this.#validate(t, this.tools);
36
+ this.tools.set(t.name, t);
37
+ this.catalog.delete(t.name);
38
+ }
39
+ }
40
+ hide(tool, entry) {
41
+ this.#validate(tool, this.#catalogAsTools(), this.tools);
42
+ this.catalog.set(tool.name, { ...entry, tool });
43
+ }
44
+ hidden() {
45
+ return [...this.catalog.values()].filter((entry) => this.isToolActivatable(entry));
46
+ }
47
+ hiddenEntry(name) {
48
+ const entry = this.catalog.get(name);
49
+ if (!entry || !this.isToolActivatable(entry)) {
50
+ return undefined;
51
+ }
52
+ return entry;
53
+ }
54
+ isToolRegistered(name) {
55
+ return this.tools.has(name);
56
+ }
57
+ isToolActivatable(entry) {
58
+ return entry.modes.includes(this.#mode());
59
+ }
60
+ get(name) {
61
+ const tool = this.tools.get(name);
62
+ if (!tool) {
63
+ return undefined;
64
+ }
65
+ if (!isToolVisible(this.#mode(), name, toolVisibilityOptions(tool))) {
66
+ return undefined;
67
+ }
68
+ return tool;
69
+ }
70
+ remove(name) {
71
+ this.tools.delete(name);
72
+ this.catalog.delete(name);
73
+ }
74
+ list() {
75
+ const visible = new Map(this.tools);
76
+ for (const name of this.#activeMcpNames()) {
77
+ const entry = this.catalog.get(name);
78
+ if (entry && this.isToolActivatable(entry)) {
79
+ visible.set(name, entry.tool);
80
+ }
81
+ }
82
+ return [...visible.values()].filter((tool) => isToolVisible(this.#mode(), tool.name, toolVisibilityOptions(tool)));
83
+ }
84
+ static buildMcpCatalogEntry(tool, server, readOnly) {
85
+ const args = Object.keys(tool.toolSpec.inputSchema?.properties ?? {});
86
+ return {
87
+ name: tool.name,
88
+ description: tool.description,
89
+ server,
90
+ readOnly,
91
+ args,
92
+ modes: buildToolModes(tool.name, readOnly),
93
+ tool,
94
+ };
95
+ }
96
+ #mode() {
97
+ return this.agent ? getModeState(this.agent).mode : "agent";
98
+ }
99
+ #activeMcpNames() {
100
+ return this.agent ? getActiveMcpToolNames(this.agent) : [];
101
+ }
102
+ #catalogAsTools() {
103
+ return new Map([...this.catalog.entries()].map(([name, entry]) => [name, entry.tool]));
104
+ }
105
+ #validate(tool, primary, secondary) {
106
+ if (typeof tool.name !== "string") {
107
+ throw new ToolValidationError("Tool name must be a string");
108
+ }
109
+ if (tool.name.length < 1 || tool.name.length > 64) {
110
+ throw new ToolValidationError("Tool name must be between 1 and 64 characters");
111
+ }
112
+ const validNamePattern = /^[a-zA-Z0-9_-]+$/;
113
+ if (!validNamePattern.test(tool.name)) {
114
+ throw new ToolValidationError("Tool name must contain only alphanumeric characters, hyphens, and underscores");
115
+ }
116
+ if (tool.description !== undefined && tool.description !== null) {
117
+ if (typeof tool.description !== "string" || tool.description.length < 1) {
118
+ throw new ToolValidationError("Tool description must be a non-empty string");
119
+ }
120
+ }
121
+ if (primary.has(tool.name) || secondary?.has(tool.name)) {
122
+ throw new ToolValidationError(`Tool with name '${tool.name}' already registered`);
123
+ }
124
+ }
125
+ }
126
+ //# sourceMappingURL=lazy-tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-tool-registry.js","sourceRoot":"","sources":["../../../src/core/agent/lazy-tool-registry.ts"],"names":[],"mappings":"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"}
@@ -60,14 +60,15 @@ export class HoomanToolApprovalIntervention extends InterventionHandler {
60
60
  await this.onRejected?.(request, event, planReject);
61
61
  return InterventionActions.deny(planReject);
62
62
  }
63
- if (isYoloEnabled(event.agent) ||
63
+ const isPlanExit = toolName === EXIT_PLAN_MODE_TOOL;
64
+ if ((!isPlanExit && isYoloEnabled(event.agent)) ||
64
65
  INTERNAL_ALWAYS_ALLOWED.has(toolName) ||
65
66
  isImplicitlyAllowed(toolName, event.toolUse.input, getModeState(event.agent).mode) ||
66
- getAllowlist().isAllowed(toolName, event.toolUse.input)) {
67
+ (!isPlanExit && getAllowlist().isAllowed(toolName, event.toolUse.input))) {
67
68
  await this.onApproved?.(request, event, "auto");
68
69
  return InterventionActions.proceed();
69
70
  }
70
- if (toolName === EXIT_PLAN_MODE_TOOL) {
71
+ if (isPlanExit) {
71
72
  const preview = await readPlanPreview(event.agent);
72
73
  if (preview) {
73
74
  request = { ...request, preview };
@@ -80,6 +81,10 @@ export class HoomanToolApprovalIntervention extends InterventionHandler {
80
81
  return InterventionActions.proceed();
81
82
  }
82
83
  if (result === "always") {
84
+ if (isPlanExit) {
85
+ await this.onApproved?.(request, event, "allow");
86
+ return InterventionActions.proceed();
87
+ }
83
88
  getAllowlist().allowAlways(toolName, event.toolUse.input);
84
89
  await this.onApproved?.(request, event, "always");
85
90
  return InterventionActions.proceed();
@@ -1 +1 @@
1
- {"version":3,"file":"intervention.js","sourceRoot":"","sources":["../../../src/core/approvals/intervention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intervention.js","sourceRoot":"","sources":["../../../src/core/approvals/intervention.ts"],"names":[],"mappings":"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"}
@@ -50,31 +50,54 @@ declare const McpServersFileSchema: z.ZodObject<{
50
50
  export type McpServersFile = z.infer<typeof McpServersFileSchema>;
51
51
  export type ConfigOptions = {
52
52
  overlayPaths?: readonly string[];
53
+ projectPath?: string;
53
54
  };
54
55
  /** One named MCP transport from the config file. */
55
56
  export type NamedMcpTransport = {
56
57
  name: string;
57
58
  transport: McpTransport;
58
59
  };
60
+ export type McpConfigScope = "global" | "project";
61
+ export type NamedMcpTransportWithSource = NamedMcpTransport & {
62
+ sourcePath: string;
63
+ scope: McpConfigScope;
64
+ };
65
+ export type McpWriteTarget = {
66
+ path: string;
67
+ scope: McpConfigScope;
68
+ };
59
69
  /**
60
70
  * Read/write `{"mcpServers": { "<name>": <transport> }}` on disk.
61
71
  */
62
72
  export declare class Config {
63
73
  private readonly path;
64
74
  private readonly overlayPaths;
65
- private servers;
75
+ private readonly projectPath?;
76
+ private entries;
66
77
  constructor(path: string, options?: ConfigOptions);
67
78
  private readJson;
68
79
  private parse;
69
- private mergedServers;
80
+ private sourcePaths;
81
+ private scopeForPath;
82
+ private mergedEntries;
70
83
  /** Reload servers from disk (overwrites unsaved in-memory changes). */
71
84
  reload(): void;
72
85
  /** All configured servers, stable sort by name. */
73
86
  list(): NamedMcpTransport[];
87
+ /** All configured servers, stable sort by name, including source metadata. */
88
+ listWithSources(): NamedMcpTransportWithSource[];
74
89
  get(name: string): McpTransport | undefined;
75
- private persist;
90
+ getEntry(name: string): NamedMcpTransportWithSource | undefined;
91
+ primaryPath(): string;
92
+ writableTargets(): McpWriteTarget[];
93
+ private persistFile;
94
+ private requireVisibleEntry;
76
95
  add(name: string, transport: McpTransport): void;
77
96
  update(name: string, transport: McpTransport): void;
78
97
  remove(name: string): void;
98
+ addToPath(targetPath: string, name: string, transport: McpTransport): void;
99
+ updateInPath(targetPath: string, name: string, transport: McpTransport): void;
100
+ renameInPath(targetPath: string, currentName: string, nextName: string, transport: McpTransport): void;
101
+ removeFromPath(targetPath: string, name: string): void;
79
102
  }
80
103
  export {};