{"$schema":"https://modules.openmercato.com/schema/modules-1.json","schemaVersion":1,"generatedAt":"2026-10-29T16:38:21Z","dataVersion":"1.0.0-202610291638.h4a59fa","site":"https://modules.openmercato.com","dataAsOf":{"nightly":"2026-10-29T09:03:43Z","npm":"2026-10-29T13:09:59Z","source":"ci"},"features":{"cliSearch":false},"officialCoverage":{"listed":37,"missing":[]},"lines":[{"key":"0.9","version":"0.9.0","source":"latest","cadence":"nightly","baseline":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":null,"at":"2026-10-29T08:29:32Z","receipt":"r_20261029_e5f612bd10e0","since":"2026-10-29","precheck":null,"patches":[]},"isolationBaseline":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":null,"at":"2026-10-29T08:29:32Z","receipt":"r_20261029_971197f20239","since":"2026-10-29","precheck":null,"patches":["api-keys"]},"defaultPreset":"classic","presets":{"classic":[{"id":"dashboards","from":"@open-mercato/core"},{"id":"auth","from":"@open-mercato/core"},{"id":"directory","from":"@open-mercato/core"},{"id":"customers","from":"@open-mercato/core"},{"id":"perspectives","from":"@open-mercato/core"},{"id":"entities","from":"@open-mercato/core"},{"id":"configs","from":"@open-mercato/core"},{"id":"query_index","from":"@open-mercato/core"},{"id":"audit_logs","from":"@open-mercato/core"},{"id":"attachments","from":"@open-mercato/core"},{"id":"catalog","from":"@open-mercato/core"},{"id":"sales","from":"@open-mercato/core"},{"id":"warranty_claims","from":"@open-mercato/core"},{"id":"wms","from":"@open-mercato/core"},{"id":"api_keys","from":"@open-mercato/core"},{"id":"devices","from":"@open-mercato/core"},{"id":"dictionaries","from":"@open-mercato/core"},{"id":"content","from":"@open-mercato/content"},{"id":"onboarding","from":"@open-mercato/onboarding"},{"id":"api_docs","from":"@open-mercato/core"},{"id":"business_rules","from":"@open-mercato/core"},{"id":"feature_toggles","from":"@open-mercato/core"},{"id":"workflows","from":"@open-mercato/core"},{"id":"search","from":"@open-mercato/search"},{"id":"currencies","from":"@open-mercato/core"},{"id":"planner","from":"@open-mercato/core"},{"id":"resources","from":"@open-mercato/core"},{"id":"staff","from":"@open-mercato/core"},{"id":"events","from":"@open-mercato/events"},{"id":"notifications","from":"@open-mercato/core"},{"id":"progress","from":"@open-mercato/core"},{"id":"integrations","from":"@open-mercato/core"},{"id":"data_sync","from":"@open-mercato/core"},{"id":"sync_excel","from":"@open-mercato/core"},{"id":"messages","from":"@open-mercato/core"},{"id":"communication_channels","from":"@open-mercato/core"},{"id":"push_notifications","from":"@open-mercato/core"},{"id":"phone_calls","from":"@open-mercato/core"},{"id":"ai_assistant","from":"@open-mercato/ai-assistant"},{"id":"translations","from":"@open-mercato/core"},{"id":"scheduler","from":"@open-mercato/scheduler"},{"id":"inbox_ops","from":"@open-mercato/core"},{"id":"payment_gateways","from":"@open-mercato/core"},{"id":"checkout","from":"@open-mercato/checkout"},{"id":"documents","from":"@open-mercato/documents"},{"id":"gateway_stripe","from":"@open-mercato/gateway-stripe"},{"id":"channel_resend","from":"@open-mercato/channel-resend"},{"id":"channel_ses","from":"@open-mercato/channel-ses"},{"id":"channel_imap","from":"@open-mercato/channel-imap"},{"id":"channel_gmail","from":"@open-mercato/channel-gmail"},{"id":"channel_apns","from":"@open-mercato/channel-apns"},{"id":"channel_expo","from":"@open-mercato/channel-expo"},{"id":"channel_fcm","from":"@open-mercato/channel-fcm"},{"id":"sync_akeneo","from":"@open-mercato/sync-akeneo"},{"id":"tillio","from":"@open-mercato/tillio"},{"id":"shipping_carriers","from":"@open-mercato/core"},{"id":"eudr","from":"@open-mercato/core"},{"id":"webhooks","from":"@open-mercato/webhooks"},{"id":"telemetry","from":"@open-mercato/telemetry"},{"id":"customer_accounts","from":"@open-mercato/core"},{"id":"portal","from":"@open-mercato/core"}],"empty":[{"id":"auth","from":"@open-mercato/core"},{"id":"directory","from":"@open-mercato/core"},{"id":"configs","from":"@open-mercato/core"},{"id":"entities","from":"@open-mercato/core"},{"id":"query_index","from":"@open-mercato/core"},{"id":"api_docs","from":"@open-mercato/core"},{"id":"audit_logs","from":"@open-mercato/core"},{"id":"notifications","from":"@open-mercato/core"},{"id":"dashboards","from":"@open-mercato/core"},{"id":"events","from":"@open-mercato/events"},{"id":"search","from":"@open-mercato/search"},{"id":"attachments","from":"@open-mercato/core"}]}},{"key":"0.8","version":"0.8.0","source":"previous","cadence":"weekly","baseline":null,"isolationBaseline":null,"defaultPreset":"classic","presets":{"classic":[{"id":"dashboards","from":"@open-mercato/core"},{"id":"auth","from":"@open-mercato/core"},{"id":"directory","from":"@open-mercato/core"},{"id":"customers","from":"@open-mercato/core"},{"id":"perspectives","from":"@open-mercato/core"},{"id":"entities","from":"@open-mercato/core"},{"id":"configs","from":"@open-mercato/core"},{"id":"query_index","from":"@open-mercato/core"},{"id":"audit_logs","from":"@open-mercato/core"},{"id":"attachments","from":"@open-mercato/core"},{"id":"catalog","from":"@open-mercato/core"},{"id":"sales","from":"@open-mercato/core"},{"id":"warranty_claims","from":"@open-mercato/core"},{"id":"wms","from":"@open-mercato/core"},{"id":"api_keys","from":"@open-mercato/core"},{"id":"devices","from":"@open-mercato/core"},{"id":"dictionaries","from":"@open-mercato/core"},{"id":"content","from":"@open-mercato/content"},{"id":"onboarding","from":"@open-mercato/onboarding"},{"id":"api_docs","from":"@open-mercato/core"},{"id":"business_rules","from":"@open-mercato/core"},{"id":"feature_toggles","from":"@open-mercato/core"},{"id":"workflows","from":"@open-mercato/core"},{"id":"search","from":"@open-mercato/search"},{"id":"currencies","from":"@open-mercato/core"},{"id":"planner","from":"@open-mercato/core"},{"id":"resources","from":"@open-mercato/core"},{"id":"staff","from":"@open-mercato/core"},{"id":"events","from":"@open-mercato/events"},{"id":"notifications","from":"@open-mercato/core"},{"id":"progress","from":"@open-mercato/core"},{"id":"integrations","from":"@open-mercato/core"},{"id":"data_sync","from":"@open-mercato/core"},{"id":"sync_excel","from":"@open-mercato/core"},{"id":"messages","from":"@open-mercato/core"},{"id":"communication_channels","from":"@open-mercato/core"},{"id":"push_notifications","from":"@open-mercato/core"},{"id":"phone_calls","from":"@open-mercato/core"},{"id":"ai_assistant","from":"@open-mercato/ai-assistant"},{"id":"translations","from":"@open-mercato/core"},{"id":"scheduler","from":"@open-mercato/scheduler"},{"id":"inbox_ops","from":"@open-mercato/core"},{"id":"payment_gateways","from":"@open-mercato/core"},{"id":"checkout","from":"@open-mercato/checkout"},{"id":"documents","from":"@open-mercato/documents"},{"id":"gateway_stripe","from":"@open-mercato/gateway-stripe"},{"id":"channel_resend","from":"@open-mercato/channel-resend"},{"id":"channel_ses","from":"@open-mercato/channel-ses"},{"id":"channel_imap","from":"@open-mercato/channel-imap"},{"id":"channel_gmail","from":"@open-mercato/channel-gmail"},{"id":"channel_apns","from":"@open-mercato/channel-apns"},{"id":"channel_expo","from":"@open-mercato/channel-expo"},{"id":"channel_fcm","from":"@open-mercato/channel-fcm"},{"id":"sync_akeneo","from":"@open-mercato/sync-akeneo"},{"id":"tillio","from":"@open-mercato/tillio"},{"id":"shipping_carriers","from":"@open-mercato/core"},{"id":"eudr","from":"@open-mercato/core"},{"id":"webhooks","from":"@open-mercato/webhooks"},{"id":"customer_accounts","from":"@open-mercato/core"},{"id":"portal","from":"@open-mercato/core"}],"empty":[{"id":"auth","from":"@open-mercato/core"},{"id":"directory","from":"@open-mercato/core"},{"id":"configs","from":"@open-mercato/core"},{"id":"entities","from":"@open-mercato/core"},{"id":"query_index","from":"@open-mercato/core"},{"id":"api_docs","from":"@open-mercato/core"},{"id":"audit_logs","from":"@open-mercato/core"},{"id":"notifications","from":"@open-mercato/core"},{"id":"dashboards","from":"@open-mercato/core"},{"id":"events","from":"@open-mercato/events"},{"id":"search","from":"@open-mercato/search"},{"id":"attachments","from":"@open-mercato/core"}]}},{"key":"next","version":"0.10.1-develop.7701.1.87b1ad4224","source":"develop","cadence":"nightly","baseline":{"status":"verified","step":null,"omVersion":"0.10.1-develop.7688.1.8bbd70dcdf","moduleVersion":null,"at":"2026-10-29T08:29:32Z","receipt":"r_20261029_eb4ed6b3091a","since":"2026-10-29","precheck":null,"patches":[]},"isolationBaseline":{"status":"verified","step":null,"omVersion":"0.10.1-develop.7688.1.8bbd70dcdf","moduleVersion":null,"at":"2026-10-29T08:29:32Z","receipt":"r_20261029_200e4794894d","since":"2026-10-29","precheck":null,"patches":[]},"defaultPreset":"classic","presets":{"classic":[{"id":"dashboards","from":"@open-mercato/core"},{"id":"auth","from":"@open-mercato/core"},{"id":"directory","from":"@open-mercato/core"},{"id":"customers","from":"@open-mercato/core"},{"id":"perspectives","from":"@open-mercato/core"},{"id":"entities","from":"@open-mercato/core"},{"id":"configs","from":"@open-mercato/core"},{"id":"query_index","from":"@open-mercato/core"},{"id":"audit_logs","from":"@open-mercato/core"},{"id":"attachments","from":"@open-mercato/core"},{"id":"catalog","from":"@open-mercato/core"},{"id":"sales","from":"@open-mercato/core"},{"id":"warranty_claims","from":"@open-mercato/core"},{"id":"wms","from":"@open-mercato/core"},{"id":"api_keys","from":"@open-mercato/core"},{"id":"devices","from":"@open-mercato/core"},{"id":"dictionaries","from":"@open-mercato/core"},{"id":"content","from":"@open-mercato/content"},{"id":"onboarding","from":"@open-mercato/onboarding"},{"id":"api_docs","from":"@open-mercato/core"},{"id":"business_rules","from":"@open-mercato/core"},{"id":"feature_toggles","from":"@open-mercato/core"},{"id":"workflows","from":"@open-mercato/core"},{"id":"search","from":"@open-mercato/search"},{"id":"currencies","from":"@open-mercato/core"},{"id":"planner","from":"@open-mercato/core"},{"id":"resources","from":"@open-mercato/core"},{"id":"staff","from":"@open-mercato/core"},{"id":"events","from":"@open-mercato/events"},{"id":"notifications","from":"@open-mercato/core"},{"id":"progress","from":"@open-mercato/core"},{"id":"integrations","from":"@open-mercato/core"},{"id":"data_sync","from":"@open-mercato/core"},{"id":"sync_excel","from":"@open-mercato/core"},{"id":"messages","from":"@open-mercato/core"},{"id":"communication_channels","from":"@open-mercato/core"},{"id":"push_notifications","from":"@open-mercato/core"},{"id":"phone_calls","from":"@open-mercato/core"},{"id":"ai_assistant","from":"@open-mercato/ai-assistant"},{"id":"translations","from":"@open-mercato/core"},{"id":"scheduler","from":"@open-mercato/scheduler"},{"id":"inbox_ops","from":"@open-mercato/core"},{"id":"payment_gateways","from":"@open-mercato/core"},{"id":"checkout","from":"@open-mercato/checkout"},{"id":"documents","from":"@open-mercato/documents"},{"id":"gateway_stripe","from":"@open-mercato/gateway-stripe"},{"id":"channel_resend","from":"@open-mercato/channel-resend"},{"id":"channel_ses","from":"@open-mercato/channel-ses"},{"id":"channel_imap","from":"@open-mercato/channel-imap"},{"id":"channel_gmail","from":"@open-mercato/channel-gmail"},{"id":"channel_apns","from":"@open-mercato/channel-apns"},{"id":"channel_expo","from":"@open-mercato/channel-expo"},{"id":"channel_fcm","from":"@open-mercato/channel-fcm"},{"id":"sync_akeneo","from":"@open-mercato/sync-akeneo"},{"id":"tillio","from":"@open-mercato/tillio"},{"id":"shipping_carriers","from":"@open-mercato/core"},{"id":"eudr","from":"@open-mercato/core"},{"id":"webhooks","from":"@open-mercato/webhooks"},{"id":"telemetry","from":"@open-mercato/telemetry"},{"id":"customer_accounts","from":"@open-mercato/core"},{"id":"portal","from":"@open-mercato/core"}],"empty":[{"id":"events","from":"@open-mercato/events"},{"id":"search","from":"@open-mercato/search"}]}}],"categories":[{"id":"crm-sales","title":"CRM & Sales","wedge":"sell","count":1},{"id":"catalog-pricing","title":"Catalog & Pricing","wedge":"sell","count":1},{"id":"orders-checkout","title":"Orders & Checkout","wedge":"sell","count":1},{"id":"marketing-loyalty","title":"Marketing & Loyalty","wedge":"sell","count":1},{"id":"warehouse-shipping","title":"Warehouse & Shipping","wedge":"operate","count":2},{"id":"operations","title":"Operations & Services","wedge":"operate","count":0},{"id":"payments-finance","title":"Payments, Billing & Invoicing","wedge":"money","count":5},{"id":"localization-compliance","title":"Localization & Compliance","wedge":"money","count":0},{"id":"integrations-sync","title":"Integrations & Data Sync","wedge":"connect","count":5},{"id":"communication","title":"Communication & Notifications","wedge":"connect","count":10},{"id":"ai-automation","title":"AI & Automation","wedge":"think","count":9},{"id":"search-analytics","title":"Search & Analytics","wedge":"think","count":2},{"id":"auth-security","title":"Auth & Security","wedge":"platform","count":1},{"id":"content-portal","title":"Content & Portal","wedge":"platform","count":3},{"id":"storage-infrastructure","title":"Storage & Infrastructure","wedge":"platform","count":6},{"id":"devtools","title":"Developer Tools","wedge":"platform","count":5}],"counts":{"entries":59,"listed":53,"modules":40,"verifiedOnLatest":8,"omQuality":0,"builtIn":46},"builtIn":{"coreVersion":"0.9.0","count":46,"href":"https://modules.openmercato.com/built-in.json"},"entries":[{"locator":"github:Chmarusso/open-mercato-enrichment-treg","path":"github/chmarusso/open-mercato-enrichment-treg","npm":null,"github":"Chmarusso/open-mercato-enrichment-treg","repoPath":null,"kind":"module","type":"3rd-party","enterprise":false,"title":"treg.to Enrichment","summary":"Enriches CRM people and companies through treg.to, adds hiring and news signals and finds similar companies.","whenToUse":"Use when sales reps need job titles, company size or industry filled in on CRM records and pay-per-call lookups are fine.","whenNotToUse":null,"category":"crm-sales","tags":["enrichment","crm","leads"],"providers":[{"name":"treg","label":"treg.to"}],"moduleIds":[],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":null,"preview":null,"publishedAt":null,"integrity":null,"installableFrom":null,"gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"github"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[],"ranges":{}},"lines":{},"verifiedOn":[]},"anatomy":null,"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"unknown","0.8":"unknown","next":"unknown"},"anatomy":"none","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":null,"catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"UNPINNED_GIT","text":"GitHub source without a pinned tag."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."}]},"0.8":{"decision":"refuse","reasons":[{"code":"UNPINNED_GIT","text":"GitHub source without a pinned tag."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}]},"next":{"decision":"refuse","reasons":[{"code":"UNPINNED_GIT","text":"GitHub source without a pinned tag."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}]}},"install":{"cli":"npx create-mercato-module install Chmarusso/open-mercato-enrichment-treg","cmm":"npx create-mercato-module install Chmarusso/open-mercato-enrichment-treg","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":null,"stars":0},"sigil":{"glyph":"0000000","phase":343,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/github/chmarusso/open-mercato-enrichment-treg","md":"https://modules.openmercato.com/m/github/chmarusso/open-mercato-enrichment-treg.md","json":"https://modules.openmercato.com/m/github/chmarusso/open-mercato-enrichment-treg.json","facts":null,"npm":null,"repo":"https://github.com/Chmarusso/open-mercato-enrichment-treg","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-25T17:33:15Z","_meta":{}},{"locator":"github:fullstackhouse/open-mercato-client-auth","path":"github/fullstackhouse/open-mercato-client-auth","npm":null,"github":"fullstackhouse/open-mercato-client-auth","repoPath":null,"kind":"module","type":"community","enterprise":false,"title":"Client Auth","summary":"Sign-in for SPAs and mobile apps: JSON session endpoints and Google and Apple OAuth, all issuing core auth sessions.","whenToUse":"Use when a customer-facing SPA or mobile app needs login, signup, refresh and password reset against the same users as the app.","whenNotToUse":null,"category":"auth-security","tags":["auth","oauth","sessions","mobile"],"providers":[{"name":"google","label":"Google"},{"name":"apple","label":"Apple"}],"moduleIds":["client_auth"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":false,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.4.0","preview":null,"publishedAt":null,"integrity":null,"installableFrom":null,"gitRef":"v0.4.0","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"github"},"compat":{"builtFor":{"range":">=0.6.0","kind":"open","lines":["0.8","0.9","next"]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.4.0","coverage":"full","counts":{"entities":1,"tables":1,"migrations":1,"routes":14,"publicRoutes":14,"aclFeatures":0,"eventsEmitted":3,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":["client_auth.user.signed_up","client_auth.oauth_account.linked","client_auth.password_reset.requested"],"eventsConsumed":[],"env":["OAUTH_MOBILE_REDIRECT_URI","OAUTH_WEB_REDIRECT_ORIGINS","REFRESH_TOKEN_DAYS","CLIENT_AUTH_PASSWORD_MIN_LENGTH","CLIENT_AUTH_SIGNUP_ENABLED","CLIENT_AUTH_DEFAULT_ROLE","GOOGLE_CLIENT_ID","GOOGLE_CLIENT_SECRET","APPLE_CLIENT_ID","APPLE_CLIENT_SECRET","APPLE_TEAM_ID","APPLE_KEY_ID","APPLE_PRIVATE_KEY","JWT_SECRET"],"hosts":["accounts.google.com","appleid.apple.com","oauth2.googleapis.com","www.googleapis.com"],"tables":["client_auth_oauth_accounts"],"publicRoutes":["POST /api/client_auth/login","POST /api/client_auth/logout","GET /api/client_auth/oauth/apple/callback","POST /api/client_auth/oauth/apple/callback","POST /api/client_auth/oauth/apple/init","POST /api/client_auth/oauth/apple/token","GET /api/client_auth/oauth/google/callback","POST /api/client_auth/oauth/google/init","POST /api/client_auth/oauth/google/token","POST /api/client_auth/password-reset/confirm"],"credentials":[]},"callout":"ADDS 1 TABLE · 14 ROUTES (14 PUBLIC) · EMITS 3 EVENTS","diff":null},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"ok"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"fail","failing":["install-scripts"]},"maintenance":{"status":"current","lastRelease":"2026-10-02","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9, next; verified on no line."]}},"tier":null,"quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"NOT_INSTALLABLE","text":"Package has no src/modules and dist/modules pair."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."}]},"0.8":{"decision":"refuse","reasons":[{"code":"NOT_INSTALLABLE","text":"Package has no src/modules and dist/modules pair."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}]},"next":{"decision":"refuse","reasons":[{"code":"NOT_INSTALLABLE","text":"Package has no src/modules and dist/modules pair."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}]}},"install":{"cli":"npx create-mercato-module install fullstackhouse/open-mercato-client-auth --ref v0.4.0","cmm":"npx create-mercato-module install fullstackhouse/open-mercato-client-auth --ref v0.4.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":null,"stars":0},"sigil":{"glyph":"2302000","phase":290,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/github/fullstackhouse/open-mercato-client-auth","md":"https://modules.openmercato.com/m/github/fullstackhouse/open-mercato-client-auth.md","json":"https://modules.openmercato.com/m/github/fullstackhouse/open-mercato-client-auth.json","facts":"https://modules.openmercato.com/m/github/fullstackhouse/open-mercato-client-auth/v/0.4.0/facts.json","npm":null,"repo":"https://github.com/fullstackhouse/open-mercato-client-auth","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-25T08:18:49Z","_meta":{}},{"locator":"npm:@dainamite/billing","path":"@dainamite/billing","npm":"@dainamite/billing","github":"dainamite-technologies/dainamite-core","repoPath":"dainamite-technologies/dainamite-core#main/packages/billing","kind":"module","type":"3rd-party","enterprise":false,"title":"Billing","summary":"Recurring billing: one-time, recurring and usage items, scheduled bill runs and draft invoices in sales for approval.","whenToUse":"Use when you charge subscriptions or metered usage and want draft invoices in the app before anything is posted.","whenNotToUse":"It does not replace your accounting system: it prepares invoices for a person to approve.","category":"payments-finance","tags":["billing","subscriptions","invoices","usage"],"providers":[],"moduleIds":["billing"],"requires":[{"raw":"auth","resolvesTo":"core:auth"},{"raw":"directory","resolvesTo":"core:directory"},{"raw":"dictionaries","resolvesTo":"core:dictionaries"},{"raw":"configs","resolvesTo":"core:configs"},{"raw":"sales","resolvesTo":"core:sales"},{"raw":"payment_gateways","resolvesTo":"core:payment_gateways"},{"raw":"@open-mercato/events","resolvesTo":"npm:@open-mercato/events"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.19.0","preview":null,"publishedAt":"2026-08-25","integrity":"sha512-bm1RB5Nuy2ZSPLxLXVNkwya/jzrV+MAhzCVL5zuQ8CDjK4R4HI8hUCyl+SdRHPkrnE9XNrU8OM5cVcSrukW3dA==","installableFrom":"2026-08-30","gitRef":"bf641f89e1493ae88a88234140f0cf43daaa0849","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.7","kind":"caret-0x","lines":[]},"lines":{"0.9":{"status":"broken","step":"typecheck","omVersion":"0.9.0","moduleVersion":"0.19.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_2b5db3a15017","since":"2026-10-29","precheck":null,"patches":[],"finding":"Typecheck failed: TS2707 Generic type 'ColumnDef' requires between 2 and 3 type arguments."}},"verifiedOn":[],"isolation":{"0.9":{"status":"broken","step":"typecheck","moduleVersion":"0.19.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_e2c4a303219f","finding":"Typecheck failed: TS2707 Generic type 'ColumnDef' requires between 2 and 3 type arguments."}}},"anatomy":{"version":"0.19.0","coverage":"full","counts":{"entities":10,"tables":10,"migrations":2,"routes":32,"publicRoutes":0,"aclFeatures":19,"eventsEmitted":10,"eventsConsumed":4,"backendPages":17,"frontendPages":0,"widgets":0,"workers":2,"cli":1,"aiTools":0,"aiAgents":0,"extends":4},"lists":{"aclFeatures":["billing.account.manage","billing.account.view","billing.item.manage","billing.item.view","billing.usage.ingest","billing.usage.view","billing.run.trigger","billing.run.dry_run","billing.run.view","billing.invoice.post","billing.invoice.edit_draft","billing.invoice.view","billing.balance.view","billing.balance.adjust","billing.topup.create","billing.topup.view","billing.statement.view","billing.statement.generate","billing.credit.view"],"eventsEmitted":["billing.invoice.posted","billing.invoice.line_posted","billing.run.completed","billing.balance.topped_up","billing.balance.low","billing.balance.exhausted","billing.usage.rated","billing.statement.generated","billing.credit.over_limit","billing.credit.near_limit"],"eventsConsumed":["payment_gateways.payment.captured","payment_gateways.payment.cancelled","payment_gateways.session.expired","payment_gateways.payment.failed"],"env":[],"hosts":[],"tables":["billing_accounts","billing_items","billing_account_usage","billing_runs","billing_run_outcomes","billing_draft_invoice_edits","billing_account_balances","billing_account_transactions","billing_topups","billing_statements"],"publicRoutes":[],"credentials":[],"backendPages":["/backend/billing/accounts","/backend/billing/accounts/[id]","/backend/billing/accounts/create","/backend/billing/invoices","/backend/billing/invoices/[id]","/backend/billing/items","/backend/billing/items/[id]","/backend/billing/items/create","/backend/billing/runs","/backend/billing/runs/[id]","/backend/billing/statements","/backend/billing/statements/[id]","/backend/billing/topups","/backend/billing/topups/[id]","/backend/billing/transactions","/backend/billing/transactions/[id]","/backend/billing/usage/create"]},"callout":"ADDS 10 TABLES · 32 ROUTES (0 PUBLIC) · 19 PERMISSIONS · EMITS 10 EVENTS","diff":{"from":"0.18.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"broken","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-08-25","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"BROKEN","text":"Broken at typecheck on 0.9 since 29 Oct."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}]},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @dainamite/billing@0.19.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @dainamite/billing@0.19.0"}},"install":{"cli":"yarn mercato module add @dainamite/billing@0.19.0 --allow-third-party","cmm":"npx create-mercato-module install @dainamite/billing@0.19.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":24,"stars":1},"sigil":{"glyph":"3333202","phase":21,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@dainamite/billing","md":"https://modules.openmercato.com/m/@dainamite/billing.md","json":"https://modules.openmercato.com/m/@dainamite/billing.json","facts":"https://modules.openmercato.com/m/@dainamite/billing/v/0.19.0/facts.json","npm":"https://www.npmjs.com/package/@dainamite/billing","repo":"https://github.com/dainamite-technologies/dainamite-core","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.19.0","0.8":"0.19.0","next":"0.19.0"}}},{"locator":"npm:@dainamite/cpq","path":"@dainamite/cpq","npm":"@dainamite/cpq","github":"dainamite-technologies/dainamite-core","repoPath":"dainamite-technologies/dainamite-core#main/packages/cpq","kind":"module","type":"3rd-party","enterprise":false,"title":"Configure, Price, Quote","summary":"Configurable products, multi-charge price tables, guided quotes and amend, renew or cancel flows for subscriptions.","whenToUse":"Use when you sell configurable products or subscriptions and sales reps build quotes that turn into orders.","whenNotToUse":null,"category":"catalog-pricing","tags":["cpq","quotes","pricing","subscriptions"],"providers":[],"moduleIds":["cpq"],"requires":[{"raw":"auth","resolvesTo":"core:auth"},{"raw":"directory","resolvesTo":"core:directory"},{"raw":"catalog","resolvesTo":"core:catalog"},{"raw":"sales","resolvesTo":"core:sales"},{"raw":"customers","resolvesTo":"core:customers"},{"raw":"dictionaries","resolvesTo":"core:dictionaries"},{"raw":"@open-mercato/events","resolvesTo":"npm:@open-mercato/events"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":true},"version":{"latest":"0.4.0","preview":null,"publishedAt":"2026-08-25","integrity":"sha512-ZLQRTwele2z6yJ0ZuhqFd5c3QJLgFfBZeL/A4hfRMpYODctCT8PBLQHPId+r72fUaKBsCrHsOXyqmRUMCEuJ1A==","installableFrom":"2026-08-30","gitRef":"bf641f89e1493ae88a88234140f0cf43daaa0849","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.7","kind":"caret-0x","lines":[]},"lines":{"0.9":{"status":"broken","step":"typecheck","omVersion":"0.9.0","moduleVersion":"0.4.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_460e5568bd4b","since":"2026-10-29","precheck":null,"patches":[],"finding":"Typecheck failed: TS2707 Generic type 'ColumnDef' requires between 2 and 3 type arguments."}},"verifiedOn":[],"isolation":{"0.9":{"status":"broken","step":"typecheck","moduleVersion":"0.4.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_3261bfae1a4d","finding":"Typecheck failed: TS2707 Generic type 'ColumnDef' requires between 2 and 3 type arguments."}}},"anatomy":{"version":"0.4.0","coverage":"full","counts":{"entities":20,"tables":20,"migrations":19,"routes":91,"publicRoutes":0,"aclFeatures":18,"eventsEmitted":6,"eventsConsumed":5,"backendPages":18,"frontendPages":0,"widgets":4,"workers":0,"cli":1,"aiTools":0,"aiAgents":0,"extends":4},"lists":{"aclFeatures":["cpq.quotes.view","cpq.quotes.manage","cpq.pricing.view","cpq.pricing.manage","cpq.products.view","cpq.products.manage","cpq.specifications.view","cpq.specifications.manage","cpq.offerings.view","cpq.offerings.manage","cpq.wizards.view","cpq.wizards.manage","cpq.orders.view","cpq.orders.manage","cpq.arc.amend.manage","cpq.arc.renew.manage","cpq.arc.cancel.manage","cpq.arc.changelog.view"],"eventsEmitted":["cpq.subscription.activated","cpq.subscription.amended","cpq.subscription.renewed","cpq.subscription.merged","cpq.subscription.cancelled","cpq.subscription.superseded"],"eventsConsumed":["cpq.subscription.amended","cpq.subscription.cancelled","cpq.subscription.merged","cpq.subscription.renewed","cpq.subscription.superseded"],"env":[],"hosts":[],"tables":["cpq_product_specifications","cpq_product_offerings","cpq_product_relationships","cpq_bundle_slots","cpq_offering_components","cpq_product_attributes","cpq_pricing_tables","cpq_pricing_table_entries","cpq_product_charges","cpq_price_rules","cpq_quote_configurations","cpq_wizard_definitions","cpq_quote_line_configurations","cpq_inventory_subscriptions","cpq_inventory_subscription_items","cpq_inventory_assets","cpq_order_configurations","cpq_order_line_configurations","cpq_quote_target_subscriptions","cpq_subscription_change_logs"],"publicRoutes":[],"credentials":[],"backendPages":["/backend/cpq/inventory","/backend/cpq/inventory/assets/[id]","/backend/cpq/inventory/subscriptions/[id]","/backend/cpq/offerings","/backend/cpq/offerings/[id]","/backend/cpq/orders","/backend/cpq/orders/[id]","/backend/cpq/price-rules","/backend/cpq/price-rules/[id]","/backend/cpq/pricing","/backend/cpq/pricing/[id]","/backend/cpq/quotes","/backend/cpq/quotes/[id]","/backend/cpq/specifications","/backend/cpq/specifications/[id]","/backend/cpq/wizards","/backend/cpq/wizards/[definitionCode]","/backend/cpq/wizards/[definitionCode]/detail"]},"callout":"ADDS 20 TABLES · 91 ROUTES (0 PUBLIC) · 18 PERMISSIONS · EMITS 6 EVENTS","diff":{"from":"0.3.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"broken","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"fail","failing":["acl-guards","license-mismatch"]},"maintenance":{"status":"current","lastRelease":"2026-08-25","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"BROKEN","text":"Broken at typecheck on 0.9 since 29 Oct."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}]},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @dainamite/cpq@0.4.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @dainamite/cpq@0.4.0"}},"install":{"cli":"yarn mercato module add @dainamite/cpq@0.4.0 --allow-third-party","cmm":"npx create-mercato-module install @dainamite/cpq@0.4.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":17,"stars":1},"sigil":{"glyph":"3333102","phase":183,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@dainamite/cpq","md":"https://modules.openmercato.com/m/@dainamite/cpq.md","json":"https://modules.openmercato.com/m/@dainamite/cpq.json","facts":"https://modules.openmercato.com/m/@dainamite/cpq/v/0.4.0/facts.json","npm":"https://www.npmjs.com/package/@dainamite/cpq","repo":"https://github.com/dainamite-technologies/dainamite-core","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.4.0","0.8":"0.4.0","next":"0.4.0"}}},{"locator":"npm:@dainamite/cpq-billing-connector","path":"@dainamite/cpq-billing-connector","npm":"@dainamite/cpq-billing-connector","github":"dainamite-technologies/dainamite-core","repoPath":"dainamite-technologies/dainamite-core#main/packages/cpq-billing-connector","kind":"module","type":"3rd-party","enterprise":false,"title":"CPQ → Billing Connector","summary":"Turns CPQ subscription events (activated, amended, renewed, cancelled, merged) into billing accounts and items.","whenToUse":"Use when you run both Dainamite CPQ and Billing and subscriptions sold in CPQ must be billed automatically.","whenNotToUse":"It has no UI or tables of its own: without cpq and billing it does nothing.","category":"payments-finance","tags":["cpq","billing","subscriptions"],"providers":[],"moduleIds":["cpq_billing_connector"],"requires":[{"raw":"cpq","resolvesTo":null},{"raw":"billing","resolvesTo":null},{"raw":"auth","resolvesTo":"core:auth"},{"raw":"directory","resolvesTo":"core:directory"},{"raw":"@dainamite/billing","resolvesTo":"npm:@dainamite/billing"},{"raw":"@dainamite/cpq","resolvesTo":"npm:@dainamite/cpq"},{"raw":"@open-mercato/events","resolvesTo":"npm:@open-mercato/events"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"1.0.0","preview":null,"publishedAt":"2026-08-25","integrity":"sha512-NtrNXs4IfPrYYBThH6my8q1Tlz4AIsJGG39Pqj6lAjwrAZ2i68f0jbE6Kvyki3PaNcmRIKD8a0m/PwsWCZtMwA==","installableFrom":"2026-08-30","gitRef":"bf641f89e1493ae88a88234140f0cf43daaa0849","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.7","kind":"caret-0x","lines":[]},"lines":{"0.9":{"status":"broken","step":"typecheck","omVersion":"0.9.0","moduleVersion":"1.0.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_824d4c522ba4","since":"2026-10-29","precheck":null,"patches":[],"finding":"Typecheck failed: TS2707 Generic type 'ColumnDef' requires between 2 and 3 type arguments."}},"verifiedOn":[],"isolation":{"0.9":{"status":"broken","step":"typecheck","moduleVersion":"1.0.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_7b9e9a88f335","finding":"Typecheck failed: TS2707 Generic type 'ColumnDef' requires between 2 and 3 type arguments."}}},"anatomy":{"version":"1.0.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":6,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":6},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":["cpq.subscription.activated","cpq.subscription.amended","cpq.subscription.cancelled","cpq.subscription.merged","cpq.subscription.renewed","cpq.subscription.superseded"],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.1.1","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"broken","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-08-25","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"BROKEN","text":"Broken at typecheck on 0.9 since 29 Oct."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}]},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @dainamite/cpq-billing-connector@1.0.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @dainamite/cpq-billing-connector@1.0.0"}},"install":{"cli":"yarn mercato module add @dainamite/cpq-billing-connector@1.0.0 --allow-third-party","cmm":"npx create-mercato-module install @dainamite/cpq-billing-connector@1.0.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":26,"stars":1},"sigil":{"glyph":"0002002","phase":93,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@dainamite/cpq-billing-connector","md":"https://modules.openmercato.com/m/@dainamite/cpq-billing-connector.md","json":"https://modules.openmercato.com/m/@dainamite/cpq-billing-connector.json","facts":"https://modules.openmercato.com/m/@dainamite/cpq-billing-connector/v/1.0.0/facts.json","npm":"https://www.npmjs.com/package/@dainamite/cpq-billing-connector","repo":"https://github.com/dainamite-technologies/dainamite-core","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"1.0.0","0.8":"1.0.0","next":"1.0.0"}}},{"locator":"npm:@fastwhitecat/integration-ksef-direct","path":"@fastwhitecat/integration-ksef-direct","npm":"@fastwhitecat/integration-ksef-direct","github":"FastWhiteCat/openmercato-module-ksef","repoPath":null,"kind":"module","type":"community","enterprise":false,"title":"KSeF Integration","summary":"Sends and receives Polish structured e-invoices through the KSeF API v2.","whenToUse":"Use when the app must issue or receive structured invoices in KSeF (Poland) and you have a KSeF token for the NIP.","whenNotToUse":null,"category":"payments-finance","tags":["ksef","e-invoicing","poland"],"providers":[{"name":"ksef","label":"KSeF"}],"moduleIds":["integration_ksef_direct"],"requires":[{"raw":"integrations","resolvesTo":"core:integrations"}],"replaces":[],"slotConflicts":[],"renamedFrom":["npm:@fast-white-cat/integration-ksef-direct"],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.1.8","preview":null,"publishedAt":"2026-10-15","integrity":"sha512-S/WTfqYPGCe4qSyCzAa6Fg+eMGdLd92HB09unoaqdgBgYBcp9YxQL63GDcq1kA7/wm8CokntXpg9l7jkt106RA==","installableFrom":"2026-10-20","gitRef":"df48a8c52904dc2cae6dabf3379f7076a7b319a5","recommended":{"0.9":"0.1.8","0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":">=0.7.0 <0.8.0","kind":"bounded","lines":[]},"lines":{"0.9":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":"0.1.8","at":"2026-10-29T08:29:32Z","receipt":"r_20261029_fae5e942639c","since":"2026-10-29","precheck":null,"patches":[]}},"verifiedOn":["0.9"],"isolation":{"0.9":{"status":"verified","step":null,"moduleVersion":"0.1.8","at":"2026-10-28T16:21:52Z","receipt":"r_20261028_7c29ab7c315b"},"0.8":{"status":"verified","step":null,"moduleVersion":"0.1.8","at":"2026-10-28T16:21:52Z","receipt":"r_20261028_5a25ebeaf384"},"next":{"status":"verified","step":null,"moduleVersion":"0.1.8","at":"2026-10-28T16:21:52Z","receipt":"r_20261028_020867435525"}}},"anatomy":{"version":"0.1.8","coverage":"full","counts":{"entities":3,"tables":3,"migrations":6,"routes":11,"publicRoutes":0,"aclFeatures":7,"eventsEmitted":9,"eventsConsumed":1,"backendPages":4,"frontendPages":0,"widgets":0,"workers":3,"cli":0,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["integration_ksef_direct.view","integration_ksef_direct.manage","integration_ksef_direct.documents.view","integration_ksef_direct.documents.create","integration_ksef_direct.documents.send","integration_ksef_direct.received_documents.view","integration_ksef_direct.received_documents.sync"],"eventsEmitted":["ksef_direct.connection.connected","ksef_direct.connection.failed","ksef_direct.connection.checked","ksef_direct.document.created","ksef_direct.document.queued","ksef_direct.document.sent","ksef_direct.document.failed","ksef_direct.received_document.synced","ksef_direct.received_document.failed"],"eventsConsumed":["ksef_direct.document.created"],"env":[],"hosts":["api-test.ksef.mf.gov.pl","api.ksef.mf.gov.pl"],"tables":["ksef_direct_documents","ksef_direct_received_documents","ksef_direct_connections"],"publicRoutes":[],"credentials":[{"key":"ksef_token","type":"secret","required":true},{"key":"nip","type":"text","required":true},{"key":"environment","type":"select","required":true}],"backendPages":["/backend/integration_ksef_direct","/backend/integration-ksef-direct/documents","/backend/integration-ksef-direct/documents/new","/backend/integration-ksef-direct/received-documents"]},"callout":"ADDS 3 TABLES · 11 ROUTES (0 PUBLIC) · 7 PERMISSIONS · EMITS 9 EVENTS","diff":{"from":"0.1.7","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"verified","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"ok"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["event-prefix"]},"maintenance":{"status":"current","lastRelease":"2026-10-15","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for no tested line; verified on 0.9."]}},"tier":"verified","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}],"consentText":"Install @fastwhitecat/integration-ksef-direct@0.1.8"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8. In isolation (empty preset): verified on 28 Oct."}],"consentText":"Install @fastwhitecat/integration-ksef-direct@0.1.8"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next. In isolation (empty preset): verified on 28 Oct."}],"consentText":"Install @fastwhitecat/integration-ksef-direct@0.1.8"}},"install":{"cli":"yarn mercato module add @fastwhitecat/integration-ksef-direct@0.1.8 --allow-third-party","cmm":"npx create-mercato-module install @fastwhitecat/integration-ksef-direct@0.1.8","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":42,"stars":1},"sigil":{"glyph":"2323201","phase":224,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@fastwhitecat/integration-ksef-direct","md":"https://modules.openmercato.com/m/@fastwhitecat/integration-ksef-direct.md","json":"https://modules.openmercato.com/m/@fastwhitecat/integration-ksef-direct.json","facts":"https://modules.openmercato.com/m/@fastwhitecat/integration-ksef-direct/v/0.1.8/facts.json","npm":"https://www.npmjs.com/package/@fastwhitecat/integration-ksef-direct","repo":"https://github.com/FastWhiteCat/openmercato-module-ksef","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.1.8","0.8":"0.1.8","next":"0.1.8"}}},{"locator":"npm:@freighttech/shipment-tracking","path":"@freighttech/shipment-tracking","npm":"@freighttech/shipment-tracking","github":null,"repoPath":"FreightTech/open-mercato-modules#main/packages/shipment-tracking","kind":"module","type":"community","enterprise":false,"title":"Shipment Tracking","summary":"Tracks ocean containers through DCSA carrier APIs such as Maersk and MSC, with a ShipsGo fallback and a journey timeline.","whenToUse":"Use when a forwarder needs container milestones from carriers on its shipment records, with an optional live vessel map.","whenNotToUse":null,"category":"warehouse-shipping","tags":["containers","ocean-freight","tracking","dcsa"],"providers":[{"name":"maersk","label":"Maersk"},{"name":"msc","label":"MSC"},{"name":"cma-cgm","label":"CMA CGM"},{"name":"hapag-lloyd","label":"Hapag-Lloyd"},{"name":"zim","label":"ZIM"},{"name":"cosco","label":"COSCO"},{"name":"evergreen","label":"Evergreen"},{"name":"shipsgo","label":"ShipsGo"}],"moduleIds":["shipment_tracking"],"requires":[{"raw":"@freighttech/ui","resolvesTo":"npm:@freighttech/ui"},{"raw":"@open-mercato/events","resolvesTo":"npm:@open-mercato/events"},{"raw":"@open-mercato/scheduler","resolvesTo":"npm:@open-mercato/scheduler"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":true},"version":{"latest":"0.7.2","preview":null,"publishedAt":"2026-09-24","integrity":"sha512-ZI4UVhg4bdBp2DSUhgdvv5D51m7OGPA3qtQKWStmFxbxWJAKpGgv/UzSWc8RN5ZnCQst31TMWzsAgmZjCfmysw==","installableFrom":"2026-09-29","gitRef":"912da3ad35c09ec0a18461f4ed4ca2eb801a995f","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.6.2","kind":"exact-pin","lines":[]},"lines":{"0.9":{"status":"broken","step":"add","omVersion":"0.9.0","moduleVersion":"0.7.2","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_0d75fcd7a35f","since":"2026-10-29","precheck":null,"patches":[],"finding":"In a new app from the default preset, the module adds the backend route /backend/webhooks, which the webhooks module (@open-mercato/webhooks) already has."}},"verifiedOn":[],"isolation":{"0.9":{"status":"broken","step":"typecheck","moduleVersion":"0.7.2","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_3fa1cd40d4b5","finding":"Typecheck failed: TS2307 Cannot find module './carriers/maersk.png' or its corresponding type declarations."}},"collisions":{"0.9":[{"route":"/backend/webhooks","module":"webhooks","from":"@open-mercato/webhooks"}],"0.8":[{"route":"/backend/webhooks","module":"webhooks","from":"@open-mercato/webhooks"}],"next":[{"route":"/backend/webhooks","module":"webhooks","from":"@open-mercato/webhooks"}]}},"anatomy":{"version":"0.7.2","coverage":"full","counts":{"entities":9,"tables":9,"migrations":3,"routes":32,"publicRoutes":0,"aclFeatures":14,"eventsEmitted":41,"eventsConsumed":7,"backendPages":5,"frontendPages":0,"widgets":1,"workers":0,"cli":4,"aiTools":0,"aiAgents":0,"extends":9},"lists":{"aclFeatures":["shipment_tracking.shipments.view","shipment_tracking.shipments.manage","shipment_tracking.tracking_jobs.view","shipment_tracking.tracking_jobs.manage","shipment_tracking.carrier_configs.view","shipment_tracking.carrier_configs.manage","shipment_tracking.shipsgo_config.view","shipment_tracking.shipsgo_config.manage","shipment_tracking.webhooks.view","shipment_tracking.webhooks.manage","shipment_tracking.location_overrides.view","shipment_tracking.location_overrides.manage","shipment_tracking.settings.manage","shipment_tracking.dashboard.ships_map.view"],"eventsEmitted":["shipment_tracking.shipment.created","shipment_tracking.shipment.updated","shipment_tracking.shipment.deleted","shipment_tracking.shipment.status_changed","shipment_tracking.shipment.booked","shipment_tracking.shipment.pre_arrival","shipment_tracking.shipment.delivered","shipment_tracking.transport.departed","shipment_tracking.transport.arrived","shipment_tracking.transport.eta_updated","shipment_tracking.transport.etd_updated","shipment_tracking.transport.omitted","shipment_tracking.equipment.loaded","shipment_tracking.equipment.discharged","shipment_tracking.equipment.gate_in","shipment_tracking.equipment.gate_out","shipment_tracking.equipment.available_pickup","shipment_tracking.equipment.customs_released","shipment_tracking.equipment.inspected","shipment_tracking.tracking_event.created"],"eventsConsumed":["shipment_tracking.poi.*","shipment_tracking.shipment.status_changed","terminal_tracking.terminal_event.created","shipment_tracking.tracking_event.created","shipment_tracking.tracking_job.created","shipment_tracking.tracking_job.poi.*","shipment_tracking.tracking_job.*"],"env":["NEXT_PUBLIC_GOOGLE_MAPS_API_KEY","POI_NATS_INSTANCE_ID","JWT_SECRET","POI_NATS_URL","POI_NATS_STREAM","POI_NATS_SUBJECT","NEXT_PUBLIC_VESSEL_API_URL","SHIPSGO_API_TOKEN","SHIPSGO_BASE_URL"],"hosts":["api.bic-code.org","api.hlag.com","api.maersk.com","api.shipsgo.com","api.tech.msc.com","apigw.zim.com","apis.cargosmart.com","apis.cma-cgm.net","ecomm.one-line.com","elines.coscoshipping.com","www.cma-cgm.com","www.evergreen-line.com","www.hapag-lloyd.com","www.maersk.com","www.msc.com","www.oocl.com","www.yangming.com","www.zim.com"],"tables":["shipment_tracking_jobs","shipment_tracking_shipments","shipment_tracking_events","shipment_tracking_carrier_configs","shipment_tracking_bic_configs","shipment_tracking_shipsgo_configs","shipment_tracking_webhooks","shipment_tracking_location_overrides","shipment_tracking_webhook_deliveries"],"publicRoutes":[],"credentials":[],"backendPages":["/backend/carrier-configs","/backend/location-overrides","/backend/shipment-tracking","/backend/tracking-jobs","/backend/webhooks"]},"callout":"ADDS 9 TABLES · 32 ROUTES (0 PUBLIC) · 14 PERMISSIONS · EMITS 41 EVENTS","diff":{"from":"0.7.1","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"broken","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["invalid-identifier","license-mismatch","peer-exact-pin","backend-route-collision"]},"maintenance":{"status":"current","lastRelease":"2026-09-24","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"BROKEN","text":"Broken at add on 0.9 since 29 Oct."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}]},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"ROUTE_COLLISION","text":"Static check: the module adds the backend route /backend/webhooks, which a new app already has from the webhooks module (@open-mercato/webhooks)."}],"consentText":"Install @freighttech/shipment-tracking@0.7.2"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"ROUTE_COLLISION","text":"Static check: the module adds the backend route /backend/webhooks, which a new app already has from the webhooks module (@open-mercato/webhooks)."}],"consentText":"Install @freighttech/shipment-tracking@0.7.2"}},"install":{"cli":"yarn mercato module add @freighttech/shipment-tracking@0.7.2 --allow-third-party","cmm":"npx create-mercato-module install @freighttech/shipment-tracking@0.7.2","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":355,"stars":2},"sigil":{"glyph":"3323202","phase":30,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@freighttech/shipment-tracking","md":"https://modules.openmercato.com/m/@freighttech/shipment-tracking.md","json":"https://modules.openmercato.com/m/@freighttech/shipment-tracking.json","facts":"https://modules.openmercato.com/m/@freighttech/shipment-tracking/v/0.7.2/facts.json","npm":"https://www.npmjs.com/package/@freighttech/shipment-tracking","repo":"https://github.com/FreightTech/open-mercato-modules","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.7.2","0.8":"0.7.2","next":"0.7.2"}}},{"locator":"npm:@freighttech/terminal-tracking","path":"@freighttech/terminal-tracking","npm":"@freighttech/terminal-tracking","github":null,"repoPath":"FreightTech/open-mercato-modules#main/packages/terminal-tracking","kind":"module","type":"community","enterprise":false,"title":"Terminal Tracking","summary":"Polls container terminal APIs (Navis N4, GCT and BCT in Gdynia) and turns container moves into tracking events.","whenToUse":"Use when you need gate-in, discharge and departure times for containers at Navis N4 terminals or the Gdynia terminals.","whenNotToUse":null,"category":"warehouse-shipping","tags":["containers","terminals","tracking","ports"],"providers":[{"name":"navis-n4","label":"Navis N4"},{"name":"gct","label":"Gdynia Container Terminal"},{"name":"bct","label":"BCT Gdynia"}],"moduleIds":["terminal_tracking"],"requires":[{"raw":"@freighttech/ui","resolvesTo":"npm:@freighttech/ui"},{"raw":"@open-mercato/events","resolvesTo":"npm:@open-mercato/events"},{"raw":"@open-mercato/scheduler","resolvesTo":"npm:@open-mercato/scheduler"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":true},"version":{"latest":"0.7.3","preview":null,"publishedAt":"2026-10-08","integrity":"sha512-KMKigatMEXe8UCmhTFL2a8zqKiwZKY/4qb0W1dveeuf8iUia/Pn9ZVn/YbzVLDY/U9GvyRo0Y3WcBgRp9NE7lQ==","installableFrom":"2026-10-13","gitRef":"d53705e1620697b0975e03eb0dcd423442078e80","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.6.2","kind":"exact-pin","lines":[]},"lines":{"0.9":{"status":"broken","step":"typecheck","omVersion":"0.9.0","moduleVersion":"0.7.3","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_e11d09d3f7ca","since":"2026-10-29","precheck":null,"patches":[],"finding":"Typecheck failed: TS2339 Property 'grouping' does not exist on type 'PerspectiveSettings'."}},"verifiedOn":[]},"anatomy":{"version":"0.7.3","coverage":"full","counts":{"entities":4,"tables":4,"migrations":5,"routes":11,"publicRoutes":0,"aclFeatures":6,"eventsEmitted":14,"eventsConsumed":1,"backendPages":2,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["terminal_tracking.terminal_configs.view","terminal_tracking.terminal_configs.manage","terminal_tracking.tracking_jobs.view","terminal_tracking.tracking_jobs.manage","terminal_tracking.events.view","terminal_tracking.settings.manage"],"eventsEmitted":["terminal_tracking.tracking_job.created","terminal_tracking.tracking_job.updated","terminal_tracking.tracking_job.failed","terminal_tracking.tracking_job.poll_failed","terminal_tracking.terminal_event.created","terminal_tracking.terminal_event.updated","terminal_tracking.equipment.gate_in","terminal_tracking.equipment.discharged","terminal_tracking.equipment.loaded","terminal_tracking.transport.departed","terminal_tracking.equipment.empty_ready","terminal_tracking.equipment.holds_cleared","terminal_tracking.equipment.holds_updated","terminal_tracking.equipment.stops_updated"],"eventsConsumed":["terminal_tracking.tracking_job.created"],"env":["TERMINAL_TRACKING_DEBUG"],"hosts":["api2.baltichub.com","bhctapicustomers.b2clogin.com","incos.pl"],"tables":["terminal_tracking_terminal_configs","terminal_tracking_jobs","terminal_tracking_events","terminal_tracking_vessel_visits"],"publicRoutes":[],"credentials":[],"backendPages":["/backend/terminal-configs","/backend/terminal-containers"]},"callout":"ADDS 4 TABLES · 11 ROUTES (0 PUBLIC) · 6 PERMISSIONS · EMITS 14 EVENTS","diff":{"from":"0.7.2","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"broken","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["license-mismatch","peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-08","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"BROKEN","text":"Broken at typecheck on 0.9 since 29 Oct."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}]},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @freighttech/terminal-tracking@0.7.3"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @freighttech/terminal-tracking@0.7.3"}},"install":{"cli":"yarn mercato module add @freighttech/terminal-tracking@0.7.3 --allow-third-party","cmm":"npx create-mercato-module install @freighttech/terminal-tracking@0.7.3","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":495,"stars":2},"sigil":{"glyph":"2323000","phase":87,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@freighttech/terminal-tracking","md":"https://modules.openmercato.com/m/@freighttech/terminal-tracking.md","json":"https://modules.openmercato.com/m/@freighttech/terminal-tracking.json","facts":"https://modules.openmercato.com/m/@freighttech/terminal-tracking/v/0.7.3/facts.json","npm":"https://www.npmjs.com/package/@freighttech/terminal-tracking","repo":"https://github.com/FreightTech/open-mercato-modules","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.7.3","0.8":"0.7.3","next":"0.7.3"}}},{"locator":"npm:@freighttech/ui","path":"@freighttech/ui","npm":"@freighttech/ui","github":null,"repoPath":"FreightTech/open-mercato-modules#main/packages/ui","kind":"library","type":"community","enterprise":false,"title":"FreightTech UI Kit","summary":"UI toolkit for Open Mercato backoffices: DynamicTable, forms, dialogs, detail sections and notifications.","whenToUse":"Use when you build backoffice pages with FreightTech components, or install terminal-tracking, which depends on it.","whenNotToUse":"Every app already ships the standard @open-mercato/ui components.","category":"devtools","tags":["ui","components","backoffice"],"providers":[],"moduleIds":[],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.14.9","preview":null,"publishedAt":"2026-10-07","integrity":"sha512-6nN72k9JYGg6RBRxSntfDiK6RY7jSDzGiXq0HI4Oal0UkfLiwhRePSqNBmlBxkmksjR22t8eq4ZmJVUV1dmr7A==","installableFrom":"2026-10-12","gitRef":"ca3a93d65e4dc90a736b5c163b906392b05e1630","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.6.2","kind":"exact-pin","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.14.9","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.14.1","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"fail","reasons":["Dependencies outside the registry: xlsx."]},"hygiene":{"status":"warn","failing":["host-dependency-duplication"]},"maintenance":{"status":"current","lastRelease":"2026-10-07","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not libraries."},{"code":"SUPPLY_CHAIN","text":"Dependencies outside the registry: xlsx."}],"consentText":"Install @freighttech/ui@0.14.9"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not libraries."},{"code":"SUPPLY_CHAIN","text":"Dependencies outside the registry: xlsx."}],"consentText":"Install @freighttech/ui@0.14.9"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not libraries."},{"code":"SUPPLY_CHAIN","text":"Dependencies outside the registry: xlsx."}],"consentText":"Install @freighttech/ui@0.14.9"}},"install":{"cli":"yarn add @freighttech/ui@0.14.9","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":708,"stars":2},"sigil":{"glyph":"0000000","phase":293,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@freighttech/ui","md":"https://modules.openmercato.com/m/@freighttech/ui.md","json":"https://modules.openmercato.com/m/@freighttech/ui.json","facts":"https://modules.openmercato.com/m/@freighttech/ui/v/0.14.9/facts.json","npm":"https://www.npmjs.com/package/@freighttech/ui","repo":"https://github.com/FreightTech/open-mercato-modules","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-26T12:02:41Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.14.9","0.8":"0.14.9","next":"0.14.9"}}},{"locator":"npm:@fullstackhouse/open-mercato-data-sync-durable","path":"@fullstackhouse/open-mercato-data-sync-durable","npm":"@fullstackhouse/open-mercato-data-sync-durable","github":null,"repoPath":null,"kind":"module","type":"community","enterprise":false,"title":"Durable Data Sync","summary":"Drop-in replacement for the built-in data_sync module that runs imports as durable jobs and resumes after a crash.","whenToUse":"Use when long data_sync imports must survive deploys and worker kills and resume from the last committed cursor.","whenNotToUse":"It takes the data_sync slot of core. It needs open-mercato-durable-work at the same version.","category":"integrations-sync","tags":["data-sync","durable","imports"],"providers":[],"moduleIds":["data_sync"],"requires":[{"raw":"@fullstackhouse/open-mercato-durable-work","resolvesTo":"npm:@fullstackhouse/open-mercato-durable-work"}],"replaces":["core:data_sync"],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.6.0","preview":null,"publishedAt":"2026-09-17","integrity":"sha512-LJ8pmZjcEjdlX2yuDkmNADwyqbxzvpn7oRHXemr/gdhUf5A7sAvl48Cgz3HArXX5S8kXoiFFOVH2E+7H3kKS+w==","installableFrom":"2026-09-22","gitRef":"1bf9ada1b3e3bb9022b07684252b5aeaf23191b1","recommended":{"0.9":"0.6.0","0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":">=0.7.0 <0.8.0","kind":"bounded","lines":[]},"lines":{"0.9":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":"0.6.0","at":"2026-10-29T08:29:32Z","receipt":"r_20261029_ffe9480fbeb1","since":"2026-10-29","precheck":null,"patches":["slot-swap"]}},"verifiedOn":["0.9"]},"anatomy":{"version":"0.6.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":2,"routes":17,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"ADDS 17 ROUTES (0 PUBLIC)","diff":{"from":"0.5.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"verified","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["unresolved-extension-target"]},"maintenance":{"status":"current","lastRelease":"2026-09-17","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for no tested line; verified on 0.9."]}},"tier":"verified","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"REPLACES","text":"Replaces core data_sync. Remove the core registration first."}],"consentText":"Install @fullstackhouse/open-mercato-data-sync-durable@0.6.0"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"REPLACES","text":"Replaces core data_sync. Remove the core registration first."}],"consentText":"Install @fullstackhouse/open-mercato-data-sync-durable@0.6.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"REPLACES","text":"Replaces core data_sync. Remove the core registration first."}],"consentText":"Install @fullstackhouse/open-mercato-data-sync-durable@0.6.0"}},"install":{"cli":"yarn mercato module add @fullstackhouse/open-mercato-data-sync-durable@0.6.0 --allow-third-party","cmm":"npx create-mercato-module install @fullstackhouse/open-mercato-data-sync-durable@0.6.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":172,"stars":null},"sigil":{"glyph":"1300000","phase":294,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-data-sync-durable","md":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-data-sync-durable.md","json":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-data-sync-durable.json","facts":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-data-sync-durable/v/0.6.0/facts.json","npm":"https://www.npmjs.com/package/@fullstackhouse/open-mercato-data-sync-durable","repo":null,"docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.6.0","0.8":"0.6.0","next":"0.6.0"}}},{"locator":"npm:@fullstackhouse/open-mercato-demo-auth","path":"@fullstackhouse/open-mercato-demo-auth","npm":"@fullstackhouse/open-mercato-demo-auth","github":"fullstackhouse/open-mercato-demo-auth","repoPath":null,"kind":"tool","type":"community","enterprise":false,"title":"Demo Auth","summary":"Dev-only widget that fills in and submits the login form from server env vars on dev and preview deployments.","whenToUse":"Use when a team signs in to dev or preview deployments many times a day and one image runs in every environment.","whenNotToUse":"Never set its env vars in production: leaving them unset is the only safety gate.","category":"devtools","tags":["dev-only","login","preview"],"providers":[],"moduleIds":[],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.3.0","preview":null,"publishedAt":"2026-04-24","integrity":"sha512-zd/Vpku6s92nLkxXwCpHHGQ0oY5LS0r+LQZTDKPYiW2f8PaAqNvaEqpDP1RI+RyrKtcN30TjNUCfHYUZ752RJw==","installableFrom":"2026-04-29","gitRef":"263ef0bed81d1c62ce3d0dfd6160228c855df543","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.3.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.2.1","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"behind","lastRelease":"2026-04-24","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install @fullstackhouse/open-mercato-demo-auth@0.3.0"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install @fullstackhouse/open-mercato-demo-auth@0.3.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install @fullstackhouse/open-mercato-demo-auth@0.3.0"}},"install":{"cli":"yarn add @fullstackhouse/open-mercato-demo-auth@0.3.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":817,"stars":0},"sigil":{"glyph":"0000000","phase":288,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-demo-auth","md":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-demo-auth.md","json":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-demo-auth.json","facts":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-demo-auth/v/0.3.0/facts.json","npm":"https://www.npmjs.com/package/@fullstackhouse/open-mercato-demo-auth","repo":"https://github.com/fullstackhouse/open-mercato-demo-auth","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-25T17:33:15Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.3.0","0.8":"0.3.0","next":"0.3.0"}}},{"locator":"npm:@fullstackhouse/open-mercato-durable-work","path":"@fullstackhouse/open-mercato-durable-work","npm":"@fullstackhouse/open-mercato-durable-work","github":null,"repoPath":null,"kind":"module","type":"community","enterprise":false,"title":"Durable Work","summary":"Durable at-least-once background jobs on leased Postgres records, with epoch fencing, resumable slices and a reconciler.","whenToUse":"Use when background jobs run for hours or days and must survive deploys, crashes and worker kills without starting over.","whenNotToUse":"Short jobs that are cheap to retry run fine on the standard queue.","category":"storage-infrastructure","tags":["background-jobs","durable","postgres"],"providers":[],"moduleIds":["durable_work"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.6.0","preview":null,"publishedAt":"2026-09-17","integrity":"sha512-uA3NDDbBb2LLA9KG2ZtXm1LeY2RJtDoOFzQafJcWTa/VstxZ8/yJL1BQL9OOWMVBM3qKbTrw6HodEQ5A287o3A==","installableFrom":"2026-09-22","gitRef":"1bf9ada1b3e3bb9022b07684252b5aeaf23191b1","recommended":{"0.9":"0.6.0","0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":">=0.7.0 <0.8.0","kind":"bounded","lines":[]},"lines":{"0.9":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":"0.6.0","at":"2026-10-29T08:29:32Z","receipt":"r_20261029_22d2953b7f97","since":"2026-10-29","precheck":null,"patches":[]}},"verifiedOn":["0.9"]},"anatomy":{"version":"0.6.0","coverage":"full","counts":{"entities":1,"tables":1,"migrations":1,"routes":4,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":10,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":3,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["durable_work.view","durable_work.operate"],"eventsEmitted":["durable_work.job.created","durable_work.job.started","durable_work.job.yielded","durable_work.job.completed","durable_work.job.failed","durable_work.job.parked","durable_work.job.cancelled","durable_work.job.redriven","durable_work.job.lease_lost","durable_work.job.mirror_stuck"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["durable_work_jobs"],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 TABLE · 4 ROUTES (0 PUBLIC) · 2 PERMISSIONS · EMITS 10 EVENTS","diff":{"from":"0.5.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"verified","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-09-17","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for no tested line; verified on 0.9."]}},"tier":"verified","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}],"consentText":"Install @fullstackhouse/open-mercato-durable-work@0.6.0"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @fullstackhouse/open-mercato-durable-work@0.6.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @fullstackhouse/open-mercato-durable-work@0.6.0"}},"install":{"cli":"yarn mercato module add @fullstackhouse/open-mercato-durable-work@0.6.0 --allow-third-party","cmm":"npx create-mercato-module install @fullstackhouse/open-mercato-durable-work@0.6.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":204,"stars":null},"sigil":{"glyph":"2203200","phase":194,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-durable-work","md":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-durable-work.md","json":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-durable-work.json","facts":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-durable-work/v/0.6.0/facts.json","npm":"https://www.npmjs.com/package/@fullstackhouse/open-mercato-durable-work","repo":null,"docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.6.0","0.8":"0.6.0","next":"0.6.0"}}},{"locator":"npm:@fullstackhouse/open-mercato-health","path":"@fullstackhouse/open-mercato-health","npm":"@fullstackhouse/open-mercato-health","github":"fullstackhouse/open-mercato-health","repoPath":null,"kind":"module","type":"community","enterprise":false,"title":"Health Checks","summary":"Liveness and readiness endpoints that check the database, cache, queue, search, KMS, email and AI providers.","whenToUse":"Use when Kubernetes or a load balancer must know whether the app is up and ready to take traffic.","whenNotToUse":null,"category":"storage-infrastructure","tags":["health-check","kubernetes","probes"],"providers":[],"moduleIds":["health"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.3.0","preview":null,"publishedAt":"2026-05-19","integrity":"sha512-ShX1+ajgxf4huku+RkCclf6ieI5fMrliABr6C4bXs46GoHRqZylTvaE/9Bovu74PhINl9GlxHwWVX1VCZx2gxQ==","installableFrom":"2026-05-24","gitRef":"9e37b05f23dba3882d814a1a3df7cc9ec0c42a91","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"*","kind":"star","lines":["0.8","0.9","next"]},"lines":{"0.9":{"status":"broken","step":"typecheck","omVersion":"0.9.0","moduleVersion":"0.3.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_9591e1e2ee09","since":"2026-10-29","precheck":null,"patches":[],"finding":"Typecheck failed: TS2339 Property 'path' does not exist on type '{ GET: { requireAuth: boolean; }; }'."}},"verifiedOn":[]},"anatomy":{"version":"0.3.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":2,"publicRoutes":2,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":["SMTP_HOST","SENDGRID_API_KEY","POSTMARK_API_TOKEN","RESEND_API_KEY","OPENAI_API_KEY","ANTHROPIC_API_KEY","AZURE_OPENAI_API_KEY","TENANT_DATA_ENCRYPTION_ENABLED","VAULT_ADDR","VAULT_TOKEN","QUEUE_STRATEGY","REDIS_URL","QUEUE_REDIS_URL","MEILISEARCH_HOST","SEARCH_FULLTEXT_URL","SEARCH_VECTOR_URL","QDRANT_URL","PINECONE_API_KEY"],"hosts":[],"tables":[],"publicRoutes":["GET /api/health/live","GET /api/health/ready"],"credentials":[]},"callout":"ADDS 2 ROUTES (2 PUBLIC)","diff":{"from":"0.2.3","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"broken","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-05-19","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9, next; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"BROKEN","text":"Broken at typecheck on 0.9 since 29 Oct."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}]},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @fullstackhouse/open-mercato-health@0.3.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @fullstackhouse/open-mercato-health@0.3.0"}},"install":{"cli":"yarn mercato module add @fullstackhouse/open-mercato-health@0.3.0 --allow-third-party","cmm":"npx create-mercato-module install @fullstackhouse/open-mercato-health@0.3.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":4958,"stars":0},"sigil":{"glyph":"0200000","phase":315,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-health","md":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-health.md","json":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-health.json","facts":"https://modules.openmercato.com/m/@fullstackhouse/open-mercato-health/v/0.3.0/facts.json","npm":"https://www.npmjs.com/package/@fullstackhouse/open-mercato-health","repo":"https://github.com/fullstackhouse/open-mercato-health","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.3.0","0.8":"0.3.0","next":"0.3.0"}}},{"locator":"npm:@northbound-run/channel-cloudflare-email","path":"@northbound-run/channel-cloudflare-email","npm":"@northbound-run/channel-cloudflare-email","github":"Northbound-Run/open-mercato-cloudflare-email","repoPath":null,"kind":"module","type":"3rd-party","enterprise":false,"title":"Cloudflare Email Channel","summary":"Cloudflare Email Service channel: inbound mail through Email Routing and a Worker, outbound through the REST API.","whenToUse":"Use when your domain mail runs on Cloudflare and threads should land in the app's communication channels with real delivery status.","whenNotToUse":"There is no history import: the channel sees mail only from the moment its routing rule goes live.","category":"communication","tags":["email","cloudflare"],"providers":[{"name":"cloudflare-email","label":"Cloudflare Email Service"}],"moduleIds":["channel_cloudflare_email"],"requires":[{"raw":"communication_channels","resolvesTo":"core:communication_channels"},{"raw":"integrations","resolvesTo":"core:integrations"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.2.0","preview":null,"publishedAt":"2026-08-07","integrity":"sha512-wu2QIhNqx+t/mXY0ZX+pmt6ImqzUvt57udRkGivM+UU2jHCntm+BRM8YzmYiN6ovSnScLmq3FN3s1ZYTa9zZlQ==","installableFrom":"2026-08-12","gitRef":"ceb01b278cef873a58e00d97c781d82ead5ac8ef","recommended":{"0.9":"0.2.0","0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":">=0.6.6 <0.7.0","kind":"bounded","lines":[]},"lines":{"0.9":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":"0.2.0","at":"2026-10-29T08:29:32Z","receipt":"r_20261029_a17f99586f63","since":"2026-10-29","precheck":null,"patches":[]}},"verifiedOn":["0.9"]},"anatomy":{"version":"0.2.0","coverage":"full","counts":{"entities":0,"tables":0,"migrations":0,"routes":1,"publicRoutes":1,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":1,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["channel_cloudflare_email.view","channel_cloudflare_email.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":["api.cloudflare.com"],"tables":[],"publicRoutes":["POST /api/channel_cloudflare_email/delivery-events"],"credentials":[{"key":"accountId","type":"text","required":true},{"key":"apiToken","type":"secret","required":true},{"key":"sendingDomain","type":"text","required":true},{"key":"fromAddress","type":"text","required":true},{"key":"fromName","type":"text","required":false},{"key":"inboundAddress","type":"text","required":true},{"key":"ingestSecret","type":"secret","required":true},{"key":"r2Bucket","type":"text","required":true},{"key":"r2AccessKeyId","type":"text","required":true},{"key":"r2SecretAccessKey","type":"secret","required":true}]},"callout":"ADDS 1 ROUTE (1 PUBLIC) · 2 PERMISSIONS","diff":{"from":"0.1.2","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"verified","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-08-07","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for no tested line; verified on 0.9."]}},"tier":"verified","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}],"consentText":"Install @northbound-run/channel-cloudflare-email@0.2.0"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @northbound-run/channel-cloudflare-email@0.2.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @northbound-run/channel-cloudflare-email@0.2.0"}},"install":{"cli":"yarn mercato module add @northbound-run/channel-cloudflare-email@0.2.0 --allow-third-party","cmm":"npx create-mercato-module install @northbound-run/channel-cloudflare-email@0.2.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":37,"stars":0},"sigil":{"glyph":"0110002","phase":352,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@northbound-run/channel-cloudflare-email","md":"https://modules.openmercato.com/m/@northbound-run/channel-cloudflare-email.md","json":"https://modules.openmercato.com/m/@northbound-run/channel-cloudflare-email.json","facts":"https://modules.openmercato.com/m/@northbound-run/channel-cloudflare-email/v/0.2.0/facts.json","npm":"https://www.npmjs.com/package/@northbound-run/channel-cloudflare-email","repo":"https://github.com/Northbound-Run/open-mercato-cloudflare-email","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.2.0","0.8":"0.2.0","next":"0.2.0"}}},{"locator":"npm:@northbound-run/search-cloudflare","path":"@northbound-run/search-cloudflare","npm":"@northbound-run/search-cloudflare","github":"Northbound-Run/open-mercato-cloudflare-ai-search","repoPath":null,"kind":"module","type":"3rd-party","enterprise":false,"title":"Cloudflare AI Search","summary":"Cloudflare AI Search as a fulltext driver for search: hybrid BM25 and vector retrieval with no search server to run.","whenToUse":"Use when you would rather not operate Meilisearch and accept about 250 ms search latency from a managed service.","whenNotToUse":"Indexed text leaves your infrastructure: decide which fields may be sent before indexing production data.","category":"search-analytics","tags":["search","cloudflare","fulltext"],"providers":[{"name":"cloudflare-ai-search","label":"Cloudflare AI Search"}],"moduleIds":["search_cloudflare"],"requires":[{"raw":"search","resolvesTo":null},{"raw":"@open-mercato/search","resolvesTo":"npm:@open-mercato/search"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.1.1","preview":null,"publishedAt":"2026-08-08","integrity":"sha512-AyNqom+FSOVbc04lPrdWIEiJ8/QDm4l/61Gbh3GnOTNPSHwyEw/pqAAB6aoNyVudE/uG5JaFgfA/sF2p5zPWcw==","installableFrom":"2026-08-13","gitRef":"1d17054f40e339cdd089bce97f4c803dd07471d1","recommended":{"0.9":"0.1.1","0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":">=0.6.0 <0.7.0","kind":"bounded","lines":[]},"lines":{"0.9":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":"0.1.1","at":"2026-10-29T08:29:32Z","receipt":"r_20261029_71db7d0f3eca","since":"2026-10-29","precheck":null,"patches":[]}},"verifiedOn":["0.9"]},"anatomy":{"version":"0.1.1","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":2,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":["CF_AI_SEARCH_ACCOUNT_ID","CF_AI_SEARCH_API_TOKEN","CF_AI_SEARCH_INSTANCE","CF_AI_SEARCH_NAMESPACE","SEARCH_DISABLE_SINGLETON_CACHE","SEARCH_EXCLUDE_ENCRYPTED_FIELDS","CF_AI_SEARCH_MATCH_THRESHOLD","CF_AI_SEARCH_RETRIEVAL_TYPE"],"hosts":["api.cloudflare.com"],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.1.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"verified","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-08-08","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for no tested line; verified on 0.9."]}},"tier":"verified","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}],"consentText":"Install @northbound-run/search-cloudflare@0.1.1"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @northbound-run/search-cloudflare@0.1.1"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @northbound-run/search-cloudflare@0.1.1"}},"install":{"cli":"yarn mercato module add @northbound-run/search-cloudflare@0.1.1 --allow-third-party","cmm":"npx create-mercato-module install @northbound-run/search-cloudflare@0.1.1","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":23,"stars":0},"sigil":{"glyph":"0000200","phase":62,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@northbound-run/search-cloudflare","md":"https://modules.openmercato.com/m/@northbound-run/search-cloudflare.md","json":"https://modules.openmercato.com/m/@northbound-run/search-cloudflare.json","facts":"https://modules.openmercato.com/m/@northbound-run/search-cloudflare/v/0.1.1/facts.json","npm":"https://www.npmjs.com/package/@northbound-run/search-cloudflare","repo":"https://github.com/Northbound-Run/open-mercato-cloudflare-ai-search","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.1.1","0.8":"0.1.1","next":"0.1.1"}}},{"locator":"npm:@northbound-run/sync-google-sheets","path":"@northbound-run/sync-google-sheets","npm":"@northbound-run/sync-google-sheets","github":"Northbound-Run/open-mercato-google-sheets","repoPath":null,"kind":"module","type":"3rd-party","enterprise":false,"title":"Google Sheets Sync","summary":"Adapter for data_sync that imports Google Sheets rows into any entity, with scheduled sync and an experimental two-way export.","whenToUse":"Use when a team keeps data in Google Sheets and needs it imported into app records without writing code.","whenNotToUse":null,"category":"integrations-sync","tags":["google-sheets","import","spreadsheets"],"providers":[{"name":"google-sheets","label":"Google Sheets"}],"moduleIds":["sync_google_sheets"],"requires":[{"raw":"integrations","resolvesTo":"core:integrations"},{"raw":"data_sync","resolvesTo":"core:data_sync"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.2.0","preview":null,"publishedAt":"2026-07-23","integrity":"sha512-MCBv6n8PMpEGtJGATra5v+u+b5pWKRgoxVzO1BQonLgdg3iEcmxx4xwHF/1Y/qXHbnxO/JRG9eC+gKKds6Ym3A==","installableFrom":"2026-07-28","gitRef":"0690676ecfd9342fced8f4d1fc88d9b34981a043","recommended":{"0.9":"0.2.0","0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.5","kind":"caret-0x","lines":[]},"lines":{"0.9":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":"0.2.0","at":"2026-10-29T08:29:32Z","receipt":"r_20261029_edaaa2419e07","since":"2026-10-29","precheck":null,"patches":[]}},"verifiedOn":["0.9"]},"anatomy":{"version":"0.2.0","coverage":"full","counts":{"entities":2,"tables":2,"migrations":1,"routes":6,"publicRoutes":0,"aclFeatures":4,"eventsEmitted":2,"eventsConsumed":1,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["sync_google_sheets.view","sync_google_sheets.connect","sync_google_sheets.configure","sync_google_sheets.run"],"eventsEmitted":["sync_google_sheets.run.completed","sync_google_sheets.run.failed"],"eventsConsumed":["data_sync.run.completed"],"env":["GOOGLE_SHEETS_OAUTH_REDIRECT_URI","OM_OAUTH_TOKEN_TIMEOUT_MS"],"hosts":["accounts.google.com","oauth2.googleapis.com","sheets.googleapis.com","www.googleapis.com"],"tables":["sync_google_sheets_bindings","sync_google_sheets_content_hashes"],"publicRoutes":[],"credentials":[{"key":"clientId","type":"text","required":false},{"key":"clientSecret","type":"secret","required":false},{"key":"scopes","type":"text","required":false},{"key":"clientEmail","type":"text","required":false},{"key":"privateKey","type":"secret","required":false}]},"callout":"ADDS 2 TABLES · 6 ROUTES (0 PUBLIC) · 4 PERMISSIONS · EMITS 2 EVENTS","diff":{"from":"0.1.1","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"verified","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-07-23","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for no tested line; verified on 0.9."]}},"tier":"verified","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}],"consentText":"Install @northbound-run/sync-google-sheets@0.2.0"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @northbound-run/sync-google-sheets@0.2.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @northbound-run/sync-google-sheets@0.2.0"}},"install":{"cli":"yarn mercato module add @northbound-run/sync-google-sheets@0.2.0 --allow-third-party","cmm":"npx create-mercato-module install @northbound-run/sync-google-sheets@0.2.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":75,"stars":0},"sigil":{"glyph":"2202002","phase":18,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@northbound-run/sync-google-sheets","md":"https://modules.openmercato.com/m/@northbound-run/sync-google-sheets.md","json":"https://modules.openmercato.com/m/@northbound-run/sync-google-sheets.json","facts":"https://modules.openmercato.com/m/@northbound-run/sync-google-sheets/v/0.2.0/facts.json","npm":"https://www.npmjs.com/package/@northbound-run/sync-google-sheets","repo":"https://github.com/Northbound-Run/open-mercato-google-sheets","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.2.0","0.8":"0.2.0","next":"0.2.0"}}},{"locator":"npm:@northbound-run/sync-shopify","path":"@northbound-run/sync-shopify","npm":"@northbound-run/sync-shopify","github":"Northbound-Run/open-mercato-shopify","repoPath":null,"kind":"module","type":"3rd-party","enterprise":false,"title":"Shopify Sync","summary":"Imports Shopify products, collections, customers, orders and inventory into native catalog, customer and sales records.","whenToUse":"Use when a Shopify store stays the sales front and the app needs its catalog, customers and orders on a schedule.","whenNotToUse":"Import only: nothing is written back to Shopify.","category":"integrations-sync","tags":["shopify","import","ecommerce"],"providers":[{"name":"shopify","label":"Shopify"}],"moduleIds":["sync_shopify"],"requires":[{"raw":"integrations","resolvesTo":"core:integrations"},{"raw":"data_sync","resolvesTo":"core:data_sync"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.5.0","preview":null,"publishedAt":"2026-08-19","integrity":"sha512-zRDFHwkpPgadT6qPciKmMig/fDYOXf469dklTZksrTfnmB1GNXXfm3nl+ZF6qNeiwlU0YxS2ZTcbfOtgRAdrgA==","installableFrom":"2026-08-24","gitRef":"e1c17659c70365921d2193892c850543c156254c","recommended":{"0.9":"0.5.0","0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":">=0.6.6 <0.7.0","kind":"bounded","lines":[]},"lines":{"0.9":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":"0.5.0","at":"2026-10-29T08:29:32Z","receipt":"r_20261029_d63bf03a3a9e","since":"2026-10-29","precheck":null,"patches":[]}},"verifiedOn":["0.9"]},"anatomy":{"version":"0.5.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":1,"routes":0,"publicRoutes":0,"aclFeatures":3,"eventsEmitted":3,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":5,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["sync_shopify.view","sync_shopify.configure","sync_shopify.run"],"eventsEmitted":["sync_shopify.connection.established","sync_shopify.connection.revoked","sync_shopify.reconcile.completed"],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[],"sdks":["@shopify/admin-api-client"]},"callout":"ADDS 3 PERMISSIONS · EMITS 3 EVENTS","diff":{"from":"0.4.9","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"verified","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-08-19","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for no tested line; verified on 0.9."]}},"tier":"verified","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."}],"consentText":"Install @northbound-run/sync-shopify@0.5.0"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @northbound-run/sync-shopify@0.5.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @northbound-run/sync-shopify@0.5.0"}},"install":{"cli":"yarn mercato module add @northbound-run/sync-shopify@0.5.0 --allow-third-party","cmm":"npx create-mercato-module install @northbound-run/sync-shopify@0.5.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":92,"stars":0},"sigil":{"glyph":"1002200","phase":193,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@northbound-run/sync-shopify","md":"https://modules.openmercato.com/m/@northbound-run/sync-shopify.md","json":"https://modules.openmercato.com/m/@northbound-run/sync-shopify.json","facts":"https://modules.openmercato.com/m/@northbound-run/sync-shopify/v/0.5.0/facts.json","npm":"https://www.npmjs.com/package/@northbound-run/sync-shopify","repo":"https://github.com/Northbound-Run/open-mercato-shopify","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.5.0","0.8":"0.5.0","next":"0.5.0"}}},{"locator":"npm:@open-mercato/ai-assistant","path":"@open-mercato/ai-assistant","npm":"@open-mercato/ai-assistant","github":null,"repoPath":"open-mercato/open-mercato#main/packages/ai-assistant","kind":"module","type":"official","enterprise":false,"title":"AI Assistant","summary":"Chat panel on Cmd+J, an MCP server over the platform API and typed AI agents whose writes wait for approval.","whenToUse":"Use when staff should search and change app data in plain language, or an external AI agent needs MCP access to the app.","whenNotToUse":"Skip it when app data must not reach an external LLM provider.","category":"ai-automation","tags":["ai","mcp","chat","agents"],"providers":[{"name":"anthropic","label":"Anthropic"},{"name":"openai","label":"OpenAI"},{"name":"google","label":"Google"}],"moduleIds":["ai_assistant"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-LG+zIqHgda60qSe0VBQg1DZ5Nw5lsN3pZ19FJjIDvnfJ+D/ZTT44BO9sv2icMUMsjgnwrlvESqpiGOCi3ECDvg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":11,"tables":11,"migrations":11,"routes":40,"publicRoutes":0,"aclFeatures":8,"eventsEmitted":7,"eventsConsumed":1,"backendPages":8,"frontendPages":0,"widgets":0,"workers":2,"cli":9,"aiTools":8,"aiAgents":0,"extends":9},"lists":{"aclFeatures":["ai_assistant.view","ai_assistant.settings.manage","ai_assistant.conversations.manage","ai_assistant.conversations.share","ai_assistant.mcp.serve","ai_assistant.tools.list","ai_assistant.mcp_servers.view","ai_assistant.mcp_servers.manage"],"eventsEmitted":["ai.action.confirmed","ai.action.cancelled","ai.action.expired","ai.token_usage.recorded","ai_assistant.conversation.shared","ai_assistant.conversation.unshared","ai_assistant.moderation_flag.created"],"eventsConsumed":["ai_assistant.conversation.shared"],"env":["MCP_SERVER_API_KEY_FILE","MCP_SERVER_API_KEY","OM_LOG_DESTINATION","OPEN_MERCATO_API_KEY","MCP_API_KEY_FILE","OM_AI_MODERATION_MODEL","AI_OPENAPI_FETCH_TIMEOUT_MS","NEXT_PUBLIC_APP_URL","NEXT_PUBLIC_API_BASE_URL","APP_URL","AI_API_REQUEST_TIMEOUT_MS","JEST_WORKER_ID","MCP_DEV_PORT","MCP_DEBUG","OM_INIT_SUPERADMIN_EMAIL","OPENCODE_URL","OPENCODE_PASSWORD","MCP_HEALTH_TIMEOUT_MS","MCP_URL","MEILISEARCH_HOST"],"hosts":["api.deepinfra.com","api.fireworks.ai","api.groq.com","api.openai.com","api.together.xyz","openrouter.ai","router.requesty.ai"],"tables":["ai_agent_prompt_overrides","ai_pending_actions","ai_agent_runtime_overrides","ai_token_usage_events","ai_token_usage_daily","ai_tenant_model_allowlists","ai_agent_mutation_policy_overrides","ai_chat_conversations","ai_chat_conversation_participants","ai_chat_messages","ai_moderation_flags"],"publicRoutes":[],"credentials":[],"sdks":["@ai-sdk/anthropic","@ai-sdk/azure","@ai-sdk/google","@ai-sdk/openai"],"backendPages":["/backend/config/ai-assistant","/backend/config/ai-assistant/agents","/backend/config/ai-assistant/allowlist","/backend/config/ai-assistant/legacy","/backend/config/ai-assistant/moderation-flags","/backend/config/ai-assistant/playground","/backend/config/ai-assistant/settings","/backend/config/ai-assistant/usage"]},"callout":"ADDS 11 TABLES · 40 ROUTES (0 PUBLIC) · 8 PERMISSIONS · EMITS 7 EVENTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["event-prefix","peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers ai_assistant in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers ai_assistant in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers ai_assistant in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/ai-assistant@0.9.0","cmm":"npx create-mercato-module install @open-mercato/ai-assistant@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":49183,"stars":null},"sigil":{"glyph":"3322322","phase":3,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/ai-assistant","md":"https://modules.openmercato.com/m/@open-mercato/ai-assistant.md","json":"https://modules.openmercato.com/m/@open-mercato/ai-assistant.json","facts":"https://modules.openmercato.com/m/@open-mercato/ai-assistant/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/ai-assistant","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/overview"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/ai-assistant-1.webp","alt":"AI agents page showing the Catalog Assistant with its mode, mutation policy and model override."}]},{"locator":"npm:@open-mercato/carrier-inpost","path":"@open-mercato/carrier-inpost","npm":"@open-mercato/carrier-inpost","github":null,"repoPath":null,"kind":"module","type":"official","enterprise":false,"title":"InPost Carrier","summary":"InPost shipping carrier integration. npm has canary and develop builds only, no stable release yet.","whenToUse":"Use when parcels ship through InPost, once Open Mercato publishes a stable release of this module.","whenNotToUse":null,"category":"warehouse-shipping","tags":["shipping","parcel-lockers","poland"],"providers":[{"name":"inpost","label":"InPost"}],"moduleIds":["carrier_inpost"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"hold","listed":false,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":true},"version":{"latest":null,"preview":"0.4.6-canary-5eb138494e","publishedAt":"2026-03-05","integrity":"sha512-sRDbwMZz6k/nwVbzSl+vu98yGnJa5/cuiM0dxGoE8SuELtAIo00XLIPfUjdiV4UG5Bv7FmxIzyg8Ft9HpeMnrQ==","installableFrom":"2026-03-05","gitRef":"5eb138494e7a71e5708a5d8257daa462478e526c","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.4.6-canary-5eb138494e","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":["inpost.example"],"tables":[],"publicRoutes":[],"credentials":[{"key":"apiKey","type":"secret","required":true},{"key":"organizationId","type":"text","required":false}]},"callout":"FEW CONTRACTS","diff":null},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"drift"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["license-mismatch"]},"maintenance":{"status":"behind","lastRelease":"2026-03-05","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["No Open Mercato peer range; verified on no line."]}},"tier":null,"quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Moved into the Open Mercato monorepo (open-mercato#7081). No stable release on npm yet."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}]},"0.8":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Moved into the Open Mercato monorepo (open-mercato#7081). No stable release on npm yet."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}]},"next":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Moved into the Open Mercato monorepo (open-mercato#7081). No stable release on npm yet."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}]}},"install":{"cli":"yarn mercato module add @open-mercato/carrier-inpost@0.4.6-canary-5eb138494e","cmm":"npx create-mercato-module install @open-mercato/carrier-inpost@0.4.6-canary-5eb138494e","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":4343,"stars":null},"sigil":{"glyph":"0000002","phase":217,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/carrier-inpost","md":"https://modules.openmercato.com/m/@open-mercato/carrier-inpost.md","json":"https://modules.openmercato.com/m/@open-mercato/carrier-inpost.json","facts":"https://modules.openmercato.com/m/@open-mercato/carrier-inpost/v/0.4.6-canary-5eb138494e/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/carrier-inpost","repo":null,"docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":null,"0.8":null,"next":null}}},{"locator":"npm:@open-mercato/channel-apns","path":"@open-mercato/channel-apns","npm":"@open-mercato/channel-apns","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-apns","kind":"module","type":"official","enterprise":false,"title":"Apple Push Notification Channel","summary":"Sends push notifications to iOS apps through Apple Push Notification service with token-based .p8 auth.","whenToUse":"Use when the app must push order or account updates to your own iOS app and you have an APNs key, Team ID and bundle ID.","whenNotToUse":"For apps built with Expo use channel-expo. For Android devices use channel-fcm.","category":"communication","tags":["push","ios","mobile"],"providers":[{"name":"apns","label":"Apple Push Notification service"}],"moduleIds":["channel_apns"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-Pch/FFEgElpMV/XXK5zXXuvXqatkBbOavl4n4MbKPzGsUdYpad6D0Vsjl9OKTk5YQfmyat6BSgs0LBVHHs5YwA==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["channel_apns.view","channel_apns.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"p8Key","type":"secret","required":true},{"key":"keyId","type":"text","required":true},{"key":"teamId","type":"text","required":true},{"key":"bundleId","type":"text","required":true},{"key":"production","type":"boolean","required":false}],"sdks":["@parse/node-apn"]},"callout":"ADDS 2 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_apns in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_apns in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_apns in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/channel-apns@0.9.0","cmm":"npx create-mercato-module install @open-mercato/channel-apns@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":24281,"stars":null},"sigil":{"glyph":"0000002","phase":353,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-apns","md":"https://modules.openmercato.com/m/@open-mercato/channel-apns.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-apns.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-apns/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-apns","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/modules/push-notifications"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/channel-apns-1.webp","alt":"Apple Push Notification service settings with auth key, key ID and team ID fields."}]},{"locator":"npm:@open-mercato/channel-discord","path":"@open-mercato/channel-discord","npm":"@open-mercato/channel-discord","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-discord","kind":"module","type":"official","enterprise":false,"title":"Discord Communication Channel","summary":"Two-way Discord bot channel: REST outbound, real-time Gateway inbound, slash commands and optional AI auto-reply.","whenToUse":"Use when customers or staff talk to the business in a Discord server and those threads belong in the app's communication channels.","whenNotToUse":null,"category":"communication","tags":["discord","chat","bot"],"providers":[{"name":"discord","label":"Discord"}],"moduleIds":["channel_discord"],"requires":[{"raw":"@open-mercato/ai-assistant","resolvesTo":"npm:@open-mercato/ai-assistant"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-lRYkIihKR+GWtmZJxCCWISTITvIh4PK7H+/GZTIwWZe/loIhMWOlfklT7l4drzyFJCJcY7CU9qvWmM6aoVLTwg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"lines":{"0.9":{"status":"broken","step":"typecheck","omVersion":"0.9.0","moduleVersion":"0.9.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_ba071e2d9535","since":"2026-10-29","precheck":null,"patches":[],"finding":"Typecheck failed: TS7016 Could not find a declaration file for module '@open-mercato/ai-assistant'. 'node_modules/@open-mercato/ai-assistant/dist/index.js' implicitly has an 'any' type."}},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":0,"tables":0,"migrations":0,"routes":4,"publicRoutes":1,"aclFeatures":3,"eventsEmitted":0,"eventsConsumed":1,"backendPages":1,"frontendPages":0,"widgets":1,"workers":2,"cli":3,"aiTools":0,"aiAgents":1,"extends":4},"lists":{"aclFeatures":["channel_discord.view","channel_discord.configure","channel_discord.ai_auto_reply.run"],"eventsEmitted":[],"eventsConsumed":["communication_channels.message.received"],"env":["QUEUE_STRATEGY","OM_CHANNEL_DISCORD_REQUEST_TIMEOUT_MS","OM_CHANNEL_DISCORD_GATEWAY_DISABLED"],"hosts":["discord.com","gateway.discord.gg"],"tables":[],"publicRoutes":["POST /api/channel_discord/interactions"],"credentials":[{"key":"botToken","type":"secret","required":true},{"key":"applicationId","type":"text","required":true},{"key":"publicKey","type":"text","required":true},{"key":"guildId","type":"text","required":false},{"key":"defaultChannelId","type":"text","required":false}],"backendPages":["/backend/channel_discord/channels/[id]/ai-auto-reply"]},"callout":"ADDS 4 ROUTES (1 PUBLIC) · 3 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"broken","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"BROKEN","text":"Broken at typecheck on 0.9 since 29 Oct."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @open-mercato/channel-discord@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @open-mercato/channel-discord@0.9.0"}},"install":{"cli":"yarn mercato module add @open-mercato/channel-discord@0.9.0","cmm":"npx create-mercato-module install @open-mercato/channel-discord@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":20679,"stars":null},"sigil":{"glyph":"0221212","phase":117,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-discord","md":"https://modules.openmercato.com/m/@open-mercato/channel-discord.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-discord.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-discord/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-discord","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/communication-channels-discord"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/channel-expo","path":"@open-mercato/channel-expo","npm":"@open-mercato/channel-expo","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-expo","kind":"module","type":"official","enterprise":false,"title":"Expo Push Channel","summary":"Sends push notifications to Expo apps through the Expo push service, with an optional access token.","whenToUse":"Use when your mobile app is built with Expo and order or account updates should reach users as push.","whenNotToUse":"For native iOS or Android apps without Expo use channel-apns or channel-fcm.","category":"communication","tags":["push","expo","mobile"],"providers":[{"name":"expo","label":"Expo"}],"moduleIds":["channel_expo"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-UUrlAr32B7NvgdT+x5t6AnABA4meQqnj8GIZMu6Mq15GRDMX6mkdcSJKPsGTepq8ZPW1h0sDtAAiKBkVcRypwQ==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["channel_expo.view","channel_expo.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"accessToken","type":"secret","required":false}],"sdks":["expo-server-sdk"]},"callout":"ADDS 2 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_expo in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_expo in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_expo in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/channel-expo@0.9.0","cmm":"npx create-mercato-module install @open-mercato/channel-expo@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":22073,"stars":null},"sigil":{"glyph":"0000002","phase":32,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-expo","md":"https://modules.openmercato.com/m/@open-mercato/channel-expo.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-expo.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-expo/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-expo","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/modules/push-notifications"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/channel-expo-1.webp","alt":"Expo push channel settings with an optional access token field."}]},{"locator":"npm:@open-mercato/channel-fcm","path":"@open-mercato/channel-fcm","npm":"@open-mercato/channel-fcm","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-fcm","kind":"module","type":"official","enterprise":false,"title":"Firebase Cloud Messaging Channel","summary":"Sends push notifications to Android and iOS devices through Firebase Cloud Messaging HTTP v1.","whenToUse":"Use when your mobile app already uses Firebase and you can provide a service account JSON for FCM.","whenNotToUse":"For apps built with Expo use channel-expo.","category":"communication","tags":["push","android","firebase","mobile"],"providers":[{"name":"fcm","label":"Firebase Cloud Messaging"}],"moduleIds":["channel_fcm"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-z+abaR7D6CZWGds5P8LrCwejwSLllJyTgdsebFIl0sAnKupaVqUmX2rgaexPGeeAE1THGzO7CVNj+WMm7xcyFg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["channel_fcm.view","channel_fcm.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"serviceAccountJson","type":"secret","required":true},{"key":"appName","type":"text","required":false}],"sdks":["firebase-admin"]},"callout":"ADDS 2 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_fcm in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_fcm in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_fcm in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/channel-fcm@0.9.0","cmm":"npx create-mercato-module install @open-mercato/channel-fcm@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":24413,"stars":null},"sigil":{"glyph":"0000002","phase":287,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-fcm","md":"https://modules.openmercato.com/m/@open-mercato/channel-fcm.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-fcm.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-fcm/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-fcm","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/modules/push-notifications"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/channel-fcm-1.webp","alt":"Firebase Cloud Messaging channel settings with service account JSON and app name fields."}]},{"locator":"npm:@open-mercato/channel-gmail","path":"@open-mercato/channel-gmail","npm":"@open-mercato/channel-gmail","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-gmail","kind":"module","type":"official","enterprise":false,"title":"Gmail Email Channel","summary":"Connects each user Gmail account over OAuth2: sends through the Gmail API and pulls replies with History API polling.","whenToUse":"Use when sales or support staff work from Google Workspace mailboxes and their email threads should appear in the app.","whenNotToUse":"For other mail servers use channel-imap. For transactional sending only use channel-resend or channel-ses.","category":"communication","tags":["email","gmail","oauth"],"providers":[{"name":"gmail","label":"Gmail"}],"moduleIds":["channel_gmail"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-Jlf7ZY7+Rlg2rk3dXCJzMdRi7exhLxq8xmWQTWkVJ37fzStm0FiRVZ5HvDUasL4QlaaYbWfTLzwXWWXnX2tbiA==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":1,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["channel_gmail.view","channel_gmail.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":["OM_CHANNEL_GMAIL_REQUEST_TIMEOUT_MS"],"hosts":["accounts.google.com","gmail.googleapis.com","oauth2.googleapis.com","www.googleapis.com"],"tables":[],"publicRoutes":[],"credentials":[{"key":"clientId","type":"text","required":true},{"key":"clientSecret","type":"secret","required":true},{"key":"scopes","type":"text","required":false}]},"callout":"ADDS 2 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_gmail in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_gmail in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_gmail in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/channel-gmail@0.9.0","cmm":"npx create-mercato-module install @open-mercato/channel-gmail@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":31950,"stars":null},"sigil":{"glyph":"0010002","phase":111,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-gmail","md":"https://modules.openmercato.com/m/@open-mercato/channel-gmail.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-gmail.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-gmail/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-gmail","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/communication-channels-gmail"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/channel-gmail-1.webp","alt":"Gmail channel settings with OAuth client ID, client secret and scopes."}]},{"locator":"npm:@open-mercato/channel-imap","path":"@open-mercato/channel-imap","npm":"@open-mercato/channel-imap","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-imap","kind":"module","type":"official","enterprise":false,"title":"IMAP + SMTP Email Channel","summary":"Connects any mailbox over IMAP for inbound polling and SMTP for outbound mail.","whenToUse":"Use when staff mailboxes live on a provider without a dedicated channel and the server offers IMAP and SMTP access.","whenNotToUse":"For Google Workspace mailboxes use channel-gmail, which signs in with OAuth2 instead of a stored password.","category":"communication","tags":["email","imap","smtp"],"providers":[{"name":"imap","label":"IMAP and SMTP"}],"moduleIds":["channel_imap"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-FTXV5mFXiP5WXzcEFMCStmFwZz9IKLNgJEd5pBNrWFplBgShKTTIVxk2M66uFxsWAzLoCthmykwsITIbObfQ+A==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":1,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["channel_imap.view","channel_imap.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":["OM_CHANNEL_IMAP_HARD_CAP_PER_POLL","OM_CHANNEL_IMAP_ALLOW_INTERNAL_HOSTS","OM_CHANNEL_IMAP_SOCKET_TIMEOUT_MS","OM_CHANNEL_IMAP_ALLOW_INSECURE_TRANSPORT"],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"imapHost","type":"text","required":true},{"key":"imapPort","type":"text","required":true},{"key":"imapTls","type":"select","required":true},{"key":"imapUser","type":"text","required":true},{"key":"imapPassword","type":"secret","required":true},{"key":"smtpHost","type":"text","required":true},{"key":"smtpPort","type":"text","required":true},{"key":"smtpTls","type":"select","required":true},{"key":"smtpUser","type":"text","required":true},{"key":"smtpPassword","type":"secret","required":true}]},"callout":"ADDS 2 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_imap in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_imap in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_imap in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/channel-imap@0.9.0","cmm":"npx create-mercato-module install @open-mercato/channel-imap@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":31883,"stars":null},"sigil":{"glyph":"0010002","phase":69,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-imap","md":"https://modules.openmercato.com/m/@open-mercato/channel-imap.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-imap.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-imap/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-imap","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/communication-channels-imap"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/channel-imap-1.webp","alt":"IMAP and SMTP channel settings with host, port and TLS mode fields."}]},{"locator":"npm:@open-mercato/channel-resend","path":"@open-mercato/channel-resend","npm":"@open-mercato/channel-resend","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-resend","kind":"module","type":"official","enterprise":false,"title":"Resend Email Channel","summary":"Sends transactional email through the Resend API from a configured from address. Outbound only.","whenToUse":"Use when the app sends receipts, notifications or other transactional email and you have a Resend account.","whenNotToUse":"It does not receive mail. For two-way mailboxes use channel-gmail or channel-imap.","category":"communication","tags":["email","transactional"],"providers":[{"name":"resend","label":"Resend"}],"moduleIds":["channel_resend"],"requires":[{"raw":"communication_channels","resolvesTo":"core:communication_channels"},{"raw":"integrations","resolvesTo":"core:integrations"},{"raw":"@open-mercato/ai-assistant","resolvesTo":"npm:@open-mercato/ai-assistant"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-9oUWmdYaToL0pplyd2W1qOB4fY+tgtqv4Id3RKtj6eId3mdaMIycFnFA0lt4PvORUkcS02/FsFnboqz/9SrYww==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["channel_resend.view","channel_resend.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":["RESEND_API_KEY"],"hosts":["api.resend.com"],"tables":[],"publicRoutes":[],"credentials":[{"key":"apiKey","type":"secret","required":true},{"key":"fromAddress","type":"text","required":true}],"sdks":["resend"]},"callout":"ADDS 2 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_resend in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_resend in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_resend in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/channel-resend@0.9.0","cmm":"npx create-mercato-module install @open-mercato/channel-resend@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":26553,"stars":null},"sigil":{"glyph":"0000001","phase":160,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-resend","md":"https://modules.openmercato.com/m/@open-mercato/channel-resend.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-resend.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-resend/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-resend","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/communication-channels"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/channel-resend-1.webp","alt":"Resend email channel settings with API key and verified from address."}]},{"locator":"npm:@open-mercato/channel-ses","path":"@open-mercato/channel-ses","npm":"@open-mercato/channel-ses","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-ses","kind":"module","type":"official","enterprise":false,"title":"Amazon SES Email Channel","summary":"Sends transactional email through Amazon SES v2 with a region, from address and optional configuration set.","whenToUse":"Use when the app sends transactional email and your infrastructure already runs on AWS with a verified SES identity.","whenNotToUse":"It does not receive mail. For two-way mailboxes use channel-gmail or channel-imap.","category":"communication","tags":["email","transactional","aws"],"providers":[{"name":"ses","label":"Amazon SES"}],"moduleIds":["channel_ses"],"requires":[{"raw":"communication_channels","resolvesTo":"core:communication_channels"},{"raw":"integrations","resolvesTo":"core:integrations"},{"raw":"@open-mercato/ai-assistant","resolvesTo":"npm:@open-mercato/ai-assistant"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-dKKYCJqX1mHGckVJWwilCxewa16xUOYz9RLyHzM+mTAX+fIa1HNPl/L0bUWSCSkOkjiUADavuUbvyJvTkifXwQ==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["channel_ses.view","channel_ses.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":["AWS_SES_REGION","AWS_REGION","AWS_SES_CONFIGURATION_SET"],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"region","type":"text","required":true},{"key":"fromAddress","type":"text","required":true},{"key":"configurationSetName","type":"text","required":false}],"sdks":["@aws-sdk/client-sesv2"]},"callout":"ADDS 2 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_ses in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_ses in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_ses in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/channel-ses@0.9.0","cmm":"npx create-mercato-module install @open-mercato/channel-ses@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":20490,"stars":null},"sigil":{"glyph":"0000001","phase":231,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-ses","md":"https://modules.openmercato.com/m/@open-mercato/channel-ses.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-ses.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-ses/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-ses","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/communication-channels"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/channel-ses-1.webp","alt":"Amazon SES email channel settings with AWS region, from address and configuration set."}]},{"locator":"npm:@open-mercato/checkout","path":"@open-mercato/checkout","npm":"@open-mercato/checkout","github":null,"repoPath":"open-mercato/open-mercato#main/packages/checkout","kind":"module","type":"official","enterprise":false,"title":"Checkout","summary":"Pay links with fixed, custom or price-list amounts, reusable templates and public pay pages with password and usage limits.","whenToUse":"Use when you collect one-off payments such as deposits, workshop fees or tickets without a storefront or a sales document.","whenNotToUse":"It takes no money on its own: pair it with a payment gateway such as gateway-stripe.","category":"orders-checkout","tags":["pay-links","payments","checkout"],"providers":[],"moduleIds":["checkout"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-asOpDIHncXPOUMR4PSsqPpQHUtaAXeJtY3TVxfTCMWjtyC28RxpCmxCGUrVQ3bHHvVG0omWDCePLq9dadm7TJg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":3,"tables":3,"migrations":4,"routes":18,"publicRoutes":4,"aclFeatures":6,"eventsEmitted":16,"eventsConsumed":9,"backendPages":10,"frontendPages":3,"widgets":1,"workers":2,"cli":0,"aiTools":0,"aiAgents":0,"extends":9},"lists":{"aclFeatures":["checkout.view","checkout.create","checkout.edit","checkout.delete","checkout.viewPii","checkout.export"],"eventsEmitted":["checkout.template.created","checkout.template.updated","checkout.template.deleted","checkout.link.created","checkout.link.updated","checkout.link.deleted","checkout.link.published","checkout.link.locked","checkout.transaction.created","checkout.transaction.customerDataCaptured","checkout.transaction.sessionStarted","checkout.transaction.completed","checkout.transaction.failed","checkout.transaction.cancelled","checkout.transaction.expired","checkout.link.usageLimitReached"],"eventsConsumed":["payment_gateways.payment.authorized","payment_gateways.payment.cancelled","payment_gateways.payment.captured","payment_gateways.payment.failed","checkout.transaction.created","checkout.transaction.sessionStarted","checkout.transaction.completed","checkout.transaction.failed","checkout.link.usageLimitReached"],"env":["CHECKOUT_ALLOWED_ORIGINS","APP_URL","NEXT_PUBLIC_APP_URL","QUEUE_STRATEGY","AUTH_SECRET","NEXTAUTH_SECRET","JWT_SECRET","TENANT_DATA_ENCRYPTION_FALLBACK_KEY"],"hosts":[],"tables":["checkout_link_templates","checkout_links","checkout_transactions"],"publicRoutes":["GET /api/checkout/pay/[slug]","GET /api/checkout/pay/[slug]/status/[transactionId]","POST /api/checkout/pay/[slug]/submit","POST /api/checkout/pay/[slug]/verify-password"],"credentials":[],"backendPages":["/backend/checkout","/backend/checkout/pay-links","/backend/checkout/pay-links/[id]","/backend/checkout/pay-links/create","/backend/checkout/templates","/backend/checkout/templates/[id]","/backend/checkout/templates/[id]/preview","/backend/checkout/templates/create","/backend/checkout/transactions","/backend/checkout/transactions/[id]"]},"callout":"ADDS 3 TABLES · 18 ROUTES (4 PUBLIC) · 6 PERMISSIONS · EMITS 16 EVENTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers checkout in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers checkout in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers checkout in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/checkout@0.9.0","cmm":"npx create-mercato-module install @open-mercato/checkout@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":34545,"stars":null},"sigil":{"glyph":"2333202","phase":98,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/checkout","md":"https://modules.openmercato.com/m/@open-mercato/checkout.md","json":"https://modules.openmercato.com/m/@open-mercato/checkout.json","facts":"https://modules.openmercato.com/m/@open-mercato/checkout/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/checkout","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/checkout"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/checkout-1.webp","alt":"Pay links list with price list, custom and fixed amount links, their status and usage."},{"src":"/shots/@open-mercato/checkout-2.webp","alt":"Link templates list with pricing mode, gateway and maximum uses per template."}]},{"locator":"npm:@open-mercato/content","path":"@open-mercato/content","npm":"@open-mercato/content","github":null,"repoPath":"open-mercato/open-mercato#main/packages/content","kind":"module","type":"official","enterprise":false,"title":"Content","summary":"Adds public terms of service and privacy policy pages to the app, rendered from code in the app layout.","whenToUse":"Use when the app needs public terms and privacy pages and their text can live in code next to the app.","whenNotToUse":"It is not a CMS: the admin panel has no page editor.","category":"content-portal","tags":["legal","pages"],"providers":[],"moduleIds":["content"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-EPswjQOYm7h1CJiJANwcOed1lw6LZYfiTDLdStgygubMoeSm1S5j5FV3sqirniRkI9Ha/pAxYujuFR87GK8S2g==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":2,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers content in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers content in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers content in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/content@0.9.0","cmm":"npx create-mercato-module install @open-mercato/content@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":43675,"stars":null},"sigil":{"glyph":"0020000","phase":59,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/content","md":"https://modules.openmercato.com/m/@open-mercato/content.md","json":"https://modules.openmercato.com/m/@open-mercato/content.json","facts":"https://modules.openmercato.com/m/@open-mercato/content/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/content","repo":"https://github.com/open-mercato/open-mercato","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/content-1.webp","alt":"Public terms of service page that the content module adds to the app."}]},{"locator":"npm:@open-mercato/documents","path":"@open-mercato/documents","npm":"@open-mercato/documents","github":null,"repoPath":"open-mercato/open-mercato#main/packages/documents","kind":"module","type":"official","enterprise":false,"title":"Documents","summary":"Internal rich-text documents that staff co-edit in real time, with folders, sharing roles, comments, versions and export.","whenToUse":"Use when teams write proposals, procedures or notes inside the app and export them to .docx or PDF, instead of a separate wiki.","whenNotToUse":"Real-time co-editing needs a separate WebSocket sidecar process; without it one person edits at a time.","category":"content-portal","tags":["documents","collaboration","editor"],"providers":[],"moduleIds":["documents"],"requires":[{"raw":"auth","resolvesTo":"core:auth"},{"raw":"directory","resolvesTo":"core:directory"},{"raw":"attachments","resolvesTo":"core:attachments"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-KCjVEzXzSry3t+/5TV1MAkaqtDl9Tc2pLuA8SE+r+EsWymd5Gv8YNfX9kxCbJudBS1VOaRf2ZhgmlPF+oZa27A==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":11,"tables":11,"migrations":8,"routes":47,"publicRoutes":0,"aclFeatures":7,"eventsEmitted":15,"eventsConsumed":0,"backendPages":3,"frontendPages":0,"widgets":7,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":17},"lists":{"aclFeatures":["documents.view","documents.create","documents.edit","documents.delete","documents.share","documents.templates.manage","documents.manage"],"eventsEmitted":["documents.document.created","documents.document.updated","documents.document.deleted","documents.document.archived","documents.document.unarchived","documents.document.duplicated","documents.document.shared","documents.document.unshared","documents.comment.created","documents.comment.mentioned","documents.comment.resolved","documents.version.created","documents.version.restored","documents.link.created","documents.link.deleted"],"eventsConsumed":[],"env":["NEXT_PUBLIC_DOCUMENTS_COLLAB_URL","DOCUMENTS_PDF_CHROMIUM_PATH","PUPPETEER_EXECUTABLE_PATH","OM_DOCUMENTS_COLLAB_INTEGRATION","DOCUMENTS_COLLAB_JWT_SECRET_V2","DOCUMENTS_COLLAB_JWT_SECRET"],"hosts":[],"tables":["documents","document_contents","document_folders","document_shares","document_favorites","document_watchers","document_comments","document_versions","document_attachments","document_templates","document_entity_links"],"publicRoutes":[],"credentials":[],"backendPages":["/backend/documents","/backend/documents/[id]","/backend/documents/templates"]},"callout":"ADDS 11 TABLES · 47 ROUTES (0 PUBLIC) · 7 PERMISSIONS · EMITS 15 EVENTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers documents in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers documents in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers documents in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/documents@0.9.0","cmm":"npx create-mercato-module install @open-mercato/documents@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":20554,"stars":null},"sigil":{"glyph":"3333003","phase":255,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/documents","md":"https://modules.openmercato.com/m/@open-mercato/documents.md","json":"https://modules.openmercato.com/m/@open-mercato/documents.json","facts":"https://modules.openmercato.com/m/@open-mercato/documents/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/documents","repo":"https://github.com/open-mercato/open-mercato","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/documents-1.webp","alt":"Document templates list with eight active templates such as a deal proposal and a quote cover letter."}]},{"locator":"npm:@open-mercato/enterprise","path":"@open-mercato/enterprise","npm":"@open-mercato/enterprise","github":null,"repoPath":"open-mercato/open-mercato#main/packages/enterprise","kind":"module","type":"official","enterprise":true,"title":"Enterprise","summary":"Commercial modules: SSO with directory sync, MFA and sudo, record locks, agent orchestrator and status overlays.","whenToUse":"Use when a production app needs SSO, multi-factor auth or record locking and the company holds an Open Mercato Enterprise subscription.","whenNotToUse":"Not open source: the license is per project, with tiers set by company revenue.","category":"auth-security","tags":["sso","mfa","record-locks","enterprise"],"providers":[],"moduleIds":["agent_orchestrator","record_locks","security","sso","system_status_overlays"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":null,"kind":"enterprise","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-d6wOhNvfBA0+UJA4T/fF2QVxkjbg4aRaOsTGZVqYweKURReiz/EoBg7M/1CE+L0cbphP1kadwy/7RWGZrpE6JA==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"lines":{},"verifiedOn":[]},"anatomy":null,"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"hidden","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":null,"quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: commercial license."},{"code":"LICENSE","text":"License: enterprise (SEE LICENSE IN LICENSE.md)."}],"consentText":"Install @open-mercato/enterprise@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: commercial license."},{"code":"LICENSE","text":"License: enterprise (SEE LICENSE IN LICENSE.md)."}],"consentText":"Install @open-mercato/enterprise@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: commercial license."},{"code":"LICENSE","text":"License: enterprise (SEE LICENSE IN LICENSE.md)."}],"consentText":"Install @open-mercato/enterprise@0.9.0"}},"install":{"cli":"echo OM_ENABLE_ENTERPRISE_MODULES=true >> .env && yarn generate","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":20318,"stars":null},"sigil":{"glyph":"0000000","phase":318,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/enterprise","md":"https://modules.openmercato.com/m/@open-mercato/enterprise.md","json":"https://modules.openmercato.com/m/@open-mercato/enterprise.json","facts":null,"npm":"https://www.npmjs.com/package/@open-mercato/enterprise","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/enterprise/overview"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/aliases":["single sign-on","single sign on","oidc","openid connect","two-factor","2fa","totp"],"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/events","path":"@open-mercato/events","npm":"@open-mercato/events","github":null,"repoPath":"open-mercato/open-mercato#main/packages/events","kind":"module","type":"official","enterprise":false,"title":"Events","summary":"Event bus with module subscribers, inline or persistent delivery and a queue worker for async events.","whenToUse":"Use when modules must react to each other's domain events, with retries for persistent ones. New apps already enable it.","whenNotToUse":null,"category":"storage-infrastructure","tags":["events","subscribers","queue"],"providers":[],"moduleIds":["events"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-YD9mGFduluVEmvas16mw9fSHXxL+7p3YG1kNdbskDMWFtDzcp2uKwyJTgp/U7Zi8YrfAjAzc0VBNMEE0LN9Buw==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"},"inEmptyPreset":["0.8","0.9","next"]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":2,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":1,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":["OM_EVENTS_SSE_AUTH_REVALIDATION_INTERVAL_MS","OM_EVENTS_SSE_CONNECTION_MAX_AGE_MS","WORKERS_EVENTS_CONCURRENCY","DATABASE_URL","OM_BROADCAST_COALESCE_INTERVAL_MS","OM_EVENTS_SHARED_PRODUCER","QUEUE_STRATEGY"],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"ADDS 2 ROUTES (0 PUBLIC)","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":["OM_EVENTS_SSE_AUTH_REVALIDATION_INTERVAL_MS","OM_EVENTS_SSE_CONNECTION_MAX_AGE_MS","OM_BROADCAST_COALESCE_INTERVAL_MS"],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["No Open Mercato peer range; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers events in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers events in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers events in src/modules.ts."}]}},"install":{"cli":"yarn add @open-mercato/events@0.9.0","cmm":"npx create-mercato-module install @open-mercato/events@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":46214,"stars":null},"sigil":{"glyph":"0200100","phase":86,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/events","md":"https://modules.openmercato.com/m/@open-mercato/events.md","json":"https://modules.openmercato.com/m/@open-mercato/events.json","facts":"https://modules.openmercato.com/m/@open-mercato/events/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/events","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/events/overview"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/forms","path":"@open-mercato/forms","npm":"@open-mercato/forms","github":null,"repoPath":null,"kind":"module","type":"official","enterprise":false,"title":"Forms","summary":"Old canary of the forms module: versioned questionnaires, append-only submissions and role-sliced rendering.","whenToUse":"Use when you need audit-grade questionnaires: the forms module that ships with Open Mercato core now does this.","whenNotToUse":"Do not install this canary. Enable forms from core instead.","category":"content-portal","tags":["forms","questionnaires"],"providers":[],"moduleIds":["forms"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":"core:forms","alternatives":[],"status":"hold","listed":false,"featured":false,"license":{"spdx":null,"kind":"proprietary","mismatch":true},"version":{"latest":null,"preview":"0.0.0-canary.20260603190311.74d2590","publishedAt":"2026-06-03","integrity":"sha512-VABatiQT3XBwfFzh8CP2HWePcXmki+lhXikP1uBE9upuyN72BGwAAvmbhaBelltsYFN92OvlxLvDKL9KQW+CWw==","installableFrom":"2026-06-03","gitRef":"74d25905206224c81cd0ab246272e16018b8cdc0","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.0","kind":"caret-0x","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.0.0-canary.20260603190311.74d2590","coverage":"full","counts":{"entities":11,"tables":11,"migrations":6,"routes":54,"publicRoutes":21,"aclFeatures":6,"eventsEmitted":18,"eventsConsumed":3,"backendPages":7,"frontendPages":6,"widgets":5,"workers":2,"cli":0,"aiTools":0,"aiAgents":0,"extends":4},"lists":{"aclFeatures":["forms.view","forms.design","forms.submissions.manage","forms.submissions.export","forms.submissions.anonymize","forms.distribute"],"eventsEmitted":["forms.form.created","forms.form.archived","forms.form_version.published","forms.submission.started","forms.submission.revision_appended","forms.submission.submitted","forms.submission.reopened","forms.submission.actor_assigned","forms.submission.anonymized","forms.attachment.uploaded","forms.distribution.created","forms.distribution.closed","forms.invitation.created","forms.invitation.sent","forms.invitation.opened","forms.invitation.submitted","forms.invitation.revoked","forms.consent.recorded"],"eventsConsumed":["forms.submission.submitted","forms.invitation.sent","forms.submission.anonymized"],"env":["FORMS_RESUME_TOKEN_TTL_S","FORMS_RESUME_TOKEN_SECRET","JWT_SECRET","FORMS_PUBLIC_RATE_LIMIT_PER_MIN","APP_URL","FORMS_DISTRIBUTION_TOKEN_SECRET","FORMS_ACCESS_TOKEN_TTL_S","FORMS_INVITATION_TOKEN_TTL_S","FORMS_COMPILER_CACHE_MAX","FORMS_AUTOSAVE_INTERVAL_MS","FORMS_REVISION_CAP","NEXT_PUBLIC_FORMS_AUTOSAVE_INTERVAL_MS"],"hosts":["challenges.cloudflare.com","www.google.com"],"tables":["forms_form","forms_form_version","forms_form_submission","forms_form_submission_actor","forms_form_submission_revision","forms_encryption_key","forms_form_access_audit","forms_form_attachment","forms_distribution","forms_consent_record","forms_invitation"],"publicRoutes":["GET /api/forms/[id]/run/context","POST /api/forms/[id]/run/submissions","GET /api/forms/by-key/[key]/active","POST /api/forms/form-submissions","GET /api/forms/form-submissions/[id]","PATCH /api/forms/form-submissions/[id]","POST /api/forms/form-submissions/[id]/attachments","GET /api/forms/form-submissions/[id]/resume-token","POST /api/forms/form-submissions/[id]/submit","GET /api/forms/form-submissions/by-subject/[subject_type]/[subject_id]"],"credentials":[],"backendPages":["/backend/forms","/backend/forms/[id]","/backend/forms/[id]/analytics","/backend/forms/[id]/distributions","/backend/forms/[id]/history","/backend/forms/[id]/submissions","/backend/forms/create"]},"callout":"ADDS 11 TABLES · 54 ROUTES (21 PUBLIC) · 6 PERMISSIONS · EMITS 18 EVENTS","diff":null},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"fail","failing":["collision-core","license-mismatch"]},"maintenance":{"status":"current","lastRelease":"2026-06-03","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":null,"quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Moved into Open Mercato core (open-mercato#6770)."},{"code":"NOT_INSTALLABLE","text":"Package has no src/modules and dist/modules pair."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."},{"code":"LICENSE","text":"License: proprietary (PROPRIETARY)."}]},"0.8":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Moved into Open Mercato core (open-mercato#6770)."},{"code":"NOT_INSTALLABLE","text":"Package has no src/modules and dist/modules pair."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."},{"code":"LICENSE","text":"License: proprietary (PROPRIETARY)."}]},"next":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Moved into Open Mercato core (open-mercato#6770)."},{"code":"NOT_INSTALLABLE","text":"Package has no src/modules and dist/modules pair."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"LICENSE","text":"License: proprietary (PROPRIETARY)."}]}},"install":{"cli":"yarn mercato module add @open-mercato/forms@0.0.0-canary.20260603190311.74d2590","cmm":"npx create-mercato-module install @open-mercato/forms@0.0.0-canary.20260603190311.74d2590","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":32,"stars":null},"sigil":{"glyph":"3333202","phase":266,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/forms","md":"https://modules.openmercato.com/m/@open-mercato/forms.md","json":"https://modules.openmercato.com/m/@open-mercato/forms.json","facts":"https://modules.openmercato.com/m/@open-mercato/forms/v/0.0.0-canary.20260603190311.74d2590/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/forms","repo":null,"docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-26T12:02:41Z","_meta":{"com.openmercato.modules/installable":{"0.9":null,"0.8":null,"next":null}}},{"locator":"npm:@open-mercato/gateway-payu","path":"@open-mercato/gateway-payu","npm":"@open-mercato/gateway-payu","github":null,"repoPath":null,"kind":"module","type":"official","enterprise":false,"title":"PayU Gateway","summary":"PayU payment gateway provider. Only an orphaned canary build from March 2026 is published.","whenToUse":"Use when customers pay through PayU, once a maintained release exists. No source code is available today.","whenNotToUse":"For PLN payments today use gateway-tpay or gateway-stripe.","category":"payments-finance","tags":["payments","poland"],"providers":[{"name":"payu","label":"PayU"}],"moduleIds":["gateway_payu"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"hold","listed":false,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":true},"version":{"latest":null,"preview":"0.4.6-canary-5eb138494e","publishedAt":"2026-03-05","integrity":"sha512-n07twf2mbTYmUHQIlo8QsThhwVQh0ZuaQ4qTaq7MdsFQNW3OjThd0sAsNAh83BNa12yi91+jj2RpPSIsSMZ7rA==","installableFrom":"2026-03-05","gitRef":"5eb138494e7a71e5708a5d8257daa462478e526c","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.4.6-canary-5eb138494e","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"clientId","type":"text","required":true},{"key":"clientSecret","type":"secret","required":true},{"key":"merchantPosId","type":"text","required":true}]},"callout":"FEW CONTRACTS","diff":null},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["license-mismatch"]},"maintenance":{"status":"behind","lastRelease":"2026-03-05","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["No Open Mercato peer range; verified on no line."]}},"tier":null,"quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}]},"0.8":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}]},"next":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}]}},"install":{"cli":"yarn mercato module add @open-mercato/gateway-payu@0.4.6-canary-5eb138494e","cmm":"npx create-mercato-module install @open-mercato/gateway-payu@0.4.6-canary-5eb138494e","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":9,"stars":null},"sigil":{"glyph":"0000002","phase":162,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/gateway-payu","md":"https://modules.openmercato.com/m/@open-mercato/gateway-payu.md","json":"https://modules.openmercato.com/m/@open-mercato/gateway-payu.json","facts":"https://modules.openmercato.com/m/@open-mercato/gateway-payu/v/0.4.6-canary-5eb138494e/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/gateway-payu","repo":null,"docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-26T12:02:41Z","_meta":{"com.openmercato.modules/installable":{"0.9":null,"0.8":null,"next":null}}},{"locator":"npm:@open-mercato/gateway-przelewy24","path":"@open-mercato/gateway-przelewy24","npm":"@open-mercato/gateway-przelewy24","github":null,"repoPath":null,"kind":"module","type":"official","enterprise":false,"title":"Przelewy24 Gateway","summary":"Przelewy24 payment gateway provider. Only an orphaned canary build from March 2026 is published.","whenToUse":"Use when customers pay through Przelewy24, once a maintained release exists. No source code is available today.","whenNotToUse":"For PLN payments today use gateway-tpay or gateway-stripe.","category":"payments-finance","tags":["payments","poland"],"providers":[{"name":"przelewy24","label":"Przelewy24"}],"moduleIds":["gateway_przelewy24"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"hold","listed":false,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":true},"version":{"latest":null,"preview":"0.4.6-canary-5eb138494e","publishedAt":"2026-03-05","integrity":"sha512-fhrLxp8IUA9XNqYQL/f12rURTSDq3M/pmf1wGUvfn4k2y7IZ+X2DlpBRFmKautC7D34bzM2HO2BXcsiqacpauQ==","installableFrom":"2026-03-05","gitRef":"5eb138494e7a71e5708a5d8257daa462478e526c","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.4.6-canary-5eb138494e","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"merchantId","type":"text","required":true},{"key":"crcKey","type":"secret","required":true},{"key":"apiKey","type":"secret","required":true}]},"callout":"FEW CONTRACTS","diff":null},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["license-mismatch"]},"maintenance":{"status":"behind","lastRelease":"2026-03-05","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["No Open Mercato peer range; verified on no line."]}},"tier":null,"quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}]},"0.8":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}]},"next":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}]}},"install":{"cli":"yarn mercato module add @open-mercato/gateway-przelewy24@0.4.6-canary-5eb138494e","cmm":"npx create-mercato-module install @open-mercato/gateway-przelewy24@0.4.6-canary-5eb138494e","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":14,"stars":null},"sigil":{"glyph":"0000002","phase":194,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/gateway-przelewy24","md":"https://modules.openmercato.com/m/@open-mercato/gateway-przelewy24.md","json":"https://modules.openmercato.com/m/@open-mercato/gateway-przelewy24.json","facts":"https://modules.openmercato.com/m/@open-mercato/gateway-przelewy24/v/0.4.6-canary-5eb138494e/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/gateway-przelewy24","repo":null,"docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-26T12:02:41Z","_meta":{"com.openmercato.modules/installable":{"0.9":null,"0.8":null,"next":null}}},{"locator":"npm:@open-mercato/gateway-stripe","path":"@open-mercato/gateway-stripe","npm":"@open-mercato/gateway-stripe","github":null,"repoPath":"open-mercato/open-mercato#main/packages/gateway-stripe","kind":"module","type":"official","enterprise":false,"title":"Stripe Payment Gateway","summary":"Card, Apple Pay, Google Pay and bank transfer payments through Stripe for checkout and sales documents.","whenToUse":"Use when the app takes card or wallet payments in any currency and you already have a Stripe account.","whenNotToUse":"For PLN bank transfers and BLIK see gateway-tpay (develop builds only, no stable release yet).","category":"payments-finance","tags":["payments","cards"],"providers":[{"name":"stripe","label":"Stripe"}],"moduleIds":["gateway_stripe"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-U/tlIjnj/V5AuSB+fEEIh4Ta9Uftzrzr5iUb6nSWLcd7W8W7mzPHd6Ngg3ZYPH9g98cSUayH1e6nOga2E3Iqag==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":1,"cli":2,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["gateway_stripe.view","gateway_stripe.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"publishableKey","type":"text","required":true},{"key":"secretKey","type":"secret","required":true},{"key":"webhookSecret","type":"secret","required":true}],"sdks":["@stripe/react-stripe-js","@stripe/stripe-js","stripe"]},"callout":"ADDS 2 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers gateway_stripe in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers gateway_stripe in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers gateway_stripe in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/gateway-stripe@0.9.0","cmm":"npx create-mercato-module install @open-mercato/gateway-stripe@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":49384,"stars":null},"sigil":{"glyph":"0000202","phase":141,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/gateway-stripe","md":"https://modules.openmercato.com/m/@open-mercato/gateway-stripe.md","json":"https://modules.openmercato.com/m/@open-mercato/gateway-stripe.json","facts":"https://modules.openmercato.com/m/@open-mercato/gateway-stripe/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/gateway-stripe","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/stripe-payments"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/gateway-stripe-1.webp","alt":"Stripe payment gateway settings with publishable key, secret key and webhook signing secret fields."}]},{"locator":"npm:@open-mercato/gateway-tpay","path":"@open-mercato/gateway-tpay","npm":"@open-mercato/gateway-tpay","github":null,"repoPath":"open-mercato/open-mercato#main/packages/gateway-tpay","kind":"module","type":"official","enterprise":false,"title":"Tpay Payment Gateway","summary":"PLN payments on the Tpay hosted page: online transfers, BLIK and other methods enabled on your Tpay account.","whenToUse":"Use when Polish customers pay in PLN by bank transfer or BLIK and you have a Tpay merchant account.","whenNotToUse":"For card payments in other currencies use gateway-stripe.","category":"payments-finance","tags":["payments","blik","poland"],"providers":[{"name":"tpay","label":"Tpay"}],"moduleIds":["gateway_tpay"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":null,"preview":"0.8.1-develop.7442.1.4c1dbf1f0e","publishedAt":"2026-10-10","integrity":"sha512-HGCiENOGtHStItm8ekf6I02pWbgmQR+7LalF60XIBgK4qWHe8f+h7GPpYlr9S1JtBxUCB0YJLHNQeHqYfCEO+g==","installableFrom":"2026-10-10","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.8.1-develop.7442.1.4c1dbf1f0e","kind":"exact-pin","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.8.1-develop.7442.1.4c1dbf1f0e","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":2,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["gateway_tpay.view","gateway_tpay.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":["api.tpay.com","openapi.sandbox.tpay.com"],"tables":[],"publicRoutes":[],"credentials":[{"key":"clientId","type":"text","required":true},{"key":"clientSecret","type":"secret","required":true},{"key":"environment","type":"select","required":true},{"key":"notificationUrl","type":"url","required":false},{"key":"notificationSecurityCode","type":"secret","required":false}]},"callout":"ADDS 2 PERMISSIONS","diff":null},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-10","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}],"consentText":"Install @open-mercato/gateway-tpay@0.8.1-develop.7442.1.4c1dbf1f0e"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}],"consentText":"Install @open-mercato/gateway-tpay@0.8.1-develop.7442.1.4c1dbf1f0e"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."}],"consentText":"Install @open-mercato/gateway-tpay@0.8.1-develop.7442.1.4c1dbf1f0e"}},"install":{"cli":"yarn mercato module add @open-mercato/gateway-tpay@0.8.1-develop.7442.1.4c1dbf1f0e","cmm":"npx create-mercato-module install @open-mercato/gateway-tpay@0.8.1-develop.7442.1.4c1dbf1f0e","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10263,"stars":null},"sigil":{"glyph":"0000202","phase":104,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/gateway-tpay","md":"https://modules.openmercato.com/m/@open-mercato/gateway-tpay.md","json":"https://modules.openmercato.com/m/@open-mercato/gateway-tpay.json","facts":"https://modules.openmercato.com/m/@open-mercato/gateway-tpay/v/0.8.1-develop.7442.1.4c1dbf1f0e/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/gateway-tpay","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/tpay-payments"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":null,"0.8":null,"next":null}}},{"locator":"npm:@open-mercato/onboarding","path":"@open-mercato/onboarding","npm":"@open-mercato/onboarding","github":null,"repoPath":"open-mercato/open-mercato#main/packages/onboarding","kind":"module","type":"official","enterprise":false,"title":"Onboarding","summary":"Self-service sign-up: email verification, then a new tenant, organization and admin account with demo CRM data.","whenToUse":"Use when visitors of a demo, sandbox or pilot program should create their own tenant without an operator.","whenNotToUse":"Off by default and not meant for most production apps: everyone who signs up gets an admin account.","category":"content-portal","tags":["onboarding","signup","tenants"],"providers":[],"moduleIds":["onboarding"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-wztY7ot5QCOftdoTUgXHsDlfbiOj+zfFYfB2zzpPHHk6NoTfLz6NMgvZqZ1z0MWh7+BSi+NH3bBTwc1aHJsGYg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":1,"tables":1,"migrations":7,"routes":4,"publicRoutes":4,"aclFeatures":3,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":2,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["onboarding.access","onboarding.submit","onboarding.verify"],"eventsEmitted":[],"eventsConsumed":[],"env":["ADMIN_EMAIL","SELF_SERVICE_ONBOARDING_ENABLED"],"hosts":[],"tables":["onboarding_requests"],"publicRoutes":["POST /api/onboarding/demo-feedback","POST /api/onboarding/onboarding","GET /api/onboarding/onboarding/status","GET /api/onboarding/onboarding/verify"],"credentials":[]},"callout":"ADDS 1 TABLE · 4 ROUTES (4 PUBLIC) · 3 PERMISSIONS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin","setup-default-role-features"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers onboarding in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers onboarding in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers onboarding in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/onboarding@0.9.0","cmm":"npx create-mercato-module install @open-mercato/onboarding@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":41181,"stars":null},"sigil":{"glyph":"2220000","phase":3,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/onboarding","md":"https://modules.openmercato.com/m/@open-mercato/onboarding.md","json":"https://modules.openmercato.com/m/@open-mercato/onboarding.json","facts":"https://modules.openmercato.com/m/@open-mercato/onboarding/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/onboarding","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/self-service-onboarding"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/pay-by-links","path":"@open-mercato/pay-by-links","npm":"@open-mercato/pay-by-links","github":null,"repoPath":null,"kind":"module","type":"official","enterprise":false,"title":"Payment Link Pages","summary":"Pay-by-link pages (module payment_link_pages) from an orphaned canary build of March 2026.","whenToUse":"Use when you need public payment link pages: the checkout module now provides them with templates and limits.","whenNotToUse":"Do not install this canary. Use checkout instead.","category":"payments-finance","tags":["pay-links","payments"],"providers":[],"moduleIds":["payment_link_pages"],"requires":[{"raw":"payment_gateways","resolvesTo":"core:payment_gateways"},{"raw":"customers","resolvesTo":"core:customers"},{"raw":"entities","resolvesTo":"core:entities"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":["npm:@open-mercato/checkout"],"status":"hold","listed":false,"featured":false,"license":{"spdx":null,"kind":"unknown","mismatch":false},"version":{"latest":null,"preview":"0.4.9-canary-fcabd45887","publishedAt":"2026-03-18","integrity":"sha512-AqK1X7LoZhQKjoyOhE+B07U8UIOJRPd123q9ZOiwlrpXqS14sxdAKH/1pksRGETAchQa8oCG1dTfPuRKUutQng==","installableFrom":"2026-03-18","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.4.9-canary-fcabd45887","kind":"exact-pin","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.4.9-canary-fcabd45887","coverage":"full","counts":{"entities":1,"tables":1,"migrations":0,"routes":12,"publicRoutes":6,"aclFeatures":2,"eventsEmitted":6,"eventsConsumed":0,"backendPages":4,"frontendPages":1,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["payment_link_pages.templates.view","payment_link_pages.templates.manage"],"eventsEmitted":["payment_link_pages.page.viewed","payment_link_pages.page.unlocked","payment_link_pages.customer.captured","payment_link_pages.template.created","payment_link_pages.template.updated","payment_link_pages.template.deleted"],"eventsConsumed":[],"env":[],"hosts":[],"tables":["payment_link_templates"],"publicRoutes":["GET /api/payment_gateways/pay/[token]","POST /api/payment_gateways/pay/[token]/unlock","GET /api/payment_link_pages/pay/[token]","POST /api/payment_link_pages/pay/[token]/customer","POST /api/payment_link_pages/pay/[token]/session","POST /api/payment_link_pages/pay/[token]/unlock"],"credentials":[],"backendPages":["/backend/payment-link-templates","/backend/payment-link-templates/[id]","/backend/payment-link-templates/new","/backend/payment-links"]},"callout":"ADDS 1 TABLE · 12 ROUTES (6 PUBLIC) · 2 PERMISSIONS · EMITS 6 EVENTS","diff":null},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"untested"},"fit":{"0.9":"no-fit","0.8":"no-fit","next":"no-fit"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"behind","lastRelease":"2026-03-18","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":null,"quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."},{"code":"LICENSE","text":"License: unknown."}]},"0.8":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."},{"code":"LICENSE","text":"License: unknown."}]},"next":{"decision":"refuse","reasons":[{"code":"HOLD","text":"On hold: Orphaned canary from March 2026. No source in any repository."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"LICENSE","text":"License: unknown."}]}},"install":{"cli":"yarn mercato module add @open-mercato/pay-by-links@0.4.9-canary-fcabd45887","cmm":"npx create-mercato-module install @open-mercato/pay-by-links@0.4.9-canary-fcabd45887","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10,"stars":null},"sigil":{"glyph":"1322001","phase":235,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/pay-by-links","md":"https://modules.openmercato.com/m/@open-mercato/pay-by-links.md","json":"https://modules.openmercato.com/m/@open-mercato/pay-by-links.json","facts":"https://modules.openmercato.com/m/@open-mercato/pay-by-links/v/0.4.9-canary-fcabd45887/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/pay-by-links","repo":null,"docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-26T12:02:41Z","_meta":{"com.openmercato.modules/installable":{"0.9":null,"0.8":null,"next":null}}},{"locator":"npm:@open-mercato/scheduler","path":"@open-mercato/scheduler","npm":"@open-mercato/scheduler","github":null,"repoPath":"open-mercato/open-mercato#main/packages/scheduler","kind":"module","type":"official","enterprise":false,"title":"Scheduler","summary":"Database-managed scheduled jobs with cron or interval timing, time zones, run history and an admin UI.","whenToUse":"Use when the app must run commands or enqueue queue jobs on a schedule that admins can change without a deploy.","whenNotToUse":null,"category":"storage-infrastructure","tags":["cron","jobs","scheduling"],"providers":[],"moduleIds":["scheduler"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-fDpeDnLjznria0iBDlbP8PXiLIT7tz7SIoTh0FPPpn3/CTO/nyXRe4J/UoCFMwC1uzdctC9s9JYPhk4+8Ejcsg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":1,"tables":1,"migrations":3,"routes":8,"publicRoutes":0,"aclFeatures":3,"eventsEmitted":4,"eventsConsumed":0,"backendPages":4,"frontendPages":0,"widgets":0,"workers":2,"cli":5,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["scheduler.jobs.view","scheduler.jobs.manage","scheduler.jobs.trigger"],"eventsEmitted":["scheduler.job.started","scheduler.job.completed","scheduler.job.failed","scheduler.job.skipped"],"eventsConsumed":[],"env":["QUEUE_STRATEGY","NEXT_PUBLIC_QUEUE_STRATEGY","SCHEDULER_POLL_INTERVAL_MS"],"hosts":[],"tables":["scheduled_jobs"],"publicRoutes":[],"credentials":[],"backendPages":["/backend/config/scheduled-jobs","/backend/config/scheduled-jobs/[id]","/backend/config/scheduled-jobs/[id]/edit","/backend/config/scheduled-jobs/new"]},"callout":"ADDS 1 TABLE · 8 ROUTES (0 PUBLIC) · 3 PERMISSIONS · EMITS 4 EVENTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers scheduler in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers scheduler in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers scheduler in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/scheduler@0.9.0","cmm":"npx create-mercato-module install @open-mercato/scheduler@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":43639,"stars":null},"sigil":{"glyph":"2222200","phase":84,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/scheduler","md":"https://modules.openmercato.com/m/@open-mercato/scheduler.md","json":"https://modules.openmercato.com/m/@open-mercato/scheduler.json","facts":"https://modules.openmercato.com/m/@open-mercato/scheduler/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/scheduler","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/scheduler/overview"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/scheduler-1.webp","alt":"Scheduled jobs list with cron and interval schedules, queue targets, next runs and source modules."}]},{"locator":"npm:@open-mercato/search","path":"@open-mercato/search","npm":"@open-mercato/search","github":null,"repoPath":"open-mercato/open-mercato#main/packages/search","kind":"module","type":"official","enterprise":false,"title":"Search","summary":"Hybrid search that fuses fulltext (Meilisearch), vector and token strategies with Reciprocal Rank Fusion.","whenToUse":"Use when users need global search across records and AI agents need a search tool. New apps already enable it.","whenNotToUse":null,"category":"search-analytics","tags":["search","fulltext","vector"],"providers":[{"name":"meilisearch","label":"Meilisearch"}],"moduleIds":["search"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-8hX4T9mkGgTY9pCCYU6igYrLbFc9h4gN0ddkb6ULCeso/z08C7a98XG59WWiLQXWYcyI8FUf3tcjJi/dZyEfdg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"},"inEmptyPreset":["0.8","0.9","next"]},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":0,"tables":0,"migrations":0,"routes":15,"publicRoutes":0,"aclFeatures":6,"eventsEmitted":1,"eventsConsumed":4,"backendPages":1,"frontendPages":0,"widgets":0,"workers":2,"cli":8,"aiTools":6,"aiAgents":0,"extends":9},"lists":{"aclFeatures":["search.view","search.manage","search.reindex","search.embeddings.view","search.embeddings.manage","search.global"],"eventsEmitted":["search.index_record"],"eventsConsumed":["search.index_record","query_index.delete_one","query_index.vectorize_purge","query_index.vectorize_one"],"env":["OPENAI_API_KEY","MEILISEARCH_HOST","MEILISEARCH_API_KEY","MEILISEARCH_INDEX_PREFIX","SEARCH_EXCLUDE_ENCRYPTED_FIELDS","GOOGLE_GENERATIVE_AI_API_KEY","MISTRAL_API_KEY","COHERE_API_KEY","AWS_ACCESS_KEY_ID","OLLAMA_BASE_URL","OM_SEARCH_ENABLED","DATABASE_URL","QDRANT_URL","QDRANT_API_KEY","CHROMA_URL","OM_INDEXER_VERBOSE","QUEUE_STRATEGY","SEARCH_DISABLE_SINGLETON_CACHE","AWS_SECRET_ACCESS_KEY","WORKERS_FULLTEXT_INDEXING_CONCURRENCY"],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[],"sdks":["@ai-sdk/amazon-bedrock","@ai-sdk/cohere","@ai-sdk/google","@ai-sdk/mistral","@ai-sdk/openai","meilisearch"],"backendPages":["/backend/config/search"]},"callout":"ADDS 15 ROUTES (0 PUBLIC) · 6 PERMISSIONS · EMITS 1 EVENT","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers search in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers search in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers search in src/modules.ts."}]}},"install":{"cli":"yarn add @open-mercato/search@0.9.0","cmm":"npx create-mercato-module install @open-mercato/search@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":43683,"stars":null},"sigil":{"glyph":"0312322","phase":75,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/search","md":"https://modules.openmercato.com/m/@open-mercato/search.md","json":"https://modules.openmercato.com/m/@open-mercato/search.json","facts":"https://modules.openmercato.com/m/@open-mercato/search/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/search","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/database/hybrid-search"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/search-1.webp","alt":"Search settings with the fulltext, vector and token strategies and the fulltext driver status."}]},{"locator":"npm:@open-mercato/storage-s3","path":"@open-mercato/storage-s3","npm":"@open-mercato/storage-s3","github":null,"repoPath":"open-mercato/open-mercato#main/packages/storage-s3","kind":"module","type":"official","enterprise":false,"title":"S3-Compatible Storage","summary":"Stores attachments in Amazon S3 or an S3-compatible store such as DigitalOcean Spaces, MinIO, Cloudflare R2 or B2.","whenToUse":"Use when uploaded files must live in object storage instead of the app server disk, for example with several app instances.","whenNotToUse":null,"category":"storage-infrastructure","tags":["s3","files","attachments"],"providers":[{"name":"aws-s3","label":"Amazon S3"},{"name":"digitalocean-spaces","label":"DigitalOcean Spaces"},{"name":"minio","label":"MinIO"},{"name":"cloudflare-r2","label":"Cloudflare R2"},{"name":"backblaze-b2","label":"Backblaze B2"}],"moduleIds":["storage_s3"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-NUs20ShVghtlKLTcxbvOb1sRcIzxYCrmcYbH3AdeLr6pCJEt6GSX2tREzzyebWkhdsOWAxSIAadWuhcSEyZFNw==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":"0.9.0","0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"lines":{"0.9":{"status":"verified","step":null,"omVersion":"0.9.0","moduleVersion":"0.9.0","at":"2026-10-29T08:29:32Z","receipt":"r_20261029_94f6ac8d2778","since":"2026-10-29","precheck":null,"patches":[]}},"verifiedOn":["0.9"],"isolation":{"0.9":{"status":"verified","step":null,"moduleVersion":"0.9.0","at":"2026-10-28T16:21:52Z","receipt":"r_20261028_03c771dc3c02"},"0.8":{"status":"verified","step":null,"moduleVersion":"0.8.0","at":"2026-10-28T16:21:52Z","receipt":"r_20261028_9f2b44c09bd4"},"next":{"status":"verified","step":null,"moduleVersion":"0.9.0","at":"2026-10-28T16:21:52Z","receipt":"r_20261028_1638974d7ed7"}}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":0,"tables":0,"migrations":0,"routes":6,"publicRoutes":1,"aclFeatures":1,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":1,"cli":2,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["storage_providers.manage"],"eventsEmitted":[],"eventsConsumed":[],"env":["OM_STORAGE_S3_ALLOW_INTERNAL_ENDPOINTS","LOCALSTACK_PORT","LOCALSTACK_S3_ACCESS_KEY_ID","LOCALSTACK_S3_SECRET_ACCESS_KEY"],"hosts":[],"tables":[],"publicRoutes":["PUT /api/storage-providers/s3/signed-upload/[token]"],"credentials":[{"key":"authMode","type":"select","required":false},{"key":"accessKeyId","type":"text","required":true},{"key":"secretAccessKey","type":"secret","required":true},{"key":"sessionToken","type":"secret","required":false},{"key":"region","type":"text","required":true},{"key":"bucket","type":"text","required":true},{"key":"endpoint","type":"url","required":false},{"key":"forcePathStyle","type":"boolean","required":false}],"sdks":["@aws-sdk/client-s3","@aws-sdk/s3-request-presigner"]},"callout":"ADDS 6 ROUTES (1 PUBLIC) · 1 PERMISSION","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"verified","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on 0.9."]}},"tier":"verified","quality":null,"agentPolicy":{"0.9":{"decision":"allow","reasons":[{"code":"OFFICIAL_VERIFIED","text":"Official, verified on 0.9."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8. In isolation (empty preset): verified on 28 Oct."}],"consentText":"Install @open-mercato/storage-s3@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next. In isolation (empty preset): verified on 28 Oct."}],"consentText":"Install @open-mercato/storage-s3@0.9.0"}},"install":{"cli":"yarn add @open-mercato/storage-s3@0.9.0 && echo OM_ENABLE_STORAGE_S3=true >> .env && yarn generate","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":17162,"stars":null},"sigil":{"glyph":"0200201","phase":110,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/storage-s3","md":"https://modules.openmercato.com/m/@open-mercato/storage-s3.md","json":"https://modules.openmercato.com/m/@open-mercato/storage-s3.json","facts":"https://modules.openmercato.com/m/@open-mercato/storage-s3/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/storage-s3","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/storage-hub"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/sync-akeneo","path":"@open-mercato/sync-akeneo","npm":"@open-mercato/sync-akeneo","github":null,"repoPath":"open-mercato/open-mercato#main/packages/sync-akeneo","kind":"module","type":"official","enterprise":false,"title":"Akeneo Product Sync","summary":"Imports categories, product attributes and products from Akeneo PIM into the catalog, on demand or on a schedule.","whenToUse":"Use when product data is mastered in Akeneo PIM and the app catalog must follow it.","whenNotToUse":"Import only: changes made in Open Mercato do not go back to Akeneo.","category":"integrations-sync","tags":["pim","products","import"],"providers":[{"name":"akeneo","label":"Akeneo PIM"}],"moduleIds":["sync_akeneo"],"requires":[{"raw":"integrations","resolvesTo":"core:integrations"},{"raw":"data_sync","resolvesTo":"core:data_sync"},{"raw":"catalog","resolvesTo":"core:catalog"},{"raw":"sales","resolvesTo":"core:sales"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-oGan2fNYkPWDOzn8CfFuO5SQwBf3nn6bZApQN1DJTl/0KYRA5ufEfcWfWTQBJogakrwP0n4ueO9YykKiv/Vrhg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":0,"tables":0,"migrations":0,"routes":6,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":2,"cli":2,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"apiUrl","type":"url","required":true},{"key":"clientId","type":"text","required":true},{"key":"clientSecret","type":"secret","required":true},{"key":"username","type":"text","required":true},{"key":"password","type":"secret","required":true}]},"callout":"ADDS 6 ROUTES (0 PUBLIC)","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers sync_akeneo in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers sync_akeneo in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers sync_akeneo in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/sync-akeneo@0.9.0","cmm":"npx create-mercato-module install @open-mercato/sync-akeneo@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":39014,"stars":null},"sigil":{"glyph":"0200201","phase":200,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/sync-akeneo","md":"https://modules.openmercato.com/m/@open-mercato/sync-akeneo.md","json":"https://modules.openmercato.com/m/@open-mercato/sync-akeneo.json","facts":"https://modules.openmercato.com/m/@open-mercato/sync-akeneo/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/sync-akeneo","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/akeneo-pim"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/sync-akeneo-1.webp","alt":"Akeneo PIM integration settings with credentials, sync settings and sync schedule tabs."}]},{"locator":"npm:@open-mercato/telemetry","path":"@open-mercato/telemetry","npm":"@open-mercato/telemetry","github":null,"repoPath":"open-mercato/open-mercato#main/packages/telemetry","kind":"module","type":"official","enterprise":false,"title":"Telemetry","summary":"Exports traces, metrics, logs and errors over OTLP/HTTP. Off by default and not loaded until TELEMETRY_BACKEND is set.","whenToUse":"Use when you run an OpenTelemetry collector or a managed OTLP backend and want app traces and errors there.","whenNotToUse":null,"category":"storage-infrastructure","tags":["opentelemetry","tracing","metrics"],"providers":[],"moduleIds":["telemetry"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-VI9ry8eMjKFwHRCPA4V1z9TJtkfjz4HJR4M8V5s2NKBFsvP9t5rbUTdrcY5z/aifoYUeLdpCzX8ZHr2cHdrukA==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[],"inPresets":["0.9","next"],"ships":{"0.9":"0.9.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":1,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":["OM_TEST_MODE","OM_TEST_BROWSER_TELEMETRY_MODE","OTEL_SERVICE_NAME","OTEL_RESOURCE_ATTRIBUTES","TELEMETRY_BROWSER_ENABLED","TELEMETRY_BROWSER_SERVICE_NAME","TELEMETRY_BROWSER_SAMPLING_RATIO","OTEL_EXPORTER_OTLP_TRACES_ENDPOINT","OTEL_EXPORTER_OTLP_ENDPOINT","OTEL_EXPORTER_OTLP_HEADERS","TELEMETRY_BACKEND","TELEMETRY_SAMPLING_RATIO","TELEMETRY_TRUST_INBOUND_TRACE"],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"ADDS 1 ROUTE (0 PUBLIC)","diff":{"from":"0.8.0","added":{"tables":0,"routes":1,"publicRoutes":0,"aclFeatures":0,"env":["OM_TEST_MODE","OM_TEST_BROWSER_TELEMETRY_MODE","OTEL_SERVICE_NAME","OTEL_RESOURCE_ATTRIBUTES","TELEMETRY_BROWSER_ENABLED","TELEMETRY_BROWSER_SERVICE_NAME","TELEMETRY_BROWSER_SAMPLING_RATIO","OTEL_EXPORTER_OTLP_TRACES_ENDPOINT","OTEL_EXPORTER_OTLP_ENDPOINT","OTEL_EXPORTER_OTLP_HEADERS","TELEMETRY_BACKEND","TELEMETRY_SAMPLING_RATIO","TELEMETRY_TRUST_INBOUND_TRACE"],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"ok","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["No Open Mercato peer range; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers telemetry in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."}],"consentText":"Install @open-mercato/telemetry@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers telemetry in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/telemetry@0.9.0","cmm":"npx create-mercato-module install @open-mercato/telemetry@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":38960,"stars":null},"sigil":{"glyph":"0100000","phase":17,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/telemetry","md":"https://modules.openmercato.com/m/@open-mercato/telemetry.md","json":"https://modules.openmercato.com/m/@open-mercato/telemetry.json","facts":"https://modules.openmercato.com/m/@open-mercato/telemetry/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/telemetry","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/runtime/telemetry"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/tillio","path":"@open-mercato/tillio","npm":"@open-mercato/tillio","github":null,"repoPath":"open-mercato/open-mercato#main/packages/tillio","kind":"module","type":"official","enterprise":false,"title":"Tillio Telephony","summary":"Tillio VoIP bridge for the phone_calls hub: attaches a Ringostat operator and pulls its calls into the app.","whenToUse":"Use when the team phones customers through Tillio with a Ringostat operator and the calls should be logged in the app.","whenNotToUse":null,"category":"communication","tags":["voip","telephony","calls"],"providers":[{"name":"tillio","label":"Tillio"},{"name":"ringostat","label":"Ringostat"}],"moduleIds":["tillio"],"requires":[{"raw":"integrations","resolvesTo":"core:integrations"},{"raw":"phone_calls","resolvesTo":"core:phone_calls"},{"raw":"@open-mercato/ai-assistant","resolvesTo":"npm:@open-mercato/ai-assistant"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-0J0kS2EdGhNInc517FVBUL1dfcJoQCljiaXnIcRXWD05JNy3LJx1CWLBhuKM6OICfTQGixTssO7ZiV3wIaG/vQ==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":0,"tables":0,"migrations":0,"routes":5,"publicRoutes":0,"aclFeatures":1,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":1,"cli":1,"aiTools":0,"aiAgents":0,"extends":2},"lists":{"aclFeatures":["tillio.manage"],"eventsEmitted":[],"eventsConsumed":[],"env":["APP_URL","TILLIO_QUEUE_CONCURRENCY"],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"apiUrl","type":"url","required":true},{"key":"apiKey","type":"secret","required":true},{"key":"timeZone","type":"text","required":false}]},"callout":"ADDS 5 ROUTES (0 PUBLIC) · 1 PERMISSION","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers tillio in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers tillio in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers tillio in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/tillio@0.9.0","cmm":"npx create-mercato-module install @open-mercato/tillio@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":20344,"stars":null},"sigil":{"glyph":"0200202","phase":63,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/tillio","md":"https://modules.openmercato.com/m/@open-mercato/tillio.md","json":"https://modules.openmercato.com/m/@open-mercato/tillio.json","facts":"https://modules.openmercato.com/m/@open-mercato/tillio/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/tillio","repo":"https://github.com/open-mercato/open-mercato","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/tillio-1.webp","alt":"Tillio phone calls integration settings with API URL, API key and time zone fields."}]},{"locator":"npm:@open-mercato/web-research","path":"@open-mercato/web-research","npm":"@open-mercato/web-research","github":null,"repoPath":"open-mercato/open-mercato#main/packages/web-research","kind":"library","type":"official","enterprise":false,"title":"Web Research","summary":"Engine that runs several web search adapters under one deadline, fuses their results and reports each step.","whenToUse":"Use when AI agents in the app need web search or page reading. Add at least one adapter, for example web-research-model.","whenNotToUse":null,"category":"ai-automation","tags":["web-search","ai","agents"],"providers":[],"moduleIds":[],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-AxH1xP8V98/FQ1M0kxUnQ/OxXzp3K1CozimKfG7ruOgVeGdX0s7xZcqqrJxCm5bRpJGOU2WfeCsWtZ137f4Fpw==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not libraries."}],"consentText":"Install @open-mercato/web-research@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not libraries."}],"consentText":"Install @open-mercato/web-research@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not libraries."}],"consentText":"Install @open-mercato/web-research@0.9.0"}},"install":{"cli":"yarn add @open-mercato/web-research@0.9.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":25389,"stars":null},"sigil":{"glyph":"0000000","phase":208,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/web-research","md":"https://modules.openmercato.com/m/@open-mercato/web-research.md","json":"https://modules.openmercato.com/m/@open-mercato/web-research.json","facts":"https://modules.openmercato.com/m/@open-mercato/web-research/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/web-research","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/web-research"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/web-research-browser","path":"@open-mercato/web-research-browser","npm":"@open-mercato/web-research-browser","github":null,"repoPath":"open-mercato/open-mercato#main/packages/web-research-browser","kind":"provider","type":"official","enterprise":false,"title":"Web Research Browser","summary":"Renders blocked search pages and JavaScript-only sites in a Playwright sidecar for web-research.","whenToUse":"Use when other web-research adapters come back blocked or empty and the server may run headless Chromium.","whenNotToUse":"It downloads Chromium on first use and starts a separate process, so skip it where that is not allowed.","category":"ai-automation","tags":["web-search","playwright","browser"],"providers":[{"name":"playwright","label":"Playwright"}],"moduleIds":[],"requires":[{"raw":"@open-mercato/web-research","resolvesTo":"npm:@open-mercato/web-research"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-LxtOK2xHYsN+zniUgrfop7klBsOtjRRsY42VIMIsdyNpTWSYCYWkzlZ/409ImC3uWRUXaIeOrXXi+Z0xpPhx7A==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.0","kind":"caret-0x","lines":[],"ranges":{"0.9":"^0.6.0","0.8":"^0.6.0","next":"^0.6.0"}},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-browser@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-browser@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-browser@0.9.0"}},"install":{"cli":"yarn add @open-mercato/web-research@0.9.0 @open-mercato/web-research-browser@0.9.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10585,"stars":null},"sigil":{"glyph":"0000000","phase":194,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/web-research-browser","md":"https://modules.openmercato.com/m/@open-mercato/web-research-browser.md","json":"https://modules.openmercato.com/m/@open-mercato/web-research-browser.json","facts":"https://modules.openmercato.com/m/@open-mercato/web-research-browser/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/web-research-browser","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/web-research"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/web-research-exa","path":"@open-mercato/web-research-exa","npm":"@open-mercato/web-research-exa","github":null,"repoPath":"open-mercato/open-mercato#main/packages/web-research-exa","kind":"provider","type":"official","enterprise":false,"title":"Web Research Exa","summary":"Exa adapter for web-research: embeddings index, native domain and date filters, and the cost of each search.","whenToUse":"Use when agents need relevant passages from recent sources and you accept a per-call price from Exa.","whenNotToUse":null,"category":"ai-automation","tags":["web-search","ai"],"providers":[{"name":"exa","label":"Exa"}],"moduleIds":[],"requires":[{"raw":"@open-mercato/web-research","resolvesTo":"npm:@open-mercato/web-research"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-CfgMXxR/T+OZ20jffdUb1F0CpNJAjeGfouq2DYN0JG87GURN+Pewr+UUjDt4jbXDw2cAQ3Z96yGi6bJlcxEyyw==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.0","kind":"caret-0x","lines":[],"ranges":{"0.9":"^0.6.0","0.8":"^0.6.0","next":"^0.6.0"}},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-exa@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-exa@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-exa@0.9.0"}},"install":{"cli":"yarn add @open-mercato/web-research@0.9.0 @open-mercato/web-research-exa@0.9.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10726,"stars":null},"sigil":{"glyph":"0000000","phase":60,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/web-research-exa","md":"https://modules.openmercato.com/m/@open-mercato/web-research-exa.md","json":"https://modules.openmercato.com/m/@open-mercato/web-research-exa.json","facts":"https://modules.openmercato.com/m/@open-mercato/web-research-exa/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/web-research-exa","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/web-research"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/web-research-firecrawl","path":"@open-mercato/web-research-firecrawl","npm":"@open-mercato/web-research-firecrawl","github":null,"repoPath":"open-mercato/open-mercato#main/packages/web-research-firecrawl","kind":"provider","type":"official","enterprise":false,"title":"Web Research Firecrawl","summary":"Firecrawl adapter for web-research that returns page content inline with each search result.","whenToUse":"Use when agents must read whole pages, not just snippets, and you have a Firecrawl API key.","whenNotToUse":null,"category":"ai-automation","tags":["web-search","scraping","ai"],"providers":[{"name":"firecrawl","label":"Firecrawl"}],"moduleIds":[],"requires":[{"raw":"@open-mercato/web-research","resolvesTo":"npm:@open-mercato/web-research"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-KuAWWBYf/o60IdKTYQltLgkTkM2p/Tg9D2UjIJkdDsxSdL8UrYJ2UYkZVEW5fGPkZWhHi7IA+bq35EUGtk5BcQ==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.0","kind":"caret-0x","lines":[],"ranges":{"0.9":"^0.6.0","0.8":"^0.6.0","next":"^0.6.0"}},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-firecrawl@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-firecrawl@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-firecrawl@0.9.0"}},"install":{"cli":"yarn add @open-mercato/web-research@0.9.0 @open-mercato/web-research-firecrawl@0.9.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10701,"stars":null},"sigil":{"glyph":"0000000","phase":195,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/web-research-firecrawl","md":"https://modules.openmercato.com/m/@open-mercato/web-research-firecrawl.md","json":"https://modules.openmercato.com/m/@open-mercato/web-research-firecrawl.json","facts":"https://modules.openmercato.com/m/@open-mercato/web-research-firecrawl/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/web-research-firecrawl","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/web-research"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/web-research-model","path":"@open-mercato/web-research-model","npm":"@open-mercato/web-research-model","github":null,"repoPath":"open-mercato/open-mercato#main/packages/web-research-model","kind":"provider","type":"official","enterprise":false,"title":"Web Research Model","summary":"Web search through the native search tool of the agent LLM on Anthropic, OpenAI or Azure OpenAI. On by default.","whenToUse":"Use when you want web search without another vendor or key, through the model the agent already calls.","whenNotToUse":null,"category":"ai-automation","tags":["web-search","llm","ai"],"providers":[{"name":"anthropic","label":"Anthropic"},{"name":"openai","label":"OpenAI"},{"name":"azure-openai","label":"Azure OpenAI"}],"moduleIds":[],"requires":[{"raw":"@open-mercato/web-research","resolvesTo":"npm:@open-mercato/web-research"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-KyMu/j6vurrqgyMx4w727Dv3UWlaPhVf1dB/9Towumoyd3JHrBY4d0zodnd1GivyjqAUWV/CIPimU1DzIcLCRg==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.0","kind":"caret-0x","lines":[],"ranges":{"0.9":"^0.6.0","0.8":"^0.6.0","next":"^0.6.0"}},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-model@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-model@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-model@0.9.0"}},"install":{"cli":"yarn add @open-mercato/web-research@0.9.0 @open-mercato/web-research-model@0.9.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10720,"stars":null},"sigil":{"glyph":"0000000","phase":80,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/web-research-model","md":"https://modules.openmercato.com/m/@open-mercato/web-research-model.md","json":"https://modules.openmercato.com/m/@open-mercato/web-research-model.json","facts":"https://modules.openmercato.com/m/@open-mercato/web-research-model/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/web-research-model","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/web-research"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/web-research-searxng","path":"@open-mercato/web-research-searxng","npm":"@open-mercato/web-research-searxng","github":null,"repoPath":"open-mercato/open-mercato#main/packages/web-research-searxng","kind":"provider","type":"official","enterprise":false,"title":"Web Research SearXNG","summary":"Client adapter for web-research that queries a SearXNG instance you run. The AGPL server is not bundled.","whenToUse":"Use when agent searches must go through a metasearch server you control instead of a paid API.","whenNotToUse":null,"category":"ai-automation","tags":["web-search","self-hosted"],"providers":[{"name":"searxng","label":"SearXNG"}],"moduleIds":[],"requires":[{"raw":"@open-mercato/web-research","resolvesTo":"npm:@open-mercato/web-research"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-8RMg+F/8nSWvLZhdEUgh4OyRStqDTPG3RgCA8bEZ+37pgY5eRbfwjeyf4QcLwaXD3i/7DWKBt1MJw3rtwNh7VA==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.0","kind":"caret-0x","lines":[],"ranges":{"0.9":"^0.6.0","0.8":"^0.6.0","next":"^0.6.0"}},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-searxng@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-searxng@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-searxng@0.9.0"}},"install":{"cli":"yarn add @open-mercato/web-research@0.9.0 @open-mercato/web-research-searxng@0.9.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10544,"stars":null},"sigil":{"glyph":"0000000","phase":339,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/web-research-searxng","md":"https://modules.openmercato.com/m/@open-mercato/web-research-searxng.md","json":"https://modules.openmercato.com/m/@open-mercato/web-research-searxng.json","facts":"https://modules.openmercato.com/m/@open-mercato/web-research-searxng/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/web-research-searxng","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/web-research"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/web-research-serp","path":"@open-mercato/web-research-serp","npm":"@open-mercato/web-research-serp","github":null,"repoPath":"open-mercato/open-mercato#main/packages/web-research-serp","kind":"provider","type":"official","enterprise":false,"title":"Web Research DuckDuckGo","summary":"Free web-research adapter that reads public DuckDuckGo result pages. No API key, no dependencies, off by default.","whenToUse":"Use when you need a no-cost search source and accept that result pages can block requests or change markup.","whenNotToUse":null,"category":"ai-automation","tags":["web-search","free"],"providers":[{"name":"duckduckgo","label":"DuckDuckGo"}],"moduleIds":[],"requires":[{"raw":"@open-mercato/web-research","resolvesTo":"npm:@open-mercato/web-research"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-xprW0Colb+tYdOop2+pYs4IRhtCMiw3RCe5doedskF5z968HOAq0UwzCOgZ/ii/Q3+IWZB2sD6P2seUDI3D1ig==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.0","kind":"caret-0x","lines":[],"ranges":{"0.9":"^0.6.0","0.8":"^0.6.0","next":"^0.6.0"}},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-serp@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-serp@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-serp@0.9.0"}},"install":{"cli":"yarn add @open-mercato/web-research@0.9.0 @open-mercato/web-research-serp@0.9.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10884,"stars":null},"sigil":{"glyph":"0000000","phase":232,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/web-research-serp","md":"https://modules.openmercato.com/m/@open-mercato/web-research-serp.md","json":"https://modules.openmercato.com/m/@open-mercato/web-research-serp.json","facts":"https://modules.openmercato.com/m/@open-mercato/web-research-serp/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/web-research-serp","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/web-research"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/web-research-tavily","path":"@open-mercato/web-research-tavily","npm":"@open-mercato/web-research-tavily","github":null,"repoPath":"open-mercato/open-mercato#main/packages/web-research-tavily","kind":"provider","type":"official","enterprise":false,"title":"Web Research Tavily","summary":"Tavily adapter for web-research: a search API whose results are shaped for LLM consumption.","whenToUse":"Use when agents need search results ready for an LLM and you have a Tavily API key.","whenNotToUse":null,"category":"ai-automation","tags":["web-search","ai"],"providers":[{"name":"tavily","label":"Tavily"}],"moduleIds":[],"requires":[{"raw":"@open-mercato/web-research","resolvesTo":"npm:@open-mercato/web-research"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-twTVgv9wdYGqdpxYY07Z1xxcnuzqUnuH9xKWarREE5T46Xc8ViTGaM4fC/QTUCvCH1vx7vqrDX0FyTI/T4cDNQ==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"^0.6.0","kind":"caret-0x","lines":[],"ranges":{"0.9":"^0.6.0","0.8":"^0.6.0","next":"^0.6.0"}},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.9.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-tavily@0.9.0"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-tavily@0.8.0"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not providers."}],"consentText":"Install @open-mercato/web-research-tavily@0.9.0"}},"install":{"cli":"yarn add @open-mercato/web-research@0.9.0 @open-mercato/web-research-tavily@0.9.0","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":10739,"stars":null},"sigil":{"glyph":"0000000","phase":42,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/web-research-tavily","md":"https://modules.openmercato.com/m/@open-mercato/web-research-tavily.md","json":"https://modules.openmercato.com/m/@open-mercato/web-research-tavily.json","facts":"https://modules.openmercato.com/m/@open-mercato/web-research-tavily/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/web-research-tavily","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/framework/ai-assistant/web-research"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:10:05Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}}},{"locator":"npm:@open-mercato/webhooks","path":"@open-mercato/webhooks","npm":"@open-mercato/webhooks","github":null,"repoPath":"open-mercato/open-mercato#main/packages/webhooks","kind":"module","type":"official","enterprise":false,"title":"Webhooks","summary":"Standard Webhooks delivery of platform events: signed payloads, retries, delivery logs, test sends and inbound receive.","whenToUse":"Use when an external system must learn about changes in the app as they happen, without polling the API.","whenNotToUse":null,"category":"integrations-sync","tags":["webhooks","events","integrations"],"providers":[],"moduleIds":["webhooks"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.9.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-nDE/oaLzHQieWUjQQsJv2P9v1gKPYf1odfgsSOWPwD2A6hFbhd3SgcP9wxafQo7GWoxoZN7Zw0ec+rTw9C310Q==","installableFrom":"2026-10-09","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.8","0.9"],"ranges":{"0.9":"0.9.0","0.8":"0.8.0"}},"lines":{},"verifiedOn":[],"inPresets":["0.8","0.9","next"],"ships":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.10.1-develop.7701.1.87b1ad4224"}},"anatomy":{"version":"0.9.0","coverage":"full","counts":{"entities":5,"tables":5,"migrations":3,"routes":24,"publicRoutes":1,"aclFeatures":4,"eventsEmitted":12,"eventsConsumed":2,"backendPages":3,"frontendPages":0,"widgets":0,"workers":2,"cli":0,"aiTools":0,"aiAgents":0,"extends":3},"lists":{"aclFeatures":["webhooks.view","webhooks.manage","webhooks.secrets","webhooks.test"],"eventsEmitted":["webhooks.webhook.created","webhooks.webhook.updated","webhooks.webhook.deleted","webhooks.delivery.enqueued","webhooks.delivery.succeeded","webhooks.delivery.failed","webhooks.delivery.exhausted","webhooks.webhook.disabled","webhooks.inbound.received","webhooks.inbound.processed","webhooks.inbound.handler_failed","webhooks.secret.rotated"],"eventsConsumed":["webhooks.delivery.exhausted","webhooks.inbound.received"],"env":["WEBHOOK_QUEUE_CONCURRENCY","QUEUE_STRATEGY","WEBHOOK_INBOUND_QUEUE_CONCURRENCY","OM_WEBHOOKS_SUBSCRIPTION_CACHE_TTL_MS","OM_WEBHOOKS_ALLOW_PRIVATE_URLS"],"hosts":[],"tables":["webhooks","webhook_deliveries","webhook_inbound_receipts","webhook_ingestions","webhook_inbound_configs"],"publicRoutes":["POST /api/webhooks/inbound/[endpointId]"],"credentials":[{"key":"notifyOnFailedDelivery","type":"boolean","required":false}],"sdks":["svix"],"backendPages":["/backend/webhooks","/backend/webhooks/[id]","/backend/webhooks/create"]},"callout":"ADDS 5 TABLES · 24 ROUTES (1 PUBLIC) · 4 PERMISSIONS · EMITS 12 EVENTS","diff":{"from":"0.8.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":["OM_WEBHOOKS_SUBSCRIPTION_CACHE_TTL_MS"],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"unknown"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["invalid-identifier","peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8, 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers webhooks in src/modules.ts."}]},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers webhooks in src/modules.ts."}]},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers webhooks in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/webhooks@0.9.0","cmm":"npx create-mercato-module install @open-mercato/webhooks@0.9.0","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":40940,"stars":null},"sigil":{"glyph":"2323202","phase":159,"publicRoutes":true},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/webhooks","md":"https://modules.openmercato.com/m/@open-mercato/webhooks.md","json":"https://modules.openmercato.com/m/@open-mercato/webhooks.json","facts":"https://modules.openmercato.com/m/@open-mercato/webhooks/v/0.9.0/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/webhooks","repo":"https://github.com/open-mercato/open-mercato","docs":"https://docs.openmercato.com/user-guide/webhooks"},"addedAt":"2026-10-23","updatedAt":"2026-10-29T13:11:45Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.9.0","0.8":"0.8.0","next":"0.9.0"}},"screenshots":[{"src":"/shots/@open-mercato/webhooks-1.webp","alt":"Create webhook form with endpoint URL, HTTP method, event subscription and delivery settings."}]},{"locator":"npm:@piotrkarwatka/marketing-consents","path":"@piotrkarwatka/marketing-consents","npm":"@piotrkarwatka/marketing-consents","github":"pkarw/marketing-consents","repoPath":null,"kind":"module","type":"community","enterprise":false,"title":"Marketing Consents","summary":"Register of marketing consent proofs: exact text with a SHA-256 digest, withdrawal with a reason, personal fields encrypted.","whenToUse":"Use when the app must keep evidence of each marketing consent and let staff withdraw it with a recorded reason.","whenNotToUse":"It sends nothing and grants no permission to send: your sending system must read the consent state.","category":"marketing-loyalty","tags":["consents","gdpr","marketing"],"providers":[],"moduleIds":["marketing_consents"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":null,"kind":"proprietary","mismatch":false},"version":{"latest":"0.1.0","preview":null,"publishedAt":"2026-10-14","integrity":"sha512-ByUXs82VmoFMQa6c7kgE1yhKDBH9MNhZoMvTnkpU0ORD4KxHyv4/fQGUXOzmiUnfU6+Zsc4H1hncG7GbnaE2ig==","installableFrom":"2026-10-19","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.9.0","kind":"exact-pin","lines":["0.9"]},"lines":{"0.9":{"status":"broken","step":"typecheck","omVersion":"0.9.0","moduleVersion":"0.1.0","at":"2026-10-29T09:03:43Z","receipt":"r_20261029_540cc6cb533c","since":"2026-10-29","precheck":null,"patches":[],"finding":"Typecheck failed: TS2321 Excessive stack depth comparing types '{ title: string; titleHeadingLevel: 1; columns: LegacyColumnDef<ConsentRow>[]; data: ConsentRow[]; searchValue: string; searchPlacehold…"}},"verifiedOn":[]},"anatomy":{"version":"0.1.0","coverage":"full","counts":{"entities":2,"tables":2,"migrations":1,"routes":4,"publicRoutes":0,"aclFeatures":3,"eventsEmitted":0,"eventsConsumed":0,"backendPages":2,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":["marketing_consents.record","marketing_consents.view","marketing_consents.withdraw"],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":["marketing_consent_records","marketing_consent_withdrawal_evidence"],"publicRoutes":[],"credentials":[],"backendPages":["/backend/marketing_consents","/backend/marketing_consents/[id]"]},"callout":"ADDS 2 TABLES · 4 ROUTES (0 PUBLIC) · 3 PERMISSIONS","diff":null},"signals":{"receipt":{"0.9":"broken","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"no-fit","next":"drift"},"anatomy":"full","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin","host-dependency-duplication"]},"maintenance":{"status":"current","lastRelease":"2026-10-14","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.9; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"refuse","reasons":[{"code":"BROKEN","text":"Broken at typecheck on 0.9 since 29 Oct."},{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"LICENSE","text":"License: proprietary (UNLICENSED)."}]},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"LICENSE","text":"License: proprietary (UNLICENSED)."}],"consentText":"Install @piotrkarwatka/marketing-consents@0.1.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"LICENSE","text":"License: proprietary (UNLICENSED)."}],"consentText":"Install @piotrkarwatka/marketing-consents@0.1.0"}},"install":{"cli":"yarn mercato module add @piotrkarwatka/marketing-consents@0.1.0 --allow-third-party","cmm":"npx create-mercato-module install @piotrkarwatka/marketing-consents@0.1.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":null,"stars":0},"sigil":{"glyph":"2220000","phase":125,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@piotrkarwatka/marketing-consents","md":"https://modules.openmercato.com/m/@piotrkarwatka/marketing-consents.md","json":"https://modules.openmercato.com/m/@piotrkarwatka/marketing-consents.json","facts":"https://modules.openmercato.com/m/@piotrkarwatka/marketing-consents/v/0.1.0/facts.json","npm":"https://www.npmjs.com/package/@piotrkarwatka/marketing-consents","repo":"https://github.com/pkarw/marketing-consents","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-29T09:22:28Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.1.0","0.8":"0.1.0","next":"0.1.0"}}},{"locator":"npm:@piotrkarwatka/visits","path":"@piotrkarwatka/visits","npm":"@piotrkarwatka/visits","github":null,"repoPath":null,"kind":"module","type":"community","enterprise":false,"title":"Visits","summary":"Example module with one backend page that lists CRM interactions in a table with search and paging.","whenToUse":"Use when you want a small reference for a module page that reads CRM data, for example while learning modules.","whenNotToUse":"Not a feature module: it adds no tables and no API routes of its own.","category":"crm-sales","tags":["example","crm"],"providers":[],"moduleIds":["visits"],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":null,"kind":"proprietary","mismatch":false},"version":{"latest":"0.1.0","preview":null,"publishedAt":"2026-10-09","integrity":"sha512-TqJBZSugVSmqYNBvDJmEgk1WKgBIjqbvNR+MVhPj61aP6NSmRZs0RREekWzc02o8r29kMRzt2xG3YLux6qrsqg==","installableFrom":"2026-10-14","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.8.0","kind":"exact-pin","lines":["0.8"]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.1.0","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":1,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[],"backendPages":["/backend/visits"]},"callout":"FEW CONTRACTS","diff":null},"signals":{"receipt":{"0.9":"untested","0.8":"untested","next":"untested"},"fit":{"0.9":"ok","0.8":"drift","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin","host-dependency-duplication"]},"maintenance":{"status":"current","lastRelease":"2026-10-09","catchUpDays":null},"declaredVsObserved":{"status":"mismatch","notes":["Built for 0.8; verified on no line."]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.9."},{"code":"LICENSE","text":"License: proprietary (UNLICENSED)."}],"consentText":"Install @piotrkarwatka/visits@0.1.0"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on 0.8."},{"code":"LICENSE","text":"License: proprietary (UNLICENSED)."}],"consentText":"Install @piotrkarwatka/visits@0.1.0"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"LICENSE","text":"License: proprietary (UNLICENSED)."}],"consentText":"Install @piotrkarwatka/visits@0.1.0"}},"install":{"cli":"yarn mercato module add @piotrkarwatka/visits@0.1.0 --allow-third-party","cmm":"npx create-mercato-module install @piotrkarwatka/visits@0.1.0","needsAllowThirdParty":true,"moduleFlag":null},"stats":{"downloads30d":null,"stars":null},"sigil":{"glyph":"0010000","phase":45,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@piotrkarwatka/visits","md":"https://modules.openmercato.com/m/@piotrkarwatka/visits.md","json":"https://modules.openmercato.com/m/@piotrkarwatka/visits.json","facts":"https://modules.openmercato.com/m/@piotrkarwatka/visits/v/0.1.0/facts.json","npm":"https://www.npmjs.com/package/@piotrkarwatka/visits","repo":null,"docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-25T08:18:49Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.1.0","0.8":"0.1.0","next":"0.1.0"}}},{"locator":"npm:create-mercato-module","path":"create-mercato-module","npm":"create-mercato-module","github":"open-mercato/create-mercato-module","repoPath":null,"kind":"tool","type":"official","enterprise":false,"title":"create-mercato-module","summary":"CLI that turns one module of your app into an npm package and a GitHub repository, and installs or links modules.","whenToUse":"Use when a module built inside your app should be published for other apps, or you install a module from GitHub.","whenNotToUse":null,"category":"devtools","tags":["cli","publishing","scaffold"],"providers":[],"moduleIds":[],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.5.1","preview":null,"publishedAt":"2026-10-14","integrity":"sha512-GxfzZdbYoMaW/tsdRg9GUIqxjLRur2R40cqTc3SioKdZAZFZb6rdqpTt5GUl7VC0O0VLxXFCJ+vws+rzVTATZQ==","installableFrom":"2026-10-14","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.5.1","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.5.0","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-14","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install create-mercato-module@0.5.1"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install create-mercato-module@0.5.1"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install create-mercato-module@0.5.1"}},"install":{"cli":"npx create-mercato-module@0.5.1","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":646,"stars":null},"sigil":{"glyph":"0000000","phase":295,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/create-mercato-module","md":"https://modules.openmercato.com/m/create-mercato-module.md","json":"https://modules.openmercato.com/m/create-mercato-module.json","facts":"https://modules.openmercato.com/m/create-mercato-module/v/0.5.1/facts.json","npm":"https://www.npmjs.com/package/create-mercato-module","repo":"https://github.com/open-mercato/create-mercato-module","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-25T17:33:15Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.5.1","0.8":"0.5.1","next":"0.5.1"}}},{"locator":"npm:mercato-readiness-scanner","path":"mercato-readiness-scanner","npm":"mercato-readiness-scanner","github":"open-mercato/mercato-readiness-scanner","repoPath":null,"kind":"tool","type":"official","enterprise":false,"title":"Readiness Scanner","summary":"Read-only scan of a create-mercato-app project for weak credentials, encryption keys and deployment gaps.","whenToUse":"Use when you prepare an app for production or want a CI gate that fails on high-severity readiness findings.","whenNotToUse":null,"category":"devtools","tags":["cli","security","production","ci"],"providers":[],"moduleIds":[],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":["npm:@open-mercato/readiness-scanner"],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":null,"kind":"unknown","mismatch":false},"version":{"latest":"0.2.2","preview":null,"publishedAt":"2026-10-22","integrity":"sha512-ee0dPquU8MPzwoFPf1RGK419ddeKwLT9ZEH6uAKZ/8euDOpzGxGmfCAit68fhfQPcVblgqPB8Df9mYbYMZ0cjA==","installableFrom":"2026-10-22","gitRef":"3fc6a9954069117ae5ab404a23f5f8af009966f3","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.2.2","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":{"from":"0.2.1","added":{"tables":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"env":[],"hosts":[]},"removed":{"tables":0,"routes":0,"aclFeatures":0}}},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"current","lastRelease":"2026-10-22","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."},{"code":"LICENSE","text":"License: unknown."}],"consentText":"Install mercato-readiness-scanner@0.2.2"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."},{"code":"LICENSE","text":"License: unknown."}],"consentText":"Install mercato-readiness-scanner@0.2.2"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."},{"code":"LICENSE","text":"License: unknown."}],"consentText":"Install mercato-readiness-scanner@0.2.2"}},"install":{"cli":"npx mercato-readiness-scanner@0.2.2","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":null,"stars":null},"sigil":{"glyph":"0000000","phase":77,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/mercato-readiness-scanner","md":"https://modules.openmercato.com/m/mercato-readiness-scanner.md","json":"https://modules.openmercato.com/m/mercato-readiness-scanner.json","facts":"https://modules.openmercato.com/m/mercato-readiness-scanner/v/0.2.2/facts.json","npm":"https://www.npmjs.com/package/mercato-readiness-scanner","repo":"https://github.com/open-mercato/mercato-readiness-scanner","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-25T17:33:15Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.2.2","0.8":"0.2.2","next":"0.2.2"}}},{"locator":"npm:open-mercato-generator","path":"open-mercato-generator","npm":"open-mercato-generator","github":"mkadziolka/open-mercato-rust-client","repoPath":null,"kind":"tool","type":"community","enterprise":false,"title":"Rust API Client Generator","summary":"Generates Rust types and a Rust API client from the Open Mercato OpenAPI schema.","whenToUse":"Use when a Rust service has to call the Open Mercato API with typed requests and responses.","whenNotToUse":null,"category":"devtools","tags":["rust","openapi","codegen"],"providers":[],"moduleIds":[],"requires":[],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":"0.3.13","preview":null,"publishedAt":"2026-01-17","integrity":"sha512-tgQJFqBxKYxt3anxmPkbP3udPRaeKixJqp6cRkwYZ80KOI3XQxT53szXZCb3WD5xhFlNS/gifknEMOYu/ogC3A==","installableFrom":"2026-01-22","gitRef":"3fbc5bee39f7bef3afe73e79717a322e0bf36dcb","recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"none","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":null,"kind":"missing","lines":[]},"lines":{},"verifiedOn":[]},"anatomy":{"version":"0.3.13","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":0,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":0},"lists":{"aclFeatures":[],"eventsEmitted":[],"eventsConsumed":[],"env":[],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[]},"callout":"FEW CONTRACTS","diff":null},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"skipped"},"fit":{"0.9":"ok","0.8":"ok","next":"ok"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"ok","failing":[]},"maintenance":{"status":"behind","lastRelease":"2026-01-17","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install open-mercato-generator@0.3.13"},"0.8":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install open-mercato-generator@0.3.13"},"next":{"decision":"ask","reasons":[{"code":"THIRD_PARTY","text":"Third-party code runs with access to all tenants' data."},{"code":"NOT_VERIFIED","text":"Not installed by the catalog: the nightly run installs modules, not tools."}],"consentText":"Install open-mercato-generator@0.3.13"}},"install":{"cli":"yarn add open-mercato-generator@0.3.13","cmm":null,"needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":3,"stars":2},"sigil":{"glyph":"0000000","phase":184,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/open-mercato-generator","md":"https://modules.openmercato.com/m/open-mercato-generator.md","json":"https://modules.openmercato.com/m/open-mercato-generator.json","facts":"https://modules.openmercato.com/m/open-mercato-generator/v/0.3.13/facts.json","npm":"https://www.npmjs.com/package/open-mercato-generator","repo":"https://github.com/mkadziolka/open-mercato-rust-client","docs":null},"addedAt":"2026-10-23","updatedAt":"2026-10-25T17:33:15Z","_meta":{"com.openmercato.modules/installable":{"0.9":"0.3.13","0.8":"0.3.13","next":"0.3.13"}}}]}
