repoburg 1.3.166 → 1.3.168
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/backend/dist/src/app.module.js +2 -0
- package/backend/dist/src/app.module.js.map +1 -1
- package/backend/dist/src/core-entities/mcp-config.entity.d.ts +9 -0
- package/backend/dist/src/core-entities/mcp-config.entity.js +71 -6
- package/backend/dist/src/core-entities/mcp-config.entity.js.map +1 -1
- package/backend/dist/src/events/websocket.events.d.ts +12 -0
- package/backend/dist/src/events/websocket.events.js +4 -0
- package/backend/dist/src/events/websocket.events.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/dto/web-fetch.args.dto.d.ts +3 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/web-fetch.args.dto.js +22 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/web-fetch.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/web-search.args.dto.d.ts +4 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/web-search.args.dto.js +30 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/web-search.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/web-fetch.handler.d.ts +16 -0
- package/backend/dist/src/llm-orchestration/action-handlers/web-fetch.handler.js +180 -0
- package/backend/dist/src/llm-orchestration/action-handlers/web-fetch.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/web-search.handler.d.ts +16 -0
- package/backend/dist/src/llm-orchestration/action-handlers/web-search.handler.js +185 -0
- package/backend/dist/src/llm-orchestration/action-handlers/web-search.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.js +9 -1
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.js.map +1 -1
- package/backend/dist/src/mcp/marketplace/dto/initiate-connect.dto.d.ts +3 -0
- package/backend/dist/src/mcp/marketplace/dto/initiate-connect.dto.js +27 -0
- package/backend/dist/src/mcp/marketplace/dto/initiate-connect.dto.js.map +1 -0
- package/backend/dist/src/mcp/marketplace/marketplace.controller.d.ts +20 -0
- package/backend/dist/src/mcp/marketplace/marketplace.controller.js +145 -0
- package/backend/dist/src/mcp/marketplace/marketplace.controller.js.map +1 -0
- package/backend/dist/src/mcp/marketplace/marketplace.module.d.ts +2 -0
- package/backend/dist/src/mcp/marketplace/marketplace.module.js +34 -0
- package/backend/dist/src/mcp/marketplace/marketplace.module.js.map +1 -0
- package/backend/dist/src/mcp/marketplace/marketplace.service.d.ts +35 -0
- package/backend/dist/src/mcp/marketplace/marketplace.service.js +275 -0
- package/backend/dist/src/mcp/marketplace/marketplace.service.js.map +1 -0
- package/backend/dist/src/mcp/marketplace/oauth-provider.d.ts +29 -0
- package/backend/dist/src/mcp/marketplace/oauth-provider.js +55 -0
- package/backend/dist/src/mcp/marketplace/oauth-provider.js.map +1 -0
- package/backend/dist/src/mcp/marketplace/remote-servers.catalog.d.ts +12 -0
- package/backend/dist/src/mcp/marketplace/remote-servers.catalog.js +2318 -0
- package/backend/dist/src/mcp/marketplace/remote-servers.catalog.js.map +1 -0
- package/backend/dist/src/mcp/mcp.service.d.ts +2 -0
- package/backend/dist/src/mcp/mcp.service.js +92 -4
- package/backend/dist/src/mcp/mcp.service.js.map +1 -1
- package/backend/dist/src/mcp-server/mcp-server.constants.js +2 -0
- package/backend/dist/src/mcp-server/mcp-server.constants.js.map +1 -1
- package/backend/dist/src/seeding/data/system-prompts/control-repoburg-agent.js +2 -0
- package/backend/dist/src/seeding/data/system-prompts/control-repoburg-agent.js.map +1 -1
- package/backend/dist/src/seeding/data/system-prompts/default_native_tool_agent.js +2 -0
- package/backend/dist/src/seeding/data/system-prompts/default_native_tool_agent.js.map +1 -1
- package/backend/dist/src/seeding/data/system-prompts/explore-codebase-agent.js +2 -0
- package/backend/dist/src/seeding/data/system-prompts/explore-codebase-agent.js.map +1 -1
- package/backend/dist/src/system-prompts/system-prompts.service.js +2 -0
- package/backend/dist/src/system-prompts/system-prompts.service.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/backend/package.json +2 -1
- package/package.json +1 -1
|
@@ -44,6 +44,7 @@ const llm_call_logs_module_1 = require("./llm-call-logs/llm-call-logs.module");
|
|
|
44
44
|
const global_config_module_1 = require("./global-config/global-config.module");
|
|
45
45
|
const agents_module_1 = require("./agents/agents.module");
|
|
46
46
|
const mcp_server_module_1 = require("./mcp-server/mcp-server.module");
|
|
47
|
+
const marketplace_module_1 = require("./mcp/marketplace/marketplace.module");
|
|
47
48
|
let dbPath = ':memory:';
|
|
48
49
|
if (process.env.NODE_ENV === 'production') {
|
|
49
50
|
const projectPath = process.env.REPOBURG_PROJECT_PATH || process.cwd();
|
|
@@ -113,6 +114,7 @@ exports.AppModule = AppModule = __decorate([
|
|
|
113
114
|
llm_call_logs_module_1.LlmCallLogsModule,
|
|
114
115
|
agents_module_1.AgentsModule,
|
|
115
116
|
mcp_server_module_1.McpServerModule,
|
|
117
|
+
marketplace_module_1.MarketplaceModule,
|
|
116
118
|
],
|
|
117
119
|
controllers: [app_controller_1.AppController],
|
|
118
120
|
providers: [app_service_1.AppService],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,6CAAgD;AAChD,mDAgByB;AACzB,oEAAyD;AACzD,mDAAwC;AACxC,gEAA4D;AAC5D,gEAA4D;AAC5D,kFAA6E;AAC7E,sEAAiE;AACjE,kFAA6E;AAC7E,2FAAsF;AACtF,8FAAyF;AACzF,kFAA6E;AAC7E,6DAAyD;AACzD,mEAA+D;AAC/D,qFAAgF;AAChF,6BAA6B;AAC7B,yBAAyB;AACzB,wFAAmF;AACnF,wFAAmF;AACnF,2FAAsF;AACtF,+EAA0E;AAC1E,0DAAsD;AACtD,wFAAmF;AACnF,gEAAuE;AACvE,iDAA6C;AAC7C,+EAA0E;AAC1E,wFAAmF;AACnF,sEAAiE;AACjE,yEAAoE;AACpE,wFAAmF;AACnF,+EAAyE;AACzE,+EAA0E;AAC1E,0DAAsD;AACtD,sEAAiE;
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,6CAAgD;AAChD,mDAgByB;AACzB,oEAAyD;AACzD,mDAAwC;AACxC,gEAA4D;AAC5D,gEAA4D;AAC5D,kFAA6E;AAC7E,sEAAiE;AACjE,kFAA6E;AAC7E,2FAAsF;AACtF,8FAAyF;AACzF,kFAA6E;AAC7E,6DAAyD;AACzD,mEAA+D;AAC/D,qFAAgF;AAChF,6BAA6B;AAC7B,yBAAyB;AACzB,wFAAmF;AACnF,wFAAmF;AACnF,2FAAsF;AACtF,+EAA0E;AAC1E,0DAAsD;AACtD,wFAAmF;AACnF,gEAAuE;AACvE,iDAA6C;AAC7C,+EAA0E;AAC1E,wFAAmF;AACnF,sEAAiE;AACjE,yEAAoE;AACpE,wFAAmF;AACnF,+EAAyE;AACzE,+EAA0E;AAC1E,0DAAsD;AACtD,sEAAiE;AACjE,6EAAyE;AAEzE,IAAI,MAAM,GAAG,UAAU,CAAC;AAExB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC;AA+DM,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IA7DrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,OAAO,CAAC;gBACpB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE;oBACR,uBAAO;oBACP,uBAAO;oBACP,+BAAe;oBACf,4BAAY;oBACZ,wBAAQ;oBACR,4BAAY;oBACZ,4BAAY;oBACZ,6BAAa;oBACb,gCAAgB;oBAChB,8BAAc;oBACd,yBAAS;oBACT,uBAAO;oBACP,8BAAc;oBACd,wBAAQ;oBACR,0BAAU;oBACV,2BAAQ;oBACR,qBAAK;iBACN;gBACD,WAAW,EAAE,CAAC,iDAAsB,CAAC;gBACrC,WAAW,EAAE,IAAI;gBACjB,gBAAgB,EAAE,IAAI;aACvB,CAAC;YACF,gCAAc;YACd,gCAAc;YACd,2CAAmB;YACnB,mCAAe;YACf,2CAAmB;YACnB,iDAAsB;YACtB,mDAAuB;YACvB,2CAAmB;YACnB,8BAAa;YACb,kCAAe;YACf,6CAAoB;YACpB,+CAAqB;YACrB,+CAAqB;YACrB,yCAAkB;YAClB,iDAAsB;YACtB,yCAAkB;YAClB,4BAAY;YACZ,+CAAqB;YACrB,mCAAqB;YACrB,sBAAS;YACT,yCAAkB;YAClB,+CAAqB;YACrB,mCAAe;YACf,qCAAgB;YAChB,wCAAiB;YACjB,4BAAY;YACZ,mCAAe;YACf,sCAAiB;SAClB;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;QACvB,OAAO,EAAE,CAAC,wBAAU,CAAC;KACtB,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { BaseEntity } from './base.entity';
|
|
2
2
|
export declare class McpConfig extends BaseEntity {
|
|
3
3
|
server_name: string;
|
|
4
|
+
transport_type: 'stdio' | 'streamable_http';
|
|
4
5
|
command: string;
|
|
5
6
|
args: string[];
|
|
6
7
|
env: Record<string, string>;
|
|
8
|
+
server_url: string;
|
|
9
|
+
access_token: string;
|
|
10
|
+
refresh_token: string;
|
|
11
|
+
token_expires_at: Date;
|
|
12
|
+
client_information: Record<string, any>;
|
|
13
|
+
logo_url: string;
|
|
14
|
+
category: string;
|
|
15
|
+
marketplace_id: string;
|
|
7
16
|
is_active: boolean;
|
|
8
17
|
}
|
|
@@ -27,15 +27,23 @@ __decorate([
|
|
|
27
27
|
], McpConfig.prototype, "server_name", void 0);
|
|
28
28
|
__decorate([
|
|
29
29
|
(0, swagger_1.ApiProperty)({
|
|
30
|
-
description: '
|
|
30
|
+
description: 'Transport type: stdio (local process) or streamable_http (remote)',
|
|
31
|
+
example: 'stdio',
|
|
32
|
+
}),
|
|
33
|
+
(0, typeorm_1.Column)({ type: 'text', default: 'stdio' }),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], McpConfig.prototype, "transport_type", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, swagger_1.ApiProperty)({
|
|
38
|
+
description: 'Command to launch the MCP server (stdio only)',
|
|
31
39
|
example: 'npx',
|
|
32
40
|
}),
|
|
33
|
-
(0, typeorm_1.Column)({ type: 'text' }),
|
|
41
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
34
42
|
__metadata("design:type", String)
|
|
35
43
|
], McpConfig.prototype, "command", void 0);
|
|
36
44
|
__decorate([
|
|
37
|
-
(0, swagger_1.
|
|
38
|
-
description: 'Arguments for the command',
|
|
45
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
46
|
+
description: 'Arguments for the command (stdio only)',
|
|
39
47
|
example: [
|
|
40
48
|
'-y',
|
|
41
49
|
'@modelcontextprotocol/server-filesystem',
|
|
@@ -43,17 +51,74 @@ __decorate([
|
|
|
43
51
|
],
|
|
44
52
|
type: 'array',
|
|
45
53
|
}),
|
|
46
|
-
(0, typeorm_1.Column)({ type: 'json' }),
|
|
54
|
+
(0, typeorm_1.Column)({ type: 'json', nullable: true }),
|
|
47
55
|
__metadata("design:type", Array)
|
|
48
56
|
], McpConfig.prototype, "args", void 0);
|
|
49
57
|
__decorate([
|
|
50
58
|
(0, swagger_1.ApiPropertyOptional)({
|
|
51
|
-
description: 'Environment variables for the server process',
|
|
59
|
+
description: 'Environment variables for the server process (stdio only)',
|
|
52
60
|
example: { NODE_ENV: 'production' },
|
|
53
61
|
}),
|
|
54
62
|
(0, typeorm_1.Column)({ type: 'json', nullable: true }),
|
|
55
63
|
__metadata("design:type", Object)
|
|
56
64
|
], McpConfig.prototype, "env", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
67
|
+
description: 'Remote server URL for streamable_http transport',
|
|
68
|
+
example: 'https://mcp.stripe.com',
|
|
69
|
+
}),
|
|
70
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], McpConfig.prototype, "server_url", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
75
|
+
description: 'OAuth access token for remote servers',
|
|
76
|
+
}),
|
|
77
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
78
|
+
__metadata("design:type", String)
|
|
79
|
+
], McpConfig.prototype, "access_token", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
82
|
+
description: 'OAuth refresh token for remote servers',
|
|
83
|
+
}),
|
|
84
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
85
|
+
__metadata("design:type", String)
|
|
86
|
+
], McpConfig.prototype, "refresh_token", void 0);
|
|
87
|
+
__decorate([
|
|
88
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
89
|
+
description: 'When the access token expires',
|
|
90
|
+
}),
|
|
91
|
+
(0, typeorm_1.Column)({ type: 'datetime', nullable: true }),
|
|
92
|
+
__metadata("design:type", Date)
|
|
93
|
+
], McpConfig.prototype, "token_expires_at", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
96
|
+
description: 'OAuth client information from dynamic registration',
|
|
97
|
+
}),
|
|
98
|
+
(0, typeorm_1.Column)({ type: 'json', nullable: true }),
|
|
99
|
+
__metadata("design:type", Object)
|
|
100
|
+
], McpConfig.prototype, "client_information", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
103
|
+
description: 'Logo URL for marketplace display',
|
|
104
|
+
}),
|
|
105
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
106
|
+
__metadata("design:type", String)
|
|
107
|
+
], McpConfig.prototype, "logo_url", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
110
|
+
description: 'Category label for marketplace grouping',
|
|
111
|
+
}),
|
|
112
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
113
|
+
__metadata("design:type", String)
|
|
114
|
+
], McpConfig.prototype, "category", void 0);
|
|
115
|
+
__decorate([
|
|
116
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
117
|
+
description: 'Slug identifying which marketplace entry this was added from',
|
|
118
|
+
}),
|
|
119
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
120
|
+
__metadata("design:type", String)
|
|
121
|
+
], McpConfig.prototype, "marketplace_id", void 0);
|
|
57
122
|
__decorate([
|
|
58
123
|
(0, swagger_1.ApiProperty)({
|
|
59
124
|
description: 'Whether this MCP server is active/enabled',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-config.entity.js","sourceRoot":"","sources":["../../../src/core-entities/mcp-config.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAgD;AAChD,6CAAmE;AACnE,+CAA2C;
|
|
1
|
+
{"version":3,"file":"mcp-config.entity.js","sourceRoot":"","sources":["../../../src/core-entities/mcp-config.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,18 @@ export type WebSocketEvent = {
|
|
|
60
60
|
attempt: number;
|
|
61
61
|
maxAttempts: number;
|
|
62
62
|
};
|
|
63
|
+
} | {
|
|
64
|
+
event: 'mcp-marketplace-connected';
|
|
65
|
+
data: {
|
|
66
|
+
marketplaceId: string;
|
|
67
|
+
serverName: string;
|
|
68
|
+
};
|
|
69
|
+
} | {
|
|
70
|
+
event: 'mcp-marketplace-error';
|
|
71
|
+
data: {
|
|
72
|
+
marketplaceId: string;
|
|
73
|
+
error: string;
|
|
74
|
+
};
|
|
63
75
|
};
|
|
64
76
|
export type WebSocketEventName = WebSocketEvent['event'];
|
|
65
77
|
export declare function isWebSocketEvent(obj: unknown): obj is WebSocketEvent;
|
|
@@ -43,6 +43,10 @@ function isWebSocketEvent(obj) {
|
|
|
43
43
|
'sessionId' in data &&
|
|
44
44
|
'attempt' in data &&
|
|
45
45
|
'maxAttempts' in data);
|
|
46
|
+
case 'mcp-marketplace-connected':
|
|
47
|
+
return data !== null && 'marketplaceId' in data && 'serverName' in data;
|
|
48
|
+
case 'mcp-marketplace-error':
|
|
49
|
+
return data !== null && 'marketplaceId' in data && 'error' in data;
|
|
46
50
|
default:
|
|
47
51
|
return false;
|
|
48
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.events.js","sourceRoot":"","sources":["../../../src/events/websocket.events.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"websocket.events.js","sourceRoot":"","sources":["../../../src/events/websocket.events.ts"],"names":[],"mappings":";;AAoDA,4CA0DC;AA1DD,SAAgB,gBAAgB,CAAC,GAAY;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAuC,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,YAAY;YACf,OAAO,IAAI,CAAC;QACd,KAAK,YAAY;YACf,OAAO,IAAI,KAAK,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,CAAC;QAC1E,KAAK,sBAAsB;YACzB,OAAO,IAAI,KAAK,IAAI,IAAI,cAAc,IAAI,IAAI,CAAC;QACjD,KAAK,iBAAiB;YACpB,OAAO,IAAI,KAAK,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC;QAC9C,KAAK,kBAAkB;YACrB,OAAO,CACL,IAAI,KAAK,IAAI;gBACb,gBAAgB,IAAI,IAAI;gBACxB,OAAO,IAAI,IAAI;gBACf,SAAS,IAAI,IAAI,CAClB,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO,CACL,IAAI,KAAK,IAAI;gBACb,gBAAgB,IAAI,IAAI;gBACxB,OAAO,IAAI,IAAI;gBACf,SAAS,IAAI,IAAI,CAClB,CAAC;QACJ,KAAK,wBAAwB;YAC3B,OAAO,CACL,IAAI,KAAK,IAAI;gBACb,gBAAgB,IAAI,IAAI;gBACxB,WAAW,IAAI,IAAI;gBACnB,aAAa,IAAI,IAAI,CACtB,CAAC;QACJ,KAAK,4BAA4B;YAC/B,OAAO,IAAI,KAAK,IAAI,IAAI,gBAAgB,IAAI,IAAI,CAAC;QACnD,KAAK,sBAAsB;YACzB,OAAO,IAAI,KAAK,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC;QAC1E,KAAK,mBAAmB;YACtB,OAAO,CACL,IAAI,KAAK,IAAI;gBACb,gBAAgB,IAAI,IAAI;gBACxB,WAAW,IAAI,IAAI;gBACnB,SAAS,IAAI,IAAI;gBACjB,aAAa,IAAI,IAAI,CACtB,CAAC;QACJ,KAAK,2BAA2B;YAC9B,OAAO,IAAI,KAAK,IAAI,IAAI,eAAe,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC;QAC1E,KAAK,uBAAuB;YAC1B,OAAO,IAAI,KAAK,IAAI,IAAI,eAAe,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC;QACrE;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WebFetchArgsDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class WebFetchArgsDto {
|
|
15
|
+
}
|
|
16
|
+
exports.WebFetchArgsDto = WebFetchArgsDto;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsString)({ message: 'url must be a string.' }),
|
|
19
|
+
(0, class_validator_1.IsNotEmpty)({ message: 'url must not be empty.' }),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], WebFetchArgsDto.prototype, "url", void 0);
|
|
22
|
+
//# sourceMappingURL=web-fetch.args.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-fetch.args.dto.js","sourceRoot":"","sources":["../../../../../src/llm-orchestration/action-handlers/dto/web-fetch.args.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuD;AAEvD,MAAa,eAAe;CAI3B;AAJD,0CAIC;AADC;IAFC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAC9C,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;;4CACtC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.WebSearchArgsDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class WebSearchArgsDto {
|
|
15
|
+
}
|
|
16
|
+
exports.WebSearchArgsDto = WebSearchArgsDto;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsString)({ message: 'query must be a string.' }),
|
|
19
|
+
(0, class_validator_1.IsNotEmpty)({ message: 'query must not be empty.' }),
|
|
20
|
+
__metadata("design:type", String)
|
|
21
|
+
], WebSearchArgsDto.prototype, "query", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
|
+
(0, class_validator_1.IsNumber)({}, { message: 'max_results must be a number.' }),
|
|
25
|
+
(0, class_validator_1.IsInt)({ message: 'max_results must be an integer.' }),
|
|
26
|
+
(0, class_validator_1.Min)(1, { message: 'max_results must be at least 1.' }),
|
|
27
|
+
(0, class_validator_1.Max)(10, { message: 'max_results must be at most 10.' }),
|
|
28
|
+
__metadata("design:type", Number)
|
|
29
|
+
], WebSearchArgsDto.prototype, "max_results", void 0);
|
|
30
|
+
//# sourceMappingURL=web-search.args.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.args.dto.js","sourceRoot":"","sources":["../../../../../src/llm-orchestration/action-handlers/dto/web-search.args.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAQyB;AAEzB,MAAa,gBAAgB;CAW5B;AAXD,4CAWC;AARC;IAFC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAChD,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;;+CACtC;AAOd;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IAC1D,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IACrD,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IACtD,IAAA,qBAAG,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;;qDACnC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ActionHandler } from './action-handler.interface';
|
|
2
|
+
import { ActionExecutionResult, PlanExecutionContext, ToolMetadata } from '../llm-orchestration.interfaces';
|
|
3
|
+
import { ApplicationStateService } from '../../application-state/application-state.service';
|
|
4
|
+
export declare class WebFetchHandler implements ActionHandler {
|
|
5
|
+
private readonly applicationStateService;
|
|
6
|
+
readonly toolName = "web_fetch";
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private readonly baseUrl;
|
|
9
|
+
constructor(applicationStateService: ApplicationStateService);
|
|
10
|
+
getMetadata(): ToolMetadata;
|
|
11
|
+
private generateExample;
|
|
12
|
+
getDefinition(): string;
|
|
13
|
+
execute(args: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}, context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var WebFetchHandler_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.WebFetchHandler = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const web_fetch_args_dto_1 = require("./dto/web-fetch.args.dto");
|
|
16
|
+
const class_transformer_1 = require("class-transformer");
|
|
17
|
+
const class_validator_1 = require("class-validator");
|
|
18
|
+
const application_state_service_1 = require("../../application-state/application-state.service");
|
|
19
|
+
const utils_1 = require("../../utils");
|
|
20
|
+
const gpt_tokenizer_1 = require("gpt-tokenizer");
|
|
21
|
+
let WebFetchHandler = WebFetchHandler_1 = class WebFetchHandler {
|
|
22
|
+
constructor(applicationStateService) {
|
|
23
|
+
this.applicationStateService = applicationStateService;
|
|
24
|
+
this.toolName = 'web_fetch';
|
|
25
|
+
this.logger = new common_1.Logger(WebFetchHandler_1.name);
|
|
26
|
+
this.baseUrl = 'https://ollama.com/api';
|
|
27
|
+
}
|
|
28
|
+
getMetadata() {
|
|
29
|
+
return {
|
|
30
|
+
name: this.toolName,
|
|
31
|
+
description: this.getDefinition(),
|
|
32
|
+
arguments: [
|
|
33
|
+
{
|
|
34
|
+
name: 'url',
|
|
35
|
+
type: 'string',
|
|
36
|
+
description: 'The URL of the web page to fetch.',
|
|
37
|
+
required: true,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
generateExample(toolCall) {
|
|
43
|
+
return (0, utils_1.generateToolCallJson)(toolCall);
|
|
44
|
+
}
|
|
45
|
+
getDefinition() {
|
|
46
|
+
const example = this.generateExample({
|
|
47
|
+
tool_name: this.toolName,
|
|
48
|
+
url: 'https://ollama.com',
|
|
49
|
+
});
|
|
50
|
+
const definition = `
|
|
51
|
+
-------------
|
|
52
|
+
### ${this.toolName}
|
|
53
|
+
Fetches a single web page by URL using Ollama's web fetch API.
|
|
54
|
+
Returns the page title, main content, and links found on the page.
|
|
55
|
+
Useful for reading the full content of a URL found via web_search or provided by the user.
|
|
56
|
+
|
|
57
|
+
Requires an Ollama API key to be configured in settings.
|
|
58
|
+
|
|
59
|
+
#### Parameters
|
|
60
|
+
- "url": (string, required) The URL of the web page to fetch.
|
|
61
|
+
|
|
62
|
+
#### Example
|
|
63
|
+
:${example}
|
|
64
|
+
-------------
|
|
65
|
+
`;
|
|
66
|
+
return `\n${definition.trim()}\n`;
|
|
67
|
+
}
|
|
68
|
+
async execute(args, context) {
|
|
69
|
+
const validatedArgs = (0, class_transformer_1.plainToClass)(web_fetch_args_dto_1.WebFetchArgsDto, args);
|
|
70
|
+
const errors = await (0, class_validator_1.validate)(validatedArgs);
|
|
71
|
+
if (errors.length > 0) {
|
|
72
|
+
const errorMessages = errors
|
|
73
|
+
.map((err) => Object.values(err.constraints || {}).join(', '))
|
|
74
|
+
.join('; ');
|
|
75
|
+
return {
|
|
76
|
+
status: 'FAILURE',
|
|
77
|
+
summary: `Invalid arguments for ${this.toolName}.`,
|
|
78
|
+
error_message: errorMessages,
|
|
79
|
+
persisted_args: args,
|
|
80
|
+
execution_log: { output: '', error_message: errorMessages },
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const { url } = validatedArgs;
|
|
84
|
+
const apiKey = await this.applicationStateService.getOllamaApiKey();
|
|
85
|
+
if (!apiKey) {
|
|
86
|
+
const msg = 'Ollama API key is not configured. Web fetch requires an Ollama API key. Please ask the user to set their Ollama API key in the Settings page (Ollama section). A free Ollama account is required — create one at https://ollama.com/settings/keys to generate an API key.';
|
|
87
|
+
this.logger.warn(msg);
|
|
88
|
+
return {
|
|
89
|
+
status: 'FAILURE',
|
|
90
|
+
summary: msg,
|
|
91
|
+
error_message: msg,
|
|
92
|
+
persisted_args: { url },
|
|
93
|
+
execution_log: { output: '', error_message: msg },
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
let output;
|
|
97
|
+
let status = 'SUCCESS';
|
|
98
|
+
let errorMessage;
|
|
99
|
+
try {
|
|
100
|
+
this.logger.log(`Web fetch: "${url}"`);
|
|
101
|
+
const response = await fetch(`${this.baseUrl}/web_fetch`, {
|
|
102
|
+
method: 'POST',
|
|
103
|
+
headers: {
|
|
104
|
+
'Content-Type': 'application/json',
|
|
105
|
+
Authorization: `Bearer ${apiKey}`,
|
|
106
|
+
},
|
|
107
|
+
body: JSON.stringify({ url }),
|
|
108
|
+
});
|
|
109
|
+
if (!response.ok) {
|
|
110
|
+
const errorText = await response.text();
|
|
111
|
+
let errorDetail = errorText;
|
|
112
|
+
try {
|
|
113
|
+
const errorJson = JSON.parse(errorText);
|
|
114
|
+
errorDetail = errorJson?.error || errorText;
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
}
|
|
118
|
+
const msg = `Ollama web fetch API error (${response.status}): ${errorDetail}`;
|
|
119
|
+
this.logger.error(msg);
|
|
120
|
+
return {
|
|
121
|
+
status: 'FAILURE',
|
|
122
|
+
summary: `Web fetch failed.`,
|
|
123
|
+
error_message: msg,
|
|
124
|
+
persisted_args: { url },
|
|
125
|
+
execution_log: { output: '', error_message: msg },
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
const data = (await response.json());
|
|
129
|
+
const sections = [];
|
|
130
|
+
if (data.title) {
|
|
131
|
+
sections.push(`**Title:** ${data.title}`);
|
|
132
|
+
}
|
|
133
|
+
if (data.content) {
|
|
134
|
+
sections.push(`**Content:**\n${data.content}`);
|
|
135
|
+
}
|
|
136
|
+
if (data.links && data.links.length > 0) {
|
|
137
|
+
sections.push(`**Links:**\n${data.links.map((l) => `- ${l}`).join('\n')}`);
|
|
138
|
+
}
|
|
139
|
+
output = sections.join('\n\n') || 'No content returned.';
|
|
140
|
+
this.logger.log(`Web fetch completed for "${url}" (${data.links?.length || 0} links)`);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
const execError = error;
|
|
144
|
+
status = 'FAILURE';
|
|
145
|
+
errorMessage = execError.message;
|
|
146
|
+
output = `Web fetch failed: ${execError.message}`;
|
|
147
|
+
this.logger.error(`Web fetch error: ${execError.message}`);
|
|
148
|
+
}
|
|
149
|
+
const tokenCount = (0, gpt_tokenizer_1.countTokens)(output);
|
|
150
|
+
const tokenLimit = await this.applicationStateService.getEffectiveFollowupTokenLimit(context.system_prompt_id);
|
|
151
|
+
if (tokenCount > tokenLimit) {
|
|
152
|
+
const ratio = tokenLimit / tokenCount;
|
|
153
|
+
const truncatedLength = Math.floor(output.length * ratio);
|
|
154
|
+
const truncationWarning = `\n\n[OUTPUT TRUNCATED: ${tokenCount} tokens exceeds limit of ${tokenLimit}.]`;
|
|
155
|
+
output = output.slice(0, truncatedLength) + truncationWarning;
|
|
156
|
+
errorMessage =
|
|
157
|
+
(errorMessage || '') +
|
|
158
|
+
` Output truncated due to size limit (${tokenCount} > ${tokenLimit} tokens).`;
|
|
159
|
+
this.logger.warn(`Web fetch output truncated: ${tokenCount} tokens exceeds limit of ${tokenLimit}`);
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
status,
|
|
163
|
+
summary: status === 'SUCCESS'
|
|
164
|
+
? `Web fetch for "${url}" completed.`
|
|
165
|
+
: `Web fetch failed.`,
|
|
166
|
+
persisted_args: { url },
|
|
167
|
+
error_message: errorMessage,
|
|
168
|
+
execution_log: {
|
|
169
|
+
output,
|
|
170
|
+
error_message: errorMessage || '',
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
exports.WebFetchHandler = WebFetchHandler;
|
|
176
|
+
exports.WebFetchHandler = WebFetchHandler = WebFetchHandler_1 = __decorate([
|
|
177
|
+
(0, common_1.Injectable)(),
|
|
178
|
+
__metadata("design:paramtypes", [application_state_service_1.ApplicationStateService])
|
|
179
|
+
], WebFetchHandler);
|
|
180
|
+
//# sourceMappingURL=web-fetch.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-fetch.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/web-fetch.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAOpD,iEAA2D;AAC3D,yDAAiD;AACjD,qDAA2C;AAC3C,iGAA4F;AAC5F,uCAAmD;AACnD,iDAA4C;AASrC,IAAM,eAAe,uBAArB,MAAM,eAAe;IAK1B,YACmB,uBAAgD;QAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;QAL1D,aAAQ,GAAG,WAAW,CAAC;QACf,WAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,YAAO,GAAG,wBAAwB,CAAC;IAIjD,CAAC;IAEJ,WAAW;QACT,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE;YACjC,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC;oBAChD,QAAQ,EAAE,IAAI;iBACf;aACF;SACF,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,QAA6B;QACnD,OAAO,IAAA,4BAAoB,EAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,GAAG,EAAE,oBAAoB;SAC1B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;;MAEjB,IAAI,CAAC,QAAQ;;;;;;;;;;;GAWhB,OAAO;;CAET,CAAC;QACE,OAAO,KAAK,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,OAA6B;QAE7B,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,oCAAe,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,yBAAyB,IAAI,CAAC,QAAQ,GAAG;gBAClD,aAAa,EAAE,aAAa;gBAC5B,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE;aAC5D,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,CAAC;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,GACP,2QAA2Q,CAAC;YAC9Q,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,GAAG;gBACZ,aAAa,EAAE,GAAG;gBAClB,cAAc,EAAE,EAAE,GAAG,EAAE;gBACvB,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;aAClD,CAAC;QACJ,CAAC;QAED,IAAI,MAAc,CAAC;QACnB,IAAI,MAAM,GAA0B,SAAS,CAAC;QAC9C,IAAI,YAAgC,CAAC;QAErC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;YAEvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,YAAY,EAAE;gBACxD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,WAAW,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACxC,WAAW,GAAG,SAAS,EAAE,KAAK,IAAI,SAAS,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;gBACD,MAAM,GAAG,GAAG,+BAA+B,QAAQ,CAAC,MAAM,MAAM,WAAW,EAAE,CAAC;gBAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,mBAAmB;oBAC5B,aAAa,EAAE,GAAG;oBAClB,cAAc,EAAE,EAAE,GAAG,EAAE;oBACvB,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;iBAClD,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqB,CAAC;YAEzD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,CACX,eAAe,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;YACJ,CAAC;YAED,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,sBAAsB,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,4BAA4B,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,SAAS,CACtE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAAc,CAAC;YACjC,MAAM,GAAG,SAAS,CAAC;YACnB,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;YACjC,MAAM,GAAG,qBAAqB,SAAS,CAAC,OAAO,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;QAGD,MAAM,UAAU,GAAG,IAAA,2BAAW,EAAC,MAAM,CAAC,CAAC;QACvC,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,uBAAuB,CAAC,8BAA8B,CAC/D,OAAO,CAAC,gBAAgB,CACzB,CAAC;QAEJ,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;YACtC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YAC1D,MAAM,iBAAiB,GAAG,0BAA0B,UAAU,4BAA4B,UAAU,IAAI,CAAC;YACzG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,iBAAiB,CAAC;YAC9D,YAAY;gBACV,CAAC,YAAY,IAAI,EAAE,CAAC;oBACpB,wCAAwC,UAAU,MAAM,UAAU,WAAW,CAAC;YAChF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,+BAA+B,UAAU,4BAA4B,UAAU,EAAE,CAClF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM;YACN,OAAO,EACL,MAAM,KAAK,SAAS;gBAClB,CAAC,CAAC,kBAAkB,GAAG,cAAc;gBACrC,CAAC,CAAC,mBAAmB;YACzB,cAAc,EAAE,EAAE,GAAG,EAAE;YACvB,aAAa,EAAE,YAAY;YAC3B,aAAa,EAAE;gBACb,MAAM;gBACN,aAAa,EAAE,YAAY,IAAI,EAAE;aAClC;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA1LY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAOiC,mDAAuB;GANxD,eAAe,CA0L3B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ActionHandler } from './action-handler.interface';
|
|
2
|
+
import { ActionExecutionResult, PlanExecutionContext, ToolMetadata } from '../llm-orchestration.interfaces';
|
|
3
|
+
import { ApplicationStateService } from '../../application-state/application-state.service';
|
|
4
|
+
export declare class WebSearchHandler implements ActionHandler {
|
|
5
|
+
private readonly applicationStateService;
|
|
6
|
+
readonly toolName = "web_search";
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private readonly baseUrl;
|
|
9
|
+
constructor(applicationStateService: ApplicationStateService);
|
|
10
|
+
getMetadata(): ToolMetadata;
|
|
11
|
+
private generateExample;
|
|
12
|
+
getDefinition(): string;
|
|
13
|
+
execute(args: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}, context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
16
|
+
}
|