@caplets/core 0.13.1 → 0.15.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.
Files changed (42) hide show
  1. package/dist/auth/store.d.ts +22 -0
  2. package/dist/auth.d.ts +77 -0
  3. package/dist/capability-description.d.ts +2 -0
  4. package/dist/caplet-files.d.ts +266 -0
  5. package/dist/caplet-sets.d.ts +33 -0
  6. package/dist/cli/add.d.ts +62 -0
  7. package/dist/cli/auth.d.ts +20 -0
  8. package/dist/cli/author.d.ts +11 -0
  9. package/dist/cli/init.d.ts +5 -0
  10. package/dist/cli/inspection.d.ts +30 -0
  11. package/dist/cli/install.d.ts +15 -0
  12. package/dist/cli-tools.d.ts +23 -0
  13. package/dist/cli.d.ts +13 -0
  14. package/dist/config/paths.d.ts +14 -0
  15. package/dist/config/validation.d.ts +16 -0
  16. package/dist/config.d.ts +227 -0
  17. package/dist/downstream.d.ts +41 -0
  18. package/dist/engine-Bh55p8Lm.js +58157 -0
  19. package/dist/engine.d.ts +52 -0
  20. package/dist/errors.d.ts +24 -0
  21. package/dist/field-selection.d.ts +4 -0
  22. package/dist/generated-tool-input-schema.d.ts +47 -0
  23. package/dist/generated-tool-input-schema.js +59 -0
  24. package/dist/graphql.d.ts +30 -0
  25. package/dist/http/utils.d.ts +7 -0
  26. package/dist/http-actions.d.ts +26 -0
  27. package/dist/index.d.ts +5 -0
  28. package/dist/index.js +1623 -59267
  29. package/dist/native/process-cleanup.d.ts +2 -0
  30. package/dist/native/service.d.ts +24 -0
  31. package/dist/native/tools.d.ts +5 -0
  32. package/dist/native.d.ts +5 -0
  33. package/dist/native.js +93 -0
  34. package/dist/openapi.d.ts +29 -0
  35. package/dist/registry.d.ts +68 -0
  36. package/dist/result-content.d.ts +14 -0
  37. package/dist/runtime.d.ts +30 -0
  38. package/dist/schema-hash.d.ts +1 -0
  39. package/dist/schema-utils.d.ts +2 -0
  40. package/dist/tool-search.d.ts +2 -0
  41. package/dist/tools.d.ts +67 -0
  42. package/package.json +20 -9
@@ -0,0 +1,52 @@
1
+ import { type CapletConfig, type CapletsConfig } from "./config";
2
+ export type CapletsEngineOptions = {
3
+ configPath?: string;
4
+ projectConfigPath?: string;
5
+ authDir?: string;
6
+ watchDebounceMs?: number;
7
+ watch?: boolean;
8
+ writeErr?: (value: string) => void;
9
+ };
10
+ export type CapletsEngineReloadEvent = {
11
+ previous: CapletsConfig;
12
+ next: CapletsConfig;
13
+ invalidated: boolean;
14
+ };
15
+ export declare class CapletsEngine {
16
+ private registry;
17
+ private readonly downstream;
18
+ private readonly openapi;
19
+ private readonly graphql;
20
+ private readonly http;
21
+ private readonly cli;
22
+ private readonly capletSets;
23
+ private readonly paths;
24
+ private readonly watchDebounceMs;
25
+ private readonly watchEnabled;
26
+ private readonly writeErr;
27
+ private readonly reloadListeners;
28
+ private watchers;
29
+ private reloadTimer;
30
+ private watcherRefreshTimer;
31
+ private reloading;
32
+ private pendingReload;
33
+ private closed;
34
+ constructor(options?: CapletsEngineOptions);
35
+ currentConfig(): CapletsConfig;
36
+ enabledServers(): CapletConfig[];
37
+ watchedPaths(): string[];
38
+ onReload(listener: (event: CapletsEngineReloadEvent) => void): () => void;
39
+ scheduleReload(): void;
40
+ reload(): Promise<boolean>;
41
+ execute(serverId: string, request: unknown): Promise<unknown>;
42
+ close(): Promise<void>;
43
+ private reloadOnce;
44
+ private reloadUntilSettled;
45
+ private emitReload;
46
+ private invalidateChangedBackends;
47
+ private resetWatchers;
48
+ private closeWatchers;
49
+ private watchEntry;
50
+ private watchDirectoryTree;
51
+ private scheduleWatcherRefresh;
52
+ }
@@ -0,0 +1,24 @@
1
+ export declare const CAPLETS_ERROR_CODES: readonly ["CONFIG_NOT_FOUND", "CONFIG_EXISTS", "CONFIG_INVALID", "REQUEST_INVALID", "SERVER_NOT_FOUND", "SERVER_UNAVAILABLE", "SERVER_START_TIMEOUT", "UNKNOWN_OPERATION", "TOOL_NOT_FOUND", "TOOL_CALL_TIMEOUT", "AUTH_REQUIRED", "AUTH_FAILED", "AUTH_REFRESH_FAILED", "DOWNSTREAM_PROTOCOL_ERROR", "DOWNSTREAM_TOOL_ERROR", "UNSUPPORTED_TRANSPORT", "INTERNAL_ERROR"];
2
+ export type CapletsErrorCode = (typeof CAPLETS_ERROR_CODES)[number];
3
+ export type SafeErrorSummary = {
4
+ code: CapletsErrorCode;
5
+ message: string;
6
+ details?: unknown;
7
+ };
8
+ export declare class CapletsError extends Error {
9
+ readonly code: CapletsErrorCode;
10
+ readonly details?: unknown;
11
+ constructor(code: CapletsErrorCode, message: string, details?: unknown);
12
+ }
13
+ export declare function redactSecrets(value: unknown): unknown;
14
+ export declare function toSafeError(error: unknown, fallback?: CapletsErrorCode): SafeErrorSummary;
15
+ export declare function errorResult(error: unknown, fallback?: CapletsErrorCode): {
16
+ isError: boolean;
17
+ content: {
18
+ type: "text";
19
+ text: string;
20
+ }[];
21
+ structuredContent: {
22
+ error: SafeErrorSummary;
23
+ };
24
+ };
@@ -0,0 +1,4 @@
1
+ type JsonObject = Record<string, unknown>;
2
+ export declare function projectStructuredContent(value: unknown, outputSchema: unknown, fields: string[]): JsonObject;
3
+ export declare function validateFieldSelection(outputSchema: unknown, fields: string[]): void;
4
+ export {};
@@ -0,0 +1,47 @@
1
+ export declare const operations: readonly ["get_caplet", "check_backend", "list_tools", "search_tools", "get_tool", "call_tool"];
2
+ export declare const generatedToolInputDescriptions: {
3
+ readonly operation: "Wrapper operation: get_caplet, check_backend, list_tools, search_tools, get_tool, or call_tool.";
4
+ readonly query: "Required for search_tools only.";
5
+ readonly limit: "Optional search_tools result limit.";
6
+ readonly tool: "Exact downstream tool name for get_tool or call_tool.";
7
+ readonly arguments: "Required JSON object for call_tool arguments/downstream inputs.";
8
+ readonly fields: "Optional call_tool structured output paths when outputSchema allows it.";
9
+ };
10
+ export declare function generatedToolInputJsonSchema(): {
11
+ readonly type: "object";
12
+ readonly properties: {
13
+ readonly operation: {
14
+ readonly type: "string";
15
+ readonly enum: readonly ["get_caplet", "check_backend", "list_tools", "search_tools", "get_tool", "call_tool"];
16
+ readonly description: "Wrapper operation: get_caplet, check_backend, list_tools, search_tools, get_tool, or call_tool.";
17
+ };
18
+ readonly query: {
19
+ readonly type: "string";
20
+ readonly description: "Required for search_tools only.";
21
+ };
22
+ readonly limit: {
23
+ readonly type: "integer";
24
+ readonly minimum: 1;
25
+ readonly description: "Optional search_tools result limit.";
26
+ };
27
+ readonly tool: {
28
+ readonly type: "string";
29
+ readonly description: "Exact downstream tool name for get_tool or call_tool.";
30
+ };
31
+ readonly arguments: {
32
+ readonly type: "object";
33
+ readonly description: "Required JSON object for call_tool arguments/downstream inputs.";
34
+ };
35
+ readonly fields: {
36
+ readonly type: "array";
37
+ readonly items: {
38
+ readonly type: "string";
39
+ readonly minLength: 1;
40
+ };
41
+ readonly minItems: 1;
42
+ readonly description: "Optional call_tool structured output paths when outputSchema allows it.";
43
+ };
44
+ };
45
+ readonly required: readonly ["operation"];
46
+ readonly additionalProperties: false;
47
+ };
@@ -0,0 +1,59 @@
1
+ //#region src/generated-tool-input-schema.ts
2
+ const operations = [
3
+ "get_caplet",
4
+ "check_backend",
5
+ "list_tools",
6
+ "search_tools",
7
+ "get_tool",
8
+ "call_tool"
9
+ ];
10
+ const generatedToolInputDescriptions = {
11
+ operation: "Wrapper operation: get_caplet, check_backend, list_tools, search_tools, get_tool, or call_tool.",
12
+ query: "Required for search_tools only.",
13
+ limit: "Optional search_tools result limit.",
14
+ tool: "Exact downstream tool name for get_tool or call_tool.",
15
+ arguments: "Required JSON object for call_tool arguments/downstream inputs.",
16
+ fields: "Optional call_tool structured output paths when outputSchema allows it."
17
+ };
18
+ function generatedToolInputJsonSchema() {
19
+ return {
20
+ type: "object",
21
+ properties: {
22
+ operation: {
23
+ type: "string",
24
+ enum: operations,
25
+ description: generatedToolInputDescriptions.operation
26
+ },
27
+ query: {
28
+ type: "string",
29
+ description: generatedToolInputDescriptions.query
30
+ },
31
+ limit: {
32
+ type: "integer",
33
+ minimum: 1,
34
+ description: generatedToolInputDescriptions.limit
35
+ },
36
+ tool: {
37
+ type: "string",
38
+ description: generatedToolInputDescriptions.tool
39
+ },
40
+ arguments: {
41
+ type: "object",
42
+ description: generatedToolInputDescriptions.arguments
43
+ },
44
+ fields: {
45
+ type: "array",
46
+ items: {
47
+ type: "string",
48
+ minLength: 1
49
+ },
50
+ minItems: 1,
51
+ description: generatedToolInputDescriptions.fields
52
+ }
53
+ },
54
+ required: ["operation"],
55
+ additionalProperties: false
56
+ };
57
+ }
58
+ //#endregion
59
+ export { generatedToolInputDescriptions, generatedToolInputJsonSchema, operations };
@@ -0,0 +1,30 @@
1
+ import type { CompatibilityCallToolResult, Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { GraphQlEndpointConfig } from "./config";
3
+ import type { CompactTool } from "./downstream";
4
+ import type { ServerRegistry } from "./registry";
5
+ export type { GraphQlEndpointConfig as GraphqlEndpointConfig } from "./config";
6
+ export declare class GraphQLManager {
7
+ private registry;
8
+ private readonly options;
9
+ private readonly cache;
10
+ constructor(registry: ServerRegistry, options?: {
11
+ authDir?: string;
12
+ });
13
+ updateRegistry(registry: ServerRegistry): void;
14
+ invalidate(serverId: string): void;
15
+ checkEndpoint(endpoint: GraphQlEndpointConfig): Promise<{
16
+ id: string;
17
+ status: string;
18
+ toolCount?: number;
19
+ elapsedMs: number;
20
+ error?: unknown;
21
+ }>;
22
+ listTools(endpoint: GraphQlEndpointConfig): Promise<Tool[]>;
23
+ getTool(endpoint: GraphQlEndpointConfig, toolName: string): Promise<Tool>;
24
+ callTool(endpoint: GraphQlEndpointConfig, toolName: string, args: Record<string, unknown>): Promise<CompatibilityCallToolResult>;
25
+ compact(endpoint: GraphQlEndpointConfig, tool: Tool): CompactTool;
26
+ search(endpoint: GraphQlEndpointConfig, tools: Tool[], query: string, limit: number): CompactTool[];
27
+ private getOperation;
28
+ private refreshOperations;
29
+ private toTool;
30
+ }
@@ -0,0 +1,7 @@
1
+ export declare const DEFAULT_MAX_RESPONSE_BYTES: number;
2
+ export declare function parseHttpBody(contentType: string, text: string): unknown;
3
+ export declare function readLimitedText(response: Response, options: {
4
+ maxBytes?: number;
5
+ errorMessage: string;
6
+ }): Promise<string>;
7
+ export declare function isAbortError(error: unknown): boolean;
@@ -0,0 +1,26 @@
1
+ import type { CompatibilityCallToolResult, Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { HttpApiConfig } from "./config";
3
+ import type { CompactTool } from "./downstream";
4
+ import type { ServerRegistry } from "./registry";
5
+ export declare class HttpActionManager {
6
+ private registry;
7
+ private readonly options;
8
+ constructor(registry: ServerRegistry, options?: {
9
+ authDir?: string;
10
+ });
11
+ updateRegistry(registry: ServerRegistry): void;
12
+ invalidate(_serverId: string): void;
13
+ checkApi(api: HttpApiConfig): Promise<{
14
+ id: string;
15
+ status: string;
16
+ toolCount?: number;
17
+ elapsedMs: number;
18
+ error?: unknown;
19
+ }>;
20
+ listTools(api: HttpApiConfig): Promise<Tool[]>;
21
+ getTool(api: HttpApiConfig, toolName: string): Promise<Tool>;
22
+ callTool(api: HttpApiConfig, toolName: string, args: Record<string, unknown>): Promise<CompatibilityCallToolResult>;
23
+ compact(api: HttpApiConfig, tool: Tool): CompactTool;
24
+ search(api: HttpApiConfig, tools: Tool[], query: string, limit: number): CompactTool[];
25
+ private toTool;
26
+ }
@@ -0,0 +1,5 @@
1
+ export { CapletsRuntime } from "./runtime";
2
+ export { runCli, createProgram } from "./cli";
3
+ export { parseConfig, loadConfig } from "./config";
4
+ export { capabilityDescription, ServerRegistry } from "./registry";
5
+ export { generatedToolInputSchema, handleServerTool } from "./tools";