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 @@
|
|
|
1
|
+
{"version":3,"file":"AgentBase.js","sourceRoot":"","sources":["../src/AgentBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentServer - Hosts multiple AgentBase instances under a single HTTP server.
|
|
3
|
+
*
|
|
4
|
+
* Each agent is mounted at its own route prefix. The root `/` lists all
|
|
5
|
+
* registered agents, and `/health` + `/ready` are global health checks.
|
|
6
|
+
*/
|
|
7
|
+
import { Hono } from 'hono';
|
|
8
|
+
import { AgentBase } from './AgentBase.js';
|
|
9
|
+
/** Multi-agent HTTP server that hosts multiple AgentBase instances on distinct route prefixes. */
|
|
10
|
+
export declare class AgentServer {
|
|
11
|
+
/** Hostname the server binds to. */
|
|
12
|
+
host: string;
|
|
13
|
+
/** Port the server listens on. */
|
|
14
|
+
port: number;
|
|
15
|
+
private agents;
|
|
16
|
+
private _app;
|
|
17
|
+
private log;
|
|
18
|
+
/**
|
|
19
|
+
* Create an AgentServer.
|
|
20
|
+
* @param opts - Optional host and port overrides; defaults to 0.0.0.0:3000.
|
|
21
|
+
*/
|
|
22
|
+
constructor(opts?: {
|
|
23
|
+
host?: string;
|
|
24
|
+
port?: number;
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* Register an agent at the given route prefix.
|
|
28
|
+
* @param agent - The AgentBase instance to mount.
|
|
29
|
+
* @param route - Route prefix; defaults to the agent's own route or '/'.
|
|
30
|
+
* @throws If the route is already occupied by another agent.
|
|
31
|
+
*/
|
|
32
|
+
register(agent: AgentBase, route?: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Remove an agent registration by route.
|
|
35
|
+
* @param route - The route prefix to unregister.
|
|
36
|
+
*/
|
|
37
|
+
unregister(route: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get all registered agents keyed by their route prefix.
|
|
40
|
+
* @returns A map of route prefixes to AgentBase instances.
|
|
41
|
+
*/
|
|
42
|
+
getAgents(): Map<string, AgentBase>;
|
|
43
|
+
/**
|
|
44
|
+
* Look up a registered agent by its route prefix.
|
|
45
|
+
* @param route - The route prefix to look up.
|
|
46
|
+
* @returns The agent at that route, or undefined if none is registered.
|
|
47
|
+
*/
|
|
48
|
+
getAgent(route: string): AgentBase | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Build and return the Hono application with all registered agents and a root listing endpoint.
|
|
51
|
+
* @returns The fully configured Hono app.
|
|
52
|
+
*/
|
|
53
|
+
getApp(): Hono;
|
|
54
|
+
/**
|
|
55
|
+
* Start the HTTP server and begin listening for requests.
|
|
56
|
+
* @param host - Override the configured hostname.
|
|
57
|
+
* @param port - Override the configured port.
|
|
58
|
+
*/
|
|
59
|
+
run(host?: string, port?: number): Promise<void>;
|
|
60
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentServer - Hosts multiple AgentBase instances under a single HTTP server.
|
|
3
|
+
*
|
|
4
|
+
* Each agent is mounted at its own route prefix. The root `/` lists all
|
|
5
|
+
* registered agents, and `/health` + `/ready` are global health checks.
|
|
6
|
+
*/
|
|
7
|
+
import { Hono } from 'hono';
|
|
8
|
+
import { cors } from 'hono/cors';
|
|
9
|
+
import { getLogger } from './Logger.js';
|
|
10
|
+
/** Multi-agent HTTP server that hosts multiple AgentBase instances on distinct route prefixes. */
|
|
11
|
+
export class AgentServer {
|
|
12
|
+
/** Hostname the server binds to. */
|
|
13
|
+
host;
|
|
14
|
+
/** Port the server listens on. */
|
|
15
|
+
port;
|
|
16
|
+
agents = new Map();
|
|
17
|
+
_app;
|
|
18
|
+
log = getLogger('AgentServer');
|
|
19
|
+
/**
|
|
20
|
+
* Create an AgentServer.
|
|
21
|
+
* @param opts - Optional host and port overrides; defaults to 0.0.0.0:3000.
|
|
22
|
+
*/
|
|
23
|
+
constructor(opts) {
|
|
24
|
+
this.host = opts?.host ?? '0.0.0.0';
|
|
25
|
+
this.port = opts?.port ?? parseInt(process.env['PORT'] ?? '3000', 10);
|
|
26
|
+
this._app = new Hono();
|
|
27
|
+
// Security headers
|
|
28
|
+
this._app.use('*', async (c, next) => {
|
|
29
|
+
await next();
|
|
30
|
+
c.res.headers.set('X-Content-Type-Options', 'nosniff');
|
|
31
|
+
c.res.headers.set('X-Frame-Options', 'DENY');
|
|
32
|
+
c.res.headers.set('X-XSS-Protection', '1; mode=block');
|
|
33
|
+
c.res.headers.set('Referrer-Policy', 'strict-origin-when-cross-origin');
|
|
34
|
+
});
|
|
35
|
+
// CORS
|
|
36
|
+
this._app.use('*', cors({ origin: '*', credentials: true }));
|
|
37
|
+
// Global health endpoints
|
|
38
|
+
this._app.get('/health', (c) => c.json({ status: 'ok' }));
|
|
39
|
+
this._app.get('/ready', (c) => c.json({ status: 'ready' }));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Register an agent at the given route prefix.
|
|
43
|
+
* @param agent - The AgentBase instance to mount.
|
|
44
|
+
* @param route - Route prefix; defaults to the agent's own route or '/'.
|
|
45
|
+
* @throws If the route is already occupied by another agent.
|
|
46
|
+
*/
|
|
47
|
+
register(agent, route) {
|
|
48
|
+
let r = route ?? agent.route ?? '/';
|
|
49
|
+
if (!r.startsWith('/'))
|
|
50
|
+
r = `/${r}`;
|
|
51
|
+
r = r.replace(/\/+$/, '') || '/';
|
|
52
|
+
if (this.agents.has(r)) {
|
|
53
|
+
throw new Error(`Route '${r}' is already in use`);
|
|
54
|
+
}
|
|
55
|
+
this.agents.set(r, agent);
|
|
56
|
+
// Mount the agent's Hono app at the route prefix
|
|
57
|
+
const agentApp = agent.getApp();
|
|
58
|
+
if (r === '/') {
|
|
59
|
+
this._app.route('/', agentApp);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this._app.route(r, agentApp);
|
|
63
|
+
}
|
|
64
|
+
this.log.info(`Registered '${agent.name}' at ${r}`);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Remove an agent registration by route.
|
|
68
|
+
* @param route - The route prefix to unregister.
|
|
69
|
+
*/
|
|
70
|
+
unregister(route) {
|
|
71
|
+
this.agents.delete(route);
|
|
72
|
+
// Note: Hono doesn't support dynamic route removal,
|
|
73
|
+
// but the agent won't be listed anymore
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get all registered agents keyed by their route prefix.
|
|
77
|
+
* @returns A map of route prefixes to AgentBase instances.
|
|
78
|
+
*/
|
|
79
|
+
getAgents() {
|
|
80
|
+
return this.agents;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Look up a registered agent by its route prefix.
|
|
84
|
+
* @param route - The route prefix to look up.
|
|
85
|
+
* @returns The agent at that route, or undefined if none is registered.
|
|
86
|
+
*/
|
|
87
|
+
getAgent(route) {
|
|
88
|
+
return this.agents.get(route);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Build and return the Hono application with all registered agents and a root listing endpoint.
|
|
92
|
+
* @returns The fully configured Hono app.
|
|
93
|
+
*/
|
|
94
|
+
getApp() {
|
|
95
|
+
// Add root listing (registered after agents so it doesn't shadow them)
|
|
96
|
+
const listing = [...this.agents.entries()].map(([route, agent]) => ({
|
|
97
|
+
name: agent.name,
|
|
98
|
+
route,
|
|
99
|
+
}));
|
|
100
|
+
// We create a response for the root that lists agents
|
|
101
|
+
// Only if no agent is mounted at /
|
|
102
|
+
if (!this.agents.has('/')) {
|
|
103
|
+
this._app.get('/', (c) => c.json({
|
|
104
|
+
service: 'SignalWire AI Agents',
|
|
105
|
+
agents: listing,
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
return this._app;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Start the HTTP server and begin listening for requests.
|
|
112
|
+
* @param host - Override the configured hostname.
|
|
113
|
+
* @param port - Override the configured port.
|
|
114
|
+
*/
|
|
115
|
+
async run(host, port) {
|
|
116
|
+
const { serve } = await import('@hono/node-server');
|
|
117
|
+
const h = host ?? this.host;
|
|
118
|
+
const p = port ?? this.port;
|
|
119
|
+
const app = this.getApp();
|
|
120
|
+
this.log.info(`Starting on http://${h}:${p}`);
|
|
121
|
+
for (const [route, agent] of this.agents) {
|
|
122
|
+
const [user] = agent.getBasicAuthCredentials();
|
|
123
|
+
this.log.info(` ${route} -> ${agent.name} (auth: ${user}:****)`);
|
|
124
|
+
}
|
|
125
|
+
serve({ fetch: app.fetch, port: p, hostname: h });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=AgentServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentServer.js","sourceRoot":"","sources":["../src/AgentServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AuthHandler - Multi-method authentication handler.
|
|
3
|
+
*
|
|
4
|
+
* Supports Bearer token, API key, and Basic auth with constant-time comparison.
|
|
5
|
+
* Can be used as Hono middleware or standalone validator.
|
|
6
|
+
*/
|
|
7
|
+
/** Configuration for one or more authentication methods checked by {@link AuthHandler}. */
|
|
8
|
+
export interface AuthConfig {
|
|
9
|
+
/** Bearer token matched against the Authorization header. */
|
|
10
|
+
bearerToken?: string;
|
|
11
|
+
/** API key matched against the X-Api-Key header. */
|
|
12
|
+
apiKey?: string;
|
|
13
|
+
/** Basic auth credentials as a [username, password] tuple. */
|
|
14
|
+
basicAuth?: [string, string];
|
|
15
|
+
/** Custom validator function; return true to allow the request. */
|
|
16
|
+
customValidator?: (request: {
|
|
17
|
+
headers: Record<string, string>;
|
|
18
|
+
method: string;
|
|
19
|
+
url: string;
|
|
20
|
+
}) => boolean | Promise<boolean>;
|
|
21
|
+
}
|
|
22
|
+
/** Multi-method authentication handler with timing-safe credential comparison. */
|
|
23
|
+
export declare class AuthHandler {
|
|
24
|
+
private config;
|
|
25
|
+
/**
|
|
26
|
+
* Create a new AuthHandler.
|
|
27
|
+
* @param config - Authentication configuration specifying one or more auth methods.
|
|
28
|
+
*/
|
|
29
|
+
constructor(config: AuthConfig);
|
|
30
|
+
/**
|
|
31
|
+
* Validate request headers against configured auth methods (Bearer, API Key, Basic, Custom) in order.
|
|
32
|
+
* @param headers - The request headers as a string-keyed record.
|
|
33
|
+
* @returns True if any configured method accepts the request, or if no methods are configured.
|
|
34
|
+
*/
|
|
35
|
+
validate(headers: Record<string, string>): Promise<boolean>;
|
|
36
|
+
/**
|
|
37
|
+
* Create a Hono-compatible middleware that rejects unauthorized requests with a 401 response.
|
|
38
|
+
* @returns A middleware function suitable for use with Hono's `app.use()`.
|
|
39
|
+
*/
|
|
40
|
+
middleware(): (c: any, next: () => Promise<void>) => Promise<Response | void>;
|
|
41
|
+
/**
|
|
42
|
+
* Check whether Bearer token authentication is configured.
|
|
43
|
+
* @returns True if a bearer token has been set.
|
|
44
|
+
*/
|
|
45
|
+
hasBearerAuth(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check whether API key authentication is configured.
|
|
48
|
+
* @returns True if an API key has been set.
|
|
49
|
+
*/
|
|
50
|
+
hasApiKeyAuth(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Check whether Basic authentication is configured.
|
|
53
|
+
* @returns True if basic auth credentials have been set.
|
|
54
|
+
*/
|
|
55
|
+
hasBasicAuth(): boolean;
|
|
56
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AuthHandler - Multi-method authentication handler.
|
|
3
|
+
*
|
|
4
|
+
* Supports Bearer token, API key, and Basic auth with constant-time comparison.
|
|
5
|
+
* Can be used as Hono middleware or standalone validator.
|
|
6
|
+
*/
|
|
7
|
+
import { timingSafeEqual, randomBytes } from 'node:crypto';
|
|
8
|
+
/**
|
|
9
|
+
* Constant-time string comparison to prevent timing attacks.
|
|
10
|
+
*/
|
|
11
|
+
function safeCompare(a, b) {
|
|
12
|
+
if (a.length !== b.length) {
|
|
13
|
+
// Compare against a dummy to prevent length-based timing leaks
|
|
14
|
+
const dummy = randomBytes(a.length).toString('hex');
|
|
15
|
+
timingSafeEqual(Buffer.from(dummy), Buffer.from(dummy));
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return timingSafeEqual(Buffer.from(a), Buffer.from(b));
|
|
19
|
+
}
|
|
20
|
+
/** Multi-method authentication handler with timing-safe credential comparison. */
|
|
21
|
+
export class AuthHandler {
|
|
22
|
+
config;
|
|
23
|
+
/**
|
|
24
|
+
* Create a new AuthHandler.
|
|
25
|
+
* @param config - Authentication configuration specifying one or more auth methods.
|
|
26
|
+
*/
|
|
27
|
+
constructor(config) {
|
|
28
|
+
this.config = config;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Validate request headers against configured auth methods (Bearer, API Key, Basic, Custom) in order.
|
|
32
|
+
* @param headers - The request headers as a string-keyed record.
|
|
33
|
+
* @returns True if any configured method accepts the request, or if no methods are configured.
|
|
34
|
+
*/
|
|
35
|
+
async validate(headers) {
|
|
36
|
+
// 1. Bearer token
|
|
37
|
+
if (this.config.bearerToken) {
|
|
38
|
+
const authHeader = headers['authorization'] || headers['Authorization'] || '';
|
|
39
|
+
if (authHeader.startsWith('Bearer ')) {
|
|
40
|
+
const token = authHeader.slice(7);
|
|
41
|
+
if (safeCompare(token, this.config.bearerToken))
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// 2. API Key
|
|
46
|
+
if (this.config.apiKey) {
|
|
47
|
+
const key = headers['x-api-key'] || headers['X-Api-Key'] || '';
|
|
48
|
+
if (key && safeCompare(key, this.config.apiKey))
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
// 3. Basic auth
|
|
52
|
+
if (this.config.basicAuth) {
|
|
53
|
+
const authHeader = headers['authorization'] || headers['Authorization'] || '';
|
|
54
|
+
if (authHeader.startsWith('Basic ')) {
|
|
55
|
+
const decoded = Buffer.from(authHeader.slice(6), 'base64').toString();
|
|
56
|
+
const colonIdx = decoded.indexOf(':');
|
|
57
|
+
if (colonIdx > 0) {
|
|
58
|
+
const user = decoded.slice(0, colonIdx);
|
|
59
|
+
const pass = decoded.slice(colonIdx + 1);
|
|
60
|
+
const [expectedUser, expectedPass] = this.config.basicAuth;
|
|
61
|
+
if (safeCompare(user, expectedUser) && safeCompare(pass, expectedPass))
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// 4. Custom validator
|
|
67
|
+
if (this.config.customValidator) {
|
|
68
|
+
const result = await this.config.customValidator({
|
|
69
|
+
headers,
|
|
70
|
+
method: '',
|
|
71
|
+
url: '',
|
|
72
|
+
});
|
|
73
|
+
if (result)
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
// If no methods configured, allow (backwards compat)
|
|
77
|
+
if (!this.config.bearerToken && !this.config.apiKey && !this.config.basicAuth && !this.config.customValidator) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Create a Hono-compatible middleware that rejects unauthorized requests with a 401 response.
|
|
84
|
+
* @returns A middleware function suitable for use with Hono's `app.use()`.
|
|
85
|
+
*/
|
|
86
|
+
middleware() {
|
|
87
|
+
return async (c, next) => {
|
|
88
|
+
const headers = {};
|
|
89
|
+
c.req.raw.headers.forEach((v, k) => { headers[k] = v; });
|
|
90
|
+
const valid = await this.validate(headers);
|
|
91
|
+
if (!valid) {
|
|
92
|
+
return c.json({ error: 'Unauthorized' }, 401);
|
|
93
|
+
}
|
|
94
|
+
await next();
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check whether Bearer token authentication is configured.
|
|
99
|
+
* @returns True if a bearer token has been set.
|
|
100
|
+
*/
|
|
101
|
+
hasBearerAuth() {
|
|
102
|
+
return !!this.config.bearerToken;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check whether API key authentication is configured.
|
|
106
|
+
* @returns True if an API key has been set.
|
|
107
|
+
*/
|
|
108
|
+
hasApiKeyAuth() {
|
|
109
|
+
return !!this.config.apiKey;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Check whether Basic authentication is configured.
|
|
113
|
+
* @returns True if basic auth credentials have been set.
|
|
114
|
+
*/
|
|
115
|
+
hasBasicAuth() {
|
|
116
|
+
return !!this.config.basicAuth;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=AuthHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthHandler.js","sourceRoot":"","sources":["../src/AuthHandler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc3D;;GAEG;AACH,SAAS,WAAW,CAAC,CAAS,EAAE,CAAS;IACvC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,+DAA+D;QAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,kFAAkF;AAClF,MAAM,OAAO,WAAW;IACd,MAAM,CAAa;IAE3B;;;OAGG;IACH,YAAY,MAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA+B;QAC5C,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC9E,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,aAAa;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC/D,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC/D,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC9E,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACxC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACzC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;oBAC3D,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC;wBAAE,OAAO,IAAI,CAAC;gBACtF,CAAC;YACH,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;gBAC/C,OAAO;gBACP,MAAM,EAAE,EAAE;gBACV,GAAG,EAAE,EAAE;aACR,CAAC,CAAC;YACH,IAAI,MAAM;gBAAE,OAAO,IAAI,CAAC;QAC1B,CAAC;QAED,qDAAqD;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC9G,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,KAAK,EAAE,CAAM,EAAE,IAAyB,EAAE,EAAE;YACjD,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC;YAChD,CAAC;YACD,MAAM,IAAI,EAAE,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConfigLoader - JSON config file loader with env var interpolation.
|
|
3
|
+
*
|
|
4
|
+
* Supports ${VAR|default} syntax for env var substitution and
|
|
5
|
+
* dot-notation access for nested values.
|
|
6
|
+
*/
|
|
7
|
+
/** JSON configuration file loader with environment variable interpolation and dot-notation access. */
|
|
8
|
+
export declare class ConfigLoader {
|
|
9
|
+
private data;
|
|
10
|
+
private filePath;
|
|
11
|
+
/**
|
|
12
|
+
* Create a new ConfigLoader, optionally loading a JSON file immediately.
|
|
13
|
+
* @param filePath - Path to a JSON config file to load on construction.
|
|
14
|
+
*/
|
|
15
|
+
constructor(filePath?: string);
|
|
16
|
+
/**
|
|
17
|
+
* Load configuration from a JSON file, performing `${VAR|default}` env var interpolation on the raw text.
|
|
18
|
+
* @param filePath - Path to the JSON config file.
|
|
19
|
+
* @returns This instance for chaining.
|
|
20
|
+
*/
|
|
21
|
+
load(filePath: string): this;
|
|
22
|
+
/**
|
|
23
|
+
* Search for a config file in standard locations (CWD, `./config`, `$HOME/.signalwire`).
|
|
24
|
+
* @param filename - The config file name to search for.
|
|
25
|
+
* @returns A loaded ConfigLoader if found, or null if the file does not exist in any search path.
|
|
26
|
+
*/
|
|
27
|
+
static search(filename: string): ConfigLoader | null;
|
|
28
|
+
/**
|
|
29
|
+
* Retrieve a configuration value using a dot-notation path (e.g. `'server.port'`).
|
|
30
|
+
* @param path - Dot-separated key path into the config object.
|
|
31
|
+
* @param defaultValue - Value returned when the path does not exist.
|
|
32
|
+
* @returns The resolved value, or defaultValue if not found.
|
|
33
|
+
*/
|
|
34
|
+
get<T = unknown>(path: string, defaultValue?: T): T;
|
|
35
|
+
/**
|
|
36
|
+
* Set a configuration value at the given dot-notation path, creating intermediate objects as needed.
|
|
37
|
+
* @param path - Dot-separated key path into the config object.
|
|
38
|
+
* @param value - The value to store.
|
|
39
|
+
* @returns This instance for chaining.
|
|
40
|
+
*/
|
|
41
|
+
set(path: string, value: unknown): this;
|
|
42
|
+
/**
|
|
43
|
+
* Check whether a dot-notation path exists in the loaded configuration.
|
|
44
|
+
* @param path - Dot-separated key path to check.
|
|
45
|
+
* @returns True if the path resolves to a defined value.
|
|
46
|
+
*/
|
|
47
|
+
has(path: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Return a shallow copy of the entire configuration object.
|
|
50
|
+
* @returns A copy of the top-level config data.
|
|
51
|
+
*/
|
|
52
|
+
getAll(): Record<string, unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Return the absolute path of the loaded config file, if any.
|
|
55
|
+
* @returns The file path, or null if config was loaded from an object.
|
|
56
|
+
*/
|
|
57
|
+
getFilePath(): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Load configuration from a plain object instead of a file, useful for testing or programmatic setup.
|
|
60
|
+
* @param obj - The configuration object to use.
|
|
61
|
+
* @returns This instance for chaining.
|
|
62
|
+
*/
|
|
63
|
+
loadFromObject(obj: Record<string, unknown>): this;
|
|
64
|
+
/**
|
|
65
|
+
* Interpolate ${VAR|default} patterns in a string.
|
|
66
|
+
*/
|
|
67
|
+
private interpolateEnvVars;
|
|
68
|
+
}
|