@red-hat-developer-hub/backstage-plugin-intelligent-assistant-backend 4.1.0 → 4.2.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/CHANGELOG.md +11 -0
- package/config.schema.json +148 -0
- package/package.json +10 -10
- package/config.d.ts +0 -142
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @red-hat-developer-hub/backstage-plugin-intelligent-assistant-backend
|
|
2
2
|
|
|
3
|
+
## 4.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 5238698: Backstage version bump to v1.54.5
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [5238698]
|
|
12
|
+
- @red-hat-developer-hub/backstage-plugin-intelligent-assistant-common@4.2.0
|
|
13
|
+
|
|
3
14
|
## 4.1.0
|
|
4
15
|
|
|
5
16
|
### Minor Changes
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"intelligent-assistant": {
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"servicePort": {
|
|
9
|
+
"type": "number",
|
|
10
|
+
"description": "configure the port number for the lightspeed service.",
|
|
11
|
+
"visibility": "backend"
|
|
12
|
+
},
|
|
13
|
+
"systemPrompt": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"description": "customize system prompt for the lightspeed service.",
|
|
16
|
+
"visibility": "backend"
|
|
17
|
+
},
|
|
18
|
+
"mcpServers": {
|
|
19
|
+
"type": "array",
|
|
20
|
+
"items": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"name": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "The name of the MCP server. Must match the name registered in LCS config. The URL is fetched from LCS (GET /v1/mcp-servers) at startup.",
|
|
26
|
+
"visibility": "backend"
|
|
27
|
+
},
|
|
28
|
+
"token": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "The default access token for authenticating with this MCP server. Optional — if omitted, users must provide their own token via the UI. Users can also override this with a personal token via PATCH /mcp-servers/:name.",
|
|
31
|
+
"visibility": "secret"
|
|
32
|
+
},
|
|
33
|
+
"auth": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"const": "dcr",
|
|
36
|
+
"description": "Authentication mode for this MCP server. Set to 'dcr' for Dynamic Client Registration (user-bound tokens minted per-request). When omitted, falls back to static-token mode.",
|
|
37
|
+
"visibility": "frontend"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"required": [
|
|
41
|
+
"name"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"description": "configure the MCP server for the lightspeed service.",
|
|
45
|
+
"visibility": "backend"
|
|
46
|
+
},
|
|
47
|
+
"rateLimit": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"expensive": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"properties": {
|
|
53
|
+
"max": {
|
|
54
|
+
"type": "number",
|
|
55
|
+
"description": "Maximum requests per minute per user. Set to 0 to disable rate limiting for this tier.",
|
|
56
|
+
"default": 25,
|
|
57
|
+
"visibility": "backend"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"description": "Limits for expensive endpoints (LLM queries, document uploads).",
|
|
61
|
+
"visibility": "backend"
|
|
62
|
+
},
|
|
63
|
+
"general": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"properties": {
|
|
66
|
+
"max": {
|
|
67
|
+
"type": "number",
|
|
68
|
+
"description": "Maximum requests per minute per user. Set to 0 to disable rate limiting for this tier.",
|
|
69
|
+
"default": 200,
|
|
70
|
+
"visibility": "backend"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"description": "Limits for all other authenticated endpoints.",
|
|
74
|
+
"visibility": "backend"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"description": "Per-user rate limiting for Lightspeed API endpoints.",
|
|
78
|
+
"visibility": "backend"
|
|
79
|
+
},
|
|
80
|
+
"notebooks": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"properties": {
|
|
83
|
+
"enabled": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"description": "Enable/disable AI Notebooks feature When enabled, exposes AI Notebooks REST API endpoints for document-based conversations with RAG. Requires Lightspeed service to be running (host and port default to 127.0.0.1 and 8080).",
|
|
86
|
+
"default": false,
|
|
87
|
+
"visibility": "frontend"
|
|
88
|
+
},
|
|
89
|
+
"queryDefaults": {
|
|
90
|
+
"type": "object",
|
|
91
|
+
"properties": {
|
|
92
|
+
"model": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"description": "Model to use for answering queries. Must map to a model available through the provider set in provider_id.",
|
|
95
|
+
"visibility": "backend"
|
|
96
|
+
},
|
|
97
|
+
"provider_id": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"description": "AI provider for the query model. Must map to a provider enabled in your Lightspeed config.",
|
|
100
|
+
"visibility": "backend"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"required": [
|
|
104
|
+
"model",
|
|
105
|
+
"provider_id"
|
|
106
|
+
],
|
|
107
|
+
"description": "Lightspeed configuration",
|
|
108
|
+
"visibility": "backend"
|
|
109
|
+
},
|
|
110
|
+
"chunkingStrategy": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"properties": {
|
|
113
|
+
"type": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"enum": [
|
|
116
|
+
"auto",
|
|
117
|
+
"static"
|
|
118
|
+
],
|
|
119
|
+
"description": "Document chunking strategy - 'auto' (automatic, default) or 'static' (fixed size)",
|
|
120
|
+
"visibility": "backend"
|
|
121
|
+
},
|
|
122
|
+
"maxChunkSizeTokens": {
|
|
123
|
+
"type": "number",
|
|
124
|
+
"description": "Maximum chunk size in tokens for static chunking (default: 512)",
|
|
125
|
+
"visibility": "backend"
|
|
126
|
+
},
|
|
127
|
+
"chunkOverlapTokens": {
|
|
128
|
+
"type": "number",
|
|
129
|
+
"description": "Token overlap between chunks for static chunking (default: 50)",
|
|
130
|
+
"visibility": "backend"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"description": "Chunking strategy for document processing",
|
|
134
|
+
"visibility": "backend"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"required": [
|
|
138
|
+
"enabled",
|
|
139
|
+
"queryDefaults"
|
|
140
|
+
],
|
|
141
|
+
"description": "Configuration for AI Notebooks (Developer Preview)"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"description": "Configuration required for using intelligent-assistant",
|
|
145
|
+
"visibility": "frontend"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@red-hat-developer-hub/backstage-plugin-intelligent-assistant-backend",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"main": "./dist/index.cjs.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -50,13 +50,13 @@
|
|
|
50
50
|
"prettier:fix": "prettier --ignore-unknown --write ."
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@backstage/backend-defaults": "^0.17.
|
|
54
|
-
"@backstage/backend-plugin-api": "^1.
|
|
53
|
+
"@backstage/backend-defaults": "^0.17.7",
|
|
54
|
+
"@backstage/backend-plugin-api": "^1.10.0",
|
|
55
55
|
"@backstage/config": "^1.3.8",
|
|
56
56
|
"@backstage/errors": "^1.3.1",
|
|
57
|
-
"@backstage/plugin-permission-common": "^0.9.
|
|
58
|
-
"@backstage/plugin-permission-node": "^0.11.
|
|
59
|
-
"@red-hat-developer-hub/backstage-plugin-intelligent-assistant-common": "^4.
|
|
57
|
+
"@backstage/plugin-permission-common": "^0.9.10",
|
|
58
|
+
"@backstage/plugin-permission-node": "^0.11.3",
|
|
59
|
+
"@red-hat-developer-hub/backstage-plugin-intelligent-assistant-common": "^4.2.0",
|
|
60
60
|
"express": "^4.21.1",
|
|
61
61
|
"express-rate-limit": "^8.2.2",
|
|
62
62
|
"form-data": "^4.0.6",
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"multer": "^2.2.0"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@backstage/backend-test-utils": "^1.11.
|
|
70
|
-
"@backstage/cli": "^0.36.
|
|
69
|
+
"@backstage/backend-test-utils": "^1.11.6",
|
|
70
|
+
"@backstage/cli": "^0.36.5",
|
|
71
71
|
"@ianvs/prettier-plugin-sort-imports": "^4.4.0",
|
|
72
72
|
"@spotify/prettier-config": "^15.0.0",
|
|
73
73
|
"@types/express": "4.17.25",
|
|
@@ -79,11 +79,11 @@
|
|
|
79
79
|
},
|
|
80
80
|
"files": [
|
|
81
81
|
"dist",
|
|
82
|
-
"config.
|
|
82
|
+
"config.schema.json",
|
|
83
83
|
"app-config.yaml",
|
|
84
84
|
"migrations"
|
|
85
85
|
],
|
|
86
|
-
"configSchema": "config.
|
|
86
|
+
"configSchema": "config.schema.json",
|
|
87
87
|
"repository": {
|
|
88
88
|
"type": "git",
|
|
89
89
|
"url": "git+https://github.com/redhat-developer/rhdh-plugins.git",
|
package/config.d.ts
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright Red Hat, Inc.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
export interface Config {
|
|
18
|
-
/**
|
|
19
|
-
* Configuration required for using intelligent-assistant
|
|
20
|
-
* @visibility frontend
|
|
21
|
-
*/
|
|
22
|
-
'intelligent-assistant'?: {
|
|
23
|
-
/**
|
|
24
|
-
* configure the port number for the lightspeed service.
|
|
25
|
-
* @visibility backend
|
|
26
|
-
*/
|
|
27
|
-
servicePort?: number;
|
|
28
|
-
/**
|
|
29
|
-
* customize system prompt for the lightspeed service.
|
|
30
|
-
* @visibility backend
|
|
31
|
-
*/
|
|
32
|
-
systemPrompt?: string;
|
|
33
|
-
/**
|
|
34
|
-
* configure the MCP server for the lightspeed service.
|
|
35
|
-
* @visibility backend
|
|
36
|
-
*/
|
|
37
|
-
mcpServers?: Array<{
|
|
38
|
-
/**
|
|
39
|
-
* The name of the MCP server. Must match the name registered in LCS config.
|
|
40
|
-
* The URL is fetched from LCS (GET /v1/mcp-servers) at startup.
|
|
41
|
-
* @visibility backend
|
|
42
|
-
*/
|
|
43
|
-
name: string;
|
|
44
|
-
/**
|
|
45
|
-
* The default access token for authenticating with this MCP server.
|
|
46
|
-
* Optional — if omitted, users must provide their own token via the UI.
|
|
47
|
-
* Users can also override this with a personal token via PATCH /mcp-servers/:name.
|
|
48
|
-
* @visibility secret
|
|
49
|
-
*/
|
|
50
|
-
token?: string;
|
|
51
|
-
/**
|
|
52
|
-
* Authentication mode for this MCP server.
|
|
53
|
-
* Set to 'dcr' for Dynamic Client Registration (user-bound tokens minted per-request).
|
|
54
|
-
* When omitted, falls back to static-token mode.
|
|
55
|
-
* @visibility frontend
|
|
56
|
-
*/
|
|
57
|
-
auth?: 'dcr';
|
|
58
|
-
}>;
|
|
59
|
-
/**
|
|
60
|
-
* Per-user rate limiting for Lightspeed API endpoints.
|
|
61
|
-
* @visibility backend
|
|
62
|
-
*/
|
|
63
|
-
rateLimit?: {
|
|
64
|
-
/**
|
|
65
|
-
* Limits for expensive endpoints (LLM queries, document uploads).
|
|
66
|
-
* @visibility backend
|
|
67
|
-
*/
|
|
68
|
-
expensive?: {
|
|
69
|
-
/**
|
|
70
|
-
* Maximum requests per minute per user.
|
|
71
|
-
* Set to 0 to disable rate limiting for this tier.
|
|
72
|
-
* @default 25
|
|
73
|
-
* @visibility backend
|
|
74
|
-
*/
|
|
75
|
-
max?: number;
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* Limits for all other authenticated endpoints.
|
|
79
|
-
* @visibility backend
|
|
80
|
-
*/
|
|
81
|
-
general?: {
|
|
82
|
-
/**
|
|
83
|
-
* Maximum requests per minute per user.
|
|
84
|
-
* Set to 0 to disable rate limiting for this tier.
|
|
85
|
-
* @default 200
|
|
86
|
-
* @visibility backend
|
|
87
|
-
*/
|
|
88
|
-
max?: number;
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* Configuration for AI Notebooks (Developer Preview)
|
|
93
|
-
*/
|
|
94
|
-
notebooks?: {
|
|
95
|
-
/**
|
|
96
|
-
* Enable/disable AI Notebooks feature
|
|
97
|
-
* When enabled, exposes AI Notebooks REST API endpoints for document-based conversations with RAG.
|
|
98
|
-
* Requires Lightspeed service to be running (host and port default to 127.0.0.1 and 8080).
|
|
99
|
-
* @default false
|
|
100
|
-
* @visibility frontend
|
|
101
|
-
*/
|
|
102
|
-
enabled: boolean;
|
|
103
|
-
/**
|
|
104
|
-
* Lightspeed configuration
|
|
105
|
-
* @visibility backend
|
|
106
|
-
*/
|
|
107
|
-
queryDefaults: {
|
|
108
|
-
/**
|
|
109
|
-
* Model to use for answering queries. Must map to a model available through the provider set in provider_id.
|
|
110
|
-
* @visibility backend
|
|
111
|
-
*/
|
|
112
|
-
model: string;
|
|
113
|
-
/**
|
|
114
|
-
* AI provider for the query model. Must map to a provider enabled in your Lightspeed config.
|
|
115
|
-
* @visibility backend
|
|
116
|
-
*/
|
|
117
|
-
provider_id: string;
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* Chunking strategy for document processing
|
|
121
|
-
* @visibility backend
|
|
122
|
-
*/
|
|
123
|
-
chunkingStrategy?: {
|
|
124
|
-
/**
|
|
125
|
-
* Document chunking strategy - 'auto' (automatic, default) or 'static' (fixed size)
|
|
126
|
-
* @visibility backend
|
|
127
|
-
*/
|
|
128
|
-
type?: 'auto' | 'static';
|
|
129
|
-
/**
|
|
130
|
-
* Maximum chunk size in tokens for static chunking (default: 512)
|
|
131
|
-
* @visibility backend
|
|
132
|
-
*/
|
|
133
|
-
maxChunkSizeTokens?: number;
|
|
134
|
-
/**
|
|
135
|
-
* Token overlap between chunks for static chunking (default: 50)
|
|
136
|
-
* @visibility backend
|
|
137
|
-
*/
|
|
138
|
-
chunkOverlapTokens?: number;
|
|
139
|
-
};
|
|
140
|
-
};
|
|
141
|
-
};
|
|
142
|
-
}
|