@crewx/sdk 0.8.0-rc.58
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/LICENSE +201 -0
- package/README.md +1022 -0
- package/dist/adapters/MastraToolAdapter.d.ts +9 -0
- package/dist/adapters/MastraToolAdapter.js +66 -0
- package/dist/adapters/MastraToolAdapter.js.map +1 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/boxing/box-storage.interface.d.ts +13 -0
- package/dist/boxing/box-storage.interface.js +3 -0
- package/dist/boxing/box-storage.interface.js.map +1 -0
- package/dist/boxing/box.service.d.ts +15 -0
- package/dist/boxing/box.service.js +70 -0
- package/dist/boxing/box.service.js.map +1 -0
- package/dist/boxing/box.types.d.ts +86 -0
- package/dist/boxing/box.types.js +3 -0
- package/dist/boxing/box.types.js.map +1 -0
- package/dist/boxing/context-builder.d.ts +8 -0
- package/dist/boxing/context-builder.js +76 -0
- package/dist/boxing/context-builder.js.map +1 -0
- package/dist/boxing/index.d.ts +6 -0
- package/dist/boxing/index.js +11 -0
- package/dist/boxing/index.js.map +1 -0
- package/dist/boxing/tokenizer.d.ts +3 -0
- package/dist/boxing/tokenizer.js +11 -0
- package/dist/boxing/tokenizer.js.map +1 -0
- package/dist/config/api-provider-parser.d.ts +58 -0
- package/dist/config/api-provider-parser.js +212 -0
- package/dist/config/api-provider-parser.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.js +20 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/log.config.d.ts +7 -0
- package/dist/config/log.config.js +20 -0
- package/dist/config/log.config.js.map +1 -0
- package/dist/config/pricing.d.ts +10 -0
- package/dist/config/pricing.js +44 -0
- package/dist/config/pricing.js.map +1 -0
- package/dist/config/timeout.config.d.ts +14 -0
- package/dist/config/timeout.config.js +34 -0
- package/dist/config/timeout.config.js.map +1 -0
- package/dist/config/yaml-loader.d.ts +8 -0
- package/dist/config/yaml-loader.js +155 -0
- package/dist/config/yaml-loader.js.map +1 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.js +8 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +18 -0
- package/dist/constants.js.map +1 -0
- package/dist/conversation/conversation-config.d.ts +9 -0
- package/dist/conversation/conversation-config.js +22 -0
- package/dist/conversation/conversation-config.js.map +1 -0
- package/dist/conversation/conversation-history.interface.d.ts +36 -0
- package/dist/conversation/conversation-history.interface.js +3 -0
- package/dist/conversation/conversation-history.interface.js.map +1 -0
- package/dist/conversation/conversation-storage.service.d.ts +16 -0
- package/dist/conversation/conversation-storage.service.js +213 -0
- package/dist/conversation/conversation-storage.service.js.map +1 -0
- package/dist/conversation/index.d.ts +3 -0
- package/dist/conversation/index.js +20 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/core/agent/agent-factory.d.ts +37 -0
- package/dist/core/agent/agent-factory.js +68 -0
- package/dist/core/agent/agent-factory.js.map +1 -0
- package/dist/core/agent/agent-runtime.d.ts +52 -0
- package/dist/core/agent/agent-runtime.js +206 -0
- package/dist/core/agent/agent-runtime.js.map +1 -0
- package/dist/core/agent/event-bus.d.ts +44 -0
- package/dist/core/agent/event-bus.js +43 -0
- package/dist/core/agent/event-bus.js.map +1 -0
- package/dist/core/agent/index.d.ts +3 -0
- package/dist/core/agent/index.js +13 -0
- package/dist/core/agent/index.js.map +1 -0
- package/dist/core/env-defaults.d.ts +1 -0
- package/dist/core/env-defaults.js +7 -0
- package/dist/core/env-defaults.js.map +1 -0
- package/dist/core/parallel/helpers.d.ts +27 -0
- package/dist/core/parallel/helpers.js +252 -0
- package/dist/core/parallel/helpers.js.map +1 -0
- package/dist/core/parallel/index.d.ts +4 -0
- package/dist/core/parallel/index.js +11 -0
- package/dist/core/parallel/index.js.map +1 -0
- package/dist/core/parallel/parallel-runner.d.ts +16 -0
- package/dist/core/parallel/parallel-runner.js +230 -0
- package/dist/core/parallel/parallel-runner.js.map +1 -0
- package/dist/core/parallel/types.d.ts +41 -0
- package/dist/core/parallel/types.js +3 -0
- package/dist/core/parallel/types.js.map +1 -0
- package/dist/core/providers/MastraAPIProvider.d.ts +31 -0
- package/dist/core/providers/MastraAPIProvider.js +365 -0
- package/dist/core/providers/MastraAPIProvider.js.map +1 -0
- package/dist/core/providers/ai-provider.interface.d.ts +78 -0
- package/dist/core/providers/ai-provider.interface.js +23 -0
- package/dist/core/providers/ai-provider.interface.js.map +1 -0
- package/dist/core/providers/base-ai.provider.d.ts +80 -0
- package/dist/core/providers/base-ai.provider.js +1183 -0
- package/dist/core/providers/base-ai.provider.js.map +1 -0
- package/dist/core/providers/base-ai.types.d.ts +26 -0
- package/dist/core/providers/base-ai.types.js +3 -0
- package/dist/core/providers/base-ai.types.js.map +1 -0
- package/dist/core/providers/claude.provider.d.ts +19 -0
- package/dist/core/providers/claude.provider.js +170 -0
- package/dist/core/providers/claude.provider.js.map +1 -0
- package/dist/core/providers/codex.provider.d.ts +21 -0
- package/dist/core/providers/codex.provider.js +134 -0
- package/dist/core/providers/codex.provider.js.map +1 -0
- package/dist/core/providers/copilot.provider.d.ts +24 -0
- package/dist/core/providers/copilot.provider.js +146 -0
- package/dist/core/providers/copilot.provider.js.map +1 -0
- package/dist/core/providers/dynamic-provider.factory.d.ts +74 -0
- package/dist/core/providers/dynamic-provider.factory.js +643 -0
- package/dist/core/providers/dynamic-provider.factory.js.map +1 -0
- package/dist/core/providers/gemini.provider.d.ts +16 -0
- package/dist/core/providers/gemini.provider.js +101 -0
- package/dist/core/providers/gemini.provider.js.map +1 -0
- package/dist/core/providers/index.d.ts +8 -0
- package/dist/core/providers/index.js +20 -0
- package/dist/core/providers/index.js.map +1 -0
- package/dist/core/providers/mock.provider.d.ts +13 -0
- package/dist/core/providers/mock.provider.js +55 -0
- package/dist/core/providers/mock.provider.js.map +1 -0
- package/dist/core/providers/provider-factory.d.ts +3 -0
- package/dist/core/providers/provider-factory.js +65 -0
- package/dist/core/providers/provider-factory.js.map +1 -0
- package/dist/core/providers/tool-call.types.d.ts +39 -0
- package/dist/core/providers/tool-call.types.js +3 -0
- package/dist/core/providers/tool-call.types.js.map +1 -0
- package/dist/core/remote/index.d.ts +3 -0
- package/dist/core/remote/index.js +20 -0
- package/dist/core/remote/index.js.map +1 -0
- package/dist/core/remote/remote-agent-manager.d.ts +24 -0
- package/dist/core/remote/remote-agent-manager.js +195 -0
- package/dist/core/remote/remote-agent-manager.js.map +1 -0
- package/dist/core/remote/remote-transport.d.ts +15 -0
- package/dist/core/remote/remote-transport.js +70 -0
- package/dist/core/remote/remote-transport.js.map +1 -0
- package/dist/core/remote/types.d.ts +79 -0
- package/dist/core/remote/types.js +3 -0
- package/dist/core/remote/types.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.js +133 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/index.d.ts +1 -0
- package/dist/internal/index.js +6 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/knowledge/DocumentManager.d.ts +4 -0
- package/dist/knowledge/DocumentManager.js +119 -0
- package/dist/knowledge/DocumentManager.js.map +1 -0
- package/dist/knowledge/index.d.ts +1 -0
- package/dist/knowledge/index.js +18 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/parsers/agent-call.util.d.ts +3 -0
- package/dist/parsers/agent-call.util.js +17 -0
- package/dist/parsers/agent-call.util.js.map +1 -0
- package/dist/parsers/claude.parser.d.ts +2 -0
- package/dist/parsers/claude.parser.js +46 -0
- package/dist/parsers/claude.parser.js.map +1 -0
- package/dist/parsers/codex.parser.d.ts +2 -0
- package/dist/parsers/codex.parser.js +89 -0
- package/dist/parsers/codex.parser.js.map +1 -0
- package/dist/parsers/copilot.parser.d.ts +2 -0
- package/dist/parsers/copilot.parser.js +58 -0
- package/dist/parsers/copilot.parser.js.map +1 -0
- package/dist/parsers/gemini.parser.d.ts +2 -0
- package/dist/parsers/gemini.parser.js +36 -0
- package/dist/parsers/gemini.parser.js.map +1 -0
- package/dist/parsers/index.d.ts +7 -0
- package/dist/parsers/index.js +45 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/schema/skills-parser.d.ts +8 -0
- package/dist/schema/skills-parser.js +438 -0
- package/dist/schema/skills-parser.js.map +1 -0
- package/dist/schema/skills.types.d.ts +158 -0
- package/dist/schema/skills.types.js +41 -0
- package/dist/schema/skills.types.js.map +1 -0
- package/dist/schemas/api-provider.schema.d.ts +432 -0
- package/dist/schemas/api-provider.schema.js +50 -0
- package/dist/schemas/api-provider.schema.js.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +19 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/layout-loader.service.d.ts +18 -0
- package/dist/services/layout-loader.service.js +271 -0
- package/dist/services/layout-loader.service.js.map +1 -0
- package/dist/services/layout-renderer.service.d.ts +34 -0
- package/dist/services/layout-renderer.service.js +325 -0
- package/dist/services/layout-renderer.service.js.map +1 -0
- package/dist/services/props-validator.service.d.ts +29 -0
- package/dist/services/props-validator.service.js +332 -0
- package/dist/services/props-validator.service.js.map +1 -0
- package/dist/skills/adapter/claude-skill-adapter.d.ts +11 -0
- package/dist/skills/adapter/claude-skill-adapter.js +222 -0
- package/dist/skills/adapter/claude-skill-adapter.js.map +1 -0
- package/dist/skills/index.d.ts +6 -0
- package/dist/skills/index.js +31 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/runtime/progressive-loader.d.ts +27 -0
- package/dist/skills/runtime/progressive-loader.js +186 -0
- package/dist/skills/runtime/progressive-loader.js.map +1 -0
- package/dist/skills/runtime/runtime-requirements-validator.d.ts +23 -0
- package/dist/skills/runtime/runtime-requirements-validator.js +248 -0
- package/dist/skills/runtime/runtime-requirements-validator.js.map +1 -0
- package/dist/skills/runtime/skill-runtime.service.d.ts +42 -0
- package/dist/skills/runtime/skill-runtime.service.js +434 -0
- package/dist/skills/runtime/skill-runtime.service.js.map +1 -0
- package/dist/tools/file-system.service.d.ts +10 -0
- package/dist/tools/file-system.service.js +33 -0
- package/dist/tools/file-system.service.js.map +1 -0
- package/dist/tools/find.tool.d.ts +85 -0
- package/dist/tools/find.tool.js +139 -0
- package/dist/tools/find.tool.js.map +1 -0
- package/dist/tools/glob.tool.d.ts +100 -0
- package/dist/tools/glob.tool.js +153 -0
- package/dist/tools/glob.tool.js.map +1 -0
- package/dist/tools/grep.tool.d.ts +30 -0
- package/dist/tools/grep.tool.js +137 -0
- package/dist/tools/grep.tool.js.map +1 -0
- package/dist/tools/index.d.ts +12 -0
- package/dist/tools/index.js +40 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/ls.tool.d.ts +24 -0
- package/dist/tools/ls.tool.js +94 -0
- package/dist/tools/ls.tool.js.map +1 -0
- package/dist/tools/read-file.tool.d.ts +30 -0
- package/dist/tools/read-file.tool.js +69 -0
- package/dist/tools/read-file.tool.js.map +1 -0
- package/dist/tools/replace.tool.d.ts +36 -0
- package/dist/tools/replace.tool.js +68 -0
- package/dist/tools/replace.tool.js.map +1 -0
- package/dist/tools/run-shell-command.tool.d.ts +24 -0
- package/dist/tools/run-shell-command.tool.js +64 -0
- package/dist/tools/run-shell-command.tool.js.map +1 -0
- package/dist/tools/tree.tool.d.ts +24 -0
- package/dist/tools/tree.tool.js +109 -0
- package/dist/tools/tree.tool.js.map +1 -0
- package/dist/tools/types.d.ts +42 -0
- package/dist/tools/types.js +13 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/utils/file-utils.d.ts +5 -0
- package/dist/tools/utils/file-utils.js +221 -0
- package/dist/tools/utils/file-utils.js.map +1 -0
- package/dist/tools/write-file.tool.d.ts +24 -0
- package/dist/tools/write-file.tool.js +55 -0
- package/dist/tools/write-file.tool.js.map +1 -0
- package/dist/types/agent.types.d.ts +134 -0
- package/dist/types/agent.types.js +16 -0
- package/dist/types/agent.types.js.map +1 -0
- package/dist/types/api-provider.types.d.ts +85 -0
- package/dist/types/api-provider.types.js +65 -0
- package/dist/types/api-provider.types.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/layout.types.d.ts +115 -0
- package/dist/types/layout.types.js +22 -0
- package/dist/types/layout.types.js.map +1 -0
- package/dist/types/provider.types.d.ts +12 -0
- package/dist/types/provider.types.js +3 -0
- package/dist/types/provider.types.js.map +1 -0
- package/dist/types/skill-runtime.types.d.ts +244 -0
- package/dist/types/skill-runtime.types.js +44 -0
- package/dist/types/skill-runtime.types.js.map +1 -0
- package/dist/types/structured-payload.types.d.ts +46 -0
- package/dist/types/structured-payload.types.js +65 -0
- package/dist/types/structured-payload.types.js.map +1 -0
- package/dist/types/task-log.types.d.ts +14 -0
- package/dist/types/task-log.types.js +3 -0
- package/dist/types/task-log.types.js.map +1 -0
- package/dist/types/template.types.d.ts +38 -0
- package/dist/types/template.types.js +3 -0
- package/dist/types/template.types.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +18 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/api-provider-normalizer.d.ts +16 -0
- package/dist/utils/api-provider-normalizer.js +135 -0
- package/dist/utils/api-provider-normalizer.js.map +1 -0
- package/dist/utils/base-message-formatter.d.ts +32 -0
- package/dist/utils/base-message-formatter.js +170 -0
- package/dist/utils/base-message-formatter.js.map +1 -0
- package/dist/utils/error-utils.d.ts +3 -0
- package/dist/utils/error-utils.js +27 -0
- package/dist/utils/error-utils.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/math-utils.d.ts +3 -0
- package/dist/utils/math-utils.js +10 -0
- package/dist/utils/math-utils.js.map +1 -0
- package/dist/utils/mention-parser.d.ts +18 -0
- package/dist/utils/mention-parser.js +136 -0
- package/dist/utils/mention-parser.js.map +1 -0
- package/dist/utils/string-utils.d.ts +1 -0
- package/dist/utils/string-utils.js +10 -0
- package/dist/utils/string-utils.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +20 -0
- package/dist/utils.js.map +1 -0
- package/package.json +134 -0
- package/schema/api-provider-config.json +138 -0
- package/schema/crewx-config.json +224 -0
- package/schema/skills-config.json +306 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { APIProviderConfig, ProviderExecutionMode } from '../types/api-provider.types';
|
|
2
|
+
export interface ModePermissionBuckets {
|
|
3
|
+
tools: string[];
|
|
4
|
+
mcp: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface NormalizedAPIProviderConfigResult {
|
|
7
|
+
config: APIProviderConfig;
|
|
8
|
+
permissionsByMode: Record<string, ModePermissionBuckets>;
|
|
9
|
+
}
|
|
10
|
+
export declare class APIProviderNormalizationError extends Error {
|
|
11
|
+
constructor(message: string);
|
|
12
|
+
}
|
|
13
|
+
export declare function normalizeAPIProviderConfig(config: APIProviderConfig): NormalizedAPIProviderConfigResult;
|
|
14
|
+
export declare function getModePermissions(normalized: NormalizedAPIProviderConfigResult, mode: ProviderExecutionMode): ModePermissionBuckets;
|
|
15
|
+
export declare function isAPIProviderConfig(candidate: unknown): candidate is APIProviderConfig;
|
|
16
|
+
export declare function assertAPIProviderConfig(candidate: unknown): asserts candidate is APIProviderConfig;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.APIProviderNormalizationError = void 0;
|
|
4
|
+
exports.normalizeAPIProviderConfig = normalizeAPIProviderConfig;
|
|
5
|
+
exports.getModePermissions = getModePermissions;
|
|
6
|
+
exports.isAPIProviderConfig = isAPIProviderConfig;
|
|
7
|
+
exports.assertAPIProviderConfig = assertAPIProviderConfig;
|
|
8
|
+
const api_provider_schema_1 = require("../schemas/api-provider.schema");
|
|
9
|
+
const api_provider_types_1 = require("../types/api-provider.types");
|
|
10
|
+
class APIProviderNormalizationError extends Error {
|
|
11
|
+
constructor(message) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = 'APIProviderNormalizationError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.APIProviderNormalizationError = APIProviderNormalizationError;
|
|
17
|
+
function normalizeAPIProviderConfig(config) {
|
|
18
|
+
const normalizedConfig = {
|
|
19
|
+
...config,
|
|
20
|
+
};
|
|
21
|
+
const normalizedOptions = {};
|
|
22
|
+
const permissionsByMode = {};
|
|
23
|
+
const parsedOptions = parseOptions(config.options);
|
|
24
|
+
mergeOptions(normalizedOptions, parsedOptions, permissionsByMode);
|
|
25
|
+
if ((0, api_provider_types_1.isLegacyProviderPermissionConfig)(config)) {
|
|
26
|
+
const legacyOptions = (0, api_provider_types_1.convertLegacyPermissionsToProviderOptions)(config);
|
|
27
|
+
mergeOptions(normalizedOptions, legacyOptions, permissionsByMode);
|
|
28
|
+
}
|
|
29
|
+
ensureDefaultModes(normalizedOptions, permissionsByMode);
|
|
30
|
+
normalizedConfig.options = normalizedOptions;
|
|
31
|
+
return {
|
|
32
|
+
config: normalizedConfig,
|
|
33
|
+
permissionsByMode,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function getModePermissions(normalized, mode) {
|
|
37
|
+
return normalized.permissionsByMode[mode] ?? { tools: [], mcp: [] };
|
|
38
|
+
}
|
|
39
|
+
function isAPIProviderConfig(candidate) {
|
|
40
|
+
return api_provider_schema_1.APIProviderConfigSchema.safeParse(candidate).success;
|
|
41
|
+
}
|
|
42
|
+
function assertAPIProviderConfig(candidate) {
|
|
43
|
+
const result = api_provider_schema_1.APIProviderConfigSchema.safeParse(candidate);
|
|
44
|
+
if (!result.success) {
|
|
45
|
+
throw new APIProviderNormalizationError(`Invalid API provider configuration: ${result.error.message}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function parseOptions(rawOptions) {
|
|
49
|
+
if (!rawOptions) {
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
52
|
+
const parsed = api_provider_schema_1.ProviderOptionsSchema.safeParse(rawOptions);
|
|
53
|
+
if (!parsed.success) {
|
|
54
|
+
throw new APIProviderNormalizationError(`Invalid provider options: ${parsed.error.message}`);
|
|
55
|
+
}
|
|
56
|
+
return parsed.data ?? {};
|
|
57
|
+
}
|
|
58
|
+
function mergeOptions(target, source, permissionsByMode) {
|
|
59
|
+
for (const [mode, rawModeOptions] of Object.entries(source)) {
|
|
60
|
+
if (!rawModeOptions) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const normalizedMode = normalizeModeOptions(rawModeOptions);
|
|
64
|
+
const existingMode = target[mode] ?? { tools: [], mcp: [] };
|
|
65
|
+
const mergedTools = mergeStringLists(existingMode.tools ?? [], normalizedMode.tools ?? []);
|
|
66
|
+
const mergedMcp = mergeStringLists(existingMode.mcp ?? [], normalizedMode.mcp ?? []);
|
|
67
|
+
target[mode] = {
|
|
68
|
+
tools: mergedTools,
|
|
69
|
+
mcp: mergedMcp,
|
|
70
|
+
};
|
|
71
|
+
permissionsByMode[mode] = {
|
|
72
|
+
tools: [...mergedTools],
|
|
73
|
+
mcp: [...mergedMcp],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function ensureDefaultModes(options, permissionsByMode) {
|
|
78
|
+
const defaultModes = ['query', 'execute'];
|
|
79
|
+
for (const mode of defaultModes) {
|
|
80
|
+
const modeOptions = options[mode] ?? { tools: [], mcp: [] };
|
|
81
|
+
const normalizedMode = normalizeModeOptions(modeOptions);
|
|
82
|
+
options[mode] = normalizedMode;
|
|
83
|
+
permissionsByMode[mode] = {
|
|
84
|
+
tools: [...(normalizedMode.tools ?? [])],
|
|
85
|
+
mcp: [...(normalizedMode.mcp ?? [])],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function normalizeModeOptions(modeOptions) {
|
|
90
|
+
const parsed = api_provider_schema_1.ProviderModeOptionsSchema.safeParse(modeOptions ?? {});
|
|
91
|
+
if (!parsed.success) {
|
|
92
|
+
throw new APIProviderNormalizationError(`Invalid mode configuration: ${parsed.error.message}`);
|
|
93
|
+
}
|
|
94
|
+
const tools = dedupeStrings(parsed.data.tools);
|
|
95
|
+
const mcp = dedupeStrings(parsed.data.mcp);
|
|
96
|
+
return {
|
|
97
|
+
tools,
|
|
98
|
+
mcp,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function mergeStringLists(base, additions) {
|
|
102
|
+
if (base.length === 0 && additions.length === 0) {
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
const merged = new Set();
|
|
106
|
+
for (const value of base) {
|
|
107
|
+
if (value) {
|
|
108
|
+
merged.add(value);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
for (const value of additions) {
|
|
112
|
+
if (value) {
|
|
113
|
+
merged.add(value);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return Array.from(merged);
|
|
117
|
+
}
|
|
118
|
+
function dedupeStrings(values) {
|
|
119
|
+
if (!values) {
|
|
120
|
+
return [];
|
|
121
|
+
}
|
|
122
|
+
const normalized = new Set();
|
|
123
|
+
for (const value of values) {
|
|
124
|
+
if (typeof value !== 'string') {
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
const trimmed = value.trim();
|
|
128
|
+
if (trimmed.length === 0) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
normalized.add(trimmed);
|
|
132
|
+
}
|
|
133
|
+
return Array.from(normalized);
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=api-provider-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-provider-normalizer.js","sourceRoot":"","sources":["../../src/utils/api-provider-normalizer.ts"],"names":[],"mappings":";;;AAiCA,gEA0BC;AAED,gDAKC;AAED,kDAEC;AAED,0DAOC;AAzED,wEAIwC;AACxC,oEAGqC;AAYrC,MAAa,6BAA8B,SAAQ,KAAK;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AALD,sEAKC;AAED,SAAgB,0BAA0B,CACxC,MAAyB;IAEzB,MAAM,gBAAgB,GAAsB;QAC1C,GAAG,MAAM;KACV,CAAC;IAEF,MAAM,iBAAiB,GAAoB,EAAE,CAAC;IAC9C,MAAM,iBAAiB,GAA0C,EAAE,CAAC;IAEpE,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAElE,IAAI,IAAA,qDAAgC,EAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,IAAA,8DAAyC,EAAC,MAAM,CAAC,CAAC;QACxE,YAAY,CAAC,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACpE,CAAC;IAED,kBAAkB,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;IAEzD,gBAAgB,CAAC,OAAO,GAAG,iBAAiB,CAAC;IAE7C,OAAO;QACL,MAAM,EAAE,gBAAgB;QACxB,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAChC,UAA6C,EAC7C,IAA2B;IAE3B,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtE,CAAC;AAED,SAAgB,mBAAmB,CAAC,SAAkB;IACpD,OAAO,6CAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;AAC9D,CAAC;AAED,SAAgB,uBAAuB,CAAC,SAAkB;IACxD,MAAM,MAAM,GAAG,6CAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,6BAA6B,CACrC,uCAAuC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,UAA4B;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,2CAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,6BAA6B,CACrC,6BAA6B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACpD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,YAAY,CACnB,MAAuB,EACvB,MAAuB,EACvB,iBAAwD;IAExD,KAAK,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAE5D,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAErF,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,WAAW;YAClB,GAAG,EAAE,SAAS;SACe,CAAC;QAEhC,iBAAiB,CAAC,IAAI,CAAC,GAAG;YACxB,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC;YACvB,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;SACpB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAwB,EACxB,iBAAwD;IAExD,MAAM,YAAY,GAA4B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC5D,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;QAC/B,iBAAiB,CAAC,IAAI,CAAC,GAAG;YACxB,KAAK,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACxC,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;SACrC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAAiC;IAEjC,MAAM,MAAM,GAAG,+CAAyB,CAAC,SAAS,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,6BAA6B,CACrC,+BAA+B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CACtD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3C,OAAO;QACL,KAAK;QACL,GAAG;KAC0B,CAAC;AAClC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc,EAAE,SAAmB;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ConversationMessage } from '../conversation/conversation-history.interface';
|
|
2
|
+
export interface StructuredMessage {
|
|
3
|
+
id?: string;
|
|
4
|
+
userId?: string;
|
|
5
|
+
text: string;
|
|
6
|
+
timestamp?: Date | string;
|
|
7
|
+
isAssistant: boolean;
|
|
8
|
+
metadata?: Record<string, any>;
|
|
9
|
+
}
|
|
10
|
+
export interface FormatterOptions {
|
|
11
|
+
platform?: 'cli' | 'slack' | string;
|
|
12
|
+
includeUserId?: boolean;
|
|
13
|
+
includeTimestamp?: boolean;
|
|
14
|
+
maxLength?: number;
|
|
15
|
+
userPrefix?: string;
|
|
16
|
+
assistantPrefix?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare abstract class BaseMessageFormatter {
|
|
19
|
+
formatHistory(messages: StructuredMessage[], options?: FormatterOptions): string;
|
|
20
|
+
formatMessage(msg: StructuredMessage, options?: FormatterOptions): string;
|
|
21
|
+
buildContext(payload: any, options?: FormatterOptions): string;
|
|
22
|
+
convertToStructured(message: ConversationMessage): StructuredMessage;
|
|
23
|
+
convertToStructuredArray(messages: ConversationMessage[]): StructuredMessage[];
|
|
24
|
+
protected formatMetadata(metadata: Record<string, any>): string;
|
|
25
|
+
protected normalizeTimestamp(timestamp: Date | string): string;
|
|
26
|
+
protected sanitizeText(text: string, maxLength?: number): string;
|
|
27
|
+
protected truncateText(text: string, maxLength: number): string;
|
|
28
|
+
protected getDefaultOptions(options?: FormatterOptions): FormatterOptions;
|
|
29
|
+
protected resolveDisplayName(msg: StructuredMessage): string | undefined;
|
|
30
|
+
}
|
|
31
|
+
export declare class DefaultMessageFormatter extends BaseMessageFormatter {
|
|
32
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultMessageFormatter = exports.BaseMessageFormatter = void 0;
|
|
4
|
+
class BaseMessageFormatter {
|
|
5
|
+
formatHistory(messages, options) {
|
|
6
|
+
if (!messages || messages.length === 0) {
|
|
7
|
+
return '';
|
|
8
|
+
}
|
|
9
|
+
const formattedMessages = messages.map(msg => this.formatMessage(msg, options));
|
|
10
|
+
return formattedMessages.join('\n\n');
|
|
11
|
+
}
|
|
12
|
+
formatMessage(msg, options) {
|
|
13
|
+
if (!msg || !msg.text) {
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
const opts = this.getDefaultOptions(options);
|
|
17
|
+
const customUserPrefix = options?.userPrefix;
|
|
18
|
+
const customAssistantPrefix = options?.assistantPrefix;
|
|
19
|
+
const parts = [];
|
|
20
|
+
const displayName = this.resolveDisplayName(msg);
|
|
21
|
+
if (msg.isAssistant) {
|
|
22
|
+
const assistantLabel = customAssistantPrefix ||
|
|
23
|
+
opts.assistantPrefix ||
|
|
24
|
+
(displayName ? `🤖 ${displayName}` : '🤖 Assistant');
|
|
25
|
+
parts.push(assistantLabel);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
if (customUserPrefix) {
|
|
29
|
+
parts.push(customUserPrefix);
|
|
30
|
+
}
|
|
31
|
+
else if (displayName) {
|
|
32
|
+
parts.push(`👤 ${displayName}`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
parts.push(opts.userPrefix || '👤 User');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (opts.includeUserId && msg.userId) {
|
|
39
|
+
parts.push(`(${msg.userId})`);
|
|
40
|
+
}
|
|
41
|
+
if (opts.includeTimestamp && msg.timestamp) {
|
|
42
|
+
const timestamp = this.normalizeTimestamp(msg.timestamp);
|
|
43
|
+
parts.push(`[${timestamp}]`);
|
|
44
|
+
}
|
|
45
|
+
const header = parts.join(' ');
|
|
46
|
+
const safeText = this.sanitizeText(msg.text, opts.maxLength);
|
|
47
|
+
return `${header}:\n${safeText}`;
|
|
48
|
+
}
|
|
49
|
+
buildContext(payload, options) {
|
|
50
|
+
if (!payload) {
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
const parts = [];
|
|
54
|
+
if (payload.prompt) {
|
|
55
|
+
parts.push(`**Prompt:**\n${payload.prompt}`);
|
|
56
|
+
}
|
|
57
|
+
if (payload.context) {
|
|
58
|
+
parts.push(`**Context:**\n${payload.context}`);
|
|
59
|
+
}
|
|
60
|
+
if (payload.messages && Array.isArray(payload.messages)) {
|
|
61
|
+
const history = this.formatHistory(payload.messages, options);
|
|
62
|
+
if (history) {
|
|
63
|
+
parts.push(`**Conversation History:**\n${history}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (payload.metadata) {
|
|
67
|
+
const metadataStr = this.formatMetadata(payload.metadata);
|
|
68
|
+
if (metadataStr) {
|
|
69
|
+
parts.push(`**Metadata:**\n${metadataStr}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return parts.join('\n\n');
|
|
73
|
+
}
|
|
74
|
+
convertToStructured(message) {
|
|
75
|
+
return {
|
|
76
|
+
id: message.id,
|
|
77
|
+
userId: message.userId,
|
|
78
|
+
text: message.text,
|
|
79
|
+
timestamp: message.timestamp,
|
|
80
|
+
isAssistant: message.isAssistant,
|
|
81
|
+
metadata: message.metadata,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
convertToStructuredArray(messages) {
|
|
85
|
+
if (!messages || messages.length === 0) {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
return messages.map(msg => this.convertToStructured(msg));
|
|
89
|
+
}
|
|
90
|
+
formatMetadata(metadata) {
|
|
91
|
+
if (!metadata || Object.keys(metadata).length === 0) {
|
|
92
|
+
return '';
|
|
93
|
+
}
|
|
94
|
+
const lines = Object.entries(metadata)
|
|
95
|
+
.filter(([_, value]) => value !== undefined && value !== null)
|
|
96
|
+
.map(([key, value]) => {
|
|
97
|
+
const valueStr = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
98
|
+
return `- ${key}: ${valueStr}`;
|
|
99
|
+
});
|
|
100
|
+
return lines.join('\n');
|
|
101
|
+
}
|
|
102
|
+
normalizeTimestamp(timestamp) {
|
|
103
|
+
if (!timestamp) {
|
|
104
|
+
return '';
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
const date = timestamp instanceof Date ? timestamp : new Date(timestamp);
|
|
108
|
+
if (isNaN(date.getTime())) {
|
|
109
|
+
return String(timestamp);
|
|
110
|
+
}
|
|
111
|
+
return date.toISOString();
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
return String(timestamp);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
sanitizeText(text, maxLength) {
|
|
118
|
+
if (!text) {
|
|
119
|
+
return '';
|
|
120
|
+
}
|
|
121
|
+
let sanitized = text;
|
|
122
|
+
if (maxLength && sanitized.length > maxLength) {
|
|
123
|
+
sanitized = this.truncateText(sanitized, maxLength);
|
|
124
|
+
}
|
|
125
|
+
return sanitized;
|
|
126
|
+
}
|
|
127
|
+
truncateText(text, maxLength) {
|
|
128
|
+
if (!text || text.length <= maxLength) {
|
|
129
|
+
return text;
|
|
130
|
+
}
|
|
131
|
+
const searchStart = Math.max(0, maxLength - 100);
|
|
132
|
+
let breakPoint = maxLength - 20;
|
|
133
|
+
const lastNewline = text.lastIndexOf('\n', breakPoint);
|
|
134
|
+
if (lastNewline > searchStart) {
|
|
135
|
+
breakPoint = lastNewline;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const lastPeriod = text.lastIndexOf('. ', breakPoint);
|
|
139
|
+
if (lastPeriod > searchStart) {
|
|
140
|
+
breakPoint = lastPeriod + 1;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const truncated = text.substring(0, breakPoint);
|
|
144
|
+
const remaining = text.length - breakPoint;
|
|
145
|
+
return `${truncated}\n\n...[truncated ${remaining} characters]`;
|
|
146
|
+
}
|
|
147
|
+
getDefaultOptions(options) {
|
|
148
|
+
return {
|
|
149
|
+
platform: 'cli',
|
|
150
|
+
includeUserId: true,
|
|
151
|
+
includeTimestamp: false,
|
|
152
|
+
userPrefix: '👤 User',
|
|
153
|
+
assistantPrefix: '🤖 Assistant',
|
|
154
|
+
...options,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
resolveDisplayName(msg) {
|
|
158
|
+
const metadata = msg.metadata || {};
|
|
159
|
+
return (metadata.realName ||
|
|
160
|
+
metadata.displayName ||
|
|
161
|
+
metadata.username ||
|
|
162
|
+
metadata.agentName ||
|
|
163
|
+
undefined);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.BaseMessageFormatter = BaseMessageFormatter;
|
|
167
|
+
class DefaultMessageFormatter extends BaseMessageFormatter {
|
|
168
|
+
}
|
|
169
|
+
exports.DefaultMessageFormatter = DefaultMessageFormatter;
|
|
170
|
+
//# sourceMappingURL=base-message-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-message-formatter.js","sourceRoot":"","sources":["../../src/utils/base-message-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isError = isError;
|
|
4
|
+
exports.getErrorMessage = getErrorMessage;
|
|
5
|
+
exports.getErrorStack = getErrorStack;
|
|
6
|
+
function isError(error) {
|
|
7
|
+
return error instanceof Error;
|
|
8
|
+
}
|
|
9
|
+
function getErrorMessage(error) {
|
|
10
|
+
if (isError(error)) {
|
|
11
|
+
return error.message;
|
|
12
|
+
}
|
|
13
|
+
if (typeof error === 'string') {
|
|
14
|
+
return error;
|
|
15
|
+
}
|
|
16
|
+
if (error && typeof error === 'object' && 'message' in error) {
|
|
17
|
+
return String(error.message);
|
|
18
|
+
}
|
|
19
|
+
return 'An unknown error occurred';
|
|
20
|
+
}
|
|
21
|
+
function getErrorStack(error) {
|
|
22
|
+
if (isError(error)) {
|
|
23
|
+
return error.stack;
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=error-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../../src/utils/error-utils.ts"],"names":[],"mappings":";;AAIA,0BAEC;AAED,0CAWC;AAED,sCAKC;AAtBD,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./error-utils"), exports);
|
|
18
|
+
__exportStar(require("./string-utils"), exports);
|
|
19
|
+
__exportStar(require("./math-utils"), exports);
|
|
20
|
+
__exportStar(require("./mention-parser"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,mDAAiC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.subtract = exports.multiply = exports.add = void 0;
|
|
4
|
+
const add = (a, b) => a + b;
|
|
5
|
+
exports.add = add;
|
|
6
|
+
const multiply = (a, b) => a * b;
|
|
7
|
+
exports.multiply = multiply;
|
|
8
|
+
const subtract = (a, b) => a - b;
|
|
9
|
+
exports.subtract = subtract;
|
|
10
|
+
//# sourceMappingURL=math-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-utils.js","sourceRoot":"","sources":["../../src/utils/math-utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAA9C,QAAA,GAAG,OAA2C;AACpD,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAAnD,QAAA,QAAQ,YAA2C;AACzD,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAAnD,QAAA,QAAQ,YAA2C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface MentionTask {
|
|
2
|
+
agents: string[];
|
|
3
|
+
task: string;
|
|
4
|
+
type: 'shared' | 'individual';
|
|
5
|
+
models?: Map<string, string>;
|
|
6
|
+
}
|
|
7
|
+
export interface ParsedMentions {
|
|
8
|
+
tasks: MentionTask[];
|
|
9
|
+
unmatchedText: string[];
|
|
10
|
+
errors: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare class MentionParser {
|
|
13
|
+
private readonly agentPattern;
|
|
14
|
+
private readonly validAgents;
|
|
15
|
+
constructor(validAgents: string[]);
|
|
16
|
+
parse(text: string): ParsedMentions;
|
|
17
|
+
}
|
|
18
|
+
export declare function loadAvailableAgents(configPath?: string): Promise<string[]>;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.MentionParser = void 0;
|
|
37
|
+
exports.loadAvailableAgents = loadAvailableAgents;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const yaml = __importStar(require("js-yaml"));
|
|
40
|
+
class MentionParser {
|
|
41
|
+
constructor(validAgents) {
|
|
42
|
+
this.agentPattern = /(@[a-zA-Z0-9_]+(?::[a-zA-Z0-9._-]+)?)/g;
|
|
43
|
+
this.validAgents = new Set(validAgents);
|
|
44
|
+
}
|
|
45
|
+
parse(text) {
|
|
46
|
+
const tasks = [];
|
|
47
|
+
const errors = [];
|
|
48
|
+
const unmatchedText = [];
|
|
49
|
+
const parts = text.split(this.agentPattern);
|
|
50
|
+
let agentGroup = [];
|
|
51
|
+
let modelMap = new Map();
|
|
52
|
+
let taskText = '';
|
|
53
|
+
let leadingText = '';
|
|
54
|
+
if (parts.length > 0 && parts[0] && !parts[0].startsWith('@')) {
|
|
55
|
+
leadingText = parts.shift()?.trim() ?? '';
|
|
56
|
+
}
|
|
57
|
+
for (const part of parts) {
|
|
58
|
+
if (!part)
|
|
59
|
+
continue;
|
|
60
|
+
if (part.startsWith('@')) {
|
|
61
|
+
const mentionPart = part.substring(1);
|
|
62
|
+
const [agentId, model] = mentionPart.split(':');
|
|
63
|
+
if (!agentId)
|
|
64
|
+
continue;
|
|
65
|
+
if (this.validAgents.has(agentId)) {
|
|
66
|
+
if (taskText.trim() && agentGroup.length > 0) {
|
|
67
|
+
tasks.push({
|
|
68
|
+
agents: agentGroup,
|
|
69
|
+
task: taskText.trim(),
|
|
70
|
+
type: agentGroup.length > 1 ? 'shared' : 'individual',
|
|
71
|
+
models: modelMap.size > 0 ? modelMap : undefined,
|
|
72
|
+
});
|
|
73
|
+
agentGroup = [agentId];
|
|
74
|
+
modelMap = new Map();
|
|
75
|
+
if (model) {
|
|
76
|
+
modelMap.set(agentId, model);
|
|
77
|
+
}
|
|
78
|
+
taskText = '';
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
agentGroup.push(agentId);
|
|
82
|
+
if (model) {
|
|
83
|
+
modelMap.set(agentId, model);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
errors.push(`Unknown agent: @${agentId}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
taskText += part;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (agentGroup.length > 0) {
|
|
96
|
+
const trimmedTask = taskText.trim();
|
|
97
|
+
if (trimmedTask) {
|
|
98
|
+
tasks.push({
|
|
99
|
+
agents: agentGroup,
|
|
100
|
+
task: trimmedTask,
|
|
101
|
+
type: agentGroup.length > 1 ? 'shared' : 'individual',
|
|
102
|
+
models: modelMap.size > 0 ? modelMap : undefined,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else if (taskText.trim()) {
|
|
107
|
+
unmatchedText.push(taskText.trim());
|
|
108
|
+
}
|
|
109
|
+
if (leadingText) {
|
|
110
|
+
if (tasks.length > 0 && tasks[0]) {
|
|
111
|
+
tasks[0].task = `${leadingText} ${tasks[0].task ?? ''}`.trim();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
unmatchedText.push(leadingText);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return { tasks, unmatchedText, errors };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.MentionParser = MentionParser;
|
|
121
|
+
async function loadAvailableAgents(configPath = 'agents.yaml') {
|
|
122
|
+
try {
|
|
123
|
+
const fileContents = await fs.promises.readFile(configPath, 'utf8');
|
|
124
|
+
const config = yaml.load(fileContents);
|
|
125
|
+
if (config && Array.isArray(config.agents)) {
|
|
126
|
+
return config.agents.map((agent) => agent.id);
|
|
127
|
+
}
|
|
128
|
+
console.warn(`Warning: Could not find agents in ${configPath}.`);
|
|
129
|
+
return [];
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.error(`Error loading or parsing ${configPath}:`, error);
|
|
133
|
+
return [];
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=mention-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mention-parser.js","sourceRoot":"","sources":["../../src/utils/mention-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function capitalizeFirstLetter(str: string): string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.capitalizeFirstLetter = capitalizeFirstLetter;
|
|
4
|
+
function capitalizeFirstLetter(str) {
|
|
5
|
+
if (!str || str.length === 0) {
|
|
6
|
+
return str;
|
|
7
|
+
}
|
|
8
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=string-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-utils.js","sourceRoot":"","sources":["../../src/utils/string-utils.ts"],"names":[],"mappings":";;AAIA,sDAKC;AALD,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
package/dist/utils.d.ts
ADDED