@caplets/core 0.16.0 → 0.18.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.
@@ -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;