@blackms/aistack 1.0.13 → 1.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/README.md +16 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +1 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/web.d.ts +6 -0
- package/dist/cli/commands/web.d.ts.map +1 -0
- package/dist/cli/commands/web.js +79 -0
- package/dist/cli/commands/web.js.map +1 -0
- package/dist/cli/index.js +2 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/web/index.d.ts +8 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +8 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/middleware/auth.d.ts +21 -0
- package/dist/web/middleware/auth.d.ts.map +1 -0
- package/dist/web/middleware/auth.js +31 -0
- package/dist/web/middleware/auth.js.map +1 -0
- package/dist/web/middleware/cors.d.ts +7 -0
- package/dist/web/middleware/cors.d.ts.map +1 -0
- package/dist/web/middleware/cors.js +28 -0
- package/dist/web/middleware/cors.js.map +1 -0
- package/dist/web/middleware/error.d.ts +16 -0
- package/dist/web/middleware/error.d.ts.map +1 -0
- package/dist/web/middleware/error.js +51 -0
- package/dist/web/middleware/error.js.map +1 -0
- package/dist/web/middleware/index.d.ts +7 -0
- package/dist/web/middleware/index.d.ts.map +1 -0
- package/dist/web/middleware/index.js +7 -0
- package/dist/web/middleware/index.js.map +1 -0
- package/dist/web/router.d.ts +40 -0
- package/dist/web/router.d.ts.map +1 -0
- package/dist/web/router.js +162 -0
- package/dist/web/router.js.map +1 -0
- package/dist/web/routes/agents.d.ts +7 -0
- package/dist/web/routes/agents.d.ts.map +1 -0
- package/dist/web/routes/agents.js +182 -0
- package/dist/web/routes/agents.js.map +1 -0
- package/dist/web/routes/index.d.ts +10 -0
- package/dist/web/routes/index.d.ts.map +1 -0
- package/dist/web/routes/index.js +10 -0
- package/dist/web/routes/index.js.map +1 -0
- package/dist/web/routes/memory.d.ts +7 -0
- package/dist/web/routes/memory.d.ts.map +1 -0
- package/dist/web/routes/memory.js +146 -0
- package/dist/web/routes/memory.js.map +1 -0
- package/dist/web/routes/sessions.d.ts +7 -0
- package/dist/web/routes/sessions.d.ts.map +1 -0
- package/dist/web/routes/sessions.js +75 -0
- package/dist/web/routes/sessions.js.map +1 -0
- package/dist/web/routes/system.d.ts +7 -0
- package/dist/web/routes/system.d.ts.map +1 -0
- package/dist/web/routes/system.js +147 -0
- package/dist/web/routes/system.js.map +1 -0
- package/dist/web/routes/tasks.d.ts +7 -0
- package/dist/web/routes/tasks.d.ts.map +1 -0
- package/dist/web/routes/tasks.js +188 -0
- package/dist/web/routes/tasks.js.map +1 -0
- package/dist/web/routes/workflows.d.ts +7 -0
- package/dist/web/routes/workflows.d.ts.map +1 -0
- package/dist/web/routes/workflows.js +132 -0
- package/dist/web/routes/workflows.js.map +1 -0
- package/dist/web/server.d.ts +49 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +230 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/types.d.ts +127 -0
- package/dist/web/types.d.ts.map +1 -0
- package/dist/web/types.js +5 -0
- package/dist/web/types.js.map +1 -0
- package/dist/web/websocket/event-bridge.d.ts +78 -0
- package/dist/web/websocket/event-bridge.d.ts.map +1 -0
- package/dist/web/websocket/event-bridge.js +131 -0
- package/dist/web/websocket/event-bridge.js.map +1 -0
- package/dist/web/websocket/handler.d.ts +23 -0
- package/dist/web/websocket/handler.d.ts.map +1 -0
- package/dist/web/websocket/handler.js +282 -0
- package/dist/web/websocket/handler.js.map +1 -0
- package/dist/web/websocket/index.d.ts +6 -0
- package/dist/web/websocket/index.d.ts.map +1 -0
- package/dist/web/websocket/index.js +6 -0
- package/dist/web/websocket/index.js.map +1 -0
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -367,23 +367,39 @@ export default {
|
|
|
367
367
|
| `agent list` | List active agents |
|
|
368
368
|
| `agent stop -n <name>` | Stop agent |
|
|
369
369
|
| `agent types` | Show available types |
|
|
370
|
+
| `agent status -n <name>` | Get agent status |
|
|
371
|
+
| `agent run -t <type> -p <prompt>` | Spawn and execute task |
|
|
372
|
+
| `agent exec -n <name> -p <prompt>` | Execute task with existing agent |
|
|
370
373
|
| `memory store -k <key> -c <content>` | Store entry |
|
|
371
374
|
| `memory search -q <query>` | Search memory |
|
|
372
375
|
| `memory list` | List entries |
|
|
376
|
+
| `memory delete -k <key>` | Delete entry |
|
|
373
377
|
| `mcp start` | Start MCP server |
|
|
378
|
+
| `mcp tools` | List MCP tools |
|
|
374
379
|
| `workflow run <name>` | Run workflow |
|
|
380
|
+
| `workflow list` | List workflows |
|
|
375
381
|
| `status` | System status |
|
|
376
382
|
|
|
377
383
|
---
|
|
378
384
|
|
|
379
385
|
## LLM Providers
|
|
380
386
|
|
|
387
|
+
### API Providers
|
|
381
388
|
| Provider | Default Model | Embeddings |
|
|
382
389
|
|----------|---------------|------------|
|
|
383
390
|
| **Anthropic** | claude-sonnet-4-20250514 | - |
|
|
384
391
|
| **OpenAI** | gpt-4o | text-embedding-3-small |
|
|
385
392
|
| **Ollama** | llama3.2 | nomic-embed-text |
|
|
386
393
|
|
|
394
|
+
### CLI Providers
|
|
395
|
+
| Provider | CLI Tool | Default Model |
|
|
396
|
+
|----------|----------|---------------|
|
|
397
|
+
| **Claude Code** | `claude` | sonnet |
|
|
398
|
+
| **Gemini CLI** | `gemini` | gemini-2.0-flash |
|
|
399
|
+
| **Codex** | `codex` | - |
|
|
400
|
+
|
|
401
|
+
CLI providers enable agent execution through external CLI tools, useful for interactive workflows.
|
|
402
|
+
|
|
387
403
|
---
|
|
388
404
|
|
|
389
405
|
## Project Structure
|
|
@@ -8,4 +8,5 @@ export { createMcpCommand } from './mcp.js';
|
|
|
8
8
|
export { createPluginCommand } from './plugin.js';
|
|
9
9
|
export { createStatusCommand } from './status.js';
|
|
10
10
|
export { createWorkflowCommand } from './workflow.js';
|
|
11
|
+
export { createWebCommand } from './web.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -8,4 +8,5 @@ export { createMcpCommand } from './mcp.js';
|
|
|
8
8
|
export { createPluginCommand } from './plugin.js';
|
|
9
9
|
export { createStatusCommand } from './status.js';
|
|
10
10
|
export { createWorkflowCommand } from './workflow.js';
|
|
11
|
+
export { createWebCommand } from './web.js';
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/web.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,gBAAgB,IAAI,OAAO,CA8E1C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web command - Start the web server
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { loadConfig } from '../../utils/config.js';
|
|
6
|
+
import { startWebServer, stopWebServer } from '../../web/index.js';
|
|
7
|
+
import { logger } from '../../utils/logger.js';
|
|
8
|
+
const log = logger.child('cli:web');
|
|
9
|
+
export function createWebCommand() {
|
|
10
|
+
const command = new Command('web')
|
|
11
|
+
.description('Start the web interface server');
|
|
12
|
+
// Start web server
|
|
13
|
+
command
|
|
14
|
+
.command('start')
|
|
15
|
+
.description('Start the web server')
|
|
16
|
+
.option('-p, --port <port>', 'Port to listen on', '3001')
|
|
17
|
+
.option('-h, --host <host>', 'Host to bind to', 'localhost')
|
|
18
|
+
.option('--cors <origins>', 'Comma-separated list of allowed CORS origins', 'http://localhost:5173,http://localhost:3000')
|
|
19
|
+
.option('--no-static', 'Disable serving static files')
|
|
20
|
+
.action(async (options) => {
|
|
21
|
+
try {
|
|
22
|
+
const config = await loadConfig();
|
|
23
|
+
const webConfig = {
|
|
24
|
+
port: parseInt(options.port, 10),
|
|
25
|
+
host: options.host,
|
|
26
|
+
cors: {
|
|
27
|
+
origins: options.cors.split(',').map((o) => o.trim()),
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
console.log('Starting AgentStack Web Server...');
|
|
31
|
+
console.log(` Host: ${webConfig.host}`);
|
|
32
|
+
console.log(` Port: ${webConfig.port}`);
|
|
33
|
+
console.log(` CORS Origins: ${webConfig.cors?.origins?.join(', ')}`);
|
|
34
|
+
console.log('');
|
|
35
|
+
const server = await startWebServer(config, webConfig);
|
|
36
|
+
const status = server.getStatus();
|
|
37
|
+
console.log(`Web server running at http://${status.host}:${status.port}`);
|
|
38
|
+
console.log(`WebSocket endpoint: ws://${status.host}:${status.port}/ws`);
|
|
39
|
+
console.log('');
|
|
40
|
+
console.log('API Endpoints:');
|
|
41
|
+
console.log(' GET /api/v1 - API info');
|
|
42
|
+
console.log(' GET /api/v1/agents - List agents');
|
|
43
|
+
console.log(' POST /api/v1/agents - Spawn agent');
|
|
44
|
+
console.log(' GET /api/v1/memory - List memory entries');
|
|
45
|
+
console.log(' GET /api/v1/tasks - List tasks');
|
|
46
|
+
console.log(' GET /api/v1/sessions/active - Get active session');
|
|
47
|
+
console.log(' GET /api/v1/workflows - List workflows');
|
|
48
|
+
console.log(' GET /api/v1/system/status - System status');
|
|
49
|
+
console.log(' GET /api/v1/system/health - Health check');
|
|
50
|
+
console.log('');
|
|
51
|
+
console.log('Press Ctrl+C to stop the server');
|
|
52
|
+
// Handle shutdown
|
|
53
|
+
const shutdown = async () => {
|
|
54
|
+
console.log('\nShutting down...');
|
|
55
|
+
await stopWebServer();
|
|
56
|
+
process.exit(0);
|
|
57
|
+
};
|
|
58
|
+
process.on('SIGINT', shutdown);
|
|
59
|
+
process.on('SIGTERM', shutdown);
|
|
60
|
+
// Keep the process running
|
|
61
|
+
await new Promise(() => { });
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
log.error('Failed to start web server', {
|
|
65
|
+
error: error instanceof Error ? error.message : String(error),
|
|
66
|
+
});
|
|
67
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
// Alias for start (default behavior)
|
|
72
|
+
command
|
|
73
|
+
.action(async () => {
|
|
74
|
+
// If no subcommand, run start
|
|
75
|
+
await command.commands.find(c => c.name() === 'start')?.parseAsync([]);
|
|
76
|
+
});
|
|
77
|
+
return command;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/cli/commands/web.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from 'commander';
|
|
6
6
|
import { logger } from '../utils/logger.js';
|
|
7
|
-
import { createInitCommand, createAgentCommand, createMemoryCommand, createMcpCommand, createPluginCommand, createStatusCommand, createWorkflowCommand, } from './commands/index.js';
|
|
7
|
+
import { createInitCommand, createAgentCommand, createMemoryCommand, createMcpCommand, createPluginCommand, createStatusCommand, createWorkflowCommand, createWebCommand, } from './commands/index.js';
|
|
8
8
|
// Read version from package.json would be ideal, but for now hardcode
|
|
9
9
|
const VERSION = '1.0.0';
|
|
10
10
|
async function main() {
|
|
@@ -32,6 +32,7 @@ async function main() {
|
|
|
32
32
|
program.addCommand(createPluginCommand());
|
|
33
33
|
program.addCommand(createStatusCommand());
|
|
34
34
|
program.addCommand(createWorkflowCommand());
|
|
35
|
+
program.addCommand(createWebCommand());
|
|
35
36
|
// Parse arguments
|
|
36
37
|
await program.parseAsync(process.argv);
|
|
37
38
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,sEAAsE;AACtE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CAAC,2CAA2C,CAAC;SACxD,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACjD,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC;SACxC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAA4C,CAAC;QAE1E,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,eAAe;IACf,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEvC,kBAAkB;IAClB,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,4 +14,5 @@ export { loadPlugin, discoverPlugins, getPlugin, listPlugins, unloadPlugin, getP
|
|
|
14
14
|
export { executeHooks, registerHook, unregisterHooks, clearCustomHooks, getHookCount, workflowHook, registerWorkflowTrigger, unregisterWorkflowTrigger, getWorkflowTriggers, clearWorkflowTriggers, registerDefaultTriggers, type WorkflowTrigger, } from './hooks/index.js';
|
|
15
15
|
export { GitHubClient, createGitHubClient, } from './github/index.js';
|
|
16
16
|
export { type WorkflowPhase, type Severity, type Verdict, type WorkflowAgent, type Finding, type PhaseResult, type WorkflowConfig, type WorkflowContext, type DocumentInfo, type DocumentType, type SyncResult, type DocumentChange, type DiagramUpdate, type WorkflowReport, type PhaseExecutor, type WorkflowEvents, WorkflowRunner, getWorkflowRunner, resetWorkflowRunner, docSyncConfig, registerDocSyncWorkflow, runDocSync, } from './workflows/index.js';
|
|
17
|
+
export { WebServer, startWebServer, stopWebServer, getWebServer, defaultWebConfig, agentEvents, getEventBridge, type WebConfig, } from './web/index.js';
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,MAAM,EACN,YAAY,EACZ,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,WAAW,EACX,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EAEjB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,oBAAoB,EAEpB,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,SAAS,EACT,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,UAAU,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,YAAY,EACZ,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EAEnB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EAEnB,aAAa,EACb,uBAAuB,EACvB,UAAU,GACX,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,MAAM,EACN,YAAY,EACZ,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,WAAW,EACX,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EAEjB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,oBAAoB,EAEpB,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,SAAS,EACT,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,UAAU,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,YAAY,EACZ,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EAEnB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EAEnB,aAAa,EACb,uBAAuB,EACvB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,KAAK,SAAS,GACf,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -35,4 +35,6 @@ export {
|
|
|
35
35
|
WorkflowRunner, getWorkflowRunner, resetWorkflowRunner,
|
|
36
36
|
// Doc Sync
|
|
37
37
|
docSyncConfig, registerDocSyncWorkflow, runDocSync, } from './workflows/index.js';
|
|
38
|
+
// Web Server
|
|
39
|
+
export { WebServer, startWebServer, stopWebServer, getWebServer, defaultWebConfig, agentEvents, getEventBridge, } from './web/index.js';
|
|
38
40
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,QAAQ;AACR,OAAO,EACL,MAAM,EACN,YAAY,EACZ,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,aAAa,EACb,WAAW,EACX,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,SAAS;AACT,OAAO;AACL,WAAW;AACX,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,iBAAiB;AACjB,UAAU;AACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,oBAAoB;AACpB,cAAc;AACd,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,MAAM;AACN,OAAO,EACL,SAAS,EACT,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,eAAe;AACf,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,UAAU;AACV,OAAO,EACL,UAAU,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,QAAQ;AACR,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,YAAY,EACZ,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,OAAO;AAkBL,SAAS;AACT,cAAc,EACd,iBAAiB,EACjB,mBAAmB;AACnB,WAAW;AACX,aAAa,EACb,uBAAuB,EACvB,UAAU,GACX,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,QAAQ;AACR,OAAO,EACL,MAAM,EACN,YAAY,EACZ,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,aAAa,EACb,WAAW,EACX,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,SAAS;AACT,OAAO;AACL,WAAW;AACX,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,uBAAuB,EACvB,iBAAiB;AACjB,UAAU;AACV,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,oBAAoB;AACpB,cAAc;AACd,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,MAAM;AACN,OAAO,EACL,SAAS,EACT,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,eAAe;AACf,OAAO,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,eAAe,EACf,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,UAAU;AACV,OAAO,EACL,UAAU,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,QAAQ;AACR,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,YAAY,EACZ,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACZ,OAAO;AAkBL,SAAS;AACT,cAAc,EACd,iBAAiB,EACjB,mBAAmB;AACnB,WAAW;AACX,aAAa,EACb,uBAAuB,EACvB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,aAAa;AACb,OAAO,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,GAEf,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web module - HTTP + WebSocket server for AgentStack
|
|
3
|
+
*/
|
|
4
|
+
export { WebServer, startWebServer, stopWebServer, getWebServer, defaultWebConfig, } from './server.js';
|
|
5
|
+
export { Router, sendJson, sendError, sendPaginated } from './router.js';
|
|
6
|
+
export { agentEvents, getEventBridge, resetEventBridge, handleWebSocketUpgrade, getClientCount, broadcastMessage, closeAllConnections, } from './websocket/index.js';
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EACL,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web module - HTTP + WebSocket server for AgentStack
|
|
3
|
+
*/
|
|
4
|
+
export { WebServer, startWebServer, stopWebServer, getWebServer, defaultWebConfig, } from './server.js';
|
|
5
|
+
export { Router, sendJson, sendError, sendPaginated } from './router.js';
|
|
6
|
+
export { agentEvents, getEventBridge, resetEventBridge, handleWebSocketUpgrade, getClientCount, broadcastMessage, closeAllConnections, } from './websocket/index.js';
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/web/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EACL,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication middleware (placeholder for future implementation)
|
|
3
|
+
*/
|
|
4
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
5
|
+
export interface AuthContext {
|
|
6
|
+
authenticated: boolean;
|
|
7
|
+
userId?: string;
|
|
8
|
+
permissions?: string[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Create authentication middleware
|
|
12
|
+
* Currently a no-op that allows all requests
|
|
13
|
+
*/
|
|
14
|
+
export declare function createAuthMiddleware(_options?: {
|
|
15
|
+
required?: boolean;
|
|
16
|
+
}): (_req: IncomingMessage, _res: ServerResponse) => AuthContext;
|
|
17
|
+
/**
|
|
18
|
+
* Extract API key from request headers
|
|
19
|
+
*/
|
|
20
|
+
export declare function getApiKey(req: IncomingMessage): string | null;
|
|
21
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/web/middleware/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,IAEtE,MAAM,eAAe,EACrB,MAAM,cAAc,KACnB,WAAW,CAOf;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAY7D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication middleware (placeholder for future implementation)
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Create authentication middleware
|
|
6
|
+
* Currently a no-op that allows all requests
|
|
7
|
+
*/
|
|
8
|
+
export function createAuthMiddleware(_options = {}) {
|
|
9
|
+
return function authMiddleware(_req, _res) {
|
|
10
|
+
// For now, all requests are authenticated
|
|
11
|
+
// In the future, this could check API keys, JWT tokens, etc.
|
|
12
|
+
return {
|
|
13
|
+
authenticated: true,
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Extract API key from request headers
|
|
19
|
+
*/
|
|
20
|
+
export function getApiKey(req) {
|
|
21
|
+
const authHeader = req.headers.authorization;
|
|
22
|
+
if (authHeader?.startsWith('Bearer ')) {
|
|
23
|
+
return authHeader.slice(7);
|
|
24
|
+
}
|
|
25
|
+
const apiKeyHeader = req.headers['x-api-key'];
|
|
26
|
+
if (typeof apiKeyHeader === 'string') {
|
|
27
|
+
return apiKeyHeader;
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/web/middleware/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmC,EAAE;IACxE,OAAO,SAAS,cAAc,CAC5B,IAAqB,EACrB,IAAoB;QAEpB,0CAA0C;QAC1C,6DAA6D;QAC7D,OAAO;YACL,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAoB;IAC5C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7C,IAAI,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CORS middleware
|
|
3
|
+
*/
|
|
4
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
5
|
+
import type { WebConfig } from '../types.js';
|
|
6
|
+
export declare function createCorsMiddleware(config: WebConfig): (req: IncomingMessage, res: ServerResponse) => boolean;
|
|
7
|
+
//# sourceMappingURL=cors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../src/web/middleware/cors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,IAGrB,KAAK,eAAe,EAAE,KAAK,cAAc,KAAG,OAAO,CAwBnF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CORS middleware
|
|
3
|
+
*/
|
|
4
|
+
export function createCorsMiddleware(config) {
|
|
5
|
+
const allowedOrigins = config.cors.origins;
|
|
6
|
+
return function corsMiddleware(req, res) {
|
|
7
|
+
const origin = req.headers.origin;
|
|
8
|
+
// Check if origin is allowed
|
|
9
|
+
if (origin && (allowedOrigins.includes('*') || allowedOrigins.includes(origin))) {
|
|
10
|
+
res.setHeader('Access-Control-Allow-Origin', origin);
|
|
11
|
+
}
|
|
12
|
+
else if (allowedOrigins.includes('*')) {
|
|
13
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
14
|
+
}
|
|
15
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
|
|
16
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With');
|
|
17
|
+
res.setHeader('Access-Control-Allow-Credentials', 'true');
|
|
18
|
+
res.setHeader('Access-Control-Max-Age', '86400');
|
|
19
|
+
// Handle preflight
|
|
20
|
+
if (req.method === 'OPTIONS') {
|
|
21
|
+
res.writeHead(204);
|
|
22
|
+
res.end();
|
|
23
|
+
return true; // Request handled
|
|
24
|
+
}
|
|
25
|
+
return false; // Continue to next handler
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=cors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../../../src/web/middleware/cors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IAE3C,OAAO,SAAS,cAAc,CAAC,GAAoB,EAAE,GAAmB;QACtE,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAElC,6BAA6B;QAC7B,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAChF,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,wCAAwC,CAAC,CAAC;QACxF,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,+CAA+C,CAAC,CAAC;QAC/F,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;QAC1D,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAEjD,mBAAmB;QACnB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,CAAC,kBAAkB;QACjC,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,2BAA2B;IAC3C,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling middleware
|
|
3
|
+
*/
|
|
4
|
+
import type { ServerResponse } from 'node:http';
|
|
5
|
+
export declare class ApiError extends Error {
|
|
6
|
+
statusCode: number;
|
|
7
|
+
constructor(statusCode: number, message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare function handleError(res: ServerResponse, error: unknown): void;
|
|
10
|
+
export declare function notFound(resource: string): ApiError;
|
|
11
|
+
export declare function badRequest(message: string): ApiError;
|
|
12
|
+
export declare function unauthorized(message?: string): ApiError;
|
|
13
|
+
export declare function forbidden(message?: string): ApiError;
|
|
14
|
+
export declare function conflict(message: string): ApiError;
|
|
15
|
+
export declare function serverError(message?: string): ApiError;
|
|
16
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/web/middleware/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,qBAAa,QAAS,SAAQ,KAAK;IACjC,UAAU,EAAE,MAAM,CAAC;gBAEP,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKhD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAkBrE;AAGD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAEnD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAEpD;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,MAAuB,GAAG,QAAQ,CAEvE;AAED,wBAAgB,SAAS,CAAC,OAAO,GAAE,MAAoB,GAAG,QAAQ,CAEjE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAElD;AAED,wBAAgB,WAAW,CAAC,OAAO,GAAE,MAAgC,GAAG,QAAQ,CAE/E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error handling middleware
|
|
3
|
+
*/
|
|
4
|
+
import { logger } from '../../utils/logger.js';
|
|
5
|
+
const log = logger.child('web:error');
|
|
6
|
+
export class ApiError extends Error {
|
|
7
|
+
statusCode;
|
|
8
|
+
constructor(statusCode, message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.statusCode = statusCode;
|
|
11
|
+
this.name = 'ApiError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function handleError(res, error) {
|
|
15
|
+
const statusCode = error instanceof ApiError ? error.statusCode : 500;
|
|
16
|
+
const message = error instanceof Error ? error.message : 'Internal server error';
|
|
17
|
+
if (statusCode >= 500) {
|
|
18
|
+
log.error('Server error', { error: message, stack: error instanceof Error ? error.stack : undefined });
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
log.warn('Client error', { statusCode, message });
|
|
22
|
+
}
|
|
23
|
+
if (!res.headersSent) {
|
|
24
|
+
res.writeHead(statusCode, { 'Content-Type': 'application/json' });
|
|
25
|
+
res.end(JSON.stringify({
|
|
26
|
+
success: false,
|
|
27
|
+
error: message,
|
|
28
|
+
timestamp: new Date().toISOString(),
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Common error factory functions
|
|
33
|
+
export function notFound(resource) {
|
|
34
|
+
return new ApiError(404, `${resource} not found`);
|
|
35
|
+
}
|
|
36
|
+
export function badRequest(message) {
|
|
37
|
+
return new ApiError(400, message);
|
|
38
|
+
}
|
|
39
|
+
export function unauthorized(message = 'Unauthorized') {
|
|
40
|
+
return new ApiError(401, message);
|
|
41
|
+
}
|
|
42
|
+
export function forbidden(message = 'Forbidden') {
|
|
43
|
+
return new ApiError(403, message);
|
|
44
|
+
}
|
|
45
|
+
export function conflict(message) {
|
|
46
|
+
return new ApiError(409, message);
|
|
47
|
+
}
|
|
48
|
+
export function serverError(message = 'Internal server error') {
|
|
49
|
+
return new ApiError(500, message);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/web/middleware/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAEtC,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,UAAU,CAAS;IAEnB,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,GAAmB,EAAE,KAAc;IAC7D,MAAM,UAAU,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IACtE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAEjF,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACzG,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAClE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC,CAAC;IACN,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,QAAQ,YAAY,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB,cAAc;IAC3D,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAkB,WAAW;IACrD,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB,uBAAuB;IACnE,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware exports
|
|
3
|
+
*/
|
|
4
|
+
export { createCorsMiddleware } from './cors.js';
|
|
5
|
+
export { createAuthMiddleware, getApiKey, type AuthContext } from './auth.js';
|
|
6
|
+
export { ApiError, handleError, notFound, badRequest, unauthorized, forbidden, conflict, serverError, } from './error.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/middleware/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware exports
|
|
3
|
+
*/
|
|
4
|
+
export { createCorsMiddleware } from './cors.js';
|
|
5
|
+
export { createAuthMiddleware, getApiKey } from './auth.js';
|
|
6
|
+
export { ApiError, handleError, notFound, badRequest, unauthorized, forbidden, conflict, serverError, } from './error.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/middleware/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAoB,MAAM,WAAW,CAAC;AAC9E,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Router for the web server
|
|
3
|
+
*/
|
|
4
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
5
|
+
import type { RouteHandler, RouteParams } from './types.js';
|
|
6
|
+
export declare class Router {
|
|
7
|
+
private routes;
|
|
8
|
+
/**
|
|
9
|
+
* Register a route
|
|
10
|
+
*/
|
|
11
|
+
private addRoute;
|
|
12
|
+
get(path: string, handler: RouteHandler): void;
|
|
13
|
+
post(path: string, handler: RouteHandler): void;
|
|
14
|
+
put(path: string, handler: RouteHandler): void;
|
|
15
|
+
delete(path: string, handler: RouteHandler): void;
|
|
16
|
+
patch(path: string, handler: RouteHandler): void;
|
|
17
|
+
/**
|
|
18
|
+
* Match a request to a route
|
|
19
|
+
*/
|
|
20
|
+
match(method: string, url: string): {
|
|
21
|
+
handler: RouteHandler;
|
|
22
|
+
params: RouteParams;
|
|
23
|
+
} | null;
|
|
24
|
+
/**
|
|
25
|
+
* Handle an incoming request
|
|
26
|
+
*/
|
|
27
|
+
handle(req: IncomingMessage, res: ServerResponse): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Parse request body as JSON
|
|
30
|
+
*/
|
|
31
|
+
private parseBody;
|
|
32
|
+
}
|
|
33
|
+
export declare function sendJson<T>(res: ServerResponse, data: T, statusCode?: number): void;
|
|
34
|
+
export declare function sendError(res: ServerResponse, statusCode: number, message: string): void;
|
|
35
|
+
export declare function sendPaginated<T>(res: ServerResponse, data: T[], pagination: {
|
|
36
|
+
limit: number;
|
|
37
|
+
offset: number;
|
|
38
|
+
total: number;
|
|
39
|
+
}, statusCode?: number): void;
|
|
40
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/web/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAS,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAE7B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAoBhB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI9C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI/C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI9C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIjD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIhD;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI;IAiCzF;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BzE;;OAEG;IACH,OAAO,CAAC,SAAS;CAyBlB;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,GAAE,MAAY,GAAG,IAAI,CAWxF;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAWxF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAC7B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,EAAE,EACT,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC5D,UAAU,GAAE,MAAY,GACvB,IAAI,CAYN"}
|