{"id":"@lssm-tech/app.web-founder-suite-monolith","slug":"app.web-founder-suite-monolith","name":"@lssm-tech/app.web-founder-suite-monolith","version":"0.3.2","path":"packages/apps/web-founder-suite-monolith","manifestPath":"packages/apps/web-founder-suite-monolith/package.json","manifestBlobSha":"8796c9245f4da19dee77ff7336fb04fa2ee37739","layer":"apps","physicalArea":null,"primaryArea":"app-composition","classification":{"privateDeclared":true,"catalogFamily":null,"catalogKind":null,"catalogStatus":null,"adoptionMode":null,"stability":null},"description":null,"descriptionOrigin":"package.json","catalog":{"visualTesting":{"status":"deferred","owner":"@contractspec-core","targetWave":"wave-3-react-packages","rationale":"Foundational Storybook adoption establishes shared catalogs and guardrails before this package migrates."}},"canonicalImports":[],"scripts":{"build":"bun --bun next build --webpack","dev":"bun --bun next dev","lint:check":"git ls-files -co -z --exclude-standard -- . ':!next-env.d.ts' | xargs -0 node ../../../scripts/biome.cjs check","test:production-oidc-canary":"playwright test -c playwright.production-canary.config.ts tests-e2e/lssm-oidc-production-canary.e2e.ts","test:journeys":"playwright test -c e2e/playwright.config.ts","start":"bun --bun next start","typecheck":"bun --bun x tsgo --project tsconfig.build.json --noEmit","prebuild":"bun run typecheck"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/bundle.founder-suite":"workspace:*","@lssm-tech/integration.authos-better-auth":"workspace:*","@lssm-tech/integration.communication-os-client":"workspace:*","@lssm-tech/lib.contracts-runtime-core":"workspace:*","@lssm-tech/lib.design-system":"workspace:*","@lssm-tech/lib.founder-intelligence-spec":"workspace:*","@lssm-tech/lib.organization-planning-react":"workspace:*","@lssm-tech/lib.personalization":"workspace:*","@lssm-tech/module.auth-os":"workspace:*","@lssm-tech/module.forms":"workspace:*","@lssm-tech/module.customer-support":"workspace:*","@lssm-tech/module.company-metrics":"workspace:*","next":"catalog:","react":"catalog:","react-dom":"catalog:"},"devDependencies":{"@axe-core/playwright":"^4.13.0","@playwright/test":"^1.63.0","@lssm-tech/tool.typescript":"workspace:*","@types/node":"catalog:types","@types/react":"catalog:types","@types/react-dom":"catalog:types","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":null,"publishExports":null,"types":null,"files":null,"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[],"entryCount":0,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-founder-suite-monolith","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-founder-suite-monolith/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-founder-suite-monolith/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/app.web-founder-suite-monolith.txt"},"readme":{"status":"available","body":"# Pactena Founder Intelligence web\n\nStandalone Next.js web boundary for `www.pactena.run` and `app.pactena.run`.\n\nThe authenticated `/meetings` surface projects the shared OPA meeting workspace\nwith adaptive profile rationale, confidence, and founder override visibility.\nPrivate guidance remains separate from shared artifacts, and AI output stays\nadvisory: humans retain approval, publication, link, and dispatch authority. An\nopaque route-selected `meetingRef` loads live OPA state with the current Pactena\nsession, and context refresh requires fresh origin and session evidence.\n\nThe same deployment uses host-based rewrites:\n\n- `pactena.run` redirects to `www.pactena.run`\n- `www.pactena.run` serves the marketing and verified-waitlist surface\n  (the AuthOS `WaitlistJoinForm` from `@lssm-tech/module.auth-os`: consent is\n  an explicit required checkbox, never implied; the Pactena adapter fixes the\n  product scope, consent-text version and source)\n- `app.pactena.run` serves the invite-only product workspace\n\nA Railway recovery canary treats only the exact injected\n`RAILWAY_PUBLIC_DOMAIN` as a marketing host. It does not widen trust to the\nprovider suffix, activate the product host, or change production canonicals.\n\nThe approved one-page homepage remains the canonical `/` experience. Additive\nEN/FR/ES acquisition routes cover feature, founder-persona, and decision-use\nintent under `/features/*`, `/personas/*`, and `/solutions/*`; each publishes a\ncanonical URL, hreflang alternates, direct-answer content, JSON-LD, and an\nexplicit privacy/evidence boundary. Canonical product topics include cockpit,\nportfolio, operating domains, weekly review, conversations and meetings,\nexecutive collaboration, talent, forms and intake, and purpose-bound sharing.\nThe invited-founder persona and `/trust` boundary explain that one LSSM account\nstill requires a Pactena entitlement, membership, and product-local session.\n`sitemap.xml`, `robots.txt`, and `llms.txt` are generated from the same typed\nregistry.\n\nThe app host does not render the private workspace until the Pactena API\nconfirms a Better Auth session. Reviewed LSSM OIDC uses the browser callback at\n`/auth/callback/lssm`; invited-email magic links remain available for existing\nlocal identities. The central provider must confirm an active `app_pactena`\nentitlement before it emits an authorization code.\n\nThe access threshold and session seal negotiate EN/FR/ES from the app request.\nSigning out in Pactena closes only the product-local session; it does not imply\nthat the LSSM Passport session was closed. The seal links to the separate\nPassport account controls so both boundaries remain visible and independently\noperable.\n\nThe protected production replay is fail-closed. `bun run\ntest:production-oidc-canary` skips unless\n`PACTENA_LSSM_PRODUCTION_CANARY_AUTHORIZED=1`, the exact\n`E2E_PRODUCTION_BASE_URL=https://app.pactena.run`, and secret-managed\n`E2E_TEST_EMAIL` / `E2E_TEST_PASSWORD` values are all present. It exercises\ncentral sign-in and optional consent, Pactena callback and local session,\nprotected cockpit routes, product-local sign-out, denied post-sign-out session\nresolution, and independent Passport sign-out. Credentials are read only from\nprocess environment variables and are never written to evidence output.\n\nUntil the API database is configured, the UI presents an honest activation-pending state and does not emulate persistence or identity.\n\nThe Executive room consumes the live CompanyOS metrics projection through the\nPactena API peer boundary. Missing, stale, degraded, and denied values remain\nexplicit; the web app does not copy canonical metric state or access the\nfounder-private vault.\n\n## Environment\n\n```text\nNEXT_PUBLIC_PACTENA_API_URL=https://api.pactena.run\nNEXT_PUBLIC_LSSM_IDENTITY_ORIGIN=https://id.lssm.co\nNEXT_PUBLIC_PACTENA_LSSM_RP_ENABLED=0\n```\n\nSetting `NEXT_PUBLIC_PACTENA_LSSM_RP_ENABLED=1` renders only the reviewed LSSM\nPassport handoff. The invited-email form is rendered only when the central RP is\ndisabled for an explicit local rollback; the API must use the matching authority\nmode so a deployment never presents two sign-in authorities.\n\n### Better Auth 1.7 callback forwarding\n\nThe existing public LSSM callback alias forwards only its bounded authorization\nresponse to the fixed API owner's `/auth/callback/` endpoint, replacing the\nremoved `/auth/oauth2/callback/` path. Existing issuer and parameter checks remain\nin force. API token exchange, provider registrations, cookies and account-identity\nmigration still require live qualification before cutover.\n","sourcePath":"packages/apps/web-founder-suite-monolith/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-founder-suite-monolith/README.md","blobSha":"07f8629868bd4a3b0fd73920212db266caa65fea","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"app-composition","areaTitle":"Application composition and product hosts","displayName":"app.web-founder-suite-monolith","runtimes":[],"platforms":[],"kind":"apps","scope":"Workspace only","canonicalRoute":"/docs/packages/app.web-founder-suite-monolith/","contextUrl":"/docs/packages/app.web-founder-suite-monolith.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}