@vibesdotdev/integrations-civitai 0.0.0-stage → 1.0.0-rc.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/model-hub/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ import { BaseAPIClient } from '@vibesdotdev/client/core';
2
+ import { BaseModelHubClient } from '@vibesdotdev/ai/model-hubs';
3
+ import { CapabilityError, CaughtFailureSchema, settleNow, valueFreeFailure } from '@vibesdotdev/kernel';
4
+ import * as z from 'zod/v4';
5
+ import { CivitAIHttpStatusSchema, CivitAIModelSchema, CivitAIModelVersionSchema, CivitAIMetadataSchema, CivitAIModelVersionsSchema, CivitAISearchResponseSchema, CivitAISearchOptionsSchema, CivitAIModelIdSchema, CivitAIFilenameSchema, CivitAIHubConfigSchema, CivitAIHubSearchSchema, CivitAIImageParamsSchema, CivitAIImageResponseSchema, CivitAIUserProfileSchema, CivitAIUsernameSchema } from "../schemas/model-hub.js";
6
+ function input(schema, value) {
7
+ const parsed = schema.safeParse(value);
8
+ if (!parsed.success) {
9
+ throw new CapabilityError('The CivitAI input is invalid.', 'INVALID_INPUT', {
10
+ reason: 'civitai-input-invalid', retryable: false
11
+ });
12
+ }
13
+ return parsed.data;
14
+ }
15
+ export function mapRowToSearchResult(row) {
16
+ return {
17
+ id: String(row.id), name: row.name, source: 'civitai', description: row.description ?? undefined,
18
+ tags: row.tags, downloads: row.stats.downloadCount, likes: row.stats.favoriteCount,
19
+ author: row.creator.username,
20
+ metadata: CivitAIMetadataSchema.parse({ ...row, rating: row.stats.rating, ratingCount: row.stats.ratingCount })
21
+ };
22
+ }
23
+ export function mapRowToModelDetails(row) {
24
+ return {
25
+ ...mapRowToSearchResult(row),
26
+ files: row.modelVersions.flatMap((version) => version.files.map((file) => ({
27
+ filename: file.name, url: file.downloadUrl, size: Math.round(file.sizeKB * 1024), sha: file.hashes?.SHA256
28
+ }))),
29
+ license: Array.isArray(row.allowCommercialUse) ? row.allowCommercialUse.join(', ') : row.allowCommercialUse
30
+ };
31
+ }
32
+ /** Vendor HTTP entrypoint; all model entrypoints share the same validation and mapping. */
33
+ export class CivitAIClient extends BaseAPIClient {
34
+ static API_BASE = 'https://civitai.com/api/v1';
35
+ diagnostics;
36
+ constructor(runtime, config = {}) {
37
+ const apiKey = input(CivitAIHubConfigSchema.shape.apiKey, config.apiKey);
38
+ super({
39
+ ...config, baseUrl: config.baseUrl ?? CivitAIClient.API_BASE,
40
+ auth: config.auth ?? (apiKey ? { type: 'bearer', credentials: apiKey } : undefined),
41
+ headers: { 'User-Agent': 'Vibes/1.0', ...config.headers }, runtime
42
+ });
43
+ this.diagnostics = runtime.diagnostics;
44
+ }
45
+ async read(path, schema, query) {
46
+ try {
47
+ return await this.request({
48
+ method: 'GET', path: this.config.baseUrl.replace(/\/$/, '') + path, schema, query
49
+ });
50
+ }
51
+ catch (caught) {
52
+ const failure = CaughtFailureSchema.parse(caught);
53
+ if (failure instanceof CapabilityError) {
54
+ const status = CivitAIHttpStatusSchema.safeParse(failure.details?.status);
55
+ const malformed = failure.reason === 'client-response-schema-invalid' || failure.reason === 'client-response-invalid' || failure.cause instanceof SyntaxError;
56
+ throw new CapabilityError('The CivitAI request failed.', malformed ? 'UNAVAILABLE' : failure.code, {
57
+ reason: malformed ? 'hub-response-invalid' : status.success ? 'hub-http-error' : 'hub-request-failed',
58
+ details: status.success ? { status: status.data } : undefined,
59
+ cause: valueFreeFailure(failure)
60
+ });
61
+ }
62
+ throw new CapabilityError('The CivitAI request failed.', 'UNAVAILABLE', {
63
+ reason: 'hub-request-failed', cause: valueFreeFailure(failure)
64
+ });
65
+ }
66
+ }
67
+ get models() {
68
+ return {
69
+ search: (options = {}) => this.search(options),
70
+ get: (modelId) => this.getModelById(modelId),
71
+ versions: (modelId) => {
72
+ const id = input(CivitAIModelIdSchema, modelId);
73
+ return this.read('/models/' + id + '/model-versions', CivitAIModelVersionsSchema);
74
+ },
75
+ version: (modelId, versionId) => {
76
+ const id = input(CivitAIModelIdSchema, modelId);
77
+ const version = input(CivitAIModelIdSchema, versionId);
78
+ return this.read('/models/' + id + '/model-versions/' + version, CivitAIModelVersionSchema);
79
+ },
80
+ getDownloadUrl: (modelId, filename) => this.getModelDownloadUrl(modelId, filename)
81
+ };
82
+ }
83
+ get creators() {
84
+ return {
85
+ get: (username) => this.read('/creators/' + encodeURIComponent(input(CivitAIUsernameSchema, username)), CivitAIUserProfileSchema),
86
+ models: (username, params) => this.search({ username, ...params })
87
+ };
88
+ }
89
+ get images() {
90
+ return {
91
+ list: (params = {}) => {
92
+ const options = input(CivitAIImageParamsSchema, params);
93
+ return this.read('/images', CivitAIImageResponseSchema, {
94
+ ...options, nsfw: options.nsfw ? 'X' : 'None'
95
+ });
96
+ }
97
+ };
98
+ }
99
+ async search(options = {}) {
100
+ const parsed = input(CivitAISearchOptionsSchema, options);
101
+ const { tags, nsfw, ...params } = parsed;
102
+ const response = await this.read('/models', CivitAISearchResponseSchema, {
103
+ ...params, limit: params.limit ?? 20, page: params.page,
104
+ tag: tags?.[0], period: params.period ?? 'AllTime',
105
+ nsfw: nsfw ? 'X' : 'None', primaryFileOnly: params.primaryFileOnly ?? true
106
+ });
107
+ return response.items;
108
+ }
109
+ async getModelById(modelId) {
110
+ const id = input(CivitAIModelIdSchema, modelId);
111
+ return this.read('/models/' + id, CivitAIModelSchema);
112
+ }
113
+ async getModelDownloadUrl(modelId, filename) {
114
+ const name = input(CivitAIFilenameSchema, filename);
115
+ const model = await this.getModelById(modelId);
116
+ for (const version of model.modelVersions) {
117
+ const file = name ? version.files.find((candidate) => candidate.name === name) : version.files[0];
118
+ if (file)
119
+ return file.downloadUrl;
120
+ }
121
+ throw new CapabilityError('The model has no matching download.', 'NOT_FOUND', {
122
+ reason: 'hub-download-not-found', retryable: false
123
+ });
124
+ }
125
+ async getModel(modelId) {
126
+ return mapRowToModelDetails(await this.getModelById(input(CivitAIModelIdSchema, modelId)));
127
+ }
128
+ async getDownloadUrl(modelId, filename) {
129
+ return this.getModelDownloadUrl(input(CivitAIModelIdSchema, modelId), filename);
130
+ }
131
+ async validateCredentials() {
132
+ if (!this.config.auth || this.config.auth.type === 'none')
133
+ return false;
134
+ try {
135
+ await this.search({ limit: 1 });
136
+ }
137
+ catch (caught) {
138
+ const failure = CaughtFailureSchema.parse(caught);
139
+ if (failure instanceof CapabilityError && failure.code === 'AUTH_REQUIRED' && failure.details?.status === 401) {
140
+ settleNow(() => this.diagnostics.error('CivitAI credentials were rejected', {
141
+ scope: 'integrations-civitai', plugin: 'integrations-civitai/ai', error: valueFreeFailure(failure)
142
+ }));
143
+ return false;
144
+ }
145
+ throw failure;
146
+ }
147
+ // The search endpoint is public: a success says nothing about the supplied key.
148
+ throw new CapabilityError('CivitAI public endpoints cannot confirm credential validity.', 'UNAVAILABLE', {
149
+ reason: 'hub-credentials-unverifiable', retryable: false
150
+ });
151
+ }
152
+ async healthCheck() {
153
+ try {
154
+ await this.search({ limit: 1 });
155
+ return true;
156
+ }
157
+ catch (caught) {
158
+ const failure = CaughtFailureSchema.parse(caught);
159
+ settleNow(() => this.diagnostics.error('CivitAI health check failed', {
160
+ scope: 'integrations-civitai', plugin: 'integrations-civitai/ai', error: valueFreeFailure(failure)
161
+ }));
162
+ return false;
163
+ }
164
+ }
165
+ }
166
+ const SORT_MAP = {
167
+ downloads: 'Most Downloaded', likes: 'Most Liked', created: 'Newest',
168
+ updated: 'Newest', trending: 'Most Reactions'
169
+ };
170
+ /** Created by the AI runtime owner; no integration-specific semantic client or cache. */
171
+ export class CivitAIHubClient extends BaseModelHubClient {
172
+ client;
173
+ constructor(runtime, config = {}) {
174
+ const parsed = input(CivitAIHubConfigSchema, config);
175
+ super(runtime, parsed);
176
+ this.client = new CivitAIClient(runtime, {
177
+ baseUrl: parsed.baseUrl, apiKey: parsed.apiKey, timeout: parsed.timeout,
178
+ headers: parsed.userAgent === undefined ? undefined : { 'User-Agent': parsed.userAgent }
179
+ });
180
+ }
181
+ async search(options = {}) {
182
+ const parsed = input(CivitAIHubSearchSchema, options);
183
+ const limit = parsed.limit ?? 20;
184
+ if (parsed.task !== undefined || (parsed.offset ?? 0) % limit !== 0) {
185
+ throw new CapabilityError('The search filter or offset is unsupported by CivitAI.', 'INVALID_INPUT', {
186
+ reason: 'civitai-search-unsupported', retryable: false
187
+ });
188
+ }
189
+ const rows = await this.client.search({
190
+ query: parsed.query, limit, page: (parsed.offset ?? 0) / limit + 1,
191
+ tags: parsed.tags, username: parsed.author, sort: parsed.sort ? SORT_MAP[parsed.sort] : undefined,
192
+ types: parsed.type ? [parsed.type] : undefined, baseModels: parsed.baseModel ? [parsed.baseModel] : undefined
193
+ });
194
+ return rows.map(mapRowToSearchResult);
195
+ }
196
+ async getModel(modelId) { return this.client.getModel(modelId); }
197
+ async getDownloadUrl(modelId, filename) { return this.client.getDownloadUrl(modelId, filename); }
198
+ async validateCredentials() { return this.client.validateCredentials(); }
199
+ async healthCheck() { return this.client.healthCheck(); }
200
+ }
201
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/model-hub/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from '../schemas/model-hub.ts';
2
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/model-hub/schemas.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../schemas/model-hub.js";
2
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/model-hub/schemas.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type { CivitAISearchResponse, CivitAIModel, CivitAIModelVersion, CivitAIFile, CivitAIFileMetadata, CivitAIFileHashes, CivitAIImage, CivitAIImageMetadata, CivitAIImageStats, CivitAIModelStats, CivitAIVersionStats, CivitAICreator, CivitAISearchParams, CivitAIUserProfile, CivitAIApiError } from './schemas.ts';
2
+ export { CIVITAI_MODEL_TYPES, CIVITAI_BASE_MODELS, PREFERRED_FILE_FORMATS, SAFE_FILE_EXTENSIONS, UNSAFE_FILE_EXTENSIONS } from './schemas.ts';
3
+ export type { CivitAIModelType, CivitAIFileType, CivitAICommercialUse, CivitAISortOption, CivitAIPeriod, CivitAIBaseModel } from './schemas.ts';
4
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model-hub/types.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EACX,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { CIVITAI_MODEL_TYPES, CIVITAI_BASE_MODELS, PREFERRED_FILE_FORMATS, SAFE_FILE_EXTENSIONS, UNSAFE_FILE_EXTENSIONS } from "./schemas.js";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model-hub/types.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,MAAM,cAAc,CAAC"}