@zhijiewang/openharness 0.5.0 → 0.6.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 (186) hide show
  1. package/README.md +1 -5
  2. package/dist/commands/cybergotchi.d.ts.map +1 -1
  3. package/dist/commands/cybergotchi.js +22 -19
  4. package/dist/commands/cybergotchi.js.map +1 -1
  5. package/dist/components/App.d.ts +1 -1
  6. package/dist/components/App.d.ts.map +1 -1
  7. package/dist/components/App.js +58 -2
  8. package/dist/components/App.js.map +1 -1
  9. package/dist/components/CompanionFooter.d.ts +9 -0
  10. package/dist/components/CompanionFooter.d.ts.map +1 -0
  11. package/dist/components/CompanionFooter.js +13 -0
  12. package/dist/components/CompanionFooter.js.map +1 -0
  13. package/dist/components/CybergotchiBubble.d.ts +2 -1
  14. package/dist/components/CybergotchiBubble.d.ts.map +1 -1
  15. package/dist/components/CybergotchiBubble.js +4 -5
  16. package/dist/components/CybergotchiBubble.js.map +1 -1
  17. package/dist/components/CybergotchiPanel.d.ts +5 -4
  18. package/dist/components/CybergotchiPanel.d.ts.map +1 -1
  19. package/dist/components/CybergotchiPanel.js +4 -2
  20. package/dist/components/CybergotchiPanel.js.map +1 -1
  21. package/dist/components/CybergotchiPanelConnected.js +4 -4
  22. package/dist/components/CybergotchiPanelConnected.js.map +1 -1
  23. package/dist/components/CybergotchiSetup.d.ts.map +1 -1
  24. package/dist/components/CybergotchiSetup.js +25 -61
  25. package/dist/components/CybergotchiSetup.js.map +1 -1
  26. package/dist/components/CybergotchiSprite.d.ts +5 -4
  27. package/dist/components/CybergotchiSprite.d.ts.map +1 -1
  28. package/dist/components/CybergotchiSprite.js +16 -9
  29. package/dist/components/CybergotchiSprite.js.map +1 -1
  30. package/dist/components/DiffView.d.ts +27 -0
  31. package/dist/components/DiffView.d.ts.map +1 -0
  32. package/dist/components/DiffView.js +74 -0
  33. package/dist/components/DiffView.js.map +1 -0
  34. package/dist/components/Messages.js +1 -1
  35. package/dist/components/Messages.js.map +1 -1
  36. package/dist/components/PermissionPrompt.d.ts.map +1 -1
  37. package/dist/components/PermissionPrompt.js +61 -8
  38. package/dist/components/PermissionPrompt.js.map +1 -1
  39. package/dist/components/REPL.d.ts.map +1 -1
  40. package/dist/components/REPL.js +75 -21
  41. package/dist/components/REPL.js.map +1 -1
  42. package/dist/components/TextInput.d.ts +2 -1
  43. package/dist/components/TextInput.d.ts.map +1 -1
  44. package/dist/components/TextInput.js +110 -6
  45. package/dist/components/TextInput.js.map +1 -1
  46. package/dist/cybergotchi/bones.d.ts +12 -0
  47. package/dist/cybergotchi/bones.d.ts.map +1 -0
  48. package/dist/cybergotchi/bones.js +89 -0
  49. package/dist/cybergotchi/bones.js.map +1 -0
  50. package/dist/cybergotchi/config.d.ts +14 -4
  51. package/dist/cybergotchi/config.d.ts.map +1 -1
  52. package/dist/cybergotchi/config.js +62 -9
  53. package/dist/cybergotchi/config.js.map +1 -1
  54. package/dist/cybergotchi/needs.d.ts +4 -4
  55. package/dist/cybergotchi/needs.d.ts.map +1 -1
  56. package/dist/cybergotchi/needs.js.map +1 -1
  57. package/dist/cybergotchi/personality.d.ts +11 -0
  58. package/dist/cybergotchi/personality.d.ts.map +1 -0
  59. package/dist/cybergotchi/personality.js +26 -0
  60. package/dist/cybergotchi/personality.js.map +1 -0
  61. package/dist/cybergotchi/species.d.ts +0 -1
  62. package/dist/cybergotchi/species.d.ts.map +1 -1
  63. package/dist/cybergotchi/species.js +253 -229
  64. package/dist/cybergotchi/species.js.map +1 -1
  65. package/dist/cybergotchi/types.d.ts +45 -7
  66. package/dist/cybergotchi/types.d.ts.map +1 -1
  67. package/dist/cybergotchi/types.js +36 -5
  68. package/dist/cybergotchi/types.js.map +1 -1
  69. package/dist/cybergotchi/useCybergotchi.d.ts +7 -5
  70. package/dist/cybergotchi/useCybergotchi.d.ts.map +1 -1
  71. package/dist/cybergotchi/useCybergotchi.js +27 -16
  72. package/dist/cybergotchi/useCybergotchi.js.map +1 -1
  73. package/dist/git/index.d.ts +9 -0
  74. package/dist/git/index.d.ts.map +1 -1
  75. package/dist/git/index.js +31 -0
  76. package/dist/git/index.js.map +1 -1
  77. package/dist/harness/config.d.ts +5 -0
  78. package/dist/harness/config.d.ts.map +1 -1
  79. package/dist/harness/config.js.map +1 -1
  80. package/dist/harness/credentials.d.ts +24 -0
  81. package/dist/harness/credentials.d.ts.map +1 -0
  82. package/dist/harness/credentials.js +104 -0
  83. package/dist/harness/credentials.js.map +1 -0
  84. package/dist/harness/hooks.d.ts +8 -0
  85. package/dist/harness/hooks.d.ts.map +1 -1
  86. package/dist/harness/hooks.js +98 -22
  87. package/dist/harness/hooks.js.map +1 -1
  88. package/dist/harness/keybindings.d.ts +37 -0
  89. package/dist/harness/keybindings.d.ts.map +1 -0
  90. package/dist/harness/keybindings.js +134 -0
  91. package/dist/harness/keybindings.js.map +1 -0
  92. package/dist/harness/memory.d.ts +35 -0
  93. package/dist/harness/memory.d.ts.map +1 -0
  94. package/dist/harness/memory.js +115 -0
  95. package/dist/harness/memory.js.map +1 -0
  96. package/dist/harness/plugins.d.ts +57 -0
  97. package/dist/harness/plugins.d.ts.map +1 -0
  98. package/dist/harness/plugins.js +142 -0
  99. package/dist/harness/plugins.js.map +1 -0
  100. package/dist/harness/session.d.ts +5 -0
  101. package/dist/harness/session.d.ts.map +1 -1
  102. package/dist/harness/session.js +39 -1
  103. package/dist/harness/session.js.map +1 -1
  104. package/dist/lsp/client.d.ts +58 -0
  105. package/dist/lsp/client.d.ts.map +1 -0
  106. package/dist/lsp/client.js +174 -0
  107. package/dist/lsp/client.js.map +1 -0
  108. package/dist/main.js +161 -1
  109. package/dist/main.js.map +1 -1
  110. package/dist/mcp/DeferredMcpTool.d.ts +30 -0
  111. package/dist/mcp/DeferredMcpTool.d.ts.map +1 -0
  112. package/dist/mcp/DeferredMcpTool.js +75 -0
  113. package/dist/mcp/DeferredMcpTool.js.map +1 -0
  114. package/dist/mcp/client.d.ts +7 -0
  115. package/dist/mcp/client.d.ts.map +1 -1
  116. package/dist/mcp/client.js +56 -8
  117. package/dist/mcp/client.js.map +1 -1
  118. package/dist/mcp/loader.d.ts +9 -0
  119. package/dist/mcp/loader.d.ts.map +1 -1
  120. package/dist/mcp/loader.js +43 -2
  121. package/dist/mcp/loader.js.map +1 -1
  122. package/dist/mcp/schema.d.ts +7 -0
  123. package/dist/mcp/schema.d.ts.map +1 -0
  124. package/dist/mcp/schema.js +41 -0
  125. package/dist/mcp/schema.js.map +1 -0
  126. package/dist/mcp/server.d.ts +16 -0
  127. package/dist/mcp/server.d.ts.map +1 -0
  128. package/dist/mcp/server.js +94 -0
  129. package/dist/mcp/server.js.map +1 -0
  130. package/dist/providers/anthropic.d.ts +1 -1
  131. package/dist/providers/anthropic.d.ts.map +1 -1
  132. package/dist/providers/anthropic.js.map +1 -1
  133. package/dist/providers/base.d.ts +15 -0
  134. package/dist/providers/base.d.ts.map +1 -1
  135. package/dist/providers/base.js +13 -1
  136. package/dist/providers/base.js.map +1 -1
  137. package/dist/providers/openai.d.ts +1 -1
  138. package/dist/providers/openai.d.ts.map +1 -1
  139. package/dist/providers/openai.js.map +1 -1
  140. package/dist/query.d.ts.map +1 -1
  141. package/dist/query.js +91 -14
  142. package/dist/query.js.map +1 -1
  143. package/dist/remote/server.d.ts +31 -0
  144. package/dist/remote/server.d.ts.map +1 -0
  145. package/dist/remote/server.js +163 -0
  146. package/dist/remote/server.js.map +1 -0
  147. package/dist/services/AgentDispatcher.d.ts +42 -0
  148. package/dist/services/AgentDispatcher.d.ts.map +1 -0
  149. package/dist/services/AgentDispatcher.js +181 -0
  150. package/dist/services/AgentDispatcher.js.map +1 -0
  151. package/dist/services/StreamingToolExecutor.d.ts +2 -1
  152. package/dist/services/StreamingToolExecutor.d.ts.map +1 -1
  153. package/dist/services/StreamingToolExecutor.js +11 -2
  154. package/dist/services/StreamingToolExecutor.js.map +1 -1
  155. package/dist/tools/AgentTool/index.d.ts +3 -0
  156. package/dist/tools/AgentTool/index.d.ts.map +1 -1
  157. package/dist/tools/AgentTool/index.js +54 -16
  158. package/dist/tools/AgentTool/index.js.map +1 -1
  159. package/dist/tools/DiagnosticsTool/index.d.ts +21 -0
  160. package/dist/tools/DiagnosticsTool/index.d.ts.map +1 -0
  161. package/dist/tools/DiagnosticsTool/index.js +108 -0
  162. package/dist/tools/DiagnosticsTool/index.js.map +1 -0
  163. package/dist/tools/GrepTool/index.d.ts +2 -2
  164. package/dist/tools/ParallelAgentTool/index.d.ts +37 -0
  165. package/dist/tools/ParallelAgentTool/index.d.ts.map +1 -0
  166. package/dist/tools/ParallelAgentTool/index.js +53 -0
  167. package/dist/tools/ParallelAgentTool/index.js.map +1 -0
  168. package/dist/tools/SkillTool/index.d.ts.map +1 -1
  169. package/dist/tools/SkillTool/index.js +22 -27
  170. package/dist/tools/SkillTool/index.js.map +1 -1
  171. package/dist/tools/ToolSearchTool/index.d.ts +15 -0
  172. package/dist/tools/ToolSearchTool/index.d.ts.map +1 -0
  173. package/dist/tools/ToolSearchTool/index.js +50 -0
  174. package/dist/tools/ToolSearchTool/index.js.map +1 -0
  175. package/dist/tools.d.ts.map +1 -1
  176. package/dist/tools.js +9 -0
  177. package/dist/tools.js.map +1 -1
  178. package/dist/types/message.d.ts +2 -0
  179. package/dist/types/message.d.ts.map +1 -1
  180. package/dist/types/message.js +3 -0
  181. package/dist/types/message.js.map +1 -1
  182. package/dist/types/permissions.d.ts +2 -0
  183. package/dist/types/permissions.d.ts.map +1 -1
  184. package/dist/types/permissions.js +30 -0
  185. package/dist/types/permissions.js.map +1 -1
  186. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -13,7 +13,7 @@ import { emitHook } from "./harness/hooks.js";
13
13
  import { existsSync, readdirSync, readFileSync } from "node:fs";
14
14
  import { homedir } from "node:os";
15
15
  import { join } from "node:path";
16
- const VERSION = "0.5.0";
16
+ const VERSION = "0.5.1";
17
17
  const BANNER = ` ___
18
18
  / \\
19
19
  ( ) ___ ___ ___ _ _ _ _ _ ___ _ _ ___ ___ ___
@@ -427,6 +427,166 @@ program
427
427
  }
428
428
  console.log();
429
429
  });
430
+ // ── remote ──
431
+ program
432
+ .command("remote")
433
+ .description("Start a remote agent server (HTTP + WebSocket for dispatch and channels)")
434
+ .option("-p, --port <port>", "Port to listen on", "3141")
435
+ .option("-m, --model <model>", "Model to use")
436
+ .action(async (opts) => {
437
+ const port = parseInt(opts.port);
438
+ const savedConfig = readOhConfig();
439
+ const { createProvider } = await import("./providers/index.js");
440
+ const effectiveModel = opts.model ?? savedConfig?.model;
441
+ const overrides = {};
442
+ if (savedConfig?.apiKey)
443
+ overrides.apiKey = savedConfig.apiKey;
444
+ if (savedConfig?.baseUrl)
445
+ overrides.baseUrl = savedConfig.baseUrl;
446
+ const { provider, model } = await createProvider(effectiveModel, Object.keys(overrides).length ? overrides : undefined);
447
+ const tools = getAllTools();
448
+ const systemPrompt = buildSystemPrompt();
449
+ const { RemoteServer } = await import("./remote/server.js");
450
+ const server = new RemoteServer({
451
+ port,
452
+ provider,
453
+ tools,
454
+ systemPrompt,
455
+ permissionMode: "trust",
456
+ model,
457
+ });
458
+ await server.start();
459
+ // Keep alive
460
+ process.on('SIGINT', () => { server.stop(); process.exit(0); });
461
+ });
462
+ // ── auth ──
463
+ program
464
+ .command("auth")
465
+ .description("Manage API key credentials")
466
+ .argument("<action>", "login | logout | status")
467
+ .argument("[provider]", "Provider name (anthropic, openai, openrouter)")
468
+ .action(async (action, providerName) => {
469
+ const { setCredential, deleteCredential, listCredentials, getCredential } = await import("./harness/credentials.js");
470
+ if (action === "status") {
471
+ const keys = listCredentials();
472
+ if (keys.length === 0) {
473
+ console.log(" No stored credentials. API keys come from environment variables or config.yaml.");
474
+ return;
475
+ }
476
+ console.log("\n Stored credentials:");
477
+ for (const k of keys) {
478
+ const val = getCredential(k);
479
+ console.log(` ${k}: ${val ? '****' + val.slice(-4) : '(empty)'}`);
480
+ }
481
+ console.log();
482
+ return;
483
+ }
484
+ if (action === "login") {
485
+ if (!providerName) {
486
+ console.error(" Usage: oh auth login <provider>");
487
+ process.exit(1);
488
+ }
489
+ // Read key from stdin
490
+ process.stdout.write(` Enter API key for ${providerName}: `);
491
+ const chunks = [];
492
+ for await (const chunk of process.stdin) {
493
+ chunks.push(chunk);
494
+ break;
495
+ }
496
+ const key = Buffer.concat(chunks).toString("utf-8").trim();
497
+ if (!key) {
498
+ console.error(" No key provided.");
499
+ process.exit(1);
500
+ }
501
+ setCredential(`${providerName}-api-key`, key);
502
+ console.log(` ✓ API key saved securely for ${providerName}`);
503
+ return;
504
+ }
505
+ if (action === "logout") {
506
+ if (!providerName) {
507
+ console.error(" Usage: oh auth logout <provider>");
508
+ process.exit(1);
509
+ }
510
+ deleteCredential(`${providerName}-api-key`);
511
+ console.log(` ✓ API key removed for ${providerName}`);
512
+ return;
513
+ }
514
+ console.error(` Unknown action: ${action}. Use: login, logout, status`);
515
+ });
516
+ // ── serve (MCP server) ──
517
+ program
518
+ .command("serve")
519
+ .description("Run as an MCP server over stdio (other tools can connect to use openHarness tools)")
520
+ .action(async () => {
521
+ const { McpServer } = await import("./mcp/server.js");
522
+ const tools = getAllTools();
523
+ const context = { workingDir: process.cwd() };
524
+ const server = new McpServer(tools, context);
525
+ server.start();
526
+ });
527
+ // ── schedule ──
528
+ program
529
+ .command("schedule")
530
+ .description("Run a prompt on a recurring interval (e.g., every 5 minutes)")
531
+ .argument("<prompt>", "The prompt to execute each interval")
532
+ .option("-m, --model <model>", "Model to use")
533
+ .option("--interval <minutes>", "Interval in minutes", "10")
534
+ .option("--max-runs <n>", "Maximum number of runs (0 = unlimited)", "0")
535
+ .option("--json", "Output as JSON")
536
+ .action(async (prompt, opts) => {
537
+ const intervalMs = parseInt(opts.interval) * 60_000;
538
+ const maxRuns = parseInt(opts.maxRuns);
539
+ let runCount = 0;
540
+ const savedConfig = readOhConfig();
541
+ const { createProvider } = await import("./providers/index.js");
542
+ const effectiveModel = opts.model ?? savedConfig?.model;
543
+ const overrides = {};
544
+ if (savedConfig?.apiKey)
545
+ overrides.apiKey = savedConfig.apiKey;
546
+ if (savedConfig?.baseUrl)
547
+ overrides.baseUrl = savedConfig.baseUrl;
548
+ const { provider, model } = await createProvider(effectiveModel, Object.keys(overrides).length ? overrides : undefined);
549
+ const { query: runQuery } = await import("./query.js");
550
+ const tools = getAllTools();
551
+ const systemPrompt = buildSystemPrompt();
552
+ const runOnce = async () => {
553
+ runCount++;
554
+ const timestamp = new Date().toISOString();
555
+ process.stderr.write(`\n[schedule] Run #${runCount} at ${timestamp}\n`);
556
+ const config = {
557
+ provider,
558
+ tools,
559
+ systemPrompt,
560
+ permissionMode: "trust",
561
+ maxTurns: 20,
562
+ model,
563
+ };
564
+ let output = "";
565
+ for await (const event of runQuery(prompt, config)) {
566
+ if (event.type === "text_delta") {
567
+ output += event.content;
568
+ if (!opts.json)
569
+ process.stdout.write(event.content);
570
+ }
571
+ else if (event.type === "error") {
572
+ process.stderr.write(`[error] ${event.message}\n`);
573
+ }
574
+ }
575
+ if (!opts.json)
576
+ process.stdout.write("\n");
577
+ if (opts.json) {
578
+ console.log(JSON.stringify({ run: runCount, timestamp, output }));
579
+ }
580
+ if (maxRuns > 0 && runCount >= maxRuns) {
581
+ process.stderr.write(`[schedule] Completed ${maxRuns} runs. Exiting.\n`);
582
+ process.exit(0);
583
+ }
584
+ };
585
+ // Run immediately, then on interval
586
+ await runOnce();
587
+ setInterval(() => { runOnce().catch(e => process.stderr.write(`[schedule] Error: ${e}\n`)); }, intervalMs);
588
+ process.stderr.write(`[schedule] Running every ${opts.interval} minutes. Ctrl+C to stop.\n`);
589
+ });
430
590
  program.parseAsync(process.argv).catch((err) => {
431
591
  console.error(err instanceof Error ? err.message : String(err));
432
592
  process.exitCode = 1;
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { z } from 'zod';
2
+ import type { Tool, ToolResult, ToolContext } from '../Tool.js';
3
+ import type { McpClient } from './client.js';
4
+ import { McpTool } from './McpTool.js';
5
+ /**
6
+ * A deferred MCP tool that only stores its name at startup.
7
+ * The full schema is fetched on first use, avoiding context bloat
8
+ * when hundreds of MCP tools are available.
9
+ */
10
+ export declare class DeferredMcpTool implements Tool<z.ZodType> {
11
+ readonly name: string;
12
+ readonly description: string;
13
+ readonly inputSchema: z.ZodType;
14
+ readonly riskLevel: "low" | "medium" | "high";
15
+ private client;
16
+ private toolName;
17
+ private resolved;
18
+ private resolvePromise;
19
+ private _riskLevel;
20
+ constructor(client: McpClient, toolName: string, description: string, riskLevel?: "low" | "medium" | "high");
21
+ isReadOnly(_input: unknown): boolean;
22
+ isConcurrencySafe(_input: unknown): boolean;
23
+ /** Resolve the full tool definition from the MCP server */
24
+ private resolve;
25
+ call(input: Record<string, unknown>, context: ToolContext): Promise<ToolResult>;
26
+ prompt(): string;
27
+ /** Get the full resolved tool definition (for ToolSearch) */
28
+ getResolved(): Promise<McpTool | null>;
29
+ }
30
+ //# sourceMappingURL=DeferredMcpTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeferredMcpTool.d.ts","sourceRoot":"","sources":["../../src/mcp/DeferredMcpTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAE9C,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,UAAU,CAA4B;gBAG5C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAiB;IAYjD,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IACpC,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAE3C,2DAA2D;YAC7C,OAAO;IAqBf,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAerF,MAAM,IAAI,MAAM;IAIhB,6DAA6D;IACvD,WAAW,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CAG7C"}
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+ import { McpTool } from './McpTool.js';
3
+ /**
4
+ * A deferred MCP tool that only stores its name at startup.
5
+ * The full schema is fetched on first use, avoiding context bloat
6
+ * when hundreds of MCP tools are available.
7
+ */
8
+ export class DeferredMcpTool {
9
+ name;
10
+ description;
11
+ inputSchema;
12
+ riskLevel;
13
+ client;
14
+ toolName; // original MCP tool name
15
+ resolved = null;
16
+ resolvePromise = null;
17
+ _riskLevel;
18
+ constructor(client, toolName, description, riskLevel = "medium") {
19
+ this.client = client;
20
+ this.toolName = toolName;
21
+ this._riskLevel = riskLevel;
22
+ this.riskLevel = riskLevel;
23
+ this.name = `${client.name}__${toolName}`;
24
+ this.description = description || toolName;
25
+ // Permissive schema — accepts anything until resolved
26
+ this.inputSchema = z.record(z.unknown());
27
+ }
28
+ isReadOnly(_input) { return false; }
29
+ isConcurrencySafe(_input) { return false; }
30
+ /** Resolve the full tool definition from the MCP server */
31
+ async resolve() {
32
+ if (this.resolved)
33
+ return this.resolved;
34
+ if (this.resolvePromise)
35
+ return this.resolvePromise;
36
+ this.resolvePromise = (async () => {
37
+ try {
38
+ const defs = await this.client.listTools();
39
+ const def = defs.find(d => d.name === this.toolName);
40
+ if (def) {
41
+ this.resolved = new McpTool(this.client, def, this._riskLevel);
42
+ return this.resolved;
43
+ }
44
+ return null;
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ })();
50
+ return this.resolvePromise;
51
+ }
52
+ async call(input, context) {
53
+ // Resolve on first call
54
+ const resolved = await this.resolve();
55
+ if (resolved) {
56
+ return resolved.call(input, context);
57
+ }
58
+ // Fallback: call directly without schema validation
59
+ try {
60
+ const output = await this.client.callTool(this.toolName, input);
61
+ return { output, isError: false };
62
+ }
63
+ catch (err) {
64
+ return { output: String(err), isError: true };
65
+ }
66
+ }
67
+ prompt() {
68
+ return `[mcp:${this.client.name}] ${this.description} (deferred — schema loaded on use)`;
69
+ }
70
+ /** Get the full resolved tool definition (for ToolSearch) */
71
+ async getResolved() {
72
+ return this.resolve();
73
+ }
74
+ }
75
+ //# sourceMappingURL=DeferredMcpTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeferredMcpTool.js","sourceRoot":"","sources":["../../src/mcp/DeferredMcpTool.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,14 @@ export declare class McpClient {
12
12
  private constructor();
13
13
  static connect(cfg: McpServerConfig, timeoutMs?: number): Promise<McpClient>;
14
14
  listTools(): Promise<McpToolDef[]>;
15
+ listResources(): Promise<Array<{
16
+ uri: string;
17
+ name: string;
18
+ description?: string;
19
+ }>>;
20
+ readResource(uri: string): Promise<string>;
15
21
  callTool(name: string, args: Record<string, unknown>): Promise<string>;
22
+ private callWithTimeout;
16
23
  private call;
17
24
  disconnect(): void;
18
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmC,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAA4F;IAC3G,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;WA6BM,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,SAAuB,GAAG,OAAO,CAAC,SAAS,CAAC;IAyB1F,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAKlC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAkB5E,OAAO,CAAC,IAAI;IASZ,UAAU,IAAI,IAAI;CAGnB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmC,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAA4F;IAC3G,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;WA6BM,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,SAAuB,GAAG,OAAO,CAAC,SAAS,CAAC;IAyB1F,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAKlC,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IASpF,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU1C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAwC5E,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,IAAI;IASZ,UAAU,IAAI,IAAI;CAGnB"}
@@ -59,6 +59,25 @@ export class McpClient {
59
59
  const res = await this.call('tools/list', {});
60
60
  return (res.result?.tools ?? []);
61
61
  }
62
+ async listResources() {
63
+ try {
64
+ const res = await this.callWithTimeout('resources/list', {});
65
+ return (res.result?.resources ?? []);
66
+ }
67
+ catch {
68
+ return []; // Server may not support resources
69
+ }
70
+ }
71
+ async readResource(uri) {
72
+ const res = await this.callWithTimeout('resources/read', { uri });
73
+ if (res.error)
74
+ throw new Error(res.error.message);
75
+ const contents = res.result?.contents ?? [];
76
+ return contents
77
+ .filter((c) => c.text)
78
+ .map((c) => c.text)
79
+ .join('\n');
80
+ }
62
81
  async callTool(name, args) {
63
82
  if (this.dead) {
64
83
  try {
@@ -69,14 +88,43 @@ export class McpClient {
69
88
  throw new Error(`MCP server '${this.name}' died and restart failed`);
70
89
  }
71
90
  }
72
- const res = await this.call('tools/call', { name, arguments: args });
73
- if (res.error)
74
- throw new Error(res.error.message);
75
- const content = res.result?.content ?? [];
76
- return content
77
- .filter((c) => c.type === 'text')
78
- .map((c) => c.text)
79
- .join('\n');
91
+ // Retry up to 2 times for transient failures
92
+ let lastError = null;
93
+ for (let attempt = 0; attempt < 3; attempt++) {
94
+ try {
95
+ const res = await this.callWithTimeout('tools/call', { name, arguments: args });
96
+ if (res.error)
97
+ throw new Error(res.error.message);
98
+ const content = res.result?.content ?? [];
99
+ return content
100
+ .filter((c) => c.type === 'text')
101
+ .map((c) => c.text)
102
+ .join('\n');
103
+ }
104
+ catch (err) {
105
+ lastError = err instanceof Error ? err : new Error(String(err));
106
+ // Only retry on timeout or server death — not on application errors
107
+ if (!lastError.message.includes('timeout') && !lastError.message.includes('exited')) {
108
+ throw lastError;
109
+ }
110
+ if (this.dead && attempt < 2) {
111
+ try {
112
+ const fresh = await McpClient.connect(this.cfg, this.timeoutMs);
113
+ Object.assign(this, { proc: fresh.proc, dead: false, ready: true, nextId: 1, pending: new Map() });
114
+ }
115
+ catch {
116
+ throw new Error(`MCP server '${this.name}' died and restart failed`);
117
+ }
118
+ }
119
+ }
120
+ }
121
+ throw lastError ?? new Error(`MCP '${this.name}' call failed after retries`);
122
+ }
123
+ callWithTimeout(method, params) {
124
+ return Promise.race([
125
+ this.call(method, params),
126
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`MCP '${this.name}' call timeout (${this.timeoutMs}ms)`)), this.timeoutMs)),
127
+ ]);
80
128
  }
81
129
  call(method, params) {
82
130
  return new Promise((resolve, reject) => {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,13 @@ export declare function loadMcpTools(): Promise<Tool[]>;
5
5
  export declare function disconnectMcpClients(): void;
6
6
  /** Names of connected MCP servers */
7
7
  export declare function connectedMcpServers(): string[];
8
+ /** List all available resources across connected MCP servers */
9
+ export declare function listMcpResources(): Promise<Array<{
10
+ server: string;
11
+ uri: string;
12
+ name: string;
13
+ description?: string;
14
+ }>>;
15
+ /** Resolve a @mention to MCP resource content. Returns content or null. */
16
+ export declare function resolveMcpMention(mention: string): Promise<string | null>;
8
17
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/mcp/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAOvC,mGAAmG;AACnG,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAqBpD;AAED,gDAAgD;AAChD,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/mcp/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAWvC,mGAAmG;AACnG,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CA8BpD;AAED,gDAAgD;AAChD,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,gEAAgE;AAChE,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAW5H;AAED,2EAA2E;AAC3E,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc/E"}
@@ -1,7 +1,10 @@
1
1
  import { McpClient } from './client.js';
2
2
  import { McpTool } from './McpTool.js';
3
+ import { DeferredMcpTool } from './DeferredMcpTool.js';
3
4
  import { readOhConfig } from '../harness/config.js';
4
5
  const connectedClients = [];
6
+ /** Threshold: servers with more tools than this use deferred loading */
7
+ const DEFERRED_THRESHOLD = 10;
5
8
  /** Load MCP tools from .oh/config.yaml mcpServers list. Returns empty array if none configured. */
6
9
  export async function loadMcpTools() {
7
10
  const cfg = readOhConfig();
@@ -14,8 +17,17 @@ export async function loadMcpTools() {
14
17
  const client = await McpClient.connect(server);
15
18
  connectedClients.push(client);
16
19
  const defs = await client.listTools();
17
- for (const def of defs) {
18
- tools.push(new McpTool(client, def, server.riskLevel));
20
+ if (defs.length > DEFERRED_THRESHOLD) {
21
+ // Many tools → use deferred loading (name + description only, schema on demand)
22
+ for (const def of defs) {
23
+ tools.push(new DeferredMcpTool(client, def.name, def.description ?? '', server.riskLevel));
24
+ }
25
+ }
26
+ else {
27
+ // Few tools → load eagerly (full schema)
28
+ for (const def of defs) {
29
+ tools.push(new McpTool(client, def, server.riskLevel));
30
+ }
19
31
  }
20
32
  }
21
33
  catch (err) {
@@ -38,4 +50,33 @@ export function disconnectMcpClients() {
38
50
  export function connectedMcpServers() {
39
51
  return connectedClients.map(c => c.name);
40
52
  }
53
+ /** List all available resources across connected MCP servers */
54
+ export async function listMcpResources() {
55
+ const resources = [];
56
+ for (const client of connectedClients) {
57
+ try {
58
+ const serverResources = await client.listResources();
59
+ for (const r of serverResources) {
60
+ resources.push({ server: client.name, ...r });
61
+ }
62
+ }
63
+ catch { /* ignore */ }
64
+ }
65
+ return resources;
66
+ }
67
+ /** Resolve a @mention to MCP resource content. Returns content or null. */
68
+ export async function resolveMcpMention(mention) {
69
+ for (const client of connectedClients) {
70
+ try {
71
+ const resources = await client.listResources();
72
+ const match = resources.find(r => r.name.toLowerCase() === mention.toLowerCase() ||
73
+ r.uri.toLowerCase().includes(mention.toLowerCase()));
74
+ if (match) {
75
+ return await client.readResource(match.uri);
76
+ }
77
+ }
78
+ catch { /* ignore */ }
79
+ }
80
+ return null;
81
+ }
41
82
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/mcp/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,gBAAgB,GAAgB,EAAE,CAAC;AAEzC,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,GAAG,EAAE,UAAU,IAAI,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAW,EAAE,CAAC;IAEzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/C,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,oBAAoB;IAClC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC;YAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,mBAAmB;IACjC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/mcp/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { z } from 'zod';
2
+ /**
3
+ * Simple Zod-to-JSON-Schema converter for MCP tool definitions.
4
+ * Handles common cases: object, string, number, boolean, array, optional.
5
+ */
6
+ export declare function zodToJsonSchemaSimple(schema: z.ZodType): unknown;
7
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/mcp/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAmChE"}