polyai-agent 1.0.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 +464 -0
- package/REQUIREMENTS.md +158 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +500 -0
- package/dist/cli.js.map +1 -0
- package/dist/cluster-monitor/cluster-monitor.d.ts +49 -0
- package/dist/cluster-monitor/cluster-monitor.d.ts.map +1 -0
- package/dist/cluster-monitor/cluster-monitor.js +374 -0
- package/dist/cluster-monitor/cluster-monitor.js.map +1 -0
- package/dist/cluster-monitor/index.d.ts +9 -0
- package/dist/cluster-monitor/index.d.ts.map +1 -0
- package/dist/cluster-monitor/index.js +19 -0
- package/dist/cluster-monitor/index.js.map +1 -0
- package/dist/cluster-monitor/kubernetes-connector.d.ts +21 -0
- package/dist/cluster-monitor/kubernetes-connector.d.ts.map +1 -0
- package/dist/cluster-monitor/kubernetes-connector.js +109 -0
- package/dist/cluster-monitor/kubernetes-connector.js.map +1 -0
- package/dist/cluster-monitor/notifications.d.ts +26 -0
- package/dist/cluster-monitor/notifications.d.ts.map +1 -0
- package/dist/cluster-monitor/notifications.js +182 -0
- package/dist/cluster-monitor/notifications.js.map +1 -0
- package/dist/cluster-monitor/remediation.d.ts +33 -0
- package/dist/cluster-monitor/remediation.d.ts.map +1 -0
- package/dist/cluster-monitor/remediation.js +134 -0
- package/dist/cluster-monitor/remediation.js.map +1 -0
- package/dist/cluster-monitor/rules.d.ts +26 -0
- package/dist/cluster-monitor/rules.d.ts.map +1 -0
- package/dist/cluster-monitor/rules.js +133 -0
- package/dist/cluster-monitor/rules.js.map +1 -0
- package/dist/cluster-monitor/types.d.ts +184 -0
- package/dist/cluster-monitor/types.d.ts.map +1 -0
- package/dist/cluster-monitor/types.js +3 -0
- package/dist/cluster-monitor/types.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +115 -0
- package/dist/index.js.map +1 -0
- package/dist/live-debugger/index.d.ts +32 -0
- package/dist/live-debugger/index.d.ts.map +1 -0
- package/dist/live-debugger/index.js +119 -0
- package/dist/live-debugger/index.js.map +1 -0
- package/dist/live-debugger/log-watcher.d.ts +19 -0
- package/dist/live-debugger/log-watcher.d.ts.map +1 -0
- package/dist/live-debugger/log-watcher.js +77 -0
- package/dist/live-debugger/log-watcher.js.map +1 -0
- package/dist/live-debugger/service-connector.d.ts +33 -0
- package/dist/live-debugger/service-connector.d.ts.map +1 -0
- package/dist/live-debugger/service-connector.js +123 -0
- package/dist/live-debugger/service-connector.js.map +1 -0
- package/dist/providers/anthropic.d.ts +9 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +71 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +29 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +14 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/gemini.d.ts +11 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +73 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +38 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai.d.ts +9 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +59 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/session/guardrails.d.ts +20 -0
- package/dist/session/guardrails.d.ts.map +1 -0
- package/dist/session/guardrails.js +83 -0
- package/dist/session/guardrails.js.map +1 -0
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +12 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/session-manager.d.ts +15 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +89 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/session.d.ts +63 -0
- package/dist/session/session.d.ts.map +1 -0
- package/dist/session/session.js +123 -0
- package/dist/session/session.js.map +1 -0
- package/dist/speckits/base.d.ts +9 -0
- package/dist/speckits/base.d.ts.map +1 -0
- package/dist/speckits/base.js +3 -0
- package/dist/speckits/base.js.map +1 -0
- package/dist/speckits/cluster-debugger.d.ts +3 -0
- package/dist/speckits/cluster-debugger.d.ts.map +1 -0
- package/dist/speckits/cluster-debugger.js +48 -0
- package/dist/speckits/cluster-debugger.js.map +1 -0
- package/dist/speckits/code-review.d.ts +3 -0
- package/dist/speckits/code-review.d.ts.map +1 -0
- package/dist/speckits/code-review.js +41 -0
- package/dist/speckits/code-review.js.map +1 -0
- package/dist/speckits/debugger.d.ts +3 -0
- package/dist/speckits/debugger.d.ts.map +1 -0
- package/dist/speckits/debugger.js +38 -0
- package/dist/speckits/debugger.js.map +1 -0
- package/dist/speckits/index.d.ts +11 -0
- package/dist/speckits/index.d.ts.map +1 -0
- package/dist/speckits/index.js +40 -0
- package/dist/speckits/index.js.map +1 -0
- package/dist/speckits/more-speckits.d.ts +6 -0
- package/dist/speckits/more-speckits.d.ts.map +1 -0
- package/dist/speckits/more-speckits.js +136 -0
- package/dist/speckits/more-speckits.js.map +1 -0
- package/dist/speckits/vibe-coder.d.ts +3 -0
- package/dist/speckits/vibe-coder.d.ts.map +1 -0
- package/dist/speckits/vibe-coder.js +32 -0
- package/dist/speckits/vibe-coder.js.map +1 -0
- package/dist/utils/config.d.ts +18 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +107 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/file-ops.d.ts +15 -0
- package/dist/utils/file-ops.d.ts.map +1 -0
- package/dist/utils/file-ops.js +109 -0
- package/dist/utils/file-ops.js.map +1 -0
- package/dist/utils/logger.d.ts +4 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +25 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/web/public/css/app.css +370 -0
- package/dist/web/public/index.html +91 -0
- package/dist/web/public/js/app.js +212 -0
- package/dist/web/routes/sessions.d.ts +4 -0
- package/dist/web/routes/sessions.d.ts.map +1 -0
- package/dist/web/routes/sessions.js +51 -0
- package/dist/web/routes/sessions.js.map +1 -0
- package/dist/web/routes/settings.d.ts +3 -0
- package/dist/web/routes/settings.d.ts.map +1 -0
- package/dist/web/routes/settings.js +33 -0
- package/dist/web/routes/settings.js.map +1 -0
- package/dist/web/server.d.ts +16 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +76 -0
- package/dist/web/server.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSessionRoutes = createSessionRoutes;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
function createSessionRoutes(sessionManager) {
|
|
6
|
+
const router = (0, express_1.Router)();
|
|
7
|
+
// GET /api/sessions — list all sessions
|
|
8
|
+
router.get('/', (_req, res) => {
|
|
9
|
+
try {
|
|
10
|
+
const sessions = sessionManager.listSessions();
|
|
11
|
+
res.json({ sessions });
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
res.status(500).json({ error: String(err) });
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
// GET /api/sessions/:id — get session details
|
|
18
|
+
router.get('/:id', (req, res) => {
|
|
19
|
+
try {
|
|
20
|
+
const data = sessionManager.exportSession(req.params.id);
|
|
21
|
+
res.json(JSON.parse(data));
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
res.status(404).json({ error: String(err) });
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
// DELETE /api/sessions/:id — delete session
|
|
28
|
+
router.delete('/:id', (req, res) => {
|
|
29
|
+
try {
|
|
30
|
+
sessionManager.deleteSession(req.params.id);
|
|
31
|
+
res.json({ success: true });
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
res.status(404).json({ error: String(err) });
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
// GET /api/sessions/:id/export — export session as JSON download
|
|
38
|
+
router.get('/:id/export', (req, res) => {
|
|
39
|
+
try {
|
|
40
|
+
const data = sessionManager.exportSession(req.params.id);
|
|
41
|
+
res.setHeader('Content-Type', 'application/json');
|
|
42
|
+
res.setHeader('Content-Disposition', `attachment; filename="session-${req.params.id}.json"`);
|
|
43
|
+
res.send(data);
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
res.status(404).json({ error: String(err) });
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return router;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/web/routes/sessions.ts"],"names":[],"mappings":";;AAGA,kDA8CC;AAjDD,qCAAoD;AAGpD,SAAgB,mBAAmB,CAAC,cAA8B;IAChE,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,wCAAwC;IACxC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACjD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACpD,IAAI,CAAC;YACH,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAClD,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,iCAAiC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC7F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/web/routes/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAGpD,wBAAgB,oBAAoB,IAAI,MAAM,CAgC7C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSettingsRoutes = createSettingsRoutes;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const config_1 = require("../../utils/config");
|
|
6
|
+
function createSettingsRoutes() {
|
|
7
|
+
const router = (0, express_1.Router)();
|
|
8
|
+
// GET /api/settings
|
|
9
|
+
router.get('/', (_req, res) => {
|
|
10
|
+
try {
|
|
11
|
+
const config = (0, config_1.loadConfig)();
|
|
12
|
+
// Redact API key
|
|
13
|
+
const { apiKey: _apiKey, ...safeConfig } = config;
|
|
14
|
+
res.json(safeConfig);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
res.status(500).json({ error: String(err) });
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
// POST /api/settings — update settings
|
|
21
|
+
router.post('/', (req, res) => {
|
|
22
|
+
try {
|
|
23
|
+
const { provider, model, port, logLevel } = req.body;
|
|
24
|
+
(0, config_1.saveConfig)({ provider: provider, model, port, logLevel });
|
|
25
|
+
res.json({ success: true });
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
res.status(500).json({ error: String(err) });
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return router;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/web/routes/settings.ts"],"names":[],"mappings":";;AAGA,oDAgCC;AAnCD,qCAAoD;AACpD,+CAA4D;AAE5D,SAAgB,oBAAoB;IAClC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,oBAAoB;IACpB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;YAC5B,iBAAiB;YACjB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAK/C,CAAC;YACF,IAAA,mBAAU,EAAC,EAAE,QAAQ,EAAE,QAA6C,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/F,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Server as SocketIOServer } from 'socket.io';
|
|
2
|
+
import { SessionManager } from '../session/session-manager';
|
|
3
|
+
export interface WebServerOptions {
|
|
4
|
+
port?: number;
|
|
5
|
+
sessionManager: SessionManager;
|
|
6
|
+
apiKey?: string;
|
|
7
|
+
provider?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function createWebServer(options: WebServerOptions): {
|
|
10
|
+
app: import("express-serve-static-core").Express;
|
|
11
|
+
io: SocketIOServer<import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, any>;
|
|
12
|
+
httpServer: import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
|
|
13
|
+
start: () => Promise<void>;
|
|
14
|
+
stop: () => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAK5D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB;;;;iBAmDrC,OAAO,CAAC,IAAI,CAAC;gBASd,OAAO,CAAC,IAAI,CAAC;EAU/B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createWebServer = createWebServer;
|
|
7
|
+
const express_1 = __importDefault(require("express"));
|
|
8
|
+
const http_1 = require("http");
|
|
9
|
+
const socket_io_1 = require("socket.io");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
|
|
12
|
+
const sessions_1 = require("./routes/sessions");
|
|
13
|
+
const settings_1 = require("./routes/settings");
|
|
14
|
+
const logger_1 = require("../utils/logger");
|
|
15
|
+
function createWebServer(options) {
|
|
16
|
+
const port = options.port ?? 3000;
|
|
17
|
+
const app = (0, express_1.default)();
|
|
18
|
+
const httpServer = (0, http_1.createServer)(app);
|
|
19
|
+
const io = new socket_io_1.Server(httpServer, {
|
|
20
|
+
cors: { origin: '*' },
|
|
21
|
+
});
|
|
22
|
+
app.use(express_1.default.json());
|
|
23
|
+
app.use(express_1.default.urlencoded({ extended: true }));
|
|
24
|
+
// Apply rate limiting to all routes (200 req/min per IP)
|
|
25
|
+
const globalLimiter = (0, express_rate_limit_1.default)({
|
|
26
|
+
windowMs: 60 * 1000,
|
|
27
|
+
max: 200,
|
|
28
|
+
standardHeaders: true,
|
|
29
|
+
legacyHeaders: false,
|
|
30
|
+
message: { error: 'Too many requests — please slow down.' },
|
|
31
|
+
});
|
|
32
|
+
app.use(globalLimiter);
|
|
33
|
+
// Serve static files
|
|
34
|
+
app.use(express_1.default.static(path_1.default.join(__dirname, 'public')));
|
|
35
|
+
// API routes
|
|
36
|
+
app.use('/api/sessions', (0, sessions_1.createSessionRoutes)(options.sessionManager));
|
|
37
|
+
app.use('/api/settings', (0, settings_1.createSettingsRoutes)());
|
|
38
|
+
// Catch-all: serve index.html for SPA-style navigation
|
|
39
|
+
app.get('*', (_req, res) => {
|
|
40
|
+
res.sendFile(path_1.default.join(__dirname, 'public', 'index.html'));
|
|
41
|
+
});
|
|
42
|
+
// Socket.IO for real-time updates
|
|
43
|
+
io.on('connection', (socket) => {
|
|
44
|
+
logger_1.logger.debug(`Web UI client connected: ${socket.id}`);
|
|
45
|
+
socket.on('subscribe:session', (sessionId) => {
|
|
46
|
+
void socket.join(`session:${sessionId}`);
|
|
47
|
+
logger_1.logger.debug(`Client ${socket.id} subscribed to session ${sessionId}`);
|
|
48
|
+
});
|
|
49
|
+
socket.on('unsubscribe:session', (sessionId) => {
|
|
50
|
+
void socket.leave(`session:${sessionId}`);
|
|
51
|
+
});
|
|
52
|
+
socket.on('disconnect', () => {
|
|
53
|
+
logger_1.logger.debug(`Web UI client disconnected: ${socket.id}`);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
function start() {
|
|
57
|
+
return new Promise((resolve) => {
|
|
58
|
+
httpServer.listen(port, () => {
|
|
59
|
+
logger_1.logger.info(`AI Agent Web UI running at http://localhost:${port}`);
|
|
60
|
+
resolve();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function stop() {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
httpServer.close((err) => {
|
|
67
|
+
if (err)
|
|
68
|
+
reject(err);
|
|
69
|
+
else
|
|
70
|
+
resolve();
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return { app, io, httpServer, start, stop };
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "polyai-agent",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI-powered vibe coder, live debugger, and agent session manager — supports OpenAI, Anthropic, and Google Gemini",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"ai-agent": "dist/cli.js",
|
|
9
|
+
"aac": "dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md",
|
|
14
|
+
"REQUIREMENTS.md"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc && npm run copy-assets",
|
|
18
|
+
"copy-assets": "copyfiles -u 1 \"src/web/public/**/*\" dist/",
|
|
19
|
+
"build:watch": "tsc --watch",
|
|
20
|
+
"start": "node dist/cli.js",
|
|
21
|
+
"dev": "ts-node src/cli.ts",
|
|
22
|
+
"test": "jest --passWithNoTests",
|
|
23
|
+
"test:watch": "jest --watch",
|
|
24
|
+
"lint": "eslint src",
|
|
25
|
+
"lint:fix": "eslint src --fix",
|
|
26
|
+
"prepublishOnly": "npm run build"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"ai",
|
|
30
|
+
"cli",
|
|
31
|
+
"agent",
|
|
32
|
+
"openai",
|
|
33
|
+
"anthropic",
|
|
34
|
+
"gemini",
|
|
35
|
+
"vibe-coder",
|
|
36
|
+
"code-generation",
|
|
37
|
+
"debugger",
|
|
38
|
+
"session-manager"
|
|
39
|
+
],
|
|
40
|
+
"author": "",
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@anthropic-ai/sdk": "^0.39.0",
|
|
44
|
+
"@google/generative-ai": "^0.21.0",
|
|
45
|
+
"axios": "^1.7.9",
|
|
46
|
+
"chalk": "^4.1.2",
|
|
47
|
+
"chokidar": "^3.6.0",
|
|
48
|
+
"commander": "^12.1.0",
|
|
49
|
+
"diff": "^7.0.0",
|
|
50
|
+
"express": "^4.21.2",
|
|
51
|
+
"express-rate-limit": "^8.3.1",
|
|
52
|
+
"inquirer": "^8.2.6",
|
|
53
|
+
"js-yaml": "^4.1.0",
|
|
54
|
+
"openai": "^4.77.0",
|
|
55
|
+
"ora": "^5.4.1",
|
|
56
|
+
"socket.io": "^4.8.1",
|
|
57
|
+
"uuid": "^11.0.5",
|
|
58
|
+
"winston": "^3.17.0"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@eslint/js": "^9.19.0",
|
|
62
|
+
"@types/diff": "^7.0.2",
|
|
63
|
+
"@types/express": "^4.17.21",
|
|
64
|
+
"@types/inquirer": "^8.2.10",
|
|
65
|
+
"@types/jest": "^29.5.14",
|
|
66
|
+
"@types/js-yaml": "^4.0.9",
|
|
67
|
+
"@types/node": "^22.10.7",
|
|
68
|
+
"@types/uuid": "^10.0.0",
|
|
69
|
+
"@typescript-eslint/eslint-plugin": "^8.20.0",
|
|
70
|
+
"@typescript-eslint/parser": "^8.20.0",
|
|
71
|
+
"copyfiles": "^2.4.1",
|
|
72
|
+
"globals": "^14.0.0",
|
|
73
|
+
"eslint": "^9.19.0",
|
|
74
|
+
"jest": "^29.7.0",
|
|
75
|
+
"ts-jest": "^29.2.5",
|
|
76
|
+
"ts-node": "^10.9.2",
|
|
77
|
+
"typescript": "^5.7.3"
|
|
78
|
+
},
|
|
79
|
+
"engines": {
|
|
80
|
+
"node": ">=18.0.0"
|
|
81
|
+
},
|
|
82
|
+
"repository": {
|
|
83
|
+
"type": "git",
|
|
84
|
+
"url": "git+https://github.com/fury-r/polyai-agent.git"
|
|
85
|
+
}
|
|
86
|
+
}
|