Skip to content

Commit eedb0ea

Browse files
committed
Update ts to fix issues
1 parent 40b7832 commit eedb0ea

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+371
-199
lines changed

IMPORTS-GUIDE.md

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
# How to Import UTCP Packages
2+
3+
## ✅ Fixed Export Configuration
4+
5+
Your packages now use the **standard library pattern** - all exports go through the main entry point.
6+
7+
## Correct Import Usage
8+
9+
### ✅ Import from Main Entry Point
10+
11+
```typescript
12+
// ✅ CORRECT - Import from package root
13+
import { UtcpClient, ToolDefinition, CallTemplate } from '@utcp/sdk';
14+
import { McpCommunicationProtocol } from '@utcp/mcp';
15+
import { TextCallTemplate } from '@utcp/text';
16+
import { HttpCommunicationProtocol } from '@utcp/http';
17+
import { CliCallTemplate } from '@utcp/cli';
18+
```
19+
20+
### ❌ Don't Import from Subpaths
21+
22+
```typescript
23+
// ❌ WRONG - Don't import from dist or subpaths
24+
import { ToolDefinition } from '@utcp/sdk';
25+
import { ToolDefinition } from '@utcp/sdk/data';
26+
```
27+
28+
## Why This Is Better
29+
30+
### 1. **Standard Library Pattern**
31+
This is how all major libraries work:
32+
- `import { z } from 'zod'` (not `'zod/types'`)
33+
- `import { format } from 'date-fns'` (not `'date-fns/format'`)
34+
- `import React from 'react'` (not `'react/components'`)
35+
36+
### 2. **Simpler API**
37+
Users only need to remember one import path per package.
38+
39+
### 3. **Better Tree-Shaking**
40+
Modern bundlers can tree-shake unused exports from the main entry point automatically.
41+
42+
### 4. **Prevents Breaking Changes**
43+
Internal file structure can change without breaking user code.
44+
45+
## Package Exports Summary
46+
47+
### @utcp/sdk (Core Package)
48+
```typescript
49+
import {
50+
// Client
51+
UtcpClient,
52+
UtcpClientConfig,
53+
54+
// Data Models
55+
Auth,
56+
CallTemplate,
57+
Tool,
58+
ToolDefinition,
59+
UtcpManual,
60+
RegisterManualResult,
61+
62+
// Interfaces
63+
CommunicationProtocol,
64+
ConcurrentToolRepository,
65+
Serializer,
66+
ToolSearchStrategy,
67+
VariableSubstitutor,
68+
69+
// Implementations
70+
InMemConcurrentToolRepository,
71+
TagSearchStrategy,
72+
73+
// Plugins
74+
PluginLoader
75+
} from '@utcp/sdk';
76+
```
77+
78+
### @utcp/mcp
79+
```typescript
80+
import {
81+
McpCommunicationProtocol,
82+
McpCallTemplate
83+
} from '@utcp/mcp';
84+
```
85+
86+
### @utcp/text
87+
```typescript
88+
import {
89+
TextCommunicationProtocol,
90+
TextCallTemplate,
91+
TextCallTemplateSerializer
92+
} from '@utcp/text';
93+
```
94+
95+
### @utcp/http
96+
```typescript
97+
import {
98+
HttpCommunicationProtocol,
99+
HttpCallTemplate,
100+
OpenApiConverter,
101+
SseCommunicationProtocol,
102+
SseCallTemplate,
103+
StreamableHttpCommunicationProtocol,
104+
StreamableHttpCallTemplate
105+
} from '@utcp/http';
106+
```
107+
108+
### @utcp/cli
109+
```typescript
110+
import {
111+
CliCommunicationProtocol,
112+
CliCallTemplate
113+
} from '@utcp/cli';
114+
```
115+
116+
## TypeScript IntelliSense
117+
118+
Your IDE will show all available exports when you start typing:
119+
120+
```typescript
121+
import { /* Ctrl+Space to see all exports */ } from '@utcp/sdk';
122+
```
123+
124+
## Configuration Changes Made
125+
126+
### Before (Problematic)
127+
```json
128+
{
129+
"exports": {
130+
".": {
131+
"import": "./dist/index.js"
132+
},
133+
"./*": {
134+
"import": "./dist/*.js" // ❌ This caused @utcp/sdk/dist/ imports
135+
}
136+
}
137+
}
138+
```
139+
140+
### After (Fixed)
141+
```json
142+
{
143+
"exports": {
144+
".": {
145+
"import": "./dist/index.js",
146+
"types": "./dist/index.d.ts"
147+
}
148+
}
149+
}
150+
```
151+
152+
## Re-Publishing
153+
154+
After these changes, you should publish new patch versions:
155+
156+
```bash
157+
# Update version in each package.json (1.0.1 -> 1.0.2)
158+
bun run rebuild
159+
bun run publish:all
160+
```
161+
162+
## Migration Guide for Existing Users
163+
164+
If users were importing from subpaths, they need to update:
165+
166+
```typescript
167+
// Before
168+
import { ToolDefinition } from '@utcp/sdk';
169+
170+
// After
171+
import { ToolDefinition } from '@utcp/sdk';
172+
```
173+
174+
This is a one-line change and follows standard npm package conventions.

packages/cli/package.json

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@utcp/cli",
3-
"version": "1.0.1",
3+
"version": "1.0.4",
44
"description": "CLI utilities for UTCP",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
@@ -35,18 +35,14 @@
3535
],
3636
"exports": {
3737
".": {
38+
"types": "./dist/index.d.ts",
3839
"import": "./dist/index.js",
3940
"require": "./dist/index.js",
40-
"types": "./dist/*.d.ts"
41-
},
42-
"./*": {
43-
"import": "./dist/*.js",
44-
"require": "./dist/*.js",
45-
"types": "./dist/*.d.ts"
41+
"default": "./dist/index.js"
4642
}
4743
},
4844
"dependencies": {
49-
"@utcp/sdk": "^1.0.1"
45+
"@utcp/sdk": "^1.0.4"
5046
},
5147
"devDependencies": {
5248
"bun-types": "latest",

packages/cli/src/cli_call_template.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// packages/cli/src/cli_call_template.ts
22
import { z } from 'zod';
3-
import { CallTemplate } from '@utcp/core/data/call_template';
4-
import { Serializer } from '@utcp/core/interfaces/serializer';
3+
import { CallTemplate } from '@utcp/sdk';
4+
import { Serializer } from '@utcp/sdk';
55

66
/**
77
* REQUIRED

packages/cli/src/cli_communication_protocol.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818
* should only be used with trusted tools.
1919
*/
2020
// packages/cli/src/cli_communication_protocol.ts
21-
import { CommunicationProtocol } from '@utcp/core/interfaces/communication_protocol';
22-
import { RegisterManualResult } from '@utcp/core/data/register_manual_result';
23-
import { CallTemplate, CallTemplateSerializer } from '@utcp/core/data/call_template';
24-
import { UtcpManual, UtcpManualSerializer, UtcpManualSchema } from '@utcp/core/data/utcp_manual';
25-
import { Tool } from '@utcp/core/data/tool';
26-
import { IUtcpClient } from '@utcp/core/interfaces/utcp_client_interface';
27-
import { CliCallTemplate, CliCallTemplateSerializer, CommandStep, CliCallTemplateSchema } from '@utcp/cli/cli_call_template';
21+
import { CommunicationProtocol, UtcpManualSchema, UtcpManualSerializer } from '@utcp/sdk';
22+
import { RegisterManualResult } from '@utcp/sdk';
23+
import { CallTemplate } from '@utcp/sdk';
24+
import { UtcpManual } from '@utcp/sdk';
25+
import { Tool } from '@utcp/sdk';
26+
import { IUtcpClient } from '@utcp/sdk';
27+
import { CliCallTemplate, CliCallTemplateSchema, CommandStep } from './cli_call_template';
2828
import { spawn, ChildProcess } from 'child_process';
2929
import { clearTimeout } from 'timers';
3030
import { Readable } from 'stream';

packages/cli/src/index.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
// packages/cli/src/index.ts
2-
import { CommunicationProtocol } from '@utcp/core/interfaces/communication_protocol';
3-
import { CallTemplateSerializer } from '@utcp/core/data/call_template';
4-
import { CliCallTemplateSerializer } from '@utcp/cli/cli_call_template';
5-
import { CliCommunicationProtocol } from '@utcp/cli/cli_communication_protocol';
2+
import { CommunicationProtocol, CallTemplateSerializer } from '@utcp/sdk';
3+
import { CliCallTemplateSerializer } from './cli_call_template';
4+
import { CliCommunicationProtocol } from './cli_communication_protocol';
65

76
/**
87
* Registers the CLI protocol's CallTemplate serializer

packages/cli/tests/cli_communication_protocol.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { test, expect, describe, afterEach } from "bun:test";
33
import { CliCommunicationProtocol } from '../src/cli_communication_protocol';
44
import { CliCallTemplateSchema, CliCallTemplate } from '../src/cli_call_template';
5-
import { IUtcpClient } from '@utcp/core/client/utcp_client';
5+
import { IUtcpClient } from '@utcp/sdk';
66
import * as path from 'path';
77
import * as fs from 'fs/promises';
88

packages/core/package.json

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@utcp/sdk",
3-
"version": "1.0.1",
3+
"version": "1.0.4",
44
"description": "Universal Tool Calling Protocol SDK",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
@@ -37,14 +37,10 @@
3737
],
3838
"exports": {
3939
".": {
40+
"types": "./dist/index.d.ts",
4041
"import": "./dist/index.js",
4142
"require": "./dist/index.js",
42-
"types": "./dist/index.d.ts"
43-
},
44-
"./*": {
45-
"import": "./dist/*.js",
46-
"require": "./dist/*.js",
47-
"types": "./dist/*.d.ts"
43+
"default": "./dist/index.js"
4844
}
4945
},
5046
"dependencies": {

packages/core/scripts/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ This runs:
4949

5050
When adding new packages that need version information:
5151

52-
1. Import from `@utcp/core/data/utcp_manual`:
52+
1. Import from `@utcp/sdk`:
5353
```typescript
54-
import { UTCP_PACKAGE_VERSION } from '@utcp/core/data/utcp_manual';
54+
import { UTCP_PACKAGE_VERSION } from '@utcp/sdk';
5555
```
5656

5757
2. Use it in your code:

packages/core/src/client/utcp_client.ts

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,25 @@
22
import { promises as fs } from 'fs';
33
import * as path from 'path';
44
import { parse as parseDotEnv } from 'dotenv';
5-
import { CallTemplate, CallTemplateSchema } from '@utcp/core/data/call_template';
6-
import { Tool } from '@utcp/core/data/tool';
7-
import { UtcpManualSchema } from '@utcp/core/data/utcp_manual';
8-
import { CommunicationProtocol } from '@utcp/core/interfaces/communication_protocol';
9-
import { RegisterManualResult } from '@utcp/core/data/register_manual_result';
10-
import { ConcurrentToolRepository } from '@utcp/core/interfaces/concurrent_tool_repository';
11-
import { ToolSearchStrategy } from '@utcp/core/interfaces/tool_search_strategy';
12-
import { VariableSubstitutor } from '@utcp/core/interfaces/variable_substitutor';
13-
import { ToolPostProcessor } from '@utcp/core/interfaces/tool_post_processor';
5+
import { CallTemplate, CallTemplateSchema } from '../data/call_template';
6+
import { Tool } from '../data/tool';
7+
import { UtcpManualSchema } from '../data/utcp_manual';
8+
import { CommunicationProtocol } from '../interfaces/communication_protocol';
9+
import { RegisterManualResult } from '../data/register_manual_result';
10+
import { ConcurrentToolRepository } from '../interfaces/concurrent_tool_repository';
11+
import { ToolSearchStrategy } from '../interfaces/tool_search_strategy';
12+
import { VariableSubstitutor } from '../interfaces/variable_substitutor';
13+
import { ToolPostProcessor } from '../interfaces/tool_post_processor';
1414
import {
1515
UtcpClientConfig,
1616
UtcpClientConfigSchema,
17-
} from '@utcp/core/client/utcp_client_config';
18-
import { DefaultVariableSubstitutor } from '@utcp/core/implementations/default_variable_substitutor';
19-
import { ensureCorePluginsInitialized } from '@utcp/core/plugins/plugin_loader';
17+
} from './utcp_client_config';
18+
import { DefaultVariableSubstitutor } from '../implementations/default_variable_substitutor';
19+
import { ensureCorePluginsInitialized } from '../plugins/plugin_loader';
2020
import { IUtcpClient } from '../interfaces/utcp_client_interface';
21-
import { ToolSearchStrategyConfigSerializer } from '@utcp/core/interfaces/tool_search_strategy';
22-
import { ToolPostProcessorConfigSerializer } from '@utcp/core/interfaces/tool_post_processor';
23-
import { ConcurrentToolRepositoryConfigSerializer } from '@utcp/core/interfaces/concurrent_tool_repository';
24-
21+
import { ToolSearchStrategyConfigSerializer } from '../interfaces/tool_search_strategy';
22+
import { ToolPostProcessorConfigSerializer } from '../interfaces/tool_post_processor';
23+
import { ConcurrentToolRepositoryConfigSerializer } from '../interfaces/concurrent_tool_repository';
2524

2625
/**
2726
* REQUIRED

packages/core/src/client/utcp_client_config.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// packages/core/src/client/utcp_client_config.ts
22
import { z } from 'zod';
33
import { ensureCorePluginsInitialized } from '../plugins/plugin_loader';
4-
import { CallTemplate, CallTemplateSchema, CallTemplateSerializer } from '@utcp/core/data/call_template';
4+
import { CallTemplate, CallTemplateSchema, CallTemplateSerializer } from '../data/call_template';
55
import { ToolSearchStrategy, ToolSearchStrategyConfigSerializer } from '../interfaces/tool_search_strategy';
6-
import { VariableLoader, VariableLoaderSchema, VariableLoaderSerializer } from '@utcp/core/data/variable_loader';
7-
import { ConcurrentToolRepository, ConcurrentToolRepositoryConfigSerializer } from '@utcp/core/interfaces/concurrent_tool_repository';
8-
import { ToolPostProcessor, ToolPostProcessorConfigSerializer } from '@utcp/core/interfaces/tool_post_processor';
6+
import { VariableLoader, VariableLoaderSchema, VariableLoaderSerializer } from '../data/variable_loader';
7+
import { ConcurrentToolRepository, ConcurrentToolRepositoryConfigSerializer } from '../interfaces/concurrent_tool_repository';
8+
import { ToolPostProcessor, ToolPostProcessorConfigSerializer } from '../interfaces/tool_post_processor';
99
import { Serializer } from '../interfaces/serializer';
1010

1111
// Ensure core plugins are initialized before this module uses any serializers

0 commit comments

Comments
 (0)