@framers/agentos 0.1.163 → 0.1.165

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.
Files changed (52) hide show
  1. package/dist/api/generateImage.d.ts +6 -0
  2. package/dist/api/generateImage.d.ts.map +1 -1
  3. package/dist/api/generateImage.js +18 -0
  4. package/dist/api/generateImage.js.map +1 -1
  5. package/dist/api/index.d.ts +4 -1
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api/index.js +4 -0
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/api/types.d.ts +71 -0
  10. package/dist/api/types.d.ts.map +1 -1
  11. package/dist/api/types.js.map +1 -1
  12. package/dist/core/index.d.ts +1 -0
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +2 -1
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/core/llm/routing/index.d.ts +10 -0
  17. package/dist/core/llm/routing/index.d.ts.map +1 -0
  18. package/dist/core/llm/routing/index.js +9 -0
  19. package/dist/core/llm/routing/index.js.map +1 -0
  20. package/dist/media/avatar/AvatarPipeline.d.ts +56 -0
  21. package/dist/media/avatar/AvatarPipeline.d.ts.map +1 -0
  22. package/dist/media/avatar/AvatarPipeline.js +308 -0
  23. package/dist/media/avatar/AvatarPipeline.js.map +1 -0
  24. package/dist/media/avatar/index.d.ts +8 -0
  25. package/dist/media/avatar/index.d.ts.map +1 -0
  26. package/dist/media/avatar/index.js +7 -0
  27. package/dist/media/avatar/index.js.map +1 -0
  28. package/dist/media/avatar/prompts.d.ts +48 -0
  29. package/dist/media/avatar/prompts.d.ts.map +1 -0
  30. package/dist/media/avatar/prompts.js +88 -0
  31. package/dist/media/avatar/prompts.js.map +1 -0
  32. package/dist/media/avatar/types.d.ts +101 -0
  33. package/dist/media/avatar/types.d.ts.map +1 -0
  34. package/dist/media/avatar/types.js +8 -0
  35. package/dist/media/avatar/types.js.map +1 -0
  36. package/dist/media/images/face/IFaceEmbeddingService.d.ts +69 -0
  37. package/dist/media/images/face/IFaceEmbeddingService.d.ts.map +1 -0
  38. package/dist/media/images/face/IFaceEmbeddingService.js +40 -0
  39. package/dist/media/images/face/IFaceEmbeddingService.js.map +1 -0
  40. package/dist/media/images/face/ReplicateFaceEmbeddingService.d.ts +57 -0
  41. package/dist/media/images/face/ReplicateFaceEmbeddingService.d.ts.map +1 -0
  42. package/dist/media/images/face/ReplicateFaceEmbeddingService.js +151 -0
  43. package/dist/media/images/face/ReplicateFaceEmbeddingService.js.map +1 -0
  44. package/dist/media/images/face/index.d.ts +7 -0
  45. package/dist/media/images/face/index.d.ts.map +1 -0
  46. package/dist/media/images/face/index.js +7 -0
  47. package/dist/media/images/face/index.js.map +1 -0
  48. package/dist/media/images/index.d.ts +2 -0
  49. package/dist/media/images/index.d.ts.map +1 -1
  50. package/dist/media/images/index.js +2 -0
  51. package/dist/media/images/index.js.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @file IFaceEmbeddingService.ts
3
+ * Interface for face embedding extraction and comparison services.
4
+ *
5
+ * Provides a provider-agnostic contract for extracting facial feature vectors
6
+ * from images and computing similarity between two face embeddings.
7
+ */
8
+ /** Bounding box coordinates for a detected face within an image. */
9
+ export interface FaceBoundingBox {
10
+ /** X-coordinate of the top-left corner. */
11
+ x: number;
12
+ /** Y-coordinate of the top-left corner. */
13
+ y: number;
14
+ /** Width of the bounding box in pixels. */
15
+ width: number;
16
+ /** Height of the bounding box in pixels. */
17
+ height: number;
18
+ }
19
+ /** Face embedding vector with optional detection metadata. */
20
+ export interface FaceEmbedding {
21
+ /** High-dimensional vector representing facial features. */
22
+ vector: number[];
23
+ /** Bounding box of the detected face in the source image. */
24
+ boundingBox?: FaceBoundingBox;
25
+ /** Detection confidence score in [0, 1]. */
26
+ confidence?: number;
27
+ }
28
+ /** Result of comparing two face embeddings. */
29
+ export interface FaceComparisonResult {
30
+ /** Cosine similarity score in [-1, 1]. */
31
+ similarity: number;
32
+ /** Whether the two faces belong to the same identity (above threshold). */
33
+ match: boolean;
34
+ }
35
+ /**
36
+ * Provider-agnostic service for extracting face embeddings from images
37
+ * and comparing them for identity consistency.
38
+ */
39
+ export interface IFaceEmbeddingService {
40
+ /**
41
+ * Extract a face embedding vector from an image URL or data URI.
42
+ *
43
+ * @param imageUrl - Public URL or base64 data URI of the image.
44
+ * @returns The extracted face embedding.
45
+ */
46
+ extractEmbedding(imageUrl: string): Promise<FaceEmbedding>;
47
+ /**
48
+ * Compare two face embeddings and return a similarity score.
49
+ *
50
+ * @param a - First face embedding vector.
51
+ * @param b - Second face embedding vector.
52
+ * @param threshold - Minimum similarity to consider a match (default 0.6).
53
+ * @returns Comparison result with similarity and match flag.
54
+ */
55
+ compareFaces(a: number[], b: number[], threshold?: number): FaceComparisonResult;
56
+ }
57
+ /**
58
+ * Compute the cosine similarity between two equal-length numeric vectors.
59
+ *
60
+ * Returns a value in [-1, 1] where 1 means identical direction, 0 means
61
+ * orthogonal, and -1 means opposite direction. Returns 0 for zero-magnitude
62
+ * vectors to avoid division-by-zero.
63
+ *
64
+ * @param a - First vector.
65
+ * @param b - Second vector.
66
+ * @returns Cosine similarity score.
67
+ */
68
+ export declare function cosineSimilarity(a: number[], b: number[]): number;
69
+ //# sourceMappingURL=IFaceEmbeddingService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFaceEmbeddingService.d.ts","sourceRoot":"","sources":["../../../../src/media/images/face/IFaceEmbeddingService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,KAAK,EAAE,OAAO,CAAC;CAChB;AAMD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE3D;;;;;;;OAOG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;CAClF;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBjE"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @file IFaceEmbeddingService.ts
3
+ * Interface for face embedding extraction and comparison services.
4
+ *
5
+ * Provides a provider-agnostic contract for extracting facial feature vectors
6
+ * from images and computing similarity between two face embeddings.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // Cosine similarity
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Compute the cosine similarity between two equal-length numeric vectors.
13
+ *
14
+ * Returns a value in [-1, 1] where 1 means identical direction, 0 means
15
+ * orthogonal, and -1 means opposite direction. Returns 0 for zero-magnitude
16
+ * vectors to avoid division-by-zero.
17
+ *
18
+ * @param a - First vector.
19
+ * @param b - Second vector.
20
+ * @returns Cosine similarity score.
21
+ */
22
+ export function cosineSimilarity(a, b) {
23
+ if (a.length !== b.length) {
24
+ throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
25
+ }
26
+ let dotProduct = 0;
27
+ let magnitudeA = 0;
28
+ let magnitudeB = 0;
29
+ for (let i = 0; i < a.length; i++) {
30
+ dotProduct += a[i] * b[i];
31
+ magnitudeA += a[i] * a[i];
32
+ magnitudeB += b[i] * b[i];
33
+ }
34
+ const denominator = Math.sqrt(magnitudeA) * Math.sqrt(magnitudeB);
35
+ if (denominator === 0) {
36
+ return 0;
37
+ }
38
+ return dotProduct / denominator;
39
+ }
40
+ //# sourceMappingURL=IFaceEmbeddingService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFaceEmbeddingService.js","sourceRoot":"","sources":["../../../../src/media/images/face/IFaceEmbeddingService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgEH,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,UAAU,GAAG,WAAW,CAAC;AAClC,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @file ReplicateFaceEmbeddingService.ts
3
+ * Replicate-backed face embedding extraction using InsightFace.
4
+ *
5
+ * Posts image URLs to the Replicate predictions API, polls for completion,
6
+ * and returns 512-dimensional face embedding vectors for drift detection.
7
+ */
8
+ import { type FaceComparisonResult, type FaceEmbedding, type IFaceEmbeddingService } from './IFaceEmbeddingService.js';
9
+ /** Constructor options for {@link ReplicateFaceEmbeddingService}. */
10
+ export interface ReplicateFaceEmbeddingConfig {
11
+ /** Replicate API token. */
12
+ apiKey: string;
13
+ /** Override the Replicate API base URL (default: https://api.replicate.com/v1). */
14
+ baseUrl?: string;
15
+ /** Override the InsightFace model version identifier. */
16
+ modelId?: string;
17
+ }
18
+ /**
19
+ * Extracts face embeddings via the Replicate API using InsightFace.
20
+ *
21
+ * Sends a prediction request with the provided image URL, polls until the
22
+ * prediction completes, then parses the embedding vector from the response.
23
+ */
24
+ export declare class ReplicateFaceEmbeddingService implements IFaceEmbeddingService {
25
+ private readonly apiKey;
26
+ private readonly baseUrl;
27
+ private readonly modelId;
28
+ constructor(config: ReplicateFaceEmbeddingConfig);
29
+ /**
30
+ * Extract a face embedding from an image.
31
+ *
32
+ * @param imageUrl - Public URL or base64 data URI of the image.
33
+ * @returns Face embedding with 512-dim vector and optional bounding box.
34
+ */
35
+ extractEmbedding(imageUrl: string): Promise<FaceEmbedding>;
36
+ /**
37
+ * Compare two face embedding vectors using cosine similarity.
38
+ *
39
+ * @param a - First embedding vector.
40
+ * @param b - Second embedding vector.
41
+ * @param threshold - Minimum similarity to consider a match (default 0.6).
42
+ * @returns Comparison result with similarity score and match flag.
43
+ */
44
+ compareFaces(a: number[], b: number[], threshold?: number): FaceComparisonResult;
45
+ /**
46
+ * Poll a Replicate prediction URL until it reaches a terminal state.
47
+ */
48
+ private pollPrediction;
49
+ /**
50
+ * Parse the Replicate InsightFace output into a {@link FaceEmbedding}.
51
+ *
52
+ * InsightFace returns an array of detected faces. Each face object contains
53
+ * an `embedding` array and optionally a `bbox` array [x1, y1, x2, y2].
54
+ */
55
+ private parseEmbeddingOutput;
56
+ }
57
+ //# sourceMappingURL=ReplicateFaceEmbeddingService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplicateFaceEmbeddingService.d.ts","sourceRoot":"","sources":["../../../../src/media/images/face/ReplicateFaceEmbeddingService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAMpC,qEAAqE;AACrE,MAAM,WAAW,4BAA4B;IAC3C,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2BD;;;;;GAKG;AACH,qBAAa,6BAA8B,YAAW,qBAAqB;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,4BAA4B;IAShD;;;;;OAKG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA8ChE;;;;;;;OAOG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,SAAM,GAAG,oBAAoB;IAY7E;;OAEG;YACW,cAAc;IAwB5B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;CAoC7B"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @file ReplicateFaceEmbeddingService.ts
3
+ * Replicate-backed face embedding extraction using InsightFace.
4
+ *
5
+ * Posts image URLs to the Replicate predictions API, polls for completion,
6
+ * and returns 512-dimensional face embedding vectors for drift detection.
7
+ */
8
+ import { cosineSimilarity, } from './IFaceEmbeddingService.js';
9
+ const DEFAULT_BASE_URL = 'https://api.replicate.com/v1';
10
+ const DEFAULT_MODEL_ID = 'daanelson/insightface:da3ed9bc348e12dfe81e7cb3adcdee5a2ce23e2e854ec45e4109990f5132653b';
11
+ const POLL_INTERVAL_MS = 1500;
12
+ const POLL_TIMEOUT_MS = 120000;
13
+ function sleep(ms) {
14
+ return new Promise((resolve) => setTimeout(resolve, ms));
15
+ }
16
+ // ---------------------------------------------------------------------------
17
+ // Service
18
+ // ---------------------------------------------------------------------------
19
+ /**
20
+ * Extracts face embeddings via the Replicate API using InsightFace.
21
+ *
22
+ * Sends a prediction request with the provided image URL, polls until the
23
+ * prediction completes, then parses the embedding vector from the response.
24
+ */
25
+ export class ReplicateFaceEmbeddingService {
26
+ constructor(config) {
27
+ if (!config.apiKey) {
28
+ throw new Error('ReplicateFaceEmbeddingService requires an apiKey.');
29
+ }
30
+ this.apiKey = config.apiKey;
31
+ this.baseUrl = config.baseUrl?.replace(/\/+$/, '') ?? DEFAULT_BASE_URL;
32
+ this.modelId = config.modelId ?? DEFAULT_MODEL_ID;
33
+ }
34
+ /**
35
+ * Extract a face embedding from an image.
36
+ *
37
+ * @param imageUrl - Public URL or base64 data URI of the image.
38
+ * @returns Face embedding with 512-dim vector and optional bounding box.
39
+ */
40
+ async extractEmbedding(imageUrl) {
41
+ const body = {
42
+ version: this.modelId,
43
+ input: {
44
+ image: imageUrl,
45
+ return_embedding: true,
46
+ },
47
+ };
48
+ // Create prediction
49
+ const createResponse = await fetch(`${this.baseUrl}/predictions`, {
50
+ method: 'POST',
51
+ headers: {
52
+ Authorization: `Token ${this.apiKey}`,
53
+ 'Content-Type': 'application/json',
54
+ Prefer: 'wait=60',
55
+ },
56
+ body: JSON.stringify(body),
57
+ });
58
+ if (!createResponse.ok) {
59
+ const errorText = await createResponse.text();
60
+ throw new Error(`Replicate face embedding request failed (${createResponse.status}): ${errorText}`);
61
+ }
62
+ let prediction = (await createResponse.json());
63
+ // Poll for completion if not immediately resolved
64
+ if (prediction.status &&
65
+ !['succeeded', 'failed', 'canceled'].includes(prediction.status) &&
66
+ prediction.urls?.get) {
67
+ prediction = await this.pollPrediction(prediction.urls.get);
68
+ }
69
+ if (prediction.status === 'failed') {
70
+ throw new Error(`Face embedding extraction failed: ${prediction.error ?? 'unknown error'}`);
71
+ }
72
+ if (prediction.status === 'canceled') {
73
+ throw new Error('Face embedding extraction was canceled.');
74
+ }
75
+ return this.parseEmbeddingOutput(prediction.output);
76
+ }
77
+ /**
78
+ * Compare two face embedding vectors using cosine similarity.
79
+ *
80
+ * @param a - First embedding vector.
81
+ * @param b - Second embedding vector.
82
+ * @param threshold - Minimum similarity to consider a match (default 0.6).
83
+ * @returns Comparison result with similarity score and match flag.
84
+ */
85
+ compareFaces(a, b, threshold = 0.6) {
86
+ const similarity = cosineSimilarity(a, b);
87
+ return {
88
+ similarity,
89
+ match: similarity >= threshold,
90
+ };
91
+ }
92
+ // -------------------------------------------------------------------------
93
+ // Private helpers
94
+ // -------------------------------------------------------------------------
95
+ /**
96
+ * Poll a Replicate prediction URL until it reaches a terminal state.
97
+ */
98
+ async pollPrediction(url) {
99
+ const startedAt = Date.now();
100
+ while (Date.now() - startedAt < POLL_TIMEOUT_MS) {
101
+ const response = await fetch(url, {
102
+ headers: { Authorization: `Token ${this.apiKey}` },
103
+ });
104
+ if (!response.ok) {
105
+ const errorText = await response.text();
106
+ throw new Error(`Replicate prediction polling failed (${response.status}): ${errorText}`);
107
+ }
108
+ const prediction = (await response.json());
109
+ if (!prediction.status || ['succeeded', 'failed', 'canceled'].includes(prediction.status)) {
110
+ return prediction;
111
+ }
112
+ await sleep(POLL_INTERVAL_MS);
113
+ }
114
+ throw new Error('Face embedding extraction timed out while waiting for prediction.');
115
+ }
116
+ /**
117
+ * Parse the Replicate InsightFace output into a {@link FaceEmbedding}.
118
+ *
119
+ * InsightFace returns an array of detected faces. Each face object contains
120
+ * an `embedding` array and optionally a `bbox` array [x1, y1, x2, y2].
121
+ */
122
+ parseEmbeddingOutput(output) {
123
+ // The output is typically an array of face objects
124
+ const faces = Array.isArray(output) ? output : [output];
125
+ if (faces.length === 0 || !faces[0]) {
126
+ throw new Error('No face detected in the image.');
127
+ }
128
+ const face = faces[0];
129
+ // Extract the embedding vector
130
+ const embedding = face.embedding ?? face.embeddings ?? face.vector;
131
+ if (!Array.isArray(embedding)) {
132
+ throw new Error('Face embedding output does not contain a valid embedding vector.');
133
+ }
134
+ const vector = embedding.map(Number);
135
+ // Extract optional bounding box [x1, y1, x2, y2] → { x, y, width, height }
136
+ const bbox = face.bbox ?? face.bounding_box ?? face.boundingBox;
137
+ const boundingBox = Array.isArray(bbox) && bbox.length >= 4
138
+ ? {
139
+ x: Number(bbox[0]),
140
+ y: Number(bbox[1]),
141
+ width: Number(bbox[2]) - Number(bbox[0]),
142
+ height: Number(bbox[3]) - Number(bbox[1]),
143
+ }
144
+ : undefined;
145
+ // Extract optional confidence
146
+ const det_score = face.det_score ?? face.confidence ?? face.score;
147
+ const confidence = typeof det_score === 'number' ? det_score : undefined;
148
+ return { vector, boundingBox, confidence };
149
+ }
150
+ }
151
+ //# sourceMappingURL=ReplicateFaceEmbeddingService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplicateFaceEmbeddingService.js","sourceRoot":"","sources":["../../../../src/media/images/face/ReplicateFaceEmbeddingService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @file index.ts
3
+ * Barrel export for face embedding services and utilities.
4
+ */
5
+ export { cosineSimilarity, type FaceBoundingBox, type FaceEmbedding, type FaceComparisonResult, type IFaceEmbeddingService, } from './IFaceEmbeddingService.js';
6
+ export { ReplicateFaceEmbeddingService, type ReplicateFaceEmbeddingConfig, } from './ReplicateFaceEmbeddingService.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media/images/face/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,6BAA6B,EAC7B,KAAK,4BAA4B,GAClC,MAAM,oCAAoC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @file index.ts
3
+ * Barrel export for face embedding services and utilities.
4
+ */
5
+ export { cosineSimilarity, } from './IFaceEmbeddingService.js';
6
+ export { ReplicateFaceEmbeddingService, } from './ReplicateFaceEmbeddingService.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/media/images/face/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,GAKjB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,6BAA6B,GAE9B,MAAM,oCAAoC,CAAC"}
@@ -3,6 +3,7 @@ export * from './IImageProvider.js';
3
3
  export * from './imageToBuffer.js';
4
4
  export * from './ImageOperationError.js';
5
5
  export * from './FallbackImageProxy.js';
6
+ export { PolicyAwareImageRouter, type ImageProviderPreference } from './PolicyAwareImageRouter.js';
6
7
  export * from './providers/OpenAIImageProvider.js';
7
8
  export * from './providers/OpenRouterImageProvider.js';
8
9
  export * from './providers/ReplicateImageProvider.js';
@@ -10,6 +11,7 @@ export * from './providers/StabilityImageProvider.js';
10
11
  export * from './providers/StableDiffusionLocalProvider.js';
11
12
  export * from './providers/FluxImageProvider.js';
12
13
  export * from './providers/FalImageProvider.js';
14
+ export { type FaceEmbedding, type IFaceEmbeddingService, ReplicateFaceEmbeddingService, type ReplicateFaceEmbeddingConfig, } from './face/index.js';
13
15
  export type ImageProviderFactory = () => IImageProvider;
14
16
  export declare function registerImageProviderFactory(providerId: string, factory: ImageProviderFactory): void;
15
17
  export declare function unregisterImageProviderFactory(providerId: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/media/images/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAS1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAAG,MAAM,cAAc,CAAC;AAYxD,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAEpG;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAMtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/media/images/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAS1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACnG,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAEhD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,6BAA6B,EAC7B,KAAK,4BAA4B,GAClC,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,oBAAoB,GAAG,MAAM,cAAc,CAAC;AAYxD,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAEpG;AAED,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAMtE"}
@@ -9,6 +9,7 @@ export * from './IImageProvider.js';
9
9
  export * from './imageToBuffer.js';
10
10
  export * from './ImageOperationError.js';
11
11
  export * from './FallbackImageProxy.js';
12
+ export { PolicyAwareImageRouter } from './PolicyAwareImageRouter.js';
12
13
  export * from './providers/OpenAIImageProvider.js';
13
14
  export * from './providers/OpenRouterImageProvider.js';
14
15
  export * from './providers/ReplicateImageProvider.js';
@@ -16,6 +17,7 @@ export * from './providers/StabilityImageProvider.js';
16
17
  export * from './providers/StableDiffusionLocalProvider.js';
17
18
  export * from './providers/FluxImageProvider.js';
18
19
  export * from './providers/FalImageProvider.js';
20
+ export { ReplicateFaceEmbeddingService, } from './face/index.js';
19
21
  const imageProviderFactories = new Map([
20
22
  ['openai', () => new OpenAIImageProvider()],
21
23
  ['openrouter', () => new OpenRouterImageProvider()],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/media/images/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAIhD,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAA+B;IACnE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE,CAAC;IAC3C,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;IACnD,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,sBAAsB,EAAE,CAAC;IACjD,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,sBAAsB,EAAE,CAAC;IACjD,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC;IACpE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC;IACtC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,UAAU,4BAA4B,CAAC,UAAkB,EAAE,OAA6B;IAC5F,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,UAAkB;IAC/D,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,OAAO,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,mDAAmD,UAAU,IAAI,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,OAAO,EAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/media/images/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAgC,MAAM,6BAA6B,CAAC;AACnG,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAEhD,OAAO,EAGL,6BAA6B,GAE9B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAA+B;IACnE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE,CAAC;IAC3C,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;IACnD,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,sBAAsB,EAAE,CAAC;IACjD,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,sBAAsB,EAAE,CAAC;IACjD,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC;IACpE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC;IACtC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,UAAU,4BAA4B,CAAC,UAAkB,EAAE,OAA6B;IAC5F,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,UAAkB;IAC/D,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,OAAO,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,mDAAmD,UAAU,IAAI,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,OAAO,EAAE,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos",
3
- "version": "0.1.163",
3
+ "version": "0.1.165",
4
4
  "description": "Modular AgentOS orchestration library",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",