@tacuchi/agent-workflow-cli 23.0.0 → 25.0.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 (164) hide show
  1. package/README.md +37 -1
  2. package/dist/adapters/postgres-readonly-tools.js +277 -0
  3. package/dist/adapters/postgres-readonly-tools.js.map +1 -0
  4. package/dist/application/checkpoint/markdown.js +85 -5
  5. package/dist/application/checkpoint/markdown.js.map +1 -1
  6. package/dist/application/checkpoint-service.js +7 -6
  7. package/dist/application/checkpoint-service.js.map +1 -1
  8. package/dist/application/checkpoint-write-service.js +270 -16
  9. package/dist/application/checkpoint-write-service.js.map +1 -1
  10. package/dist/application/database-mcp-server.js +168 -0
  11. package/dist/application/database-mcp-server.js.map +1 -0
  12. package/dist/application/database-mcp-stdio.js +137 -0
  13. package/dist/application/database-mcp-stdio.js.map +1 -0
  14. package/dist/application/database-tool-catalog.js +226 -0
  15. package/dist/application/database-tool-catalog.js.map +1 -0
  16. package/dist/application/dsn-reader-service.js +1 -1
  17. package/dist/application/flow/advance.js +60 -10
  18. package/dist/application/flow/advance.js.map +1 -1
  19. package/dist/application/flow/internal-actions.js +1 -1
  20. package/dist/application/flow/internal-actions.js.map +1 -1
  21. package/dist/application/flow/submit.js +256 -9
  22. package/dist/application/flow/submit.js.map +1 -1
  23. package/dist/application/lifecycle-target.js +16 -19
  24. package/dist/application/lifecycle-target.js.map +1 -1
  25. package/dist/application/lock-service.js +96 -31
  26. package/dist/application/lock-service.js.map +1 -1
  27. package/dist/application/logging/log-events.js +19 -3
  28. package/dist/application/logging/log-events.js.map +1 -1
  29. package/dist/application/logging/logger.js +2 -2
  30. package/dist/application/logging/logger.js.map +1 -1
  31. package/dist/application/markdown.js +6 -2
  32. package/dist/application/markdown.js.map +1 -1
  33. package/dist/application/mcp-connections-service.js +115 -41
  34. package/dist/application/mcp-connections-service.js.map +1 -1
  35. package/dist/application/mcp-doctor-service.js +98 -54
  36. package/dist/application/mcp-doctor-service.js.map +1 -1
  37. package/dist/application/mcp-entry-classification.js +60 -0
  38. package/dist/application/mcp-entry-classification.js.map +1 -0
  39. package/dist/application/mcp-host-reader.js +102 -86
  40. package/dist/application/mcp-host-reader.js.map +1 -1
  41. package/dist/application/mcp-host-receipt-service.js +399 -0
  42. package/dist/application/mcp-host-receipt-service.js.map +1 -0
  43. package/dist/application/mcp-host-receipt-store.js +122 -0
  44. package/dist/application/mcp-host-receipt-store.js.map +1 -0
  45. package/dist/application/mcp-host-receipts.js +28 -0
  46. package/dist/application/mcp-host-receipts.js.map +1 -0
  47. package/dist/application/mcp-host-writer.js +209 -38
  48. package/dist/application/mcp-host-writer.js.map +1 -1
  49. package/dist/application/mcp-launch-probe-service.js +142 -0
  50. package/dist/application/mcp-launch-probe-service.js.map +1 -0
  51. package/dist/application/mcp-migration-service.js +351 -0
  52. package/dist/application/mcp-migration-service.js.map +1 -0
  53. package/dist/application/mcp-native-host-check-service.js +154 -0
  54. package/dist/application/mcp-native-host-check-service.js.map +1 -0
  55. package/dist/application/mcp-receipt-registration-service.js +105 -0
  56. package/dist/application/mcp-receipt-registration-service.js.map +1 -0
  57. package/dist/application/mcp-receipt-removal-service.js +62 -0
  58. package/dist/application/mcp-receipt-removal-service.js.map +1 -0
  59. package/dist/application/mcp-remove-service.js +83 -24
  60. package/dist/application/mcp-remove-service.js.map +1 -1
  61. package/dist/application/mcp-scope-common.js +1 -1
  62. package/dist/application/mcp-scope-common.js.map +1 -1
  63. package/dist/application/mcp-setup-service.js +59 -24
  64. package/dist/application/mcp-setup-service.js.map +1 -1
  65. package/dist/application/mcp-stdio-probe.js +526 -0
  66. package/dist/application/mcp-stdio-probe.js.map +1 -0
  67. package/dist/application/mcp-test-connection-service.js +23 -50
  68. package/dist/application/mcp-test-connection-service.js.map +1 -1
  69. package/dist/application/parsers/spec-functional.js +220 -0
  70. package/dist/application/parsers/spec-functional.js.map +1 -0
  71. package/dist/application/parsers/spec-relation.js +142 -5
  72. package/dist/application/parsers/spec-relation.js.map +1 -1
  73. package/dist/application/paths-service.js +13 -0
  74. package/dist/application/paths-service.js.map +1 -1
  75. package/dist/application/plan-exec-decision-service.js +57 -4
  76. package/dist/application/plan-exec-decision-service.js.map +1 -1
  77. package/dist/application/reseal-service.js +300 -0
  78. package/dist/application/reseal-service.js.map +1 -0
  79. package/dist/application/self/host-states.js.map +1 -1
  80. package/dist/application/self/install-skill.js +4 -34
  81. package/dist/application/self/install-skill.js.map +1 -1
  82. package/dist/application/self/mcp-config.js +369 -59
  83. package/dist/application/self/mcp-config.js.map +1 -1
  84. package/dist/application/self/mcp-via-state.js +9 -6
  85. package/dist/application/self/mcp-via-state.js.map +1 -1
  86. package/dist/application/self/uninstall-skill.js +3 -18
  87. package/dist/application/self/uninstall-skill.js.map +1 -1
  88. package/dist/application/self/uninstall.js +4 -23
  89. package/dist/application/self/uninstall.js.map +1 -1
  90. package/dist/application/workline-index-service.js +64 -6
  91. package/dist/application/workline-index-service.js.map +1 -1
  92. package/dist/application/workspace-init-service.js +4 -6
  93. package/dist/application/workspace-init-service.js.map +1 -1
  94. package/dist/cli/commands/checkpoint-write.js +24 -22
  95. package/dist/cli/commands/checkpoint-write.js.map +1 -1
  96. package/dist/cli/commands/index.js +7 -0
  97. package/dist/cli/commands/index.js.map +1 -1
  98. package/dist/cli/commands/mcp.js +642 -55
  99. package/dist/cli/commands/mcp.js.map +1 -1
  100. package/dist/cli/commands/reseal.js +140 -0
  101. package/dist/cli/commands/reseal.js.map +1 -0
  102. package/dist/cli/commands/status.js +5 -1
  103. package/dist/cli/commands/status.js.map +1 -1
  104. package/dist/cli/commands/tool.js +141 -0
  105. package/dist/cli/commands/tool.js.map +1 -0
  106. package/dist/cli/help-groups.js +7 -1
  107. package/dist/cli/help-groups.js.map +1 -1
  108. package/dist/cli/main.js +189 -57
  109. package/dist/cli/main.js.map +1 -1
  110. package/dist/cli/parser.js +5 -1
  111. package/dist/cli/parser.js.map +1 -1
  112. package/dist/cli/registry.js.map +1 -1
  113. package/dist/cli/render.js +15 -2
  114. package/dist/cli/render.js.map +1 -1
  115. package/dist/cli/tui/components/host-admin-section.js +2 -46
  116. package/dist/cli/tui/components/host-admin-section.js.map +1 -1
  117. package/dist/cli/tui/tabs/mcp-tab-helpers.js +71 -0
  118. package/dist/cli/tui/tabs/mcp-tab-helpers.js.map +1 -1
  119. package/dist/cli/tui/tabs/mcp-tab.js +101 -42
  120. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  121. package/dist/domain/database-tools.js +445 -0
  122. package/dist/domain/database-tools.js.map +1 -0
  123. package/dist/domain/effective-contract.js +10 -2
  124. package/dist/domain/effective-contract.js.map +1 -1
  125. package/dist/domain/flow/answer.js +4 -0
  126. package/dist/domain/flow/answer.js.map +1 -1
  127. package/dist/domain/flow/authority.js +103 -14
  128. package/dist/domain/flow/authority.js.map +1 -1
  129. package/dist/domain/flow/directive.js +2 -0
  130. package/dist/domain/flow/directive.js.map +1 -1
  131. package/dist/domain/flow/run-state.js +42 -0
  132. package/dist/domain/flow/run-state.js.map +1 -1
  133. package/dist/domain/lineage.js +38 -11
  134. package/dist/domain/lineage.js.map +1 -1
  135. package/dist/domain/mcp-entry.js +131 -17
  136. package/dist/domain/mcp-entry.js.map +1 -1
  137. package/dist/domain/postgres-object-search.js +320 -0
  138. package/dist/domain/postgres-object-search.js.map +1 -0
  139. package/dist/domain/redaction.js +47 -0
  140. package/dist/domain/redaction.js.map +1 -0
  141. package/dist/domain/workline-mcp-entry.js +6 -9
  142. package/dist/domain/workline-mcp-entry.js.map +1 -1
  143. package/dist/ports/postgres-tools.js +10 -0
  144. package/dist/ports/postgres-tools.js.map +1 -0
  145. package/package.json +5 -1
  146. package/skills/w/commands/plan-exec.md +1 -1
  147. package/skills/w/commands/spec-new.md +6 -5
  148. package/skills/w/context/MANIFEST.json +1 -1
  149. package/skills/w/harness/HARNESS.md +1 -1
  150. package/skills/w/hooks/README.md +13 -9
  151. package/skills/w/hooks/hooks.template.json +2 -2
  152. package/skills/w/loops/CHASSIS.md +1 -1
  153. package/skills/w/loops/plan-exec-loop/LOOP.md +7 -5
  154. package/skills/w/loops/plan-new-loop/LOOP.md +46 -41
  155. package/skills/w/loops/plan-refine-loop/LOOP.md +4 -4
  156. package/skills/w/loops/quick-loop/LOOP.md +12 -13
  157. package/skills/w/loops/spec-refine-loop/LOOP.md +7 -3
  158. package/skills/w/modules/COMPACTION.md +1 -1
  159. package/skills/w/modules/PLAN-INPUT.md +3 -3
  160. package/skills/w/modules/PROMPT-CONTINUITY.md +1 -1
  161. package/dist/application/mcp-dbhub-launcher.js +0 -216
  162. package/dist/application/mcp-dbhub-launcher.js.map +0 -1
  163. package/dist/application/self/mcp-offer.js +0 -96
  164. package/dist/application/self/mcp-offer.js.map +0 -1
@@ -6,42 +6,48 @@ import { crushGlobalMcpFile, opencodeGlobalMcpFile } from "./mcp-host-paths.js";
6
6
  import { resolveWarpGlobalMcpPath } from "./multiroot/warp.js";
7
7
  export function readMcpEntry(host, scopeDir, name, kind = "workspace") {
8
8
  const spec = harnessForMcpHost(host);
9
- if (!spec)
10
- return { host, target: scopeDir, name, exists: false };
11
- const projectPath = spec.projectMcpPath;
12
- if (!projectPath)
13
- return { host, target: scopeDir, name, exists: false };
14
- // Codex uses TOML with the mcp_servers key.
9
+ if (spec?.projectMcpPath === undefined)
10
+ return missingSnapshot(host, scopeDir, name);
11
+ const hostSpecific = readHostSpecificEntry(host, scopeDir, name, kind);
12
+ if (hostSpecific !== undefined)
13
+ return hostSpecific;
14
+ const target = join(scopeDir, ...spec.projectMcpPath.split("/"));
15
+ return readJsonMcpEntry(host, target, name);
16
+ }
17
+ function readHostSpecificEntry(host, scopeDir, name, kind) {
15
18
  if (host === "codex") {
16
- const target = join(scopeDir, ".codex", "config.toml");
17
- return readTomlMcpEntry(host, target, name, "mcp_servers");
19
+ return readTomlMcpEntry(host, join(scopeDir, ".codex", "config.toml"), name, "mcp_servers");
18
20
  }
19
- // OpenCode & Crush store the entry under the top-level `mcp` key (NOT `mcpServers`)
20
- // with host-specific shapes — this mirrors the writer (mcp-host-writer.ts). Global
21
- // scope resolves via mcp-host-paths.ts (XDG_CONFIG_HOME; crush win32 = LOCALAPPDATA),
22
- // workspace scope is <host>.json at the project root.
21
+ if (host === "claude")
22
+ return readClaudeMcpEntry(scopeDir, name, kind);
23
23
  if (host === "opencode" || host === "crush") {
24
- const target = kind === "global"
25
- ? host === "opencode"
26
- ? opencodeGlobalMcpFile(scopeDir)
27
- : crushGlobalMcpFile(scopeDir)
28
- : join(scopeDir, `${host}.json`);
29
- return readMcpKeyEntry(host, target, name);
24
+ return readMcpKeyEntry(host, mcpKeyTarget(host, scopeDir, kind), name);
30
25
  }
31
- // JSON readers keyed by `mcpServers` (Claude shape): claude uses .mcp.json (workspace)
32
- // or .claude.json (global); warp uses .warp/.mcp.json (workspace) or the per-platform
33
- // global registry path (mirrors the writer — DEC-W3); gemini uses .gemini/settings.json;
34
- // kimi uses .kimi-code/mcp.json, the SAME relative path in both scopes, so it needs no
35
- // special case — its `projectMcpPath` already resolves both (verified vs v0.29.2).
36
- if (host === "warp" && kind === "global") {
37
- const globalPath = resolveWarpGlobalMcpPath(process.platform, () => scopeDir);
38
- if (globalPath)
39
- return readJsonMcpEntry(host, globalPath, name);
26
+ if (host !== "warp" || kind !== "global")
27
+ return undefined;
28
+ const globalPath = resolveWarpGlobalMcpPath(process.platform, () => scopeDir);
29
+ return globalPath === null ? undefined : readJsonMcpEntry(host, globalPath, name);
30
+ }
31
+ // Claude historically accepted the same mcpServers object under
32
+ // `.claude/settings.json`. Prefer the current `.mcp.json` / `.claude.json`
33
+ // location, but surface an occupied historical location rather than hiding it
34
+ // as absent: migration may only replace an exact known Workline shape.
35
+ function readClaudeMcpEntry(scopeDir, name, kind) {
36
+ const primaryTarget = kind === "global" ? ".claude.json" : ".mcp.json";
37
+ const primary = readJsonMcpEntry("claude", join(scopeDir, primaryTarget), name);
38
+ const legacy = readJsonMcpEntry("claude", join(scopeDir, ".claude", "settings.json"), name);
39
+ if (primary.exists || primary.present) {
40
+ return legacy.exists || legacy.present ? { ...primary, secondary: legacy } : primary;
40
41
  }
41
- const target = host === "claude" && kind === "global"
42
- ? join(scopeDir, ".claude.json")
43
- : join(scopeDir, ...projectPath.split("/"));
44
- return readJsonMcpEntry(host, target, name);
42
+ return legacy.exists || legacy.present ? { ...legacy, legacy_location: true } : primary;
43
+ }
44
+ function mcpKeyTarget(host, scopeDir, kind) {
45
+ if (kind !== "global")
46
+ return join(scopeDir, `${host}.json`);
47
+ return host === "opencode" ? opencodeGlobalMcpFile(scopeDir) : crushGlobalMcpFile(scopeDir);
48
+ }
49
+ function missingSnapshot(host, target, name) {
50
+ return { host, target, name, exists: false };
45
51
  }
46
52
  // Shared preamble: exists check → read → empty check → try-parse → key extract.
47
53
  // A same-named scalar is preserved as `foreign`: it is not a usable entry, but
@@ -57,13 +63,15 @@ function loadEntryObject(target, parse, key, name) {
57
63
  data = parse(text);
58
64
  }
59
65
  catch {
60
- return null;
66
+ return { state: "malformed" };
61
67
  }
62
68
  if (!isRecord(data))
63
- return null;
69
+ return { state: "malformed" };
64
70
  const servers = data[key];
65
- if (!isRecord(servers))
71
+ if (servers === undefined)
66
72
  return null;
73
+ if (!isRecord(servers))
74
+ return { state: "malformed" };
67
75
  const entry = servers[name];
68
76
  if (entry === undefined)
69
77
  return null;
@@ -73,77 +81,85 @@ function loadEntryObject(target, parse, key, name) {
73
81
  }
74
82
  // Standard Claude-shaped snapshot: command/args/env fields on the entry.
75
83
  function stdSnapshot(host, target, name, e) {
84
+ const command = typeof e.command === "string" ? e.command : undefined;
85
+ const args = stringArray(e.args);
86
+ const env = e.env === undefined ? undefined : stringRecord(e.env);
87
+ const malformed = command === undefined || args === undefined || (e.env !== undefined && env === undefined);
76
88
  return {
77
89
  host,
78
90
  target,
79
91
  name,
80
92
  exists: true,
81
- ...(typeof e.command === "string" ? { command: e.command } : {}),
82
- ...(Array.isArray(e.args)
83
- ? { args: e.args.filter((x) => typeof x === "string") }
84
- : {}),
85
- ...(typeof e.env === "object" && e.env !== null ? { env: toStringRecord(e.env) } : {}),
93
+ ...(command === undefined ? {} : { command }),
94
+ ...(args === undefined ? {} : { args }),
95
+ ...(env === undefined ? {} : { env }),
96
+ ...(malformed ? { malformed: true } : {}),
86
97
  raw: e,
87
98
  };
88
99
  }
89
100
  function readJsonMcpEntry(host, target, name) {
90
- const loaded = loadEntryObject(target, JSON.parse, "mcpServers", name);
91
- if (!loaded)
92
- return { host, target, name, exists: false };
93
- if (loaded.state === "foreign")
94
- return { host, target, name, exists: false, present: true, raw: loaded.value };
95
- return stdSnapshot(host, target, name, loaded.value);
101
+ const decoded = decodeMcpEntry(host, target, name, loadEntryObject(target, JSON.parse, "mcpServers", name));
102
+ return "snapshot" in decoded ? decoded.snapshot : stdSnapshot(host, target, name, decoded.entry);
96
103
  }
97
104
  // Reader for hosts that store the MCP entry under the top-level `mcp` key.
98
- // OpenCode: { type:"local", command:[cmd, ...args], environment }. The dbhub
105
+ // OpenCode: { type:"local", command:[cmd, ...args], environment }. The database
99
106
  // command is the first array element and args are the rest; env lives under
100
107
  // `environment`. Crush: { type:"stdio", command, args, env } (Claude-like fields).
101
108
  function readMcpKeyEntry(host, target, name) {
102
- const loaded = loadEntryObject(target, JSON.parse, "mcp", name);
103
- if (!loaded)
104
- return { host, target, name, exists: false };
105
- if (loaded.state === "foreign")
106
- return { host, target, name, exists: false, present: true, raw: loaded.value };
107
- const e = loaded.value;
108
- if (host === "opencode") {
109
- const cmd = Array.isArray(e.command)
110
- ? e.command.filter((x) => typeof x === "string")
111
- : [];
112
- return {
113
- host,
114
- target,
115
- name,
116
- exists: true,
117
- ...(cmd.length > 0 ? { command: cmd[0] } : {}),
118
- args: cmd.slice(1),
119
- ...(typeof e.environment === "object" && e.environment !== null
120
- ? { env: toStringRecord(e.environment) }
121
- : {}),
122
- raw: e,
123
- };
124
- }
125
- // crush: standard command/args/env fields under the `mcp` key.
126
- return stdSnapshot(host, target, name, e);
109
+ const decoded = decodeMcpEntry(host, target, name, loadEntryObject(target, JSON.parse, "mcp", name));
110
+ if ("snapshot" in decoded)
111
+ return decoded.snapshot;
112
+ return host === "opencode"
113
+ ? openCodeSnapshot(host, target, name, decoded.entry)
114
+ : stdSnapshot(host, target, name, decoded.entry);
115
+ }
116
+ function openCodeSnapshot(host, target, name, entry) {
117
+ const command = stringArray(entry.command);
118
+ const env = entry.environment === undefined ? undefined : stringRecord(entry.environment);
119
+ const malformed = command === undefined ||
120
+ command.length === 0 ||
121
+ (entry.environment !== undefined && env === undefined);
122
+ return {
123
+ host,
124
+ target,
125
+ name,
126
+ exists: true,
127
+ ...(command === undefined || command.length === 0 ? {} : { command: command[0] }),
128
+ ...(command === undefined ? {} : { args: command.slice(1) }),
129
+ ...(env === undefined ? {} : { env }),
130
+ ...(malformed ? { malformed: true } : {}),
131
+ raw: entry,
132
+ };
127
133
  }
128
134
  function readTomlMcpEntry(host, target, name, serversKey) {
129
- const loaded = loadEntryObject(target, parseToml, serversKey, name);
130
- if (!loaded)
131
- return { host, target, name, exists: false };
132
- if (loaded.state === "foreign")
133
- return { host, target, name, exists: false, present: true, raw: loaded.value };
134
- return stdSnapshot(host, target, name, loaded.value);
135
+ const decoded = decodeMcpEntry(host, target, name, loadEntryObject(target, parseToml, serversKey, name));
136
+ return "snapshot" in decoded ? decoded.snapshot : stdSnapshot(host, target, name, decoded.entry);
137
+ }
138
+ function decodeMcpEntry(host, target, name, loaded) {
139
+ if (loaded === null)
140
+ return { snapshot: missingSnapshot(host, target, name) };
141
+ if (loaded.state === "malformed") {
142
+ return { snapshot: { host, target, name, exists: false, present: true } };
143
+ }
144
+ if (loaded.state === "foreign") {
145
+ return { snapshot: { host, target, name, exists: false, present: true, raw: loaded.value } };
146
+ }
147
+ return { entry: loaded.value };
135
148
  }
136
149
  function isRecord(value) {
137
150
  return value !== null && typeof value === "object" && !Array.isArray(value);
138
151
  }
139
- function toStringRecord(obj) {
140
- const out = {};
141
- if (!obj || typeof obj !== "object")
142
- return out;
143
- for (const [k, v] of Object.entries(obj)) {
144
- if (typeof v === "string")
145
- out[k] = v;
146
- }
147
- return out;
152
+ function stringArray(value) {
153
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string"))
154
+ return undefined;
155
+ return [...value];
156
+ }
157
+ function stringRecord(value) {
158
+ if (!isRecord(value))
159
+ return undefined;
160
+ const entries = Object.entries(value);
161
+ if (entries.some(([, item]) => typeof item !== "string"))
162
+ return undefined;
163
+ return Object.fromEntries(entries);
148
164
  }
149
165
  //# sourceMappingURL=mcp-host-reader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-host-reader.js","sourceRoot":"","sources":["../../src/application/mcp-host-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAiB/D,MAAM,UAAU,YAAY,CAC1B,IAAa,EACb,QAAgB,EAChB,IAAY,EACZ,OAAwB,WAAW;IAEnC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAElE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;IACxC,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEzE,4CAA4C;IAC5C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvD,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7D,CAAC;IAED,oFAAoF;IACpF,mFAAmF;IACnF,sFAAsF;IACtF,sDAAsD;IACtD,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5C,MAAM,MAAM,GACV,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,IAAI,KAAK,UAAU;gBACnB,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC;gBACjC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;QACrC,OAAO,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,uFAAuF;IACvF,sFAAsF;IACtF,yFAAyF;IACzF,uFAAuF;IACvF,mFAAmF;IACnF,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,UAAU;YAAE,OAAO,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,MAAM,GACV,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;QACpC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAOD,gFAAgF;AAChF,+EAA+E;AAC/E,qEAAqE;AACrE,SAAS,eAAe,CACtB,MAAc,EACd,KAAgC,EAChC,GAAW,EACX,IAAY;IAEZ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1C,CAAC;AAED,yEAAyE;AACzE,SAAS,WAAW,CAClB,IAAa,EACb,MAAc,EACd,IAAY,EACZ,CAA0B;IAE1B,OAAO;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM,EAAE,IAAI;QACZ,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,EAAE,IAAI,EAAG,CAAC,CAAC,IAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE;YACnF,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,GAAG,EAAE,CAAC;KACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa,EAAE,MAAc,EAAE,IAAY;IACnE,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjF,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,mFAAmF;AACnF,SAAS,eAAe,CAAC,IAAa,EAAE,MAAc,EAAE,IAAY;IAClE,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjF,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IAEvB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YAClC,CAAC,CAAE,CAAC,CAAC,OAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAC5E,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI;gBAC7D,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;gBACxC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,EAAE,CAAC;SACP,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAa,EACb,MAAc,EACd,IAAY,EACZ,UAAkB;IAElB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACpE,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACjF,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;QACpE,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"mcp-host-reader.js","sourceRoot":"","sources":["../../src/application/mcp-host-reader.ts"],"names":[],"mappings":"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"}