223 lines
7.1 KiB
Markdown
223 lines
7.1 KiB
Markdown
# @coze-arch/idl
|
|
|
|
Interface Definition Language (IDL) package providing TypeScript type definitions and API client services for the Coze platform ecosystem.
|
|
|
|
## Project Overview
|
|
|
|
`@coze-arch/idl` is a comprehensive package that contains auto-generated TypeScript interfaces, types, and service clients derived from Thrift IDL definitions. It serves as the central type system for the Coze platform, providing strongly-typed API contracts for over 60+ services including bot management, workflow orchestration, plugin systems, evaluation frameworks, and more.
|
|
|
|
## Features
|
|
|
|
- **Comprehensive Type Definitions**: Auto-generated TypeScript interfaces for 66+ services
|
|
- **Service Clients**: Ready-to-use API client classes with type-safe request/response handling
|
|
- **Modular Structure**: Each service is packaged as a separate export for selective importing
|
|
- **Strong Type Safety**: Full TypeScript support with detailed interface definitions
|
|
- **Auto-Generated**: Maintained through automated code generation from Thrift IDL files
|
|
- **Extensive Coverage**: Covers all major Coze platform services:
|
|
- **Bot Services**: Bot management, connector APIs, open APIs
|
|
- **Workflow Services**: Fornax workflow engine, automation, evaluation
|
|
- **Plugin Services**: Plugin development, marketplace, operation APIs
|
|
- **Knowledge Services**: Document processing, retrieval, memory management
|
|
- **Developer Tools**: Debugging, testing, deployment services
|
|
- **Platform Services**: Authentication, permissions, notifications
|
|
|
|
## Get Started
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
# Install the package
|
|
rush update
|
|
|
|
# Or using workspace protocol
|
|
npm install @coze-arch/idl@workspace:*
|
|
```
|
|
|
|
### Basic Usage
|
|
|
|
Import specific service types and clients:
|
|
|
|
```typescript
|
|
// Import specific service types
|
|
import { SuggestReplyMode } from '@coze-arch/idl';
|
|
import { TaskType as CopyTaskType } from '@coze-arch/idl';
|
|
import { ModelInfo as BotCommonModelInfo } from '@coze-arch/idl';
|
|
|
|
// Import service-specific types
|
|
import * as AppBuilderAPI from '@coze-arch/idl/app_builder';
|
|
import * as FornaxAPI from '@coze-arch/idl/fornax_api';
|
|
import * as BotConnectorAPI from '@coze-arch/idl/bot_connector';
|
|
```
|
|
|
|
### Service Client Example
|
|
|
|
```typescript
|
|
import AppBuilderService from '@coze-arch/idl/app_builder';
|
|
|
|
// Initialize service client
|
|
const appBuilder = new AppBuilderService({
|
|
baseURL: 'https://api.coze.com',
|
|
request: async (params, options) => {
|
|
// Your HTTP client implementation
|
|
return fetch(params.url, {
|
|
method: params.method,
|
|
headers: params.headers,
|
|
body: params.data ? JSON.stringify(params.data) : undefined,
|
|
}).then(res => res.json());
|
|
}
|
|
});
|
|
|
|
// Use the service
|
|
const response = await appBuilder.GetPackage({
|
|
package_name: 'my-package',
|
|
version_name: '1.0.0'
|
|
});
|
|
```
|
|
|
|
### Type Usage Examples
|
|
|
|
```typescript
|
|
import * as BotAPI from '@coze-arch/idl/bot_open_api';
|
|
|
|
// Use interface types
|
|
const botRequest: BotAPI.CreateBotRequest = {
|
|
bot_name: 'My Assistant',
|
|
description: 'AI assistant for customer support',
|
|
model_config: {
|
|
model_id: 'gpt-4',
|
|
temperature: 0.7
|
|
}
|
|
};
|
|
|
|
// Use enum types
|
|
const taskType: BotAPI.TaskType = BotAPI.TaskType.ChatCompletion;
|
|
|
|
// Use response types
|
|
async function createBot(request: BotAPI.CreateBotRequest): Promise<BotAPI.CreateBotResponse> {
|
|
// Implementation
|
|
}
|
|
```
|
|
|
|
## API Reference
|
|
|
|
### Available Services
|
|
|
|
The package exports 66+ service modules. Key services include:
|
|
|
|
#### Core Bot Services
|
|
- `app_builder` - Agent application building and management
|
|
- `bot_open_api` - Public bot APIs for external integration
|
|
- `bot_connector` - Bot connector management
|
|
- `intelligence_api` - Core intelligence and bot runtime services
|
|
|
|
#### Workflow and Automation
|
|
- `fornax_api` / `fornax_api2` - Workflow orchestration engine
|
|
- `workflow_api` - Workflow definition and execution
|
|
- `automation` - Automated task execution
|
|
|
|
#### Plugin Ecosystem
|
|
- `plugin_develop` - Plugin development tools
|
|
- `plugin_operation` - Plugin marketplace operations
|
|
- `plugin_impl_api` - Plugin implementation APIs
|
|
|
|
#### Knowledge Management
|
|
- `knowledge` - Knowledge base management
|
|
- `memory` - Conversation memory systems
|
|
- `xmemory_api` - Extended memory APIs
|
|
|
|
#### Evaluation and Testing
|
|
- `evaluation_api` - Model and bot evaluation
|
|
- `evaluation_lite` - Lightweight evaluation tools
|
|
- `devops_evaluation` - DevOps integration for evaluation
|
|
|
|
#### Developer Tools
|
|
- `debugger_api` - Debugging and development tools
|
|
- `playground_api` - Testing playground services
|
|
- `developer_api` - Developer platform APIs
|
|
|
|
### Service Client Pattern
|
|
|
|
All service clients follow a consistent pattern:
|
|
|
|
```typescript
|
|
class ServiceName<T> {
|
|
constructor(options?: {
|
|
baseURL?: string | ((path: string) => string);
|
|
request?<R>(params: {
|
|
url: string;
|
|
method: 'GET' | 'DELETE' | 'POST' | 'PUT' | 'PATCH';
|
|
data?: any;
|
|
params?: any;
|
|
headers?: any;
|
|
}, options?: T): Promise<R>;
|
|
});
|
|
|
|
// Service methods with typed parameters and responses
|
|
MethodName(req: RequestType, options?: T): Promise<ResponseType>;
|
|
}
|
|
```
|
|
|
|
### Re-exported Types
|
|
|
|
The main index provides convenient re-exports:
|
|
|
|
```typescript
|
|
export { SuggestReplyMode } from './auto-generated/developer_api/namespaces/developer_api';
|
|
export { TaskType as CopyTaskType } from './auto-generated/intelligence_api/namespaces/method_struct';
|
|
export { ModelInfo as BotCommonModelInfo } from './auto-generated/intelligence_api/namespaces/bot_common';
|
|
export { Scene as CreateRoomScene } from './auto-generated/playground_api/namespaces/playground';
|
|
```
|
|
|
|
## Development
|
|
|
|
### Project Structure
|
|
|
|
```
|
|
src/
|
|
├── index.ts # Main exports and re-exports
|
|
└── auto-generated/ # Generated from Thrift IDL
|
|
├── app_builder/ # App builder service
|
|
├── bot_open_api/ # Bot public APIs
|
|
├── fornax_api/ # Workflow engine
|
|
├── plugin_develop/ # Plugin development
|
|
└── [60+ other services] # Additional service modules
|
|
```
|
|
|
|
### Build Configuration
|
|
|
|
The package uses TypeScript project references:
|
|
|
|
- `tsconfig.build.json` - Build configuration extending `@coze-arch/ts-config`
|
|
- `tsconfig.misc.json` - Additional configurations
|
|
- Composite builds enabled for incremental compilation
|
|
|
|
### Code Generation
|
|
|
|
This package contains auto-generated code from Thrift IDL definitions. The source files are marked with:
|
|
|
|
```typescript
|
|
/* eslint-disable */
|
|
/* tslint:disable */
|
|
// @ts-nocheck
|
|
```
|
|
|
|
**Important**: Do not manually edit files in the `auto-generated` directory as they will be overwritten during the next generation cycle.
|
|
|
|
## Dependencies
|
|
|
|
### Development Dependencies
|
|
- `@coze-arch/eslint-config@workspace:*` - Shared ESLint configuration
|
|
- `@coze-arch/ts-config@workspace:*` - Shared TypeScript configuration
|
|
- `@types/node` - Node.js type definitions
|
|
|
|
### Runtime Dependencies
|
|
This package has no runtime dependencies and is designed to be lightweight with only type definitions and client templates.
|
|
|
|
## License
|
|
|
|
Apache-2.0
|
|
|
|
---
|
|
|
|
**Note**: This package contains auto-generated code derived from Thrift IDL definitions. The types and interfaces are automatically maintained and should not be manually modified.
|