signalwire-agents 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/CLAUDE.md +112 -0
- package/README.md +417 -0
- package/dist/AgentBase.d.ts +481 -0
- package/dist/AgentBase.js +1155 -0
- package/dist/AgentBase.js.map +1 -0
- package/dist/AgentServer.d.ts +60 -0
- package/dist/AgentServer.js +128 -0
- package/dist/AgentServer.js.map +1 -0
- package/dist/AuthHandler.d.ts +56 -0
- package/dist/AuthHandler.js +119 -0
- package/dist/AuthHandler.js.map +1 -0
- package/dist/ConfigLoader.d.ts +68 -0
- package/dist/ConfigLoader.js +150 -0
- package/dist/ConfigLoader.js.map +1 -0
- package/dist/ContextBuilder.d.ts +431 -0
- package/dist/ContextBuilder.js +751 -0
- package/dist/ContextBuilder.js.map +1 -0
- package/dist/DataMap.d.ts +179 -0
- package/dist/DataMap.js +321 -0
- package/dist/DataMap.js.map +1 -0
- package/dist/Logger.d.ts +91 -0
- package/dist/Logger.js +191 -0
- package/dist/Logger.js.map +1 -0
- package/dist/PomBuilder.d.ts +144 -0
- package/dist/PomBuilder.js +249 -0
- package/dist/PomBuilder.js.map +1 -0
- package/dist/PromptManager.d.ts +85 -0
- package/dist/PromptManager.js +108 -0
- package/dist/PromptManager.js.map +1 -0
- package/dist/SchemaUtils.d.ts +42 -0
- package/dist/SchemaUtils.js +148 -0
- package/dist/SchemaUtils.js.map +1 -0
- package/dist/ServerlessAdapter.d.ts +100 -0
- package/dist/ServerlessAdapter.js +166 -0
- package/dist/ServerlessAdapter.js.map +1 -0
- package/dist/SessionManager.d.ts +86 -0
- package/dist/SessionManager.js +155 -0
- package/dist/SessionManager.js.map +1 -0
- package/dist/SslConfig.d.ts +77 -0
- package/dist/SslConfig.js +100 -0
- package/dist/SslConfig.js.map +1 -0
- package/dist/SwaigFunction.d.ts +88 -0
- package/dist/SwaigFunction.js +125 -0
- package/dist/SwaigFunction.js.map +1 -0
- package/dist/SwaigFunctionResult.d.ts +442 -0
- package/dist/SwaigFunctionResult.js +735 -0
- package/dist/SwaigFunctionResult.js.map +1 -0
- package/dist/SwmlBuilder.d.ts +37 -0
- package/dist/SwmlBuilder.js +55 -0
- package/dist/SwmlBuilder.js.map +1 -0
- package/dist/cli/agent-loader.d.ts +22 -0
- package/dist/cli/agent-loader.js +106 -0
- package/dist/cli/agent-loader.js.map +1 -0
- package/dist/cli/mock-data.d.ts +37 -0
- package/dist/cli/mock-data.js +79 -0
- package/dist/cli/mock-data.js.map +1 -0
- package/dist/cli/swaig-test.d.ts +32 -0
- package/dist/cli/swaig-test.js +405 -0
- package/dist/cli/swaig-test.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/prefabs/ConciergeAgent.d.ts +64 -0
- package/dist/prefabs/ConciergeAgent.js +188 -0
- package/dist/prefabs/ConciergeAgent.js.map +1 -0
- package/dist/prefabs/FAQBotAgent.d.ts +68 -0
- package/dist/prefabs/FAQBotAgent.js +206 -0
- package/dist/prefabs/FAQBotAgent.js.map +1 -0
- package/dist/prefabs/InfoGathererAgent.d.ts +73 -0
- package/dist/prefabs/InfoGathererAgent.js +202 -0
- package/dist/prefabs/InfoGathererAgent.js.map +1 -0
- package/dist/prefabs/ReceptionistAgent.d.ts +65 -0
- package/dist/prefabs/ReceptionistAgent.js +205 -0
- package/dist/prefabs/ReceptionistAgent.js.map +1 -0
- package/dist/prefabs/SurveyAgent.d.ts +84 -0
- package/dist/prefabs/SurveyAgent.js +324 -0
- package/dist/prefabs/SurveyAgent.js.map +1 -0
- package/dist/prefabs/index.d.ts +13 -0
- package/dist/prefabs/index.js +14 -0
- package/dist/prefabs/index.js.map +1 -0
- package/dist/skills/SkillBase.d.ts +134 -0
- package/dist/skills/SkillBase.js +105 -0
- package/dist/skills/SkillBase.js.map +1 -0
- package/dist/skills/SkillManager.d.ts +83 -0
- package/dist/skills/SkillManager.js +159 -0
- package/dist/skills/SkillManager.js.map +1 -0
- package/dist/skills/SkillRegistry.d.ts +105 -0
- package/dist/skills/SkillRegistry.js +195 -0
- package/dist/skills/SkillRegistry.js.map +1 -0
- package/dist/skills/builtin/api_ninjas_trivia.d.ts +35 -0
- package/dist/skills/builtin/api_ninjas_trivia.js +161 -0
- package/dist/skills/builtin/api_ninjas_trivia.js.map +1 -0
- package/dist/skills/builtin/claude_skills.d.ts +34 -0
- package/dist/skills/builtin/claude_skills.js +156 -0
- package/dist/skills/builtin/claude_skills.js.map +1 -0
- package/dist/skills/builtin/custom_skills.d.ts +59 -0
- package/dist/skills/builtin/custom_skills.js +231 -0
- package/dist/skills/builtin/custom_skills.js.map +1 -0
- package/dist/skills/builtin/datasphere.d.ts +34 -0
- package/dist/skills/builtin/datasphere.js +163 -0
- package/dist/skills/builtin/datasphere.js.map +1 -0
- package/dist/skills/builtin/datasphere_serverless.d.ts +54 -0
- package/dist/skills/builtin/datasphere_serverless.js +155 -0
- package/dist/skills/builtin/datasphere_serverless.js.map +1 -0
- package/dist/skills/builtin/datetime.d.ts +31 -0
- package/dist/skills/builtin/datetime.js +95 -0
- package/dist/skills/builtin/datetime.js.map +1 -0
- package/dist/skills/builtin/google_maps.d.ts +33 -0
- package/dist/skills/builtin/google_maps.js +233 -0
- package/dist/skills/builtin/google_maps.js.map +1 -0
- package/dist/skills/builtin/index.d.ts +28 -0
- package/dist/skills/builtin/index.js +75 -0
- package/dist/skills/builtin/index.js.map +1 -0
- package/dist/skills/builtin/info_gatherer.d.ts +52 -0
- package/dist/skills/builtin/info_gatherer.js +237 -0
- package/dist/skills/builtin/info_gatherer.js.map +1 -0
- package/dist/skills/builtin/joke.d.ts +32 -0
- package/dist/skills/builtin/joke.js +142 -0
- package/dist/skills/builtin/joke.js.map +1 -0
- package/dist/skills/builtin/math.d.ts +33 -0
- package/dist/skills/builtin/math.js +120 -0
- package/dist/skills/builtin/math.js.map +1 -0
- package/dist/skills/builtin/mcp_gateway.d.ts +35 -0
- package/dist/skills/builtin/mcp_gateway.js +85 -0
- package/dist/skills/builtin/mcp_gateway.js.map +1 -0
- package/dist/skills/builtin/native_vector_search.d.ts +44 -0
- package/dist/skills/builtin/native_vector_search.js +248 -0
- package/dist/skills/builtin/native_vector_search.js.map +1 -0
- package/dist/skills/builtin/play_background_file.d.ts +34 -0
- package/dist/skills/builtin/play_background_file.js +135 -0
- package/dist/skills/builtin/play_background_file.js.map +1 -0
- package/dist/skills/builtin/spider.d.ts +34 -0
- package/dist/skills/builtin/spider.js +164 -0
- package/dist/skills/builtin/spider.js.map +1 -0
- package/dist/skills/builtin/swml_transfer.d.ts +44 -0
- package/dist/skills/builtin/swml_transfer.js +204 -0
- package/dist/skills/builtin/swml_transfer.js.map +1 -0
- package/dist/skills/builtin/weather_api.d.ts +34 -0
- package/dist/skills/builtin/weather_api.js +136 -0
- package/dist/skills/builtin/weather_api.js.map +1 -0
- package/dist/skills/builtin/web_search.d.ts +34 -0
- package/dist/skills/builtin/web_search.js +141 -0
- package/dist/skills/builtin/web_search.js.map +1 -0
- package/dist/skills/builtin/wikipedia_search.d.ts +34 -0
- package/dist/skills/builtin/wikipedia_search.js +166 -0
- package/dist/skills/builtin/wikipedia_search.js.map +1 -0
- package/dist/skills/index.d.ts +11 -0
- package/dist/skills/index.js +10 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/types.d.ts +85 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/docs/agent-guide.md +869 -0
- package/docs/api-reference.md +2419 -0
- package/docs/architecture.md +843 -0
- package/docs/cli-guide.md +579 -0
- package/docs/configuration.md +422 -0
- package/docs/contexts-guide.md +787 -0
- package/docs/datamap-guide.md +1141 -0
- package/docs/prefabs-guide.md +830 -0
- package/docs/security.md +436 -0
- package/docs/serverless-guide.md +513 -0
- package/docs/skills-guide.md +845 -0
- package/docs/swaig-reference.md +1627 -0
- package/examples/call-flow.ts +60 -0
- package/examples/contexts-steps.ts +62 -0
- package/examples/datamap-tools.ts +52 -0
- package/examples/dynamic-config.ts +51 -0
- package/examples/multi-agent.ts +67 -0
- package/examples/pom-prompt.ts +68 -0
- package/examples/simple-agent.ts +33 -0
- package/package.json +35 -0
- package/src/AgentBase.ts +1279 -0
- package/src/AgentServer.ts +149 -0
- package/src/AuthHandler.ts +141 -0
- package/src/ConfigLoader.ts +165 -0
- package/src/ContextBuilder.ts +796 -0
- package/src/DataMap.ts +365 -0
- package/src/Logger.ts +197 -0
- package/src/PomBuilder.ts +298 -0
- package/src/PromptManager.ts +133 -0
- package/src/SchemaUtils.ts +170 -0
- package/src/ServerlessAdapter.ts +218 -0
- package/src/SessionManager.ts +161 -0
- package/src/SslConfig.ts +118 -0
- package/src/SwaigFunction.ts +168 -0
- package/src/SwaigFunctionResult.ts +864 -0
- package/src/SwmlBuilder.ts +62 -0
- package/src/cli/agent-loader.ts +122 -0
- package/src/cli/mock-data.ts +110 -0
- package/src/cli/swaig-test.ts +440 -0
- package/src/index.ts +99 -0
- package/src/prefabs/ConciergeAgent.ts +251 -0
- package/src/prefabs/FAQBotAgent.ts +263 -0
- package/src/prefabs/InfoGathererAgent.ts +276 -0
- package/src/prefabs/ReceptionistAgent.ts +277 -0
- package/src/prefabs/SurveyAgent.ts +413 -0
- package/src/prefabs/index.ts +23 -0
- package/src/skills/SkillBase.ts +184 -0
- package/src/skills/SkillManager.ts +177 -0
- package/src/skills/SkillRegistry.ts +231 -0
- package/src/skills/builtin/api_ninjas_trivia.ts +230 -0
- package/src/skills/builtin/claude_skills.ts +239 -0
- package/src/skills/builtin/custom_skills.ts +326 -0
- package/src/skills/builtin/datasphere.ts +225 -0
- package/src/skills/builtin/datasphere_serverless.ts +194 -0
- package/src/skills/builtin/datetime.ts +115 -0
- package/src/skills/builtin/google_maps.ts +347 -0
- package/src/skills/builtin/index.ts +79 -0
- package/src/skills/builtin/info_gatherer.ts +331 -0
- package/src/skills/builtin/joke.ts +180 -0
- package/src/skills/builtin/math.ts +150 -0
- package/src/skills/builtin/mcp_gateway.ts +99 -0
- package/src/skills/builtin/native_vector_search.ts +327 -0
- package/src/skills/builtin/play_background_file.ts +189 -0
- package/src/skills/builtin/spider.ts +232 -0
- package/src/skills/builtin/swml_transfer.ts +285 -0
- package/src/skills/builtin/weather_api.ts +193 -0
- package/src/skills/builtin/web_search.ts +212 -0
- package/src/skills/builtin/wikipedia_search.ts +248 -0
- package/src/skills/index.ts +12 -0
- package/src/types.ts +99 -0
- package/tests/AgentBase.test.ts +693 -0
- package/tests/AgentServer.test.ts +102 -0
- package/tests/AuthHandler.test.ts +121 -0
- package/tests/ConfigLoader.test.ts +121 -0
- package/tests/DataMap.test.ts +286 -0
- package/tests/Logger.test.ts +218 -0
- package/tests/PomBuilder.test.ts +164 -0
- package/tests/ProxyDetection.test.ts +185 -0
- package/tests/SchemaUtils.test.ts +106 -0
- package/tests/ServerlessAdapter.test.ts +200 -0
- package/tests/SessionManager.test.ts +139 -0
- package/tests/SslConfig.test.ts +97 -0
- package/tests/SwaigFunctionResult.test.ts +298 -0
- package/tests/cli/mock-data.test.ts +94 -0
- package/tests/cli/swaig-test.test.ts +96 -0
- package/tests/prefabs/prefabs.test.ts +854 -0
- package/tests/setup.ts +6 -0
- package/tests/skills/SkillBase.test.ts +118 -0
- package/tests/skills/SkillManager.test.ts +164 -0
- package/tests/skills/SkillRegistry.test.ts +124 -0
- package/tests/skills/builtin.test.ts +924 -0
- package/tsconfig.json +18 -0
- package/vitest.config.ts +9 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wikipedia Search Skill - Searches Wikipedia for article summaries.
|
|
3
|
+
*
|
|
4
|
+
* Tier 3 built-in skill: no external API key required.
|
|
5
|
+
* Uses the Wikipedia REST API to fetch article summaries and extracts
|
|
6
|
+
* for any given topic.
|
|
7
|
+
*/
|
|
8
|
+
import { SkillBase } from '../SkillBase.js';
|
|
9
|
+
import type { SkillManifest, SkillToolDefinition, SkillPromptSection, SkillConfig } from '../SkillBase.js';
|
|
10
|
+
/**
|
|
11
|
+
* Searches Wikipedia for article summaries and extracts.
|
|
12
|
+
*
|
|
13
|
+
* Tier 3 built-in skill with no external API key required. Uses the Wikipedia
|
|
14
|
+
* REST API to fetch article summaries for any given topic, with a configurable
|
|
15
|
+
* number of sentences.
|
|
16
|
+
*/
|
|
17
|
+
export declare class WikipediaSearchSkill extends SkillBase {
|
|
18
|
+
/**
|
|
19
|
+
* @param config - Optional configuration (no config keys used by this skill).
|
|
20
|
+
*/
|
|
21
|
+
constructor(config?: SkillConfig);
|
|
22
|
+
/** @returns Manifest with skill metadata (no required env vars). */
|
|
23
|
+
getManifest(): SkillManifest;
|
|
24
|
+
/** @returns A single `search_wikipedia` tool that fetches article summaries from Wikipedia. */
|
|
25
|
+
getTools(): SkillToolDefinition[];
|
|
26
|
+
/** @returns Prompt section describing Wikipedia search capabilities and usage guidance. */
|
|
27
|
+
getPromptSections(): SkillPromptSection[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Factory function for creating WikipediaSearchSkill instances.
|
|
31
|
+
* @param config - Optional skill configuration.
|
|
32
|
+
* @returns A new WikipediaSearchSkill instance.
|
|
33
|
+
*/
|
|
34
|
+
export declare function createSkill(config?: SkillConfig): WikipediaSearchSkill;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wikipedia Search Skill - Searches Wikipedia for article summaries.
|
|
3
|
+
*
|
|
4
|
+
* Tier 3 built-in skill: no external API key required.
|
|
5
|
+
* Uses the Wikipedia REST API to fetch article summaries and extracts
|
|
6
|
+
* for any given topic.
|
|
7
|
+
*/
|
|
8
|
+
import { SkillBase } from '../SkillBase.js';
|
|
9
|
+
import { SwaigFunctionResult } from '../../SwaigFunctionResult.js';
|
|
10
|
+
/**
|
|
11
|
+
* Searches Wikipedia for article summaries and extracts.
|
|
12
|
+
*
|
|
13
|
+
* Tier 3 built-in skill with no external API key required. Uses the Wikipedia
|
|
14
|
+
* REST API to fetch article summaries for any given topic, with a configurable
|
|
15
|
+
* number of sentences.
|
|
16
|
+
*/
|
|
17
|
+
export class WikipediaSearchSkill extends SkillBase {
|
|
18
|
+
/**
|
|
19
|
+
* @param config - Optional configuration (no config keys used by this skill).
|
|
20
|
+
*/
|
|
21
|
+
constructor(config) {
|
|
22
|
+
super('wikipedia_search', config);
|
|
23
|
+
}
|
|
24
|
+
/** @returns Manifest with skill metadata (no required env vars). */
|
|
25
|
+
getManifest() {
|
|
26
|
+
return {
|
|
27
|
+
name: 'wikipedia_search',
|
|
28
|
+
description: 'Searches Wikipedia for article summaries and extracts. No API key required.',
|
|
29
|
+
version: '1.0.0',
|
|
30
|
+
author: 'SignalWire',
|
|
31
|
+
tags: ['search', 'wikipedia', 'encyclopedia', 'knowledge', 'external'],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** @returns A single `search_wikipedia` tool that fetches article summaries from Wikipedia. */
|
|
35
|
+
getTools() {
|
|
36
|
+
return [
|
|
37
|
+
{
|
|
38
|
+
name: 'search_wikipedia',
|
|
39
|
+
description: 'Search Wikipedia for information about a topic. Returns a summary of the most relevant article.',
|
|
40
|
+
parameters: {
|
|
41
|
+
query: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'The topic or term to search for on Wikipedia.',
|
|
44
|
+
},
|
|
45
|
+
sentences: {
|
|
46
|
+
type: 'number',
|
|
47
|
+
description: 'Number of sentences to return in the summary (1-10). Defaults to 3.',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
required: ['query'],
|
|
51
|
+
handler: async (args) => {
|
|
52
|
+
const query = args.query;
|
|
53
|
+
const sentences = args.sentences;
|
|
54
|
+
if (!query || typeof query !== 'string' || query.trim().length === 0) {
|
|
55
|
+
return new SwaigFunctionResult('Please provide a topic to search for on Wikipedia.');
|
|
56
|
+
}
|
|
57
|
+
const sentenceCount = Math.max(1, Math.min(10, sentences ?? 3));
|
|
58
|
+
try {
|
|
59
|
+
// First, try a direct page summary lookup
|
|
60
|
+
const encodedQuery = encodeURIComponent(query.trim().replace(/\s+/g, '_'));
|
|
61
|
+
const summaryUrl = `https://en.wikipedia.org/api/rest_v1/page/summary/${encodedQuery}`;
|
|
62
|
+
const summaryResponse = await fetch(summaryUrl, {
|
|
63
|
+
headers: { 'Accept': 'application/json', 'User-Agent': 'SignalWireAgentsSDK/1.0' },
|
|
64
|
+
});
|
|
65
|
+
if (summaryResponse.ok) {
|
|
66
|
+
const data = (await summaryResponse.json());
|
|
67
|
+
if (data.type !== 'disambiguation' && data.extract) {
|
|
68
|
+
const extractSentences = data.extract.split(/(?<=[.!?])\s+/);
|
|
69
|
+
const trimmedExtract = extractSentences
|
|
70
|
+
.slice(0, sentenceCount)
|
|
71
|
+
.join(' ')
|
|
72
|
+
.trim();
|
|
73
|
+
const pageUrl = data.content_urls?.desktop?.page ?? '';
|
|
74
|
+
const parts = [
|
|
75
|
+
`Wikipedia: ${data.title}`,
|
|
76
|
+
];
|
|
77
|
+
if (data.description) {
|
|
78
|
+
parts.push(`(${data.description})`);
|
|
79
|
+
}
|
|
80
|
+
parts.push('');
|
|
81
|
+
parts.push(trimmedExtract);
|
|
82
|
+
if (pageUrl) {
|
|
83
|
+
parts.push('');
|
|
84
|
+
parts.push(`Read more: ${pageUrl}`);
|
|
85
|
+
}
|
|
86
|
+
return new SwaigFunctionResult(parts.join('\n').trim());
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// If direct lookup failed, use the search API
|
|
90
|
+
const searchUrl = `https://en.wikipedia.org/w/rest.php/v1/search/page?q=${encodeURIComponent(query.trim())}&limit=1`;
|
|
91
|
+
const searchResponse = await fetch(searchUrl, {
|
|
92
|
+
headers: { 'Accept': 'application/json', 'User-Agent': 'SignalWireAgentsSDK/1.0' },
|
|
93
|
+
});
|
|
94
|
+
if (!searchResponse.ok) {
|
|
95
|
+
return new SwaigFunctionResult(`Wikipedia search failed with status ${searchResponse.status}. Please try a different search term.`);
|
|
96
|
+
}
|
|
97
|
+
const searchData = (await searchResponse.json());
|
|
98
|
+
if (!searchData.pages || searchData.pages.length === 0) {
|
|
99
|
+
return new SwaigFunctionResult(`No Wikipedia article found for "${query}". Try a different search term.`);
|
|
100
|
+
}
|
|
101
|
+
// Fetch the summary for the best match
|
|
102
|
+
const bestMatch = searchData.pages[0];
|
|
103
|
+
const matchUrl = `https://en.wikipedia.org/api/rest_v1/page/summary/${encodeURIComponent(bestMatch.key)}`;
|
|
104
|
+
const matchResponse = await fetch(matchUrl, {
|
|
105
|
+
headers: { 'Accept': 'application/json', 'User-Agent': 'SignalWireAgentsSDK/1.0' },
|
|
106
|
+
});
|
|
107
|
+
if (!matchResponse.ok) {
|
|
108
|
+
// Fall back to the search excerpt
|
|
109
|
+
const excerpt = bestMatch.excerpt
|
|
110
|
+
? bestMatch.excerpt.replace(/<[^>]*>/g, '').trim()
|
|
111
|
+
: 'No summary available.';
|
|
112
|
+
return new SwaigFunctionResult(`Wikipedia: ${bestMatch.title}\n\n${excerpt}`);
|
|
113
|
+
}
|
|
114
|
+
const matchData = (await matchResponse.json());
|
|
115
|
+
const extractSentences = matchData.extract.split(/(?<=[.!?])\s+/);
|
|
116
|
+
const trimmedExtract = extractSentences
|
|
117
|
+
.slice(0, sentenceCount)
|
|
118
|
+
.join(' ')
|
|
119
|
+
.trim();
|
|
120
|
+
const pageUrl = matchData.content_urls?.desktop?.page ?? '';
|
|
121
|
+
const parts = [`Wikipedia: ${matchData.title}`];
|
|
122
|
+
if (matchData.description) {
|
|
123
|
+
parts.push(`(${matchData.description})`);
|
|
124
|
+
}
|
|
125
|
+
parts.push('');
|
|
126
|
+
parts.push(trimmedExtract);
|
|
127
|
+
if (pageUrl) {
|
|
128
|
+
parts.push('');
|
|
129
|
+
parts.push(`Read more: ${pageUrl}`);
|
|
130
|
+
}
|
|
131
|
+
return new SwaigFunctionResult(parts.join('\n').trim());
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
135
|
+
return new SwaigFunctionResult(`Failed to search Wikipedia for "${query}": ${message}`);
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
/** @returns Prompt section describing Wikipedia search capabilities and usage guidance. */
|
|
142
|
+
getPromptSections() {
|
|
143
|
+
return [
|
|
144
|
+
{
|
|
145
|
+
title: 'Wikipedia Search',
|
|
146
|
+
body: 'You can search Wikipedia for information about any topic.',
|
|
147
|
+
bullets: [
|
|
148
|
+
'Use the search_wikipedia tool when the user asks about a specific topic, person, place, or concept.',
|
|
149
|
+
'Wikipedia provides encyclopedic summaries that are generally reliable for factual information.',
|
|
150
|
+
'You can specify the number of sentences to return (1-10) for shorter or more detailed summaries.',
|
|
151
|
+
'If a search returns no results, try rephrasing with the most common name or spelling.',
|
|
152
|
+
'Summarize the information naturally rather than reading it verbatim.',
|
|
153
|
+
],
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Factory function for creating WikipediaSearchSkill instances.
|
|
160
|
+
* @param config - Optional skill configuration.
|
|
161
|
+
* @returns A new WikipediaSearchSkill instance.
|
|
162
|
+
*/
|
|
163
|
+
export function createSkill(config) {
|
|
164
|
+
return new WikipediaSearchSkill(config);
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=wikipedia_search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wikipedia_search.js","sourceRoot":"","sources":["../../../src/skills/builtin/wikipedia_search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills framework for SignalWire AI Agents.
|
|
3
|
+
*
|
|
4
|
+
* Exports the base class, manager, registry, and all associated types
|
|
5
|
+
* needed to create, register, and manage agent skills.
|
|
6
|
+
*/
|
|
7
|
+
export { SkillBase } from './SkillBase.js';
|
|
8
|
+
export type { SkillConfig, SkillToolDefinition, SkillPromptSection, SkillManifest } from './SkillBase.js';
|
|
9
|
+
export { SkillManager } from './SkillManager.js';
|
|
10
|
+
export { SkillRegistry } from './SkillRegistry.js';
|
|
11
|
+
export type { SkillFactory } from './SkillRegistry.js';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills framework for SignalWire AI Agents.
|
|
3
|
+
*
|
|
4
|
+
* Exports the base class, manager, registry, and all associated types
|
|
5
|
+
* needed to create, register, and manage agent skills.
|
|
6
|
+
*/
|
|
7
|
+
export { SkillBase } from './SkillBase.js';
|
|
8
|
+
export { SkillManager } from './SkillManager.js';
|
|
9
|
+
export { SkillRegistry } from './SkillRegistry.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared type definitions for SignalWire AI Agents SDK.
|
|
3
|
+
*/
|
|
4
|
+
/** Configuration options for constructing an AgentBase instance. */
|
|
5
|
+
export interface AgentOptions {
|
|
6
|
+
/** Display name of the agent, also used as default basic-auth username when credentials are auto-generated. */
|
|
7
|
+
name: string;
|
|
8
|
+
/** HTTP route path the agent listens on (defaults to "/"). */
|
|
9
|
+
route?: string;
|
|
10
|
+
/** Hostname to bind the HTTP server to (defaults to "0.0.0.0"). */
|
|
11
|
+
host?: string;
|
|
12
|
+
/** Port number for the HTTP server (defaults to env PORT or 3000). */
|
|
13
|
+
port?: number;
|
|
14
|
+
/** Explicit basic-auth credentials as [username, password]; auto-generated if omitted. */
|
|
15
|
+
basicAuth?: [string, string];
|
|
16
|
+
/** Whether to use POM-based prompt rendering (defaults to true). */
|
|
17
|
+
usePom?: boolean;
|
|
18
|
+
/** Session token expiry in seconds (defaults to 3600). */
|
|
19
|
+
tokenExpirySecs?: number;
|
|
20
|
+
/** Whether to automatically insert an "answer" verb in the SWML call flow (defaults to true). */
|
|
21
|
+
autoAnswer?: boolean;
|
|
22
|
+
/** Whether to record the call (defaults to false). */
|
|
23
|
+
recordCall?: boolean;
|
|
24
|
+
/** Recording format, e.g. "mp4" (defaults to "mp4"). */
|
|
25
|
+
recordFormat?: string;
|
|
26
|
+
/** Whether to record in stereo (defaults to true). */
|
|
27
|
+
recordStereo?: boolean;
|
|
28
|
+
/** Default webhook URL for SWAIG function callbacks. */
|
|
29
|
+
defaultWebhookUrl?: string;
|
|
30
|
+
/** List of native function names to include in the SWAIG configuration. */
|
|
31
|
+
nativeFunctions?: string[];
|
|
32
|
+
/** Unique identifier for this agent instance; auto-generated if omitted. */
|
|
33
|
+
agentId?: string;
|
|
34
|
+
/** When true, suppresses all log output. */
|
|
35
|
+
suppressLogs?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/** Configuration for a supported language in the AI agent. */
|
|
38
|
+
export interface LanguageConfig {
|
|
39
|
+
/** Human-readable language name (e.g. "English"). */
|
|
40
|
+
name: string;
|
|
41
|
+
/** BCP-47 language code (e.g. "en-US"). */
|
|
42
|
+
code: string;
|
|
43
|
+
/** Voice identifier to use for this language. */
|
|
44
|
+
voice?: string;
|
|
45
|
+
/** TTS engine identifier. */
|
|
46
|
+
engine?: string;
|
|
47
|
+
/** Filler phrases keyed by category for this language. */
|
|
48
|
+
fillers?: Record<string, string[]>;
|
|
49
|
+
/** Speech recognition model identifier. */
|
|
50
|
+
speechModel?: string;
|
|
51
|
+
/** Per-function filler phrases, keyed by function name then language code. */
|
|
52
|
+
functionFillers?: Record<string, Record<string, string[]>>;
|
|
53
|
+
}
|
|
54
|
+
/** Rule for overriding how the TTS engine pronounces a specific word or phrase. */
|
|
55
|
+
export interface PronunciationRule {
|
|
56
|
+
/** The text pattern to match. */
|
|
57
|
+
replace: string;
|
|
58
|
+
/** The replacement pronunciation. */
|
|
59
|
+
with: string;
|
|
60
|
+
/** Whether the match should be case-insensitive. */
|
|
61
|
+
ignoreCase?: boolean;
|
|
62
|
+
}
|
|
63
|
+
/** Reference to an external SWAIG function endpoint to include in the AI configuration. */
|
|
64
|
+
export interface FunctionInclude {
|
|
65
|
+
/** URL of the remote SWAIG endpoint. */
|
|
66
|
+
url: string;
|
|
67
|
+
/** List of function names available at the remote endpoint. */
|
|
68
|
+
functions: string[];
|
|
69
|
+
/** Optional metadata to pass along with the include. */
|
|
70
|
+
meta_data?: Record<string, unknown>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Callback invoked on each SWML request to dynamically modify an ephemeral copy of the agent.
|
|
74
|
+
* @param queryParams - URL query parameters from the incoming request.
|
|
75
|
+
* @param bodyParams - Parsed JSON body of the incoming request.
|
|
76
|
+
* @param headers - HTTP headers from the incoming request.
|
|
77
|
+
* @param agent - Ephemeral AgentBase copy that can be mutated without affecting the original.
|
|
78
|
+
*/
|
|
79
|
+
export type DynamicConfigCallback = (queryParams: Record<string, string>, bodyParams: Record<string, unknown>, headers: Record<string, string>, agent: unknown) => void | Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Callback invoked when a post-prompt summary is received at the end of a call.
|
|
82
|
+
* @param summary - Parsed summary object, or null if extraction failed.
|
|
83
|
+
* @param rawData - The full raw post-prompt payload.
|
|
84
|
+
*/
|
|
85
|
+
export type SummaryCallback = (summary: Record<string, unknown> | null, rawData: Record<string, unknown>) => void | Promise<void>;
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|