Skip to content

Commit 2b75ed7

Browse files
committed
cleanup
1 parent 9d77ca3 commit 2b75ed7

2 files changed

Lines changed: 202 additions & 6 deletions

File tree

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License
4+
* 2.0; you may not use this file except in compliance with the Elastic License
5+
* 2.0.
6+
*/
7+
8+
import type {
9+
ListSkillsResponse,
10+
GetSkillResponse,
11+
CreateSkillResponse,
12+
UpdateSkillResponse,
13+
DeleteSkillResponse,
14+
CreateSkillPayload,
15+
UpdateSkillPayload,
16+
} from '../../common/http_api/skills';
17+
18+
export const listSkillsOas = () => {
19+
const response: ListSkillsResponse = {
20+
results: [
21+
{
22+
id: 'built-in-skill-id',
23+
name: 'Built-in Skill',
24+
description: 'A built-in skill provided by the platform.',
25+
readonly: true,
26+
experimental: false,
27+
referenced_content_count: 0,
28+
},
29+
{
30+
id: 'custom-skill-id',
31+
name: 'Custom Skill',
32+
description: 'A user-created skill for data analysis.',
33+
readonly: false,
34+
experimental: false,
35+
tool_ids: ['platform.core.search'],
36+
referenced_content_count: 1,
37+
},
38+
],
39+
};
40+
41+
return {
42+
responses: {
43+
200: {
44+
description: 'Indicates a successful response',
45+
content: {
46+
'application/json': {
47+
examples: {
48+
listSkillsResponseExample: { value: response },
49+
},
50+
},
51+
},
52+
},
53+
},
54+
};
55+
};
56+
57+
export const getSkillOas = () => {
58+
const response: GetSkillResponse = {
59+
id: 'my-custom-skill',
60+
name: 'Custom Analysis Skill',
61+
description: 'A skill for performing custom data analysis.',
62+
content: 'You are an expert data analyst. Use the available tools to query and analyze data.',
63+
tool_ids: ['platform.core.search'],
64+
readonly: false,
65+
experimental: false,
66+
};
67+
68+
return {
69+
responses: {
70+
200: {
71+
description: 'Indicates a successful response',
72+
content: {
73+
'application/json': {
74+
examples: {
75+
getSkillResponseExample: { value: response },
76+
},
77+
},
78+
},
79+
},
80+
},
81+
};
82+
};
83+
84+
export const createSkillOas = () => {
85+
const request: CreateSkillPayload = {
86+
id: 'my-custom-skill',
87+
name: 'Custom Analysis Skill',
88+
description: 'A skill for performing custom data analysis.',
89+
content: 'You are an expert data analyst. Use the available tools to query and analyze data.',
90+
tool_ids: ['platform.core.search'],
91+
};
92+
93+
const response: CreateSkillResponse = {
94+
id: 'my-custom-skill',
95+
name: 'Custom Analysis Skill',
96+
description: 'A skill for performing custom data analysis.',
97+
content: 'You are an expert data analyst. Use the available tools to query and analyze data.',
98+
tool_ids: ['platform.core.search'],
99+
readonly: false,
100+
experimental: false,
101+
};
102+
103+
return {
104+
requestBody: {
105+
content: {
106+
'application/json': {
107+
examples: {
108+
createSkillRequestExample: { value: request },
109+
},
110+
},
111+
},
112+
},
113+
responses: {
114+
200: {
115+
description: 'Indicates a successful response',
116+
content: {
117+
'application/json': {
118+
examples: {
119+
createSkillResponseExample: { value: response },
120+
},
121+
},
122+
},
123+
},
124+
},
125+
};
126+
};
127+
128+
export const updateSkillOas = () => {
129+
const request: UpdateSkillPayload = {
130+
name: 'Updated Skill Name',
131+
description: 'Updated description for the skill.',
132+
content: 'Updated skill instructions content.',
133+
tool_ids: ['platform.core.search', 'platform.core.execute_esql'],
134+
};
135+
136+
const response: UpdateSkillResponse = {
137+
id: 'my-custom-skill',
138+
name: 'Updated Skill Name',
139+
description: 'Updated description for the skill.',
140+
content: 'Updated skill instructions content.',
141+
tool_ids: ['platform.core.search', 'platform.core.execute_esql'],
142+
readonly: false,
143+
experimental: false,
144+
};
145+
146+
return {
147+
requestBody: {
148+
content: {
149+
'application/json': {
150+
examples: {
151+
updateSkillRequestExample: { value: request },
152+
},
153+
},
154+
},
155+
},
156+
responses: {
157+
200: {
158+
description: 'Indicates a successful response',
159+
content: {
160+
'application/json': {
161+
examples: {
162+
updateSkillResponseExample: { value: response },
163+
},
164+
},
165+
},
166+
},
167+
},
168+
};
169+
};
170+
171+
export const deleteSkillOas = () => {
172+
const response: DeleteSkillResponse = {
173+
success: true,
174+
};
175+
176+
return {
177+
responses: {
178+
200: {
179+
description: 'Indicates a successful response',
180+
content: {
181+
'application/json': {
182+
examples: {
183+
deleteSkillResponseExample: { value: response },
184+
},
185+
},
186+
},
187+
},
188+
},
189+
};
190+
};

x-pack/platform/plugins/shared/agent_builder/server/routes/skills.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
* 2.0.
66
*/
77

8-
import path from 'node:path';
98
import { schema } from '@kbn/config-schema';
109
import { skillCreateRequestSchema, skillUpdateRequestSchema } from '@kbn/agent-builder-common';
1110
import type { RouteDependencies } from './types';
@@ -24,6 +23,13 @@ import { internalToPublicDefinition, internalToPublicSummary } from '../services
2423
import { AGENT_BUILDER_READ_SECURITY, SKILLS_WRITE_SECURITY } from './route_security';
2524
import { asError } from '../utils/as_error';
2625
import { SKILL_USED_BY_AGENTS_ERROR_CODE } from '../../common/http_api/skills';
26+
import {
27+
listSkillsOas,
28+
getSkillOas,
29+
createSkillOas,
30+
updateSkillOas,
31+
deleteSkillOas,
32+
} from './oas_operations';
2733

2834
const REFERENCED_CONTENT_SCHEMA = schema.arrayOf(
2935
schema.object({
@@ -86,7 +92,7 @@ export function registerSkillsRoutes({
8692
},
8793
},
8894
options: {
89-
oasOperationObject: () => path.join(__dirname, 'examples/skills_list.yaml'),
95+
oasOperationObject: listSkillsOas,
9096
},
9197
},
9298
wrapHandler(async (ctx, request, response) => {
@@ -128,7 +134,7 @@ export function registerSkillsRoutes({
128134
},
129135
},
130136
options: {
131-
oasOperationObject: () => path.join(__dirname, 'examples/skills_get_by_id.yaml'),
137+
oasOperationObject: getSkillOas,
132138
},
133139
},
134140
wrapHandler(async (ctx, request, response) => {
@@ -200,7 +206,7 @@ export function registerSkillsRoutes({
200206
},
201207
},
202208
options: {
203-
oasOperationObject: () => path.join(__dirname, 'examples/skills_create.yaml'),
209+
oasOperationObject: createSkillOas,
204210
},
205211
},
206212
wrapHandler(async (ctx, request, response) => {
@@ -277,7 +283,7 @@ export function registerSkillsRoutes({
277283
},
278284
},
279285
options: {
280-
oasOperationObject: () => path.join(__dirname, 'examples/skills_update.yaml'),
286+
oasOperationObject: updateSkillOas,
281287
},
282288
},
283289
wrapHandler(async (ctx, request, response) => {
@@ -336,7 +342,7 @@ export function registerSkillsRoutes({
336342
},
337343
},
338344
options: {
339-
oasOperationObject: () => path.join(__dirname, 'examples/skills_delete.yaml'),
345+
oasOperationObject: deleteSkillOas,
340346
},
341347
},
342348
wrapHandler(async (ctx, request, response) => {

0 commit comments

Comments
 (0)