openmates 0.15.0-alpha.44 → 0.15.0-alpha.45
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/dist/{chunk-LAAY2YYX.js → chunk-F2G7QKBM.js} +94 -2
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -1284,6 +1284,7 @@ function resolveServerPath(flags) {
|
|
|
1284
1284
|
import { createRequire } from "module";
|
|
1285
1285
|
var require2 = createRequire(import.meta.url);
|
|
1286
1286
|
var WebSocket = require2("ws");
|
|
1287
|
+
var DEFAULT_ASYNC_EMBED_WAIT_MS = 3e5;
|
|
1287
1288
|
var SUB_CHAT_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
1288
1289
|
"spawn_sub_chats",
|
|
1289
1290
|
"sub_chat_progress",
|
|
@@ -1667,7 +1668,7 @@ var OpenMatesWsClient = class {
|
|
|
1667
1668
|
collectAiResponse(userMessageId, chatId, options) {
|
|
1668
1669
|
const timeoutMs = options?.timeoutMs ?? 9e4;
|
|
1669
1670
|
const onStream = options?.onStream;
|
|
1670
|
-
const asyncEmbedWaitMs = options?.asyncEmbedWaitMs ??
|
|
1671
|
+
const asyncEmbedWaitMs = options?.asyncEmbedWaitMs ?? DEFAULT_ASYNC_EMBED_WAIT_MS;
|
|
1671
1672
|
return new Promise((resolve8, reject) => {
|
|
1672
1673
|
let latestContent = "";
|
|
1673
1674
|
let messageId = null;
|
|
@@ -8771,6 +8772,14 @@ var OpenMatesClient = class _OpenMatesClient {
|
|
|
8771
8772
|
category = resp.category;
|
|
8772
8773
|
modelName = resp.modelName;
|
|
8773
8774
|
assistantMessageId = assistantId;
|
|
8775
|
+
await this.persistStreamedEmbeds({
|
|
8776
|
+
ws,
|
|
8777
|
+
embeds: resp.embeds,
|
|
8778
|
+
chatId,
|
|
8779
|
+
chatKeyBytes,
|
|
8780
|
+
fallbackMessageId: assistantId,
|
|
8781
|
+
ownerId
|
|
8782
|
+
});
|
|
8774
8783
|
clearSyncCache(teamId);
|
|
8775
8784
|
await persistCompressionCheckpoints(resp.compressionCheckpoints);
|
|
8776
8785
|
const mateName2 = category ? MATE_NAMES[category] ?? null : null;
|
|
@@ -40665,6 +40674,56 @@ embed_ref: result-XhI`,
|
|
|
40665
40674
|
}
|
|
40666
40675
|
};
|
|
40667
40676
|
|
|
40677
|
+
// ../ui/src/demo_chats/data/example_chats/screenshot-to-html-pricing-card.ts
|
|
40678
|
+
var screenshotToHtmlPricingCardChat = {
|
|
40679
|
+
chat_id: "example-screenshot-to-html-pricing",
|
|
40680
|
+
slug: "screenshot-to-html-pricing-card",
|
|
40681
|
+
title: "example_chats.screenshot_to_html_pricing_card.title",
|
|
40682
|
+
summary: "example_chats.screenshot_to_html_pricing_card.summary",
|
|
40683
|
+
icon: "code",
|
|
40684
|
+
category: "design",
|
|
40685
|
+
keywords: ["screenshot to HTML", "HTML card", "visual AI", "frontend code", "design to code"],
|
|
40686
|
+
follow_up_suggestions: ["example_chats.screenshot_to_html_pricing_card.follow_up_1", "example_chats.screenshot_to_html_pricing_card.follow_up_2", "example_chats.screenshot_to_html_pricing_card.follow_up_3", "example_chats.screenshot_to_html_pricing_card.follow_up_4", "example_chats.screenshot_to_html_pricing_card.follow_up_5", "example_chats.screenshot_to_html_pricing_card.follow_up_6"],
|
|
40687
|
+
messages: [
|
|
40688
|
+
{
|
|
40689
|
+
"id": "6eec58cb-3d75-4726-9ae7-70549f6e8bc5",
|
|
40690
|
+
"role": "user",
|
|
40691
|
+
"content": "example_chats.screenshot_to_html_pricing_card.message_1",
|
|
40692
|
+
"created_at": 1784765315
|
|
40693
|
+
},
|
|
40694
|
+
{
|
|
40695
|
+
"id": "a8863386-c6d7-5c48-a7a7-36cc5bfbc5d0",
|
|
40696
|
+
"role": "assistant",
|
|
40697
|
+
"content": "example_chats.screenshot_to_html_pricing_card.message_2",
|
|
40698
|
+
"created_at": 1784765522,
|
|
40699
|
+
"user_message_id": "6eec58cb-3d75-4726-9ae7-70549f6e8bc5",
|
|
40700
|
+
"response_credits": 250,
|
|
40701
|
+
"category": "design",
|
|
40702
|
+
"model_name": "Gemini 3.5 Flash-Lite"
|
|
40703
|
+
}
|
|
40704
|
+
],
|
|
40705
|
+
embeds: [
|
|
40706
|
+
{
|
|
40707
|
+
"embed_id": "395f8816-7e0b-4753-8058-f1f5c49d0482",
|
|
40708
|
+
"type": "code",
|
|
40709
|
+
"content": 'type: code\napp_id: code\nskill_id: image_to_html\nlanguage: html\ncode: "<!DOCTYPE html>\\n<html lang=\\"en\\">\\n<head>\\n <meta charset=\\"UTF-8\\">\\n <meta name=\\"viewport\\" content=\\"width=1440, height=1200, initial-scale=1.0\\">\\n <title>Pricing Card</title>\\n <style>\\n * {\\n box-sizing: border-box;\\n margin: 0;\\n padding: 0;\\n }\\n\\n body {\\n width: 1440px;\\n height: 1200px;\\n margin: 0;\\n padding: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background-color: #f4f6fc;\\n background-image: \\n radial-gradient(circle at 100% 100%, #fff4eb 0%, rgba(255, 244, 235, 0) 55%),\\n radial-gradient(circle at 0% 0%, #e9effd 0%, rgba(233, 239, 253, 0) 55%);\\n font-family: -apple-system, BlinkMacSystemFont, \\"Segoe UI\\", Roboto, Helvetica, Arial, sans-serif;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n overflow: hidden;\\n }\\n\\n .card {\\n width: 418px;\\n background: #ffffff;\\n border-radius: 28px;\\n padding: 42px 40px;\\n box-shadow: \\n 0 32px 64px -12px rgba(110, 120, 175, 0.14),\\n 0 12px 28px -8px rgba(0, 0, 0, 0.02);\\n display: flex;\\n flex-direction: column;\\n }\\n\\n .badge {\\n display: inline-flex;\\n align-items: center;\\n gap: 7px;\\n background-color: #e8effd;\\n color: #3b5bfd;\\n font-size: 12.5px;\\n font-weight: 600;\\n padding: 5px 12px 5px 10px;\\n border-radius: 100px;\\n width: fit-content;\\n margin-bottom: 24px;\\n }\\n\\n .badge-dot {\\n width: 6px;\\n height: 6px;\\n background-color: #3b5bfd;\\n border-radius: 50%;\\n }\\n\\n .title {\\n font-size: 36px;\\n font-weight: 800;\\n color: #151828;\\n line-height: 1.14;\\n letter-spacing: -0.03em;\\n margin-bottom: 14px;\\n }\\n\\n .description {\\n font-size: 14.5px;\\n line-height: 1.48;\\n color: #676f83;\\n margin-bottom: 32px;\\n }\\n\\n .price-container {\\n display: flex;\\n align-items: baseline;\\n gap: 8px;\\n margin-bottom: 32px;\\n }\\n\\n .price {\\n font-size: 48px;\\n font-weight: 800;\\n color: #151828;\\n line-height: 1;\\n letter-spacing: -0.035em;\\n }\\n\\n .price-period {\\n font-size: 14px;\\n font-weight: 500;\\n color: #676f83;\\n }\\n\\n .features {\\n display: flex;\\n flex-direction: column;\\n gap: 16px;\\n margin-bottom: 36px;\\n }\\n\\n .feature-item {\\n display: flex;\\n align-items: center;\\n gap: 12px;\\n }\\n\\n .feature-icon {\\n width: 20px;\\n height: 20px;\\n border-radius: 50%;\\n background-color: #d8f7e5;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n }\\n\\n .feature-icon-dot {\\n width: 6px;\\n height: 6px;\\n border-radius: 50%;\\n background-color: #02b153;\\n }\\n\\n .feature-text {\\n font-size: 14.5px;\\n font-weight: 700;\\n color: #151828;\\n letter-spacing: -0.01em;\\n }\\n\\n .btn {\\n width: 100%;\\n height: 52px;\\n background: linear-gradient(90deg, #405bf8 0%, #813cfc 100%);\\n color: #ffffff;\\n border: none;\\n border-radius: 16px;\\n font-size: 15px;\\n font-weight: 600;\\n cursor: pointer;\\n box-shadow: 0 10px 24px -2px rgba(105, 70, 255, 0.42);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n font-family: inherit;\\n }\\n </style>\\n</head>\\n<body>\\n <div class=\\"card\\">\\n <div class=\\"badge\\">\\n <span class=\\"badge-dot\\"></span>\\n Team Plan\\n </div>\\n \\n <h1 class=\\"title\\">Design faster with<br>visual AI</h1>\\n \\n <p class=\\"description\\">\\n Turn screenshots into clean front-end code and<br>review the result in seconds.\\n </p>\\n \\n <div class=\\"price-container\\">\\n <span class=\\"price\\">$29</span>\\n <span class=\\"price-period\\">/ seat monthly</span>\\n </div>\\n \\n <div class=\\"features\\">\\n <div class=\\"feature-item\\">\\n <div class=\\"feature-icon\\">\\n <div class=\\"feature-icon-dot\\"></div>\\n </div>\\n <span class=\\"feature-text\\">Unlimited design imports</span>\\n </div>\\n <div class=\\"feature-item\\">\\n <div class=\\"feature-icon\\">\\n <div class=\\"feature-icon-dot\\"></div>\\n </div>\\n <span class=\\"feature-text\\">Responsive HTML export</span>\\n </div>\\n <div class=\\"feature-item\\">\\n <div class=\\"feature-icon\\">\\n <div class=\\"feature-icon-dot\\"></div>\\n </div>\\n <span class=\\"feature-text\\">Visual QA reports</span>\\n </div>\\n </div>\\n \\n <button class=\\"btn\\">Start building</button>\\n </div>\\n</body>\\n</html>"\nfilename: index.html\nembed_ref: code-395f88\nstatus: finished\nline_count: 200\nimage_to_html_metadata:\n correction_passes_used: 2\n validation_warnings[0]:\n usage:\n model: gemini-3.6-flash\n input_tokens: 19416\n output_tokens: 5272\n cache_read_tokens: 0\n cache_write_tokens: 0\n e2b_render_seconds: 100.38043770287186\n correction_passes_used: 2\n validation_repair_attempts: 0\n extracted_asset_count: 0\n visual_diff_score: 0.0149640522875817\n duration_second: 100.38043770287186\n provider_cost_usd: 0.068664\n provider_cost_credits: 69\n model_credits: 215\n e2b_credits: 10\n e2b_started_minutes: 2\n reserved_credits: 1500\n credits_charged: 225\n credits_refunded: 1275',
|
|
40710
|
+
"parent_embed_id": null,
|
|
40711
|
+
"embed_ids": null
|
|
40712
|
+
},
|
|
40713
|
+
{
|
|
40714
|
+
"embed_id": "fcfe81c4-5baa-4580-be67-d5bec235d2f4",
|
|
40715
|
+
"type": "image",
|
|
40716
|
+
"content": "type: image\napp_id: images\nskill_id: upload\nstatus: finished\nfilename: simple-card-input.png\nembed_ref: simple-card-input-png-fcfe81c4-5baa-4580-afa07b\ncontent_hash: efb02bdf09ab6665c910dc9b94ab00384280148bf633d9d9d0c6ce758a253ed4\nai_detection:\n ai_generated: 0.99\n provider: sightengine\n status: success\n error: null",
|
|
40717
|
+
"parent_embed_id": null,
|
|
40718
|
+
"embed_ids": null
|
|
40719
|
+
}
|
|
40720
|
+
],
|
|
40721
|
+
metadata: {
|
|
40722
|
+
featured: true,
|
|
40723
|
+
order: 118
|
|
40724
|
+
}
|
|
40725
|
+
};
|
|
40726
|
+
|
|
40668
40727
|
// ../ui/src/demo_chats/exampleChatData.ts
|
|
40669
40728
|
var ALL_EXAMPLE_CHATS = [
|
|
40670
40729
|
giganticAirplanesChat,
|
|
@@ -40764,7 +40823,8 @@ var ALL_EXAMPLE_CHATS = [
|
|
|
40764
40823
|
dashboardSidebarSvgIconsChat,
|
|
40765
40824
|
vitalFarmsSecFinancialsChat,
|
|
40766
40825
|
financeCashFlowOverviewChat,
|
|
40767
|
-
privacyFirstLocalAiWorkspaceChat
|
|
40826
|
+
privacyFirstLocalAiWorkspaceChat,
|
|
40827
|
+
screenshotToHtmlPricingCardChat
|
|
40768
40828
|
].sort((a, b) => a.metadata.order - b.metadata.order);
|
|
40769
40829
|
|
|
40770
40830
|
// ../ui/src/i18n/locales/en.json
|
|
@@ -50133,6 +50193,38 @@ Would you like to start executing on any specific pillar of this plan\u2014such
|
|
|
50133
50193
|
text: '```json\n{"type": "app_skill_use", "embed_id": "2f72870d-27c9-4e6a-82a0-ac6cef2b8839", "app_id": "code", "skill_id": "search_repos", "query": "vector database rust"}\n```\n\n```json\n{"type": "app_skill_use", "embed_id": "bb757fef-77ab-4050-b3be-a62d0c177b72", "app_id": "code", "skill_id": "search_repos", "query": "vector search rust"}\n```\n\n```json\n{"type": "app_skill_use", "embed_id": "5358df62-b716-487b-a554-36c8c0ad0cf9", "app_id": "code", "skill_id": "search_repos", "query": "qdrant/qdrant"}\n```\n\n```json\n{"type": "app_skill_use", "embed_id": "70951676-9c32-4eac-bfe7-97e7b3888ce1", "app_id": "code", "skill_id": "search_repos", "query": "vector database language:rust"}\n```\n\nRust has become a premier language for building vector databases due to its zero-cost abstractions, memory safety, and C++ like performance\u2014qualities that are essential for handling millions of high-dimensional embeddings.\n\nBased on active, open-source repositories on GitHub, here is a comparison of the top Rust-based vector database engines and extensions available for self-hosting.\n\n### \u{1F4CA} Comparison Overview\n\n```json\n{"type": "sheet", "embed_id": "3895dddf-e6d3-4048-aabb-6687f38c788d"}\n```\n\n\n*\\*Activity is based on the most recent code commits as of June 2026.*\n\n---\n\n### \u{1F50D} Detailed Breakdown\n\n#### 1. The Industry Standard: Qdrant\n[Qdrant](embed:qdrant-B6U) is the undisputed leader when it comes to pure-Rust vector databases. It was built from the ground up for high-performance vector similarity search.\n* **Pros:** Production-ready, massive community support, supports complex filtering payloads alongside vector search, cloud-native architecture, and includes a built-in Web UI.\n* **Use Case:** Ideal if you are building production-level AI applications, recommendation systems, or semantic search architectures and want a standalone, horizontally scalable vector engine.\n\n#### 2. The Rising Graph-Vector Hybrid: HelixDB\n[HelixDB](embed:helix-db-SlF) is a relatively new but heavily trending database that combines graph database capabilities with vector embeddings.\n* **Pros:** By combining graph nodes with vector embeddings, it\'s highly optimized for Retrieval-Augmented Generation (RAG) tasks where you need both semantic similarity (vectors) and explicit relationship context (graphs).\n* **Use Case:** Excellent for advanced Agentic AI architectures, RAG, and knowledge graphs where standard vector search lacks relational context.\n\n#### 3. The Postgres Extensions: pgvecto.rs & Lantern\nIf you already use PostgreSQL and don\'t want to maintain a separate infrastructure just for vectors, Rust powers two major extensions:\n* **[pgvecto.rs](embed:pgvecto-rs-Lg9)** (Apache 2.0): Focuses on scalable, low-latency hybrid search. It replaces standard Postgres indexing with highly optimized Rust bindings for ANN (Approximate Nearest Neighbor) searches.\n* **[Lantern](embed:lantern-A4O)** (AGPL 3.0): Another Postgres extension heavily leaning into external index generation and edge use-cases.\n* **Use Case:** Perfect if your embeddings are tightly coupled with existing relational data and you prefer scaling a single Postgres cluster.\n\n#### 4. The Specialized Engines: SeekStorm & Cozo\n* **[SeekStorm](embed:seekstorm-p2o)**: Focuses heavily on combining traditional full-text (BM25/lexical) search with dense vector retrieval in a single query. It can run as an embedded in-process library or a standalone multi-tenant server.\n* **[CozoDB](embed:cozo-nPL)**: A unique transactional database that uses **Datalog** (a declarative logic language) for querying. It brings together relational schemas, graph traversal, and vector search under one engine.\n\n### \u{1F4A1} Recommendation\n\n* If you want the **safest, most robust, and widely supported** self-hosted engine: Choose **Qdrant**.\n* If you are building an **advanced LLM/RAG pipeline** that relies on interconnected concepts: Choose **HelixDB**.\n* If you want to keep everything inside **Postgres** but with better performance than standard `pgvector` (which is written in C): Choose **pgvecto.rs**.'
|
|
50134
50194
|
}
|
|
50135
50195
|
},
|
|
50196
|
+
screenshot_to_html_pricing_card: {
|
|
50197
|
+
title: {
|
|
50198
|
+
text: "Screenshot to HTML pricing card"
|
|
50199
|
+
},
|
|
50200
|
+
summary: {
|
|
50201
|
+
text: "Watch OpenMates turn a pricing-card screenshot into a standalone inline HTML code embed with visual QA metadata."
|
|
50202
|
+
},
|
|
50203
|
+
message_1: {
|
|
50204
|
+
text: "Please turn this screenshot into a standalone inline HTML code embed. Match the screenshot closely and keep it self-contained.\n[!](embed:simple-card-input-png-fcfe81c4-5baa-4580-afa07b)"
|
|
50205
|
+
},
|
|
50206
|
+
message_2: {
|
|
50207
|
+
text: '```json\n{"type": "app_skill_use", "embed_id": "395f8816-7e0b-4753-8058-f1f5c49d0482", "app_id": "code", "skill_id": "image_to_html"}\n```\n\n\u6211\u73B0\u5728\u6B63\u6839\u636E\u4F60\u7684\u622A\u56FE\u751F\u6210\u72EC\u7ACB\u7684 HTML \u4EE3\u7801 embed\u3002'
|
|
50208
|
+
},
|
|
50209
|
+
follow_up_1: {
|
|
50210
|
+
text: "Run this HTML code to see how it works"
|
|
50211
|
+
},
|
|
50212
|
+
follow_up_2: {
|
|
50213
|
+
text: "Explain how to customize this card's colors"
|
|
50214
|
+
},
|
|
50215
|
+
follow_up_3: {
|
|
50216
|
+
text: "Find similar HTML card designs for inspiration"
|
|
50217
|
+
},
|
|
50218
|
+
follow_up_4: {
|
|
50219
|
+
text: "Show me how to add interactive elements"
|
|
50220
|
+
},
|
|
50221
|
+
follow_up_5: {
|
|
50222
|
+
text: "Generate a matching mobile version of this card"
|
|
50223
|
+
},
|
|
50224
|
+
follow_up_6: {
|
|
50225
|
+
text: "Teach me about responsive design principles"
|
|
50226
|
+
}
|
|
50227
|
+
},
|
|
50136
50228
|
sqlite_strict_tables_summary: {
|
|
50137
50229
|
title: {
|
|
50138
50230
|
text: "SQLite STRICT Tables for App Developers"
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED