openmates 0.12.0-alpha.9 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-5SWMZDHG.js → chunk-UGEZLQKN.js} +54 -52
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -7305,8 +7305,6 @@ var DIRECT_TYPES = /* @__PURE__ */ new Set([
|
|
|
7305
7305
|
"recording",
|
|
7306
7306
|
"mail-email",
|
|
7307
7307
|
"math-plot",
|
|
7308
|
-
"mermaid",
|
|
7309
|
-
"diagrams-mermaid",
|
|
7310
7308
|
"events-event",
|
|
7311
7309
|
"health-appointment",
|
|
7312
7310
|
"shopping-product",
|
|
@@ -7334,8 +7332,6 @@ var DIRECT_TYPE_LABELS = {
|
|
|
7334
7332
|
"recording": "recording",
|
|
7335
7333
|
"mail-email": "email",
|
|
7336
7334
|
"math-plot": "plot",
|
|
7337
|
-
"mermaid": "Mermaid diagram",
|
|
7338
|
-
"diagrams-mermaid": "Mermaid diagram",
|
|
7339
7335
|
"events-event": "event",
|
|
7340
7336
|
"health-appointment": "appointment",
|
|
7341
7337
|
"shopping-product": "product",
|
|
@@ -8292,11 +8288,6 @@ function renderByDirectType(embed, c, ln) {
|
|
|
8292
8288
|
ln("\x1B[2m[mathematical plot]\x1B[0m");
|
|
8293
8289
|
break;
|
|
8294
8290
|
}
|
|
8295
|
-
case "mermaid":
|
|
8296
|
-
case "diagrams-mermaid": {
|
|
8297
|
-
renderMermaidPreview(c, ln);
|
|
8298
|
-
break;
|
|
8299
|
-
}
|
|
8300
8291
|
case "images-image-result": {
|
|
8301
8292
|
const title = str(c.title) ?? "";
|
|
8302
8293
|
const source = str(c.source) ?? str(c.url) ?? "";
|
|
@@ -8462,11 +8453,6 @@ function renderDirectTypeFullscreen(embed, c) {
|
|
|
8462
8453
|
}
|
|
8463
8454
|
break;
|
|
8464
8455
|
}
|
|
8465
|
-
case "mermaid":
|
|
8466
|
-
case "diagrams-mermaid": {
|
|
8467
|
-
renderMermaidFullscreen(c);
|
|
8468
|
-
break;
|
|
8469
|
-
}
|
|
8470
8456
|
default: {
|
|
8471
8457
|
for (const [k, v] of Object.entries(c)) {
|
|
8472
8458
|
if (v === null || v === void 0 || k.startsWith("_")) continue;
|
|
@@ -8485,38 +8471,6 @@ function renderDirectTypeFullscreen(embed, c) {
|
|
|
8485
8471
|
}
|
|
8486
8472
|
}
|
|
8487
8473
|
}
|
|
8488
|
-
function renderMermaidPreview(c, ln) {
|
|
8489
|
-
const title = str(c.title) ?? "Mermaid diagram";
|
|
8490
|
-
const kind = str(c.diagram_kind) ?? "mermaid";
|
|
8491
|
-
const source = str(c.diagram_code) ?? str(c.code) ?? str(c.source) ?? "";
|
|
8492
|
-
ln(`\x1B[1m${title}\x1B[0m`);
|
|
8493
|
-
ln(`\x1B[2mMermaid diagram \xB7 ${kind}\x1B[0m`);
|
|
8494
|
-
if (source) {
|
|
8495
|
-
for (const line of source.split("\n").slice(0, 4)) {
|
|
8496
|
-
if (line.trim()) ln(` ${trunc(line, 80)}`);
|
|
8497
|
-
}
|
|
8498
|
-
if (source.split("\n").length > 4) ln(" ...");
|
|
8499
|
-
}
|
|
8500
|
-
}
|
|
8501
|
-
function renderMermaidFullscreen(c) {
|
|
8502
|
-
const title = str(c.title) ?? "Mermaid diagram";
|
|
8503
|
-
const kind = str(c.diagram_kind) ?? "mermaid";
|
|
8504
|
-
const status = str(c.status);
|
|
8505
|
-
const source = str(c.diagram_code) ?? str(c.code) ?? str(c.source) ?? "";
|
|
8506
|
-
process.stdout.write(`\x1B[1m${title}\x1B[0m
|
|
8507
|
-
`);
|
|
8508
|
-
process.stdout.write(`\x1B[2mMermaid diagram \xB7 ${kind}${status ? ` \xB7 ${status}` : ""}\x1B[0m
|
|
8509
|
-
|
|
8510
|
-
`);
|
|
8511
|
-
if (source) {
|
|
8512
|
-
process.stdout.write("```mermaid\n");
|
|
8513
|
-
process.stdout.write(`${source.trim()}
|
|
8514
|
-
`);
|
|
8515
|
-
process.stdout.write("```\n");
|
|
8516
|
-
} else {
|
|
8517
|
-
process.stdout.write("No Mermaid source available.\n");
|
|
8518
|
-
}
|
|
8519
|
-
}
|
|
8520
8474
|
function resolveResultCount(c) {
|
|
8521
8475
|
if (typeof c.result_count === "number") return c.result_count;
|
|
8522
8476
|
const results = c.results;
|
|
@@ -23458,7 +23412,8 @@ var usbC3v3LdoPcbSchematicChat = {
|
|
|
23458
23412
|
],
|
|
23459
23413
|
metadata: {
|
|
23460
23414
|
featured: true,
|
|
23461
|
-
order: 103
|
|
23415
|
+
order: 103,
|
|
23416
|
+
content_embed_examples: ["electronics.schematic"]
|
|
23462
23417
|
}
|
|
23463
23418
|
};
|
|
23464
23419
|
|
|
@@ -23494,7 +23449,7 @@ var berlinMorningBikeForecastChat = {
|
|
|
23494
23449
|
{
|
|
23495
23450
|
"embed_id": "324eba33-3622-409c-b401-183f95d6183e",
|
|
23496
23451
|
"type": "app_skill_use",
|
|
23497
|
-
"content":
|
|
23452
|
+
"content": "app_id: weather\nskill_id: forecast\nresult_count: 2\nembed_ids: c72c110f-9513-4ce8-a943-d66888c6bad0|4d855526-af41-47cf-a354-c769f3098c94\nstatus: finished\nembed_id: 324eba33-3622-409c-b401-183f95d6183e\ndays: 2\nlocation: Berlin\nquery: Berlin weather forecast\ndays_requested: 2\nprovider: Deutscher Wetterdienst (DWD) + Open-Meteo\npreview_results[2]{title,date,location_name,provider,condition,icon,temperature_min_c,temperature_max_c,precipitation_total_mm,precipitation_probability_max_pct,rain_hours,wind_speed_max_kmh,cloud_cover_avg_pct,relative_humidity_avg_pct}:\n Berlin weather 2026-06-18,2026-06-18,Berlin,Deutscher Wetterdienst (DWD),dry,partly-cloudy-day,20.1,28.3,0,7,0,15.8,79,69.2\n Berlin weather 2026-06-19,2026-06-19,Berlin,Deutscher Wetterdienst (DWD),dry,partly-cloudy-day,18.4,32.0,0,4,0,11.1,58.7,null",
|
|
23498
23453
|
"parent_embed_id": null,
|
|
23499
23454
|
"embed_ids": [
|
|
23500
23455
|
"c72c110f-9513-4ce8-a943-d66888c6bad0",
|
|
@@ -30049,6 +30004,15 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
|
|
|
30049
30004
|
anonymous_terms_reminder: {
|
|
30050
30005
|
text: "By sending a message you accept the terms & privacy policy of OpenMates."
|
|
30051
30006
|
},
|
|
30007
|
+
anonymous_terms_reminder_prefix: {
|
|
30008
|
+
text: "By sending a message you accept the "
|
|
30009
|
+
},
|
|
30010
|
+
anonymous_terms_reminder_connector: {
|
|
30011
|
+
text: " & "
|
|
30012
|
+
},
|
|
30013
|
+
anonymous_terms_reminder_suffix: {
|
|
30014
|
+
text: " of OpenMates."
|
|
30015
|
+
},
|
|
30052
30016
|
send: {
|
|
30053
30017
|
text: "Send"
|
|
30054
30018
|
},
|
|
@@ -30586,6 +30550,38 @@ Only output the final Markdown table. Do NOT include explanations, notes, or any
|
|
|
30586
30550
|
text: "What live music or performance events are happening in Berlin next week?"
|
|
30587
30551
|
}
|
|
30588
30552
|
},
|
|
30553
|
+
email_verification_sequence_diagram: {
|
|
30554
|
+
title: {
|
|
30555
|
+
text: "Email Verification Sequence Diagram"
|
|
30556
|
+
},
|
|
30557
|
+
summary: {
|
|
30558
|
+
text: "Create a clear sequence diagram for an email verification signup flow without manually selecting an app."
|
|
30559
|
+
},
|
|
30560
|
+
message_1: {
|
|
30561
|
+
text: "Draw a clear sequence diagram for how a user signs up with email verification, including the browser, API, email service, and database."
|
|
30562
|
+
},
|
|
30563
|
+
message_2: {
|
|
30564
|
+
text: 'This sequence diagram illustrates the standard "Double Opt-In" flow for user registration. This process ensures that the email address provided is valid and belongs to the user, which is a critical security step for protecting your community from spam and ensuring reliable communication.\n\n```json\n{"type": "mermaid", "embed_id": "ca024780-71b4-429b-8ffc-e3a5bdbe7eea"}\n```\n\n### Key Security Best Practices\n1. **Password Hashing**: Never store passwords in plain text. Use [Argon2](wiki:Argon2) or [bcrypt](wiki:Bcrypt) with a strong work factor.\n2. **Token Entropy**: The verification token should be a high-entropy cryptographically secure random string (e.g., [UUID v4](wiki:Universally_unique_identifier) or a 32-byte hex string).\n3. **Token Expiration**: Set a short expiration (e.g., 24 hours). This minimizes the window of opportunity if an email account is compromised.\n4. **Rate Limiting**: Implement [rate limiting](wiki:Rate_limiting) on the signup endpoint to prevent malicious actors from using your server to send "email bombs" or spamming your database.\n\n### Why this flow builds a better community\nBy requiring email verification, you ensure that every member of your platform is reachable and has provided a legitimate point of contact. This reduces the prevalence of [botnets](wiki:Botnet) and fake accounts, which helps maintain a high level of trust and [social capital](wiki:Social_capital) within your digital space.\n\n**What would you like to explore next?**\n- Would you like to see the code implementation for the token generation and hashing in a specific language like **Node.js** or **Python**?\n- Should we design the **"Forgot Password"** flow, which uses a very similar token-based logic?\n\nIf you\'d like to save these requirements to your project notes, you can [create a new tech preference entry](/#settings/apps/code/settings_memories/preferred_tech/create?prefill={"name":"Auth Flow","proficiency":"Email Verification"}).'
|
|
30565
|
+
},
|
|
30566
|
+
follow_up_1: {
|
|
30567
|
+
text: "Show me the Node.js implementation for token generation and hashing"
|
|
30568
|
+
},
|
|
30569
|
+
follow_up_2: {
|
|
30570
|
+
text: "Explain the importance of high-entropy tokens in security"
|
|
30571
|
+
},
|
|
30572
|
+
follow_up_3: {
|
|
30573
|
+
text: "Generate a sequence diagram for the forgot password flow"
|
|
30574
|
+
},
|
|
30575
|
+
follow_up_4: {
|
|
30576
|
+
text: "Describe how email verification reduces bot accounts"
|
|
30577
|
+
},
|
|
30578
|
+
follow_up_5: {
|
|
30579
|
+
text: "Search for best practices for rate limiting in Node.js"
|
|
30580
|
+
},
|
|
30581
|
+
follow_up_6: {
|
|
30582
|
+
text: "Compare Argon2 and bcrypt for password hashing"
|
|
30583
|
+
}
|
|
30584
|
+
},
|
|
30589
30585
|
eu_chat_control_law: {
|
|
30590
30586
|
title: {
|
|
30591
30587
|
text: "EU Chat Control Law: Criticisms and Current Status"
|
|
@@ -33674,10 +33670,10 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
|
|
|
33674
33670
|
text: "Account: Email address, username/display name, profile image, locale, and security settings (e.g., 2FA enabled). Email and username are encrypted with your key before storage. We also keep a separate server-side Vault-encrypted copy of your verified email address for mandatory account lifecycle notices, such as account verification, security alerts, and deletion reminders. Passwords are stored as salted hashes."
|
|
33675
33671
|
},
|
|
33676
33672
|
usage: {
|
|
33677
|
-
text: "Usage: Server logs, event timestamps, feature usage, error logs, and device recognition identifiers (hashed). IP addresses may be temporarily processed for security and
|
|
33673
|
+
text: "Usage: Server logs, event timestamps, feature usage, error logs, and device recognition identifiers (hashed). IP addresses may be temporarily processed for security, rate limiting, and anonymous free-usage budget checks. Anonymous free usage uses a first-party random local identifier and sends only a server-side HMAC-hashed form for per-identity abuse limits."
|
|
33678
33674
|
},
|
|
33679
33675
|
content: {
|
|
33680
|
-
text: "Content: Chat messages, prompts, attachments, and uploaded images/videos necessary to deliver the service (subject to moderation where applicable)."
|
|
33676
|
+
text: "Content: Chat messages, prompts, attachments, and uploaded images/videos necessary to deliver the service (subject to moderation where applicable). Anonymous free-usage chats stay local-only and encrypted with per-chat keys before signup; they are uploaded only if you sign up and promote them into account sync."
|
|
33681
33677
|
},
|
|
33682
33678
|
payments: {
|
|
33683
33679
|
text: "Payments: Payment method tokens, transaction IDs, billing address and VAT information as required for invoicing (processed primarily by Stripe). We do not store full card numbers."
|
|
@@ -34215,7 +34211,7 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
|
|
|
34215
34211
|
text: "Credits and Payments"
|
|
34216
34212
|
},
|
|
34217
34213
|
description: {
|
|
34218
|
-
text: "OpenMates uses a credit-based payment system. You purchase credit packs which are consumed when using AI services. Credits do not expire and remain in your account until used. Payment processing is handled by Stripe - see our Privacy Policy for details about payment data handling."
|
|
34214
|
+
text: "OpenMates uses a credit-based payment system. You purchase credit packs which are consumed when using AI services. Credits do not expire and remain in your account until used. Official-cloud anonymous free usage, when available, is a limited fair-use trial with shared daily/weekly caps and per-identity abuse limits; it is not an account credit balance and may be unavailable when the budget is exhausted. Payment processing is handled by Stripe - see our Privacy Policy for details about payment data handling."
|
|
34219
34215
|
},
|
|
34220
34216
|
refund: {
|
|
34221
34217
|
text: "Refund Policy: You may request a refund for unused credits within 14 days after purchase. Your right of withdrawal expires once credits are used. See our signup process for the full refund consent details."
|
|
@@ -34753,7 +34749,7 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
|
|
|
34753
34749
|
},
|
|
34754
34750
|
software_development: {
|
|
34755
34751
|
systemprompt: {
|
|
34756
|
-
text: 'You are Sophia, an expert AI software development assistant.\nYour primary function is to help users with all aspects of software engineering, including writing, debugging, and understanding code, designing software architecture, and applying development best practices.\nProvide clear, concise, and accurate information.\nOffer best practices and optimization tips when relevant.\nIf a user\'s request is ambiguous, ask for clarification.\nIMPORTANT - Documentation Search First: When answering questions about APIs, SDKs, programming languages, frameworks, libraries, or any technology that evolves rapidly, ALWAYS search for the latest documentation first before providing answers. Your training data may be outdated, and APIs/syntax can change significantly between versions. This is especially critical for:\n- New or recently updated frameworks and libraries\n- Cloud service APIs (AWS, GCP, Azure, etc.)\n- Package managers and dependency management\n- Language features in newer versions (Python 3.12+, Node.js 20+, etc.)\n- Build tools and configuration formats\n- CLI tools and their flags/options\nIf you cannot search for documentation, clearly inform the user that your information may be outdated and recommend they verify against the official documentation.\nFollow security best practices. As an AI assistant, you strongly advice against taking control over a production server (for security reasons). Controlling dev or test servers is acceptable, but always ensure the user understands the risks involved.\nWhen providing code examples, ensure they are well-commented and easy to understand and add ADR sections with alternatives considered.\nWhen generating code, by default you always generate a unittest for that code first, before generating the code.\nWhen you know of an existing library, framework or function within a framework that is better suited for a task then what the user wants, suggest the better option to the user and explain the benefits of the better option.\nIf it seems like the user wants to implement a security vulnerability or something very inefficient, inform the user and ask for more context to clearify if the user really understands the implications and wants to continue.\nWhen generating code blocks, include the filepath in the opening fence using the format ```{language}:{filepath}. For example:\n```python:test.py\nprint("Hello, world!")\n
|
|
34752
|
+
text: 'You are Sophia, an expert AI software development assistant.\nYour primary function is to help users with all aspects of software engineering, including writing, debugging, and understanding code, designing software architecture, and applying development best practices.\nProvide clear, concise, and accurate information.\nOffer best practices and optimization tips when relevant.\nIf a user\'s request is ambiguous, ask for clarification.\nIMPORTANT - Documentation Search First: When answering questions about APIs, SDKs, programming languages, frameworks, libraries, or any technology that evolves rapidly, ALWAYS search for the latest documentation first before providing answers. Your training data may be outdated, and APIs/syntax can change significantly between versions. This is especially critical for:\n- New or recently updated frameworks and libraries\n- Cloud service APIs (AWS, GCP, Azure, etc.)\n- Package managers and dependency management\n- Language features in newer versions (Python 3.12+, Node.js 20+, etc.)\n- Build tools and configuration formats\n- CLI tools and their flags/options\nIf you cannot search for documentation, clearly inform the user that your information may be outdated and recommend they verify against the official documentation.\nFollow security best practices. As an AI assistant, you strongly advice against taking control over a production server (for security reasons). Controlling dev or test servers is acceptable, but always ensure the user understands the risks involved.\nWhen providing code examples, ensure they are well-commented and easy to understand and add ADR sections with alternatives considered.\nWhen generating code, by default you always generate a unittest for that code first, before generating the code.\nWhen you know of an existing library, framework or function within a framework that is better suited for a task then what the user wants, suggest the better option to the user and explain the benefits of the better option.\nIf it seems like the user wants to implement a security vulnerability or something very inefficient, inform the user and ask for more context to clearify if the user really understands the implications and wants to continue.\nWhen generating code blocks, include the filepath in the opening fence using the format ```{language}:{filepath}. For example:\n```python:test.py\nprint("Hello, world!")\n```\nWhen a user asks for a software architecture diagram, sequence, flow, state machine, dependency map, or process sketch, prefer readable ASCII/text diagrams in a plain text code block. Do not use Mermaid or `mermaid`/`mmd` fences unless the user explicitly asks for Mermaid syntax.'
|
|
34757
34753
|
},
|
|
34758
34754
|
process: {
|
|
34759
34755
|
text: "- helps with writing, debugging, and reviewing code across all programming languages\n- designs software architecture and applies development best practices\n- always searches for the latest documentation before answering API or framework questions\n- generates unit tests before writing implementation code\n- suggests better libraries, frameworks, or patterns when they exist\n- adds ADR (Architecture Decision Record) sections to code examples with alternatives considered\n- flags security vulnerabilities and inefficient approaches before implementing them\n- includes file paths in code blocks for easy integration"
|
|
@@ -38949,6 +38945,9 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
|
|
|
38949
38945
|
weekly_remaining: {
|
|
38950
38946
|
text: "Weekly remaining"
|
|
38951
38947
|
},
|
|
38948
|
+
monthly_remaining: {
|
|
38949
|
+
text: "Monthly remaining"
|
|
38950
|
+
},
|
|
38952
38951
|
reset_at: {
|
|
38953
38952
|
text: "Daily reset"
|
|
38954
38953
|
},
|
|
@@ -38981,6 +38980,9 @@ As of mid-2026, the severe supply shocks from the 2024\u20132025 avian flu have
|
|
|
38981
38980
|
},
|
|
38982
38981
|
validation_percent: {
|
|
38983
38982
|
text: "Percent values must be between 0 and 100."
|
|
38983
|
+
},
|
|
38984
|
+
validation_per_identity_cap: {
|
|
38985
|
+
text: "Per-identity daily cap must be at least 1 credit when the monthly budget is above 0."
|
|
38984
38986
|
}
|
|
38985
38987
|
},
|
|
38986
38988
|
tests: {
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED