@holokai/sdk 0.1.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.
- package/LICENSE +21 -0
- package/README.md +396 -0
- package/dist/core/api/base.controller.d.ts +8 -0
- package/dist/core/api/base.controller.d.ts.map +1 -0
- package/dist/core/api/base.controller.js +41 -0
- package/dist/core/api/base.controller.js.map +1 -0
- package/dist/core/api/index.d.ts +3 -0
- package/dist/core/api/index.d.ts.map +1 -0
- package/dist/core/api/index.js +3 -0
- package/dist/core/api/index.js.map +1 -0
- package/dist/core/api/types.d.ts +19 -0
- package/dist/core/api/types.d.ts.map +1 -0
- package/dist/core/api/types.js +2 -0
- package/dist/core/api/types.js.map +1 -0
- package/dist/core/entities/analysisResult.d.ts +8 -0
- package/dist/core/entities/analysisResult.d.ts.map +1 -0
- package/dist/core/entities/analysisResult.js +2 -0
- package/dist/core/entities/analysisResult.js.map +1 -0
- package/dist/core/entities/application.d.ts +12 -0
- package/dist/core/entities/application.d.ts.map +1 -0
- package/dist/core/entities/application.js +2 -0
- package/dist/core/entities/application.js.map +1 -0
- package/dist/core/entities/base.d.ts +8 -0
- package/dist/core/entities/base.d.ts.map +1 -0
- package/dist/core/entities/base.js +2 -0
- package/dist/core/entities/base.js.map +1 -0
- package/dist/core/entities/evaluator.d.ts +13 -0
- package/dist/core/entities/evaluator.d.ts.map +1 -0
- package/dist/core/entities/evaluator.data.d.ts +9 -0
- package/dist/core/entities/evaluator.data.d.ts.map +1 -0
- package/dist/core/entities/evaluator.data.js +2 -0
- package/dist/core/entities/evaluator.data.js.map +1 -0
- package/dist/core/entities/evaluator.js +2 -0
- package/dist/core/entities/evaluator.js.map +1 -0
- package/dist/core/entities/index.d.ts +11 -0
- package/dist/core/entities/index.d.ts.map +1 -0
- package/dist/core/entities/index.js +3 -0
- package/dist/core/entities/index.js.map +1 -0
- package/dist/core/entities/llm.request.d.ts +19 -0
- package/dist/core/entities/llm.request.d.ts.map +1 -0
- package/dist/core/entities/llm.request.js +2 -0
- package/dist/core/entities/llm.request.js.map +1 -0
- package/dist/core/entities/llm.response.d.ts +24 -0
- package/dist/core/entities/llm.response.d.ts.map +1 -0
- package/dist/core/entities/llm.response.js +3 -0
- package/dist/core/entities/llm.response.js.map +1 -0
- package/dist/core/entities/llm.status.d.ts +9 -0
- package/dist/core/entities/llm.status.d.ts.map +1 -0
- package/dist/core/entities/llm.status.js +11 -0
- package/dist/core/entities/llm.status.js.map +1 -0
- package/dist/core/entities/model.d.ts +14 -0
- package/dist/core/entities/model.d.ts.map +1 -0
- package/dist/core/entities/model.js +2 -0
- package/dist/core/entities/model.js.map +1 -0
- package/dist/core/entities/provider.d.ts +12 -0
- package/dist/core/entities/provider.d.ts.map +1 -0
- package/dist/core/entities/provider.js +2 -0
- package/dist/core/entities/provider.js.map +1 -0
- package/dist/core/id/index.d.ts +2 -0
- package/dist/core/id/index.d.ts.map +1 -0
- package/dist/core/id/index.js +13 -0
- package/dist/core/id/index.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger/holo-logger-factory.d.ts +6 -0
- package/dist/core/logger/holo-logger-factory.d.ts.map +1 -0
- package/dist/core/logger/holo-logger-factory.js +16 -0
- package/dist/core/logger/holo-logger-factory.js.map +1 -0
- package/dist/core/logger/index.d.ts +4 -0
- package/dist/core/logger/index.d.ts.map +1 -0
- package/dist/core/logger/index.js +4 -0
- package/dist/core/logger/index.js.map +1 -0
- package/dist/core/logger/logger.d.ts +24 -0
- package/dist/core/logger/logger.d.ts.map +1 -0
- package/dist/core/logger/logger.js +16 -0
- package/dist/core/logger/logger.js.map +1 -0
- package/dist/core/logger/mixin.d.ts +29 -0
- package/dist/core/logger/mixin.d.ts.map +1 -0
- package/dist/core/logger/mixin.js +29 -0
- package/dist/core/logger/mixin.js.map +1 -0
- package/dist/core/mixins/constructor.d.ts +2 -0
- package/dist/core/mixins/constructor.d.ts.map +1 -0
- package/dist/core/mixins/constructor.js +2 -0
- package/dist/core/mixins/constructor.js.map +1 -0
- package/dist/core/mixins/index.d.ts +2 -0
- package/dist/core/mixins/index.d.ts.map +1 -0
- package/dist/core/mixins/index.js +2 -0
- package/dist/core/mixins/index.js.map +1 -0
- package/dist/core/parsers/find-last.d.ts +3 -0
- package/dist/core/parsers/find-last.d.ts.map +1 -0
- package/dist/core/parsers/find-last.js +22 -0
- package/dist/core/parsers/find-last.js.map +1 -0
- package/dist/core/parsers/index.d.ts +6 -0
- package/dist/core/parsers/index.d.ts.map +1 -0
- package/dist/core/parsers/index.js +6 -0
- package/dist/core/parsers/index.js.map +1 -0
- package/dist/core/parsers/parsers.d.ts +6 -0
- package/dist/core/parsers/parsers.d.ts.map +1 -0
- package/dist/core/parsers/parsers.js +32 -0
- package/dist/core/parsers/parsers.js.map +1 -0
- package/dist/core/parsers/pick-defined.d.ts +2 -0
- package/dist/core/parsers/pick-defined.d.ts.map +1 -0
- package/dist/core/parsers/pick-defined.js +4 -0
- package/dist/core/parsers/pick-defined.js.map +1 -0
- package/dist/core/parsers/pick-headers.d.ts +3 -0
- package/dist/core/parsers/pick-headers.d.ts.map +1 -0
- package/dist/core/parsers/pick-headers.js +41 -0
- package/dist/core/parsers/pick-headers.js.map +1 -0
- package/dist/core/parsers/safe-parse.d.ts +2 -0
- package/dist/core/parsers/safe-parse.d.ts.map +1 -0
- package/dist/core/parsers/safe-parse.js +12 -0
- package/dist/core/parsers/safe-parse.js.map +1 -0
- package/dist/core/routes.d.ts +19 -0
- package/dist/core/routes.d.ts.map +1 -0
- package/dist/core/routes.js +8 -0
- package/dist/core/routes.js.map +1 -0
- package/dist/core/worker/envelopes.d.ts +27 -0
- package/dist/core/worker/envelopes.d.ts.map +1 -0
- package/dist/core/worker/envelopes.js +2 -0
- package/dist/core/worker/envelopes.js.map +1 -0
- package/dist/core/worker/index.d.ts +5 -0
- package/dist/core/worker/index.d.ts.map +1 -0
- package/dist/core/worker/index.js +5 -0
- package/dist/core/worker/index.js.map +1 -0
- package/dist/core/worker/prompt.d.ts +9 -0
- package/dist/core/worker/prompt.d.ts.map +1 -0
- package/dist/core/worker/prompt.js +2 -0
- package/dist/core/worker/prompt.js.map +1 -0
- package/dist/core/worker/request.d.ts +33 -0
- package/dist/core/worker/request.d.ts.map +1 -0
- package/dist/core/worker/request.js +2 -0
- package/dist/core/worker/request.js.map +1 -0
- package/dist/core/worker/response.d.ts +18 -0
- package/dist/core/worker/response.d.ts.map +1 -0
- package/dist/core/worker/response.js +2 -0
- package/dist/core/worker/response.js.map +1 -0
- package/dist/holo/content.d.ts +14 -0
- package/dist/holo/content.d.ts.map +1 -0
- package/dist/holo/content.js +7 -0
- package/dist/holo/content.js.map +1 -0
- package/dist/holo/factories/index.d.ts +3 -0
- package/dist/holo/factories/index.d.ts.map +1 -0
- package/dist/holo/factories/index.js +3 -0
- package/dist/holo/factories/index.js.map +1 -0
- package/dist/holo/factories/request-factory.d.ts +3 -0
- package/dist/holo/factories/request-factory.d.ts.map +1 -0
- package/dist/holo/factories/request-factory.js +8 -0
- package/dist/holo/factories/request-factory.js.map +1 -0
- package/dist/holo/factories/response-factory.d.ts +7 -0
- package/dist/holo/factories/response-factory.d.ts.map +1 -0
- package/dist/holo/factories/response-factory.js +64 -0
- package/dist/holo/factories/response-factory.js.map +1 -0
- package/dist/holo/index.d.ts +17 -0
- package/dist/holo/index.d.ts.map +1 -0
- package/dist/holo/index.js +19 -0
- package/dist/holo/index.js.map +1 -0
- package/dist/holo/messages.d.ts +10 -0
- package/dist/holo/messages.d.ts.map +1 -0
- package/dist/holo/messages.js +2 -0
- package/dist/holo/messages.js.map +1 -0
- package/dist/holo/requests.d.ts +32 -0
- package/dist/holo/requests.d.ts.map +1 -0
- package/dist/holo/requests.js +7 -0
- package/dist/holo/requests.js.map +1 -0
- package/dist/holo/responses.d.ts +57 -0
- package/dist/holo/responses.d.ts.map +1 -0
- package/dist/holo/responses.js +2 -0
- package/dist/holo/responses.js.map +1 -0
- package/dist/holo/tools.d.ts +25 -0
- package/dist/holo/tools.d.ts.map +1 -0
- package/dist/holo/tools.js +2 -0
- package/dist/holo/tools.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin/base.d.ts +109 -0
- package/dist/plugin/base.d.ts.map +1 -0
- package/dist/plugin/base.js +131 -0
- package/dist/plugin/base.js.map +1 -0
- package/dist/plugin/context.d.ts +21 -0
- package/dist/plugin/context.d.ts.map +1 -0
- package/dist/plugin/context.js +2 -0
- package/dist/plugin/context.js.map +1 -0
- package/dist/plugin/errors.d.ts +24 -0
- package/dist/plugin/errors.d.ts.map +1 -0
- package/dist/plugin/errors.js +31 -0
- package/dist/plugin/errors.js.map +1 -0
- package/dist/plugin/evaluator.d.ts +243 -0
- package/dist/plugin/evaluator.d.ts.map +1 -0
- package/dist/plugin/evaluator.js +2 -0
- package/dist/plugin/evaluator.js.map +1 -0
- package/dist/plugin/guard.d.ts +307 -0
- package/dist/plugin/guard.d.ts.map +1 -0
- package/dist/plugin/guard.js +46 -0
- package/dist/plugin/guard.js.map +1 -0
- package/dist/plugin/index.d.ts +14 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +14 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/plugin/manifest.d.ts +349 -0
- package/dist/plugin/manifest.d.ts.map +1 -0
- package/dist/plugin/manifest.js +6 -0
- package/dist/plugin/manifest.js.map +1 -0
- package/dist/plugin/provider.d.ts +55 -0
- package/dist/plugin/provider.d.ts.map +1 -0
- package/dist/plugin/provider.js +2 -0
- package/dist/plugin/provider.js.map +1 -0
- package/dist/plugin/registry.d.ts +7 -0
- package/dist/plugin/registry.d.ts.map +1 -0
- package/dist/plugin/registry.js +2 -0
- package/dist/plugin/registry.js.map +1 -0
- package/dist/provider/auditor/base.d.ts +21 -0
- package/dist/provider/auditor/base.d.ts.map +1 -0
- package/dist/provider/auditor/base.js +58 -0
- package/dist/provider/auditor/base.js.map +1 -0
- package/dist/provider/auditor/index.d.ts +2 -0
- package/dist/provider/auditor/index.d.ts.map +1 -0
- package/dist/provider/auditor/index.js +2 -0
- package/dist/provider/auditor/index.js.map +1 -0
- package/dist/provider/base.d.ts +39 -0
- package/dist/provider/base.d.ts.map +1 -0
- package/dist/provider/base.js +169 -0
- package/dist/provider/base.js.map +1 -0
- package/dist/provider/index.d.ts +6 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +6 -0
- package/dist/provider/index.js.map +1 -0
- package/dist/provider/translator/base.d.ts +32 -0
- package/dist/provider/translator/base.d.ts.map +1 -0
- package/dist/provider/translator/base.js +33 -0
- package/dist/provider/translator/base.js.map +1 -0
- package/dist/provider/translator/index.d.ts +3 -0
- package/dist/provider/translator/index.d.ts.map +1 -0
- package/dist/provider/translator/index.js +3 -0
- package/dist/provider/translator/index.js.map +1 -0
- package/dist/provider/translator/stream.d.ts +24 -0
- package/dist/provider/translator/stream.d.ts.map +1 -0
- package/dist/provider/translator/stream.js +50 -0
- package/dist/provider/translator/stream.js.map +1 -0
- package/dist/provider/types.d.ts +107 -0
- package/dist/provider/types.d.ts.map +1 -0
- package/dist/provider/types.js +38 -0
- package/dist/provider/types.js.map +1 -0
- package/dist/provider/wire/base.d.ts +50 -0
- package/dist/provider/wire/base.d.ts.map +1 -0
- package/dist/provider/wire/base.js +99 -0
- package/dist/provider/wire/base.js.map +1 -0
- package/dist/provider/wire/index.d.ts +2 -0
- package/dist/provider/wire/index.d.ts.map +1 -0
- package/dist/provider/wire/index.js +2 -0
- package/dist/provider/wire/index.js.map +1 -0
- package/package.json +97 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Holokai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
# @holokai/common
|
|
2
|
+
|
|
3
|
+
> Common SDK for Holo plugin development - provides interfaces, types, and utilities for building provider plugins.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @holokai/common
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The Common SDK is the foundation for developing Holo plugins. It provides:
|
|
14
|
+
|
|
15
|
+
- Type-safe interfaces for plugin lifecycle
|
|
16
|
+
- Provider abstractions and base implementations
|
|
17
|
+
- Universal Holo format definitions
|
|
18
|
+
- Shared utilities and types
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
### Plugin Development
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { IPlugin, PluginManifest, PluginContext } from '@holokai/common/plugin';
|
|
26
|
+
|
|
27
|
+
export class MyPlugin implements IPlugin {
|
|
28
|
+
public manifest: PluginManifest = {
|
|
29
|
+
name: '@myorg/my-plugin',
|
|
30
|
+
version: '1.0.0',
|
|
31
|
+
pluginType: 'provider',
|
|
32
|
+
description: 'My custom provider plugin',
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
async initialize(context: PluginContext): Promise<void> {
|
|
36
|
+
// Plugin initialization
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async destroy(): Promise<void> {
|
|
40
|
+
// Cleanup resources
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Provider Implementation
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
import { IProvider } from '@holokai/common/provider';
|
|
49
|
+
import { HoloRequest, HoloResponse } from '@holokai/common/holo';
|
|
50
|
+
|
|
51
|
+
export class MyProvider implements IProvider {
|
|
52
|
+
async processRequest(request: HoloRequest): Promise<HoloResponse> {
|
|
53
|
+
// Transform Holo format to provider-specific format
|
|
54
|
+
// Call provider API
|
|
55
|
+
// Transform response back to Holo format
|
|
56
|
+
return response;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Package Exports
|
|
62
|
+
|
|
63
|
+
The SDK is organized into focused subpath exports:
|
|
64
|
+
|
|
65
|
+
### `/plugin`
|
|
66
|
+
|
|
67
|
+
Core plugin interfaces and lifecycle management.
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
import { IPlugin, PluginManifest, PluginContext, PluginCapabilities } from '@holokai/common/plugin';
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### `/provider`
|
|
74
|
+
|
|
75
|
+
Provider interfaces and base implementations.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { IProvider, IProviderPlugin, ProviderConfig } from '@holokai/common/provider';
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### `/holo`
|
|
82
|
+
|
|
83
|
+
Universal Holo format definitions for cross-provider compatibility.
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
import { HoloRequest, HoloResponse, HoloMessage, HoloStream } from '@holokai/common/holo';
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### `/utils`
|
|
90
|
+
|
|
91
|
+
Shared utilities and helper types.
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
import { Logger, ErrorResponse, HealthStatus, Result, AsyncResult } from '@holokai/common/utils';
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Type Safety
|
|
98
|
+
|
|
99
|
+
All interfaces are fully typed with TypeScript:
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
interface PluginManifest {
|
|
103
|
+
name: string;
|
|
104
|
+
version: string;
|
|
105
|
+
pluginType: 'provider' | 'transformer' | 'validator';
|
|
106
|
+
description?: string;
|
|
107
|
+
author?: string;
|
|
108
|
+
license?: string;
|
|
109
|
+
capabilities?: PluginCapabilities;
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Best Practices
|
|
114
|
+
|
|
115
|
+
1. **Import Boundaries**: Never import from the core platform (`../../src`)
|
|
116
|
+
2. **Versioning**: Follow semantic versioning for your plugins
|
|
117
|
+
3. **Error Handling**: Use provided error types for consistency
|
|
118
|
+
4. **Logging**: Use the Logger interface for standardized logging
|
|
119
|
+
5. **Configuration**: Use ConfigLoader for environment-based config
|
|
120
|
+
|
|
121
|
+
## Provider Plugin Package Template
|
|
122
|
+
|
|
123
|
+
When creating a new provider plugin, follow this standardized package structure:
|
|
124
|
+
|
|
125
|
+
### Directory Structure
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
plugins/holo-provider-{name}/
|
|
129
|
+
├── src/
|
|
130
|
+
│ ├── index.ts # Default export of plugin (REQUIRED)
|
|
131
|
+
│ ├── plugin.ts # IProviderPlugin implementation (REQUIRED)
|
|
132
|
+
│ ├── provider.ts # Provider implementation (REQUIRED)
|
|
133
|
+
│ └── translator.ts # Holo format translator (REQUIRED)
|
|
134
|
+
├── tests/
|
|
135
|
+
│ ├── integration/ # Real API tests (PRIMARY - 70% coverage)
|
|
136
|
+
│ └── unit/ # Contract tests only (LIMITED - 30% coverage)
|
|
137
|
+
├── package.json # Package configuration (REQUIRED)
|
|
138
|
+
├── tsconfig.json # TypeScript configuration (REQUIRED)
|
|
139
|
+
└── README.md # Plugin documentation (REQUIRED)
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### package.json Template
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"name": "@holokai/provider-{name}",
|
|
147
|
+
"version": "1.0.0",
|
|
148
|
+
"description": "Holo provider plugin for {Provider Name}",
|
|
149
|
+
"main": "./dist/index.js",
|
|
150
|
+
"types": "./dist/index.d.ts",
|
|
151
|
+
"exports": {
|
|
152
|
+
".": {
|
|
153
|
+
"import": "./dist/index.js",
|
|
154
|
+
"require": "./dist/index.js",
|
|
155
|
+
"types": "./dist/index.d.ts"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"engines": {
|
|
159
|
+
"node": ">=18.0.0"
|
|
160
|
+
},
|
|
161
|
+
"peerDependencies": {
|
|
162
|
+
"@holokai/common": "^1.0.0"
|
|
163
|
+
},
|
|
164
|
+
"dependencies": {
|
|
165
|
+
"{provider-sdk}": "x.y.z"
|
|
166
|
+
},
|
|
167
|
+
"devDependencies": {
|
|
168
|
+
"typescript": "^5.0.0",
|
|
169
|
+
"@types/node": "^18.0.0"
|
|
170
|
+
},
|
|
171
|
+
"scripts": {
|
|
172
|
+
"build": "tsc",
|
|
173
|
+
"test": "jest",
|
|
174
|
+
"test:integration": "jest tests/integration"
|
|
175
|
+
},
|
|
176
|
+
"keywords": ["holo", "plugin", "provider", "{name}"],
|
|
177
|
+
"author": "Your Name",
|
|
178
|
+
"license": "MIT"
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Important package.json rules:**
|
|
183
|
+
|
|
184
|
+
- **Naming**: MUST follow `@holokai/provider-{name}` convention
|
|
185
|
+
- **peerDependencies**: MUST include `@holokai/common` (shared version)
|
|
186
|
+
- **dependencies**: Provider SDK with **EXACT version** (e.g., `"openai": "4.73.1"`, NOT `"^4.73.1"`)
|
|
187
|
+
- **engines**: MUST specify `node >= 18.0.0`
|
|
188
|
+
|
|
189
|
+
### src/index.ts Template
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
import plugin from './plugin';
|
|
193
|
+
|
|
194
|
+
// Default export REQUIRED - this is what the plugin system loads
|
|
195
|
+
export default plugin;
|
|
196
|
+
|
|
197
|
+
// Named exports for testing/utilities (optional)
|
|
198
|
+
export {OpenAIProvider} from './provider';
|
|
199
|
+
export {OpenAITranslator} from './translator';
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### src/plugin.ts Template
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
import { IProviderPlugin, PluginManifest, PluginContext } from '@holokai/common/plugin';
|
|
206
|
+
import { ProviderConfig, ProviderCapabilities } from '@holokai/common/provider';
|
|
207
|
+
import { OpenAIProvider } from './provider';
|
|
208
|
+
|
|
209
|
+
class OpenAIProviderPlugin implements IProviderPlugin {
|
|
210
|
+
public manifest: PluginManifest = {
|
|
211
|
+
name: '@holokai/provider-openai',
|
|
212
|
+
version: '1.0.0',
|
|
213
|
+
pluginType: 'provider',
|
|
214
|
+
providerType: 'openai',
|
|
215
|
+
sdkVersion: 'openai@4.73.1',
|
|
216
|
+
commonSdkVersion: '^1.0.0',
|
|
217
|
+
capabilities: {
|
|
218
|
+
streaming: true,
|
|
219
|
+
tools: true,
|
|
220
|
+
vision: true,
|
|
221
|
+
reasoning: false
|
|
222
|
+
},
|
|
223
|
+
author: 'HoloKai Team',
|
|
224
|
+
source: 'official',
|
|
225
|
+
description: 'OpenAI provider plugin for GPT models'
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
private context?: PluginContext;
|
|
229
|
+
private initialized = false;
|
|
230
|
+
|
|
231
|
+
async initialize(context: PluginContext): Promise<void> {
|
|
232
|
+
if (this.initialized) return; // Idempotent
|
|
233
|
+
this.context = context;
|
|
234
|
+
this.initialized = true;
|
|
235
|
+
context.logger.info('[OpenAI Plugin] Initialized');
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
async destroy(): Promise<void> {
|
|
239
|
+
this.context = undefined;
|
|
240
|
+
this.initialized = false;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
createProvider(config: ProviderConfig): OpenAIProvider {
|
|
244
|
+
if (!this.initialized) {
|
|
245
|
+
throw new Error('Plugin not initialized');
|
|
246
|
+
}
|
|
247
|
+
return new OpenAIProvider(config, this.context!.logger);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
validateConfig(config: unknown): boolean {
|
|
251
|
+
// Basic validation - plugins are lightweight
|
|
252
|
+
return typeof config === 'object' && config !== null;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
getCapabilities(): ProviderCapabilities {
|
|
256
|
+
return this.manifest.capabilities!;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Export singleton instance
|
|
261
|
+
const plugin = new OpenAIProviderPlugin();
|
|
262
|
+
export default plugin;
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### src/provider.ts Template
|
|
266
|
+
|
|
267
|
+
```typescript
|
|
268
|
+
import {IProvider} from '@holokai/common/provider';
|
|
269
|
+
import {HoloRequest, HoloResponse} from '@holokai/common/holo';
|
|
270
|
+
import {Logger} from '@holokai/common/utils';
|
|
271
|
+
import OpenAI from 'openai';
|
|
272
|
+
|
|
273
|
+
export class OpenAIProvider implements IProvider {
|
|
274
|
+
private client: OpenAI;
|
|
275
|
+
|
|
276
|
+
constructor(
|
|
277
|
+
private config: { api_key: string; model: string },
|
|
278
|
+
private logger: Logger
|
|
279
|
+
) {
|
|
280
|
+
this.client = new OpenAI({apiKey: config.api_key});
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
async processRequest(request: HoloRequest): Promise<HoloResponse> {
|
|
284
|
+
// Transform Holo to OpenAI format
|
|
285
|
+
const openaiRequest = this.translator.toOpenAI(request);
|
|
286
|
+
|
|
287
|
+
// Call provider API
|
|
288
|
+
const response = await this.client.chat.completions.create(openaiRequest);
|
|
289
|
+
|
|
290
|
+
// Transform back to Holo format
|
|
291
|
+
return this.translator.fromOpenAI(response);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
async processStreamRequest(request: HoloRequest): AsyncIterator<HoloStream> {
|
|
295
|
+
// Streaming implementation
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### src/translator.ts Template
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
import {HoloRequest, HoloResponse} from '@holokai/common/holo';
|
|
304
|
+
import {ChatCompletion, ChatCompletionCreateParams} from 'openai/resources';
|
|
305
|
+
|
|
306
|
+
export class OpenAITranslator {
|
|
307
|
+
toOpenAI(holoRequest: HoloRequest): ChatCompletionCreateParams {
|
|
308
|
+
return {
|
|
309
|
+
model: holoRequest.model,
|
|
310
|
+
messages: holoRequest.messages.map(msg => ({
|
|
311
|
+
role: msg.role,
|
|
312
|
+
content: msg.content
|
|
313
|
+
})),
|
|
314
|
+
temperature: holoRequest.temperature,
|
|
315
|
+
max_tokens: holoRequest.maxTokens,
|
|
316
|
+
stream: false
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
fromOpenAI(openaiResponse: ChatCompletion): HoloResponse {
|
|
321
|
+
return {
|
|
322
|
+
id: openaiResponse.id,
|
|
323
|
+
model: openaiResponse.model,
|
|
324
|
+
choices: openaiResponse.choices.map(choice => ({
|
|
325
|
+
index: choice.index,
|
|
326
|
+
message: {
|
|
327
|
+
role: choice.message.role,
|
|
328
|
+
content: choice.message.content || ''
|
|
329
|
+
},
|
|
330
|
+
finishReason: choice.finish_reason
|
|
331
|
+
})),
|
|
332
|
+
usage: {
|
|
333
|
+
promptTokens: openaiResponse.usage?.prompt_tokens || 0,
|
|
334
|
+
completionTokens: openaiResponse.usage?.completion_tokens || 0,
|
|
335
|
+
totalTokens: openaiResponse.usage?.total_tokens || 0
|
|
336
|
+
},
|
|
337
|
+
created: openaiResponse.created
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### tsconfig.json Template
|
|
344
|
+
|
|
345
|
+
```json
|
|
346
|
+
{
|
|
347
|
+
"extends": "../../tsconfig.json",
|
|
348
|
+
"compilerOptions": {
|
|
349
|
+
"outDir": "./dist",
|
|
350
|
+
"rootDir": "./src",
|
|
351
|
+
"composite": true,
|
|
352
|
+
"declaration": true,
|
|
353
|
+
"declarationMap": true,
|
|
354
|
+
"sourceMap": true
|
|
355
|
+
},
|
|
356
|
+
"include": ["src/**/*"],
|
|
357
|
+
"exclude": ["node_modules", "dist", "tests"]
|
|
358
|
+
}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Testing Structure
|
|
362
|
+
|
|
363
|
+
**Integration Tests (PRIMARY - tests/integration/):**
|
|
364
|
+
|
|
365
|
+
- Test real API calls with actual provider SDK
|
|
366
|
+
- Verify request/response transformations work correctly
|
|
367
|
+
- Test streaming functionality
|
|
368
|
+
- Verify error handling with real API errors
|
|
369
|
+
- Compare plugin output with expected Holo format
|
|
370
|
+
|
|
371
|
+
**Unit Tests (LIMITED - tests/unit/):**
|
|
372
|
+
|
|
373
|
+
- Test contract validation logic
|
|
374
|
+
- Test manifest structure
|
|
375
|
+
- Test plugin lifecycle (initialize, destroy)
|
|
376
|
+
- Minimal mocking - focus on contracts only
|
|
377
|
+
|
|
378
|
+
### Complete Example
|
|
379
|
+
|
|
380
|
+
See [plugins/holo-provider-openai](../holo-provider-openai) for a complete reference implementation following this template.
|
|
381
|
+
|
|
382
|
+
## Examples
|
|
383
|
+
|
|
384
|
+
See the [OpenAI Provider Plugin](../holo-provider-openai) for a complete reference implementation.
|
|
385
|
+
|
|
386
|
+
## API Reference
|
|
387
|
+
|
|
388
|
+
Full API documentation is available in the [TypeScript definitions](./src/index.d.ts).
|
|
389
|
+
|
|
390
|
+
## Contributing
|
|
391
|
+
|
|
392
|
+
This SDK is part of the Holo platform. See the main [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines.
|
|
393
|
+
|
|
394
|
+
## License
|
|
395
|
+
|
|
396
|
+
MIT
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ApiResponse } from "./types";
|
|
2
|
+
import { ClassLogger } from "../logger";
|
|
3
|
+
export declare abstract class BaseController extends ClassLogger {
|
|
4
|
+
protected handleError(res: ApiResponse, error: Error, message?: string, statusCode?: number): void;
|
|
5
|
+
protected success<T>(res: ApiResponse, data: T, statusCode?: number): void;
|
|
6
|
+
protected hasRequiredFields(fields: Record<string, any>, requiredFields: string[], res: ApiResponse): boolean;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=base.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.controller.d.ts","sourceRoot":"","sources":["../../../src/core/api/base.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAEtC,8BAAsB,cAAe,SAAQ,WAAW;IACpD,SAAS,CAAC,WAAW,CACjB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,MAAgC,EACzC,UAAU,GAAE,MAAY,GACzB,IAAI;IAgBP,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,GAAE,MAAY,GAAG,IAAI;IAQ/E,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;CAehH"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ClassLogger } from "../logger";
|
|
2
|
+
export class BaseController extends ClassLogger {
|
|
3
|
+
handleError(res, error, message = 'Internal server error', statusCode = 500) {
|
|
4
|
+
const logger = this.mlog(this.handleError);
|
|
5
|
+
logger.error(`${message}: ${JSON.stringify(error.message, null, 2)}`, {
|
|
6
|
+
methodName: 'handleError'
|
|
7
|
+
});
|
|
8
|
+
res.status(statusCode).json({
|
|
9
|
+
success: false,
|
|
10
|
+
error: {
|
|
11
|
+
message,
|
|
12
|
+
code: error.name || 'INTERNAL_ERROR',
|
|
13
|
+
...(process.env.NODE_ENV === 'development' && { stack: error.stack })
|
|
14
|
+
},
|
|
15
|
+
timestamp: new Date().toISOString()
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
success(res, data, statusCode = 200) {
|
|
19
|
+
res.status(statusCode).json({
|
|
20
|
+
success: true,
|
|
21
|
+
data,
|
|
22
|
+
timestamp: new Date().toISOString()
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
hasRequiredFields(fields, requiredFields, res) {
|
|
26
|
+
const missing = requiredFields.filter(field => !fields[field]);
|
|
27
|
+
if (missing.length > 0) {
|
|
28
|
+
res.status(400).json({
|
|
29
|
+
success: false,
|
|
30
|
+
error: {
|
|
31
|
+
message: `Missing required fields: ${missing.join(', ')}`,
|
|
32
|
+
code: 'VALIDATION_ERROR'
|
|
33
|
+
},
|
|
34
|
+
timestamp: new Date().toISOString()
|
|
35
|
+
});
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=base.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.controller.js","sourceRoot":"","sources":["../../../src/core/api/base.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAEtC,MAAM,OAAgB,cAAe,SAAQ,WAAW;IAC1C,WAAW,CACjB,GAAgB,EAChB,KAAY,EACZ,UAAkB,uBAAuB,EACzC,aAAqB,GAAG;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YAClE,UAAU,EAAE,aAAa;SAC5B,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACH,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,gBAAgB;gBACpC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,EAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAC,CAAC;aACtE;YACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;IAES,OAAO,CAAI,GAAgB,EAAE,IAAO,EAAE,aAAqB,GAAG;QACpE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC,CAAC;IACP,CAAC;IAES,iBAAiB,CAAC,MAA2B,EAAE,cAAwB,EAAE,GAAgB;QAC/F,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACjB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACH,OAAO,EAAE,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACzD,IAAI,EAAE,kBAAkB;iBAC3B;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
export interface ApiResponse<T = any> extends Response {
|
|
3
|
+
json: (body: T) => this;
|
|
4
|
+
}
|
|
5
|
+
export interface ApiSuccessResponse<T = any> {
|
|
6
|
+
success: true;
|
|
7
|
+
data: T;
|
|
8
|
+
timestamp: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ApiErrorResponse {
|
|
11
|
+
success: false;
|
|
12
|
+
error: {
|
|
13
|
+
message: string;
|
|
14
|
+
code?: string;
|
|
15
|
+
details?: any;
|
|
16
|
+
};
|
|
17
|
+
timestamp: string;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/api/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjC,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,QAAQ;IAClD,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;CAC3B;AAGD,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACvC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,GAAG,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/api/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysisResult.d.ts","sourceRoot":"","sources":["../../../src/core/entities/analysisResult.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,IAAI,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysisResult.js","sourceRoot":"","sources":["../../../src/core/entities/analysisResult.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseEntity } from "./base";
|
|
2
|
+
export interface Application extends BaseEntity {
|
|
3
|
+
name: string;
|
|
4
|
+
provider_id: string;
|
|
5
|
+
model_id: string;
|
|
6
|
+
system_prompt: string;
|
|
7
|
+
url_slug: string;
|
|
8
|
+
active?: boolean;
|
|
9
|
+
organization_id: string;
|
|
10
|
+
team_id?: string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=application.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../src/core/entities/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAElC,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../src/core/entities/application.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/core/entities/base.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/core/entities/base.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseEntity } from "./base";
|
|
2
|
+
export interface Evaluator extends BaseEntity {
|
|
3
|
+
name: string;
|
|
4
|
+
description?: string | null;
|
|
5
|
+
prompt_id?: string | null;
|
|
6
|
+
parameters: Record<string, any>;
|
|
7
|
+
evaluator_type: string;
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
available: boolean;
|
|
10
|
+
deleted?: boolean;
|
|
11
|
+
active?: boolean;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../../src/core/entities/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,QAAQ,CAAC;AAElC,MAAM,WAAW,SAAU,SAAQ,UAAU;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.data.d.ts","sourceRoot":"","sources":["../../../src/core/entities/evaluator.data.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.data.js","sourceRoot":"","sources":["../../../src/core/entities/evaluator.data.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/core/entities/evaluator.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './base';
|
|
2
|
+
export { Provider } from "./provider";
|
|
3
|
+
export { Evaluator } from "./evaluator";
|
|
4
|
+
export { EvaluatorData } from "./evaluator.data";
|
|
5
|
+
export { Model } from "./model";
|
|
6
|
+
export { AnalysisResult } from "./analysisResult";
|
|
7
|
+
export { LlmResponse } from "./llm.response";
|
|
8
|
+
export { Application } from "./application";
|
|
9
|
+
export { LlmRequest } from "./llm.request";
|
|
10
|
+
export { LlmStatus } from "./llm.status";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC"}
|