@qodo/sdk 0.8.0 → 0.10.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 (56) hide show
  1. package/.claude/skills/qodo-agent/SKILL.md +91 -3
  2. package/.claude/skills/qodo-agent/assets/programmatic-agent.ts +24 -8
  3. package/.claude/skills/qodo-agent/references/common-issues.md +2 -1
  4. package/README.md +14 -0
  5. package/dist/bin/install-skill.js +0 -0
  6. package/dist/clients/index.d.ts +2 -0
  7. package/dist/clients/index.d.ts.map +1 -1
  8. package/dist/clients/index.js +1 -0
  9. package/dist/clients/index.js.map +1 -1
  10. package/dist/clients/tools/ToolsClient.d.ts +39 -0
  11. package/dist/clients/tools/ToolsClient.d.ts.map +1 -0
  12. package/dist/clients/tools/ToolsClient.js +95 -0
  13. package/dist/clients/tools/ToolsClient.js.map +1 -0
  14. package/dist/clients/tools/index.d.ts +4 -0
  15. package/dist/clients/tools/index.d.ts.map +1 -0
  16. package/dist/clients/tools/index.js +2 -0
  17. package/dist/clients/tools/index.js.map +1 -0
  18. package/dist/clients/tools/types.d.ts +14 -0
  19. package/dist/clients/tools/types.d.ts.map +1 -0
  20. package/dist/clients/tools/types.js +2 -0
  21. package/dist/clients/tools/types.js.map +1 -0
  22. package/dist/index.d.ts +4 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/sdk/QodoSDK.d.ts +3 -1
  27. package/dist/sdk/QodoSDK.d.ts.map +1 -1
  28. package/dist/sdk/QodoSDK.js +4 -1
  29. package/dist/sdk/QodoSDK.js.map +1 -1
  30. package/dist/sdk/events.d.ts +8 -1
  31. package/dist/sdk/events.d.ts.map +1 -1
  32. package/dist/sdk/events.js +1 -0
  33. package/dist/sdk/events.js.map +1 -1
  34. package/dist/sdk/pipeline/PipelineBuilder.d.ts +21 -3
  35. package/dist/sdk/pipeline/PipelineBuilder.d.ts.map +1 -1
  36. package/dist/sdk/pipeline/PipelineBuilder.js +40 -2
  37. package/dist/sdk/pipeline/PipelineBuilder.js.map +1 -1
  38. package/dist/sdk/pipeline/PipelineRunner.d.ts.map +1 -1
  39. package/dist/sdk/pipeline/PipelineRunner.js +141 -25
  40. package/dist/sdk/pipeline/PipelineRunner.js.map +1 -1
  41. package/dist/sdk/pipeline/compiler.d.ts.map +1 -1
  42. package/dist/sdk/pipeline/compiler.js +4 -2
  43. package/dist/sdk/pipeline/compiler.js.map +1 -1
  44. package/dist/sdk/pipeline/index.d.ts +1 -1
  45. package/dist/sdk/pipeline/index.d.ts.map +1 -1
  46. package/dist/sdk/pipeline/index.js.map +1 -1
  47. package/dist/sdk/pipeline/types.d.ts +21 -3
  48. package/dist/sdk/pipeline/types.d.ts.map +1 -1
  49. package/dist/tracing/PipelineTracer.d.ts.map +1 -1
  50. package/dist/tracing/PipelineTracer.js +18 -2
  51. package/dist/tracing/PipelineTracer.js.map +1 -1
  52. package/dist/tracing/pipelineHelpers.d.ts +10 -1
  53. package/dist/tracing/pipelineHelpers.d.ts.map +1 -1
  54. package/dist/tracing/pipelineHelpers.js +105 -21
  55. package/dist/tracing/pipelineHelpers.js.map +1 -1
  56. package/package.json +2 -2
@@ -46,6 +46,10 @@ Use this skill when working with `@qodo/sdk` to build AI-powered agents. This sk
46
46
  | `sdkPipeline()` | Build multi-step agent workflows |
47
47
  | `runPipeline()` | Execute a pipeline with an SDK instance |
48
48
  | `PipelineExecutionError` | Pipeline step failure error |
49
+ | `.step()` | Add a sequential step with typed state threading |
50
+ | `.parallel()` | Add a group of steps that execute concurrently |
51
+ | `.gate()` | Pipeline-level barrier — halts subsequent entries when false |
52
+ | `.branch()` | Pipeline-level if/else fork with sub-pipeline paths |
49
53
 
50
54
  ### Tool Middleware
51
55
 
@@ -91,8 +95,9 @@ Use this skill when working with `@qodo/sdk` to build AI-powered agents. This sk
91
95
 
92
96
  | Export | Purpose |
93
97
  |--------|---------|
94
- | `QodoInfoClient` | Backend info (models, capabilities) |
98
+ | `QodoInfoClient` | Backend info (models, capabilities, rate limits) |
95
99
  | `QodoSessionsClient` | Session history management |
100
+ | `QodoToolsClient` | Tool discovery (built-in + backend tools) |
96
101
 
97
102
  ### Errors
98
103
 
@@ -493,8 +498,9 @@ const pipeline = sdkPipeline<{ repo: string }>()
493
498
  const r = await run('lint', { args: { path: state.repo } });
494
499
  return { lintOutput: r.result.final_output };
495
500
  })
501
+ // Gate: only continue review if lint produced output
502
+ .gate((state) => !!state.lintOutput)
496
503
  .step('review', async ({ state, run }) => {
497
- // TypeScript knows state has `repo` + `lintOutput`
498
504
  const r = await run('review', {
499
505
  extraInstructions: `Lint results:\n${state.lintOutput}`,
500
506
  });
@@ -509,7 +515,37 @@ console.log(result.steps); // Step logs with timing
509
515
  await sdk.dispose();
510
516
  ```
511
517
 
512
- Features: typed state threading, `.parallel([...])`, gates, error strategies (`'skip'`, `'throw'`, custom recovery).
518
+ Features: typed state threading, `.parallel([...])`, `.gate()` (pipeline barriers), `.branch()` (if/else forks), error strategies (`'skip'`, `'throw'`, custom recovery).
519
+
520
+ ### Pattern 8b: Pipeline Branches
521
+
522
+ ```typescript
523
+ import { QodoSDK, sdkPipeline, runPipeline } from '@qodo/sdk';
524
+
525
+ const sdk = new QodoSDK({ autoApproveTools: true });
526
+
527
+ const pipeline = sdkPipeline<{ fileCount: number }>()
528
+ .branch(
529
+ (state) => state.fileCount > 20,
530
+ {
531
+ true: (b) => b.step('deep', async ({ run }) => {
532
+ const r = await run('analyze-deep');
533
+ return { analysis: r.result.final_output };
534
+ }),
535
+ false: (b) => b.step('quick', async ({ run }) => {
536
+ const r = await run('summarize');
537
+ return { analysis: r.result.final_output };
538
+ }),
539
+ },
540
+ { name: 'size-check' },
541
+ )
542
+ .step('report', async ({ state }) => ({
543
+ report: `${state.fileCount} files: ${state.analysis}`,
544
+ }))
545
+ .build();
546
+
547
+ await sdk.dispose();
548
+ ```
513
549
 
514
550
  ### Pattern 9: Dry Run Mode
515
551
 
@@ -653,6 +689,57 @@ await sdk.dispose();
653
689
 
654
690
  No compile-time OTel dependency — install `@opentelemetry/api` as optional peer dep.
655
691
 
692
+ ### Pattern 15: Backend Info Client (Standalone)
693
+
694
+ ```typescript
695
+ import { QodoInfoClient } from '@qodo/sdk';
696
+
697
+ // Standalone — no run/stream needed
698
+ const info = new QodoInfoClient();
699
+ const things = await info.getThings();
700
+ console.log(things.available_models); // ['gpt-4', 'gpt-4o', ...]
701
+ console.log(things.default_model); // 'gpt-4o'
702
+ console.log(things.session_id); // new backend session ID
703
+ console.log(things.rate_limit); // { remaining, reset, limit }
704
+
705
+ // Convenience
706
+ const models = await info.getAvailableModels();
707
+
708
+ // Via SDK instance
709
+ const sdk = new QodoSDK();
710
+ const defaultModel = await sdk.info.getDefaultModel();
711
+ ```
712
+
713
+ ### Pattern 16: Tool Discovery Client (Standalone)
714
+
715
+ ```typescript
716
+ import { QodoToolsClient } from '@qodo/sdk';
717
+
718
+ // Standalone — no run/stream needed
719
+ const client = new QodoToolsClient();
720
+
721
+ // List all tools (built-in + backend)
722
+ const tools = await client.getTools();
723
+ for (const tool of tools) {
724
+ console.log(`${tool.server}.${tool.name} (${tool.serverType})`);
725
+ // e.g. "filesystem.read_files (builtin)"
726
+ // e.g. "sequential_thinking.sequential_thinking (backend)"
727
+ }
728
+
729
+ // Group by server
730
+ const byServer = await client.getToolsByServer();
731
+ console.log(Object.keys(byServer));
732
+ // ['filesystem', 'git', 'ripgrep', 'shell', 'sequential_thinking', ...]
733
+
734
+ // Filter by type
735
+ const backendOnly = tools.filter(t => t.serverType === 'backend');
736
+ const builtinOnly = tools.filter(t => t.serverType === 'builtin');
737
+
738
+ // Via SDK instance
739
+ const sdk = new QodoSDK();
740
+ const allTools = await sdk.tools.getTools();
741
+ ```
742
+
656
743
  ---
657
744
 
658
745
  ## Zod Schema Patterns
@@ -876,6 +963,7 @@ z.object({
876
963
 
877
964
  | Feature | Doc |
878
965
  |---------|-----|
966
+ | API Reference (Clients, Options, Types) | [docs/api-reference.md](../../../docs/api-reference.md) |
879
967
  | Pipeline DSL | [docs/pipeline.md](../../../docs/pipeline.md) |
880
968
  | Dry Run Mode | [docs/dry-run.md](../../../docs/dry-run.md) |
881
969
  | Tool Middleware | [docs/tool-middleware.md](../../../docs/tool-middleware.md) |
@@ -319,7 +319,7 @@ async function main() {
319
319
  // @ts-ignore
320
320
  console.log('Response:', promptResult.final_output);
321
321
  // -------------------------------------------------------------------------
322
- // Example 4: Pipeline (multi-step workflow)
322
+ // Example 4: Pipeline (multi-step workflow with gates and branches)
323
323
  // -------------------------------------------------------------------------
324
324
  console.log('\n\n--- Pipeline example ---\n');
325
325
 
@@ -328,18 +328,34 @@ async function main() {
328
328
  const r = await run('analyze', { args: { path: state.path } });
329
329
  return { analysis: r.result.structured_output };
330
330
  })
331
- .step('summarize', async ({ state, run }) => {
332
- const r = await run('', {
333
- extraInstructions: `Summarize these findings in one paragraph: ${JSON.stringify(state.analysis)}`,
334
- });
335
- return { summary: r.result.final_output };
336
- })
331
+ // Gate: only continue if analysis produced results
332
+ .gate((state) => !!state.analysis, { name: 'has-analysis' })
333
+ // Branch: choose different summary strategies based on score
334
+ .branch(
335
+ (state) => (state.analysis as any)?.score > 80,
336
+ {
337
+ true: (b) => b.step('brief-summary', async ({ state, run }) => {
338
+ const r = await run('', {
339
+ extraInstructions: `High quality code (score: ${(state.analysis as any)?.score}). Brief summary: ${JSON.stringify(state.analysis)}`,
340
+ });
341
+ return { summary: r.result.final_output };
342
+ }),
343
+ false: (b) => b.step('detailed-summary', async ({ state, run }) => {
344
+ const r = await run('', {
345
+ extraInstructions: `Code needs improvement. Detailed summary with recommendations: ${JSON.stringify(state.analysis)}`,
346
+ });
347
+ return { summary: r.result.final_output };
348
+ }),
349
+ },
350
+ { name: 'quality-check' },
351
+ )
337
352
  .build();
338
353
 
339
354
  const pipelineResult = await runPipeline(sdk, pipeline, { path: './src' });
340
355
  console.log('Pipeline summary:', pipelineResult.state.summary);
341
356
  for (const log of pipelineResult.steps) {
342
- console.log(` ${log.name}: ${log.status} (${log.durationMs}ms)`);
357
+ const branch = log.branchTaken ? ` (branch: ${log.branchTaken})` : '';
358
+ console.log(` ${log.name}: ${log.status}${branch} (${log.durationMs}ms)`);
343
359
  }
344
360
 
345
361
  // -------------------------------------------------------------------------
@@ -433,11 +433,12 @@ PipelineExecutionError: Step "lint" failed: ...
433
433
 
434
434
  **Cause:** A pipeline step threw an error and no error strategy was set.
435
435
 
436
- **Solution:** Add error handling per step:
436
+ **Solution:** Add error handling per step, or use gates to guard steps:
437
437
 
438
438
  ```typescript
439
439
  sdkPipeline()
440
440
  .step('lint', lintFn, { onError: 'skip' }) // Skip on failure
441
+ .gate((state) => !!state.lintOutput) // Gate: halt if no lint output
441
442
  .step('review', reviewFn, {
442
443
  onError: (error, state) => ({ fallback: true }), // Custom recovery
443
444
  })
package/README.md CHANGED
@@ -135,6 +135,20 @@ choco install ripgrep
135
135
 
136
136
  If ripgrep is not available, the `ripgrep_search` tool will be unavailable and the SDK will log a warning. All other functionality works normally.
137
137
 
138
+ ## Claude Code Skill
139
+
140
+ The SDK ships with a Claude Code skill that provides context-aware assistance when building Qodo agents. Install it with:
141
+
142
+ ```bash
143
+ # Install to your project
144
+ npx @qodo/sdk install-skill
145
+
146
+ # Or install globally (available in all projects)
147
+ npx @qodo/sdk install-skill --global
148
+ ```
149
+
150
+ Once installed, use `/qodo-agent` in Claude Code to get help with agent configuration, SDK APIs, and common patterns.
151
+
138
152
  ## Documentation
139
153
 
140
154
  | Guide | Description |
File without changes
@@ -5,4 +5,6 @@
5
5
  export type { QodoInfoClientOptions, QodoBackendInfo, BaseUrlSource, RateLimitInfo } from './info/index.js';
6
6
  export { QodoSessionsClient } from './sessions/index.js';
7
7
  export type { QodoSessionsClientOptions, RecentSession, SessionHistory, SessionMessage } from './sessions/index.js';
8
+ export { QodoToolsClient } from './tools/index.js';
9
+ export type { QodoToolsClientOptions, QodoToolInfo } from './tools/index.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,yBAAyB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,yBAAyB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -4,4 +4,5 @@
4
4
  */
5
5
  export { QodoInfoClient } from './info/index.js';
6
6
  export { QodoSessionsClient } from './sessions/index.js';
7
+ export { QodoToolsClient } from './tools/index.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { QodoSDKOptions } from '../../sdk/QodoSDK.js';
2
+ import type { QodoToolInfo } from './types.js';
3
+ export type QodoToolsClientOptions = {
4
+ /** baseUrl override passed to the SDK (options.backend.baseUrl) */
5
+ baseUrlOverride?: string;
6
+ };
7
+ /**
8
+ * QodoToolsClient
9
+ *
10
+ * Public-facing SDK facade for discovering available tools
11
+ * (built-in MCP servers + backend-provided tools).
12
+ *
13
+ * Follows the same pattern as QodoInfoClient — bootstraps the backend
14
+ * connection on first call, then returns normalized tool info.
15
+ */
16
+ export declare class QodoToolsClient {
17
+ private readonly opts;
18
+ private cache?;
19
+ constructor(opts?: QodoToolsClientOptions);
20
+ private ensureInitialized;
21
+ private buildCatalog;
22
+ /**
23
+ * Returns all available tools (built-in + backend).
24
+ */
25
+ getTools(opts?: {
26
+ forceRefresh?: boolean;
27
+ }): Promise<QodoToolInfo[]>;
28
+ /**
29
+ * Returns tools grouped by server id.
30
+ */
31
+ getToolsByServer(opts?: {
32
+ forceRefresh?: boolean;
33
+ }): Promise<Record<string, QodoToolInfo[]>>;
34
+ /**
35
+ * Helper for SDK integration: build tools client options from SDK options.
36
+ */
37
+ static fromSdkOptions(sdkOpts: QodoSDKOptions): QodoToolsClient;
38
+ }
39
+ //# sourceMappingURL=ToolsClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolsClient.d.ts","sourceRoot":"","sources":["../../../src/clients/tools/ToolsClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG;IACnC,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAGd,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,KAAK,CAAC,CAAiB;gBAEF,IAAI,GAAE,sBAA2B;YAEhD,iBAAiB;YASjB,YAAY;IA0C1B;;OAEG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK1E;;OAEG;IACG,gBAAgB,CAAC,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAUlG;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe;CAGhE"}
@@ -0,0 +1,95 @@
1
+ import { BackendBootstrap } from '../../sdk/bootstrap.js';
2
+ import { ServerData } from '../../session/index.js';
3
+ import { BuiltInServers } from '../../mcp/builtinServers.js';
4
+ /**
5
+ * QodoToolsClient
6
+ *
7
+ * Public-facing SDK facade for discovering available tools
8
+ * (built-in MCP servers + backend-provided tools).
9
+ *
10
+ * Follows the same pattern as QodoInfoClient — bootstraps the backend
11
+ * connection on first call, then returns normalized tool info.
12
+ */
13
+ export class QodoToolsClient {
14
+ opts;
15
+ cache;
16
+ constructor(opts = {}) {
17
+ this.opts = opts;
18
+ }
19
+ async ensureInitialized(forceRefresh = false) {
20
+ if (forceRefresh || !this.cache) {
21
+ const bootstrap = new BackendBootstrap({ baseUrlOverride: this.opts.baseUrlOverride });
22
+ await bootstrap.init();
23
+ await ServerData.init(this.opts.baseUrlOverride);
24
+ this.cache = await this.buildCatalog();
25
+ }
26
+ }
27
+ async buildCatalog() {
28
+ const catalog = [];
29
+ // Built-in servers
30
+ const builtIn = new BuiltInServers();
31
+ const servers = await builtIn.getServers();
32
+ for (const server of servers) {
33
+ const instance = builtIn.getBuiltInServer(server.id);
34
+ if (!instance)
35
+ continue;
36
+ try {
37
+ await instance.initialize();
38
+ const { tools } = await instance.listTools();
39
+ for (const tool of tools) {
40
+ catalog.push({
41
+ server: server.id,
42
+ serverType: 'builtin',
43
+ name: tool.name,
44
+ description: tool.description,
45
+ });
46
+ }
47
+ }
48
+ catch { /* best-effort: skip servers that fail to initialize */ }
49
+ }
50
+ // Backend tools from get-things
51
+ try {
52
+ const serverData = ServerData.getInstance();
53
+ const backendTools = serverData.getMCPTools();
54
+ for (const [serverId, tools] of Object.entries(backendTools)) {
55
+ for (const tool of tools) {
56
+ catalog.push({
57
+ server: serverId,
58
+ serverType: 'backend',
59
+ name: tool.name,
60
+ description: tool.description,
61
+ });
62
+ }
63
+ }
64
+ }
65
+ catch { /* best-effort: backend tools may not be available */ }
66
+ return catalog;
67
+ }
68
+ /**
69
+ * Returns all available tools (built-in + backend).
70
+ */
71
+ async getTools(opts) {
72
+ await this.ensureInitialized(!!opts?.forceRefresh);
73
+ return [...this.cache];
74
+ }
75
+ /**
76
+ * Returns tools grouped by server id.
77
+ */
78
+ async getToolsByServer(opts) {
79
+ const tools = await this.getTools(opts);
80
+ const grouped = {};
81
+ for (const tool of tools) {
82
+ if (!grouped[tool.server])
83
+ grouped[tool.server] = [];
84
+ grouped[tool.server].push(tool);
85
+ }
86
+ return grouped;
87
+ }
88
+ /**
89
+ * Helper for SDK integration: build tools client options from SDK options.
90
+ */
91
+ static fromSdkOptions(sdkOpts) {
92
+ return new QodoToolsClient({ baseUrlOverride: sdkOpts?.backend?.baseUrl });
93
+ }
94
+ }
95
+ //# sourceMappingURL=ToolsClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolsClient.js","sourceRoot":"","sources":["../../../src/clients/tools/ToolsClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { QodoToolsClient } from './ToolsClient.js';
2
+ export type { QodoToolsClientOptions } from './ToolsClient.js';
3
+ export type { QodoToolInfo } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clients/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { QodoToolsClient } from './ToolsClient.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/clients/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Describes a single tool available on an MCP server.
3
+ */
4
+ export type QodoToolInfo = {
5
+ /** Server that owns this tool (e.g. "filesystem", "git", "shell"). */
6
+ server: string;
7
+ /** Server type: builtin or backend. */
8
+ serverType: 'builtin' | 'backend';
9
+ /** Tool name as used in tool calls. */
10
+ name: string;
11
+ /** Human-readable description of the tool. */
12
+ description?: string;
13
+ };
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/clients/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/clients/tools/types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { QodoSDK } from './sdk/index.js';
2
2
  export type { QodoSDKOptions, QodoSDKRunResult, QodoSDKStreamEvent, QodoSDKRunOptions, QodoSDKLogger, } from './sdk/index.js';
3
3
  export { SdkEventType, SDK_PROTOCOL_V2, matchSdkEvent, createSdkEvent, getSdkVersion, } from './sdk/events.js';
4
- export type { QodoSdkEvent, SdkEventTypeName, SdkEventEnvelope, SdkInitEvent, SdkRunStartedEvent, SdkMessageDeltaEvent, SdkMessageFullEvent, SdkProgressEvent, SdkToolRequestedEvent, SdkToolApprovedEvent, SdkToolExecutedEvent, SdkErrorEvent, SdkFinalEvent, SdkEventHandlers, SdkPipelineStartedEvent, SdkPipelineStepStartedEvent, SdkPipelineStepCompletedEvent, SdkPipelineGateEvaluatedEvent, SdkPipelineCompletedEvent, SdkPipelineErrorEvent, } from './sdk/events.js';
4
+ export type { QodoSdkEvent, SdkEventTypeName, SdkEventEnvelope, SdkInitEvent, SdkRunStartedEvent, SdkMessageDeltaEvent, SdkMessageFullEvent, SdkProgressEvent, SdkToolRequestedEvent, SdkToolApprovedEvent, SdkToolExecutedEvent, SdkErrorEvent, SdkFinalEvent, SdkEventHandlers, SdkPipelineStartedEvent, SdkPipelineStepStartedEvent, SdkPipelineStepCompletedEvent, SdkPipelineGateEvaluatedEvent, SdkPipelineBranchEvaluatedEvent, SdkPipelineCompletedEvent, SdkPipelineErrorEvent, } from './sdk/events.js';
5
5
  export { sdkAgent, sdkCommand, sdkArgs } from './sdk/builders.js';
6
6
  export { zodOutputSchema, zodArgsSchema, zCoerce, zJsonValue, zJsonAny, parseArgsWithSchema, QodoSchemaError, } from './sdk/schemas.js';
7
7
  export { z } from 'zod/v3';
@@ -9,6 +9,8 @@ export { QodoInfoClient } from './clients/info/index.js';
9
9
  export type { QodoBackendInfo } from './clients/info/types.js';
10
10
  export { QodoSessionsClient } from './clients/sessions/index.js';
11
11
  export type { RecentSession, SessionHistory, SessionMessage, } from './clients/sessions/types.js';
12
+ export { QodoToolsClient } from './clients/tools/index.js';
13
+ export type { QodoToolInfo } from './clients/tools/types.js';
12
14
  export { findNearestAgentConfig } from './sdk/discovery.js';
13
15
  export { buildDefaultSdkAgentConfig } from './sdk/defaults.js';
14
16
  export { QodoTracker } from './tracking/index.js';
@@ -19,7 +21,7 @@ export type { ToolCall, AIMessageInput, ToolMessageInput } from './messages/inde
19
21
  export { convertMessagesToOpenAI } from './messages/index.js';
20
22
  export type { OpenAIChatMessage } from './messages/index.js';
21
23
  export { sdkPipeline, PipelineBuilder, Pipeline, runPipeline, PipelineExecutionError } from './sdk/pipeline/index.js';
22
- export type { StepFn, StepContext, GateFn, ErrorStrategy, PipelineResult, StepLog, StepOptions, PipelineEventCallback, } from './sdk/pipeline/index.js';
24
+ export type { StepFn, StepContext, GateFn, ErrorStrategy, PipelineGate, PipelineBranch, PipelineResult, StepLog, StepOptions, PipelineEventCallback, } from './sdk/pipeline/index.js';
23
25
  export { compileDeclarativePipeline, DeclarativePipelineValidationError } from './sdk/pipeline/index.js';
24
26
  export type { DeclarativePipelineStep, DeclarativePipeline } from './sdk/pipeline/index.js';
25
27
  export type { ToolMiddleware } from './sdk/middleware.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,9 +8,10 @@ export { zodOutputSchema, zodArgsSchema, zCoerce, zJsonValue, zJsonAny, parseArg
8
8
  // Re-export zod for convenience and type compatibility
9
9
  // Users can import { z } from '@qodo/sdk' to ensure compatibility with SDK schema functions
10
10
  export { z } from 'zod/v3';
11
- // Info & Sessions clients
11
+ // Info, Sessions & Tools clients
12
12
  export { QodoInfoClient } from './clients/info/index.js';
13
13
  export { QodoSessionsClient } from './clients/sessions/index.js';
14
+ export { QodoToolsClient } from './clients/tools/index.js';
14
15
  // Agent discovery & defaults
15
16
  export { findNearestAgentConfig } from './sdk/discovery.js';
16
17
  export { buildDefaultSdkAgentConfig } from './sdk/defaults.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AASzC,SAAS;AACT,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAyBzB,uBAAuB;AACvB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EACL,eAAe,EACf,aAAa,EACb,OAAO,EACP,UAAU,EACV,QAAQ,EACR,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,uDAAuD;AACvD,4FAA4F;AAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAOjE,6BAA6B;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAYlD,UAAU;AACV,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,qEAAqE;AACrE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAYtH,uBAAuB;AACvB,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAKzG,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAExG,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGjG,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGlF,+BAA+B;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,gCAAgC;AAChC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AASzC,SAAS;AACT,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AA0BzB,uBAAuB;AACvB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EACL,eAAe,EACf,aAAa,EACb,OAAO,EACP,UAAU,EACV,QAAQ,EACR,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,uDAAuD;AACvD,4FAA4F;AAC5F,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,iCAAiC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAOjE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,6BAA6B;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAYlD,UAAU;AACV,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,qEAAqE;AACrE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AActH,uBAAuB;AACvB,OAAO,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAKzG,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAExG,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGjG,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGlF,+BAA+B;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,gCAAgC;AAChC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { QodoInfoClient, QodoSessionsClient } from '../clients/index.js';
1
+ import { QodoInfoClient, QodoSessionsClient, QodoToolsClient } from '../clients/index.js';
2
2
  import { AIAssistantConfig, MCPConfig } from '../parser/types.js';
3
3
  import { type QodoSdkEvent, SdkEventType } from './events.js';
4
4
  export type QodoSDKLogger = {
@@ -125,6 +125,8 @@ export declare class QodoSDK {
125
125
  readonly info: QodoInfoClient;
126
126
  /** Session history facade */
127
127
  readonly sessions: QodoSessionsClient;
128
+ /** Tool discovery facade */
129
+ readonly tools: QodoToolsClient;
128
130
  private initialized;
129
131
  private readonly env;
130
132
  private readonly logger;
@@ -1 +1 @@
1
- {"version":3,"file":"QodoSDK.d.ts","sourceRoot":"","sources":["../../src/sdk/QodoSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QodoSDK.d.ts","sourceRoot":"","sources":["../../src/sdk/QodoSDK.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { AgentAPI } from '../api/agent.js';
9
9
  import { AgentRunnerCore } from './runner/index.js';
10
10
  import { BackendBootstrap } from './bootstrap.js';
11
11
  import { AuthProvider } from '../auth/index.js';
12
- import { QodoInfoClient, QodoSessionsClient } from '../clients/index.js';
12
+ import { QodoInfoClient, QodoSessionsClient, QodoToolsClient } from '../clients/index.js';
13
13
  import { canonicalizePathSync, extractSetFlags } from '../utils/index.js';
14
14
  import { extractProgress } from './runner/progress.js';
15
15
  import { toLangChainDict, toOpenAIChat } from './runner/formats.js';
@@ -21,6 +21,8 @@ export class QodoSDK {
21
21
  info;
22
22
  /** Session history facade */
23
23
  sessions;
24
+ /** Tool discovery facade */
25
+ tools;
24
26
  initialized = false;
25
27
  // Environment for AsyncLocalStorage-scoped singletons.
26
28
  // Mark as sdkMode to avoid process.exit in SDK code paths.
@@ -60,6 +62,7 @@ export class QodoSDK {
60
62
  this.options = options;
61
63
  this.info = QodoInfoClient.fromSdkOptions(options);
62
64
  this.sessions = QodoSessionsClient.fromSdkOptions(options);
65
+ this.tools = QodoToolsClient.fromSdkOptions(options);
63
66
  // If debug is enabled, allow verbose logs in this SDK environment.
64
67
  if (this.options.debug === true) {
65
68
  this.env.sdkDebug = true;