@ashdev/codex-plugin-sdk 1.9.3 → 1.10.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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Plugin Storage - key-value storage for per-user plugin data
3
+ *
4
+ * Storage is scoped per user-plugin instance. Plugins only specify a key;
5
+ * the host resolves the user context from the connection.
6
+ *
7
+ * Plugins send storage requests as JSON-RPC calls to the host over stdout
8
+ * and receive responses on stdin. This is the reverse of the normal
9
+ * host-to-plugin request flow.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { PluginStorage } from "@ashdev/codex-plugin-sdk";
14
+ *
15
+ * const storage = new PluginStorage();
16
+ *
17
+ * // Store data
18
+ * await storage.set("taste_profile", { genres: ["action", "drama"] });
19
+ *
20
+ * // Retrieve data
21
+ * const data = await storage.get("taste_profile");
22
+ *
23
+ * // Store with TTL (expires in 24 hours)
24
+ * const expires = new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString();
25
+ * await storage.set("cache", { items: [1, 2, 3] }, expires);
26
+ *
27
+ * // List all keys
28
+ * const keys = await storage.list();
29
+ *
30
+ * // Delete a key
31
+ * await storage.delete("cache");
32
+ *
33
+ * // Clear all data
34
+ * await storage.clear();
35
+ * ```
36
+ */
37
+ /** Response from storage/get */
38
+ export interface StorageGetResponse {
39
+ /** The stored data, or null if key doesn't exist */
40
+ data: unknown | null;
41
+ /** Expiration timestamp (ISO 8601) if TTL was set */
42
+ expiresAt?: string;
43
+ }
44
+ /** Response from storage/set */
45
+ export interface StorageSetResponse {
46
+ /** Always true on success */
47
+ success: boolean;
48
+ }
49
+ /** Response from storage/delete */
50
+ export interface StorageDeleteResponse {
51
+ /** Whether the key existed and was deleted */
52
+ deleted: boolean;
53
+ }
54
+ /** Individual key entry from storage/list */
55
+ export interface StorageKeyEntry {
56
+ /** Storage key name */
57
+ key: string;
58
+ /** Expiration timestamp (ISO 8601) if TTL was set */
59
+ expiresAt?: string;
60
+ /** Last update timestamp (ISO 8601) */
61
+ updatedAt: string;
62
+ }
63
+ /** Response from storage/list */
64
+ export interface StorageListResponse {
65
+ /** All keys for this plugin instance (excluding expired) */
66
+ keys: StorageKeyEntry[];
67
+ }
68
+ /** Response from storage/clear */
69
+ export interface StorageClearResponse {
70
+ /** Number of entries deleted */
71
+ deletedCount: number;
72
+ }
73
+ /** Error from a storage operation */
74
+ export declare class StorageError extends Error {
75
+ readonly code: number;
76
+ readonly data?: unknown | undefined;
77
+ constructor(message: string, code: number, data?: unknown | undefined);
78
+ }
79
+ /** Write function signature for sending JSON-RPC requests */
80
+ type WriteFn = (line: string) => void;
81
+ /**
82
+ * Client for plugin key-value storage.
83
+ *
84
+ * Sends JSON-RPC requests to the host process over stdout and reads
85
+ * responses on stdin. Each request gets a unique ID so responses can
86
+ * be correlated even if they arrive out of order.
87
+ */
88
+ export declare class PluginStorage {
89
+ private nextId;
90
+ private pendingRequests;
91
+ private writeFn;
92
+ /**
93
+ * Create a new storage client.
94
+ *
95
+ * @param writeFn - Optional custom write function (defaults to process.stdout.write).
96
+ * Useful for testing or custom transport layers.
97
+ */
98
+ constructor(writeFn?: WriteFn);
99
+ /**
100
+ * Get a value by key
101
+ *
102
+ * @param key - Storage key to retrieve
103
+ * @returns The stored data and optional expiration, or null data if key doesn't exist
104
+ */
105
+ get(key: string): Promise<StorageGetResponse>;
106
+ /**
107
+ * Set a value by key (upsert - creates or updates)
108
+ *
109
+ * @param key - Storage key
110
+ * @param data - JSON-serializable data to store
111
+ * @param expiresAt - Optional expiration timestamp (ISO 8601)
112
+ * @returns Success indicator
113
+ */
114
+ set(key: string, data: unknown, expiresAt?: string): Promise<StorageSetResponse>;
115
+ /**
116
+ * Delete a value by key
117
+ *
118
+ * @param key - Storage key to delete
119
+ * @returns Whether the key existed and was deleted
120
+ */
121
+ delete(key: string): Promise<StorageDeleteResponse>;
122
+ /**
123
+ * List all keys for this plugin instance (excluding expired)
124
+ *
125
+ * @returns List of key entries with metadata
126
+ */
127
+ list(): Promise<StorageListResponse>;
128
+ /**
129
+ * Clear all data for this plugin instance
130
+ *
131
+ * @returns Number of entries deleted
132
+ */
133
+ clear(): Promise<StorageClearResponse>;
134
+ /**
135
+ * Handle an incoming JSON-RPC response line from the host.
136
+ *
137
+ * Call this method from your readline handler to deliver responses
138
+ * back to pending storage requests.
139
+ */
140
+ handleResponse(line: string): void;
141
+ /**
142
+ * Cancel all pending requests (e.g. on shutdown).
143
+ */
144
+ cancelAll(): void;
145
+ private sendRequest;
146
+ }
147
+ export {};
148
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAQH,gCAAgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,mCAAmC;AACnC,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iCAAiC;AACjC,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,qCAAqC;AACrC,qBAAa,YAAa,SAAQ,KAAK;aAGnB,IAAI,EAAE,MAAM;aACZ,IAAI,CAAC,EAAE,OAAO;gBAF9B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,YAAA;CAKjC;AAMD,6DAA6D;AAC7D,KAAK,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAEtC;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,eAAe,CAMnB;IACJ,OAAO,CAAC,OAAO,CAAU;IAEzB;;;;;OAKG;gBACS,OAAO,CAAC,EAAE,OAAO;IAQ7B;;;;;OAKG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInD;;;;;;;OAOG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQtF;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIzD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI1C;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAI5C;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAoClC;;OAEG;IACH,SAAS,IAAI,IAAI;IAWjB,OAAO,CAAC,WAAW;CAsBpB"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Plugin Storage - key-value storage for per-user plugin data
3
+ *
4
+ * Storage is scoped per user-plugin instance. Plugins only specify a key;
5
+ * the host resolves the user context from the connection.
6
+ *
7
+ * Plugins send storage requests as JSON-RPC calls to the host over stdout
8
+ * and receive responses on stdin. This is the reverse of the normal
9
+ * host-to-plugin request flow.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { PluginStorage } from "@ashdev/codex-plugin-sdk";
14
+ *
15
+ * const storage = new PluginStorage();
16
+ *
17
+ * // Store data
18
+ * await storage.set("taste_profile", { genres: ["action", "drama"] });
19
+ *
20
+ * // Retrieve data
21
+ * const data = await storage.get("taste_profile");
22
+ *
23
+ * // Store with TTL (expires in 24 hours)
24
+ * const expires = new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString();
25
+ * await storage.set("cache", { items: [1, 2, 3] }, expires);
26
+ *
27
+ * // List all keys
28
+ * const keys = await storage.list();
29
+ *
30
+ * // Delete a key
31
+ * await storage.delete("cache");
32
+ *
33
+ * // Clear all data
34
+ * await storage.clear();
35
+ * ```
36
+ */
37
+ // =============================================================================
38
+ // Storage Error
39
+ // =============================================================================
40
+ /** Error from a storage operation */
41
+ export class StorageError extends Error {
42
+ code;
43
+ data;
44
+ constructor(message, code, data) {
45
+ super(message);
46
+ this.code = code;
47
+ this.data = data;
48
+ this.name = "StorageError";
49
+ }
50
+ }
51
+ /**
52
+ * Client for plugin key-value storage.
53
+ *
54
+ * Sends JSON-RPC requests to the host process over stdout and reads
55
+ * responses on stdin. Each request gets a unique ID so responses can
56
+ * be correlated even if they arrive out of order.
57
+ */
58
+ export class PluginStorage {
59
+ nextId = 1;
60
+ pendingRequests = new Map();
61
+ writeFn;
62
+ /**
63
+ * Create a new storage client.
64
+ *
65
+ * @param writeFn - Optional custom write function (defaults to process.stdout.write).
66
+ * Useful for testing or custom transport layers.
67
+ */
68
+ constructor(writeFn) {
69
+ this.writeFn =
70
+ writeFn ??
71
+ ((line) => {
72
+ process.stdout.write(line);
73
+ });
74
+ }
75
+ /**
76
+ * Get a value by key
77
+ *
78
+ * @param key - Storage key to retrieve
79
+ * @returns The stored data and optional expiration, or null data if key doesn't exist
80
+ */
81
+ async get(key) {
82
+ return (await this.sendRequest("storage/get", { key }));
83
+ }
84
+ /**
85
+ * Set a value by key (upsert - creates or updates)
86
+ *
87
+ * @param key - Storage key
88
+ * @param data - JSON-serializable data to store
89
+ * @param expiresAt - Optional expiration timestamp (ISO 8601)
90
+ * @returns Success indicator
91
+ */
92
+ async set(key, data, expiresAt) {
93
+ const params = { key, data };
94
+ if (expiresAt !== undefined) {
95
+ params.expiresAt = expiresAt;
96
+ }
97
+ return (await this.sendRequest("storage/set", params));
98
+ }
99
+ /**
100
+ * Delete a value by key
101
+ *
102
+ * @param key - Storage key to delete
103
+ * @returns Whether the key existed and was deleted
104
+ */
105
+ async delete(key) {
106
+ return (await this.sendRequest("storage/delete", { key }));
107
+ }
108
+ /**
109
+ * List all keys for this plugin instance (excluding expired)
110
+ *
111
+ * @returns List of key entries with metadata
112
+ */
113
+ async list() {
114
+ return (await this.sendRequest("storage/list", {}));
115
+ }
116
+ /**
117
+ * Clear all data for this plugin instance
118
+ *
119
+ * @returns Number of entries deleted
120
+ */
121
+ async clear() {
122
+ return (await this.sendRequest("storage/clear", {}));
123
+ }
124
+ /**
125
+ * Handle an incoming JSON-RPC response line from the host.
126
+ *
127
+ * Call this method from your readline handler to deliver responses
128
+ * back to pending storage requests.
129
+ */
130
+ handleResponse(line) {
131
+ const trimmed = line.trim();
132
+ if (!trimmed)
133
+ return;
134
+ let parsed;
135
+ try {
136
+ parsed = JSON.parse(trimmed);
137
+ }
138
+ catch {
139
+ // Not JSON - ignore
140
+ return;
141
+ }
142
+ const obj = parsed;
143
+ // Only handle responses (have "result" or "error", no "method")
144
+ if (obj.method !== undefined) {
145
+ // This is a host-to-plugin request, not a storage response - ignore
146
+ return;
147
+ }
148
+ const id = obj.id;
149
+ if (id === undefined || id === null)
150
+ return;
151
+ const pending = this.pendingRequests.get(id);
152
+ if (!pending)
153
+ return;
154
+ this.pendingRequests.delete(id);
155
+ if ("error" in obj && obj.error) {
156
+ const err = obj.error;
157
+ pending.reject(new StorageError(err.message, err.code, err.data));
158
+ }
159
+ else {
160
+ pending.resolve(obj.result);
161
+ }
162
+ }
163
+ /**
164
+ * Cancel all pending requests (e.g. on shutdown).
165
+ */
166
+ cancelAll() {
167
+ for (const [, pending] of this.pendingRequests) {
168
+ pending.reject(new StorageError("Storage client stopped", -1));
169
+ }
170
+ this.pendingRequests.clear();
171
+ }
172
+ // ===========================================================================
173
+ // Internal
174
+ // ===========================================================================
175
+ sendRequest(method, params) {
176
+ const id = this.nextId++;
177
+ const request = {
178
+ jsonrpc: "2.0",
179
+ id,
180
+ method,
181
+ params,
182
+ };
183
+ return new Promise((resolve, reject) => {
184
+ this.pendingRequests.set(id, { resolve, reject });
185
+ try {
186
+ this.writeFn(`${JSON.stringify(request)}\n`);
187
+ }
188
+ catch (err) {
189
+ this.pendingRequests.delete(id);
190
+ const message = err instanceof Error ? err.message : "Unknown write error";
191
+ reject(new StorageError(`Failed to send request: ${message}`, -1));
192
+ }
193
+ });
194
+ }
195
+ }
196
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * Capability interfaces - type-safe contracts for plugin capabilities
3
3
  *
4
- * Plugins declare which content types they support in their manifest's
5
- * capabilities.metadataProvider array. The SDK automatically routes
6
- * scoped methods (e.g., metadata/series/search) to the provider.
4
+ * All provider interfaces live here. Plugins declare which capabilities
5
+ * they support in their manifest, and implement the corresponding interface.
7
6
  *
8
7
  * @example
9
8
  * ```typescript
@@ -17,6 +16,8 @@
17
16
  * ```
18
17
  */
19
18
  import type { BookMatchParams, BookSearchParams, MetadataGetParams, MetadataMatchParams, MetadataMatchResponse, MetadataSearchParams, MetadataSearchResponse, PluginBookMetadata, PluginSeriesMetadata } from "./protocol.js";
19
+ import type { ProfileUpdateRequest, ProfileUpdateResponse, RecommendationClearResponse, RecommendationDismissRequest, RecommendationDismissResponse, RecommendationRequest, RecommendationResponse } from "./recommendations.js";
20
+ import type { ExternalUserInfo, SyncPullRequest, SyncPullResponse, SyncPushRequest, SyncPushResponse, SyncStatusResponse } from "./sync.js";
20
21
  /**
21
22
  * Content types that a metadata provider can support.
22
23
  * Plugins declare which types they support in capabilities.metadataProvider.
@@ -92,16 +93,93 @@ export interface BookMetadataProvider {
92
93
  match?(params: BookMatchParams): Promise<MetadataMatchResponse>;
93
94
  }
94
95
  /**
95
- * Interface for plugins that sync reading progress (syncProvider: true)
96
- * @future v2 - Methods will be defined when sync capability is implemented
96
+ * Interface for plugins that sync reading progress.
97
+ *
98
+ * Plugins implementing this capability can push and pull reading progress
99
+ * between Codex and external services (e.g., AniList, MyAnimeList).
100
+ *
101
+ * Declare this capability in the plugin manifest with `userReadSync: true`.
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * const provider: SyncProvider = {
106
+ * async getUserInfo() {
107
+ * return {
108
+ * externalId: "12345",
109
+ * username: "manga_reader",
110
+ * avatarUrl: "https://anilist.co/img/avatar.jpg",
111
+ * profileUrl: "https://anilist.co/user/manga_reader",
112
+ * };
113
+ * },
114
+ * async pushProgress(params) {
115
+ * // Push entries to external service
116
+ * return { success: [], failed: [] };
117
+ * },
118
+ * async pullProgress(params) {
119
+ * // Pull entries from external service
120
+ * return { entries: [], hasMore: false };
121
+ * },
122
+ * };
123
+ * ```
97
124
  */
98
125
  export interface SyncProvider {
126
+ /**
127
+ * Get user info from the external service.
128
+ *
129
+ * Returns the user's identity on the external service.
130
+ * Used to display the connected account in the UI.
131
+ *
132
+ * @returns External user information
133
+ */
134
+ getUserInfo(): Promise<ExternalUserInfo>;
135
+ /**
136
+ * Push reading progress to the external service.
137
+ *
138
+ * Sends one or more reading progress entries from Codex to the
139
+ * external service. Returns results indicating which entries
140
+ * were created, updated, unchanged, or failed.
141
+ *
142
+ * @param params - Push request with entries to sync
143
+ * @returns Push results with success and failure details
144
+ */
145
+ pushProgress(params: SyncPushRequest): Promise<SyncPushResponse>;
146
+ /**
147
+ * Pull reading progress from the external service.
148
+ *
149
+ * Retrieves reading progress entries from the external service.
150
+ * Supports pagination via cursor and incremental sync via `since`.
151
+ *
152
+ * @param params - Pull request with optional filters and pagination
153
+ * @returns Pull results with entries and pagination info
154
+ */
155
+ pullProgress(params: SyncPullRequest): Promise<SyncPullResponse>;
156
+ /**
157
+ * Get sync status overview (optional).
158
+ *
159
+ * Provides a summary of the sync state between Codex and the
160
+ * external service, including pending operations and conflicts.
161
+ *
162
+ * @returns Sync status information
163
+ */
164
+ status?(): Promise<SyncStatusResponse>;
99
165
  }
100
166
  /**
101
- * Interface for plugins that provide recommendations (recommendationProvider: true)
102
- * @future v2 - Methods will be defined when recommendation capability is implemented
167
+ * Interface for plugins that provide recommendations.
168
+ *
169
+ * Plugins implementing this capability generate personalized suggestions
170
+ * based on a user's library and reading history.
171
+ *
172
+ * Declare this capability in the plugin manifest with `userRecommendationProvider: true`.
103
173
  */
104
174
  export interface RecommendationProvider {
175
+ /** Get personalized recommendations */
176
+ get(params: RecommendationRequest): Promise<RecommendationResponse>;
177
+ /** Update the user's taste profile from new activity */
178
+ updateProfile?(params: ProfileUpdateRequest): Promise<ProfileUpdateResponse>;
179
+ /** Clear cached recommendations */
180
+ clear?(): Promise<RecommendationClearResponse>;
181
+ /** Dismiss a recommendation */
182
+ dismiss?(params: RecommendationDismissRequest): Promise<RecommendationDismissResponse>;
105
183
  }
106
184
  /**
107
185
  * Partial series metadata provider - allows implementing only some methods
@@ -113,12 +191,4 @@ export type PartialMetadataProvider = Partial<MetadataProvider>;
113
191
  * Use this for testing or gradual implementation
114
192
  */
115
193
  export type PartialBookMetadataProvider = Partial<BookMetadataProvider>;
116
- /**
117
- * @deprecated Use MetadataProvider instead
118
- */
119
- export type SeriesMetadataProvider = MetadataProvider;
120
- /**
121
- * @deprecated Use PartialMetadataProvider instead
122
- */
123
- export type PartialSeriesMetadataProvider = PartialMetadataProvider;
124
194
  //# sourceMappingURL=capabilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/types/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAMvB;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAMpD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9D;;;;;;;;OAQG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAElE;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE5D;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACjE;AAMD;;;GAGG;AAEH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;GAGG;AAEH,MAAM,WAAW,sBAAsB;CAAG;AAM1C;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAMxE;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,uBAAuB,CAAC"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/types/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAMnB;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAMpD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9D;;;;;;;;OAQG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAElE;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE5D;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACjE;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEzC;;;;;;;;;OASG;IACH,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEjE;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEjE;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACxC;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,GAAG,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpE,wDAAwD;IACxD,aAAa,CAAC,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC7E,mCAAmC;IACnC,KAAK,CAAC,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC/C,+BAA+B;IAC/B,OAAO,CAAC,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;CACxF;AAMD;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * Capability interfaces - type-safe contracts for plugin capabilities
3
3
  *
4
- * Plugins declare which content types they support in their manifest's
5
- * capabilities.metadataProvider array. The SDK automatically routes
6
- * scoped methods (e.g., metadata/series/search) to the provider.
4
+ * All provider interfaces live here. Plugins declare which capabilities
5
+ * they support in their manifest, and implement the corresponding interface.
7
6
  *
8
7
  * @example
9
8
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/types/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/types/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * Re-export all types
3
3
  */
4
- export type { BookMetadataProvider, MetadataContentType, MetadataProvider, PartialBookMetadataProvider, PartialMetadataProvider, PartialSeriesMetadataProvider, RecommendationProvider, SeriesMetadataProvider, SyncProvider, } from "./capabilities.js";
5
- export type { ConfigField, ConfigSchema, CredentialField, PluginCapabilities, PluginManifest, } from "./manifest.js";
6
- export { hasBookMetadataProvider, hasSeriesMetadataProvider } from "./manifest.js";
7
- export type { AlternateTitle, BookAuthor, BookAuthorRole, BookAward, BookCover, BookCoverSize, BookMatchParams, BookSearchParams, ExternalLink, ExternalLinkType, ExternalRating, MetadataGetParams, MetadataMatchParams, MetadataMatchResponse, MetadataSearchParams, MetadataSearchResponse, PluginBookMetadata, PluginSeriesMetadata, ReadingDirection, SearchResult, SearchResultPreview, SeriesStatus, } from "./protocol.js";
4
+ export type { BookMetadataProvider, MetadataContentType, MetadataProvider, PartialBookMetadataProvider, PartialMetadataProvider, RecommendationProvider, SyncProvider, } from "./capabilities.js";
5
+ export type { ConfigField, ConfigSchema, CredentialField, OAuthConfig, PluginCapabilities, PluginManifest, } from "./manifest.js";
6
+ export { EXTERNAL_ID_SOURCE_ANILIST, hasBookMetadataProvider, hasSeriesMetadataProvider, } from "./manifest.js";
7
+ export type { AlternateTitle, BookAuthor, BookAuthorRole, BookAward, BookCover, BookCoverSize, BookMatchParams, BookSearchParams, ExternalId, ExternalLink, ExternalLinkType, ExternalRating, MetadataGetParams, MetadataMatchParams, MetadataMatchResponse, MetadataSearchParams, MetadataSearchResponse, PluginBookMetadata, PluginSeriesMetadata, ReadingDirection, SearchResult, SearchResultPreview, SeriesStatus, } from "./protocol.js";
8
+ export type { DismissReason, ProfileUpdateRequest, ProfileUpdateResponse, Recommendation, RecommendationClearResponse, RecommendationDismissRequest, RecommendationDismissResponse, RecommendationRequest, RecommendationResponse, UserLibraryEntry, } from "./recommendations.js";
8
9
  export * from "./rpc.js";
10
+ export type { ExternalUserInfo, SyncEntry, SyncEntryResult, SyncEntryResultStatus, SyncProgress, SyncPullRequest, SyncPullResponse, SyncPushRequest, SyncPushResponse, SyncReadingStatus, SyncStatusResponse, } from "./sync.js";
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAEV,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,6BAA6B,EAC7B,sBAAsB,EAEtB,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAGnF,YAAY,EAEV,cAAc,EAEd,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EAEd,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,cAAc,UAAU,CAAC;AAEzB,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Re-export all types
3
3
  */
4
- export { hasBookMetadataProvider, hasSeriesMetadataProvider } from "./manifest.js";
4
+ export { EXTERNAL_ID_SOURCE_ANILIST, hasBookMetadataProvider, hasSeriesMetadataProvider, } from "./manifest.js";
5
+ // From rpc - JSON-RPC primitives
5
6
  export * from "./rpc.js";
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AA8BnF,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAyCvB,iCAAiC;AACjC,cAAc,UAAU,CAAC"}