@caplets/core 0.17.0 → 0.18.1

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/config.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- export { DEFAULT_AUTH_DIR, DEFAULT_CONFIG_PATH, PROJECT_CONFIG_FILE, resolveCapletsRoot, resolveConfigPath, resolveProjectCapletsRoot, resolveProjectConfigPath, } from "./config/paths";
2
+ export { DEFAULT_AUTH_DIR, DEFAULT_COMPLETION_CACHE_DIR, DEFAULT_CONFIG_PATH, PROJECT_CONFIG_FILE, defaultCacheBaseDir, defaultCompletionCacheDir, resolveCapletsRoot, resolveConfigPath, resolveProjectCapletsRoot, resolveProjectConfigPath, } from "./config/paths";
3
3
  export type RemoteAuthConfig = {
4
4
  type: "none";
5
5
  } | {
@@ -181,6 +181,13 @@ export type CapletConfig = CapletServerConfig | OpenApiEndpointConfig | GraphQlE
181
181
  export type CapletsOptions = {
182
182
  defaultSearchLimit: number;
183
183
  maxSearchLimit: number;
184
+ completion: CompletionConfig;
185
+ };
186
+ export type CompletionConfig = {
187
+ discoveryTimeoutMs: number;
188
+ overallTimeoutMs: number;
189
+ cacheTtlMs: number;
190
+ negativeCacheTtlMs: number;
184
191
  };
185
192
  export type CapletsConfig = {
186
193
  version: 1;
@@ -207,6 +214,12 @@ export declare const configFileSchema: z.ZodObject<{
207
214
  version: z.ZodDefault<z.ZodLiteral<1>>;
208
215
  defaultSearchLimit: z.ZodDefault<z.ZodNumber>;
209
216
  maxSearchLimit: z.ZodDefault<z.ZodNumber>;
217
+ completion: z.ZodDefault<z.ZodObject<{
218
+ discoveryTimeoutMs: z.ZodDefault<z.ZodNumber>;
219
+ overallTimeoutMs: z.ZodDefault<z.ZodNumber>;
220
+ cacheTtlMs: z.ZodDefault<z.ZodNumber>;
221
+ negativeCacheTtlMs: z.ZodDefault<z.ZodNumber>;
222
+ }, z.core.$strict>>;
210
223
  mcpServers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
211
224
  openapiEndpoints: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
212
225
  graphqlEndpoints: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>>;
@@ -1,4 +1,4 @@
1
- import { type CompatibilityCallToolResult, type Tool } from "@modelcontextprotocol/sdk/types.js";
1
+ import { type Prompt, type Resource, type ResourceTemplate as McpResourceTemplate, type CompatibilityCallToolResult, type Tool } from "@modelcontextprotocol/sdk/types.js";
2
2
  import type { CapletServerConfig } from "./config";
3
3
  import type { ServerRegistry } from "./registry";
4
4
  export type CompactTool = {
@@ -8,6 +8,29 @@ export type CompactTool = {
8
8
  hasInputSchema: boolean;
9
9
  hasOutputSchema: boolean;
10
10
  };
11
+ export type CompactResource = {
12
+ id: string;
13
+ kind: "resource";
14
+ uri: string;
15
+ name?: string;
16
+ description?: string;
17
+ mimeType?: string;
18
+ size?: number;
19
+ };
20
+ export type CompactResourceTemplate = {
21
+ id: string;
22
+ kind: "resourceTemplate";
23
+ uriTemplate: string;
24
+ name?: string;
25
+ description?: string;
26
+ mimeType?: string;
27
+ };
28
+ export type CompactPrompt = {
29
+ id: string;
30
+ prompt: string;
31
+ description?: string;
32
+ arguments?: Prompt["arguments"];
33
+ };
11
34
  export declare class DownstreamManager {
12
35
  private registry;
13
36
  private readonly options;
@@ -30,8 +53,153 @@ export declare class DownstreamManager {
30
53
  listTools(server: CapletServerConfig): Promise<Tool[]>;
31
54
  getTool(server: CapletServerConfig, toolName: string): Promise<Tool>;
32
55
  callTool(server: CapletServerConfig, toolName: string, args: Record<string, unknown>): Promise<CompatibilityCallToolResult>;
56
+ listResources(server: CapletServerConfig, force?: boolean): Promise<Resource[]>;
57
+ listResourceTemplates(server: CapletServerConfig, force?: boolean): Promise<McpResourceTemplate[]>;
58
+ readResource(server: CapletServerConfig, uri: string): Promise<{
59
+ [x: string]: unknown;
60
+ contents: ({
61
+ uri: string;
62
+ text: string;
63
+ mimeType?: string | undefined;
64
+ _meta?: Record<string, unknown> | undefined;
65
+ } | {
66
+ uri: string;
67
+ blob: string;
68
+ mimeType?: string | undefined;
69
+ _meta?: Record<string, unknown> | undefined;
70
+ })[];
71
+ _meta?: {
72
+ [x: string]: unknown;
73
+ progressToken?: string | number | undefined;
74
+ "io.modelcontextprotocol/related-task"?: {
75
+ taskId: string;
76
+ } | undefined;
77
+ } | undefined;
78
+ }>;
79
+ listPrompts(server: CapletServerConfig, force?: boolean): Promise<Prompt[]>;
80
+ getPrompt(server: CapletServerConfig, promptName: string, args: Record<string, unknown>): Promise<{
81
+ [x: string]: unknown;
82
+ messages: {
83
+ role: "user" | "assistant";
84
+ content: {
85
+ type: "text";
86
+ text: string;
87
+ annotations?: {
88
+ audience?: ("user" | "assistant")[] | undefined;
89
+ priority?: number | undefined;
90
+ lastModified?: string | undefined;
91
+ } | undefined;
92
+ _meta?: Record<string, unknown> | undefined;
93
+ } | {
94
+ type: "image";
95
+ data: string;
96
+ mimeType: string;
97
+ annotations?: {
98
+ audience?: ("user" | "assistant")[] | undefined;
99
+ priority?: number | undefined;
100
+ lastModified?: string | undefined;
101
+ } | undefined;
102
+ _meta?: Record<string, unknown> | undefined;
103
+ } | {
104
+ type: "audio";
105
+ data: string;
106
+ mimeType: string;
107
+ annotations?: {
108
+ audience?: ("user" | "assistant")[] | undefined;
109
+ priority?: number | undefined;
110
+ lastModified?: string | undefined;
111
+ } | undefined;
112
+ _meta?: Record<string, unknown> | undefined;
113
+ } | {
114
+ type: "resource";
115
+ resource: {
116
+ uri: string;
117
+ text: string;
118
+ mimeType?: string | undefined;
119
+ _meta?: Record<string, unknown> | undefined;
120
+ } | {
121
+ uri: string;
122
+ blob: string;
123
+ mimeType?: string | undefined;
124
+ _meta?: Record<string, unknown> | undefined;
125
+ };
126
+ annotations?: {
127
+ audience?: ("user" | "assistant")[] | undefined;
128
+ priority?: number | undefined;
129
+ lastModified?: string | undefined;
130
+ } | undefined;
131
+ _meta?: Record<string, unknown> | undefined;
132
+ } | {
133
+ uri: string;
134
+ name: string;
135
+ type: "resource_link";
136
+ description?: string | undefined;
137
+ mimeType?: string | undefined;
138
+ size?: number | undefined;
139
+ annotations?: {
140
+ audience?: ("user" | "assistant")[] | undefined;
141
+ priority?: number | undefined;
142
+ lastModified?: string | undefined;
143
+ } | undefined;
144
+ _meta?: {
145
+ [x: string]: unknown;
146
+ } | undefined;
147
+ icons?: {
148
+ src: string;
149
+ mimeType?: string | undefined;
150
+ sizes?: string[] | undefined;
151
+ theme?: "light" | "dark" | undefined;
152
+ }[] | undefined;
153
+ title?: string | undefined;
154
+ };
155
+ }[];
156
+ _meta?: {
157
+ [x: string]: unknown;
158
+ progressToken?: string | number | undefined;
159
+ "io.modelcontextprotocol/related-task"?: {
160
+ taskId: string;
161
+ } | undefined;
162
+ } | undefined;
163
+ description?: string | undefined;
164
+ }>;
165
+ complete(server: CapletServerConfig, request: {
166
+ ref: {
167
+ type: "prompt";
168
+ name: string;
169
+ } | {
170
+ type: "resourceTemplate";
171
+ uri: string;
172
+ };
173
+ argument: {
174
+ name: string;
175
+ value: string;
176
+ };
177
+ }): Promise<{
178
+ [x: string]: unknown;
179
+ completion: {
180
+ [x: string]: unknown;
181
+ values: string[];
182
+ total?: number | undefined;
183
+ hasMore?: boolean | undefined;
184
+ };
185
+ _meta?: {
186
+ [x: string]: unknown;
187
+ progressToken?: string | number | undefined;
188
+ "io.modelcontextprotocol/related-task"?: {
189
+ taskId: string;
190
+ } | undefined;
191
+ } | undefined;
192
+ }>;
33
193
  compact(server: CapletServerConfig, tool: Tool): CompactTool;
194
+ compactResource(server: CapletServerConfig, resource: Resource): CompactResource;
195
+ compactResourceTemplate(server: CapletServerConfig, template: McpResourceTemplate): CompactResourceTemplate;
196
+ compactPrompt(server: CapletServerConfig, prompt: Prompt): CompactPrompt;
197
+ searchResources(server: CapletServerConfig, resources: Resource[], query: string, limit: number): CompactResource[];
198
+ searchResourceTemplates(server: CapletServerConfig, templates: McpResourceTemplate[], query: string, limit: number): CompactResourceTemplate[];
199
+ searchPrompts(server: CapletServerConfig, prompts: Prompt[], query: string, limit: number): CompactPrompt[];
34
200
  search(server: CapletServerConfig, tools: Tool[], query: string, limit: number): CompactTool[];
201
+ private assertCapability;
202
+ private isCacheFresh;
35
203
  private refreshTools;
36
204
  private connect;
37
205
  private createTransport;
package/dist/engine.d.ts CHANGED
@@ -39,7 +39,9 @@ export declare class CapletsEngine {
39
39
  scheduleReload(): void;
40
40
  reload(): Promise<boolean>;
41
41
  execute(serverId: string, request: unknown): Promise<unknown>;
42
+ completeCliWords(words: string[]): Promise<string[]>;
42
43
  close(): Promise<void>;
44
+ private listCompletionTools;
43
45
  private reloadOnce;
44
46
  private reloadUntilSettled;
45
47
  private emitReload;
package/dist/errors.d.ts CHANGED
@@ -1,4 +1,4 @@
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"];
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_OPERATION", "UNSUPPORTED_CAPABILITY", "PROMPT_NOT_FOUND", "DOWNSTREAM_RESOURCE_ERROR", "DOWNSTREAM_PROMPT_ERROR", "DOWNSTREAM_COMPLETION_ERROR", "UNSUPPORTED_TRANSPORT", "INTERNAL_ERROR"];
2
2
  export type CapletsErrorCode = (typeof CAPLETS_ERROR_CODES)[number];
3
3
  export type SafeErrorSummary = {
4
4
  code: CapletsErrorCode;