{"id":"@lssm-tech/bundle.marketing-operations","slug":"bundle.marketing-operations","name":"@lssm-tech/bundle.marketing-operations","version":"0.2.4","path":"packages/bundles/marketing-operations","manifestPath":"packages/bundles/marketing-operations/package.json","manifestBlobSha":"b0969ee6b4ffc4900b91160145e528f3b60bcfee","layer":"bundles","physicalArea":null,"primaryArea":"content-and-growth","classification":{"privateDeclared":null,"catalogFamily":"solutions","catalogKind":"bundle","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Shared governed marketing operation server composition.","descriptionOrigin":"package.json","catalog":{"family":"solutions","kind":"bundle","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["bun","node"],"entrypoints":[".","./server","./site-mcp","./mcp","./ui/MarketingWorkspace","./advertising"],"documentation":[{"title":"Marketing Operations","url":"https://github.com/lssm-tech/contractspec/tree/main/packages/bundles/marketing-operations","kind":"readme"}],"capabilities":[{"id":"package.lssm.tech.bundle.marketing.operations","title":"Marketing operations","description":"Composable marketing operations bundle.","useCases":["Compose marketing operations surfaces"],"aliases":["marketing","operations"],"canonicalImports":[{"from":"@lssm-tech/bundle.marketing-operations","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["bun","node"],"avoidWhen":["The target does not need marketing operations surfaces."],"requires":["TypeScript"]}}],"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":[{"capabilityId":"package.lssm.tech.bundle.marketing.operations","from":"@lssm-tech/bundle.marketing-operations","symbols":[]}],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","lint:check":"node ../../../scripts/biome.cjs check .","test":"bun test","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit","publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.contracts-spec":"workspace:^","@lssm-tech/lib.content-analysis-spec":"workspace:^","@lssm-tech/lib.contracts-runtime-server-rest":"workspace:^","@lssm-tech/lib.contracts-runtime-server-mcp":"workspace:^","@lssm-tech/module.growth-os":"workspace:^","@lssm-tech/module.editorial":"workspace:^","@lssm-tech/module.creator-operations":"workspace:^","@lssm-tech/lib.content-gen":"workspace:^","@lssm-tech/lib.growth-spec":"workspace:^","@lssm-tech/lib.design-system":"workspace:^","react":"catalog:","@lssm-tech/integration.provider-meta-ads":"workspace:^","@lssm-tech/integration.provider-google-ads":"workspace:^","@lssm-tech/integration.provider-tiktok":"workspace:^","@lssm-tech/lib.advertising-runtime":"workspace:^","@lssm-tech/lib.contracts-integrations":"workspace:^","@lssm-tech/lib.growth-runtime":"workspace:^","@lssm-tech/module.social-media":"workspace:^","@lssm-tech/lib.contracts-runtime-core":"workspace:^","@lssm-tech/module.self-improving-system":"workspace:^","@lssm-tech/module.content-generation":"workspace:^","@lssm-tech/lib.creator-operations-runtime":"workspace:^","@lssm-tech/integration.editorial-publishing":"workspace:^","@lssm-tech/integration.provider-github":"workspace:^","@lssm-tech/lib.creator-operations-spec":"workspace:^","@lssm-tech/lib.contracts-spec-core":"workspace:^"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","@types/bun":"catalog:types","typescript":"catalog:","@types/react":"catalog:types","@types/react-dom":"catalog:types","react-dom":"catalog:","@lssm-tech/integration.growth-persistence":"workspace:^","@electric-sql/pglite":"catalog:data","@lssm-tech/integration.provider-linkedin":"workspace:^","@lssm-tech/integration.provider-x":"workspace:^","@lssm-tech/lib.self-improving-system-runtime":"workspace:^"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./advertising":"./src/advertising.ts","./editorial-worker":"./src/editorial-worker.ts","./git-editorial":"./src/git-editorial.ts","./installation":"./src/installation.ts","./mcp":"./src/mcp.ts","./media-status":"./src/media-status.ts","./native-editorial-compiler":"./src/native-editorial-compiler.ts","./optimization":"./src/optimization.ts","./planning-approval-host":"./src/planning-approval-host.ts","./rights-preflight":"./src/rights-preflight.ts","./server":"./src/server.ts","./site-mcp":"./src/site-mcp/index.ts","./site-mcp/marketing-agent-config":"./src/site-mcp/marketing-agent-config.ts","./site-mcp/marketing-mcp":"./src/site-mcp/marketing-mcp.ts","./site-mcp/marketing-registry":"./src/site-mcp/marketing-registry.ts","./social":"./src/social.ts","./ui/BootstrappedMarketingWorkspace":"./src/ui/BootstrappedMarketingWorkspace.tsx","./ui/ConnectedMarketingWorkspace":"./src/ui/ConnectedMarketingWorkspace.tsx","./ui/copy":"./src/ui/copy.ts","./ui/editorial-archive-client":"./src/ui/editorial-archive-client.ts","./ui/editorial-client":"./src/ui/editorial-client.ts","./ui/editorial-controller":"./src/ui/editorial-controller.ts","./ui/editorial-create-client":"./src/ui/editorial-create-client.ts","./ui/editorial-create-controller":"./src/ui/editorial-create-controller.ts","./ui/editorial-create-i18n":"./src/ui/editorial-create-i18n.ts","./ui/editorial-destination-options":"./src/ui/editorial-destination-options.ts","./ui/editorial-detail-client":"./src/ui/editorial-detail-client.ts","./ui/editorial-editor-controller":"./src/ui/editorial-editor-controller.ts","./ui/editorial-filters":"./src/ui/editorial-filters.ts","./ui/editorial-heading-focus":"./src/ui/editorial-heading-focus.ts","./ui/editorial-history-client":"./src/ui/editorial-history-client.ts","./ui/editorial-history-controller":"./src/ui/editorial-history-controller.ts","./ui/editorial-i18n":"./src/ui/editorial-i18n.ts","./ui/editorial-pagination-focus":"./src/ui/editorial-pagination-focus.ts","./ui/editorial-publication-client":"./src/ui/editorial-publication-client.ts","./ui/editorial-publication-controller":"./src/ui/editorial-publication-controller.ts","./ui/editorial-publication-result":"./src/ui/editorial-publication-result.ts","./ui/editorial-review-client":"./src/ui/editorial-review-client.ts","./ui/editorial-review-controller":"./src/ui/editorial-review-controller.ts","./ui/editorial-revision-client":"./src/ui/editorial-revision-client.ts","./ui/editorial-schedule-client":"./src/ui/editorial-schedule-client.ts","./ui/editorial-submit-client":"./src/ui/editorial-submit-client.ts","./ui/editorial-view.types":"./src/ui/editorial-view.types.ts","./ui/EditorialArchiveAction":"./src/ui/EditorialArchiveAction.tsx","./ui/EditorialCreateAction":"./src/ui/EditorialCreateAction.tsx","./ui/EditorialEditFields":"./src/ui/EditorialEditFields.tsx","./ui/EditorialEditor":"./src/ui/EditorialEditor.tsx","./ui/EditorialHistoryPanel":"./src/ui/EditorialHistoryPanel.tsx","./ui/EditorialOpenAction":"./src/ui/EditorialOpenAction.tsx","./ui/EditorialPagination":"./src/ui/EditorialPagination.tsx","./ui/EditorialPreparedDraft":"./src/ui/EditorialPreparedDraft.tsx","./ui/EditorialPublicationActions":"./src/ui/EditorialPublicationActions.tsx","./ui/EditorialRecordActions":"./src/ui/EditorialRecordActions.tsx","./ui/EditorialRecordPanel":"./src/ui/EditorialRecordPanel.tsx","./ui/EditorialRecordView":"./src/ui/EditorialRecordView.tsx","./ui/EditorialRecoveryControls":"./src/ui/EditorialRecoveryControls.tsx","./ui/EditorialReviewActions":"./src/ui/EditorialReviewActions.tsx","./ui/EditorialScheduleAction":"./src/ui/EditorialScheduleAction.tsx","./ui/EditorialSubmitAction":"./src/ui/EditorialSubmitAction.tsx","./ui/EditorialWorkspace":"./src/ui/EditorialWorkspace.tsx","./ui/EditorialWorkspaceView":"./src/ui/EditorialWorkspaceView.tsx","./ui/MarketingPlanningApproval":"./src/ui/MarketingPlanningApproval.tsx","./ui/MarketingProposalDetails":"./src/ui/MarketingProposalDetails.tsx","./ui/MarketingWorkspace":"./src/ui/MarketingWorkspace.tsx","./ui/planning-approval-controller":"./src/ui/planning-approval-controller.ts","./ui/planning-approval-gateway":"./src/ui/planning-approval-gateway.ts","./ui/planning-client":"./src/ui/planning-client.ts","./ui/PlanningApprovalReview":"./src/ui/PlanningApprovalReview.tsx","./ui/ReviewedMarketingWorkspace":"./src/ui/ReviewedMarketingWorkspace.tsx","./ui/use-editorial-controller-lifetime":"./src/ui/use-editorial-controller-lifetime.ts","./ui/workspace-client":"./src/ui/workspace-client.ts","./withdrawal-worker":"./src/withdrawal-worker.ts","./workers":"./src/workers.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./advertising":{"types":"./dist/advertising.d.ts","browser":"./dist/browser/advertising.js","bun":"./dist/advertising.js","node":"./dist/node/advertising.js","default":"./dist/advertising.js"},"./editorial-worker":{"types":"./dist/editorial-worker.d.ts","browser":"./dist/browser/editorial-worker.js","bun":"./dist/editorial-worker.js","node":"./dist/node/editorial-worker.js","default":"./dist/editorial-worker.js"},"./git-editorial":{"types":"./dist/git-editorial.d.ts","browser":"./dist/browser/git-editorial.js","bun":"./dist/git-editorial.js","node":"./dist/node/git-editorial.js","default":"./dist/git-editorial.js"},"./installation":{"types":"./dist/installation.d.ts","browser":"./dist/browser/installation.js","bun":"./dist/installation.js","node":"./dist/node/installation.js","default":"./dist/installation.js"},"./mcp":{"types":"./dist/mcp.d.ts","browser":"./dist/browser/mcp.js","bun":"./dist/mcp.js","node":"./dist/node/mcp.js","default":"./dist/mcp.js"},"./media-status":{"types":"./dist/media-status.d.ts","browser":"./dist/browser/media-status.js","bun":"./dist/media-status.js","node":"./dist/node/media-status.js","default":"./dist/media-status.js"},"./native-editorial-compiler":{"types":"./dist/native-editorial-compiler.d.ts","browser":"./dist/browser/native-editorial-compiler.js","bun":"./dist/native-editorial-compiler.js","node":"./dist/node/native-editorial-compiler.js","default":"./dist/native-editorial-compiler.js"},"./optimization":{"types":"./dist/optimization.d.ts","browser":"./dist/browser/optimization.js","bun":"./dist/optimization.js","node":"./dist/node/optimization.js","default":"./dist/optimization.js"},"./planning-approval-host":{"types":"./dist/planning-approval-host.d.ts","browser":"./dist/browser/planning-approval-host.js","bun":"./dist/planning-approval-host.js","node":"./dist/node/planning-approval-host.js","default":"./dist/planning-approval-host.js"},"./rights-preflight":{"types":"./dist/rights-preflight.d.ts","browser":"./dist/browser/rights-preflight.js","bun":"./dist/rights-preflight.js","node":"./dist/node/rights-preflight.js","default":"./dist/rights-preflight.js"},"./server":{"types":"./dist/server.d.ts","browser":"./dist/browser/server.js","bun":"./dist/server.js","node":"./dist/node/server.js","default":"./dist/server.js"},"./site-mcp":{"types":"./dist/site-mcp/index.d.ts","browser":"./dist/browser/site-mcp/index.js","bun":"./dist/site-mcp/index.js","node":"./dist/node/site-mcp/index.js","default":"./dist/site-mcp/index.js"},"./site-mcp/marketing-agent-config":{"types":"./dist/site-mcp/marketing-agent-config.d.ts","browser":"./dist/browser/site-mcp/marketing-agent-config.js","bun":"./dist/site-mcp/marketing-agent-config.js","node":"./dist/node/site-mcp/marketing-agent-config.js","default":"./dist/site-mcp/marketing-agent-config.js"},"./site-mcp/marketing-mcp":{"types":"./dist/site-mcp/marketing-mcp.d.ts","browser":"./dist/browser/site-mcp/marketing-mcp.js","bun":"./dist/site-mcp/marketing-mcp.js","node":"./dist/node/site-mcp/marketing-mcp.js","default":"./dist/site-mcp/marketing-mcp.js"},"./site-mcp/marketing-registry":{"types":"./dist/site-mcp/marketing-registry.d.ts","browser":"./dist/browser/site-mcp/marketing-registry.js","bun":"./dist/site-mcp/marketing-registry.js","node":"./dist/node/site-mcp/marketing-registry.js","default":"./dist/site-mcp/marketing-registry.js"},"./social":{"types":"./dist/social.d.ts","browser":"./dist/browser/social.js","bun":"./dist/social.js","node":"./dist/node/social.js","default":"./dist/social.js"},"./ui/BootstrappedMarketingWorkspace":{"types":"./dist/ui/BootstrappedMarketingWorkspace.d.ts","browser":"./dist/browser/ui/BootstrappedMarketingWorkspace.js","bun":"./dist/ui/BootstrappedMarketingWorkspace.js","node":"./dist/node/ui/BootstrappedMarketingWorkspace.js","default":"./dist/ui/BootstrappedMarketingWorkspace.js"},"./ui/ConnectedMarketingWorkspace":{"types":"./dist/ui/ConnectedMarketingWorkspace.d.ts","browser":"./dist/browser/ui/ConnectedMarketingWorkspace.js","bun":"./dist/ui/ConnectedMarketingWorkspace.js","node":"./dist/node/ui/ConnectedMarketingWorkspace.js","default":"./dist/ui/ConnectedMarketingWorkspace.js"},"./ui/copy":{"types":"./dist/ui/copy.d.ts","browser":"./dist/browser/ui/copy.js","bun":"./dist/ui/copy.js","node":"./dist/node/ui/copy.js","default":"./dist/ui/copy.js"},"./ui/editorial-archive-client":{"types":"./dist/ui/editorial-archive-client.d.ts","browser":"./dist/browser/ui/editorial-archive-client.js","bun":"./dist/ui/editorial-archive-client.js","node":"./dist/node/ui/editorial-archive-client.js","default":"./dist/ui/editorial-archive-client.js"},"./ui/editorial-client":{"types":"./dist/ui/editorial-client.d.ts","browser":"./dist/browser/ui/editorial-client.js","bun":"./dist/ui/editorial-client.js","node":"./dist/node/ui/editorial-client.js","default":"./dist/ui/editorial-client.js"},"./ui/editorial-controller":{"types":"./dist/ui/editorial-controller.d.ts","browser":"./dist/browser/ui/editorial-controller.js","bun":"./dist/ui/editorial-controller.js","node":"./dist/node/ui/editorial-controller.js","default":"./dist/ui/editorial-controller.js"},"./ui/editorial-create-client":{"types":"./dist/ui/editorial-create-client.d.ts","browser":"./dist/browser/ui/editorial-create-client.js","bun":"./dist/ui/editorial-create-client.js","node":"./dist/node/ui/editorial-create-client.js","default":"./dist/ui/editorial-create-client.js"},"./ui/editorial-create-controller":{"types":"./dist/ui/editorial-create-controller.d.ts","browser":"./dist/browser/ui/editorial-create-controller.js","bun":"./dist/ui/editorial-create-controller.js","node":"./dist/node/ui/editorial-create-controller.js","default":"./dist/ui/editorial-create-controller.js"},"./ui/editorial-create-i18n":{"types":"./dist/ui/editorial-create-i18n.d.ts","browser":"./dist/browser/ui/editorial-create-i18n.js","bun":"./dist/ui/editorial-create-i18n.js","node":"./dist/node/ui/editorial-create-i18n.js","default":"./dist/ui/editorial-create-i18n.js"},"./ui/editorial-destination-options":{"types":"./dist/ui/editorial-destination-options.d.ts","browser":"./dist/browser/ui/editorial-destination-options.js","bun":"./dist/ui/editorial-destination-options.js","node":"./dist/node/ui/editorial-destination-options.js","default":"./dist/ui/editorial-destination-options.js"},"./ui/editorial-detail-client":{"types":"./dist/ui/editorial-detail-client.d.ts","browser":"./dist/browser/ui/editorial-detail-client.js","bun":"./dist/ui/editorial-detail-client.js","node":"./dist/node/ui/editorial-detail-client.js","default":"./dist/ui/editorial-detail-client.js"},"./ui/editorial-editor-controller":{"types":"./dist/ui/editorial-editor-controller.d.ts","browser":"./dist/browser/ui/editorial-editor-controller.js","bun":"./dist/ui/editorial-editor-controller.js","node":"./dist/node/ui/editorial-editor-controller.js","default":"./dist/ui/editorial-editor-controller.js"},"./ui/editorial-filters":{"types":"./dist/ui/editorial-filters.d.ts","browser":"./dist/browser/ui/editorial-filters.js","bun":"./dist/ui/editorial-filters.js","node":"./dist/node/ui/editorial-filters.js","default":"./dist/ui/editorial-filters.js"},"./ui/editorial-heading-focus":{"types":"./dist/ui/editorial-heading-focus.d.ts","browser":"./dist/browser/ui/editorial-heading-focus.js","bun":"./dist/ui/editorial-heading-focus.js","node":"./dist/node/ui/editorial-heading-focus.js","default":"./dist/ui/editorial-heading-focus.js"},"./ui/editorial-history-client":{"types":"./dist/ui/editorial-history-client.d.ts","browser":"./dist/browser/ui/editorial-history-client.js","bun":"./dist/ui/editorial-history-client.js","node":"./dist/node/ui/editorial-history-client.js","default":"./dist/ui/editorial-history-client.js"},"./ui/editorial-history-controller":{"types":"./dist/ui/editorial-history-controller.d.ts","browser":"./dist/browser/ui/editorial-history-controller.js","bun":"./dist/ui/editorial-history-controller.js","node":"./dist/node/ui/editorial-history-controller.js","default":"./dist/ui/editorial-history-controller.js"},"./ui/editorial-i18n":{"types":"./dist/ui/editorial-i18n.d.ts","browser":"./dist/browser/ui/editorial-i18n.js","bun":"./dist/ui/editorial-i18n.js","node":"./dist/node/ui/editorial-i18n.js","default":"./dist/ui/editorial-i18n.js"},"./ui/editorial-pagination-focus":{"types":"./dist/ui/editorial-pagination-focus.d.ts","browser":"./dist/browser/ui/editorial-pagination-focus.js","bun":"./dist/ui/editorial-pagination-focus.js","node":"./dist/node/ui/editorial-pagination-focus.js","default":"./dist/ui/editorial-pagination-focus.js"},"./ui/editorial-publication-client":{"types":"./dist/ui/editorial-publication-client.d.ts","browser":"./dist/browser/ui/editorial-publication-client.js","bun":"./dist/ui/editorial-publication-client.js","node":"./dist/node/ui/editorial-publication-client.js","default":"./dist/ui/editorial-publication-client.js"},"./ui/editorial-publication-controller":{"types":"./dist/ui/editorial-publication-controller.d.ts","browser":"./dist/browser/ui/editorial-publication-controller.js","bun":"./dist/ui/editorial-publication-controller.js","node":"./dist/node/ui/editorial-publication-controller.js","default":"./dist/ui/editorial-publication-controller.js"},"./ui/editorial-publication-result":{"types":"./dist/ui/editorial-publication-result.d.ts","browser":"./dist/browser/ui/editorial-publication-result.js","bun":"./dist/ui/editorial-publication-result.js","node":"./dist/node/ui/editorial-publication-result.js","default":"./dist/ui/editorial-publication-result.js"},"./ui/editorial-review-client":{"types":"./dist/ui/editorial-review-client.d.ts","browser":"./dist/browser/ui/editorial-review-client.js","bun":"./dist/ui/editorial-review-client.js","node":"./dist/node/ui/editorial-review-client.js","default":"./dist/ui/editorial-review-client.js"},"./ui/editorial-review-controller":{"types":"./dist/ui/editorial-review-controller.d.ts","browser":"./dist/browser/ui/editorial-review-controller.js","bun":"./dist/ui/editorial-review-controller.js","node":"./dist/node/ui/editorial-review-controller.js","default":"./dist/ui/editorial-review-controller.js"},"./ui/editorial-revision-client":{"types":"./dist/ui/editorial-revision-client.d.ts","browser":"./dist/browser/ui/editorial-revision-client.js","bun":"./dist/ui/editorial-revision-client.js","node":"./dist/node/ui/editorial-revision-client.js","default":"./dist/ui/editorial-revision-client.js"},"./ui/editorial-schedule-client":{"types":"./dist/ui/editorial-schedule-client.d.ts","browser":"./dist/browser/ui/editorial-schedule-client.js","bun":"./dist/ui/editorial-schedule-client.js","node":"./dist/node/ui/editorial-schedule-client.js","default":"./dist/ui/editorial-schedule-client.js"},"./ui/editorial-submit-client":{"types":"./dist/ui/editorial-submit-client.d.ts","browser":"./dist/browser/ui/editorial-submit-client.js","bun":"./dist/ui/editorial-submit-client.js","node":"./dist/node/ui/editorial-submit-client.js","default":"./dist/ui/editorial-submit-client.js"},"./ui/editorial-view.types":{"types":"./dist/ui/editorial-view.types.d.ts","browser":"./dist/browser/ui/editorial-view.types.js","bun":"./dist/ui/editorial-view.types.js","node":"./dist/node/ui/editorial-view.types.js","default":"./dist/ui/editorial-view.types.js"},"./ui/EditorialArchiveAction":{"types":"./dist/ui/EditorialArchiveAction.d.ts","browser":"./dist/browser/ui/EditorialArchiveAction.js","bun":"./dist/ui/EditorialArchiveAction.js","node":"./dist/node/ui/EditorialArchiveAction.js","default":"./dist/ui/EditorialArchiveAction.js"},"./ui/EditorialCreateAction":{"types":"./dist/ui/EditorialCreateAction.d.ts","browser":"./dist/browser/ui/EditorialCreateAction.js","bun":"./dist/ui/EditorialCreateAction.js","node":"./dist/node/ui/EditorialCreateAction.js","default":"./dist/ui/EditorialCreateAction.js"},"./ui/EditorialEditFields":{"types":"./dist/ui/EditorialEditFields.d.ts","browser":"./dist/browser/ui/EditorialEditFields.js","bun":"./dist/ui/EditorialEditFields.js","node":"./dist/node/ui/EditorialEditFields.js","default":"./dist/ui/EditorialEditFields.js"},"./ui/EditorialEditor":{"types":"./dist/ui/EditorialEditor.d.ts","browser":"./dist/browser/ui/EditorialEditor.js","bun":"./dist/ui/EditorialEditor.js","node":"./dist/node/ui/EditorialEditor.js","default":"./dist/ui/EditorialEditor.js"},"./ui/EditorialHistoryPanel":{"types":"./dist/ui/EditorialHistoryPanel.d.ts","browser":"./dist/browser/ui/EditorialHistoryPanel.js","bun":"./dist/ui/EditorialHistoryPanel.js","node":"./dist/node/ui/EditorialHistoryPanel.js","default":"./dist/ui/EditorialHistoryPanel.js"},"./ui/EditorialOpenAction":{"types":"./dist/ui/EditorialOpenAction.d.ts","browser":"./dist/browser/ui/EditorialOpenAction.js","bun":"./dist/ui/EditorialOpenAction.js","node":"./dist/node/ui/EditorialOpenAction.js","default":"./dist/ui/EditorialOpenAction.js"},"./ui/EditorialPagination":{"types":"./dist/ui/EditorialPagination.d.ts","browser":"./dist/browser/ui/EditorialPagination.js","bun":"./dist/ui/EditorialPagination.js","node":"./dist/node/ui/EditorialPagination.js","default":"./dist/ui/EditorialPagination.js"},"./ui/EditorialPreparedDraft":{"types":"./dist/ui/EditorialPreparedDraft.d.ts","browser":"./dist/browser/ui/EditorialPreparedDraft.js","bun":"./dist/ui/EditorialPreparedDraft.js","node":"./dist/node/ui/EditorialPreparedDraft.js","default":"./dist/ui/EditorialPreparedDraft.js"},"./ui/EditorialPublicationActions":{"types":"./dist/ui/EditorialPublicationActions.d.ts","browser":"./dist/browser/ui/EditorialPublicationActions.js","bun":"./dist/ui/EditorialPublicationActions.js","node":"./dist/node/ui/EditorialPublicationActions.js","default":"./dist/ui/EditorialPublicationActions.js"},"./ui/EditorialRecordActions":{"types":"./dist/ui/EditorialRecordActions.d.ts","browser":"./dist/browser/ui/EditorialRecordActions.js","bun":"./dist/ui/EditorialRecordActions.js","node":"./dist/node/ui/EditorialRecordActions.js","default":"./dist/ui/EditorialRecordActions.js"},"./ui/EditorialRecordPanel":{"types":"./dist/ui/EditorialRecordPanel.d.ts","browser":"./dist/browser/ui/EditorialRecordPanel.js","bun":"./dist/ui/EditorialRecordPanel.js","node":"./dist/node/ui/EditorialRecordPanel.js","default":"./dist/ui/EditorialRecordPanel.js"},"./ui/EditorialRecordView":{"types":"./dist/ui/EditorialRecordView.d.ts","browser":"./dist/browser/ui/EditorialRecordView.js","bun":"./dist/ui/EditorialRecordView.js","node":"./dist/node/ui/EditorialRecordView.js","default":"./dist/ui/EditorialRecordView.js"},"./ui/EditorialRecoveryControls":{"types":"./dist/ui/EditorialRecoveryControls.d.ts","browser":"./dist/browser/ui/EditorialRecoveryControls.js","bun":"./dist/ui/EditorialRecoveryControls.js","node":"./dist/node/ui/EditorialRecoveryControls.js","default":"./dist/ui/EditorialRecoveryControls.js"},"./ui/EditorialReviewActions":{"types":"./dist/ui/EditorialReviewActions.d.ts","browser":"./dist/browser/ui/EditorialReviewActions.js","bun":"./dist/ui/EditorialReviewActions.js","node":"./dist/node/ui/EditorialReviewActions.js","default":"./dist/ui/EditorialReviewActions.js"},"./ui/EditorialScheduleAction":{"types":"./dist/ui/EditorialScheduleAction.d.ts","browser":"./dist/browser/ui/EditorialScheduleAction.js","bun":"./dist/ui/EditorialScheduleAction.js","node":"./dist/node/ui/EditorialScheduleAction.js","default":"./dist/ui/EditorialScheduleAction.js"},"./ui/EditorialSubmitAction":{"types":"./dist/ui/EditorialSubmitAction.d.ts","browser":"./dist/browser/ui/EditorialSubmitAction.js","bun":"./dist/ui/EditorialSubmitAction.js","node":"./dist/node/ui/EditorialSubmitAction.js","default":"./dist/ui/EditorialSubmitAction.js"},"./ui/EditorialWorkspace":{"types":"./dist/ui/EditorialWorkspace.d.ts","browser":"./dist/browser/ui/EditorialWorkspace.js","bun":"./dist/ui/EditorialWorkspace.js","node":"./dist/node/ui/EditorialWorkspace.js","default":"./dist/ui/EditorialWorkspace.js"},"./ui/EditorialWorkspaceView":{"types":"./dist/ui/EditorialWorkspaceView.d.ts","browser":"./dist/browser/ui/EditorialWorkspaceView.js","bun":"./dist/ui/EditorialWorkspaceView.js","node":"./dist/node/ui/EditorialWorkspaceView.js","default":"./dist/ui/EditorialWorkspaceView.js"},"./ui/MarketingPlanningApproval":{"types":"./dist/ui/MarketingPlanningApproval.d.ts","browser":"./dist/browser/ui/MarketingPlanningApproval.js","bun":"./dist/ui/MarketingPlanningApproval.js","node":"./dist/node/ui/MarketingPlanningApproval.js","default":"./dist/ui/MarketingPlanningApproval.js"},"./ui/MarketingProposalDetails":{"types":"./dist/ui/MarketingProposalDetails.d.ts","browser":"./dist/browser/ui/MarketingProposalDetails.js","bun":"./dist/ui/MarketingProposalDetails.js","node":"./dist/node/ui/MarketingProposalDetails.js","default":"./dist/ui/MarketingProposalDetails.js"},"./ui/MarketingWorkspace":{"types":"./dist/ui/MarketingWorkspace.d.ts","browser":"./dist/browser/ui/MarketingWorkspace.js","bun":"./dist/ui/MarketingWorkspace.js","node":"./dist/node/ui/MarketingWorkspace.js","default":"./dist/ui/MarketingWorkspace.js"},"./ui/planning-approval-controller":{"types":"./dist/ui/planning-approval-controller.d.ts","browser":"./dist/browser/ui/planning-approval-controller.js","bun":"./dist/ui/planning-approval-controller.js","node":"./dist/node/ui/planning-approval-controller.js","default":"./dist/ui/planning-approval-controller.js"},"./ui/planning-approval-gateway":{"types":"./dist/ui/planning-approval-gateway.d.ts","browser":"./dist/browser/ui/planning-approval-gateway.js","bun":"./dist/ui/planning-approval-gateway.js","node":"./dist/node/ui/planning-approval-gateway.js","default":"./dist/ui/planning-approval-gateway.js"},"./ui/planning-client":{"types":"./dist/ui/planning-client.d.ts","browser":"./dist/browser/ui/planning-client.js","bun":"./dist/ui/planning-client.js","node":"./dist/node/ui/planning-client.js","default":"./dist/ui/planning-client.js"},"./ui/PlanningApprovalReview":{"types":"./dist/ui/PlanningApprovalReview.d.ts","browser":"./dist/browser/ui/PlanningApprovalReview.js","bun":"./dist/ui/PlanningApprovalReview.js","node":"./dist/node/ui/PlanningApprovalReview.js","default":"./dist/ui/PlanningApprovalReview.js"},"./ui/ReviewedMarketingWorkspace":{"types":"./dist/ui/ReviewedMarketingWorkspace.d.ts","browser":"./dist/browser/ui/ReviewedMarketingWorkspace.js","bun":"./dist/ui/ReviewedMarketingWorkspace.js","node":"./dist/node/ui/ReviewedMarketingWorkspace.js","default":"./dist/ui/ReviewedMarketingWorkspace.js"},"./ui/use-editorial-controller-lifetime":{"types":"./dist/ui/use-editorial-controller-lifetime.d.ts","browser":"./dist/browser/ui/use-editorial-controller-lifetime.js","bun":"./dist/ui/use-editorial-controller-lifetime.js","node":"./dist/node/ui/use-editorial-controller-lifetime.js","default":"./dist/ui/use-editorial-controller-lifetime.js"},"./ui/workspace-client":{"types":"./dist/ui/workspace-client.d.ts","browser":"./dist/browser/ui/workspace-client.js","bun":"./dist/ui/workspace-client.js","node":"./dist/node/ui/workspace-client.js","default":"./dist/ui/workspace-client.js"},"./withdrawal-worker":{"types":"./dist/withdrawal-worker.d.ts","browser":"./dist/browser/withdrawal-worker.js","bun":"./dist/withdrawal-worker.js","node":"./dist/node/withdrawal-worker.js","default":"./dist/withdrawal-worker.js"},"./workers":{"types":"./dist/workers.d.ts","browser":"./dist/browser/workers.js","bun":"./dist/workers.js","node":"./dist/node/workers.js","default":"./dist/workers.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/bundle.marketing-operations","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/bundles/marketing-operations/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./advertising","importPath":"@lssm-tech/bundle.marketing-operations/advertising","target":"./src/advertising.ts","targets":[{"conditions":[],"target":"./src/advertising.ts","sourcePath":"packages/bundles/marketing-operations/src/advertising.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/advertising.ts","sourceStatus":"verified source file"}]},{"subpath":"./editorial-worker","importPath":"@lssm-tech/bundle.marketing-operations/editorial-worker","target":"./src/editorial-worker.ts","targets":[{"conditions":[],"target":"./src/editorial-worker.ts","sourcePath":"packages/bundles/marketing-operations/src/editorial-worker.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/editorial-worker.ts","sourceStatus":"verified source file"}]},{"subpath":"./git-editorial","importPath":"@lssm-tech/bundle.marketing-operations/git-editorial","target":"./src/git-editorial.ts","targets":[{"conditions":[],"target":"./src/git-editorial.ts","sourcePath":"packages/bundles/marketing-operations/src/git-editorial.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/git-editorial.ts","sourceStatus":"verified source file"}]},{"subpath":"./installation","importPath":"@lssm-tech/bundle.marketing-operations/installation","target":"./src/installation.ts","targets":[{"conditions":[],"target":"./src/installation.ts","sourcePath":"packages/bundles/marketing-operations/src/installation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/installation.ts","sourceStatus":"verified source file"}]},{"subpath":"./mcp","importPath":"@lssm-tech/bundle.marketing-operations/mcp","target":"./src/mcp.ts","targets":[{"conditions":[],"target":"./src/mcp.ts","sourcePath":"packages/bundles/marketing-operations/src/mcp.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/mcp.ts","sourceStatus":"verified source file"}]},{"subpath":"./media-status","importPath":"@lssm-tech/bundle.marketing-operations/media-status","target":"./src/media-status.ts","targets":[{"conditions":[],"target":"./src/media-status.ts","sourcePath":"packages/bundles/marketing-operations/src/media-status.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/media-status.ts","sourceStatus":"verified source file"}]},{"subpath":"./native-editorial-compiler","importPath":"@lssm-tech/bundle.marketing-operations/native-editorial-compiler","target":"./src/native-editorial-compiler.ts","targets":[{"conditions":[],"target":"./src/native-editorial-compiler.ts","sourcePath":"packages/bundles/marketing-operations/src/native-editorial-compiler.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/native-editorial-compiler.ts","sourceStatus":"verified source file"}]},{"subpath":"./optimization","importPath":"@lssm-tech/bundle.marketing-operations/optimization","target":"./src/optimization.ts","targets":[{"conditions":[],"target":"./src/optimization.ts","sourcePath":"packages/bundles/marketing-operations/src/optimization.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/optimization.ts","sourceStatus":"verified source file"}]},{"subpath":"./planning-approval-host","importPath":"@lssm-tech/bundle.marketing-operations/planning-approval-host","target":"./src/planning-approval-host.ts","targets":[{"conditions":[],"target":"./src/planning-approval-host.ts","sourcePath":"packages/bundles/marketing-operations/src/planning-approval-host.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/planning-approval-host.ts","sourceStatus":"verified source file"}]},{"subpath":"./rights-preflight","importPath":"@lssm-tech/bundle.marketing-operations/rights-preflight","target":"./src/rights-preflight.ts","targets":[{"conditions":[],"target":"./src/rights-preflight.ts","sourcePath":"packages/bundles/marketing-operations/src/rights-preflight.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/rights-preflight.ts","sourceStatus":"verified source file"}]},{"subpath":"./server","importPath":"@lssm-tech/bundle.marketing-operations/server","target":"./src/server.ts","targets":[{"conditions":[],"target":"./src/server.ts","sourcePath":"packages/bundles/marketing-operations/src/server.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/server.ts","sourceStatus":"verified source file"}]},{"subpath":"./site-mcp","importPath":"@lssm-tech/bundle.marketing-operations/site-mcp","target":"./src/site-mcp/index.ts","targets":[{"conditions":[],"target":"./src/site-mcp/index.ts","sourcePath":"packages/bundles/marketing-operations/src/site-mcp/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/site-mcp/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./site-mcp/marketing-agent-config","importPath":"@lssm-tech/bundle.marketing-operations/site-mcp/marketing-agent-config","target":"./src/site-mcp/marketing-agent-config.ts","targets":[{"conditions":[],"target":"./src/site-mcp/marketing-agent-config.ts","sourcePath":"packages/bundles/marketing-operations/src/site-mcp/marketing-agent-config.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/site-mcp/marketing-agent-config.ts","sourceStatus":"verified source file"}]},{"subpath":"./site-mcp/marketing-mcp","importPath":"@lssm-tech/bundle.marketing-operations/site-mcp/marketing-mcp","target":"./src/site-mcp/marketing-mcp.ts","targets":[{"conditions":[],"target":"./src/site-mcp/marketing-mcp.ts","sourcePath":"packages/bundles/marketing-operations/src/site-mcp/marketing-mcp.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/site-mcp/marketing-mcp.ts","sourceStatus":"verified source file"}]},{"subpath":"./site-mcp/marketing-registry","importPath":"@lssm-tech/bundle.marketing-operations/site-mcp/marketing-registry","target":"./src/site-mcp/marketing-registry.ts","targets":[{"conditions":[],"target":"./src/site-mcp/marketing-registry.ts","sourcePath":"packages/bundles/marketing-operations/src/site-mcp/marketing-registry.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/site-mcp/marketing-registry.ts","sourceStatus":"verified source file"}]},{"subpath":"./social","importPath":"@lssm-tech/bundle.marketing-operations/social","target":"./src/social.ts","targets":[{"conditions":[],"target":"./src/social.ts","sourcePath":"packages/bundles/marketing-operations/src/social.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/social.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/BootstrappedMarketingWorkspace","importPath":"@lssm-tech/bundle.marketing-operations/ui/BootstrappedMarketingWorkspace","target":"./src/ui/BootstrappedMarketingWorkspace.tsx","targets":[{"conditions":[],"target":"./src/ui/BootstrappedMarketingWorkspace.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/BootstrappedMarketingWorkspace.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/BootstrappedMarketingWorkspace.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/ConnectedMarketingWorkspace","importPath":"@lssm-tech/bundle.marketing-operations/ui/ConnectedMarketingWorkspace","target":"./src/ui/ConnectedMarketingWorkspace.tsx","targets":[{"conditions":[],"target":"./src/ui/ConnectedMarketingWorkspace.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/ConnectedMarketingWorkspace.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/ConnectedMarketingWorkspace.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/copy","importPath":"@lssm-tech/bundle.marketing-operations/ui/copy","target":"./src/ui/copy.ts","targets":[{"conditions":[],"target":"./src/ui/copy.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/copy.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/copy.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-archive-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-archive-client","target":"./src/ui/editorial-archive-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-archive-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-archive-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-archive-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-client","target":"./src/ui/editorial-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-controller","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-controller","target":"./src/ui/editorial-controller.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-controller.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-controller.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-controller.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-create-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-create-client","target":"./src/ui/editorial-create-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-create-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-create-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-create-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-create-controller","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-create-controller","target":"./src/ui/editorial-create-controller.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-create-controller.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-create-controller.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-create-controller.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-create-i18n","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-create-i18n","target":"./src/ui/editorial-create-i18n.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-create-i18n.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-create-i18n.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-create-i18n.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-destination-options","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-destination-options","target":"./src/ui/editorial-destination-options.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-destination-options.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-destination-options.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-destination-options.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-detail-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-detail-client","target":"./src/ui/editorial-detail-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-detail-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-detail-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-detail-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-editor-controller","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-editor-controller","target":"./src/ui/editorial-editor-controller.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-editor-controller.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-editor-controller.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-editor-controller.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-filters","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-filters","target":"./src/ui/editorial-filters.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-filters.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-filters.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-filters.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-heading-focus","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-heading-focus","target":"./src/ui/editorial-heading-focus.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-heading-focus.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-heading-focus.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-heading-focus.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-history-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-history-client","target":"./src/ui/editorial-history-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-history-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-history-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-history-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-history-controller","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-history-controller","target":"./src/ui/editorial-history-controller.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-history-controller.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-history-controller.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-history-controller.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-i18n","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-i18n","target":"./src/ui/editorial-i18n.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-i18n.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-i18n.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-i18n.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-pagination-focus","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-pagination-focus","target":"./src/ui/editorial-pagination-focus.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-pagination-focus.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-pagination-focus.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-pagination-focus.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-publication-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-publication-client","target":"./src/ui/editorial-publication-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-publication-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-publication-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-publication-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-publication-controller","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-publication-controller","target":"./src/ui/editorial-publication-controller.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-publication-controller.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-publication-controller.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-publication-controller.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-publication-result","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-publication-result","target":"./src/ui/editorial-publication-result.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-publication-result.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-publication-result.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-publication-result.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-review-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-review-client","target":"./src/ui/editorial-review-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-review-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-review-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-review-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-review-controller","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-review-controller","target":"./src/ui/editorial-review-controller.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-review-controller.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-review-controller.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-review-controller.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-revision-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-revision-client","target":"./src/ui/editorial-revision-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-revision-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-revision-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-revision-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-schedule-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-schedule-client","target":"./src/ui/editorial-schedule-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-schedule-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-schedule-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-schedule-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-submit-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-submit-client","target":"./src/ui/editorial-submit-client.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-submit-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-submit-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-submit-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/editorial-view.types","importPath":"@lssm-tech/bundle.marketing-operations/ui/editorial-view.types","target":"./src/ui/editorial-view.types.ts","targets":[{"conditions":[],"target":"./src/ui/editorial-view.types.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/editorial-view.types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/editorial-view.types.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialArchiveAction","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialArchiveAction","target":"./src/ui/EditorialArchiveAction.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialArchiveAction.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialArchiveAction.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialArchiveAction.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialCreateAction","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialCreateAction","target":"./src/ui/EditorialCreateAction.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialCreateAction.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialCreateAction.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialCreateAction.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialEditFields","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialEditFields","target":"./src/ui/EditorialEditFields.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialEditFields.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialEditFields.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialEditFields.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialEditor","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialEditor","target":"./src/ui/EditorialEditor.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialEditor.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialEditor.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialEditor.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialHistoryPanel","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialHistoryPanel","target":"./src/ui/EditorialHistoryPanel.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialHistoryPanel.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialHistoryPanel.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialHistoryPanel.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialOpenAction","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialOpenAction","target":"./src/ui/EditorialOpenAction.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialOpenAction.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialOpenAction.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialOpenAction.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialPagination","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialPagination","target":"./src/ui/EditorialPagination.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialPagination.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialPagination.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialPagination.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialPreparedDraft","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialPreparedDraft","target":"./src/ui/EditorialPreparedDraft.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialPreparedDraft.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialPreparedDraft.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialPreparedDraft.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialPublicationActions","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialPublicationActions","target":"./src/ui/EditorialPublicationActions.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialPublicationActions.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialPublicationActions.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialPublicationActions.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialRecordActions","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialRecordActions","target":"./src/ui/EditorialRecordActions.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialRecordActions.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialRecordActions.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialRecordActions.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialRecordPanel","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialRecordPanel","target":"./src/ui/EditorialRecordPanel.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialRecordPanel.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialRecordPanel.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialRecordPanel.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialRecordView","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialRecordView","target":"./src/ui/EditorialRecordView.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialRecordView.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialRecordView.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialRecordView.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialRecoveryControls","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialRecoveryControls","target":"./src/ui/EditorialRecoveryControls.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialRecoveryControls.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialRecoveryControls.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialRecoveryControls.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialReviewActions","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialReviewActions","target":"./src/ui/EditorialReviewActions.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialReviewActions.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialReviewActions.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialReviewActions.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialScheduleAction","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialScheduleAction","target":"./src/ui/EditorialScheduleAction.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialScheduleAction.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialScheduleAction.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialScheduleAction.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialSubmitAction","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialSubmitAction","target":"./src/ui/EditorialSubmitAction.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialSubmitAction.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialSubmitAction.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialSubmitAction.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialWorkspace","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialWorkspace","target":"./src/ui/EditorialWorkspace.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialWorkspace.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialWorkspace.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialWorkspace.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/EditorialWorkspaceView","importPath":"@lssm-tech/bundle.marketing-operations/ui/EditorialWorkspaceView","target":"./src/ui/EditorialWorkspaceView.tsx","targets":[{"conditions":[],"target":"./src/ui/EditorialWorkspaceView.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/EditorialWorkspaceView.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/EditorialWorkspaceView.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/MarketingPlanningApproval","importPath":"@lssm-tech/bundle.marketing-operations/ui/MarketingPlanningApproval","target":"./src/ui/MarketingPlanningApproval.tsx","targets":[{"conditions":[],"target":"./src/ui/MarketingPlanningApproval.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/MarketingPlanningApproval.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/MarketingPlanningApproval.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/MarketingProposalDetails","importPath":"@lssm-tech/bundle.marketing-operations/ui/MarketingProposalDetails","target":"./src/ui/MarketingProposalDetails.tsx","targets":[{"conditions":[],"target":"./src/ui/MarketingProposalDetails.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/MarketingProposalDetails.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/MarketingProposalDetails.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/MarketingWorkspace","importPath":"@lssm-tech/bundle.marketing-operations/ui/MarketingWorkspace","target":"./src/ui/MarketingWorkspace.tsx","targets":[{"conditions":[],"target":"./src/ui/MarketingWorkspace.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/MarketingWorkspace.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/MarketingWorkspace.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/planning-approval-controller","importPath":"@lssm-tech/bundle.marketing-operations/ui/planning-approval-controller","target":"./src/ui/planning-approval-controller.ts","targets":[{"conditions":[],"target":"./src/ui/planning-approval-controller.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/planning-approval-controller.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/planning-approval-controller.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/planning-approval-gateway","importPath":"@lssm-tech/bundle.marketing-operations/ui/planning-approval-gateway","target":"./src/ui/planning-approval-gateway.ts","targets":[{"conditions":[],"target":"./src/ui/planning-approval-gateway.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/planning-approval-gateway.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/planning-approval-gateway.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/planning-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/planning-client","target":"./src/ui/planning-client.ts","targets":[{"conditions":[],"target":"./src/ui/planning-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/planning-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/planning-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/PlanningApprovalReview","importPath":"@lssm-tech/bundle.marketing-operations/ui/PlanningApprovalReview","target":"./src/ui/PlanningApprovalReview.tsx","targets":[{"conditions":[],"target":"./src/ui/PlanningApprovalReview.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/PlanningApprovalReview.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/PlanningApprovalReview.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/ReviewedMarketingWorkspace","importPath":"@lssm-tech/bundle.marketing-operations/ui/ReviewedMarketingWorkspace","target":"./src/ui/ReviewedMarketingWorkspace.tsx","targets":[{"conditions":[],"target":"./src/ui/ReviewedMarketingWorkspace.tsx","sourcePath":"packages/bundles/marketing-operations/src/ui/ReviewedMarketingWorkspace.tsx","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/ReviewedMarketingWorkspace.tsx","sourceStatus":"verified source file"}]},{"subpath":"./ui/use-editorial-controller-lifetime","importPath":"@lssm-tech/bundle.marketing-operations/ui/use-editorial-controller-lifetime","target":"./src/ui/use-editorial-controller-lifetime.ts","targets":[{"conditions":[],"target":"./src/ui/use-editorial-controller-lifetime.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/use-editorial-controller-lifetime.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/use-editorial-controller-lifetime.ts","sourceStatus":"verified source file"}]},{"subpath":"./ui/workspace-client","importPath":"@lssm-tech/bundle.marketing-operations/ui/workspace-client","target":"./src/ui/workspace-client.ts","targets":[{"conditions":[],"target":"./src/ui/workspace-client.ts","sourcePath":"packages/bundles/marketing-operations/src/ui/workspace-client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/ui/workspace-client.ts","sourceStatus":"verified source file"}]},{"subpath":"./withdrawal-worker","importPath":"@lssm-tech/bundle.marketing-operations/withdrawal-worker","target":"./src/withdrawal-worker.ts","targets":[{"conditions":[],"target":"./src/withdrawal-worker.ts","sourcePath":"packages/bundles/marketing-operations/src/withdrawal-worker.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/withdrawal-worker.ts","sourceStatus":"verified source file"}]},{"subpath":"./workers","importPath":"@lssm-tech/bundle.marketing-operations/workers","target":"./src/workers.ts","targets":[{"conditions":[],"target":"./src/workers.ts","sourcePath":"packages/bundles/marketing-operations/src/workers.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/src/workers.ts","sourceStatus":"verified source file"}]}],"entryCount":74,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Marketing Operations","url":"https://github.com/lssm-tech/contractspec/tree/main/packages/bundles/marketing-operations","kind":"readme","pinnedUrl":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations","sourceStatus":"verified pinned repository path"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/bundle.marketing-operations.txt"},"readme":{"status":"available","body":"# Marketing Operations composition\n\nThe data-only root describes implemented capabilities and required host ports.\n`./server` exposes `createMarketingOperationsServer` and `./mcp` exposes\n`registerMarketingMcpTools`. Both use the same canonical operation registry.\n\n`./site-mcp` owns the public marketing site MCP surface that the contractspec.io and\nCompanyOS hosts serve at `/api/marketing-mcp`. It binds the three Growth site operations\n(`marketing.product.get`, `marketing.plans.compare`, `marketing.demo.book`) from\n`lib.growth-spec` to their `lib.growth-runtime` handlers, and exposes the framework-neutral\nJSON gateway (`executeMarketingTool`, bounded `SlidingWindowRateLimiter`), the MCP\n2024-11-05 JSON-RPC dispatcher (`handleMcpJsonRpc`) and the embedded-agent config\n(`createMarketingChatConfig`). Product facts and plan comparison are public reads;\n`demo.book` is default-deny without an authenticated user (UNAUTHENTICATED at the MCP\ntransport gate, FORBIDDEN from the PDP) and limited to its contract `rpm`. Hosts keep the\nrequest body cap, trusted client IP, session lookup and feature flag. The\n`./site-mcp/marketing-agent-config`, `./site-mcp/marketing-mcp` and\n`./site-mcp/marketing-registry` subpaths expose the individual modules. This\n`registerMarketingMcpTools` takes a tool-context factory for the public site tools; the\n`./mcp` export of the same name mounts the authenticated operations registry. The surface\nreplaces the deprecated `@lssm-tech/lib.contracts-runtime-server-mcp/marketing*` subpaths\nwith the same exports.\n\n`./ui/MarketingWorkspace` exposes the localized goal-to-plan interface. It displays\nquestions, assumptions and proposed actions, with host-owned detailed action review.\nIt does not execute a model's suggestions. `onPropose` binds to authenticated host\ntransport; the optional controlled `proposal` prop can be refreshed by the host.\n\nSupply `planning` dependencies to the server to enable durable, contract-validated\ngoal proposals at `/marketing/plans/propose` and `/marketing/plans/get`. Inference\nrequires scoped approval and idempotent cost authorization. A proposal request ID is\nreserved before calling the model, so retries do not buy another generation. Every\nstep must match a registered/allowed operation and pass host resource validation.\nThe full composition now exposes 39 REST/MCP operations with every optional service configured.\n\n`scripts/preview.ts` serves a synthetic browser QA fixture on loopback only. It is\nnot a production deployment and never invokes a model or payment/ad provider.\n\nSupply a durable `MarketingExecutor`, `MarketingCopyGenerator`, and an authorized\nbrief loader through `MarketingOperationsDependencies`. The host context resolves\nthe authenticated actor, tenant, workspace, PDP, and shared approval runtime.\nExecution and copy generation declare cost-bearing effects and require scoped\napproval receipts before their handlers run. The executor independently checks the\nplan digest, mandate, current rights, provider qualification, and provider state.\n\nThere is no default authority, credential, in-memory production store, or advertising\nprovider. Hosts must mount this with the same isolation controls in managed and\nself-hosted deployments. This package is a server composition foundation; a complete\nstandalone UI, creator migration, campaign-provider certification, and production\ndeployment are not yet delivered.\n\nThe new API endpoints are declared in `lib.growth-spec/marketing/operations`:\n\n- `POST /marketing/executions`\n- `POST /marketing/executions/reconcile`\n- `POST /marketing/executions/continue`\n- `POST /marketing/copy`\n\nSupply the optional `editorial` host dependency to bind ten standard operations under\n`/marketing/editorial`: create, revise, submit, review, schedule, archive, publish,\nreconcile, get and due. Recovery is an additional operation when the store supports it. Their declarations live in\n`lib.growth-spec/marketing/editorial-operations`. Editorial and advertising authority\nare independent. REST tests cover authentication, tenant/workspace substitution,\nstorage effects and publication/copy approval gates.\n\nSupply optional `creators` dependencies to bind eleven canonical creator operations\nunder `/creator-operations`. This brings the combined registry to 24 operations.\nThe creator store is transactional, agreements are immutable, and every settlement\nrail consumes the same wallet reservations. Runtime approval and provider evidence\nare still required; mounting the module does not enable production payouts.\n\nSee the repository Marketing Operations implementation status for remaining work.\n\n`./advertising` composes Meta, Google and TikTok HTTP providers with the durable recipe\nexecutor and marketing reservation engine. Supply recipe/receipt stores, current\nrequest and recipe authority, a reviewed compiler and a read-only reconciler. No\nconstructor sends requests or enables spend. Launch compilation supports typed Meta,\nGoogle Search/Display/Demand Gen/Performance Max and TikTok plans; campaign controls\nsupport pause/resume against a checked provider-state digest. The continuation operation\nreauthorizes pending work without reserving the same budget again.\n\nThe advertising compiler composition also supports reviewed budget adjustments and\ncreative replacement. Configure `AdvertisingCampaignCompiler` with the launch, control,\nbudget and creative compilers. The host loads immutable change documents and exact native\nresource mappings; the execution plan must reference their digests in reviewed evidence.\n\nUse `createMarketingConversions` from `./advertising` to compose the conversion service\nwith scoped providers, durable storage, current consent authority and read-only recovery.\nSupply it as the server's optional `conversions` dependency to mount three operations at\n`/marketing/conversions/deliver`, `/reconcile` and `/get`. Delivery requires its own approval.\nThe original registry remains unchanged when the optional service is absent.\n\n`createMarketingObservations` from `./advertising` composes native read providers with a\nrequired evidence store, current scope authority and immutable snapshot storage. Supply\nit as the optional `observations` server dependency for `/marketing/observations/refresh`\nand `/get`. Results separate review/eligibility/configuration and include a stable state\ndigest. Source mappings must verify each native resource belongs to the scoped campaign.\n\n\n`./social` exports `createMarketingSocialScheduling`, which composes durable schedules\nwith the existing social publication runtime. Its default remains draft-only. Configure\nSQL schedule/intent/lease ports, current signed grant verification, policy/audit ports,\nqualified LinkedIn/X providers and an explicit publication autonomy mode. Pass the\nresult as optional `socialScheduling` to mount eight schedule operations. Register the\nworker with the existing lifecycle scheduler and persist each batch result.\n\nLive LinkedIn/X publishing, account access and media formats still require qualification;\nthe local scheduling tests use simulated provider effects.\n\nConfigure the optional scoped LinkedIn publisher under\n`publicationPorts.providersV2.linkedin`. The SQL scheduling composition preserves its\ncreation URN and confirms through tenant/account/author-bound reads. Hosts supply approved\nmaterialization, ready assets, qualified LinkedIn contexts and credentials. Provider\nqualification and media upload pipelines remain installation work.\n\nConfigure the scoped X publisher in `publicationPorts.providersV2.x` with a durable\n`SqlXPublicationStore`, qualified materialization, current per-part grant/metering checks\nand exact-request recovery evidence. The scheduler reconciles uncertain thread parts\nbefore resuming only unsent work. Configure the native upload composition below for\nnew media; live account qualification remains separate from mocked transport tests.\n\n\nFor X media, compose `XNativeUploadProvider` with `SqlXUploadStore` before materializing\nreviewed publication. The uploaded-asset projection returns the native ID/key only after\nprocessing succeeds and before expiry. SQL integration tests cover uploaded video through\nscheduling and native attachment confirmation. Live qualification remains host-owned.\n\n\nLinkedIn image/video uploads can use `LinkedInMediaJobRuntime`, `SqlLinkedInMediaJobStore`\nand `LinkedInSecretSessionVault`. Supply a versioned secret backend, exact native recovery\nreceipts and authorized immutable asset reads. Project ready media into the existing\npublication materializer with current rights checks. Standalone worker wiring and live\nqualification remain separate requirements.\n\n\n`./installation` exposes `createMarketingOperationsInstallation` for both deployment\nmodes. Supply the canonical server, explicit worker mode and readiness checks. Concurrent\nstarts/stops share lifecycle work, partial startup rolls back registrations, and failed\ncleanup can be retried. Public probes reveal only liveness/readiness. Mutations from a\nforeign browser origin are rejected; canonical operation approval checks remain intact.\n\n`./workers` adapts the existing durable social scheduler into a registration that stops\nnew callbacks and drains active batches. Registrations must clean up resources they create\nif startup fails before returning a stop handle. The thin `app.marketing-operations` shell\nbinds HTTP before starting workers and loads trusted deployment composition from a module.\nA turnkey installation, standalone frontend and managed provisioning remain incomplete.\n\n\n`./ui/planning-client` exposes `createMarketingPlanningBrowserClient`; use it with\n`./ui/ConnectedMarketingWorkspace`. The host supplies an authenticated actor/scope/brand\nbinding, same-origin fetch and an exact-input approval callback. The browser binding is\na cache partition, never server authorization. No receipts or goal text are persisted in\nbrowser storage. Identical actor/intent/goal/context produces the same durable request ID,\nincluding after a lost response or client recreation. Set a new intentRef only for an\nexplicitly separate generation.\n\nCheck progress calls the canonical read operation without inference approval. Responses\nmust match the original request before rendering; switching scope remounts the workspace\nand clears previous visible results. Detailed review/execution remains host-owned. The\nstandalone authenticated bootstrap and approval experience are not yet wired by default.\n\n\nSupply optional `workspace` to register the authenticated `/marketing/workspace` query.\nIts brand selector is resolved against the current actor, tenant and workspace; the\nloader must authorize access and return the approved brand revision. Bootstrap returns\nno credentials or execution grants. The full optional composition exposes 40 operations.\n\n`BootstrappedMarketingWorkspace` loads that query before creating the planning client.\nChange its sessionKey on login/logout or session changes to clear the previous view.\nThe optional server `approvalReceipt` callback adapts transport evidence; the existing\ncontext approvalPort still decides whether that evidence authorizes execution.\n\n\n`PlanningApprovalReview` displays a host-issued exact-input planning quote, maximum\ncost and expiry. Its controlled callback invokes the existing issuer; the component\nnever mints receipts. Expired quotes cannot be approved, duplicate clicks are locked,\nand uncertain callback failures require status resolution rather than blind retry.\nThe quote issuer and production approval workflow remain installation requirements.\n\n\n`ReviewedMarketingWorkspace` composes authenticated bootstrap, planning and quote review.\nProvide a `MarketingPlanningApprovalGateway` backed by the existing server authority;\nquote/issue/status must bind the actor, exact input, maximum cost and expiry. Issuance\nmust be idempotent by quote ID. The UI controller resumes the waiting planning call only\nwith the returned receipt, rejects quote substitution and uses read-only status recovery\nafter uncertain issuance. Change sessionKey on principal changes; unmount discards local\nwaiting without claiming to revoke durable receipts. Production gateway routes and\nissuer configuration remain required.\n\n\nConfigure optional `planningApproval` to mount quote, issue and status operations at\n`/marketing/planning-approvals/*` (43 operations with all optional services). The injected\nauthority must authorize brand access, persist quotes, verify explicit human review and\nissue scoped receipts idempotently by quote ID. Authentication alone is insufficient.\n`createMarketingPlanningApprovalGateway` implements the browser transport; supply host\nCSRF/step-up handling through its fetch callback. Issuance/status receipt outputs are\nmarked transient and redacted by operation contracts. No permitting issuer is supplied.\n\n\nThe planningApproval host port can now use MarketingPlanningApprovalService with\nSqlPlanningApprovalStore. Configure pricing, brand authorization and explicit human\nreview verification. Wire createOperationApprovalPort with the service's verifyEvidence\nand the SQL store as nonceStore; never use the verifier's permissive evidence default.\nHuman authentication, quote pricing and reviewer evidence still require host integration.\n\n\nUse `withMarketingPlanningApproval(host, {service, nonceStore})` from\n`./planning-approval-host` to install the durable planning verifier and receipt decoder.\nIt requires both persisted evidence and the supplied nonce store, rejects malformed or\nunrecognized receipt headers, and preserves existing approval handling for other\noperations. The resulting host can be passed directly to createMarketingOperationsServer.\n\n\nSupply `metricReports` to expose `/marketing/metrics/report` and the matching MCP query.\nThe loader must authorize brand/campaign access, authoritative source and freshness\npolicy. The module rejects foreign tenant/workspace scope before loading observations.\nThe complete optional registry now contains 44 operations. Missing periods remain\nunavailable in the returned report, with provenance and explicit reasons.\n\n\n`./optimization` wraps the existing self-improvement lifecycle effect port for acquisition\neconomics or creator performance. Configure the exact program and marketing scope plus\nan authorized immutable evidence loader. Promotion requires matching candidate artifact,\nprogram revision and experiment scope, then an eligible marketing assessment. Existing\nauthority/gates still decide whether the effect may run. Inconclusive evidence and\nguardrail failure block promotion; rollback/kill behavior remains available. This does\nnot qualify statistical methods or install autonomous provider effects by itself.\n\n\nMarketing optimization composition also requires `recordEvidence`: persist the exact\nreadout/assessment document idempotently and return its SHA-256 artifact reference. The\nwrapper verifies that reference before effects and appends it to the lifecycle receipt.\nA failed or mismatched evidence write blocks promotion.\n\n\nLifecycle integration tests drive acquisition and creator programs through shadow,\ncanary, observation, an inconclusive promotion hold, qualified promotion, replay and\nregression rollback. Assessment artifacts use the SQL store; candidate lifecycle state\nand effects remain simulated. This is not live statistical or production qualification.\n\n\nThe optimization lifecycle scenarios now use SqlMarketingOptimizationLifecycleStore\nfor candidate state/history and SqlMarketingOptimizationEvidenceStore for assessments.\nBoth initial programs pass shadow/canary/observation/promotion/replay/rollback paths with\ndurable SQL state. External effect transports remain simulated and require qualification.\n\n\n`createMarketingWithdrawalWorker` from `./withdrawal-worker` binds withdrawal processing\nto the installation worker lifecycle. Supply authorized durable pending-use discovery\nand a durable result observer; scope-bound scheduler IDs isolate installations. Batches\nare bounded, overlapping local ticks are skipped, and shutdown stops new work and drains\nactive callbacks. The ContentWithdrawalWorker retains provider claims/reconciliation.\n\n\nThe scheduled withdrawal integration test now uses SqlContentWithdrawalQueue for both\ndiscovery and result tracking. Completed uses disappear from subsequent batches without\nmanual queue edits, while unresolved items retain fair attempt ordering. Provider effects\nand installation authorization remain simulated in this test.\n\n\nSupply `contentRights` to expose grant/use/revoke/get/withdraw operations at\n`/marketing/rights/*`, bringing the full optional registry to 49 operations. Scope checks\nprecede service access; grant recording and provider removal require operation approval.\nRights service authorization and durable native withdrawal remain independently required.\n\n\n`withMarketingRightsPreflight` wraps existing advertising authority with current rights\nchecks for declared grants. The resolver must bind the exact reviewed plan/assets to\nregistered-use IDs and the authorized actor. Every grant must be covered by an active\nuse on the advertising channel with paid-amplification permission. Existing budget,\nprovider-state and qualification checks still run. Pause remains available after\nrevocation; this wrapper is not a lease over later provider dispatch.\n\n\nSupply `creatorTraining` to mount `/creator-operations/training/open` and `/update`.\nThe full optional registry now exposes 51 operations. The injected service owns course\naccess, quiz evidence validation and transactional request replay; mounting does not\nmigrate Hirly records or replace its current training writer.\n\n\nOptional creatorTrainingProgress mounts the read-only training summary query at\n`/creator-operations/training/progress` and MCP. Missing state returns `not_started`\nwithout progress initialization. Full optional composition now has 52 operations.\n\n\nOptional creatorQuizCompletion mounts `/creator-operations/training/quiz/complete`\nand its MCP command. Input contains answers and expected training version, never a\nclaimed score. Private-key authorization/scoring and durable progress replay remain in\nthe injected completion service. Full optional composition now contains 53 operations.\n\n\nOptional creatorQuizView mounts the authorized public quiz-read operation at\n`/creator-operations/training/quiz/get`. Strict response validation rejects private\nanswer-key fields and mismatched revisions. Full optional composition has 54 operations.\nThe loader must enforce creator/course enrollment and requested locale.\n\n\n`createMarketingEditorialWorker` invokes due discovery and publication through the\ncanonical registry. Its host context callback supplies exact-input approval evidence\nfor each publication; no background authority is inferred. Result observation is required,\nlocal overlapping ticks are suppressed, and shutdown drains the active batch. Unknown\npublication reconciliation remains a separate existing operation, not a blind retry.\n\n\nConfigure a separate editorial worker with `mode: \"reconcile\"` to discover and reconcile persisted unsettled publications. `minimumAgeSeconds` defaults to 60 (30–86400 allowed); publication remains the default worker mode. Recovery requires the optional store-backed recovery operation and current reconcile authority. Both modes drain on stop, and explicit stop closes dispatch before scheduler unregistration.\n\n`editorial-restart.test.ts` rehearses interrupted terminal persistence and database\nreopening through the recovery scheduler. It preserves publication identity and\nprovider receipt without redispatch; provider responses remain simulated.\n\n\n`createNativeEditorialGitCompiler` adapts an existing strict native compiler and its application readiness function to the shared Git compiler port. Supply an authorized approved-source loader, `compileNative`, and `publicationState`. It binds the exact requested title/body/locale/canonical URL to one compiled edition, verifies the returned receipt against native edition digests and configured locales, then packages unchanged Markdown sources and the approved publication manifest. The Hirly rehearsal script exercises its current compiler and source-derived readiness projection without changing its deployment.\n\n\n`createGitEditorialModule` from `./git-editorial` composes the editorial publication service, durable Git publisher, native GitHub transport and HTTP deployment verifier. Assign its result to the marketing server’s optional `editorial` host field. Supply migrated editorial/Git stores, native compiler, IDs/clock, and separate domain/artifact/repository/deployment authorization functions; construction performs no network activity. The composition test uses both SQL stores and native GitHub/HTTP adapters with simulated HTTP responses, retaining unknown state until deployment readiness is confirmed.\n\n\nFeed `GitHubEditorialSourceLoader.load(record)` into the native compiler’s approved-source callback, adding installation-native compiler options and its returned `publicationManifest`. The returned target preserves the reviewed `sourceCommitSha`. The Hirly rehearsal now covers the loader, native compiler and readiness projection together using simulated pinned GitHub reads.\n\n\nThe native compiler always receives the complete source snapshot. Optional approved `commitPaths` control only the emitted mutations, must include the requested edition, and cannot name unrelated files. Tests cover a 145-edition cohort, its initial 146-file artifact, and a six-file incremental artifact.\n\n\nGit editorial installations expose `editorial_resume_preparation` through the canonical registry. Operators must approve the exact claim and expected revision; supported recovery preserves the claim and cannot repeat an existing Git dispatch.\n\n\nThe clean packed-consumer check now installs the complete marketing bundle dependency closure and runs on Bun and Node without source aliases. It exercises Git editorial composition, exact-input preparation-resume approval and durable compiler rejection. `docs/evidence/marketing-operations/packed-consumer.json` records the tested archive and projected-manifest fingerprints; this is not an npm publication claim.\n\n\nEditorial-capable SQL installations expose paginated summary discovery. HTTP tests verify no-store responses, scope rejection and unavailable-capability behavior.\n\n\n`./ui/EditorialWorkspace` provides a connected, read-only editorial workspace with contract-driven filters, cursor pagination and localized EN/FR/ES chrome. Supply an authorized scope, a non-secret sessionKey that changes with the actor session, and optionally onOpen for a custom host detail route. Fetching defaults to the same-origin API. Late responses are ignored after filters or sessions change; errors never masquerade as empty results. Keyboard pagination moves focus into newly loaded records. Schedules are explicitly displayed in UTC. `EditorialWorkspaceView` is available for controlled hosts.\n\n\n`loadEditorialRecord` from `./ui/editorial-detail-client` fetches the current revision through the canonical same-origin detail endpoint. It checks tenant/workspace/brand, record identity and the content digest before returning data; callers must still use the returned revision for subsequent mutations.\n\n\nEditorialWorkspace now opens its verified read-only record panel by default; an optional onOpen callback preserves custom host navigation. Selection/session changes cancel prior detail requests. Opening focuses the record heading; returning preserves collection state and focuses the workspace heading. Loading and denied states hide prior content. EditorialRecordPanel and EditorialRecordView are separately available for host composition.\n\nThe clean-consumer probe includes current-record retrieval and French detail rendering from built exports, including the Markdown block-nesting regression check.\n\n\n`saveEditorialRevision` submits one expected-revision edit attempt, verifies the returned draft/digest and invalidated approvals, and never retries uncertain writes. After an unknown outcome, load the current record before another save.\n\n\n`EditorialEditorController` preserves local draft text during save conflicts and uncertain outcomes. It blocks another write until recovery reads current state and the operator explicitly adopts a conflicting revision. Disposal ignores late responses. The controller is not yet mounted in editor controls.\n\n\n`EditorialEditFields` renders the canonical title/Markdown form through the design-system form renderer and EN/FR/ES translation context. It merges edited text with host-supplied verified provenance. Mount it only during editable controller phases; save/recovery controls remain host composition.\n\n\nEditable record states now expose the integrated editor. Save/recovery phases preserve local text, show remote conflicts before explicit adoption, and block closing during active saves. Returning with unsaved text requires an explicit discard choice. Unknown saves recover via a verified read; the form never retries the write automatically.\n\n\nEditor state guards also reject terminal publications when invoked directly. Recovery cannot reopen a record that became published elsewhere; local text remains available for comparison. A 375px browser rehearsal verified direct saving without overflow or console warnings.\n\n\nDraft and changes-requested detail panels now offer Submit for review. The client sends the expected revision once, verifies the returned in_review state and unchanged content, and requires a refresh after an uncertain result. This action does not approve or publish content.\n\n\nSubmission qualification includes a REST/SQL concurrency test (one accepted revision, one conflict) and a browser lost-response rehearsal that recovers in_review via refresh without resubmitting.\n\n\n`recordEditorialReview` records an explicit supplied review decision/evidence against the current in-review digest and revision. It never mints authority receipts, retries uncertain writes or treats a returned approval with altered evidence as success.\n\n\nPass optional prepareReview to EditorialWorkspace/EditorialRecordPanel to expose two-step review decisions. The installation supplies reviewer identity, digest-bound evidence and authority receipt; the UI displays those before an explicit confirmation. Preparing evidence performs no mutation. Unknown writes remain held until record refresh; installations without the callback do not expose review decisions.\n\n\nDisposed review controllers now discard prepared evidence and refuse confirmation. Shared controller lifetime handling tolerates React StrictMode effect replay while disposing actual unmounts and replaced controllers.\n\n\nReview REST/SQL qualification verifies denied evidence authority, mismatched reviewer identity and concurrent opposing decisions. One decision is persisted with its evidence; the competing request receives a revision conflict and no publication is created.\n\n\nReview browser qualification covers prepare/cancel, explicit changes-requested/approval decisions, mobile evidence inspection and heading focus after the persisted revision changes. Test authority is synthetic; installations still supply production review evidence.\n\n\n`scheduleEditorialRecord` schedules one approved revision through the canonical API, preserving review evidence and verifying exact destination/time in the response. The server owns clock and destination authority; unknown outcomes require read recovery rather than write retries.\n\n\nScheduling REST/SQL qualification verifies destination denial, server-clock rejection of past schedules, concurrent-request exclusion, review preservation and appearance in due discovery only at the scheduled time.\n\n\nSupply optional loadDestinations to the workspace/panel to expose scheduling for approved records. The callback receives the verified record and returns authorized destination IDs/labels. The form rejects ambiguous local time strings and sends explicit UTC. Server time and current destination authority remain authoritative; uncertain saves require refresh.\n\n\nScheduling browser checks verify destination option labels, controlled initial fields and the exact saved UTC timestamp/destination in record details. The supplied destination label is mapped to the form renderer labelI18n property.\n\n\n`publishEditorialRecord` requires an opaque exact-input approval receipt supplied by the installation. `reconcileEditorialPublication` uses the separate recovery endpoint without implying new publication authority. Both verify scope/content/claim/destination bindings; publication success requires provider receipt and public URL. Clients never retry writes automatically.\n\n\nPublication-client qualification now exercises canonical REST approval validation and SQL claim persistence: unrecognized receipts fail before dispatch, a reused nonce permits one attempt, and a lost provider response recovers through reconciliation without publishing again.\n\n\nSupply optional approvePublication to expose two-step publication on scheduled records. The installation receives the canonical operation/input plus the reviewed record, and returns an opaque execution receipt. The UI keeps the receipt out of rendered state, requires explicit confirmation and never retries an uncertain write. Publishing/unknown records expose reconciliation separately.\n\n\nPublication browser qualification covers cancel-before-dispatch, explicit confirmation to an uncertain result, and separate reconciliation to visible provider proof. The preview uses synthetic state responses; real clock, approval and SQL dispatch checks are covered separately.\n\n\nPublication response validation also requires lifecycle/claim-status agreement and definitive failure receipts. An unchanged revision may only return the identical record; contradictory or unversioned state changes remain uncertain.\n\n\n`createEditorialDraft` requires a stable caller-owned ID and verified content/provenance input. It sends one create request and checks the returned initial draft. After uncertainty, read the same ID; repeated creation returns conflict rather than allocating another draft.\n\n\n`EditorialCreateController` owns one immutable creation intent, coalesces creation attempts and resolves uncertainty with a read of the original ID. Recovery checks content and assignee before adopting the record; conflicting content remains a conflict and no automatic replacement ID is allocated.\n\n\nOptional prepareDraft enables workspace creation. The installation returns a complete creation intent with stable ID and provenance. Operators inspect the title/body/ID before confirming. Uncertain creation remains attached to that ID with read recovery; opening is offered only after confirmed or matching recovered creation.\n\n\nCreation browser qualification verifies prepared-content preview, original-ID retention after a lost response, read recovery and opening revision 1 with no console warnings. The preview backend is synthetic.\n\n\nThe clean-consumer probe now exercises create → revise → submit → review → schedule → approved publication → reconcile using public clients, the canonical REST handler, and SQL history. Bun and Node both finish at revision 8 with eight history rows, one provider dispatch and one recovery read.\n\n\n`archiveEditorialRecord` retires an unpublished revision without deleting content/history. The client rejects published and uncertain publication states, validates schedule removal and retained review evidence, and never retries uncertain writes.\n\n\nEligible record details now offer archival with a separate confirm/cancel step explaining schedule removal and retained history. Published, publishing, uncertain and already archived records show no archive action. Unknown writes stay held until refresh.\n\n\nArchive browser qualification confirms cancellation leaves the draft unchanged, confirmed archival preserves inspectable content, and editing/publication actions disappear in archived state. Focus returns to the record heading.\n\n\nReturning from integrated record details refreshes the collection from its first cursor while preserving selected filters. Records changed by review/scheduling/archival no longer remain visible under stale filter membership.\n\n\n`loadEditorialHistory` validates each historical revision, identity, digest and continuation cursor before returning it. Missing or skipped revisions are reported as unavailable rather than silently shown as complete history.\n\n\nRecord details include on-demand revision history. The history panel fetches bounded authorized pages and opens a clearly labeled read-only historical detail without mutation actions. It only selects revisions present in the fetched page and discards late responses after disposal.\n\n\nHistory browser checks verify original content after edits, read-only inspection and focused historical headings. Revision rows use compound record/revision identities and record action/history sections have distinct React keys.\n\n### Durable media status\n\nThe additive `content-generation.media.status` v1 query exposes persisted generation\nstate, revision, artifact references and expected output count through\n`POST /marketing/media/status` and MCP `media_generation_status`. It never polls\nproviders or dispatches generation. Installations supply an authorized reader;\nthe marketing host mounts it only when configured. Tenant, workspace and generation\nownership are checked before returning progress. Provider URLs, connection keys\nand payment reservation references stay private. Existing draft generation\noperations retain their behavior.\n","sourcePath":"packages/bundles/marketing-operations/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/bundles/marketing-operations/README.md","blobSha":"9ff3331f5689f43441ee254159b603df90adc9ef","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":"content-and-growth","areaTitle":"Content, growth and creator operations","displayName":"bundle.marketing-operations","runtimes":["bun","node"],"platforms":["server"],"kind":"bundle","scope":"Package manifest","canonicalRoute":"/docs/packages/bundle.marketing-operations/","contextUrl":"/docs/packages/bundle.marketing-operations.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}