comfyui-mcp 0.9.3 → 0.9.4
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/CHANGELOG.md +9 -0
- package/README.md +17 -0
- package/package.json +1 -1
- package/dist/comfyui/client.d.ts +0 -67
- package/dist/comfyui/client.d.ts.map +0 -1
- package/dist/comfyui/cloud-client.d.ts +0 -37
- package/dist/comfyui/cloud-client.d.ts.map +0 -1
- package/dist/comfyui/events.d.ts +0 -9
- package/dist/comfyui/events.d.ts.map +0 -1
- package/dist/comfyui/types.d.ts +0 -176
- package/dist/comfyui/types.d.ts.map +0 -1
- package/dist/config.d.ts +0 -48
- package/dist/config.d.ts.map +0 -1
- package/dist/experimental/agent-poc.d.ts +0 -30
- package/dist/experimental/agent-poc.d.ts.map +0 -1
- package/dist/experimental/chat-handler.d.ts +0 -21
- package/dist/experimental/chat-handler.d.ts.map +0 -1
- package/dist/experimental/provider-registry.d.ts +0 -4
- package/dist/experimental/provider-registry.d.ts.map +0 -1
- package/dist/experimental/run.d.ts +0 -3
- package/dist/experimental/run.d.ts.map +0 -1
- package/dist/experimental/ui-message-stream-parser.d.ts +0 -21
- package/dist/experimental/ui-message-stream-parser.d.ts.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/services/api-nodes.d.ts +0 -77
- package/dist/services/api-nodes.d.ts.map +0 -1
- package/dist/services/asset-registry.d.ts +0 -64
- package/dist/services/asset-registry.d.ts.map +0 -1
- package/dist/services/civitai-lookup.d.ts +0 -24
- package/dist/services/civitai-lookup.d.ts.map +0 -1
- package/dist/services/civitai-resolver.d.ts +0 -27
- package/dist/services/civitai-resolver.d.ts.map +0 -1
- package/dist/services/defaults-manager.d.ts +0 -31
- package/dist/services/defaults-manager.d.ts.map +0 -1
- package/dist/services/download-auth.d.ts +0 -30
- package/dist/services/download-auth.d.ts.map +0 -1
- package/dist/services/download-cache.d.ts +0 -28
- package/dist/services/download-cache.d.ts.map +0 -1
- package/dist/services/file-hasher.d.ts +0 -32
- package/dist/services/file-hasher.d.ts.map +0 -1
- package/dist/services/generate-conditioned.d.ts +0 -50
- package/dist/services/generate-conditioned.d.ts.map +0 -1
- package/dist/services/generate-image.d.ts +0 -35
- package/dist/services/generate-image.d.ts.map +0 -1
- package/dist/services/generation-tracker.d.ts +0 -84
- package/dist/services/generation-tracker.d.ts.map +0 -1
- package/dist/services/health-check.d.ts +0 -6
- package/dist/services/health-check.d.ts.map +0 -1
- package/dist/services/hierarchical-mermaid.d.ts +0 -12
- package/dist/services/hierarchical-mermaid.d.ts.map +0 -1
- package/dist/services/image-convert.d.ts +0 -29
- package/dist/services/image-convert.d.ts.map +0 -1
- package/dist/services/image-management.d.ts +0 -61
- package/dist/services/image-management.d.ts.map +0 -1
- package/dist/services/install-comfyui.d.ts +0 -89
- package/dist/services/install-comfyui.d.ts.map +0 -1
- package/dist/services/job-history.d.ts +0 -28
- package/dist/services/job-history.d.ts.map +0 -1
- package/dist/services/job-watcher.d.ts +0 -55
- package/dist/services/job-watcher.d.ts.map +0 -1
- package/dist/services/manager-config.d.ts +0 -59
- package/dist/services/manager-config.d.ts.map +0 -1
- package/dist/services/manifest.d.ts +0 -63
- package/dist/services/manifest.d.ts.map +0 -1
- package/dist/services/mermaid-converter.d.ts +0 -24
- package/dist/services/mermaid-converter.d.ts.map +0 -1
- package/dist/services/mermaid-parser.d.ts +0 -31
- package/dist/services/mermaid-parser.d.ts.map +0 -1
- package/dist/services/model-resolver.d.ts +0 -26
- package/dist/services/model-resolver.d.ts.map +0 -1
- package/dist/services/node-authoring.d.ts +0 -117
- package/dist/services/node-authoring.d.ts.map +0 -1
- package/dist/services/node-bisect.d.ts +0 -105
- package/dist/services/node-bisect.d.ts.map +0 -1
- package/dist/services/node-management.d.ts +0 -97
- package/dist/services/node-management.d.ts.map +0 -1
- package/dist/services/node-snapshots.d.ts +0 -27
- package/dist/services/node-snapshots.d.ts.map +0 -1
- package/dist/services/node-verify.d.ts +0 -35
- package/dist/services/node-verify.d.ts.map +0 -1
- package/dist/services/process-control.d.ts +0 -65
- package/dist/services/process-control.d.ts.map +0 -1
- package/dist/services/queue-manager.d.ts +0 -27
- package/dist/services/queue-manager.d.ts.map +0 -1
- package/dist/services/registry-client.d.ts +0 -28
- package/dist/services/registry-client.d.ts.map +0 -1
- package/dist/services/skill-cache.d.ts +0 -26
- package/dist/services/skill-cache.d.ts.map +0 -1
- package/dist/services/skill-generator.d.ts +0 -33
- package/dist/services/skill-generator.d.ts.map +0 -1
- package/dist/services/storage/azure-blob.d.ts +0 -8
- package/dist/services/storage/azure-blob.d.ts.map +0 -1
- package/dist/services/storage/hf.d.ts +0 -7
- package/dist/services/storage/hf.d.ts.map +0 -1
- package/dist/services/storage/http.d.ts +0 -6
- package/dist/services/storage/http.d.ts.map +0 -1
- package/dist/services/storage/index.d.ts +0 -28
- package/dist/services/storage/index.d.ts.map +0 -1
- package/dist/services/storage/s3.d.ts +0 -12
- package/dist/services/storage/s3.d.ts.map +0 -1
- package/dist/services/storage/types.d.ts +0 -22
- package/dist/services/storage/types.d.ts.map +0 -1
- package/dist/services/storage/utils.d.ts +0 -6
- package/dist/services/storage/utils.d.ts.map +0 -1
- package/dist/services/storage-upload.d.ts +0 -18
- package/dist/services/storage-upload.d.ts.map +0 -1
- package/dist/services/tunnel.d.ts +0 -23
- package/dist/services/tunnel.d.ts.map +0 -1
- package/dist/services/update-comfyui.d.ts +0 -34
- package/dist/services/update-comfyui.d.ts.map +0 -1
- package/dist/services/view-image.d.ts +0 -17
- package/dist/services/view-image.d.ts.map +0 -1
- package/dist/services/workflow-autoload.d.ts +0 -41
- package/dist/services/workflow-autoload.d.ts.map +0 -1
- package/dist/services/workflow-composer.d.ts +0 -43
- package/dist/services/workflow-composer.d.ts.map +0 -1
- package/dist/services/workflow-converter.d.ts +0 -31
- package/dist/services/workflow-converter.d.ts.map +0 -1
- package/dist/services/workflow-deps.d.ts +0 -135
- package/dist/services/workflow-deps.d.ts.map +0 -1
- package/dist/services/workflow-dsl.d.ts +0 -4
- package/dist/services/workflow-dsl.d.ts.map +0 -1
- package/dist/services/workflow-executor.d.ts +0 -16
- package/dist/services/workflow-executor.d.ts.map +0 -1
- package/dist/services/workflow-sections.d.ts +0 -30
- package/dist/services/workflow-sections.d.ts.map +0 -1
- package/dist/services/workflow-settings-extractor.d.ts +0 -14
- package/dist/services/workflow-settings-extractor.d.ts.map +0 -1
- package/dist/services/workflow-validator.d.ts +0 -18
- package/dist/services/workflow-validator.d.ts.map +0 -1
- package/dist/services/workspace-env.d.ts +0 -68
- package/dist/services/workspace-env.d.ts.map +0 -1
- package/dist/tools/api-nodes.d.ts +0 -9
- package/dist/tools/api-nodes.d.ts.map +0 -1
- package/dist/tools/assets.d.ts +0 -3
- package/dist/tools/assets.d.ts.map +0 -1
- package/dist/tools/defaults.d.ts +0 -3
- package/dist/tools/defaults.d.ts.map +0 -1
- package/dist/tools/diagnostics.d.ts +0 -3
- package/dist/tools/diagnostics.d.ts.map +0 -1
- package/dist/tools/generate-conditioned.d.ts +0 -3
- package/dist/tools/generate-conditioned.d.ts.map +0 -1
- package/dist/tools/generate-image.d.ts +0 -3
- package/dist/tools/generate-image.d.ts.map +0 -1
- package/dist/tools/generation-tracker.d.ts +0 -3
- package/dist/tools/generation-tracker.d.ts.map +0 -1
- package/dist/tools/health-check.d.ts +0 -3
- package/dist/tools/health-check.d.ts.map +0 -1
- package/dist/tools/image-convert.d.ts +0 -3
- package/dist/tools/image-convert.d.ts.map +0 -1
- package/dist/tools/image-management.d.ts +0 -3
- package/dist/tools/image-management.d.ts.map +0 -1
- package/dist/tools/index.d.ts +0 -3
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/install-comfyui.d.ts +0 -3
- package/dist/tools/install-comfyui.d.ts.map +0 -1
- package/dist/tools/manager-config.d.ts +0 -3
- package/dist/tools/manager-config.d.ts.map +0 -1
- package/dist/tools/manifest.d.ts +0 -3
- package/dist/tools/manifest.d.ts.map +0 -1
- package/dist/tools/memory-management.d.ts +0 -3
- package/dist/tools/memory-management.d.ts.map +0 -1
- package/dist/tools/model-extras.d.ts +0 -3
- package/dist/tools/model-extras.d.ts.map +0 -1
- package/dist/tools/model-management.d.ts +0 -3
- package/dist/tools/model-management.d.ts.map +0 -1
- package/dist/tools/node-authoring.d.ts +0 -3
- package/dist/tools/node-authoring.d.ts.map +0 -1
- package/dist/tools/node-bisect.d.ts +0 -3
- package/dist/tools/node-bisect.d.ts.map +0 -1
- package/dist/tools/node-management.d.ts +0 -3
- package/dist/tools/node-management.d.ts.map +0 -1
- package/dist/tools/node-snapshots.d.ts +0 -3
- package/dist/tools/node-snapshots.d.ts.map +0 -1
- package/dist/tools/node-verify.d.ts +0 -3
- package/dist/tools/node-verify.d.ts.map +0 -1
- package/dist/tools/process-control.d.ts +0 -3
- package/dist/tools/process-control.d.ts.map +0 -1
- package/dist/tools/queue-management.d.ts +0 -3
- package/dist/tools/queue-management.d.ts.map +0 -1
- package/dist/tools/registry-search.d.ts +0 -3
- package/dist/tools/registry-search.d.ts.map +0 -1
- package/dist/tools/skill-generator.d.ts +0 -3
- package/dist/tools/skill-generator.d.ts.map +0 -1
- package/dist/tools/storage-upload.d.ts +0 -3
- package/dist/tools/storage-upload.d.ts.map +0 -1
- package/dist/tools/update-comfyui.d.ts +0 -3
- package/dist/tools/update-comfyui.d.ts.map +0 -1
- package/dist/tools/workflow-autoload.d.ts +0 -9
- package/dist/tools/workflow-autoload.d.ts.map +0 -1
- package/dist/tools/workflow-compose.d.ts +0 -3
- package/dist/tools/workflow-compose.d.ts.map +0 -1
- package/dist/tools/workflow-deps.d.ts +0 -3
- package/dist/tools/workflow-deps.d.ts.map +0 -1
- package/dist/tools/workflow-dsl.d.ts +0 -3
- package/dist/tools/workflow-dsl.d.ts.map +0 -1
- package/dist/tools/workflow-execute.d.ts +0 -3
- package/dist/tools/workflow-execute.d.ts.map +0 -1
- package/dist/tools/workflow-library.d.ts +0 -3
- package/dist/tools/workflow-library.d.ts.map +0 -1
- package/dist/tools/workflow-validate.d.ts +0 -3
- package/dist/tools/workflow-validate.d.ts.map +0 -1
- package/dist/tools/workflow-visualize.d.ts +0 -3
- package/dist/tools/workflow-visualize.d.ts.map +0 -1
- package/dist/tools/workspace-env.d.ts +0 -3
- package/dist/tools/workspace-env.d.ts.map +0 -1
- package/dist/transport/cli.d.ts +0 -15
- package/dist/transport/cli.d.ts.map +0 -1
- package/dist/transport/comfyui-url.d.ts +0 -12
- package/dist/transport/comfyui-url.d.ts.map +0 -1
- package/dist/transport/http.d.ts +0 -17
- package/dist/transport/http.d.ts.map +0 -1
- package/dist/utils/errors.d.ts +0 -33
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/image.d.ts +0 -4
- package/dist/utils/image.d.ts.map +0 -1
- package/dist/utils/logger.d.ts +0 -7
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/optional-dep.d.ts +0 -5
- package/dist/utils/optional-dep.d.ts.map +0 -1
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import type { WorkflowJSON } from "../comfyui/types.js";
|
|
2
|
-
export interface AssetImage {
|
|
3
|
-
filename: string;
|
|
4
|
-
subfolder: string;
|
|
5
|
-
type: string;
|
|
6
|
-
url: string;
|
|
7
|
-
}
|
|
8
|
-
export interface AssetOutput {
|
|
9
|
-
node_id: string;
|
|
10
|
-
images: AssetImage[];
|
|
11
|
-
}
|
|
12
|
-
export interface AssetRecord {
|
|
13
|
-
assetId: string;
|
|
14
|
-
promptId: string;
|
|
15
|
-
nodeId: string;
|
|
16
|
-
filename: string;
|
|
17
|
-
subfolder: string;
|
|
18
|
-
type: string;
|
|
19
|
-
url: string;
|
|
20
|
-
workflow: WorkflowJSON;
|
|
21
|
-
createdAt: number;
|
|
22
|
-
}
|
|
23
|
-
export interface RegisterArgs {
|
|
24
|
-
promptId: string;
|
|
25
|
-
workflow: WorkflowJSON;
|
|
26
|
-
outputs: AssetOutput[];
|
|
27
|
-
}
|
|
28
|
-
export interface ListArgs {
|
|
29
|
-
limit?: number;
|
|
30
|
-
since?: number;
|
|
31
|
-
}
|
|
32
|
-
interface RegistryConfig {
|
|
33
|
-
ttlMs: number;
|
|
34
|
-
now: () => number;
|
|
35
|
-
}
|
|
36
|
-
export declare const AssetRegistry: {
|
|
37
|
-
/**
|
|
38
|
-
* Register all images produced by a completed prompt.
|
|
39
|
-
* Returns the AssetRecords created (one per image).
|
|
40
|
-
*/
|
|
41
|
-
register({ promptId, workflow, outputs }: RegisterArgs): AssetRecord[];
|
|
42
|
-
/** Look up a record by id. Returns undefined for missing or expired. */
|
|
43
|
-
get(assetId: string): AssetRecord | undefined;
|
|
44
|
-
/** List records newest-first. */
|
|
45
|
-
list({ limit, since }?: ListArgs): AssetRecord[];
|
|
46
|
-
/** Remove expired records. Returns number pruned. */
|
|
47
|
-
prune(): number;
|
|
48
|
-
/** Test/diagnostic helper — wipe all records. */
|
|
49
|
-
clear(): void;
|
|
50
|
-
/** Test/diagnostic helper — override ttl and clock. */
|
|
51
|
-
configure(opts: Partial<RegistryConfig>): void;
|
|
52
|
-
/** Inspect current size (debug only). */
|
|
53
|
-
size(): number;
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* Apply a flat override map to every node input in a workflow.
|
|
57
|
-
* For each (key, value) in overrides, sets node.inputs[key] = value on any node
|
|
58
|
-
* that already has that input. Returns a new workflow; does not mutate input.
|
|
59
|
-
*
|
|
60
|
-
* Example: { cfg: 8, seed: 12345 } → updates KSampler-style nodes only.
|
|
61
|
-
*/
|
|
62
|
-
export declare function applyOverrides(workflow: WorkflowJSON, overrides: Record<string, unknown> | undefined): WorkflowJSON;
|
|
63
|
-
export {};
|
|
64
|
-
//# sourceMappingURL=asset-registry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asset-registry.d.ts","sourceRoot":"","sources":["../../src/services/asset-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AA6BD,eAAO,MAAM,aAAa;IACxB;;;OAGG;8CACuC,YAAY,GAAG,WAAW,EAAE;IAwBtE,wEAAwE;iBAC3D,MAAM,GAAG,WAAW,GAAG,SAAS;IAU7C,iCAAiC;4BACV,QAAQ,GAAQ,WAAW,EAAE;IAOpD,qDAAqD;aAC5C,MAAM;IAWf,iDAAiD;aACxC,IAAI;IAIb,uDAAuD;oBACvC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAK9C,yCAAyC;YACjC,MAAM;CAGf,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC7C,YAAY,CAYd"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { FileHasher } from "./file-hasher.js";
|
|
2
|
-
export interface CivitaiModelVersion {
|
|
3
|
-
id: number;
|
|
4
|
-
modelId: number;
|
|
5
|
-
name: string;
|
|
6
|
-
model?: {
|
|
7
|
-
name: string;
|
|
8
|
-
type: string;
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Look up a model/LoRA on CivitAI by its AutoV2 hash.
|
|
13
|
-
* Updates the file_hashes cache with the result.
|
|
14
|
-
*/
|
|
15
|
-
export declare function lookupByHash(hasher: FileHasher, filename: string, autov2: string): Promise<CivitaiModelVersion | null>;
|
|
16
|
-
/**
|
|
17
|
-
* Batch-check multiple files against CivitAI.
|
|
18
|
-
* Only checks files that haven't been looked up yet.
|
|
19
|
-
*/
|
|
20
|
-
export declare function batchLookup(hasher: FileHasher, files: Array<{
|
|
21
|
-
filename: string;
|
|
22
|
-
autov2: string;
|
|
23
|
-
}>): Promise<Map<string, CivitaiModelVersion | null>>;
|
|
24
|
-
//# sourceMappingURL=civitai-lookup.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"civitai-lookup.d.ts","sourceRoot":"","sources":["../../src/services/civitai-lookup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA6CrC;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GACjD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAyBlD"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export interface CivitaiResolved {
|
|
2
|
-
/**
|
|
3
|
-
* Direct download URL. No credentials are embedded — `downloadModel` attaches
|
|
4
|
-
* the CivitAI token as an `Authorization` request header, so the token never
|
|
5
|
-
* leaks into logs, error messages, or redirect URLs.
|
|
6
|
-
*/
|
|
7
|
-
downloadUrl: string;
|
|
8
|
-
/** Suggested filename from CivitAI metadata, when available. */
|
|
9
|
-
filename?: string;
|
|
10
|
-
/** Resolved model-version id. */
|
|
11
|
-
versionId: number;
|
|
12
|
-
/** Model name, when resolvable. */
|
|
13
|
-
modelName?: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Resolve a CivitAI model-version id directly to a download URL.
|
|
17
|
-
* Uses GET /api/v1/model-versions/{id}.
|
|
18
|
-
*/
|
|
19
|
-
export declare function resolveCivitaiModelVersion(versionId: number): Promise<CivitaiResolved>;
|
|
20
|
-
/**
|
|
21
|
-
* Resolve a CivitAI model id to a download URL.
|
|
22
|
-
* Uses GET /api/v1/models/{id} and picks a model version.
|
|
23
|
-
* If `versionId` is supplied, that specific version is used; otherwise the
|
|
24
|
-
* latest (first listed) version is chosen.
|
|
25
|
-
*/
|
|
26
|
-
export declare function resolveCivitaiModel(modelId: number, versionId?: number): Promise<CivitaiResolved>;
|
|
27
|
-
//# sourceMappingURL=civitai-resolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"civitai-resolver.d.ts","sourceRoot":"","sources":["../../src/services/civitai-resolver.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwDD;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAyB1B"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export type DefaultSource = "config" | "env" | "runtime";
|
|
2
|
-
export interface ResolvedValue {
|
|
3
|
-
value: unknown;
|
|
4
|
-
source: DefaultSource;
|
|
5
|
-
}
|
|
6
|
-
interface ManagerConfig {
|
|
7
|
-
configPath: string;
|
|
8
|
-
env: Record<string, string | undefined>;
|
|
9
|
-
}
|
|
10
|
-
export declare const DefaultsManager: {
|
|
11
|
-
configure(opts: Partial<ManagerConfig>): void;
|
|
12
|
-
reset(): void;
|
|
13
|
-
getConfigPath(): string;
|
|
14
|
-
load(): Promise<void>;
|
|
15
|
-
/**
|
|
16
|
-
* Return the resolved view of all defaults, with source attribution.
|
|
17
|
-
* Precedence (lowest → highest): config → env → runtime.
|
|
18
|
-
*/
|
|
19
|
-
getAll(): Record<string, ResolvedValue>;
|
|
20
|
-
get(key: string): ResolvedValue | undefined;
|
|
21
|
-
set(updates: Record<string, unknown>, opts?: {
|
|
22
|
-
persist?: boolean;
|
|
23
|
-
}): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Fill missing or undefined fields in `args` from resolved defaults.
|
|
26
|
-
* Per-call args win — only undefined-or-missing keys get backfilled.
|
|
27
|
-
*/
|
|
28
|
-
apply<T extends Record<string, unknown>>(args: T): T & Record<string, unknown>;
|
|
29
|
-
};
|
|
30
|
-
export {};
|
|
31
|
-
//# sourceMappingURL=defaults-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults-manager.d.ts","sourceRoot":"","sources":["../../src/services/defaults-manager.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC;AAuCD,eAAO,MAAM,eAAe;oBACV,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;aAKpC,IAAI;qBAMI,MAAM;YAIT,OAAO,CAAC,IAAI,CAAC;IA0B3B;;;OAGG;cACO,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;aAc9B,MAAM,GAAG,aAAa,GAAG,SAAS;iBAKhC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SACzB;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IAahB;;;OAGG;UACG,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQ/E,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export type DownloadAuth = {
|
|
2
|
-
type: "bearer";
|
|
3
|
-
token: string;
|
|
4
|
-
} | {
|
|
5
|
-
type: "basic";
|
|
6
|
-
username: string;
|
|
7
|
-
password: string;
|
|
8
|
-
} | {
|
|
9
|
-
type: "header";
|
|
10
|
-
header_name: string;
|
|
11
|
-
header_value: string;
|
|
12
|
-
} | {
|
|
13
|
-
type: "query";
|
|
14
|
-
query_param: string;
|
|
15
|
-
query_value: string;
|
|
16
|
-
} | {
|
|
17
|
-
type: "s3";
|
|
18
|
-
access_key_id: string;
|
|
19
|
-
secret_access_key: string;
|
|
20
|
-
session_token?: string;
|
|
21
|
-
region?: string;
|
|
22
|
-
endpoint?: string;
|
|
23
|
-
};
|
|
24
|
-
export interface DownloadRequestAuth {
|
|
25
|
-
url: string;
|
|
26
|
-
headers: Record<string, string>;
|
|
27
|
-
}
|
|
28
|
-
export declare function redactUrlForLogs(url: string, extraSensitiveParams?: string[]): string;
|
|
29
|
-
export declare function applyDownloadAuth(url: string, auth?: DownloadAuth): DownloadRequestAuth;
|
|
30
|
-
//# sourceMappingURL=download-auth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"download-auth.d.ts","sourceRoot":"","sources":["../../src/services/download-auth.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC3D;IACE,IAAI,EAAE,IAAI,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEN,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAyDD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,oBAAoB,GAAE,MAAM,EAAO,GAClC,MAAM,CAcR;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,YAAY,GAClB,mBAAmB,CAuCrB"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { copyFile, link, mkdir, readdir, rename, rm, stat, utimes } from "node:fs/promises";
|
|
2
|
-
import { type CloudStorageAuth } from "./storage/index.js";
|
|
3
|
-
export declare const downloadCacheFs: {
|
|
4
|
-
copyFile: typeof copyFile;
|
|
5
|
-
link: typeof link;
|
|
6
|
-
mkdir: typeof mkdir;
|
|
7
|
-
readdir: typeof readdir;
|
|
8
|
-
rename: typeof rename;
|
|
9
|
-
rm: typeof rm;
|
|
10
|
-
stat: typeof stat;
|
|
11
|
-
utimes: typeof utimes;
|
|
12
|
-
};
|
|
13
|
-
export interface DownloadCacheOptions {
|
|
14
|
-
url: string;
|
|
15
|
-
headers: Record<string, string>;
|
|
16
|
-
targetPath: string;
|
|
17
|
-
logUrl?: string;
|
|
18
|
-
storageAuth?: CloudStorageAuth;
|
|
19
|
-
}
|
|
20
|
-
export interface DownloadCacheResult {
|
|
21
|
-
targetPath: string;
|
|
22
|
-
usedCache: boolean;
|
|
23
|
-
cachePath?: string;
|
|
24
|
-
materializedBy?: "hardlink" | "copy";
|
|
25
|
-
}
|
|
26
|
-
export declare function downloadUrlToFile(url: string, targetPath: string, headers: Record<string, string>, logUrl?: string, storageAuth?: CloudStorageAuth): Promise<void>;
|
|
27
|
-
export declare function downloadWithCache(options: DownloadCacheOptions): Promise<DownloadCacheResult>;
|
|
28
|
-
//# sourceMappingURL=download-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"download-cache.d.ts","sourceRoot":"","sources":["../../src/services/download-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACN,EAAE,EACF,IAAI,EACJ,MAAM,EACP,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAO5B,eAAO,MAAM,eAAe;;;;;;;;;CAS3B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CACtC;AAoLD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,GAAE,gBAAqB,GACjC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAgC9B"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type Database from "better-sqlite3";
|
|
2
|
-
export interface FileHashResult {
|
|
3
|
-
filename: string;
|
|
4
|
-
filePath: string;
|
|
5
|
-
sha256: string;
|
|
6
|
-
autov2: string;
|
|
7
|
-
fileType: string;
|
|
8
|
-
civitaiId: number | null;
|
|
9
|
-
civitaiName: string | null;
|
|
10
|
-
civitaiModelId: number | null;
|
|
11
|
-
}
|
|
12
|
-
export declare class FileHasher {
|
|
13
|
-
private db;
|
|
14
|
-
constructor(db: Database.Database);
|
|
15
|
-
/**
|
|
16
|
-
* Get or compute the hash for a file. Uses cache if file hasn't changed.
|
|
17
|
-
*/
|
|
18
|
-
getHash(filePath: string, fileType: string): Promise<FileHashResult>;
|
|
19
|
-
/**
|
|
20
|
-
* Update CivitAI metadata for a cached file hash.
|
|
21
|
-
*/
|
|
22
|
-
updateCivitaiInfo(filename: string, civitaiId: number | null, civitaiName: string | null, civitaiModelId: number | null): void;
|
|
23
|
-
/**
|
|
24
|
-
* Look up a cached hash by filename (no recomputation).
|
|
25
|
-
*/
|
|
26
|
-
getCached(filename: string): FileHashResult | null;
|
|
27
|
-
/**
|
|
28
|
-
* Check if a file needs CivitAI lookup (no civitai check recorded).
|
|
29
|
-
*/
|
|
30
|
-
needsCivitaiCheck(filename: string): boolean;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=file-hasher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-hasher.d.ts","sourceRoot":"","sources":["../../src/services/file-hasher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAkBD,qBAAa,UAAU;IACrB,OAAO,CAAC,EAAE,CAAoB;gBAElB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAKjC;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2D1E;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,IAAI;IAUP;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAmBlD;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAM7C"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { WorkflowJSON } from "../comfyui/types.js";
|
|
2
|
-
interface CommonArgs {
|
|
3
|
-
prompt: string;
|
|
4
|
-
negative_prompt?: string;
|
|
5
|
-
width?: number;
|
|
6
|
-
height?: number;
|
|
7
|
-
steps?: number;
|
|
8
|
-
cfg?: number;
|
|
9
|
-
sampler?: string;
|
|
10
|
-
scheduler?: string;
|
|
11
|
-
seed?: number;
|
|
12
|
-
checkpoint?: string;
|
|
13
|
-
}
|
|
14
|
-
export interface ControlNetArgs extends CommonArgs {
|
|
15
|
-
control_image: string;
|
|
16
|
-
controlnet_model?: string;
|
|
17
|
-
strength?: number;
|
|
18
|
-
}
|
|
19
|
-
export interface IpAdapterArgs extends CommonArgs {
|
|
20
|
-
reference_image: string;
|
|
21
|
-
weight?: number;
|
|
22
|
-
preset?: string;
|
|
23
|
-
}
|
|
24
|
-
export interface ConditionedDeps {
|
|
25
|
-
resolveCheckpoint: () => Promise<string | undefined>;
|
|
26
|
-
enqueue: (workflow: WorkflowJSON) => Promise<{
|
|
27
|
-
prompt_id: string;
|
|
28
|
-
queue_remaining?: number;
|
|
29
|
-
}>;
|
|
30
|
-
/** Optional: resolve a local ControlNet model when none is given/defaulted. */
|
|
31
|
-
resolveControlNetModel?: () => Promise<string | undefined>;
|
|
32
|
-
}
|
|
33
|
-
export interface ConditionedResult {
|
|
34
|
-
prompt_id: string;
|
|
35
|
-
queue_remaining?: number;
|
|
36
|
-
checkpoint: string;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Build + enqueue a ControlNet-conditioned txt2img workflow. `control_image`
|
|
40
|
-
* must already exist in ComfyUI's input dir (use upload_image first).
|
|
41
|
-
*/
|
|
42
|
-
export declare function generateWithControlNet(args: ControlNetArgs, deps: ConditionedDeps): Promise<ConditionedResult>;
|
|
43
|
-
/**
|
|
44
|
-
* Build + enqueue an IP-Adapter-conditioned txt2img workflow. Requires the
|
|
45
|
-
* ComfyUI_IPAdapter_plus custom nodes. `reference_image` must already exist in
|
|
46
|
-
* ComfyUI's input dir (use upload_image first).
|
|
47
|
-
*/
|
|
48
|
-
export declare function generateWithIpAdapter(args: IpAdapterArgs, deps: ConditionedDeps): Promise<ConditionedResult>;
|
|
49
|
-
export {};
|
|
50
|
-
//# sourceMappingURL=generate-conditioned.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-conditioned.d.ts","sourceRoot":"","sources":["../../src/services/generate-conditioned.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0DD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,iBAAiB,CAAC,CA2B5B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAgB5B"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { WorkflowJSON } from "../comfyui/types.js";
|
|
2
|
-
export interface GenerateImageArgs {
|
|
3
|
-
prompt: string;
|
|
4
|
-
negative_prompt?: string;
|
|
5
|
-
width?: number;
|
|
6
|
-
height?: number;
|
|
7
|
-
steps?: number;
|
|
8
|
-
cfg?: number;
|
|
9
|
-
sampler?: string;
|
|
10
|
-
scheduler?: string;
|
|
11
|
-
seed?: number;
|
|
12
|
-
checkpoint?: string;
|
|
13
|
-
batch_size?: number;
|
|
14
|
-
}
|
|
15
|
-
export interface GenerateImageDeps {
|
|
16
|
-
/** Resolve a checkpoint filename when none is given or defaulted. */
|
|
17
|
-
resolveCheckpoint: () => Promise<string | undefined>;
|
|
18
|
-
/** Submit the constructed workflow; returns the prompt id. */
|
|
19
|
-
enqueue: (workflow: WorkflowJSON) => Promise<{
|
|
20
|
-
prompt_id: string;
|
|
21
|
-
queue_remaining?: number;
|
|
22
|
-
}>;
|
|
23
|
-
}
|
|
24
|
-
export interface GenerateImageResult {
|
|
25
|
-
prompt_id: string;
|
|
26
|
-
queue_remaining?: number;
|
|
27
|
-
checkpoint: string;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Construct a txt2img workflow from `args` backfilled by DefaultsManager,
|
|
31
|
-
* auto-resolving a checkpoint if needed, then enqueue it. Reuses the existing
|
|
32
|
-
* workflow-composer txt2img template rather than building the node graph here.
|
|
33
|
-
*/
|
|
34
|
-
export declare function generateImage(args: GenerateImageArgs, deps: GenerateImageDeps): Promise<GenerateImageResult>;
|
|
35
|
-
//# sourceMappingURL=generate-image.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-image.d.ts","sourceRoot":"","sources":["../../src/services/generate-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrD,8DAA8D;IAC9D,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/F;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAgBD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CA6C9B"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { FileHasher } from "./file-hasher.js";
|
|
2
|
-
export interface GenerationEntry {
|
|
3
|
-
modelFamily: string;
|
|
4
|
-
modelHash: string;
|
|
5
|
-
modelName: string | null;
|
|
6
|
-
presetName: string | null;
|
|
7
|
-
sampler: string;
|
|
8
|
-
scheduler: string;
|
|
9
|
-
steps: number;
|
|
10
|
-
cfg: number;
|
|
11
|
-
denoise: number;
|
|
12
|
-
shift: number | null;
|
|
13
|
-
width: number;
|
|
14
|
-
height: number;
|
|
15
|
-
loraHash: string | null;
|
|
16
|
-
loraName: string | null;
|
|
17
|
-
loraStrength: number | null;
|
|
18
|
-
loraCivitaiId: number | null;
|
|
19
|
-
negPromptHash: string | null;
|
|
20
|
-
}
|
|
21
|
-
export interface TopSetting {
|
|
22
|
-
settingsHash: string;
|
|
23
|
-
modelFamily: string;
|
|
24
|
-
modelHash: string;
|
|
25
|
-
modelName: string | null;
|
|
26
|
-
presetName: string | null;
|
|
27
|
-
sampler: string;
|
|
28
|
-
scheduler: string;
|
|
29
|
-
steps: number;
|
|
30
|
-
cfg: number;
|
|
31
|
-
denoise: number;
|
|
32
|
-
shift: number | null;
|
|
33
|
-
loraHash: string | null;
|
|
34
|
-
loraName: string | null;
|
|
35
|
-
loraStrength: number | null;
|
|
36
|
-
reuseCount: number;
|
|
37
|
-
createdAt: string;
|
|
38
|
-
}
|
|
39
|
-
export interface GenerationStats {
|
|
40
|
-
totalGenerations: number;
|
|
41
|
-
uniqueCombos: number;
|
|
42
|
-
modelBreakdown: Array<{
|
|
43
|
-
modelFamily: string;
|
|
44
|
-
count: number;
|
|
45
|
-
}>;
|
|
46
|
-
topSettings: TopSetting[];
|
|
47
|
-
}
|
|
48
|
-
export declare class GenerationTracker {
|
|
49
|
-
private db;
|
|
50
|
-
readonly fileHasher: FileHasher;
|
|
51
|
-
constructor(dbPath?: string);
|
|
52
|
-
private defaultDbPath;
|
|
53
|
-
/**
|
|
54
|
-
* Log a generation. If the same settings_hash already exists,
|
|
55
|
-
* increments reuse_count and updates timestamp instead of inserting.
|
|
56
|
-
*/
|
|
57
|
-
logGeneration(entry: GenerationEntry): {
|
|
58
|
-
settingsHash: string;
|
|
59
|
-
reuseCount: number;
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Get top settings for a model family, ordered by reuse count.
|
|
63
|
-
*/
|
|
64
|
-
suggestSettings(modelFamily: string, limit?: number): TopSetting[];
|
|
65
|
-
/**
|
|
66
|
-
* Get top settings for a specific LoRA hash.
|
|
67
|
-
*/
|
|
68
|
-
suggestSettingsForLora(loraHash: string, limit?: number): TopSetting[];
|
|
69
|
-
/**
|
|
70
|
-
* Search generations by model or LoRA name (substring match).
|
|
71
|
-
*/
|
|
72
|
-
searchByName(query: string, limit?: number): TopSetting[];
|
|
73
|
-
/**
|
|
74
|
-
* Get overall generation statistics.
|
|
75
|
-
*/
|
|
76
|
-
getStats(modelFamily?: string): GenerationStats;
|
|
77
|
-
/**
|
|
78
|
-
* Get shareable entries (only those with public LoRAs or no LoRA).
|
|
79
|
-
*/
|
|
80
|
-
getShareableEntries(): TopSetting[];
|
|
81
|
-
close(): void;
|
|
82
|
-
}
|
|
83
|
-
export declare function getTracker(): GenerationTracker;
|
|
84
|
-
//# sourceMappingURL=generation-tracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generation-tracker.d.ts","sourceRoot":"","sources":["../../src/services/generation-tracker.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAuB,MAAM,kBAAkB,CAAC;AAMnE,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AA8ED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAoB;IAC9B,SAAgB,UAAU,EAAE,UAAU,CAAC;gBAE3B,MAAM,CAAC,EAAE,MAAM;IAiB3B,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IA+DnF;;OAEG;IACH,eAAe,CACb,WAAW,EAAE,MAAM,EACnB,KAAK,SAAK,GACT,UAAU,EAAE;IAgBf;;OAEG;IACH,sBAAsB,CACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAK,GACT,UAAU,EAAE;IAgBf;;OAEG;IACH,YAAY,CACV,KAAK,EAAE,MAAM,EACb,KAAK,SAAK,GACT,UAAU,EAAE;IAiBf;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe;IA2C/C;;OAEG;IACH,mBAAmB,IAAI,UAAU,EAAE;IAenC,KAAK,IAAI,IAAI;CAGd;AAiCD,wBAAgB,UAAU,IAAI,iBAAiB,CAK9C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health-check.d.ts","sourceRoot":"","sources":["../../src/services/health-check.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,cAAc,CAClC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAuGjB"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { WorkflowJSON, ObjectInfo } from "../comfyui/types.js";
|
|
2
|
-
import type { SectionInfo, VirtualEdge } from "./workflow-sections.js";
|
|
3
|
-
interface HierarchicalOptions {
|
|
4
|
-
showValues?: boolean;
|
|
5
|
-
direction?: "LR" | "TB";
|
|
6
|
-
}
|
|
7
|
-
export declare function generateOverview(workflow: WorkflowJSON, sections: Map<string, SectionInfo>, options?: HierarchicalOptions): string;
|
|
8
|
-
export declare function generateSectionDetail(workflow: WorkflowJSON, sections: Map<string, SectionInfo>, sectionName: string, options?: HierarchicalOptions): string;
|
|
9
|
-
export declare function listSections(workflow: WorkflowJSON, sections: Map<string, SectionInfo>): string;
|
|
10
|
-
export declare function generateSummary(workflow: WorkflowJSON, sections: Map<string, SectionInfo>, objectInfo: ObjectInfo, virtualEdges: VirtualEdge[], nodeToSection: Map<string, string>, getSetNodeIds: Set<string>): string;
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=hierarchical-mermaid.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchical-mermaid.d.ts","sourceRoot":"","sources":["../../src/services/hierarchical-mermaid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAYvE,UAAU,mBAAmB;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAsBD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,OAAO,GAAE,mBAAwB,GAChC,MAAM,CA0DR;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,mBAAwB,GAChC,MAAM,CAkJR;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GACjC,MAAM,CAkCR;AA0DD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAClC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,WAAW,EAAE,EAC3B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,MAAM,CA4HR"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export type ConvertImageFormat = "png" | "jpeg" | "webp";
|
|
2
|
-
export interface ConvertImageOptions {
|
|
3
|
-
asset_id?: string;
|
|
4
|
-
path?: string;
|
|
5
|
-
format: ConvertImageFormat;
|
|
6
|
-
quality?: number;
|
|
7
|
-
progressive?: boolean;
|
|
8
|
-
lossless?: boolean;
|
|
9
|
-
effort?: number;
|
|
10
|
-
out_path?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface ConvertImageResult {
|
|
13
|
-
content: Array<{
|
|
14
|
-
type: "text";
|
|
15
|
-
text: string;
|
|
16
|
-
} | {
|
|
17
|
-
type: "image";
|
|
18
|
-
data: string;
|
|
19
|
-
mimeType: string;
|
|
20
|
-
}>;
|
|
21
|
-
format: ConvertImageFormat;
|
|
22
|
-
mimeType: string;
|
|
23
|
-
sourceBytes: number;
|
|
24
|
-
outputBytes: number;
|
|
25
|
-
bytesSaved: number;
|
|
26
|
-
outPath?: string;
|
|
27
|
-
}
|
|
28
|
-
export declare function convertImage(opts: ConvertImageOptions): Promise<ConvertImageResult>;
|
|
29
|
-
//# sourceMappingURL=image-convert.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-convert.d.ts","sourceRoot":"","sources":["../../src/services/image-convert.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CACV;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC9B;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CACpD,CAAC;IACF,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA4ND,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CA8C7B"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copy a local image file into ComfyUI's input/ directory so it can be
|
|
3
|
-
* referenced by LoadImage nodes in workflows.
|
|
4
|
-
*/
|
|
5
|
-
export declare function uploadImage(sourcePath: string, filename?: string): Promise<{
|
|
6
|
-
filename: string;
|
|
7
|
-
path: string;
|
|
8
|
-
}>;
|
|
9
|
-
/**
|
|
10
|
-
* Extract embedded workflow JSON from a ComfyUI-generated PNG file.
|
|
11
|
-
* ComfyUI stores workflow data in PNG tEXt chunks under the keys
|
|
12
|
-
* "prompt" (API format) and "workflow" (UI format).
|
|
13
|
-
*/
|
|
14
|
-
export declare function extractWorkflowFromImage(imagePath: string): Promise<{
|
|
15
|
-
prompt?: Record<string, unknown>;
|
|
16
|
-
workflow?: Record<string, unknown>;
|
|
17
|
-
}>;
|
|
18
|
-
export interface OutputImage {
|
|
19
|
-
filename: string;
|
|
20
|
-
path: string;
|
|
21
|
-
size: number;
|
|
22
|
-
modified: string;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* List images in the ComfyUI output directory.
|
|
26
|
-
*/
|
|
27
|
-
export declare function listOutputImages(options?: {
|
|
28
|
-
limit?: number;
|
|
29
|
-
pattern?: string;
|
|
30
|
-
}): Promise<OutputImage[]>;
|
|
31
|
-
/**
|
|
32
|
-
* Fetch a generated image from ComfyUI via HTTP /view endpoint.
|
|
33
|
-
* Does NOT require COMFYUI_PATH — works with remote ComfyUI instances.
|
|
34
|
-
*/
|
|
35
|
-
export declare function getOutputImage(filename: string, type?: "output" | "input" | "temp", subfolder?: string): Promise<{
|
|
36
|
-
base64: string;
|
|
37
|
-
mimeType: string;
|
|
38
|
-
filename: string;
|
|
39
|
-
}>;
|
|
40
|
-
/**
|
|
41
|
-
* Upload a local image to ComfyUI via HTTP multipart POST.
|
|
42
|
-
* Falls back to HTTP when COMFYUI_PATH is not available (remote ComfyUI).
|
|
43
|
-
*/
|
|
44
|
-
export declare function uploadImageAuto(sourcePath: string, filename?: string): Promise<{
|
|
45
|
-
filename: string;
|
|
46
|
-
}>;
|
|
47
|
-
export declare const uploadVideoAuto: (sourcePath: string, filename?: string) => Promise<{
|
|
48
|
-
filename: string;
|
|
49
|
-
}>;
|
|
50
|
-
export declare const uploadVideoLocal: (sourcePath: string, filename?: string) => Promise<{
|
|
51
|
-
filename: string;
|
|
52
|
-
path: string;
|
|
53
|
-
}>;
|
|
54
|
-
export declare const uploadAudioAuto: (sourcePath: string, filename?: string) => Promise<{
|
|
55
|
-
filename: string;
|
|
56
|
-
}>;
|
|
57
|
-
export declare const uploadAudioLocal: (sourcePath: string, filename?: string) => Promise<{
|
|
58
|
-
filename: string;
|
|
59
|
-
path: string;
|
|
60
|
-
}>;
|
|
61
|
-
//# sourceMappingURL=image-management.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-management.d.ts","sourceRoot":"","sources":["../../src/services/image-management.ts"],"names":[],"mappings":"AAwBA;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB7C;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAqCnF;AA2ED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAuCzB;AAKD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,QAAQ,GAAG,OAAO,GAAG,MAAiB,EAC5C,SAAS,SAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAGjE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB/B;AA8ED,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,WAAW,MAAM;cA/B9C,MAAM;EAgC+B,CAAC;AAC7D,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,WAAW,MAAM;cAlB/C,MAAM;UAAQ,MAAM;EAmBkB,CAAC;AAC9D,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,WAAW,MAAM;cAnC9C,MAAM;EAoC+B,CAAC;AAC7D,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,WAAW,MAAM;cAtB/C,MAAM;UAAQ,MAAM;EAuBkB,CAAC"}
|