@xpert-ai/plugin-sdk 0.0.1
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/.eslintrc.json +30 -0
- package/.swcrc +29 -0
- package/PERMISSIONS.md +181 -0
- package/README.md +19 -0
- package/SCHEMA_SPECIFICATION.md +332 -0
- package/jest.config.ts +28 -0
- package/package.json +11 -0
- package/project.json +29 -0
- package/src/index.ts +12 -0
- package/src/lib/core/file-system.ts +96 -0
- package/src/lib/core/index.ts +3 -0
- package/src/lib/core/permissions.ts +97 -0
- package/src/lib/core/schema.ts +23 -0
- package/src/lib/integration/index.ts +3 -0
- package/src/lib/integration/strategy.decorator.ts +6 -0
- package/src/lib/integration/strategy.interface.ts +10 -0
- package/src/lib/integration/strategy.registry.ts +12 -0
- package/src/lib/knowledge/index.ts +3 -0
- package/src/lib/knowledge/knowledge-strategy.decorator.ts +6 -0
- package/src/lib/knowledge/knowledge-strategy.interface.ts +15 -0
- package/src/lib/knowledge/knowledge-strategy.registry.ts +36 -0
- package/src/lib/logger.ts +18 -0
- package/src/lib/plugin-metadata.ts +20 -0
- package/src/lib/plugin.hook.ts +54 -0
- package/src/lib/plugin.interface.ts +67 -0
- package/src/lib/plugin.ts +32 -0
- package/src/lib/rag/image/index.ts +3 -0
- package/src/lib/rag/image/strategy.decorator.ts +9 -0
- package/src/lib/rag/image/strategy.interface.ts +42 -0
- package/src/lib/rag/image/strategy.registry.ts +17 -0
- package/src/lib/rag/index.ts +6 -0
- package/src/lib/rag/retriever/index.ts +3 -0
- package/src/lib/rag/retriever/strategy.decorator.ts +9 -0
- package/src/lib/rag/retriever/strategy.interface.ts +32 -0
- package/src/lib/rag/retriever/strategy.registry.ts +12 -0
- package/src/lib/rag/source/index.ts +3 -0
- package/src/lib/rag/source/strategy.decorator.ts +9 -0
- package/src/lib/rag/source/strategy.interface.ts +28 -0
- package/src/lib/rag/source/strategy.registry.ts +17 -0
- package/src/lib/rag/textsplitter/index.ts +3 -0
- package/src/lib/rag/textsplitter/strategy.decorator.ts +6 -0
- package/src/lib/rag/textsplitter/strategy.interface.ts +28 -0
- package/src/lib/rag/textsplitter/strategy.registry.ts +17 -0
- package/src/lib/rag/transformer/index.ts +3 -0
- package/src/lib/rag/transformer/strategy.decorator.ts +9 -0
- package/src/lib/rag/transformer/strategy.interface.ts +48 -0
- package/src/lib/rag/transformer/strategy.registry.ts +14 -0
- package/src/lib/rag/types.ts +86 -0
- package/src/lib/strategy.ts +37 -0
- package/src/lib/toolset/builtin.ts +111 -0
- package/src/lib/toolset/index.ts +5 -0
- package/src/lib/toolset/strategy.decorator.ts +9 -0
- package/src/lib/toolset/strategy.interface.ts +32 -0
- package/src/lib/toolset/strategy.registry.ts +17 -0
- package/src/lib/toolset/toolset.ts +76 -0
- package/src/lib/types.ts +47 -0
- package/src/lib/vectorstore/index.ts +3 -0
- package/src/lib/vectorstore/strategy.decorator.ts +6 -0
- package/src/lib/vectorstore/strategy.interface.ts +25 -0
- package/src/lib/vectorstore/strategy.registry.ts +17 -0
- package/src/lib/workflow/index.ts +2 -0
- package/src/lib/workflow/node/index.ts +3 -0
- package/src/lib/workflow/node/strategy.decorator.ts +9 -0
- package/src/lib/workflow/node/strategy.interface.ts +49 -0
- package/src/lib/workflow/node/strategy.registry.ts +18 -0
- package/src/lib/workflow/trigger/index.ts +3 -0
- package/src/lib/workflow/trigger/strategy.decorator.ts +6 -0
- package/src/lib/workflow/trigger/strategy.interface.ts +27 -0
- package/src/lib/workflow/trigger/strategy.registry.ts +17 -0
- package/tsconfig.json +22 -0
- package/tsconfig.lib.json +10 -0
- package/tsconfig.spec.json +9 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { DiscoveryService, Reflector } from '@nestjs/core';
|
|
3
|
+
import { BaseStrategyRegistry } from '../strategy';
|
|
4
|
+
import { VECTOR_STORE_STRATEGY } from './strategy.decorator';
|
|
5
|
+
import { IVectorStoreStrategy } from './strategy.interface';
|
|
6
|
+
|
|
7
|
+
@Injectable()
|
|
8
|
+
export class VectorStoreRegistry<TConfig = any>
|
|
9
|
+
extends BaseStrategyRegistry<IVectorStoreStrategy<TConfig>>
|
|
10
|
+
{
|
|
11
|
+
constructor(
|
|
12
|
+
discoveryService: DiscoveryService,
|
|
13
|
+
reflector: Reflector
|
|
14
|
+
) {
|
|
15
|
+
super(VECTOR_STORE_STRATEGY, discoveryService, reflector);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SetMetadata } from '@nestjs/common';
|
|
2
|
+
|
|
3
|
+
export const WORKFLOW_NODE_STRATEGY = 'WORKFLOW_NODE_STRATEGY';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Decorator to mark a provider as a Workflow Node Strategy
|
|
7
|
+
*/
|
|
8
|
+
export const WorkflowNodeStrategy = (provider: string) =>
|
|
9
|
+
SetMetadata(WORKFLOW_NODE_STRATEGY, provider);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Runnable } from '@langchain/core/runnables'
|
|
2
|
+
import { BaseChannel } from '@langchain/langgraph'
|
|
3
|
+
import {
|
|
4
|
+
IEnvironment,
|
|
5
|
+
IWorkflowNode,
|
|
6
|
+
TWorkflowNodeMeta,
|
|
7
|
+
TXpertGraph,
|
|
8
|
+
TXpertParameter,
|
|
9
|
+
TXpertTeamNode
|
|
10
|
+
} from '@metad/contracts'
|
|
11
|
+
|
|
12
|
+
export type TWorkflowNodeParams<TConfig = any> = {
|
|
13
|
+
xpertId: string
|
|
14
|
+
agentKey?: string
|
|
15
|
+
node: TXpertTeamNode
|
|
16
|
+
config: TConfig
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Workflow Node Strategy interface
|
|
21
|
+
*/
|
|
22
|
+
export interface IWorkflowNodeStrategy<TConfig = any, TResult = any> {
|
|
23
|
+
/**
|
|
24
|
+
* Metadata describing the node (type, label, description, config schema, etc.)
|
|
25
|
+
*/
|
|
26
|
+
meta: TWorkflowNodeMeta
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Create the node subgraph
|
|
30
|
+
*/
|
|
31
|
+
create(payload: {
|
|
32
|
+
graph: TXpertGraph
|
|
33
|
+
node: TXpertTeamNode & { type: 'workflow' }
|
|
34
|
+
xpertId: string
|
|
35
|
+
environment: IEnvironment
|
|
36
|
+
isDraft: boolean
|
|
37
|
+
}): {
|
|
38
|
+
name?: string
|
|
39
|
+
graph: Runnable
|
|
40
|
+
ends: string[]
|
|
41
|
+
channel: {
|
|
42
|
+
name: string
|
|
43
|
+
annotation: BaseChannel
|
|
44
|
+
}
|
|
45
|
+
navigator?: (state, config) => Promise<any>
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
outputVariables(entity: IWorkflowNode): TXpertParameter[]
|
|
49
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { DiscoveryService, Reflector } from '@nestjs/core';
|
|
3
|
+
import { BaseStrategyRegistry } from '../../strategy';
|
|
4
|
+
import { WORKFLOW_NODE_STRATEGY } from './strategy.decorator';
|
|
5
|
+
import { IWorkflowNodeStrategy } from './strategy.interface';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Registry for Workflow Node Strategies
|
|
9
|
+
*/
|
|
10
|
+
@Injectable()
|
|
11
|
+
export class WorkflowNodeRegistry<TConfig = any, TResult = any> extends BaseStrategyRegistry<IWorkflowNodeStrategy<TConfig, TResult>> {
|
|
12
|
+
constructor(
|
|
13
|
+
discoveryService: DiscoveryService,
|
|
14
|
+
reflector: Reflector
|
|
15
|
+
) {
|
|
16
|
+
super(WORKFLOW_NODE_STRATEGY, discoveryService, reflector);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TWorkflowTriggerMeta, TXpertTeamNode } from '@metad/contracts'
|
|
2
|
+
|
|
3
|
+
export type TWorkflowTriggerParams<T> = {
|
|
4
|
+
xpertId: string
|
|
5
|
+
agentKey?: string
|
|
6
|
+
node?: TXpertTeamNode
|
|
7
|
+
config: T
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface IWorkflowTriggerStrategy<T> {
|
|
11
|
+
meta: TWorkflowTriggerMeta
|
|
12
|
+
|
|
13
|
+
validate(payload: TWorkflowTriggerParams<T>): Promise<any[]>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Initialize the trigger when publish xpert workflow
|
|
17
|
+
*
|
|
18
|
+
* @param payload
|
|
19
|
+
* @param callback
|
|
20
|
+
*/
|
|
21
|
+
publish(payload: TWorkflowTriggerParams<T>, callback: (payload: any) => void): Promise<any> | void
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Stop the trigger
|
|
25
|
+
*/
|
|
26
|
+
stop(payload: TWorkflowTriggerParams<T>): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common'
|
|
2
|
+
import { DiscoveryService, Reflector } from '@nestjs/core'
|
|
3
|
+
import { BaseStrategyRegistry } from '../../strategy'
|
|
4
|
+
import { WORKFLOW_TRIGGER_STRATEGY } from './strategy.decorator'
|
|
5
|
+
import { IWorkflowTriggerStrategy } from './strategy.interface'
|
|
6
|
+
|
|
7
|
+
@Injectable()
|
|
8
|
+
export class WorkflowTriggerRegistry<T = any> extends BaseStrategyRegistry<IWorkflowTriggerStrategy<T>> {
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
discoveryService: DiscoveryService,
|
|
12
|
+
reflector: Reflector
|
|
13
|
+
) {
|
|
14
|
+
super(WORKFLOW_TRIGGER_STRATEGY, discoveryService, reflector);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"forceConsistentCasingInFileNames": true,
|
|
6
|
+
"strict": true,
|
|
7
|
+
"noImplicitOverride": true,
|
|
8
|
+
"noPropertyAccessFromIndexSignature": true,
|
|
9
|
+
"noImplicitReturns": true,
|
|
10
|
+
"noFallthroughCasesInSwitch": true
|
|
11
|
+
},
|
|
12
|
+
"files": [],
|
|
13
|
+
"include": [],
|
|
14
|
+
"references": [
|
|
15
|
+
{
|
|
16
|
+
"path": "./tsconfig.lib.json"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "./tsconfig.spec.json"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|