
Research
/Security News
737 Chrome VPN Extensions Linked to Brand Impersonation and Browser Traffic Redirection
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.
@intent-driven/host-contracts
Advanced tools
Контракт shell↔module для IDF: AppModuleManifest, ShellContext, NavSection, RouteConfig, CommandConfig
Контракт shell ↔ module для IDF-хостов и адаптеров micro-frontend.
Несколько независимых production-стэков (Vite-MF runtime, статические импорты + DCE feature-flags, IDF host) пришли к одной и той же абстракции: «модуль = id + basePath + nav + routes + (commands/headerSlots/docs)» + «shell даёт контекст: auth, i18n, theme, navigate, events, toast». Convergent evolution — сильный сигнал, что контракт стоит формализовать.
Этот пакет — type-only + минимум runtime-helpers для этой формализации. Никаких React/MF runtime — чистый shape.
AppModuleManifest — то, что модуль выставляет наружу (id, basePath, navSections, routes, commands?, headerSlots?, settingsPanel?, loadingTips?, docs?, version?).ShellContext — то, что host даёт модулю при init(ctx) (auth, i18n, theme, navigate, events, toast, setHeaderSlot, registerCommands, env, permissions).NavSection, NavItem, RouteConfig, CommandConfig, LoadingTipConfig, DocLink, HeaderSlotName, EventBus, ToastAPI.validateModuleManifest(manifest) — runtime-валидатор shape'а с понятными ошибками.mergeNavSections(sections, ...) — merge nav-секций нескольких модулей с детектом коллизий по id.HEADER_SLOTS — канонический enum названий слотов в shell-header.import { validateModuleManifest, mergeNavSections, HEADER_SLOTS } from "@intent-driven/host-contracts";
const manifest = {
id: "pipeline",
basePath: "/pipeline",
navSections: [{ id: "main", label: "Main", items: [{ id: "home", path: "/", label: "Home" }] }],
routes: [{ path: "/", component: HomePage }],
};
const result = validateModuleManifest(manifest);
if (!result.ok) console.error(result.errors);
import type { AppModuleManifest, ShellContext } from "@intent-driven/host-contracts";
export function initModule(ctx: ShellContext): AppModuleManifest {
ctx.toast.show({ kind: "info", text: "module loaded" });
return { id: "billing", basePath: "/billing", navSections: [], routes: [] };
}
Любой host (MF runtime, static-imports + DCE, plain SPA, IDF host) и любой module-package, обменивающиеся AppModuleManifest + ShellContext, считаются conformant. Богатые поля (headerSlots, commands, loadingTips, docs, settingsPanel) — optional, host имеет право игнорировать неподдерживаемые.
AppModuleManifest — сериализованная projection-tree остатка домена в IDF-смысле: navSections ≈ ROOT_PROJECTIONS, routes ≈ projection paths, commands ≈ palette/intents, headerSlots ≈ shell-extension points. Этот пакет — формальный фундамент, на котором будущие adapter-пакеты будут декларировать совместимость.
FAQs
Контракт shell↔module для IDF: AppModuleManifest, ShellContext, NavSection, RouteConfig, CommandConfig
The npm package @intent-driven/host-contracts receives a total of 3 weekly downloads. As such, @intent-driven/host-contracts popularity was classified as not popular.
We found that @intent-driven/host-contracts demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.