@chaaskit/server 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/dist/api/admin.js +438 -0
- package/dist/api/admin.js.map +1 -0
- package/dist/api/agents.js +21 -0
- package/dist/api/agents.js.map +1 -0
- package/dist/api/api-keys.js +122 -0
- package/dist/api/api-keys.js.map +1 -0
- package/dist/api/auth.js +399 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/chat.js +900 -0
- package/dist/api/chat.js.map +1 -0
- package/dist/api/config.js +91 -0
- package/dist/api/config.js.map +1 -0
- package/dist/api/documents.js +237 -0
- package/dist/api/documents.js.map +1 -0
- package/dist/api/export.js +107 -0
- package/dist/api/export.js.map +1 -0
- package/dist/api/health.js +25 -0
- package/dist/api/health.js.map +1 -0
- package/dist/api/mcp-server.js +84 -0
- package/dist/api/mcp-server.js.map +1 -0
- package/dist/api/mcp.js +400 -0
- package/dist/api/mcp.js.map +1 -0
- package/dist/api/mentions.js +94 -0
- package/dist/api/mentions.js.map +1 -0
- package/dist/api/oauth.js +366 -0
- package/dist/api/oauth.js.map +1 -0
- package/dist/api/payments.js +473 -0
- package/dist/api/payments.js.map +1 -0
- package/dist/api/projects.js +301 -0
- package/dist/api/projects.js.map +1 -0
- package/dist/api/scheduled-prompts.js +617 -0
- package/dist/api/scheduled-prompts.js.map +1 -0
- package/dist/api/search.js +85 -0
- package/dist/api/search.js.map +1 -0
- package/dist/api/share.js +188 -0
- package/dist/api/share.js.map +1 -0
- package/dist/api/slack.js +468 -0
- package/dist/api/slack.js.map +1 -0
- package/dist/api/teams.js +693 -0
- package/dist/api/teams.js.map +1 -0
- package/dist/api/templates.js +134 -0
- package/dist/api/templates.js.map +1 -0
- package/dist/api/threads.js +323 -0
- package/dist/api/threads.js.map +1 -0
- package/dist/api/upload.js +57 -0
- package/dist/api/upload.js.map +1 -0
- package/dist/api/user.js +111 -0
- package/dist/api/user.js.map +1 -0
- package/dist/api/v1/openai.js +245 -0
- package/dist/api/v1/openai.js.map +1 -0
- package/dist/app.js +168 -0
- package/dist/app.js.map +1 -0
- package/dist/bin/cli.js +57 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/commands/db-sync.js +108 -0
- package/dist/commands/db-sync.js.map +1 -0
- package/dist/config/loader.js +374 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/documents/extractors.js +136 -0
- package/dist/documents/extractors.js.map +1 -0
- package/dist/extensions/glob.js +53 -0
- package/dist/extensions/glob.js.map +1 -0
- package/dist/extensions/loader.js +72 -0
- package/dist/extensions/loader.js.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/loaders/index.js +75 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/mcp/client.js +551 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/server.js +335 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/middleware/apiKeyAuth.js +136 -0
- package/dist/middleware/apiKeyAuth.js.map +1 -0
- package/dist/middleware/auth.js +192 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/errorHandler.js +41 -0
- package/dist/middleware/errorHandler.js.map +1 -0
- package/dist/middleware/mcpServerAuth.js +164 -0
- package/dist/middleware/mcpServerAuth.js.map +1 -0
- package/dist/middleware/requestLogger.js +9 -0
- package/dist/middleware/requestLogger.js.map +1 -0
- package/dist/middleware/team.js +132 -0
- package/dist/middleware/team.js.map +1 -0
- package/dist/oauth/server.js +410 -0
- package/dist/oauth/server.js.map +1 -0
- package/dist/queue/cli.js +93 -0
- package/dist/queue/cli.js.map +1 -0
- package/dist/queue/handlers/index.js +91 -0
- package/dist/queue/handlers/index.js.map +1 -0
- package/dist/queue/handlers/scheduled-prompt.js +270 -0
- package/dist/queue/handlers/scheduled-prompt.js.map +1 -0
- package/dist/queue/index.js +91 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/providers/memory.js +296 -0
- package/dist/queue/providers/memory.js.map +1 -0
- package/dist/queue/providers/sqs.js +275 -0
- package/dist/queue/providers/sqs.js.map +1 -0
- package/dist/queue/scheduler.js +355 -0
- package/dist/queue/scheduler.js.map +1 -0
- package/dist/queue/types.js +5 -0
- package/dist/queue/types.js.map +1 -0
- package/dist/queue/worker.js +230 -0
- package/dist/queue/worker.js.map +1 -0
- package/dist/registry/index.js +40 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/server.js +207 -0
- package/dist/server.js.map +1 -0
- package/dist/services/agent.js +530 -0
- package/dist/services/agent.js.map +1 -0
- package/dist/services/agents.js +194 -0
- package/dist/services/agents.js.map +1 -0
- package/dist/services/documents.js +507 -0
- package/dist/services/documents.js.map +1 -0
- package/dist/services/email/index.js +91 -0
- package/dist/services/email/index.js.map +1 -0
- package/dist/services/email/providers/ses.js +97 -0
- package/dist/services/email/providers/ses.js.map +1 -0
- package/dist/services/email/templates.js +194 -0
- package/dist/services/email/templates.js.map +1 -0
- package/dist/services/email/types.js +5 -0
- package/dist/services/email/types.js.map +1 -0
- package/dist/services/encryption.js +69 -0
- package/dist/services/encryption.js.map +1 -0
- package/dist/services/oauth-discovery.js +226 -0
- package/dist/services/oauth-discovery.js.map +1 -0
- package/dist/services/pendingConfirmation.js +105 -0
- package/dist/services/pendingConfirmation.js.map +1 -0
- package/dist/services/scheduledPrompts.js +70 -0
- package/dist/services/scheduledPrompts.js.map +1 -0
- package/dist/services/slack/client.js +174 -0
- package/dist/services/slack/client.js.map +1 -0
- package/dist/services/slack/events.js +189 -0
- package/dist/services/slack/events.js.map +1 -0
- package/dist/services/slack/index.js +6 -0
- package/dist/services/slack/index.js.map +1 -0
- package/dist/services/slack/notifications.js +124 -0
- package/dist/services/slack/notifications.js.map +1 -0
- package/dist/services/slack/signature.js +74 -0
- package/dist/services/slack/signature.js.map +1 -0
- package/dist/services/slack/thread-context.js +191 -0
- package/dist/services/slack/thread-context.js.map +1 -0
- package/dist/services/toolConfirmation.js +55 -0
- package/dist/services/toolConfirmation.js.map +1 -0
- package/dist/services/usage.js +241 -0
- package/dist/services/usage.js.map +1 -0
- package/dist/ssr/build.js +90 -0
- package/dist/ssr/build.js.map +1 -0
- package/dist/ssr/components/SSRMessageList.js +120 -0
- package/dist/ssr/components/SSRMessageList.js.map +1 -0
- package/dist/ssr/entry.client.js +8 -0
- package/dist/ssr/entry.client.js.map +1 -0
- package/dist/ssr/entry.server.js +71 -0
- package/dist/ssr/entry.server.js.map +1 -0
- package/dist/ssr/handler.js +51 -0
- package/dist/ssr/handler.js.map +1 -0
- package/dist/ssr/root.js +184 -0
- package/dist/ssr/root.js.map +1 -0
- package/dist/ssr/routes/login.js +140 -0
- package/dist/ssr/routes/login.js.map +1 -0
- package/dist/ssr/routes/pricing.js +195 -0
- package/dist/ssr/routes/pricing.js.map +1 -0
- package/dist/ssr/routes/privacy.js +39 -0
- package/dist/ssr/routes/privacy.js.map +1 -0
- package/dist/ssr/routes/register.js +148 -0
- package/dist/ssr/routes/register.js.map +1 -0
- package/dist/ssr/routes/shared.$shareId.js +153 -0
- package/dist/ssr/routes/shared.$shareId.js.map +1 -0
- package/dist/ssr/routes/terms.js +39 -0
- package/dist/ssr/routes/terms.js.map +1 -0
- package/dist/storage/index.js +43 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/providers/database.js +38 -0
- package/dist/storage/providers/database.js.map +1 -0
- package/dist/storage/providers/filesystem.js +51 -0
- package/dist/storage/providers/filesystem.js.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/tools/documents.js +336 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/get-plan-usage.js +82 -0
- package/dist/tools/get-plan-usage.js.map +1 -0
- package/dist/tools/index.js +106 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/web-scrape.js +145 -0
- package/dist/tools/web-scrape.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import fs from 'fs/promises';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
/**
|
|
4
|
+
* Simple glob implementation for matching files.
|
|
5
|
+
* Supports basic patterns like *.ts, *.js, *.{ts,js}
|
|
6
|
+
*/
|
|
7
|
+
export async function glob(pattern) {
|
|
8
|
+
const dir = path.dirname(pattern);
|
|
9
|
+
const filePattern = path.basename(pattern);
|
|
10
|
+
// Parse the pattern
|
|
11
|
+
let regex;
|
|
12
|
+
if (filePattern.includes('{')) {
|
|
13
|
+
// Handle {ts,js} style patterns
|
|
14
|
+
const match = filePattern.match(/^(.*)\.?\{([^}]+)\}$/);
|
|
15
|
+
if (match) {
|
|
16
|
+
const [, prefix, extensions] = match;
|
|
17
|
+
const extList = extensions.split(',').map(e => e.trim());
|
|
18
|
+
const escapedPrefix = prefix ? escapeRegex(prefix) : '';
|
|
19
|
+
regex = new RegExp(`^${escapedPrefix}.*\\.(${extList.join('|')})$`);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
regex = patternToRegex(filePattern);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
regex = patternToRegex(filePattern);
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
30
|
+
const matches = [];
|
|
31
|
+
for (const entry of entries) {
|
|
32
|
+
if (entry.isFile() && regex.test(entry.name)) {
|
|
33
|
+
matches.push(path.join(dir, entry.name));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return matches;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function escapeRegex(str) {
|
|
43
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
44
|
+
}
|
|
45
|
+
function patternToRegex(pattern) {
|
|
46
|
+
// Convert glob pattern to regex
|
|
47
|
+
const regexStr = pattern
|
|
48
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape special chars except * and ?
|
|
49
|
+
.replace(/\*/g, '.*')
|
|
50
|
+
.replace(/\?/g, '.');
|
|
51
|
+
return new RegExp(`^${regexStr}$`);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=glob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/extensions/glob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAe;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE3C,oBAAoB;IACpB,IAAI,KAAa,CAAC;IAClB,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,gCAAgC;QAChC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;YACrC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,aAAa,SAAS,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,gCAAgC;IAChC,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,sCAAsC;SAC3E,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,OAAO,IAAI,MAAM,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs/promises';
|
|
3
|
+
import { pathToFileURL } from 'url';
|
|
4
|
+
import { glob } from './glob.js';
|
|
5
|
+
/**
|
|
6
|
+
* Check if a directory exists
|
|
7
|
+
*/
|
|
8
|
+
async function directoryExists(dirPath) {
|
|
9
|
+
try {
|
|
10
|
+
const stat = await fs.stat(dirPath);
|
|
11
|
+
return stat.isDirectory();
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Simple glob implementation for finding extension files
|
|
19
|
+
*/
|
|
20
|
+
async function findExtensionFiles(pattern) {
|
|
21
|
+
try {
|
|
22
|
+
return await glob(pattern);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load extensions from the user's project directory.
|
|
30
|
+
*
|
|
31
|
+
* Extensions are loaded from:
|
|
32
|
+
* - extensions/agents/*.{ts,js} - Custom AI agents
|
|
33
|
+
* - extensions/payment-plans/*.{ts,js} - Custom pricing plans
|
|
34
|
+
* - extensions/auth-providers/*.{ts,js} - Custom auth providers
|
|
35
|
+
*
|
|
36
|
+
* Extensions should register themselves with the registry when imported.
|
|
37
|
+
*
|
|
38
|
+
* @param basePath - Base directory to look for extensions. Defaults to process.cwd()
|
|
39
|
+
*/
|
|
40
|
+
export async function loadExtensions(basePath = process.cwd()) {
|
|
41
|
+
const extensionDirs = [
|
|
42
|
+
'extensions/agents',
|
|
43
|
+
'extensions/payment-plans',
|
|
44
|
+
'extensions/auth-providers',
|
|
45
|
+
'extensions/mcp-resources',
|
|
46
|
+
];
|
|
47
|
+
let loadedCount = 0;
|
|
48
|
+
for (const dir of extensionDirs) {
|
|
49
|
+
const fullPath = path.join(basePath, dir);
|
|
50
|
+
if (!await directoryExists(fullPath)) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
// Find all .ts and .js files (except index files)
|
|
54
|
+
const files = await findExtensionFiles(path.join(fullPath, '*.{ts,js}'));
|
|
55
|
+
const filteredFiles = files.filter(f => !path.basename(f).startsWith('index.'));
|
|
56
|
+
for (const file of filteredFiles) {
|
|
57
|
+
try {
|
|
58
|
+
// Import the extension - it should self-register with the registry
|
|
59
|
+
await import(pathToFileURL(file).href);
|
|
60
|
+
loadedCount++;
|
|
61
|
+
console.log(`[Extensions] Loaded: ${path.relative(basePath, file)}`);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error(`[Extensions] Failed to load ${file}:`, error instanceof Error ? error.message : error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (loadedCount > 0) {
|
|
69
|
+
console.log(`[Extensions] Loaded ${loadedCount} extension(s)`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/extensions/loader.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,OAAe;IAC5C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAAe;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IACnE,MAAM,aAAa,GAAG;QACpB,mBAAmB;QACnB,0BAA0B;QAC1B,2BAA2B;QAC3B,0BAA0B;KAC3B,CAAC;IAEF,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,SAAS;QACX,CAAC;QAED,kDAAkD;QAClD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEhF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,mEAAmE;gBACnE,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvC,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,IAAI,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxG,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,eAAe,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Main library exports for @chaaskit/server
|
|
2
|
+
// This file exports factory functions and utilities for programmatic use.
|
|
3
|
+
// For CLI usage, use the bin/cli.ts entry point.
|
|
4
|
+
// App and Server factories
|
|
5
|
+
export { createApp } from './app.js';
|
|
6
|
+
export { createServer, startServer } from './server.js';
|
|
7
|
+
// Config management
|
|
8
|
+
export { loadConfigAsync, loadConfig, getConfig, setConfig, resetConfig, } from './config/loader.js';
|
|
9
|
+
// Registry and base classes for extensions
|
|
10
|
+
export { registry, BaseAgent, BasePricingPlan, BaseAuthProvider, } from './registry/index.js';
|
|
11
|
+
// Extension loader
|
|
12
|
+
export { loadExtensions } from './extensions/loader.js';
|
|
13
|
+
// Services
|
|
14
|
+
export { createAgentService } from './services/agent.js';
|
|
15
|
+
// Queue system
|
|
16
|
+
export {
|
|
17
|
+
// Provider
|
|
18
|
+
createQueueProvider, initializeQueueProvider, closeQueueProvider, getQueueProvider, resetQueueProvider, getDefaultProviderConfig,
|
|
19
|
+
// Worker
|
|
20
|
+
Worker, startWorker, stopWorker, getWorker, resetWorker,
|
|
21
|
+
// Scheduler
|
|
22
|
+
Scheduler, startScheduler, stopScheduler, getScheduler, resetScheduler,
|
|
23
|
+
// Handlers
|
|
24
|
+
registerJobHandler, getJobHandler, hasJobHandler, getRegisteredJobTypes, unregisterJobHandler, clearJobHandlers, executeJob, } from './queue/index.js';
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,0EAA0E;AAC1E,iDAAiD;AAEjD,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAyB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,WAAW,EAA2C,MAAM,aAAa,CAAC;AAEjG,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,2CAA2C;AAC3C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,WAAW;AACX,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAe;AACf,OAAO;AACL,WAAW;AACX,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB;AACxB,SAAS;AACT,MAAM,EACN,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW;AACX,YAAY;AACZ,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc;AACd,WAAW;AACX,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,GAaX,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data loaders for React Router v7 routes.
|
|
3
|
+
*
|
|
4
|
+
* These functions load data on the server for SSR pages.
|
|
5
|
+
* Import them in your React Router route loaders.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* // app/routes/shared.$shareId.tsx
|
|
10
|
+
* import { loadSharedThread } from '@chaaskit/server/loaders';
|
|
11
|
+
*
|
|
12
|
+
* export async function loader({ params }: Route.LoaderArgs) {
|
|
13
|
+
* const data = await loadSharedThread(params.shareId!);
|
|
14
|
+
* return data;
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
import { db } from '@chaaskit/db';
|
|
19
|
+
// ============================================
|
|
20
|
+
// Shared Thread Loader
|
|
21
|
+
// ============================================
|
|
22
|
+
/**
|
|
23
|
+
* Loads a shared thread by its share ID.
|
|
24
|
+
* Returns the thread data including all messages.
|
|
25
|
+
*
|
|
26
|
+
* @throws Error with status 404 if thread not found
|
|
27
|
+
* @throws Error with status 410 if share link has expired
|
|
28
|
+
*/
|
|
29
|
+
export async function loadSharedThread(shareId) {
|
|
30
|
+
const shared = await db.sharedThread.findUnique({
|
|
31
|
+
where: { shareId },
|
|
32
|
+
include: {
|
|
33
|
+
thread: {
|
|
34
|
+
include: {
|
|
35
|
+
messages: {
|
|
36
|
+
orderBy: { createdAt: 'asc' },
|
|
37
|
+
select: {
|
|
38
|
+
id: true,
|
|
39
|
+
role: true,
|
|
40
|
+
content: true,
|
|
41
|
+
createdAt: true,
|
|
42
|
+
threadId: true,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
if (!shared) {
|
|
50
|
+
const error = new Error('Shared thread not found');
|
|
51
|
+
error.status = 404;
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
// Check expiration
|
|
55
|
+
if (shared.expiresAt && shared.expiresAt < new Date()) {
|
|
56
|
+
const error = new Error('Share link has expired');
|
|
57
|
+
error.status = 410;
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
thread: {
|
|
62
|
+
id: shared.thread.id,
|
|
63
|
+
title: shared.thread.title,
|
|
64
|
+
messages: shared.thread.messages.map((m) => ({
|
|
65
|
+
id: m.id,
|
|
66
|
+
role: m.role,
|
|
67
|
+
content: m.content,
|
|
68
|
+
createdAt: m.createdAt,
|
|
69
|
+
threadId: m.threadId,
|
|
70
|
+
})),
|
|
71
|
+
createdAt: shared.thread.createdAt,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AA2BlC,+CAA+C;AAC/C,uBAAuB;AACvB,+CAA+C;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAe;IACpD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC;QAC9C,KAAK,EAAE,EAAE,OAAO,EAAE;QAClB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;wBAC7B,MAAM,EAAE;4BACN,EAAE,EAAE,IAAI;4BACR,IAAI,EAAE,IAAI;4BACV,OAAO,EAAE,IAAI;4BACb,SAAS,EAAE,IAAI;4BACf,QAAQ,EAAE,IAAI;yBACf;qBACF;iBACF;aACF;SACF;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,yBAAyB,CAAgB,CAAC;QAClE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QACnB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,wBAAwB,CAAgB,CAAC;QACjE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QACnB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO;QACL,MAAM,EAAE;YACN,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAuC;gBAC/C,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS;SACnC;KACF,CAAC;AACJ,CAAC"}
|